summaryrefslogtreecommitdiffstats
path: root/source/a
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/a
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
current-5a12e7c134274dba706667107d10d231517d3e05.tar.xz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'source/a')
-rwxr-xr-xsource/a/aaa_base/aaa_base.SlackBuild56
-rw-r--r--source/a/aaa_base/slack-desc19
-rw-r--r--source/a/aaa_base/slackware-version1
-rwxr-xr-xsource/a/aaa_elflibs/aaa_elflibs.SlackBuild73
-rw-r--r--source/a/aaa_elflibs/slack-desc19
-rw-r--r--source/a/aaa_elflibs/symlinks-to-tracked-libs55
-rw-r--r--source/a/aaa_elflibs/tracked-files8
-rwxr-xr-xsource/a/aaa_terminfo/aaa_terminfo.SlackBuild74
-rw-r--r--source/a/aaa_terminfo/slack-desc19
-rwxr-xr-xsource/a/acl/acl.SlackBuild110
-rw-r--r--source/a/acl/acl.destdir.diff36
-rw-r--r--source/a/acl/slack-desc19
-rw-r--r--source/a/acpid/acpi_handler.sh19
-rwxr-xr-xsource/a/acpid/acpid.SlackBuild74
-rw-r--r--source/a/acpid/default18
-rw-r--r--source/a/acpid/doinst.sh13
-rw-r--r--source/a/acpid/rc.acpid36
-rw-r--r--source/a/acpid/slack-desc19
-rwxr-xr-xsource/a/apmd/apmd.SlackBuild100
-rw-r--r--source/a/apmd/slack-desc19
-rwxr-xr-xsource/a/attr/attr.SlackBuild104
-rw-r--r--source/a/attr/attr.destdir.diff36
-rw-r--r--source/a/attr/build7
-rw-r--r--source/a/attr/slack-desc19
-rwxr-xr-xsource/a/bash/bash.SlackBuild97
-rw-r--r--source/a/bash/doinst.sh18
-rw-r--r--source/a/bash/patches/bash31-001104
-rw-r--r--source/a/bash/patches/bash31-002239
-rw-r--r--source/a/bash/patches/bash31-00347
-rw-r--r--source/a/bash/patches/bash31-00448
-rw-r--r--source/a/bash/patches/bash31-00554
-rw-r--r--source/a/bash/patches/bash31-00658
-rw-r--r--source/a/bash/patches/bash31-007121
-rw-r--r--source/a/bash/patches/bash31-00851
-rw-r--r--source/a/bash/patches/bash31-00966
-rw-r--r--source/a/bash/patches/bash31-01054
-rw-r--r--source/a/bash/patches/bash31-01147
-rw-r--r--source/a/bash/patches/bash31-01247
-rw-r--r--source/a/bash/patches/bash31-01344
-rw-r--r--source/a/bash/patches/bash31-014105
-rw-r--r--source/a/bash/patches/bash31-015106
-rw-r--r--source/a/bash/patches/bash31-01651
-rw-r--r--source/a/bash/patches/bash31-017131
-rw-r--r--source/a/bash/slack-desc19
-rwxr-xr-xsource/a/bin/bin.SlackBuild138
-rw-r--r--source/a/bin/debianutils_2.7.dsc21
-rw-r--r--source/a/bin/scripts/diskcopy9
-rw-r--r--source/a/bin/scripts/xx21
-rw-r--r--source/a/bin/slack-desc19
-rw-r--r--source/a/bzip2/bzip2-1.0.4.saneso.diff20
-rwxr-xr-xsource/a/bzip2/bzip2.SlackBuild111
-rw-r--r--source/a/bzip2/slack-desc19
-rw-r--r--source/a/coreutils/DIR_COLORS202
-rw-r--r--source/a/coreutils/coreutils-dircolors.csh48
-rw-r--r--source/a/coreutils/coreutils-dircolors.sh65
-rwxr-xr-xsource/a/coreutils/coreutils.SlackBuild168
-rw-r--r--source/a/coreutils/coreutils.uname.diff161
-rw-r--r--source/a/coreutils/doinst.sh13
-rw-r--r--source/a/coreutils/slack-desc19
-rw-r--r--source/a/cpio/cpio-2.9.gcc43.diff30
-rwxr-xr-xsource/a/cpio/cpio.SlackBuild126
-rw-r--r--source/a/cpio/slack-desc19
-rwxr-xr-xsource/a/cryptsetup/cryptsetup.SlackBuild144
-rw-r--r--source/a/cryptsetup/slack-desc21
-rwxr-xr-xsource/a/cups/cups.SlackBuild171
-rw-r--r--source/a/cups/cups.firefox.desktop.diff11
-rw-r--r--source/a/cups/doinst.sh28
-rw-r--r--source/a/cups/slack-desc19
-rwxr-xr-xsource/a/cxxlibs/cxxlibs.SlackBuild57
-rwxr-xr-xsource/a/cxxlibs/oldgcc/oldgcc.build73
-rw-r--r--source/a/cxxlibs/slack-desc19
-rw-r--r--source/a/cxxlibs/symlinks-to-tracked-libs5
-rw-r--r--source/a/cxxlibs/symlinks-to-tracked-libs642
-rwxr-xr-xsource/a/dbus/dbus.SlackBuild111
-rw-r--r--source/a/dbus/doinst.sh24
-rw-r--r--source/a/dbus/rc.messagebus80
-rw-r--r--source/a/dbus/slack-desc18
-rw-r--r--source/a/dcron/dcron-2.3.3.crontab.diff419
-rw-r--r--source/a/dcron/dcron-2.3.3.diff40
-rw-r--r--source/a/dcron/dcron-2.3.3.diff2477
-rw-r--r--source/a/dcron/dcron-2.3.3.diff311
-rw-r--r--source/a/dcron/dcron-2.3.3.lsm17
-rw-r--r--source/a/dcron/dcron-2.3.3.version.diff11
-rwxr-xr-xsource/a/dcron/dcron.SlackBuild76
-rw-r--r--source/a/dcron/dcron.fork.diff11
-rw-r--r--source/a/dcron/dcron.tmpdir.diff11
-rw-r--r--source/a/dcron/run-parts49
-rw-r--r--source/a/dcron/run-parts.836
-rw-r--r--source/a/dcron/slack-desc19
-rw-r--r--source/a/device-mapper/64-device-mapper.rules37
-rwxr-xr-xsource/a/device-mapper/device-mapper.SlackBuild115
-rw-r--r--source/a/device-mapper/slack-desc20
-rwxr-xr-xsource/a/devs/devs.SlackBuild62
-rw-r--r--source/a/devs/makedev.hd.diff92
-rw-r--r--source/a/devs/makedev_2.3.1-46.2.diff2952
-rw-r--r--source/a/devs/makedev_2.3.1.hd.diff71
-rw-r--r--source/a/devs/makedev_2.3.1.slack.diff19
-rw-r--r--source/a/devs/slack-desc19
-rwxr-xr-xsource/a/dialog/dialog.SlackBuild119
-rw-r--r--source/a/dialog/dialog.smaller.min.height.diff22
-rw-r--r--source/a/dialog/slack-desc19
-rwxr-xr-xsource/a/dosfstools/dosfstools.SlackBuild74
-rw-r--r--source/a/dosfstools/slack-desc19
-rw-r--r--source/a/e2fsprogs/doinst.sh18
-rwxr-xr-xsource/a/e2fsprogs/e2fsprogs.SlackBuild159
-rw-r--r--source/a/e2fsprogs/slack-desc19
-rwxr-xr-xsource/a/ed/ed.SlackBuild115
-rw-r--r--source/a/ed/slack-desc19
-rwxr-xr-xsource/a/eject/eject.SlackBuild107
-rw-r--r--source/a/eject/slack-desc19
-rwxr-xr-xsource/a/elvis/elvis.SlackBuild99
-rw-r--r--source/a/elvis/elvis.clr56
-rw-r--r--source/a/elvis/elvis.clr.orig56
-rw-r--r--source/a/elvis/slack-desc19
-rwxr-xr-xsource/a/etc/etc.SlackBuild50
-rw-r--r--source/a/etc/nsswitch.conf42
-rw-r--r--source/a/etc/slack-desc19
-rw-r--r--source/a/etc/termcap-BSD16470
-rwxr-xr-xsource/a/file/file.SlackBuild131
-rw-r--r--source/a/file/file.crdaregbin.magic5
-rw-r--r--source/a/file/file.etc.file.diff11
-rw-r--r--source/a/file/file.quiet.diff14
-rw-r--r--source/a/file/file.short.diff12
-rw-r--r--source/a/file/file.xz.magic9
-rw-r--r--source/a/file/file.zisofs.magic8
-rw-r--r--source/a/file/slack-desc19
-rwxr-xr-xsource/a/findutils/findutils.SlackBuild114
-rw-r--r--source/a/findutils/findutils.no.default.options.warnings.diff11
-rw-r--r--source/a/findutils/findutils.nolocate.diff22
-rw-r--r--source/a/findutils/slack-desc19
-rw-r--r--source/a/floppy/fdutils-5.4-20020222.diff2991
-rw-r--r--source/a/floppy/fdutils.mediaprm.diff8
-rwxr-xr-xsource/a/floppy/floppy.SlackBuild100
-rw-r--r--source/a/floppy/mediaprm786
-rw-r--r--source/a/floppy/mtools.conf64
-rw-r--r--source/a/floppy/slack-desc19
-rwxr-xr-xsource/a/gawk/gawk.SlackBuild99
-rw-r--r--source/a/gawk/slack-desc19
-rwxr-xr-xsource/a/genpower/genpower.SlackBuild93
-rw-r--r--source/a/genpower/genpower.halt.diff32
-rw-r--r--source/a/genpower/genpower.var.diff34
-rw-r--r--source/a/genpower/slack-desc19
-rwxr-xr-xsource/a/gettext/gettext-tools.SlackBuild102
-rwxr-xr-xsource/a/gettext/gettext.SlackBuild98
-rw-r--r--source/a/gettext/slack-desc19
-rw-r--r--source/a/gettext/slack-desc.gettext-tools19
-rwxr-xr-xsource/a/getty-ps/getty-ps.SlackBuild79
-rw-r--r--source/a/getty-ps/getty.bugfixes.diff356
-rw-r--r--source/a/getty-ps/getty_ps-2.1.0.lsm26
-rw-r--r--source/a/getty-ps/slack-desc19
-rw-r--r--source/a/gpm/gpm-1.20.1-consolename.patch18
-rw-r--r--source/a/gpm/gpm-1.20.1-gpmopen.patch22
-rw-r--r--source/a/gpm/gpm-1.20.1-idie.patch12
-rw-r--r--source/a/gpm/gpm-1.20.1-input-defines.diff26
-rw-r--r--source/a/gpm/gpm-1.20.1-input.patch16
-rw-r--r--source/a/gpm/gpm-1.20.1-lib-silent.patch19
-rw-r--r--source/a/gpm/gpm-1.20.1-math.patch11
-rw-r--r--source/a/gpm/gpm-1.20.1-multilib.patch52
-rw-r--r--source/a/gpm/gpm-1.20.1-no-console-error.patch15
-rw-r--r--source/a/gpm/gpm-1.20.1-nodebug.patch12
-rw-r--r--source/a/gpm/gpm-1.20.1-subscript.patch11
-rw-r--r--source/a/gpm/gpm-1.20.1-weak-wgetch.patch38
-rw-r--r--source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff86
-rw-r--r--source/a/gpm/gpm-evdev-cumulative.patch7023
-rwxr-xr-xsource/a/gpm/gpm.SlackBuild149
-rw-r--r--source/a/gpm/gpm.evdevmakefile.patch11
-rw-r--r--source/a/gpm/inputattach.c472
-rw-r--r--source/a/gpm/mouseconfig7
-rw-r--r--source/a/gpm/setup.mouse154
-rw-r--r--source/a/gpm/slack-desc19
-rwxr-xr-xsource/a/grep/grep.SlackBuild110
-rw-r--r--source/a/grep/slack-desc19
-rwxr-xr-xsource/a/gzip/gzip.SlackBuild146
-rw-r--r--source/a/gzip/slack-desc19
-rwxr-xr-xsource/a/hdparm/hdparm.SlackBuild66
-rw-r--r--source/a/hdparm/slack-desc19
-rwxr-xr-xsource/a/infozip/infozip.SlackBuild92
-rw-r--r--source/a/infozip/slack-desc19
-rwxr-xr-xsource/a/inotify-tools/inotify-tools.SlackBuild109
-rw-r--r--source/a/inotify-tools/slack-desc19
-rwxr-xr-xsource/a/jfsutils/jfsutils.SlackBuild96
-rw-r--r--source/a/jfsutils/slack-desc19
-rwxr-xr-xsource/a/kbd/kbd.SlackBuild177
-rw-r--r--source/a/kbd/setconsolefont384
-rw-r--r--source/a/kbd/setup.setconsolefont10
-rw-r--r--source/a/kbd/slack-desc19
-rw-r--r--source/a/kbd/sources/kbd-1.15-keycodes-man.patch52
-rw-r--r--source/a/kbd/sources/kbd-1.15-po.patch31
-rw-r--r--source/a/kbd/sources/kbd-1.15-quiet_doc.patch34
-rw-r--r--source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch15
-rw-r--r--source/a/kbd/sources/kbd-1.15-sparc.patch97
-rw-r--r--source/a/kbd/sources/kbd-1.15-unicode_start.patch21
-rw-r--r--source/a/kbd/sources/kbd-1.15.tar.bz2.sign8
-rw-r--r--source/a/kbd/sources/nl.euro.diff10
-rw-r--r--source/a/kbd/sources/speakupmap.map308
-rwxr-xr-xsource/a/less/less.SlackBuild102
-rw-r--r--source/a/less/less.sysconfdir.diff15
-rw-r--r--source/a/less/lesspipe.sh67
-rw-r--r--source/a/less/slack-desc19
-rwxr-xr-xsource/a/lha/lha.SlackBuild75
-rw-r--r--source/a/lha/lha_1.14i-10.1.diff5901
-rw-r--r--source/a/lha/slack-desc19
-rwxr-xr-xsource/a/lilo/lilo.SlackBuild87
-rw-r--r--source/a/lilo/liloconfig1165
-rw-r--r--source/a/lilo/setup.liloconfig3
-rw-r--r--source/a/lilo/slack-desc19
-rw-r--r--source/a/lilo/slack.bmpbin0 -> 15754 bytes
-rw-r--r--source/a/lilo/slack.dat7
-rw-r--r--source/a/lilo/slack64.bmpbin0 -> 17318 bytes
-rw-r--r--source/a/lilo/text.lilohelp100
-rwxr-xr-xsource/a/logrotate/logrotate.SlackBuild71
-rw-r--r--source/a/logrotate/logrotate.slackware.diff49
-rw-r--r--source/a/logrotate/slack-desc19
-rw-r--r--source/a/lvm2/doinst.sh13
-rwxr-xr-xsource/a/lvm2/lvm2.SlackBuild103
-rw-r--r--source/a/lvm2/slack-desc19
-rw-r--r--source/a/mdadm/doinst.sh12
-rw-r--r--source/a/mdadm/mdadm-2.6.4.tar.bz2.sign8
-rwxr-xr-xsource/a/mdadm/mdadm.SlackBuild73
-rw-r--r--source/a/mdadm/mdadm.static.small.diff20
-rw-r--r--source/a/mdadm/slack-desc19
-rw-r--r--source/a/minicom/config.sub-x86_64.diff20
-rw-r--r--source/a/minicom/doinst.sh15
-rw-r--r--source/a/minicom/lrzsz_0.12.21-4.diff3019
-rwxr-xr-xsource/a/minicom/minicom.SlackBuild134
-rw-r--r--source/a/minicom/minicom.users36
-rw-r--r--source/a/minicom/minirc.dfl1
-rw-r--r--source/a/minicom/slack-desc19
-rw-r--r--source/a/minicom/wintcap.diff44
-rw-r--r--source/a/mkinitrd/README.initrd100
-rw-r--r--source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff11
-rw-r--r--source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff20
-rw-r--r--source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign18
-rw-r--r--source/a/mkinitrd/archive/busybox-dot-config.1.11.2855
-rw-r--r--source/a/mkinitrd/archive/busybox-dot-config.1.12.0857
-rw-r--r--source/a/mkinitrd/archive/busybox-dot-config.1.12.1857
-rw-r--r--source/a/mkinitrd/archive/busybox-dot-config.1.7.2753
-rw-r--r--source/a/mkinitrd/busybox-1.12.1_inotify.diff11
-rw-r--r--source/a/mkinitrd/busybox-dot-config857
-rwxr-xr-xsource/a/mkinitrd/init230
-rw-r--r--source/a/mkinitrd/mkinitrd494
-rw-r--r--source/a/mkinitrd/mkinitrd.8194
-rwxr-xr-xsource/a/mkinitrd/mkinitrd.SlackBuild119
-rw-r--r--source/a/mkinitrd/mkinitrd.conf.5174
-rw-r--r--source/a/mkinitrd/mkinitrd.conf.sample16
-rw-r--r--source/a/mkinitrd/mkinitrd_command_generator.sh842
-rw-r--r--source/a/mkinitrd/mkinitrd_kernelcheck.diff15
-rw-r--r--source/a/mkinitrd/slack-desc19
-rw-r--r--source/a/module-init-tools/doinst.sh22
-rw-r--r--source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff27
-rw-r--r--source/a/module-init-tools/modprobe.ignore_some_suffixes.diff43
-rw-r--r--source/a/module-init-tools/modprobe.no_sys_check.diff51
-rwxr-xr-xsource/a/module-init-tools/module-init-tools.SlackBuild122
-rw-r--r--source/a/module-init-tools/slack-desc19
-rwxr-xr-xsource/a/mt-st/mt-st.SlackBuild82
-rw-r--r--source/a/mt-st/mt-st.config.diff172
-rw-r--r--source/a/mt-st/mt-st.man.diff31
-rw-r--r--source/a/mt-st/mt-st.sdlt.diff11
-rw-r--r--source/a/mt-st/slack-desc19
-rwxr-xr-xsource/a/mtx/mtx.SlackBuild88
-rw-r--r--source/a/mtx/slack-desc19
-rw-r--r--source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch13
-rw-r--r--source/a/ncompress/ncompress-4.2.4-endians.patch11
-rw-r--r--source/a/ncompress/ncompress.2GB.diff11
-rwxr-xr-xsource/a/ncompress/ncompress.SlackBuild81
-rw-r--r--source/a/ncompress/ncompress.filenamelen.diff98
-rw-r--r--source/a/ncompress/ncompress.lfs2.diff52
-rw-r--r--source/a/ncompress/ncompress.make.diff60
-rw-r--r--source/a/ncompress/ncompress.zerobyteforce.diff24
-rw-r--r--source/a/ncompress/slack-desc19
-rw-r--r--source/a/ntfs-3g/10-ntfs-3g-policy.fdi13
-rwxr-xr-xsource/a/ntfs-3g/ntfs-3g.SlackBuild105
-rw-r--r--source/a/ntfs-3g/slack-desc19
-rwxr-xr-xsource/a/patch/patch.SlackBuild64
-rw-r--r--source/a/patch/slack-desc19
-rwxr-xr-xsource/a/pciutils/pciutils.SlackBuild106
-rw-r--r--source/a/pciutils/pciutils.ids.dest.diff14
-rw-r--r--source/a/pciutils/pciutils.url2
-rw-r--r--source/a/pciutils/slack-desc19
-rw-r--r--source/a/pcmciautils/config/60-pcmcia.rules22
-rw-r--r--source/a/pcmciautils/config/config.opts71
-rwxr-xr-xsource/a/pcmciautils/config/rc.pcmcia65
-rw-r--r--source/a/pcmciautils/doinst.sh13
-rwxr-xr-xsource/a/pcmciautils/pcmciautils.SlackBuild113
-rw-r--r--source/a/pcmciautils/slack-desc19
-rw-r--r--source/a/pkgtools/manpages/explodepkg.841
-rw-r--r--source/a/pkgtools/manpages/installpkg.891
-rw-r--r--source/a/pkgtools/manpages/makepkg.8135
-rw-r--r--source/a/pkgtools/manpages/pkgtool.895
-rw-r--r--source/a/pkgtools/manpages/removepkg.8108
-rw-r--r--source/a/pkgtools/manpages/setup.8-deprecated120
-rw-r--r--source/a/pkgtools/manpages/upgradepkg.898
-rw-r--r--source/a/pkgtools/obsolete-scripts/README5
-rw-r--r--source/a/pkgtools/obsolete-scripts/setup.90.modem-device44
-rwxr-xr-xsource/a/pkgtools/pkgtools.SlackBuild78
-rw-r--r--source/a/pkgtools/scripts/explodepkg97
-rw-r--r--source/a/pkgtools/scripts/installpkg568
-rw-r--r--source/a/pkgtools/scripts/makebootdisk444
-rw-r--r--source/a/pkgtools/scripts/makepkg347
-rw-r--r--source/a/pkgtools/scripts/pkgtool754
-rw-r--r--source/a/pkgtools/scripts/removepkg430
-rw-r--r--source/a/pkgtools/scripts/setup.70.install-kernel5
-rw-r--r--source/a/pkgtools/scripts/setup.80.make-bootdisk175
-rw-r--r--source/a/pkgtools/scripts/setup.htmlview33
-rw-r--r--source/a/pkgtools/scripts/setup.services287
-rw-r--r--source/a/pkgtools/scripts/upgradepkg387
-rw-r--r--source/a/pkgtools/slack-desc19
-rw-r--r--source/a/procps/procinfo.gcc3.diff11
-rw-r--r--source/a/procps/procinfo.lsm15
-rw-r--r--source/a/procps/procps-3.2.7-ps-eip64.diff48
-rwxr-xr-xsource/a/procps/procps.SlackBuild191
-rw-r--r--source/a/procps/procps.nowarning.diff25
-rw-r--r--source/a/procps/procps.w.showfrom.diff11
-rw-r--r--source/a/procps/slack-desc19
-rwxr-xr-xsource/a/quota/quota.SlackBuild108
-rw-r--r--source/a/quota/slack-desc19
-rwxr-xr-xsource/a/reiserfsprogs/reiserfsprogs.SlackBuild110
-rw-r--r--source/a/reiserfsprogs/slack-desc19
-rw-r--r--source/a/rpm2tgz/rpm2targz129
-rw-r--r--source/a/rpm2tgz/rpm2targz.README18
-rwxr-xr-xsource/a/rpm2tgz/rpm2tgz.SlackBuild58
-rw-r--r--source/a/rpm2tgz/rpmoffset.c24
-rw-r--r--source/a/rpm2tgz/slack-desc19
-rwxr-xr-xsource/a/sdparm/sdparm.SlackBuild107
-rw-r--r--source/a/sdparm/slack-desc19
-rwxr-xr-xsource/a/sed/sed.SlackBuild77
-rw-r--r--source/a/sed/slack-desc19
-rw-r--r--source/a/shadow/adduser437
-rw-r--r--source/a/shadow/shadow-4.0.3.x86_64.diff166
-rwxr-xr-xsource/a/shadow/shadow.SlackBuild156
-rw-r--r--source/a/shadow/shadow.gcc34.diff11
-rw-r--r--source/a/shadow/shadow.login.defs.diff67
-rw-r--r--source/a/shadow/shadow.newgrp.getlogin21
-rw-r--r--source/a/shadow/shadow.newgrp.nopam18
-rw-r--r--source/a/shadow/shadow.remove.obsolete.options.diff78
-rw-r--r--source/a/shadow/shadow.shadowconfig.diff49
-rw-r--r--source/a/shadow/slack-desc19
-rwxr-xr-xsource/a/sharutils/sharutils.SlackBuild85
-rw-r--r--source/a/sharutils/slack-desc19
-rw-r--r--source/a/slocate/slack-desc19
-rw-r--r--source/a/slocate/slocate-3.1.tar.gz.sign7
-rwxr-xr-xsource/a/slocate/slocate.SlackBuild77
-rw-r--r--source/a/smartmontools/doinst.sh13
-rw-r--r--source/a/smartmontools/slack-desc19
-rwxr-xr-xsource/a/smartmontools/smartmontools.SlackBuild78
-rw-r--r--source/a/splitvt/slack-desc19
-rwxr-xr-xsource/a/splitvt/splitvt.SlackBuild67
-rw-r--r--source/a/splitvt/splitvt_1.6.5-9.diff1073
-rw-r--r--source/a/sysfsutils/slack-desc19
-rwxr-xr-xsource/a/sysfsutils/sysfsutils.SlackBuild104
-rw-r--r--source/a/sysklogd/slack-desc19
-rw-r--r--source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff90
-rw-r--r--source/a/sysklogd/sysklogd-1.4.1.lsm23
-rwxr-xr-xsource/a/sysklogd/sysklogd.SlackBuild80
-rw-r--r--source/a/sysklogd/sysklogd_1.4.1-20.diff2555
-rw-r--r--source/a/syslinux/slack-desc19
-rw-r--r--source/a/syslinux/syslinux-3.52.tar.bz2.sign8
-rwxr-xr-xsource/a/syslinux/syslinux.SlackBuild94
-rw-r--r--source/a/sysvinit-functions/README.functions17
-rw-r--r--source/a/sysvinit-functions/doinst.sh23
-rw-r--r--source/a/sysvinit-functions/functions577
-rw-r--r--source/a/sysvinit-functions/slack-desc19
-rwxr-xr-xsource/a/sysvinit-functions/sysvinit-functions.SlackBuild79
-rw-r--r--source/a/sysvinit-scripts/doinst.sh25
-rw-r--r--source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh1
-rw-r--r--source/a/sysvinit-scripts/scripts/inittab74
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.448
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.6266
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.K106
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.M355
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.S382
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.local9
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.sysvinit58
-rw-r--r--source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh558
-rw-r--r--source/a/sysvinit-scripts/slack-desc19
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild60
-rw-r--r--source/a/sysvinit/doinst.sh48
-rw-r--r--source/a/sysvinit/slack-desc19
-rw-r--r--source/a/sysvinit/sysvinit-2.86-timeval.patch42
-rwxr-xr-xsource/a/sysvinit/sysvinit.SlackBuild115
-rw-r--r--source/a/sysvinit/sysvinit.diff125
-rw-r--r--source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff81
-rw-r--r--source/a/tar/rmt.8217
-rw-r--r--source/a/tar/slack-desc19
-rw-r--r--source/a/tar/tar-1.13.bzip2.diff48
-rw-r--r--source/a/tar/tar-1.22-support_txz.diff11
-rw-r--r--source/a/tar/tar.1368
-rwxr-xr-xsource/a/tar/tar.SlackBuild145
-rw-r--r--source/a/tar/tar.nolonezero.diff25
-rw-r--r--source/a/tar/tar.norecordsizespam.diff20
-rw-r--r--source/a/tcsh/doinst.sh8
-rw-r--r--source/a/tcsh/slack-desc19
-rwxr-xr-xsource/a/tcsh/tcsh.SlackBuild91
-rw-r--r--source/a/tcsh/tcsh.nobuiltincolorls.diff11
-rw-r--r--source/a/time/slack-desc19
-rwxr-xr-xsource/a/time/time.SlackBuild69
-rw-r--r--source/a/tree/slack-desc19
-rwxr-xr-xsource/a/tree/tree.SlackBuild65
-rw-r--r--source/a/udev/config/modprobe.d/blacklist.conf.new270
-rw-r--r--source/a/udev/config/modprobe.d/isapnp.conf.new15
-rw-r--r--source/a/udev/config/modprobe.d/psmouse.conf.new6
-rw-r--r--source/a/udev/config/modprobe.d/usb-controller.conf.new4
-rw-r--r--source/a/udev/config/rc.d/rc.udev.new133
-rw-r--r--source/a/udev/config/rules.d/40-slackware.rules16
-rw-r--r--source/a/udev/config/rules.d/65-permissions.rules52
-rw-r--r--source/a/udev/config/rules.d/90-network.rules5
-rwxr-xr-xsource/a/udev/config/scripts/nethelper.sh62
-rw-r--r--source/a/udev/config/udev.conf14
-rw-r--r--source/a/udev/doinst.sh39
-rw-r--r--source/a/udev/rule_generator.diff80
-rw-r--r--source/a/udev/slack-desc19
-rw-r--r--source/a/udev/udev-141.tar.bz2.sign8
-rwxr-xr-xsource/a/udev/udev.SlackBuild140
-rw-r--r--source/a/unarj/Makefile21
-rw-r--r--source/a/unarj/slack-desc19
-rwxr-xr-xsource/a/unarj/unarj.SlackBuild61
-rw-r--r--source/a/usbutils/slack-desc19
-rwxr-xr-xsource/a/usbutils/usbutils.SlackBuild120
-rw-r--r--source/a/usbutils/usbutils.ids.dest11
-rw-r--r--source/a/utempter/doinst.sh10
-rw-r--r--source/a/utempter/slack-desc19
-rwxr-xr-xsource/a/utempter/utempter.SlackBuild77
-rw-r--r--source/a/util-linux-ng/adjtimex_1.23-1.diff5456
-rw-r--r--source/a/util-linux-ng/doinst.sh23
-rw-r--r--source/a/util-linux-ng/net-tools.diff77
-rw-r--r--source/a/util-linux-ng/net-tools_1.60-19.diff29401
-rw-r--r--source/a/util-linux-ng/scsi_ioctl.h48
-rw-r--r--source/a/util-linux-ng/setserial-rc.serial.diff49
-rw-r--r--source/a/util-linux-ng/slack-desc19
-rwxr-xr-xsource/a/util-linux-ng/util-linux-ng.SlackBuild284
-rw-r--r--source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff11
-rw-r--r--source/a/util-linux-ng/ziptool-fix_build.patch24
-rw-r--r--source/a/which/slack-desc19
-rwxr-xr-xsource/a/which/which.SlackBuild99
-rw-r--r--source/a/xfsprogs/slack-desc19
-rwxr-xr-xsource/a/xfsprogs/xfsprogs.SlackBuild114
-rw-r--r--source/a/xz/slack-desc19
-rwxr-xr-xsource/a/xz/xz.SlackBuild137
-rw-r--r--source/a/zoo/slack-desc19
-rwxr-xr-xsource/a/zoo/zoo.SlackBuild78
-rw-r--r--source/a/zoo/zoo_2.10-18.diff1285
441 files changed, 114596 insertions, 0 deletions
diff --git a/source/a/aaa_base/aaa_base.SlackBuild b/source/a/aaa_base/aaa_base.SlackBuild
new file mode 100755
index 000000000..3d1a73051
--- /dev/null
+++ b/source/a/aaa_base/aaa_base.SlackBuild
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=13.0
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-aaa_base
+
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_aaa_base.tar.gz
+
+echo "+======================+"
+echo "| repackaging aaa_base |"
+echo "+======================+"
+
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/slackware-version > $PKG/etc/slackware-version
+
+# Add lib64 directories on x86_64:
+if [ "$ARCH" = "x86_64" ]; then
+ mkdir -p $PKG/lib64 $PKG/usr/lib64 $PKG/usr/local/lib64
+fi
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/aaa_base-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $PKG
+fi
diff --git a/source/a/aaa_base/slack-desc b/source/a/aaa_base/slack-desc
new file mode 100644
index 000000000..011f90fb4
--- /dev/null
+++ b/source/a/aaa_base/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+aaa_base: aaa_base (Basic Linux filesystem package)
+aaa_base:
+aaa_base: Sets up the empty directory tree for Slackware and adds an email to
+aaa_base: root's mailbox welcoming them to Linux. :) This package should be
+aaa_base: installed first, and never uninstalled.
+aaa_base:
+aaa_base:
+aaa_base:
+aaa_base:
+aaa_base:
+aaa_base:
diff --git a/source/a/aaa_base/slackware-version b/source/a/aaa_base/slackware-version
new file mode 100644
index 000000000..0c779cf82
--- /dev/null
+++ b/source/a/aaa_base/slackware-version
@@ -0,0 +1 @@
+Slackware 13.0.0.0.0
diff --git a/source/a/aaa_elflibs/aaa_elflibs.SlackBuild b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild
new file mode 100755
index 000000000..fd5ade86f
--- /dev/null
+++ b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild
@@ -0,0 +1,73 @@
+#!/bin/sh
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=aaa_elflibs
+VERSION=${VERSION:-13.0}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $PKG
+cat $CWD/symlinks-to-tracked-libs \
+ | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \
+ -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \
+ | while read library ; do
+ ( [ ! -e $library ] && continue
+ echo "Adding $library"
+ mkdir -p $(dirname $library | cut -b2- )
+ cd $(dirname $library | cut -b2- )
+ rm -f $(basename $library)
+ cp -a $library .
+ rm -f $(readlink $library)
+ cp -a $(dirname $library)/$(readlink $library) .
+ )
+done
+cat $CWD/tracked-files \
+ | sed -e "s#^/lib/#/lib${LIBDIRSUFFIX}/#" \
+ -e "s#^/usr/lib/#/usr/lib${LIBDIRSUFFIX}/#" \
+ | while read library ; do
+ ( [ ! -e $library ] && continue
+ echo "Adding $library"
+ mkdir -p $(dirname $library | cut -b2- )
+ cd $(dirname $library | cut -b2- )
+ rm -f $(basename $library)
+ cp -a $library .
+ )
+done
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/aaa_elflibs/slack-desc b/source/a/aaa_elflibs/slack-desc
new file mode 100644
index 000000000..29a6c8fbe
--- /dev/null
+++ b/source/a/aaa_elflibs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+aaa_elflibs: aaa_elflibs (shared libraries needed by many programs)
+aaa_elflibs:
+aaa_elflibs: This is a collection of shared libraries needed to run Linux programs.
+aaa_elflibs: ELF (Executable and Linking Format) is the standard Linux binary
+aaa_elflibs: format. These libraries are gathered from other Slackware packages
+aaa_elflibs: and are intended to give a fairly complete initial set of libraries.
+aaa_elflibs: This package should be not upgraded or reinstalled (it could copy
+aaa_elflibs: over newer library versions).
+aaa_elflibs:
+aaa_elflibs:
+aaa_elflibs:
diff --git a/source/a/aaa_elflibs/symlinks-to-tracked-libs b/source/a/aaa_elflibs/symlinks-to-tracked-libs
new file mode 100644
index 000000000..b8c2c758a
--- /dev/null
+++ b/source/a/aaa_elflibs/symlinks-to-tracked-libs
@@ -0,0 +1,55 @@
+/lib/libacl.so.1
+/lib/libattr.so.1
+/lib/libbz2.so.1
+/lib/libbz2.so.1.0
+/lib/libcap.so.2
+/lib/libdm.so.0
+/lib/libfuse.so.2
+/lib/libgpm.so.1
+/lib/libncurses.so.5
+/lib/libncursesw.so.5
+/lib/libsysfs.so.2
+/lib/libtermcap.so.2
+/usr/lib/libasound.so.2
+/usr/lib/libcurl.so.2
+/usr/lib/libcurl.so.3
+/usr/lib/libcurl.so.4
+/usr/lib/libexpat.so.0
+/usr/lib/libexpat.so.1
+/usr/lib/libform.so.5
+/usr/lib/libformw.so.5
+/usr/lib/libfreetype.so.6
+/usr/lib/libgdbm.so.2
+/usr/lib/libgdbm.so.3
+/usr/lib/libglib-2.0.so.0
+/usr/lib/libgmodule-2.0.so.0
+/usr/lib/libgmp.so.3
+/usr/lib/libgmpxx.so.3
+/usr/lib/libgobject-2.0.so.0
+/usr/lib/libgthread-2.0.so.0
+/usr/lib/libhistory.so.4
+/usr/lib/libhistory.so.5
+/usr/lib/libidn.so.11
+/usr/lib/libjpeg.so.62
+/usr/lib/liblber-2.3.so.0
+/usr/lib/libldap-2.3.so.0
+/usr/lib/libmenu.so.5
+/usr/lib/libmenuw.so.5
+/usr/lib/libmm.so.14
+/usr/lib/libmp.so.3
+/usr/lib/libpanel.so.5
+/usr/lib/libpanelw.so.5
+/usr/lib/libpcre.so.0
+/usr/lib/libpcreposix.so.0
+/usr/lib/libpng.so.3
+/usr/lib/libpng12.so.0
+/usr/lib/libpopt.so.0
+/usr/lib/libreadline.so.4
+/usr/lib/libreadline.so.5
+/usr/lib/libslang.so.1
+/usr/lib/libslang.so.2
+/usr/lib/libtiff.so.3
+/usr/lib/libusb-0.1.so.4
+/usr/lib/libvga.so.1
+/usr/lib/libvgagl.so.1
+/usr/lib/libz.so.1
diff --git a/source/a/aaa_elflibs/tracked-files b/source/a/aaa_elflibs/tracked-files
new file mode 100644
index 000000000..16b731ba0
--- /dev/null
+++ b/source/a/aaa_elflibs/tracked-files
@@ -0,0 +1,8 @@
+/lib/libdb-3.1.so
+/lib/libdb-3.3.so
+/lib/libdb-4.2.so
+/lib/libdb-4.4.so
+/lib/libdevmapper.so.1.02
+/usr/lib/libcups.so.2
+/usr/lib/libcupsimage.so.2
+/usr/lib/libgcc_s.so.1
diff --git a/source/a/aaa_terminfo/aaa_terminfo.SlackBuild b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild
new file mode 100755
index 000000000..a1e7d288f
--- /dev/null
+++ b/source/a/aaa_terminfo/aaa_terminfo.SlackBuild
@@ -0,0 +1,74 @@
+#!/bin/sh
+# Copyright 2006, 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=aaa_terminfo
+# Note the version of ncurses in use:
+VERSION=${VERSION:-5.7}
+ARCH=${ARCH:-noarch}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Best do this on a machine with the terminfo
+# updated already. ;-)
+cd $PKG
+
+# I wonder if anything still looks here?
+mkdir -p usr/lib${LIBDIRSUFFIX}
+( cd usr/lib${LIBDIRSUFFIX}
+ rm -rf terminfo
+ ln -sf /usr/share/terminfo terminfo
+)
+
+# This has been the tradition starter collection since forever.
+for dir in l n u v x ; do
+ mkdir -p usr/share/terminfo/$dir
+ ( cd usr/share/terminfo/$dir
+ cp -a /usr/share/terminfo/$dir/* .
+ )
+done
+
+# Remove dangling symlinks:
+( cd usr/share/terminfo
+ for file in $(find . -type l) ; do
+ if [ "$(readlink -e $file)" = "" ]; then
+ rm --verbose $file
+ fi
+ done
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/aaa_terminfo/slack-desc b/source/a/aaa_terminfo/slack-desc
new file mode 100644
index 000000000..d393062f1
--- /dev/null
+++ b/source/a/aaa_terminfo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+aaa_terminfo: aaa_terminfo (a basic collection of terminfo entries)
+aaa_terminfo:
+aaa_terminfo: This is a starter set of files from the terminfo database, which
+aaa_terminfo: should be enough in most cases. The complete set (from which this
+aaa_terminfo: is derived) can be found in the ncurses package.
+aaa_terminfo:
+aaa_terminfo: The terminfo database describes the characteristics of terminals, so
+aaa_terminfo: don't try to log in without this package. :-)
+aaa_terminfo:
+aaa_terminfo:
+aaa_terminfo:
diff --git a/source/a/acl/acl.SlackBuild b/source/a/acl/acl.SlackBuild
new file mode 100755
index 000000000..7ad70d045
--- /dev/null
+++ b/source/a/acl/acl.SlackBuild
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.2.47-1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-acl
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+
+rm -rf acl-$(echo $VERSION | cut -f 1 -d '-')
+tar xzvf $CWD/acl_$VERSION.tar.gz
+cd acl-$(echo $VERSION | cut -f 1 -d '-')
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Add DESTDIR support and improve docs install location:
+zcat $CWD/acl.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit
+
+# Make sure you have the same version of autoconf as the
+# developers did... ;-)
+autoconf
+
+./configure \
+ --prefix=/ \
+ --exec-prefix=/ \
+ --sbindir=/bin \
+ --bindir=/usr/bin \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/lib${LIBDIRSUFFIX} \
+ --includedir=/usr/include \
+ --mandir=/usr/man \
+ --datadir=/usr/share
+
+make || exit 1
+make install DESTDIR=$PKG
+make install-dev DESTDIR=$PKG
+make install-lib DESTDIR=$PKG
+
+mv $PKG/usr/share/doc $PKG/usr
+( cd $PKG/usr/doc ; mv acl acl-$VERSION )
+#It would be nice to keep the same timestamps that the files have in the source:
+cp -a \
+ README doc/COPYING doc/PORTING \
+ $PKG/usr/doc/acl-$VERSION
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a
+
+# Remove bogus files:
+rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libacl.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+# Make /usr/lib${LIBDIRSUFFIX}/libacl.so a symlink to /lib${LIBDIRSUFFIX}:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ rm -f libacl.so
+ ln -sf /lib${LIBDIRSUFFIX}/libacl.so.1 libacl.so
+)
+# Fix shared library perms:
+chmod 755 $PKG/lib${LIBDIRSUFFIX}/*
+
+# Gzip the man pages:
+( cd $PKG/usr/man
+ for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+ gzip -9 */*.?
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/acl-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz
+
diff --git a/source/a/acl/acl.destdir.diff b/source/a/acl/acl.destdir.diff
new file mode 100644
index 000000000..df284724b
--- /dev/null
+++ b/source/a/acl/acl.destdir.diff
@@ -0,0 +1,36 @@
+--- ./include/buildmacros.orig 2007-09-10 21:00:47.000000000 -0500
++++ ./include/buildmacros 2008-03-31 23:58:16.000000000 -0500
+@@ -27,7 +27,7 @@
+ $(LFILES:.l=.o) \
+ $(YFILES:%.y=%.tab.o)
+
+-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
++INSTALL = $(TOPDIR)/install-sh
+
+ SHELL = /bin/sh
+ IMAGES_DIR = $(TOPDIR)/all-images
+--- ./include/builddefs.in.orig 2007-09-10 21:00:47.000000000 -0500
++++ ./include/builddefs.in 2008-03-31 23:58:16.000000000 -0500
+@@ -27,14 +27,14 @@
+ PKG_VERSION = @pkg_version@
+ PKG_PLATFORM = @pkg_platform@
+ PKG_DISTRIBUTION= @pkg_distribution@
+-PKG_BIN_DIR = @bindir@
+-PKG_SBIN_DIR = @sbindir@
+-PKG_LIB_DIR = @libdir@@libdirsuffix@
+-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@
+-PKG_INC_DIR = @includedir@
+-PKG_MAN_DIR = @mandir@
+-PKG_DOC_DIR = @datadir@/doc/@pkg_name@
+-PKG_LOCALE_DIR = @datadir@/locale
++PKG_BIN_DIR = $(DESTDIR)@bindir@
++PKG_SBIN_DIR = $(DESTDIR)@sbindir@
++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@
++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@
++PKG_INC_DIR = $(DESTDIR)@includedir@
++PKG_MAN_DIR = $(DESTDIR)@mandir@
++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@
++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale
+
+ CC = @cc@
+ AWK = @awk@
diff --git a/source/a/acl/slack-desc b/source/a/acl/slack-desc
new file mode 100644
index 000000000..9609c5854
--- /dev/null
+++ b/source/a/acl/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+acl: acl (tools for using POSIX Access Control Lists)
+acl:
+acl: This package contains a set of tools and libraries for manipulating
+acl: POSIX Access Control Lists. POSIX Access Control Lists (defined in
+acl: POSIX 1003.1e draft standard 17) are used to define more fine-grained
+acl: discretionary access rights for files and directories.
+acl:
+acl:
+acl:
+acl:
+acl:
diff --git a/source/a/acpid/acpi_handler.sh b/source/a/acpid/acpi_handler.sh
new file mode 100644
index 000000000..386fa8d05
--- /dev/null
+++ b/source/a/acpid/acpi_handler.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+# Default acpi script that takes an entry for all actions
+
+IFS=${IFS}/
+set $@
+
+case "$1" in
+ button)
+ case "$2" in
+ power) /sbin/init 0
+ ;;
+ *) logger "ACPI action $2 is not defined"
+ ;;
+ esac
+ ;;
+ *)
+ logger "ACPI group $1 / action $2 is not defined"
+ ;;
+esac
diff --git a/source/a/acpid/acpid.SlackBuild b/source/a/acpid/acpid.SlackBuild
new file mode 100755
index 000000000..3010e0136
--- /dev/null
+++ b/source/a/acpid/acpid.SlackBuild
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=1.0.8
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-acpid
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf acpid-$VERSION
+tar xvf $CWD/acpid-$VERSION.tar.?z* || exit 1
+cd acpid-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make || exit 1
+strip acpid acpi_listen
+mkdir -p $PKG/usr/sbin
+cat acpid > $PKG/usr/sbin/acpid
+chmod 755 $PKG/usr/sbin/acpid
+mkdir -p $PKG/usr/bin
+cat acpi_listen > $PKG/usr/bin/acpi_listen
+chmod 755 $PKG/usr/bin/acpi_listen
+mkdir -p $PKG/usr/man/man8
+cat acpid.8 | gzip -9c > $PKG/usr/man/man8/acpid.8.gz
+cat acpi_listen.8 | gzip -9c > $PKG/usr/man/man8/acpi_listen.8.gz
+mkdir -p $PKG/usr/doc/acpid-$VERSION
+cp -a Changelog README \
+ $PKG/usr/doc/acpid-$VERSION
+cp -a samples $PKG/usr/doc/acpid-$VERSION
+mkdir -p $PKG/etc/acpi/events
+zcat $CWD/acpi_handler.sh.gz > $PKG/etc/acpi/acpi_handler.sh.new
+chmod 755 $PKG/etc/acpi/acpi_handler.sh.new
+zcat $CWD/default.gz > $PKG/etc/acpi/events/default
+mkdir -p $PKG/etc/rc.d
+zcat $CWD/rc.acpid.gz > $PKG/etc/rc.d/rc.acpid
+chmod 755 $PKG/etc/rc.d/rc.acpid
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/acpid-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/acpid/default b/source/a/acpid/default
new file mode 100644
index 000000000..db1233908
--- /dev/null
+++ b/source/a/acpid/default
@@ -0,0 +1,18 @@
+# This is the ACPID default configuration, it takes all
+# events and passes them to /etc/acpi/default.sh for further
+# processing.
+
+# event keeps a regular expression matching the event. To get
+# power events only, just use something like "event=button power.*"
+# to catch it.
+# action keeps the command to be executed after an event occurs
+# In case of the power event above, your entry may look this way:
+#event=button power.*
+#action=/sbin/init 0
+
+# Optionally you can specify the placeholder %e. It will pass
+# through the whole kernel event message to the program you've
+# specified.
+
+event=.*
+action=/etc/acpi/acpi_handler.sh %e
diff --git a/source/a/acpid/doinst.sh b/source/a/acpid/doinst.sh
new file mode 100644
index 000000000..c090b9fe5
--- /dev/null
+++ b/source/a/acpid/doinst.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/acpi/acpi_handler.sh.new
diff --git a/source/a/acpid/rc.acpid b/source/a/acpid/rc.acpid
new file mode 100644
index 000000000..32486d17c
--- /dev/null
+++ b/source/a/acpid/rc.acpid
@@ -0,0 +1,36 @@
+#!/bin/sh
+# Start/stop/restart acpid.
+
+# Start acpid:
+acpid_start() {
+ if [ -x /usr/sbin/acpid -a -d /proc/acpi ]; then
+ echo "Starting ACPI daemon: /usr/sbin/acpid"
+ /usr/sbin/acpid
+ fi
+}
+
+# Stop acpid:
+acpid_stop() {
+ killall acpid
+}
+
+# Restart acpid:
+acpid_restart() {
+ acpid_stop
+ sleep 1
+ acpid_start
+}
+
+case "$1" in
+'start')
+ acpid_start
+ ;;
+'stop')
+ acpid_stop
+ ;;
+'restart')
+ acpid_restart
+ ;;
+*)
+ echo "usage $0 start|stop|restart"
+esac
diff --git a/source/a/acpid/slack-desc b/source/a/acpid/slack-desc
new file mode 100644
index 000000000..b72ac8e62
--- /dev/null
+++ b/source/a/acpid/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+acpid: acpid (ACPI daemon)
+acpid:
+acpid: Most modern computers support the Advanced Configuration and Power
+acpid: Interface (ACPI) standard to allow intelligent power management.
+acpid: This package contains acpid, which is the user-space daemon needed in
+acpid: order to make the Linux ACPI support completely functional.
+acpid:
+acpid: ACPI must be compiled into the kernel to run acpid.
+acpid:
+acpid:
+acpid:
diff --git a/source/a/apmd/apmd.SlackBuild b/source/a/apmd/apmd.SlackBuild
new file mode 100755
index 000000000..13e472735
--- /dev/null
+++ b/source/a/apmd/apmd.SlackBuild
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-3.2.2}
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-apmd
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf apmd-$VERSION
+tar xvf $CWD/apmd-$VERSION.tar.bz2 || exit 1
+cd apmd-$VERSION
+
+if [ "$ARCH" = "x86_64" ]; then
+ sed -i -e "s#/lib#/lib64#" Makefile
+fi
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" make $NUMJOBS || exit 1
+CFLAGS="$SLKCFLAGS" make install DESTDIR=$PKG
+
+( cd xbattery
+ cp ../.libs/libapm.a ..
+ xmkmf
+ make -j3
+)
+
+mkdir -p $PKG/usr/bin
+cat xapm > $PKG/usr/bin/xapm
+cat xbattery/xbattery > $PKG/usr/bin/xbattery
+chmod 755 $PKG/usr/bin/{xapm,xbattery}
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/man/man1
+cat xbattery/xbattery.man | gzip -9c > $PKG/usr/man/man1/xbattery.1.gz
+for page in apm.1 apmsleep.1 on_ac_power.1 xapm.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/${page}.gz
+done
+mkdir -p $PKG/usr/man/man8
+cat apmd.8 | gzip -9c > $PKG/usr/man/man8/apmd.8.gz
+mkdir -p $PKG/usr/man/fr/man1
+cat apmsleep.fr.1 | gzip -9c > $PKG/usr/man/fr/man1/apmsleep.1.gz
+
+mkdir -p $PKG/usr/doc/apmd-$VERSION
+cp -a \
+ AUTHORS COPYING LSM README apmlib.COPYING apmsleep.README \
+ $PKG/usr/doc/apmd-$VERSION
+cp -a xbattery/README $PKG/usr/doc/apmd-$VERSION/README.xbattery
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -c n -l y $TMP/apmd-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/apmd/slack-desc b/source/a/apmd/slack-desc
new file mode 100644
index 000000000..a6f5c9a65
--- /dev/null
+++ b/source/a/apmd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+apmd: apmd (Advanced Power Management daemon)
+apmd:
+apmd: apmd is an APM monitoring daemon, and works in conjunction with the
+apmd: APM BIOS driver in the kernel. Apmd (and the included tools) handle
+apmd: tasks such as automatically putting a laptop into suspend when the
+apmd: power level drop below a certain point. This package also includes
+apmd: the graphical power management tools xapm and xbattery.
+apmd:
+apmd: The apmd tools were written by Rik Faith and are maintained by
+apmd: Avery Pennarun. xbattery was written by Nathan Sidwell.
+apmd:
diff --git a/source/a/attr/attr.SlackBuild b/source/a/attr/attr.SlackBuild
new file mode 100755
index 000000000..9c16a8d60
--- /dev/null
+++ b/source/a/attr/attr.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.4.43-1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-attr
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf attr-$(echo $VERSION | cut -f 1 -d '-')
+tar xzvf $CWD/attr_$VERSION.tar.gz
+cd attr-$(echo $VERSION | cut -f 1 -d '-')
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Add DESTDIR support and improve docs install location:
+zcat $CWD/attr.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+
+# The 1/2 assed job has begun... the onus of running autoconf should never
+# be placed on packagers. They may not have the same autotools versions.
+autoconf
+
+./configure \
+ --prefix=/ \
+ --exec-prefix=/ \
+ --sbindir=/bin \
+ --bindir=/usr/bin \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/lib${LIBDIRSUFFIX} \
+ --includedir=/usr/include \
+ --mandir=/usr/man \
+ --datadir=/usr/share
+
+make || exit 1
+make install DESTDIR=$PKG
+make install-dev DESTDIR=$PKG
+make install-lib DESTDIR=$PKG
+
+mv $PKG/usr/share/doc $PKG/usr
+( cd $PKG/usr/doc ; mv attr attr-$VERSION )
+#It would be nice to keep the same timestamps that the files have in the source:
+rm -rf $PKG/usr/doc/attr-$VERSION/ea-conv
+cp -a \
+ README doc/COPYING doc/PORTING doc/ea-conv \
+ $PKG/usr/doc/attr-$VERSION
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a
+
+# Remove bogus files:
+rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/libattr.so $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+# Make /usr/lib${LIBDIRSUFFIX}/libattr.so a symlink to /lib${LIBDIRSUFFIX}:
+( cd $PKG/usr/lib${LIBDIRSUFFIX} ; rm -f libattr.so ; ln -sf /lib${LIBDIRSUFFIX}/libattr.so.1 libattr.so )
+# Fix shared library perms:
+chmod 755 $PKG/lib${LIBDIRSUFFIX}/*
+
+# Gzip the man pages:
+( cd $PKG/usr/man
+ for i in `find . -type l` ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+ gzip -9 */*.?
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/attr-$(echo $VERSION | tr - _ )-$ARCH-$BUILD.txz
+
diff --git a/source/a/attr/attr.destdir.diff b/source/a/attr/attr.destdir.diff
new file mode 100644
index 000000000..ced69eefb
--- /dev/null
+++ b/source/a/attr/attr.destdir.diff
@@ -0,0 +1,36 @@
+--- ./include/buildmacros.orig 2007-09-10 21:00:49.000000000 -0500
++++ ./include/buildmacros 2008-03-31 23:54:02.000000000 -0500
+@@ -27,7 +27,7 @@
+ $(LFILES:.l=.o) \
+ $(YFILES:%.y=%.tab.o)
+
+-INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
++INSTALL = $(TOPDIR)/install-sh
+
+ SHELL = /bin/sh
+ IMAGES_DIR = $(TOPDIR)/all-images
+--- ./include/builddefs.in.orig 2007-09-10 21:00:49.000000000 -0500
++++ ./include/builddefs.in 2008-03-31 23:54:02.000000000 -0500
+@@ -27,14 +27,14 @@
+ PKG_VERSION = @pkg_version@
+ PKG_PLATFORM = @pkg_platform@
+ PKG_DISTRIBUTION= @pkg_distribution@
+-PKG_BIN_DIR = @bindir@
+-PKG_SBIN_DIR = @sbindir@
+-PKG_LIB_DIR = @libdir@@libdirsuffix@
+-PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@
+-PKG_INC_DIR = @includedir@/attr
+-PKG_MAN_DIR = @mandir@
+-PKG_DOC_DIR = @datadir@/doc/@pkg_name@
+-PKG_LOCALE_DIR = @datadir@/locale
++PKG_BIN_DIR = $(DESTDIR)@bindir@
++PKG_SBIN_DIR = $(DESTDIR)@sbindir@
++PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@
++PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@
++PKG_INC_DIR = $(DESTDIR)@includedir@/attr
++PKG_MAN_DIR = $(DESTDIR)@mandir@
++PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@
++PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale
+
+ CC = @cc@
+ AWK = @awk@
diff --git a/source/a/attr/build b/source/a/attr/build
new file mode 100644
index 000000000..52b6039a1
--- /dev/null
+++ b/source/a/attr/build
@@ -0,0 +1,7 @@
+I think I used this build order... -P.
+
+1. attr
+2. acl
+3. xfsprogs
+4. dmapi
+5. xfsdump
diff --git a/source/a/attr/slack-desc b/source/a/attr/slack-desc
new file mode 100644
index 000000000..e9220f2fb
--- /dev/null
+++ b/source/a/attr/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+attr: attr (tools for using extended attributes on filesystems)
+attr:
+attr: This package contains a set of tools for manipulating extended
+attr: attributes (name:value pairs associated permanently with files and
+attr: directories) on filesystem objects, and the library and header files
+attr: needed to develop programs which make use of extended attributes.
+attr: Extended attributes are used to provide additional functionality to
+attr: a filesystem. For example, Access Control Lists (ACLs) are
+attr: implemented using extended attributes.
+attr:
+attr:
diff --git a/source/a/bash/bash.SlackBuild b/source/a/bash/bash.SlackBuild
new file mode 100755
index 000000000..04c8ff953
--- /dev/null
+++ b/source/a/bash/bash.SlackBuild
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=3.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-bash
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Determine bash patchlevel:
+PATCHLEVEL=`( cd $CWD/patches ; /bin/ls *gz | tail -1 | cut -f 2 -d - | cut -f 1 -d . 2> /dev/null )`
+if [ "$PATCHLEVEL" = "" ]; then
+ PATCHLEVEL=0
+fi
+
+cd $TMP
+rm -rf bash-$VERSION
+tar xzvf $CWD/bash-$VERSION.tar.gz || exit 1
+cd bash-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+for patch in $CWD/patches/bash* ; do
+ zcat $patch | patch -p0 --verbose || exit 1
+done
+CFLAGS="$SLKCFLAGS" \
+./configure --prefix=/usr $ARCH-slackware-linux
+make -j3 || exit 1
+make install DESTDIR=$PKG
+mkdir -p $PKG/bin
+mv $PKG/usr/bin/bash $PKG/bin/bash2.new
+strip --strip-unneeded $PKG/bin/bash2.new
+# We don't include the "bashbug" script.
+rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1
+gzip -9 $PKG/usr/man/man1/*
+mkdir -p $PKG/usr/doc/bash-$VERSION
+cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \
+ README Y2K doc/FAQ doc/INTRO $PKG/usr/doc/bash-$VERSION
+cd doc
+groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt
+# bash.1 is already installed by "make install"
+for page in builtins.1 rbash.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/bash-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/bash/doinst.sh b/source/a/bash/doinst.sh
new file mode 100644
index 000000000..21760838d
--- /dev/null
+++ b/source/a/bash/doinst.sh
@@ -0,0 +1,18 @@
+if [ -r bin/bash ]; then
+ mv bin/bash bin/bash.old
+fi
+mv bin/bash2.new bin/bash
+if [ -f bin/bash.old ]; then
+ rm -f bin/bash.old
+fi
+if [ ! -r etc/shells ]; then
+ touch etc/shells
+ chmod 644 etc/shells
+fi
+if fgrep "/bin/bash" etc/shells 1> /dev/null 2> /dev/null ; then
+ true
+else
+ echo "/bin/bash" >> etc/shells
+fi
+( cd usr/bin ; rm -rf bash )
+( cd usr/bin ; ln -sf /bin/bash bash )
diff --git a/source/a/bash/patches/bash31-001 b/source/a/bash/patches/bash31-001
new file mode 100644
index 000000000..4a10a02c1
--- /dev/null
+++ b/source/a/bash/patches/bash31-001
@@ -0,0 +1,104 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-001
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <20051212015924.GA820@toucan.gentoo.org> <20051214034438.GK1863@toucan.gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00030.html http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00041.html
+
+Bug-Description:
+
+There are parsing problems with compound assignments in several contexts,
+including as arguments to builtins like `local', `eval', and `let', and
+as multiple assignments in a single command.
+
+Patch:
+
+*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005
+--- parse.y Fri Dec 16 20:43:07 2005
+***************
+*** 3696,3700 ****
+ b = builtin_address_internal (token, 0);
+ if (b && (b->flags & ASSIGNMENT_BUILTIN))
+! parser_state |= PST_ASSIGNOK;
+ }
+
+--- 3696,3702 ----
+ b = builtin_address_internal (token, 0);
+ if (b && (b->flags & ASSIGNMENT_BUILTIN))
+! parser_state |= PST_ASSIGNOK;
+! else if (STREQ (token, "eval") || STREQ (token, "let"))
+! parser_state |= PST_ASSIGNOK;
+ }
+
+***************
+*** 4687,4691 ****
+ {
+ WORD_LIST *wl, *rl;
+! int tok, orig_line_number, orig_token_size;
+ char *saved_token, *ret;
+
+--- 4689,4693 ----
+ {
+ WORD_LIST *wl, *rl;
+! int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
+ char *saved_token, *ret;
+
+***************
+*** 4693,4696 ****
+--- 4695,4699 ----
+ orig_token_size = token_buffer_size;
+ orig_line_number = line_number;
++ orig_last_token = last_read_token;
+
+ last_read_token = WORD; /* WORD to allow reserved words here */
+***************
+*** 4699,4702 ****
+--- 4702,4707 ----
+ token_buffer_size = 0;
+
++ assignok = parser_state&PST_ASSIGNOK; /* XXX */
++
+ wl = (WORD_LIST *)NULL; /* ( */
+ parser_state |= PST_COMPASSIGN;
+***************
+*** 4741,4745 ****
+ }
+
+! last_read_token = WORD;
+ if (wl)
+ {
+--- 4746,4750 ----
+ }
+
+! last_read_token = orig_last_token; /* XXX - was WORD? */
+ if (wl)
+ {
+***************
+*** 4753,4756 ****
+--- 4758,4765 ----
+ if (retlenp)
+ *retlenp = (ret && *ret) ? strlen (ret) : 0;
++
++ if (assignok)
++ parser_state |= PST_ASSIGNOK;
++
+ return ret;
+ }
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 0
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-002 b/source/a/bash/patches/bash31-002
new file mode 100644
index 000000000..fac9a99af
--- /dev/null
+++ b/source/a/bash/patches/bash31-002
@@ -0,0 +1,239 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-002
+
+Bug-Reported-by: vapier@gentoo.org
+Bug-Reference-ID: <20051210223218.GD3324@toucan.gentoo.org>
+Bug-Reference-URL:http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00021.html
+
+Bug-Description:
+
+This corrects several omissions in the bash documentation: It adds the new
+options to `ulimit', the exact expansions for `case' patterns, clarification
+of the language concerning the return value of `[[', and updated version
+information.
+
+Patch:
+
+*** ../bash-3.1/doc/bash.1 Wed Oct 12 11:40:52 2005
+--- doc/bash.1 Wed Dec 28 19:58:54 2005
+***************
+*** 7,16 ****
+ .\" chet@po.cwru.edu
+ .\"
+! .\" Last Change: Sat Aug 27 13:28:44 EDT 2005
+ .\"
+ .\" bash_builtins, strip all but Built-Ins section
+ .if \n(zZ=1 .ig zZ
+ .if \n(zY=1 .ig zY
+! .TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1"
+ .\"
+ .\" There's some problem with having a `@'
+--- 7,16 ----
+ .\" chet@po.cwru.edu
+ .\"
+! .\" Last Change: Wed Dec 28 19:58:45 EST 2005
+ .\"
+ .\" bash_builtins, strip all but Built-Ins section
+ .if \n(zZ=1 .ig zZ
+ .if \n(zY=1 .ig zY
+! .TH BASH 1 "2005 Dec 28" "GNU Bash-3.1"
+ .\"
+ .\" There's some problem with having a `@'
+***************
+*** 678,683 ****
+ is enabled, the match is performed without regard to the case
+ of alphabetic characters.
+! The return value is 0 if the string matches or does not match
+! the pattern, respectively, and 1 otherwise.
+ Any part of the pattern may be quoted to force it to be matched as a
+ string.
+--- 678,683 ----
+ is enabled, the match is performed without regard to the case
+ of alphabetic characters.
+! The return value is 0 if the string matches (\fB==\fP) or does not match
+! (\fB!=\fP) the pattern, and 1 otherwise.
+ Any part of the pattern may be quoted to force it to be matched as a
+ string.
+***************
+*** 808,811 ****
+--- 808,817 ----
+ .B Pathname Expansion
+ below).
++ The \fIword\fP is expanded using tilde
++ expansion, parameter and variable expansion, arithmetic substituion,
++ command substitution, process substitution and quote removal.
++ Each \fIpattern\fP examined is expanded using tilde
++ expansion, parameter and variable expansion, arithmetic substituion,
++ command substitution, and process substitution.
+ If the shell option
+ .B nocasematch
+***************
+*** 8485,8489 ****
+ none are found.
+ .TP
+! \fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]]
+ Provides control over the resources available to the shell and to
+ processes started by it, on systems that allow such control.
+--- 8485,8489 ----
+ none are found.
+ .TP
+! \fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]]
+ Provides control over the resources available to the shell and to
+ processes started by it, on systems that allow such control.
+***************
+*** 8524,8527 ****
+--- 8524,8530 ----
+ The maximum size of files created by the shell
+ .TP
++ .B \-i
++ The maximum number of pending signals
++ .TP
+ .B \-l
+ The maximum size that may be locked into memory
+***************
+*** 8537,8540 ****
+--- 8540,8546 ----
+ The pipe size in 512-byte blocks (this may not be set)
+ .TP
++ .B \-q
++ The maximum number of bytes in POSIX message queues
++ .TP
+ .B \-s
+ The maximum stack size
+***************
+*** 8548,8551 ****
+--- 8554,8560 ----
+ .B \-v
+ The maximum amount of virtual memory available to the shell
++ .TP
++ .B \-x
++ The maximum number of file locks
+ .PD
+ .PP
+*** ../bash-3.1/doc/bashref.texi Mon Oct 3 15:07:21 2005
+--- doc/bashref.texi Fri Dec 30 10:50:39 2005
+***************
+*** 962,967 ****
+ is enabled, the match is performed without regard to the case
+ of alphabetic characters.
+! The return value is 0 if the string matches or does not match
+! the pattern, respectively, and 1 otherwise.
+ Any part of the pattern may be quoted to force it to be matched as a
+ string.
+--- 962,967 ----
+ is enabled, the match is performed without regard to the case
+ of alphabetic characters.
+! The return value is 0 if the string matches (@samp{==}) or does not
+! match (@samp{!=})the pattern, and 1 otherwise.
+ Any part of the pattern may be quoted to force it to be matched as a
+ string.
+***************
+*** 2599,2603 ****
+ or inconvenient to obtain with separate utilities.
+
+! This section briefly the builtins which Bash inherits from
+ the Bourne Shell, as well as the builtin commands which are unique
+ to or have been extended in Bash.
+--- 2597,2601 ----
+ or inconvenient to obtain with separate utilities.
+
+! This section briefly describes the builtins which Bash inherits from
+ the Bourne Shell, as well as the builtin commands which are unique
+ to or have been extended in Bash.
+***************
+*** 3834,3838 ****
+ @btindex ulimit
+ @example
+! ulimit [-acdflmnpstuvSH] [@var{limit}]
+ @end example
+ @code{ulimit} provides control over the resources available to processes
+--- 3834,3838 ----
+ @btindex ulimit
+ @example
+! ulimit [-acdfilmnpqstuvxSH] [@var{limit}]
+ @end example
+ @code{ulimit} provides control over the resources available to processes
+***************
+*** 3858,3861 ****
+--- 3858,3864 ----
+ The maximum size of files created by the shell.
+
++ @item -i
++ The maximum number of pending signals.
++
+ @item -l
+ The maximum size that may be locked into memory.
+***************
+*** 3870,3873 ****
+--- 3873,3879 ----
+ The pipe buffer size.
+
++ @item -q
++ The maximum number of bytes in POSIX message queues.
++
+ @item -s
+ The maximum stack size.
+***************
+*** 3882,3885 ****
+--- 3888,3894 ----
+ The maximum amount of virtual memory available to the process.
+
++ @item -x
++ The maximum number of file locks.
++
+ @end table
+
+***************
+*** 4090,4095 ****
+
+ @item -x
+! Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP
+! commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands
+ and their arguments or associated word lists after they are
+ expanded and before they are executed. The value of the @env{PS4}
+--- 4103,4108 ----
+
+ @item -x
+! Print a trace of simple commands, @code{for} commands, @code{case}
+! commands, @code{select} commands, and arithmetic @code{for} commands
+ and their arguments or associated word lists after they are
+ expanded and before they are executed. The value of the @env{PS4}
+*** ../bash-3.1/doc/version.texi Tue Sep 20 14:52:56 2005
+--- doc/version.texi Fri Dec 30 10:50:58 2005
+***************
+*** 3,10 ****
+ @end ignore
+
+! @set LASTCHANGE Mon Sep 5 11:47:04 EDT 2005
+
+! @set EDITION 3.1-beta1
+! @set VERSION 3.1-beta1
+! @set UPDATED 5 September 2005
+! @set UPDATED-MONTH September 2005
+--- 3,10 ----
+ @end ignore
+
+! @set LASTCHANGE Fri Dec 30 10:50:51 EST 2005
+
+! @set EDITION 3.1
+! @set VERSION 3.1
+! @set UPDATED 30 December 2005
+! @set UPDATED-MONTH December 2005
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 1
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-003 b/source/a/bash/patches/bash31-003
new file mode 100644
index 000000000..cd36dc83e
--- /dev/null
+++ b/source/a/bash/patches/bash31-003
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-003
+
+Bug-Reported-by: Adam Buraczewski <adamb@nor.pl>
+Bug-Reference-ID: <200512210950.jBL9o4C2008608@localhost.localdomain>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00055.html
+
+Bug-Description:
+
+A missing #define guard causes bash to not compile when readline is not
+configured in, either as the result of explicit disabling or when the
+`--enable-minimal-config' option is given to configure.
+
+Patch:
+
+*** ../bash-3.1/variables.c Sat Nov 12 21:22:37 2005
+--- variables.c Mon Dec 26 13:34:03 2005
+***************
+*** 861,867 ****
+--- 863,871 ----
+ char val[INT_STRLEN_BOUND(int) + 1], *v;
+
++ #if defined (READLINE)
+ /* If we are currently assigning to LINES or COLUMNS, don't do anything. */
+ if (winsize_assignment)
+ return;
++ #endif
+
+ v = inttostr (lines, val, sizeof (val));
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 2
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-004 b/source/a/bash/patches/bash31-004
new file mode 100644
index 000000000..4f9d578ef
--- /dev/null
+++ b/source/a/bash/patches/bash31-004
@@ -0,0 +1,48 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-004
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <20051223172359.GF14579@toucan.gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2005-12/msg00062.html
+
+Bug-Description:
+
+A local array variable declared at function scope that shadows a variable
+of the same name declared in a previous scope did not create a separate
+variable instance, but used the previous one.
+
+Patch:
+
+*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005
+--- subst.c Fri Dec 30 12:11:53 2005
+***************
+*** 2188,2192 ****
+ {
+ v = find_variable (name);
+! if (v == 0 || array_p (v) == 0)
+ v = make_local_array_variable (name);
+ v = assign_array_var_from_string (v, value, flags);
+--- 2188,2192 ----
+ {
+ v = find_variable (name);
+! if (v == 0 || array_p (v) == 0 || v->context != variable_context)
+ v = make_local_array_variable (name);
+ v = assign_array_var_from_string (v, value, flags);
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 3
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-005 b/source/a/bash/patches/bash31-005
new file mode 100644
index 000000000..b6d5cdca8
--- /dev/null
+++ b/source/a/bash/patches/bash31-005
@@ -0,0 +1,54 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-005
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+When tilde expansion fails, POSIX leaves it unspecified whether or not the
+word undergoes the additional word expansions. Bash-3.1 as distributed
+skipped the rest of the expansions; this patch restores the bash-3.0 behavior.
+
+This means that something like
+ USER=ratbert
+ echo ~$USER
+
+will echo `~ratbert' rather than `~$USER'.
+
+Patch:
+
+*** ../bash-3.1/subst.c Mon Oct 24 09:51:13 2005
+--- subst.c Fri Dec 30 12:11:53 2005
+***************
+*** 6796,6799 ****
+--- 6823,6832 ----
+ {
+ temp1 = bash_tilde_expand (temp, tflag);
++ if (temp1 && *temp1 == '~' && STREQ (temp, temp1))
++ {
++ FREE (temp);
++ FREE (temp1);
++ goto add_character; /* tilde expansion failed */
++ }
+ free (temp);
+ temp = temp1;
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 4
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-006 b/source/a/bash/patches/bash31-006
new file mode 100644
index 000000000..8d7499381
--- /dev/null
+++ b/source/a/bash/patches/bash31-006
@@ -0,0 +1,58 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-006
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <200601120613.11907.vapier@gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00045.html
+
+Bug-Description:
+
+Under some circumstances, Bash can use an incorrect setting for the flag
+that indicates whether or not the terminal can auto-wrap, resulting in line-
+wrapping errors.
+
+Patch:
+
+*** ../bash-3.1/lib/readline/terminal.c Sat Nov 12 20:46:54 2005
+--- lib/readline/terminal.c Tue Jan 31 10:57:54 2006
+***************
+*** 123,127 ****
+
+ /* Non-zero means the terminal can auto-wrap lines. */
+! int _rl_term_autowrap;
+
+ /* Non-zero means that this terminal has a meta key. */
+--- 126,130 ----
+
+ /* Non-zero means the terminal can auto-wrap lines. */
+! int _rl_term_autowrap = -1;
+
+ /* Non-zero means that this terminal has a meta key. */
+***************
+*** 275,278 ****
+--- 278,284 ----
+ int rows, cols;
+ {
++ if (_rl_term_autowrap == -1)
++ _rl_init_terminal_io (rl_terminal_name);
++
+ if (rows > 0)
+ _rl_screenheight = rows;
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 5
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-007 b/source/a/bash/patches/bash31-007
new file mode 100644
index 000000000..6233786c4
--- /dev/null
+++ b/source/a/bash/patches/bash31-007
@@ -0,0 +1,121 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-007
+
+Bug-Reported-by: Tim Waugh <twaugh@redhat.com>, Laird Breyer <laird@lbreyer.com>
+Bug-Reference-ID: <20060105174434.GY16000@redhat.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00009.html
+ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347695
+
+Bug-Description:
+
+When the number of saved jobs exceeds the initial size of the jobs array
+(4096 slots), the array must be compacted and reallocated. An error in
+the code to do that could cause a segmentation fault.
+
+Patch:
+
+*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
+--- jobs.c Wed Feb 1 13:55:38 2006
+***************
+*** 845,851 ****
+ {
+ sigset_t set, oset;
+! int nsize, i, j;
+ JOB **nlist;
+
+ nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
+ nsize *= JOB_SLOTS;
+--- 888,895 ----
+ {
+ sigset_t set, oset;
+! int nsize, i, j, ncur, nprev;
+ JOB **nlist;
+
++ ncur = nprev = NO_JOB;
+ nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
+ nsize *= JOB_SLOTS;
+***************
+*** 855,869 ****
+
+ BLOCK_CHILD (set, oset);
+! nlist = (JOB **) xmalloc (nsize * sizeof (JOB *));
+ for (i = j = 0; i < js.j_jobslots; i++)
+ if (jobs[i])
+! nlist[j++] = jobs[i];
+
+ js.j_firstj = 0;
+! js.j_lastj = (j > 0) ? j - 1: 0;
+ js.j_jobslots = nsize;
+
+! free (jobs);
+! jobs = nlist;
+
+ UNBLOCK_CHILD (oset);
+--- 899,947 ----
+
+ BLOCK_CHILD (set, oset);
+! nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
+!
+ for (i = j = 0; i < js.j_jobslots; i++)
+ if (jobs[i])
+! {
+! if (i == js.j_current)
+! ncur = j;
+! if (i == js.j_previous)
+! nprev = j;
+! nlist[j++] = jobs[i];
+! }
+!
+! #if defined (DEBUG)
+! itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
+! itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
+! itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
+! #endif
+
+ js.j_firstj = 0;
+! js.j_lastj = (j > 0) ? j - 1 : 0;
+! js.j_njobs = j;
+ js.j_jobslots = nsize;
+
+! /* Zero out remaining slots in new jobs list */
+! for ( ; j < nsize; j++)
+! nlist[j] = (JOB *)NULL;
+!
+! if (jobs != nlist)
+! {
+! free (jobs);
+! jobs = nlist;
+! }
+!
+! if (ncur != NO_JOB)
+! js.j_current = ncur;
+! if (nprev != NO_JOB)
+! js.j_previous = nprev;
+!
+! /* Need to reset these */
+! if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
+! reset_current ();
+!
+! #ifdef DEBUG
+! itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
+! #endif
+
+ UNBLOCK_CHILD (oset);
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 6
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-008 b/source/a/bash/patches/bash31-008
new file mode 100644
index 000000000..3427b64e0
--- /dev/null
+++ b/source/a/bash/patches/bash31-008
@@ -0,0 +1,51 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-008
+
+Bug-Reported-by: Ingemar Nilsson <init@kth.se>
+Bug-Reference-ID: <43C38D35.7020404@kth.se>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00044.html
+
+Bug-Description:
+
+In some cases, bash inappropriately allows SIGINT from the terminal to
+reach background processes.
+
+Patch:
+
+*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
+--- jobs.c Wed Feb 1 13:55:38 2006
+***************
+*** 2199,2203 ****
+ wait_sigint_received = 0;
+ if (job_control == 0)
+! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+
+ termination_state = last_command_exit_value;
+--- 2298,2306 ----
+ wait_sigint_received = 0;
+ if (job_control == 0)
+! {
+! old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+! if (old_sigint_handler == SIG_IGN)
+! set_signal_handler (SIGINT, old_sigint_handler);
+! }
+
+ termination_state = last_command_exit_value;
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 7
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-009 b/source/a/bash/patches/bash31-009
new file mode 100644
index 000000000..8ef229585
--- /dev/null
+++ b/source/a/bash/patches/bash31-009
@@ -0,0 +1,66 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-009
+
+Bug-Reported-by: Joshua Neuheisel <jneuheisel@gmail.com>
+Bug-Reference-ID: <25d873330601140820v4ad8efd2t8bf683b073c138b3@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00062.html
+
+Bug-Description:
+
+Under some circumstances, background (asynchronous) jobs can set the terminal
+process group incorrectly. This can cause a foreground process (including
+the foreground shell) to get read errors and exit.
+
+Patch:
+
+*** ../bash-3.1/jobs.c Fri Nov 11 23:13:27 2005
+--- jobs.c Wed Feb 1 13:55:38 2006
+***************
+*** 620,625 ****
+ * the parent gives it away.
+ *
+ */
+! if (job_control && newjob->pgrp)
+ give_terminal_to (newjob->pgrp, 0);
+ }
+--- 634,642 ----
+ * the parent gives it away.
+ *
++ * Don't give the terminal away if this shell is an asynchronous
++ * subshell.
++ *
+ */
+! if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
+ give_terminal_to (newjob->pgrp, 0);
+ }
+***************
+*** 1656,1660 ****
+ shell's process group (we could be in the middle of a
+ pipeline, for example). */
+! if (async_p == 0 && pipeline_pgrp != shell_pgrp)
+ give_terminal_to (pipeline_pgrp, 0);
+
+--- 1743,1747 ----
+ shell's process group (we could be in the middle of a
+ pipeline, for example). */
+! if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
+ give_terminal_to (pipeline_pgrp, 0);
+
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 8
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-010 b/source/a/bash/patches/bash31-010
new file mode 100644
index 000000000..066a3242d
--- /dev/null
+++ b/source/a/bash/patches/bash31-010
@@ -0,0 +1,54 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-010
+
+Bug-Reported-by: vw@vonwolff.de
+Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html
+
+Bug-Description:
+
+There is a difference in behavior between bash-3.0 and bash-3.1 involving
+parsing of single- and double-quoted strings occurring in old-style
+command substitution. The difference has to do with how backslashes are
+processed. This patch restores a measure of backwards compatibility while
+the question of POSIX conformance and ultimately correct behavior is discussed.
+
+Patch:
+
+*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005
+--- parse.y Wed Jan 25 14:55:18 2006
+***************
+*** 2899,2903 ****
+ else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
+ {
+! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
+ goto add_nestret;
+ }
+--- 2901,2909 ----
+ else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
+ {
+! /* Add P_ALLOWESC so backslash quotes the next character and
+! shell_getc does the right thing with \<newline>. We do this for
+! a measure of backwards compatibility -- it's not strictly the
+! right POSIX thing. */
+! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_ALLOWESC);
+ goto add_nestret;
+ }
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 9
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-011 b/source/a/bash/patches/bash31-011
new file mode 100644
index 000000000..025b83907
--- /dev/null
+++ b/source/a/bash/patches/bash31-011
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-011
+
+Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
+Bug-Reference-ID: <E1EvwxP-0004LD-GC@localhost.localdomain>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00033.html
+
+Bug-Description:
+
+A change in bash-3.1 caused the single quotes to be stripped from ANSI-C
+quoting inside double-quoted command substitutions.
+
+Patch:
+
+*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005
+--- parse.y Wed Jan 25 14:55:18 2006
+***************
+*** 2908,2912 ****
+ count--;
+ if (ch == '(') /* ) */
+! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
+ else if (ch == '{') /* } */
+ nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
+--- 2914,2918 ----
+ count--;
+ if (ch == '(') /* ) */
+! nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE);
+ else if (ch == '{') /* } */
+ nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 10
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-012 b/source/a/bash/patches/bash31-012
new file mode 100644
index 000000000..b0ddb3a48
--- /dev/null
+++ b/source/a/bash/patches/bash31-012
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-012
+
+Bug-Reported-by: Alexander Kshevetskiy <alex@dgap.mipt.ru>
+Bug-Reference-ID: <308374997.20060124175849@dgap.mipt.ru>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00097.html
+
+Bug-Description:
+
+There is a parsing problem involving parentheses in assignment statements
+that causes words to be terminated prematurely.
+
+Patch:
+
+*** ../bash-3.1/parse.y Fri Nov 11 23:14:18 2005
+--- parse.y Wed Jan 25 14:55:18 2006
+***************
+*** 3579,3583 ****
+ all_digit_token = 0;
+ compound_assignment = 1;
+! #if 0
+ goto next_character;
+ #else
+--- 3584,3588 ----
+ all_digit_token = 0;
+ compound_assignment = 1;
+! #if 1
+ goto next_character;
+ #else
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 11
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-013 b/source/a/bash/patches/bash31-013
new file mode 100644
index 000000000..93c7c8fc8
--- /dev/null
+++ b/source/a/bash/patches/bash31-013
@@ -0,0 +1,44 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-013
+
+Bug-Reported-by: Bob Rossi <bob@brasko.net>
+Bug-Reference-ID: <43F60606.80708@case.edu>
+Bug-Reference-URL:
+
+Bug-Description:
+
+In some cases, readline will reference freed memory when attempting to
+display a portion of the prompt.
+
+Patch:
+
+*** ../bash-3.1-patched/lib/readline/readline.c Mon Jul 4 22:29:35 2005
+--- lib/readline/readline.c Fri Feb 17 22:54:22 2006
+***************
+*** 282,287 ****
+--- 282,288 ----
+ {
+ FREE (rl_prompt);
+ rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
++ rl_display_prompt = rl_prompt ? rl_prompt : "";
+
+ rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
+ return 0;
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 12
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-014 b/source/a/bash/patches/bash31-014
new file mode 100644
index 000000000..82ff9b408
--- /dev/null
+++ b/source/a/bash/patches/bash31-014
@@ -0,0 +1,105 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-014
+
+Bug-Reported-by: Mike Stroyan <mike.stroyan@hp.com>
+Bug-Reference-ID: <20060203191607.GC27614@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00004.html
+
+Bug-Description:
+
+The displayed search prompt is corrupted when using non-incremental
+searches in vi and emacs mode if the prompt contains non-printing
+characters or spans multiple lines. The prompt is expanded more than
+once; the second time without the escape sequences that protect non-
+printing characters from the length calculations.
+
+Patch:
+
+*** ../bash-3.1-patched/lib/readline/display.c Wed Nov 30 14:05:02 2005
+--- lib/readline/display.c Sat Feb 18 12:14:58 2006
+***************
+*** 1983,1993 ****
+ int pchar;
+ {
+ int len;
+! char *pmt;
+
+ rl_save_prompt ();
+
+! if (saved_local_prompt == 0)
+ {
+ len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
+ pmt = (char *)xmalloc (len + 2);
+--- 1998,2012 ----
+ int pchar;
+ {
+ int len;
+! char *pmt, *p;
+
+ rl_save_prompt ();
+
+! /* We've saved the prompt, and can do anything with the various prompt
+! strings we need before they're restored. We want the unexpanded
+! portion of the prompt string after any final newline. */
+! p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
+! if (p == 0)
+ {
+ len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
+ pmt = (char *)xmalloc (len + 2);
+***************
+*** 1998,2016 ****
+ }
+ else
+ {
+! len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
+ pmt = (char *)xmalloc (len + 2);
+ if (len)
+! strcpy (pmt, saved_local_prompt);
+ pmt[len] = pchar;
+ pmt[len+1] = '\0';
+! local_prompt = savestring (pmt);
+! prompt_last_invisible = saved_last_invisible;
+! prompt_visible_length = saved_visible_length + 1;
+! }
+
+ prompt_physical_chars = saved_physical_chars + 1;
+-
+ return pmt;
+ }
+
+--- 2017,2033 ----
+ }
+ else
+ {
+! p++;
+! len = strlen (p);
+ pmt = (char *)xmalloc (len + 2);
+ if (len)
+! strcpy (pmt, p);
+ pmt[len] = pchar;
+ pmt[len+1] = '\0';
+! }
+
++ /* will be overwritten by expand_prompt, called from rl_message */
+ prompt_physical_chars = saved_physical_chars + 1;
+ return pmt;
+ }
+
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 13
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-015 b/source/a/bash/patches/bash31-015
new file mode 100644
index 000000000..deb9eed58
--- /dev/null
+++ b/source/a/bash/patches/bash31-015
@@ -0,0 +1,106 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-015
+
+Bug-Reported-by: Benoit Vila
+Bug-Reference-ID: <43FCA614.1090108@free.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html
+
+Bug-Description:
+
+A problem with the extended globbing code prevented dots from matching
+filenames when used in some extended matching patterns.
+
+Patch:
+
+*** ../bash-3.1-patched/lib/glob/sm_loop.c Sun Oct 16 21:21:04 2005
+--- lib/glob/sm_loop.c Mon Feb 27 17:18:43 2006
+***************
+*** 639,643 ****
+ CHAR *pnext; /* pointer to next sub-pattern */
+ CHAR *srest; /* pointer to rest of string */
+! int m1, m2;
+
+ #if DEBUG_MATCHING
+--- 638,642 ----
+ CHAR *pnext; /* pointer to next sub-pattern */
+ CHAR *srest; /* pointer to rest of string */
+! int m1, m2, xflags; /* xflags = flags passed to recursive matches */
+
+ #if DEBUG_MATCHING
+***************
+*** 645,648 ****
+--- 644,648 ----
+ fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
+ fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
++ fprintf(stderr, "extmatch: flags = %d\n", flags);
+ #endif
+
+***************
+*** 678,683 ****
+ multiple matches of the pattern. */
+ if (m1)
+! m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
+! (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
+ if (m1 && m2)
+ return (0);
+--- 678,687 ----
+ multiple matches of the pattern. */
+ if (m1)
+! {
+! /* if srest > s, we are not at start of string */
+! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+! m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
+! (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
+! }
+ if (m1 && m2)
+ return (0);
+***************
+*** 705,710 ****
+ for ( ; srest <= se; srest++)
+ {
+ if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
+! GMATCH (srest, se, prest, pe, flags) == 0)
+ return (0);
+ }
+--- 709,716 ----
+ for ( ; srest <= se; srest++)
+ {
++ /* if srest > s, we are not at start of string */
++ xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+ if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
+! GMATCH (srest, se, prest, pe, xflags) == 0)
+ return (0);
+ }
+***************
+*** 727,731 ****
+ break;
+ }
+! if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
+ return (0);
+ }
+--- 733,739 ----
+ break;
+ }
+! /* if srest > s, we are not at start of string */
+! xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
+! if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
+ return (0);
+ }
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-016 b/source/a/bash/patches/bash31-016
new file mode 100644
index 000000000..fa0ffe1c7
--- /dev/null
+++ b/source/a/bash/patches/bash31-016
@@ -0,0 +1,51 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-016
+
+Bug-Reported-by: Nikita Danilov <nikita@clusterfs.com>
+Bug-Reference-ID: <17397.51015.769854.541057@gargle.gargle.HOWL>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00064.html
+
+Bug-Description:
+
+Bash will dump core when attempting to perform globbing in directories with
+very large numbers of files.
+
+Patch:
+
+*** ../bash-3.1-patched/lib/glob/glob.c Thu Mar 24 12:42:27 2005
+--- lib/glob/glob.c Fri Mar 3 16:54:12 2006
+***************
+*** 361,364 ****
+--- 361,365 ----
+
+ firstmalloc = 0;
++ nalloca = 0;
+
+ /* If PAT is empty, skip the loop, but return one (empty) filename. */
+***************
+*** 547,550 ****
+--- 551,556 ----
+ tmplink = lastlink;
+ }
++ else
++ tmplink = 0;
+ free (lastlink->name);
+ lastlink = lastlink->next;
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/patches/bash31-017 b/source/a/bash/patches/bash31-017
new file mode 100644
index 000000000..84f891551
--- /dev/null
+++ b/source/a/bash/patches/bash31-017
@@ -0,0 +1,131 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 3.1
+Patch-ID: bash31-017
+
+Bug-Reported-by: syphir@syphir.sytes.net
+Bug-Reference-ID: <442421F5.3010105@syphir.sytes.net>
+Bug-Reference-URL: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=358831
+
+Bug-Description:
+
+Array expansion fails with an arithmetic syntax error when the subscript
+appears within double quotes. For example: ${a["4"]}.
+
+Patch:
+
+*** ../bash-3.1-patched/subst.c Wed Apr 12 08:47:08 2006
+--- subst.c Wed Apr 12 08:49:02 2006
+***************
+*** 2576,2579 ****
+--- 2576,2586 ----
+ }
+
++ char *
++ expand_arith_string (string, quoted)
++ char *string;
++ {
++ return (expand_string_if_necessary (string, quoted, expand_string));
++ }
++
+ #if defined (COND_COMMAND)
+ /* Just remove backslashes in STRING. Returns a new string. */
+***************
+*** 5249,5253 ****
+ t = (char *)0;
+
+! temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
+ *e1p = evalexp (temp1, &expok);
+ free (temp1);
+--- 5256,5260 ----
+ t = (char *)0;
+
+! temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
+ *e1p = evalexp (temp1, &expok);
+ free (temp1);
+***************
+*** 5294,5298 ****
+ t++;
+ temp2 = savestring (t);
+! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
+ free (temp2);
+ t[-1] = ':';
+--- 5301,5305 ----
+ t++;
+ temp2 = savestring (t);
+! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+ free (temp2);
+ t[-1] = ':';
+***************
+*** 6436,6440 ****
+
+ /* Expand variables found inside the expression. */
+! temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
+ free (temp2);
+
+--- 6443,6447 ----
+
+ /* Expand variables found inside the expression. */
+! temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
+ free (temp2);
+
+***************
+*** 6478,6482 ****
+
+ /* Do initial variable expansion. */
+! temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
+
+ goto arithsub;
+--- 6485,6489 ----
+
+ /* Do initial variable expansion. */
+! temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
+
+ goto arithsub;
+*** ../bash-3.1-patched/subst.h Sun Nov 7 15:12:28 2004
+--- subst.h Mon Mar 27 09:10:38 2006
+***************
+*** 152,155 ****
+--- 152,158 ----
+ extern char *expand_assignment_string_to_string __P((char *, int));
+
++ /* Expand an arithmetic expression string */
++ extern char *expand_arith_string __P((char *, int));
++
+ /* De-quoted quoted characters in STRING. */
+ extern char *dequote_string __P((char *));
+*** ../bash-3.1-patched/arrayfunc.c Mon Jul 4 20:25:58 2005
+--- arrayfunc.c Mon Mar 27 09:10:47 2006
+***************
+*** 593,601 ****
+ strncpy (exp, s, len - 1);
+ exp[len - 1] = '\0';
+! #if 0
+! t = expand_string_to_string (exp, 0);
+! #else
+! t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
+! #endif
+ this_command_name = (char *)NULL;
+ val = evalexp (t, &expok);
+--- 591,595 ----
+ strncpy (exp, s, len - 1);
+ exp[len - 1] = '\0';
+! t = expand_arith_string (exp, 0);
+ this_command_name = (char *)NULL;
+ val = evalexp (t, &expok);
+*** ../bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
+--- patchlevel.h Wed Dec 7 13:48:42 2005
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 16
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/slack-desc b/source/a/bash/slack-desc
new file mode 100644
index 000000000..f2fdb9292
--- /dev/null
+++ b/source/a/bash/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+bash: bash (sh-compatible shell)
+bash:
+bash: The GNU Bourne-Again SHell. Bash is a sh-compatible command
+bash: interpreter that executes commands read from the standard input or
+bash: from a file. Bash also incorporates useful features from the Korn
+bash: and C shells (ksh and csh). Bash is ultimately intended to be a
+bash: conformant implementation of the IEEE Posix Shell and Tools
+bash: specification (IEEE Working Group 1003.2).
+bash:
+bash: Bash must be present for the system to boot properly.
+bash:
diff --git a/source/a/bin/bin.SlackBuild b/source/a/bin/bin.SlackBuild
new file mode 100755
index 000000000..69995accc
--- /dev/null
+++ b/source/a/bin/bin.SlackBuild
@@ -0,0 +1,138 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=11.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-bin
+
+# These don't need to be real recent, as we only require a couple
+# of things such as 'mktemp' and 'tempfile'.
+DUTILS=2.7
+
+# The fbset package
+FBSET=2.1
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+echo "+=============+"
+echo "| debianutils |"
+echo "+=============+"
+cd $TMP
+rm -rf debianutils-$DUTILS
+tar xzvf $CWD/debianutils_$DUTILS.tar.gz
+cd debianutils-$DUTILS
+chown -R root:root .
+./configure --prefix=/usr
+make || exit 1
+## We use our own very simple run-parts script
+## in the dcron package instead.
+#cat run-parts > $PKG/usr/bin/run-parts
+#cat run-parts.8 | gzip -9c > $PKG/usr/man/man8/run-parts.8.gz
+mkdir -p $PKG/usr/bin $PKG/usr/man/man{1,8}
+cat mktemp > $PKG/usr/bin/mktemp
+cat mktemp.1 | gzip -9c > $PKG/usr/man/man1/mktemp.1.gz
+cat savelog > $PKG/usr/bin/savelog
+cat savelog.8 | gzip -9c > $PKG/usr/man/man8/savelog.8.gz
+cat tempfile > $PKG/usr/bin/tempfile
+cat tempfile.1 | gzip -9c > $PKG/usr/man/man1/tempfile.1.gz
+chmod 755 $PKG/usr/bin/*
+mkdir -p $PKG/usr/doc/debianutils-$DUTILS
+cp -a debian/copyright $PKG/usr/doc/debianutils-$DUTILS
+
+echo "+===========+"
+echo "| fbset-${FBSET} |"
+echo "+===========+"
+cd $TMP
+rm -rf fbset-${FBSET}
+tar xzvf $CWD/fbset-${FBSET}.tar.gz
+cd fbset-${FBSET}
+chown -R root:root .
+make || exit 1
+mkdir -p $PKG/usr/sbin
+cat fbset > $PKG/usr/sbin/fbset
+chmod 755 $PKG/usr/sbin/fbset
+mkdir -p $PKG/etc
+cat etc/fb.modes.ATI > $PKG/etc/fb.modes
+mkdir -p $PKG/usr/man/man5
+cat fb.modes.5 | gzip -9c > $PKG/usr/man/man5/fb.modes.5.gz
+mkdir -p $PKG/usr/man/man8
+cat fbset.8 | gzip -9c > $PKG/usr/man/man8/fbset.8.gz
+mkdir -p $PKG/usr/doc/fbset-${FBSET}
+cp -a \
+ INSTALL etc/* \
+ $PKG/usr/doc/fbset-${FBSET}
+rm -r $PKG/usr/doc/fbset-${FBSET}/CVS
+
+echo "+=========+"
+echo "| banners |"
+echo "+=========+"
+cd $TMP
+rm -rf banners
+tar xzvf $CWD/banners.tar.gz
+cd banners
+chown -R root:root .
+make || exit 1
+cat bban > $PKG/usr/bin/bban
+cat sysvbanner > $PKG/usr/bin/sysvbanner
+chmod 755 $PKG/usr/bin/{bban,sysvbanner}
+
+echo "+===============+"
+echo "| todos/fromdos |"
+echo "+===============+"
+cd $TMP
+rm -rf todos
+tar xzvf $CWD/todos.tar.gz
+cd todos
+chown -R root:root .
+make || exit 1
+mkdir -p $PKG/usr/bin
+cat todos > $PKG/usr/bin/todos
+cat fromdos > $PKG/usr/bin/fromdos
+chmod 755 $PKG/usr/bin/*dos
+mkdir -p $PKG/usr/man/man1
+cat todos.1.gz > $PKG/usr/man/man1/todos.1.gz
+cat fromdos.1.gz > $PKG/usr/man/man1/fromdos.1.gz
+
+# These are a couple of really old scripts that might still
+# be useful for a couple more years. :-)
+zcat $CWD/scripts/diskcopy.gz > $PKG/usr/bin/diskcopy
+zcat $CWD/scripts/xx.gz > $PKG/usr/bin/xx
+chmod 755 $PKG/usr/bin/diskcopy
+chmod 755 $PKG/usr/bin/xx
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/bin-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/bin/debianutils_2.7.dsc b/source/a/bin/debianutils_2.7.dsc
new file mode 100644
index 000000000..25a643a7b
--- /dev/null
+++ b/source/a/bin/debianutils_2.7.dsc
@@ -0,0 +1,21 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+Format: 1.0
+Source: debianutils
+Version: 2.7
+Binary: debianutils
+Maintainer: Clint Adams <schizo@debian.org>
+Architecture: any
+Standards-Version: 3.6.1
+Files:
+ e966d93a3ee20068197104049ebd7d70 165590 debianutils_2.7.tar.gz
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.2.4 (GNU/Linux)
+Comment: Debian!
+
+iD8DBQFAO4b85m0u66uWM3ARAotWAKCE/B4HoDVZ5rHi4AISWwHO59cEgwCgqQ6d
+Rt+5nuJdAgkcQgKDQu52RwI=
+=2QDD
+-----END PGP SIGNATURE-----
diff --git a/source/a/bin/scripts/diskcopy b/source/a/bin/scripts/diskcopy
new file mode 100644
index 000000000..9f3cc586f
--- /dev/null
+++ b/source/a/bin/scripts/diskcopy
@@ -0,0 +1,9 @@
+#!/bin/sh
+echo -n "Insert source disk in first floppy drive, then hit enter"
+read ans;
+MCOOKIE=`mcookie`
+dd if=/dev/fd0 of=/tmp/dcopy.$MCOOKIE
+echo -n "Remove source disk and insert destination disk, then hit enter"
+read ans;
+dd of=/dev/fd0 if=/tmp/dcopy.$MCOOKIE
+/bin/rm -f /tmp/dcopy.$MCOOKIE
diff --git a/source/a/bin/scripts/xx b/source/a/bin/scripts/xx
new file mode 100644
index 000000000..4116c2093
--- /dev/null
+++ b/source/a/bin/scripts/xx
@@ -0,0 +1,21 @@
+#
+# A script to extract binary files from uudecoded files. Ignores all headers
+# and irrelevant stuff. Has shortfalls like all such scripts/programs but works
+# (almost) 100% of the time. We tested it against many such tools available
+# at many ftp sites and found it having higher success rate. There are
+# a few c-programs out there and it is slower as compared to them but it
+# works even in those cases when they fail to work.
+# The only time it will not work is that if uuencoded source file is cut up
+# in many pieces and LAST part contains LESS THAN 3 SOURCE lines in it and
+# we know that such cases (almost) never arise....guarenteed....:)
+#
+# Written by Tahir Zia Khawaja and
+# Nasir Ahmed Noor
+#umnoor@ccu.umanitoba.ca
+#umkhawaj@ccu.umanitoba.ca
+#
+awk '$0 ~ /^begin / {print $0; exit}' $1 > $$gifile
+egrep "^M[^a-z]" $1 >> $$gifile
+awk 'NR > 2 {sl=lr; lr=pr; pr=$0} $1 ~ /^end/ {print sl; print lr; print pr; exit}' $1 >> $$gifile
+uudecode $$gifile
+rm $$gifile
diff --git a/source/a/bin/slack-desc b/source/a/bin/slack-desc
new file mode 100644
index 000000000..de9e307d7
--- /dev/null
+++ b/source/a/bin/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+bin: bin (some command-line utilities)
+bin:
+bin: The bin package is a collection of miscellaneous command-line
+bin: utilities. Some of these (such as 'tempfile') are used in system
+bin: scripts.
+bin:
+bin:
+bin:
+bin:
+bin:
+bin:
diff --git a/source/a/bzip2/bzip2-1.0.4.saneso.diff b/source/a/bzip2/bzip2-1.0.4.saneso.diff
new file mode 100644
index 000000000..edbf1ad00
--- /dev/null
+++ b/source/a/bzip2/bzip2-1.0.4.saneso.diff
@@ -0,0 +1,20 @@
+--- ./Makefile-libbz2_so.orig 2007-01-02 20:00:55.000000000 -0600
++++ ./Makefile-libbz2_so 2007-01-23 22:02:29.000000000 -0600
+@@ -35,13 +35,13 @@
+ bzlib.o
+
+ all: $(OBJS)
+- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.4 $(OBJS)
++ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.4 $(OBJS)
+ $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.4
+- rm -f libbz2.so.1.0
+- ln -s libbz2.so.1.0.4 libbz2.so.1.0
++ rm -f libbz2.so.1
++ ln -s libbz2.so.1.0.4 libbz2.so.1
+
+ clean:
+- rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1.0 bzip2-shared
++ rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1 bzip2-shared
+
+ blocksort.o: blocksort.c
+ $(CC) $(CFLAGS) -c blocksort.c
diff --git a/source/a/bzip2/bzip2.SlackBuild b/source/a/bzip2/bzip2.SlackBuild
new file mode 100755
index 000000000..465f75e07
--- /dev/null
+++ b/source/a/bzip2/bzip2.SlackBuild
@@ -0,0 +1,111 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=1.0.5
+SOLIB=1.0.4
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-bzip2
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf bzip2-$VERSION
+tar xzvf $CWD/bzip2-$VERSION.tar.gz
+cd bzip2-$VERSION
+chown -R root:root .
+# This should be ok, since libbz2.so.1.0 will still exist.
+zcat $CWD/bzip2-1.0.4.saneso.diff.gz | patch -p1 || exit
+make -f Makefile-libbz2_so || exit 1
+make || exit 1
+mkdir -p $PKG/usr/include
+cp -a bzlib.h $PKG/usr/include
+chown root:root $PKG/usr/include/bzlib.h
+chmod 644 $PKG/usr/include/bzlib.h
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+cp -a libbz2.a $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a
+mkdir -p $PKG/lib${LIBDIRSUFFIX}
+cp -a libbz2.so.$SOLIB $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB
+chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/libbz2.a
+chmod 755 $PKG/lib${LIBDIRSUFFIX}/libbz2.so.$SOLIB
+mkdir -p $PKG/bin
+cat bzip2-shared > $PKG/bin/bzip2
+cat bzip2recover > $PKG/bin/bzip2recover
+mkdir -p $PKG/usr/man/man1
+cat bzip2.1 | gzip -9c > $PKG/usr/man/man1/bzip2.1.gz
+echo '.so man1/bzip2.1' | gzip -9c > $PKG/usr/man/man1/bzip2recover.1.gz
+mkdir -p $PKG/usr/doc/bzip2-$VERSION
+cp -a CHANGES LICENSE README README.COMPILATION.PROBLEMS Y2K_INFO \
+ bzip2.txt *.html $PKG/usr/doc/bzip2-$VERSION
+chmod 644 $PKG/usr/doc/bzip2-$VERSION/*
+# Link up them links
+( cd $PKG
+ ( cd lib${LIBDIRSUFFIX}
+ rm -f libbz2.so.1.0 libbz2.so.1
+ ln -sf libbz2.so.$SOLIB libbz2.so.1.0
+ ln -sf libbz2.so.1.0 libbz2.so.1
+ )
+ ( cd usr/lib${LIBDIRSUFFIX}
+ ln -sf ../../lib${LIBDIRSUFFIX}/libbz2.so.1 libbz2.so
+ )
+ ( cd bin ; ln -sf bzip2 bunzip2 )
+ ( cd bin ; ln -sf bzip2 bzcat )
+ mkdir -p usr/bin
+ ( cd usr/bin
+ ln -sf ../../bin/bzip2 .
+ ln -sf ../../bin/bzip2 bunzip2
+ ln -sf ../../bin/bzip2 bzcat
+ ln -sf bzmore bzless
+ )
+)
+# Here are some optional scripts:
+for file in bzdiff bzgrep bzmore ; do
+ cat $file > $PKG/usr/bin/$file
+ cat ${file}.1 | gzip -9c > $PKG/usr/man/man1/${file}.1.gz
+done
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+chmod 755 $PKG/bin/* $PKG/usr/bin/*
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/bzip2-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/bzip2-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/bzip2/slack-desc b/source/a/bzip2/slack-desc
new file mode 100644
index 000000000..8026e7553
--- /dev/null
+++ b/source/a/bzip2/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+bzip2: bzip2 (a block-sorting file compressor)
+bzip2:
+bzip2: Bzip2 compresses files using the Burrows-Wheeler block sorting text
+bzip2: compression algorithm, and Huffman coding. Compression is generally
+bzip2: considerably better than that achieved by more conventional LZ77/LZ78-
+bzip2: based compressors, and approaches the performance of the PPM family of
+bzip2: statistical compressors.
+bzip2:
+bzip2: Julian Seward <jseward@acm.org> is the author of bzip2.
+bzip2:
+bzip2:
diff --git a/source/a/coreutils/DIR_COLORS b/source/a/coreutils/DIR_COLORS
new file mode 100644
index 000000000..2556aa014
--- /dev/null
+++ b/source/a/coreutils/DIR_COLORS
@@ -0,0 +1,202 @@
+# Configuration file for dircolors, a utility to help you set the
+# LS_COLORS environment variable used by GNU ls with the --color option.
+
+# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+# slackware version of dircolors) are recognized but ignored.
+# (see the scripts in /etc/profile.d/coreutils-dircolors.* to change default
+# options in the Slackware aliases)
+
+# Below, there should be one TERM entry for each termtype that is colorizable
+TERM linux
+TERM linux-c
+TERM mach-color
+TERM console
+TERM con132x25
+TERM con132x30
+TERM con132x43
+TERM con132x60
+TERM con80x25
+TERM con80x28
+TERM con80x30
+TERM con80x43
+TERM con80x50
+TERM con80x60
+TERM cygwin
+TERM dtterm
+TERM putty
+TERM xterm
+TERM xterm-color
+TERM xterm-debian
+TERM rxvt
+TERM screen
+TERM screen-bce
+TERM screen-w
+TERM vt100
+TERM Eterm
+
+# Below are the color init strings for the basic file types. A color init
+# string consists of one or more of the following numeric codes:
+# Attribute codes:
+# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
+# Text color codes:
+# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
+# Background color codes:
+# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
+NORMAL 00 # global default, although everything should be something.
+FILE 00 # normal file
+# RESET 0 # reset to "normal" color
+DIR 01;34 # directory
+LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
+ # numerical value, the color is as for the file pointed to.)
+# HARDLINK 44;37 # regular file with more than one link
+FIFO 40;33 # pipe
+SOCK 01;35 # socket
+DOOR 01;35 # door
+BLK 40;33;01 # block device driver
+CHR 40;33;01 # character device driver
+ORPHAN 40;31;01 # symlink to nonexistent file
+SETUID 37;41 # file that is setuid (u+s)
+SETGID 30;43 # file that is setgid (g+s)
+CAPABILITY 30;41 # file with capability
+STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
+OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
+STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
+EXEC 01;32 # This is for files with execute permission:
+
+# List any file extensions like '.gz' or '.tar' that you would like ls
+# to colorize below. Put the extension, a space, and the color init string.
+# (and any comments you want to add after a '#')
+
+# DOS-style executables (bright green)
+.bat 01;32
+.BAT 01;32
+.btm 01;32
+.BTM 01;32
+.cmd 01;32
+.CMD 01;32
+.com 01;32
+.COM 01;32
+.dll 01;32
+.DLL 01;32
+.exe 01;32
+.EXE 01;32
+
+# archives or compressed (bright red)
+.7z 01;31
+.ace 01;31
+.arj 01;31
+.bz2 01;31
+.cpio 01;31
+.deb 01;31
+.dz 01;31
+.gz 01;31
+.jar 01;31
+.lzh 01;31
+.lzma 01;31
+.rar 01;31
+.RAR 01;31
+.rpm 01;31
+.rz 01;31
+.tar 01;31
+.taz 01;31
+.tb2 01;31
+.tbz2 01;31
+.tbz 01;31
+.tgz 01;31
+.tlz 01;31
+.trz 01;31
+.txz 01;31
+.tz 01;31
+.tz2 01;31
+.xz 01;31
+.z 01;31
+.Z 01;31
+.zip 01;31
+.ZIP 01;31
+.zoo 01;31
+
+# multimedia (video/image/sound) file formats
+.aac 00;35
+.anx 01;35
+.asf 01;35
+.ASF 01;35
+.au 00;35
+.axa 00;35
+.axv 01;35
+.avi 01;35
+.AVI 01;35
+.bmp 01;35
+.BMP 01;35
+.flac 01;35
+.FLAC 01;35
+.gif 01;35
+.GIF 01;35
+.jpg 01;35
+.JPG 01;35
+.jpeg 01;35
+.JPEG 01;35
+.m2a 01;35
+.M2A 01;35
+.m2v 01;35
+.M2V 01;35
+.m4a 01;35
+.M4A 01;35
+.m4p 01;35
+.M4P 01;35
+.m4v 01;35
+.M4V 01;35
+.mid 00;35
+.midi 00;35
+.mka 00;35
+.mov 01;35
+.MOV 01;35
+.mp3 01;35
+.MP3 01;35
+.mp4 01;35
+.mp4v 01;35
+.mpc 01;35
+.MPC 01;35
+.mpeg 01;35
+.MPEG 01;35
+.mpg 01;35
+.MPG 01;35
+.nuv 01;35
+.oga 00;35
+.ogv 01;35
+.ogx 01;35
+.ogg 01;35
+.OGG 01;35
+.pbm 01;35
+.pgm 01;35
+.png 01;35
+.PNG 01;35
+.ppm 01;35
+.qt 01;35
+.ra 00;35
+.ram 01;35
+.RAM 01;35
+.rm 01;35
+.RM 01;35
+.spx 00;35
+.svg 01;35
+.svgz 01;35
+.tga 01;35
+.TGA 01;35
+.tif 01;35
+.TIF 01;35
+.tiff 01;35
+.TIFF 01;35
+.vob 01;35
+.wav 01;35
+.WAV 01;35
+.wma 01;35
+.WMA 01;35
+.wmv 01;35
+.WMV 01;35
+.xbm 01;35
+.xcf 01;35
+.xpm 01;35
+.xspf 00;35
+.xwd 01;35
+.XWD 01;35
+
diff --git a/source/a/coreutils/coreutils-dircolors.csh b/source/a/coreutils/coreutils-dircolors.csh
new file mode 100644
index 000000000..38d73ca2a
--- /dev/null
+++ b/source/a/coreutils/coreutils-dircolors.csh
@@ -0,0 +1,48 @@
+# Slackware color ls profile script for /bin/csh-like shells.
+
+# Set up LS_OPTIONS environment variable.
+# This contains extra command line options to use with ls.
+# The default ones are:
+# -F = show '/' for dirs, '*' for executables, etc.
+# -T 0 = don't trust tab spacing when formatting ls output.
+# -b = better support for special characters
+setenv OPTIONS "-F -b -T 0"
+
+# COLOR needs one of these arguments:
+# 'auto' colorizes output to ttys, but not pipes.
+# 'always' adds color characters to all output.
+# 'never' shuts colorization off.
+setenv COLOR auto
+
+# This section shouldn't require any user adjustment since it is
+# simply setting the LS_OPTIONS variable using the information
+# already given above:
+setenv LS_OPTIONS " $OPTIONS --color=$COLOR "
+unset COLOR
+unset OPTIONS
+
+# Set up aliases to use color ls by default. A few additional
+# aliases like 'dir', 'vdir', etc, are some ancient artifacts
+# from 1992 or so... possibly they should be disabled, but maybe
+# someone out there is actually using them? :-)
+alias ls '/bin/ls $LS_OPTIONS';
+alias dir '/bin/ls $LS_OPTIONS --format=vertical';
+alias vdir '/bin/ls $LS_OPTIONS --format=long';
+alias d dir;
+alias v vdir;
+unset noglob;
+
+# Set up the LS_COLORS environment:
+[ -f $HOME/.dir_colors ]
+if ($status == 0) then
+ eval `/bin/dircolors -c $HOME/.dir_colors`
+endif
+[ -f /etc/DIR_COLORS ]
+if ($status == 0) then
+ eval `/bin/dircolors -c /etc/DIR_COLORS`
+endif
+[ ! -f $HOME/.dir_colors -a ! -f /etc/DIR_COLORS ]
+if ($status == 0) then
+ eval `/bin/dircolors -c`
+endif
+
diff --git a/source/a/coreutils/coreutils-dircolors.sh b/source/a/coreutils/coreutils-dircolors.sh
new file mode 100644
index 000000000..728ea7452
--- /dev/null
+++ b/source/a/coreutils/coreutils-dircolors.sh
@@ -0,0 +1,65 @@
+# Slackware color ls profile script for /bin/sh-like shells.
+
+# Set up LS_OPTIONS environment variable.
+# This contains extra command line options to use with ls.
+# The default ones are:
+# -F = show '/' for dirs, '*' for executables, etc.
+# -T 0 = don't trust tab spacing when formatting ls output.
+# -b = better support for special characters
+if [ "$SHELL" != "/bin/zsh" ]; then
+ # Edit options below for all sh-like shells except zsh:
+ OPTIONS="-F -b -T 0"
+else
+ # If you use zsh, edit the options below instead:
+ OPTIONS=( -F -b -T 0 )
+fi
+
+# COLOR needs one of these arguments:
+# 'auto' colorizes output to ttys, but not pipes.
+# 'always' adds color characters to all output.
+# 'never' shuts colorization off.
+COLOR=auto
+
+# This section shouldn't require any user adjustment since it is
+# simply setting the LS_OPTIONS variable using the information
+# already given above:
+if [ "$SHELL" = "/bin/zsh" ]; then
+ LS_OPTIONS=( $OPTIONS --color=$COLOR );
+else
+ LS_OPTIONS=" $OPTIONS --color=$COLOR ";
+fi
+export LS_OPTIONS;
+unset COLOR
+unset OPTIONS
+
+# Set up aliases to use color ls by default. A few additional
+# aliases like 'dir', 'vdir', etc, are some ancient artifacts
+# from 1992 or so... possibly they should be disabled, but maybe
+# someone out there is actually using them? :-)
+# Assume shell aliases are supported. Ash is going to freak out
+# when it sees zsh syntax anyway, so whatever.
+alias ls='/bin/ls $LS_OPTIONS';
+alias dir='/bin/ls $LS_OPTIONS --format=vertical';
+alias vdir='/bin/ls $LS_OPTIONS --format=long';
+alias d=dir;
+alias v=vdir;
+
+# Just for fun, here are the old sh/ash style shell functions.
+# this script isn't currently working with ash (and makes some noisy
+# error messages), but perhaps these will still be of use to
+# someone...
+#ls () { /bin/ls $LS_OPTIONS "$@" ; };
+#dir () { /bin/ls $LS_OPTIONS --format=vertical "$@" ; };
+#vdir () { /bin/ls $LS_OPTIONS --format=long "$@" ; };
+#d () { dir "$@" ; };
+#v () { vdir "$@" ; };
+
+# Set up the LS_COLORS environment:
+if [ -f $HOME/.dir_colors ]; then
+ eval `/bin/dircolors -b $HOME/.dir_colors`
+elif [ -f /etc/DIR_COLORS ]; then
+ eval `/bin/dircolors -b /etc/DIR_COLORS`
+else
+ eval `/bin/dircolors -b`
+fi
+
diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild
new file mode 100755
index 000000000..bc0434277
--- /dev/null
+++ b/source/a/coreutils/coreutils.SlackBuild
@@ -0,0 +1,168 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=coreutils
+VERSION=${VERSION:-7.4}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PRGNAM
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+elif [ "$ARCH" = "armel" ]; then
+ SLKCFLAGS="-O2 -march=armv4t"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+
+rm -rf $PRGNAM-$VERSION
+if [ -r $CWD/$PRGNAM-$VERSION.tar.gz ]; then
+ tar xf $CWD/$PRGNAM-$VERSION.tar.gz || exit 1
+elif [ -r $CWD/$PRGNAM-$VERSION.tar.bz2 ]; then
+ tar xf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1
+elif [ -r $CWD/$PRGNAM-$VERSION.tar.xz ]; then
+ tar xf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1
+elif [ -r $CWD/$PRGNAM-$VERSION.tar.lzma ]; then
+ tar xf $CWD/$PRGNAM-$VERSION.tar.lzma || exit 1
+else
+ exit 1
+fi
+
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Patch in the uname for Linux enhancements
+zcat $CWD/$PRGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+
+# Compilation with glibc version later than 2.3.2 needs the environment
+# variable DEFAULT_POSIX2_VERSION set to 199209.
+# Without the next line, the coreutils will start complaining about 'obsolete'
+# command switches, like "tail -20" will be considered obsolete.
+# This behaviour breaks many other packages... the 'obsolete' parameters are
+# too commonly used to disregard them. Better to stick with the older more
+# widely accepted standards until things begin to demand the new way.
+
+CFLAGS="$SLKCFLAGS" \
+DEFAULT_POSIX2_VERSION=199209 \
+./configure \
+ --prefix=/usr \
+ --bindir=/bin \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --sysconfdir=/etc \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# We have had the mktemp from debianutils included with Slackware for quite a
+# long time, and certain options are changed here, like changing -u to mean a
+# dry-run rather than to unlink the tempfile when finished. Since this could
+# break existing scripts, unless someone can tell me a good reason why we
+# should start using a new version of mktemp, we will continue to use the
+# one we've been using. If the new one starts to become expected, let me know.
+# We'll figure out what the best options are and go from there.
+mv $PKG/bin/mktemp $PKG/bin/mktemp-gnu
+mv $PKG/usr/man/man1/mktemp.1 $PKG/usr/man/man1/mktemp-gnu.1
+
+# This seems wrong, and it stomps on files in the ksh93 package, though I'm
+# not sure the placement of those is correct, either... The ksh93 package
+# installs them as flat text files, while coreutils installs empty directories
+# Oh well, this is what we've done for years, and nobody's complained...
+rm -rf $PKG/usr/share/locale/*/LC_TIME
+
+# These are important enough that they should probably all go into /bin at this
+# point... Having some of them unavailable when /usr isn't mounted is just a
+# source of unending bug reports for various third party applications.
+# Time to end those reports. :-)
+mkdir -p $PKG/bin $PKG/usr/bin
+( cd $PKG/usr/bin
+ for file in ../../bin/* ; do
+ ln --verbose -sf $file .
+ done
+)
+
+# Add some defaults, although a very slack-like set of default options are built
+# into /bin/ls now anyway:
+mkdir -p $PKG/etc
+zcat $CWD/DIR_COLORS.gz > $PKG/etc/DIR_COLORS.new
+
+# Since dircolors no longer provides any default aliases these scripts
+# will be needed for ls to act as expected:
+mkdir -p $PKG/etc/profile.d
+zcat $CWD/coreutils-dircolors.csh.gz > $PKG/etc/profile.d/coreutils-dircolors.csh
+zcat $CWD/coreutils-dircolors.sh.gz > $PKG/etc/profile.d/coreutils-dircolors.sh
+chmod 755 $PKG/etc/profile.d/*
+
+# Remove things that are provided by other Slackware packages:
+for dupe in hostname kill su uptime ; do
+ rm -f $PKG/bin/${dupe} $PKG/usr/bin/${dupe} \
+ $PKG/usr/sbin/${dupe} $PKG/usr/man/man?/${dupe}.* ;
+done
+
+# Add ginstall links (there's still a lot of stuff that needs this to compile):
+( cd $PKG/bin ; ln -sf install ginstall )
+( cd $PKG/usr/bin ; ln -sf ../../bin/ginstall ginstall )
+( cd $PKG/usr/man/man1 ; ln -sf install.1 ginstall.1 )
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
+
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING* NEWS README THANKS THANKS-to-translators TODO \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/coreutils/coreutils.uname.diff b/source/a/coreutils/coreutils.uname.diff
new file mode 100644
index 000000000..bd39221c1
--- /dev/null
+++ b/source/a/coreutils/coreutils.uname.diff
@@ -0,0 +1,161 @@
+Submitted By: Jim Gifford <jim at linuxfromscratch dot org>
+Date: 2006-08-24
+Initial Package Version: 5.97
+Upstream Status: Not Accepted
+Origin: Gentoo - http://sources.gentoo.org/viewcvs.py/gentoo/src/patchsets/coreutils
+Description: Display CPU Information from /proc/cpuinfo or /proc/sysinfo
+
+Original Patch by - Matthew Burgess and Scot McPherson
+
+diff -Nur coreutils-7.1.orig/src/uname.c coreutils-7.1/src/uname.c
+--- coreutils-7.1/src/uname.c 2008-09-18 02:06:57.000000000 -0500
++++ coreutils-7.1/src/uname.c 2009-02-22 21:23:02.209219703 -0600
+@@ -50,6 +50,11 @@
+ # include <mach-o/arch.h>
+ #endif
+
++#if defined (__linux__)
++# define USE_PROCINFO
++# define UNAME_HARDWARE_PLATFORM
++#endif
++
+ #include "system.h"
+ #include "error.h"
+ #include "quote.h"
+@@ -155,6 +160,106 @@
+ exit (status);
+ }
+
++#if defined(USE_PROCINFO)
++
++# if defined(__s390__) || defined(__s390x__)
++# define CPUINFO_FILE "/proc/sysinfo"
++# define CPUINFO_FORMAT "%64[^\t :]%*[ :]%256[^\n]%c"
++# else
++# define CPUINFO_FILE "/proc/cpuinfo"
++# define CPUINFO_FORMAT "%64[^\t:]\t:%256[^\n]%c"
++# endif
++
++# define PROCINFO_PROCESSOR 0
++# define PROCINFO_HARDWARE_PLATFORM 1
++
++static void __eat_cpuinfo_space(char *buf)
++{
++ /* first eat trailing space */
++ char *tmp = buf + strlen(buf) - 1;
++ while (tmp > buf && isspace(*tmp))
++ *tmp-- = '\0';
++ /* then eat leading space */
++ tmp = buf;
++ while (*tmp && isspace(*tmp))
++ tmp++;
++ if (tmp != buf)
++ memmove(buf, tmp, strlen(tmp)+1);
++}
++
++static int __linux_procinfo (int x, char *fstr, size_t s)
++{
++ FILE *fp;
++
++ char *procinfo_keys[] = {
++ /* --processor --hardware-platform */
++ #if defined(__alpha__)
++ "cpu model", "system type"
++ #elif defined(__arm__)
++ "Processor", "Hardware"
++ #elif defined(bfin)
++ "CPU", "BOARD Name"
++ #elif defined(__cris__)
++ "cpu", "cpu model"
++ #elif defined(__frv__)
++ "CPU-Core", "System"
++ #elif defined(__i386__) || defined(__x86_64__)
++ "model name", "vendor_id"
++ #elif defined(__ia64__)
++ "family", "vendor"
++ #elif defined(__hppa__)
++ "cpu", "model"
++ #elif defined(__m68k__)
++ "CPU", "MMU"
++ #elif defined(__mips__)
++ "cpu model", "system type"
++ #elif defined(__powerpc__) || defined(__powerpc64__)
++ "cpu", "machine"
++ #elif defined(__s390__) || defined(__s390x__)
++ "Type", "Manufacturer"
++ #elif defined(__sh__)
++ "cpu type", "machine"
++ #elif defined(sparc) || defined(__sparc__)
++ "type", "cpu"
++ #elif defined(__vax__)
++ "cpu type", "cpu"
++ #else
++ "unknown", "unknown"
++ #endif
++ };
++
++ if ((fp = fopen(CPUINFO_FILE, "r")) != NULL) {
++ char key[65], value[257], eol, *ret = NULL;
++
++ while (fscanf(fp, CPUINFO_FORMAT, key, value, &eol) != EOF) {
++ __eat_cpuinfo_space(key);
++ if (!strcmp(key, procinfo_keys[x])) {
++ __eat_cpuinfo_space(value);
++ ret = value;
++ break;
++ }
++ if (eol != '\n') {
++ /* we need two fscanf's here in case the previous
++ * length limit caused us to read right up to the
++ * newline ... doing "%*[^\n]\n" wont eat the newline
++ */
++ fscanf(fp, "%*[^\n]");
++ fscanf(fp, "\n");
++ }
++ }
++ fclose(fp);
++
++ if (ret) {
++ strncpy(fstr, ret, s);
++ return 0;
++ }
++ }
++
++ return -1;
++}
++
++#endif
++
+ /* Print ELEMENT, preceded by a space if something has already been
+ printed. */
+
+@@ -302,10 +407,14 @@
+ if (toprint & PRINT_PROCESSOR)
+ {
+ char const *element = unknown;
+-#if HAVE_SYSINFO && defined SI_ARCHITECTURE
++#if ( HAVE_SYSINFO && defined SI_ARCHITECTURE ) || defined(USE_PROCINFO)
+ {
+ static char processor[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_PROCESSOR, processor, sizeof processor))
++#else
+ if (0 <= sysinfo (SI_ARCHITECTURE, processor, sizeof processor))
++#endif
+ element = processor;
+ }
+ #endif
+@@ -358,9 +467,13 @@
+ if (element == unknown)
+ {
+ static char hardware_platform[257];
++#if defined(USE_PROCINFO)
++ if (0 <= __linux_procinfo (PROCINFO_HARDWARE_PLATFORM, hardware_platform, sizeof hardware_platform))
++#else
+ size_t s = sizeof hardware_platform;
+ static int mib[] = { CTL_HW, UNAME_HARDWARE_PLATFORM };
+ if (sysctl (mib, 2, hardware_platform, &s, 0, 0) >= 0)
++#endif
+ element = hardware_platform;
+ }
+ #endif
diff --git a/source/a/coreutils/doinst.sh b/source/a/coreutils/doinst.sh
new file mode 100644
index 000000000..b1a6112ff
--- /dev/null
+++ b/source/a/coreutils/doinst.sh
@@ -0,0 +1,13 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/DIR_COLORS.new
+
diff --git a/source/a/coreutils/slack-desc b/source/a/coreutils/slack-desc
new file mode 100644
index 000000000..57e562d34
--- /dev/null
+++ b/source/a/coreutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+coreutils: coreutils (core GNU utilities)
+coreutils:
+coreutils: These are the GNU core utilities, the basic command line programs
+coreutils: such as 'mkdir', 'ls', and 'rm' that are needed for the system to
+coreutils: run. This package is the union of the GNU fileutils, sh-utils, and
+coreutils: textutils packages. Most of these programs have significant
+coreutils: advantages over their Unix counterparts, such as greater speed,
+coreutils: additional options, and fewer arbitrary limits.
+coreutils:
+coreutils:
+coreutils:
diff --git a/source/a/cpio/cpio-2.9.gcc43.diff b/source/a/cpio/cpio-2.9.gcc43.diff
new file mode 100644
index 000000000..cfe02d7f0
--- /dev/null
+++ b/source/a/cpio/cpio-2.9.gcc43.diff
@@ -0,0 +1,30 @@
+--- ./lib/argp-fmtstream.h.orig 2006-01-21 04:37:18.000000000 -0600
++++ ./lib/argp-fmtstream.h 2009-03-15 15:17:22.000000000 -0500
+@@ -198,8 +198,12 @@
+ #endif
+
+ #ifndef ARGP_FS_EI
++#ifdef __GNUC_STDC_INLINE__
++#define ARGP_FS_EI extern inline __attribute__((__gnu_inline__))
++#else
+ #define ARGP_FS_EI extern inline
+ #endif
++#endif
+
+ ARGP_FS_EI size_t
+ __argp_fmtstream_write (argp_fmtstream_t __fs,
+--- ./lib/argp.h.orig 2007-03-30 11:20:19.000000000 -0500
++++ ./lib/argp.h 2009-03-15 15:16:34.000000000 -0500
+@@ -580,7 +580,11 @@
+ # endif
+
+ # ifndef ARGP_EI
+-# define ARGP_EI extern __inline__
++# if defined __GNUC_STDC_INLINE__
++# define ARGP_EI extern __inline__ __attribute__((__gnu_inline__))
++# else
++# define ARGP_EI extern __inline__
++# endif
+ # endif
+
+ ARGP_EI void
diff --git a/source/a/cpio/cpio.SlackBuild b/source/a/cpio/cpio.SlackBuild
new file mode 100755
index 000000000..9cb6054bc
--- /dev/null
+++ b/source/a/cpio/cpio.SlackBuild
@@ -0,0 +1,126 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=cpio
+VERSION=${VERSION:-2.9}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION || exit 1
+
+zcat $CWD/cpio-2.9.gcc43.diff.gz | patch -p1 --verbose || exit 1
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Use the rmt provided by the tar package
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --bindir=/bin \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/${PKGNAM}-$VERSION \
+ --enable-mt \
+ --with-rmt=/sbin/rmt \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG INSTALL="install -p" || exit 1
+
+# Remove an empty directory
+rmdir $PKG/usr/libexec
+
+# Do not clash with the 'mt' which is part of tar:
+mv $PKG/bin/mt{,-GNU}
+mv $PKG/usr/man/man1/mt{,-GNU}.1
+
+# Strip stuff:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# Compress info pages:
+rm -f $PKG/usr/info/dir
+gzip -9f $PKG/usr/info/*
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/cpio-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING ChangeLog NEWS README THANKS TODO \
+ $PKG/usr/doc/cpio-$VERSION
+chmod 644 $PKG/usr/doc/cpio-$VERSION/*
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/cpio/slack-desc b/source/a/cpio/slack-desc
new file mode 100644
index 000000000..90f820c22
--- /dev/null
+++ b/source/a/cpio/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+cpio: cpio (backup and archiving utility)
+cpio:
+cpio: This is GNU cpio, a program to manage archives of files. This package
+cpio: also includes mt, a tape drive control program. cpio copies files into
+cpio: or out of a cpio or tar archive, which is a file that contains other
+cpio: files plus information about them, such as their pathname, owner,
+cpio: timestamps, and access permissions. The archive can be another file on
+cpio: the disk, a magnetic tape, or a pipe.
+cpio:
+cpio:
+cpio:
diff --git a/source/a/cryptsetup/cryptsetup.SlackBuild b/source/a/cryptsetup/cryptsetup.SlackBuild
new file mode 100755
index 000000000..7a7f3a8ba
--- /dev/null
+++ b/source/a/cryptsetup/cryptsetup.SlackBuild
@@ -0,0 +1,144 @@
+#!/bin/sh
+
+# Copyright (c) 2007, 2009 Eric Hameleers <alien@slackware.com>
+# Copyright (c) 2007, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# -----------------------------------------------------------------------------
+#
+# Slackware SlackBuild script
+# ===========================
+# By: Eric Hameleers <alien@slackware.com>
+# For: cryptsetup
+# Descr: Utility for setting up encrypted filesystems
+# URL: http://luks.endorphin.org/dm-crypt
+#
+# -----------------------------------------------------------------------------
+
+PRGNAM=cryptsetup
+VERSION=${VERSION:-1.0.7}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-cryptsetup
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr
+
+cd $TMP
+rm -rf cryptsetup-$VERSION
+tar xvf $CWD/cryptsetup-$VERSION.tar.bz2 || exit 1
+cd cryptsetup-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+echo Building ...
+LDFLAGS="$SLKLDFLAGS" \
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --enable-libgcrypt \
+ --enable-libdevmapper \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$ARCH-slackware-linux
+make
+make DESTDIR=$PKG install
+
+#
+# Next, make the static version that we will use for mkinitrd:
+#
+
+make clean
+echo Building ...
+LDFLAGS="$SLKLDFLAGS" \
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --enable-libgcrypt \
+ --enable-libdevmapper \
+ --enable-static \
+ --disable-shared \
+ --disable-shared-library \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$ARCH-slackware-linux
+make
+
+# I have to do one old-school thing to leave a mark here:
+mkdir -p $PKG/sbin
+cat src/cryptsetup > $PKG/sbin/cryptsetup.static
+chmod 755 $PKG/sbin/cryptsetup.static
+
+mv $PKG/usr/sbin/cryptsetup $PKG/usr/sbin/cryptsetup.dynamic
+# Replace with a link:
+( cd $PKG/usr/sbin ; ln -sf cryptsetup.dynamic cryptsetup )
+# In /sbin, use the static version as /usr *might* not be mounted yet.
+# However, note that some cryptsetup operations cause the static
+# version to segfault, so for things like formatting you'll want
+# to use the dynamic one. That's what should be in the $PATH first.
+( cd $PKG/sbin ; ln -sf cryptsetup.static cryptsetup )
+
+# Remove unneeded empty directory:
+#rmdir $PKG/usr/lib/cryptsetup
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+chmod -R a-w $PKG/usr/doc/$PRGNAM-$VERSION/*
+
+find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; || true
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.txz
+
diff --git a/source/a/cryptsetup/slack-desc b/source/a/cryptsetup/slack-desc
new file mode 100644
index 000000000..fbc0035b5
--- /dev/null
+++ b/source/a/cryptsetup/slack-desc
@@ -0,0 +1,21 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+cryptsetup: cryptsetup (utility for setting up encrypted filesystems)
+cryptsetup:
+cryptsetup: LUKS is a standard for cross-platform hard disk encryption.
+cryptsetup: It provides secure management of multiple userpasswords and
+cryptsetup: stores setup information in the partition header.
+cryptsetup: LUKS for dm-crypt is now implemented in cryptsetup replacing the
+cryptsetup: original cryptsetup. It provides all the functionally of the
+cryptsetup: original version plus all LUKS features.
+cryptsetup:
+cryptsetup: cryptsetup home: http://luks.endorphin.org/dm-crypt
+cryptsetup:
+
+
diff --git a/source/a/cups/cups.SlackBuild b/source/a/cups/cups.SlackBuild
new file mode 100755
index 000000000..5ae070951
--- /dev/null
+++ b/source/a/cups/cups.SlackBuild
@@ -0,0 +1,171 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# CUPS build script by volkerdi@slackware.com.
+
+VERSION=1.3.11
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-cups
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf cups-$VERSION
+tar xvf $CWD/cups-$VERSION-source.tar.?z* || exit 1
+cd cups-$VERSION
+
+zcat $CWD/cups.firefox.desktop.diff.gz | patch -p1 --verbose || exit 1
+
+sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure
+./configure \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --enable-ssl \
+ --enable-openssl=yes \
+ --enable-gnutls=no \
+ --enable-cdsassl=no \
+ --docdir=/usr/doc \
+ --without-php \
+ --disable-pam \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || exit 1
+mkdir -p $PKG/etc/cups
+mkdir -p $PKG/var/spool
+make BUILDROOT=$PKG install || exit 1
+
+# I've added so many things like /etc/init.d/ to Slackware that CUPS
+# is now installing init scripts to the Red Hat locations. We'll move
+# them to the usual locations:
+mkdir -p $PKG/etc/rc.d
+# Handle this as a config file, and non-executable in a default install:
+mv $PKG/etc/init.d/cups $PKG/etc/rc.d/rc.cups.new
+chmod 644 $PKG/etc/rc.d/rc.cups.new
+# Clear out the additions:
+rm -rf $PKG/etc/init.d $PKG/etc/rc{0,2,3,5}.d
+
+# I'm not sure if overwriting this blindly could have ill effects,
+# but it never hurts to play it safe. According to the dbus-daemon
+# manpage, only files ending in .conf will be used, so there won't
+# be any unintended doubling up.
+mv $PKG/etc/dbus-1/system.d/cups.conf $PKG/etc/dbus-1/system.d/cups.conf.new
+
+# For full CUPS SMB support, you'll need to install the cups-samba
+# package from the source in this directory. There's no easy way
+# to add that to a package build, and the requests aren't pouring in,
+# so you'll have to install it yourself. It's easy to do.
+
+# However, this will get you the most useful SMB support for free.
+# Thanks to Boris Kurktchiev for the tip. :-)
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/cups/backend
+ if [ ! -e smb ]; then
+ ln -sf /usr/bin/smbspool smb
+ fi
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Remove preformatted manpages and move the manpages to /usr/man:
+( cd $PKG/usr/share/man
+ find . -type d -name "cat*" | xargs rm -rf
+ cd ..
+ mv man ..
+)
+
+# Adjust/expand docs:
+( mkdir -p $PKG/usr/doc
+ mv $PKG/usr/share/doc/cups $PKG/usr/doc/cups-$VERSION
+ rmdir $PKG/usr/share/doc
+ cd $PKG/usr/doc
+ ln -sf cups-$VERSION cups )
+
+# I'm sorry, but PDF files are almost as bloated and annoying as
+# MS Word documents. We'll retain the HTML files in /usr/doc.
+( cd $PKG/usr/doc
+ find . -name "*.pdf" -exec rm -f {} \; )
+
+# Apply no-clobber fix to conffiles:
+( cd $PKG/etc/cups
+ for file in * ; do
+ if [ -f $file ]; then
+ mv $file $file.new
+ fi
+ done )
+
+# Strip stuff:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Use symlinks to certain binaries so that CUPS and LPRng can coexist:
+SUFFIX=cups
+for file in \
+usr/bin/cancel \
+usr/bin/lp \
+usr/bin/lpq \
+usr/bin/lpr \
+usr/bin/lprm \
+usr/bin/lpstat \
+usr/sbin/lpc ; do
+ ( cd $PKG
+ mv ${file} ${file}-${SUFFIX}
+ ( cd `dirname ${file}` ; ln -sf `basename ${file}`-${SUFFIX} `basename ${file}` )
+ )
+done
+# Now fix the associated man pages:
+mv $PKG/usr/man/man1/cancel.1.gz $PKG/usr/man/man1/cancel-${SUFFIX}.1.gz
+mv $PKG/usr/man/man1/lp.1.gz $PKG/usr/man/man1/lp-${SUFFIX}.1.gz
+mv $PKG/usr/man/man1/lpq.1.gz $PKG/usr/man/man1/lpq-${SUFFIX}.1.gz
+mv $PKG/usr/man/man1/lpr.1.gz $PKG/usr/man/man1/lpr-${SUFFIX}.1.gz
+mv $PKG/usr/man/man1/lprm.1.gz $PKG/usr/man/man1/lprm-${SUFFIX}.1.gz
+mv $PKG/usr/man/man1/lpstat.1.gz $PKG/usr/man/man1/lpstat-${SUFFIX}.1.gz
+mv $PKG/usr/man/man8/lpc.8.gz $PKG/usr/man/man8/lpc-${SUFFIX}.8.gz
+( cd $PKG/usr/man/man1
+ ln -sf cancel-${SUFFIX}.1.gz cancel.1.gz
+ ln -sf lp-${SUFFIX}.1.gz lp.1.gz
+ ln -sf lpq-${SUFFIX}.1.gz lpq.1.gz
+ ln -sf lpr-${SUFFIX}.1.gz lpr.1.gz
+ ln -sf lprm-${SUFFIX}.1.gz lprm.1.gz
+ ln -sf lpstat-${SUFFIX}.1.gz lpstat.1.gz
+)
+( cd $PKG/usr/man/man8
+ ln -sf lpc-${SUFFIX}.8.gz lpc.8.gz
+)
+
+# Add the doinst.sh that installs the .new conffiles:
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/cups-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/cups/cups.firefox.desktop.diff b/source/a/cups/cups.firefox.desktop.diff
new file mode 100644
index 000000000..96affd5a3
--- /dev/null
+++ b/source/a/cups/cups.firefox.desktop.diff
@@ -0,0 +1,11 @@
+diff -u -r --new-file cups-1.3.11.orig/desktop/cups.desktop cups-1.3.11/desktop/cups.desktop
+--- cups-1.3.11.orig/desktop/cups.desktop 2008-09-05 19:30:39.000000000 -0500
++++ cups-1.3.11/desktop/cups.desktop 2009-08-21 20:18:23.604682681 -0500
+@@ -1,6 +1,6 @@
+ [Desktop Entry]
+ Categories=System;Printing;HardwareSettings;X-Red-Hat-Base;
+-Exec=htmlview http://localhost:631/
++Exec=firefox http://localhost:631/
+ Icon=cups
+ StartupNotify=false
+ Terminal=false
diff --git a/source/a/cups/doinst.sh b/source/a/cups/doinst.sh
new file mode 100644
index 000000000..3f56dab3f
--- /dev/null
+++ b/source/a/cups/doinst.sh
@@ -0,0 +1,28 @@
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+for file in etc/cups/*.new ; do
+ config $file
+done
+config etc/dbus-1/system.d/cups.conf.new
+
+# Leave any new rc.cups with the same permissions as the old one:
+# This is a kludge, but it's because there's no --reference option
+# on busybox's 'chmod':
+if [ -e etc/rc.d/rc.cups ]; then
+ if [ -x etc/rc.d/rc.cups ]; then
+ chmod 755 etc/rc.d/rc.cups.new
+ else
+ chmod 644 etc/rc.d/rc.cups.new
+ fi
+fi
+# Then config() it:
+config etc/rc.d/rc.cups.new
diff --git a/source/a/cups/slack-desc b/source/a/cups/slack-desc
new file mode 100644
index 000000000..c2e1643c9
--- /dev/null
+++ b/source/a/cups/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+cups: CUPS (Common UNIX Printing System)
+cups:
+cups: The Common UNIX Printing System provides a portable printing layer for
+cups: UNIX(R)-like operating systems. It has been developed by Easy Software
+cups: Products to promote a standard printing solution for all UNIX vendors
+cups: and users. CUPS uses the Internet Printing Protocol ("IPP") as the
+cups: basis for managing print jobs and queues. The CUPS package includes
+cups: System V and Berkeley command-line interfaces, a PostScript RIP
+cups: package for supporting non-PostScript printer drivers, and tools for
+cups: creating additional printer drivers and other CUPS services.
+cups:
diff --git a/source/a/cxxlibs/cxxlibs.SlackBuild b/source/a/cxxlibs/cxxlibs.SlackBuild
new file mode 100755
index 000000000..025a64949
--- /dev/null
+++ b/source/a/cxxlibs/cxxlibs.SlackBuild
@@ -0,0 +1,57 @@
+#!/bin/sh
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=cxxlibs
+VERSION=${VERSION:-6.0.10}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $PKG
+cat $CWD/symlinks-to-tracked-libs${LIBDIRSUFFIX} | while read library ; do
+ ( mkdir -p $(dirname $library | cut -b2- )
+ cd $(dirname $library | cut -b2- )
+ rm -f $(basename $library)
+ cp -a $library .
+ rm -f $(readlink $library)
+ cp -a $(dirname $library)/$(readlink $library) .
+ )
+done
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/cxxlibs/oldgcc/oldgcc.build b/source/a/cxxlibs/oldgcc/oldgcc.build
new file mode 100755
index 000000000..471fefa13
--- /dev/null
+++ b/source/a/cxxlibs/oldgcc/oldgcc.build
@@ -0,0 +1,73 @@
+#!/bin/sh
+# GCC package build script (written by volkerdi@slackware.com)
+#
+# Copyright 2003, 2005 Slackware Linux, Inc., Concord, California, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# NOTE - THIS DOESN'T MAKE PACKAGES! IT JUST BUILDS GCC AND G++
+# this is for the purpose of getting libstdc++.so.5
+VERSION=3.3.6
+ARCH=${ARCH:-x86_64}
+TARGET=${TARGET:-$ARCH-slackware-linux}
+BUILD=${BUILD:-1}
+
+CWD=`pwd`
+# Temporary build location. This should *NOT* be a directory
+# path a non-root user could create later...
+TMP=/gcc-build-$(mcookie)
+
+# Clear the build locations:
+if [ -d $TMP ]; then
+ rm -rf $TMP
+fi
+
+EXTRA=--disable-multilib
+
+mkdir -p $TMP
+cd $TMP
+tar xjvf $CWD/gcc-$VERSION.tar.bz2
+# install docs
+( cd gcc-$VERSION
+ # Fix perms/owners
+ chown -R root.root .
+ find . -perm 777 -exec chmod 755 {} \;
+ find . -perm 775 -exec chmod 755 {} \;
+ find . -perm 754 -exec chmod 755 {} \;
+ find . -perm 664 -exec chmod 644 {} \;
+)
+# build gcc
+( mkdir gcc.build.lnx;
+ cd gcc.build.lnx;
+ CFLAGS="-O2 -fPIC" \
+ ../gcc-$VERSION/configure \
+ --enable-shared \
+ --enable-threads=posix \
+ --enable-__cxa_atexit \
+ --enable-languages=c,c++ \
+ --disable-checking \
+ --with-gnu-ld \
+ --verbose \
+ --target=${TARGET} \
+ --host=${TARGET} \
+ $EXTRA
+ # Include all debugging info (for now):
+ make #bootstrap;
+) 2>&1 | tee $TMP/gcc.build.log
diff --git a/source/a/cxxlibs/slack-desc b/source/a/cxxlibs/slack-desc
new file mode 100644
index 000000000..c1428f943
--- /dev/null
+++ b/source/a/cxxlibs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+cxxlibs: cxxlibs (C++ shared library compatibility package)
+cxxlibs:
+cxxlibs: This package contains the shared libraries needed to run dynamically
+cxxlibs: linked C++ binaries linked with older versions of libstdc++.
+cxxlibs:
+cxxlibs:
+cxxlibs:
+cxxlibs:
+cxxlibs:
+cxxlibs:
+cxxlibs:
diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs b/source/a/cxxlibs/symlinks-to-tracked-libs
new file mode 100644
index 000000000..e4f67cf60
--- /dev/null
+++ b/source/a/cxxlibs/symlinks-to-tracked-libs
@@ -0,0 +1,5 @@
+/usr/i486-slackware-linux/lib/libstdc++-libc6.1-2.so.3
+/usr/i486-slackware-linux/lib/libstdc++-libc6.2-2.so.3
+/usr/i486-slackware-linux/lib/libstdc++.so.4
+/usr/i486-slackware-linux/lib/libstdc++.so.5
+/usr/lib/libstdc++.so.6
diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs64 b/source/a/cxxlibs/symlinks-to-tracked-libs64
new file mode 100644
index 000000000..3a348cf1e
--- /dev/null
+++ b/source/a/cxxlibs/symlinks-to-tracked-libs64
@@ -0,0 +1,2 @@
+/usr/lib64/libstdc++.so.5
+/usr/lib64/libstdc++.so.6
diff --git a/source/a/dbus/dbus.SlackBuild b/source/a/dbus/dbus.SlackBuild
new file mode 100755
index 000000000..c761ce54c
--- /dev/null
+++ b/source/a/dbus/dbus.SlackBuild
@@ -0,0 +1,111 @@
+#!/bin/sh
+# Copyright 2007, 2008 Robby Workman <http://rlworkman.net>
+# Copyright 2007, 2008, 2009 Patrick Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PRGNAM=dbus
+VERSION=1.2.14
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PRGNAM
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz || exit 1
+cd $PRGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --enable-shared=yes \
+ --enable-static=no \
+ --with-system-pid-file=/var/run/dbus/dbus.pid \
+ --with-system-socket=/var/run/dbus/system_bus_socket \
+ --with-init-scripts=slackware \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+# Install a custom init script for dbus - the included one is not good for us
+rm $PKG/etc/rc.d/*
+zcat $CWD/rc.messagebus.gz > $PKG/etc/rc.d/rc.messagebus.new
+chmod 0755 $PKG/etc/rc.d/rc.messagebus.new
+
+# Let's not clobber existing config files
+mv $PKG/etc/dbus-1/session.conf $PKG/etc/dbus-1/session.conf.new
+mv $PKG/etc/dbus-1/system.conf $PKG/etc/dbus-1/system.conf.new
+
+# Fix some directory ownership
+chown messagebus $PKG/var/lib/dbus
+
+# Add documentation
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING HACKING INSTALL NEWS README doc/*.{txt,html,dtd} \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/dbus/doinst.sh b/source/a/dbus/doinst.sh
new file mode 100644
index 000000000..71c3d7a07
--- /dev/null
+++ b/source/a/dbus/doinst.sh
@@ -0,0 +1,24 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Keep same perms on rc.messagebus.new:
+if [ -e etc/rc.d/rc.messagebus ]; then
+ cp -a etc/rc.d/rc.messagebus etc/rc.d/rc.messagebus.new.incoming
+ cat etc/rc.d/rc.messagebus.new > etc/rc.d/rc.messagebus.new.incoming
+ mv etc/rc.d/rc.messagebus.new.incoming etc/rc.d/rc.messagebus.new
+fi
+
+config etc/dbus-1/session.conf.new
+config etc/dbus-1/system.conf.new
+config etc/rc.d/rc.messagebus.new
+
diff --git a/source/a/dbus/rc.messagebus b/source/a/dbus/rc.messagebus
new file mode 100644
index 000000000..7b27eb599
--- /dev/null
+++ b/source/a/dbus/rc.messagebus
@@ -0,0 +1,80 @@
+#!/bin/sh
+#
+# messagebus: The D-BUS systemwide message bus
+#
+# description: This is a daemon which broadcasts notifications of system events \
+# and other messages. See http://www.freedesktop.org/software/dbus/
+#
+# processname: dbus-daemon
+# pidfile: /var/run/dbus/pid
+
+# This is a modified version of the rc.messagebus script distributed with the
+# dbus sources. Thanks to Don Tanner of the GWare <http://gware.org> Project
+# for most of the work involved --Robby Workman <rworkman@slackware.com>
+
+
+PIDFILE=/var/run/dbus/dbus.pid
+
+start() {
+ if ! ps axc | grep -w dbus-daemon ; then
+ rm -f $(dirname $PIDFILE)/*
+ if [ -x /usr/bin/dbus-uuidgen -a -x /usr/bin/dbus-daemon ] ; then
+ echo "Starting system message bus: /usr/bin/dbus-uuidgen --ensure ; /usr/bin/dbus-daemon --system"
+ /usr/bin/dbus-uuidgen --ensure
+ /usr/bin/dbus-daemon --system 1> /dev/null
+ fi
+ fi
+}
+
+stop() {
+ if [ -e "$PIDFILE" ]; then
+ echo "Stopping system message bus..."
+ pid=$(cat $PIDFILE)
+ kill $pid 1> /dev/null 2> /dev/null
+ # Just in case:
+ killall dbus-daemon 1> /dev/null 2> /dev/null
+ rm -f $PIDFILE
+ fi
+}
+
+reload() {
+ echo "Reloading system message bus configuration..."
+ if [ -e "$PIDFILE" ]; then
+ pid=$(cat $PIDFILE)
+ kill -HUP $pid
+ else
+ killall -HUP dbus-daemon
+ fi
+}
+
+status() {
+ if ps axc | grep -wq dbus-daemon 2>/dev/null ; then
+ echo "dbus-daemon is running."
+ else
+ echo "dbus is stopped."
+ fi
+}
+
+# See how we were called.
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ reload)
+ reload
+ ;;
+ status)
+ status
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart|reload|status}"
+ ;;
+esac
+
diff --git a/source/a/dbus/slack-desc b/source/a/dbus/slack-desc
new file mode 100644
index 000000000..0610ab8d3
--- /dev/null
+++ b/source/a/dbus/slack-desc
@@ -0,0 +1,18 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+ |-----handy-ruler------------------------------------------------------|
+dbus: dbus (D-Bus message bus system)
+dbus:
+dbus: D-Bus supplies both a system daemon (for events such as "new hardware
+dbus: device added" or "printer queue changed") and a per user login
+dbus: session daemon (for general IPC needs among user applications).
+dbus: Also, the message bus is built on top of a general one-to-one message
+dbus: passing framework, which can be used by any two apps to communicate
+dbus: directly (without going through the message bus daemon).
+dbus:
+dbus:
+dbus:
diff --git a/source/a/dcron/dcron-2.3.3.crontab.diff4 b/source/a/dcron/dcron-2.3.3.crontab.diff4
new file mode 100644
index 000000000..30d0501a0
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.crontab.diff4
@@ -0,0 +1,19 @@
+--- ./crontab.c.orig Wed Feb 20 14:31:32 2002
++++ ./crontab.c Wed Feb 20 14:33:13 2002
+@@ -197,14 +197,14 @@
+ int n;
+
+ snprintf(path, sizeof(path), "%s.new", pas->pw_name);
+- if ((fd = open(path, O_CREAT|O_TRUNC|O_EXCL|O_APPEND|O_WRONLY, 0600)) >= 0) {
++ if ((fd = open(path, O_CREAT|O_TRUNC|O_APPEND|O_WRONLY, 0600)) >= 0) {
+ while ((n = read(repFd, buf, sizeof(buf))) > 0) {
+ write(fd, buf, n);
+ }
+ close(fd);
+ rename(path, pas->pw_name);
+ } else {
+- fprintf(stderr, "unable to create %s/%s\n", CDir, buf);
++ fprintf(stderr, "unable to create %s/%s\n", CDir, path);
+ }
+ close(repFd);
+ }
diff --git a/source/a/dcron/dcron-2.3.3.diff b/source/a/dcron/dcron-2.3.3.diff
new file mode 100644
index 000000000..22806de3e
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.diff
@@ -0,0 +1,40 @@
+--- ./defs.h.orig Fri Sep 5 14:44:32 1997
++++ ./defs.h Thu Aug 26 16:56:10 1999
+@@ -29,7 +29,7 @@
+ #define CRONTABS "/var/spool/cron/crontabs"
+ #endif
+ #ifndef TMPDIR
+-#define TMPDIR "/tmp"
++#define TMPDIR "/var/spool/cron"
+ #endif
+ #ifndef OPEN_MAX
+ #define OPEN_MAX 256
+--- ./subs.c.orig Mon Feb 16 13:35:10 1998
++++ ./subs.c Thu Aug 26 16:57:21 1999
+@@ -15,7 +15,7 @@
+ Prototype int ChangeUser(const char *user, short dochdir);
+ Prototype void vlog(int level, int fd, const char *ctl, va_list va);
+ Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate);
+-Prototype char *strdup(const char *);
++Prototype char *xx_strdup(const char *);
+
+ void
+ log9(const char *ctl, ...)
+@@ -80,7 +80,7 @@
+
+ buf[0] = 0;
+ if (useDate)
+- strftime(buf, 128, "%d-%b-%y %H:%M ", tp);
++ strftime(buf, 128, "%d-%b-%Y %H:%M ", tp);
+ vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va);
+ return(strlen(buf));
+ }
+@@ -132,7 +132,7 @@
+ }
+
+ char *
+-strdup(const char *str)
++xx_strdup(const char *str)
+ {
+ char *ptr = malloc(strlen(str) + 1);
+
diff --git a/source/a/dcron/dcron-2.3.3.diff2 b/source/a/dcron/dcron-2.3.3.diff2
new file mode 100644
index 000000000..8eb8242c5
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.diff2
@@ -0,0 +1,477 @@
+--- ./CHANGES:1.1 Fri Jan 7 18:15:59 2000
++++ ./CHANGES Thu Apr 20 12:10:36 2000
+@@ -1,3 +1,15 @@
++20/03/00 - TEMHOTA <temnota@kmv.ru>
++ Adding SIGHUP signal handler. crond die when init send to it SIGHUP.
++ Rewrtited all loging code. Added logging through syslog and normal
++ logging to file.
++
++ Technical details:
++ + logging through syslog used facility LOG_CRON
++ + log_err - now *always* write message to logger (if selected logging
++ through syslog - message send as LOG_ERR).
++ + log9 - sends message hrough syslog loglevel LOG_WARNING
++ + for all other log levels - default syslog loglevel LOG_NOTICE
++
+ 02/16/98 - Jordan Mendelson (jordy@wserv.com)
+
+ Numerous people have reported a problem with logging. I'm sorry
+--- ./Makefile:1.1 Fri Jan 7 18:15:59 2000
++++ ./Makefile Thu Apr 20 12:24:40 2000
+@@ -27,7 +27,7 @@
+ rm -f crond crontab
+
+ cleano:
+- rm -f *.o dcron.tgz $(PROTOS)
++ rm -f *.o dcron.tgz $(PROTOS) *~
+
+ install: crond crontab
+ install -o root -g root -m 0755 crond /usr/sbin
+--- ./crontab.c:1.1 Fri Jan 7 18:15:59 2000
++++ ./crontab.c Sun Mar 19 15:03:36 2000
+@@ -15,6 +15,9 @@
+ char *CDir = CRONTABS;
+ int UserId;
+ short LogLevel = 9;
++short DebugOpt = 0;
++short LoggerOpt = 0;
++char *LogFile = LOG_FILE;
+
+ void EditFile(const char *user, const char *file);
+ int GetReplaceStream(const char *user, const char *file);
+@@ -136,7 +139,7 @@
+ */
+
+ if (chdir(CDir) < 0) {
+- fprintf(stderr, "cannot change diir to %s: %s\n", CDir, strerror(errno));
++ fprintf(stderr, "cannot change dir to %s: %s\n", CDir, strerror(errno));
+ exit(1);
+ }
+
+--- ./defs.h:1.1 Fri Jan 7 18:15:59 2000
++++ ./defs.h Sun Mar 19 15:03:36 2000
+@@ -17,6 +17,9 @@
+ #include <pwd.h>
+ #include <unistd.h>
+ #include <grp.h>
++#include <syslog.h>
++#include <signal.h>
++#include <getopt.h>
+ #include <sys/ioctl.h>
+ #include <sys/wait.h>
+ #include <sys/stat.h>
+@@ -30,6 +33,9 @@
+ #endif
+ #ifndef TMPDIR
+ #define TMPDIR "/var/spool/cron"
++#endif
++#ifndef LOG_FILE
++#define LOG_FILE "/var/log/cron"
+ #endif
+ #ifndef OPEN_MAX
+ #define OPEN_MAX 256
+--- ./job.c:1.1 Fri Jan 7 18:15:59 2000
++++ ./job.c Thu Apr 20 12:10:36 2000
+@@ -16,7 +16,7 @@
+ {
+ char mailFile[128];
+ int mailFd;
+-
++
+ line->cl_Pid = 0;
+ line->cl_MailFlag = 0;
+
+@@ -57,14 +57,6 @@
+ log(5, "Child Running %s\n", line->cl_Shell);
+
+ /*
+- * Setup close-on-exec descriptor in case exec fails
+- */
+-
+- dup2(2, 8);
+- fcntl(8, F_SETFD, 1);
+- fclose(stderr);
+-
+- /*
+ * stdin is already /dev/null, setup stdout and stderr
+ */
+
+@@ -73,13 +65,13 @@
+ dup2(mailFd, 2);
+ close(mailFd);
+ } else {
+- logfd(8, "unable to create mail file user %s file %s, output to /dev/null\n",
++ log_err("unable to create mail file user %s file %s, output to /dev/null\n",
+ file->cf_User,
+ mailFile
+ );
+ }
+ execl("/bin/sh", "/bin/sh", "-c", line->cl_Shell, NULL, NULL);
+- logfd(8, "unable to exec, user %s cmd /bin/sh -c %s\n",
++ log_err("unable to exec, user %s cmd /bin/sh -c %s\n",
+ file->cf_User,
+ line->cl_Shell
+ );
+@@ -89,7 +81,7 @@
+ /*
+ * PARENT, FORK FAILED
+ */
+- log9("couldn't fork, user %s\n", file->cf_User);
++ log_err("couldn't fork, user %s\n", file->cf_User);
+ line->cl_Pid = 0;
+ remove(mailFile);
+ } else {
+@@ -158,6 +150,7 @@
+ if (mailFd < 0) {
+ return;
+ }
++
+ if (fstat(mailFd, &sbuf) < 0 ||
+ sbuf.st_uid != DaemonUid ||
+ sbuf.st_nlink != 0 ||
+@@ -182,15 +175,6 @@
+ exit(0);
+
+ /*
+- * create close-on-exec log descriptor in case exec fails
+- */
+-
+- dup2(2, 8);
+- fcntl(8, F_SETFD, 1);
+-
+- fclose(stderr);
+-
+- /*
+ * run sendmail with mail file as standard input, only if
+ * mail file exists!
+ */
+@@ -200,7 +184,7 @@
+ close(mailFd);
+
+ execl(SENDMAIL, SENDMAIL, SENDMAIL_ARGS, NULL, NULL);
+- logfd(8, "unable to exec %s %s, user %s, output to sink null",
++ log_err("unable to exec %s %s, user %s, output to sink null",
+ SENDMAIL,
+ SENDMAIL_ARGS,
+ file->cf_User
+@@ -210,7 +194,7 @@
+ /*
+ * PARENT, FORK FAILED
+ */
+- log9("unable to fork, user %s", file->cf_User);
++ log_err("unable to fork, user %s", file->cf_User);
+ line->cl_Pid = 0;
+ } else {
+ /*
+--- ./main.c:1.1 Fri Jan 7 18:15:59 2000
++++ ./main.c Sun Mar 19 15:03:36 2000
+@@ -15,14 +15,18 @@
+ Prototype short DebugOpt;
+ Prototype short LogLevel;
+ Prototype short ForegroundOpt;
+-Prototype char *CDir;
+-Prototype int DaemonUid;
++Prototype short LoggerOpt;
++Prototype char *CDir;
++Prototype char *LogFile;
++Prototype uid_t DaemonUid;
+
+ short DebugOpt;
+ short LogLevel = 8;
+-short ForegroundOpt;
++short ForegroundOpt = 0;
++short LoggerOpt;
+ char *CDir = CRONTABS;
+-int DaemonUid;
++char *LogFile = LOG_FILE;
++uid_t DaemonUid;
+
+ int
+ main(int ac, char **av)
+@@ -35,48 +39,49 @@
+
+ DaemonUid = getuid();
+
+- for (i = 1; i < ac; ++i) {
+- char *ptr = av[i];
++ opterr = 0; /* disable getopt 'errors' message.*/
+
+- if (*ptr == '-') {
+- ptr += 2;
+-
+- switch(ptr[-1]) {
++ while ((i = getopt(ac,av,"d:l:L:fbSc:")) != EOF){
++
++ switch (i){
+ case 'l':
+- LogLevel = (*ptr) ? strtol(ptr, NULL, 0) : 1;
+- continue;
++ LogLevel = atoi(optarg);
++ break;
+ case 'd':
+- DebugOpt = (*ptr) ? strtol(ptr, NULL, 0) : 1;
++ DebugOpt = atoi(optarg);
+ LogLevel = 0;
+ /* fall through */
++ break;
+ case 'f':
+ ForegroundOpt = 1;
+- continue;
++ break;
+ case 'b':
+ ForegroundOpt = 0;
+- continue;
++ break;
++ case 'S': /* select logging to syslog */
++ LoggerOpt = 0;
++ break;
++ case 'L': /* select internal file logger */
++ LoggerOpt = 1;
++ if (*optarg != 0) LogFile = optarg;
++ break;
+ case 'c':
+- CDir = (*ptr) ? ptr : av[++i];
+- continue;
++ if (*optarg != 0) CDir = optarg;
++ break;
+ default:
++ /*
++ * parse error
++ */
++ printf("dcron " VERSION "\n");
++ printf("dcron -d [#] -l [#] -S -L logfile -f -b -c dir\n");
++ printf("-d num\tdebug level\n-l num\tlog level (8 - default)\n-S\tlog to syslod (defualt)\n");
++ printf("-L file\tlog to file\n-f\trun in fordeground\n");
++ printf("-b\trun in background (default)\n-c dir\tworking dir\n");
++ exit(1);
+ break;
+- }
+- }
+- break; /* error */
+- }
+-
+- /*
+- * check for parse error
+- */
+-
+- if (i != ac) {
+- if (i > ac)
+- puts("expected argument for option");
+- printf("dcron " VERSION "\n");
+- printf("dcron -d[#] -l[#] -f -b -c dir\n");
+- exit(1);
++ }
+ }
+-
++
+ /*
+ * change directory
+ */
+@@ -87,14 +92,15 @@
+ }
+
+ /*
+- * close stdin and stdout (stderr normally redirected by caller).
+- * close unused descriptors
++ * close stdin and stdout, stderr.
++ * close unused descriptors - don't need.
+ * optional detach from controlling terminal
+ */
+
+ fclose(stdin);
+ fclose(stdout);
+-
++ fclose(stderr);
++
+ i = open("/dev/null", O_RDWR);
+ if (i < 0) {
+ perror("open: /dev/null:");
+@@ -102,15 +108,14 @@
+ }
+ dup2(i, 0);
+ dup2(i, 1);
++ dup2(i, 2);
+
+- for (i = 3; i < OPEN_MAX; ++i) {
+- close(i);
+- }
+-
+ if (ForegroundOpt == 0) {
+ int fd;
+ int pid;
+-
++ if (setsid() < 0)
++ perror("setsid");
++
+ if ((fd = open("/dev/tty", O_RDWR)) >= 0) {
+ ioctl(fd, TIOCNOTTY, 0);
+ close(fd);
+@@ -125,13 +130,17 @@
+ if (pid > 0)
+ exit(0);
+ }
+-
++
++ (void)startlogger(); /* need if syslog mode selected */
++ (void)initsignals(); /* set some signal handlers */
++
+ /*
+ * main loop - synchronize to 1 second after the minute, minimum sleep
+ * of 1 second.
+ */
++
++ log(9,"%s " VERSION " dillon, started, log level %d\n", av[0], LogLevel);
+
+- log9("%s " VERSION " dillon, started\n", av[0]);
+ SynchronizeDir(".");
+
+ {
+--- ./subs.c:1.1 Fri Jan 7 18:15:59 2000
++++ ./subs.c Sun Mar 19 15:03:36 2000
+@@ -10,43 +10,62 @@
+
+ Prototype void log(int level, const char *ctl, ...);
+ Prototype void log9(const char *ctl, ...);
+-Prototype void logfd(int fd, const char *ctl, ...);
++Prototype void log_err(const char *ctl, ...);
+ Prototype void fdprintf(int fd, const char *ctl, ...);
+-Prototype int ChangeUser(const char *user, short dochdir);
+-Prototype void vlog(int level, int fd, const char *ctl, va_list va);
+-Prototype int slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate);
++Prototype void vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va);
++Prototype int ChangeUser(const char *user, short dochdir);
+ Prototype char *xx_strdup(const char *);
++Prototype void startlogger(void);
++Prototype void initsignals(void);
+
++/*
++ set log_level=9 and log messages
++*/
++
+ void
+ log9(const char *ctl, ...)
+ {
+ va_list va;
+
+ va_start(va, ctl);
+- vlog(9, 2, ctl, va);
++ vlog(9, LOG_WARNING, ctl, va);
+ va_end(va);
+ }
+
++/*
++ normal logger call point.
++*/
++
+ void
+ log(int level, const char *ctl, ...)
+ {
+ va_list va;
+
+ va_start(va, ctl);
+- vlog(level, 2, ctl, va);
++ vlog(level, LOG_NOTICE, ctl, va);
+ va_end(va);
+ }
+
++/*
++ Original: void
++ logfd(int fd, const char *ctl, ...)
++ Updated to: log_error (used by jobs.c)
++*/
++
+ void
+-logfd(int fd, const char *ctl, ...)
++log_err(const char *ctl, ...)
+ {
+ va_list va;
+
+ va_start(va, ctl);
+- vlog(9, fd, ctl, va);
++ vlog(20, LOG_ERR, ctl, va);
+ va_end(va);
+ }
+
++/*
++ used by jobs.c (write to temp file..)
++*/
++
+ void
+ fdprintf(int fd, const char *ctl, ...)
+ {
+@@ -60,32 +79,28 @@
+ }
+
+ void
+-vlog(int level, int fd, const char *ctl, va_list va)
++vlog(int level, int MLOG_LEVEL, const char *ctl, va_list va)
+ {
+ char buf[1024];
+- short n;
+- static short useDate = 1;
++ int logfd;
+
+ if (level >= LogLevel) {
+- write(fd, buf, n = slog(buf, sizeof(buf), ctl, va, useDate));
+- useDate = (n && buf[n-1] == '\n');
++
++ vsnprintf(buf,sizeof(buf), ctl, va);
++ if (DebugOpt) fprintf(stderr,"%s",buf);
++ else
++ if (LoggerOpt == 0) syslog(MLOG_LEVEL, "%s",buf );
++ else {
++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0){
++ write(logfd, buf, strlen(buf));
++ close(logfd);
++ } else
++ fprintf(stderr,"Can't open log file. Err: %s",strerror(errno));
++ }
+ }
+ }
+
+ int
+-slog(char *buf, size_t sz, const char *ctl, va_list va, short useDate)
+-{
+- time_t t = time(NULL);
+- struct tm *tp = localtime(&t);
+-
+- buf[0] = 0;
+- if (useDate)
+- strftime(buf, 128, "%d-%b-%Y %H:%M ", tp);
+- vsnprintf(buf + strlen(buf), sz - strlen(buf), ctl, va);
+- return(strlen(buf));
+-}
+-
+-int
+ ChangeUser(const char *user, short dochdir)
+ {
+ struct passwd *pas;
+@@ -141,3 +156,28 @@
+ return(ptr);
+ }
+
++
++void
++startlogger(void){
++int logfd;
++
++ if (LoggerOpt == 0)
++ openlog("crond",LOG_CONS|LOG_PID,LOG_CRON);
++
++ else { /* test logfile */
++ if ((logfd = open(LogFile,O_WRONLY|O_CREAT|O_APPEND,600)) >= 0)
++ close(logfd);
++ else
++ printf("Failed to open log file '%s' reason: %s",LogFile,strerror(errno));
++ }
++}
++
++
++void
++initsignals(void){
++
++ signal(SIGHUP,SIG_IGN); /* hmm.. but, if kill -HUP original
++ * version - his died. ;(
++ */
++
++}
diff --git a/source/a/dcron/dcron-2.3.3.diff3 b/source/a/dcron/dcron-2.3.3.diff3
new file mode 100644
index 000000000..25c72fc96
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.diff3
@@ -0,0 +1,11 @@
+--- ./defs.h.orig Wed May 30 14:13:05 2001
++++ ./defs.h Wed May 30 14:13:13 2001
+@@ -41,7 +41,7 @@
+ #define OPEN_MAX 256
+ #endif
+ #ifndef SENDMAIL
+-#define SENDMAIL "/usr/lib/sendmail"
++#define SENDMAIL "/usr/sbin/sendmail"
+ #endif
+ #ifndef SENDMAIL_ARGS
+ #define SENDMAIL_ARGS "-t", "-oem", "-i"
diff --git a/source/a/dcron/dcron-2.3.3.lsm b/source/a/dcron/dcron-2.3.3.lsm
new file mode 100644
index 000000000..5c161b50a
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.lsm
@@ -0,0 +1,17 @@
+Begin3
+Title: DCron - yet another cron
+Version: 2.3.3
+Entered-date: 17Feb98
+Description: A multi-user cron written from scratch by the author,
+ similar to vixie-cron but with significant differences.
+ Attention paid less to feature creep and more to usability
+ and reliability
+Keywords: cron crontab dcron
+Author: dillon@apollo.west.oic.com (Matthew Dillon)
+Maintained-by: dillon@apollo.west.oic.com (Matthew Dillon)
+Primary-site: sunsite.unc.edu /pub/Linux/system/daemons/cron
+Alternate-site:
+Original-site:
+Platforms:
+Copying-policy: GPL
+End
diff --git a/source/a/dcron/dcron-2.3.3.version.diff b/source/a/dcron/dcron-2.3.3.version.diff
new file mode 100644
index 000000000..1b65a0c98
--- /dev/null
+++ b/source/a/dcron/dcron-2.3.3.version.diff
@@ -0,0 +1,11 @@
+--- ./defs.h.orig Tue Apr 9 01:07:07 2002
++++ ./defs.h Tue Apr 9 01:07:15 2002
+@@ -51,7 +51,7 @@
+ #endif
+
+
+-#define VERSION "2.3.2"
++#define VERSION "2.3.3"
+
+ typedef struct CronFile {
+ struct CronFile *cf_Next;
diff --git a/source/a/dcron/dcron.SlackBuild b/source/a/dcron/dcron.SlackBuild
new file mode 100755
index 000000000..c9bb62ff3
--- /dev/null
+++ b/source/a/dcron/dcron.SlackBuild
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.3.3
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-dcron
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_dcron.tar.gz
+
+cd $TMP
+rm -rf dcron-$VERSION
+tar xzvf $CWD/dcron-$VERSION.tar.gz
+cd dcron-$VERSION
+mkdir -p $PKG/usr/doc/dcron-$VERSION
+cp -a CHANGES README dcron-$VERSION.lsm $PKG/usr/doc/dcron-2.3.3
+chown root:root $PKG/usr/doc/dcron-$VERSION/*
+chmod 644 $PKG/usr/doc/dcron-$VERSION/*
+zcat $CWD/dcron-$VERSION.diff.gz | patch -p1 -E --verbose --backup || exit
+# Added signal handling/logging patch from TEMHOTA <temnota@kmv.ru>:
+zcat $CWD/dcron-$VERSION.diff2.gz | patch -p1 -E --verbose --backup || exit
+# Use /usr/sbin/sendmail, not /usr/lib/sendmail. Fixes cron working
+# with Postfix. Suggested by Big Brother.
+zcat $CWD/dcron-$VERSION.diff3.gz | patch -p1 -E --verbose --backup || exit
+# Fix problem where user creates /var/spool/cron/crontabs/<user>.new
+# using 'crontab -', exits with control-c, and then crontab refuses to
+# overwrite the junk file:
+zcat $CWD/dcron-$VERSION.crontab.diff4.gz | patch -p1 -E --verbose --backup || exit
+# Dcron reports wrong version:
+zcat $CWD/dcron-2.3.3.version.diff.gz | patch -p1 || exit
+# Keep dcron from improperly forking in some circumstances.
+# Thanks to Henrik Carlqvist for the patch.
+zcat $CWD/dcron.fork.diff.gz | patch -p1
+make
+strip crond crontab
+cat crond > $PKG/usr/sbin/crond
+cat crontab > $PKG/usr/bin/crontab
+zcat $CWD/run-parts.gz > $PKG/usr/bin/run-parts
+cat crontab.1 | gzip -9c > $PKG/usr/man/man1/crontab.1.gz
+cat crond.8 | gzip -9c > $PKG/usr/man/man8/crond.8.gz
+cat $CWD/run-parts.8.gz > $PKG/usr/man/man8/run-parts.8.gz
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/dcron-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/dcron/dcron.fork.diff b/source/a/dcron/dcron.fork.diff
new file mode 100644
index 000000000..b3aefc054
--- /dev/null
+++ b/source/a/dcron/dcron.fork.diff
@@ -0,0 +1,11 @@
+--- ./job.c.orig 2005-09-11 16:36:43.000000000 -0700
++++ ./job.c 2005-09-11 16:37:51.000000000 -0700
+@@ -51,7 +51,7 @@
+ */
+
+ if (ChangeUser(file->cf_User, 1) < 0)
+- return;
++ exit(0);
+
+ if (DebugOpt)
+ log(5, "Child Running %s\n", line->cl_Shell);
diff --git a/source/a/dcron/dcron.tmpdir.diff b/source/a/dcron/dcron.tmpdir.diff
new file mode 100644
index 000000000..3946fedeb
--- /dev/null
+++ b/source/a/dcron/dcron.tmpdir.diff
@@ -0,0 +1,11 @@
+--- defs.h.orig Mon May 2 10:27:40 1994
++++ defs.h Sun Apr 4 22:09:00 1999
+@@ -29,7 +29,7 @@
+ #define CRONTABS "/var/spool/cron/crontabs"
+ #endif
+ #ifndef TMPDIR
+-#define TMPDIR "/tmp"
++#define TMPDIR "/var/spool/cron"
+ #endif
+ #ifndef OPEN_MAX
+ #define OPEN_MAX 256
diff --git a/source/a/dcron/run-parts b/source/a/dcron/run-parts
new file mode 100644
index 000000000..dd6b59b3e
--- /dev/null
+++ b/source/a/dcron/run-parts
@@ -0,0 +1,49 @@
+#!/bin/sh
+# run-parts: Runs all the scripts found in a directory.
+
+# keep going when something fails
+set +e
+
+if [ $# -lt 1 ]; then
+ echo "Usage: run-parts <directory>"
+ exit 1
+fi
+
+if [ ! -d $1 ]; then
+ echo "Not a directory: $1"
+ echo "Usage: run-parts <directory>"
+ exit 1
+fi
+
+# There are several types of files that we would like to
+# ignore automatically, as they are likely to be backups
+# of other scripts:
+IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp"
+
+# Main loop:
+for SCRIPT in $1/* ; do
+ # If this is not a regular file, skip it:
+ if [ ! -f $SCRIPT ]; then
+ continue
+ fi
+ # Determine if this file should be skipped by suffix:
+ SKIP=false
+ for SUFFIX in $IGNORE_SUFFIXES ; do
+ if [ ! "`basename $SCRIPT $SUFFIX`" = "`basename $SCRIPT`" ]; then
+ SKIP=true
+ break
+ fi
+ done
+ if [ "$SKIP" = "true" ]; then
+ continue
+ fi
+ # If we've made it this far, then run the script if it's executable:
+ if [ -x $SCRIPT ]; then
+ echo "$SCRIPT:"
+ echo
+ $SCRIPT 2>&1
+ echo
+ fi
+done
+
+exit 0
diff --git a/source/a/dcron/run-parts.8 b/source/a/dcron/run-parts.8
new file mode 100644
index 000000000..2d5e5f6ad
--- /dev/null
+++ b/source/a/dcron/run-parts.8
@@ -0,0 +1,36 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH RUN-PARTS 8 "14 Apr 2002" "Slackware Version 8.1.0
+.SH NAME
+run-parts \- run scripts found in a directory
+.SH SYNOPSIS
+.B run-parts <directory>
+.LP
+.SH DESCRIPTION
+.B run-parts
+is a utility that will run scripts that are found in a directory. For example,
+it might be useful to create an /etc/cron.daily directory and put scripts in
+there for daily cron jobs. Then
+.B run-parts
+can be called once a day from root's crontab to run all the scripts found in
+/etc/cron.daily:
+
+40 4 * * * run-parts /etc/cron.daily
+
+.B run-parts
+automatically skips files with certain suffixes that are generally associated
+with backup or extra files. Any file that ends in one of these will be silently
+ignored: ~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>, with ideas borrowed from the
+Red Hat and Debian versions of this utility.
+.SH "SEE ALSO"
+.BR crond(8),
+.BR crontab(8).
diff --git a/source/a/dcron/slack-desc b/source/a/dcron/slack-desc
new file mode 100644
index 000000000..d56e60871
--- /dev/null
+++ b/source/a/dcron/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+dcron: dcron (Dillon's Cron daemon)
+dcron:
+dcron: The cron daemon runs in the background and executes tasks on behalf of
+dcron: users at the appropriate time. Many timed system tasks are started
+dcron: with cron, such as the nightly indexing with updatedb.
+dcron:
+dcron: dcron was written entirely from scratch by Matthew Dillon.
+dcron:
+dcron:
+dcron:
+dcron:
diff --git a/source/a/device-mapper/64-device-mapper.rules b/source/a/device-mapper/64-device-mapper.rules
new file mode 100644
index 000000000..7e9a235db
--- /dev/null
+++ b/source/a/device-mapper/64-device-mapper.rules
@@ -0,0 +1,37 @@
+# device mapper links hook into "change" events, when the dm table
+# becomes available; some table-types must be ignored
+
+KERNEL=="device-mapper", NAME="mapper/control"
+
+KERNEL!="dm-*", GOTO="device_mapper_end"
+ACTION!="add|change", GOTO="device_mapper_end"
+
+# lookup device name
+# use dmsetup, until devmap_name is provided by sys-fs/device-mapper
+PROGRAM=="/sbin/dmsetup -j %M -m %m --noopencount --noheadings -c -o name info",
+ ENV{DM_NAME}="%c"
+
+# do not do anything if dmsetup does not provide a name
+ENV{DM_NAME}=="", NAME="", OPTIONS="ignore_device"
+
+# ignore luks crypt devices while not fully up
+ENV{DM_NAME}=="temporary-cryptsetup-*", NAME="", OPTIONS="ignore_device"
+
+# use queried name
+ENV{DM_NAME}=="?*", NAME="mapper/$env{DM_NAME}"
+
+SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
+SYMLINK+="disk/by-name/$env{DM_NAME}"
+
+PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end"
+ENV{DM_TYPE}="%c{3}"
+
+ENV{DM_TYPE}=="|*error*", GOTO="device_mapper_end"
+
+IMPORT{program}="vol_id --export $tempnode"
+OPTIONS="link_priority=50"
+ENV{DM_TYPE}=="*snapshot-origin*", OPTIONS="link_priority=60"
+ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
+ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
+
+LABEL="device_mapper_end"
diff --git a/source/a/device-mapper/device-mapper.SlackBuild b/source/a/device-mapper/device-mapper.SlackBuild
new file mode 100755
index 000000000..d770deed7
--- /dev/null
+++ b/source/a/device-mapper/device-mapper.SlackBuild
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=1.02.28
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-device-mapper
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf device-mapper.$VERSION
+tar xvf $CWD/device-mapper.$VERSION.tar.bz2 || exit 1
+cd device-mapper.$VERSION
+
+chown -R root.root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --enable-static_link \
+ --enable-pkgconfig \
+ --enable-dmeventd \
+ --disable-selinux \
+ --with-device-uid=0 \
+ --with-device-gid=6 \
+ --with-device-mode=0660 \
+ --build=$ARCH-slackware-linux
+ # I tried adding --enable-compat but that failed to compile
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# On x86_64 the pkgconfig files are installed to the wrong directory, but
+# the .pc content is correct, so we just move them over:
+if [ ! -d $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig ]; then
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+ mv $PKG/usr/lib/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX}/
+ rmdir $PKG/usr/lib || exit 1
+fi
+
+mkdir -p $PKG/lib/udev/rules.d
+cat $CWD/64-device-mapper.rules > $PKG/lib/udev/rules.d/64-device-mapper.rules
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/device-mapper.$VERSION
+cp -a \
+ COPYING* INSTALL INTRO README* VERSION WHATS_NEW \
+ $PKG/usr/doc/device-mapper.$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/device-mapper-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/device-mapper/slack-desc b/source/a/device-mapper/slack-desc
new file mode 100644
index 000000000..2708a39fb
--- /dev/null
+++ b/source/a/device-mapper/slack-desc
@@ -0,0 +1,20 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+device-mapper: device-mapper (device-mapper for logical volume management)
+device-mapper:
+device-mapper: The goal of device-mapper is to support volume management. The
+device-mapper: driver enables the definition of new block devices composed of
+device-mapper: ranges of sectors of existing devices. This can be used to define
+device-mapper: disk partitions or logical volumes.
+device-mapper:
+device-mapper: device-mapper is required by LVM2, the Logical Volume Manager.
+device-mapper:
+device-mapper:
+device-mapper:
+
diff --git a/source/a/devs/devs.SlackBuild b/source/a/devs/devs.SlackBuild
new file mode 100755
index 000000000..61ddf33b4
--- /dev/null
+++ b/source/a/devs/devs.SlackBuild
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.3.1
+ARCH=noarch
+BUILD=${BUILD:-25}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-devs
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_devs.tar.gz
+
+cd $TMP
+rm -r MAKEDEV-${VERSION}
+tar xzvf $CWD/makedev_${VERSION}.orig.tar.gz
+cd MAKEDEV-${VERSION}
+zcat $CWD/makedev_2.3.1-46.2.diff.gz | patch -p1 -E
+#zcat $CWD/makedev_.slack.diff.gz | patch -p1 -E
+# Add many more IDE devices:
+zcat $CWD/makedev_2.3.1.hd.diff.gz | patch -p1 -E
+# Still not enough:
+zcat $CWD/makedev.hd.diff.gz | patch -p1 -E
+cat MAKEDEV > $PKG/dev/MAKEDEV
+cat README > $PKG/dev/README.MAKEDEV
+gzip -9c MAKEDEV.man > $PKG/usr/man/man8/MAKEDEV.8.gz
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/devs-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/MAKEDEV-${VERSION}
+ rm -rf $PKG
+fi
diff --git a/source/a/devs/makedev.hd.diff b/source/a/devs/makedev.hd.diff
new file mode 100644
index 000000000..7276c1dc0
--- /dev/null
+++ b/source/a/devs/makedev.hd.diff
@@ -0,0 +1,92 @@
+--- ./MAKEDEV.orig 2002-06-09 12:31:22.000000000 -0700
++++ ./MAKEDEV 2002-06-09 12:31:51.000000000 -0700
+@@ -914,7 +914,7 @@
+ base=`index ab $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major `math $base + $part` $disk
+ done
+@@ -925,7 +925,7 @@
+ base=`index cd $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -936,7 +936,7 @@
+ base=`index ef $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -947,7 +947,7 @@
+ base=`index gh $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -958,7 +958,7 @@
+ base=`index ij $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -969,7 +969,7 @@
+ base=`index kl $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -980,7 +980,7 @@
+ base=`index mn $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -991,7 +991,7 @@
+ base=`index op $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -1002,7 +1002,7 @@
+ base=`index qr $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+@@ -1013,7 +1013,7 @@
+ base=`index st $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
+ do
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
diff --git a/source/a/devs/makedev_2.3.1-46.2.diff b/source/a/devs/makedev_2.3.1-46.2.diff
new file mode 100644
index 000000000..87ad22f85
--- /dev/null
+++ b/source/a/devs/makedev_2.3.1-46.2.diff
@@ -0,0 +1,2952 @@
+--- makedev-2.3.1.orig/MAKEDEV.man
++++ makedev-2.3.1/MAKEDEV.man
+@@ -124,8 +124,7 @@
+ .BI ttyC x
+ and the corresponding dial-out device is
+ .BI cub x
+-By default devices for 7 lines are created, but this can be changed to
+-15 by removing the comment.
++Devices for 32 lines are created.
+ .TP
+ .B Pseudo Terminals
+ .TP
+@@ -387,4 +386,4 @@
+ Linux Allocated Devices, maintained by H.\ Peter Anvin,
+ <Peter.Anvin@linux.org>.
+ .SH AUTHOR
+-Nick Holloway, <Nick.Hollowa
+\ No newline at end of file
++Nick Holloway, <Nick.Hollowa
+--- makedev-2.3.1.orig/MAKEDEV
++++ makedev-2.3.1/MAKEDEV
+@@ -10,25 +10,38 @@
+ # system, and you may change the permissions to suit your preference. These
+ # lines _must_ be of the format "user group perm".
+
+- public=" root sys 666"
+- system=" root sys 660"
+- kmem=" root kmem 660"
+- tty=" root tty 666"
+- cons=" root tty 622" # 622 for console?
+- vcs=" root sys 600"
+-dialout=" root uucp 660"
+- mouse=" root sys 666"
+-printer=" root daemon 660"
+- floppy=" root floppy 660"
+- disk=" root disk 660"
+- scsi=" root sys 600"
+- cdrom=" root disk 660"
+- tape=" root disk 660"
+- audio=" root sys 666"
+- ibcs2=" root sys 666"
+-scanner=" root sys 666"
++ public=" root root 0666"
++private=" root root 0600"
++ system=" root root 0660"
++ kmem=" root kmem 0640"
++ tty=" root tty 0666"
++ cons=" root tty 0622"
++ vcs=" root root 0600"
++dialout=" root dialout 0660"
++ mouse=" root root 0660"
++printer=" root lp 0660"
++ floppy=" root floppy 0660"
++ disk=" root disk 0660"
++ scsi=" root root 0600"
++ cdrom=" root cdrom 0660"
++ tape=" root tape 0660"
++ audio=" root audio 0660"
++ video=" root video 0660"
++ ibcs2=" root root 0666"
++scanner=" root root 0666"
++ coda=" root root 0600"
++ ipsec=" root root 0200"
++readable=" root root 0444"
+
+-MAXVT=8
++MAXVT=63
++
++# defaults for $major_*
++major_ide0=3
++major_ide1=22
++major_sd=8
++major_lp=6
++
++# Remark: OSS/Linux becomes major_OSSLinux
+
+ #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
+
+@@ -94,41 +107,30 @@
+
+ #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
+
+-# For bash and ksh, we can use faster builtin routines to do manipulation,
+-# otherwise (ash) fall back to slower method using `expr'.
+-# The extra level of indirection using `eval' is necessary a) for ksh, and
+-# b) to get past ash.
++# Debian allows us to assume /bin/sh is a POSIX compliant shell, so go for it!
+
+-if [ "$RANDOM" != "$RANDOM" ]
+-then
+- math () {
+- eval echo "\$(($*))"
+- }
+- index () { # index string c
+- eval "I=\${1%$2*}"
+- eval echo "\${#I}"
+- }
+- suffix () {
+- eval echo "\${1#$2}"
+- }
+- strip () {
+- eval echo "\${1% $2 *} \${1#* $2 }"
+- }
+-else
+- math () {
+- expr "$@"
+- }
+- index () { # index string c
+- expr $1 : ".*$2" - 1
+- }
+- suffix () {
+- expr "$1" : "$2\(.*\)"
+- }
+- strip () {
+- echo "[$1][$2]" >&2
+- echo "`expr \"$1\" : \"\(.*\) $2 \"` `expr \"$1\" : \".* $2 \(.*\)\"`"
+- }
+-fi
++math () {
++ eval echo "\$(($*))"
++}
++index () { # index string c
++ eval "I=\${1%$2*}"
++ eval echo "\${#I}"
++}
++suffix () {
++ eval echo "\${1#$2}"
++}
++strip () {
++ eval echo "\${1% $2 *} \${1#* $2 }"
++}
++first () {
++ eval echo "\${1:0:1}"
++}
++second () {
++ eval echo "\${1:1:1}"
++}
++substr () {
++ echo $1 | cut -c $2
++}
+
+ #---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#---#
+
+@@ -140,6 +142,7 @@
+ exec 3<$procfs/devices
+ while read major device <&3
+ do
++ device=`echo $device|tr -d /`
+ case "$major" in
+ Character|Block|'')
+ ;;
+@@ -166,7 +169,7 @@
+ while [ $# -ne 0 ]
+ do
+ case "$1" in
+- mem|tty|ttyp|cua|cub) ;;
++ mem|tty|ttyp|cua|cub|cui) ;;
+ hd) (for d in a b c d e f g h ; do
+ echo -n hd$d " "
+ done) ; echo
+@@ -175,13 +178,16 @@
+ ide1) echo hdc hdd ;;
+ ide2) echo hde hdf ;;
+ ide3) echo hdg hdh ;;
+- sd) echo sda sdb ;;
+- sr) echo scd0 ;;
++ sd) echo sda sdb sdc sdd ;;
++ sg) echo sg ;;
++ sr) echo scd ;;
+ st) echo st0 ;;
+ xd) echo xda xdb ;;
++ ad) echo ada adb ;;
+ fd) echo fd0 fd1 ;;
+ lp) echo lp ;;
+ mt) echo ftape ;;
++ qft) echo ftape ;;
+ loop) echo loop ;;
+ md) echo md ;;
+ ibcs2) echo ibcs2 ;;
+@@ -191,13 +197,31 @@
+ ac4096) echo ac4096 ;;
+ hw) echo helloworld ;;
+ sbpcd | sbpcd[123]) echo $1 ;;
+- Joystick) echo js ;;
++ joystick) echo js ;;
+ apm_bios) echo apm ;;
+ dcf) echo dcf ;;
+ aztcd) echo aztcd ;;
++ cm206cd) echo cm206cd ;;
++ gscd) echo gscd ;;
+ pcmcia) ;; # taken care of by its own driver
+ ttyC) echo cyclades ;;
++ isdn) echo isdnmodem isdnbri dcbri ;;
+ vcs) ;;
++ pty) echo pty ;;
++ misc) echo misc ;;
++ 3dfx) echo 3dfx ;;
++ agpgart) echo agpgart ;;
++ ipmi|ipmikcs) echo ipmi ;;
++ fb) echo fb ;;
++ nb) echo nb0 nb1 ;;
++ netlink) echo netlink ;;
++ hamradio) echo hamradio ;;
++ snd) ;;
++ ptm) ;;
++ pts) ;;
++ ttyS) echo ttyS0 ttyS1 ttyS2 ttyS3 ;;
++ ttyI) echo ttyI0 ttyI1 ttyI2 ttyI3 ;;
++ ircomm|irlpt) irda ;;
+ *) echo "$0: don't know what \"$1\" is" >&2 ;;
+ esac
+ shift
+@@ -206,20 +230,148 @@
+
+ for arg
+ do
++# case `cvt $arg` in
+ case $arg in
+ generic)
++ # pick the right generic-<arch> using dpkg's knowledge
++ case `dpkg --print-installation-architecture` in
++ alpha)
++ $0 $opts generic-alpha
++ ;;
++ arm)
++ $0 $opts generic-arm
++ ;;
++ i386)
++ $0 $opts generic-i386
++ ;;
++ m68k)
++ $0 $opts generic-m68k
++ ;;
++ powerpc)
++ $0 $opts generic-powerpc
++ ;;
++ sparc)
++ $0 $opts generic-sparc
++ ;;
++ *)
++ echo "$0: no support for generic-$arg" >&2
++ exit 1
++ ;;
++ esac
++ ;;
++ generic-alpha)
+ $0 $opts std
+ $0 $opts fd
+ $0 $opts fd0 fd1
+- $0 $opts hda hdb
++ $0 $opts hda hdb hdc hdd
++ $0 $opts xda xdb
++ $0 $opts sda sdb sdc sdd
++ $0 $opts scd0 scd1
++ $0 $opts st0 st1
++ $0 $opts sg
++ $0 $opts pty
++ $0 $opts console
++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
++ $0 $opts busmice
++ $0 $opts lp
++ $0 $opts par
++ $0 $opts audio
++ $0 $opts fb
++ ;;
++ generic-arm)
++ $0 $opts std
++ $0 $opts fd
++ $0 $opts fd0 fd1
++ $0 $opts hda hdb hdc hdd
++ $0 $opts xda xdb
++ $0 $opts sda sdb sdc sdd
++ $0 $opts scd0 scd1
++ $0 $opts st0 st1
++ $0 $opts sg
++ $0 $opts pty
++ $0 $opts console
++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
++ $0 $opts busmice
++ $0 $opts lp
++ $0 $opts par
++ $0 $opts audio
++ $0 $opts fb
++ ;;
++ generic-i386)
++ $0 $opts std
++ $0 $opts fd
++ $0 $opts fd0 fd1
++ $0 $opts hda hdb hdc hdd
+ $0 $opts xda xdb
+- $0 $opts sda sdb
++ $0 $opts sda sdb sdc sdd
++ $0 $opts scd0 scd1
++ $0 $opts st0 st1
++ $0 $opts sg
+ $0 $opts pty
+ $0 $opts console
+ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
+ $0 $opts busmice
+ $0 $opts lp
+ $0 $opts par
++ $0 $opts audio
++ $0 $opts fb
++ ;;
++ generic-m68k)
++ $0 $opts std
++ $0 $opts fd
++ $0 $opts fd0-bare fd1-bare
++ $0 $opts hda hdb
++ $0 $opts sda sdb sdc sdd
++ $0 $opts sg
++ $0 $opts ada adb
++ $0 $opts pty
++ $0 $opts console
++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3 ttyS5
++ $0 $opts m68k-mice
++ $0 $opts lp
++ $0 $opts par
++ $0 $opts nvram
++ $0 $opts audio
++ $0 $opts fb
++ ;;
++ generic-powerpc)
++ $0 $opts std
++ $0 $opts fd
++ $0 $opts fd0-bare fd1-bare
++ $0 $opts hda hdb hdc hdd
++ $0 $opts sda sdb sdc sdd
++ $0 $opts scd0 scd1
++ $0 $opts st0 st1
++ $0 $opts sg
++ $0 $opts pty
++ $0 $opts console
++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
++ $0 $opts busmice
++ $0 $opts lp
++ $0 $opts par
++ $0 $opts nvram
++ $0 $opts audio
++ $0 $opts adb
++ $0 $opts fb
++ $0 $opts rtc
++ ;;
++ generic-sparc)
++ $0 $opts std
++ $0 $opts fd0-bare fd1-bare
++ $0 $opts hda hdb
++ $0 $opts sda sdb sdc sdd
++ $0 $opts scd0 scd1
++ $0 $opts st0 st1
++ $0 $opts sg
++ $0 $opts pty
++ $0 $opts console
++ $0 $opts ttyS0 ttyS1 ttyS2 ttyS3
++ $0 $opts fb
++ $0 $opts rtc
++ makedev kbd c 11 0 $cons
++ makedev sunmouse c 10 6 $mouse
++ symlink sunmouse mouse
++ makedev openprom c 10 139 $private
+ ;;
+ local)
+ $0.local $opts
+@@ -232,22 +384,71 @@
+ makedev zero c 1 5 $public
+ symlink core $procfs/kcore
+ makedev full c 1 7 $public
+- $0 ram
++ makedev random c 1 8 $readable
++ makedev urandom c 1 9 $readable
+ makedev tty c 5 0 $tty
++ $0 $opts ram
++ $0 $opts loop
++ ;;
++ hamradio)
++ $0 $opts scc
++ $0 $opts bc
++ ;;
++ scc)
++ for unit in 0 1 2 3 4 5 6 7
++ do
++ makedev scc$unit c 34 $unit $system
++ done
++ ;;
++ bc)
++ for unit in 0 1 2 3
++ do
++ makedev bc$unit c 51 $unit $system
++ done
++ ;;
++ random)
++ makedev random c 1 8 $readable
++ ;;
++ urandom)
++ makedev urandom c 1 9 $readable
+ ;;
+ ram)
+- for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
+ makedev ram$i b 1 $i $disk
+ done
+- ln -sf ram1 ram
++ symlink ram ram1
+ ;;
+- console)
+- major=`Major vcs` # not fatal
+- # console
++ ram[0-9]|ram1[0-6])
++ unit=`suffix $arg ram`
++ makedev ram$unit b 1 $unit $disk
++ ;;
++ initrd)
++ makedev initrd b 1 250 $disk
++ ;;
++ consoleonly)
+ makedev tty0 c 4 0 $cons
+- symlink console tty0
++ # new kernels need a device, old ones a symlink... sigh
++ kern_rev1=`uname -r | awk -F'.' '{print $1}'`
++ kern_rev2=`uname -r | awk -F'.' '{print $2}'`
++ if [ $kern_rev1 -gt 2 ]
++ then
++ makedev console c 5 1 $cons
++ else
++ if [ $kern_rev1 -eq 2 -a $kern_rev2 -ge 1 ]
++ then
++ makedev console c 5 1 $cons
++ else
++ symlink console tty0
++ fi
++ fi
++ ;;
++ console)
++ $0 $opts consoleonly
++ major=`Major vcs 7` # not fatal
+ [ "$major" ] && makedev vcs0 c $major 0 $vcs
+- [ "$major" ] && makedev vcsa c $major 128 $vcs
++ symlink vcs vcs0
++ [ "$major" ] && makedev vcsa0 c $major 128 $vcs
++ symlink vcsa vcsa0
+ # individual vts
+ line=1
+ while [ $line -le $MAXVT -a $line -le 63 ]
+@@ -258,6 +459,32 @@
+ line=`math $line + 1`
+ done
+ ;;
++ adb)
++ # pick the right arch device using dpkg's knowledge
++ case `dpkg --print-installation-architecture` in
++ powerpc)
++ # ADB bus devices (char)
++ makedev adb c 56 0 $mouse
++ makedev adbmouse c 10 10 $mouse
++ ;;
++ m68k)
++ # ACSI disk 2, whole device (block)
++ makedev adb b 28 16 $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ minor=$(( 16 + $part ))
++ makedev adb$part b 28 $minor $disk
++ done
++ ;;
++ *)
++ echo "no support for adb on $arg" >&2
++ exit 1
++ ;;
++ esac
++ ;;
++ nvram)
++ makedev nvram c 10 144 $kmem
++ ;;
+ tty[1-9]|tty[1-5][0-9]|tty[6][0-3])
+ line=`suffix $arg tty`
+ makedev tty$line c 4 $line $tty
+@@ -265,8 +492,7 @@
+ ttyS[0-9]|ttyS[1-5][0-9]|ttyS[6][0-3])
+ line=`suffix $arg ttyS`
+ minor=`math 64 + $line`
+- makedev ttyS$line c 4 $minor $tty
+- makedev cua$line c 5 $minor $dialout
++ makedev ttyS$line c 4 $minor $dialout
+ ;;
+ pty[a-ep-z])
+ bank=`suffix $arg pty`
+@@ -285,42 +511,350 @@
+ do
+ ptysufs="$ptysufs pty$i"
+ done
+- $0 $opts $ptysufs
++ $0 $opts $ptysufs ptmx
+ ;;
+- cyclades)
+- major1=`Major ttyC` || continue
+- major2=`Major cub` || continue
++ ptmx)
++ # master pty multiplexer for 2.1 kernels
++ makedev ptmx c 5 2 $tty
++ ;;
++ cyclades|ttyC)
++ major1=`Major ttyC 19` || continue
++ #major2=`Major cub 20` || continue
+ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \
+- 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
++ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
++ do
++ makedev ttyC$i c $major1 $i $dialout
++ #makedev cub$i c $major2 $i $dialout
++ done
++ ;;
++ stallion|ttyE)
++ major1=`Major ttyE 24` || continue
++ #major2=`Major cue 25` || continue
++ majorc=28
++ minor=0
++ until [ $minor -gt 256 ]
++ do
++ makedev ttyE$minor c $major1 $minor $dialout
++ #makedev cue$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ for i in 0 1 2 3
++ do
++ makedev staliomem$i c $majorc $i $private
++ done
++ ;;
++ chase|ttyH)
++ major1=`Major ttyH 17` || continue
++ #major2=`Major cuh 18` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyH$minor c $major1 $minor $dialout
++ #makedev cuh$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ rocketport|ttyR)
++ major1=`Major ttyR 46` || continue
++ #major2=`Major cur 47` || continue
++ minor=0
++ until [ $minor -gt 64 ] # tell me if 64 is wrong
++ do
++ makedev ttyR$minor c $major1 $minor $dialout
++ #makedev cur$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ ttyV)
++ major1=`Major ttyV 105` || continue
++ #major2=`Major cuv 106` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyV$minor c $major1 $minor $dialout
++ #makedev cuv$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ digi|ttyD)
++ major1=`Major ttyD 22` || continue
++ #major2=`Major cud 23` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyD$minor c $major1 $minor $dialout
++ #makedev cud$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ specialix|ttyX)
++ major1=`Major ttyX 32` || continue
++ #major2=`Major cux 33` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyX$minor c $major1 $minor $dialout
++ #makedev cux$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ specialixIO8|ttyW)
++ major1=`Major ttyW 75` || continue
++ #major2=`Major cuw 76` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyW$minor c $major1 $minor $dialout
++ #makedev cuw$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ PAM|ttyM)
++ major1=`Major ttyM 79` || continue
++ #major2=`Major cum 80` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyM$minor c $major1 $minor $dialout
++ #makedev cum$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ riscom|ttyL)
++ major=`Major ttyL 48` || continue
++ minor=0
++ until [ $minor -gt 16 ] # tell me if 16 is wrong
++ do
++ makedev ttyL$minor c $major $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ computone|ttyF)
++ major=`Major ttyF 71` || continue
++ #major2=`Major cuf 72` || continue
++ minor=0
++ until [ $minor -gt 255 ]
++ do
++ makedev ttyF$minor c $major $minor $dialout
++ #makedev cuf$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ major=73
++ for i in 0 4 8 12
++ do
++ makedev ip2ipl$i c $major $i $private
++ makedev ip2stat$i c $major `math $i + 1` $private
++ done
++ ;;
++ ESP|ttyP)
++ major=`Major ttyP 57` || continue
++ #major2=`Major cup 58` || continue
++ minor=0
++ until [ $minor -gt 4 ] # tell me if 4 is wrong
++ do
++ makedev ttyP$minor c $major $minor $dialout
++ #makedev cup$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ COMX|comx)
++ major=`Major comx 88` || continue
++ minor=0
++ until [ $minor -gt 4 ] # tell me if 4 is wrong
++ do
++ makedev comx$minor c $major $minor $private
++ minor=`math $minor + 1`
++ done
++ ;;
++ isdnmodem|ttyI)
++ major1=`Major ttyI 43` || continue
++ #major2=`Major cui 44` || continue
++ minor=0
++ until [ $minor -gt 63 ]
++ do
++ makedev ttyI$minor c $major1 $minor $dialout
++ #makedev cui$minor c $major2 $minor $dialout
++ minor=`math $minor + 1`
++ done
++ ;;
++ isdnbri)
++ major=45
++ minor=0
++ until [ $minor -gt 63 ]
++ do
++ makedev isdn$minor c $major $minor $private
++ makedev isdnctrl$minor c $major `math $minor + 64` $private
++ makedev ippp$minor c $major `math $minor + 128` $private
++ minor=`math $minor + 1`
++ done
++ makedev isdninfo c $major 255 $private
++ ;;
++ dcbri)
++ major=52
++ for i in 0 1 2 3
++ do
++ makedev dcbri$i c $major $i $private
++ done
++ ;;
++ capi)
++ major=68
++ makedev capi20 c $major 0 $private
++ for i in 0 1 2 3 4 5 6 7 8 9
++ do
++ makedev capi20.0$i c $major `math $i + 1` $private
++ done
++ for i in 10 11 12 13 14 15 16 17 18 19
++ do
++ makedev capi20.$i c $major `math $i + 1` $private
++ done
++ ;;
++ fb)
++ for i in 0 1 2 3 4 5 6 7
++ do
++ makedev fb$i c 29 `math 32 \* $i` $cons
++ makedev fb${i}current c 29 `math 32 \* $i` $cons
++ makedev fb${i}autodetect c 29 `math 32 \* $i + 1` $cons
++ done
++ ;;
++ fb[0-7])
++ dev=`suffix $arg fb`
++ base=`math 32 \* $dev`
++ makedev fb$dev c 29 $base $cons
++ makedev fb${dev}current c 29 $base $cons
++ makedev fb${dev}autodetect c 29 `math $base + 1` $cons
++ for i in 0 1 2 3 4 5 6 7
+ do
+- makedev ttyC$i c $major1 $i $tty
+- makedev cub$i c $major2 $i $dialout
++ makedev fb${dev}user$i c 29 `math $base + 24 + $i` $cons
++ done
++ ;;
++ netlink)
++ makedev route c 36 0 $coda
++ makedev skip c 36 1 $coda
++ makedev fwmonitor c 36 3 $coda
++ for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ makedev tap$i c 36 `math $i + 16` $coda
+ done
+ ;;
+ lp)
+- major=`Major lp` || continue
++ major=`Major lp 6` || continue
+ makedev ${arg}0 c $major 0 $printer
+ makedev ${arg}1 c $major 1 $printer
+ makedev ${arg}2 c $major 2 $printer
+ ;;
+ par)
+- major=`Major lp` || continue
++ major=`Major lp 6` || continue
++ makedev ${arg}0 c $major 0 $printer
++ makedev ${arg}1 c $major 1 $printer
++ makedev ${arg}2 c $major 2 $printer
++ ;;
++ parport)
++ major=`Major parport 99` || continue
+ makedev ${arg}0 c $major 0 $printer
+ makedev ${arg}1 c $major 1 $printer
+ makedev ${arg}2 c $major 2 $printer
+ ;;
++ slm)
++ major=`Major slm 28` || continue
++ for i in 0 1 2 3
++ do
++ makedev slm c $major $i $printer
++ done
++ ;;
+ busmice)
+ major=`Major mouse 10` || continue
+- makedev logimouse c $major 0 $mouse
+- makedev psmouse c $major 1 $mouse
+- makedev msmouse c $major 2 $mouse
+- makedev atimouse c $major 3 $mouse
+- makedev jmouse c $major 4 $mouse
++ makedev logibm c $major 0 $mouse
++ makedev psaux c $major 1 $mouse
++ makedev inportbm c $major 2 $mouse
++ makedev atibm c $major 3 $mouse
++ makedev jbm c $major 4 $mouse
++ makedev usbmouse c $major 32 $mouse
++ ;;
++ m68k-mice)
++ major=`Major mouse 10` || continue
++ makedev amigamouse c $major 4 $mouse
++ makedev atarimouse c $major 5 $mouse
++ makedev amigamouse1 c $major 7 $mouse
++ makedev adbmouse c $major 10 $mouse
++ ;;
++ 3dfx)
++ major=`Major $arg 107` || continue
++ makedev $arg c $major 0 $video
++ ;;
++ agpgart)
++ major=`Major $arg 10` || continue
++ makedev $arg c $major 175 $video
++ ;;
++ ipmi|ipmikcs)
++ major=`Major ipmikcs 10` || continue
++ makedev ipmikcs c $major 173 $private
++ ;;
++ irda)
++ for i in 0 1
++ do
++ makedev ircomm$i c 161 $i $mouse
++ makedev irlpt$i c 161 `math $i + 16` $mouse
++ done
++ ;;
++ misc)
++ major=`Major mouse 10` || continue
++ makedev logibm c $major 0 $mouse
++ makedev psaux c $major 1 $mouse
++ makedev inportbm c $major 2 $mouse
++ makedev atibm c $major 3 $mouse
++ makedev jbm c $major 4 $mouse
++ makedev amigamouse c $major 4 $mouse
++ makedev atarimouse c $major 5 $mouse
++ makedev sunmouse c $major 6 $mouse
++ makedev amigamouse1 c $major 7 $mouse
++ makedev smouse c $major 8 $mouse
++ makedev pc110pad c $major 9 $mouse
++ makedev adbmouse c $major 10 $mouse
++ makedev beep c $major 128 $mouse
++ makedev modreq c $major 129 $mouse
++ makedev watchdog c $major 130 $mouse
++ makedev temperature c $major 131 $mouse
++ makedev hwtrap c $major 132 $mouse
++ makedev exttrp c $major 133 $mouse
++ makedev apm_bios c $major 134 $mouse
++ makedev rtc c $major 135 $mouse
++ makedev openprom c $major 139 $mouse
++ makedev relay8 c $major 140 $mouse
++ makedev relay16 c $major 141 $mouse
++ makedev msr c $major 142 $mouse
++ makedev pciconf c $major 143 $mouse
++ makedev nvram c $major 144 $mouse
++ makedev hfmodem c $major 145 $mouse
++ makedev led c $major 151 $mouse
++ makedev mergemem c $major 153 $mouse
++ makedev pmu c $major 154 $mouse
++ ;;
++ smapi|thinkpad)
++ major=`Major mouse 10` || continue
++ makedev smapi c $major 170 $mouse
++ symlink smapi thinkpad
++ ;;
++ rtc)
++ major=`Major mouse 10` || continue
++ makedev rtc c $major 135 $mouse
+ ;;
+ js)
+- major=`Major Joystick` || continue
+- makedev js0 c $major 0 $mouse
+- makedev js1 c $major 1 $mouse
++ major=`Major Joystick 15` || continue
++ for unit in 0 1 2 3
++ do
++ makedev js$unit c $major $unit $readable
++ makedev djs$unit c $major `math $unit + 128` $readable
++ done
++ ;;
++ fd[0-7]-bare)
++ sarg="${arg%-bare}"
++ major=`Major fd 2` || continue
++ base=`suffix $sarg fd`
++ if [ $base -ge 4 ]
++ then
++ base=`math $base + 124`
++ fi
++ makedev ${sarg} b $major $base $floppy
+ ;;
+ fd[0-7])
+ major=`Major fd 2` || continue
+@@ -332,39 +866,47 @@
+ makedev ${arg} b $major $base $floppy
+ makedev ${arg}d360 b $major `math $base + 4` $floppy
+ makedev ${arg}h1200 b $major `math $base + 8` $floppy
+- makedev ${arg}D360 b $major `math $base + 12` $floppy
+- makedev ${arg}D720 b $major `math $base + 16` $floppy
++ makedev ${arg}u360 b $major `math $base + 12` $floppy
++ makedev ${arg}u720 b $major `math $base + 16` $floppy
+ makedev ${arg}h360 b $major `math $base + 20` $floppy
+ makedev ${arg}h720 b $major `math $base + 24` $floppy
+- makedev ${arg}H1440 b $major `math $base + 28` $floppy
+- makedev ${arg}E2880 b $major `math $base + 32` $floppy
++ makedev ${arg}u1440 b $major `math $base + 28` $floppy
++ makedev ${arg}u2880 b $major `math $base + 32` $floppy
+ makedev ${arg}CompaQ b $major `math $base + 36` $floppy
+
+- symlink ${arg}H360 ${arg}D360
+- symlink ${arg}H720 ${arg}D720
+-
+ makedev ${arg}h1440 b $major `math $base + 40` $floppy
+- makedev ${arg}H1680 b $major `math $base + 44` $floppy
++ makedev ${arg}u1680 b $major `math $base + 44` $floppy
+ makedev ${arg}h410 b $major `math $base + 48` $floppy
+- makedev ${arg}H820 b $major `math $base + 52` $floppy
++ makedev ${arg}u820 b $major `math $base + 52` $floppy
+ makedev ${arg}h1476 b $major `math $base + 56` $floppy
+- makedev ${arg}H1722 b $major `math $base + 60` $floppy
++ makedev ${arg}u1722 b $major `math $base + 60` $floppy
+ makedev ${arg}h420 b $major `math $base + 64` $floppy
+- makedev ${arg}H830 b $major `math $base + 68` $floppy
++ makedev ${arg}u830 b $major `math $base + 68` $floppy
+ makedev ${arg}h1494 b $major `math $base + 72` $floppy
+- makedev ${arg}H1743 b $major `math $base + 76` $floppy
++ makedev ${arg}u1743 b $major `math $base + 76` $floppy
+ makedev ${arg}h880 b $major `math $base + 80` $floppy
+- makedev ${arg}D1040 b $major `math $base + 84` $floppy
+- makedev ${arg}D1120 b $major `math $base + 88` $floppy
++ makedev ${arg}u1040 b $major `math $base + 84` $floppy
++ makedev ${arg}u1120 b $major `math $base + 88` $floppy
+ makedev ${arg}h1600 b $major `math $base + 92` $floppy
+- makedev ${arg}H1760 b $major `math $base + 96` $floppy
+- makedev ${arg}H1920 b $major `math $base + 100` $floppy
+- makedev ${arg}E3200 b $major `math $base + 104` $floppy
+- makedev ${arg}E3520 b $major `math $base + 108` $floppy
+- makedev ${arg}E3840 b $major `math $base + 112` $floppy
+- makedev ${arg}H1840 b $major `math $base + 116` $floppy
+- makedev ${arg}D800 b $major `math $base + 120` $floppy
+- makedev ${arg}H1600 b $major `math $base + 124` $floppy
++ makedev ${arg}u1760 b $major `math $base + 96` $floppy
++ makedev ${arg}u1920 b $major `math $base + 100` $floppy
++ makedev ${arg}u3200 b $major `math $base + 104` $floppy
++ makedev ${arg}u3520 b $major `math $base + 108` $floppy
++ makedev ${arg}u3840 b $major `math $base + 112` $floppy
++ makedev ${arg}u1840 b $major `math $base + 116` $floppy
++ makedev ${arg}u800 b $major `math $base + 120` $floppy
++ makedev ${arg}u1600 b $major `math $base + 124` $floppy
++ ;;
++ ed[a-b])
++ major=`Major ed 36` || continue
++ unit=`suffix $arg ed`
++ base=`index ab $unit`
++ base=`math $base \* 64`
++ makedev ed$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev ed$unit$part b $major `math $base + $part` $disk
++ done
+ ;;
+ hd[a-b])
+ major=`Major ide0` || major=`Major hd 3` || continue
+@@ -372,7 +914,7 @@
+ base=`index ab $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+ makedev hd$unit$part b $major `math $base + $part` $disk
+ done
+@@ -383,9 +925,9 @@
+ base=`index cd $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+- makedev hd$unit$part b $major `expr $base + $part` $disk
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+ ;;
+ hd[e-f])
+@@ -394,9 +936,9 @@
+ base=`index ef $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+- makedev hd$unit$part b $major `expr $base + $part` $disk
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+ ;;
+ hd[g-h])
+@@ -405,18 +947,47 @@
+ base=`index gh $unit`
+ base=`math $base \* 64`
+ makedev hd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
++ hd[i-j])
++ major=`Major ide4 56` || continue
++ unit=`suffix $arg hd`
++ base=`index ij $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+- makedev hd$unit$part b $major `expr $base + $part` $disk
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+ ;;
+- ht)
++ hd[k-l])
++ major=`Major ide4 57` || continue
++ unit=`suffix $arg hd`
++ base=`index kl $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
++ ht0)
+ major=`Major ht0 37` || continue
+ # Only one IDE tape drive is currently supported; ht0.
+ makedev ht0 c $major 0 $tape
+- makedev ht0 c $major 0 $tape
+ makedev nht0 c $major 128 $tape
+ ;;
++ pt)
++ major=`Major pt 96` || continue
++ for i in 0 1 2 3
++ do
++ makedev pt$i c $major $i $tape
++ makedev npt$i c $major `math $i + 128` $tape
++ done
++ ;;
+ xd[a-d])
+ major=`Major xd 13` || continue
+ unit=`suffix $arg xd`
+@@ -425,31 +996,139 @@
+ makedev xd$unit b $major $base $disk
+ for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15 16 17 18 19 20
+ do
+- makedev xd$unit$part b $major `expr $base + $part` $disk
++ makedev xd$unit$part b $major $(( $base + $part )) $disk
+ done
+ ;;
+- sd[a-h])
++ sd[a-z])
+ major=`Major sd 8` || continue
+ unit=`suffix $arg sd`
+- base=`index abcdefgh $unit`
+- base=`math $base \* 16`
++ base=`index abcdefghijklmnopqrstuvwxyz $unit`
++ base=$(( $base * 16 ))
++ if [ $base -lt 256 ]; then
++ major=8
++ else
++ major=65
++ base=$(( $base - 256 ))
++ fi
++ makedev sd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ minor=$(( $base + $part ))
++ makedev sd$unit$part b $major $minor $disk
++ done
++ ;;
++ sd[a-d][a-z])
++ unit=`suffix $arg sd`
++ unitmaj=`first $unit`
++ unitmin=`second $unit`
++ basemaj=`index Xabcd $unitmaj`
++ basemin=`index abcdefghijklmnopqrstuvwxyz $unitmin`
++ basemaj=`math $basemaj \* 416`
++ basemin=`math $basemin \* 16`
++ base=`math $basemaj + $basemin`
++ basemaj=`math $base / 256`
++ base=`math $base % 256`
++ major=`math basemaj \+ 64`
++ if [ $major -gt 71 ]; then
++ echo "$0: don't know how to make device \"$arg\"" >&2
++ exit 0
++ fi
+ makedev sd$unit b $major $base $disk
+- for part in 1 2 3 4 5 6 7 8 # 9 10 11 12 13 14 15
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+- minor=`expr $base + $part`
++ minor=$(( $base + $part ))
+ makedev sd$unit$part b $major $minor $disk
+ done
++ ;;
++ ad[a-p])
++ major=`Major ad 28` || continue
++ unit=`suffix $arg ad`
++ base=`index abcdefghijklmnop $unit`
++ base=`math $base \* 16`
++ makedev ad$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ minor=$(( $base + $part ))
++ makedev ad$unit$part b $major $minor $disk
++ done
++ ;;
++ dac960)
++ for ctr in 0 1 2 3 4 5 6 7
++ do
++ $0 $opts dac960.$ctr
++ done
++ ;;
++ dac960.[0-7])
++ [ -d rd ] || {
++ mkdir rd
++ chown root.root rd
++ chmod 755 rd
++ }
++ unit=`suffix $arg dac960.`
++ major=`math 48 + $unit`
++ minor=0
++ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 \
++ 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
++ do
++ makedev rd/c${unit}d${ld} b $major $minor $disk
++ minor=`math $minor + 1`
++ for part in 1 2 3 4 5 6 7
++ do
++ makedev rd/c${unit}d${ld}p$part b $major $minor $disk
++ minor=`math $minor + 1`
++ done
++ done
++ ;;
++ ida)
++ for ctr in 0 1 2 # 3 4 5 6 7
++ do
++ $0 $opts ida.$ctr
++ done
++ ;;
++ ida.[0-7])
++ [ -d ida ] || {
++ mkdir ida
++ chown root.root ida
++ chmod 755 ida
++ }
++ unit=`suffix $arg ida.`
++ major=`math 72 + $unit`
++ minor=0
++ for ld in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ makedev ida/c${unit}d${ld} b $major $minor $disk
++ minor=`math $minor + 1`
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
++ do
++ makedev ida/c${unit}d${ld}p$part b $major $minor $disk
++ minor=`math $minor + 1`
++ done
++ done
++ ;;
++ rom)
++ major=`Major rom 31`
++ for i in 0 1 2 3 4 5 6 7
++ do
++ makedev rom$i b $major $i $disk
++ makedev rrom$i b $major `math $i +8` $disk
++ makedev flash$i b $major `math $i +16` $disk
++ makedev rflash$i b $major `math $i +24` $disk
++ done
++ ;;
++ nb[0-7])
++ major=`Major nbd 43` || continue
++ minor=`suffix $arg nb`
++ makedev nb$minor b $major $minor $disk
+ ;;
+ loop)
+- major=`Major loop` || continue
+ for part in 0 1 2 3 4 5 6 7
+ do
+- makedev loop$part b $major $part $disk
++ makedev loop$part b 7 $part $disk
+ done
+ ;;
+ md)
+- major=`Major md` || continue
+- for part in 0 1 2 3
++ major=`Major md 9` || continue
++ for part in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ do
+ makedev md$part b $major $part $disk
+ done
+@@ -457,42 +1136,129 @@
+ st[0-7])
+ major=`Major st 9`
+ unit=`suffix $arg st`
+- makedev st$unit c $major $unit $tape
+- makedev nst$unit c $major `math 128 + $unit` $tape
++ makedev st${unit} c $major $unit $tape
++ makedev nst${unit} c $major `math 128 + $unit` $tape
++
++ makedev st${unit}l c $major `math 32 + $unit` $tape
++ makedev nst${unit}l c $major `math 160 + $unit` $tape
++
++ makedev st${unit}m c $major `math 64 + $unit` $tape
++ makedev nst${unit}m c $major `math 192 + $unit` $tape
++
++ makedev st${unit}a c $major `math 96 + $unit` $tape
++ makedev nst${unit}a c $major `math 224 + $unit` $tape
+ ;;
+ qic)
+ major=`Major tpqic02 12`
++ makedev ntpqic11 c $major 2 $tape
++ makedev tpqic11 c $major 3 $tape
++ makedev ntpqic24 c $major 4 $tape
++ makedev tpqic24 c $major 5 $tape
++ makedev ntpqic120 c $major 6 $tape
++ makedev tpqic120 c $major 7 $tape
++ makedev ntpqic150 c $major 8 $tape
++ makedev tpqic150 c $major 9 $tape
+ makedev rmt8 c $major 6 $tape
+ makedev rmt16 c $major 8 $tape
+ makedev tape-d c $major 136 $tape
+ makedev tape-reset c $major 255 $tape
++ $0 $opts qft
+ ;;
+ ftape)
+- major=`Major mt 27` || continue
++ major=`Major qft 27` || continue
+ for unit in 0 1 2 3
+ do
+- makedev rft$unit c $major $unit $tape
+- makedev nrft$unit c $major `math $unit + 4` $tape
++ makedev qft$unit c $major $unit $tape
++ makedev nqft$unit c $major `math $unit + 4` $tape
++ makedev zqft$unit c $major `math $unit + 16` $tape
++ makedev nzqft$unit c $major `math $unit + 20` $tape
++ makedev rawqft$unit c $major `math $unit + 32` $tape
++ makedev nrawqft$unit c $major `math $unit + 36` $tape
++ done
++ symlink ftape qft0
++ symlink nftape nqft0
++ ;;
++ sr|scd|scd-all)
++ major=`Major sr 11` || continue
++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
++ do
++ makedev scd$unit b $major $unit $cdrom
++ symlink sr$unit scd$unit
+ done
+- symlink ftape rft0
+- symlink nftape nrft0
+ ;;
+- scd[0-7])
++ cfs0)
++ makedev cfs0 c 67 0 $coda
++ ;;
++ scd[0-9]|scd[0-1][0-9])
+ major=`Major sr 11` || continue
+ unit=`suffix $arg scd`
+ makedev scd$unit b $major $unit $cdrom
++ ln -f scd$unit sr$unit
++ ;;
++ ttyI[0-9]|ttyI[1-5][0-9]|ttyI[6][0-3])
++ major=43
++ unit=`suffix $arg ttyI`
++ makedev ttyI$unit c $major $unit $dialout
++ ;;
++ ippp[0-9]|ippp[1-5][0-9]|ippp[6][0-3])
++ major=45
++ unit=`suffix $arg ippp`
++ minor=`math $unit + 128`
++ makedev ippp$unit c $major $minor $dialout
++ ;;
++ isdn[0-9]|isdn[1-5][0-9]|isdn[6][0-3])
++ major=45
++ unit=`suffix $arg isdn`
++ minor=`math $unit + 0`
++ makedev isdn$unit c $major $minor $dialout
++ ;;
++ isdnctrl[0-9]|isdnctrl[1-5][0-9]|isdnctrl[6][0-3])
++ major=45
++ unit=`suffix $arg isdnctrl`
++ minor=`math $unit + 64`
++ makedev isdnctrl$unit c $major $minor $dialout
++ ;;
++ isdninfo)
++ makedev isdninfo c 45 255 $dialout
++ ;;
++ isdn-tty)
++ major=43
++ for unit in 0 1 2 3 4 5 6 7
++ do
++ makedev ttyI$unit c $major $unit $dialout
++ done
++ ;;
++ isdn-ippp)
++ major=45
++ for unit in 0 1 2 3 4 5 6 7
++ do
++ makedev ippp$unit c $major `math $unit + 128` $dialout
++ done
++ ;;
++ isdn-io)
++ for unit in 0 1 2 3 4 5 6 7
++ do
++ makedev isdn$unit c 45 $unit $dialout
++ makedev isdnctrl$unit c 45 `math $unit + 64` $dialout
++ makedev ippp$unit c 45 `math $unit + 128` $dialout
++ done
++ makedev isdninfo c 45 255 $dialout
+ ;;
+ sonycd)
+- major=`Major cdu31a` || continue
++ major=`Major sonycd 15` || continue
+ makedev $arg b $major 0 $cdrom
+ ;;
+ mcd)
+ major=`Major mcd 23` || continue
+ makedev $arg b $major 0 $cdrom
+ ;;
+- mcdx)
+- major=`Major mcdx 20` || continue
+- makedev $arg b $major 0 $cdrom
++ mcdx|mcdx[0-4])
++ major=`Major $arg 20` || continue
++ for unit in 0 1 2 3 4
++ do
++ makedev mcdx$unit b $major $unit $cdrom
++ done
++ test -r mcdx || symlink mcdx mcdx0
+ ;;
+ cdu535)
+ makedev $arg b 24 0 $cdrom
+@@ -501,28 +1267,51 @@
+ makedev $arg b 24 0 $cdrom
+ ;;
+ sbpcd|sbpcd[123])
+- major=`Major $arg` || continue
++ major=`Major $arg 25` || continue
+ base=`suffix ${arg}0 sbpcd`
+- # base=`expr ${arg}0 : "sbpcd\(.\)"`
+ for minor in 0 1 2 3
+ do
+ # XXX
+- unit=`expr substr 0123456789abcdef \( $base \* 4 + $minor + 1 \) 1`
++ unit=$(substr 0123456789abcdef $(( $base * 4 + $minor + 1 )) )
+ makedev sbpcd$unit b $major $minor $cdrom
+ done
+ [ $arg = sbpcd ] && symlink $arg ${arg}0
+ ;;
+ aztcd)
+- major=`Major $arg` || continue
++ major=`Major $arg 29` || continue
++ makedev ${arg}0 b $major 0 $cdrom
++ ;;
++ cm206cd)
++ major=`Major $arg 30` || continue
++ makedev ${arg}0 b $major 0 $cdrom
++ ;;
++ gscd)
++ major=`Major $arg 16` || continue
+ makedev ${arg}0 b $major 0 $cdrom
+ ;;
+ bpcd)
+ makedev $arg b 41 0 $cdrom
+ ;;
++ optcd)
++ makedev $arg b 17 0 $cdrom
++ ;;
++ sjcd)
++ makedev $arg b 18 0 $cdrom
++ ;;
++ cfs|coda)
++ makedev cfs0 c 67 0 $private
++ ;;
++ xfs|arla)
++ makedev xfs0 c 103 0 $private
++ ;;
+ logiscan)
+ major=`Major logiscan` || continue
+ makedev $arg c $major 0 $scanner
+ ;;
++ toshiba)
++ major=`Major $arg 10` || continue
++ makedev $arg c $major 181 root root 0666
++ ;;
+ m105scan)
+ major=`Major m105` || continue
+ makedev $arg c $major 0 $scanner
+@@ -534,34 +1323,119 @@
+ audio)
+ major=`Major sound 14`
+ makedev mixer c $major 0 $audio
++ makedev mixer1 c $major 16 $audio
++ makedev mixer2 c $major 32 $audio
++ makedev mixer3 c $major 48 $audio
+ makedev sequencer c $major 1 $audio
+ makedev midi00 c $major 2 $audio
+- makedev dsp c $major 3 $audio
+- makedev audio c $major 4 $audio
+- makedev sndstat c $major 6 $audio
+-# makedev sequencer2 c $major 8 $audio
+- makedev mixer1 c $major 16 $audio
+-# makedev patmgr0 c $major 17 $audio
+ makedev midi01 c $major 18 $audio
+- makedev dsp1 c $major 19 $audio
+- makedev audio1 c $major 20 $audio
+-# makedev patmgr1 c $major 33 $audio
+ makedev midi02 c $major 34 $audio
+ makedev midi03 c $major 50 $audio
++ makedev dsp c $major 3 $audio
++ makedev dsp1 c $major 19 $audio
++ makedev dsp2 c $major 35 $audio
++ makedev dsp3 c $major 51 $audio
++ makedev audio c $major 4 $audio
++ makedev audio1 c $major 20 $audio
++ makedev audio2 c $major 36 $audio
++ makedev audio3 c $major 52 $audio
++ makedev sndstat c $major 6 $audio
++ makedev audioctl c $major 7 $audio
++ major=31
++ makedev mpu401data c $major 0 $audio
++ makedev mpu401stat c $major 1 $audio
++ major=35
++ for i in 0 1 2 3
++ do
++ makedev midi$i c $major $i $audio
++ makedev rmidi$i c $major `math $i + 64` $audio
++ makedev smpte$i c $major `math $i + 128` $audio
++ done
+ ;;
+ pcaudio)
+- major=`Major pcsp` || continue
++ major=`Major pcsp 13` || continue
+ makedev pcmixer c $major 0 $audio
+ makedev pcsp c $major 3 $audio
+ makedev pcaudio c $major 4 $audio
+ ;;
+- sg)
++ video|video4linux|v4l|radio)
++ # video4linux api includes radio, teletext, etc.
++ major=`Major video 81` || continue
++ minor=0
++ until [ $minor -gt 63 ]
++ do
++ makedev video$minor c $major $minor $video
++ makedev radio$minor c $major `math $minor + 64` $video
++ minor=`math $minor + 1`
++ done
++ symlink radio radio0
++ minor=0
++ until [ $minor -gt 31 ]
++ do
++ makedev vtx$minor c $major `math $minor + 192` $video
++ makedev vbi$minor c $major `math $minor + 224` $video
++ minor=`math $minor + 1`
++ done
++ symlink video video0
++ symlink vbi vbi0
++ major=82
++ minor=0
++ until [ $minor -gt 1 ]
++ do
++ makedev winradio$minor c $major $minor $video
++ minor=`math $minor + 1`
++ done
++ major=83
++ makedev vtx c $major 0 $video
++ makedev vttuner c $major 16 $video
++ ;;
++ i2c)
++ major=`Major i2c 89` || continue
++ minor=0
++ until [ $minor -gt 1 ] # tell me if 1 is wrong...
++ do
++ makedev i2c-$minor c $major $minor $private
++ minor=`math $minor + 1`
++ done
++ ;;
++ tlk)
++ major=102
++ minor=0
++ until [ $minor -gt 3 ] # tell me if 3 is wrong...
++ do
++ makedev tlk$minor c $major $minor $video
++ minor=`math $minor + 1`
++ done
++ ;;
++ srnd)
++ makedev srnd0 c 110 0 $video
++ makedev srnd1 c 110 1 $video
++ ;;
++ fgrab)
++ makedev mmetfgrab c 40 0 $video
++ makedev wvisfgrab c 26 0 $video
++ for i in 0 1 # more?
++ do
++ makedev iscc$i c 93 $i $video
++ makedev isccctl$i c 93 `math $i + 128` $video
++ done
++ for i in 0 1 # more?
++ do
++ makedev dcxx$i c 94 $i $video
++ done
++ ;;
++ sg|sg-all)
+ major=`Major sg 21`
+- for unit in a b c d e f g h
++ for unit in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
+ do
+- minor=`index abcdefgh $unit`
+- # minor=`expr abcdefgh : ".*$unit" - 1`
+- makedev $arg$unit c $major $minor $scsi
++ makedev sg$unit c $major $unit $scsi
++ done
++ ;;
++ pg)
++ major=`Major pg 97`
++ for unit in 0 1 2 3
++ do
++ makedev pg$unit c $major $unit $scsi
+ done
+ ;;
+ fd)
+@@ -572,15 +1446,34 @@
+ symlink stderr fd/2
+ ;;
+ ibcs2)
+- major=`Major ibcs2` || continue
++ major=`Major ibcs2 30` || continue
+ makedev socksys c $major 0 $ibcs2
+ symlink nfsd socksys
+ makedev spx c $major 1 $ibcs2
+ symlink X0R null
+ ;;
++ netlink)
++ major=36
++ makedev route c $major 0 $private
++ makedev skip c $major 1 $private
++ ;;
++ enskip)
++ major=64
++ makedev enskip c $major 0 $private
++ ;;
++ ipfilt*)
++ major=95
++ makedev ipl c $major 0 $private
++ makedev ipnat c $major 1 $private
++ makedev ipstate c $major 2 $private
++ makedev ipauth c $major 3 $private
++ ;;
++ qng)
++ makedev qng c 77 0 $private
++ ;;
+ apm)
+- major=`Major apm_bios` || continue
+- makedev $arg c $major 0 $system
++ major=`Major mouse 10` || continue
++ makedev apm_bios c $major 134 $mouse
+ ;;
+ dcf)
+ major=`Major dcf` || continue
+@@ -590,6 +1483,11 @@
+ major=`Major hw` || continue
+ makedev helloworld c $major 0 $public
+ ;;
++ ipsec)
++ # For the Free S/WAN (http://www.xs4all.nl/~freeswan/)
++ # implementation of IPSEC
++ makedev ipsec c 36 10 $ipsec
++ ;;
+ update)
+ if [ ! "$devices" ]
+ then
+@@ -619,7 +1517,6 @@
+ create="$create "`cvt $device`
+ fi
+ devs=`strip " $devs " $device`
+- # devs=`expr "$devs" : "\(.*\) $device"``expr "$devs" : ".* $device\(.*\)"`
+ done
+ exec 3<&-
+ fi
+@@ -637,6 +1534,7 @@
+ ;;
+ *)
+ echo "$0: don't know how to make device \"$arg\"" >&2
++ exit 1
+ ;;
+ esac
+ done
+--- makedev-2.3.1.orig/Makefile
++++ makedev-2.3.1/Makefile
+@@ -1,14 +1,15 @@
+ # $Id: Makefile,v 2.2 1995/05/21 17:45:18 alfie Exp $
+
++BINDIR = $(ROOT)/sbin
+ DEVDIR = $(ROOT)/dev
+-MANDIR = $(ROOT)/usr/man
++MANDIR = $(ROOT)/usr/share/man
+ MANEXT = 8
+
+ default:
+ @echo Nothing to make.
+
+ install:
+- install -m 755 MAKEDEV $(DEVDIR)
++ install -m 755 MAKEDEV $(BINDIR)
+ install -m 644 MAKEDEV.man $(MANDIR)/man$(MANEXT)/MAKEDEV.$(MANEXT)
+
+ clean:
+--- makedev-2.3.1.orig/debian/old/README.debian
++++ makedev-2.3.1/debian/old/README.debian
+@@ -0,0 +1,95 @@
++makedev for DEBIAN
++==================
++
++The /etc/makedev.cfg and /etc/devinfo files are rewritten to fit the
++Debian /dev layout.
++
++Security : all mouse devices are changed to mode 600. Only serial
++devices are mode 660 root:dialout. It's possible to crash x11 and
++console with writing random bytes to a mouse device.
++
++Serial console :
++/dev/console should be a symlink to your real console device.
++If it does not exist, or is not a symlink, it will be replaced with a
++symlink console -> tty0.
++
++This version of makedev will check /dev for tty*/pty* devices, and if
++there are some with the old major number, it will create a
++/etc/rc.boot/makedev script. This will script will change the
++master/slave devices the next time you boot.
++
++serial devices should be owned by user "uucp" and group "dialout".
++former they were owned by root. new devices are created with uucp as
++owner, but you will have to change old devices to user uucp on your own.
++It's new policy to have all serial devices owned by uucp, but the last
++word in this discussion isn't said...
++
++some device names have changed. please read
++/usr/doc/makedev/devices.{txt|html}
++
++the permissions should be secure enough, but if you find any bugs, or
++unfounded hard permissions, please let me know (i don't know much about
++the right permissions for devices, i yust used the value, everybody else
++was using, and made read & write only available for root, whenever i
++found nothing better.
++
++/dev/console is now a symlink to /dev/tty0. for more infomation, please
++look at a new 2.1 linux kernel : Documentation/devices.txt. That is the
++"Linux Allocated Device" paper, the official list of linux devices.
++If your boot console is a serial device, you will have to change that
++symlink.
++
++MAKEDEV-C will not work with any kernel with mcdx support, if
++/proc/devices contains "Mitsumi CD-ROM". if so, patch
++/usr/src/linux/driver/cdrom/mcdx.c :
++1149c1149
++< if (unregister_blkdev(MAJOR_NR, "mcdx") != 0) {
++---
++> if (unregister_blkdev(MAJOR_NR, DEVICE_NAME) != 0) {
++1270c1270
++< if (register_blkdev(MAJOR_NR, "mcdx", &mcdx_fops) != 0) {
++---
++> if (register_blkdev(MAJOR_NR, DEVICE_NAME, &mcdx_fops) != 0) {
++
++
++about call out devices (/dev/cu*) :
++
++ /dev/ttySxx devices are fully POSIX-compliant TTY devices. If you
++ are only going to be using one set of tty devices, you should be
++ using /dev/ttySxx.
++
++ /dev/cuaXX devices are different from /dev/ttySXX in two ways ---
++ first of all, they will allow you to open the device even if
++ CLOCAL is not set and the O_NONBLOCK flag was not given to the
++ open device. This allows programs that don't use the
++ POSIX-mondated interface for opening /dev/ttySxx devices to be
++ able to use /dev/cuaXX to make outgoing phone calls on their modem
++ (cu stands for "callout", and is taken from SunOS).
++
++ The second way in which /dev/cuaXX differs from /dev/ttySXX is
++ that if they are used, they will trigger a simplistic kernel-based
++ locking scheme: If /dev/ttySXX is opened by one or more processes,
++ then an attempt to open /dev/cuaXX will return EAGAIN. If
++ /dev/cuaXX is opened by one or more processes, then an attempt to
++ open /dev/ttySXX will result the open blocking until /dev/cuaXX is
++ closed, and the carrier detect line goes high. the open blocking
++ until /dev/cuaXX is closed, and the carrier detect line goes high.
++
++ While this will allow for simple lockouts between a user using a
++ modem for callout and a getty listening on the line for logins, it
++ doesn't work if you need to arbitrate between multiple programs
++ wanting to do dialout --- for example, users wanting to do dialout
++ and UUCP.
++
++ I originally implemented the cuaXX/ttySXX lockout mechanism back
++ before FSSTND established a standard convention for the use of tty
++ lock files. Now that it's there, people should use the tty lock
++ files and not try using /dev/cuaXX. The only reason why
++ /dev/cuaXX hasn't disappeared yet is for backwards compatibility
++ reasons. -- Theodore Ts'o <tytso@mit.edu>
++
++
++debian has no /dev/cu* devices. But you can create them, if you need
++them. Read devices.txt for details.
++
++Andreas Jellinghaus <aj@debian.org>, Sun, 13 Apr 1997 21:05:58 +0200
+--- makedev-2.3.1.orig/debian/old/devices.sgml
++++ makedev-2.3.1/debian/old/devices.sgml
+@@ -0,0 +1,294 @@
++<!doctype linuxdoc system>
++
++<article>
++
++<title>devices created by makedev
++<author> Andreas Jellinghaus <tt>aj@debian.org</tt>
++<date> version 0.3, based on Linux allocated device 2.1.62
++<abstract>
++ some devices are created by default, some are left out on boot
++ floppies, other devices are only created on demand and some
++ devices are obsolete or have new names.
++</abstract>
++
++<sect> batches <p>
++
++call out devices are not generated by default. however if you need them,
++you can generate them (see below).
++
++<descrip>
++<tag/generic/all standard batches for normal Linux\/i386 systems.
++ (standard misc devices, ttyS[0-3], mouse, printer, tapes
++ (scsi, qic, qic117), audio, scsi generic, standard disk, cdroms
++ and ttys)
++<tag/generic-m68k/all generic devices for m68k (additional
++ framebuffer, some mouse devices and m68k scsi disk devices are
++ included,
++ but busmouse devices and qic and qic117 are left out).
++<tag/boot-floppy/a subset of generic. (no audio, less ttys)
++<tag/std-hd/standard hard disks (hd[a-h,xd[ab],sd[a-h],ram disk,md,loop)
++<tag/std-cdrom/standard cdroms (scsi, old non-scsi non-atapi cdroms)
++<tag/compatiblity/collection of old devices. It is usefull to remove them, but
++make sure, that you have generated the new ones, and that you know, what
++you are doing ! serial-cu, printer-old, mouse-old, sr-old,
++qic-old, misc-old, sg-old
++<tag/update/special tag : reads \/proc\/devices and generates new devices
++ found there.
++</descrip>
++
++<sect> Limits (standard devices) <p>
++
++There are some limits in this version of devinfo : it will only create a
++special number of devices (e.g. ramdisks, hda partitions). If one of
++these limits is unrealistic, please tell me. Most limits have no good
++reason, I just didn't want to create hundreds of devices, so I only
++created a few. If a limit is too low for you : a) please tell me and b)
++modify /etc/devinfo (should be easy). <p>
++
++<descrip>
++<tag/ramdisks/8 devices ram[0-7]
++<tag/ide harddisks/20 partitions each (devices hd[a-h])
++<tag/xt harddisks/20 partitions each (devices xd[ab]
++<tag/loopback/8 devices loop[0-7]
++<tag/metadisk/4 devices md[0-3]
++<tag/scsi cdrom/scd: 8 devices scd[0-7]
++<tag/scsi cdrom/scd-all : 16 devices scd[0-15]
++<tag/scsi generic/sg : 8 devices sg[0-7]
++<tag/scsi generic/sg-all : 16 devices sg[0-15]
++<tag/scsi tapes/8 devices st[0-7]
++<tag/mscdex/4 cdrom devices dos_cd[0-3]
++<tag/joysticks/2 devices each js[0-1] djs[0-1]
++<tag/other cdroms/only one device created : sonycd, gscd, optcd, sjcd,
++hitcd, mcd, cdu535, aztcd, cm206cd, bpcd (if there are several cdroms
++possible : please tell me !)
++<tag/serial/default bootdisks and base system will only have ttyS[0-3],
++but you can create all possible devices ttyS[0-63] with "MAKEDEV serial"
++or several additional devices with "MAKEDEV ttyS4 ttyS5 ...".
++</descrip>
++
++<sect> additional devices <p>
++
++you can create these devices with "MAKEDEV name" and delete them with
++"MAKEDEV -d name". you can either use the name listed here (this will
++create all possible devices), or individual devices (use the device
++name) e.g. "serial" will create all 64 serial devices ttyS[0-63] but
++"ttyS0" will only create this one.
++
++<sect1> serial devices <p>
++
++<descrip>
++<tag/isdn-tty/isdn terminal devices. 8 devices : ttyI[0-7]
++<tag/isdn-tty-all/isdn terminal devices. 64 devices : ttyI[0-63]
++
++<tag/isdn-ppp/isdn sync ppp network devices. 8 devices : ippp[0-7]
++<tag/isdn-ppp-all/isdn sync ppp network devices. 64 devices : ippp[0-63]
++
++<tag/isdn-io/isdn raw and control devices. 18 devices :
++ isdn[0-7] isdnctrl[0-7] isdnctrl isdninfo
++<tag/isdn-io-all/isdn raw and control devices. 130 devices :
++ isdn[0-63] isdnctrl[0-63] isdnctrl isdninfo
++
++<tag/serial-cu/serial callout devices. they are only for compatibility,
++most people don't need them. 64 devices : cua[0-63]
++
++<tag/isdn-cu/isdn call out devices. they are only for compatibility,
++most people don't need them. 64 devices : cui[0-7]
++<tag/isdn-cu-all/isdn call out devices. they are only for compatibility,
++most people don't need them. 64 devices : cui[0-63]
++
++<tag/chase{-cu}/devices for chase serial card (append -cu to create
++call out devices). 32 devices ttyH[0-31] (cuh[0-31])
++
++<tag/cyclades{-cu}/devices for cyclades serial card (append -cu to create
++call out devices). 32 devices ttyC[0-31] (cub[0-31])
++
++<tag/digiboard{-cu}/devices for digiboard serial card (append -cu to create
++call out devices). 32 devices ttyD[0-31] (cud[0-31])
++
++<tag/stallion{-cu}/devices for stallion serial card (append -cu to create
++callout devices). 32 devices ttyE[0-31] (cue[0-31])
++
++<tag/stallion-mem/devices to access stallion serial card. 4 devices
++stallionmem[0-3]
++
++<tag/specialix{-cu}/devices for specialix serial card (append -cu to create
++call out devices). 32 devices ttyX[0-31] (cux[0-31])
++
++<tag/rockport{-cu}/devices for rockport serial card (append -cu to create
++call out devices). 32 devices ttyR[0-31] (cur[0-31])
++
++<tag/riscom{-cu}/devices for riscom serial card (append -cu to create
++call out devices). 32 devices ttyL[0-31] (cul[0-31])
++
++<tag/hayes{-cu}/devices for hayes serial card (append -cu to create
++call out devices). 32 devices ttyP[0-31] (cup[0-31])
++
++<tag/baycom/devices for baycom radio modem. 32 devices bc[0-31]
++
++<tag/computone{-cu}/devices for computone intelliport II serial card
++(append -cu to create call out devices). 32 devices ttyF[0-31]
++(cuf[0-31])
++
++<tag/computone-ctrl/devices to access computone intelliport II serial
++card. 8 devices ip2ipl[0-3] and ip2stat[0-3]
++
++<tag/dcbri/spellcaster datacomm\/bri isdn card. 4 devices dcbri[0-3]
++<tag/specialix{-cu}/devices for specialix IO8+ serial card. 32 devices
++ttyW[0-31] (cuw[0-32])
++<tag/pam{-cu}/devices for PAM Software's mulitmodem boards. 32 devices
++ttyM[0-31] (cum[0-31])
++</descrip>
++
++<sect1> misc devices <p>
++
++<descrip>
++<tag/pty[p-za-e]/master pty devices. 16 devices pty?[0-9a-f] each
++<tag/tty[p-za-e]/slave tty devices. 16 devices pty?[0-9a-f] each
++<tag/floppy-all/generic only includes the fd0 and fd1 devices. this way
++you can generate devices for the 3rd ... 8th floppies. i recommend to
++install fdutils and use MAKEFLOPPIES to create the floppy devices you
++need. 30 devices each fd[0-7]*
++
++<tag/framebuffer/universal frame buffer (68k,sparc).
++ 22 devices fb0* fb1*
++<tag/other-arch/amigamouse, atarimouse, sunmouse, openprom, kbd
++<tag/double/"double" compressed disk. 16 devices [c]double[0-7]
++<tag/ez[a-d]/syquest ex135 parallel port removable drive.
++ 20 partitions each
++<tag/ed[ab]/mca esdi hard disk. 20 partitions ed?* each
++
++<tag/sbpcd[234]/2nd,3rd,4th sound blaster cdrom controller. 4 devices sbpcdXX each
++<tag/mscdex/MSCDEX CD-ROM callback support. 4 devices dos_cd[0-3]
++<tag/cm205cd/cm205 cdrom devices (not supported in 2.x).
++ 2 device cm205cd lmscd
++<tag/ad[a-p]/acsi disc\/cdrom (68k\/atari). 16 devices ad?* each
++<tag/gs4500/genius 4500 handheld scanner. 1 device gs4500
++<tag/slm/atari sm asci laser printer (68k\/atari). 4 devices slm[0-3]
++<tag/ht/ide tape. 2 devices ht0 nht0
++<tag/z2ram/zorro II ramdisk. 1 device z2ram
++<tag/cfs/coda network file-system.
++ 1 device cfs0
++<tag/dtlk/DoubleTalk PC speech synthesizer, from RC Systems. 1 device dtlk
++
++<tag/ibcs2/ibcs2 devices as described in "Linux Allocated Devices".
++you need to create the directory /dev/inet before running makedev.
++ibcs2-unoff has lots more devices (i don't know if all are needed, or
++not. in doubt use ibcs2-unoff). 9 devices (socksys spx nfsd X0R inet/*).
++
++<tag/ibcs2-unoff/ibcs2 devices as described in the ibcs2 package. you
++need to create the directories "X" and "inet" before creating these
++devices. 74 devices (arp egp ggp icmp ip ipip pup rawip rip tcp udp nfsd
++X0R socksys spx pty[10-47] inet/* X/*)
++
++<tag/nvram/some special m68k hardware ? 1 device nvram
++
++<tag/system-sgi/devices for linux/sgi. 5 devices graphics opengl gfx
++input/mouse input/keyboard
++
++<tag/nb/network block devices. 8 devices nb*
++<tag/ftl/flash translatio layer (FTL) filesystems. max. 16 drives a-p
++with each 15 partitions (like scsi disks sd*).
++<tag/qng/Quantum Noice Generator. 1 device qng
++<tag/at200/Photometrics AT200 CCD camera. 1 device at200
++<tag/bttv/Brooktree Bt848 frame grabbers. 12 devices bttv[0-3]
++bttvc[0-3] bttv-vbi[0-3]
++<tag/winradio/WiNRADiO communications receiver card. 4 devices
++winradio[0-3]
++<tag/videotext/Teletext/videotext interfaces 2 devices vtx vttuner
++<tag/ihcp/ikon 1011[57] Versatec Greensheet Interface. 2devices ihcp[0-1]
++<tag/shimq/Linux/SGI shared memory input queue. 5 devices shmiq
++qcntl[0-3]
++<tag/sch/SCSI media changer. 8 devices sch[0-7]
++<tag/controla/Sony control-a1 stereo control bus.
++</descrip>
++
++<sect1> sound <p>
++<descrip>
++<tag/mpu401/mpu401 MIDI data & status ports.
++ 2 devices mpu401{data,stat}
++<tag/tclmidi/tclmidi midi driver.
++ 12 devices midi[0-3] rmidi[0-3] smpte[0-3]
++</descrip>
++
++<sect1> misc <p>
++<descrip>
++<tag/wvisfgrab/quanta winvision frame grabber.
++ 1 device wvisfrab
++<tag/mmetfgrab/matrox meteor frame grabber.
++ 1 device mmetfgrab
++<tag/ml16p[abc]/ml-16p experimental i\/o board.
++ 20 device ml16p?* each
++<tag/scc/Z8530 HDLC driver. 8 devices scc[0-7]
++<tag/rom/rom\/flash memory card.
++ 32 devices rom[0-7] rrom[0-7] flash[0-7] rflash[0-7]
++<tag/netlink/netlink support. 2 devices route skip
++<tag/mlanai/myricom pci myrinet board. 8 devices mlanai[0-7]
++<tag/yamm/yet another micro monitor. 1 device yamm
++<tag/bdm/bdm interface for remote debugging MC683xx mc.
++ 6 devices pd_bdm[0-2] icd_bdm[0-2]
++<tag/holter/electrocardiognosis holter serial port.
++ 3 devices holter[0-2]
++<tag/dsp56k/dsp56001 digital signal processor.
++ 1 device dsp56k
++<tag/adbus/apple desktop bus. this was disabled, because it clashes with
++ab[b], the second acsi device (m68k/atari acsi disk).
++ 1 device adb
++<tag/firewall/sf firewall package.
++ 1 device firewall
++<tag/plink/sundance plink transputer boards.
++ 12 devices [r]plink[0-3][d]
++<tag/enskip/enskip kernel encryption package
++<tag/yppcpci/yarc powerpc pci coprocessor card
++<tag/capi20/CAPI 2.0 interface.
++ 21 devices capi20 capi20.[01-19]
++<tag/ma16/ma16 numeric accelerator card
++<tag/aps/spellcaster protocol service interface.
++ 7 devices aps*
++<tag/sci/dolphin interconnect solutions' pci-sci bridge.
++ 4 devices SCI\/[0-3]
++</descrip>
++
++<sect> compatibility <p>
++
++not all devices have a standard device name shared by all linux
++distributions, and many names have changed in the past. here is a list,
++so you can find new names, create the old devices (if you want), or
++remove them (to get rid of duplicates).
++
++<descrip>
++<tag/call out devices/cu* devices are not created by default. but you
++can create or remove them : serial-cu chase-cu cyclades-cu digiboard-cu
++stallion-cu specialix-cu isdn-cu rockport-cu riscom-cu hayes-cu
++computone-cu
++<tag/printer-old/parallel port devices, standard name is lp[0-3], not par[0-3]
++<tag/mouse-old/(bus-)mouse devices : logimouse(logibm) psmouse(psaux)
++msmouse(inportbm) atimouse(atibm) jmouse(jbm)
++<tag/sr-old/scsi cdrom devices (now called scd)
++<tag/qic-old/qic streamer devices : nqt qt nqt11 qt11 nqt24 qt24 nqt120
++qt120 nqt150 qt150 qt-reset
++<tag/misc-old/for standardized names, some devices got renamed. old :
++midi, sbpcd, aztcd0, vcs0, lmscd, ramdisk
++new : midi00, sbpcd0, aztcd, vcs, ram0, cm205cd, ram0
++<tag/sg-old/scsi generic devices now use numbers (sg[0-7]), not letters
++sg[a-h])
++<tag/isdn-old/an old version created ipp* devices. this was a typo, they
++are called ippp*
++</descrip>
++
++i left some links : even if they are for compatibility, removing them
++might break existing software.
++
++<descrip>
++<tag/isdnctrl/link to "isdnctrl0"
++<tag/mfd0/m68k amiga hd floppy device
++</descrip>
++
++<sect> note about console and tty0 <p>
++
++New standard is : /dev/tty0 is a device (char,4,0).
++console should be a symlink : to tty0, or whatever your console is.
++If it is not a symlink, makedev will replace it with a symlink to tty0.
++Someday there will be a kernel managed device /dev/console to handle
++this (it will be char 5 1).
++
++</article>
+--- makedev-2.3.1.orig/debian/changelog
++++ makedev-2.3.1/debian/changelog
+@@ -0,0 +1,747 @@
++makedev (2.3.1-46.2) stable unstable; urgency=low
++
++ * non-maintainer update
++ * argh, target stable and unstable
++
++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 14:01:16 -0400
++
++makedev (2.3.1-46.1) unstable; urgency=low
++
++ * non-maintainer update
++ * 'symlink mcdx mcdx0' was reversed (one line patch)
++
++ -- Adam Di Carlo <aph@debian.org> Sun, 15 Oct 2000 04:36:30 -0400
++
++makedev (2.3.1-46) stable unstable; urgency=medium
++
++ * fix silly symlink loop between ram and ram1, closes: #69475, #69351
++ * fix similar symlink reversal between scd and sr devices, and make 'sr'
++ a valid target, not just when using 'update', closes: #69500
++ * change agpart to agpgart as per devices.txt, closes: #69319
++ * add sg* devices to generic targets that include SCSI, closes: #69231
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 29 Aug 2000 01:13:30 -0600
++
++makedev (2.3.1-45) stable unstable; urgency=low
++
++ * incorporates work done by Martin Schulze <joey@finlandia.infodrom.north.de>
++ with my profound thanks.
++ * Added gscd and cm206cd device files, closes: #69057
++ * Corrected mcdx drivers, support all five drives, closes: #69058
++ * Corrected symlink creation (i.e. use symlink() instead of ln -s)
++ * Added /dev/toshiba (Toshiba laptop SMM support), closes: #54729, #59242
++ * Added sdc and sdd to generic-m68k since they were missing, closes: #61027
++ * Made joystick devices readable by everybody (closes: Bug#61499)
++ * Added '$opts' whenever $0 aka MAKEDEV gets called, thus `-n' is passed
++ to the child properly, closes: #63159
++ * Added hyphen `-' between i2c and the number as described by devices.txt,
++ closes: #63523
++ * Fixed wrong creation of hdi hdj hdk and hdl, closes: #64881
++ * Added hdc and hdd to generic-powerpc since they were missing,
++ closes: #65852
++ * Added support for ttyI and cui (ignored) to 'update' target by
++ modifying cvt(), closes: #66838
++ * Corrected a whole bunch of math errors where a `$' was missing, trying
++ to add 1 to 'minor', closes: #68915
++ * Fixed /proc/devices-parser to ignore slashes, closes: #31854
++ * Removed out-dated Replaces, closes: #61256
++ * Added audioctl, closes: #60755
++ * Added agpart, closes: #61084
++ * Adjusted 3dfx to have file mode $video instead of $audio
++ * Added ipmikcs (Intelligent Platform Management) with mode 0600 (mode
++ may be unpracticable), closes: #67431
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 15 Aug 2000 21:52:23 -0600
++
++makedev (2.3.1-44) frozen unstable; urgency=low
++
++ * patch from tausq for a case I missed when converting expr to $(( )),
++ fixes problem creating sbpcd devices. Target frozen since this was
++ marked release-critical. Closes: #63585
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 6 May 2000 20:24:40 -0600
++
++makedev (2.3.1-43) frozen unstable; urgency=low
++
++ * add invocation of '/sbin/MAKEDEV std' to postinst to ensure key devices
++ have proper owner/group/perms on upgrades, closes: #61367
++ * replace /dev/MAKEDEV references with /sbin/MAKEDEV references in the
++ postinst
++ * target frozen since broken perms on /dev/tty keeps xterm from working
++ which is very confusing and frustrating on upgrades.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 3 May 2000 14:27:04 -0600
++
++makedev (2.3.1-42) frozen unstable; urgency=low
++
++ * eliminate the use of expr, since it is in /usr, which may not be mounted
++ during system recovery when makedev is often needed. Target frozen since
++ this was tagged release critical, closes: #62925
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 24 Apr 2000 22:27:18 -0600
++
++makedev (2.3.1-41) frozen unstable; urgency=low
++
++ * Arrange for all scd* devices to have hardlinked sr* counterparts as per
++ devices.txt. Target frozen since this is release critical, closes: #61862
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Apr 2000 20:01:39 -0600
++
++makedev (2.3.1-40) frozen unstable; urgency=low
++
++ * fix flakey code for discovering proper major numbers for several device
++ types. This broke the raidtools postinst in some cases, which I think
++ makes this worth adding to frozen, even though there's no bug in the BTS
++ about it (problem reported and fixed during an IRC session). There are
++ still a few potential major number problems in MAKEDEV, but they're all
++ for obscure devices that are not in devices.txt, and which I'll therefore
++ probably remove entirely when rewriting makedev for woody.
++ * fix type, smtpe should be smpte, closes: #59061
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 19 Mar 2000 20:28:30 -0700
++
++makedev (2.3.1-39) frozen unstable; urgency=low
++
++ * add missing major number clause to thinkpad/smapi device, closes: #57381
++ target frozen since this is clearly release-critical
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 9 Feb 2000 12:07:07 -0700
++
++makedev (2.3.1-38) frozen unstable; urgency=low
++
++ * target frozen since 56724 was tagged release-critical
++ * rework ftape stuff to match 2.2 kernel device definitions, closes: #56724
++ * add code to create /dev/smapi and symlink it as /dev/thinkpad. This can
++ be called as either smapi or thinkpad. Closes: #54714
++ * add /dev/radio symlink to radio0, closes: #55649
++ * update the netlink target to create fwmonitor and the tap* devices,
++ closes: #54772
++ * add IRDA device support, closes: #47296
++
++ -- Bdale Garbee <bdale@gag.com> Thu, 3 Feb 2000 23:51:58 -0700
++
++makedev (2.3.1-37) unstable; urgency=low
++
++ * add openprom entry for Sparc systems, closes: #54296
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 20:03:00 -0700
++
++makedev (2.3.1-36) unstable; urgency=low
++
++ * fix cyclades target to make 32 instead of 33 devices, and update man page
++ to match what the code does, closes: #51892
++ * add st0/st1/scd0/scd1 to generic-i386 and generic-alpha to improve the
++ consistency across platforms, closes: #52871
++ * create an initial generic-arm target, anticipating the need as debian-arm
++ struggles to get ready to release with potato.
++ * update handling of network block devices (nb) so that specifying a single
++ device works as expected. calling for 'nb' will give nb0 and nb1.
++ Closes: #53781
++ * support digital joysticks (djs) in joystick/js target, closes: #53314
++ * update to current policy rev, add Build-Depends.
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 7 Jan 2000 02:14:24 -0700
++
++makedev (2.3.1-35) unstable; urgency=low
++
++ * change group of video4linux devices to new group video appearing in
++ base-passwd 3.0.4, closes: 51429
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 28 Nov 1999 20:00:12 -0700
++
++makedev (2.3.1-34) unstable; urgency=low
++
++ * re-craft 'ida' target the same way we did dac960 to allow the boot-floopies
++ folks to create just one or two cards worth. Closes: #51341
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 26 Nov 1999 17:54:56 -0700
++
++makedev (2.3.1-33) unstable; urgency=low
++
++ * add usbmouse support to busmice target, closes: #50326
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 16 Nov 1999 03:20:03 -0700
++
++makedev (2.3.1-32) unstable; urgency=low
++
++ * add 'audio' to the targets for generic-i386, closes: #49935
++ * craft an initial generic-alpha target to make the boot-floppies stuff
++ work right. For now, just clone the i386 target since I have no idea
++ what is really needed... closes: #49934
++ * add support for creating ramN devices one at a time, closes: #49853
++ * add target 'consoleonly' that creates the minimum number of devices to
++ support /dev/console, and recraft the 'console' target to use it and then
++ add all the vcs* devices, et al. Closes: #49852
++ * re-craft 'dac960' target to be a loop around targets dac960.[0-7] so that
++ boot-floppies creators can create just one or two cards worth of devices
++ instead of having to do them all. Closes: #49864
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 15 Nov 1999 22:38:43 -0700
++
++makedev (2.3.1-31) unstable; urgency=low
++
++ * fixes for major numbers on some oddball CDROM types, needed for boot disks
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Nov 1999 23:58:56 -0700
++
++makedev (2.3.1-30) unstable; urgency=low
++
++ * fill in a few more audio devices, closes: #49107
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 3 Nov 1999 20:28:54 -0700
++
++makedev (2.3.1-29) unstable; urgency=low
++
++ * the /dev/vcs* handling is correct, closes: #42035
++ * fix case construct for ht0, closes: #42519
++ * fix major number determination for several devices, closes: #43560
++ * add js2, js3 to joystick device creation, but leave owner/group/mode
++ the same as for mice until/unless some more compelling argument is
++ presented, closes: #43790
++ * improve consistency of vcs device creation, making vcs0 and vcsa0, with
++ symlinks for vcs and vcsa, closes: #45698
++ * add support for /dev/3dfx, closes: #48734
++ * /dev/sr* is obsolete, use /dev/scd*, closes: #32723
++ * RH 2.5 was merged as of 2.3.1-24, closes: #45153
++ * FHS compliance
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 30 Oct 1999 16:53:32 -0600
++
++makedev (2.3.1-28) unstable; urgency=medium
++
++ * /o\ oops... -27 was broken badly. Close 42355, 42359, 42361.
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 3 Aug 1999 02:38:06 -0600
++
++makedev (2.3.1-27) unstable; urgency=medium
++
++ * fix loop's major number, closes 38559.
++ * fix group of scd* to be cdrom, not disk. Closes 41227, 41812.
++ * add vbi symlink, closes 39406
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Aug 1999 00:59:19 -0600
++
++makedev (2.3.1-26) unstable; urgency=medium
++
++ * fix another syntax error introduced in -25... /o\
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 29 May 1999 03:12:32 -0600
++
++makedev (2.3.1-25) unstable; urgency=medium
++
++ * fix *ugly* typos introduced in -24, closes 38489, 38465.
++ * update MAKEDEV to install the mouse -> sunmouse link in generic-sparc,
++ in addition to making it in the postinst if needed. Closes 38432.
++ * have MAKEDEV exit with error 1 if we hit a "don't know how to make device"
++ situation. I'm a bit concerned about this since it *might* break a
++ package postinst somewhere. However, it is clearly the right thing to do
++ on a purely conceptual level. Closes 29974.
++ * add support for Free S/WAN (IPSEC) device, closes 38372.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600
++
++makedev (2.3.1-24) unstable; urgency=low
++
++ * fold in patch from Espy to provide all the functionality of the RedHat
++ makedev 2.5. Leave our version number as 2.3.1-XX for now, since we're
++ not actually cleanly derived from the 2.5 RedHat bits. Closes 37795, 28616.
++ * make 'scd' act like 'scd-all', closes 37071
++ * patch for postinst typo, closes 37612
++ * move MAKEDEV to /sbin, create an init.d fragment to put a symlink in the
++ /dev directory at boot time. This should allow devfs to do its thing,
++ closing 37795, 33025.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 26 May 1999 14:00:29 -0600
++
++makedev (2.3.1-23) stable unstable; urgency=low
++
++ * fix problems with st* and adb pointed out by Hartmut
++
++ -- Bdale Garbee <bdale@gag.com> Thu, 15 Apr 1999 08:39:39 -0600
++
++makedev (2.3.1-22) unstable; urgency=low
++
++ * add 'hamradio' as a target, which is a macro for the new scc[0-7] and
++ bc[0-3] targets, closes 34773.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:55:46 -0600
++
++makedev (2.3.1-21) stable unstable; urgency=low
++
++ * make /dev/mouse a symlink to /dev/sunmouse on sparc, closes 35616
++ * have postinst create audio devices, closes 35646
++ * also create [alm] suffix versions for st* devices, closes 33041
++ * add support for hd[ijkl]... noticed while investigating bug 33798
++ * use the same owner/group/perms for nvram that we use for kmem, closes 34111
++ * add loop to the std device set, closes 34899
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Apr 1999 11:13:47 -0600
++
++makedev (2.3.1-20) stable unstable; urgency=medium
++
++ * release-critical fixes from Hartmut for powerpc, closes 34004
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 10 Mar 1999 07:51:08 -0700
++
++makedev (2.3.1-19) frozen unstable; urgency=medium
++
++ * fix identification of 'sg' in update, closes the part of 33752 (grave)
++ that I can duplicate on i386 in -18
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 23 Feb 1999 07:44:30 -0700
++
++makedev (2.3.1-18) frozen unstable; urgency=medium
++
++ * as requested by Wichert, have the postinst force /dev/kmem owner, group,
++ and permissions since this is a security issue, closes 33703.
++ * another patch needed for m68k slink boot floppies from Michael Schmitz
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 22 Feb 1999 22:56:47 -0700
++
++makedev (2.3.1-17) frozen unstable; urgency=low
++
++ * Wichert points out that /dev/kmem doesn't need to be group writeable.
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 20 Feb 1999 16:12:29 -0700
++
++makedev (2.3.1-16) frozen unstable; urgency=medium
++
++ * apply patch for m68k that is release-critical for slink
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 19 Feb 1999 20:07:05 -0700
++
++makedev (2.3.1-15) frozen unstable; urgency=medium
++
++ * fix major number for sunmouse as per Eric Delaunay, closes 33425
++ * tighten default permission on mouse and joystick devices, closes 32378
++ * change audio devices to root.audio 660, closes 32849
++ * apply patch from Eric Delaunay to fix problem with scsi devices and 2.2
++ kernels, closes 32999
++ * target 'frozen' since the sunmouse fix at the very least should be in
++ slink...
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 17 Feb 1999 16:53:41 -0700
++
++makedev (2.3.1-14) frozen unstable; urgency=low
++
++ * additions from Eric Delaunay needed for sparc frozen, closes 32458
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 27 Jan 1999 13:54:31 -0700
++
++makedev (2.3.1-13) frozen unstable; urgency=low
++
++ * make random/urandom available separately, not just in std, closes 32145
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 19 Jan 1999 21:27:14 -0700
++
++makedev (2.3.1-12) frozen unstable; urgency=low
++
++ * add random/urandom to the std target, closes 31562 and 29193
++ * update manpage to indicate the manpage is out of date, I need to make a
++ chunk of time at some point to give it a thorough review/update.
++ * don't make /dev/cua*, fix group on /dev/ttyS*, closes 30867
++ * change postinst to use syntax that isn't bash-specific, closes 18807
++ and 30849
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 9 Jan 1999 00:39:25 -0700
++
++makedev (2.3.1-11) frozen unstable; urgency=low
++
++ * allow 16 sd's instead of 8, as the kernel does. closes 30555.
++ * create hdc and hdd in generic-i386, and create 20 partitions per hd
++ instead of 4, closes 30522.
++ * go back (forward?) to using 'u' instead of '[DHE]' in fd entries,
++ closes 30438.
++ * add 'fb' to both the generic-i386 and generic-powerpc clauses, closes
++ 29228
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 12 Dec 1998 08:10:22 -0700
++
++makedev (2.3.1-10) frozen unstable; urgency=low
++
++ * instead of having the postinst explicitly link /dev/console, have it
++ call MAKEDEV if console doesn't exist. Update MAKEDEV to know how to
++ link it for 2.0 kernels and prior, and create the explicit device for
++ 2.1 and later running kernels. Building this based on running kernel
++ revision doesn't feel clean, but I see no better way.
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700
++
++makedev (2.3.1-9) frozen unstable; urgency=low
++
++ * fix postinst to cd to /dev so that devices don't end up in /, now that
++ we don't do the cd in MAKEDEV itself
++ * move 'generic' to 'generic-i386', and have 'generic' use dpkg to determine
++ which generic-<arch> to use... this paves the way for fixing support for
++ other architectures.
++ * Several changes per drow on IRC:
++ change MAXVT from 8 to 63
++ change sd[ab] to create 15 instead of 8 subdevices
++ fix char->block on one scd instance
++ diffs to add support for powerpc machines
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 18:49:30 -0700
++
++makedev (2.3.1-8) frozen unstable; urgency=low
++
++ * add support for ram0 to the ram* list (0 was omitted), part of 28933.
++ * device 'rtc' was part of 'misc', give it a top-level entry too to reduce
++ possible confusion. Part of 28933.
++ * add an entry for 'initrd', closes 28933 (slink release-critical).
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 8 Nov 1998 10:18:37 -0700
++
++makedev (2.3.1-7) frozen unstable; urgency=low
++
++ * now that MAKEDEV is a script, this can be an 'all' package instead of
++ an 'any'. Thanks to Hartmut Koptein for pointing this out.
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 6 Nov 1998 11:42:58 -0700
++
++makedev (2.3.1-6) frozen unstable; urgency=low
++
++ * add ttyS entry so update works with recent 2.1 kernels
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 2 Nov 1998 21:47:34 -0700
++
++makedev (2.3.1-5) frozen unstable; urgency=low
++
++ * fix typo affecting fb devices, closes 28742
++ * fix syntax used for wildcarded devices, part of closing 28769
++ * fix error in minor numbers for isdn-ippp, part of closing 28769
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 1 Nov 1998 23:09:45 -0700
++
++makedev (2.3.1-4) frozen unstable; urgency=low
++
++ * add support for additional scd and sg devices, closes 28029.
++ * change device names for busmice back to what we used in makedev-1.*, which
++ is also what the kernel documentation uses. Closes 28143.
++ * add support for various devices in contemporary kernels, closes 27720.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 28 Oct 1998 23:41:58 -0700
++
++makedev (2.3.1-3) unstable; urgency=low
++
++ * use 'dialout' instead of 'serial' to select owner/group/perms for ISDN
++ devices, closes 27536
++ * use 'dialout' as group for serial devices instead of 'uucp' to be
++ compatible with prior Debian makedev packages.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 7 Oct 1998 22:50:36 -0600
++
++makedev (2.3.1-2) unstable; urgency=low
++
++ * fix scd-all and sg-all entry points. The latter is just an alias for 'sg',
++ but the former was genuinely missing. Switch sg devices to numeric suffix
++ to comply with kernel's devices.txt. Closes 27490.
++ * close 26586, since I'm pretty sure it's a weirdy not caused by the package.
++ * add ISDN devices, closes 26971.
++ * add cfs0 for CODA, closes 23815.
++
++ -- Bdale Garbee <bdale@gag.com> Tue, 6 Oct 1998 00:33:59 -0600
++
++makedev (2.3.1-1) unstable; urgency=low
++
++ * New upstream version. This is a *significant* change!
++ This is a move (back?) from the short-lived makedev that depended on a
++ non-free parser to the one that is just a shell script. We will now be
++ more like other Linux distributions, no longer depending on a non-free
++ hunk of code to build the makedev package, and some porting and other
++ issues will get better.
++ * With the major change in upstream code, several bugs are not relevant
++ any more. Therefore, close 12949, 18037, 18807, 20665, 22648, 22868,
++ 23771, 23898, 24477, 24572, 25660, 25840, 26058.
++ * add support for /dev/ptmx, built as part of pty*, closes 23612.
++ * add support for /dev/ed[ab], closes 23887.
++
++ -- Bdale Garbee <bdale@gag.com> Sun, 6 Sep 1998 21:21:32 -0600
++
++makedev (1.6-32) frozen unstable; urgency=medium
++
++ * serial devices now owned by root.dialout, closes 22297 (important)
++ * tape devices now owned by root.tape, closes 11910
++ * be explicit about which 'ls' we're calling, closes 22225
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 22 May 1998 23:52:58 -0600
++
++makedev (1.6-31) unstable; urgency=low
++
++ * add powerpc support, closes 21949
++ * lose the menu entry
++
++ -- Bdale Garbee <bdale@gag.com> Sat, 2 May 1998 01:29:06 -0600
++
++makedev (1.6-30) unstable; urgency=low
++
++ * change from debmake to debhelper
++ * fix errors and warnings reported by lintian
++ * deliver devices.sgml instead of trying to build the .txt and .html files,
++ closes bug 16953
++
++ -- Bdale Garbee <bdale@gag.com> Mon, 9 Feb 1998 22:31:43 -0700
++
++makedev (1.6-29) unstable; urgency=low
++
++ * add arpd device, on request of Elie Rosenblum <erosenbl@nyx.net>.
++
++ -- Bdale Garbee <bdale@gag.com> Wed, 14 Jan 1998 09:42:14 -0700
++
++makedev (1.6-28) unstable; urgency=low
++
++ * new maintainer
++
++ -- Bdale Garbee <bdale@gag.com> Fri, 5 Dec 1997 23:22:57 -0700
++
++makedev (1.6-27) unstable; urgency=low
++
++ * changed /dev/console handling.
++ * updated devinfo to kernel 2.1.62 device list.
++ * changed all device with group "sys" to group "root".
++
++ -- Andreas Jellinghaus <aj@debian.org> Sat, 8 Nov 1997 11:56:18 +0100
++
++makedev (1.6-26) unstable; urgency=low
++
++ * fixed bug #13787 : amigamouse1 was not corrected by postinst.
++ * fixed ad devices.
++ * added nvram device, added ad* to std-hd-m68k, added ttyS4 and ttyS6
++ to m68k boot-floppies and m68k generic
++
++ -- Andreas Jellinghaus <aj@debian.org> Thu, 16 Oct 1997 20:09:14 +0200
++
++makedev (1.6-25) unstable; urgency=low
++
++ * bug #9077 is obsolete (kernel bug, fixed in kernel).
++ * libc6 release : closes bugs #12791 and #13122.
++ * fixed bug #12158 : added sr* and sg* devices.
++ * fixed bug #12385 : wrong standard number.
++
++ -- Andreas Jellinghaus <aj@debian.org> Fri, 19 Sep 1997 16:12:32 +0200
++
++makedev (1.6-24) unstable; urgency=low
++
++ * removed support for old floppy devices.
++ * only create generic floppy devices.
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 10 Sep 1997 10:31:53 +0200
++
++makedev (1.6-23) unstable; urgency=low
++
++ * renamed isdn batches : isdn-xx is 8 devices, isdn-xx-all are 64
++ devices (isdn-io, isdn-tty, isdn-ippp, isdn-cu).
++ * increased numer to 5500 devices. (makedev is getting too large).
++
++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:40:11 +0200
++
++makedev (1.6-22) unstable; urgency=low
++
++ * bugfix with cvstree (i forgot to commit befor tagging :-()
++
++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:30:08 +0200
++
++makedev (1.6-21) unstable; urgency=low
++
++ * bugfix : out of memory. aarrgg : makedev has fixed size tables.
++
++ -- Andreas Jellinghaus <aj@debian.org> Mon, 8 Sep 1997 21:28:24 +0200
++
++makedev (1.6-20) unstable; urgency=low
++
++ * corrected problem with my own cvs tree
++
++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:54:10 +0200
++
++makedev (1.6-19) unstable; urgency=low
++
++ * changed /dev/full to mode 0622 (0666 was a security hole, as
++ discussed on linux-kernel).
++
++ -- Andreas Jellinghaus <aj@debian.org> Sun, 7 Sep 1997 16:22:27 +0200
++
++makedev (1.6-18) unstable; urgency=low
++
++ * added isdn-*-small devices (only 8 devices, not 64).
++
++ -- Andreas Jellinghaus <aj@debian.org> Fri, 22 Aug 1997 12:57:20 +0200
++
++makedev (1.6-17) unstable; urgency=low
++
++ * close bug 6541 (missing audio device) : not reproduceable
++ * generate random and urandom, if missing (bug #12134)
++ * enabled makedev to create more sg* and sr* devices (bug #12158)
++ * changed doubletalkt to dtlk as requested
++ * sd[a-h]16 removed (bug, sda16 = sdb, scsi only supports 15
++ partitions)
++
++ -- Andreas Jellinghaus <aj@debian.org> Sun, 17 Aug 1997 19:19:33 +0200
++
++makedev (1.6-16) stable unstable; urgency=low
++
++ * security bug fixed : all mouse devices are now mode 600.
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 30 Jul 1997 10:31:04 +0200
++
++makedev (1.6-15) unstable; urgency=low
++
++ * ibcs2 removed from generic set. revised ibcs2-unoff.
++
++ -- Andreas Jellinghaus <aj@debian.org> Tue, 29 Jul 1997 13:13:43 +0200
++
++makedev (1.6-14) unstable; urgency=low
++
++ * bug in postinst : type "MAKDEV" and "/dev/tty0" instead of "tty0" (#11441)
++ * stable version (libc5 compiled) for isdnutils
++
++ -- Andreas Jellinghaus <aj@debian.org> Fri, 25 Jul 1997 10:12:14 +0200
++
++makedev (1.6-13) unstable; urgency=low
++
++ * fixed menu entry (thanks to Abdallah Chatila <acha@poboxes.com>)
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 21:33:55 +0200
++
++makedev (1.6-12) unstable; urgency=low
++
++ * bug fix (changed doubletalk to class audio).
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 9 Jul 1997 09:45:38 +0200
++
++makedev (1.6-11) unstable; urgency=low
++
++ * Fixed isdn devices (ippp were missing).
++ * No longer create isdn device as default (that is done by isdnutils).
++ * Added doubletalk device. Added more ibcs2 stuff.
++
++ -- Andreas Jellinghaus <aj@debian.org> Tue, 8 Jul 1997 19:04:45 +0200
++
++makedev (1.6-10) unstable stable; urgency=low
++
++ * fixed console device, added documentation.
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 25 Jun 1997 13:20:46 +0200
++
++makedev (1.6-9) unstable stable; urgency=low
++
++ * Added comment about cua devices.
++
++ -- Andreas Jellinghaus <aj@debian.org> Tue, 24 Jun 1997 09:21:20 +0200
++
++makedev (1.6-8) unstable stable; urgency=low
++
++ * changed /dev/console to be a symlink to /dev/tty0.
++
++ -- Andreas Jellinghaus <aj@debian.org> Sun, 22 Jun 1997 21:42:35 +0200
++
++makedev (1.6-7) unstable stable; urgency=low
++
++ * fixed bug with possible /dev/console symlink.
++ * fixed bug with not always creating /dev/tty0. (xfree 3.3 need this)
++
++ -- Andreas Jellinghaus <aj@debian.org> Thu, 19 Jun 1997 22:38:46 +0200
++
++makedev (1.6-6) unstable; urgency=low
++
++ * fixed documentation (thanks to David Welton <davidw@efn.org>)
++ * patch for m68k from frank neumann included
++
++ -- Andreas Jellinghaus <aj@debian.org> Mon, 9 Jun 1997 15:45:00 +0200
++
++makedev (1.6-5) unstable; urgency=low
++
++ * libc6 release
++ * added postinst script to change tty/pty devices to new major
++ numbers (the next time you boot).
++ * changed all serial devices from root.dialout to uucp.dialout
++ * added generic-ARCH batches
++ * changed (u)random permissions from 444 to 644
++ * corrected mcd/mcdx handling.
++ * small bugfix in manpages.
++
++ -- Andreas Jellinghaus <aj@debian.org> Thu, 24 Apr 1997 19:12:58 +0200
++
++makedev (1.6-4) unstable frozen; urgency=low
++
++ * fixed manpage, added generic-m68k, added mfd0, changed framebuffer
++ create both : fb[01] and fb[01]current, changed framebuffer
++ class to mode 664. disabled adb (apple desktob bus).
++ this fixes bug #9053
++ * fixed mitsumi cdrom detection.
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 23 Apr 1997 16:23:50 +0200
++
++makedev (1.6-3) unstable frozen; urgency=low
++
++ * bug fixed : st?l devices (nor st?1).
++ * only create fd0 and fd1 with generic
++ * seperated old device names to "-old" groups
++ * not generating cm205cd by default
++ * "boot-floppy" added with less devices
++ * documentation in sgml and txt format
++
++ -- Andreas Jellinghaus <aj@debian.org> Wed, 16 Apr 1997 12:58:56 +0200
++
++makedev (1.6-2) unstable frozen; urgency=high
++
++ * new maintainer Andreas Jellinghaus <aj@debian.org>
++ * rewrote devinfo (according to linux allocated devices, 2.0.30,2.1.31
++ * this fixes bug #8396 (isdn devices)
++ * this fixes bug #8399 (don't generate cu* devices)
++ * this fixes bug #7144 (device for goldstar cdrom - gscd)
++ * this fixes bug #8173 (new names for floppy devices fd*)
++ * this fixes bug #8068 (hd[efgh] devises added : now ide[0123])
++ (this includes: renamed all floppy device (bug #8173),
++ * this fixes bug #3493 (isdn devices)
++ * this fixes bug #5542 (ttyS* group dialout, cu* not generated)
++ * this fixes bug #6926 (loop back devices corrected)
++ * this fixes bug #6983 (loop back devices creatable)
++ * this fixes bug #7038 (mcd device creatable (only one))
++ * this fixes bug #7754 (sr* devices are created for compatibility)
++ * this fixes parts of bug #7783 (only new tty/pty are created)
++ * bug #7755 obsolete (old cat file ? current man page is ok)
++ * bug #8009 obsolete (disks 1997-04-04 are ok)
++ * remove from generic : cua[0-3] lmscd ram sbpcd[9-15] vcs0
++ added to generic: X0R aztcd beep bpcd cm205cd cm206cd exttrp gscd
++ hd[efgh]* hitcd hwtrap initrd ippp* jbm loop* mcd md* modreq nsfd
++ nst*[1am] optcd ram[0-7] ramdisk relay16 relay8 rtc sd[abcdefgh][9-16]
++ sequence2 sg[0-7] sjcd socksys spx sr[0-7] st*[1am] tpqic* tty[13-63]
++ ttyI[0-63] urandom vcs vcs[13-63] vcsa vcsa[13-63] watchdog
++ (ca. + 600 devices, size + 11 k in a ext2fs)
++
++ -- Andreas Jellinghaus <aj@debian.org> Sun, 13 Apr 1997 21:06:14 +0200
++
++makedev (1.6-1) unstable; urgency=low
++
++ * New upstream version.
++
++ -- Bruce Perens <bruce@pixar.com> Wed, 19 Mar 1997 20:40:17 -0800
++
++makedev (1.5-4) unstable; urgency=low
++
++ * Add devices. Increase the maximum size of a batch from 32 to 1024.
++
++ -- Bruce Perens <bruce@pixar.com> Tue, 17 Dec 1996 20:34:06 -0800
++
++makedev (1.5-3) unstable; urgency=low
++
++ * Make hd[a-d][8-20] and sd[a-h][8-20]. Remove bad empty "omit" from
++ makedev.cfg
++
++ -- Bruce Perens <bruce@pixar.com> Sun, 8 Dec 1996 09:42:18 -0800
++
++makedev (1.5-2) unstable; urgency=low
++
++ * Change class of ttySn devices to dialout.
++ * Add ISDN.
++
++ -- Bruce Perens <bruce@pixar.com> Fri, 6 Dec 1996 21:17:12 -0800
++
++makedev (1.5-1) unstable; urgency=low
++
++ * Initial Release.
++
++ -- Bruce Perens <bruce@pixar.com> Wed, 30 Oct 1996 20:36:44 -0800
++
++Local variables:
++mode: debian-changelog
++End:
+--- makedev-2.3.1.orig/debian/conffiles
++++ makedev-2.3.1/debian/conffiles
+@@ -0,0 +1 @@
++/etc/init.d/makedev
+--- makedev-2.3.1.orig/debian/control
++++ makedev-2.3.1/debian/control
+@@ -0,0 +1,13 @@
++Source: makedev
++Section: base
++Priority: required
++Maintainer: Bdale Garbee <bdale@gag.com>
++Build-Depends: debhelper
++Standards-Version: 3.1.1.1
++
++Package: makedev
++Architecture: all
++Depends: base-passwd (>= 3.0.4)
++Description: Creates special device files in /dev.
++ The MAKEDEV executable is used to populate the /dev directory with device
++ files.
+--- makedev-2.3.1.orig/debian/copyright
++++ makedev-2.3.1/debian/copyright
+@@ -0,0 +1,45 @@
++This package is maintained for Debian by Bdale Garbee, <bdale@gag.com>.
++
++It was downloaded from ftp.redhat.com, as a source .rpm from the 5.1 release
++tree.
++
++Copyright:
++
++No explicit copyright is asserted. Nick Holloway is the earliest author
++recorded in the sourcecode. I queried him for an explicit statement
++regarding the license status of this work, and this is his reply:
++
++ Date: Tue, 21 Jul 1998 19:57:10 +0100
++ From: Nick Holloway <Nick.Holloway@alfie.demon.co.uk>
++ Message-Id: <199807211857.TAA19068@alfie.demon.co.uk>
++ To: Bdale Garbee <bdale@gag.com>
++ Subject: Re: makedev license?
++
++ > I maintain the makedev package for Debian GNU/Linux. I am about to move
++ > from the ill-fated makedev-1.6 to the makedev-2.3.1 derived from your work
++ > by the folks at Redhat. I don't see any evidence of a copyright assertion
++ > or explicit license statement in the source. Your name appears to be the
++ > earliest attached to the current sourcecode. Am I correct in assuming the
++ > GPL? We try to be meticulous about having our base system be compliant
++ > with our Debian Free Software Guidelines, so I'd like an explicit statement.
++
++ It was never explictly released as GPL, as that would have required
++ including the file COPYING which would have been much larger than the
++ actual MAKEDEV script (I was also too lazy to find out what incantations
++ needed to be made). However, it is intended to be used as anyone sees
++ fit, and the statement under "Copying Policy" is "Freely Redistributable"
++ (see MAKEDEV.lsm from any of the releases I made).
++
++ The more recent modifications were done by Michael K. Johnson at
++ Redhat. I think the understanding was that he would be taking over the
++ maintenance of MAKEDEV (our discussion took place last September).
++
++ The only previous history was (according to an old posting to
++ comp.os.linux) that I started with Jim Winstead's script.
++
++ So, as far as I am concerned, it is consistentwith the Debian FSG.
++
++ --
++ `O O' | Home: Nick.Holloway@alfie.demon.co.uk http://www.alfie.demon.co.uk/
++ // ^ \\ | Work: Nick.Holloway@parallax.co.uk
++
+--- makedev-2.3.1.orig/debian/dirs
++++ makedev-2.3.1/debian/dirs
+@@ -0,0 +1,2 @@
++sbin
++usr/share/man/man8
+--- makedev-2.3.1.orig/debian/init.d
++++ makedev-2.3.1/debian/init.d
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
++
++set -e
++
++case "$1" in
++ start)
++ ln -fs /sbin/MAKEDEV /dev/MAKEDEV
++ ;;
++ stop|reload|restart|force-reload)
++ ;;
++ *)
++ N=/etc/init.d/makedev
++ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
++ echo "Usage: $N {start|stop|restart|force-reload}" >&2
++ exit 1
++ ;;
++esac
++
++exit 0
+--- makedev-2.3.1.orig/debian/postinst
++++ makedev-2.3.1/debian/postinst
+@@ -0,0 +1,62 @@
++#!/bin/sh
++
++set +e
++
++#DEBHELPER#
++
++cd /dev
++
++/sbin/MAKEDEV std
++
++test -e /dev/console || /sbin/MAKEDEV console
++test -e /dev/tty0 || /sbin/MAKEDEV tty0
++test -e /dev/random || /sbin/MAKEDEV random
++test -e /dev/urandom || /sbin/MAKEDEV urandom
++test -e /dev/full && chmod 0622 /dev/full
++test -e /dev/audio || /sbin/MAKEDEV audio
++
++[ ! -f /dev/mouse -a -f /dev/sunmouse ] && ln -s sunmouse mouse
++
++for A in sda16 sdb16 sdc16 sdd16 sde16 sdf16 sdg16 sdh16 \
++ ada16 adb16 adc16 add16 ade16 adf16 adg16 adh16
++do
++ test -e /dev/$A && rm /dev/$A
++done
++
++for A in logibm psaux inportbm atibm jbm smouse logimouse psmouse \
++msmouse atimouse jmouse amigamouse atarimouse sunmouse amigamouse1
++do
++ test -e /dev/$A && chmod 600 /dev/$A
++done
++
++# fix security hole caused by group-write permissions on kmem
++test -e /dev/kmem && chown root.kmem /dev/kmem && chmod 0640 /dev/kmem
++
++LIST=""
++
++for TYPE in tty pty ; do
++ for LETTER in p q r s t u v w x y z a b c d e ; do
++ if [ -e /dev/$TYPE$LETTER"0" ]; then
++ MAJOR="`/bin/ls -l /dev/$TYPE$LETTER"0"|cut -c33-36`"
++ if [ "$MAJOR" = 4 ] ; then
++ LIST="$LIST $TYPE$LETTER"
++ fi
++ fi
++ done
++done
++
++if [ -n "$LIST" ]; then
++ cat > /etc/rc.boot/makedev << EOF
++#!/bin/sh
++
++echo "Creating new console devices"
++/sbin/MAKEDEV $LIST
++
++rm /etc/rc.boot/makedev ; exit 0
++EOF
++
++chmod 755 /etc/rc.boot/makedev
++
++fi
++
++exit 0
+--- makedev-2.3.1.orig/debian/preinst
++++ makedev-2.3.1/debian/preinst
+@@ -0,0 +1,5 @@
++#!/bin/sh
++
++rm -f /usr/man/man8/MAKEDEV.8 /usr/man/man8/MAKEDEV-C.8 \
++ /usr/man/man8/MAKEDEV-C.8.gz
++exit 0
+--- makedev-2.3.1.orig/debian/rules
++++ makedev-2.3.1/debian/rules
+@@ -0,0 +1,56 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++ -$(MAKE) clean
++ -rm -f debian/devices.txt debian/devices*html
++ dh_clean
++
++# Build architecture-independent files here.
++binary-indep: build
++
++# Build architecture-dependent files here.
++binary-arch: build
++# dh_testversion
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ ROOT=debian/tmp $(MAKE) install
++
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++ dh_installinit
++ dh_installcron
++ dh_installmanpages
++ dh_undocumented
++ dh_installchangelogs
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_suidregister
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++# dh_makeshlibs
++ dh_md5sums
++ dh_builddeb
++
++source diff:
++ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary
diff --git a/source/a/devs/makedev_2.3.1.hd.diff b/source/a/devs/makedev_2.3.1.hd.diff
new file mode 100644
index 000000000..4f5058b23
--- /dev/null
+++ b/source/a/devs/makedev_2.3.1.hd.diff
@@ -0,0 +1,71 @@
+--- ./MAKEDEV.orig Sun Feb 24 15:46:03 2002
++++ ./MAKEDEV Sun Feb 24 16:12:18 2002
+@@ -147,7 +147,7 @@
+ Character|Block|'')
+ ;;
+ *)
+- eval "major_$device=$major"
++ # eval "major_$device=$major"
+ devices="$devices $device"
+ ;;
+ esac
+@@ -964,7 +964,7 @@
+ done
+ ;;
+ hd[k-l])
+- major=`Major ide4 57` || continue
++ major=`Major ide5 57` || continue
+ unit=`suffix $arg hd`
+ base=`index kl $unit`
+ base=`math $base \* 64`
+@@ -974,6 +974,50 @@
+ makedev hd$unit$part b $major $(( $base + $part )) $disk
+ done
+ ;;
++ hd[m-n])
++ major=`Major ide6 88` || continue
++ unit=`suffix $arg hd`
++ base=`index mn $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
++ hd[o-p])
++ major=`Major ide7 89` || continue
++ unit=`suffix $arg hd`
++ base=`index op $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
++ hd[q-r])
++ major=`Major ide8 90` || continue
++ unit=`suffix $arg hd`
++ base=`index qr $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
++ hd[s-t])
++ major=`Major ide9 91` || continue
++ unit=`suffix $arg hd`
++ base=`index st $unit`
++ base=`math $base \* 64`
++ makedev hd$unit b $major $base $disk
++ for part in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
++ do
++ makedev hd$unit$part b $major $(( $base + $part )) $disk
++ done
++ ;;
+ ht0)
+ major=`Major ht0 37` || continue
+ # Only one IDE tape drive is currently supported; ht0.
diff --git a/source/a/devs/makedev_2.3.1.slack.diff b/source/a/devs/makedev_2.3.1.slack.diff
new file mode 100644
index 000000000..8a1998561
--- /dev/null
+++ b/source/a/devs/makedev_2.3.1.slack.diff
@@ -0,0 +1,19 @@
+--- ./MAKEDEV.orig 2004-05-20 19:27:42.000000000 -0700
++++ ./MAKEDEV 2004-05-20 19:28:47.000000000 -0700
+@@ -17,14 +17,14 @@
+ tty=" root tty 0666"
+ cons=" root tty 0622"
+ vcs=" root root 0600"
+-dialout=" root dialout 0660"
++dialout=" root uucp 0660"
+ mouse=" root root 0660"
+ printer=" root lp 0660"
+ floppy=" root floppy 0660"
+ disk=" root disk 0660"
+ scsi=" root root 0600"
+ cdrom=" root cdrom 0660"
+- tape=" root tape 0660"
++ tape=" root disk 0660"
+ audio=" root audio 0660"
+ video=" root video 0660"
+ ibcs2=" root root 0666"
diff --git a/source/a/devs/slack-desc b/source/a/devs/slack-desc
new file mode 100644
index 000000000..e8b5d1d5f
--- /dev/null
+++ b/source/a/devs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+devs: devs (system device files)
+devs:
+devs: This package creates special files in the /dev directory that
+devs: represent your system's hardware, and a tool (/dev/MAKEDEV) for
+devs: creating new device files. These files are required to access
+devs: hardware on a Linux system.
+devs:
+devs:
+devs:
+devs:
+devs:
diff --git a/source/a/dialog/dialog.SlackBuild b/source/a/dialog/dialog.SlackBuild
new file mode 100755
index 000000000..9c9bd3f65
--- /dev/null
+++ b/source/a/dialog/dialog.SlackBuild
@@ -0,0 +1,119 @@
+#!/bin/sh
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=dialog
+VERSION=${VERSION:-1.1-20080819}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "armel" ]; then
+ SLKCFLAGS="-O2 -march=armv4t"
+ LIBDIRSUFFIX=""
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION || exit 1
+
+zcat $CWD/dialog.smaller.min.height.diff.gz | patch -p1 --verbose || exit 1
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --disable-static \
+ --enable-nls \
+ --with-ncursesw \
+ --enable-widec \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make -j4 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Keep the old traditional looknfeel :-)
+mkdir -p $PKG/etc
+cat samples/slackware.rc > $PKG/etc/dialogrc
+
+mkdir -p $PKG/bin
+mv $PKG/usr/bin/dialog $PKG/bin
+( cd $PKG/usr/bin
+ ln -sf ../../bin/dialog .
+)
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ CHANGES COPYING README VERSION dialog.lsm \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
+
diff --git a/source/a/dialog/dialog.smaller.min.height.diff b/source/a/dialog/dialog.smaller.min.height.diff
new file mode 100644
index 000000000..c9a327af3
--- /dev/null
+++ b/source/a/dialog/dialog.smaller.min.height.diff
@@ -0,0 +1,22 @@
+--- ./checklist.c.orig 2008-06-20 15:58:21.000000000 -0500
++++ ./checklist.c 2009-04-22 19:00:18.000000000 -0500
+@@ -31,7 +31,7 @@
+
+ static int list_width, check_x, item_x, checkflag;
+
+-#define MIN_HIGH (1 + (5 * MARGIN))
++#define MIN_HIGH 4
+
+ #define LLEN(n) ((n) * CHECKBOX_TAGS)
+ #define ItemData(i) &items[LLEN(i)]
+--- ./menubox.c.orig 2008-06-19 19:54:16.000000000 -0500
++++ ./menubox.c 2009-04-22 19:00:07.000000000 -0500
+@@ -35,7 +35,7 @@
+ Editing
+ } Mode;
+
+-#define MIN_HIGH (1 + (5 * MARGIN))
++#define MIN_HIGH 4
+
+ #define INPUT_ROWS 3 /* rows per inputmenu entry */
+
diff --git a/source/a/dialog/slack-desc b/source/a/dialog/slack-desc
new file mode 100644
index 000000000..8c20026f8
--- /dev/null
+++ b/source/a/dialog/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+dialog: dialog (display dialog boxes from shell scripts)
+dialog:
+dialog: Dialog is a program to present a variety of questions or display
+dialog: messages using dialog boxes from a shell script. The Slackware
+dialog: package management script "pkgtool" uses this, as do various other
+dialog: menu-driven console scripts.
+dialog:
+dialog: Dialog was originally contributed to Slackware by Savio Lam, and has
+dialog: been contributed to by many. Dialog is currently maintained by
+dialog: Thomas E. Dickey.
+dialog:
diff --git a/source/a/dosfstools/dosfstools.SlackBuild b/source/a/dosfstools/dosfstools.SlackBuild
new file mode 100755
index 000000000..ebe99c68b
--- /dev/null
+++ b/source/a/dosfstools/dosfstools.SlackBuild
@@ -0,0 +1,74 @@
+#!/bin/sh
+
+# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.11
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-dosfstools
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf dosfstools-$VERSION
+tar xzvf $CWD/dosfstools-$VERSION.src.tar.gz
+cd dosfstools-$VERSION
+chown -R root:root .
+make -j4 || exit 1
+
+( cd mkdosfs
+ mkdir -p $PKG/sbin
+ cat mkdosfs > $PKG/sbin/mkdosfs
+ chmod 755 $PKG/sbin/mkdosfs
+ mkdir -p $PKG/usr/man/man8
+ cat mkdosfs.8 | gzip -9c > $PKG/usr/man/man8/mkdosfs.8.gz
+)
+( cd $PKG/sbin ; rm -f mkfs.msdos ; ln -sf mkdosfs mkfs.msdos )
+( cd dosfsck
+ cat dosfsck > $PKG/sbin/dosfsck
+ chmod 755 $PKG/sbin/dosfsck
+ cat dosfsck.8 | gzip -9c > $PKG/usr/man/man8/dosfsck.8.gz
+)
+mkdir -p $PKG/usr/doc/dosfstools-$VERSION
+cp -a \
+ CHANGES README.Atari TODO \
+ $PKG/usr/doc/dosfstools-$VERSION
+mkdir -p $PKG/usr/doc/dosfstools-$VERSION/mkdosfs
+( cd mkdosfs ; cp -a ANNOUNCE COPYING README mkdosfs-ygg-0.3b.lsm $PKG/usr/doc/dosfstools-$VERSION/mkdosfs )
+mkdir -p $PKG/usr/doc/dosfstools-$VERSION/dosfsck
+( cd dosfsck ; cp -a CHANGES COPYING README $PKG/usr/doc/dosfstools-$VERSION/dosfsck )
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/dosfstools-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/dosfstools/slack-desc b/source/a/dosfstools/slack-desc
new file mode 100644
index 000000000..b070c1e29
--- /dev/null
+++ b/source/a/dosfstools/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+dosfstools: dosfstools (tools for working with FAT filesystems)
+dosfstools:
+dosfstools: Utilities for creating FAT filesystems (mkdosfs), and for checking
+dosfstools: and repairing them (dosfsck).
+dosfstools:
+dosfstools:
+dosfstools:
+dosfstools:
+dosfstools:
+dosfstools:
+dosfstools:
diff --git a/source/a/e2fsprogs/doinst.sh b/source/a/e2fsprogs/doinst.sh
new file mode 100644
index 000000000..c47d7e847
--- /dev/null
+++ b/source/a/e2fsprogs/doinst.sh
@@ -0,0 +1,18 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+config etc/mke2fs.conf.new
+
+if [ -x /usr/bin/install-info ]; then
+ install-info --info-dir=/usr/info /usr/info/libext2fs.info.gz 2> /dev/null
+fi
+
diff --git a/source/a/e2fsprogs/e2fsprogs.SlackBuild b/source/a/e2fsprogs/e2fsprogs.SlackBuild
new file mode 100755
index 000000000..c57cea4f3
--- /dev/null
+++ b/source/a/e2fsprogs/e2fsprogs.SlackBuild
@@ -0,0 +1,159 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-1.41.8}
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-e2fsprogs
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf e2fsprogs-$VERSION
+tar xvf $CWD/e2fsprogs-$VERSION.tar.?z* || exit 1
+cd e2fsprogs-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Disable --uuidd builds the same functionality into libuuid.*.
+# It's better that way.
+# Keep the included libblkid and libuuid for now, but we'll be using the
+# system-wide one from util-linux-ng sooner or later...
+# fsck.* will also be moving to u-l-ng
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix= \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --bindir=/usr/bin \
+ --includedir=/usr/include \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/e2fsprogs-$VERSION \
+ --enable-elf-shlibs \
+ --enable-libblkid \
+ --enable-libuuid \
+ --disable-uuidd \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+make install-libs DESTDIR=$PKG || exit 1
+
+# I guess Ted would rather not have this included, so we won't.
+# ( cd misc
+# make findsuper
+# cat findsuper > $PKG/sbin/findsuper
+# chmod 0755 $PKG/sbin/findsuper )
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Don't clobber an existing config file
+mv $PKG/etc/mke2fs.conf $PKG/etc/mke2fs.conf.new
+
+# Fix up package:
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+mv $PKG/lib${LIBDIRSUFFIX}/pkgconfig $PKG/lib${LIBDIRSUFFIX}/*.so \
+ $PKG/usr/lib${LIBDIRSUFFIX}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ for i in *.so ; do
+ ln -sf /lib${LIBDIRSUFFIX}/$(readlink $i) $i ;
+ done
+)
+( cd $PKG/sbin
+ rm -f \
+ mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev \
+ fsck.ext2 fsck.ext3 fsck.ext4dev e2label findfs
+ ln -sf mke2fs mkfs.ext2
+ ln -sf mke2fs mkfs.ext3
+ ln -sf mke2fs mkfs.ext4
+ ln -sf mke2fs mkfs.ext4dev
+ ln -sf tune2fs e2label
+ ln -sf tune2fs findfs
+ cat << EOF > fsck.ext2
+#!/bin/sh
+exec /sbin/e2fsck -C 0 \$*
+EOF
+ chmod 0755 fsck.ext2
+ # Why won't symlinks work here? --RW
+ # Because $0 will always be "fsck.ext2" in that case. --PJV
+ cp -a fsck.ext2 fsck.ext3
+ cp -a fsck.ext2 fsck.ext4
+ cp -a fsck.ext2 fsck.ext4dev
+)
+( cd $PKG/usr/man/man3
+ rm -f uuid_generate_random.3 uuid_generate_time.3
+ ln -sf uuid_generate.3 uuid_generate_random.3
+ ln -sf uuid_generate.3 uuid_generate_time.3
+)
+( cd $PKG/usr/man/man8
+ rm -f fsck.ext2.8 fsck.ext3.8 mkfs.ext2.8 mkfs.ext3.8 \
+ mkfs.ext4.8 mkfs.ext4dev.8
+ ln -sf e2fsck.8 fsck.ext2.8
+ ln -sf e2fsck.8 fsck.ext3.8
+ ln -sf e2fsck.8 fsck.ext4.8
+ ln -sf e2fsck.8 fsck.ext4dev.8
+ ln -sf mke2fs.8 mkfs.ext2.8
+ ln -sf mke2fs.8 mkfs.ext3.8
+ ln -sf mke2fs.8 mkfs.ext4.8
+ ln -sf mke2fs.8 mkfs.ext4dev.8
+)
+
+# Compress and link manpages
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+mkdir -p $PKG/usr/doc/e2fsprogs-$VERSION
+cp -a \
+ COPYING* INSTALL INSTALL.elfbin README* RELEASE-NOTES SHLIBS \
+ $PKG/usr/doc/e2fsprogs-$VERSION
+chmod 644 $PKG/usr/doc/e2fsprogs-$VERSION/*
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/e2fsprogs-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/e2fsprogs/slack-desc b/source/a/e2fsprogs/slack-desc
new file mode 100644
index 000000000..e35c02a2b
--- /dev/null
+++ b/source/a/e2fsprogs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+e2fsprogs: e2fsprogs (ext2 and ext3 filesystems utilities)
+e2fsprogs:
+e2fsprogs: Utilities needed to create and maintain ext2 and ext3 filesystems.
+e2fsprogs:
+e2fsprogs: These utilities were written by Remy Card (the developer and
+e2fsprogs: maintainer of the ext2 fs) and Theodore T'so.
+e2fsprogs:
+e2fsprogs:
+e2fsprogs:
+e2fsprogs:
+e2fsprogs:
diff --git a/source/a/ed/ed.SlackBuild b/source/a/ed/ed.SlackBuild
new file mode 100755
index 000000000..534ca116d
--- /dev/null
+++ b/source/a/ed/ed.SlackBuild
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=ed
+VERSION=${VERSION:-1.3}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --infodir=/usr/info \
+ --mandir=/usr/man
+
+# Build and install:
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+if [ ! -r $PKG/usr/man/man1/ed.1 ]; then
+ mkdir -p $PKG/usr/man/man1
+ cat doc/ed.1 > $PKG/usr/man/man1/ed.1
+fi
+
+# Traditional:
+( mkdir $PKG/bin
+ rm $PKG/usr/bin/red
+ mv $PKG/usr/bin/ed $PKG/bin
+ cd $PKG/bin
+ ln -sf ed red
+ cd $PKG/usr/bin
+ ln -sf ../../bin/ed .
+ ln -sf ed red
+)
+
+# Strip binaries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING* ChangeLog INSTALL NEWS README TODO \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/ed/slack-desc b/source/a/ed/slack-desc
new file mode 100644
index 000000000..b0121daa5
--- /dev/null
+++ b/source/a/ed/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+ed: ed (text editor)
+ed:
+ed: GNU ed is an 8-bit clean, more or less POSIX-compliant implementation
+ed: of the standard Unix line editor. These days, full-screen editors
+ed: have rendered 'ed' mostly of historical interest. Nonetheless, it
+ed: appeals to a handful of aging programmers who still believe that
+ed: "Small is Beautiful".
+ed:
+ed:
+ed:
+ed:
diff --git a/source/a/eject/eject.SlackBuild b/source/a/eject/eject.SlackBuild
new file mode 100755
index 000000000..56d1e79fc
--- /dev/null
+++ b/source/a/eject/eject.SlackBuild
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=eject
+VERSION=${VERSION:-2.1.5}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}
+tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2
+cd ${PKGNAM}
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+
+# Build and install:
+make -j4 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING NEWS PORTING PROBLEMS README TODO eject-$VERSION.lsm \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/eject/slack-desc b/source/a/eject/slack-desc
new file mode 100644
index 000000000..624b05b7d
--- /dev/null
+++ b/source/a/eject/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+eject: eject (a tool to eject removable media)
+eject:
+eject: Eject allows removable media (typically a DVD, CD, floppy disk, tape,
+eject: etc.) to be ejected under software control. The command can also
+eject: control some multi-disc changers, the auto-eject feature supported by
+eject: some devices, and can close the disc tray of some drives.
+eject:
+eject: The 'eject' program was written by Jeff Tranter.
+eject:
+eject:
+eject:
diff --git a/source/a/elvis/elvis.SlackBuild b/source/a/elvis/elvis.SlackBuild
new file mode 100755
index 000000000..3bb83ba70
--- /dev/null
+++ b/source/a/elvis/elvis.SlackBuild
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.2_0
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-elvis
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr
+cd $TMP
+rm -rf elvis-$VERSION
+tar xjvf $CWD/elvis-$VERSION.tar.bz2
+cd elvis-$VERSION
+chown -R root:root .
+# Time for a kludge (i.e. don't suggest this kind of thing be
+# done as a rule... I don't know why I'm crazy today).
+# First we build and install this with a bogus --prefix, and
+# then build it again and replace the binaries.
+# (to prevent compiling in /tmp/package-elvis/ paths)
+./configure \
+ --without-x \
+ --without-gnome \
+ --bindir=$PKG/usr/bin \
+ --datadir=$PKG/usr/share/elvis-$VERSION \
+ --docdir=$PKG/usr/share/elvis-$VERSION/doc \
+ --verbose
+make
+make install
+# Now we make the real binaries:
+make clean
+./configure \
+ --without-x \
+ --without-gnome \
+ --bindir=/usr/bin \
+ --datadir=/usr/share/elvis-$VERSION \
+ --docdir=/usr/share/elvis-$VERSION/doc \
+ --verbose
+make
+# And install them:
+cat elvis > $PKG/usr/bin/elvis
+cat elvtags > $PKG/usr/bin/elvtags
+cat ref > $PKG/usr/bin/ref
+# Turn off color highlighting by default. I can't imagine editing files like
+# that all day... (this coming from the inventor of /etc/(DIR|LS)_COLORS ;-)
+cp -a $CWD/elvis.clr* $PKG/usr/share/elvis-$VERSION
+chown root:root $PKG/usr/share/elvis-$VERSION/elvis.clr*
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+# Install the man pages:
+mkdir -p $PKG/usr/man/man1
+( cd doc
+ cat ctags.man | gzip -9c > $PKG/usr/man/man1/elvtags.1.gz
+ cat elvfmt.man | gzip -9c > $PKG/usr/man/man1/elvfmt.1.gz
+ cat elvis.man | gzip -9c > $PKG/usr/man/man1/elvis.1.gz
+ cat ref.man | gzip -9c > $PKG/usr/man/man1/ref.1.gz
+)
+cp -a \
+ BUGS COPYING INSTALL README.html \
+ $PKG/usr/share/elvis-$VERSION
+# If this is actually useful for anything, fill me in on what it's for:
+rm -f $PKG/usr/share/elvis-$VERSION/tags
+rm -f $PKG/usr/share/elvis-$VERSION/doc/*.man
+rm -f $PKG/usr/share/elvis-$VERSION/doc/printdoc.bat
+
+# Add /usr/bin/ex and /usr/bin/vi symlinks.
+( cd $PKG/usr/bin ; ln -sf elvis ex ; ln -sf elvis vi )
+mkdir $PKG/usr/doc
+( cd $PKG/usr/doc ; ln -sf /usr/share/elvis-$VERSION . )
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/elvis-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/elvis/elvis.clr b/source/a/elvis/elvis.clr
new file mode 100644
index 000000000..6b906afaf
--- /dev/null
+++ b/source/a/elvis/elvis.clr
@@ -0,0 +1,56 @@
+switch gui
+case windows
+case x11 {
+" color normal black on gray90
+" color argument like keyword green or dark green
+" color bottom like normal
+" color comment italic dark green or light green
+" color cursor blue on navyblue
+" color fixed gray35 or gray80
+" color function Red4 or pink
+" color guide white
+" color hexheading gray70
+" color hlsearch boxed
+" color keyword bold
+" color libt like keyword italic
+" color linenumber gray
+" color link like formatted underlined blue or light blue
+" color number Blue4 or light blue
+" color other like keyword
+" color prep bold Blue4 or light blue
+" color prepquote like string
+" color scroll like tool
+" color scrollbar like toolbar
+" color selection on tan
+" color spell on pink
+" color status like tool
+" color statusbar like toolbar
+" color string tan4 or tan1
+" color tool black on gray75
+" color toolbar white on gray40
+" color variable Gray15 or palegoldenrod
+}
+case vio
+case termcap {
+" color normal yellow or black
+" color char like string
+" color comment italic light green or green
+" color fixed white or gray
+" color function light cyan or cyan
+" color hexheading gray
+" color hlsearch bold
+" color keyword bold white or black
+" color libt like keyword
+" color linenumber gray
+" color link underlined blue or light cyan
+" color number light cyan or blue
+" color other like keyword
+" color prep bold magenta or blue
+" color prepquote like string
+" color regexp like string
+" color ruler blue or light cyan
+" color showmode green boxed
+" color spell red or light magenta
+" color string white or brown
+" color variable like normal
+}
diff --git a/source/a/elvis/elvis.clr.orig b/source/a/elvis/elvis.clr.orig
new file mode 100644
index 000000000..d132c6738
--- /dev/null
+++ b/source/a/elvis/elvis.clr.orig
@@ -0,0 +1,56 @@
+switch gui
+case windows
+case x11 {
+ color normal black on gray90
+ color argument like keyword green or dark green
+ color bottom like normal
+ color comment italic dark green or light green
+ color cursor blue on navyblue
+ color fixed gray35 or gray80
+ color function Red4 or pink
+ color guide white
+ color hexheading gray70
+ color hlsearch boxed
+ color keyword bold
+ color libt like keyword italic
+ color linenumber gray
+ color link like formatted underlined blue or light blue
+ color number Blue4 or light blue
+ color other like keyword
+ color prep bold Blue4 or light blue
+ color prepquote like string
+ color scroll like tool
+ color scrollbar like toolbar
+ color selection on tan
+ color spell on pink
+ color status like tool
+ color statusbar like toolbar
+ color string tan4 or tan1
+ color tool black on gray75
+ color toolbar white on gray40
+ color variable Gray15 or palegoldenrod
+}
+case vio
+case termcap {
+ color normal yellow or black
+ color char like string
+ color comment italic light green or green
+ color fixed white or gray
+ color function light cyan or cyan
+ color hexheading gray
+ color hlsearch bold
+ color keyword bold white or black
+ color libt like keyword
+ color linenumber gray
+ color link underlined blue or light cyan
+ color number light cyan or blue
+ color other like keyword
+ color prep bold magenta or blue
+ color prepquote like string
+ color regexp like string
+ color ruler blue or light cyan
+ color showmode green boxed
+ color spell red or light magenta
+ color string white or brown
+ color variable like normal
+}
diff --git a/source/a/elvis/slack-desc b/source/a/elvis/slack-desc
new file mode 100644
index 000000000..f60d350d8
--- /dev/null
+++ b/source/a/elvis/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+elvis: elvis (text editor)
+elvis:
+elvis: Elvis is a text editor. It is intended to be a modern replacement
+elvis: for the classic ex/vi editor of UNIX fame. Elvis supports many new
+elvis: features, including multiple edit buffers, multiple windows, and a
+elvis: variety of display modes.
+elvis:
+elvis: As elvis is Slackware's default vi, this is a required package.
+elvis:
+elvis:
+elvis:
diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild
new file mode 100755
index 000000000..6c708883b
--- /dev/null
+++ b/source/a/etc/etc.SlackBuild
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=13.0
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-etc
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_etc.tar.gz
+# Fix for ARCH:
+sed -i -e "s#/i486-slackware-linux#/${ARCH}-slackware-linux#" etc/ld.so.conf.new
+cp -a $CWD/termcap-BSD.gz etc/termcap-BSD.gz
+gzip -d --force etc/termcap-BSD.gz
+chown root:root etc/termcap-BSD
+chmod 644 etc/termcap-BSD
+zcat $CWD/nsswitch.conf.gz > $PKG/etc/nsswitch.conf.new
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/etc-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/etc/nsswitch.conf b/source/a/etc/nsswitch.conf
new file mode 100644
index 000000000..3d993afcb
--- /dev/null
+++ b/source/a/etc/nsswitch.conf
@@ -0,0 +1,42 @@
+#
+# /etc/nsswitch.conf
+#
+# An example Name Service Switch config file. This file should be
+# sorted with the most-used services at the beginning.
+#
+# The entry '[NOTFOUND=return]' means that the search for an
+# entry should stop if the search in the previous entry turned
+# up nothing. Note that if the search failed due to some other reason
+# (like no NIS server responding) then the search continues with the
+# next entry.
+#
+# Legal entries are:
+#
+# nisplus or nis+ Use NIS+ (NIS version 3)
+# nis or yp Use NIS (NIS version 2), also called YP
+# dns Use DNS (Domain Name Service)
+# files Use the local files
+# [NOTFOUND=return] Stop searching if not found so far
+#
+
+# passwd: files nis
+# shadow: files nis
+# group: files nis
+
+passwd: compat
+group: compat
+
+hosts: files dns
+networks: files
+
+services: files
+protocols: files
+rpc: files
+ethers: files
+netmasks: files
+netgroup: files
+bootparams: files
+
+automount: files
+aliases: files
+
diff --git a/source/a/etc/slack-desc b/source/a/etc/slack-desc
new file mode 100644
index 000000000..9d9d9bbd4
--- /dev/null
+++ b/source/a/etc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+etc: etc (system configuration files)
+etc:
+etc: System configuration files. The /etc directory is traditionally the
+etc: location where configuration files are found.
+etc:
+etc:
+etc:
+etc:
+etc:
+etc:
+etc:
diff --git a/source/a/etc/termcap-BSD b/source/a/etc/termcap-BSD
new file mode 100644
index 000000000..01094d609
--- /dev/null
+++ b/source/a/etc/termcap-BSD
@@ -0,0 +1,16470 @@
+######## TERMINAL TYPE DESCRIPTIONS SOURCE FILE
+#
+# Version 11.0.1
+# $Date: 2000/03/02 15:51:11 $
+# termcap syntax
+#
+# Eric S. Raymond (current maintainer)
+# John Kunze, Berkeley
+# Craig Leres, Berkeley
+#
+# Please e-mail changes to terminfo@thyrsus.com; the old termcap@berkeley.edu
+# address is no longer valid. The latest version can always be found at
+# <http://www.tuxedo.org/terminfo>.
+#
+# PURPOSE OF THIS FILE:
+#
+# This file describes the capabilities of various character-cell terminals,
+# as needed by software such as screen-oriented editors.
+#
+# Other terminfo and termcap files exist, supported by various OS vendors
+# or as relics of various older versions of UNIX. This one is the longest
+# and most comprehensive one in existence. It subsumes not only the entirety
+# of the historical 4.4BSD, GNU, System V and SCO termcap files and the BRL
+# termcap file, but also large numbers of vendor-maintained termcap and
+# terminfo entries more complete and carefully tested than those in historical
+# termcap/terminfo versions.
+#
+# Pointers to related resources (including the ncurses distribution) may
+# be found at <http://www.tuxedo.org/terminfo>.
+#
+# INTERNATIONALIZATION:
+#
+# This file uses only the US-ASCII character set (no ISO8859 characters).
+#
+# This file assumes a US-ASCII character set. If you need to fix this, start
+# by global-replacing \E(B and \E)B with the appropriate ISO 6429 enablers
+# for your character set. \E(A and \E)A enables the British character set
+# with the pound sign at position 2/3.
+#
+# In a Japanese-processing environment using EUC/Japanese or Shift-JIS,
+# C1 characters are considered the first-byte set of the Japanese encodings,
+# so \E)0 should be avoided in <enacs> and initialization strings.
+#
+# FILE FORMAT:
+#
+# The version you are looking at may be in any of three formats: master
+# (terminfo with OT capabilities), stock terminfo, or termcap. You can tell
+# which by the format given in the header above.
+#
+# The master format is accepted and generated by the terminfo tools in the
+# ncurses suite; it differs from stock (System V-compatible) terminfo only
+# in that it admits a group of capabilities (prefixed `OT') equivalent to
+# various obsolete termcap capabilities. You can, thus, convert from master
+# to stock terminfo simply by filtering with `sed "/OT[^,]*,/s///"'; but if
+# you have ncurses `tic -I' is nicer (among other things, it automatically
+# outputs entries in a canonical form).
+#
+# The termcap version is generated automatically from the master version
+# using tic -C. This filtering leaves in the OT capabilities under their
+# original termcap names. All translated entries fit within the 1023-byte
+# string-table limit of archaic termcap libraries except where explicitly
+# noted below. Note that the termcap translation assumes that your termcap
+# library can handle multiple tc capabilities in an entry. 4.4BSD has this
+# capability. Older versions of GNU termcap, through 1.3, do not.
+#
+# For details on these formats, see terminfo(5) in the ncurses distribution,
+# and termcap(5) in the 4.4BSD Unix Programmer's Manual. Be aware that 4.4BSD
+# curses has been declared obsolete by the caretakers of the 4.4BSD sources
+# as of June 1995; they are encouraging everyone to migrate to ncurses.
+#
+# Note: unlike some other distributed terminfo files (Novell Unix & SCO's),
+# no entry in this file has embedded comments. This is so source translation
+# to termcap only has to carry over leading comments. Also, no name field
+# contains embedded whitespace (such whitespace confuses rdist).
+#
+# Further note: older versions of this file were often installed with an editor
+# script (reorder) that moved the most common terminal types to the front of
+# the file. This should no longer be necessary, as the file is now ordered
+# roughly by type frequency with ANSI/VT100 and other common types up front.
+#
+# Some information has been merged in from terminfo files distributed by
+# USL and SCO (see COPYRIGHTS AND OTHER DELUSIONS below). Much information
+# comes from vendors who maintain official terminfos for their hardware
+# (notably DEC and Wyse).
+#
+# A detailed change history is included at the end of this file.
+#
+# FILE ORGANIZATION:
+#
+# Comments in this file begin with # - they cannot appear in the middle
+# of a terminfo/termcap entry (this feature had to be sacrificed in order
+# to allow standard terminfo and termcap syntax to be generated cleanly from
+# the master format). Individual capabilities are commented out by
+# placing a period between the colon and the capability name.
+#
+# The file is divided up into major sections (headed by lines beginning with
+# the string "########") and minor sections (beginning with "####"); do
+#
+# grep "^####" <file> | more
+#
+# to see a listing of section headings. The intent of the divisions is
+# (a) to make it easier to find things, and (b) to order the database so
+# that important and frequently-encountered terminal types are near the
+# front (so that you'll get reasonable search efficiency from a linear
+# search of the termcap form even if you don't use reorder). Minor sections
+# usually correspond to manufacturers or standard terminal classes.
+# Parenthesized words following manufacturer names are type prefixes or
+# product line names used by that manufacturers.
+#
+# HOW TO READ THE ENTRIES:
+#
+# The first name in an entry is the canonical name for the model or
+# type, last entry is a verbose description. Others are mnemonic synonyms for
+# the terminal.
+#
+# Terminal names look like <manufacturer> <model> - <modes/options>
+# The part to the left of the dash, if a dash is present, describes the
+# particular hardware of the terminal. The part to the right may be used
+# for flags indicating special ROMs, extra memory, particular terminal modes,
+# or user preferences.
+#
+# All names should be in lower case, for consistency in typing.
+#
+# The following are conventionally used suffixes:
+# -2p Has two pages of memory. Likewise 4p, 8p, etc.
+# -am Enable auto-margin.
+# -m Monochrome. Suppress color support
+# -mc Magic-cookie. Some terminals (notably older Wyses) can
+# only support one attribute without magic-cookie lossage.
+# Their base entry is usually paired with another that
+# uses magic cookies to support multiple attributes.
+# -nam No auto-margin - suppress :am: capability
+# -nl No labels - suppress soft labels
+# -ns No status line - suppress status line
+# -rv Terminal in reverse video mode (black on white)
+# -s Enable status line.
+# -vb Use visible bell (:vb:) rather than :bl:.
+# -w Wide - in 132 column mode.
+# If a name has multiple suffixes and one is a line height, that one should
+# go first. Thus `aaa-30-s-rv' is recommended over `aaa-s-rv-30'.
+#
+# Entries with embedded plus signs are designed to be included through use/tc
+# capabilities, not used as standalone entries.
+#
+# To avoid search clashes, some older all-numeric names for terminals have
+# been removed (i.e., "33" for the Model 33 Teletype, "2621" for the HP2621).
+# All primary names of terminals now have alphanumeric prefixes.
+#
+# Comments marked "esr" are mostly results of applying the termcap-compiler
+# code packaged with ncurses and contemplating the resulting error messages.
+# In many cases, these indicated obvious fixes to syntax garbled by the
+# composers. In a few cases, I was able to deduce corrected forms for garbled
+# capabilities by looking at context. All the information in the original
+# entries is preserved in the comments.
+#
+# In the comments, terminfo capability names are bracketed with <> (angle
+# brackets). Termcap capability names are bracketed with :: (colons).
+#
+# INTERPRETATION OF USER CAPABILITIES
+#
+# The System V Release 4 and XPG4 terminfo format defines ten string
+# capabilities for use by applications, <u0>...<u9>. In this file, we use
+# certain of these capabilities to describe functions which are not covered
+# by terminfo. The mapping is as follows:
+#
+# u9 terminal enquire string (equiv. to ANSI/ECMA-48 DA)
+# u8 terminal answerback description
+# u7 cursor position request (equiv. to VT100/ANSI/ECMA-48 DSR 6)
+# u6 cursor position report (equiv. to ANSI/ECMA-48 CPR)
+#
+# The terminal enquire string <u9> should elicit an answerback response
+# from the terminal. Common values for <u9> will be ^E (on older ASCII
+# terminals) or \E[c (on newer VT100/ANSI/ECMA-48-compatible terminals).
+#
+# The cursor position request (<u7>) string should elicit a cursor position
+# report. A typical value (for VT100 terminals) is \E[6n.
+#
+# The terminal answerback description (u8) must consist of an expected
+# answerback string. The string may contain the following scanf(3)-like
+# escapes:
+#
+# %c Accept any character
+# %[...] Accept any number of characters in the given set
+#
+# The cursor position report (<u6>) string must contain two scanf(3)-style
+# %d format elements. The first of these must correspond to the Y coordinate
+# and the second to the %d. If the string contains the sequence %i, it is
+# taken as an instruction to decrement each value after reading it (this is
+# the inverse sense from the cup string). The typical CPR value is
+# \E[%i%d;%dR (on VT100/ANSI/ECMA-48-compatible terminals).
+#
+# These capabilities are used by tac(1m), the terminfo action checker
+# (distributed with ncurses 5.0).
+#
+# TABSET FILES
+#
+# All the entries in this file have been edited to assume that the tabset
+# files directory is /usr/share/tabset, in conformance with the File Hierarchy
+# Standard for Linux and open-source BSD systems. Some vendors (notably Sun)
+# use /usr/lib/tabset or (more recently) /usr/share/lib/tabset.
+#
+# No curses package we know of actually uses these files. If their location
+# is an issue, you will have to hand-patch the file locations before compiling
+# this file.
+#
+# REQUEST FOR CONTACT INFORMATION AND HISTORICAL MATERIAL
+#
+# As the ANSI/ECMA-48 standard and variants take firmer hold, and as
+# character-cell terminals are increasingly replaced by X displays, much of
+# this file is becoming a historical document (this is part of the reason for
+# the new organization, which puts ANSI types, xterm, Unix consoles,
+# and vt100 up front in confidence that this will catch 95% of new hardware).
+#
+# For the terminal types still alive, I'd like to have manufacturer's
+# contact data (Internet address and/or snail-mail + phone).
+#
+# I'm also interested in enriching the comments so that the latter portions of
+# the file do in fact become a potted history of VDT technology as seen by
+# UNIX hackers. Ideally, I'd like the headers for each manufacturer to
+# include its live/dead/out-of-the-business status, and for as many
+# terminal types as possible to be tagged with information like years
+# of heaviest use, popularity, and interesting features.
+#
+# I'm especially interested in identifying the obscure entries listed under
+# `Miscellaneous obsolete terminals, manufacturers unknown' before the tribal
+# wisdom about them gets lost. If you know a lot about obscure old terminals,
+# please go to the terminfo resource page, grab the UFO file (ufo.ti), and
+# eyeball it for things you can identify and describe.
+#
+# If you have been around long enough to contribute, please read the file
+# with this in mind and send me your annotations.
+#
+# COPYRIGHTS AND OTHER DELUSIONS
+#
+# The BSD ancestor of this file had a standard Regents of the University of
+# California copyright with dates from 1980 to 1993.
+#
+# Some information has been merged in from a terminfo file SCO distributes.
+# It has an obnoxious boilerplate copyright which I'm ignoring because they
+# took so much of the content from the ancestral BSD versions of this file
+# and didn't attribute it, thereby violating the BSD Regents' copyright.
+#
+# Not that anyone should care. However many valid functions copyrights may
+# serve, putting one on a termcap/terminfo file with hundreds of anonymous
+# contributors makes about as much sense as copyrighting a wall-full of
+# graffiti -- it's legally dubious, ethically bogus, and patently ridiculous.
+#
+# This file deliberately has no copyright. It belongs to no one and everyone.
+# If you claim you own it, you will merely succeed in looking like a fool.
+# Use it as you like. Use it at your own risk. Copy and redistribute freely.
+# There are no guarantees anywhere. Svaha!
+#
+
+######## ANSI, UNIX CONSOLE, AND SPECIAL TYPES
+#
+# This section describes terminal classes and brands that are still
+# quite common.
+#
+
+#### Specials
+#
+# Special "terminals". These are used to label tty lines when you don't
+# know what kind of terminal is on it. The characteristics of an unknown
+# terminal are the lowest common denominator - they look about like a ti 700.
+#
+
+dumb|80-column dumb tty:\
+ :am:\
+ :co#80:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+unknown|unknown terminal type:\
+ :gn:tc=dumb:
+lpr|printer|line printer:\
+ :bs:hc:os:\
+ :co#132:li#66:\
+ :bl=^G:cr=^M:do=^J:ff=^L:le=^H:sf=^J:
+glasstty|classic glass tty interpreting ASCII control characters:\
+ :am:bs:\
+ :co#80:\
+ :bl=^G:cl=^L:cr=^M:do=^J:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I:
+vanilla:\
+ :bs:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+
+#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
+#
+# See the end-of-file comment for more on these.
+#
+
+# ANSI capabilities are broken up into pieces, so that a terminal
+# implementing some ANSI subset can use many of them.
+ansi+local1:\
+ :do=\E[B:le=\E[D:nd=\E[C:up=\E[A:
+ansi+local:\
+ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:tc=ansi+local1:
+ansi+tabs:\
+ :bt=\E[Z:ct=\E[2g:st=\EH:ta=^I:
+ansi+inittabs:\
+ :it#8:tc=ansi+tabs:
+ansi+erase:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:
+ansi+rca:\
+ :ch=\E[%+^AG:cv=\E[%+^Ad:
+ansi+cup:\
+ :cm=\E[%i%d;%dH:ho=\E[H:
+ansi+rep:\
+ :..rp=%p1%c\E[%p2%{1}%-%db:
+ansi+idl1:\
+ :al=\E[L:dl=\E[M:
+ansi+idl:\
+ :AL=\E[%dL:DL=\E[%dM:tc=ansi+idl1:
+ansi+idc:\
+ :IC=\E[%d@:dc=\E[P:ei=\E6:ic=\E[@:im=\E6:
+ansi+arrows:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:
+ansi+sgr|ansi graphic renditions:\
+ :mb=\E[5m:me=\E[0m:mk=\E[8m:mr=\E[7m:
+ansi+sgrso|ansi standout only:\
+ :se=\E[m:so=\E[7m:
+ansi+sgrul|ansi underline only:\
+ :ue=\E[m:us=\E[4m:
+ansi+sgrbold|ansi graphic renditions; assuming terminal has bold; not dim:\
+ :md=\E[1m:\
+ :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul:
+ansi+sgrdim|ansi graphic renditions; assuming terminal has dim; not bold:\
+ :mh=\E[2m:\
+ :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p5%t2;%;m:tc=ansi+sgr:tc=ansi+sgrso:tc=ansi+sgrul:
+ansi+pp|ansi printer port:\
+ :pf=\E[4i:po=\E[5i:ps=\E[0i:
+ansi+csr|ansi scroll-region plus cursor save & restore:\
+ :cs=\E[%i%d;%dr:rc=\E8:sc=\E7:
+
+# The IBM PC alternate character set. Plug this into any Intel console entry.
+# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
+# ROM graphics for control characters such as the diamond, up- and down-arrow.
+# This works with the System V, Linux, and BSDI consoles. It's a safe bet this
+# will work with any Intel console, they all seem to have inherited \E[11m
+# from the ANSI.SYS de-facto standard.
+klone+acs|alternate character set for ansi.sys displays:\
+ :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
+ :ae=\E[10m:as=\E[11m:
+
+# Highlight controls corresponding to the ANSI.SYS standard. Most
+# console drivers for Intel boxes obey these. Makes the same assumption
+# about \E[11m as klone+acs. True ANSI/ECMA-48 would have :se=\E[27m:,
+# :ue=\E[24m:, but this isn't a documented feature of ANSI.SYS.
+klone+sgr|attribute control for ansi.sys displays:\
+ :S2=\E[11m:S3=\E[10m:mb=\E[5m:md=\E[1m:me=\E[0;10m:\
+ :mk=\E[8m:mr=\E[7m:\
+ :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:\
+ :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\
+ :tc=klone+acs:
+
+# Highlight controls corresponding to the ANSI.SYS standard. *All*
+# console drivers for Intel boxes obey these. Does not assume \E[11m will
+# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
+# diamond and arrow characters under curses.
+klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m):\
+ :as=\E[12m:mb=\E[5m:md=\E[1m:me=\E[0;10m:mk=\E[8m:\
+ :mr=\E[7m:\
+ :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m:\
+ :se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:\
+ :tc=klone+acs:
+
+# KOI8-R (RFC1489) acs (alternate character set)
+# From: Qing Long <qinglong@Bolizm.ihep.su>, 24 Feb 1996.
+klone+koi8acs|alternate character set for ansi.sys displays with KOI8 charset:\
+ :ac=+\020\054\021-\036.^_0\215`\004a\237f\234g\232h\222i\220j\205k\203l\202m\204n\212o\213p\216q\0r\217s\214t\206u\207v\210w\211x\201y\230z\231{\267|\274}L~\225:\
+ :ae=\E[10m:as=\E[11m:
+
+# ANSI.SYS color control. The setab/setaf caps depend on the coincidence
+# between SVr4/XPG4's color numbers and ANSI.SYS attributes. Here are longer
+# but equivalent strings that don't rely on that coincidence:
+# setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+# setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
+# They match a subset of ECMA-48.
+klone+color|color control for ansi.sys and ISO6429-compatible displays:\
+ :Co#8:NC#3:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[37;40m:
+
+# This is better than klone+color, it doesn't assume white-on-black as the
+# default color pair, but many `ANSI' terminals don't grok the <op> cap.
+ecma+color|color control for ECMA-48-compatible terminals:\
+ :Co#8:NC#3:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[39;49m:
+
+# Attribute control for ECMA-48-compatible terminals
+ecma+sgr|attribute capabilities for true ECMA-48 terminals:\
+ :se=\E[27m:ue=\E[24m:\
+ :tc=klone+sgr:
+
+# For comparison, here are all the capabilities implied by the Intel
+# Binary Compatibility Standard (level 2) that fit within terminfo.
+# For more detail on this rather pathetic standard, see the comments
+# near the end of this file.
+ibcs2|Intel Binary Compatibility Standard prescriptions:\
+ :AL=\E[%dL:DC=\E[%dP:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RA=\E[?7l:RI=\E[%dC:S1=\E=%p1%dg:SA=\E[?7h:SF=\E[%dS:\
+ :SR=\E[%dT:UP=\E[%dA:bt=\E[Z:ch=\E[%i%dG:cl=\Ec:\
+ :cm=\E[%i%d;%dH:ct=\E[g:cv=\E[%i%dd:ec=\E[%dX:ei=:im=:\
+ :rc=\E7:sc=\E7:st=\EH:
+
+#### ANSI/ECMA-48 terminals and terminal emulators
+#
+# See near the end of this file for details on ANSI conformance.
+# Don't mess with these entries! Lots of other entries depend on them!
+#
+# This section lists entries in a least-capable to most-capable order.
+# if you're in doubt about what `ANSI' matches yours, try them in that
+# order and back off from the first that breaks.
+
+# ansi-mr is for ANSI terminals with ONLY relative cursor addressing
+# and more than one page of memory. It uses local motions instead of
+# direct cursor addressing, and makes almost no assumptions. It does
+# assume auto margins, no padding and/or xon/xoff, and a 24x80 screen.
+ansi-mr|mem rel cup ansi:\
+ :am:xo:\
+ :co#80:li#24:tc=vanilla:tc=ansi+erase:tc=ansi+local1:
+
+# ansi-mini is a bare minimum ANSI terminal. This should work on anything, but
+# beware of screen size problems and memory relative cursor addressing.
+ansi-mini|minimum ansi standard terminal:\
+ :am:xo:\
+ :co#80:li#24:tc=vanilla:tc=ansi+cup:tc=ansi+erase:
+
+# ansi-mtabs adds relative addressing and minimal tab support
+ansi-mtabs|any ansi terminal with pessimistic assumptions:\
+ :it#8:\
+ :ta=^I:tc=ansi+local1:tc=ansi-mini:
+
+# ANSI X3.64 from emory!mlhhh (Hugh Hansard) via BRL
+#
+# The following is an entry for the full ANSI 3.64 (1977). It lacks
+# padding, but most terminals using the standard are "fast" enough
+# not to require any -- even at 9600 bps. If you encounter problems,
+# try including the padding specifications.
+#
+# Note: the :as: and :ae: specifications are not implemented here, for
+# the available termcap documentation does not make clear WHICH alternate
+# character set to specify. ANSI 3.64 seems to make allowances for several.
+# Please make the appropriate adjustments to fit your needs -- that is
+# if you will be using alternate character sets.
+#
+# There are very few terminals running the full ANSI 3.64 standard,
+# so I could only test this entry on one verified terminal (Visual 102).
+# I would appreciate the results on other terminals sent to me.
+#
+# Please report comments, changes, and problems to:
+#
+# U.S. MAIL: Hugh Hansard
+# Box: 22830
+# Emory University
+# Atlanta, GA. 30322.
+#
+# USENET {akgua,msdc,sb1,sb6,gatech}!emory!mlhhh.
+#
+# (Added vt100 :rc:,:sc: to quiet a tic warning --esr)
+ansi77|ansi 3.64 standard 1977 version:\
+ :am:bs:mi:\
+ :co#80:it#8:li#24:\
+ :al=5*\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=5*\E[M:\
+ :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOR:k4=\EOS:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
+ :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+
+# Procomm and some other ANSI emulations don't recognize all of the ANSI-
+# standard capabilities. This entry deletes :UP:, :RI:, :DO:, :LE:, and
+# <vpa>/<hpa> capabilities, forcing curses to use repetitions of :up:,
+# :nd:, :do: and :le:. Also deleted :IC: and :ic:, as QModem up to
+# 5.03 doesn't recognize these. Finally, we delete :rp: and :sr:, which seem
+# to confuse many emulators. On the other hand, we can count on these programs
+# doing :ae:/:as:/:sa:. Older versions of this entry featured
+# <invis=\E[9m>, but <invis=\E[8m> now seems to be more common under
+# ANSI.SYS influence.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Oct 30 1995
+pcansi-m|pcansi-mono|ibm-pc terminal programs claiming to be ansi (mono mode):\
+ :am:bs:mi:ms:\
+ :co#80:it#8:li#24:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ho=\E[H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=\E[D:nd=\E[C:sf=^J:st=\EH:ta=^I:up=\E[A:\
+ :tc=klone+sgr-dumb:
+pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode):\
+ :li#25:tc=pcansi-m:
+pcansi-33-m|pcansi33m|ibm-pc terminal programs with 33 lines (mono mode):\
+ :li#33:tc=pcansi-m:
+pcansi-43-m|ansi43m|ibm-pc terminal programs with 43 lines (mono mode):\
+ :li#43:tc=pcansi-m:
+# The color versions. All PC emulators do color...
+pcansi|ibm-pc terminal programs claiming to be ansi:\
+ :tc=klone+color:tc=pcansi-m:
+pcansi-25|pcansi25|ibm-pc terminal programs with 25 lines:\
+ :li#25:tc=pcansi:
+pcansi-33|pcansi33|ibm-pc terminal programs with 33 lines:\
+ :li#33:tc=pcansi:
+pcansi-43|pcansi43|ibm-pc terminal programs with 43 lines:\
+ :li#43:tc=pcansi:
+
+# ansi-m -- full ANSI X3.64 with ANSI.SYS-compatible attributes, no color.
+# If you want pound signs rather than dollars, replace `B' with `A'
+# in the <s0ds>, <s1ds>, <s2ds>, and <s3ds> capabilities.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
+ansi-m|ansi-mono|ANSI X3.64-1979 terminal with ANSI.SYS compatible attributes:\
+ :5i:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :cb=\E[1K:ch=\E[%i%dG:ct=\E[2g:cv=\E[%i%dd:ec=\E[%dX:ei=:\
+ :im=:kB=\E[Z:kI=\E[L:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :nw=\r\E[S:pf=\E[4i:po=\E[5i:..rp=%p1%c\E[%p2%{1}%-%db:\
+ :s0=\E(B:s1=\E)B:s2=\E*B:s3=\E+B:ta=\E[I:\
+ :tc=pcansi-m:
+
+# ansi -- this terminfo expresses the largest subset of X3.64 that will fit in
+# standard terminfo. Assumes ANSI.SYS-compatible attributes and color.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 6 1995
+ansi|ansi/pc-term compatible with color:\
+ :u6=\E[%i%d;%dR:u7=\E[6n:..u8=\E[?%[;0123456789]c:\
+ :u9=\E[c:\
+ :tc=ecma+color:tc=klone+sgr:tc=ansi-m:
+
+# ansi-generic is a vanilla ANSI terminal. This is assumed to implement
+# all the normal ANSI stuff with no extensions. It assumes
+# insert/delete line/char is there, so it won't work with
+# vt100 clones. It assumes video attributes for bold, blink,
+# underline, and reverse, which won't matter much if the terminal
+# can't do some of those. Padding is assumed to be zero, which
+# shouldn't hurt since xon/xoff is assumed.
+ansi-generic|generic ansi standard terminal:\
+ :am:xo:\
+ :co#80:li#24:tc=vanilla:tc=ansi+csr:tc=ansi+cup:\
+ :tc=ansi+rca:tc=ansi+erase:tc=ansi+tabs:tc=ansi+local:\
+ :tc=ansi+idc:tc=ansi+idl:tc=ansi+rep:tc=ansi+sgrbold:\
+ :tc=ansi+arrows:
+
+#### Linux consoles
+#
+
+# This entry is good for the 1.2.13 or later version of the Linux console.
+#
+# ***************************************************************************
+# * *
+# * WARNING: *
+# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
+# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
+# * character. Here are the keymap replacement lines that will set this up: *
+# * *
+# keycode 15 = Tab Tab
+# alt keycode 15 = Meta_Tab
+# shift keycode 15 = F26
+# string F26 ="\033[Z"
+# * *
+# * This has to use a key slot which is unfortunate (any unused one will *
+# * do, F26 is the higher-numbered one). The change ought to be built *
+# * into the kernel tables. *
+# * *
+# ***************************************************************************
+#
+# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
+# and it matters, turn off <ccc>. The %02x escape used to implement this is
+# not back-portable to SV curses and not supported in ncurses versions before
+# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
+# themselves; this entry assumes that capability.
+#
+# This entry is good for the 1.2.13 or later version of the Linux console.
+#
+# ***************************************************************************
+# * *
+# * WARNING: *
+# * Linuxes come with a default keyboard mapping kcbt=^I. This entry, in *
+# * response to user requests, assumes kcbt=\E[Z, the ANSI/ECMA reverse-tab *
+# * character. Here are the keymap replacement lines that will set this up: *
+# * *
+# keycode 15 = Tab Tab
+# alt keycode 15 = Meta_Tab
+# shift keycode 15 = F26
+# string F26 ="\033[Z"
+# * *
+# * This has to use a key slot which is unfortunate (any unused one will *
+# * do, F26 is the higher-numbered one). The change ought to be built *
+# * into the kernel tables. *
+# * *
+# ***************************************************************************
+#
+# The 1.3.x kernels add color-change capabilities; if yours doesn't have this
+# and it matters, turn off <ccc>. The %02x escape used to implement this is
+# not back-portable to SV curses and not supported in ncurses versions before
+# 1.9.9. All linux kernels since 1.2.13 (at least) set the screen size
+# themselves; this entry assumes that capability.
+#
+# The 2.2.x kernels add a private mode that sets the cursor type; use that to
+# get a block cursor for cvvis.
+# reported by Frank Heckenbach <frank@g-n-u.de>.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+linux|linux console:\
+ :am:eo:mi:ms:xn:xo:\
+ :it#8:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:K2=\E[G:al=\E[L:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[[A:k2=\E[[B:\
+ :k3=\E[[C:k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
+ :k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:\
+ :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mh=\E[2m:\
+ :mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[27m:sf=^J:\
+ :sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=200\E[?5h\E[?5l:ve=\E[?25h\E[?0c:vi=\E[?25l\E[?1c:\
+ :vs=\E[?25h\E[?8c:\
+ :tc=klone+sgr:tc=ecma+color:
+linux-m|Linux console no color:\
+ :Co@:pa@:\
+ :AB@:AF@:Sb@:Sf@:tc=linux:
+linux-c-nc|linux console 1.3.x hack for ncurses only:\
+ :cc:\
+ :..Ic=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x:\
+ :oc=\E]R:\
+ :tc=linux:
+# From: Dennis Henriksen <opus@osrl.dk>, 9 July 1996
+linux-c|linux console 1.3.6+ with private palette for each virtual console:\
+ :cc:\
+ :Co#8:pa#64:\
+ :..Ic=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p3%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p4%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;:\
+ :oc=\E]R:\
+ :tc=linux:
+
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+linux-nic|linux with ich/ich1 suppressed for non-curses programs:\
+ :IC@:ei=:ic@:im=:\
+ :tc=linux:
+
+# This assumes you have used setfont(8) to load one of the Linux koi8-r fonts.
+# acsc entry from Pavel Roskin" <pavel@absolute.spb.su>, 29 Sep 1997.
+linux-koi8|linux with koi8 alternate character set:\
+ :ac=+\020\054\021-\030.^Y0\215`\004a\221f\234g\237h\220i\276j\205k\203l\202m\204n\212o~p\0q\0r\0s_t\206u\207v\211w\210x\201y\230z\231{\267|\274~\224:tc=linux:\
+ :tc=klone+koi8acs:
+
+# Another entry for KOI8-r with Qing Long's acsc.
+# (which one better complies with the standard?)
+linux-koi8r|linux with koi8-r alternate character set:\
+ :tc=linux:tc=klone+koi8acs:
+
+# Entry for the latin1 and latin2 fonts
+linux-lat|linux with latin1 or latin2 alternate character set:\
+ :ac=+\020\054\021-\030.^Y0\333`\004a\013f\370g\361h\260i\316j\211k\214l\206m\203n\305o~p\304q\212r\304s_t\207u\215v\301w\302x\205y\363z\362{\343|\330}\234~\376:\
+ :tc=linux:
+
+#### NetBSD consoles
+#
+# pcvt termcap database entries (corresponding to release 3.31)
+# Author's last edit-date: [Fri Sep 15 20:29:10 1995]
+#
+# (For the terminfo master file, I translated these into terminfo syntax.
+# Then I dropped all the pseudo-HP entries. we don't want and can't use
+# the :Xs: flag. Then I split :is: into a size-independent :i1: and a
+# size-dependent :is:. Finally, I added <rmam>/<smam> -- esr)
+
+# NOTE: :ic: has been taken out of this entry. for reference, it should
+# be <ich1=\E[@>. For discussion, see ICH/ICH1 VERSUS RMIR/SMIR below.
+# (esr: added :vi: and :ve: to resolve NetBSD Problem Report #4583)
+pcvtXX|pcvt vt200 emulator (DEC VT220):\
+ :am:km:mi:ms:xn:\
+ :it#8:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\
+ :SR=\E[%dT:UP=\E[%dA:\
+ :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
+ :i1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:im=\E[4h:\
+ :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
+ :k6=\E[23~:k7=\E[24~:k8=\E[25~:kD=\E[3~:kH=\E[4~:kI=\E[2~:\
+ :kN=\E[6~:kP=\E[5~:kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\
+ :r1=\Ec\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :ve=\E[?25h:vi=\E[?25l:
+
+# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+# 50 lines entries; 80 columns
+pcvt25|dec vt220 emulation with 25 lines:\
+ :co#80:li#25:\
+ :is=\E[1;25r\E[25;1H:tc=pcvtXX:
+pcvt28|dec vt220 emulation with 28 lines:\
+ :co#80:li#28:\
+ :is=\E[1;28r\E[28;1H:tc=pcvtXX:
+pcvt35|dec vt220 emulation with 35 lines:\
+ :co#80:li#35:\
+ :is=\E[1;35r\E[35;1H:tc=pcvtXX:
+pcvt40|dec vt220 emulation with 40 lines:\
+ :co#80:li#40:\
+ :is=\E[1;40r\E[40;1H:tc=pcvtXX:
+pcvt43|dec vt220 emulation with 43 lines:\
+ :co#80:li#43:\
+ :is=\E[1;43r\E[43;1H:tc=pcvtXX:
+pcvt50|dec vt220 emulation with 50 lines:\
+ :co#80:li#50:\
+ :is=\E[1;50r\E[50;1H:tc=pcvtXX:
+
+# NetBSD/FreeBSD vt220 terminal emulator console (pc keyboard & monitor)
+# termcap entries for pure VT220-Emulation and 25, 28, 35, 40, 43 and
+# 50 lines entries; 132 columns
+pcvt25w|dec vt220 emulation with 25 lines and 132 cols:\
+ :co#132:li#25:\
+ :is=\E[1;25r\E[25;1H:tc=pcvtXX:
+pcvt28w|dec vt220 emulation with 28 lines and 132 cols:\
+ :co#132:li#28:\
+ :is=\E[1;28r\E[28;1H:tc=pcvtXX:
+pcvt35w|dec vt220 emulation with 35 lines and 132 cols:\
+ :co#132:li#35:\
+ :is=\E[1;35r\E[35;1H:tc=pcvtXX:
+pcvt40w|dec vt220 emulation with 40 lines and 132 cols:\
+ :co#132:li#40:\
+ :is=\E[1;40r\E[40;1H:tc=pcvtXX:
+pcvt43w|dec vt220 emulation with 43 lines and 132 cols:\
+ :co#132:li#43:\
+ :is=\E[1;43r\E[43;1H:tc=pcvtXX:
+pcvt50w|dec vt220 emulation with 50 lines and 132 cols:\
+ :co#132:li#50:\
+ :is=\E[1;50r\E[50;1H:tc=pcvtXX:
+
+# Terminfo entries to enable the use of the ncurses library in colour on a
+# NetBSD-arm32 console (only tested on a RiscPC).
+# Created by Dave Millen <dmill@globalnet.co.uk> 22.07.98
+# modified codes for setf/setb to setaf/setab, then to klone+color, corrected
+# typo in invis - TD
+arm100|arm100-am|Arm(RiscPC) ncurses compatible (for 640x480):\
+ :am:ms:ut:xn:xo:\
+ :co#80:it#8:li#30:\
+ :@8=\E[M:DO=\E[%dB:K1=\E[q:K2=\E[r:K3=\E[s:K4=\E[p:K5=\E[n:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
+ :eA=\E(B\E)0:ho=\E[H:k0=\E[y:k1=\E[P:k2=\E[Q:k3=\E[R:\
+ :k4=\E[S:k5=\E[t:k6=\E[u:k7=\E[v:k8=\E[l:k9=\E[w:k;=\E[x:\
+ :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mk=\E[8m:\
+ :mr=\E[6m:nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:\
+ :tc=ecma+sgr:tc=klone+color:
+arm100-w|arm100-wam|Arm(RiscPC) ncurses compatible (for 1024x768):\
+ :co#132:li#50:tc=arm100:
+
+# NetBSD/x68k console vt200 emulator. This port runs on a 68K machine
+# manufactured by Sharp for the Japenese market.
+# From Minoura Makoto <minoura@netlaputa.or.jp>, 12 May 1996
+x68k|x68k-ite|NetBSD/x68k ITE:\
+ :co#96:li#32:\
+ :%1=\E[28~:kC=\E[9~:tc=vt220:
+
+# <tv@pobox.com>:
+# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
+#
+# (still unfinished, but good enough so far.)
+ofcons:\
+ :bw:\
+ :co#80:li#30:\
+ :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
+ :LE=\233%dD:RI=\233%dC:UP=\233%dA:al=\233L:bl=^G:cd=\233J:\
+ :ce=\233K:cl=^L:cm=\233%i%d;%dH:cr=^M:dc=\233P:dl=\233M:\
+ :do=\233B:ei=:ic=\233@:im=:k1=\2330P:k2=\2330Q:k3=\2330W:\
+ :k4=\2330x:k5=\2330t:k6=\2330u:k7=\2330q:k8=\2330r:\
+ :k9=\2330p:k;=\2330M:kD=\233P:kN=\233/:kP=\233?:kb=^H:\
+ :kd=\233B:kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\
+ :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\
+ :nd=\233C:nw=^M^J:se=\2330m:sf=^J:ta=^I:ue=\2330m:up=\233A:\
+ :vb=^G:
+
+# NetBSD "wscons" emulator in vt220 mode
+# These are micro-minimal and probably need to be redone for real
+# after the manner of the pcvt entries.
+wsvt25|NetBSD wscons in 25 line DEC VT220 mode:\
+ :co#80:li#25:tc=vt220:
+
+wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta:\
+ :km:\
+ :co#80:li#25:tc=vt220:
+
+# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
+# DECstation/pmax.
+rcons|BSD rasterconsole:\
+ :tc=sun-il:
+# Color version of above. Color currenly only provided by NetBSD.
+rcons-color|BSD rasterconsole with ANSI color:\
+ :ut:\
+ :Co#8:pa#64:\
+ :AB=\E[4%dm:AF=\E[3%dm:op=\E[m:tc=rcons:
+
+#### FreeBSD console entries
+#
+# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
+# Andrey Chernov maintains the FreeBSD termcap distributions.
+#
+# Note: Users of FreeBSD 2.1.0 and older versions must either upgrade
+# or comment out the :cb: capability in the console entry.
+#
+# Alexander Lukyanov reports:
+# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
+# Now el1 clears not only to the line beginning, but also a large chunk
+# of previous line. But there is another bug - ech does not work at all.
+#
+
+# for syscons
+# common entry without semigraphics
+# Bug: The <op> capability resets attributes.
+# Bug? The ech and el1 attributes appear to move the cursor in some cases; for
+# instance el1 does if the cursor is moved to the right margin first. Removed
+# by T.Dickey 97/5/3 (ech=\E[%p1%dX, el1=\E[1K)
+#
+# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
+# Note that this disables standout with color.
+cons25w|ansiw|ansi80x25-raw|freebsd console (25-line raw mode):\
+ :NP:am:bw:eo:ms:ut:\
+ :Co#8:NC#21:co#80:it#8:li#25:pa#64:\
+ :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:DC=\E[%dP:\
+ :DL=\E[%dM:DO=\E[%dB:F1=\E[W:F2=\E[X:IC=\E[%d@:K2=\E[E:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cv=\E[%i%dd:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:\
+ :k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:\
+ :k;=\E[V:kB=\E[Z:kD=\177:kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mh=\E[30;1m:mr=\E[7m:nd=\E[C:nw=\E[E:\
+ :op=\E[x:r1=\E[x\E[m\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:\
+ :ta=^I:up=\E[A:ve=\E[=0C:vs=\E[=1C:
+cons25|ansis|ansi80x25|freebsd console (25-line ansi mode):\
+ :ac=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371:\
+ :tc=cons25w:
+cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode):\
+ :Co@:pa@:\
+ :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25:
+cons30|ansi80x30|freebsd console (30-line ansi mode):\
+ :li#30:tc=cons25:
+cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode):\
+ :li#30:tc=cons25-m:
+cons43|ansi80x43|freebsd console (43-line ansi mode):\
+ :li#43:tc=cons25:
+cons43-m|ansi80x43-mono|freebsd console (43-line mono ansi mode):\
+ :li#43:tc=cons25-m:
+cons50|ansil|ansi80x50|freebsd console (50-line ansi mode):\
+ :li#50:tc=cons25:
+cons50-m|ansil-mono|ansi80x50-mono|freebsd console (50-line mono ansi mode):\
+ :li#50:tc=cons25-m:
+cons60|ansi80x60|freebsd console (60-line ansi mode):\
+ :li#60:tc=cons25:
+cons60-m|ansi80x60-mono|freebsd console (60-line mono ansi mode):\
+ :li#60:tc=cons25-m:
+cons25r|pc3r|ibmpc3r|cons25-koi8-r|freebsd console w/koi8-r cyrillic:\
+ :ac=-\030.^Y0\215`\004a\220f\234h\221i\025j\205k\203l\202m\204n\212q\0t\206u\207v\211w\210x\201y\230z\231~\225:\
+ :tc=cons25w:
+cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono):\
+ :Co@:pa@:\
+ :AB@:AF@:op@:ue=\E[m:us=\E[4m:tc=cons25r:
+cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines):\
+ :li#50:tc=cons25r:
+cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono):\
+ :li#50:tc=cons25r-m:
+cons60r|cons60-koi8r|freebsd console w/koi8-r cyrillic (60 lines):\
+ :li#60:tc=cons25r:
+cons60r-m|cons60-koi8r-m|freebsd console w/koi8-r cyrillic (60-line mono):\
+ :li#60:tc=cons25r-m:
+# ISO 8859-1 FreeBSD console
+cons25l1|cons25-iso8859|freebsd console w/iso 8859-1 chars:\
+ :ac=+\253\054\273-\030.\031`\201a\202f\207g\210i\247j\213k\214l\215m\216n\217o\220p\221q\222r\223s\224t\225u\226v\227w\230x\231y\232z\233~\237:\
+ :tc=cons25w:
+cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono):\
+ :Co@:pa@:\
+ :AB@:AF@:md@:mh@:op@:ue=\E[m:us=\E[4m:tc=cons25l1:
+cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines):\
+ :li#50:tc=cons25l1:
+cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono):\
+ :li#50:tc=cons25l1-m:
+cons60l1|cons60-iso|freebsd console w/iso 8859-1 chars (60 lines):\
+ :li#60:tc=cons25l1:
+cons60l1-m|cons60-iso-m|freebsd console w/iso 8859-1 chars (60-line mono):\
+ :li#60:tc=cons25l1-m:
+
+#### 386BSD and BSD/OS Consoles
+#
+
+# This was the original 386BSD console entry (I think).
+# Some places it's named oldpc3|oldibmpc3.
+# From: Alex R.N. Wetmore <aw2t@andrew.cmu.edu>
+origpc3|origibmpc3|IBM PC 386BSD Console:\
+ :am:bw:eo:xo:\
+ :co#80:li#25:\
+ :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
+ :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\
+ :kd=\E[B:kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[7m:\
+ :me=\E[m\E[1;0x\E[2;7x:nd=\E[C:se=\E[1;0x\E[2;7x:\
+ :sf=\E[S:so=\E[1;7x\E[2;0x:sr=\E[T:ue=\E[1;0x\E[2;7x:\
+ :up=\E[A:us=\E[1;7x\E[2;0x:
+
+# description of BSD/386 console emulator in version 1.0 (supplied by BSDI)
+oldpc3|oldibmpc3|old IBM PC BSD/386 Console:\
+ :km:\
+ :li#25:\
+ :al=\E[L:bl=^G:cr=^M:dl=\E[M:do=^J:kH=\E[F:kI=\E[L:kN=\E[G:\
+ :kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :md=\E[=15F:me=\E[=R:mh=\E[=8F:nw=^M^J:sf=^J:ta=^I:
+
+# Description of BSD/OS console emulator in version 1.1, 2.0, 2.1
+# Note, the emulator supports many of the additional console features
+# listed in the iBCS2 (e.g. character-set selection) though not all
+# are described here. This entry really ought to be upgraded.
+# Also note, the console will also work with fewer lines after doing
+# "stty rows NN", e.g. to use 24 lines.
+# (Color support from Kevin Rosenberg <kevin@cyberport.com>, 2 May 1996)
+# Bug: The <op> capability resets attributes.
+bsdos-pc-nobold|BSD/OS PC console w/o bold:\
+ :am:eo:km:xo:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\
+ :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:kH=\E[F:\
+ :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:rc=\E8:\
+ :..sa=\E[0;10%?%p1%t;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m%?%p5%t\E[=8F%;:\
+ :sc=\E7:sf=^J:ta=^I:up=\E[A:\
+ :tc=klone+sgr:tc=klone+color:
+bsdos-pc|IBM PC BSD/OS Console:\
+ :..sa=\E[0;10%?%p1%t;7%;%?%p2%t;1%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m:tc=bsdos-pc-nobold:
+
+# Old names for BSD/OS PC console used in releases before 4.1.
+pc3|BSD/OS on the PC Console:\
+ :tc=bsdos-pc-nobold:
+ibmpc3|pc3-bold|BSD/OS on the PC Console with bold instead of underline:\
+ :tc=bsdos-pc:
+
+# BSD/OS on the SPARC
+bsdos-sparc|Sun SPARC BSD/OS Console:\
+ :tc=sun:
+
+# BSD/OS on the PowerPC
+bsdos-ppc|PowerPC BSD/OS Console:\
+ :tc=bsdos-pc:
+
+#### DEC VT100 and compatibles
+#
+# DEC terminals from the vt100 forward are collected here. Older DEC terminals
+# and micro consoles can be found in the `obsolete' section. More details on
+# the relationship between the VT100 and ANSI X3.64/ISO 6429/ECMA-48 may be
+# found near the end of this file.
+#
+# Except where noted, these entries are DEC's official terminfos.
+# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
+# Engineering for more information. Updated terminfos and termcaps
+# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+#
+# In October 1995 DEC sold its terminals business, including the VT and Dorio
+# line and trademark, to SunRiver Data Systems. SunRiver has since changed
+# its name to Boundless Technologies; see http://www.boundless.com.
+#
+
+# NOTE: Any VT100 emulation, whether in hardware or software, almost
+# certainly includes what DEC called the `Level 1 editing extension' codes;
+# only the very oldest VT100s lacked these and there probably aren't any of
+# those left alive. To capture these, use one of the VT102 entries.
+#
+# Note that the :xn: glitch in vt100 is not quite the same as on the Concept,
+# since the cursor is left in a different position while in the
+# weird state (concept at beginning of next line, vt100 at end
+# of this line) so all versions of vi before 3.7 don't handle
+# :xn: right on vt100. The correct way to handle :xn: is when
+# you output the char in column 80, immediately output CR LF
+# and then assume you are in column 1 of the next line. If :xn:
+# is on, am should be on too.
+#
+# I assume you have smooth scroll off or are at a slow enough baud
+# rate that it doesn't matter (1200? or less). Also this assumes
+# that you set auto-nl to "on", if you set it off use vt100-nam
+# below.
+#
+# The padding requirements listed here are guesses. It is strongly
+# recommended that xon/xoff be enabled, as this is assumed here.
+#
+# The vt100 uses <rs2> and <rf> rather than :is:/:ct:/:st: because the
+# tab settings are in non-volatile memory and don't need to be
+# reset upon login. Also setting the number of columns glitches
+# the screen annoyingly. You can type "reset" to get them set.
+#
+# The VT100 series terminals have cursor ("arrows") keys which can operate
+# in two different modes: Cursor Mode and Application Mode. Cursor Mode
+# is the reset state, and is assumed to be the normal state. Application
+# Mode is the "set" state. In Cursor Mode, the cursor keys transmit
+# "Esc [ {code}" sequences, conforming to ANSI standards. In Application
+# Mode, the cursor keys transmit "Esc O <code>" sequences. Application Mode
+# was provided primarily as an aid to the porting of VT52 applications. It is
+# assumed that the cursor keys are normally in Cursor Mode, and expected that
+# applications such as vi will always transmit the :ks: string. Therefore,
+# the definitions for the cursor keys are made to match what the terminal
+# transmits after the :ks: string is transmitted. If the :ks: string
+# is a null string or is not defined, then cursor keys are assumed to be in
+# "Cursor Mode", and the cursor keys definitions should match that assumption,
+# else the appication may fail. It is also expected that applications will
+# always transmit the :ke: string to the terminal before they exit.
+#
+# The VT100 series terminals have an auxilliary keypad, commonly referred to as
+# the "Numeric Keypad", because it is a cluster of numeric and function keys.
+# The Numeric Keypad which can operate in two different modes: Numeric Mode and
+# Application Mode. Numeric Mode is the reset state, and is assumed to be
+# the normal state. Application Mode is the "set" state. In Numeric Mode,
+# the numeric and punctuation keys transmit ASCII 7-bit characters, and the
+# Enter key transmits the same as the Return key (Note: the Return key
+# can be configured to send either LF (\015) or CR LF). In Application Mode,
+# all the keypad keys transmit "Esc O {code}" sequences. The PF1 - PF4 keys
+# always send the same "Esc O {code}" sequences. It is assumed that the keypad
+# is normally in Numeric Mode. If an application requires that the keypad be
+# in Application Mode then it is expected that the user, or the application,
+# will set the TERM environment variable to point to a terminfo entry which has
+# defined the :ks: string to include the codes that switch the keypad into
+# Application Mode, and the terminfo entry will also define function key
+# fields to match the Application Mode control codes. If the :ks: string
+# is a null string or is not defined, then the keypad is assumed to be in
+# Numeric Mode. If the :ks: string switches the keypad into Application
+# Mode, it is expected that the :ke: string will contain the control codes
+# necessary to reset the keypad to "Normal" mode, and it is also expected that
+# applications which transmit the :ks: string will also always transmit the
+# :ke: string to the terminal before they exit.
+#
+# Here's a diagram of the VT100 keypad keys with their bindings.
+# The top line is the name of the key (some DEC keyboards have the keys
+# labelled somewhat differently, like GOLD instead of PF1, but this is
+# the most "official" name). The second line is the escape sequence it
+# generates in Application Keypad mode (where "$" means the ESC
+# character). The third line contains two items, first the mapping of
+# the key in terminfo, and then in termcap.
+# _______________________________________
+# | PF1 | PF2 | PF3 | PF4 |
+# | $OP | $OQ | $OR | $OS |
+# |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
+# | 7 8 9 - |
+# | $Ow | $Ox | $Oy | $Om |
+# |_kf9__k9_|_kf10_k;_|_kf0__k0_|_________|
+# | 4 | 5 | 6 | , |
+# | $Ot | $Ou | $Ov | $Ol |
+# |_kf5__k5_|_kf6__k6_|_kf7__k7_|_kf8__k8_|
+# | 1 | 2 | 3 | |
+# | $Oq | $Or | $Os | enter |
+# |_ka1__K1_|_kb2__K2_|_ka3__K3_| $OM |
+# | 0 | . | |
+# | $Op | $On | |
+# |___kc1_______K4____|_kc3__K5_|_kent_@8_|
+#
+# And here, for those of you with orphaned VT100s lacking documentation, is
+# a description of the soft switches invoked when you do `Set Up'.
+#
+# Scroll 0-Jump Shifted 3 0-#
+# | 1-Smooth | 1-British pound sign
+# | Autorepeat 0-Off | Wrap Around 0-Off
+# | | 1-On | | 1-On
+# | | Screen 0-Dark Bkg | | New Line 0-Off
+# | | | 1-Light Bkg | | | 1-On
+# | | | Cursor 0-Underline | | | Interlace 0-Off
+# | | | | 1-Block | | | | 1-On
+# | | | | | | | |
+# 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 <--Standard Settings
+# | | | | | | | |
+# | | | Auto XON/XOFF 0-Off | | | Power 0-60 Hz
+# | | | 1-On | | | 1-50 Hz
+# | | Ansi/VT52 0-VT52 | | Bits Per Char. 0-7 Bits
+# | | 1-ANSI | | 1-8 Bits
+# | Keyclick 0-Off | Parity 0-Off
+# | 1-On | 1-On
+# Margin Bell 0-Off Parity Sense 0-Odd
+# 1-On 1-Even
+#
+# The following SET-UP modes are assumed for normal operation:
+# ANSI_MODE AUTO_XON/XOFF_ON NEWLINE_OFF 80_COLUMNS
+# WRAP_AROUND_ON JUMP_SCROLL_OFF
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements; I recommend
+# AUTOREPEAT_ON BLOCK_CURSOR MARGIN_BELL_OFF SHIFTED_3_#
+# Unless you have a graphics add-on such as Digital Engineering's VT640
+# (and even then, whenever it can be arranged!) you should set
+# INTERLACE_OFF
+#
+# (vt100: I added <rmam>/<smam> based on the init string, also :bs:. -- esr)
+vt100|vt100-am|dec vt100 (w/advanced video):\
+ :am:bs:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
+ :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
+ :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+vt100nam|vt100-nam|vt100 no automargins:\
+ :am@:xn@:tc=vt100-am:
+vt100-vb|dec vt100 (w/advanced video) & no beep:\
+ :bl@:vb=\E[?5h\E[?5l:tc=vt100:
+
+# Ordinary vt100 in 132 column ("wide") mode.
+vt100-w|vt100-w-am|dec vt100 132 cols (w/advanced video):\
+ :co#132:li#24:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-am:
+vt100-w-nam|vt100-nam-w|dec vt100 132 cols (w/advanced video no automargin):\
+ :co#132:li#14:vt@:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=vt100-nam:
+
+# vt100 with no advanced video.
+vt100-nav|vt100 without advanced video option:\
+ :sg#1:\
+ :mb@:md@:me@:mr@:sa@:se=\E[m:so=\E[7m:ue@:us@:tc=vt100:
+vt100-nav-w|vt100-w-nav|dec vt100 132 cols 14 lines (no advanced video option):\
+ :co#132:li#14:tc=vt100-nav:
+
+# vt100 with one of the 24 lines used as a status line.
+# We put the status line on the top.
+vt100-s|vt100-s-top|vt100-top-s|vt100 for use with top sysline:\
+ :es:hs:\
+ :li#23:\
+ :cl=\E[2;1H\E[J:cm=\E[%i%+^A;%dH:cs=\E[%i%i%d;%dr:\
+ :ds=\E7\E[1;24r\E8:fs=\E8:ho=\E[2;1H:is=\E7\E[2;24r\E8:\
+ :ts=\E7\E[1;%p1%dH\E[1K:\
+ :tc=vt100-am:
+
+# Status line at bottom.
+# Clearing the screen will clobber status line.
+vt100-s-bot|vt100-bot-s|vt100 for use with bottom sysline:\
+ :es:hs:\
+ :li#23:\
+ :ds=\E7\E[1;24r\E8:fs=\E8:is=\E[1;23r\E[23;1H:\
+ :ts=\E7\E[24;%p1%dH\E[1K:\
+ :tc=vt100-am:
+
+# Most of the `vt100' emulators out there actually emulate a vt102
+# This entry (or vt102-nsgr) is probably the right thing to use for
+# these.
+vt102|dec vt102:\
+ :mi:\
+ :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:tc=vt100:
+vt102-w|dec vt102 in wide mode:\
+ :co#132:\
+ :r3=\E[?3h:tc=vt102:
+
+# Many brain-dead PC comm programs that pretend to be `vt100-compatible'
+# fail to interpret the ^O and ^N escapes properly. Symptom: the :me:
+# string in the canonical vt100 entry above leaves the screen littered
+# with little snowflake or star characters (IBM PC ROM character \017 = ^O)
+# after highlight turnoffs. This entry should fix that, and even leave
+# ACS support working, at the cost of making multiple-highlight changes
+# slightly more expensive.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995
+vt102-nsgr|vt102 no sgr (use if you see snowflakes after highlight changes):\
+ :me=\E[m:sa@:\
+ :tc=vt102:
+
+# VT125 Graphics CRT. Clear screen also erases graphics
+vt125|vt125 graphics terminal:\
+ :cl=\E[H\E[2J\EPpS(E)\E\:tc=vt100:
+
+# This isn't a DEC entry, it came from University of Wisconsin.
+# (vt131: I added <rmam>/<smam> based on the init string, also :bs: -- esr)
+vt131|dec vt131:\
+ :am:bs:xn:\
+ :co#80:it#8:li#24:vt#3:\
+ :RA=\E[?7h:SA=\E[?7h:bl=^G:cd=50\E[J:ce=3\E[K:\
+ :cl=50\E[;H\E[2J:cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :do=^J:ho=\E[H:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:\
+ :me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=^M^J:\
+ :r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
+ :se=2\E[m:so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:\
+ :us=2\E[4m:
+
+# vt132 - like vt100 but slower and has ins/del line and such.
+# I'm told that :im:/:ei: are backwards in the terminal from the
+# manual and from the ANSI standard, this describes the actual
+# terminal. I've never actually used a vt132 myself, so this
+# is untested.
+#
+vt132|DEC vt132:\
+ :xn:\
+ :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4h:im=\E[4l:ip=:sf=\n:tc=vt100:
+
+# This vt220 description maps F5--F9 to the second block of function keys
+# at the top of the keyboard. The "DO" key is used as F10 to avoid conflict
+# with the key marked (ESC) on the vt220. See vt220d for an alternate mapping.
+# PF1--PF4 are used as F1--F4.
+#
+vt220-old|vt200-old|DEC VT220 in vt100 emulation mode:\
+ :am:bs:mi:pt:xn:xo:\
+ :co#80:li#24:vt#3:\
+ :@7=\E[4~:RA=\E[?7l:SA=\E[?7h:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
+ :if=/usr/share/tabset/vt100:im=\E[4h:\
+ :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\
+ :k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\
+ :kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :rf=/usr/share/tabset/vt100:\
+ :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\
+ :sc=\E7:se=\E[27m:sf=20\ED:so=\E[7m:sr=14\EM:ta=^I:\
+ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
+
+# A much better description of the VT200/220; used to be vt220-8
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vt220|vt200|dec vt220:\
+ :am:bs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\
+ :is=\E[?7h\E[>\E[?1h\E F\E[?4l:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:\
+ :kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
+ :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:
+vt220-w|vt200-w|DEC vt220 in wide mode:\
+ :co#132:\
+ :r3=\E[?3h:tc=vt220:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vt220-8bit|vt220-8|vt200-8bit|vt200-8|dec vt220/200 in 8-bit mode:\
+ :am:bs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
+ :LE=\233%dD:RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:\
+ :bl=^G:cd=\233J:ce=\233K:cl=\233H\233J:cm=\233%i%d;%dH:\
+ :cr=^M:cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\
+ :ec=\233%dX:ei=\2334l:ho=\233H:\
+ :if=/usr/share/tabset/vt100:im=\2334h:\
+ :is=\233?7h\233>\233?1h\E F\233?4l:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:k8=\23319~:\
+ :k9=\23320~:kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\233B:\
+ :kh=\233H:kl=\233D:kr=\233C:ku=\233A:le=^H:mb=\2335m:\
+ :md=\2331m:me=\233m:mr=\2337m:nd=\233C:nw=\EE:rc=\E8:\
+ :sc=\E7:se=\23327m:sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\23324m:up=\233A:us=\2334m:vb=\233?5h\233?5l:
+
+#
+# vt220d:
+# This vt220 description regards F6--F10 as the second block of function keys
+# at the top of the keyboard. This mapping follows the description given
+# in the VT220 Programmer Reference Manual and agrees with the labeling
+# on some terminals that emulate the vt220. There is no support for an F5.
+# See vt220 for an alternate mapping.
+#
+vt220d|DEC VT220 in vt100 mode with DEC function key labeling:\
+ :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
+ :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:k5@:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
+ :tc=vt220-old:
+
+vt220-nam|v200-nam|VT220 in vt100 mode with no auto margins:\
+ :am@:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220:
+
+# vt220 termcap written Tue Oct 25 20:41:10 1988 by Alex Latzko
+# (not an official DEC entry!)
+# The problem with real vt220 terminals is they don't send escapes when in
+# in vt220 mode. This can be gotten around two ways. 1> don't send
+# escapes or 2> put the vt220 into vt100 mode and use all the nifty
+# features of vt100 advanced video which it then has.
+#
+# This entry takes the view of putting a vt220 into vt100 mode so
+# you can use the escape key in emacs and everything else which needs it.
+#
+# You probably don't want to use this on a VMS machine since VMS will think
+# it has a vt220 and will get fouled up coming out of emacs
+#
+# From: Alexander Latzko <latzko@marsenius.rutgers.edu>, 30 Dec 1996
+# (Added vt100 :rc:,:sc: to quiet a tic warning -- esr)
+vt200-js|vt220-js|dec vt200 series with jump scroll:\
+ :am:\
+ :co#80:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:dm=:do=^J:ed=:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E[61"p\E[H\E[?3l\E[?4l\E[?1l\E[?5l\E[?6l\E[?7h\E[?8h\E[?25h\E>\E[m:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
+ :nw=^M\ED:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :rf=/usr/lib/tabset/vt100:sc=\E7:se=5\E[27m:sf=\ED:\
+ :so=5\E[7m:sr=\EM:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:
+
+
+# This was DEC's vt320. Use the purpose-built one below instead
+#vt320|DEC VT320 in vt100 emulation mode,
+# use=vt220,
+
+#
+# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
+#
+vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode:\
+ :am@:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h:tc=vt220:
+
+# These entries are not DEC's official ones, they were purpose-built for the
+# VT320. Here are the designer's notes:
+# <kel> is end on a PC kbd. Actually 'select' on a VT. Mapped to
+# 'Erase to End of Field'... since nothing seems to use 'end' anyways...
+# khome is Home on a PC kbd. Actually 'FIND' on a VT.
+# Things that use <knxt> usually use tab anyways... and things that don't use
+# tab usually use <knxt> instead...
+# kprv is same as tab - Backtab is useless...
+# I left out :sa: because of its RIDICULOUS complexity,
+# and the resulting fact that it causes the termcap translation of the entry
+# to SMASH the 1k-barrier...
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+# (vt320: uncommented :fs:, comnmmented out <kslt> to avoid a conflict --esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vt320|vt300|dec vt320 7 bit terminal:\
+ :am:es:hs:mi:ms:xn:\
+ :co#80:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\
+ :is=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=\177:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\
+ :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[1$}\E[H\E[K:ue=\E[m:\
+ :up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
+vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy:\
+ :am@:\
+ :is=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
+ :r2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
+ :tc=vt320:
+# We have to init 132-col mode, not 80-col mode.
+vt320-w|vt300-w|dec vt320 wide 7 bit terminal:\
+ :co#132:ws#132:\
+ :is=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :tc=vt320:
+vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am:\
+ :am@:\
+ :is=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
+ :r2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H:\
+ :tc=vt320-w:
+
+# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
+# which are pretty much a superset of the VT320. They have the
+# host writable status line, yet another different DRCS matrix size,
+# and such, but they add the DEC Technical character set, Multiple text
+# pages, selectable length pages, and the like. The difference between
+# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
+# monitor, the former has 4 planes and a color monitor. These terminals
+# support VT131 and ANSI block mode, but as with much of these things,
+# termcap/terminfo doesn't deal with these features.
+#
+# Note that this entry is are set up in what was the standard way for GNU
+# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+# keys were switched into application mode at the same time the numeric pad
+# is switched into application mode. This changes the definitions of the
+# arrow keys. Emacs v19 is smarter and mines its keys directly out of
+# your termcap or terminfo entry,
+#
+# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+# (vt340: string capability "sb=\E[M" corrected to "sr";
+# also, added <rmam>/<smam> based on the init string -- esr)
+vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\
+ :fs=\E[$}:ho=\E[H:im=\E[4h:\
+ :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
+ :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\
+ :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:\
+ :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+
+# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
+# (originally written with vt420 as its primary name, and usable for it).
+#
+# VT400/420 -- This terminal is a superset of the vt320. It adds the multiple
+# text pages and long text pages with selectable length of the vt340, along
+# with left and right margins, rectangular area text copy, fill, and erase
+# operations, selected region character attribute change operations,
+# page memory and rectangle checksums, insert/delete column, reception
+# macros, and other features too numerous to remember right now. TERMCAP
+# can only take advantage of a few of these added features.
+#
+# Note that this entry is are set up in what was the standard way for GNU
+# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
+# keys were switched into application mode at the same time the numeric pad
+# is switched into application mode. This changes the definitions of the
+# arrow keys. Emacs v19 is smarter and mines its keys directly out of
+# your termcap entry,
+#
+# From: Daniel Glasser <dag@persoft.persoft.com>, 13 Oct 1993
+# (vt400: string capability ":sb=\E[M:" corrected to ":sr=\E[M:";
+# also, added <rmam>/<smam> based on the init string -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vt400|vt400-24|dec-vt400|dec vt400 24x80 column autowrap:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:\
+ :cd=10\E[J:ce=4\E[K:cl=10\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:fs=\E[$}:ho=\E[H:\
+ :ic=\E[@:im=\E[4h:\
+ :is=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=200\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+
+# (vt420: I removed :k0:, it collided with <kf10>. I also restored
+# a missing :sc: -- esr)
+vt420|DEC VT420:\
+ :am:mi:xn:xo:\
+ :co#80:li#24:vt#3:\
+ :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
+ :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :SA=\E[?7h:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
+ :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
+ :im=\E[4h:is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
+ :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r3=\E[?67h\E[64;1"p:rc=\E8:rf=/usr/share/tabset/vt300:\
+ :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;:\
+ :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+
+#
+# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
+# takes two parameters, the key and the string. Translating the key is
+# straightforward (keys 1-5 are not defined on real terminals, though some
+# emulators define these):
+#
+# if (key < 16) then value = key;
+# else if (key < 21) then value = key + 1;
+# else if (key < 25) then value = key + 2;
+# else if (key < 27) then value = key + 3;
+# else if (key < 30) then value = key + 4;
+# else value = key + 5;
+#
+# The string must be the hexadecimal equivalent, e.g., "5052494E" for "PRINT".
+# There's no provision in terminfo for emitting a string in this format, so the
+# application has to know it.
+#
+vt420pc|DEC VT420 w/PC keyboard:\
+ :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[11;2~:F4=\E[12;2~:\
+ :F5=\E[13;2~:F6=\E[14;2~:F7=\E[15;2~:F8=\E[17;2~:\
+ :F9=\E[18;2~:FA=\E[19;2~:FB=\E[20;2~:FC=\E[21;2~:\
+ :FD=\E[23;2~:FE=\E[24;2~:FF=\E[23~:FG=\E[24~:FH=\E[25~:\
+ :FI=\E[26~:FJ=\E[28~:FK=\E[29~:FL=\E[31~:FM=\E[32~:\
+ :FN=\E[33~:FO=\E[34~:FP=\E[35~:FQ=\E[36~:FR=\E[23;2~:\
+ :FS=\E[24;2~:FT=\E[25;2~:FU=\E[26;2~:FV=\E[28;2~:\
+ :FW=\E[29;2~:FX=\E[31;2~:FY=\E[32;2~:FZ=\E[33;2~:\
+ :Fa=\E[34;2~:Fb=\E[35;2~:Fc=\E[36;2~:\
+ :S6=USR_TERM\072vt420pcdos\072:k1=\E[11~:k2=\E[12~:\
+ :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\177:kh=\E[H:\
+ :..px=\EP1;1|%?%{16}%p1%>%t%{0}%e%{21}%p1%>%t%{1}%e%{25}%p1%>%t%{2}%e%{27}%p1%>%t%{3}%e%{30}%p1%>%t%{4}%e%{5}%;%p1%+%d/%p2%s\E\:tc=vt420:
+
+vt420pcdos|DEC VT420 w/PC for DOS Merge:\
+ :li#25:\
+ :S1=%?%p2%{19}%=%t\E\023\021%e%p2%{32}%<%t\E%p2%c%e%p2%{127}%=%t\E\177%e%p2%c%;:\
+ :S4=\E[?1;2r\E[34h:\
+ :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:S6@:\
+ :me=\E[m:sa@:\
+ :tc=vt420pc:
+
+vt420f|DEC VT420 with VT kbd; VT400 mode; F1-F5 used as Fkeys:\
+ :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
+ :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
+ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
+ :kD=\177:kh=\E[H:l1=\EOP:l2=\EOQ:l3=\EOR:l4=\EOS:\
+ :tc=vt420:
+
+vt510|DEC VT510:\
+ :tc=vt420:
+vt510pc|DEC VT510 w/PC keyboard:\
+ :tc=vt420pc:
+vt510pcdos|DEC VT510 w/PC for DOS Merge:\
+ :tc=vt420pcdos:
+
+# VT520/VT525
+#
+# The VT520 is a monochrome text terminal capable of managing up to
+# four independent sessions in the terminal. It has multiple ANSI
+# emulations (VT520, VT420, VT320, VT220, VT100, VT PCTerm, SCO Console)
+# and ASCII emulations (WY160/60, PCTerm, 50/50+, 150/120, TVI 950,
+# 925 910+, ADDS A2). This terminfo data is for the ANSI emulations only.
+#
+# Terminal Set-Up is entered by pressing [F3], [Caps Lock]/[F3] or
+# [Alt]/[Print Screen] depending upon which keyboard and which
+# terminal mode is being used. If Set-Up has been disabled or
+# assigned to an unknown key, Set-Up may be entered by pressing
+# [F3] as the first key after power up, regardless of keyboard type.
+# (vt520: I added <rmam>/<smam> based on the init string, also :sc: -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+vt520|DEC VT520:\
+ :am:mi:xn:xo:\
+ :co#80:li#24:vt#3:\
+ :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
+ :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :SA=\E[?7h:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
+ :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
+ :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
+ :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\
+ :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\
+ :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+
+# (vt525: I added <rmam>/<smam> based on the init string;
+# removed :se:=\E[m, :ue:=\E[m, added :sc: -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+vt525|DEC VT525:\
+ :am:mi:xn:xo:\
+ :co#80:li#24:vt#3:\
+ :*6=\E[4~:@0=\E[1~:RA=\E[?7l:\
+ :S5=\E[?0;0r\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :SA=\E[?7h:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:\
+ :i2=\E[?67h\E[64;1"p:if=/usr/share/tabset/vt300:\
+ :im=\E[4h:is=\E[1;24r\E[24;1H:k0=\E[29~:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:\
+ :k9=\E[21~:k;=\E[29~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:r3=\E[?67h\E[64;1"p:\
+ :rc=\E8:rf=/usr/share/tabset/vt300:sc=\E7:se=\E[m:sf=\ED:\
+ :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+
+#### VT100 emulations
+#
+
+# John Hawkinson <jhawk@MIT.EDU> tells us that the EWAN telnet for Windows
+# (the best Windows telnet as of September 1995) presents the name `dec-vt100'
+# to telnetd. Michael Deutschmann <ldeutsch@mail.netshop.net> informs us
+# that this works best with a stock vt100 entry.
+dec-vt100|EWAN telnet's vt100 emulation:\
+ :tc=vt100:
+
+# From: Adrian Garside <94ajg2@eng.cam.ac.uk>, 19 Nov 1996
+dec-vt220|DOS tnvt200 terminal emulator:\
+ :am@:tc=vt220:
+
+# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
+# anyone who needs PC VT340 emulation. (or anything below that level, for
+# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
+# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
+# I can send the address if requested.
+# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+z340|zstem vt340 terminal emulator 132col 42line:\
+ :li#42:\
+ :is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;42r\E[42;1H:\
+ :tc=vt320-w:
+z340-nam|zstem vt340 terminal emulator 132col 42line (no automatic margins):\
+ :am@:\
+ :is=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;42r\E[42;1H:\
+ :tc=z340:
+
+# CRT is shareware. It implements some xterm features, including mouse.
+crt|crt-vt220|CRT 2.3 emulating VT220:\
+ :ms:ut:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:Sb=\E[4%dm:Sf=\E[3%dm:\
+ :op=\E[39;49m:st=\EH:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:\
+ :u9=\E[c:\
+ :tc=vt220:
+
+# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
+# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
+# (communication program) which supports:
+#
+# - Serial port connections.
+# - TCP/IP (telnet) connections.
+# - VT100 emulation, and selected VT200/300 emulation.
+# - TEK4010 emulation.
+# - File transfer protocols (Kermit, XMODEM, ZMODEM, B-PLUS and
+# Quick-VAN).
+# - Scripts using the "Tera Term Language".
+# - Japanese and Russian character sets.
+#
+# The program does not come with terminfo or termcap entries. However, the
+# emulation (testing with vttest and ncurses) is reasonably close to vt100 (no
+# vt52 or doublesize character support; blinking is done with color). Besides
+# the HPA, VPA extensions it also implements CPL and CNL.
+#
+# All of the function keys can be remapped. This description shows the default
+# mapping, as installed. Both vt100 PF1-PF4 keys and quasi-vt220 F1-F4 keys
+# are supported. F13-F20 are obtained by shifting F3-F10. The editing keypad
+# is laid out like vt220, rather than the face codes on the PC keyboard, i.e,
+# kfnd Insert
+# kslt Delete
+# kich1 Home
+# kdch1 PageUp
+# kpp End
+# knp PageDown
+#
+# ANSI colors are implemented, but cannot be combined with video attributes
+# except for reverse.
+#
+# No fonts are supplied with the program, so the acsc string is chosen to
+# correspond with the default Microsoft terminal font.
+#
+# Tera Term recognizes some xterm sequences, including those for setting and
+# retrieving the window title, and for setting the window size (i.e., using
+# "resize -s"), though it does not pass SIGWINCH to the application if the
+# user resizes the window with the mouse.
+teraterm|Tera Term Pro:\
+ :km:xo@:\
+ :NC#43:vt@:\
+ :*6=\E[4~:@0=\E[1~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
+ :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
+ :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
+ :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
+ :al=\E[L:cb=\E[1K:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cv=\E[%i%dd:dc=\E[P:dl=\E[M:ec=\E[%dX:\
+ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:\
+ :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:op=\E[100m:se=\E[27m:so=\E[7m:\
+ :sr=\EM:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\
+ :ue=\E[24m:up=\E[A:us=\E[4m:vb=200\E[?5h\E[?5l:\
+ :ve=\E[?25h:vi=\E[?25l:\
+ :tc=klone+color:tc=vt100:
+
+# Tested with WinNT 4.0, the telnet application assumes the screensize is
+# 25x80. This entry uses the 'Terminal' font, to get line-drawing characters.
+ms-vt100|MS telnet imitating dec vt100:\
+ :li#25:\
+ :ac=+\020\054\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376:\
+ :ct@:u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?6c:u9=\E[c:\
+ :tc=vt100:
+
+#### X terminal emulators
+#
+# You can add the following line to your .Xdefaults to change the terminal type
+# set by the xterms you start up to my-xterm:
+#
+# *termName: my-xterm
+#
+# System administrators can change the default entry for xterm instances
+# by adding a similar line to /usr/X11/lib/X11/app-defaults/XTerm. In either
+# case, xterm will detect and reject an invalid terminal type, falling back
+# to the default of xterm.
+#
+
+# X10/6.6 11/7/86, minus alternate screen, plus (csr)
+# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
+# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
+# as these seem not to work -- esr)
+x10term|vs100-x10|xterm terminal emulator (X10 window system):\
+ :am:bs:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#65:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\
+ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
+ :im=\E[4h:is=\E\E[m\E[?7h\E[?1;4l:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+# Compatible with the R5 xterm
+# (from the XFree86 3.2 distribution, <blink=@> removed)
+# added khome/kend, rmir/smir, rmul/smul based on the R5 xterm code - TD
+# corrected typos in rs2 string - TD
+xterm-r5|xterm R5 version:\
+ :am:bs:km:ms:xn:\
+ :co#80:it#8:li#24:\
+ :@7=\E[4~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
+ :F1=\E[23~:F2=\E[24~:IC=\E[%d@:Km=\E[M:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:\
+ :im=\E[4h:k0=\EOq:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
+ :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :k;=\E[21~:kA=\E[30~:kD=\E[3~:kE=\E[8~:kI=\E[2~:kL=\E[31~:\
+ :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H:\
+ :rc=\E8:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+# Compatible with the R6 xterm
+# (from XFree86 3.2 distribution, <acsc> and :it: added, <blink@> removed)
+# added khome/kend - TD
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+xterm-r6|xterm-old|xterm X11R6 version:\
+ :am:bs:km:mi:ms:xn:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
+ :ho=\E[H:im=\E[4h:\
+ :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
+ :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+# This is the base xterm entry for the xterm supplied with XFree86 3.2 & up.
+# The name has been changed and some aliases have been removed.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+xterm-xf86-v32|xterm terminal emulator (XFree86 3.2 Window System):\
+ :am:bs:km:mi:ms:xn:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\
+ :is=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>:\
+ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\177:kI=\E[2~:\
+ :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\EOH:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:md=\E[1m:\
+ :me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[2J\E[?47l\E8:\
+ :ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+
+# This is the stock xterm entry supplied with XFree86 3.3, which uses VT100
+# codes for F1-F4 except while in VT220 mode.
+xterm-xf86-v33|xterm terminal emulator (XFree86 3.3 Window System):\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :tc=xterm-xf86-v32:
+
+# This version was released in XFree86 3.3.3 (November 1998).
+# Besides providing printer support, it exploits a new feature that allows
+# xterm to use terminfo-based descriptions with the titeInhibit resource.
+xterm-xf86-v333|xterm terminal emulator (XFree86 3.3.3 Window System):\
+ :5i:\
+ :*6@:@0@:@7=\E[4~:ei=:ic@:im=:is=\E[\041p\E[?3;4l\E[4l\E>:\
+ :kD=\E[3~:kh=\E[1~:mb=\E[5m:mk=\E[8m:pf=\E[4i:po=\E[5i:\
+ :ps=\E[i:r1=\Ec:r2=\E[\041p\E[?3;4l\E[4l\E>:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;:\
+ :te=\E[?1047l\E[?1048l:ti=\E[?1048h\E[?1047h:\
+ :tc=xterm-xf86-v33:
+
+# This beta version will probably be released in XFree86 4.0.
+xterm-xf86-v40|xterm terminal emulator (XFree86 4.0 Window System):\
+ :@7=\EOF:K1=\EOH:K2=\EOE:K3=\E[5~:K4=\EOF:K5=\E[6~:kD=\177:\
+ :kh=\EOH:te=\E[?1049l:ti=\E[?1049h:\
+ :tc=xterm-xf86-v333:
+
+xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.0 Window System):\
+ :tc=xterm-xf86-v40:
+
+# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
+xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1:\
+ :se=\E[m:ue=\E[m:\
+ :tc=xterm-xf86-v33:
+
+# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+xterm-16color|xterm with 16 colors like aixterm:\
+ :Co#16:NC#32:pa#256:\
+ :AB=\E[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm:\
+ :AF=\E[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm:\
+ :..Sb=%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\
+ :..Sf=%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa%?%ga%{1}%=%t4%e%ga%{3}%=%t6%e%ga%{4}%=%t1%e%ga%{6}%=%t3%e%ga%d%;m:\
+ :tc=xterm-xf86-v40:
+
+# This is another variant, for XFree86 4.0 xterm (T.Dickey)
+# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
+# To use it, your decTerminalID resource must be set to 200 or above.
+#
+# HTS \E H \210
+# RI \E M \215
+# SS3 \E O \217
+# CSI \E [ \233
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+xterm-8bit|xterm terminal emulator 8-bit controls (X Window System):\
+ :am:bs:km:mi:ms:xn:\
+ :co#80:it#8:li#24:\
+ :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
+ :K1=\217w:K2=\217y:K3=\217u:K4=\217q:K5=\217s:LE=\233%dD:\
+ :RI=\233%dC:UP=\233%dA:ae=^O:al=\233L:as=^N:bl=^G:bt=\233Z:\
+ :cd=\233J:ce=\233K:cl=\233H\2332J:cm=\233%i%d;%dH:cr=^M:\
+ :cs=\233%i%d;%dr:ct=\2333g:dc=\233P:dl=\233M:do=^J:\
+ :ec=\233%dX:ei=\2334l:ho=\233H:im=\2334h:\
+ :is=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>:\
+ :k1=\23311~:k2=\23312~:k3=\23313~:k4=\23314~:k5=\23315~:\
+ :k6=\23317~:k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:\
+ :kI=\2332~:kN=\2336~:kP=\2335~:kb=^H:kd=\217B:\
+ :ke=\233?1l\E>:kh=\2331~:kl=\217D:kr=\217C:ks=\233?1h\E=:\
+ :ku=\217A:le=^H:mb=\2335m:md=\2331m:me=\233m^O:mr=\2337m:\
+ :nd=\233C:rc=\E8:sc=\E7:se=\23327m:sf=^J:so=\2337m:sr=\215:\
+ :st=\210:ta=^I:te=\233?1049l:ti=\233?1049h:ue=\23324m:\
+ :up=\233A:us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:\
+ :vi=\233?25l:vs=\233?25h:
+
+xterm-24|vs100|xterms|xterm terminal emulator (X Window System):\
+ :li#24:tc=xterm:
+
+# This is xterm for ncurses.
+xterm|xterm terminal emulator (X Window System):\
+ :Km=\E[M:\
+ :ac=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:\
+ :tc=xterm-r6:
+
+# These entries allow access to the X titlebar and icon name as a status line.
+# Note that twm (and possibly window managers descended from it such as tvtwm,
+# ctwm, and vtwm) track windows by icon-name; thus, you don't want to mess
+# with it.
+xterm+sl|access X title line and icon name:\
+ :hs:\
+ :ws#40:\
+ :ds=\E]0;\007:fs=^G:ts=\E]0;:tc=xterm:
+xterm+sl-twm|access X title line (pacify twm-descended window managers):\
+ :hs:\
+ :ws#40:\
+ :ds=\E]2;\007:fs=^G:ts=\E]2;:tc=xterm:
+
+#
+# The following xterm variants don't depend on your base version
+#
+# xterm with bold instead of underline
+xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold:\
+ :so=\E[7m:us=\E[1m:\
+ :tc=xterm:
+# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
+# (kterm should not invoke DEC Graphics as the alternate character set
+# -- Kenji Rikitake)
+kterm|kterm kanji terminal emulator (X window system):\
+ :es:hs:\
+ :Km=\E[M:ac@:ae@:as@:cs=\E[%i%d;%dr:ds=\E[?H:eA@:fs=\E[?F:\
+ :op=\E[39;49m:rc=\E8:sc=\E7:ts=\E[?E\E[?%i%dT:\
+ :tc=xterm-r6:tc=klone+color:
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+xterm-nic|xterm with ich/ich1 suppressed for non-curses programs:\
+ :IC@:ei=:ic@:im=:\
+ :tc=xterm:
+# From: Mark Sheppard <kimble@mistral.co.uk>, 4 May 1996
+xterm1|xterm terminal emulator ignoring the alternate screen buffer:\
+ :te@:ti@:\
+ :tc=xterm:
+
+# This describes the capabilities of color_xterm, an xterm variant from
+# before ECMA-64 color support was folded into the main-line xterm release.
+# This entry is straight from color_xterm's maintainer.
+# From: Jacob Mandelson <jlm@ugcs.caltech.edu>, 09 Nov 1996
+# The README's with the distribution also say that it supports SGR 21, 24, 25
+# and 27, but they are not present in the terminfo or termcap.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+color_xterm|cx|cx100|color_xterm color terminal emulator for X:\
+ :am:bs:km:mi:ms:xn:\
+ :co#80:it#8:li#65:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
+ :i1=\E[r\E[m\E[?7h\E[?4;6l\E[4l:im=\E[4h:k1=\E[11~:\
+ :k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\EOB:kh=\E[7~:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=^J:so=\E[7m:sr=\EM:ta=^I:te=\E>\E[?41;1r:\
+ :ti=\E[?1;41s\E[?1;41h\E=:ue=\E[24m:up=\E[A:us=\E[4m:
+
+# The 'nxterm' distributed with Redhat Linux is a slight rehack of
+# xterm-sb_right-ansi-3d, which implements ANSI colors, but does not support
+# SGR 39 or 49. SGR 0 does reset colors (along with everything else). This
+# description is "compatible" with color_xterm, rxvt and XFree86 xterm, except
+# that each of those implements the home, end, delete keys differently.
+nxterm|xterm-color|generic color xterm:\
+ :NC@:\
+ :op=\E[m:tc=xterm-r6:tc=klone+color:
+
+# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
+# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
+# Notes:
+# rxvt 2.21b uses
+# smacs=\E(B\E)U^N, rmacs=\E(B\E)0^O,
+# but some applications don't work with that.
+# It also has an AIX extension
+# box2=lqkxjmwuvtn,
+# and
+# ech=\E[%p1%dX,
+# but the latter does not work correctly.
+#
+# The distributed terminfo says it implements hpa and vpa, but they are not
+# implemented correctly, using relative rather than absolute positioning.
+#
+# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
+# Since rxvt is not really compatible with xterm, it should be configured as
+# "rxvt" (monochrome) and "rxvt-color".
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+rxvt|rxvt terminal base (X Window System):\
+ :am:bs:eo:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
+ :ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
+ :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+ :k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
+ :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\
+ :kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[0m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
+ :se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:\
+ :vs=\E[?25h:
+rxvt-color|rxvt terminal emulator (X Window System):\
+ :Co#8:pa#64:\
+ :AB=\E[%p1%{40}%+%dm:AF=\E[%p1%{30}%+%dm:me=\E[m\017:\
+ :op=\E[39;49m:\
+ :tc=rxvt:
+
+# These (xtermc and xtermm) are distributed with Solaris. They refer to a
+# variant of xterm which is apparently no longer supported, but are interesting
+# because they illustrate SVr4 curses mouse controls - T.Dickey
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+xtermm|xterm terminal emulator (monocrome):\
+ :am:bs:km:mi:ms:xn:\
+ :BT#3:co#80:it#8:li#24:\
+ :@7=\E[Y:@8=\EOM:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
+ :F1=\EOZ:F2=\EOA:Gm=\E[%p1%dY:IC=\E[%d@:K1=\EOq:K2=\EOr:\
+ :K3=\EOs:K4=\EOp:K5=\EOn:Km=\E[^_:LE=\E[%dD:RI=\E[%dC:\
+ :RQ=\E[492Z:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
+ :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:k;=\EOY:kN=\E[U:\
+ :kP=\E[V:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:\
+ :le=\E[1D:mb=@:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:\
+ :r1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E@0\E[?4r:\
+ :ti=\E@0\E[?4s\E[?4h\E@1:up=\E[A:
+
+xtermc|xterm terminal emulator (color):\
+ :Co#8:NC#7:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:\
+ :..Sb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\
+ :..Sf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m:\
+ :op=\E[100m:\
+ :tc=xtermm:
+
+# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
+# Here's a termcap entry I've been using for xterm_color, which comes
+# with BSD/OS 2.0, and the X11R6 contrib tape too I think. Besides the
+# color stuff, I also have a status line defined as the window manager
+# title bar. [I have translated it to terminfo -- ESR]
+xterm-pcolor|xterm with color used for highlights and status line:\
+ :md=\E[1m\E[43m:mr=\E[7m\E[34m:so=\E[7m\E[31m:\
+ :us=\E[4m\E[42m:\
+ :tc=xterm+sl:tc=xterm-r6:
+
+# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
+# (hpterm: added empty <acsc>, we have no idea what ACS chars look like --esr)
+hpterm|X-hpterm|hp X11 terminal emulator:\
+ :am:da:db:mi:xs:\
+ :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:pb#9600:sg#0:\
+ :LF=\E&j@:LO=\E&jB:ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:\
+ :cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:\
+ :cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:\
+ :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:\
+ :kA=\EL:kC=\EJ:kD=\EP:kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:\
+ :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:\
+ :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:\
+ :ku=\EA:le=^H:md=\E&dB:me=\E&d@:mh=\E&dH:ml=\El:mr=\E&dB:\
+ :mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\
+ :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\
+ :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\
+ :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\
+ :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\
+ :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:\
+ :up=\EA:us=\E&dD:
+
+# This entry describes an xterm with Sun-style function keys enabled
+# via the X resource setting "xterm*sunFunctionKeys:true"
+# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
+# The <kf13>...<kf20> keys are L3-L10. We don't set <kf16=\E[197z>
+# because we want it to be seen as <kcpy>.
+# The <kf31>...<kf45> keys are R1-R15. We treat some of these in accordance
+# with their Sun keyboard labels instead.
+# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
+xterm-sun|xterm with sunFunctionKeys true:\
+ :%1=\E[196z:&8=\E[195z:@0=\E[200z:@5=\E[197z:@7=\E[220z:\
+ :F1=\E[192z:F2=\E[193z:F3=\E[194z:F4=\E[195z:F5=\E[196z:\
+ :F7=\E[198z:F8=\E[199z:F9=\E[200z:FA=\E[201z:FL=\E[208z:\
+ :FM=\E[209z:FN=\E[210z:FO=\E[211z:FP=\E[212z:FQ=\E[213z:\
+ :FS=\E[215z:FU=\E[217z:FW=\E[219z:FY=\E[221z:K2=\E[218z:\
+ :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\
+ :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\
+ :kI=\E[2z:kN=\E[222z:kP=\E[216z:kh=\E[214z:\
+ :tc=xterm:
+xterms-sun|small (80x24) xterm with sunFunctionKeys true:\
+ :co#80:li#24:tc=xterm-sun:
+
+# This is for the extensible terminal emulator on the X11R6 contrib tape.
+emu|emu native mode:\
+ :mi:ms:xo:\
+ :Co#15:co#80:it#8:li#24:pa#64:vt#200:\
+ :*6=\Esel:@0=\Efind:@8=^M:AB=\Es%i%p1%d;:AF=\Er%i%p1%d;:\
+ :AL=\EQ%d;:DC=\EI%d;:DL=\ER%d;:DO=\Ep%d;:F1=\EF11:\
+ :F2=\EF12:F3=\EF13:F4=\EF14:F5=\EF15:F6=\EF16:F7=\EF17:\
+ :F8=\EF18:F9=\EF19:FA=\EF20:LE=\Eq-%d;:RI=\Eq%d;:\
+ :UP=\Ep-%d;:\
+ :ac=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244:\
+ :ae=\0:al=\EQ1;:as=\0:bl=^G:cb=\EL:cd=\EN:ce=\EK:\
+ :cl=\EP\EE0;0;:cm=\EE%d;%d;:cr=^M:cs=\Ek%d;%d;:ct=\Ej:\
+ :dc=\EI1;:dl=\ER1;:do=\EB:eA=\0:ec=\Ej%d;:ei=\EX:\
+ :ho=\EE0;0;:im=\EY:is=\ES\Er0;\Es0;:k0=\EF00:k1=\EF01:\
+ :k2=\EF02:k3=\EF03:k4=\EF04:k5=\EF05:k6=\EF06:k7=\EF07:\
+ :k8=\EF08:k9=\EF09:k;=\EF10:kD=\177:kI=\Eins:kN=\Enext:\
+ :kP=\Eprior:kb=^H:kd=\EB:kl=\EC:kr=\ED:ku=\EA:le=^H:\
+ :mb=\ES\EW:md=\ES\EU:me=\ES:mr=\ES\ET:nd=\ED:\
+ :oc=\Es0;\Er0;:r2=\ES\Es0;\Er0;:se=\ES:sf=\EG:so=\ES\ET:\
+ :sr=\EF:st=\Eh:ta=^I:ue=\ES:up=\EA:us=\ES\EV:ve=\Ea:vi=\EZ:\
+ :vs=\Ea:
+
+######## COMMERCIAL WORKSTATION CONSOLES
+#
+
+#### Alpha consoles
+#
+
+# This is from the OSF/1 Release 1.0 termcap file
+pccons|pcconsole|ANSI (mostly) Alpha PC console terminal emulation:\
+ :am:xo:\
+ :co#80:li#25:\
+ :al=\E[L:bl=^G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:\
+ :nd=\E[C:nw=^M^J:se=\E[m:so=\E[7m:ta=^I:up=\E[A:
+
+#### AT&T consoles
+#
+
+# This actually describes the generic SVr4 display driver for Intel boxes.
+# The :mh=\E[2m: isn't documented and therefore may not be reliable.
+# From: Eric Raymond <esr@snark.thyrsus.com> Mon Nov 27 19:00:53 EST 1995
+att6386|at386|386at|AT&T WGS 6386 console:\
+ :am:bw:eo:xo:\
+ :co#80:it#8:li#25:\
+ :@7=\E[Y:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\EOZ:\
+ :F2=\EOA:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:\
+ :SR=\E[%dT:UP=\E[%dA:\
+ :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
+ :ae=\E[10m:al=\E[1L:as=\E[12m:bl=^G:bt=\E[Z:cd=\E[J:\
+ :ce=\E[K:ch=\E[%i%dG:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\
+ :ct=\E[2g:cv=\E[%i%dd:dc=\E[P:dl=\E[1M:do=\E[B:ec=\E[%dX:\
+ :ei=:ho=\E[H:ic=\E[1@:im=:is=\E[0;10;39m:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
+ :k;=\EOY:kB=^]:kD=\E[P:kI=\E[@:kM=\E0:kN=\E[U:kP=\E[V:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\
+ :md=\E[1m:me=\E[0;10m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:\
+ :nw=\r\E[S:rc=\E8:\
+ :..sa=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m:\
+ :sc=\E7:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=1C:vi=\E[=C:\
+ :tc=klone+color:
+# (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
+pc6300plus|AT&T 6300 plus:\
+ :am:bs:xo:\
+ :co#80:li#24:\
+ :al=\E[1L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[H:\
+ :cm=\E[%i%2;%2H:cr=^M:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\
+ :ei=:ho=\E[H:ic=\E[1@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:\
+ :k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\EOk:k;=\EOu:kb=^H:\
+ :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mh=\E[2m:mk=\E[9m:mr=\E[7m:nd=\E[C:nw=^M^J:\
+ :se=\E[m:sf=^J:so=\E[7m:st=\EH:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E[=1C:vi=\E[=C:
+
+# From: Benjamin C. W. Sittler <bsittler@nmt.edu>
+#
+# I have a UNIX PC which I use as a terminal attached to my Linux PC.
+# Unfortunately, the UNIX PC terminfo entry that comes with ncurses
+# is broken. All the special key sequences are broken, making it unusable
+# with Emacs. The problem stems from the following:
+#
+# The UNIX PC has a plethora of keys (103 of them, and there's no numeric
+# keypad!), loadable fonts, and strange highlighting modes ("dithered"
+# half-intensity, "smeared" bold, and real strike-out, for example.) It also
+# uses resizable terminal windows, but the bundled terminal program always
+# uses an 80x24 window (and doesn't support seem to support a 132-column
+# mode.)
+#
+# HISTORY: The UNIX PC was one of the first machines with a GUI, and used a
+# library which was a superset of SVr3.5 curses (called tam, for "terminal
+# access method".) tam includes support for real, overlapping windows,
+# onscreen function key labels, and bitmap graphics. But since the primary
+# user interface on the UNIX PC was a GUI program (ua, for "user
+# assistant",) and remote administration was considered important for the
+# machine, tam also supported VT100-compatible terminals attached to the
+# serial port or used across the StarLan network. To simulate the extra keys
+# not present on a VT100, users could press ESC and a two-letter sequence,
+# such as u d (Undo) or U D (Shift-Undo.) These two-letter sequences,
+# however, were not the same as those sent by the actual Undo key. The
+# actual Undo key sends ESC 0 s unshifted, and ESC 0 S shifted, for example.
+# (If you're interested in adding some of the tam calls to ncurses, btw, I
+# have the full documentation and several programs which use tam. It also
+# used an extended terminfo format to describe key sequences, special
+# highlighting modes, etc.)
+#
+# KEYS: This means that ncurses would quite painful on the UNIX PC, since
+# there are two sequences for every key-modifier combination (local keyboard
+# sequence and remote "VT100" sequence.) But I doubt many people are trying
+# to use ncurses on the UNIX PC, since ncurses doesn't properly handle the
+# GUI. Unfortunately, the terminfo entry (and the termcap, too, I presume)
+# seem to have been built from the manual describing the VT100 sequences.
+# This means it doesn't work for a real live UNIX PC.
+#
+# FONTS: The UNIX PC also has a strange interpretation of "alternate
+# character set". Rather than the VT100 graphics you might expect, it allows
+# up to 8 custom fonts to be loaded at any given time. This means that
+# programs expecting VT100 graphics will usually be disappointed. For this
+# reason I have disabled the smacs/rmacs sequences, but they could easily be
+# re-enabled. Here are the relevant control sequences (from the ESCAPE(7)
+# manpage), should you wish to do so:
+#
+# SGR10 - Select font 0 - ESC [ 10 m or SO
+# SGR11 - Select font 1 - ESC [ 11 m or SI
+# SGR12 - Select font 2 - ESC [ 12 m
+# ... (etc.)
+# SGR17 - Select font 7 - ESC [ 17 m
+#
+# Graphics for line drawing are not reliably found at *any* character
+# location because the UNIX PC has dynamically reloadable fonts. I use font
+# 0 for regular text and font 1 for italics, but this is by no means
+# universal. So ASCII line drawing is in order if smacs/rmacs are enabled.
+#
+# MISC: The cursor visible/cursor invisible sequences were swapped in the
+# distributed terminfo.
+#
+# To ameliorate these problems (and fix a few highlighting bugs) I rewrote
+# the UNIX PC terminfo entry. The modified version works great with Lynx,
+# Emacs, and XEmacs running on my Linux PC and displaying on the UNIX PC
+# attached by serial cable. In Emacs, even the Undo key works, and many
+# applications can now use the F1-F8 keys.
+#
+# esr's notes:
+# Terminfo entry for the AT&T Unix PC 7300
+# from escape(7) in Unix PC 7300 Manual.
+# Somewhat similar to a vt100-am (but different enough
+# to redo this from scratch.)
+#
+# /***************************************************************
+# *
+# * FONT LOADING PROGRAM FOR THE UNIX PC
+# *
+# * This routine loads a font defined in the file ALTFONT
+# * into font memory slot #1. Once the font has been loaded,
+# * it can be used as an alternative character set.
+# *
+# * The call to ioctl with the argument WIOCLFONT is the key
+# * to this routine. For more information, see window(7) in
+# * the PC 7300 documentation.
+# ***************************************************************/
+# #include <string.h> /* needed for strcpy call */
+# #include <sys/window.h> /* needed for ioctl call */
+# #define FNSIZE 60 /* font name size */
+# #define ALTFONT "/usr/lib/wfont/special.8.ft" /* font file */
+# /*
+# * The file /usr/lib/wfont/special.8.ft comes with the
+# * standard PC software. It defines a graphics character set
+# * similar to that of the Teletype 5425 terminal. To view
+# * this or other fonts in /usr/lib/wfont, use the command
+# * cfont <filename>. For further information on fonts see
+# * cfont(1) in the PC 7300 documentation.
+# */
+#
+# struct altfdata /* structure for alt font data */
+# {
+# short altf_slot; /* memory slot number */
+# char altf_name[FNSIZE]; /* font name (file name) */
+# };
+# ldfont()
+# {
+# int wd; /* window in which altfont will be */
+# struct altfdata altf;
+# altf.altf_slot=1;
+# strcpy(altf.altf_name,ALTFONT);
+# for (wd =1; wd < 12; wd++) {
+# ioctl(wd, WIOCLFONT,&altf);
+# }
+# }
+#
+# (att7300: added :vi:/:ve:/:ic:/<invis> from the BSDI entry,
+# they're confirmed by the man page for the System V display---esr)
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att7300|unixpc|pc7300|3b1|s4|AT&T UNIX PC Model 7300:\
+ :am:xo:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:al=\E[L:bl=^G:bt=\E^I:cd=\E[0J:ce=\E[0K:\
+ :cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=:ho=\E[H:i1=\017\E[=1w:ic=\E[@:im=:k1=\EOc:\
+ :k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:\
+ :kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[9m:md=\E[1m:\
+ :me=\E[0;10m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:se=\E[m:\
+ :sf=^J:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[=0C:\
+ :vi=\E[=1C:
+
+#### Hewlett-Packard consoles
+#
+# These are descriptions for the HP700 series, the workstations formerly
+# known as Apollos. HP terminals are described elsewhere in the file
+#
+
+# From: Victor Duchovni <vic@fine.princeton.edu>
+# (hp700-wy: removed obsolete ":nl=^J:";
+# replaced /usr/share/tabset/hp700-wy with std because :it#8:,:st=\E1: -- esr)
+hp700-wy|HP700/41 emulating wyse30:\
+ :am:bs:bw:mi:ms:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=0.7*\EE:bt=\EI:cd=\EY:ce=10\ET:cl=^Z:cm=\E=%+ %+ :\
+ :cr=^M:ct=\E0:cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ei=\Er:ho=^^:\
+ :i1=\E~"\EC\Er\E(\EG0\003\E`9\E`1:\
+ :if=/usr/share/tabset/stdcrt:im=\Eq:kB=\EI:kC=^Z:kE=\ET:\
+ :kI=\Eq:kM=\Er:kS=\EY:kT=\EI:kb=\177:kd=^V:kh=^^:kl=^H:kr=^L:\
+ :ku=^K:le=^H:ll=^^^K:me=10\EG0:nd=^L:se=10\EG0:so=10\EG4:\
+ :sr=\Ej:st=\E1:ta=^I:ue=10\EG0:up=^K:us=10\EG8:
+hp70092|hp70092a|hp70092A|HP 700/92:\
+ :am:da:db:xs:\
+ :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:\
+ :LF=\E&j@:LO=\E&jB:ac=0cjgktlrmfn/q\054t5u6v8w7x.:ae=^O:\
+ :al=\EL:as=^N:bl=^G:bt=\Ei:ce=\EK:ch=\E&a%dC:\
+ :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
+ :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
+ :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
+ :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
+ :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
+ :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\
+ :md=\E&dB:me=\E&d@:mh=\E&dH:mr=\E&dB:nd=\EC:se=\E&d@:\
+ :so=\E&dJ:sr=\ET:st=\E1:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
+
+# HP 700/44 Setup parameters:
+# Terminal Mode HP-PCterm
+# Inhibit Auto Wrap NO
+# Status Line Host Writable
+# PC Character Set YES
+# Twenty-Five Line Mode YES
+# XON/XOFF @128 or 64 (sc)
+# Keycode Mode NO or YES (sc)
+# Backspace Key BS or BS/DEL
+#
+# :is: sets pcterm; autowrap; 25 lines; pc char set; prog DEL key;
+# \E\\? does not turn off keycode mode
+# <smsc> sets alternate start/stop; keycode on
+hpansi|hp700|hewlett packard 700/44 in HP-PCterm mode:\
+ :am:eo:xn:xo:\
+ :co#80:li#25:\
+ :@7=\E[4~:RA=\E[?7l:S4=\E[>11h\EPO**x0/65;1/67\E\:\
+ :S5=\E[>11l\EP1**x0/11;1/13\E[m\E\:SA=\E[?7h:XF=g:XN=e:\
+ :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
+ :ic=\E[@:im=:\
+ :is=\E[44"p\E[?7h\E[>10h\E[>12h\EP1;1|3/7F\E\:\
+ :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
+ :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:\
+ :kB=\E[Z:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\
+ :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\
+ :vi=\E[?25l:
+
+#### Iris consoles
+#
+
+# Sent by Stefan Stapelberg <stefan@rent-a-guru.de>, 24 Feb 1997, this is
+# from SGI's terminfo database. SGI's entry shows F9-F12 with the codes
+# for the application keypad mode. We have added iris-ansi-ap rather than
+# change the original to keypad mode.
+#
+# (iris-ansi: added rmam/smam based on init string -- esr)
+#
+# This entry, and those derived from it, is used in xwsh (also known as
+# winterm). Some capabilities that do not fit into the terminfo model
+# include the shift- and control-functionkeys:
+#
+# F1-F12 generate different codes when shift or control modifiers are used.
+# For example:
+# F1 \E[001q
+# shift F1 \E[013q
+# control-F1 \E[025q
+#
+# In application keypad mode, F9-F12 generate codes like vt100 PF1-PF4, i.e.,
+# \EOP to \EOS. The shifted and control modifiers still do the same thing.
+#
+# The cursor keys also have different codes:
+# control-up \E[162q
+# control-down \E[165q
+# control-left \E[159q
+# control-right \E[168q
+#
+# shift-up \E[161q
+# shift-down \E[164q
+# shift-left \E[158q
+# shift-right \E[167q
+#
+# control-tab \[072q
+#
+# iris-ansi-net alias helps with IRIX does when you rsh to a remote system.
+iris-ansi|iris-ansi-net|IRIS emulating 40 line ANSI terminal (almost VT100):\
+ :am:\
+ :co#80:it#8:li#40:\
+ :!2=\E[218q:#2=\E[143q:#4=\E[158q:%9=\E[209q:%f=\E[210q:\
+ :%i=\E[167q:&7=\E[217q:*4=\E[P:*7=\E[147q:@7=\E[146q:\
+ :@8=^M:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:F1=\E[011q:\
+ :F2=\E[012q:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
+ :UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\
+ :ho=\E[H:is=\E[?1l\E>\E[?7h\E[100g\E[0m\E7\E[r\E8:\
+ :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
+ :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k;=\E[010q:\
+ :kB=\E[Z:kD=\177:kI=\E[139q:kM=\E[146q:kN=\E[154q:\
+ :kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=\E[D:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:\
+ :pk=\EP101;%d.y%s\E\:rc=\E8:sc=\E7:se=\E[m:sf=\ED:\
+ :so=\E[1;7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E[9/y\E[12/y\E[=6l:vs=\E[10/y\E[=1h\E[=2l\E[=6h:
+iris-ansi-ap|IRIS ANSI in application-keypad mode:\
+ :@8=\EOM:F1=\E[011q:F2=\E[012q:is=\E[?1l\E=\E[?7h:\
+ :k9=\E[009q:k;=\E[010q:\
+ :tc=iris-ansi:
+
+# From the man-page, this is a quasi-vt100 emulator that runs on SGI's IRIX
+# (T.Dickey 98/1/24)
+iris-color|xwsh|IRIX ANSI with color:\
+ :NC#33:\
+ :DC=\E[%dP:IC=\E[%d@:ZH=\E[3m:ZR=\E[23m:cs=\E[%i%d;%dr:\
+ :ec=\E[%dX:ei=:im=:mh=\E[2m:r1=\Ec:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:sc=\E7:\
+ :u6=\E[%i%d;%dR:u7=\E[6n:u8=\E[?1;2c:u9=\E[c:ue=\E[24m:\
+ :tc=klone+color:tc=iris-ansi-ap:
+
+# (wsiris: this had extension capabilities
+# :HS=\E7F2:HE=\E7F7:\
+# :CT#2:CZ=*Bblack,red,green,yellow,blue,magenta,cyan,*Fwhite:
+# See the note on Iris extensions near the end of this file.
+# Finally, removed suboptimal :cl:=\EH\EJ and added :do: &
+# :vb: from BRL -- esr)
+wsiris|iris40|iris emulating a 40 line visual 50 (approximately):\
+ :am:bs:nc:pt:\
+ :co#80:it#8:kn#3:li#40:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :dl=\EM:\
+ :do=\EB:ho=\EH:is=\E7B0\E7F7\E7C2\E7R3:k0=\E0:k1=\E1:\
+ :k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:k8=\E8:k9=\E9:\
+ :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\E7F7:mh=\E7F2:nd=\EC:\
+ :nl=\EB:se=\E0@:sf=^J:so=\E9P:sr=\EI:ta=^I:ue=\E7R3\E0@:\
+ :up=\EA:us=\E7R2\E9P:vb=\E7F4\E7B1\013\E7F7\E7B0:ve=\E>:\
+ :vs=\E;:
+
+#### NeWS consoles
+#
+# Console terminal windows under the NeWS (Sun's Display Postscript windowing
+# environment). Note: these have nothing to do with Sony's News workstation
+# line.
+#
+
+# Entry for NeWS's psterm from Eric Messick & Hugh Daniel
+# (psterm: unknown ":sl=\EOl:el=\ENl:" removed -- esr)
+psterm|psterm-basic|NeWS psterm-80x34:\
+ :am:bs:hs:km:ul:\
+ :co#80:it#8:li#34:\
+ :al=\EA:cd=\EB:ce=\EC:cl=^L:cm=\E%d;%d;:cs=\EE%d;%d;:\
+ :dc=\EF:dl=\EK:do=\EP:ei=\ENi:fs=\ENl:ho=\ER:i1=\EN*:\
+ :im=\EOi:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\ET:ll=\EU:\
+ :mb=\EOb:md=\EOd:me=\EN*:mr=\EOr:nd=\EV:rc=^\:sc=^]:se=\ENo:\
+ :sf=\EW:so=\EOo:sr=\EX:ta=^I:te=\ENt:ti=\EOt:ts=\EOl:\
+ :ue=\ENu:up=\EY:us=\EOu:vb=\EZ:
+psterm-96x48|NeWS psterm 96x48:\
+ :co#96:li#48:tc=psterm:
+psterm-90x28|NeWS psterm 90x28:\
+ :co#90:li#28:tc=psterm:
+psterm-80x24|NeWS psterm 80x24:\
+ :co#80:li#24:tc=psterm:
+# This is a faster termcap for psterm. Warning: if you use this termcap,
+# some control characters you type will do strange things to the screen.
+# (psterm-fast: unknown ":sl=^Ol:el=^Nl:" -- esr)
+psterm-fast|NeWS psterm fast version (flaky ctrl chars):\
+ :am:bs:hs:km:ul:\
+ :co#80:it#8:li#34:\
+ :al=^A:cd=^B:ce=^C:cl=^L:cm=\004%d;%d;:cs=\005%d;%d;:dc=^F:\
+ :dl=^K:do=^P:ei=^Ni:fs=^Nl:ho=^R:i1=^N*:im=^Oi:kd=\E[B:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^T:ll=^U:mb=^Ob:md=^Od:me=^N*:\
+ :mr=^Or:nd=^V:rc=^\:sc=^]:se=^No:sf=^W:so=^Oo:sr=^X:ta=^I:\
+ :te=^Nt:ti=^Ot:ts=^Ol:ue=^Nu:up=^Y:us=^Ou:vb=^Z:
+
+#### NeXT consoles
+#
+# Use `glasstty' for the Workspace application
+#
+
+# From: Dave Wetzel <dave@turbocat.snafu.de> 22 Dec 1995
+next|NeXT console:\
+ :am:xt:\
+ :co#80:it#8:li#24:\
+ :bl=^G:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:do=^J:ho=\E[H:\
+ :kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:nd=\E[C:nw=^M^J:se=\E[4;1m:\
+ :sf=^J:so=\E[4;2m:ta=^I:up=\E[A:
+nextshell|NeXT Shell application:\
+ :am:\
+ :co#80:\
+ :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:le=^H:nw=^M^J:ta=^I:
+
+#### SCO consoles
+#
+
+# SCO console and SOS-Syscons console for 386bsd
+# (scoansi: had unknown capabilities
+# :Gc=N:Gd=K:Gh=M:Gl=L:Gu=J:Gv=\072:\
+# :GC=E:GD=B:GH=D:GL=\64:GU=A:GV=\63:GR=C:
+# :G1=?:G2=Z:G3=@:G4=Y:G5=;:G6=I:G7=H:G8=<:\
+# :CW=\E[M:NU=\E[N:RF=\E[O:RC=\E[P:\
+# :WL=\E[S:WR=\E[T:CL=\E[U:CR=\E[V:\
+# I renamed GS/GE/HM/EN/PU/PD/RT and added klone+sgr-dumb, based
+# on the :as:=\E[12m -- esr)
+# SCO function keys and <acsc> corrected by Thomas Dickey.
+# In this description based on SCO's keyboard(HW) manpage list of default function key
+# values:
+# F13-F24 are shifted F1-F12
+# F25-F36 are control F1-F12
+# F37-F48 are shift+control F1-F12
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+scoansi|SCO Extended ANSI standard crt:\
+ :am:eo:xo:\
+ :Co#8:co#80:it#8:li#25:pa#64:\
+ :@1=\E[E:@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:F1=\E[W:\
+ :F2=\E[X:F3=\E[Y:F5=\E[a:F6=\E[b:F7=\E[c:F8=\E[d:F9=\E[e:\
+ :FA=\E[f:FB=\E[g:FC=\E[h:FD=\E[i:FE=\E[j:FF=\E[k:FG=\E[l:\
+ :FH=\E[m:FI=\E[n:FJ=\E[o:FK=\E[p:FL=\E[q:FM=\E[r:FN=\E[s:\
+ :FO=\E[t:FP=\E[u:FQ=\E[v:FR=\E[w:FS=\E[x:FT=\E[y:FU=\E[z:\
+ :FV=\E[@:FW=\E[[:FX=\E[\:FY=\E[]:FZ=\E[\136:Fa=\E[_:\
+ :Fb=\E[`:Fc=\E[{:\
+ :ac=0[5566778899\072\072;;<<==>>FFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXX`ja0fxgqh2jYk?lZm@nEqDtCu4vAwBx3~y:\
+ :ae=\E[10m:al=\E[L:as=\E[12m:bt=\E[Z:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
+ :ho=\E[H:ic=\E[@:im=:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\
+ :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:\
+ :kI=\E[L:kN=\E[G:kP=\E[I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0;10m:\
+ :mk=\E[8m:mr=\E[7m:nd=\E[C:op=\E[37;40m:se=\E[m:sf=\E[S:\
+ :so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+
+#### Sun consoles
+#
+
+# :is1: resets scrolling region in case a previous user had used "tset vt100"
+oldsun|Sun Microsystems Workstation console:\
+ :am:bs:km:mi:ms:\
+ :co#80:it#8:li#34:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=:i1=\E[1r:ic=\E[@:im=:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:ta=^I:up=\E[A:
+# From: Alexander Lukyanov <lav@video.yars.free.net>, 14 Nov 1995
+# :li: capability later corrected by J.T. Conklin <jtc@cygnus.com>
+# SGR 1, 4 aren't supported - removed bold/underline (T.Dickey 17 Jan 1998)
+sun-il|Sun Microsystems console with working insert-line:\
+ :am:km:ms:\
+ :co#80:li#34:\
+ :%7=\E[194z:&5=\E[193z:&8=\E[195z:@7=\E[220z:AL=\E[%dL:\
+ :DC=\E[%dP:DL=\E[%dM:F1=\E[234z:F2=\E[235z:IC=\E[%d@:\
+ :K2=\E[218z:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ic=\E[@:im=:\
+ :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\
+ :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:\
+ :kD=\177:kN=\E[222z:kP=\E[216z:kb=^H:kd=\E[B:kh=\E[214z:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md@:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r2=\E[s:\
+ :..sa=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m:\
+ :se=\E[m:sf=^J:so=\E[7m:ta=^I:u8=\E[1t:u9=\E[11t:ue@:\
+ :up=\E[A:us@:
+# On a SparcStation 5, :al:/:AL: flake out on the last line.
+# Unfortunately, without them the terminal has no way to scroll.
+sun-ss5|Sun SparcStation 5 console:\
+ :AL@:al@:tc=sun-il:
+# If you are using an SS5, change the sun definition to use sun-ss5.
+sun|sun1|sun2|Sun Microsystems Inc. workstation console:\
+ :tc=sun-il:
+
+# From: <john@ucbrenoir> Tue Sep 24 13:14:44 1985
+sun-s|Sun Microsystems Workstation window with status line:\
+ :hs:\
+ :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun:
+sun-e-s|sun-s-e|Sun Microsystems Workstation with status hacked for emacs:\
+ :hs:\
+ :ds=\E]l\E\:fs=\E\:ts=\E]l:tc=sun-e:
+sun-48|Sun 48-line window:\
+ :co#80:li#48:tc=sun:
+sun-34|Sun 34-line window:\
+ :co#80:li#34:tc=sun:
+sun-24|Sun 24-line window:\
+ :co#80:li#24:tc=sun:
+sun-17|Sun 17-line window:\
+ :co#80:li#17:tc=sun:
+sun-12|Sun 12-line window:\
+ :co#80:li#12:tc=sun:
+sun-1|Sun 1-line window for sysline:\
+ :es:hs:\
+ :co#80:li#1:\
+ :ds=^L:fs=\E[K:ts=^M:tc=sun:
+sun-e|sun-nic|sune|Sun Microsystems Workstation without insert character:\
+ :ei@:ic@:im@:\
+ :tc=sun:
+sun-c|sun-cmd|Sun Microsystems Workstation console with scrollable history:\
+ :li#35:\
+ :te=\E[>4h:ti=\E[>4l:tc=sun:
+
+#### Common Desktop Environment
+#
+
+# This ships with Sun's CDE in Solaris 2.5
+# Corrected Sun Aug 9 1998 by Alexander V. Lukyanov <lav@video.yars.free.net>
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+dtterm|CDE desktop terminal:\
+ :am:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:lm#0:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ec=\E[%dX:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E F\E>\E[?1l\E[?7h\E[?45l:k1=\E[11~:k2=\E[12~:\
+ :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
+ :rc=\E8:sc=\E7:se=\E[22;27m:sf=\ED:so=\E[2;7m:sr=\EM:\
+ :st=\EH:ta=^I:ue=\E[24m:up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:\
+ :ve=\E[?25h:vi=\E[?25l:
+
+#### Mach
+#
+
+# From: Matthew Vernon <mcv21@pick.sel.cam.ac.uk>
+mach|Mach Console:\
+ :am:km:\
+ :co#80:it#8:li#25:\
+ :@7=\E[Y:AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\Ec:\
+ :cm=\E[%i%d;%dH:cr=^M:dl=\E[M:do=^J:ho=\E[H:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\
+ :k9=\EOX:k;=\EOY:kD=\E[9:kH=\E[F:kI=\E[@:kN=\E[U:kP=\E[V:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:\
+ :se=\E[0m:sf=^J:so=\E[7m:ta=^I:up=\E[A:
+mach-bold|Mach Console with bold instead of underline:\
+ :ue=\E[0m:us=\E[1m:\
+ :tc=mach:
+
+#### OSF Unix
+#
+
+# OSF/1 1.1 Snapshot 2
+pmcons|pmconsole|PMAX console:\
+ :am:\
+ :co#128:li#57:\
+ :bl=^G:cl=^L:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:
+
+######## UNIX VIRTUAL TERMINALS AND TELNET CLIENTS
+#
+
+#### FSF virtual terminal types
+#
+
+# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
+eterm|gnu emacs term.el terminal emulation:\
+ :am:mi:xn:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cb=\E[1K:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
+ :im=\E[4h:le=^H:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:se=\E[m:\
+ :sf=^J:so=\E[7m:ta=^I:te=\E[2J\E[?47l\E8:ti=\E7\E[?47h:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+
+# Entries for use by the `screen' program by Juergen Weigert,
+# Michael Schroeder, Oliver Laumann. The screen and
+# screen-w entries came with version 3.7.1. The screen2 and screen3 entries
+# come from University of Wisconsin and may be older.
+# (screen: added :ve: on ANSI model -- esr)
+# (screen: added <el1> -- TD)
+
+screen|VT 100/ANSI X3.64 virtual terminal:\
+ :am:km:mi:ms:xn:\
+ :Co#8:co#80:it#8:li#24:pa#64:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\
+ :F2=\E[24~:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
+ :ac=++\054\054--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=\E[4l:\
+ :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :k;=\E[21~:kD=\E[3~:kH=\E[4~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[1~:kl=\EOD:kr=\EOC:\
+ :ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:r2=\Ec:rc=\E8:sc=\E7:se=\E[23m:\
+ :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\EM:\
+ :us=\E[4m:vb=\Eg:ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l:\
+ :tc=ecma+color:
+
+screen-w|VT 100/ANSI X3.64 virtual terminal with 132 cols:\
+ :co#132:tc=screen:
+
+screen2|old VT 100/ANSI X3.64 virtual terminal:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bt=\E[Z:cd=\E[J:\
+ :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ic=:im=\E[4h:k0=\E~:\
+ :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:\
+ :k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\
+ :me=\E[m:nd=\E[C:nw=^M^J:r1=\Ec:rc=\E8:sc=\E7:se=\E[23m:\
+ :sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:
+# (screen3: removed unknown ":xv:LP:G0:" -- esr)
+screen3|older VT 100/ANSI X3.64 virtual terminal:\
+ :km:mi:ms:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
+ :ho=\E[H:im=\E[4h:is=\E)0:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kb=^H:kd=\EOB:ke=\E>:kl=\EOD:kr=\EOC:ks=\E=:ku=\EOA:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:r1=\Ec:\
+ :rc=\E8:sc=\E7:se=\E[23m:sf=^J:so=\E[3m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[24m:up=\EM:us=\E[4m:
+
+# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
+# NCSA telnet is one of the most used telnet clients for the Macintosh. It has
+# been maintained until recently by the National Center for Supercomputer
+# Applications, and it is feature rich, stable and free. It can be downloaded
+# from www.ncsa.edu. This terminfo description file is based on xterm-vt220,
+# xterm+sl, and the docs at NCSA. It works well.
+#
+# NCSA Telnet 2.6 for Macintosh in vt220 8-bit emulation mode
+# The terminal options should be set as follows:
+# Xterm sequences ON
+# use VT wrap mode ON
+# use Emacs arrow keys OFF
+# CTRL-COMND is Emacs meta ON
+# 8 bit mode ON
+# answerback string: "ncsa-vt220-8"
+# setup keys: all disabled
+#
+# Application mode is not used.
+#
+# Other special mappings:
+# Apple VT220
+# HELP Find
+# HOME Insert here
+# PAGEUP Remove
+# DEL Select
+# END Prev Screen
+# PAGEDOWN Next Screen
+#
+# Though it supports ANSI color, NCSA Telnet uses color to represent blinking
+# text.
+#
+# The status-line manipulation is a mapping of the xterm-compatible control
+# sequences for setting the window-title. So you must use tsl and fsl in
+# pairs, since the latter ends the string that is loaded to the window-title.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncsa-m|ncsa-vt220-8|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\
+ :am:hs:km:mi:ms:xn:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\E]0;\007:ei=\E[4l:fs=^G:ho=\E[H:\
+ :if=/usr/share/tabset/vt100:im=\E[4h:\
+ :is=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>:k1=\E[17~:\
+ :k2=\E[18:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E23~:\
+ :k7=\E[24~:k8=\E[25~:k9=\E[26~:kD=\E[4~:kN=\E[6~:kP=\E[3~:\
+ :kb=^H:kd=\E[B:kh=\E[2~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
+ :sc=\E7:se=\E[27m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :te=\E[2J\E8:ti=\E7:ts=\E]0;:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
+ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\
+ :tc=ncsa-m:tc=klone+color:
+ncsa-ns|NCSA Telnet 2.7 for Macintosh in vt220-8 mode:\
+ :hs@:\
+ :ds@:fs@:ts@:tc=ncsa:
+ncsa-m-ns|NCSA Telnet 2.6 for Macintosh in vt220-8 mode:\
+ :hs@:\
+ :ds@:fs@:ts@:tc=ncsa-m:
+# alternate -TD:
+# The documented function-key mapping refers to the Apple Extended Keyboard
+# (e.g., NCSA Telnet's F1 corresponds to a VT220 F6). We use the VT220-style
+# codes, however, since the numeric keypad (VT100) PF1-PF4 are available on
+# some keyboards and many applications require these as F1-F4.
+#
+ncsa-vt220|NCSA Telnet using vt220-compatible function keys:\
+ :F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:\
+ :F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:FA=\E[34~:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:k;=\E[21~:\
+ :tc=ncsa:
+
+#### Pilot Pro Palm-Top
+#
+
+# From: Jason Downs <downsj@downsj.com>, 15 Jun 1997 (Top Gun Telnet's author)
+pilot|tgtelnet|Top Gun Telnet on the Palm Pilot Professional:\
+ :am:xn:\
+ :co#39:li#16:\
+ :bl=^G:cl=\Ec:cm=\Em%+ %+ :cr=^M:do=^J:ho=\Em :kN=^L:kP=^K:\
+ :kb=^H:kd=^J:kl=^H:le=^H:nw=\Em~ :se=\EB:sf=^J:so=\Eb:ta=^I:
+
+######## NON-UNIX CONSOLES
+#
+
+#### MGR
+#
+# MGR is a Bell Labs window system lighter-weight than X.
+# These entries describe MGR's xterm-equivalent.
+# They are courtesy of Vincent Broman <broman@nosc.mil> 14 Jan 1997
+#
+
+mgr|Bellcore MGR (non X) window system terminal emulation:\
+ :am:km:\
+ :AL=\E%da:DC=\E%dE:DL=\E%dd:IC=\E%dA:RA=\E5S:SA=\E5s:\
+ :al=\Ea:bl=^G:cd=\EC:ce=\Ec:cl=^L:cm=\E%r%d;%dM:cr=^M:\
+ :cs=\E%d;%dt:dc=\EE:dl=\Ed:do=\Ef:ei=:hd=\E1;2f:hu=\E1;2u:\
+ :ic=\EA:im=:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :md=\E2n:me=\E0n:mr=\E1n:nd=\Er:nw=^M^J:se=\E0n:sf=^J:\
+ :so=\E1n:ta=^I:ue=\E0n:up=\Eu:us=\E4n:ve=\Eh:vi=\E9h:\
+ :vs=\E0h:
+mgr-sun|Mgr window with Sun keyboard:\
+ :%1=\E[207z:%6=\E[198z:&8=\E[195z:@0=\E[200z:@5=\E197z:\
+ :@7=\E[220z:@8=\E[250z:F1=\E[234z:F2=\E[235z:K1=\E[214z:\
+ :K2=\E[218z:K3=\E[216z:K4=\E[220z:K5=\E[222z:k1=\E[224z:\
+ :k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:k6=\E[229z:\
+ :k7=\E[230z:k8=\E[231z:k9=\E[232z:k;=\E[233z:kN=\E[222z:\
+ :kP=\E[216z:kh=\E[214z:\
+ :tc=mgr:
+mgr-linux|Mgr window with Linux keyboard:\
+ :@7=\E[4~:F1=\E[23~:F2=\E[24~:K1=\E[H:K2=\E[G:K3=\E[5~:\
+ :K4=\E[Y:K5=\E[6~:k0=\E[[J:k1=\E[[A:k2=\E[[B:k3=\E[[C:\
+ :k4=\E[[D:k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
+ :k9=\E[20~:k;=\E[21~:kD=\E[3~:kN=\E[6~:kP=\E[5~:kh=\E[1~:tc=mgr:
+
+#### BeOS
+#
+# BeOS entry for Terminal program Seems to be almost ANSI
+beterm|BeOS Terminal:\
+ :am:eo:mi:ms:xn:xo:\
+ :Co#8:NC#5:co#80:it#8:li#25:pa#64:\
+ :&7=^Z:@7=\E[4~:AB=\E[4%p1%dm:AF=\E[3%p1%dm:AL=\E[%dL:\
+ :DC=\E[%dP:DL=\E[%dM:F1=\E[21~:F2=\E[22~:IC=\E[%d@:\
+ :Sb=\E[%+(m:Sf=\E[%+^^m:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
+ :ch=\E[%i%dG:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:\
+ :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k1=\E[11~:k2=\E[12~:\
+ :k3=\E[13~:k4=\E[14~:k5=\E[15~:k6=\E[16~:k7=\E[17~:\
+ :k8=\E[18~:k9=\E[19~:k;=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
+ :kP=\E[5~:kb=^H:kd=\E[B:kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:md=\E[1m:me=\E[0;10m:mr=\E[7m:nd=\E[C:nw=^M^J:\
+ :op=\E[m:r1=\Ec:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\
+ :st=\EH:ta=^I:u6=\E[%i%d;%dR:u7=\E[6n:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:
+
+#### QNX
+#
+
+# QNX 4.0 Console
+# Michael's original version of this entry had <am@>, :ti=\Ei:,
+# :te=\Eh\ER:; this was so terminfo applications could write the lower
+# right corner without triggering a scroll. The ncurses terminfo library can
+# handle this case with the :ic: capability, and prefers :am: for better
+# optimization. Bug: The <op> capability resets attributes.
+# From: Michael Hunter <mphunter@qnx.com> 30 Jul 1996
+# (removed: :sa=%?%p1%t\E<%;%p2%t\E[%;%p3%t\E(%;%p4%t\E{%;%p6%t\E<%;,:)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+qnx|qnx4|qnx console:\
+ :km:mi:ms:xt:\
+ :co#80:it#4:li#25:\
+ :al=\EE:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\
+ :dc=\Ef:dl=\EF:do=^J:ei=:ho=\EH:ic=\Ee:im=:k1=\377\201:\
+ :k2=\377\202:k3=\377\203:k4=\377\204:k5=\377\205:\
+ :k6=\377\206:k7=\377\207:k8=\377\210:k9=\377\211:\
+ :kD=\377\254:kI=\377\253:kN=\377\252:kP=\377\242:\
+ :kd=\377\251:kh=\377\240:kl=\377\244:kr=\377\246:\
+ :ku=\377\241:le=^H:mb=\E{:md=\E<:me=\E}\E]\E>\E):mr=\E(:\
+ :nd=\EC:rp=\Eg%r%+ %.:se=\E):sf=^J:so=\E(:sr=\EI:ta=^I:\
+ :te=\Eh\ER:ti=\Ei:ue=\E]:up=\EA:us=\E[:ve=\Ey1:vi=\Ey0:\
+ :vs=\Ey2:
+
+# From: Federico Bianchi <bianchi@pc-arte2.arte.unipi.it>, 1 Jul 1998
+# (esr: commented out <scp> and :te: to avoid warnings.)
+# (TD: derive from original qnx4 entry)
+qnxt2|qnx 2.15 serial terminal:\
+ :am:\
+ :!3@:%h@:%j@:&7@:Sb@:Sf@:dc@:ei=:ic@:im=:rp@:se=\E>:so=\E<:te@:ti@:\
+ :ve@:vi@:vs@:\
+ :tc=qnx4:
+
+#### DOS ANSI.SYS variants
+#
+# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
+# documentation (except for the keyboard key reassignment feature, which
+# doen't fit the <pfkey> model well). The klone+acs sequences were valid
+# though undocumented. The <pfkey> capability is untested but should work for
+# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
+ansi.sys-old|ANSI.SYS under PC-DOS 2.1:\
+ :am:bs:mi:ms:xo:\
+ :co#80:li#25:\
+ :RA=\E[?7l:SA=\E[?7h:ce=\E[k:cl=\E[2J:cm=\E[%i%d;%dH:\
+ :do=\E[B:ho=\E[H:is=\E[m\E[?7h:kd=^J:kh=^^:kl=^H:kr=^L:\
+ :ku=^K:le=^H:nd=\E[C:pk=\E[0;%+:;"%s":rc=\E[u:sc=\E[s:\
+ :u6=\E[%i%d;%dR:u7=\E[6n:up=\E[A:\
+ :tc=klone+color:tc=klone+sgr:
+ansi.sys|ANSI.SYS 3.1 and later versions:\
+ :ce=\E[K:tc=ansi.sys-old:
+
+#
+# Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
+# This should only be used when the terminal emulator cannot redefine the keys.
+# Since redefining keys with ansi.sys also affects PC-DOS programs, the key
+# definitions must be restored. If the terminal emulator is quit while in vi
+# or others using :ks:/:ke:, the keypad will not be defined as per PC-DOS.
+# The PgUp and PgDn are prefixed with ESC so that tn3270 can be used on Unix
+# (^U and ^D are already defined for tn3270). The ESC is safe for vi but it
+# does "beep". ESC ESC i is used for Ins to avoid tn3270 ESC i for coltab.
+# Note that :kl: is always BS, because PC-dos can tolerate this change.
+# Caution: vi is limited to 256 string bytes, longer crashes or weirds out vi.
+# Consequently the End keypad key could not be set (it is relatively safe and
+# actually useful because it sends ^@ O, which beeps and opens a line above).
+ansi.sysk|ansisysk|PC-DOS 3.1 ANSI.SYS with keypad redefined for vi:\
+ :is=U2 PC-DOS 3.1 ANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:\
+ :ke=\E[;71;0;71p\E[;72;0;72p\E[;73;0;73p\E[;77;0;77p\E[;80;0;80p\E[;81;0;81p\E[;82;0;82p\E[;83;0;83p:\
+ :ks=\E[;71;30p\E[;72;11p\E[;73;27;21p\E[;77;12p\E[;80;10p\E[;81;27;4p\E[;82;27;27;105p\E[;83;127p:\
+ :tc=ansi.sys:
+#
+# Adds ins/del line/character, hence vi reverse scrolls/inserts/deletes nicer.
+nansi.sys|nansisys|PC-DOS Public Domain NANSI.SYS:\
+ :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\
+ :is=U3 PC-DOS Public Domain NANSI.SYS 9-23-86\n:tc=ansi.sys:
+#
+# See ansi.sysk and nansi.sys above.
+nansi.sysk|nansisysk|PC-DOS Public Domain NANSI.SYS with keypad redefined for vi:\
+ :al=\E[1L:dc=\E[1P:dl=\E[1M:ei=:ic=\E[1@:im=:\
+ :is=U4 PC-DOS Public Domain NANSI.SYS with keypad redefined for vi 9-29-86\n\E[;75;8p:tc=ansi.sysk:
+
+#### OS/2
+#
+
+# Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
+# a Unix-style environment used on OS/2. (Note that the suffix makes some
+# names longer than 14 characters, the nominal maximum).
+#
+# Removed: rmacs=\E[10m, smacs=\E[11m, because OS/2 does not implement acs.
+ansi-emx|ANSI.SYS color:\
+ :am:eo:mi:ms:ut:xn:xo:\
+ :Co#16:co#80:it#8:li#25:pa#64:\
+ :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\
+ :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[1;33;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
+ :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
+ :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
+ :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m\E[1;33;44m:mr=\E[5;37;41m:nd=\E[C:nw=^M^J:\
+ :r1=\Ec:se=\E[0;44m\E[1;33m:sf=^J:so=\E[0;31;47m:st=\EH:\
+ :ta=^I:u8=\E[?6c:u9=\E[c:ue=\E[0;44m\E[1;33m:up=\E[A:\
+ :us=\E[1;31;44m:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:
+ansi-color-2-emx|ANSI.SYS color 2:\
+ :am:eo:mi:ms:ut:xn:xo:\
+ :Co#16:co#80:it#8:li#25:pa#64:\
+ :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\
+ :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[0;37;44m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
+ :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
+ :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
+ :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;37;44m:\
+ :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;44m:\
+ :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\
+ :ue=\E[0;37;44m:up=\E[A:us=\E[1;36;44m:vb=\E[?5h\E[?5l:\
+ :ve=\E[?25h:vi=\E[?25l:
+ansi-color-3-emx|ANSI.SYS color 3:\
+ :am:eo:mi:ms:ut:xn:xo:\
+ :Co#16:co#80:it#8:li#25:pa#64:\
+ :&7=^Z:AB=\E[4%p1%dm:AF=\E[3%p1%dm:DC=\E[%dp:IC=\E[%d@:\
+ :K2=\E[G:S2=\E[11m:S3=\E[10m:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[0;37;40m\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :do=^J:ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:k0=\0D:k1=\0;:\
+ :k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:k7=\0A:k8=\0B:k9=\0C:\
+ :kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:kd=\0P:kh=\0G:kl=\0K:\
+ :kr=\0M:ku=\0H:le=^H:mb=\E[5m:md=\E[1m:me=\E[0;10m:\
+ :mr=\E[1;37;46m:nd=\E[C:nw=^M^J:r1=\Ec:se=\E[0;37;40m:\
+ :sf=^J:so=\E[1;37;46m:st=\EH:ta=^I:u8=\E[?6c:u9=\E[c:\
+ :ue=\E[0;37;40m:up=\E[A:us=\E[0;36;40m:vb=\E[?5h\E[?5l:\
+ :ve=\E[?25h:vi=\E[?25l:
+mono-emx|stupid monochrome ansi terminal with only one kind of emphasis:\
+ :am:\
+ :co#80:it#8:li#24:\
+ :K2=\E[G:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:do=\E[B:\
+ :ho=\E[H:k0=\0D:k1=\0;:k2=\0<:k3=\0=:k4=\0>:k5=\0?:k6=\0@:\
+ :k7=\0A:k8=\0B:k9=\0C:kH=\0O:kI=\0R:kN=\0Q:kP=\0I:kb=^H:\
+ :kd=\0P:kh=\0G:kl=\0K:kr=\0M:ku=\0H:le=\E[D:me=\E[0m:\
+ :mr=\E[7m:nd=\E[C:nw=^M^J:ta=^I:up=\E[A:
+
+# Use this for cygwin32 (tested with beta 19.1)
+# underline is colored bright magenta
+# shifted kf1-kf12 are kf11-kf22
+cygwin|ansi emulation for cygwin32:\
+ :@7=\E[4~:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
+ :F5=\E[28~:F6=\E[29~:F7=\E[31~:F8=\E[32~:F9=\E[33~:\
+ :FA=\E[34~:RA@:SA@:k1=\E[[A:k2=\E[[B:k3=\E[[C:k4=\E[[D:\
+ :k5=\E[[E:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :k;=\E[21~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:\
+ :kh=\E[1~:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :tc=ansi.sys:
+
+
+#### Windows NT
+#
+# This entry fits the Windows NT console when the _POSIX_TERM environment
+# variable is set to 'on'. While the Windows NT POSIX console is seldom used,
+# the Telnet client supplied with both the Windows for WorkGroup 3.11 TCP/IP
+# stack and the Win32 (i.e., Windows 95 and Windows NT 3.1 or later) operating
+# systems is not, and (surprise!) they match very well.
+#
+# See: MS Knowledge Base item Q108581, dated 13-MAY-1997, titled "Setting Up
+# VI POSIX Editor for Windows NT 3.1". True to Microsoft form, not only
+# are the installation instructions a pile of mind-numbing bureaucratese,
+# but the termcap entry is actually broken and unusable as given; the :do:
+# capability is misspelled "d".
+#
+# To use this, you need to a bunch of environment variables:
+#
+# SET _POSIX_TERM=on
+# SET TERM=ansi
+# SET TERMCAP=location of termcap file in POSIX file format
+# which is case-sensitive.
+# e.g. SET TERMCAP=//D/RESKIT35/posix/termcap
+# SET TMP=//C/TEMP
+#
+# Important note: setting the TMP environment variable in POSIX style renders
+# it incompatible with a lot of other applications, including Visual C++. So
+# you should have a separate command window just for vi. All the other
+# variables may be permanently set in the Control Panel\System applet.
+#
+# You can find out more about the restrictions of this facility at
+# <http://www.nentug.org/unix-to-nt/ntposix.htm>.
+#
+# From: Federico Bianchi <bianchi@magna.cisid.unipi.it>, 15 Jan 1997
+ansi-nt|psx_ansi|Microsoft Windows NT console POSIX ANSI mode:\
+ :am:bw:ms:\
+ :co#80:it#8:li#25:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\
+ :ho=\E[H:kb=^H:kd=\E[V:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :me=\E[0m:mr=\E[7m:nd=\E[C:nw=\r\E[S:rc=\E[u:sc=\E[s:\
+ :se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:up=\E[A:
+# From: jew@venus.sunquest.com
+# Date: 19 Feb 93 23:41:07 GMT
+# Here's a combination of ansi and vt100 termcap
+# entries that works nearly perfectly for me
+# (Gateway 2000 Handbook and Microsoft Works 3.0):
+pcmw|PC running Microsoft Works:\
+ :am:xn:\
+ :co#80:it#8:li#24:vt#3:\
+ :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
+ :cm=5\E[%i%d;%dH:cr=^M:ct=2\E[3g:do=^J:ho=\E[H:\
+ :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=2\E[5m:\
+ :md=2\E[1m:me=2\E[m:mr=2\E[7m:nd=2\E[C:nw=5\r\ED:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :rf=/usr/share/lib/tabset/vt100:sc=\E7:se=2\E[m:sf=5\ED:\
+ :so=2\E[7m:sr=5\EM:st=2\EH:ta=^I:ue=2\E[m:up=2\E[A:\
+ :us=2\E[4m:
+
+######## COMMON TERMINAL TYPES
+#
+# This section describes terminal classes and maker brands that are still
+# quite common, but have proprietary command sets not blessed by ANSI.
+#
+
+#### Lear-Siegler (adm)
+#
+# These guys are long since out of the terminals business, but
+# in 1995 many current terminals still have an adm type as one of their
+# emulations (usually their stupidest, and usually labeled adm3, though
+# these `adm3' emulations normally have adm3a+ capabilities).
+#
+# WARNING: Some early ADM terminals (including the ADM3 and ADM5) had a
+# `diagnostic feature' that sending them a ^G while pin 22 (`Ring Indicator')
+# was being held to ground would trigger a send of the top line on the screen.
+# A quick fix might be to drop back to a cheesy 4-wire cable with pin 22
+# hanging in the air. (Thanks to Eric Fischer, <eric@fudge.uchicago.edu>,
+# for clearing up this point.)
+#
+
+adm1a|adm1|lsi adm1a:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cl=\E;:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:le=^H:nd=^L:\
+ :sf=^J:up=^K:
+adm2|lsi adm2:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:kd=^J:kh=^^:kl=^H:\
+ :kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
+# (adm3: removed obsolete ":ma=^K^P:" -- esr)
+adm3|lsi adm3:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=^Z:cr=^M:do=^J:le=^H:sf=^J:
+# The following ADM-3A switch settings are assumed for normal operation:
+# SPACE U/L_DISP CLR_SCRN 24_LINE
+# CUR_CTL LC_EN AUTO_NL FDX
+# Other switches may be set for operator convenience or communication
+# requirements. I recommend
+# DISABLE_KB_LOCK LOCAL_OFF 103 202_OFF
+# ETX_OFF EOT_OFF
+# Most of these terminals required an option ROM to support lower case display.
+# Open the case and look at the motherboard; if you see an open 24-pin DIP
+# socket, you may be out of luck.
+#
+# (adm3a: some capabilities merged in from BRl entry -- esr)
+adm3a|lsi adm3a:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=1\032:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kd=^J:kl=^H:\
+ :kr=^L:ku=^K:le=^H:ma=^K^P:nd=^L:nl=^J:r1=^N:rs=^N:sf=^J:\
+ :up=^K:
+adm3a+|adm3a plus:\
+ :kb=^H:tc=adm3a:
+# (adm5: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" & duplicate ":do=^J:" -- esr)
+adm5|lsi adm5:\
+ :sg#1:\
+ :bl=^G:cd=\EY:ce=\ET:cr=^M:do=^J:kb=^H:kh=^^:se=\EG:so=\EG:tc=adm3a+:
+# A lot of terminals other than adm11s use these. Wherever you see
+# use=adm+sgr with some of its capabilities disabled, try the
+# disabled ones. They may well work but not have been documented or
+# expressed in the using entry. We'd like to cook up an :sa: but the
+# :ae:/:as: sequences of the using entries vary too much.
+adm+sgr|adm style highlight capabilities:\
+ :me=\EG0:mk=\EG1:mr=\EG4:se=\EG0:so=\EG4:ue=\EG0:us=\EG8:
+# LSI ADM-11 from George William Hartwig, Jr. <geo@BRL-TGR.ARPA> via BRL
+# Status line additions from Stephen J. Muir <stephen%comp.lancs.ac.uk@ucl-cs>
+# :kh: from <stephen%comp.lancs.ac.uk@ucl-cs.arpa>. :cl: could also
+# be ^Z, according to his entry.
+# (adm11: :us:=\EG4 was obviously erroneous because it also said
+# :mr:=\EG4. Looking at other ADMs confirms this -- esr)
+adm11|LSI ADM-11:\
+ :am:bs:hs:\
+ :co#80:kn#8:li#24:\
+ :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ds=\Eh:\
+ :fs=\E(\r:ho=^^:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=^^:\
+ :kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:nd=^L:nl=^J:nw=^M^J:ta=^I:\
+ :ts=\EF\E):up=^K:\
+ :tc=adm+sgr:
+# From: Andrew Scott Beals <bandy@lll-crg.ARPA>
+# Corrected by Olaf Siebert <rhialto@polder.ubc.kun.nl>, 11 May 1995
+# Supervisor mode info by Ari Wuolle, <awuolle@delta.hut.fi>, 27 Aug 1996
+# (adm12: removed obsolete ":kn:ma=j^Jk^P^K^Pl ^R^L^L :". This formerly had
+# :is:=\Eq but that looked wrong; this :is: is from Dave Yost <esquire!yost>
+# via BRL. That entry asserted :sg#1:, but I've left that out because
+# neither earlier nor later ADMSs have it -- esr)
+#
+# You will need to get into the supervisor setup before you can set
+# baudrate etc. for your ADM-12+. Press Shift-Ctrl-Setup and you should
+# see a lot more setup options.
+#
+# While in supervisor setup you can also use following codes:
+#
+# Ctrl-P Personality character selections (configure for example what
+# arrow keys send, if I recall correctly)
+# Ctrl-T tabs 1-80 use left&right to move and up to set and
+# Ctrl-V tabs 81-158 down to clear tab. Shift-Ctrl-M sets right margin at cursor
+# Ctrl-B Binary setup (probably not needed. I think that everything can
+# be set using normal setup)
+# Ctrl-A Answerback mode (enter answerback message)
+# Ctrl-U User friendly mode (normal setup)
+# Ctrl-D Defaults entire setup and function keys from EPROM tables
+# Ctrl-S Save both setup and functions keys. Takes from 6 to 10 seconds.
+# Ctrl-R Reads both setup and functions keys from NVM.
+# Shift-Ctrl-X Unlock keyboard and cancel received X-OFF status
+#
+# ADM-12+ supports hardware handshaking, but it is DTR/CTS as opposed to
+# RTS/CTS used nowadays with virtually every modem and computer. 19200
+# bps works fine with hardware flow control.
+#
+# The following null-modem cable should fix this and enable you to use
+# RTS/CTS handshaking (which Linux supports, use CRTSCTS setting). Also
+# set ADM-12+ for DTR handshaking from supervisor setup.
+#
+# PC Serial ADM-12+
+# -------- -------
+# 2 - 3
+# 3 - 2
+# 4 - 5
+# 5 - 20
+# 6,8 - 4
+# 7 - 7
+# 20 - 6,8
+#
+adm12|lsi adm12:\
+ :am:bs:mi:pt:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E0:\
+ :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:ic=\EQ:im=\Eq:\
+ :is=\E0 \E1 \E1 \E1 \E1 \E1 \E1 \E1 \E1:\
+ :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\
+ :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:\
+ :ku=^K:le=^H:nd=^L:st=\E1:up=^K:\
+ :tc=adm+sgr:
+# (adm20: removed obsolete ":kn#7:" -- esr)
+adm20|lear siegler adm20:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\
+ :cm=\E=%i%r%+^_%+^_:cr=^M:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:\
+ :im=:k1=^A:k2=^B:k3=^W:k4=^D:k5=^E:k6=^X:k7=^Z:le=^H:me=\E(:\
+ :nd=^L:se=\E(:so=\E):ta=^I:up=^K:
+adm21|lear siegler adm21:\
+ :sg#1:\
+ :al=30*\EE:bl=^G:cd=\EY:ce=\ET:cr=^M:dc=\EW:dl=30*\ER:do=^J:\
+ :ei=:ic=\EQ:im=:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:mk@:sf=^J:\
+ :tc=adm+sgr:tc=adm3a:
+# (adm22: ":em=:" was an obvious typo for ":ei=:"; also,
+# removed obsolete ":kn#7:ma=j^Jk^P^K^Pl ^R^L^L :";
+# removed bogus-looking \200 from before :cm:. -- esr)
+adm22|lsi adm22:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\
+ :is=\E%\014\014\014\016\003\0\003\002\003\002\0\0\0\0\0\0\0\0\0\0\0:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:l1=F1:l2=F2:\
+ :l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:le=^H:me=\E(:nd=^L:se=\E(:\
+ :so=\E):ta=\Ei:up=^K:
+# ADM 31 DIP Switches
+#
+# This information comes from two versions of the manual for the
+# Lear-Siegler ADM 31.
+#
+# Main board:
+# rear of case
+# +-||||-------------------------------------+
+# + S1S2 ||S +
+# + ||3 +
+# + +
+# + ||S +
+# + ||4 +
+# + +
+# + +
+# + +
+# + +
+# + +
+# +-+ +-+
+# + +
+# + S5 S6 S7 +
+# + == == == +
+# +----------------------------------------------+
+# front of case (keyboard)
+#
+# S1 - Data Rate - Modem
+# S2 - Data Rate - Printer
+# ------------------------
+# Data Rate Setting
+# -------------------
+# 50 0 0 0 0
+# 75 1 0 0 0
+# 110 0 1 0 0
+# 134.5 1 1 0 0
+# 150 0 0 1 0
+# 300 1 0 1 0
+# 600 0 1 1 0
+# 1200 1 1 1 0
+# 1800 0 0 0 1
+# 2000 1 0 0 1
+# 2400 0 1 0 1
+# 3600 1 1 0 1
+# 4800 0 0 1 1
+# 7200 1 0 1 1
+# 9600 0 1 1 1
+# x 1 1 1 1
+#
+# S3 - Interface/Printer/Attributes
+# ---------------------------------
+# Printer Busy Control
+# sw1 sw2 sw3
+# ---------------
+# off off off Busy not active, CD disabled
+# off off on Busy not active, CD enabled
+# off on off Busy active on J5-20, CD disabled
+# on off off Busy active on J5-19, CD disabled - Factory Set.
+# on off on Busy active on J5-19, CD enabled
+#
+# sw4 Used in conjuction with S4 for comm interface control - Fact 0
+#
+# sw5 Secondary Channel Control (Hardware implementation only) - Fact 0
+#
+# sw6 ON enables printer BUSY active LOW - Factory Setting
+# OFF enables printer BUSY active HIGH - If set to this, ADM31 senses
+#
+# sw7 ON - steady cursor - Factory Setting
+# OFF - blinking cursor
+#
+# sw8 ON causes selected attribute character to be displayed
+# OFF causes SPACE to be displayed instead - Factory Setting
+#
+# S4 - Interface
+# --------------
+# Modem Interface
+# S3 S4 S4 S4 S4
+# sw4 sw1 sw2 sw3 sw4
+# ---------------------------
+# OFF ON OFF ON OFF Enable RS-232C interface, Direct Connect and
+# Current Loop disabled - Factory Setting
+# ON ON OFF ON OFF Enable Current Loop interface, Direct Connect
+# disabled
+# OFF OFF ON OFF ON Enable Direct Connect interface, RS-232C and
+# Current Loop Disabled
+#
+# sw5 ON disables dot stretching mode - Factory Setting
+# OFF enables dot stretching mode
+# sw6 ON enables blanking function
+# OFF enables underline function - Factory Setting
+# sw7 ON causes NULLS to be displayed as NULLS
+# OFF causes NULLS to be displayed as SPACES - Factory Setting
+#
+# S5 - Word Structure
+# -------------------
+# sw1 ON enables BREAK key - Factory Setting
+# OFF disables BREAK key
+# sw2 ON selects 50Hz monitor refresh rate
+# OFF selects 60Hz monitor refresh rate - Factory Setting
+#
+# Modem Port Selection
+# sw3 sw4 sw5
+# ---------------
+# ON ON ON Selects 7 DATA bits, even parity, 2 STOP bits
+# OFF ON ON Selects 7 DATA bits, odd parity, 2 STOP bits
+# ON OFF ON Selects 7 DATA bits, even parity, 1 STOP bit - Factory Set.
+# OFF OFF ON Selects 7 DATA bits, odd parity, 1 STOP bit
+# ON ON OFF Selects 8 DATA bits, no parity, 2 STOP bits
+# OFF ON OFF Selects 8 DATA bits, no parity, 1 STOP bit
+# ON OFF OFF Selects 8 DATA bits, even parity, 1 STOP bit
+# OFF OFF OFF Selects 8 DATA bits, odd parity, 1 STOP bit
+#
+# sw6 ON sends bit 8 a 1 (mark)
+# OFF sends bit 8 as 0 (space) - Factory Setting
+# sw7 ON selects Block Mode
+# OFF selects Conversation Mode - Factory Setting
+# sw8 ON selects Full Duplex operation
+# OFF selects Half Duplex operation - Factory Setting
+#
+# S6 - Printer
+# ------------
+# sw1, sw2, sw6, sw7 Reserved - Factory 0
+#
+# Printer Port Selection
+# same as Modem above, bit 8 (when 8 DATA bits) is always = 0
+#
+# sw8 ON enables Printer Port
+# OFF disables Printer Port - Factory Setting
+#
+# S7 - Polling Address
+# --------------------
+# sw1-7 Establish ASCII character which designates terminal polling address
+# ON = logic 0
+# OFF = logic 1 - Factory Setting
+# sw8 ON enables Polling Option
+# OFF disables Polling Option - Factory Setting
+#
+#
+# On some older adm31s, S4 does not exist, and S5-sw6 is not defined.
+#
+# This adm31 entry uses underline as the standout mode.
+# If the adm31 gives you trouble with standout mode, check the DIP switch in
+# position 6, bank @c11, 25% from back end of the circuit board. Should be
+# OFF. If there is no such switch, you have an old adm31 and must use oadm31.
+# (adm31: removed obsolete ":ma=j^Jk^P^K^Pl ^R^L^L :" -- esr)
+adm31|lsi adm31 with sw6 set for underline mode:\
+ :am:bs:mi:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E0:k0=^A0\r:\
+ :k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:k6=^A6\r:\
+ :k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:\
+ :me=\EG0:nd=^L:se=\EG0:sf=^J:so=\EG1:ue=\EG0:up=^K:us=\EG1:
+adm31-old|o31|old adm31:\
+ :so=\EG4:ue@:us@:tc=adm31:
+# LSI ADM-36 from Col. George L. Sicherman <gloria!colonel> via BRL
+adm36|LSI ADM36:\
+ :bs:pt:\
+ :kn#4:\
+ :if=/usr/lib/tabset/vt100:\
+ :is=\E<\E>\E[6;?2;?7;?8h\E[4;20;?1;?3;?4;?5;?6;?18;?19l:tc=vt100:
+# (adm42: removed obsolete ":ma=^K^P:" -- esr)
+adm42|lsi adm42:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:im=\Eq:ip=:kd=^J:kh=^^:\
+ :kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:pc=\177:sf=^J:ta=^I:ue@:\
+ :up=^K:us@:vs=\EC\E3 \E3(:\
+ :tc=adm+sgr:
+# The following termcap for the Lear Siegler ADM-42 leaves the
+# "system line" at the bottom of the screen blank (for those who
+# find it distracting otherwise)
+adm42-ns|lsi adm-42 with no system line:\
+ :al=\EE\EF \011:bt=\EI\EF \011:cd=\EY\EF \011:\
+ :ce=\ET\EF \011:cl=\E;\EF \011:cm=\E=%+ %+ \EF \011:\
+ :dc=\EW\EF \011:dl=\ER\EF \011:ei=\Er\EF \011:\
+ :im=\Eq\EF \011:tc=adm42:
+# ADM 1178 terminal -- rather like an ADM-42. Manual is dated March 1 1985.
+# The insert mode of this terminal is commented out because it's broken for our
+# purposes in that it will shift the position of every character on the page,
+# not just the cursor line!
+# From: Michael Driscoll <fenris@lightspeed.net> 10 July 1996
+adm1178|1178|lsi adm1178:\
+ :am:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=\ER:do=^J:ho=^^:ip=6*:kb=^H:kd=^J:kl=^H:\
+ :le=^H:md=\E(:me=\E):mr=\EG4:nd=^L:nw=^M^J:pc=\177:se=\EG0:\
+ :sf=^J:so=\EG4:ta=^I:ue=\EG0:up=^K:us=\EG1:vs=\EC\E3 \E3(:
+
+#### Qume (qvt)
+#
+# Qume, Inc.
+# 3475-A North 1st Street
+# San Jose CA 95134
+# Vox: (800)-457-4447
+# Fax: (408)-473-1510
+# Net: josed@techsupp.wyse.com (Jose D'Oliveira)
+#
+# Qume was bought by Wyse, but still (as of early 1995) has its own support
+# group and production division.
+#
+# Discontinued Qume models:
+#
+# The qvt101 and qvt102 listed here are long obsolete; so is the qvt101+
+# built to replace them, and a qvt119+ which was a 101+ with available wide
+# mode (132 columns). There was a qvt103 which added vt100/vt131 emulations
+# and an ANSI-compatible qvt203 that replaced it. Qume started producing
+# ANSI-compatible terminals with the qvt323 and qvt61.
+#
+# Current Qume models (as of February 1995):
+#
+# All current Qume terminals have ANSI-compatible operation modes.
+# Qume is still producing the qvt62, which features emulations for other
+# popular lines such as ADDS, and dual-host capabilities. The qvt82 is
+# designed for use as a SCO ANSI terminal. The qvt70 is a color terminal
+# with many emulations including Wyse370, Wyse 325, etc. Their newest
+# model is the qvt520, which is vt420-compatible.
+#
+# There are some ancient printing Qume terminals under `Daisy Wheel Printers'
+#
+# If you inherit a Qume without docs, try Ctrl-Shift-Setup to enter its
+# setup mode. Shift-s should be a configuration save to NVRAM.
+
+qvt101|qvt108|qume qvt 101 and QVT 108:\
+ :sg#1:tc=qvt101+:
+
+# This used to have :vs=\E.2: but no :ve: or :vi:. The BSD termcap
+# file had :vs=\EM4 \200\200\200:. I've done the safe thing and yanked
+# both. The :mr: is from BSD, which also claimed bold=\E( and dim=\E).
+# What seems to be going on here is that this entry was designed so that
+# the normal highlight is bold and standout is dim plus something else
+# (reverse-video maybe? But then, are there two :mr: sequences?)
+qvt101+|qvt101p|qume qvt 101 PLUS product:\
+ :am:bw:hs:ul:\
+ :co#80:li#24:sg#0:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\
+ :ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=:fs=^M:ho=^^:\
+ :ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\
+ :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:\
+ :kB=\EI:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:\
+ :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\EA:po=\E@:se=\E(:sf=^J:\
+ :so=\E0P\E):st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:\
+ :tc=adm+sgr:
+qvt102|qume qvt 102:\
+ :ve=\E.:tc=qvt101:
+# (qvt103: added <rmam>/<smam> based on init string -- esr)
+qvt103|qume qvt 103:\
+ :am:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
+ :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
+ :ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+qvt103-w|qume qvt103 132 cols:\
+ :co#132:li#24:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt103:
+qvt119+|qvt119p|qvt119|qume qvt 119 and 119PLUS terminals:\
+ :am:hs:mi:ms:\
+ :co#80:li#24:sg#0:\
+ :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*1:cm=\E=%+ %+ :\
+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:\
+ :ho=^^:im=\Eq:is=\EDF\EC\EG0\Er\E(\E%EX:k0=^AI\r:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:\
+ :ku=^K:le=^H:nd=^L:pf=\EA:po=\E@:sf=^J:sr=\EJ:st=\E1:ta=^I:\
+ :ts=\Eg\Ef:up=^K:us=\EG8:vb=\En0\En1:ve=\E.4:vs=\E.2:\
+ :tc=adm+sgr:
+qvt119+-25|qvt119p-25|QVT 119 PLUS with 25 data lines:\
+ :li#25:tc=qvt119+:
+qvt119+-w|qvt119p-w|qvt119-w|QVT 119 and 119 PLUS in 132 column mode:\
+ :co#132:\
+ :is=\EDF\EC\EG0\Er\E(\E%\EX\En4:tc=qvt119+:
+qvt119+-25-w|qvt119p-25-w|qvt119-25-w|QVT 119 and 119 PLUS 132 by 25:\
+ :li#25:tc=qvt119+:
+qvt203|qvt203+|qume qvt 203 Plus:\
+ :al=\E[L:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:ip=:k0=\E[29~:\
+ :k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:\
+ :k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[28~:sf=\n:\
+ :tc=qvt103:
+qvt203-w|qvt203-w-am|qume qvt 203 PLUS in 132 cols (w/advanced video):\
+ :co#132:li#24:\
+ :r2=\E>\E[?3h\E[?4l\E[?5l\E[?8h:tc=qvt203:
+#
+# Since a command is present for enabling 25 data lines,
+# a specific terminfo entry may be generated for the 203.
+# If one is desired for the QVT 119 PLUS then 25 lines must
+# be selected in the status line (setup line 9).
+#
+qvt203-25|QVT 203 PLUS with 25 by 80 column mode:\
+ :co#80:li#25:\
+ :is=\E[=40h\E[?3l:tc=qvt203:
+qvt203-25-w|QVT 203 PLUS with 25 by 132 columns:\
+ :co#132:li#25:\
+ :r2=\E[?3h\E[=40h:tc=qvt203:
+
+#### Televideo (tvi)
+#
+# TeleVideo
+# 550 East Brokaw Road
+# PO Box 49048 95161
+# San Jose CA 95112
+# Vox: (408)-954-8333
+# Fax: (408)-954-0623
+#
+#
+# There are some tvi terminals that require incredible amounts of padding and
+# some that don't. I'm assuming tvi912 and tvi920 are the old slow ones, and
+# tvi912b, tvi912c, tvi920b, tvi920c are the new ones that don't need padding.
+#
+# All of these terminals (912 to 970 and the tvipt) are discontinued. Newer
+# Televideo terminals are ANSI and PC-ANSI compatible.
+
+tvi803|televideo 803:\
+ :cl=\E*:tc=tvi950:
+
+# Vanilla tvi910 -- W. Gish <cswarren@violet> 10/29/86
+# Switch settings are:
+#
+# S1 1 2 3 4
+# D D D D 9600
+# D D D U 50
+# D D U D 75
+# D D U U 110
+# D U D D 135
+# D U D U 150
+# D U U D 300
+# D U U U 600
+# U D D D 1200
+# U D D U 1800
+# U D U D 2400
+# U D U U 3600
+# U U D D 4800
+# U U D U 7200
+# U U U D 9600
+# U U U U 19200
+#
+# S1 5 6 7 8
+# U D X D 7N1 (data bits, parity, stop bits) (X means ignored)
+# U D X U 7N2
+# U U D D 7O1
+# U U D U 7O2
+# U U U D 7E1
+# U U U U 7E2
+# D D X D 8N1
+# D D X U 8N2
+# D U D D 8O1
+# D U U U 8E2
+#
+# S1 9 Autowrap
+# U on
+# D off
+#
+# S1 10 CR/LF
+# U do CR/LF when CR received
+# D do CR when CR received
+#
+# S2 1 Mode
+# U block
+# D conversational
+#
+# S2 2 Duplex
+# U half
+# D full
+#
+# S2 3 Hertz
+# U 50
+# D 60
+#
+# S2 4 Edit mode
+# U local
+# D duplex
+#
+# S2 5 Cursor type
+# U underline
+# D block
+#
+# S2 6 Cursor down key
+# U send ^J
+# D send ^V
+#
+# S2 7 Screen colour
+# U green on black
+# D black on green
+#
+# S2 8 DSR status (pin 6)
+# U disconnected
+# D connected
+#
+# S2 9 DCD status (pin 8)
+# U disconnected
+# D duplex
+#
+# S2 10 DTR status (pin 20)
+# U disconnected
+# D duplex
+# (tvi910: removed obsolete ":ma=^Kk^Ll^R^L:"; added :kh:, :le:, :do:,
+# :sf:, <hpa>, <vpa>, :am:, :ms: from SCO entry -- esr)
+tvi910|televideo model 910:\
+ :am:bs:ms:\
+ :co#80:it#8:li#24:sg#1:\
+ :bl=^G:bt=\EI:cd=\EY:ce=\ET:ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :\
+ :cr=^M:cv=\E[%+ :do=^J:ho=\E=\001\001:\
+ :if=/usr/share/tabset/stdcrt:k0=^AI\r:k1=^A@\r:k2=^AA\r:\
+ :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\
+ :k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:\
+ :sf=^J:ta=^I:up=^K:\
+ :tc=adm+sgr:
+# From: Alan R. Rogers <rogers%albany@csnet-relay>
+# as subsequently hacked over by someone at SCO
+# (tvi910+: removed obsolete ":ma=^K^P^L :" -- esr)
+#
+# Here are the 910+'s DIP switches (U = up, D = down, X = don't care):
+#
+# S1 1 2 3 4:
+# D D D D 9600 D D D U 50 D D U D 75 D D U U 110
+# D U D D 135 D U D U 150 D U U D 300 D U U U 600
+# U D D D 1200 U D D U 1800 U D U D 2400 U D U U 3600
+# U U D D 4800 U U D U 7200 U U U D 9600 U U U U 19200
+#
+# S1 5 6 7 8:
+# U D X D 7N1 U D X U 7N2 U U D D 7O1 U U D U 7O2
+# U U U D 7E1 U U U U 7E2 D D X D 8N1 D D X U 8N2
+# D U D D 8O1 D U U U 8E2
+#
+# S1 9 Autowrap (U = on, D = off)
+# S1 10 CR/LF (U = CR/LF on CR received, D = CR on CR received)
+# S2 1 Mode (U = block, D = conversational)
+# S2 2 Duplex (U = half, D = full)
+# S2 3 Hertz (U = 50, D = 60)
+# S2 4 Edit mode (U = local, D = duplex)
+# S2 5 Cursor type (U = underline, D = block)
+# S2 6 Cursor down key (U = send ^J, D = send ^V)
+# S2 7 Screen colour (U = green on black, D = black on green)
+# S2 8 DSR status (pin 6) (U = disconnected, D = connected)
+# S2 9 DCD status (pin 8) (U = disconnected, D = connected)
+# S2 10 DTR status (pin 20) (U = disconnected, D = connected)
+#
+tvi910+|televideo 910+:\
+ :al=\EE:dc=\EW:dl=\ER:ei=:ho=^^:ic=\EQ:im=:k0=^A@\r:k1=^AA\r:\
+ :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
+ :k8=^AH\r:k9=^AI\r:ll=\E=7 :\
+ :tc=tvi910:
+
+# (tvi912: removed obsolete ":ma=^K^P^L :", added :vb: and
+# :kh: from BRL entry -- esr)
+tvi912|tvi914|tvi920|old televideo 912/914/920:\
+ :am:bs:ms:pt:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=\EE:bl=^G:cd=\Ey:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\
+ :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:\
+ :if=/usr/share/tabset/stdcrt:im=:k0=^AI\r:k1=^A@\r:\
+ :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
+ :k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
+ :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:\
+ :vb=\Eb\Ed:
+# the 912 has a <funct> key that's like shift: <funct>8 xmits "^A8\r".
+# The 920 has this plus real function keys that xmit different things.
+# Terminfo makes you use the funct key on the 912 but the real keys on the 920.
+tvi912c|tvi912b|new televideo 912:\
+ :al=\EE:dl=\ER:tc=tvi912:
+# set to page 1 when entering curses application (\E-17 )
+# reset to page 0 when exiting curses application (\E-07 )
+tvi912-2p|tvi920-2p|tvi-2p|televideo w/2 pages:\
+ :te=\E-07 :ti=\E-17 :tc=tvi912:
+# We got some new tvi912c terminals that act really weird on the regular
+# termcap, so one of our gurus worked this up. Seems that cursor
+# addressing is broken.
+tvi912cc|tvi912 at cowell college:\
+ :cm@:tc=tvi912c:
+
+# Here are the switch settings for the tvi920c:
+#
+# S1 (Line), and S3 (Printer) baud rates -- put one, and only one, switch down:
+# 2: 9600 3: 4800 4: 2400 5: 1200
+# 6: 600 7: 300 8: 150 9: 75
+# 10: 110
+#
+# S2 UART/Terminal options:
+# Up Down
+# 1: Not used Not allowed
+# 2: Alternate character set Standard character set
+# 3: Full duplex Half duplex
+# 4: 50 Hz refresh 60 Hz refresh
+# 5: No parity Send parity
+# 6: 2 stop bits 1 stop bit
+# 7: 8 data bits 7 data bits
+# 8: Not used Not allowed on Rev E or lower
+# 9: Even parity Odd parity
+# 10: Steady cursor Blinking cursor
+# (On Rev E or lower, use W25 instead of switch 10.)
+#
+# S5 UART/Terminal options:
+# Open Closed
+# 1: P3-6 Not connected DSR received on P3-6
+# 2: P3-8 Not connected DCD received on P3-8
+#
+# 3 Open, 4 Open: P3-20 Not connected
+# 3 Open, 4 Closed: DTR on when terminal is on
+# 3 Closed, 4 Open: DTR is connected to RTS
+# 3 Closed, 4 Closed: Not allowed
+#
+# 5 Closed: HDX printer (hardware control) Rev. K with extension port off,
+# all data transmitted out of the modem port (P3) will also be
+# transmitted out of the printer port (P4).
+#
+# 6 Open, 7 Open: Not allowed
+# 6 Open, 7 Closed: 20ma current loop input
+# 6 Closed, 7 Open: RS232 input
+# 6 Closed, 7 Closed: Not allowed
+#
+# Jumper options:
+# If the jumper is installed, the effect will occur (the next time the terminal
+# is switched on).
+#
+# S4/W31: Enables automatic LF upon receipt of CR from
+# remote or keyboard.
+# S4/W32: Enables transmission of EOT at the end of Send. If not
+# installed, a carriage return is sent.
+# S4/W33: Disables automatic carriage return in column 80.
+# S4/W34: Selects Page Print Mode as initial condition. If not
+# installed, Extension Mode is selected.
+#
+tvi920b|tvi920c|new televideo 920:\
+ :al=\EE:dl=\ER:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\
+ :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\
+ :tc=tvi912:
+
+# Televideo 921 and variants
+# From: Tim Theisen <tim@cs.wisc.edu> 22 Sept 1995
+# (tvi921: removed :ko=bt: before translation, I see no backtab cap;
+# also added empty <acsc> to suppress tic warning -- esr)
+tvi921|televideo model 921 with sysline same as page & real vi function:\
+ :am:bs:hs:pt:xn:xs:\
+ :co#80:li#24:sg#0:\
+ :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\
+ :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\
+ :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\
+ :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\
+ :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:ve=\E.3:\
+ :vs=\E.2:\
+ :tc=adm+sgr:
+# without the beeper
+# (tvi92B: removed :ko=bt: before translation, I see no backtab cap;
+# also added empty <acsc> to suppress tic warning -- esr)
+tvi92B|televideo model 921 with sysline same as page & real vi function & no beeper:\
+ :am:hs:xn:xs:\
+ :co#80:li#24:sg#0:\
+ :ac=:ae=\E%:al=\EE:as=\E$:cd=\EY:ce=\ET:cl=^Z:cm=3\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=1*\ER:do=^V:ds=\Ef\r\Eg:ei=:fs=\Eg:ho=^^:\
+ :ic=\EQ:if=/usr/share/tabset/stdcrt:im=:\
+ :is=\El\E"\EF1\E.3\017\EA\E<:kA=\EE:kC=^Z:kD=\EW:kE=\ET:\
+ :kI=\EQ:kL=1*\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:ku=^K:le=^H:\
+ :mk@:nd=^L:nw=^M^J:sf=^J:ta=^I:ts=\Ef\EG0:up=^K:vb=\Eb\Ed:\
+ :ve=\E.3:vs=\E.2:\
+ :tc=adm+sgr:
+# (tvi92D: removed :ko=bt: before translation, I see no backtab cap -- esr)
+tvi92D|tvi92B with DTR instead of XON/XOFF & better padding:\
+ :al=2*\EE:dl=2*\ER:is=\El\E"\EF1\E.3\016\EA\E<:kA=2*\EE:\
+ :kL=2*\ER:\
+ :tc=tvi92B:
+
+# (tvi924: This used to have :ds=\Es0:, :fs=\031:. I put the new strings
+# in from a BSD termcap file because it looks like they do something the
+# old ones skip -- esr)
+tvi924|televideo tvi924:\
+ :am:bw:hs:in:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:sg#0:ws#80:\
+ :F1=^AK\r:F2=^AL\r:F3=^AM\r:F4=^AN\r:F5=^AO\r:al=\EE:bl=^G:\
+ :bt=\EI:cd=\Ey:ce=\Et:cl=\E*0:cm=\E=%+ %+ :cr=^M:\
+ :cs=\E_%+ %+ :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Es0\Ef\031:\
+ :ei=:fs=\031\Es1:ho=^^:\
+ :i1=\017\E%\E'\E(\EDF\EC\EG0\EN0\Es0\Ev0:ic=\EQ:\
+ :if=/usr/share/tabset/stdcrt:im=:k0=^A@\r:k1=^AA\r:\
+ :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
+ :k8=^AH\r:k9=^AI\r:k;=^AJ\r:kA=\EE:kC=\E*0:kD=\EW:kE=\Et:\
+ :kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:\
+ :l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:l9=F10:\
+ :la=F11:le=^H:mb=\EG2:mk@:nd=^L:pk=\E|%+1%s\031:sf=^J:\
+ :sr=\Ej:st=\E1:ta=^I:ts=\Ef:up=^K:vb=\Eb\Ed:ve=\E.3:vi=\E.0:\
+ :vs=\E.1:\
+ :tc=adm+sgr:
+
+# TVI925 DIP switches. In each of these, D = Down and U = Up,
+#
+# Here are the settings for the external (baud) switches (S1):
+#
+# Position Baud
+# 7 8 9 10 [Printer]
+# 1 2 3 4 [Main RS232]
+# -----------------------------------------------------
+# D D D D 9600
+# D D D U 50
+# D D U D 75
+# D D U U 110
+# D U D D 135
+# D U D U 150
+# D U U D 300
+# D U U U 600
+# U D D D 1200
+# U D D U 1800
+# U D U D 2400
+# U D U U 3600
+# U U D D 4800
+# U U D U 7200
+# U U U D 9600
+# U U U U 19200
+#
+#
+# Settings for word length and stop-bits (S1)
+#
+# Position Description
+# 5 6
+# ---------------------------
+# U - 7-bit word
+# D - 8-bit word
+# - U 2 stop bits
+# - D 1 stop bit
+#
+#
+# S2 (external) settings
+#
+# Position Up Dn Description
+# --------------------------------------------
+# 1 X Local edit
+# X Duplex edit (transmit editing keys)
+# --------------------------------------------
+# 2 X 912/920 emulation
+# X 925
+# --------------------------------------------
+# 3 X
+# 4 X No parity
+# 5 X
+# --------------------------------------------
+# 3 X
+# 4 X Odd parity
+# 5 X
+# --------------------------------------------
+# 3 X
+# 4 X Even parity
+# 5 X
+# --------------------------------------------
+# 3 X
+# 4 X Mark parity
+# 5 X
+# --------------------------------------------
+# 3 X
+# 4 X Space parity
+# 5 X
+# --------------------------------------------
+# 6 X White on black display
+# X Black on white display
+# --------------------------------------------
+# 7 X Half Duplex
+# 8 X
+# --------------------------------------------
+# 7 X Full Duplex
+# 8 X
+# --------------------------------------------
+# 7 X Block mode
+# 8 X
+# --------------------------------------------
+# 9 X 50 Hz
+# X 60 Hz
+# --------------------------------------------
+# 10 X CR/LF (Auto LF)
+# X CR only
+#
+# S3 (internal switch) settings:
+#
+# Position Up Dn Description
+# --------------------------------------------
+# 1 X Keyclick off
+# X Keyclick on
+# --------------------------------------------
+# 2 X English
+# 3 X
+# --------------------------------------------
+# 2 X German
+# 3 X
+# --------------------------------------------
+# 2 X French
+# 3 X
+# --------------------------------------------
+# 2 X Spanish
+# 3 X
+# --------------------------------------------
+# 4 X Blinking block cursor
+# 5 X
+# --------------------------------------------
+# 4 X Blinking underline cursor
+# 5 X
+# --------------------------------------------
+# 4 X Steady block cursor
+# 5 X
+# --------------------------------------------
+# 4 X Steady underline cursor
+# 5 X
+# --------------------------------------------
+# 6 X Screen blanking timer (ON)
+# X Screen blanking timer (OFF)
+# --------------------------------------------
+# 7 X Page attributes
+# X Line attributes
+# --------------------------------------------
+# 8 X DCD disconnected
+# X DCD connected
+# --------------------------------------------
+# 9 X DSR disconnected
+# X DSR connected
+# --------------------------------------------
+# 10 X DTR Disconnected
+# X DTR connected
+# --------------------------------------------
+#
+# (tvi925: BSD has :cl=\E*:. I got :is: and :sr: from there -- esr)
+tvi925|televideo 925:\
+ :am:bs:bw:hs:ul:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:\
+ :ct=\E3:dc=\EW:dl=\ER:do=^V:ds=\Eh:ei=:fs=^M\Eg:ho=^^:ic=\EQ:\
+ :im=:is=\El\E":k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:\
+ :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\
+ :kA=\EE:kC=^Z:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:\
+ :kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:nd=^L:sf=^J:sr=\Ej:st=\E1:\
+ :ta=^I:ts=\Eh\Ef:up=^K:vb=\Eb\Ed:ve=\E.4:vs=\E.2:\
+ :tc=adm+sgr:
+# TeleVideo 925 from Mitch Bradley <sun!wmb> via BRL
+# to avoid "magic cookie" standout glitch:
+tvi925-hi|TeleVideo Model 925 with half intensity standout mode:\
+ :sg@:\
+ :kb=^H:kd=^J:kl=^H:se=\E(:so=\E):tc=tvi925:
+
+# From: Todd Litwin <litwin@litwin.jpl.nasa.gov> 28 May 1993
+# Originally Tim Curry, Univ. of Central Fla., <duke!ucf-cs!tim> 5/21/82
+# for additional capabilities,
+# The following tvi descriptions from B:pjphar and virus!mike
+# is for all 950s. It sets the following attributes:
+# full duplex (\EDF) write protect off (\E()
+# conversation mode (\EC) graphics mode off (\E%)
+# white on black (\Ed) auto page flip off (\Ew)
+# turn off status line (\Eg) clear status line (\Ef\r)
+# normal video (\E0) monitor mode off (\EX or \Eu)
+# edit mode (\Er) load blank char to space (\Ee\040)
+# line edit mode (\EO) enable buffer control (^O)
+# protect mode off (\E\047) duplex edit keys (\El)
+# program unshifted send key to send line all (\E016)
+# program shifted send key to send line unprotected (\E004)
+# set the following to nulls:
+# field delimiter (\Ex0\200\200)
+# line delimiter (\Ex1\200\200)
+# start-protected field delimiter (\Ex2\200\200)
+# end-protected field delimiter (\Ex3\200\200)
+# set end of text delimiter to carriage return/null (\Ex4\r\200)
+#
+# TVI 950 Switch Setting Reference Charts
+#
+# TABLE 1:
+#
+# S1 1 2 3 4 5 6 7 8 9 10
+# +-----------------------+-----+-----+-----------------------+
+# | Computer Baud Rate |Data |Stop | Printer Baud Rate |
+# | |Bits |Bits | |
+# +------+-----------------------+-----+-----+-----------------------+
+# | Up | See | 7 | 2 | See |
+# +------+-----------------------+-----+-----+-----------------------+
+# | Down | TABLE 2 | 8 | 1 | TABLE 2 |
+# +------+-----------------------+-----+-----+-----------------------+
+#
+#
+# S2 1 2 3 4 5 6 7 8 9 10
+# +-----+-----+-----------------+-----+-----------+-----+-----+
+# |Edit |Cursr| Parity |Video|Transmiss'n| Hz |Click|
+# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+# | Up | Dplx|Blink| See |GonBk| See | 60 | Off |
+# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+# | Down |Local|St'dy| TABLE 3 |BkonG| CHART | 50 | On |
+# +------+-----+-----+-----------------+-----+-----------+-----+-----+
+#
+# TABLE 2:
+#
+# +-----------+-----+-----+-----+-----+-----------+
+# | Display | 1 | 2 | 3 | 4 | Baud |
+# +-----------+-----+-----+-----+-----+ |
+# | Printer | 7 | 8 | 9 | 10 | Rate |
+# +-----------+-----+-----+-----+-----+-----------+
+# | D | D | D | D | 9600 |
+# | U | D | D | D | 50 |
+# | D | U | D | D | 75 |
+# | U | U | D | D | 110 |
+# | D | D | U | D | 135 |
+# | U | D | U | D | 150 |
+# | D | U | U | D | 300 |
+# | U | U | U | D | 600 |
+# | D | D | D | U | 1200 |
+# | U | D | D | U | 1800 |
+# | D | U | D | U | 2400 |
+# | U | U | D | U | 3600 |
+# | D | D | U | U | 4800 |
+# | U | D | U | U | 7200 |
+# | D | U | U | U | 9600 |
+# | U | U | U | U | 19200 |
+# +-----+-----+-----+-----+-----------+
+#
+# TABLE 3:
+# +-----+-----+-----+-----------+
+# | 3 | 4 | 5 | Parity |
+# +-----+-----+-----+-----------+
+# | X | X | D | None |
+# | D | D | U | Odd |
+# | D | U | U | Even |
+# | U | D | U | Mark |
+# | U | U | U | Space |
+# +-----+-----+-----+-----------+
+# X = don't care
+#
+# CHART:
+# +-----+-----+-----------------+
+# | 7 | 8 | Communication |
+# +-----+-----+-----------------+
+# | D | D | Half Duplex |
+# | D | U | Full Duplex |
+# | U | D | Block |
+# | U | U | Local |
+# +-----+-----+-----------------+
+#
+# (tvi950: early versions had obsolete ":ma=^Vj^Kk^Hh^Ll^^H:".
+# I also inserted :ic: and :kI:; the :ko: string indicated that :IC:
+# should be present and all tvi native modes use the same string for this.
+# Finally, note that BSD has cud1=^V. -- esr)
+tvi950|televideo 950:\
+ :am:bs:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:sg#1:\
+ :ac=b\011c\014d\re\ni\013:ae=^X:al=\EE:as=^U:bl=^G:bt=\EI:\
+ :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E3:dc=\EW:\
+ :dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:ic=\EQ:im=\Eq:\
+ :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\Ef\r:\
+ :k0=^A0\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\
+ :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:\
+ :kD=\EW:kE=\Et:kI=\EQ:kL=\ER:kS=\Ey:kb=^H:kd=^V:kh=^^:kl=^H:\
+ :kr=^L:ku=^K:le=^H:mk@:nd=^L:pf=\Ea:po=\E`:sf=^J:sr=\Ej:\
+ :st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\
+ :tc=adm+sgr:
+#
+# is for 950 with two pages adds the following:
+# set 48 line page (\E\\2)
+# place cursor at page 0, line 24, column 1 (\E-07 )
+# set local (no send) edit keys (\Ek)
+#
+# two page 950 adds the following:
+# when entering ex, set 24 line page (\E\\1)
+# when exiting ex, reset 48 line page (\E\\2)
+# place cursor at 0,24,1 (\E-07 )
+# set duplex (send) edit keys (\El) when entering vi
+# set local (no send) edit keys (\Ek) when exiting vi
+#
+tvi950-2p|televideo950 w/2 pages:\
+ :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 \011:\
+ :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :\
+ :tc=tvi950:
+#
+# is for 950 with four pages adds the following:
+# set 96 line page (\E\\3)
+# place cursor at page 0, line 24, column 1 (\E-07 )
+#
+# four page 950 adds the following:
+# when entering ex, set 24 line page (\E\\1)
+# when exiting ex, reset 96 line page (\E\\3)
+# place cursor at 0,24,1 (\E-07 )
+#
+tvi950-4p|televideo950 w/4 pages:\
+ :is=\EDF\EC\Ed\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 \011:\
+ :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :\
+ :tc=tvi950:
+#
+# :is: for reverse video 950 changes the following:
+# set reverse video (\Ed)
+#
+# set vb accordingly (\Ed ...delay... \Eb)
+#
+tvi950-rv|televideo950 rev video:\
+ :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\El\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0:\
+ :vb=\Ed\Eb:\
+ :tc=tvi950:
+
+# tvi950-rv-2p uses the appropriate entries from 950-2p and 950-rv
+tvi950-rv-2p|televideo950 rev video w/2 pages:\
+ :is=\EDF\EC\Eb\EG0\Eg\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\2\E-07 :\
+ :ke=\Ek:ks=\El:te=\E\2\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\
+ :tc=tvi950:
+
+# tvi950-rv uses the appropriate entries from 950-4p and 950-rv
+tvi950-rv-4p|televideo950 rev video w/4 pages:\
+ :is=\EDF\EC\Eb\EG0\Er\EO\E'\E(\E%\Ew\EX\Ee \017\011\Ek\E016\E004\Ex0\0\0\Ex1\0\0\Ex2\0\0\011\Ex3\0\0\Ex4\r\0\E\3\E-07 :\
+ :ke=\Ek:ks=\El:te=\E\3\E-07 :ti=\E\1\E-07 :vb=\Ed\Eb:\
+ :tc=tvi950:
+# From: Andreas Stolcke <stolcke@icsi.berkeley.edu>
+# (tvi955: removed obsolete ":ma:=^Vj^Kk^Hh^Ll^^H";
+# removed incorrect (and overridden) ":do=^J:"; fixed broken continuations in
+# the :rs: string, inserted the :IC: implied by the termcap :ko: string. Note
+# the :ko: string had :cl: in it, which means that one of the original
+# :cl=\E*:, <kclr=\EY> had to be wrong; set <kclr=\E*> because that's what
+# the 950 has. Finally, corrected the <kel> string to match the 950 and what
+# ko implies -- esr)
+# If the BSD termcap file was right, :cm=\E=%p1%{32}%+%c%p2%{32}%+%c: would
+# also work.
+tvi955|televideo 955:\
+ :5i:bs:ms@:\
+ :it#8:sg@:\
+ :RA=\E[=7l:RX=^N:SA=\E[=7h:SX=^O:\
+ :ac=0_`RjHkGlFmEnIoPqKsQtMuLvOwNxJ:ae=\E%:as=\E$:\
+ :cm=\E[%i%d;%dH:do=^V:is=\E[=3l\EF1\Ed\EG0\E[=5l\E%\El:\
+ :kM=\EQ:kN=\EK:kP=\EJ:kT=\E1:ka=\E3:kt=\E2:mb=\EG2:\
+ :me=\EG0\E[=5l:mh=\E[=5h:mk=\EG1:ps=\EP:\
+ :r1=\EDF\EC\Eg\Er\EO\E'\E(\Ew\EX\Ee \017\E0P\E6\0\E0p\E4\0\Ef\r:\
+ :sf@:ve=\E.2:vi=\E.0:vs=\E.1:\
+ :tc=tvi950:
+tvi955-w|955-w|televideo955 w/132 cols:\
+ :co#132:\
+ :is=\E[=3h\EF1\Ed\EG0\E[=5l\E%\El:tc=tvi955:
+# use half-intensity as normal mode, full intensity as :md:
+tvi955-hb|955-hb|televideo955 half-bright:\
+ :is=\E[=3l\EF1\Ed\EG0\E[=5h\E%\El:md=\E[=5l:\
+ :me=\EG0\E[=5h:mh@:tc=tvi955:
+# From: Humberto Appleton <beto@cs.utexas.edu>, 880521 UT Austin
+# (tvi970: removed ":sg#0:"; removed :se:=\E[m, :ue:=\E[m;
+# added :am:/:cs:/:ho:/<hpa>/<vpa>/:ti:/:te: from BRL.
+# According to BRL we could have :ke:=\E>, :ks:=\E= but I'm not sure what
+# it does to the function keys. I deduced <rmam>/<smam>.
+# also added empty <acsc> to suppress tic warning, -- esr)
+tvi970|televideo 970:\
+ :am:bs:da:db:mi:ms:pt:\
+ :co#80:it#8:li#24:\
+ :RA=\E[?7h:SA=\E[?7l:ac=:ae=\E(B:al=\E[L:as=\E(B:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\E[H\E[2J:cm=\E[%i%d;%df:\
+ :cs=\E[%i%d;%dr:cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=\ED:\
+ :ds=\Eg\Ef\r:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E<\E[?21l\E[19h\E[1Q\E[10l\E[7l\E[H\E[2J:k1=\E?a:\
+ :k2=\E?b:k3=\E?c:k4=\E?d:k5=\E?e:k6=\E?f:k7=\E?g:k8=\E?h:\
+ :k9=\E?i:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:te=:\
+ :ti=\E[?20l\E[?7h\E[1Q:ue=\E[m:up=\EM:us=\E[4m:\
+ :vb=\E[5m\E[m:vs=\E[1Q:
+tvi970-vb|televideo 970 with visual bell:\
+ :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:tc=tvi970:
+tvi970-2p|televideo 970 with using 2 pages of memory:\
+ :te=\E[H\E[J\E[V:ti=\E[U\E[?20l\E[?7h\E[1Q:\
+ :tc=tvi970:
+# Works with vi and rogue. NOTE: Esc v sets autowrap on, Esc u sets 80 chars
+# per line (rather than 40), Esc K chooses the normal character set. Not sure
+# padding is needed, but adapted from the tvi920c termcap. The :so: and
+# :us: strings are klutzy, but at least use no screen space.
+# (tvipt: removed obsolete ":ma=^Kk^Ll^R^L:". I wish we knew <rmam>,
+# its absence means <smam>=\Ev isn't safe to use. -- esr)
+# From: Gene Rochlin <armsis@amber.berkeley.edu> 9/19/84.
+# The :cd:/:k0:/:k1:/:kh:/<mc4>, and <mc5> caps are from BRL, which says:
+# F1 and F2 should be programmed as ^A and ^B; required for UNIFY.
+tvipt|televideo personal terminal:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dl=\ER:\
+ :ho=^^:if=/usr/share/tabset/stdcrt:is=\Ev\Eu\EK:k0=^A:\
+ :k1=^B:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:pf=^T:\
+ :po=^R:se=\EF:so=\EG1@A\EH:ue=\EF:up=^K:us=\EG1B@\EH:
+# From: Nathan Peterson <nathan@sco.com>, 03 Sep 1996
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+tvi9065|televideo 9065:\
+ :am:bw:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#25:lm#0:ma#4:vt#0:ws#30:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=\E%:\
+ :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\
+ :cm=\E=%+ %+ :cr=^M:cs=\E[%i%d;%dr:ct=\E3:dc=\EW:dl=\ER:\
+ :dm=\Er:do=^V:ds=\E_30\r:ec=\E[%d@:ed=\0:ei=\Er:fs=^M:ho=^^:\
+ :i1=\E"\E%\E'\E(\EG@\EO\EX\E[=5l\E[=6l\E[=7h\Ed\Er:\
+ :i2=\E<\E[=4l\E[=8h:if=/usr/share/tabset/stdcrt:im=\Eq:\
+ :ip=:is=\EF2\EG0\E\L:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kb=^H:\
+ :kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E[25;1H:mb=\EG2:\
+ :md=\EG\054:me=\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^M^J:\
+ :rp=\E[%r%db%.:se=\EG0:sf=^J:so=\EGt:sr=\Ej:st=\E1:ta=^I:\
+ :te=\E.3\Er\E[1;25r\E[25;0H:ti=\E.2:ts=\E[4;1v\E_30:\
+ :uc=\EG8\EG0:ue=\EG0:up=^K:us=\EG8:vb=\Eb\Ed:ve=\E.3:\
+ :vi=\E.0:vs=\E.2:
+
+#### Visual (vi)
+#
+# In September 1993, Visual Technology of Westboro, Massachusetts,
+# merged with White Pine Software of Nashua, New Hampshire.
+#
+# White Pine Software may be contacted at +1 603/886-9050.
+# Or visit White Pine on the World Wide Web at URL http://www.wpine.com.
+#
+
+# Visual 50 from Beau Shekita, BTL-Whippany <whuxlb!ejs>
+# Recently I hacked together the following termcap for Visual
+# Technology's Visual 50 terminal. It's a slight modification of
+# the vt52 termcap.
+# It's intended to run when the Visual 50 is in vt52 emulation mode
+# (I know what you're thinking; if it's emulating a vt52, then why
+# another termcap? Well, it turns out that the Visual 50 can handle
+# :dl: and db(?) among other things, which the vt52 can't)
+# The termcap works OK for the most part. The only problem is on
+# character inserts. The whole line gets painfully redrawn for each
+# character typed. Any suggestions?
+# Beau's entry is combined with the vi50 entry from University of Wisconsin.
+# Note especially the :al: function. :k4:-:k6: are really l4-l6 in
+# disguise; :k7:-:k9: are really l1-l3.
+vi50|visual 50:\
+ :am:bs:da:db:ms:pt:\
+ :co#80:it#8:li#24:\
+ :al=\EL:bl=^G:bt=4\Ez:cd=\EJ:ce=16\EK:cl=\EH\EJ:\
+ :cm=\EY%+ %+ :cr=^M:dl=3*\EM:do=\EB:ho=\EH:k1=\EP:k2=\EQ:\
+ :k3=\ER:k4=\EV:k5=\EE:k6=\E]:k7=\EL:k8=\Ev:k9=\EM:kb=^H:\
+ :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:nl=^J:\
+ :nw=^M^J:se=\ET:sf=^J:so=\EU:sr=\EI:ta=^I:ue=\EW:up=\EA:\
+ :us=\ES:
+# this one was BSD & SCO's vi50
+vi50adm|visual 50 in adm3a mode:\
+ :am:ms:\
+ :co#80:it#8:li#24:\
+ :al=\EL:bl=^G:cd=\Ek:ce=\EK:cl=^Z:cm=\E=%+ %+ :cr=^M:dl=\EM:\
+ :do=^J:ho=\EH:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:\
+ :nd=^L:se=\ET:sf=^J:so=\EU:ta=^I:up=^K:
+# From: Jeff Siegal <jbs@quiotix.com>
+vi55|Visual 55:\
+ :am:bs:mi:ms:\
+ :co#80:it#8:li#24:\
+ :al=\EL:cd=\EJ:ce=\EK:cl=\Ev:cm=\EY%+ %+ :cs=\E_%+A%+A:\
+ :dc=\Ew:dl=\EM:do=^J:ei=\Eb:ho=\EH:im=\Ea:\
+ :is=\Ev\E_AX\Eb\EW\E9P\ET:kb=^H:kd=\EB:kl=\ED:kr=\EC:\
+ :ku=\EA:le=^H:nd=\EC:se=\ET:so=\EU:sr=\EI:ta=^I:up=\EA:
+
+# Visual 200 from BRL
+# The following switch settings are assumed for normal operation:
+# FULL_DUPLEX SCROLL CR
+# AUTO_NEW_LINE_ON VISUAL_200_EMULATION_MODE
+# Other switches may be set for operator convenience or communication
+# requirements.
+# Character insertion is kludged in order to get around the "beep" misfeature.
+# (This cap is commented out because :im:/:ei: is more efficient -- esr)
+# Supposedly "4*" delays should be used for :al:, :cd:, :cl:, :dc:,
+# and :dl: strings, but we seem to get along fine without them.
+vi200|visual 200:\
+ :am:bs:mi:ms:pt:\
+ :co#80:it#8:kn#10:li#24:\
+ :ac=:ae=\EG:al=\EL:as=\EF:bl=^G:bt=\Ez:cd=\Ey:ce=\Ex:cl=\Ev:\
+ :cm=\EY%+ %+ :cr=^M:ct=\Eg:dc=\EO:dl=\EM:do=^J:ho=\EH:\
+ :k0=\E?p:k1=\E?q:k2=\E?r:k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:\
+ :k7=\E?w:k8=\E?x:k9=\E?y:kA=\EL:kC=\Ev:kD=\EO:kE=\Et:kI=\Ei:\
+ :kL=\EM:kM=\Ej:kS=\EJ:kT=\E1:kb=^H:kd=\EB:ke=\E>:kh=\EH:\
+ :kl=\ED:kr=\EC:ks=\E=:kt=\E2:ku=\EA:le=^H:me=\E3\Eb:mh=\E4:\
+ :mk=\Ea:nd=\EC:pf=\EX:po=\EW:ps=\EH\E]:\
+ :r1=\E3\Eb\Ej\E\El\EG\Ec\Ek\EX:se=\E3:sf=^J:so=\E4:\
+ :sr=\EI:st=\E1:ta=^I:up=\EA:ve=\Ec:vs=\Ed:
+# The older Visuals didn't come with function keys. This entry uses
+# :ks: and :ke: so that the keypad keys can be used as function keys.
+# If your version of vi doesn't support function keys you may want
+# to use vi200-f.
+vi200-f|visual 200 no function keys:\
+ :is=\E3\Eb\Ej\E\\El\EG\Ed\Ek:k0=\E?p:k1=\E?q:k2=\E?r:\
+ :k3=\E?s:k4=\E?t:k5=\E?u:k6=\E?v:k7=\E?w:k8=\E?x:k9=\E?y:\
+ :ke=\E>:ks=\E=:se@:so@:\
+ :tc=vi200:
+vi200-rv|visual 200 reverse video:\
+ :se=\E3:so=\E4:sr@:ve@:vs@:tc=vi200:
+
+# the function keys are programmable but we don't reprogram them to their
+# default values with :is: because programming them is very verbose. maybe
+# an initialization file should be made for the 300 and they could be stuck
+# in it.
+# (vi300: added <rmam>/<smam> based on init string -- esr)
+vi300|visual 300 ansi x3.64:\
+ :am:bw:mi:xn:\
+ :co#80:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[1Q\E[0;1(D\E[8s:\
+ :k1=\E_A\E\:k2=\E_B\E\:k3=\E_C\E\:k4=\E_D\E\:k5=\E_E\E\:\
+ :k6=\E_F\E\:k7=\E_G\E\:k8=\E_H\E\:k9=\E_I\E\:kd=\E[B:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\
+ :se=\E[m:sf=^J:so=\E[1m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+# some of the vi300s have older firmware that has the command
+# sequence for setting editing extent reversed.
+vi300-old|visual 300 with old firmware (set edit extent reversed):\
+ :is=\E[7s\E[2;3;4;20;?5;?6l\E[12;?7h\E[2Q\E[0;1(D\E[8s:\
+ :tc=vi300:
+
+# Visual 500 prototype entry from University of Wisconsin.
+# The best place to look for the escape sequences is page A1-1 of the
+# Visual 500 manual. The initialization sequence given here may be
+# overkill, but it does leave out some of the initializations which can
+# be done with the menus in set-up mode.
+# The :xp: line below is so that emacs can understand the padding requirements
+# of this slow terminal. :xp: is 10 time the padding factor.
+# (vi500: removed unknown :xp#4: termcap;
+# also added empty <acsc> to suppress tic warning -- esr)
+vi500|visual 500:\
+ :am:mi:ms:\
+ :co#80:it#8:li#33:\
+ :ac=:ae=^O:al=3*\EL\Ex:as=^N:bt=4\Ez:cd=3*\Ey:ce=16\Ex:\
+ :cl=6*\Ev:cm=\EY%+ %+ :cr=^M:cs=\E(%+ %+ :dc=3*\EO:\
+ :dl=3*\EM:do=\EB:ei=\Ej:ho=\EH:im=\Ei:\
+ :is=\E3\E\001\E\007\E\003\Ek\EG\Ed\EX\El\E>\Eb\E\:\
+ :kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\
+ :nw=^M^J:se=\E^G:sf=^J:so=\E^H:ta=8\011:ue=\E^C:up=\EA:\
+ :us=\E^D:
+
+# The visual 550 is a visual 300 with tektronix graphics,
+# and with 33 lines. clear screen is modified here to
+# also clear the graphics.
+vi550|visual 550 ansi x3.64:\
+ :li#33:\
+ :cl=\030\E[H\E[2J:tc=vi300:
+
+vi603|visual603|visual 603:\
+ :hs:mi:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:ds=\EP2;1~\E\:ei=\E[4l:\
+ :fs=\E\:i1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r:\
+ :im=\E[4h:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ts=\EP2~:ue=\E[24m:\
+ :up=\E[A:us=\E[4m:\
+ :tc=vt100:
+
+#### Wyse (wy)
+#
+# Wyse Technology
+# 3471 North First Street
+# San Jose, CA 95134
+# Vox: (408)-473-1200
+# Fax: (408) 473-1222
+# Web: http://www.wyse.com
+#
+# Wyse sales can be reached by phone at 1-800-GET-WYSE. Tech support is at
+# (800)-800-WYSE (option 5 gets you a human). There's a Web page at the
+# obvious address, <http://www.wyse.com>. They keep terminfo entries at
+# <http://www.wyse.co.uk/support/appnotes/idxappnt.htm>.
+#
+# Wyse bought out Link Technology, Inc. in 1990 and closed it down in 1995.
+# They now own the Qume and Amdek brands, too. So these are the people to
+# talk with about all Link, Qume, and Amdek terminals.
+#
+# These entries include a few small fixes.
+# I canceled the bel capacities in the vb entries.
+# I made two trivial syntax fixes in the wyse30 entry.
+# I made some entries relative to adm+sgr.
+#
+#
+# Note: The wyse75, wyse85, and wyse99 have been discontinued.
+
+# Although the Wyse 30 can support more than one attribute
+# it requires magic cookies to do so. Many applications do not
+# function well with magic cookies. The following terminfo uses
+# the protect mode to support one attribute (dim) without cookies.
+# If more than one attribute is needed then the wy30-mc terminfo
+# should be used.
+#
+wy30|wyse30|Wyse 30:\
+ :5i:am:bw:hs:mi:ms:xo:\
+ :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\
+ :#2=\E{:&3=\Er:@8=\E7:LF=\EA11:LO=\EA10:\
+ :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\
+ :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
+ :ho=^^:im=\Eq:ip=:is=\E'\E(\E\1363\E`9\016\024:k1=^A@\r:\
+ :k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:\
+ :k8=^AG\r:kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:\
+ :kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
+ :ll=^^^K:me=\E(\EH\003:mh=\E`7\E):mp=\E`7\E):nd=^L:\
+ :nw=^M^J:pf=^T:pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:\
+ :..sa=%?%p1%p5%p8%|%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
+ :se=\E(:sf=\n:so=\E`7\E):sr=\Ej:st=\E1:ta=\011:ts=\EF:up=^K:\
+ :vb=\E`8\E`9:ve=\E`1:vi=\E`0:
+#
+# This terminal description uses the non-hidden attribute mode
+# (with magic cookie).
+#
+# (wy30-mc: added :ti: to suppress tic warning --esr)
+wy30-mc|wyse30-mc|wyse 30 with magic cookies:\
+ :ms@:\
+ :ma@:sg#1:\
+ :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\
+ :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):\
+ :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
+ :se=\EG0:so=\EG4:te=\EG0:ti=:\
+ :tc=wy30:tc=adm+sgr:
+# The mandatory pause used by :vb: does not work with
+# older versions of terminfo. If you see this effect then
+# unset xon and delete the / from the delay.
+# i.e. change $<100/> to $<100>
+wy30-vb|wyse30-vb|wyse 30 visible bell:\
+ :bl@:tc=wy30:
+#
+# The Wyse 50 can support one attribute (e.g. Dim, Inverse,
+# Normal) without magic cookies by using the protect mode.
+# The following description uses this feature, but when more
+# than one attribute is put on the screen at once, all attributes
+# will be changed to be the same as the last attribute given.
+# The Wyse 50 can support more attributes when used with magic
+# cookies. The wy50-mc terminal description uses magic cookies
+# to correctly handle multiple attributes on a screen.
+#
+wy50|wyse50|Wyse 50:\
+ :5i:am:bw:hs:mi:ms:xo:\
+ :Nl#8:co#80:lh#1:li#24:lw#8:ma#1:ws#45:\
+ :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
+ :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:\
+ :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EH^C:al=\EE:\
+ :as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :\
+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:ei=\Er:fs=^M:\
+ :ho=^^:i1=\E`\072\E`9:im=\Eq:ip=:is=\016\024\E'\E(:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
+ :kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
+ :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:me=\E(\EH\003:mh=\E`7\E):\
+ :mp=\E`7\E):mr=\E`6\E):nd=^L:nw=^M^J:pf=^T:pn=\Ez%+/%s\r:\
+ :po=^X:ps=\EP:px=\Ez%+?%s\177:\
+ :..sa=%?%p1%p3%|%t\E`6\E)%e%p5%p8%|%t\E`7\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
+ :se=\E(:sf=\n:so=\E`6\E):sr=\Ej:st=\E1:ta=^I:ts=\EF:up=^K:\
+ :vb=\E`8\E`9:ve=\E`1:vi=\E`0:
+#
+# This terminal description uses the non-hidden attribute mode
+# (with magic cookie).
+#
+# The mandatory pause used by flash does not work with some
+# older versions of terminfo. If you see this effect then
+# unset :xo: and delete the / from the delay.
+# i.e. change $<100/> to $<100>
+# (wy50-mc: added :ti: to suppress tic warning --esr)
+wy50-mc|wyse50-mc|wyse 50 with magic cookies:\
+ :ms@:\
+ :ma@:sg#1:\
+ :ae=\EG0\EH\003:as=\EG0\EH\002:mb=\EG2:\
+ :me=\EG0\E(\EH\003:mh=\EGp:mp=\EG0\E):mr=\EG4:\
+ :..sa=\EG%{48}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{4}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{64}%|%;%?%p7%t%{1}%|%;%c%?%p8%t\E)%e\E(%;%?%p9%t\EH\002%e\EH\003%;:\
+ :se=\EG0:so=\EGt:te=\EG0:ti=:\
+ :tc=wy50:tc=adm+sgr:
+wy50-vb|wyse50-vb|wyse 50 visible bell:\
+ :bl@:tc=wy50:
+wy50-w|wyse50-w|wyse 50 132-column:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy50:
+wy50-wvb|wyse50-wvb|wyse 50 132-column visible bell:\
+ :bl@:\
+ :tc=wy50-w:
+#
+# The Wyse 350 is a Wyse 50 with color.
+# Unfortunately this means that it has magic cookies.
+# The color attributes are designed to overlap the reverse, dim and
+# underline attributes. This is nice for monochrome applications
+# because you can make underline stuff green (or any other color)
+# but for true color applications it's not so hot because you cannot
+# mix color with reverse, dim or underline.
+# To further complicate things one of the attributes must be
+# black (either the foreground or the background). In reverse video
+# the background changes color with black letters. In normal video
+# the foreground changes colors on a black background.
+# This terminfo uses some of the more advanced features of curses
+# to display both color and blink. In the final analysis I am not
+# sure that the wy350 runs better with this terminfo than it does
+# with the wy50 terminfo (with user adjusted colors).
+#
+# The mandatory pause used by flash does not work with
+# older versions of terminfo. If you see this effect then
+# unset xon and delete the / from the delay.
+# i.e. change $<100/> to $<100>
+#
+# Bug: The <op> capability resets attributes.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+wy350|wyse350|Wyse 350:\
+ :5i:am:bw:hs:mi:xo:\
+ :Co#8:NC#55:Nl#8:co#80:lh#1:li#24:lw#8:pa#8:sg#1:ws#45:\
+ :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
+ :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:Sb=:\
+ :ac=0wa_h[jukslrmqnxqzttuyv]wpxv:ae=\EG0\EH\003:al=\EE:\
+ :as=\EG0\EH\002:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
+ :ei=\Er:fs=^M:ho=^^:i1=\E`\072\E`9:i2=\E%?:im=\Eq:ip=:\
+ :is=\016\024\E'\E(:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
+ :kA=\EE:kB=\EI:kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kN=\EK:kP=\EJ:\
+ :kS=\EY:kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:\
+ :mb=\EG2:me=\EG0\E(\EH\003%{0}%PA%{0}%PC:mh=\EGp:\
+ :mp=\EG0\E):nd=^L:nw=^M^J:oc=\E%?:op=\EG0:pf=^T:\
+ :pn=\Ez%+/%s\r:po=^X:ps=\EP:px=\Ez%+?%s\177:sf=\n:sr=\Ej:\
+ :st=\E1:ta=^I:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+wy350-vb|wyse350-vb|wyse 350 visible bell:\
+ :bl@:tc=wy350:
+wy350-w|wyse350-w|wyse 350 132-column:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cm=\Ea%i%dR%dC:dc=\EW:i1=\E`;\E`9:tc=wy350:
+wy350-wvb|wyse350-wvb|wyse 350 132-column visible bell:\
+ :bl@:\
+ :tc=wy350-w:
+#
+# This terminfo description is untested.
+# The wyse100 emulates an adm31, so the adm31 entry should work.
+#
+wy100|wyse 100:\
+ :hs:mi:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E;:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=^J:ds=\EA31:ei=\Er:fs=^M:im=\Eq:is=\Eu\E0:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:kb=^H:kd=^J:kh=\E{:kl=^H:kr=^L:ku=^K:\
+ :le=^H:mk@:nd=^L:sf=^J:ts=\EF:up=^K:\
+ :tc=adm+sgr:
+#
+# The Wyse 120/150 has most of the features of the Wyse 60.
+# This terminal does not need padding up to 9600 baud!
+# :ms: should be set but the clear screen fails when in
+# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
+# then set :ms:.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy120|wyse120|wy150|wyse150|Wyse 120/150:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:it#8:li#24:pb#9601:ws#45:\
+ :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
+ :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\
+ :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\
+ :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\
+ :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\
+ :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+#
+wy120-w|wyse120-w|wy150-w|wyse150-w|wyse 120/150 132-column:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy120:
+#
+wy120-25|wyse120-25|wy150-25|wyse150-25|wyse 120/150 80-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy120:
+#
+wy120-25-w|wyse120-25-w|wy150-25-w|wyse150-25-w|wyse 120/150 132-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy120-w:
+#
+wy120-vb|wyse120-vb|wy150-vb|wyse150-vb|Wyse 120/150 visible bell:\
+ :bl@:\
+ :tc=wy120:
+#
+wy120-w-vb|wy120-wvb|wyse120-wvb|wy150-w-vb|wyse150-w-vb|Wyse 120/150 132-column visible bell:\
+ :bl@:\
+ :tc=wy120-w:
+#
+# The Wyse 60 is like the Wyse 50 but with more padding.
+# The reset strings are slow and the pad times very depending
+# on other parameters such as font loading. I have tried
+# to follow the following outline:
+#
+# <rs1> -> set personality
+# <rs2> -> set number of columns
+# <rs3> -> set number of lines
+# :i1: -> select the proper font
+# :is: -> do the initialization
+# :i3: -> set up display memory (2 pages)
+#
+# The Wyse 60's that have vt100 emulation are slower than the
+# older Wyse 60's. This change happened mid-1987.
+# The capabilities effected are :dc: :dl: :al: :sf: :sr:
+#
+# The meta key is only half right. This terminal will return the
+# high order bit set when you hit CTRL-function_key
+#
+# It may be useful to assign two function keys with the
+# values \E=(\s look at old data in page 1
+# \E=W, look at bottom of page 1
+# where \s is a space ( ).
+#
+# Note:
+# The Wyse 60 runs faster when the XON/XOFF
+# handshake is turned off.
+#
+# (wy60: we use \E{ rather than ^^ for home (both are documented) to avoid
+# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy60|wyse60|Wyse 60:\
+ :am:bw:hs:km:mi:ms:\
+ :co#80:li#24:ws#45:\
+ :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
+ :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\EwJ\Ew1:im=\Eq:ip=:\
+ :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\
+ :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\
+ :so=\EGt:sr=\Ej:st=\E1:ta=\011:te=\Ew1:ti=\Ew0:ts=\EF:up=^K:\
+ :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+#
+wy60-w|wyse60-w|wyse 60 132-column:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy60:
+#
+wy60-25|wyse60-25|wyse 60 80-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy60:
+wy60-25-w|wyse60-25-w|wyse 60 132-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy60-w:
+#
+wy60-42|wyse60-42|wyse 60 80-column 42-lines:\
+ :li#42:\
+ :al=\EE:cd=\Ey:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:\
+ :i1=\EcB2\EcC3:ip=:nw=\r\n:r3=\Ee*:sf=\n:sr=\Ej:tc=wy60:
+wy60-42-w|wyse60-42-w|wyse 60 132-column 42-lines:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ho=\036:ip=:nw=\r\n:\
+ :r2=\EeF\E`;:\
+ :tc=wy60-42:
+#
+wy60-43|wyse60-43|wyse 60 80-column 43-lines:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:r3=\Ee+:tc=wy60-42:
+wy60-43-w|wyse60-43-w|wyse 60 132-column 43-lines:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:r3=\Ee+:tc=wy60-42-w:
+#
+wy60-vb|wyse60-vb|Wyse 60 visible bell:\
+ :bl@:tc=wy60:
+wy60-w-vb|wy60-wvb|wyse60-wvb|Wyse 60 132-column visible bell:\
+ :bl@:\
+ :tc=wy60-w:
+
+# The Wyse-99GT looks at lot like the Wyse 60 except that it
+# does not have the 42/43 line mode. In the Wyse-60 the "lines"
+# setup parameter controls the number of lines on the screen.
+# For the Wyse 99GT the "lines" setup parameter controls the
+# number of lines in a page. The screen can display 25 lines max.
+# The Wyse-99GT also has personalities for the VT220 and
+# Tektronix 4014. But this has no bearing on the native mode.
+#
+# (msgr) should be set but the clear screen fails when in
+# alt-charset mode. Try \EcE\s\s\E+\s if the screen is really clear
+# then set msgr, else use msgr@.
+#
+# u0 -> enter Tektronix mode
+# u1 -> exit Tektronix mode
+#
+wy99gt|wyse99gt|Wyse 99gt:\
+ :ms@:\
+ :al=\EE:cd=\Ey:ce=\Et:cl=\E+:dc=\EW:dl=\ER:i2=\Ew0:ip=:nw@:\
+ :r2=\E`\072:sf=\n:sr=\Ej:ta=\011:te=\Ew0:ti=\Ew1:\
+ :u0=\E~>\E8:u1=\E[42h:vb=\E`8\E`9:tc=wy60:
+#
+wy99gt-w|wyse99gt-w|wyse 99gt 132-column:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cd=\Ey:cl=\E+:cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy99gt:
+#
+wy99gt-25|wyse99gt-25|wyse 99gt 80-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r2=\E`\072:r3=\EwG\Ee):tc=wy99gt:
+#
+wy99gt-25-w|wyse99gt-25-w|wyse 99gt 132-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r2=\E`;:tc=wy99gt-w:
+#
+wy99gt-vb|wyse99gt-vb|Wyse 99gt visible bell:\
+ :bl@:tc=wy99gt:
+#
+wy99gt-w-vb|wy99gt-wvb|wyse99gt-wvb|Wyse 99gt 132-column visible bell:\
+ :bl@:\
+ :tc=wy99gt-w:
+#
+# The Wyse 160 is combination of the WY-60 and the WY-99gt.
+# The reset strings are slow and the pad times very depending
+# on other parameters such as font loading. I have tried
+# to follow the following outline:
+#
+# <rs1> -> set personality
+# <rs2> -> set number of columns
+# <rs3> -> set number of lines
+# :i1: -> select the proper font
+# :is: -> do the initialization
+# :i3: -> set up display memory (2 pages)
+#
+# The display memory may be used for either text or graphics.
+# When "Display Memory = Shared" the terminal will have more pages
+# but garbage may be left on the screen when you switch from
+# graphics to text. If "Display Memory = Unshared" then the
+# text area will be only one page long.
+#
+# (wy160: we use \E{ rather than ^^ for home (both are documented) to avoid
+# a bug reported by Robert Dunn, <rcdii@inlink.com> -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy160|wyse160|Wyse 160:\
+ :am:bw:hs:km:mi:ms:\
+ :co#80:li#24:ws#38:\
+ :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
+ :ei=\Er:fs=^M:ho=\E{:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\
+ :is=\Ed$\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:ll=\E{^K:mb=\EG2:\
+ :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=\n:\
+ :so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:ti=\Ew1:ts=\EF:up=^K:\
+ :vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+#
+wy160-w|wyse160-w|wyse 160 132-column:\
+ :Nl#16:co#132:lw#7:ws#90:\
+ :cm=\Ea%i%dR%dC:dc=\EW:r2=\EeF\E`;:tc=wy160:
+#
+wy160-25|wyse160-25|wyse 160 80-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy160:
+wy160-25-w|wyse160-25-w|wyse 160 132-column 25-lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy160-w:
+#
+wy160-42|wyse160-42|wyse 160 80-column 42-lines:\
+ :li#42:\
+ :al=\EE:cd=\Ey:cl=\E+:dl=\ER:i1=\EcB2\EcC3:nw=\r\n:r3=\Ee*:\
+ :sf=\n:sr=\Ej:\
+ :tc=wy160:
+wy160-42-w|wyse160-42-w|wyse 160 132-column 42-lines:\
+ :Nl#16:co#132:lw#7:ws#90:\
+ :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\EeF\E`;:tc=wy160-42:
+#
+wy160-43|wyse160-43|wyse 160 80-column 43-lines:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:r3=\Ee+:tc=wy160-42:
+wy160-43-w|wyse160-43-w|wyse 160 132-column 43-lines:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:r3=\Ee+:tc=wy160-42-w:
+#
+wy160-vb|wyse160-vb|Wyse 160 visible bell:\
+ :bl@:tc=wy160:
+wy160-w-vb|wy160-wvb|wyse160-wvb|Wyse 160 132-column visible bell:\
+ :bl@:\
+ :tc=wy160-w:
+#
+# The Wyse 75 is a vt100 lookalike without advanced video.
+#
+# The Wyse 75 can support one attribute (e.g. Dim, Inverse,
+# Underline) without magic cookies. The following description
+# uses this capability, but when more than one attribute is
+# put on the screen at once, all attributes will be changed
+# to be the same as the last attribute given.
+# The Wyse 75 can support more attributes when used with magic
+# cookies. The wy75-mc terminal description uses magic cookies
+# to correctly handle multiple attributes on a screen.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy75|wyse75|wyse 75:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:li#24:ma#1:pb#1201:ws#78:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\E[>\054\001\001\E[>-\001\001:ec=\E[%dX:ei=\E[4l:\
+ :fs=^A:ho=\E[H:\
+ :i1=\E[2;4;20;30l\E[?1;10l\E[12h\E[?7;8;25h:i2=\E[m:\
+ :im=\E[4h:ip=:is=\E>\E(B\E)0\017:k1=\E[?5i:k2=\E[?3i:\
+ :k3=\E[2i:k4=\E[@:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
+ :k9=\E[20~:kI=\E[@:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[?1l\E[?7h\E=:ku=\E[A:le=^H:\
+ :me=\E[m\017:mh=\E[0t\E[2m:mr=\E[1t\E[7m:nd=\E[C:rc=\E8:\
+ :sc=\E7:se=\E[m:sf=\n:so=\E[1t\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[>\054\001:ue=\E[m:up=\E[A:us=\E[2t\E[4m:\
+ :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l:
+#
+# This terminal description uses the non-hidden attribute mode
+# (with magic cookie).
+#
+wy75-mc|wyse75-mc|wyse 75 with magic cookies:\
+ :ms@:\
+ :ma@:sg#1:\
+ :ae=\E[0p\017:as=\E[0p\016:i2=\E[m\E[p:mb=\E[2p:\
+ :me=\E[0p\017:mh=\E[1p:mk=\E[4p:mr=\E[16p:\
+ :..sa=\E[%{0}%?%p2%p6%|%t%{8}%|%;%?%p1%p3%|%p6%|%t%{16}%|%;%?%p4%t%{2}%|%;%?%p1%p5%|%t%{1}%|%;%?%p7%t%{4}%|%;%dp%?%p9%t\016%e\017%;:\
+ :se=\E[0p:so=\E[17p:ue=\E[0p:us=\E[8p:\
+ :tc=wy75:
+wy75-vb|wyse75-vb|wyse 75 with visible bell:\
+ :pb@:\
+ :bl@:tc=wy75:
+wy75-w|wyse75-w|wyse 75 in 132 column mode:\
+ :co#132:ws#130:\
+ :r2=\E[35h\E[?3h:tc=wy75:
+wy75-wvb|wyse75-wvb|wyse 75 with visible bell 132 columns:\
+ :pb@:\
+ :bl@:tc=wy75-w:
+#
+# Wyse 85 emulating a vt220 7 bit mode.
+# 24 line screen with status line.
+#
+# The vt220 mode permits more function keys but it wipes out
+# the escape key. I strongly recommend that <f11> be set to
+# escape (esc).
+# The terminal may have to be set for 8 data bits and 2 stop
+# bits for the arrow keys to work.
+# The Wyse 85 runs faster with XON/XOFF enabled. Also the
+# :DC: and :IC: work best when XON/XOFF is set. :IC: and
+# :DC: leave trash on the screen when used without XON/XOFF.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy85|wyse85|wyse 85:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
+ :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
+ :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
+ :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\
+ :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\n:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=\011:\
+ :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\
+ :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l:
+#
+# Wyse 85 with visual bell.
+wy85-vb|wyse85-vb|wyse 85 with visible bell:\
+ :bl@:vb=\E[30h\E\054\E[30l:tc=wy85:
+#
+# Wyse 85 in 132-column mode.
+wy85-w|wyse85-w|wyse 85 in 132-column mode:\
+ :co#132:ws#132:\
+ :r2=\E[35h\E[?3h:tc=wy85:
+#
+# Wyse 85 in 132-column mode with visual bell.
+wy85-wvb|wyse85-wvb|wyse 85 with visible bell 132-columns:\
+ :bl@:\
+ :tc=wy85-w:
+#
+# Wyse 185 emulating a vt320 7 bit mode.
+#
+# This terminal always displays 25 lines. These lines may be used
+# as 24 data lines and a terminal status line (top or bottom) or
+# 25 data lines. The 48 and 50 line modes change the page size
+# and not the number of lines on the screen.
+#
+# The Compose Character key can be used as a meta key if changed
+# by set-up.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy185|wyse185|wyse 185:\
+ :am:hs:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\E7\E[99;0H\E[K\E8:ec=\E[%dX:ei=\E[4l:\
+ :fs=\E[1;24r\E8:ho=\E[H:i1=\E[?5W:\
+ :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
+ :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:ke=\E>:kh=\E[26~:kl=\E[D:kr=\E[C:\
+ :ks=\E[?1l\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=^I:te=\E[ R:ti=\E[ Q:\
+ :ts=\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:vi=\E[?25l:\
+ :vs=\E[?25h\E[34l:
+#
+# Wyse 185 with 24 data lines and top status (terminal status)
+wy185-24|wyse185-24|wyse 185 with 24 data lines:\
+ :hs@:\
+ :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy185:
+#
+# Wyse 185 with visual bell.
+wy185-vb|wyse185-vb|wyse 185+flash:\
+ :bl@:tc=wy185:
+#
+# Wyse 185 in 132-column mode.
+wy185-w|wyse185-w|wyse 185 in 132-column mode:\
+ :co#132:ws#132:\
+ :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy185:
+#
+# Wyse 185 in 132-column mode with visual bell.
+wy185-wvb|wyse185-wvb|wyse 185+flash+132 cols:\
+ :bl@:tc=wy185-w:
+
+# wy325 terminfo entries
+# Done by Joe H. Davis 3-9-92
+
+# lines 25 columns 80
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+wy325|wyse325|Wyse epc:\
+ :5i:am:bw:hs:mi:\
+ :Nl#8:co#80:lh#1:li#24:lw#8:pb#9601:ws#45:\
+ :#2=\E{:%9=\EP:&3=\Er:@8=\E7:F1=^AJ\r:F2=^AK\r:F3=^AL\r:\
+ :F4=^AM\r:F5=^AN\r:F6=^AO\r:LF=\EA11:LO=\EA10:RA=\Ed.:\
+ :SA=\Ed/:\
+ :ac=+/\054.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~:\
+ :ae=\EcD:al=\EE:as=\EcE:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E+:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\EF\r:\
+ :ei=\Er:fs=^M:ho=^^:i1=\EcB0\EcC1:i2=\Ew0:im=\Eq:ip=:\
+ :is=\EcD\E'\Er\EH\003\Ed/\EO\Ee1\Ed*\E`@\E`9\E`1\016\024\El:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:kA=\EE:kB=\EI:kD=\EW:\
+ :kE=\ET:kI=\Eq:kL=\ER:kN=\EK:kP=\EJ:kS=\EY:kb=^H:kd=^J:kh=^^:\
+ :kl=^H:kr=^L:ku=^K:le=^H:ll=^^^K:mb=\EG2:\
+ :me=\E(\EH\003\EG0\EcD:mh=\EGp:mp=\E):nd=^L:pf=^T:\
+ :pl=\EZ2%+?%s\177:pn=\Ez%+/%s\r:po=\Ed#:ps=\EP:\
+ :px=\EZ1%+?%s\177:r1=\E~\041\E~4:r2=\EeF\E`\072:\
+ :r3=\EwG\Ee(:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:te=\Ew0:\
+ :ti=\Ew1:ts=\EF:up=^K:vb=\E`8\E`9:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+
+#
+# lines 24 columns 80 vb
+#
+wy325-vb|wyse325-vb|wyse-325 with visual bell:\
+ :bl@:tc=wy325:
+
+#
+# lines 24 columns 132
+#
+wy325-w|wyse325-w|wy325w-24|wyse-325 in wide mode:\
+ :Nl#16:co#132:lw#7:ws#97:\
+ :cm=\Ea%i%dR%dC:dc=\EW:ip=:r2=\E`;:tc=wy325:
+#
+# lines 25 columns 80
+#
+wy325-25|wyse325-25|wy325-80|wyse-325|wyse-325 25 lines:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy325:
+#
+# lines 25 columns 132
+#
+wy325-25w|wyse325-25w|wy325 132 columns:\
+ :Nl@:lh@:li#25:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy325-w:
+#
+# lines 25 columns 132 vb
+#
+wy325-w-vb|wy325-wvb|wyse325-wvb|wyse-325 wide mode reverse video:\
+ :bl@:\
+ :tc=wy325-w:
+
+#
+# lines 42 columns 80
+#
+wy325-42|wyse325-42|wyse-325 42 lines:\
+ :Nl@:lh@:li#42:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy325:
+#
+# lines 42 columns 132
+#
+wy325-42w|wyse325-42w|wyse-325 42 lines wide mode:\
+ :Nl@:lh@:li#42:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy325-w:
+#
+# lines 42 columns 132 vb
+#
+wy325-42w-vb|wy325-42wvb|wyse-325 42 lines wide mode visual bell:\
+ :bl@:\
+ :tc=wy325-w:
+#
+# lines 43 columns 80
+#
+wy325-43|wyse325-43|wyse-325 43 lines:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:tc=wy325:
+#
+# lines 43 columns 132
+#
+wy325-43w|wyse325-43w|wyse-325 43 lines wide mode:\
+ :Nl@:lh@:li#43:lw@:\
+ :pn@:r3=\EwG\Ee):tc=wy325-w:
+#
+# lines 43 columns 132 vb
+#
+wy325-43w-vb|wy325-43wvb|wyse-325 43 lines wide mode visual bell:\
+ :bl@:\
+ :tc=wy325-w:
+
+# Wyse 370 -- 24 line screen with status line.
+#
+# The terminal may have to be set for 8 data bits and 2 stop
+# bits for the arrow keys to work.
+#
+# If you change keyboards the terminal will send different
+# escape sequences.
+# The following definition is for the basic terminal without
+# function keys.
+#
+# <u0> -> enter Tektronix 4010/4014 mode
+# <u1> -> exit Tektronix 4010/4014 mode
+# <u2> -> enter ASCII mode (from any ANSI mode)
+# <u3> -> exit ASCII mode (goto native ANSI mode)
+# <u4> -> enter Tek 4207 ANSI mode (from any ANSI mode)
+# <u5> -> exit Tek 4207 mode (goto native ANSI mode)
+#
+# Bug: The <op> capability resets attributes.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy370-nk|wyse 370 without function keys:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
+ :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
+ :i1=\E[90;1"p\E[?5W:i2=\E>\017\E)0\E(B\E[63;0w\E[m:\
+ :im=\E[4h:ip=:\
+ :is=\E[2;4;20;30;40l\E[?1;10;16l\E[12h\E[?7;8;25h:\
+ :ke=\E>:ks=\E[?1l\E=:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[27m:sf=\n:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=\011:te=\E[ R:ti=\E[ Q:\
+ :ts=\E[40l\E[40h\E7\E[99;%i%p1%dH:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:vb=\E[30h\E\054\E[30l:ve=\E[34h\E[?25h:\
+ :vi=\E[?25l:vs=\E[?25h\E[34l:
+#
+# Function key set for the ASCII (wy-50 compatible) keyboard
+# This is the default 370.
+#
+wy370|wyse370|wy370-101k|Wyse 370 with 101 key keyboard:\
+ :@8=\EOM:F1=\E[23~:F2=\E[24~:F3=\E[25~:F4=\E[26~:\
+ :F5=\E[28~:F6=\E[29~:k1=\E[?4i:k2=\E[?3i:k3=\E[2i:k4=\E[@:\
+ :k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+ :k;=\E[21~:kA=\EOP:kB=\E[Z:kD=\EOQ:kI=\EOP:kL=\EOQ:kN=\E[U:\
+ :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :tc=wy370-nk:
+#
+# Function key set for the VT-320 (and wy85) compatible keyboard
+#
+wy370-105k|Wyse 370 with 105 key keyboard:\
+ :%1=\E[28~:*6=\E[4~:@0=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:\
+ :F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:F7=\E[31~:\
+ :F8=\E[32~:F9=\E[33~:FA=\E[34~:K1=\EOw:K2=\EOu:K3=\EOy:\
+ :K4=\EOq:K5=\EOs:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kD=\E[3~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:kh=\E[26~:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:\
+ :tc=wy370-nk:
+#
+# Function key set for the PC compatible keyboard
+#
+wy370-EPC|Wyse 370 with 102 key keyboard:\
+ :@7=\E[1~:@8=\EOM:F1=\E[23~:F2=\E[24~:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
+ :k9=\E[20~:k;=\E[21~:kB=\E[Z:kI=\E[2~:kN=\E[U:kP=\E[V:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :tc=wy370-nk:
+#
+# Wyse 370 with visual bell.
+wy370-vb|Wyse 370 with visible bell:\
+ :bl@:tc=wy370:
+#
+# Wyse 370 in 132-column mode.
+wy370-w|Wyse 370 in 132-column mode:\
+ :co#132:ws#132:\
+ :r2=\E[35h\E[?3h:tc=wy370:
+#
+# Wyse 370 in 132-column mode with visual bell.
+wy370-wvb|Wyse 370 with visible bell 132-columns:\
+ :vb=\E[30h\E\054\E[30l:tc=wy370-w:
+wy370-rv|Wyse 370 reverse video:\
+ :r3=\E[32h\E[?5h:tc=wy370:
+#
+# Wyse 99gt Tektronix 4010/4014 emulator,
+#
+wy99gt-tek|Wyse 99gt Tektronix 4010/4014 emulator:\
+ :am:os:\
+ :co#74:li#35:\
+ :bl=^G:cl=\E^L:\
+ :..cm=\035%{3040}%{89}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\
+ :cr=^M:do=^J:ff=^L:\
+ :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\
+ :ho=^]7`x @\037:\
+ :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\
+ :is=\E8:le=^H:nd= :nw=^M^J:u0=\E~>\E8:u1=\E[42h:up=^K:
+#
+# Wyse 160 Tektronix 4010/4014 emulator,
+#
+wy160-tek|Wyse 160 Tektronix 4010/4014 emulator:\
+ :..cm=\035%{3103}%{91}%p1%*%-%Py%p2%{55}%*%Px%gy%{128}%/%{31}%&%{32}%+%c%gy%{3}%&%{4}%*%gx%{3}%&%+%{96}%+%c%gy%{004}%/%{31}%&%{96}%+%c%gx%{128}%/%{31}%&%{32}%+%c%gx%{004}%/%{31}%&%{64}%+%c\037:\
+ :ho=^]8`g @\037:\
+ :tc=wy99gt-tek:
+#
+# Wyse 370 Tektronix 4010/4014 emulator,
+#
+wy370-tek|Wyse 370 Tektronix 4010/4014 emulator:\
+ :am:os:\
+ :co#80:li#36:\
+ :bl=^G:cl=\E^L:\
+ :..cm=\035%{775}%{108}%p1%*%{5}%/%-%Py%p2%{64}%*%{4}%+%{5}%/%Px%gy%{32}%/%{31}%&%{32}%+%c%gy%{31}%&%{96}%+%c%gx%{32}%/%{31}%&%{32}%+%c%gx%{31}%&%{64}%+%c\037:\
+ :cr=^M:do=^J:ff=^L:\
+ :hd=\036HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH\037:\
+ :ho=^]8g @\037:\
+ :hu=\036DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\037:\
+ :is=\E8:kb=^H:kd=^J:kl=^H:kr=^I:ku=^K:le=^H:nd= :nw=^M^J:\
+ :u0=\E[?38h\E8:u1=\E[?38l\E)0:up=^K:
+
+# Vendor-supplied Wyse entries end here.
+
+# Can't set tabs! Other bugs (ANSI mode only):
+# - can't redefine function keys (anyway, key redefinition in ANSI mode
+# is too much complex to be described);
+# - meta key can't be described (the terminal forgets it when reset);
+# The xon-xoff handshaking can't be disabled while in ansi personality, so
+# emacs can't work at speed greater than 9600 baud. No padding is needed at
+# this speed.
+# dch1 has been commented out because it causes annoying glittering when
+# vi deletes one character at the beginning of a line with tabs in it.
+# dch makes sysgen(1M) have a horrible behaviour when deleting
+# a screen and makes screen(1) behave badly, so it is disabled too. The nice
+# thing is that vi goes crazy if smir-rmir are present and both dch-dch1 are
+# not, so smir and rmir are commented out as well.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy99-ansi|Wyse WY-99GT in ansi mode (int'l PC keyboard):\
+ :am:km:mi:ms:xn:\
+ :co#80:it#8:li#25:vt#3:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:dl=\E[M:do=\ED:ec=\E[%dX:ei=\E[4l:ho=\E[H:\
+ :im=\E[4h:\
+ :is=\E7\E[1r\E8\E[2;3;4;13;20;34;39;36l\E[12;16;34h\E[?1;3;4;5;10;18l\E[?7;8;25h\E>\E[?5W\E(B\017\E[4i:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h:ku=\EOA:le=\010:ll=\E[24E:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017\E["q:mh=\E[2m:mr=\E[7m:\
+ :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\n:so=\E[7m:\
+ :sr=\EM:ta=^I:ue=\E[24m:up=\EM:us=\E[4m:vb=\E[?5h\E[?5l:\
+ :ve=\E[34h\E[?25h:vi=\E[?25l:vs=\E[34l\E[?25h:
+
+# This is the american terminal. Here tabs work fine.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99a-ansi|Wyse WY-99GT in ansi mode (US PC keyboard):\
+ :ct=\E[3g:i2=\E[?5l:r3=\E[?5l:st=\EH:\
+ :tc=wy99-ansi:
+
+# This terminal (firmware version 02) has a lot of bugs:
+# - can't set tabs;
+# - other bugs in ANSI modes (see above).
+# This description disables handshaking when using cup. This is because
+# GNU emacs doesn't like Xon-Xoff handshaking. This means the terminal
+# cannot be used at speeds greater than 9600 baud, because at greater
+# speeds handshaking is needed even for character sending. If you use
+# DTR handshaking, you can use even greater speeds.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard):\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:it#8:li#25:ws#46:\
+ :K1=^^:K3=\EJ:K4=\ET:K5=\EK:ae=\EcD:al=\EE:as=\EcE:bl=^G:\
+ :bt=\EI:cd=\EY:ce=\ET:cl=\E'\E(\032:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=\Ej:ds=\EF\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\
+ :is=\Eu\Ee6\EC\EDF\Ec21\Ec31\Ec62\Ec72\Ee;\016\E'\EeL\E`9\E\1360\E`1\E`4\Ee.\E`\072\Ee1\EG0\E(\Ed/\Ee4\Ed*\EO\E`I\Er\Ee"\EcD\024:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:\
+ :le=^H:mb=\EG2:me=\E(\EG0:mh=\EGp:mr=\EG4:nd=^L:nw=^_:\
+ :se=\EG0:sf=^J:so=\EG4:sr=\Ej:ta=^I:te=\Ec21\Ec31:\
+ :ti=\Ec20\Ec30:ts=\EF:up=^K:vb=\E\1361\E\1360:\
+ :ve=\E`4\E`1:vi=\E`0:vs=\E`2\E`1:
+
+# This is the american terminal. Here tabs work.
+# From: Francesco Potorti` <F.Potorti@cnuce.cnr.it>, 24 Aug 1998
+wy99fa|wy99fgta|wy-99fgta|Wyse WY-99GT (US PC keyboard):\
+ :ct=\E0:st=\E1:\
+ :tc=wy99f:
+
+#
+#TITLE: TERMINFO ENTRY WY520
+#DATE: 8/5/93
+# The WY520 terminfo is based on the WY285 entry published on the WYSE
+# BBS with the addition of more function keys and special keys.
+#
+# rs1 -> set personality
+# rs2 -> set number of columns
+# rs3 -> set number of lines
+# is1 -> select the proper font
+# is2 -> do the initialization
+# is3 -> If this string is empty then rs3 gets sent.
+#
+# Wyse 520 emulating a vt420 7 bit mode with default ANSI keyboard
+# - The BS key is programmed to generate BS in smcup since
+# is2 doesn't seem to work.
+# - Remove and shift/Remove: delete a character
+# - Insert : enter insert mode
+# - Find : delete to end of file
+# - Select : clear a line
+# - F11, F12, F13: send default sequences (not ESC, BS, LF)
+# - F14 : Home key
+# - Bottom status line (host writable line) is used.
+# - smkx,rmkx are removed because this would put the numeric
+# keypad in Dec application mode which doesn't seem to work
+# with SCO applications.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy520|wyse520|wyse 520:\
+ :am:hs:km:mi:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[0$~:\
+ :ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:i1=\E[?5W:\
+ :i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
+ :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25;67h:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:kh=\E[26~:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :te=\E[ R:ti=\E[ Q\E[?67;8h:ts=\E[2$~\E[1$}\E[%i%p1%d`:\
+ :ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[34h\E[?25h:vi=\E[?25l:\
+ :vs=\E[?25h\E[34l:
+#
+# Wyse 520 with 24 data lines and status (terminal status)
+wy520-24|wyse520-24|wyse 520 with 24 data lines:\
+ :hs@:\
+ :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520:
+#
+# Wyse 520 with visual bell.
+wy520-vb|wyse520-vb|wyse 520 with visible bell:\
+ :vb=\E[30h\E\054\E[30l:tc=wy520:
+#
+# Wyse 520 in 132-column mode.
+wy520-w|wyse520-w|wyse 520 in 132-column mode:\
+ :co#132:ws#132:\
+ :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520:
+#
+# Wyse 520 in 132-column mode with visual bell.
+wy520-wvb|wyse520-wvb|wyse 520 with visible bell 132-columns:\
+ :vb=\E[30h\E\054\E[30l:\
+ :tc=wy520-w:
+#
+#
+# Wyse 520 emulating a vt420 7 bit mode.
+# The DEL key is programmed to generate BS in is2.
+# With EPC keyboard.
+# - 'End' key will clear till end of line on EPC keyboard
+# - Shift/End : ignored.
+# - Insert : enter insert mode.
+# - Delete : delete a character (have to change interrupt character
+# to CTRL-C: stty intr '^c') for it to work since the
+# Delete key sends 7FH.
+wy520-epc|wyse520-epc|wyse 520 with EPC keyboard:\
+ :@7=\E[4~:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:\
+ :k4=\E[14~:k5=\E[15~:kD=\177:kE=\E[4~:kh=\E[H:\
+ :tc=wy520:
+#
+# Wyse 520 with 24 data lines and status (terminal status)
+# with EPC keyboard.
+wy520-epc-24|wyse520-pc-24|wyse 520 with 24 data lines and EPC keyboard:\
+ :hs@:\
+ :ds@:fs@:r3=\E[?5l\E[47h\E[40l\E[1;24r:ts@:tc=wy520-epc:
+#
+# Wyse 520 with visual bell.
+wy520-epc-vb|wyse520-pc-vb|wyse 520 with visible bell and EPC keyboard:\
+ :vb=\E[30h\E\054\E[30l:\
+ :tc=wy520-epc:
+#
+# Wyse 520 in 132-column mode.
+wy520-epc-w|wyse520-epc-w|wyse 520 in 132-column mode with EPC keyboard:\
+ :co#132:ws#132:\
+ :DC=\E[%dP:IC=\E[%d@:dc=\E[P:ei=:im=:ip=:r2=\E[35h\E[?3h:tc=wy520-epc:
+#
+# Wyse 520 in 132-column mode with visual bell.
+wy520-epc-wvb|wyse520-p-wvb|wyse 520 with visible bell 132-columns and EPC keyboard:\
+ :vb=\E[30h\E\054\E[30l:\
+ :tc=wy520-epc-w:
+#
+# Wyse 520 in 80-column, 36 lines
+wy520-36|wyse520-36|wyse 520 with 36 data lines:\
+ :hs@:\
+ :li#36:\
+ :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520:
+#
+# Wyse 520 in 80-column, 48 lines
+wy520-48|wyse520-48|wyse 520 with 48 data lines:\
+ :hs@:\
+ :li#48:\
+ :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520:
+#
+# Wyse 520 in 132-column, 36 lines
+wy520-36w|wyse520-36w|wyse 520 with 132 columns and 36 data lines:\
+ :co#132:ws#132:\
+ :r2=\E[?3h:\
+ :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36:
+#
+# Wyse 520 in 132-column, 48 lines
+wy520-48w|wyse520-48w|wyse 520 with 48 data lines:\
+ :co#132:ws#132:\
+ :r2=\E[?3h:\
+ :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48:
+#
+#
+# Wyse 520 in 80-column, 36 lines with EPC keyboard
+wy520-36pc|wyse520-36pc|wyse 520 with 36 data lines and EPC keyboard:\
+ :hs@:\
+ :li#36:\
+ :ds@:fs@:r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r:ts@:tc=wy520-epc:
+#
+# Wyse 520 in 80-column, 48 lines with EPC keyboard
+wy520-48pc|wyse520-48pc|wyse 520 with 48 data lines and EPC keyboard:\
+ :hs@:\
+ :li#48:\
+ :ds@:fs@:r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r:ts@:tc=wy520-epc:
+#
+# Wyse 520 in 132-column, 36 lines with EPC keyboard
+wy520-36wpc|wyse520-36wpc|wyse 520 with 36 data lines and EPC keyboard:\
+ :co#132:ws#132:\
+ :r2=\E[?3h:\
+ :r3=\E[?5l\E[36*|\E[36t\E[40l\E[1;36r\E[132$|:tc=wy520-36pc:
+#
+# Wyse 520 in 132-column, 48 lines with EPC keyboard
+wy520-48wpc|wyse520-48wpc|wyse 520 with 48 data lines and EPC keyboard:\
+ :co#132:ws#132:\
+ :r2=\E[?3h:\
+ :r3=\E[?5l\E[48*|\E[48t\E[40l\E[1;48r\E[132$|:tc=wy520-48pc:
+
+# From: John Gilmore <hoptoad!gnu@lll-crg.arpa>
+# (wyse-vp: removed :if=/usr/share/tabset/wyse-adds:, there's no such
+# file and we don't know what :st: is -- esr)
+wyse-vp|Wyse 50 in ADDS Viewpoint emulation mode with "enhance" on:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :al=\EM:bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EW:\
+ :dl=\El:do=^J:ei=\Er:ho=^A:im=\Eq:is=\E`\072\E`9\017\Er:\
+ :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A^Z:me=^O:\
+ :nd=^F:nw=^M^J:r1=\E`\072\E`9\017\Er:se=^O:sf=^J:so=^N:\
+ :ta=^I:ue=^O:up=^Z:us=^N:
+
+wy75ap|wyse75ap|wy-75ap|wyse-75ap|Wyse WY-75 Applications and Cursor keypad:\
+ :is=\E[1;24r\E[?10;3l\E[?1;25h\E[4l\E[m\E(B\E=:kb=^H:\
+ :kd=\EOB:ke=10\E[?1l\E>:kh=\EOH:kl=\EOD:kr=\EOC:\
+ :ks=10\E[?1h\E=:ku=\EOA:tc=wy75:
+
+# From: Kevin Turner <kevint@aracnet.com>, 12 Jul 1998
+# This copes with an apparent firmware bug in the wy85. He writes:
+# "What I did was change leave the terminal cursor keys set to Normal
+# (instead of application), and change \E[ to \233 for all the keys in
+# terminfo. At one point, I found some reference indicating that this
+# terminal bug (not sending \E[) was acknowledged by Wyse (so it's not just
+# me), but I can't find that and the server under my bookmark to "Wyse
+# Technical" isn't responding. So there's the question of wether the wy85
+# terminfo should reflect the manufactuer's intended behaviour of the terminal
+# or the actual."
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+wy85-8bit|wyse85-8bit|wyse 85 in 8-bit mode:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ds=\E[40l:\
+ :ec=\E[%dX:ei=\E[4l:fs=\E[1;24r\E8:ho=\E[H:\
+ :i1=\E[62;1"p\E[?5W:i2=\E>\E(B\E)0\017\E[m:im=\E[4h:ip=:\
+ :is=\E[2;4;20;30l\E[?1;4;10;16l\E[12h\E[?7;8;25h:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\23317~:k7=\23318~:\
+ :k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:kN=\2336~:\
+ :kP=\2335~:kb=^H:kd=\233B:ke=\E>:kh=\23326~:kl=\233D:\
+ :kr=\233C:ks=\E[?1l\E=:ku=\233A:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\
+ :ts=\E[40h\E7\E[25;%i%p1%dH:ue=\E[m:up=\E[A:us=\E[4m:\
+ :vb=\E[30h\E\054\E[30l:ve=\E[?25h:vi=\E[?25l:
+
+# From: Eric Freudenthal <freudent@eric.ultra.nyu.edu>
+wy100q|Wyse 100 for Quotron:\
+ :bs:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\
+ :dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:\
+ :is=\E`\072\0\EC\EDF\E0\E'\E(\EA21:kd=^J:kl=^H:kr=^L:\
+ :ku=^K:le=^H:mk@:nd=^L:sr=\Ej:up=^K:\
+ :tc=adm+sgr:
+
+#### Kermit terminal emulations
+#
+# Obsolete Kermit versions may be listed in the section describing obsolete
+# non-ANSI terminal emulators later in the file.
+#
+
+# KERMIT standard all versions.
+# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+# (kermit: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 9-25-84
+kermit|standard kermit:\
+ :bs:\
+ :co#80:li#24:\
+ :cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :ho=\EH:\
+ :is=K0 Standard Kermit 9-25-84\n:kd=^J:kh=^^:kl=^H:\
+ :kr=^L:ku=^K:le=^H:nd=\EC:up=\EA:
+kermit-am|standard kermit plus auto-margin:\
+ :am:\
+ :is=K1 Standard Kermit plus Automatic Margins\n:tc=kermit:
+# IBMPC Kermit 1.2.
+# Bugs: :cd:, :ce:: do not work except at beginning of line! :cl: does
+# not work, but fake with :cl=\EH\EJ (since :cd=\EJ: works at beginning of
+# line).
+# From: greg small <gts@populi.berkeley.edu> 8-30-84
+pckermit|pckermit12|UCB IBMPC Kermit 1.2:\
+ :am:\
+ :li#25:\
+ :cd@:ce@:cl=\EH\EJ:\
+ :is=K2 UCB IBMPC Kermit 1.2 8-30-84\n:tc=kermit:
+# IBMPC Kermit 1.20
+# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Initialization must escape from that region by cursor position to line 24.
+# Cannot use character insert because 1.20 goes crazy if insert at col 80.
+# Does not use :am: because autowrap is lost when kermit dropped and restarted.
+# From: greg small <gts@populi.berkeley.edu> 12-19-84
+pckermit120|UCB IBMPC Kermit 1.20:\
+ :it#8:li#24:\
+ :al=\EL:dc=\EN:dl=\EM:do=\EB:ei@:im@:\
+ :is=\EO\Eq\EJ\EY7 K3 UCB IBMPC Kermit 1.20 12-19-84\n:\
+ :se=\Eq:so=\Ep:ta=^I:vs=\EO\Eq\EEK3:\
+ :tc=kermit:
+# MS-DOS Kermit 2.27 for the IBMPC
+# Straight ascii keyboard. :sr=\EI: not avail. many versions + bug prone in vi.
+# Cannot use line 25, now acts funny like ansi special scrolling region.
+# Initialization must escape from that region by cursor position to line 24.
+# Does not use am: because autowrap is lost when kermit dropped and restarted.
+# Reverse video for standout like H19.
+# (msk227: removed obsolete ":ma=^Hh^Jj^Kk^Ll^^H:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 3-17-85
+msk227|mskermit227|MS-DOS Kermit 2.27 for the IBMPC:\
+ :am@:bs:\
+ :co#80:it#8:li#24:\
+ :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dc=\EN:dl=\EM:\
+ :do=\EB:ei=\EO:ho=\EH:im=\E@:\
+ :is=\EO\Eq\EG\Ew\EJ\EY7 K4 MS Kermit 2.27 for the IBMPC 3-17-85\n:\
+ :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=\EC:rc=\Ek:sc=\Ej:\
+ :se=\Eq:so=\Ep:ta=^I:up=\EA:vs=\EO\Eq\EG\EwK4:
+# MS-DOS Kermit 2.27 with automatic margins
+# From: greg small <gts@populi.berkeley.edu> 3-17-85
+msk227am|mskermit227am|UCB MS-DOS Kermit 2.27 with automatic margins:\
+ :am:\
+ :is=\EO\Eq\EG\Ev\EJ\EY7 K5 MS Kermit 2.27 +automatic margins 3-17-85\n:\
+ :vs=\EO\Eq\EG\EvK5:\
+ :tc=msk227:
+# MS-DOS Kermit 2.27 UCB 227.14 for the IBM PC
+# Automatic margins now default. Use ansi :sa: for highlights.
+# Define function keys.
+# (msk22714: removed obsolete ":kn#10:" -- esr)
+# From: greg small <gts@populi.berkeley.edu> 3-17-85
+msk22714|mskermit22714|UCB MS-DOS Kermit 2.27 UCB 227.14 IBM PC:\
+ :am:\
+ :is=\EO\Eq\EG\Ev\EJ\EY7 K6 MS Kermit 2.27 UCB 227.14 IBM PC 3-17-85\n:\
+ :k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:k6=\E6:k7=\E7:\
+ :k8=\E8:k9=\E9:md=\E[1m:me=\E[m:mr=\E[7m:se=\E[m:so=\E[1m:\
+ :ue=\E[m:us=\E[4m:vs=\EO\Eq\EG\EvK6:\
+ :tc=mskermit227:
+# This was designed for a VT320 emulator, but it is probably a good start
+# at support for the VT320 itself.
+# Please send changes with explanations to bug-gnu-emacs@prep.ai.mit.edu.
+# (vt320-k3: I added <rmam>/<smam> based on the init string -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vt320-k3|MS-Kermit 3.00's vt320 emulation:\
+ :am:es:hs:km:mi:ms:xn:\
+ :co#80:it#8:li#49:pb#9600:vt#3:\
+ :AL=\E[%dL:CC=\E:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SR=\E[%dL:UP=\E[%dA:ae=\E(B:al=\E[L:\
+ :as=\E(0:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\E[0$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:im=\E[4h:\
+ :is=\E>\E F\E[?1l\E[?7h\E[r\E[2$~:k0=\E[21~:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:k8=\E[19~:\
+ :k9=\E[20~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:rc=\E8:\
+ :sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[1$}\r\E[K:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l\E[?5h\E[?5l\E[?5h\E[?5l:ve=\E[?25h:\
+ :vi=\E[?25l:
+# From: Joseph Gil <yogi@cs.ubc.ca> 13 Dec 1991
+# ACS capabilities from Philippe De Muyter <phdm@info.ucl.ac.be> 30 May 1996
+# (I removed a bogus boolean :mo: and added :ms:, <smam>, <rmam> -- esr)
+vt320-k311|dec vt320 series as defined by kermit 3.11:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=3\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ds=\E[2$~\r\E[1$}\E[K\E[$}:ei=\E[4l:\
+ :fs=\E[$}:ho=\E[H:im=\E[4h:\
+ :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
+ :le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nw=^M\ED:\
+ :r1=\E[?3l:rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:\
+ :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}\E[1;%dH:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+
+#
+######## ---------------- TERMINFO FILE CAN BE SPLIT HERE -------------------
+# This cut mark helps make life less painful for people running ncurses tic
+# on machines with relatively little RAM. The file can be broken in half here
+# cleanly and compiled in sections -- no `use' references cross this cut
+# going forward.
+#
+
+######## OLDER TERMINAL TYPES
+#
+# This section is devoted to older commercial terminal brands that are now
+# discontinued, but known to be still in use or represented by emulations.
+#
+
+#### AT&T (att, tty)
+#
+# This section also includes Teletype-branded VDTs.
+#
+# The AT&T/Teletype terminals group was sold to SunRiver Data Systems (now
+# Boundless Technologies); for details, see the header comment on the ADDS
+# section.
+#
+# These are AT&T's official terminfo entries. All-caps aliases have been
+# removed.
+#
+att2300|sv80|AT&T 2300 Video Information Terminal 80 column mode:\
+ :am:eo:mi:ms:xo:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[11r:\
+ :F2=\E[12r:F3=\E[13r:F4=\E[14r:F5=\E[15r:F6=\E[16r:\
+ :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:\
+ :cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :k1=\E[1r:k2=\E[2r:k3=\E[3r:k4=\E[4r:k5=\E[5r:k6=\E[6r:\
+ :k7=\E[7r:k8=\E[8r:k9=\E[9r:k;=\E[10r:kA=\E[L:kB=\E[Z:\
+ :kC=\E[J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :pf=\E[4i:po=\E[5i:ps=\E[0i:se=\E[m:sf=^J:so=\E[7m:ta=^I:\
+ :up=\E[A:
+att2350|AT&T 2350 Video Information Terminal 80 column mode:\
+ :pf@:po@:ps@:\
+ :tc=att2300:
+
+# Must setup RETURN KEY - CR, REC'VD LF - INDEX.
+# Seems upward compatible with vt100, plus ins/del line/char.
+# On sgr, the protection parameter is ignored.
+# No check is made to make sure that only 3 parameters are output.
+# standout= reverse + half-intensity = 3 | 5.
+# bold= reverse + underline = 2 | 3.
+# note that half-bright blinking doesn't look different from normal blinking.
+# NOTE:you must program the function keys first, label second!
+# (att4410: a BSD entry has been seen with the following capabilities:
+# :is=\E[?6l:, :k1=\EOc:, :k2=\EOd:, :k3=\EOe:, :k4=\EOg:,
+# :k6=\EOh:, :k7=\EOi:, :k8=\EOj:, -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+att5410v1|att4410v1|tty5410v1|AT&T 4410/5410 80 columns - version 1:\
+ :am:hs:mi:ms:xo:\
+ :Nl#8:co#80:it#8:lh#2:li#24:lw#8:ws#80:\
+ :ac=++\054\054--..00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=:fs=\E8:ho=\E[H:i1=\E[?3l\E)0:\
+ :i2=\E[1;03q f1 \EOP\E[2;03q f2 \EOQ\E[3;03q f3 \EOR\E[4;03q f4 \EOS\E[5;03q f5 \EOT\E[6;03q f6 \EOU\E[7;03q f7 \EOV\E[8;03q f8 \EOW:\
+ :ic=\E[@:im=:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:\
+ :k6=\EOU:k7=\EOV:k8=\EOW:kC=\E[2J:kH=\E[24;1H:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
+ :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mk=\E[8m:\
+ :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
+ :ts=\E7\E[25;%p1%{1}%+%dH:ue=\E[m:up=\E[A:us=\E[4m:
+
+att4410v1-w|att5410v1-w|tty5410v1-w|AT&T 4410/5410 132 columns - version 1:\
+ :co#132:ws#132:\
+ :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att5410v1:
+
+att4410|att5410|tty5410|AT&T 4410/5410 80 columns - version 2:\
+ :bs:\
+ :..px=\E[%p1%d;%p2%l%02dq f%p1%d %p2%s:tc=att5410v1:
+
+att5410-w|att4410-w|4410-w|tty5410-w|5410-w|AT&T 4410/5410 in 132 column mode:\
+ :co#132:ws#132:\
+ :i1=\E[?3h\E)0:r2=\Ec\E[?3h\E[2;0y:tc=att4410:
+
+# 5410 in terms of a vt100
+# (v5410: added <rmam>/<smam> based on init string -- esr)
+v5410|att5410 in terms of a vt100:\
+ :am:mi:ms:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :@8=\EOM:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:RA=\E[?7l:\
+ :SA=\E[?7h:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
+ :ic=\E[@:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:kb=^H:\
+ :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
+ :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+
+#
+# Teletype Model 5420 -- A souped up 5410, with multiple windows,
+# even! the 5420 has three modes: scroll, window or page mode
+# this terminfo should work in scroll or window mode, but doesn't
+# take advantage of any of the differences between them.
+#
+# Has memory below (2 lines!)
+# 3 pages of memory (plus some spare)
+# The 5410 sequences for :cm:, :vs:, :DC:, :DL:, :ec:, :vb:, :ho:,
+# <hpa>, :st: would work for these, but these work in both scroll and window
+# mode... Unset insert character so insert mode works
+# :i1: sets 80 column mode,
+# :is: escape sequence:
+# 1) turn off all fonts
+# 2) function keys off, keyboard lock off, control display off,
+# insert mode off, erasure mode off,
+# 3) full duplex, monitor mode off, send graphics off, nl on lf off
+# 4) reset origin mode
+# 5) set line wraparound
+# 6) exit erasure mode, positional attribute mode, and erasure extent mode
+# 7) clear margins
+# 8) program ENTER to transmit ^J,
+# We use \212 to program the ^J because a bare ^J will get translated by
+# UNIX into a CR/LF. The enter key is needed for AT&T uOMS.
+# 1 2 3 4 5 6 7 8
+# :i3: set screen color to black,
+# No representation in terminfo for the delete word key: kdw1=\Ed
+# Key capabilities assume the power-up send sequence...
+# This :te: is not strictly necessary, but it helps maximize
+# memory usefulness: :te=\Ez:,
+# Alternate sgr0: :me=\E[m\EW^O:,
+# Alternate sgr: :sa=\E[%?%p1%t2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p8%t\EV%;%?%p9%t^N%e^O%;:,
+# smkx programs the SYS PF keys to send a set sequence.
+# It also sets up labels f1, f2, ..., f8, and sends edit keys.
+# This string causes them to send the strings :k1:-:k8:
+# when pressed in SYS PF mode.
+# (att4415: I added <rmam>/<smam> based on the init string -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+att4415|tty5420|att5420|AT&T 4415/5420 80 cols:\
+ :bs:db:mi:xo:\
+ :Nl#8:lh#2:lm#78:lw#8:ws#55:\
+ :@1=\Et:@7=\Ez:@8=\Eent:AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:\
+ :DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:LF=\E|:\
+ :LO=\E~:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dE:SR=\E[%dF:\
+ :UP=\E[%dA:bt=\E[Z:ch=\E[%+^AG:cl=\E[x\E[J:\
+ :cm=\E[%i%d;%dx:ct=\E[3g:cv=\E[%+^Ad:ec=\E[%ds\E[%dD:\
+ :ei=\E[4l:ho=\E[x:i1=\E[?3l:i2=\E[?5l:ic@:im=\E[4h:\
+ :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[21;1j\212:\
+ :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
+ :k8=\EOj:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\E[2K:kF=\E[T:kH=\Eu:\
+ :kI=\E[4h:kL=\E[M:kN=\E[U:kP=\E[V:kR=\E[S:\
+ :ke=\E[19;0j\E[21;1j\212:ks=\E[19;1j\E[21;4j\Eent:\
+ :l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:ll=\Ew:\
+ :me=\E[m\017:mp=\EV:pf=\E[?9i:po=\E[?4i:ps=\E[?2i:st=\EH:\
+ :ts=\E7\E[25;%p1%{8}%+%dH:vb=\E[?5h\E[?5l:ve=\E[11;0j:\
+ :vs=\E[11;1j:\
+ :tc=att4410:
+
+att4415-w|tty5420-w|att5420-w|AT&T 4415/5420 132 cols:\
+ :co#132:lm#54:ws#97:\
+ :i1=\E[?3h:tc=att4415:
+
+att4415-rv|tty5420-rv|att5420-rv|AT&T 4415/5420 80 cols/rv:\
+ :i2=\E[?5h:vb=\E[?5l\E[?5h:\
+ :tc=att4415:
+
+att4415-w-rv|tty5420-w-rv|att5420-w-rv|AT&T 4415/5420 132 cols/rv:\
+ :co#132:lm#54:ws#97:\
+ :i1=\E[?3h:i2=\E[?5h:vb=\E[?5l\E[?5h:tc=att4415:
+
+# Note that this mode permits programming USER PF KEYS and labels
+# However, when you program user pf labels you have to reselect
+# user pf keys to make them appear!
+att4415+nl|tty5420+nl|att5420+nl|generic AT&T 4415/5420 changes for not changing labels:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
+ :..pn=\E[%p1%d;0;0;1q%p2%:-16.16s:\
+ :..px=\E[%p1%d;%p2%l%02d;0;1q F%p1%d %p2%s:
+
+att4415-nl|tty5420-nl|att5420-nl|AT&T 4415/5420 without changing labels:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
+ :tc=att4415+nl:tc=att4415:
+
+att4415-rv-nl|tty5420-rv-nl|att5420-rv-nl|AT&T 4415/5420 reverse video without changing labels:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
+ :tc=att4415+nl:tc=att4415-rv:
+
+att4415-w-nl|tty5420-w-nl|att5420-w-nl|AT&T 4415/5420 132 cols without changing labels:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
+ :tc=att4415+nl:tc=att4415-w:
+
+att4415-w-rv-n|tty5420-w-rv-n|att5420-w-rv-n|AT&T 4415/5420 132 cols reverse without changing labels:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:\
+ :tc=att4415+nl:tc=att4415-w-rv:
+
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att5420_2|AT&T 5420 model 2 80 cols:\
+ :am:db:hs:mi:ms:xo:\
+ :co#80:it#8:li#24:lm#78:ws#55:\
+ :AL=\E[%dL:CM=\E[%i%p1%d;%p2%dt:DC=\E[%dP:DL=\E[%dM:\
+ :IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:\
+ :UP=\E[%dA:ae=^O:al=\E[L:as=^N:bt=\E[1Z:cd=\E[0J:ce=\E[0K:\
+ :cl=\EH\EJ:cm=\E[%i%d;%dH:cr=\EG:cs=\E[%i%d;%dr:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:do=\E[1B:ec=\E[%ds\E[%dD:ei=:fs=\E8:\
+ :ho=\E[H:\
+ :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;0j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:\
+ :ic=\E[@:im=:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\
+ :k6=\EOh:k7=\EOi:k8=\EOj:kD=\E[P:kH=\Eu:kI=\E[4h:kN=\E[U:\
+ :kP=\E[V:kb=^H:kd=\E[B:ke=\E[19;0j:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\E[19;1j:ku=\E[A:le=^H:ll=\Ew:mb=\E[5m:me=\E[m\017:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[1C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:\
+ :sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[11;0j:vs=\E[11;1j:
+att5420_2-w|AT&T 5420 model 2 in 132 column mode:\
+ :co#132:\
+ :i1=\E[0;23r\Ex\Ey\E[2;0j\E[3;3j\E[4;0j\E[5;1j\E[6;0j\E[7;0j\E[8;0j\E[9;1j\E[10;0j\E[15;0j\E[16;1j\E[19;0j\E[20;1j\E[29;0j\E[1;24r:tc=att5420_2:
+
+att4418|att5418|AT&T 5418 80 cols:\
+ :am:xo:\
+ :co#80:li#24:\
+ :@8=\E[:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[n:\
+ :F2=\E[o:F3=\E[H:F4=\E[I:F5=\E[J:F8=\E[K:F9=\E[L:FA=\E[E:\
+ :FB=\E[_:FC=\E[M:FD=\E[N:FE=\E[O:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[1L:as=^N:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
+ :i1=\E[?3l:ic=\E[1@:im=:is=\E)0\E?6l\E?5l:k1=\E[h:k2=\E[i:\
+ :k3=\E[j:k6=\E[k:k7=\E[l:k8=\E[f:k9=\E[w:k;=\E[m:kC=\E[%:\
+ :kd=\EU:kh=\Ec:kl=\E@:kr=\EA:ku=\ES:le=\E[D:mb=\E[5m:\
+ :me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=^J:so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m:
+att4418-w|att5418-w|AT&T 5418 132 cols:\
+ :co#132:\
+ :i1=\E[?3h:tc=att5418:
+
+att4420|tty4420|teletype 4420:\
+ :bs:da:db:eo:ms:ul:xo:\
+ :co#80:li#24:lm#72:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\Ez:cl=\EH\EJ:cm=\EY%+ %+ :cr=\EG:\
+ :dc=\EP:dl=\EM:dm@:do=\EB:ed@:ho=\EH:k0=\EU:k3=\E@:kA=\EL:\
+ :kB=\EO:kC=\EJ:kD=\EP:kF=\ES:kI=\E\136:kL=\EM:kR=\ET:kd=\EB:\
+ :kh=\EH:kl=^H:kr=\EC:ku=\EA:l0=segment advance:\
+ :l3=cursor tab:le=\ED:nd=\EC:se=\E~:sf=\EH\EM\EY7 :so=\E}:\
+ :ue=\EZ:up=\EA:us=\E\:
+
+# The following is a terminfo entry for the Teletype 4424
+# asynchronous keyboard-display terminal. It supports
+# the vi editor. The terminal must be set up as follows,
+#
+# HIGHLIGHT DEFINITION 3-TONE
+# DISPLAY FUNCTION GROUP III
+#
+# The second entry below provides limited (a la adm3a)
+# operation under GROUP II.
+#
+# This must be used with DISPLAY FUNCTION GROUP I or III
+# and HIGHLIGHT DEFINITION 3-TONE
+# The terminal has either bold or blink, depending on options
+#
+# (att4424: commented out :ti:=\E[1m, we don't need bright locked on -- esr)
+att4424|tty4424|teletype 4424:\
+ :am:bs:xo:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\EL:as=\E(0:bl=^G:bt=\EO:cd=\EJ:ce=\Ez:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\EF:\
+ :dc=\EP:dl=\EM:do=\EB:ei=:ho=\E[H:ic=\E\136:im=:\
+ :is=\E[20l\E[?7h:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kC=\EJ:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E3:\
+ :md=\E3:me=\EX\E~\EZ\E4\E(B:mh=\EW:mr=\E}:nd=\EC:nw=\EE:\
+ :..sa=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|%t;5%;%?%p5%t;0%;m:\
+ :se=\E~:sf=^J:so=\E}:sr=\ET:st=\EH:ta=^I:ue=\EZ:up=\EA:\
+ :us=\E\:
+
+att4424-1|tty4424-1|teletype 4424 in display function group I:\
+ :kC@:kd=\EB:kh@:kl=\ED:kr=\EC:ku=\EA:\
+ :tc=att4424:
+
+# This entry is not one of AT&T's official ones, it was translated from the
+# 4.4BSD termcap file. The highlight strings are different from att4424.
+# I have no idea why this is -- older firmware version, maybe?
+# The following two lines are the comment originally attached to the entry:
+# This entry appears to avoid the top line - I have no idea why.
+# From: jwb Wed Mar 31 13:25:09 1982 remote from ihuxp
+att4424m|tty4424m|teletype 4424M:\
+ :am:da:db:mi:\
+ :co#80:it#8:li#23:\
+ :al=\EL:bl=^G:ce=\E[K:cl=\E[2;H\E[J:cm=\E[%i%2;%2H\E[B:\
+ :cr=^M:dc=\EP:dl=\EM:do=^J:ei=:ic=\E\136:im=:ip=2:\
+ :is=\E[m\E[2;24r:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:\
+ :nd=\E[C:nw=^M^J:se=\E[m:sf=^J:so=\E[7m:sr=\ET:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+
+# The Teletype 5425 is really version 2 of the Teletype 5420. It
+# is quite similar, except for some minor differences. No page
+# mode, for example, so all of the :cm: sequences used above have
+# to change back to what's being used for the 5410. Many of the
+# option settings have changed their numbering as well.
+#
+# This has been tested on a preliminary model.
+#
+# (att5425: added <rmam>/<smam> based on the init string -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att5425|tty5425|att4425|AT&T 4425/5425:\
+ :am:da:db:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:lm#78:ws#55:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\
+ :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%ds\E[%dD:ei=\E[4l:fs=\E8:ho=\E[H:\
+ :i1=\E<\E[?3l:i2=\E[?5l:im=\E[4h:\
+ :is=\E[m\017\E[1;2;3;4;6l\E[12;13;14;20l\E[?6;97;99l\E[?7h\E[4i\Ex\E[25;1j\212:\
+ :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
+ :k8=\EOj:kD=\E[P:kI=\E[4h:kb=^H:kd=\E[B:\
+ :ke=\E[21;0j\E[25;1j\212:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\E[21;1j\E[25;4j\Eent\E~:ku=\E[A:le=^H:ll=\E[24H:\
+ :mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:\
+ :nd=\E[C:nw=^M^J:rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:\
+ :sr=\EM:st=\EH:ta=^I:ts=\E7\E[25;%p1%{8}%+%dH:ue=\E[m:\
+ :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[12;0j:\
+ :vs=\E[12;1j:
+
+att5425-nl|tty5425-nl|att4425-nl|AT&T 4425/5425 80 columns no labels:\
+ :ks=\E[21;1j\E[25;4j\Eent:\
+ :tc=att4425:
+
+att5425-w|att4425-w|tty5425-w|teletype 4425/5425 in 132 column mode:\
+ :co#132:lm#54:ws#97:\
+ :i1=\E[?3h:tc=tty5425:
+
+# (att4426: his had bogus capabilities: :ri=\EM:, :ri=\E[1U:.
+# I also added <rmam>/<smam> -- esr)
+att4426|tty4426|teletype 4426S:\
+ :am:da:db:xo:\
+ :co#80:li#24:lm#48:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:SF=\E[%dS:\
+ :SR=\E[%dT:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E(B:al=\EL:as=\E(0:bl=^G:cd=\E[J:ce=\E[0K:ch=\E[%dG:\
+ :cl=\E[H\E[2J\E[1U\E[H\E[2J\E[1V:cm=\E[%i%d;%dH:cr=^M:\
+ :ct=\E[3g:cv=\E[%dd:dc=\EP:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
+ :i1=\Ec\E[?7h:ic=\E\136:im=:is=\E[m\E[1;24r:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:\
+ :kB=\EO:kC=\E[2J:kH=\E[24;1H:kb=^H:kd=\EB:kh=\E[H:kl=\ED:\
+ :kr=\EC:ku=\EA:le=\E[D:ll=\E[24H:md=\E[5m:me=\E[m\E(B:\
+ :mr=\E[7m:nd=\E[C:nw=^M^J:r2=\Ec\E[?3l\E[2;0y:rc=\E8:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[5m:sr=\ET:st=\E1:ta=^I:ue=\E[m:\
+ :up=\EA:us=\E[4m:
+
+# Terminfo entry for the AT&T 510 A Personal Terminal
+# Function keys 9 - 16 are available only after the
+# screen labeled (soft keys/action blocks) are labeled. Function key
+# 9 corresponds to the leftmost touch target on the screen,
+# function key 16 corresponds to the rightmost.
+#
+# This entry is based on one done by Ernie Rice at Summit, NJ and
+# changed by Anne Gallup, Skokie, IL, ttrdc!anne
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+att510a|bct510a|AT&T 510A Personal Terminal:\
+ :am:mi:ms:xn:xo:\
+ :Nl#8:co#80:lh#2:li#24:lw#7:\
+ :#4=\E[u:%i=\E[v:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:\
+ :F1=\EOe:F2=\EOf:F3=\EOg:F4=\EOh:F5=\EOi:F6=\EOj:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:\
+ :ac=+g\054h-f.e`bhrisjjkkllmmnnqqttuuvvwwxx{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[0J:\
+ :ce=\E[0K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:do=\E[1B:eA=\E(B\E)1:ff=^L:ho=\E[H:\
+ :i1=\E(B\E)1\E[2l:i2=\E[21;1|\212:k1=\EOm:k2=\EOV:\
+ :k3=\EOu:k4=\ENj:k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:\
+ :k;=\EOd:kB=\E[Z:kF=\E[S:kR=\E[T:kb=^H:kd=\E[B:ke=\E[19;0|:\
+ :kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
+ :pf=\E[?8i:po=\E[?4i:ps=\E[0i:rc=\E8:sc=\E7:se=\E[m:sf=^J:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E[11;3|:vi=\E[11;0|:vs=\E[11;2|:
+
+# Terminfo entry for the AT&T 510 D Personal Terminal
+# Function keys 9 through 16 are accessed by bringing up the
+# system blocks.
+# Function key 9 corresponds to the leftmost touch target on the screen,
+# function key 16 corresponds to the rightmost.
+#
+# There are problems with soft key labeling. These are due to
+# strangenesses in the native terminal that are impossible to
+# describe in a terminfo.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att510d|bct510d|AT&T 510D Personal Terminal:\
+ :am:da:db:mi:ms:xn:xo:\
+ :co#80:li#24:lm#48:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\
+ :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[1B:\
+ :ei=\E[4l:ff=^L:ho=\E[H:i1=\E(B\E)1\E[5;0|:\
+ :i2=\E[21;1|\212:im=\E[4h:k1=\EOm:k2=\EOV:k3=\EOu:k4=\ENj:\
+ :k5=\ENe:k6=\ENf:k7=\ENh:k8=\E[H:k9=\EOc:kb=^H:kd=\E[B:\
+ :ke=\E[19;0|:kl=\E[D:kr=\E[C:ks=\E[19;1|:ku=\E[A:le=^H:\
+ :ll=\E#2:mb=\E[5m:md=\E[2;7m:me=\E[m\017:mh=\E[2m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\
+ :so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E[11;3|:vs=\E[11;2|:
+
+# (att500: I merged this with the att513 entry, att500 just used att513 -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att500|att513|AT&T 513 using page mode:\
+ :am:mi:ms:xn:xo:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dE:SR=\E[%dF:UP=\E[%dA:ae=^O:\
+ :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ei=\E[4l:ho=\E[H:\
+ :i1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l:\
+ :im=\E[4h:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:\
+ :k7=\EOi:k8=\EOj:kD=\ENf:kI=\ENj:kN=\E[U:kP=\E[V:kb=^H:\
+ :kd=\E[B:ke=\E[19;0|\E[21;1|\212:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\E[19;1|\E[21;4|\Eent:ku=\E[A:le=^H:ll=\E#2:mb=\E[5m:\
+ :md=\E[2;7m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=\EE:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:ve=\E[11;0|:vs=\E[11;1|:
+
+# 01-07-88
+# printer must be set to EMUL ANSI to accept ESC codes
+# :up: stops at top margin
+# :i1: sets cpi 10,lpi 6,form 66,left 1,right 132,top 1,bottom 66,font
+# and alt font ascii,wrap on,tabs cleared
+# :is: disables newline on LF,Emphasized off
+# The <u0> capability sets form length
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att5310|att5320|AT&T Model 53210 or 5320 matrix printer:\
+ :co#132:it#8:li#66:\
+ :DO=\E[%de:RI=\E[%da:cr=^M:do=^J:ff=^L:i1=\Ec:is=\E[20l\r:\
+ :nd= :ta=^I:up=\EM:
+
+# Teletype 5620, firmware version 1.1 (8;7;3) or earlier from BRL
+# The following SET-UP modes are assumed for normal operation:
+# CR_DEF=CR NL_DEF=INDEX DUPLEX=FULL
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements. This termcap description is for the Resident Terminal Mode.
+# No delays specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# The BRL entry also said: UNSAFE :ll=\E[70H:
+att5620-1|tty5620-1|dmd1|Teletype 5620 with old ROMs:\
+ :am:xo:\
+ :co#88:it#8:li#70:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\
+ :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\
+ :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:nw=^M^J:r1=\Ec:\
+ :rc=\E8:sc=\E7:sf=^J:sr=\E[T:ta=^I:up=\E[A:
+
+# 5620 terminfo (2.0 or later ROMS with char attributes)
+# The following SET-UP modes are assumed for normal operation:
+# DUPLEX=FULL GEN_FLOW=ON NEWLINE=INDEX RETURN=CR
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements. This termcap description is for Resident Terminal Mode. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# assumptions: :sf: (scroll forward one line) is only done at screen bottom
+# Be aware that older versions of the dmd have a firmware bug that affects
+# parameter defaulting; for this terminal, the 0 in \E[0m is not optional.
+# :ms: is from an otherwise inferior BRL for this terminal. That entry
+# also has :ll:=\E[70H commented out and marked unsafe.
+# For more, see the 5620 FAQ maintained by David Breneman <daveb@dgtl.com>.
+att5620|dmd|tty5620|ttydmd|5620|5620 terminal 88 columns:\
+ :NL:NP:am:bs:ms:xo:\
+ :co#88:it#8:li#70:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:SF=\E[%dS:\
+ :SR=\E[%dT:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
+ :ic=\E[@:im=:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:md=\E[2m:me=\E[0m:mh=\E[2m:\
+ :mr=\E[7m:nd=\E[C:nw=^J:..px=\E[%p1%d;%p2%l%dq%p2%s:\
+ :r1=\Ec:rc=\E8:sc=\E7:se=\E[0m:sf=\E[S:so=\E[7m:sr=\E[T:\
+ :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
+att5620-24|tty5620-24|dmd-24|teletype dmd 5620 in a 24x80 layer:\
+ :li#24:tc=att5620:
+att5620-34|tty5620-34|dmd-34|teletype dmd 5620 in a 34x80 layer:\
+ :li#34:tc=att5620:
+# 5620 layer running the "S" system's downloaded graphics handler:
+att5620-s|tty5620-s|layer|vitty|5620 S layer:\
+ :am:bs:pt:\
+ :co#80:it#8:li#72:\
+ :al=\EI:bl=^G:ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dl=\ED:\
+ :do=^J:kC=\E[2J:kH=\E[70;1H:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:sf=^J:ta=^I:up=^K:vb=\E^G:
+
+# Entries for <kf15> thru <kf28> refer to the shifted system pf keys.
+#
+# Entries for <kf29> thru <kf46> refer to the alternate keypad mode
+# keys: = * / + 7 8 9 - 4 5 6 , 1 2 3 0 . ENTER
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att605|AT&T 605 80 column 102key keyboard:\
+ :am:eo:xo:\
+ :co#80:li#24:ws#80:\
+ :DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:ae=^O:al=\E[L:as=\E)0\016:\
+ :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\
+ :i1=\E[8;0|\E[?\E[13;20l\E[?\E[12h:ic=\E[@:im=\E[4h:\
+ :is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:\
+ :k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:\
+ :kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:ll=\E[24H:mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=^J:\
+ :so=\E[7m:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+att605-pc|ATT 605 in pc term mode:\
+ :@7=\E[F:AL=\E[L:S4=250\E[?11l\E[50;1|:S5=400\E[50;0|:\
+ :XF=g:XN=e:\
+ :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
+ :al=\E[L:bt=\E[Z:dc=\E[P:dl=\E[M:do=\E[B:ei=:ic=\E[@:im=:\
+ :k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:k5=\E[Q:k6=\E[R:k7=\E[S:\
+ :k8=\E[T:k9=\E[U:k;=\E[V:kB=\E[Z:kD=\E[P:kI=\E[@:kL=\E[M:\
+ :kN=\E[G:kP=\E[I:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=\E[D:nd=\E[C:up=\E[A:\
+ :tc=att605:
+att605-w|AT&T 605-w 132 column 102 key keyboard:\
+ :co#132:ws#132:\
+ :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h\E(B\E)0:tc=att605:
+# (att610: I added <rmam>/<smam> based on the init string. I also
+# added :SF: and :SR: because the BSD file says the att615s have them,
+# and the 615 is like a 610 with a big keyboard, and most of their other
+# smart terminals support the same sequence -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att610|AT&T 610; 80 column; 98key keyboard:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ae=^O:\
+ :al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\
+ :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0:\
+ :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
+ :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:\
+ :ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
+ :vs=\E[?12;25h:
+att610-w|AT&T 610; 132 column; 98key keyboard:\
+ :co#132:ws#132:\
+ :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610:
+
+att610-103k|AT&T 610; 80 column; 103key keyboard:\
+ :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\
+ :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\
+ :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\
+ :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\
+ :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\
+ :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\
+ :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\
+ :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:k9@:k;@:kD=\ENf:\
+ :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\
+ :tc=att610:
+att610-103k-w|AT&T 610; 132 column; 103key keyboard:\
+ :co#132:ws#132:\
+ :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att610-103k:
+att615|AT&T 615; 80 column; 98key keyboard:\
+ :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\
+ :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\
+ :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\
+ :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\
+ :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\
+ :tc=att610:
+att615-w|AT&T 615; 132 column; 98key keyboard:\
+ :#4=\E[ A:%i=\E[ @:F5=\EOC:F6=\EOD:F7=\EOE:F8=\EOF:F9=\EOG:\
+ :FA=\EOH:FB=\EOI:FC=\EOJ:FD=\ENO:FE=\ENP:FF=\ENQ:FG=\ENR:\
+ :FH=\ENS:FI=\ENT:FJ=\EOP:FK=\EOQ:FL=\EOR:FM=\EOS:FN=\EOw:\
+ :FO=\EOx:FP=\EOy:FQ=\EOm:FR=\EOt:FS=\EOu:FT=\EOv:FU=\EOl:\
+ :FV=\EOq:FW=\EOr:FX=\EOs:FY=\EOp:FZ=\EOn:Fa=\EOM:\
+ :tc=att610-w:
+att615-103k|AT&T 615; 80 column; 103key keyboard:\
+ :#4=\E[ A:%i=\E[ @:\
+ :tc=att610-103k:
+att615-103k-w|AT&T 615; 132 column; 103key keyboard:\
+ :#4=\E[ A:%i=\E[ @:\
+ :tc=att610-103k-w:
+# (att620: I added <rmam>/<smam> based on the init string and
+# :SR:/:SF: from a BSD termcap -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att620|AT&T 620; 80 column; 98key keyboard:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :ae=\E(B\017:al=\E[L:as=\E)0\016:bl=^G:bt=\E[Z:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:ho=\E[H:\
+ :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h:\
+ :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
+ :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\E(B\017:mh=\E[2m:mr=\E[7m:\
+ :nd=\E[C:nw=\EE:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
+ :sr=\EM:ta=^I:ts=\E7\E[25;%i%p1%dx:ue=\E[m:up=\E[A:\
+ :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
+ :vs=\E[?12;25h:
+att620-w|AT&T 620; 132 column; 98key keyboard:\
+ :co#132:ws#132:\
+ :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620:
+att620-103k|AT&T 620; 80 column; 103key keyboard:\
+ :!1=\EOO:!2=\EOP:!3=\EOS:#1=\EOM:%0=\EOt:%1=\EOm:%2=\ENi:\
+ :%3=\EOl:%4=\ENc:%5=\ENh:%6=\EOv:%7=\EOr:%8=\ENg:%9=\EOz:\
+ :%a=\EOL:%b=\ENC:%c=\ENH:%d=\EOR:%e=\ENG:%f=\EOZ:%g=\EOT:\
+ :%h=\EOY:%j=\EOQ:&0=\EOW:&1=\EOb:&2=\ENa:&3=\EOy:&4=\EOB:\
+ :&5=\EOq:&6=\EOo:&7=\EOp:&8=\EOs:&9=\ENB:*0=\EOX:*1=\EOU:\
+ :*2=\END:*3=\EON:*4=\ENF:*5=\ENE:*6=\ENI:*7=\ENN:*8=\EOA:\
+ :*9=\EOK:@0=\EOx:@1=\E9:@2=\EOw:@3=\EOV:@4=\EOu:@5=\ENd:\
+ :@6=\EOn:@7=\E0:@8=^M:@9=\EOk:F1@:F2@:F3@:F4@:F5@:F6@:F7@:F8@:\
+ :F9@:FA@:FB@:FC@:FD@:FE@:FF@:FG@:FH@:FI@:FJ@:FK@:FL@:FM@:FN@:FO@:FP@:\
+ :FQ@:FR@:FS@:FT@:FU@:FV@:FW@:FX@:FY@:FZ@:Fa@:k9@:k;@:kD=\ENf:\
+ :kE=\EOa:kI=\ENj:kL=\ENe:kM=\ENj:kN=\E[U:kP=\E[V:\
+ :tc=att620:
+
+att620-103k-w|AT&T 620; 132 column; 103key keyboard:\
+ :co#132:ws#132:\
+ :i1=\E[8;0|\E[?4;5;13;15l\E[13;20l\E[?3;7h\E[12h:tc=att620-103k:
+
+# AT&T (formerly Teletype) 630 Multi-Tasking Graphics terminal
+# The following SETUP modes are assumed for normal operation:
+# Local_Echo=Off Gen_Flow=On Return=CR Received_Newline=LF
+# Font_Size=Large Non-Layers_Window_Cols=80
+# Non-Layers_Window_Rows=60
+# Other SETUP modes may be set for operator convenience or communication
+# requirements. Some capabilities assume a printer attached to the Aux EIA
+# port. This termcap description is for the Fixed Non-Layers Window. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (att630: added :ic:, :mb: and :mh: from a BSD termcap file -- esr)
+att630|AT&T 630 windowing terminal:\
+ :NP:am:bs:da:db:mi:ms:xo:\
+ :co#80:it#8:li#60:lm#0:\
+ :@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\ENq:\
+ :F2=\ENr:F3=\ENs:F4=\ENt:F5=\ENu:F6=\ENv:F7=\ENw:F8=\ENx:\
+ :F9=\ENy:FA=\ENz:FB=\EN{:FC=\EN|:FD=\EN}:FE=\EN~:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :al=\E[L:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:is=\E[m:k9=\ENo:k;=\ENp:\
+ :kA=\E[L:kB=\E[Z:kC=\E[2J:kD=\E[P:kI=\E[@:kL=\E[M:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:pf=\E[?4i:\
+ :po=\E[?5i:..px=\E[%p1%d;%p2%l%dq%p2%s:r2=\Ec:rc=\E8:\
+ :..sa=\E[0%?%p2%t;4%;%?%p1%p3%|%p4%|%p5%|%t;7%;m:\
+ :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+att630-24|5630-24|5630DMD-24|630MTG-24|AT&T 630 windowing terminal 24 lines:\
+ :li#24:tc=att630:
+
+# This is the att700 entry for 700 native emulation of the AT&T 700
+# terminal. Comments are relative to changes from the 605V2 entry and
+# att730 on which the entry is based. Comments show the terminfo
+# capability name, termcap name, and description.
+#
+# Here is what's going onm in the init string:
+# ESC [ 50;4| set 700 native mode (really is 605)
+# x ESC [ 56;ps| set lines to 24: ps=0; 40: ps=1 (plus status line)
+# ESC [ 53;0| set GenFlow to Xon/Xoff
+# ESC [ 8 ;0| set CR on NL
+# x ESC [ ? 3 l/h set workspace: 80 col(l); 132 col(h)
+# ESC [ ? 4 l jump scroll
+# ESC [ ? 5 l/h video: normal (l); reverse (h)
+# ESC [ ?13 l Labels on
+# ESC [ ?15 l parity check = no
+# ESC [ 13 l monitor mode off
+# ESC [ 20 l LF on NL (not CRLF on NL)
+# ESC [ ? 7 h autowrap on
+# ESC [ 12 h local echo off
+# ESC ( B GO = ASCII
+# ESC ) 0 G1 = Special Char & Line Drawing
+# ESC [ ? 31 l Set 7 bit controls
+#
+# Note: Most terminals, especially the 600 family use Reverse Video for
+# standout mode. DEC also uses reverse video. The VT100 uses bold in addition
+# Assume we should stay with reverse video for 70.. However, the 605V2 exits
+# standout mode with \E[m (all normal attributes). The 730 entry simply
+# exits reverse video which would leave other current attributes intact. It
+# was assumed the 730 entry to be more correct so rmso has changed. The
+# 605V2 has no sequences to turn individual attributes off, thus its setting
+# and the rmso/smso settings from the 730.
+#
+# Note: For the same reason as above in rmso I changed exit under-score mode
+# to specifically turn off underscore, rather than return to all normal
+# attributes
+#
+# Note: The following pkey_xmit is taken from the 605V2 which contained the
+# capability as pfxl. It was changed here to pfx since pfxl
+# will only compile successfully with Unix 4.0 tic. Also note that pfx only
+# allows strings to be parameters and label values must be programmed as
+# constant strings. Supposedly the pfxl of Version 4.0 allows both labels
+# and strings to be parameters. The 605V2 pfx entry should be examined later
+# in this regard. For reference the 730 pfxl entry is shown here for comparison
+# 730 pfx entry:
+# pfxl=\E[%?%p1%{25}%<%t%p1%e%p1%{24}%-%;%d;%p2%l%02d%?%p1%{25}%<%tq\s\s\s
+# SYS\s\s\s\s\sF%p1%:-2d\s\s%e;0;3q%;%p2%s,
+#
+# (for 4.0 tic)
+# pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
+#
+# (for <4.0 tic)
+# pfx=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t F%p1%1d %;%p2%s,
+#
+# From the AT&T 705 Multi-tasking terminal user's guide Page 8-8,8-9
+#
+# Port1 Interface
+#
+# modular 10 pin Connector
+# Left side Right side
+# Pin 1 2 3 4 5 6 7 8 9 10
+#
+# Key (notch) at bottom
+#
+# Pin 1 DSR
+# 3 DCD
+# 4 DTR
+# 5 Sig Ground
+# 6 RD
+# 7 SD
+# 8 CTS
+# 9 RTS
+# 10 Frame Ground
+#
+# The manual is 189 pages and is loaded with details about the escape codes,
+# etc..... Available from AT&T CIC 800-432-6600...
+# ask for Document number 999-300-660..
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att700|AT&T 700 24x80 column display w/102key keyboard:\
+ :am:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
+ :fs=\E8:ho=\E[H:i2=\E(B\E)0:im=\E[4h:\
+ :is=\E[50;4|\E[53;0|\E[8;0|\E[?4;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0\E[?31l\E[0m\017:\
+ :k1=\EOc:k2=\EOd:k3=\EOe:k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:\
+ :k8=\EOj:k9=\ENo:kD=\E[P:kI=\E[@:kN=\E[U:kP=\E[V:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:ll=\E[24H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
+ :st=\EH:ta=^I:ts=\E7\E[99;%i%p1%dx:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
+ :vs=\E[?12;25h:
+
+# This entry was modified 3/13/90 by JWE.
+# fixes include additions of <enacs>, correcting :rp:, and modification
+# of <kHOM>. (See comments below)
+# att730 has status line of 80 chars
+# These were commented out: :SF=\E[%p1%dS:, :SR=\E[%p1%dT:,
+# the <kf25> and up keys are used for shifted system Fkeys
+# NOTE: JWE 3/13/90 The 98 key keyboard translation for shift/HOME is
+# currently the same as :kh: (unshifted HOME or \E[H). On the 102, 102+1
+# and 122 key keyboards, the 730's translation is \E[2J. For consistency
+# <kHOM> has been commented out. The user can uncomment <kHOM> if using the
+# 102, 102+1, or 122 key keyboards
+# kHOM=\E[2J,
+# (att730: I added <rmam>/<smam> based on the init string -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+att730|AT&T 730 windowing terminal:\
+ :am:da:db:es:hs:mi:ms:xn:xo:\
+ :co#80:it#8:li#60:lm#0:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:fs=\E8:\
+ :ho=\E[H:\
+ :i1=\E[8;0|\E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)B:\
+ :i2=\E(B\E)0:im=\E[4h:is=\E[m\017:k1=\EOc:k2=\EOd:k3=\EOe:\
+ :k4=\EOf:k5=\EOg:k6=\EOh:k7=\EOi:k8=\EOj:k9=\ENo:kI=\E[@:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m\017:mh=\E[2m:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
+ :ta=^I:ts=\E7\E[;%i%p1%dx:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h\E[?12l:vi=\E[?25l:\
+ :vs=\E[?12;25h:
+att730-41|730MTG-41|AT&T 730-41 windowing terminal Version:\
+ :li#41:tc=att730:
+att730-24|730MTG-24|AT&T 730-24 windowing terminal Version:\
+ :li#24:tc=att730:
+att730r|730MTGr|AT&T 730 rev video windowing terminal Version:\
+ :i1=\E[8;0|\E[?3;4;13;15l\E[?5h\E[13;20l\E[?7h\E[12h\E(B\E)B:\
+ :vb=\E[?5l\E[?5h:\
+ :tc=att730:
+att730r-41|730MTG-41r|AT&T 730r-41 rev video windowing terminal Version:\
+ :li#41:tc=att730r:
+att730r-24|730MTGr-24|AT&T 730r-24 rev video windowing terminal Version:\
+ :li#24:tc=att730r:
+
+# The following represents the screen layout along with the associated
+# bezel buttons for the 5430/pt505 terminal. The "kf" designations do
+# not appear on the screen but are shown to reference the bezel buttons.
+# The "CMD", "MAIL", and "REDRAW" buttons are shown in their approximate
+# position relative to the screen.
+#
+#
+#
+# +----------------------------------------------------------------+
+# | |
+# XXXX | kf0 kf24 | XXXX
+# | |
+# | |
+# XXXX | kf1 kf23 | XXXX
+# | |
+# | |
+# XXXX | kf2 kf22 | XXXX
+# | |
+# | |
+# XXXX | kf3 kf21 | XXXX
+# | |
+# | |
+# XXXX | kf4 kf20 | XXXX
+# | |
+# | |
+# XXXX | kf5 kf19 | XXXX
+# | |
+# | |
+# XXXX | kf6 kf18 | XXXX
+# | |
+# | |
+# XXXX | | XXXX
+# | |
+# | |
+# +----------------------------------------------------------------+
+#
+# XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
+#
+# Note: XXXX represents the screen buttons
+# CMD REDRAW
+#
+# MAIL
+#
+# version 1 note:
+# The character string sent by key 'kf26' may be user programmable
+# to send either \E[16s, or \E[26s.
+# The character string sent by key 'krfr' may be user programmable
+# to send either \E[17s, or \E[27s.
+#
+# Depression of the "CMD" key sends \E! (kcmd)
+# Depression of the "MAIL" key sends \E[26s (kf26)
+# "REDRAW" same as "REFRESH" (krfr)
+#
+# "kf" functions adds carriage return to output string if terminal is in
+# 'new line' mode.
+#
+# The following are functions not covered in the table above:
+#
+# Set keyboard character (SKC): \EPn1;Pn2w
+# Pn1= 0 Back Space key
+# Pn1= 1 Break key
+# Pn2= Program char (hex)
+#
+# Screen Definition (SDF): \E[Pn1;Pn2;Pn3;Pn4;Pn5t
+# Pn1= Window number (1-39)
+# Pn2-Pn5= Y;X;Y;X coordinates
+#
+# Screen Selection (SSL): \E[Pnu
+# Pn= Window number
+#
+# Set Terminal Modes (SM): \E[Pnh
+# Pn= 3 Graphics mode
+# Pn= > Cursor blink
+# Pn= < Enter new line mode
+# Pn= = Enter reverse insert/replace mode
+# Pn= ? Enter no scroll mode
+#
+# Reset Terminal Mode (RM): \E[Pnl
+# Pn= 3 Exit graphics mode
+# Pn= > Exit cursor blink
+# Pn= < Exit new line mode
+# Pn= = Exit reverse insert/replace mode
+# Pn= ? Exit no scroll mode
+#
+# Screen Status Report (SSR): \E[Pnp
+# Pn= 0 Request current window number
+# Pn= 1 Request current window dimensions
+#
+# Device Status Report (DSR): \E[6n Request cursor position
+#
+# Call Status Report (CSR): \E[Pnv
+# Pn= 0 Call failed
+# Pn= 1 Call successful
+#
+# Transparent Button String (TBS): \E[Pn1;Pn2;Pn3;{string
+# Pn1= Button number to be loaded
+# Pn2= Character count of "string"
+# Pn3= Key mode being loaded:
+# 0= Unshifted
+# 1= Shifted
+# 2= Control
+# String= Text string (15 chars max)
+#
+# Screen Number Report (SNR): \E[Pnp
+# Pn= Screen number
+#
+# Screen Dimension Report (SDR): \E[Pn1;Pn2r
+# Pn1= Number of rows available in window
+# Pn2= Number of columns available in window
+#
+# Cursor Position Report (CPR): \E[Pn1;Pn2R
+# Pn1= "Y" Position of cursor
+# Pn2= "X" Position of cursor
+#
+# Request Answer Back (RAB): \E[c
+#
+# Answer Back Response (ABR): \E[?;*;30;VSV
+# *= 0 No printer available
+# *= 2 Printer available
+# V= Software version number
+# SV= Software sub version number
+# (printer-available field not documented in v1)
+#
+# Screen Alignment Aid: \En
+#
+# Bell (lower pitch): \E[x
+#
+# Dial Phone Number: \EPdstring\
+# string= Phone number to be dialed
+#
+# Set Phone Labels: \EPpstring\
+# string= Label for phone buttons
+#
+# Set Clock: \EPchour;minute;second\
+#
+# Position Clock: \EPsY;X\
+# Y= "Y" coordinate
+# X= "X" coordinate
+#
+# Delete Clock: \Epr\
+#
+# Programming The Function Buttons: \EPfPn;string\
+# Pn= Button number (00-06, 18-24)
+# (kf00-kf06, kf18-kf24)
+# string= Text to sent on button depression
+#
+# The following in version 2 only:
+#
+# Request For Local Directory Data: \EPp12;\
+#
+# Local Directory Data to host: \EPp11;LOCAL...DIRECTORY...DATA\
+#
+# Request for Local Directory Data in print format: \EPp13;\
+#
+# Enable 'Prt on Line' mode: \022 (DC2)
+#
+# Disable 'Prt on Line' mode: \024 (DC4)
+#
+
+# 05-Aug-86:
+# The following Terminfo entry describes functions which are supported by
+# the AT&T 5430/pt505 terminal software version 2 and later.
+att505|pt505|att5430|gs5430|AT&T Personal Terminal 505 or 5430 GETSET terminal:\
+ :am:xo:\
+ :co#80:it#8:li#24:\
+ :&2=\E[27s:@4=\E\041:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
+ :DO=\E[%dB:F8=\E[18s:F9=\E[19s:FA=\E[20s:FB=\E[21s:\
+ :FC=\E[22s:FD=\E[23s:FE=\E24s:FG=\E26s:LE=\E[%dD:\
+ :RA=\E[11;1j:RI=\E[%dC:SA=\E[11;0j:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cb=\E2K:cd=\E[0J:\
+ :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=\E[4l:ho=\E[H:\
+ :i1=\EPr\E[0u\E[2J\E[0;0H\E[m\E[3l\E[<l\E[4l\E[>l\E[=l\E[?l:\
+ :im=\E[4h:k0=\E[00s:k1=\E[01s:k2=\E[02s:k3=\E[03s:\
+ :k4=\E[04s:k5=\E[05s:k6=\E[06s:kb=^H:kd=\E[B:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:r1=\Ec:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=^J:so=\E[1m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E[>l:vs=\E[>h:
+
+# The following Terminfo entry describes functions which are supported by
+# the AT&T 5430/pt505 terminal software version 1.
+att505-24|pt505-24|gs5430-24|AT&T PT505 or 5430 GETSET version 1 24 lines:\
+ :li#24:\
+ :RA@:SA@:pf@:po@:rc@:sc@:tc=att505:
+tt505-22|pt505-22|gs5430-22|AT&T PT505 or 5430 GETSET version 1 22 lines:\
+ :li#22:tc=att505:
+
+#### Ampex (Dialogue)
+#
+# Yes, these are the same people who are better-known for making audio- and
+# videotape. I'm told they are located in Redwood City, CA.
+#
+
+# From: <cbosg!ucbvax!SRC:george> Fri Sep 11 22:38:32 1981
+# (ampex80: some capabilities merged in from SCO's entry -- esr)
+ampex80|a80|d80|dialogue|dialogue80|ampex dialogue 80:\
+ :am:bs:bw:ul:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :\
+ :cr=^M:ct=\E3:dc=\EW:dl=\ER:do=^J:ei=:ic=\EQ:im=:is=\EA:le=^H:\
+ :nd=^L:se=\Ek:sf=^J:so=\Ej:st=\E1:ta=^I:ue=\Em:up=^K:us=\El:
+# This entry was from somebody anonymous, Tue Aug 9 20:11:37 1983, who wrote:
+ampex175|ampex d175:\
+ :am:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:is=\EX\EA\EF:\
+ :kA=\EE:kD=\EW:kI=\EQ:kL=\ER:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:\
+ :le=^H:ll=^^^K:nd=^L:se=\Ek:sf=^J:so=\Ej:te=\EF:ti=\EN:\
+ :ue=\Em:up=^K:us=\El:
+# No backspace key in the main QWERTY cluster. Fortunately, it has a
+# NEWLINE/PAGE key just above RETURN that sends a strange single-character
+# code. Given a suitable Unix (one that lets you set an echo-erase-as-BS-SP-BS
+# mode), this key can be used as the erase key; I find I like this. Because
+# some people and some systems may not, there is another termcap ("ampex175")
+# that suppresses this little eccentricity by omitting the relevant capability.
+ampex175-b|ampex d175 using left arrow for erase:\
+ :kb=^_:\
+ :tc=ampex175:
+# From: Richard Bascove <atd!dsd!rcb@ucbvax.berkeley.edu>
+# (ampex210: removed obsolete ":kn#10:" -- esr)
+ampex210|a210|ampex a210:\
+ :am:bs:hs:xn:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\
+ :dl=\ER:ei=:fs=\E.2:ho=^^:ic=\EQ:if=/usr/share/tabset/std:\
+ :im=:is=\EC\Eu\E'\E(\El\EA\E%\E{\E.2\EG0\Ed\En:\
+ :k0=^A0\r:k1=^A1\r:k2=^A2\r:k3=^A3\r:k4=^A4\r:k5=^A5\r:\
+ :k6=^A6\r:k7=^A7\r:k8=^A8\r:k9=^A9\r:kd=^V:kh=^^:kl=^H:\
+ :kr=^L:ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\E.0\Eg\E}\Ef:up=^K:\
+ :vb=\EU\EX\EU\EX\EU\EX\EU\EX:\
+ :tc=adm+sgr:
+# (ampex219: I added <rmam>/<smam> based on the init string, added :vs:
+# from ampex219w, added :ve:=\E[?3l, irresistibly suggested by :vs:,
+# and moved the padding to be *after* the caps -- esr)
+ampex219|ampex-219|amp219|Ampex with Automargins:\
+ :hs:xn:\
+ :co#80:it#8:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=%i\E[%2;%2r:\
+ :do=\E[B:ho=\E[H:\
+ :is=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=\E[21~:\
+ :k1=\E[7~:k2=\E[8~:k3=\E[9~:k4=\E[10~:k5=\E[11~:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kd=\E[B:ke=\E>:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mh=\E[1m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:\
+ :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?3l:vs=\E[?3h:
+ampex219w|ampex-219w|amp219w|Ampex 132 cols:\
+ :co#132:li#24:\
+ :bl=^G:cr=^M:do=^J:is=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :sf=^J:\
+ :tc=ampex219:
+# (ampex232: removed :if=/usr/share/tabset/ampex:, no file and no :st: --esr)
+ampex232|ampex-232|Ampex Model 232:\
+ :am:\
+ :co#80:li#24:sg#1:\
+ :al=5*\EE:bt=\EI:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:\
+ :dl=5*\ER:do=^V:ei=:ic=\EQ:im=:is=\Eg\El:k0=^A@\r:k1=^AA\r:\
+ :k2=^AB\r:k3=^AC\r:k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:\
+ :k8=^AH\r:k9=^AI\r:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:\
+ :mk@:nd=^L:ta=^I:up=^K:vb=\Eb\Ed:ve=\E.4:vi=\E.0:\
+ :tc=adm+sgr:
+# (ampex: removed :if=/usr/share/tabset/amp-132:, no file and no :st: -- esr)
+ampex232w|Ampex Model 232 / 132 columns:\
+ :co#132:li#24:\
+ :is=\E\034Eg\El:tc=ampex232:
+
+#### Ann Arbor (aa)
+#
+# Ann Arbor made dream terminals for hackers -- large screen sizes and huge
+# numbers of function keys. At least some used monitors in portrait mode,
+# allowing up to 76-character screen heights! They were reachable at:
+#
+# Ann Arbor Terminals
+# 6175 Jackson Road
+# Ann Arbor, MI 48103
+# (313)-663-8000
+#
+# But in 1996 the phone number reaches some kitschy retail shop, and Ann Arbor
+# can't be found on the Web; I fear they're long dead. R.I.P.
+#
+
+
+# Originally from Mike O'Brien@Rand and Howard Katseff at Bell Labs.
+# Highly modified 6/22 by Mike O'Brien.
+# split out into several for the various screen sizes by dave-yost@rand
+# Modifications made 3/82 by Mark Horton
+# Modified by Tom Quarles at UCB for greater efficiency and more diversity
+# status line moved to top of screen, :vb: removed 5/82
+# Some unknown person at SCO then hacked the init strings to make them more
+# efficient.
+#
+# assumes the following setup:
+# A menu: 0000 1010 0001 0000
+# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
+# C menu: 56 66 0 0 9600 0110 1100
+# D menu: 0110 1001 1 0
+#
+# Briefly, the settings are for the following modes:
+# (values are for bit set/clear with * indicating our preference
+# and the value used to test these termcaps)
+# Note that many of these settings are irrelevent to the terminfo
+# and are just set to the default mode of the terminal as shipped
+# by the factory.
+#
+# A menu: 0000 1010 0001 0000
+# Block/underline cursor*
+# blinking/nonblinking cursor*
+# key click/no key click*
+# bell/no bell at column 72*
+#
+# key pad is cursor control*/key pad is numeric
+# return and line feed/return for :cr: key *
+# repeat after .5 sec*/no repeat
+# repeat at 25/15 chars per sec. *
+#
+# hold data until pause pressed/process data unless pause pressed*
+# slow scroll/no slow scroll*
+# Hold in area/don't hold in area*
+# functions keys have default*/function keys disabled on powerup
+#
+# show/don't show position of cursor during page transmit*
+# unused
+# unused
+# unused
+#
+# B menu: 9600 0100 1000 0000 0000 1000 0000 17 19
+# Baud rate (9600*)
+#
+# 2 bits of parity - 00=odd,01=even*,10=space,11=mark
+# 1 stop bit*/2 stop bits
+# parity error detection off*/on
+#
+# keyboard local/on line*
+# half/full duplex*
+# disable/do not disable keyboard after data transmission*
+#
+# transmit entire page/stop transmission at cursor*
+# transfer/do not transfer protected characters*
+# transmit all characters/transmit only selected characters*
+# transmit all selected areas/transmit only 1 selected area*
+#
+# transmit/do not transmit line separators to host*
+# transmit/do not transmit page tab stops tabs to host*
+# transmit/do not transmit column tab stop tabs to host*
+# transmit/do not transmit graphics control (underline,inverse..)*
+#
+# enable*/disable auto XON/XOFF control
+# require/do not require receipt of a DC1 from host after each LF*
+# pause key acts as a meta key/pause key is pause*
+# unused
+#
+# unused
+# unused
+# unused
+# unused
+#
+# XON character (17*)
+# XOFF character (19*)
+#
+# C menu: 56 66 0 0 9600 0110 1100
+# number of lines to print data on (printer) (56*)
+#
+# number of lines on a sheet of paper (printer) (66*)
+#
+# left margin (printer) (0*)
+#
+# number of pad chars on new line to printer (0*)
+#
+# printer baud rate (9600*)
+#
+# printer parity: 00=odd,01=even*,10=space,11=mark
+# printer stop bits: 2*/1
+# print/do not print guarded areas*
+#
+# new line is: 01=LF,10=CR,11=CRLF*
+# unused
+# unused
+#
+# D menu: 0110 1001 1 0
+# LF is newline/LF is down one line, same column*
+# wrap to preceding line if move left from col 1*/don't wrap
+# wrap to next line if move right from col 80*/don't wrap
+# backspace is/is not destructive*
+#
+# display*/ignore DEL character
+# display will not/will scroll*
+# page/column tab stops*
+# erase everything*/erase unprotected only
+#
+# editing extent: 0=display,1=line*,2=field,3=area
+#
+# unused
+#
+
+annarbor4080|aa4080|ann arbor 4080:\
+ :am:bs:\
+ :co#80:li#40:\
+ :bl=^G:cl=\014:\
+ :..cm=\017%p2%{10}%/%{16}%*%p2%{10}%m%+%c%p1%?%p1%{19}%>%t%{12}%+%;%{64}%+%c:\
+ :cr=^M:ct=^^P^P:do=^J:ho=^K:kb=^^:kd=^J:kh=^K:kl=^H:kr=^_:\
+ :ku=^N:le=^H:nd=^_:sf=^J:st=^]^P1:ta=^I:up=^N:
+
+# Strange Ann Arbor terminal from BRL
+aas1901|Ann Arbor K4080 w/S1901 mod:\
+ :am:\
+ :co#80:li#40:\
+ :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:kb=^H:kd=^J:kl=^H:le=^H:\
+ :ll=^O\0c:nd=^_:nw=^M^J:sf=^J:ta=^I:up=^N:
+
+# If you're using the GNU termcap library, add
+# :cS=\E[%p1%d;%p2%d;%p3%d;%p4%dp:
+# to these capabilities. This is the nonstandard GNU termcap scrolling
+# capability, arguments are:
+# 1. Total number of lines on the screen.
+# 2. Number of lines above desired scroll region.
+# 3. Number of lines below (outside of) desired scroll region.
+# 4. Total number of lines on the screen, the same as the first parameter.
+# The generic Ann Arbor entry is the only one that uses this.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+aaa+unk|aaa-unk|ann arbor ambassador (internal - don't use this directly):\
+ :am:bs:km:mi:xo:\
+ :co#80:it#8:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :ct=\E[2g:dc=\E[P:dl=\E[M:do=^K:ei=:ho=\E[H:\
+ :i1=\E[m\E7\E[H\E9\E8:i2=\E[1Q\E[>20;30l\EP`+x~M\E\:\
+ :ic=\E[@:im=:k1=\EOA:k2=\EOB:k3=\EOC:k4=\EOD:k5=\EOE:\
+ :k6=\EOF:k7=\EOG:k8=\EOH:k9=\EOI:kD=\E[P:kI=\E[@:kb=^H:\
+ :kd=\E[B:\
+ :ke=\EP`>y~[[J`8xy~[[A`4xy~[[D`6xy~[[C`2xy~[[B\E\:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\:\
+ :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mm=\E[>52h:\
+ :mo=\E[>52l:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=^K:\
+ :so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+
+aaa+rv|ann arbor ambassador in reverse video:\
+ :i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\
+ :me=\E[7m\016:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\
+ :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\
+ :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m:
+# Ambassador with the DEC option, for partial vt100 compatibility.
+aaa+dec|ann arbor ambassador in dec vt100 mode:\
+ :ac=aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}:\
+ :ae=^N:as=^O:cs=\E[%i%d;%dr:eA=\E(0:\
+ :..sa=\E[%?%p1%p3%|%!%t7;%;%?%p2%t4;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m%?%p9%t\017%e\016%;:
+aaa-18|ann arbor ambassador/18 lines:\
+ :li#18:\
+ :is=\E7\E[60;0;0;18p\E8:te=\E[60;0;0;18p\E[60;1H\E[K:\
+ :ti=\E[18;0;0;18p:\
+ :tc=aaa+unk:
+aaa-18-rv|ann arbor ambassador/18 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-18:
+aaa-20|ann arbor ambassador/20 lines:\
+ :li#20:\
+ :is=\E7\E[60;0;0;20p\E8:te=\E[60;0;0;20p\E[60;1H\E[K:\
+ :ti=\E[20;0;0;20p:\
+ :tc=aaa+unk:
+aaa-22|ann arbor ambassador/22 lines:\
+ :li#22:\
+ :is=\E7\E[60;0;0;22p\E8:te=\E[60;0;0;22p\E[60;1H\E[K:\
+ :ti=\E[22;0;0;22p:\
+ :tc=aaa+unk:
+aaa-24|ann arbor ambassador/24 lines:\
+ :li#24:\
+ :is=\E7\E[60;0;0;24p\E8:te=\E[60;0;0;24p\E[60;1H\E[K:\
+ :ti=\E[24;0;0;24p:\
+ :tc=aaa+unk:
+aaa-24-rv|ann arbor ambassador/24 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-24:
+aaa-26|ann arbor ambassador/26 lines:\
+ :li#26:\
+ :is=\E7\E[60;0;0;26p\E8:te=\E[60;0;0;26p\E[26;1H\E[K:\
+ :ti=\E[H\E[J\E[26;0;0;26p:\
+ :tc=aaa+unk:
+aaa-28|ann arbor ambassador/28 lines:\
+ :li#28:\
+ :is=\E7\E[60;0;0;28p\E8:te=\E[60;0;0;28p\E[28;1H\E[K:\
+ :ti=\E[H\E[J\E[28;0;0;28p:\
+ :tc=aaa+unk:
+aaa-30-s|aaa-s|ann arbor ambassador/30 lines w/status:\
+ :es:hs:\
+ :li#29:\
+ :ds=\E7\E[60;0;0;30p\E[1;1H\E[K\E[H\E8\r\n\E[K:\
+ :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;30p\E8:\
+ :te=\E[60;1;0;30p\E[29;1H\E[K:\
+ :ti=\E[H\E[J\E[30;1;0;30p\E[30;1H\E[K:\
+ :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk:
+aaa-30-s-rv|aaa-s-rv|ann arbor ambassador/30 lines+status+reverse video:\
+ :tc=aaa+rv:tc=aaa-30-s:
+aaa-s-ctxt|aaa-30-s-ctxt|ann arbor ambassador/30 lines+status+save context:\
+ :te=\E[60;1;0;30p\E[59;1H\E[K:\
+ :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s:
+aaa-s-rv-ctxt|aaa-30-s-rv-ct|ann arbor ambassador/30 lines+status+save context+reverse video:\
+ :te=\E[60;1;0;30p\E[59;1H\E[K:\
+ :ti=\E[30;1H\E[K\E[30;1;0;30p:tc=aaa-30-s-rv:
+aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\
+ :li#30:\
+ :is=\E7\E[60;0;0;30p\E8:te=\E[60;0;0;30p\E[30;1H\E[K:\
+ :ti=\E[H\E[J\E[30;0;0;30p:\
+ :tc=aaa+unk:
+aaa-30-rv|aaa-rv|ann arbor ambassador/30 lines in reverse video:\
+ :tc=aaa+rv:tc=aaa-30:
+aaa-30-ctxt|aaa-ctxt|ann arbor ambassador/30 lines; saving context:\
+ :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\
+ :tc=aaa-30:
+aaa-30-rv-ctxt|aaa-rv-ctxt|ann arbor ambassador/30 lines reverse video; saving context:\
+ :te=\E[60;0;0;30p\E[60;1H\E[K:ti=\E[30;0;0;30p:\
+ :tc=aaa+rv:tc=aaa-30:
+aaa-36|ann arbor ambassador/36 lines:\
+ :li#36:\
+ :is=\E7\E[60;0;0;36p\E8:te=\E[60;0;0;36p\E[36;1H\E[K:\
+ :ti=\E[H\E[J\E[36;0;0;36p:\
+ :tc=aaa+unk:
+aaa-36-rv|ann arbor ambassador/36 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-36:
+aaa-40|ann arbor ambassador/40 lines:\
+ :li#40:\
+ :is=\E7\E[60;0;0;40p\E8:te=\E[60;0;0;40p\E[40;1H\E[K:\
+ :ti=\E[H\E[J\E[40;0;0;40p:\
+ :tc=aaa+unk:
+aaa-40-rv|ann arbor ambassador/40 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-40:
+aaa-48|ann arbor ambassador/48 lines:\
+ :li#48:\
+ :is=\E7\E[60;0;0;48p\E8:te=\E[60;0;0;48p\E[48;1H\E[K:\
+ :ti=\E[H\E[J\E[48;0;0;48p:\
+ :tc=aaa+unk:
+aaa-48-rv|ann arbor ambassador/48 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-48:
+aaa-60-s|ann arbor ambassador/59 lines+status:\
+ :es:hs:\
+ :li#59:\
+ :ds=\E7\E[60;0;0;60p\E[1;1H\E[K\E[H\E8\r\n\E[K:\
+ :fs=\E[>51l:is=\r\n\E[A\E7\E[60;1;0;60p\E8:\
+ :ts=\E[>51h\E[1;%p1%dH\E[2K:tc=aaa+unk:
+aaa-60-s-rv|ann arbor ambassador/59 lines+status+reverse video:\
+ :tc=aaa+rv:tc=aaa-60-s:
+aaa-60-dec-rv|ann arbor ambassador/dec mode+59 lines+status+rev video:\
+ :tc=aaa+dec:tc=aaa+rv:tc=aaa-60-s:
+aaa-60|ann arbor ambassador/60 lines:\
+ :li#60:\
+ :is=\E7\E[60;0;0;60p\E[1Q\E[m\E[>20;30l\E8:tc=aaa+unk:
+aaa-60-rv|ann arbor ambassador/60 lines+reverse video:\
+ :tc=aaa+rv:tc=aaa-60:
+aaa-db|ann arbor ambassador 30/destructive backspace:\
+ :bs@:\
+ :i2=\E[1Q\E[m\E[>20l\E[>30h:le=\E[D:tc=aaa-30:
+
+guru|guru-33|guru+unk|ann arbor guru/33 lines 80 cols:\
+ :li#33:\
+ :i2=\E[>59l:is=\E7\E[255;0;0;33;80;80p\E8\E[J:\
+ :te=\E[255p\E[255;1H\E[K:ti=\E[33p:vb=\E[>59h\E[>59l:\
+ :tc=aaa+unk:
+guru+rv|guru changes for reverse video:\
+ :i2=\E[>59h:vb=\E[>59l\E[>59h:
+guru-rv|guru-33-rv|ann arbor guru/33 lines+reverse video:\
+ :tc=guru+rv:tc=guru-33:
+guru+s|guru status line:\
+ :es:hs:\
+ :ds=\E7\E[;0p\E[1;1H\E[K\E[H\E8\r\n\E[K:fs=\E[>51l:\
+ :te=\E[255;1p\E[255;1H\E[K:ti=:\
+ :ts=\E[>51h\E[1;%p1%dH\E[2K:
+guru-nctxt|guru with no saved context:\
+ :ti=\E[H\E[J\E[33p\E[255;1H\E[K:tc=guru:
+guru-s|guru-33-s|ann arbor guru/33 lines+status:\
+ :li#32:\
+ :is=\r\n\E[A\E7\E[255;1;0;33;80;80p\E8\E[J:\
+ :ti=\E[33;1p\E[255;1H\E[K:tc=guru+s:\
+ :tc=guru+unk:
+guru-24|ann arbor guru 24 lines:\
+ :co#80:li#24:\
+ :is=\E7\E[255;0;0;24;80;80p\E8\E[J:ti=\E[24p:tc=guru+unk:
+guru-44|ann arbor guru 44 lines:\
+ :co#97:li#44:\
+ :is=\E7\E[255;0;0;44;97;100p\E8\E[J:ti=\E[44p:tc=guru+unk:
+guru-44-s|ann arbor guru/44 lines+status:\
+ :li#43:\
+ :is=\r\n\E[A\E7\E[255;1;0;44;80;80p\E8\E[J:\
+ :ti=\E[44;1p\E[255;1H\E[K:tc=guru+s:\
+ :tc=guru+unk:
+guru-76|guru with 76 lines by 89 cols:\
+ :co#89:li#76:\
+ :is=\E7\E[255;0;0;76;89;100p\E8\E[J:ti=\E[76p:tc=guru+unk:
+guru-76-s|ann arbor guru/76 lines+status:\
+ :co#89:li#75:\
+ :is=\r\n\E[A\E7\E[255;1;0;76;89;100p\E8\E[J:\
+ :ti=\E[76;1p\E[255;1H\E[K:tc=guru+s:\
+ :tc=guru+unk:
+guru-76-lp|guru-lp|guru with page bigger than line printer:\
+ :co#134:li#76:\
+ :is=\E7\E[255;0;0;76;134;134p\E8\E[J:ti=\E[76p:tc=guru+unk:
+guru-76-w|guru 76 lines by 178 cols:\
+ :co#178:li#76:\
+ :is=\E7\E[255;0;0;76;178;178p\E8\E[J:ti=\E[76p:tc=guru+unk:
+guru-76-w-s|ann arbor guru/76 lines+status+wide:\
+ :co#178:li#75:\
+ :is=\r\n\E[A\E7\E[255;1;0;76;178;178p\E8\E[J:\
+ :ti=\E[76;1p\E[255;1H\E[K:\
+ :tc=guru+s:tc=guru+unk:
+guru-76-wm|guru 76 lines by 178 cols with 255 cols memory:\
+ :co#178:li#76:\
+ :is=\E7\E[255;0;0;76;178;255p\E8\E[J:ti=\E[76p:tc=guru+unk:
+aaa-rv-unk|ann arbor unknown type:\
+ :Nl#0:lh#0:lw#0:\
+ :ho=\E[H:i1=\E[7m\E7\E[H\E9\E8:mb=\E[5;7m:md=\E[1;7m:\
+ :me=\E[7m:mk=\E[7;8m:mr=\E[m:r1=\E[H\E[7m\E[J:\
+ :..sa=\E[%?%p1%!%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;%?%p7%t8;%;m:\
+ :se=\E[7m:so=\E[m:ue=\E[7m:us=\E[4;7m:
+
+#### Applied Digital Data Systems (adds)
+#
+# ADDS itself is long gone. ADDS was bought by NCR, and the same group made
+# ADDS and NCR terminals. When AT&T and NCR merged, the engineering for
+# terminals was merged again. Then AT&T sold the terminal business to
+# SunRiver, which later changed its name to Boundless Technologies. The
+# engineers from Teletype, AT&T terminals, ADDS, and NCR (who are still there
+# as of early 1995) are at:
+#
+# Boundless Technologies
+# 100 Marcus Boulevard
+# Hauppauge, NY 11788-3762
+# Vox: (800)-231-5445
+# Fax: (516)-342-7378
+# Web: http://boundless.com
+#
+# Their voice mail used to describe the place as "SunRiver (formerly ADDS)".
+# In 1995 Boundless acquired DEC's terminals business.
+#
+
+# Regent: lowest common denominator, works on all regents.
+# (regent: renamed ":bc:" to ":le:" -- esr)
+regent|Adds Regent Series:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=^L:cr=^M:do=^J:ho=\EY :le=^U:ll=^A:nd=^F:sf=^J:\
+ :up=^Z:
+# Regent 100 has a bug where if computer sends escape when user is holding
+# down shift key it gets confused, so we avoid escape.
+regent100|Adds Regent 100:\
+ :sg#1:\
+ :bl=^G:cm=\013%+ %B\020%.:k0=^B1\r:k1=^B2\r:k2=^B3\r:\
+ :k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:\
+ :l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\
+ :ue=\E0@:us=\E0`:\
+ :tc=regent:
+regent20|Adds Regent 20:\
+ :bl=^G:cd=\Ek:ce=\EK:cm=\EY%+ %+ :tc=regent:
+regent25|Adds Regent 25:\
+ :bl=^G:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:tc=regent20:
+regent40|Adds Regent 40:\
+ :sg#1:\
+ :al=\EM:bl=^G:dl=\El:k0=^B1\r:k1=^B2\r:k2=^B3\r:k3=^B4\r:\
+ :k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:l0=F1:l1=F2:l2=F3:\
+ :l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:me=\E0@:se=\E0@:so=\E0P:\
+ :ue=\E0@:us=\E0`:\
+ :tc=regent25:
+regent40+|Adds Regent 40+:\
+ :is=\EB:tc=regent40:
+regent60|regent200|Adds Regent 60:\
+ :dc=\EE:ei=\EF:im=\EF:is=\EV\EB:kD=\EE:kI=\EF:kM=\EF:\
+ :se=\ER\E0@\EV:so=\ER\E0P\EV:\
+ :tc=regent40+:
+# From: <edward@onyx.berkeley.edu> Thu Jul 9 09:27:33 1981
+# (viewpoint: added :kr:, function key, and :dl: capabilities -- esr)
+viewpoint|addsviewpoint|adds viewpoint:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dl=\El:do=^J:\
+ :is=\017\E0`:k0=^B1:k2=^B2:k3=^B\041:k4=^B":k5=^B#:kd=^J:\
+ :kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:ll=^A:me=^O:nd=^F:se=^O:sf=^J:\
+ :so=^N:ue=^O:up=^Z:us=^N:ve=\017\E0`:vs=\017\E0P:
+# Some viewpoints have bad ROMs that foo up on ^O
+screwpoint|adds viewpoint with ^O bug:\
+ :se@:so@:ue@:us@:vs@:tc=viewpoint:
+
+# From: Jay S. Rouman <jsr@dexter.mi.org> 5 Jul 92
+# The :vi:/:ve:/:sa:/:me: strings were added by ESR from specs.
+# Theory; the vp3a+ wants \E0%c to set highlights, where normal=01000000,
+# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
+# invis=01000100 and %c is the logical or of desired attributes.
+# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
+vp3a+|viewpoint3a+|adds viewpoint 3a+:\
+ :am:bw:\
+ :co#80:it#8:li#24:\
+ :cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:kb=^H:\
+ :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:me=\E(:nd=^L:nw=^M^J:\
+ :..sa=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E):\
+ :se=\E(:sf=^J:so=\E0Q\E):ta=^I:up=^K:ve=^X:vi=^W:
+vp60|viewpoint60|addsvp60|adds viewpoint60:\
+ :tc=regent40:
+#
+# adds viewpoint 90 - from cornell
+# Note: emacs sends ei occasionally to insure the terminal is out of
+# insert mode. This unfortunately puts the viewpoint90 IN insert
+# mode. A hack to get around this is :ic=\EF\s\EF^U:. (Also,
+# - :ei=:im=: must be present in the termcap translation.)
+# - :xs: indicates glitch that attributes stick to location
+# - :ms: means it's safe to move in standout mode
+# - :cl=\EG\Ek:: clears screen and visual attributes without affecting
+# the status line
+# Function key and label capabilities merged in from SCO.
+vp90|viewpoint90|adds viewpoint 90:\
+ :bs:bw:ms:xs:\
+ :co#80:li#24:\
+ :cd=\Ek:ce=\EK:cl=\EG\Ek:cm=\EY%+ %+ :dc=\EE:dl=\El:do=^J:\
+ :ei=:ho=\EY :ic=\EF \EF\025:im=:k0=^B1\r:k1=^B2\r:\
+ :k2=^B3\r:k3=^B4\r:k4=^B5\r:k5=^B6\r:k6=^B7\r:k7=^B8\r:\
+ :k8=^B9\r:k9=^B\072\r:k;=^B;\r:kb=^H:kd=^J:kh=^A:kl=^U:\
+ :kr=^F:ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:\
+ :l8=F9:l9=F10:la=F11:le=^H:ll=^A:me=\ER\E0@\EV:nd=^F:\
+ :se=\ER\E0@\EV:sf=^J:so=\ER\E0Q\EV:ta=^I:ue=\ER\E0@\EV:\
+ :up=^Z:us=\ER\E0`\EV:
+# Note: if return acts weird on a980, check internal switch #2
+# on the top chip on the CONTROL pc board.
+adds980|a980|adds consul 980:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\E\016:bl=^G:cl=\014\013@:cm=\013%+@\E\005%2:cr=^M:\
+ :dl=\E\017:do=^J:k0=\E0:k1=\E1:k2=\E2:k3=\E3:k4=\E4:k5=\E5:\
+ :k6=\E6:k7=\E7:k8=\E8:k9=\E9:le=^H:me=^O:nd=\E^E01:se=^O:\
+ :sf=^J:so=^Y^^^N:
+
+# Beehive documentation is undated and marked Preliminary and has no figures
+# so we must have early Superbee2 (Model 600, according to phone conversation
+# with mfr.). It has proved reliable except for some missing padding
+# (notably after \EK and <nl> at bottom of screen).
+#
+# The key idea is that AEP mode is poison for :cm: & that US's in
+# the local memory should be avoided like the plague. That means
+# that the 2048 character local buffer is used as 25 lines of 80
+# characters, period. No scrolling local memory, folks. It also
+# appears that we cannot use naked INS LINE feature since it uses
+# US. The sbi fakes :al: with an 80-space insert that may be too
+# slow at low speeds; also spaces get converted to \040 which is
+# too long for some programs (not vi). DEL LINE is ok but slow.
+#
+# The <nl> string is designed for last line of screen ONLY; cup to
+# 25th line corrects the motion inherent in scrolling to Page 1.
+#
+# There is one understood bug. It is that the screen appears to
+# pop to a new (blank) page after a :nw:, or leave a half-line
+# ellipsis to a quad that is the extra 48 memory locations. The
+# data received is dumped into memory but not displayed. Not to
+# worry if :cm: is being used; the lines not displayed will be,
+# whenever the cursor is moved up there. Since :cm: is addressed
+# relative to MEMORY of window, nothing is lost; but beware of
+# relative cursor motion (:up:,:do:,:nd:,:le:). Recommended,
+# therefore, is setenv MORE -c .
+#
+# WARNING: Not all features tested.
+#
+# Timings are assembled from 3 sources. Some timings may reflect
+# SB2/Model 300 that were used if more conservative.
+# Tested on a Model 600 at 1200 and 9600 bd.
+#
+# The BACKSPACEkb option is cute. The NEWLINE key, so cleverly
+# placed on the keyboard and useless because of AEP, is made
+# into a backspace key. In use ESC must be pressed twice (to send)
+# and sending ^C must be prefixed by ESC to avoid that weird
+# transmit mode associated with ENTER key.
+#
+# IF TERMINAL EVER GOES CATATONIC with the cursor buzzing across
+# the screen, then it has dropped into ENTER mode; hit
+# RESET--ONLINE--!tset.
+#
+# As delivered this machine has a FATAL feature that will throw
+# it into that strange transmit state (SPOW) if the space bar is
+# hit after a CR is received, but before receiving a LF (or a
+# few others).
+#
+# The circuits MUST be modified to eliminate the SPOW latch.
+# This is done by strapping on chip A46 of the I/O board; cut
+# the p.c. connection to Pin 5 and strap Pin 5 to Pin 8 of that
+# chip. This mod has been checked out on a Mod 600 of Superbee II.
+# With this modification absurdly high timings on cr are
+# unnecessary.
+#
+# NOTE WELL that the rear panel switch should be set to CR/LF,
+# not AEP!
+#
+sb1|beehive superbee:\
+ :am:bs:bw:da:db:mi:ul:xb:\
+ :co#80:li#25:sg#1:\
+ :al=\EN\EL\EQ \EP \EO\ER\EA:\
+ :bl=^G:bt=\E`:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%03%03:cr=\r:\
+ :ct=\E3:dc=\EP:dl=\EM:do=^J:ei=\ER:ho=\EH:im=\EQ\EO:\
+ :is=\EE\EX\EZ\EO\Eb\Eg\ER:k0=\E2:k1=\Ep:k2=\Eq:k3=\Er:\
+ :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\E1:kE=\EK:kI=\EQ\EO:\
+ :kL=\EM:kM=\ER:kS=\EJ:kb=^_:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
+ :ku=\EA:l0=TAB CLEAR:l9=TAB SET:le=^H:me=\E_3:nd=\EC:\
+ :se=\E_3:sf=^J:so=\E_1:st=\E1:ta=^I:te=:ti=\EO:ue=\E_3:\
+ :up=\EA:us=\E_0:
+sbi|superbee|beehive superbee at Indiana U.:\
+ :xb:\
+ :al=1\EN\EL\EQ \EP \EO\ER\EA:cr=\r:tc=sb1:
+# Alternate (older) description of Superbee - f1=escape, f2=^C.
+# Note: there are at least 3 kinds of superbees in the world. The sb1
+# holds onto escapes and botches ^C's. The sb2 is the best of the 3.
+# The sb3 puts garbage on the bottom of the screen when you scroll with
+# the switch in the back set to CRLF instead of AEP. This description
+# is tested on the sb2 but should work on all with either switch setting.
+# The f1/f2 business is for the sb1 and the :xb: can be taken out for
+# the other two if you want to try to hit that tiny escape key.
+# This description is tricky: being able to use cup depends on there being
+# 2048 bytes of memory and the hairy <nl> string.
+superbee-xsb|beehive super bee:\
+ :am:da:db:xb:\
+ :co#80:it#8:li#25:\
+ :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EF%r%3%3:cr=\r:ct=\E3:dc=\EP:\
+ :dl=\EM:do=^J:ho=\EH:is=\EH\EJ:k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:\
+ :k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
+ :ku=\EA:le=^H:me=\E_3:nd=\EC:se=\E_3:\
+ :sf=\n\0\0\0\n\0\0\0\EA\EK\0\0\0\ET\ET:so=\E_1:st=\E1:\
+ :ta=^I:up=\EA:ve=^J:
+# This loses on lines > 80 chars long, use at your own risk
+superbeeic|super bee with insert char:\
+ :ei=\ER:ic=:im=\EQ:tc=superbee-xsb:
+sb2|sb3|fixed superbee:\
+ :xb@:tc=superbee:
+
+#### Beehive Medical Electronics
+#
+# Steve Seymour <srseymour@mindspring.com> writes (Wed, 03 Feb 1999):
+# Regarding your question though; Beehive terminals weren't made by Harris.
+# They were made by Beehive Medical Electronics in Utah. They went out of
+# business in the early '80s.
+#
+# (OK, then, I don't know why a couple of these say "harris beehive".)
+#
+
+# Reports are that most of these Beehive entries (except superbee) have not
+# been tested and do not work right. :se: is a trouble spot. Be warned.
+
+# (bee: :ic: was empty, which is obviously bogus -- esr)
+beehive|bee|harris beehive:\
+ :am:bs:mi:\
+ :co#80:li#24:\
+ :al=\EL:bt=\E>:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :dc=\EP:\
+ :dl=\EM:do=\EB:ei=\E@:ho=\EH:im=\EQ:kA=\EL:kB=\E>:kC=\EE:\
+ :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kM=\E@:kb=^H:kd=\EB:kh=\EH:\
+ :kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:se=\Ed@:so=\EdP:\
+ :ue=\Ed@:up=\EA:us=\Ed`:
+# set tab is ^F, clear (one) tab is ^V, no way to clear all tabs.
+# good grief - does this entry make :sg:/:ug: when it doesn't have to?
+# look at those spaces in :se:/:so:. Seems strange to me...
+# (beehive: :if=/usr/share/tabset/beehive: removed, no such file. If you
+# really care, cook up one using ^F -- esr)
+beehive3|bh3m|beehiveIIIm|harris beehive 3m:\
+ :am:bs:\
+ :co#80:it#8:li#20:\
+ :al=\023:bl=^G:cd=^R:ce=^P:cl=^E^R:cr=^M:dl=\021:do=^J:ho=^E:\
+ :le=^H:ll=^E^K:nd=^L:se= ^_:sf=^J:so=^] :st=^F:ta=^I:up=^K:
+beehive4|bh4|beehive 4:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cr=^M:do=^J:ho=\EH:le=\ED:nd=\EC:\
+ :sf=^J:up=\EA:
+# There was an early Australian kit-built computer called a "Microbee".
+# It's not clear whether this is for one of those or for a relative
+# of the Beehive.
+microb|microbee|micro bee series:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EF%+ %+ :cr=^M:do=^J:k1=\Ep:\
+ :k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:k9=\Ex:\
+ :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:me=\Ed@:nd=\EC:\
+ :se=\Ed@:sf=^J:so= \EdP:ta=^I:ue=\Ed@:up=\EA:us=\Ed`:
+
+#### C. Itoh Electronics
+#
+# As of 1995 these people no longer make terminals (they're still in the
+# printer business). Their terminals were all clones of the DEC VT series.
+# They're located in Orange County, CA.
+#
+
+# CIT 80 - vt-52 emulator, the termcap has been modified to remove
+# the delay times and do an auto tab set rather than the indirect
+# file used in vt100.
+cit80|cit-80|citoh 80:\
+ :am:bs:\
+ :co#80:li#24:\
+ :cd=\EJ:ce=\EK:cl=\E[H\EJ:cm=\E[%i%2;%2H:cr=^M:ff=^L:\
+ :is=\E>:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:nd=\E[C:sf=^J:up=\E[A:
+# From: Tim Wood <mtxinu!sybase!tim> Fri Sep 27 09:39:12 PDT 1985
+# (cit101: added <rmam>/<smam> based on init string, merged this with c101 -- esr)
+cit101|citc|C.itoh fast vt100:\
+ :am:bs:xn:\
+ :co#80:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:\
+ :im=:is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[3g\E[>5g:\
+ :kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:\
+ :up=\E[A:us=\E[4m:vb=\E[?5h\E[?5l:ve=\E[V\E8:vs=\E7\E[U:
+# CIE Terminals CIT-101e from Geoff Kuenning <callan!geoff> via BRL
+# The following termcap entry was created from the Callan cd100 entry. The
+# last two lines (with the capabilities in caps) are used by RM-cobol to allow
+# full selection of combinations of reverse video, underline, and blink.
+# (cit101e: removed unknown :f0=\EOp:f1=\EOq:f2=\EOr:f3=\EOs:f4=\EOt:f5=\EOu:\
+# f6=\EOv:f7=\EOw:f8=\EOx:f9=\EOy:AB=\E[0;5m:AL=\E[m:AR=\E[0;7m:AS=\E[0;5;7m:\
+# :NB=\E[0;1;5m:NM=\E[0;1m:NR=\E[0;1;7m:NS=\E[0;1;5;7m: -- esr)
+cit101e|C. Itoh CIT-101e:\
+ :am:bs:mi:ms:pt:\
+ :co#80:it#8:li#24:\
+ :ac=:ae=^O:al=\E[L:as=^N:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%2;%2H:cs=\E[%i%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ei=\E[4l:if=/usr/share/tabset/vt100:im=\E[4h:k0=\EOT:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOm:k6=\EOl:k7=\EOM:\
+ :k8=\EOn:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:\
+ :nd=\E[C:rc=\E8:sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:\
+ :up=\E[A:us=\E[4m:ve=:vs=\E[?1l\E[?4l\E[?7h:
+# From: David S. Lawyer, June 1997:
+# The CIT 101-e was made in Japan in 1983-4 and imported by CIE
+# Terminals in Irvine, CA. It was part of CITOH Electronics. In the
+# late 1980's CIT Terminals went out of business.
+# There is no need to use the initialization string is=... (by invoking
+# tset or setterm etc.) provided that the terminal has been manually set
+# up (and the setup saved with ^S) to be compatible with this termcap. To be
+# compatible it should be in ANSI mode (not VT52). A set-up that
+# works is to set all the manually setable stuff to factory defaults
+# by pressing ^D in set-up mode. Then increse the brighness with the
+# up-arrow key since the factory default will likely be dim on an old
+# terminal. Then change any options you want (provided that they are
+# compatible with the termcap). For my terminal I set: Screen
+# Background: light; Keyclicks: silent; Auto wraparound: on; CRT saver:
+# on. I also set up mine for parity (but you may not need it). Then
+# save the setup with ^S.
+# (cit101e-rv: added empty :te: to suppress a tic warning. --esr)
+cit101e-rv|Citoh CIT-101e (sets reverse video):\
+ :am:eo:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%dG:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:ho=\E[H:ic=\E[@:\
+ :im=\E[4h:\
+ :is=\E<\E>\E[?1l\E[?3l\E[?4l\E[?5h\E[?7h\E[?8h\E[3g\E[>5g\E(B\E[m\E[20l\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=\177:kd=\E[B:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
+ :nd=\E[C:nl=\EM:nw=\EE:r1=\Ec\E[?7h\E[>5g:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:te=:\
+ :ti=\E[>5g\E[?7h\E[?5h:u6=\E[%i%d;%dR:u7=\E[6n:\
+ :u8=\E[?6c:u9=\E[c:ue=\E[m:up=\E[A:us=\E[4m:\
+ :vb=200\E[?5l\E[?5h:ve=\E[0;3;4v:vi=\E[1v:vs=\E[3;5v:
+cit101e-n|CIT-101e w/o am:\
+ :am@:\
+ :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e:
+cit101e-132|CIT-101e with 132 cols:\
+ :co#132:\
+ :kb=^H:kd=^J:kl=^H:tc=cit101e:
+cit101e-n132|CIT-101e with 132 cols w/o am:\
+ :am@:\
+ :co#132:\
+ :kb=^H:kd=^J:kl=^H:vs=\E[?1l\E[?4l\E[?7l:tc=cit101e:
+# CIE Terminals CIT-500 from BRL
+# The following SET-UP modes are assumed for normal operation:
+# GENERATE_XON/XOFF:YES DUPLEX:FULL NEWLINE:OFF
+# AUTOWRAP:ON MODE:ANSI SCREEN_LENGTH:64_LINES
+# DSPLY_CNTRL_CODES?NO PAGE_WIDTH:80 EDIT_MODE:OFF
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements.
+# Hardware tabs are assumed to be set every 8 columns; they can be set up
+# by the "reset", "tset", or "tabs" utilities. No delays are specified; use
+# "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (cit500: I added <rmam>/<smam> based on the init string -- esr)
+cit500|CIE Terminals CIT-500:\
+ :bs:mi:ms:pt:xo:\
+ :co#80:it#8:kn#10:li#64:vt#3:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:\
+ :RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:\
+ :bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:is=\E<\E)0:k0=\EOP:k1=\EOQ:\
+ :k2=\EOR:k3=\EOS:k4=\EOU:k5=\EOV:k6=\EOW:k7=\EOX:k8=\EOY:\
+ :k9=\EOZ:kA=\E[L:kB=\E[Z:kD=\E[P:kE=\EK:kI=\E[4h:kL=\E[M:\
+ :kM=\E[4l:kS=\EJ:kb=^H:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:\
+ :l3=PF4:l4=F15:l5=F16:l6=F17:l7=F18:l8=F19:l9=F20:le=^H:\
+ :ll=\E[64H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:\
+ :r1=\E<\E2\E[20l\E[?6l\E[r\E[m\E[q\E(B\017\E)0\E>:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\EM:us=\E[4m:
+
+# C. Itoh printers begin here
+citoh|ci8510|8510|c.itoh 8510a:\
+ :co#80:it#8:\
+ :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073.:\
+ :le@:md=\E\041:me=\E"\EY:rp=\ER%r%03%.:sr=\Er:ue=\EY:\
+ :us=\EX:\
+ :tc=lpr:
+citoh-pica|citoh in pica:\
+ :i1=\EN:tc=citoh:
+citoh-elite|citoh in elite:\
+ :co#96:\
+ :i1=\EE:\
+ :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089.:tc=citoh:
+citoh-comp|citoh in compressed:\
+ :co#136:\
+ :i1=\EQ:\
+ :is=\E(009\054017\054025\054033\054041\054049\054057\054065\054073\054081\054089\054097\054105\054113\054121\054129.:tc=citoh:
+# citoh has infinite cols because we don't want lp ever inserting \n\t**.
+citoh-prop|citoh-ps|ips|citoh in proportional spacing mode:\
+ :co#32767:\
+ :i1=\EP:tc=citoh:
+citoh-6lpi|citoh in 6 lines per inch mode:\
+ :i2=\EA:tc=citoh:
+citoh-8lpi|citoh in 8 lines per inch mode:\
+ :li#88:\
+ :i2=\EB:tc=citoh:
+
+#### Control Data (cdc)
+#
+
+cdc456|cdc 456 terminal:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%+ %+ :cr=^M:dl=\EJ:\
+ :do=^J:ho=^Y:le=^H:nd=^L:sf=^J:up=^Z:
+
+# Assorted CDC terminals from BRL (improvements by DAG & Ferd Brundick)
+cdc721|CDC Viking:\
+ :am:bs:\
+ :co#80:li#24:\
+ :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\
+ :ku=^W:nd=^X:up=^W:
+cdc721ll|CDC Vikingll:\
+ :am:bs:\
+ :co#132:li#24:\
+ :ce=^K:cl=^L:cm=\002%r%+ %+ :ho=^Y:kd=^J:kh=^Y:kl=^H:kr=^I:\
+ :ku=^W:nd=^X:up=^W:
+# (cdc752: the BRL entry had :ll=\E1 ^Z: commented out
+cdc752|CDC 752:\
+ :am:bs:bw:xs:\
+ :co#80:li#24:\
+ :bl=^G:ce=^V:cl=\030\E1 :cm=\E1%r%+ %+ :cr=^M:do=^J:\
+ :ho=\E1 :le=^H:ll=^Y:nd=^U:r1=\E1 \030\002\003\017:\
+ :sf=^J:up=^Z:
+# CDC 756
+# The following switch/key settings are assumed for normal operation:
+# 96 chars SCROLL FULL duplex not BLOCK
+# Other switches may be set according to communication requirements.
+# Insert/delete-character cannot be used, as the whole display is affected.
+# "so" & "se" are commented out until jove handles "sg" correctly.
+cdc756|CDC 756:\
+ :am:bs:bw:\
+ :co#80:kn#10:li#24:\
+ :al=6*\EL:bl=^G:cd=^X:ce=^V:cl=^Y^X:cm=\E1%r%+ %+ :cr=^M:\
+ :dl=6*\EJ:do=^J:ho=^Y:k0=\EA:k1=\EB:k2=\EC:k3=\ED:k4=\EE:\
+ :k5=\EF:k6=\EG:k7=\EH:k8=\Ea:k9=\Eb:kA=\EL:kD=\EI:kE=^V:\
+ :kI=\EK:kL=\EL:kS=^X:kT=^O:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^U:\
+ :ku=^Z:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:l5=F6:l6=F7:l7=F8:l8=F9:\
+ :l9=F10:le=^H:ll=^Y^Z:nd=^U:r1=\031\030\002\003\017:sf=^J:\
+ :up=^Z:
+#
+# CDC 721 from Robert Viduya, Ga. Tech. <ihnp4!gatech!gitpyr!robert> via BRL.
+#
+# Part of the long initialization string defines the "DOWN" key to the left
+# of the tab key to send an ESC. The real ESC key is positioned way out
+# in right field.
+#
+# The termcap won't work in 132 column mode due to the way it it moves the
+# cursor. Termcap doesn't have the capability (as far as I could tell) to
+# handle the 721 in 132 column mode.
+#
+# (cdc721: changed :ri: to :sr: -- esr)
+cdc721-esc|Control Data 721:\
+ :am:bs:bw:ms:pt:xo:\
+ :co#80:it#8:kn#10:li#30:\
+ :al=^^R:bl=^G:bt=^^^K:cd=^^P:ce=^K:cl=^L:cm=\002%r%+ %+ :\
+ :ct=^^^RY:dc=^^N:dl=^^Q:do=^Z:ei=:ho=^Y:ic=^^O:im=:\
+ :is=\036\022B\003\036\035\017\022\025\035\036E\036\022H\036\022J\036\022L\036\022N\036\022P\036\022Q\036\022\036\022\136\036\022b\036\022i\036W =\036\022Z\036\011C1-` `\041k/o:\
+ :k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:k7=^^x:\
+ :k8=^^y:k9=^^z:kb=^H:kd=^Z:ke=^^^Rl:kh=^Y:kl=^H:kr=^X:\
+ :ks=^^^Rk:ku=^W:le=^H:ll=^B =:mb=^N:\
+ :me=\017\025\035\036E\036\022\:mh=^\:mk=^^^R[:mr=^^D:\
+ :nd=^X:se=^^E:sf=\036W =\036U:so=^^D:sr=\036W =\036V:\
+ :st=^^^RW:ue=^]:up=^W:us=^\:
+
+#### Getronics
+#
+# Getronics is a Dutch electronics company that at one time was called
+# `Geveke' and made async terminals; but (according to the company itself!)
+# they've lost all their documentation on the command set. The hardware
+# documentation suggests the terminals were actually manufactured by a
+# Taiwanese electronics company named Cal-Comp. There are known
+# to have been at least two models, the 33 and the 50.
+#
+
+# The 50 seems to be a top end vt220 clone, with the addition of a higher
+# screen resolution, a larger screen, at least 1 page of memory above and
+# below the screen, apparently pages of memory right and left of the screen
+# which can be panned, and about 75 function keys (15 function keys x normal,
+# shift, control, func A, func B). It also has more setup possibilities than
+# the vt220. The monitor case is dated November 1978 and the keyboard case is
+# May 1982.
+#
+# The vt100 emulation works as is. The entry below describes the rather
+# non-conformant (but more featureful) ANSI mode.
+#
+# From: Stephen Peterson <stv@utrecht.ow.nl>, 27 May 1995
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+visa50|geveke visa 50 terminal in ansi 80 character mode:\
+ :bw:mi:ms:\
+ :co#80:li#25:\
+ :AL=\E[%dL:DC=\E[%dX:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\E[f:K2=\EOP:K3=\EOQ:K4=\EOR:K5=\EOS:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=\E[3l:al=\E[L:as=\E3h:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[X:dl=\E[M:do=\E[B:\
+ :ei=\E[4l:ho=\E[H:ic=\E[@:im=\E[4h:\
+ :is=\E0;2m\E[1;25r\E[25;1H\E[?3l\E[?7h\E[?8h:k0=\E010:\
+ :k1=\E001:k2=\E002:k3=\E003:k4=\E004:k5=\E005:k6=\E006:\
+ :k7=\E007:k8=\E008:k9=\E009:kD=\177:kb=^H:kd=\E[A:ke=\E>:\
+ :kh=\E[f:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=\E[D:mb=\E[5m:\
+ :md=\E[1m:me=\E[0;2m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^M^J:\
+ :se=\E[0;2m:sf=^J:so=\E[2;7m:ta=^I:ue=\E[0m:up=\E[A:\
+ :us=\E[4m:vb=\E[?5h\E[?5l:
+
+#### Human Designed Systems (Concept)
+#
+# Human Designed Systems
+# 400 Fehley Drive
+# King of Prussia, PA 19406
+# Vox: (610)-277-8300
+# Fax: (610)-275-5739
+# Net: support@hds.com
+#
+# John Martin <john@hds.com> is their termcap expert. They're mostly out of
+# the character-terminal business now (1995) and making X terminals. In
+# particular, the whole `Concept' line described here was discontinued long
+# ago.
+#
+
+# From: <vax135!hpk> Sat Jun 27 07:41:20 1981
+# Extensive changes to c108 by arpavax:eric Feb 1982
+# Some unknown person at SCO then translated it to terminfo.
+#
+# There seem to be a number of different versions of the C108 PROMS
+# (with bug fixes in its Z-80 program).
+#
+# The first one that we had would lock out the keyboard of you
+# sent lots of short lines (like /usr/dict/words) at 9600 baud.
+# Try that on your C108 and see if it sends a ^S when you type it.
+# If so, you have an old version of the PROMs.
+#
+# You should configure the C108 to send ^S/^Q before running this.
+# It is much faster (at 9600 baud) than the c100 because the delays
+# are not fixed.
+# new status line display entries for c108-8p:
+# :i3: - init str #3 - setup term for status display -
+# set programmer mode, select window 2, define window at last
+# line of memory, set bkgnd stat mesg there, select window 0.
+#
+# :ts: - to status line - select window 2, home cursor, erase to
+# end-of-window, 1/2 bright on, goto(line#0, col#?)
+#
+# :fs: - from status line - 1/2 bright off, select window 0
+#
+# :ds: - disable status display - set bkgnd status mesg with
+# illegal window #
+#
+# There are probably more function keys that should be added but
+# I don't know what they are.
+#
+# No delays needed on c108 because of ^S/^Q handshaking
+#
+c108|concept108|c108-8p|concept108-8p|concept 108 w/8 pages:\
+ :i2=\EU\E z"\Ev\001\177 \041p\E ;"\E z \Ev \001\177p\Ep\n:\
+ :te=\Ev \001\177p\Ep\r\n:\
+ :tc=c108-4p:
+c108-4p|concept108-4p|concept 108 w/4 pages:\
+ :bs:es:hs:xo:\
+ :pb@:\
+ :ac=jEkTl\mMqLxU:ae=\Ej :as=\Ej\041:\
+ :..cm=\Ea%p1%?%p1%{95}%>%t\001%{96}%-%;%{32}%+%c%p2%?%p2%{95}%>%t\001%{96}%-%;%{32}%+%c:\
+ :cr=^M:dc=\E 1:ds=\E ;\177:fs=\Ee\E z :i1=\EK\E\041\E F:\
+ :i2=\EU\E z"\Ev\177 \041p\E ;"\E z \Ev \001 p\Ep\n:\
+ :sf=^J:te=\Ev \001 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r\E\025:\
+ :ts=\E z"\E?\E\005\EE\Ea %+ :ve=\Ew:vs=\EW:\
+ :tc=c100:
+c108-rv|c108-rv-8p|concept 108 w/8 pages in reverse video:\
+ :te=\Ev \002 p\Ep\r\n:ti=\EU\Ev 8p\Ep\r:\
+ :tc=c108-rv-4p:
+c108-rv-4p|concept108rv4p|concept 108 w/4 pages in reverse video:\
+ :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:\
+ :tc=c108-4p:
+c108-w|c108-w-8p|concept108-w-8|concept108-w8p|concept 108 w/8 pages in wide mode:\
+ :co#132:\
+ :i1=\E F\E":te=\Ev ^A0\001D\Ep\r\n:\
+ :ti=\EU\Ev 8\001D\Ep\r:tc=c108-8p:
+
+# Concept 100:
+# These have only window relative cursor addressing, not screen
+# relative. To get it to work right here, smcup/rmcup (which
+# were invented for the concept) lock you into a one page
+# window for screen style programs.
+#
+# To get out of the one page window, we use a clever trick:
+# we set the window size to zero ("\Ev " in rmcup) which the
+# terminal recognizes as an error and resets the window to all
+# of memory.
+#
+# This trick works on c100 but does not on c108, sigh.
+#
+# Some tty drivers use cr3 for concept, others use nl3, hence
+# the delays on cr and ind below. This padding is only needed at
+# 9600 baud and up. One or the other is commented out depending on
+# local conventions.
+#
+# 2 ms padding on :te: isn't always enough. 6 works fine. Maybe
+# less than 6 but more than 2 will work.
+#
+# Note: can't use function keys f7-f10 because they are
+# indistinguishable from arrow keys (!), also, del char and
+# clear eol use xon/xoff so they probably won't work very well.
+#
+# Also note that we don't define insrt/del char/delline/eop/send
+# because they don't transmit unless we reset them - I figured
+# it was a bad idea to clobber their definitions.
+#
+# The <mc5> sequence changes the escape character to ^^ so that
+# escapes will be passed through to the printer. Only trouble
+# is that ^^ won't be - ^^ was chosen to be unlikely.
+# Unfortunately, if you're sending raster bits through to be
+# plotted, any character you choose will be likely, so we lose.
+#
+# \EQ"\EY(^W (send anything from printer to host, for xon/xoff)
+# cannot be # in is2 because it will hang a c100 with no printer
+# if sent twice.
+c100|concept100|concept|c104|c100-4p|hds concept 100:\
+ :am:bs:eo:mi:ul:xn:\
+ :co#80:li#24:pb#9600:vt#8:\
+ :al=\E\022:bl=^G:cd=\E\005:ce=\E\025:cl=\E?\E\005:\
+ :cm=\Ea%+ %+ :cr=\r:dc=\E\021:dl=\E\002:do=^J:ei=\E :\
+ :i1=\EK:i2=\Ev \Ep\n:im=\E^P:ip=:\
+ :is=\EU\Ef\E7\E5\E8\El\ENH\E\0\Eo&\0\Eo'\E\Eo\041\0\E\007\041\E\010A@ \E4#\072"\E\072a\E4#;"\E\072b\E4#<"\E\072c:\
+ :k1=\E5:k2=\E6:k3=\E7:k4=\E8:k5=\E9:k6=\E\072a:k7=\E\072b:\
+ :k8=\E\072c:kA=\E^R:kB=\E':kD=\E^Q:kE=\E^S:kF=\E[:kI=\E^P:\
+ :kL=\E^B:kM=\E\0:kN=\E-:kP=\E.:kR=\E\:kS=\E^C:kT=\E]:kb=^H:\
+ :kd=\E<:ke=\Ex:kh=\E?:kl=\E>:kr=\E=:ks=\EX:kt=\E_:ku=\E;:\
+ :le=^H:mb=\EC:me=\EN@:mh=\EE:mk=\EH:mp=\EI:mr=\ED:nd=\E=:\
+ :pf=\036o \E\EQ\041\EYP\027:\
+ :po=\EQ"\EY(\027\EYD\Eo \036:rp=\Er%.%+ :se=\Ed:sf=^J:\
+ :so=\ED:ta=\011:te=\Ev \Ep\r\n:\
+ :ti=\EU\Ev 8p\Ep\r\E\025:ue=\Eg:up=\E;:us=\EG:vb=\Ek\EK:
+c100-rv|c100-rv-4p|concept100-rv|c100 rev video:\
+ :i1=\Ek:se=\Ee:so=\EE:vb=\EK\Ek:ve@:vs@:tc=c100:
+oc100|oconcept|c100-1p|old 1 page concept 100:\
+ :in:\
+ :i3@:tc=c100:
+
+# From: Walter Skorski <walt@genetics1.JMP.TJU.EDU>, 16-oct-1996.
+# Lots of notes, originally inline, but ncurses doesn't grok that.
+#
+# am: not available in power on mode, but turned on with \E[=107;207h in
+# is2=. Also, \E=124l in is2= could have been used to prevent needing
+# to specify xenl:, but that would have rendered the last space on the
+# last line useless.
+# bw: Not available in power on mode, but turned on with \E[=107;207h in
+# is2=.
+# clear: Could be done with \E[2J alone, except that vi (and probably most
+# other programs) assume that this also homes the cursor.
+# dsl: Go to window 2, go to the beginning of the line, use a line feed to
+# scroll the window, and go back to window 1.
+# is2: the string may cause a warning to be issued by tic that it
+# found a very long line and that it suspects that a comma is missing
+# somewhere. This warning can be ignored (unless it comes up more than
+# once). The initialization string contains the following commands:
+#
+# [Setup mode items changed from factory defaults:]
+# \E)0 set alternate character set to
+# graphics
+# ^O set character set to default
+# [In case it wasn't]
+# \E[m turn off all attributes
+# [In case they weren't off]
+# \E[=107; cursor wrap and
+# 207h character wrap on
+# \E[90;3u set Fkey definitions to "transmit"
+# defaults
+# \E[92;3u set cursor key definitions to
+# "transmit" defaults
+# \E[43;1u set shift F13 to transmit...
+# \177\E$P\177
+# \E[44;1u set shift F14 to transmit...
+# \177\E$Q\177
+# \E[45;1u set shift F15 to transmit...
+# \177\E$R\177
+# \E[46;1u set shift F16 to transmit...
+# \177\E$S\177
+# \E[200;1u set shift up to transmit...
+# \177\E$A\177
+# \E[201;1u set shift down to transmit...
+# \177\E$B\177
+# \E[202;1u set shift right to transmit...
+# \177\E$C\177
+# \E[203;1u set shift left to transmit...
+# \177\E$D\177
+# \E[204;1u set shift home to transmit...
+# \177\E$H\177
+# \E[212;1u set backtab to transmit...
+# \177\E$I\177
+# \E[213;1u set shift backspace to transmit...
+# \177\E$^H\177
+# \E[214;1u set shift del to transmit...
+# "\E$\177"
+# [Necessary items not mentioned in setup mode:]
+# \E[2!w move to window 2
+# \E[25;25w define window as line 25 of memory
+# \E[!w move to window 1
+# \E[2*w show current line of window 2 as
+# status line
+# \E[2+x set meta key to use high bit
+# \E[;3+} move underline to bottom of character
+#
+# All Fkeys are set to their default transmit definitions with \E[90;3u
+# in is2=. IMPORTANT: to use this terminal definition, the "quit" stty
+# setting MUST be redefined or deactivated, because the default is
+# contained in almost all of this terminal's Fkey strings! If for some
+# reason "quit" cannot be altered, the Fkeys can, but it would be
+# necessary to change ^| to ^] in all of these definitions, and add
+# \E[2;029!t to is2.
+# lines: is set to 24 because this terminal refuses to treat the 25th
+# line normally.
+# ll: Not available in power on mode, but turned on with \E[=107;207h in
+# is2=.
+# lm: Pointless, given that this definition locks a single screen of
+# memory into view, but what the hey...
+# rmso: Could use \E[1;7!{ to turn off only bold and reverse (leaving any
+# other attributes alone), but some programs expect this to turn off
+# everything.
+# rmul: Could use \E[4!{ to turn off only underline (leaving any other
+# attributes alone), but some programs expect this to turn off
+# everything.
+# sgr: Attributes are set on this terminal with the string \E[ followed by
+# a list of attribute code numbers (in decimal, separated by
+# semicolons), followed by the character m. The attribute code
+# numbers are:
+# 1 for bold;
+# 2 for dim (which is ignored in power on mode);
+# 4 for underline;
+# 5 for blinking;
+# 7 for inverse;
+# 8 for not displayable; and
+# =99 for protected (except that there are strange side
+# effects to protected characters which make them inadvisable).
+# The mapping of terminfo parameters to attributes is as follows:
+# %p1 (standout) = bold and inverse together;
+# %p2 (underline) = underline;
+# %p3 (reverse) = inverse;
+# %p4 (blink) = blinking;
+# %p5 (dim) is ignored;
+# %p6 (bold) = bold;
+# %p7 (invisible) = not displayable;
+# %p8 (protected) is ignored; and
+# %p9 (alt char set) = alt char set.
+# The code to do this is:
+# \E[0 OUTPUT \E[0
+# %?%p1%p6%O IF (standout; bold) OR
+# %t;1 THEN OUTPUT ;1
+# %; ENDIF
+# %?%p2 IF underline
+# %t;4 THEN OUTPUT ;4
+# %; ENDIF
+# %?%p4 IF blink
+# %t;5 THEN OUTPUT ;5
+# %; ENDIF
+# %?%p1%p3%O IF (standout; reverse) OR
+# %t;7 THEN OUTPUT ;7
+# %; ENDIF
+# %?%p7 IF invisible
+# %t;8 THEN OUTPUT ;8
+# %; ENDIF
+# m OUTPUT m
+# %?%p9 IF altcharset
+# %t^N THEN OUTPUT ^N
+# %e^O ELSE OUTPUT ^O
+# %; ENDIF
+# sgr0: Everything is turned off (including alternate character set), since
+# there is no way of knowing what it is that the program wants turned
+# off.
+# smul: The "underline" attribute is reconfigurable to an overline or
+# strikethru, or (as done with \E[;3+} in is2=), to a line at the true
+# bottom of the character cell. This was done to allow for more readable
+# underlined characters, and to be able to distinguish between an
+# underlined space, an underscore, and an underlined underscore.
+# xenl: Terminal can be configured to not need this, but this "glitch"
+# behavior is actually preferable with autowrap terminals.
+#
+# Parameters kf31= thru kf53= actually contain the strings sent by the shifted
+# Fkeys. There are no parameters for shifted Fkeys in terminfo. The is2
+# string modifies the 'O' in kf43 to kf46 to a '$'.
+#
+# kcbt was originally ^I but redefined in is2=.
+# kHOM was \E[H originally but redefined in is2=, as were a number of
+# other keys.
+# kDC was originally \177 but redefined in is2=.
+#
+# kbs: Shift was also ^H originally but redefined as \E$^H in is2=.
+# tsl: Go to window 2, then do an hpa=.
+#
+#------- flash=\E[8;3!}^G\E[3;3!}
+#------- flash=\E[?5h$<100>\E[?5l
+# There are two ways to flash the screen, both of which have their drawbacks.
+# The first is to set the bell mode to video, transmit a bell character, and
+# set the bell mode back - but to what? There is no way of knowing what the
+# user's old bell setting was before we messed with it. Worse, the command to
+# set the bell mode also sets the key click volume, and there is no way to say
+# "leave that alone", or to know what it's set to, either.
+# The second way to do a flash is to set the screen to inverse video, pad for a
+# tenth of a second, and set it back - but like before, there's no way to know
+# that the screen wasn't ALREADY in inverse video, or that the user may prefer
+# it that way. The point is moot anyway, since vi (and probably other
+# programs) assume that by defining flash=, you want the computer to use it
+# INSTEAD of bel=, rather than as a secondary type of signal.
+#
+#------- cvvis=\E[+{
+# The is the power on setting, which is also as visible as the cursor
+# gets.
+#------- wind=\E[%i%p1%d;%p2%d;%p3%{1}%+%d;%p4%{1}%+%dw
+# Windowing is possible, but not defined here because it is also used to
+# emulate status line functions. Allowing a program to set a window could
+# clobber the status line or render it unusable. There is additional memory,
+# but screen scroll functions are destructive and do not make use of it.
+#
+#------- dim= Not available in power on mode.
+# You have a choice of defining low intensity characters as "half bright" and
+# high intensity as "normal", or defining low as "normal" and high as "bold".
+# No matter which you choose, only one of either "half bright" or "bold" is
+# available at any time, so taking the time to override the default is
+# pointless.
+#
+#------- prot=\E[=0;99m
+# Not defined, because it appears to have some strange side effects.
+#------- pfkey=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+#------- pfloc=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%du\177%p2%s\177%;
+#------- pfx=%?%p1%{24}%<%p1%{30}%>%p1%{54}%<%A%O%t\E[%p1%d;1u\177%p2%s\177%;
+# Available, but making them available to programs is inadvisable.
+# The code to do this is:
+# %?%p1%{24}%< IF ((key; 24) <;
+# %p1%{30}%> ((key; 30) >;
+# %p1%{54}%< (key; 54) <
+# %A ) AND
+# %O ) OR
+# [that is, "IF key < 24 OR (key > 30 AND key < 54)",]
+# %t\E[ THEN OUTPUT \E[
+# %p1%d OUTPUT (key) as decimal
+# [next line applies to pfx only]
+# ;1 OUTPUT ;1
+# u OUTPUT u
+# \177 OUTPUT \177
+# %p2%s OUTPUT (string) as string
+# \177 OUTPUT \177
+# [DEL chosen as delimiter, but could be any character]
+# [implied: ELSE do nothing]
+# %; ENDIF
+#
+#------- rs2=
+# Not defined since anything it might do could be done faster and easier with
+# either Meta-Shift-Reset or the main power switch.
+#
+#------- smkx=\E[1!z
+#------- rmkx=\E[!z
+# These sequences apply to the cursor and setup keys only, not to the
+# numeric keypad. But it doesn't matter anyway, since making these
+# available to programs is inadvisable.
+# For the key definitions below, all sequences beginning with \E$ are
+# custom and programmed into the terminal via is2. \E$ also has no
+# meaning to any other terminal.
+#
+#------- cmdch=\E[;%p1%d!t
+# Available, but making it available to programs is inadvisable.
+#------- smxon=\E[1*q
+# Available, but making it available to programs is inadvisable.
+# Terminal will send XON/XOFF on buffer overflow.
+#------- rmxon=\E[*q
+# Available, but making it available to programs is inadvisable.
+# Terminal will not notify on buffer overflow.
+#------- smm=\E[2+x
+#------- rmm=\E[+x
+# Available, but making them available to programs is inadvisable.
+#
+# Printing:
+# It's not made clear in the manuals, but based on other ansi/vt type
+# terminals, it's a good guess that this terminal is capable of both
+# "transparent print" (which doesn't copy data to the screen, and
+# therefore needs mc5i: specified to say so) and "auxilliary print"
+# (which does duplicate printed data on the screen, in which case mc4=
+# and mc5= should use the \E[?4i and \E[?5i strings instead).
+#
+# (esr: I have commented out is2 in order to avoid overflowing termcap's
+# 1024-byte limit.)
+
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+hds200|Human Designed Systems HDS200:\
+ :am:bw:es:hs:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:lm#0:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ds=\E[2\041w\r\n\E[\041w:ei=\E[4l:fs=\E[\041w:ho=\E[H:\
+ :im=\E[4h:k1=^\001\r:k2=^\002\r:k3=^\003\r:k4=^\004\r:\
+ :k5=^\005\r:k6=^\006\r:k7=^\007\r:k8=^\008\r:k9=^\009\r:\
+ :kD=\177:kN=\E[U:kP=\E[V:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[H\E[A:mb=\E[0;5m:\
+ :md=\E[0;1m:me=\E[m\017:mr=\E[0;7m:nd=\E[C:nw=\E[E:rc=\E8:\
+ :sc=\E7:se=\E[m\017:sf=\ED:so=\E[0;1;7m:sr=\EM:st=\EH:\
+ :ta=^I:ts=\E[2\041w\E[%i%p1%dG:ue=\E[m\017:up=\E[A:\
+ :us=\E[0;4m:ve=\E[+{:vi=\E[6+{:
+
+# :ta: through :ce: included to specify padding needed in raw mode.
+# (avt-ns: added empty <acsc> to suppress a tic warning --esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+avt-ns|concept avt no status line:\
+ :am:bs:eo:mi:ul:xn:xo:\
+ :co#80:it#8:li#24:lm#192:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=\016:al=\E[L:as=\017:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[2g:dc=\E[P:dl=\E[M:do=^J:ei=\E4l:\
+ :ho=\E[H:i1=\E[=103l\E[=205l:ic=\E[@:im=\E1:ip=:\
+ :is=\E[1*q\E[2\041t\E[7\041t\E[=4;101;119;122l\E[=107;118;207h\E)1\E[1Q\EW\E[\041y\E[\041z\E>\E[0\0720\07232\041r\E[0*w\E[w\E2\r\n\E[2;27\041t:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E^B\r:kI=\E^A\r:kb=^H:\
+ :kd=\E[B:ke=\E[\041z\E[0;2u:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\E[1\041z\E[0;3u:ku=\E[A:le=^H:ll=\E[24H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mh=\E[1\041{:mr=\E[7m:nd=\E[C:rc=\E8:\
+ :sc=\E7:se=\E[7\041{:sf=\n:so=\E[7m:sr=\EM:st=\EH:ta=\011:\
+ :te=\E[w\E2\r\n:ti=\E[=4l\E[1;24w\E2\r:ue=\E[4\041{:\
+ :up=\E[A:us=\E[4m:ve=\E[=119l:vs=\E[=119h:
+avt-rv-ns|concept avt in reverse video mode/no status line:\
+ :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:\
+ :tc=avt-ns:
+avt-w-ns|concept avt in 132 column mode/no status line:\
+ :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:\
+ :tc=avt-ns:
+avt-w-rv-ns|concept avt in 132 column mode/no status line/reverse video:\
+ :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\
+ :vb=\E[=205l\E[=205h:tc=avt-ns:
+
+# Concept AVT with status line. We get the status line using the
+# "Background status line" feature of the terminal. We swipe the
+# first line of memory in window 2 for the status line, keeping
+# 191 lines of memory and 24 screen lines for regular use.
+# The first line is used instead of the last so that this works
+# on both 4 and 8 page AVTs. (Note the lm#191 or 192 - this
+# assumes an 8 page AVT but lm isn't currently used anywhere.)
+#
+avt+s|concept avt status line changes:\
+ :es:hs:\
+ :lm#191:\
+ :ds=\E[0*w:fs=\E[1;1\041w:\
+ :i2=\E[2w\E[2\041w\E[1;1;1;80w\E[H\E[2*w\E[1\041w\E2\r\n:\
+ :te=\E[2w\E2\r\n:ti=\E[2;25w\E2\r:\
+ :ts=\E[2;1\041w\E[;%p1%dH\E[2K:
+avt|avt-s|concept-avt|avt w/80 columns:\
+ :tc=avt+s:tc=avt-ns:
+avt-rv|avt-rv-s|avt reverse video w/sl:\
+ :i1=\E[=103l\E[=205h:vb=\E[=205l\E[=205h:tc=avt+s:tc=avt-ns:
+avt-w|avt-w-s|concept avt 132 cols+status:\
+ :i1=\E[=103h\E[=205l:ti=\E[H\E[1;24;1;132w:tc=avt+s:tc=avt-ns:
+avt-w-rv|avt-w-rv-s|avt wide+status+rv:\
+ :i1=\E[=103h\E[=205h:ti=\E[H\E[1;24;1;132w:\
+ :vb=\E[=205l\E[=205h:tc=avt+s:\
+ :tc=avt-ns:
+
+#### Contel Business Systems.
+#
+
+# Contel c300 and c320 terminals.
+contel300|contel320|c300|Contel Business Systems C-300 or C-320:\
+ :am:in:xo:\
+ :co#80:li#24:sg#1:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:\
+ :ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:k0=\ERJ:\
+ :k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:k7=\ERG:\
+ :k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:nd=\EC:\
+ :se=\E\041\0:sf=^J:so=\E\041\r:st=\E1:up=\EA:\
+ :vb=\020\002\020\003:
+# Contel c301 and c321 terminals.
+contel301|contel321|c301|c321|Contel Business Systems C-301 or C-321:\
+ :ei=:ic@:im=:ip@:se=\E\041\0:so=\E\041\r:vb@:\
+ :tc=contel300:
+
+#### Data General (dg)
+#
+# According to James Carlson <carlson@xylogics.com> writing in January 1995,
+# the terminals group at Data General was shut down in 1991; all these
+# terminals have thus been discontinued.
+#
+# DG terminals have function keys that respond to the SHIFT and CTRL keys,
+# e.g., SHIFT-F1 generates a different code from F1. To number the keys
+# sequentially, first the unmodified key codes are listed as F1 through F15.
+# Then their SHIFT versions are listed as F16 through F30, their CTRL versions
+# are listed as F31 through F45, and their CTRL-SHIFT versions are listed as
+# F46 through F60. This is done in the private "includes" below whose names
+# start with "dgkeys+".
+#
+# DG terminals generally support 8 bit characters. For each of these terminals
+# two descriptions are supplied:
+# 1) A default description for 8 bits/character communications, which
+# uses the default DG international character set and keyboard codes.
+# 2) A description with suffix "-7b" for 7 bits/character communications.
+# This description must use the NON-DEFAULT native keyboard language.
+
+# Unmodified fkeys (kf1-kf11), Shift fkeys (kf12-kf22), Ctrl fkeys (kf23-kf33),
+# Ctrl/Shift fdkeys (kf34-kf44).
+
+# Most of these entries are `official' and came from DG. Others are marked.
+
+dgkeys+8b|Private entry describing DG terminal 8-bit ANSI mode special keys:\
+ :%9=\233i:F1=\233011z:F2=\233012z:F3=\233013z:\
+ :F4=\233014z:F5=\233000z:F6=\233101z:F7=\233102z:\
+ :F8=\233103z:F9=\233104z:FA=\233105z:FB=\233106z:\
+ :FC=\233107z:FD=\233108z:FE=\233109z:FF=\233110z:\
+ :FG=\233111z:FH=\233112z:FI=\233113z:FJ=\233114z:\
+ :FK=\233100z:FL=\233201z:FM=\233202z:FN=\233203z:\
+ :FO=\233204z:FP=\233205z:FQ=\233206z:FR=\233207z:\
+ :FS=\233208z:FT=\233209z:FU=\233210z:FV=\233211z:\
+ :FW=\233212z:FX=\233213z:FY=\233214z:FZ=\233200z:\
+ :Fa=\233301z:Fb=\233302z:Fc=\233303z:Fd=\233304z:\
+ :Fe=\233305z:Ff=\233306z:Fg=\233307z:Fh=\233308z:\
+ :Fi=\233309z:Fj=\233310z:Fk=\233311z:Fl=\233312z:\
+ :Fm=\233313z:Fn=\233314z:Fo=\233300z:K1=\233020z:\
+ :K3=\233021z:K4=\233022z:K5=\233023z:k1=\233001z:\
+ :k2=\233002z:k3=\233003z:k4=\233004z:k5=\233005z:\
+ :k6=\233006z:k7=\233007z:k8=\233008z:k9=\233009z:\
+ :k;=\233010z:kC=\2332J:kE=\233K:kd=\233B:kh=\233H:\
+ :kl=\233D:kr=\233C:ku=\233A:
+
+dgkeys+7b|Private entry describing DG terminal 7-bit ANSI mode special keys:\
+ :%9=\E[i:F1=\E[011z:F2=\E[012z:F3=\E[013z:F4=\E[014z:\
+ :F5=\E[000z:F6=\E[101z:F7=\E[102z:F8=\E[103z:F9=\E[104z:\
+ :FA=\E[105z:FB=\E[106z:FC=\E[107z:FD=\E[108z:FE=\E[109z:\
+ :FF=\E[110z:FG=\E[111z:FH=\E[112z:FI=\E[113z:FJ=\E[114z:\
+ :FK=\E[100z:FL=\E[201z:FM=\E[202z:FN=\E[203z:FO=\E[204z:\
+ :FP=\E[205z:FQ=\E[206z:FR=\E[207z:FS=\E[208z:FT=\E[209z:\
+ :FU=\E[210z:FV=\E[211z:FW=\E[212z:FX=\E[213z:FY=\E[214z:\
+ :FZ=\E[200z:Fa=\E[301z:Fb=\E[302z:Fc=\E[303z:Fd=\E[304z:\
+ :Fe=\E[305z:Ff=\E[306z:Fg=\E[307z:Fh=\E[308z:Fi=\E[309z:\
+ :Fj=\E[310z:Fk=\E[311z:Fl=\E[312z:Fm=\E[313z:Fn=\E[314z:\
+ :Fo=\E[300z:K1=\E[020z:K3=\E[021z:K4=\E[022z:K5=\E[023z:\
+ :k1=\E[001z:k2=\E[002z:k3=\E[003z:k4=\E[004z:k5=\E[005z:\
+ :k6=\E[006z:k7=\E[007z:k8=\E[008z:k9=\E[009z:k;=\E[010z:\
+ :kC=\E[2J:kE=\E[K:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:
+
+dgkeys+11|Private entry describing 11 minimal-subset DG mode special keys:\
+ :F1=^^{:F2=^^a:F3=^^b:F4=^^c:F5=^^d:F6=^^e:F7=^^f:F8=^^g:\
+ :F9=^^h:FA=^^i:FB=^^j:FC=^^k:FD=^^1:FE=^^2:FF=^^3:FG=^^4:\
+ :FH=^^5:FI=^^6:FJ=^^7:FK=^^8:FL=^^9:FM=^^\072:FN=^^;:\
+ :FO=^^\041:FP=^^":FQ=^^#:FR=^^$:FS=^^%:FT=^^&:FU=^^':FV=^^(:\
+ :FW=^^):FX=^^*:FY=^^+:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:\
+ :k6=^^v:k7=^^w:k8=^^x:k9=^^y:k;=^^z:kC=^L:kE=^K:kd=^Z:kh=^H:\
+ :kl=^Y:kr=^X:ku=^W:
+
+dgkeys+15|Private entry describing 15 DG mode special keys:\
+ :#2=^^^H:#4=^^^Y:%i=^^^X:F1=^^{:F2=^^|:F3=^^}:F4=^^~:F5=^^p:\
+ :F6=^^a:F7=^^b:F8=^^c:F9=^^d:FA=^^e:FB=^^f:FC=^^g:FD=^^h:\
+ :FE=^^i:FF=^^j:FG=^^k:FH=^^l:FI=^^m:FJ=^^n:FK=^^`:FL=^^1:\
+ :FM=^^2:FN=^^3:FO=^^4:FP=^^5:FQ=^^6:FR=^^7:FS=^^8:FT=^^9:\
+ :FU=^^\072:FV=^^;:FW=^^<:FX=^^=:FY=^^>:FZ=^^0:Fa=^^\041:\
+ :Fb=^^":Fc=^^#:Fd=^^$:Fe=^^%:Ff=^^&:Fg=^^':Fh=^^(:Fi=^^):\
+ :Fj=^^*:Fk=^^+:Fl=^^\054:Fm=^^-:Fn=^^.:Fo=^^ :K1=^^\:K3=^^]:\
+ :K4=^^\136:K5=^^_:k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:\
+ :k7=^^w:k8=^^x:k9=^^y:k;=^^z:
+
+# Data General color terminals use the "Tektronix" color model. The total
+# number of colors varies with the terminal model, as does support for
+# attributes used in conjunction with color.
+
+# Removed u7, u8 definitions since they conflict with tack:
+# Preserve user-defined colors in at least some cases.
+# u7=^^Fh,
+# Default is ACM mode.
+# u8=^^F}20^^Fi^^F}21,
+#
+dgunix+fixed|Fixed color info for DG D430C terminals in DG-UNIX mode:\
+ :ut:\
+ :Co#16:NC#53:pa#256:\
+ :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
+ :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
+ :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd:
+
+dg+fixed|Fixed color info for DG D430C terminals in DG mode:\
+ :tc=dgunix+fixed:
+
+# Video attributes are coordinated using static variables set by "sgr", then
+# checked by "op", "seta[bf]", and "set[bf]" to refresh the attribute settings.
+# (D=dim, U=underline, B=blink, R=reverse.)
+dg+color8|Color info for Data General D220 and D230C terminals in ANSI mode:\
+ :ut:\
+ :Co#8:NC#16:pa#64:\
+ :AB=\E[4%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :AF=\E[3%p1%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :..Sb=\E[4%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :..Sf=\E[3%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :op=\E[%?%gD%t2;%;%?%gU%t4;%;%?%gB%t5;%;%?%gR%t7;%;m:
+
+dg+color|Color info for Data General D470C terminals in ANSI mode:\
+ :Co#16:NC#53:pa#256:\
+ :AB=\E[%?%p1%{8}%<%t4%p1%e=%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :AF=\E[%?%p1%{8}%<%t3%p1%e<%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :..Sb=\E[%?%p1%{8}%<%t4%e=%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :..Sf=\E[%?%p1%{8}%<%t3%e<%;%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%d%?%gD%t;2%;%?%gU%t;4%;%?%gB%t;5%;%?%gR%t;7%;m:\
+ :tc=dg+color8:
+
+dgmode+color8|Color info for Data General D220/D230C terminals in DG mode:\
+ :ut:\
+ :Co#8:NC#16:pa#64:\
+ :AB=\036B%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\
+ :AF=\036A%p1%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%{48}%+%c:\
+ :Sb=\036B%+0:Sf=\036A%+0:op=\036Ad\036Bd:
+
+dgmode+color|Color info for Data General D470C terminals in DG mode:\
+ :Co#16:pa#256:\
+ :AB=\036B%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
+ :AF=\036A%p1%?%p1%{8}%<%t%{2}%&%?%p1%{1}%&%t%{4}%|%;%?%p1%{4}%&%t%{1}%|%;%;%{48}%+%c:\
+ :tc=dgmode+color8:
+
+dgunix+ccc|Configurable color info for DG D430C terminals in DG-UNIX mode:\
+ :cc:ut:\
+ :Co#52:NC#53:pa#26:\
+ :..Ip=\036RG0%p1%02X%p2%{256}%*%{1001}%/%02X%p3%{256}%*%{1001}%/%02X%p4%{256}%*%{1001}%/%02X%p5%{256}%*%{1001}%/%02X%p6%{256}%*%{1001}%/%02X%p7%{256}%*%{1001}%/%02X:\
+ :oc=\036RG01A00FF00000000\036RG01B00000000FF00\036RG01C007F00000000\036RG01D000000007F00:\
+ :op=\036RF4831A\036RF2E31B\036RF1D31C\036RF3F31D:\
+ :..sp=\036RG2%p1%02X:
+
+# Colors are in the order: normal, reverse, dim, dim + reverse.
+dg+ccc|Configurable color info for DG D430C terminals in DG mode:\
+ :cc:ut:\
+ :Co#52:NC#53:pa#26:\
+ :..Ip=\036RG0%p1%{16}%/%{48}%+%c%p1%{16}%m%{48}%+%c%p2%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p3%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p4%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p5%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p6%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c%p7%{256}%*%{1001}%/%Pa%ga%{16}%/%{48}%+%c%ga%{16}%m%{48}%+%c:\
+ :oc=\036RG01\07200??00000000\036RG01;00000000??00\036RG01<007?00000000\036RG01=000000007?00:\
+ :op=\036RF4831\072\036RF2>31;\036RF1=31<\036RF3?31=:\
+ :sp=\036RG2%+^P%+^P:
+
+# The generic DG terminal type (an 8-bit-clean subset of the 6053)
+# Initialization string 1 sets:
+# ^R - vertical scrolling enabled
+# ^C - blinking enabled
+dg-generic|Generic Data General terminal in DG mode:\
+ :NL:am:bw:ms:xo:\
+ :co#80:li#24:\
+ :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:i1=^R^C:le=^Y:\
+ :mb=^N:me=^O^U^]:mh=^\:nd=^X:nw=^J:ps=^Q:se=^]:sf=^J:so=^\:\
+ :ue=^U:up=^W:us=^T:\
+ :tc=dgkeys+11:
+
+# (Some performance can be gained over the generic DG terminal type)
+dg6053|6053|6053-dg|dg605x|605x|605x-dg|d2|d2-dg|Data General DASHER 6053:\
+ :xo@:\
+ :ho=^P\0\0:ll=^P\0^W:tc=dg-generic:
+
+# Like 6053, but adds reverse video and more keypad and function keys.
+d200|d200-dg|Data General DASHER D200:\
+ :ho@:ll@:md=^^D^T:me=\017\025\035\036E:mr=^^D:\
+ :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;:\
+ :se=^^E^]:so=^^D^\:\
+ :tc=dgkeys+15:tc=dg6053:
+
+# DASHER D210 series terminals in ANSI mode.
+# Reverse video, no insert/delete character/line, 7 bits/character only.
+#
+# Initialization string 1 sets:
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <4 - print characters regardless of attributes
+d210|d214|Data General DASHER D210 series:\
+ :NL:am:bw:ms:xo:\
+ :co#80:li#24:\
+ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cb=\E[1K:\
+ :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:do=\E[B:\
+ :ho=\E[H:i1=\E[<0;<1;<4l:le=^H:ll=\E[H\E[A:mb=\E[5m:\
+ :md=\E[4;7m:me=\E[m:mh=\E[2m:mr=\E[7m:nd=\E[C:nw=^J:\
+ :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m:\
+ :se=\E[m:sf=^J:so=\E[2;7m:ue=\E[m:up=\E[A:us=\E[4m:\
+ :tc=dgkeys+7b:
+
+# DASHER D210 series terminals in DG mode.
+# Like D200, but adds clear to end-of-screen and needs XON/XOFF.
+d210-dg|d214-dg|Data General DASHER D210 series in DG mode:\
+ :xo:\
+ :cd=^^FF:tc=d200:
+
+# DASHER D211 series terminals in ANSI mode.
+# Like the D210, but with 8-bit characters and local printer support.
+#
+# Initialization string 2 sets:
+# \E[2;1;1;1v
+# 2;1 - 8 bit operations
+# 1;1 - 8 bit (international) keyboard language
+# \E(B - default primary character set (U.S. ASCII)
+# \E)4 - default secondary character set (international)
+# ^O - primary character set
+#
+d211|d215|Data General DASHER D211 series:\
+ :km:\
+ :is=\E[2;1;1;1v\E(B\E)4\017:ps=\E[i:tc=dgkeys+8b:tc=d210:
+
+# Initialization string 2 sets:
+# \E[2;0;1;0v
+# 2;0 - 7 bit operations
+# 1;0 - 7 bit (native) keyboard language
+# \E(0 - default character set (the keyboard native language)
+# ^O - primary character set
+d211-7b|d215-7b|Data General DASHER D211 series in 7 bit mode:\
+ :km@:\
+ :is=\E[2;0;1;0v\E(0\017:tc=dgkeys+7b:tc=d211:
+
+# Like the D210 series, but adds support for 8-bit characters.
+#
+# Reset string 2 sets:
+# ^^N - secondary character set
+# ^^FS0> - 8 bit international character set
+# ^^O - primary character set
+# ^^FS00 - default character set (matching the native keyboard language)
+#
+d211-dg|d215-dg|Data General DASHER D211 series in DG mode:\
+ :km:\
+ :r2=\036N\036FS0>\036O\036FS00:tc=d210-dg:
+
+d216-dg|d216e-dg|d216+dg|d216e+dg|d217-dg|Data General DASHER D216 series in DG mode:\
+ :tc=d211-dg:
+
+# Enhanced DG mode with changes to be more UNIX compatible.
+d216-unix|d216e-unix|d216+|d216e+|Data General DASHER D216+ in DG-UNIX mode:\
+ :5i:\
+ :it#8:\
+ :#2=^^Pf:#4=^^Pd:%9=^^P0:%f=^^P1:%i=^^Pc:\
+ :ac=a\177j$k"l\041m#n)q+t'u&v(w%x*:ae=\036FS00:\
+ :as=\036FS11:ce=^^PE:ch=\020%.\177:cl=^^PH:cv=\020\177%.:\
+ :do=^^PB:ho=^^PF:i1=\022\003\036P@1:i2=\036Fz0:kC=^^PH:\
+ :kE=^^PE:kd=^^PB:kh=^^PF:kl=^^PD:kr=^^PC:ku=^^PA:le=^^PD:\
+ :mb=^^PI:me=\036PJ\025\035\036E\036FS00:nd=^^PC:pf=^^Fa:\
+ :po=^^F`:ps=\036F?9:r2=\036N\036FS0E\036O\036FS00:\
+ :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;\036P%?%p4%tI%eJ%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:\
+ :sf=^J:ta=^I:up=^^PA:\
+ :tc=dgkeys+15:tc=d216-dg:
+d216-unix-25|d216+25|Data General DASHER D216+ in DG-UNIX mode with 25 lines:\
+ :li#25:\
+ :i2=\036Fz2:tc=d216+:
+
+d217-unix|Data General DASHER D217 in DG-UNIX mode:\
+ :tc=d216-unix:
+d217-unix-25|Data General DASHER D217 in DG-UNIX mode with 25 lines:\
+ :tc=d216-unix-25:
+
+# DASHER D220 color terminal in ANSI mode.
+# Like the D470C but with fewer colors and screen editing features.
+#
+# Initialization string 1 sets:
+# \E[<0;<1;<4l
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <4 - print characters regardless of attributes
+# \E[m - all attributes off
+# Reset string 1 sets:
+# \Ec - initial mode defaults (RIS)
+#
+d220|Data General DASHER D220:\
+ :5i@:\
+ :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c:
+
+d220-7b|Data General DASHER D220 in 7 bit mode:\
+ :5i@:\
+ :AL@:DL@:al@:dl@:i1=\E[<0;<1;<4l\E[m:pf@:po@:r1=\Ec:tc=dg+color8:tc=d470c-7b:
+
+# Initialization string 3 sets:
+# - default cursor (solid rectangle)
+# Reset string 2 sets:
+# ^^N - secondary character set
+# ^^FS0> - 8 bit international character set
+# ^^O - primary character set
+# ^^FS00 - default character set (matching the native keyboard language)
+#
+d220-dg|Data General DASHER D220 color terminal in DG mode:\
+ :5i@:\
+ :al@:dl@:ho@:i2=\036FQ2:is@:ll@:pf@:po@:r1@:\
+ :r2=\036N\036FS0>\036O\036FS00:tc=dgmode+color8:\
+ :tc=d470c-dg:
+
+# DASHER D230C color terminal in ANSI mode.
+# Like the D220 but with minor ANSI compatibility improvements.
+#
+d230c|d230|Data General DASHER D230C:\
+ :ke=\E[2;1v:ks=\E[2;0v:mb=\E[5;50m:md=\E[4;7;50m:\
+ :me=\E[50m\E)4\017:mh=\E[2;50m:mr=\E[7;50m:nw=^M^J:\
+ :..sa=\E[50%?%p1%p3%|%p6%|%t;7%{1}%e%{0}%;%PR%?%p4%t;5%{1}%e%{0}%;%PB%?%p2%p6%|%t;4%{1}%e%{0}%;%PU%?%p1%p5%|%t;2%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:\
+ :se=\E[50m:so=\E[2;7;50m:ue=\E[50m:us=\E[4;50m:\
+ :tc=dgkeys+7b:tc=d220:
+
+d230c-dg|d230-dg|Data General DASHER D230C in DG mode:\
+ :tc=d220-dg:
+
+# DASHER D400/D450 series terminals.
+# These add intelligent features like insert/delete to the D200 series.
+#
+# Initialization string 2 sets:
+# ^^FQ2 - default cursor (solid rectangle)
+# ^^FW - character protection disabled
+# ^^FJ - normal (80 column) mode
+# ^^F\^ - horizontal scrolling enabled (for alignment)
+# ^^FX004? - margins at columns 0 and 79
+# ^^F] - horizontal scrolling disabled
+# ^^O - primary character set
+# ^^FS00 - default character set (the keyboard native language)
+# - (should reset scrolling regions, but that glitches the screen)
+# Reset string 1 sets:
+# ^^FA - all terminal defaults except scroll rate
+# Reset string 2 sets:
+# ^^F] - horizontal scrolling disabled
+# ^^FT0 - jump scrolling
+#
+d400|d400-dg|d450|d450-dg|Data General DASHER D400/D450 series:\
+ :5i:\
+ :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=^^O:al=^^FH:as=^^N:\
+ :ch=\020%.\177:cv=\020\177%.:dc=^^K:dl=^^FI:\
+ :eA=\036N\036FS11\036O:ei=:ho=^^FG:ic=^^J:im=:\
+ :is=\036FQ2\036FW\036FJ\036F\136\036FX004?\036F]\036O\036FS00:\
+ :ll=\036FG\027:me=\017\025\035\036E\036O:pf=^^Fa:\
+ :po=^^F`:r1=^^FA:r2=\036F]\036FT0:\
+ :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036%?%p9%tN%eO%;:\
+ :sr=^^I:ve=\036FQ2:vi=\036FQ0:\
+ :tc=d210-dg:
+
+# DASHER D410/D460 series terminals in ANSI mode.
+# These add a large number of intelligent terminal features.
+#
+# Initialization string 1 sets:
+# \E[<0;<1;<2;<4l
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <2 - horizontal scrolling enabled (for alignment)
+# <4 - print characters regardless of attributes
+# \E[5;0v - normal (80 column) mode
+# \E[1;1;80w - margins at columns 1 and 80
+# \E[1;6;<2h
+# 1 - print all characters even if protected
+# 6 - character protection disabled
+# <2 - horizontal scrolling disabled
+# - (should reset scrolling regions, but that glitches the screen)
+#
+# Initialization string 2 sets:
+# \E[3;2;2;1;1;1v
+# 3;2 - default cursor (solid rectangle)
+# 2;1 - 8 bit operations
+# 1;1 - international keyboard language
+# \E(B - default primary character set (U.S. ASCII)
+# \E)4 - default secondary character set (international)
+# ^O - primary character set
+#
+# Reset string 1 sets:
+# \Ec - initial mode defaults (RIS)
+# \E[<2h - horizontal scrolling disabled
+#
+# Reset string 2 sets:
+# \E[4;0;2;1;1;1v
+# 4;0 - jump scrolling
+# 2;1 - 8 bit operations
+# 1;1 - 8 bit (international) keyboard language
+# \E(B - default primary character set (U.S. ASCII)
+# \E)4 - default secondary character set (international)
+#
+d410|d411|d460|d461|Data General DASHER D410/D460 series:\
+ :5i:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:\
+ :ac=j$k"l\041m#n)q+t'u&v(w%x*:ae=\E)4\017:al=\E[L:\
+ :as=\E)6\016:dc=\E[P:dl=\E[M:ei=:\
+ :i1=\E[<0;<1;<2;<4l\E[5;0v\E[1;1;80w\E[1;6;<2h:\
+ :ic=\E[@:im=:is=\E[3;2;2;1;1;1v\E(B\E)4\017:\
+ :me=\E[m\E)4\017:pf=\E[4i:po=\E[5i:r1=\Ec\E[<2h:\
+ :r2=\E[4;0;2;1;1;1v\E(B\E)4:\
+ :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m\E)%?%p9%t6\016%e4\017%;:\
+ :sr=\EM:ve=\E[3;2v:vi=\E[3;0v:\
+ :tc=d211:
+
+# Initialization string 2 sets:
+# \E[3;2;2;0;1;0v
+# 3;2 - default cursor (solid rectangle)
+# 2;0 - 7 bit operations
+# 1;0 - 7 bit (native) keyboard language
+# \E(0 - default character set (the keyboard native language)
+# ^O - primary character set
+#
+# Reset string 2 sets:
+# \E[4;0;2;0;1;0v
+# 4;0 - jump scrolling
+# 2;0 - 7 bit operations
+# 1;0 - 7 bit (native) keyboard language
+# \E(0 - default character set (the keyboard native language)
+#
+d410-7b|d411-7b|d460-7b|d461-7b|Data General DASHER D410/D460 series in 7 bit mode:\
+ :km@:\
+ :ae=^O:as=^N:eA=\E)6:is=\E[3;2;2;0;1;0v\E(0\017:\
+ :me=\E[m\017:r2=\E[4;0;2;0;1;0v\E(0:\
+ :..sa=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1%p5%|%t2;%;m%?%p9%t\016%e\017%;:tc=dgkeys+7b:\
+ :tc=d410:
+
+d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode:\
+ :km:\
+ :ae=\036FS00:as=\036FS11:eA@:\
+ :me=\017\025\035\036E\036FS00:\
+ :..sa=\036%?%p1%p3%|%p6%|%tD%eE%;%?%p2%p6%|%t\024%e\025%;%?%p4%t\016%e\017%;%?%p1%p5%|%t\034%e\035%;\036FS%?%p9%t11%e00%;:tc=d400-dg:
+
+# DASHER D410/D460 series terminals in wide (126 columns) ANSI mode.
+#
+# Initialization string 1 sets:
+# \E[<0;<1;<2;<4l
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <2 - horizontal scrolling enabled (for alignment)
+# <4 - print characters regardless of attributes
+# \E[5;1v - compressed (135 column) mode
+# \E[1;1;126 - margins at columns 1 and 126
+# \E[1;6;<2h
+# 1 - print all characters even if protected
+# 6 - character protection disabled
+# <2 - horizontal scrolling disabled
+# - (should reset scrolling regions, but that glitches the screen)
+#
+# Reset string 1 sets:
+# \Ec - initial mode defaults (RIS)
+# \E[5;1v - compressed (135 column) mode
+# \E[1;1;126w - margins at columns 1 and 126
+# \E[<2h - horizontal scrolling disabled
+#
+d410-w|d411-w|d460-w|d461-w|Data General DASHER D410/D460 series in wide mode:\
+ :co#126:\
+ :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\
+ :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\
+ :tc=d410:
+
+d410-7b-w|d411-7b-w|d460-7b-w|d461-7b-w|Data General DASHER D410/D460 series in wide 7 bit mode:\
+ :co#126:\
+ :i1=\E[<0;<1;<2;<4l\E[5;1v\E[1;1;126w\E[1;6;<2h:\
+ :r1=\Ec\E[5;1v\E[1;1;126w\E[<2h:\
+ :tc=d410-7b:
+
+d412-dg|d462-dg|d462e-dg|d412+dg|d462+dg|d413-dg|d463-dg|Data General DASHER D412/D462 series in DG mode:\
+ :tc=d410-dg:
+
+# These add intelligent features like scrolling regions.
+d412-unix|d462-unix|d412+|d462+|Data General DASHER D412+/D462+ series in Unix mode:\
+ :al=^^FH:ch=\036FP%2.2XFF:cl=^^FE:cm=\036FP%r%2.2X%2.2X:\
+ :cv=\036FPFF%2.2X:dc=^^K:dl=^^FI:ei=:ho=^^FG:ic=^^J:im=:\
+ :is=\036FQ5\036FW\036FJ\036F\136\036FX004F\036O\036FS00:\
+ :ll=\036FG\036PA:ps=^A:r1=\036FA\036FT0:r2=\036P@1:\
+ :rc=\036F}11:sc=\036F}10:sr=^^I:ve=\036FQ5:vi=\036FQ0:\
+ :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:\
+ :tc=d216+:
+d412-unix-w|d462-unix-w|d412+w|d462+w|Data General DASHER D412+/D462+ series in wide Unix mode:\
+ :co#132:\
+ :is=\036FQ5\036FW\036FK\036F\136\036FX0083\036O\036FS00:\
+ :r2=\036P@1\036FK\036FX0083:\
+ :..wi=\036FB%?%p1%t%p1%2.2X1%;%p2%p1%-%{1}%+%2.2X1%?%{23}%p2%>%t001%;\036FX%p3%2.2X%p4%2.2X:tc=d412-unix:
+d412-unix-25|d462-unix-25|d412+25|d462+25|Data General DASHER D412+/D462+ series in Unix mode with 25 lines:\
+ :li#25:\
+ :i2=\036Fz2:\
+ :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{24}%p2%>%t000%;\036FX%p3%2.2X%p4%2.2X:tc=d462+:
+d412-unix-s|d462-unix-s|d412+s|d462+s|Data General DASHER D412+/D462+ in Unix mode with status line:\
+ :es:hs:\
+ :cl=\036FG\036PH:fs=\036F}01\022:\
+ :i2=\036Fz2\036F}00\036FB180000\036F}01:ll@:\
+ :ts=\036F}00\036FP%p1%2.2X18\036PG:\
+ :..wi=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t%{23}%p2%-%2.2X0%;000\036FX%p3%2.2X%p4%2.2X:tc=d462+:
+
+# Relative cursor motions are confined to the current window,
+# which is not what the scrolling region specification expects.
+# Thus, relative vertical cursor positioning must be deleted.
+d412-unix-sr|d462-unix-sr|d412+sr|d462+sr|Data General DASHER D412+/D462+ in Unix mode with scrolling region:\
+ :..cs=\036FB%?%p1%t%p1%2.2X0%;%p2%p1%-%{1}%+%2.2X0%?%{23}%p2%>%t000%;:\
+ :do@:ll@:up@:\
+ :tc=d462+:
+
+d413-unix|d463-unix|Data General DASHER D413/D463 series in DG-UNIX mode:\
+ :tc=d412-unix:
+d413-unix-w|d463-unix-w|Data General DASHER D413/D463 series in wide DG-UNIX mode:\
+ :tc=d412-unix-w:
+d413-unix-25|d463-unix-25|Data General DASHER D413/D463 series in DG-UNIX mode with 25 lines:\
+ :tc=d412-unix-25:
+d413-unix-s|d463-unix-s|Data General DASHER D413/D463 in DG-UNIX mode with status line:\
+ :tc=d412-unix-s:
+d413-unix-sr|d463-unix-sr|Data General DASHER D413/D463 in DG-UNIX mode with scrolling region:\
+ :tc=d412-unix-sr:
+
+d414-unix|d464-unix|Data General D414/D464 in DG-UNIX mode:\
+ :tc=d413-unix:
+d414-unix-w|d464-unix-w|Data General D414/D464 in wide DG-UNIX mode:\
+ :tc=d413-unix-w:
+d414-unix-25|d464-unix-25|Data General D414/D464 in DG-UNIX mode with 25 lines:\
+ :tc=d413-unix-25:
+d414-unix-s|d464-unix-s|Data General D414/D464 in DG-UNIX mode with status line:\
+ :tc=d413-unix-s:
+d414-unix-sr|d464-unix-sr|Data General D414/D464 in DG-UNIX mode with scrolling region:\
+ :tc=d413-unix-sr:
+
+d430c-dg|d430-dg|Data General D430C in DG mode:\
+ :tc=d413-dg:tc=dg+fixed:
+d430c-dg-ccc|d430-dg-ccc|Data General D430C in DG mode with configurable colors:\
+ :tc=d413-dg:tc=dg+ccc:
+
+d430c-unix|d430-unix|Data General D430C in DG-UNIX mode:\
+ :tc=d413-unix:tc=dgunix+fixed:
+d430c-unix-w|d430-unix-w|Data General D430C in wide DG-UNIX mode:\
+ :tc=d413-unix-w:tc=dgunix+fixed:
+d430c-unix-25|d430-unix-25|Data General D430C in DG-UNIX mode with 25 lines:\
+ :tc=d413-unix-25:tc=dgunix+fixed:
+d430c-unix-s|d430-unix-s|Data General D430C in DG-UNIX mode with status line:\
+ :tc=d413-unix-s:tc=dgunix+fixed:
+d430c-unix-sr|d430-unix-sr|Data General D430C in DG-UNIX mode with scrolling region:\
+ :tc=d413-unix-sr:tc=dgunix+fixed:
+d430c-unix-ccc|d430-unix-ccc|Data General D430C in DG-UNIX mode with configurable colors:\
+ :tc=d413-unix:tc=dgunix+ccc:
+d430c-unix-w-ccc|d430-unix-w-ccc|Data General D430C in wide DG-UNIX mode with configurable colors:\
+ :tc=d413-unix-w:tc=dgunix+ccc:
+d430c-unix-25-ccc|d430-unix-25-ccc|Data General D430C in DG-UNIX mode with 25 lines and configurable colors:\
+ :tc=d413-unix-25:tc=dgunix+ccc:
+d430c-unix-s-ccc|d430-unix-s-ccc|Data General D430C in DG-UNIX mode with status line and configurable colors:\
+ :tc=d413-unix-s:tc=dgunix+ccc:
+d430c-unix-sr-ccc|d430-unix-sr-ccc|Data General D430C in DG-UNIX mode with scrolling region and configurable colors:\
+ :tc=d413-unix-sr:tc=dgunix+ccc:
+
+# dg450 from Cornell (not official)
+dg450|dg6134|data general 6134:\
+ :le@:nd=^X:tc=dg200:
+
+# Not official...
+# Note: lesser Dasher terminals will not work with vi because vi insists upon
+# having a command to move straight down from any position on the bottom line
+# and scroll the screen up, or a direct vertical scroll command. The 460 and
+# above have both, the D210/211, for instance, has neither. We must use ANSI
+# mode rather than DG mode because standard UNIX tty drivers assume that ^H is
+# backspace on all terminals. This is not so in DG mode.
+# (dg460-ansi: removed obsolete ":kn#6:"; also removed ":mu=\EW:", on the
+# grounds that there is no matching ":ml:"
+# fixed garbled ":k9=\E[00\:z:" capability -- esr)
+dg460-ansi|Data General Dasher 460 in ANSI-mode:\
+ :am:bs:ms:ul:\
+ :co#80:it#8:li#24:\
+ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%2;%2H:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=^^F@:k0=\E[001z:\
+ :k1=\E[002z:k2=\E[003z:k3=\E[004z:k4=\E[005z:k5=\E[006z:\
+ :k6=\E[007z:k7=\E[008z:k8=\E[009z:k9=\E[010z:kb=\E[D:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:l1=f2:l2=f3:\
+ :l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l9=f10:le=^H:mb=\E[5m:me=\E[m:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[C:nl=\ED:se=\E[m:sf=\E[S:so=\E[7m:\
+ :sr=\E[T:ta=^I:ue=\E[05:up=\E[A:us=\E[4m:
+
+# DASHER D470C color terminal in ANSI mode.
+# Like the D460 but with 16 colors and without a compressed mode.
+#
+# Initialization string 1 sets:
+# \E[<0;<1;<2;<4l
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <2 - horizontal scrolling enabled (for alignment)
+# <4 - print characters regardless of attributes
+# \E[1;1;80w - margins at columns 1 and 80
+# \E[1;6;<2h
+# 1 - print all characters even if protected
+# 6 - character protection disabled
+# <2 - horizontal scrolling disabled
+# - (should reset scrolling regions, but that glitches the screen)
+#
+d470c|d470|Data General DASHER D470C:\
+ :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\
+ :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm\E)%?%p9%t6\016%e4\017%;:tc=dg+color:\
+ :tc=d460:
+
+d470c-7b|d470-7b|Data General DASHER D470C in 7 bit mode:\
+ :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:\
+ :..sa=\E[%?%p1%p3%|%p6%|%t7;%{1}%e%{0}%;%PR%?%p4%t5;%{1}%e%{0}%;%PB%?%p2%p6%|%t4;%{1}%e%{0}%;%PU%?%p1%p5%|%t2;%{1}%e%{0}%;%PDm%?%p9%t\016%e\017%;:tc=dg+color:\
+ :tc=d460-7b:
+
+# Initialization string 2 sets:
+# ^^FQ2 - default cursor (solid rectangle)
+# ^^FW - character protection disabled
+# ^^F\^ - horizontal scrolling enabled (for alignment)
+# ^^FX004? - margins at columns 0 and 79
+# ^^F] - horizontal scrolling disabled
+# ^^O - primary character set
+# ^^FS00 - default character set (the keyboard native language)
+# - (should reset scrolling regions, but that glitches the screen)
+#
+d470c-dg|d470-dg|Data General DASHER D470C in DG mode:\
+ :is=\036FQ2\036FW\036F\136\036FX004?\036F]\036O\036FS00:\
+ :tc=dgmode+color:tc=d460-dg:
+
+# DASHER D555 terminal in ANSI mode.
+# Like a D411, but has an integrated phone.
+d555|Data General DASHER D555:\
+ :tc=d411:
+d555-7b|Data General DASHER D555 in 7-bit mode:\
+ :tc=d411-7b:
+d555-w|Data General DASHER D555 in wide mode:\
+ :tc=d411-w:
+d555-7b-w|Data General DASHER D555 in wide 7-bit mode:\
+ :tc=d411-7b-w:
+d555-dg|Data General DASHER D555 series in DG mode:\
+ :tc=d411-dg:
+
+# DASHER D577 terminal in ANSI mode.
+# Like a D411, but acts as a keyboard for serial printers ("KSR" modes).
+d577|Data General DASHER D577:\
+ :tc=d411:
+d577-7b|Data General DASHER D577 in 7-bit mode:\
+ :tc=d411-7b:
+d577-w|Data General DASHER D577 in wide mode:\
+ :tc=d411-w:
+d577-7b-w|Data General DASHER D577 in wide 7-bit mode:\
+ :tc=d411-7b-w:
+
+d577-dg|d578-dg|Data General DASHER D577/D578 series in DG mode:\
+ :tc=d411-dg:
+
+# DASHER D578 terminal.
+# Like a D577, but without compressed mode; like a D470C in this respect.
+#
+# Initialization string 1 sets:
+# \E[<0;<1;<2;<4l
+# <0 - scrolling enabled
+# <1 - blink enabled
+# <2 - horizontal scrolling enabled (for alignment)
+# <4 - print characters regardless of attributes
+# \E[1;1;80w - margins at columns 1 and 80
+# \E[1;6;<2h
+# 1 - print all characters even if protected
+# 6 - character protection disabled
+# <2 - horizontal scrolling disabled
+# - (should reset scrolling regions, but that glitches the screen)
+#
+d578|Data General DASHER D578:\
+ :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577:
+d578-7b|Data General DASHER D578 in 7-bit mode:\
+ :i1=\E[<0;<1;<2;<4l\E[1;1;80w\E[1;6;<2h:tc=d577-7b:
+
+# Here are some older Dasher entries from the Berkeley termcap file.
+
+# According to the 4.4BSD termcap file, the dg200 :cm: should be the
+# termcap equivalent of \020%p2%{128}%+%c%p1%{128}%+%c (in termcap
+# notation that's "^P%r%+\200%+\200"). Those \200s are suspicious,
+# maybe they were originally nuls (which would fit).
+dg200|data general dasher 200:\
+ :NL:am:bs:bw:\
+ :co#80:li#24:\
+ :bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:k0=^^z:\
+ :k1=^^q:k2=^^r:k3=^^s:k4=^^t:k5=^^u:k6=^^v:k7=^^w:k8=^^x:\
+ :k9=^^y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:l0=f10:le=^Y:nd=^X:\
+ :nw=^J:se=^^E:sf=^J:so=^^D:ue=^U:up=^W:us=^T:
+# Data General 210/211 (and 410?) from Lee Pearson (umich!lp) via BRL
+dg210|dg-ansi|Data General 210/211:\
+ :am:\
+ :co#80:li#24:\
+ :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:do=\E[B:ho=\E[H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nl=\E[B:\
+ :nw=\r\E[H\E[A\n:se=\E[0;m:so=\E[7;m:ue=\E[0;m:up=\E[A:\
+ :us=\E[4;m:
+# From: Peter N. Wan <ihnp4!gatech!gacsr!wan>
+# courtesy of Carlos Rucalde of Vantage Software, Inc.
+# (dg211: this had :cm=\020%r%.%:., which was an ancient termcap hangover.
+# I suspect the d200 function keys actually work on the dg211, check it out.)
+dg211|Data General d211:\
+ :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb=^Y:l0@:nw=^M^Z:\
+ :se=\036E\0/>:sf@:so=5\036D:ta=^I:te=^L:ti=^L^R:ve=^L:\
+ :vs=^L^R:\
+ :tc=dg200:
+
+# From: Wayne Throop <mcnc!rti-sel!rtp47!throopw> (not official)
+# Data General 605x
+# Ought to work for a Model 6242, Type D210 as well as a 605x.
+# Note that the cursor-down key transmits ^Z. Job control users, beware!
+# This also matches a posted description of something called a `Dasher 100'
+# so there's a dg100 alias here.
+# (dg6053: the 4.4BSD file had :le=^H:, :do=^J:, :nd=^S:. -- esr)
+dg6053-old|dg100|data general 6053:\
+ :am:bs:bw:ul:\
+ :co#80:li#24:\
+ :bc=^Y:bl=^G:ce=^K:cl=^L:cm=\020%r%.%.:cr=^M:do=^Z:ho=^H:\
+ :is=^R:k0=^^q:k1=^^r:k2=^^s:k3=^^t:k4=^^u:k5=^^v:k6=^^w:\
+ :k7=^^x:k8=^^y:k9=^^z:kb=^Y:kd=^Z:kh=^H:kl=^Y:kr=^X:ku=^W:\
+ :le=^Y:nd=^X:se=\0^^E:so=\0\0\0\0\0\036D:ta=^I:te=^L:\
+ :ti=^L^R:ue=^U:up=^W:us=^T:ve=^L:vs=^L^R:
+
+#### Datamedia (dm)
+#
+# Datamedia was headquartered in Nashua, New Hampshire until it went
+# out of business in 1993, but the ID plates on the terminals referred
+# to the factory in Pennsauken, NJ. The factory was sold to a PCB board
+# manufacturer which threw out all information about the terminals.
+#
+
+cs10|colorscan|Datamedia Color Scan 10:\
+ :ms:\
+ :co#80:li#24:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%02;%02H:cr=^M:\
+ :do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:\
+ :so=\E[7m:ue=\E[m:up=\E[A:us=\E[4m:
+cs10-w|Datamedia Color Scan 10 with 132 columns:\
+ :co#132:\
+ :cm=\E[%i%02;%03H:tc=cs10:
+
+# (dm1520: removed obsolete ":ma=^\ ^_^P^YH:" -- esr)
+dm1520|dm1521|datamedia 1520:\
+ :am:bs:xn:\
+ :co#80:it#8:li#24:\
+ :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\
+ :kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:nd=^\:sf=^J:ta=^I:up=^_:
+# dm2500: this terminal has both :IC: and :im:. Applications using
+# termcap/terminfo directly (rather than through ncurses) might be confused.
+dm2500|datamedia2500|datamedia 2500:\
+ :bs:nc:\
+ :co#80:li#24:\
+ :al=\020\n\030\035\030\035:bl=^G:ce=^W:cl=^^^^\177:\
+ :cm=\014%r%n%.%.:dc=\020\010\030\035:\
+ :dl=\020\032\030\035:dm=^P:do=^J:ed=^X^]:\
+ :ei=\377\377\030\035:ho=^B:ic=\020\034\030\035:im=^P:\
+ :le=^H:nd=^\:pc=\377:se=^X^]:sf=^J:so=^N:up=^Z:
+# dmchat is like DM2500, but DOES need "all that padding" (jcm 1/31/82)
+# also, has a meta-key.
+# From: <goldberger@su-csli.arpa>
+# (dmchat: ":MT:" changed to ":km:" -- esr)
+dmchat|dmchat version of datamedia 2500:\
+ :km:\
+ :al=1*\020\n\030\035\030\035:dl=2\020\032\030\035:tc=dm2500:
+# (dm3025: ":MT:" changed to ":km:" -- esr)
+dm3025|datamedia 3025a:\
+ :bs:km:\
+ :co#80:it#8:li#24:\
+ :al=\EP\n\EQ:bl=^G:cd=\EJ:ce=\EK:cl=\EM:cm=\EY%r%+ %+ :\
+ :cr=^M:dc=\010:dl=\EP\EA\EQ:dm=\EP:do=^J:ed=\EQ:ei=\EQ:\
+ :ho=\EH:im=\EP:ip=:is=\EQ\EU\EV:le=^H:nd=\EC:se=\EO0:sf=^J:\
+ :so=\EO1:ta=^I:up=\EA:
+dm3045|datamedia 3045a:\
+ :am:bs:eo:km@:ul:xn:\
+ :al@:dc=\EB:dl@:dm@:ed@:ei=\EP:is=\EU\EV:k0=\Ey\r:k1=\Ep\r:\
+ :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\
+ :k8=\Ew\r:k9=\Ex\r:kh=\EH:kr=\EC:ku=\EA:pc=\177:se@:so@:\
+ :tc=dm3025:
+# Datamedia DT80 soft switches:
+# 1 0=Jump 1=Smooth
+# Autorepeat 0=off 1=on
+# Screen 0=Dark 1=light
+# Cursor 0=u/l 1=block
+#
+# 2 Margin Bell 0=off 1=on
+# Keyclick 0=off 1=on
+# Ansi/VT52 0=VT52 1=Ansi
+# Xon/Xoff 0=Off 1=On
+#
+# 3 Shift3 0=Hash 1=UK Pound
+# Wrap 0=Off 1=On
+# Newline 0=Off 1=On
+# Interlace 0=Off 1=On
+#
+# 4 Parity 0=Odd 1=Even
+# Parity 0=Off 1=On
+# Bits/Char 0=7 1=8
+# Power 0=60Hz 1=50Hz
+#
+# 5 Line Interface 0=EIA 1=Loop
+# Aux Interface 0=EIA 1=Loop
+# Local Copy 0=Off 1=On
+# Spare
+#
+# 6 Aux Parity 0=Odd 1=Even
+# Aux Parity 0=Off 1=On
+# Aux Bits/Char 0=7 1=8
+# CRT Saver 0=Off 1=On
+# dm80/1 is a vt100 lookalike, but it doesn't seem to need any padding.
+dm80|dmdt80|dt80|datamedia dt80/1:\
+ :cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=%i\E[%d;%dH:do=^J:\
+ :ho=\E[H:me=\E[m:nd=\E[C:pf=\E[4i:po=\E[5i:ps=\E[0i:\
+ :se=\E[m:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:us=\E[4m:\
+ :tc=vt100:
+# except in 132 column mode, where it needs a little padding.
+# This is still less padding than the vt100, and you can always turn on
+# the ^S/^Q handshaking, so you can use vt100 flavors for things like
+# reverse video.
+dm80w|dmdt80w|dt80w|datamedia dt80/1 in 132 char mode:\
+ :co#132:\
+ :cd=20\E[0J:ce=20\E[0K:cl=50\E[H\E[2J:cm=5\E[%i%d;%dH:\
+ :do=^J:up=5\E[A:\
+ :tc=dm80:
+# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
+dt80-sas|Datamedia DT803/DTX for SAS usage:\
+ :am:bw:\
+ :co#80:li#24:\
+ :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
+ :ae=\EG:al=\EL:as=\EF:bl=^G:cd=^K:ce=^]:cl=^L:\
+ :cm=\E=%r%+ %+ :cr=^M:\
+ :..cs=\E=%p1%{32}%+%c%{32}%c\E#1\E=%p2%{32}%+%c%{32}%c\E#2:\
+ :ct=\E'0:dl=\EM:do=\EB:ff=^L:ho=^Y:is=\E)0\E<\EP\E'0\E$2:\
+ :kC=^L:kE=^]:kS=^K:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:me=^X:\
+ :mr=\E$2\004:nd=^\:pf=^O:po=^N:se=^X:sf=\EB:so=\E$2\004:\
+ :sr=\EI:st=\E'1:ta=^I:up=^_:
+
+# Datamedia Excel 62, 64 from Gould/SEL UTX/32 via BRL
+# These aren't end-all Excel termcaps; but do insert/delete char/line
+# and name some of the extra function keys. (Mike Feldman ccvaxa!feldman)
+# The naming convention has been bent somewhat, with the use of E? (where
+# E is for 'Excel') as # a name. This was done to distinguish the entries
+# from the other Datamedias in use here, and yet to associate a model of
+# the Excel terminals with the regular datamedia terminals that share
+# major characteristics.
+excel62|excel64|datamedia Excel 62:\
+ :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
+ :k9=\EOy:kb=^H:kd=^J:kl=^H:\
+ :tc=dt80:
+excel62-w|excel64-w|datamedia Excel 62 in 132 char mode:\
+ :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
+ :k9=\EOy:kb=^H:kd=^J:kl=^H:\
+ :tc=dt80w:
+excel62-rv|excel64-rv|datamedia Excel 62 in reverse video mode:\
+ :dc=\E[P:ei=\E[4l:im=\E[4h:k5=\EOu:k6=\EOv:k7=\EOw:k8=\EOx:\
+ :k9=\EOy:kb=^H:kd=^J:kl=^H:vb=\E[?5l\E[?5h:\
+ :tc=dt80:
+
+#### Falco
+#
+# Falco Data Products
+# 440 Potrero Avenue
+# Sunnyvale, CA 940864-196
+# Vox: (800)-325-2648
+# Fax: (408)-745-7860
+# Net: techsup@charm.sys.falco.com
+#
+# Current Falco models as of 1995 are generally ANSI-compatible and support
+# emulations of DEC VT-series, Wyse, and Televideo types.
+#
+
+# Test version for Falco ts-1. See <arpavax.hickman@ucb> for info
+# This terminal was released around 1983 and was discontinued long ago.
+# The standout and underline highlights are the same.
+falco|ts1|ts-1|falco ts-1:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET\EG0\010:cl=\E*:cm=\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:is=\Eu\E3:\
+ :k0=^A0\r:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:me=\Eg0:nd=^L:\
+ :se=\Eg0:sf=^J:so=\Eg1:ta=^I:ue=\Eg0:up=^K:us=\Eg1:
+falco-p|ts1p|ts-1p|falco ts-1 with paging option:\
+ :am:bs:da:db:mi:ms:ul:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bl=^G:bt=\EI:cd=\EY:ce=\ET\EG0\010\Eg0:cl=\E*:\
+ :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=\E[B:ei=\Er:im=\Eq:\
+ :is=\EZ\E3\E_c:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:me=\Eg0:nd=\E[C:se=\Eg0:sf=^J:so=\Eg4:ta=^I:te=\E_b:\
+ :ti=\E_d:ue=\Eg0:up=\E[A:us=\Eg1:
+# (ts100: I added <rmam>/<smam> based on the init string -- esr)
+ts100|ts100-sp|falco ts100-sp:\
+ :am:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:\
+ :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E~E:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E~W:dl=\E~R:do=^J:eA=\E(B\E)0:ei=:ho=\E[H:\
+ :i1=\E~)\E~ea:ic=\E~Q:im=:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
+ :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+ts100-ctxt|falco ts-100 saving context:\
+ :te=\E~_b:ti=\E~_d\E[2J:tc=ts100:
+
+#### Florida Computer Graphics
+#
+
+# Florida Computer Graphics Beacon System, using terminal emulator program
+# "host.com", as provided by FCG. This description is for an early release
+# of the "host" program. Known bug: :cd: clears the whole screen, so it's
+# commented out.
+
+# From: David Bryant <cbosg!djb> 1/7/83
+beacon|FCG Beacon System:\
+ :am:da:db:\
+ :co#80:li#32:\
+ :al=\EE:bl=\ESTART\r\E37\r\EEND\r:ce=\ET:cl=\EZ:\
+ :cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:do=^J:ei=:ho=\EH:ic=\EQ:\
+ :im=:le=^H:mb=\ESTART\r\E61\0541\r\EEND\r:\
+ :me=\ESTART\r\E78\r\E70\0540\r\EEND\r:\
+ :mr=\ESTART\r\E59\0541\r\EEND\r:nd=\EV:\
+ :se=\ESTART\r\E70\0540\r\EEND\r:sf=^J:\
+ :so=\ESTART\r\E70\0546\r\EEND\r:te=:\
+ :ti=\ESTART\r\E2\0540\r\E12\r\EEND\r:\
+ :ue=\ESTART\r\E60\0540\r\EEND\r:up=\EU:\
+ :us=\ESTART\r\E60\0541\r\EEND\r:
+
+#### Fluke
+#
+
+# The f1720a differences from ANSI: no auto margin, destructive
+# tabs, # of lines, funny highlighting and underlining
+f1720|f1720a|fluke 1720A:\
+ :xt:\
+ :co#80:li#16:sg#1:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :do=\E[B:is=\E[H\E[2J:kd=^]:kl=^_:kr=^^:ku=^\:le=^H:me=\E[m:\
+ :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+
+#### Liberty Electronics (Freedom)
+#
+# Liberty Electronics
+# 48089 Fremont Blvd
+# Fremont CA 94538
+# Vox: (510)-623-6000
+# Fax: (510)-623-7021
+
+# From: <faletti@berkeley.edu>
+# (f100: added empty <acsc> to suppress a tic warning;
+# made this relative to adm+sgr -- note that <invis> isn't
+# known to work for f100 but does on the f110. --esr)
+f100|freedom|freedom100|freedom model 100:\
+ :am:bs:bw:hs:mi:ms:xo:\
+ :co#80:li#24:\
+ :ac=:ae=\E$:al=\EE:as=\E%:bl=^G:bt=\EI:cd=\EY:ce=\ET:\
+ :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:cv=\E[%+ :\
+ :dc=\EW:dl=\ER:do=^J:ds=\Eg\Ef\r:ei=\Er:fs=^M:ho=^^:im=\Eq:\
+ :ip=:is=\Eg\Ef\r\Ed:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
+ :kB=\EI:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:\
+ :sr=\Ej:st=\E1:ta=^I:ts=\Eg\Ef:up=^K:vb=\Eb\Ed:\
+ :tc=adm+sgr:
+f100-rv|freedom-rv|freedom 100 in reverse video:\
+ :is=\Eg\Ef\r\Eb:vb=\Ed\Eb:tc=f100:
+# The f110 and f200 have problems with vi(1). They use the ^V
+# code for the down cursor key. When kcud1 is defined in terminfo
+# as ^V, the Control Character Quoting capability (^V in insert mode)
+# is lost! It cannot be remapped in vi because it is necessary to enter
+# a ^V to to quote the ^V that is being remapped!!!
+#
+# f110/f200 users will have to decide whether
+# to lose the down cursor key or the quoting capability. We will opt
+# initially for leaving the quoting capability out, since use of VI
+# is not generally applicable to most interactive applications
+# (f110: added :ta:, :kh: & <kcbt> from f100 -- esr)
+f110|freedom110|Liberty Freedom 110:\
+ :bw@:es:\
+ :it#8:ws#80:\
+ :ae=\E%%:al=\EE:as=\E$:dl=\ER:do=^V:ds=\Ef\r:ei=\Er\EO:\
+ :im=\EO\Eq:ip@:is@:k0=^AI\r:k;@:kA=\EE:kC=^^:kD=\EW:kE=\ET:\
+ :kI=\EQ:kL=\ER:kS=\EY:mb=\EG2:md=\EG0:mh=\EG@:pf=\Ea:po=\E`:\
+ :so=\EG<:sr=\EJ:ts=\Ef:vb=\Eb\Ed:ve=\E.2:vi=\E.1:vs=\E.2:\
+ :tc=f100:
+f110-14|Liberty Freedom 110 14inch:\
+ :dc@:tc=f110:
+f110-w|Liberty Freedom 110 - 132 cols:\
+ :co#132:tc=f110:
+f110-14w|Liberty Freedom 110 14in/132 cols:\
+ :co#132:\
+ :dc@:tc=f110:
+# (f200: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
+f200|freedom200|Liberty Freedom 200:\
+ :am:bs:es:hs:mi:ms:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :ac=:ae=\E%%:al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:\
+ :ch=\E]%+ :cl=^Z:cm=\E=%+ %+ :cr=^M:cs=\Em0%+ %+ :ct=\E3:\
+ :cv=\E[%+ :dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=\Er:fs=^M:ho=^^:\
+ :im=\Eq:k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kC=^^:\
+ :kD=\EW:kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kl=^H:kr=^L:\
+ :ku=^K:le=^H:mb=\EG2:md=\EG0:mh=\EG@:nd=^L:pf=\Ea:po=\E`:\
+ :sf=^J:so=\EG<:sr=\EJ:st=\E1:ts=\Ef:up=^K:vb=\Eo\En:ve=\E.1:\
+ :vi=\E.0:vs=\E.1:\
+ :tc=adm+sgr:
+f200-w|Liberty Freedom 200 - 132 cols:\
+ :co#132:tc=f200:
+# The f200 has the ability to reprogram the down cursor key. The key is
+# reprogrammed to ^J (linefeed). This value is remembered in non-volatile RAM,
+# so powering the terminal off and on will not cause the change to be lost.
+f200vi|Liberty Freedom 200 for vi:\
+ :kd=^J:vb=\Eb\Ed:tc=f200:
+f200vi-w|Liberty Freedom 200 - 132 cols for vi:\
+ :co#132:tc=f200vi:
+
+#### GraphOn (go)
+#
+# Graphon Corporation
+# 544 Division Street
+# Campbell, CA 95008
+# Vox: (408)-370-4080
+# Fax: (408)-370-5047
+# Net: troy@graphon.com (Troy Morrison)
+#
+#
+# The go140 and go225 have been discontinued. GraphOn now makes X terminals,
+# including one odd hybrid that starts out life on power-up as a character
+# terminal, than can be switched to X graphics mode (driven over the serial
+# line) by an escape sequence. No info on this beast yet.
+# (go140: I added <rmam>/<smam> based on the init string -- esr)
+go140|graphon go-140:\
+ :bs:\
+ :co#80:it#8:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=10\E[J:ce=\E[K:\
+ :cl=10\E[H\E[2J:cm=\E[%i%2;%2H:dc=\E[P:dl=\E[M:ei=\E[4l:\
+ :if=/usr/share/tabset/vt100:im=\E[4h:\
+ :is=\E<\E=\E[?3l\E[?7l\E(B\E[J\E7\E[;r\E8\E[m\E[q:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:\
+ :kh=\E[H:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
+ :me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+go140w|graphon go-140 in 132 column mode:\
+ :am:\
+ :co#132:\
+ :is=\E<\E=\E[?3h\E[?7h\E(B\E[J\E7\E[;r\E8\E[m\E[q:tc=go140:
+# Hacked up vt200 termcap to handle GO-225/VT220
+# From: <edm@nwnexus.WA.COM>
+# (go225: I added <rmam>/<smam> based on the init string -- esr)
+go225|go-225|Graphon 225:\
+ :am:bs:mi:xn:\
+ :co#80:it#8:li#25:vt#3:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=^J:\
+ :ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:r1=\E[\041p\E[?7h\E[2;1;1#w:rc=\E8:\
+ :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[27m:sf=\ED:\
+ :so=\E[7m:sr=\EM:ta=^I:te=\E[\041p\E[?7h\E[2;1;1#w:\
+ :ti=\E[2;0#w\E[1;25r:ue=\E[24m:up=\E[A:us=\E[4m:
+
+#### Harris
+#
+# Bletch. These guys shared the Terminal Brain Damage laurels with Hazeltine.
+# Their terminal group is ancient history now (1995) though the parent
+# company is still in business.
+#
+
+# 8675, 8686, and bee from Cyrus Rahman
+# (8675: changed k10, k11...k16 to k;, F1...F6 -- esr)
+ha8675|harris 8675:\
+ :F1=^W:F2=\ER:F3=\EE:F4=\EI:F5=\Ei:F6=\Eg:\
+ :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU:k1=^F:k2=^P:k3=^N:\
+ :k4=^V:k5=^J:k6=^T:k7=^H:k8=\177:k9=\Ee:k;=\Ed:\
+ :tc=bee:
+# (8686: changed k10, k11...k16 to k;, F1...F6; fixed broken continuation
+# in :is: -- esr)
+ha8686|harris 8686:\
+ :F1=\EW:F2=\002\E{\003:F3=\002\E|\003:F4=\002\E}\003:\
+ :F5=\002\E~\003:F6=\002\E\177\003:\
+ :is=\ES\E#\E*\Eh\Em\E?\E1\E9\E@\EX\EU\E"*Z01\E"8F35021B7C83#\E"8F45021B7D83#\E"8F55021B7E83#\E"8F65021B7F83#\E"8F75021B7383#\E"8F851BD7#\E"8F95021B7083#\E"8FA5021B7183#\E"8FB5021B7283#:\
+ :k1=\002\Ep\003:k2=\002\Eq\003:k3=\002\Er\003:\
+ :k4=\002\Es\003:k5=\E3:k6=\EI:k7=\ER:k8=\EJ:k9=\E(:k;=\Ej:tc=bee:
+
+#### Hazeltine
+#
+# Hazeltine appears to be out of the terminal business as of 1995. These
+# guys were co-owners of the Terminal Brain Damage Hall Of Fame along with
+# Harris. They have a hazeltine.com domain (but no web page there ) and can
+# be reached at:
+#
+# Hazeltine
+# 450 East Pulaski Road
+# Greenlawn, New York 11740
+#
+# As late as 1993, manuals for the terminal product line could still be
+# purchased from:
+#
+# TRW Customer Service Division
+# 15 Law Drive
+# P.O. Box 2076
+# Fairfield, NJ 07007-2078
+#
+# They're now (1998) a subsidiary of General Electric, operating under the
+# marque "GEC-Marconi Hazeltine" and doing military avionics. Web page
+# at <http://www.gec.com/cpd/1ncpd.htm#1.55>.
+#
+
+# Since :nd: is blank, when you want to erase something you
+# are out of luck. You will have to do ^L's a lot to
+# redraw the screen. h1000 is untested. It doesn't work in
+# vi - this terminal is too dumb for even vi. (The code is
+# there but it isn't debugged for this case.)
+hz1000|hazeltine 1000:\
+ :bs:\
+ :co#80:li#12:\
+ :bl=^G:cl=^L:cr=^M:do=^J:ho=^K:le=^H:nd= :sf=^J:
+# From: <cbosg!ucbvax!pur-ee!cincy!chris> Thu Aug 20 09:09:18 1981
+hz1420|hazeltine 1420:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%+ :\
+ :cr=^M:dl=\E^S:do=^J:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:ta=^N:\
+ :up=\E^L:
+# New "safe" cursor movement (11/87) from <cgs@umd5.umd.edu>. Prevents
+# freakout with out-of-range args and tn3270. No hz since it needs to
+# receive tildes.
+hz1500|hazeltine 1500:\
+ :am:bs:hz:\
+ :co#80:li#24:\
+ :al=~\032:bl=^G:cd=~\030:ce=~^O:cl=~^\:\
+ :cm=~\021%r%>^^ %+`%+`:cr=^M:dl=~\023:do=~^K:ho=~^R:kd=^J:\
+ :kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:\
+ :up=~^L:
+# h1510 assumed to be in sane escape mode. Else use h1500.
+# (h1510: early versions of this entry apparently had ":se=\E^_:,
+# :so=\E^Y:, but these caps were commented out in 8.3; also,
+# removed incorrect and overridden ":do=^J:" -- esr)
+hz1510|hazeltine 1510:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\
+ :cr=^M:dl=\E^S:do=\E^K:le=^H:nd=^P:sf=^J:up=\E^L:
+# Hazeltine 1520
+# The following switch settings are assumed for normal operation:
+# FULL CR U/L_CASE ESCAPE
+# FORMAT_OFF EOM_A_OFF EOM_B_OFF WRAPAROUND_ON
+# Other switches may be set for operator convenience or communication
+# requirements.
+hz1520|Hazeltine 1520:\
+ :am:bs:bw:ms:\
+ :co#80:li#24:\
+ :al=\E^Z:bl=^G:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%.%.:\
+ :cr=^M:dl=\E^S:do=^J:ho=\E^R:kA=\E^Z:kC=\E^\:kE=\E^O:\
+ :kL=\E^S:kS=\E^X:kb=^H:kd=\E^K:kh=\E^R:kl=^H:kr=^P:ku=\E^L:\
+ :le=^H:md=\E^_:me=\E^Y:nd=^P:r1=\E$\E\005\E?\E\031:\
+ :se=\E^Y:sf=^J:so=\E^_:up=\E^L:
+# This version works with the escape switch off
+# (h1520: removed incorrect and overridden ":do=^J:" -- esr)
+hz1520-noesc|hazeltine 1520:\
+ :am:hz:\
+ :co#80:li#24:\
+ :al=~^Z:bl=^G:cd=~^X:ce=~^O:cl=~^\:cm=~\021%r%.%.:cr=^M:\
+ :dl=~^S:do=~^K:ho=~^R:le=^H:nd=^P:se=~^Y:sf=^J:so=~^_:up=~^L:
+# Note: the h1552 appears to be the first Hazeltine terminal which
+# is not braindamaged. It has tildes and backprimes and everything!
+# Be sure the auto lf/cr switch is set to cr.
+hz1552|hazeltine 1552:\
+ :bs:\
+ :al=\EE:dl=\EO:do=^J:k1=\EP:k2=\EQ:k3=\ER:l1=blue:l2=red:\
+ :l3=green:\
+ :tc=vt52:
+hz1552-rv|hazeltine 1552 reverse video:\
+ :do=^J:se=\ET:so=\ES:tc=hz1552:
+# Note: h2000 won't work well because of a clash between upper case and ~'s.
+hz2000|hazeltine 2000:\
+ :am:bs:nc:\
+ :co#74:li#27:\
+ :al=~\032:bl=^G:cl=~\034:cm=~\021%r%.%.:dl=~\023:do=^J:\
+ :ho=~^R:le=^H:pc=\177:sf=^J:
+# Date: Fri Jul 23 10:27:53 1982. Some unknown person wrote:
+# I tested this termcap entry for the Hazeltine Esprit with vi. It seems
+# to work ok. There is one problem though if one types a lot of garbage
+# characters very fast vi seems not able to keep up and hangs while trying
+# to insert. That's in insert mode while trying to insert in the middle of
+# a line. It might be because the Esprit doesn't have insert char and delete
+# char as a built in function. Vi has to delete to end of line and then
+# redraw the rest of the line.
+esprit|Hazeltine Esprit I:\
+ :am:bs:bw:\
+ :co#80:li#24:\
+ :al=\E^Z:bl=^G:bt=\E^T:cd=\E^W:ce=\E^O:cl=\E^\:\
+ :cm=\E\021%r%.%.:cr=^M:dl=\E^S:do=\E^K:ho=\E^R:is=\E?:\
+ :k0=^B0^J:k1=^B1^J:k2=^B2^J:k3=^B3^J:k4=^B4^J:k5=^B5^J:\
+ :k6=^B6^J:k7=^B7^J:k8=^B8^J:k9=^B9^J:kb=^H:kd=\E^K:ke=\E>:\
+ :kh=\E^R:kl=^H:kr=^P:ks=\E<:ku=\E^L:l0=0:l1=1:l2=2:l3=3:l4=4:\
+ :l5=5:l6=6:l7=7:l8=8:l9=9:le=^H:nd=^P:se=\E^Y:sf=^J:so=\E^_:\
+ :up=\E^L:
+esprit-am|hazeltine esprit auto-margin:\
+ :am:tc=esprit:
+# Hazeltine Modular-1 from Cliff Shackelton <ittvax!ittral!shackelt> via BRL
+# Vi it seems always wants to send a control J for "do" and it turned out
+# that the terminal would work somewhat if the auto LF/CR was turned off.
+# (hmod1: removed :dn=~^K: -- esr)
+hmod1|Hazeltine Modular 1:\
+ :am:bs:hz:\
+ :co#80:li#24:\
+ :al=~^Z:bl=^G:bt=~^T:cl=~^\:cm=~\021%r%.%.:cr=^M:dl=~^S:\
+ :do=~^K:ho=~^R:kd=~^K:kh=~^R:kl=^H:kr=^P:ku=~^L:le=^H:me=~^Y:\
+ :nd=^P:rc=~^Q:sc=~^E:se=~^Y:sf=^J:so=~^_:up=~^L:
+#
+# Hazeltine Executive 80 Model 30 (1554?)
+# from Will Martin <control@ALMSA-1.ARPA> via BRL
+# Like VT100, except for different "am" behavior.
+hazel|exec80|h80|he80|Hazeltine Executive 80:\
+ :am:bs:pt:\
+ :co#80:it#8:li#24:vt#3:\
+ :bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
+ :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
+ :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
+ :nd=2\E[C:nl=^J:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:\
+ :so=2\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
+
+#### Hewlett-Packard (hp)
+#
+# Hewlett-Packard
+# 8000 Foothills Blvd
+# Roseville, CA 95747
+# Vox: 1-(916)-785-4363 (Technical response line for VDTs)
+# 1-(800)-633-3600 (General customer support)
+#
+#
+# As of March 1998, HP no longer has any terminals in production.
+# The 700 series (22, 32, 41, 44, 92, 94, 96, 98) is still being
+# supported (they still have parts). So are the 2392a and 2394a.
+# See the WORKSTATION CONSOLES section for the 700s.
+#
+
+# Generic HP terminal - this should (hopefully) work on any HP terminal.
+hpgeneric|hp|hewlett-packard generic terminal:\
+ :am:bs:da:db:mi:pt:xs:\
+ :co#80:li#24:lm#0:vt#6:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\
+ :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\
+ :do=^J:ei=\ER:im=\EQ:kB=\Ei:kb=^H:le=^H:me=\E&d@:nd=\EC:\
+ :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
+ :us=\E&dD:
+
+hp110|hewlett-packard model 110 portable:\
+ :li#16:tc=hpgeneric:
+
+hp+pfk+cr|hp function keys with CR:\
+ :k1=\Ep\r:k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:\
+ :k7=\Ev\r:k8=\Ew\r:
+
+hp+pfk-cr|hp function keys w/o CR:\
+ :k1=\Ep:k2=\Eq:k3=\Er:k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:
+
+# The hp2621s use the same keys for the arrows and function keys,
+# but not separate escape sequences. These definitions allow the
+# user to use those keys as arrow keys rather than as function
+# keys.
+hp+pfk+arrows|hp alternate arrow definitions:\
+ :k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:kF=\Er\r:kH=\Eq\r:kR=\Es\r:\
+ :kd=\Ew\r:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:ku=\Et\r:
+
+hp+arrows|hp arrow definitions:\
+ :kF=\ES:kH=\EF:kR=\ET:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:ku=\EA:
+
+# Generic stuff from the HP 262x series
+#
+hp262x|HP 262x terminals:\
+ :xs:\
+ :cd=\EJ:dc=\EP:ip=:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:\
+ :kM=\ER:kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kd=\EB:ke=\E&s0A:kh=\Eh:\
+ :kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:mb=\E&dA:me=\E&d@:mk=\E&dS:\
+ :mr=\E&dB:\
+ :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%c:\
+ :se=\E&d@:sf=\ES:so=\E&dB:ta=\011:ue=\E&d@:us=\E&dD:
+
+# Note: no :ho: on HPs since that homes to top of memory, not screen.
+# Due to severe 2621 braindamage, the only way to get the arrow keys to
+# transmit anything at all is to turn on the function key labels
+# with :ks:, and even then the user has to hold down shift!
+# The default 2621 turns off the labels except when it has to to
+# enable the function keys. If your installation prefers labels
+# on all the time, or off all the time (at the "expense" of the
+# function keys), use 2621-nl or 2621-wl.
+#
+# Note: there are newer ROMs for 2621's that allow you to set
+# strap A so the regular arrow keys xmit \EA, etc, as with the
+# 2645. However, even with this strap set, the terminal stops
+# xmitting if you reset it, until you unset and reset the strap!
+# Since there is no way to set/unset the strap with an escape
+# sequence, we don't use it in the default.
+# If you like, you can use 2621-ba (brain-damaged arrow keys).
+hp2621-ba|2621 w/new rom and strap A set:\
+ :ke@:ks@:tc=hp+arrows:\
+ :tc=hp2621:
+
+# hp2621 with function labels. Most of the time they are off,
+# but inside vi, the function key labels appear. You have to
+# hold down shift to get them to xmit.
+hp2621|hp2621a|hp2621A|2621|2621a|2621A|hp2621-wl|2621-wl|hp 2621 w/labels:\
+ :is=\E&jA\r:ke=\E&jA:\
+ :tc=hp2621-fl:
+hp2621-fl|hp 2621:\
+ :xo:xs@:\
+ :pb#19200:\
+ :bt=\Ei:cm=\E&a%r%dc%dY:dc=\EP:ip=:is=\E&j@\r:ke=\E&j@:\
+ :ks=\E&jB:me=\E&d@:se=\E&d@:so=\E&dD:ta=\011:ue=\E&d@:\
+ :us=\E&dD:\
+ :tc=hp+pfk+cr:tc=hpgeneric:
+
+# To use hp2621p printer, setenv TERM=2621p, PRINTER=2612p
+hp2621p|hp 2621 with printer:\
+ :pf=\E&p13C:po=\E&p11C:tc=hp2621:
+
+hp2621p-a|hp2621p with fn as arrows:\
+ :tc=hp+pfk+arrows:tc=hp2621p:
+
+# hp2621 with k45 keyboard
+hp2621-k45|hp2621k45|k45|hp 2621 with 45 keyboard:\
+ :kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:\
+ :ku=\EA:\
+ :tc=hp2621:
+
+# 2621 using all 48 lines of memory, only 24 visible at any time.
+hp2621-48|48 line 2621:\
+ :li#48:\
+ :cm=\E&a%r%dc%dR:cv=\E&a%dR:ho=\EH:tc=hp2621:
+
+# 2621 with no labels ever. Also prevents vi delays on escape.
+hp2621-nl|hp 2621 with no labels:\
+ :kd@:ke@:kh@:kl@:kr@:ks@:ku@:tc=hp2621-fl:
+
+# Needed for UCB ARPAVAX console, since lsi-11 expands tabs
+# (wrong).
+#
+hp2621-nt|hp 2621 w/no tabs:\
+ :ta@:tc=hp2621:
+
+# Hp 2624 B with 4 or 10 pages of memory.
+#
+# Some assumptions are made with this entry. These settings are
+# NOT set up by the initialization strings.
+#
+# Port Configuration
+# RecvPace=Xon/Xoff
+# XmitPace=Xon/Xoff
+# StripNulDel=Yes
+#
+# Terminal Configuration
+# InhHndShk=Yes
+# InhDC2=Yes
+# XmitFnctn(A)=No
+# InhEolWrp=No
+#
+# Note: the 2624 DOES have a true :ho:, believe it or not!
+#
+# The 2624 has an "error line" to which messages can be sent.
+# This is CLOSE to what is expected for a "status line". However,
+# after a message is sent to the "error line", the next carriage
+# return is EATEN and the "error line" is turned back off again!
+# So I guess we can't define :hs:, :es:, :ws:, :ds:, :fs:, :ts:.
+#
+# This entry supports emacs (and any other program that uses raw
+# mode) at 4800 baud and less. I couldn't get the padding right
+# for 9600.
+#
+# (hp2624: replaced NUL sequences in flash with mandatory pauses -- esr)
+hp2624|hp2624a|hp2624b|hp2624b-4p|Hewlett Packard 2624 B:\
+ :da:db:\
+ :lm#96:\
+ :vb=\E&w13F\E&w12F\E&w13F\E&w12F:tc=hp+labels:tc=scrhp:
+
+# This hp2626 entry does not use any of the fancy windowing stuff
+# of the 2626.
+#
+# Indeed, terminfo does not yet handle such stuff. Since changing
+# any window clears memory, it is probably not possible to use
+# this for screen opt.
+#
+# ed is incredibly slow most of the time - I am guessing at the
+# exact padding. Since the terminal uses xoff/xon this is intended
+# only for cost computation, so that the terminal will prefer el
+# or even dl1 which is probably faster!
+#
+# \ED\EJ\EC hack for ed from Ed Bradford - apparently ed is only
+# extra slow on the last line of the window.
+#
+# The padding probably should be changed.
+#
+hp2626|hp2626a|hp2626p|hp 2626:\
+ :da:db:\
+ :lm#0:pb#19200:\
+ :SF=\E&r%dD:SR=\E&r%dU:cd=\ED\EJ\EC:ip=:is=\E&j@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp:
+
+# This entry is for sysline. It allocates a 23 line window with
+# a 115 line workspace for regular use, and a 1 line window for
+# the status line.
+#
+# This assumes port 2 is being used.
+# Turn off horizontal line, Create ws #1 with 115 lines,
+# Create ws #2 with 1 line, Create window #1 lines 1-23,
+# Create window #2 lines 24-24, Attach cursor to workspace #1.
+# Note that this clears the tabs so it must be done by tset before
+# it sets the tabs.
+#
+hp2626-s|hp 2626 using only 23 lines:\
+ :es:hs:\
+ :li#23:\
+ :fs=\E&d@\E&w7f2p1I\E&w4f1I:\
+ :i1=\E&q3t0{0H \E&w0f115n1I \E&w0f1n2I \E&w2f1i0d0u22l0S \E&w2f2i0d23u23l0S \E&w7f2p1I \r:\
+ :ts=\E&w7f2p2I\E&w4f2I\r\EK\E&a%p1%dC:\
+ :tc=hp2626:
+# Force terminal back to 24 lines after being 23.
+hp2626-ns|hp 2626 using all 24 lines:\
+ :i1=\E&q3t0{0H \E&w0f118n1I \E&w0f1n2I \E&w2f1i0d0u23l0S \E&w3f2I \E&w7f2p1I \r:tc=hp2626:
+# Various entries useful for small windows on 2626.
+hp2626-12|hewlett-packard 2626 12 lines:\
+ :li#12:tc=hp2626:
+hp2626-12x40|hewlett-packard 2626 12 lines 40 columns:\
+ :co#40:li#12:tc=hp2626:
+hp2626-x40|hewlett-packard 2626 40 columns:\
+ :co#40:tc=hp2626:
+hp2626-12-s|hewlett-packard 2626 11 lines plus status:\
+ :li#11:tc=hp2626-s:
+
+#
+# hp2627 color tubes from University of Wisconsin
+#
+hp2627a-rev|hp 2627 with reverse video colors:\
+ :cr=^M:do=^J:\
+ :is=\E&v0m1a0b0c1x1y1z1i0a0b1c1x1y1z0i0S\E&j@\r\E3\r:\
+ :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&v0S\E&d@:\
+ :us=\E&dD\E&v1S:\
+ :tc=hp2621-nl:
+hp2627a|hp 2627 color terminal with no labels:\
+ :cr=^M:do=^J:\
+ :is=\E&v0m1a1b0c1i0a1b1c2i1a0b0c0i0S\E&j@\r\E3\r:\
+ :kb=^H:kd=^J:kl=^H:nw=^M^J:se=\E&v0S:sf=^J:so=\E&v2S:ta=^I:\
+ :ue=\E&v0S\E&d@:us=\E&dD\E&v1S:\
+ :tc=hp2621-nl:
+hp2627c|hp 2627 color (cyan) terminal with no labels:\
+ :cr=^M:do=^J:\
+ :is=\E&v0m1a0b0c2i1a1b0c1i0a1b1c0i0S\E&j@\r\E3\r:\
+ :kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:\
+ :tc=hp2627a:
+
+# hp2640a doesn't have the Y cursor addressing feature, and C is
+# memory relative instead of screen relative, as we need.
+#
+hp2640a|hp 2640a:\
+ :cm@:ke@:ks@:tc=hp2645:
+
+hp2640b|hp2644a|hp 264x series:\
+ :ke@:ks@:tc=hp2645:
+
+# (hp2641a: removed unknown :gu: -- esr)
+hp2641a|hp2645a|hp2647a|HP 264?A series BRL entry:\
+ :am:da:db:mi:xs:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%2C:cl=\EH\EJ:\
+ :cm=\E&a%r%2c%2Y:cr=^M:cv=\E&a%2Y:dc=\EP:dl=\EM:do=^J:\
+ :ei=\ER:if=/usr/share/tabset/std:im=\EQ:is=500\EE:kb=^H:\
+ :kd=^J:kl=^H:le=^H:nd=\EC:nw=^M^J:se=\E&d@:sf=^J:so=\E&dB:\
+ :ta=^I:up=\EA:
+
+# This terminal should be used at 4800 baud or less. It needs padding for
+# plain characters at 9600, I guessed at an appropriate cr delay. It really
+# wants ^E/^F handshaking, but that doesn't work well even if you write
+# software to support it.
+hp2645|hp45|HP 2645 series:\
+ :pb#9600:\
+ :cr=\r:kA=\EL:kD=\EP:kE=\EK:kF=\ES:kI=\EQ:kL=\EM:kM=\ER:\
+ :kN=\EU:kP=\EV:kR=\ET:kS=\EJ:kT=\E1:kd=\EB:ke=\E&s0A:kh=\Eh:\
+ :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:mb=\E&dA:me=\E&d@:\
+ :mh=\E&dH:mr=\E&dB:\
+ :..sa=\E&d%{64}%?%p1%t%{66}%|%;%?%p2%t%{68}%|%;%?%p3%t%{66}%|%;%?%p4%t%{65}%|%;%?%p5%t%{72}%|%;%?%p6%t%{66}%|%;%c:\
+ :us=\E&dD:\
+ :tc=hpgeneric:
+# You should use this terminal at 4800 baud or less.
+hp2648|hp2648a|HP 2648a graphics terminal:\
+ :cl=\EH\EJ:cm=\E&a%r%dc%dY:dc=\EP:ip=:tc=hp2645:
+
+# The HP 150 terminal is a fairly vanilla HP terminal, with the
+# clreol standout problem. It also has graphics capabilities and
+# a touch screen, which we don't describe here.
+hp150|hewlett packard Model 150:\
+ :bs:tc=hp2622:
+
+# HP 2382a terminals, "the little ones." They don't have any
+# alternate character set support and sending out ^N/^O will
+# leave the screen blank.
+hp2382a|hp2382|hewlett packard 2382a:\
+ :da:db:\
+ :lh#1:lm#48:\
+ :ac@:ae@:as@:me=\E&d@:\
+ :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:\
+ :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c:\
+ :tc=hp+labels:tc=scrhp:
+
+hp2621-a|hp2621a-a|hp2621 with fn as arrows:\
+ :tc=hp+pfk+arrows:tc=hp2621-fl:
+
+# newer hewlett packard terminals
+
+newhpkeyboard|generic entry for HP extended keyboard:\
+ :kA=\EL:kB=\Ei:kC=\EJ:kD=\EP:kE=\EK:kF=\ET:kH=\EF:kI=\EQ:\
+ :kL=\EM:kM=\ER:kN=\EU:kP=\EV:kR=\ES:kS=\EJ:kb=^H:kd=\EB:\
+ :ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\
+ :tc=hp+pfk-cr:
+
+newhp|generic entry for new hewlett packard terminals:\
+ :am:bw:mi:xo:xs:\
+ :co#80:li#24:pb#4800:\
+ :ac=2[3@4>5I9(\072'JSKWLQMAO#P$Q;R\041S"T1U2V4W3X\072Y+Z*dHjGkTlRmFn/q\054t5u6v8w7x.:\
+ :ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:cr=^M:ct=\E3:\
+ :dc=\EP:dl=\EM:do=^J:ei=\ER:i1=\E&jB:im=\EQ:ip=:le=^H:\
+ :mb=\E&dA:md=\E&dF:me=\E&d@\017:mh=\E&dH:mk=\E&dS:\
+ :mr=\E&dB:nd=\EC:nw=^M^J:\
+ :..pk=\E&f0a%p1%dk0d%p2%l%dL%p2%s:\
+ :..pl=\E&f1a%p1%dk0d%p2%l%dL%p2%s:\
+ :..px=\E&f2a%p1%dk0d%p2%l%dL%p2%s:r1=\Eg:\
+ :..sa=\E&d%{0}%Pa%?%p4%t%{1}%ga%+%Pa%;%?%p1%p3%|%p6%|%t%{2}%ga%+%Pa%;%?%p2%p6%|%t%{4}%ga%+%Pa%;%?%p1%p5%|%t%{8}%ga%+%Pa%;%?%p7%t%?%ga%ts%ga%{64}%+%e%{83}%;%e%?%ga%t%ga%{64}%+%e%{64}%;%;%c%?%p9%t\016%e\017%;:\
+ :se=\E&d@:sf=^J:so=\E&dJ:sr=\ET:st=\E1:ta=\011:ue=\E&d@:\
+ :up=\EA:us=\E&dD:\
+ :tc=newhpkeyboard:
+
+memhp|memory relative addressing for new HP ttys:\
+ :vt#6:\
+ :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\
+ :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\EH\EJ:\
+ :cm=\E&a%dr%dC:cv=\E&a%dR:ho=\EH:ll=\E&a23R\r:tc=newhp:
+
+scrhp|screen relative addressing for new HP ttys:\
+ :CM=\E&a%p1%dr%p2%dC:DO=\E&a+%dR:LE=\E&a-%dC:\
+ :RI=\E&a+%dC:UP=\E&a-%dR:ch=\E&a%dC:cl=\E&a0c0Y\EJ:\
+ :cm=\E&a%dy%dC:cv=\E&a%dY:ho=\E&a0y0C:ll=\E&a0y0C\EA:\
+ :tc=newhp:
+
+# (hp+labels: added label values from a BRL termcap -- esr)
+hp+labels|"standard" label info for new HP ttys:\
+ :Nl#8:lh#2:lw#8:\
+ :LF=\E&j@:LO=\E&jB:l0=f1:l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:\
+ :l7=f8:\
+ :..pn=\E&f2a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d0L%?%ga%!%t %;%p2%s:
+
+hp+printer|"standard" printer info for HP ttys:\
+ :ff=\E&p4u0C:pf=\E&p13C:po=\E&p11C:ps=\EH\E&p4dF:
+
+
+# The new hp2621b is kind of a cross between the old 2621 and the
+# new 262x series of machines. It has dip-switched options.
+# The firmware has a bug in it such that if you give it a null
+# length label, the following character is eaten!
+hp2621b|hp 2621b with old style keyboard:\
+ :Nl#8:lh#1:lm#48:lw#8:\
+ :LO=\E&jB:kF=\ET:kH=\EF:kR=\ES:kd=\EB:kh=\Eh:kl=\ED:kr=\EC:\
+ :ku=\EA:\
+ :..pn=\E&f0a%p1%dk%p2%l%Pa%?%ga%t%ga%d%e1%;d3L%?%ga%!%t%{32}%c%;%p2%s\E%{111}%p1%+%c\r:tc=hp2621:
+
+hp2621b-p|hp 2621b with printer:\
+ :tc=hp+printer:tc=hp2621b:
+
+# hp2621b - new 2621b with new extended keyboard
+# these are closer to the new 26xx series than the other 2621b
+hp2621b-kx|hp 2621b with extended keyboard:\
+ :tc=newhpkeyboard:tc=hp2621b:
+
+hp2621b-kx-p|hp 2621b with new keyboard & printer:\
+ :tc=hp+printer:tc=hp2621b-kx:
+
+# Some assumptions are made in the following entries.
+# These settings are NOT set up by the initialization strings.
+#
+# Port Configuration
+# RecvPace=Xon/Xoff XmitPace=Xon/Xoff StripNulDel=Yes
+#
+# Terminal Configuration
+# InhHndShk(G)=Yes InhDC2(H)=Yes
+# XmitFnctn(A)=No InhEolWrp=No
+#
+#
+# Hp 2622a & hp2623a display and graphics terminals
+#
+hp2622|hp2622a|hp 2622:\
+ :da:db:\
+ :lm#0:pb#19200:\
+ :is=\E&dj@\r:tc=hp+pfk+cr:tc=hp+labels:tc=scrhp:
+
+# The 2623 is a 2622 with extra graphics hardware.
+hp2623|hp2623a|hp 2623:\
+ :tc=hp2622:
+
+hp2624b-p|hp2624b-4p-p|hewlett packard 2624 B with printer:\
+ :tc=hp+printer:tc=hp2624:
+
+# The hewlett packard B can have an optional extra 6 pages of memory.
+hp2624-10p|hp2624a-10p|hp2624b-10p|hewlett packard 2624 B w/ 10 pages of memory:\
+ :lm#240:tc=hp2624:
+
+hp2624b-10p-p|hewlett packard 2624 B w/ extra memory & printer:\
+ :lm#240:tc=hp2624b-p:
+
+# Color manipulations for HP terminals
+hp+color|hp with colors:\
+ :cc:\
+ :Co#16:NC#17:pa#7:\
+ :..Ip=\E&v%?%p2%{1000}%=%t1%e.%p2%d%;a%?%p3%{1000}%=%t1%e.%p3%d%;b%?%p4%{1000}%=%t1%e.%p4%d%;c%?%p5%{1000}%=%t1%e.%p5%d%;x%?%p6%{1000}%=%t1%e.%p6%d%;y%?%p7%{1000}%=%t1%e.%p7%d%;z%p1%dI:\
+ :oc=\E&v0m1a1b1c0I\E&v1a1I\E&v1b2I\E&v1a1b3I\E&v1c4I\E&v1a1c5I\E&v1b1c6I\E&v1x1y7I:\
+ :op=\E&v0S:sp=\E&v%dS:
+
+# :is: sets the screen to be 80 columns wide
+hp2397a|hp2397|hewlett packard 2397A color terminal:\
+ :is=\E&w6f80X:\
+ :tc=memhp:tc=hp+labels:tc=hp+color:
+
+#
+# (hp2392: copied :ei: here from hpex -- esr)
+hp2392|239x series:\
+ :co#80:\
+ :bt=\Ei:cm=\E&a%dy%dC:cv=\E&a%dY:ei=\ER:im=\EQ:k1=\Ep\r:\
+ :k2=\Eq\r:k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:\
+ :k8=\Ew\r:kF=\EU:kN=\Eu:kP=\Ev:kR=\EV:kh=\Eh:ue=\E&d@:\
+ :us=\E&dD:\
+ :tc=hpsub:
+
+hpsub|hp terminals -- capability subset:\
+ :am:da:db:mi:xo:xs:\
+ :li#24:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:cr=^M:\
+ :dc=\EP:dl=\EM:do=\EB:if=/usr/share/tabset/stdcrt:\
+ :is=\E&s1A\E<\E&k0\:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:\
+ :kr=\EC:ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\
+ :sf=^J:so=\E&dB:ta=^I:up=\EA:
+
+# hpex:
+# May be used for most 24 x 80 hp terminals,
+# but has no padding added, so may allow runover in some terminals at high
+# baud rates. Will not work for hp2640a or hp2640b terminals, hp98x6 and
+# hp98x5 terminal emulators or hp98x6 consoles.
+# Adds xy-cursor addressing, vertical cursor addressing, home,
+# last line, and underline capabilities.
+#
+# (hpex: removed memory-lock capabilities ":ml=\El:mu=\Em:",
+# moved :ei: here from hpsub -- esr)
+hpex|hp extended capabilites:\
+ :cm=\E&a%dy%dC:cr=^M:cv=\E&a%dY:do=^J:ei=\ER:im=\EQ:kb=^H:\
+ :kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:ue=\E&d@:us=\E&dD:\
+ :tc=hpsub:
+
+# From: Ville Sulko <Ville.Sulko@bip.atk.tpo.fi>, 05 Aug 1996
+hp2|hpex2|hewlett-packard extended capabilities newer version:\
+ :am:da:db:mi:xs:\
+ :Nl#8:co#80:lh#2:li#24:lm#0:lw#8:sg#0:\
+ :LF=\E&j@:LO=\E&jB:al=\EL:bl=^G:cd=\EJ:ce=\EK:ch=\E&a%dC:\
+ :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
+ :dc=\EP:dl=\EM:do=\EB:ei=\ER:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
+ :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
+ :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
+ :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
+ :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:me=\E&d@:\
+ :ml=\El:mu=\Em:nd=\EC:..pk=\E&f%p1%dk%p2%l%dL%p2%s:\
+ :..pl=\E&f1a%p1%dk%p2%l%dL%p2%s:\
+ :..pn=\E&f%p1%dk%p2%l%dd0L%p2%s:\
+ :..px=\E&f2a%p1%dk%p2%l%dL%p2%s:\
+ :..sa=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;:\
+ :se=\E&d@:sf=^J:so=\E&dB:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
+ :us=\E&dD:
+
+# HP 236 console
+# From: <ddavis@ic.berkeley.edu>
+hp236|hp236 internal terminal emulator:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EG:ce=\EK:cl=\EF:cm=\EE%+ %+ :dc=\EJ:dl=\EH:ei=:ic=\EI:\
+ :im=:le=^H:me=\ECI:se=\ECI:so=\EBI:up=^K:ve=\EDE:vs=\EDB:
+
+# This works on a hp300 console running Utah 4.3 BSD
+# From: Craig Leres <leres@okeeffe.berkeley.edu>
+hp300h|HP Catseye console:\
+ :am:bs:da:db:mi:xs:\
+ :co#128:li#51:lm#0:sg#0:\
+ :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\
+ :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:cv=\E&a%dY:\
+ :dc=\EP:dl=\EM:do=\EB:ei=\ER:if=/usr/share/tabset/stdcrt:\
+ :im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\
+ :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:se=\E&d@:sf=^J:\
+ :so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
+# From: Greg Couch <gregc@ernie.berkeley.edu>
+hp9837|hp98720|hp98721|HP 9000/300 workstations:\
+ :am:bs:da:db:mi:xs:\
+ :co#128:it#8:li#46:lm#0:\
+ :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:\
+ :cl=\E&a0y0C\EJ:cm=\E&a%dy%dC:ct=\E3:cv=\E&a%dY:dc=\EP:\
+ :dl=\EM:do=\EB:ei=\ER:im=\EQ:is=\E&v0m1b0i&j@:kA=\EL:\
+ :kD=\EP:kE=\EK:kI=\EQ:kL=\EM:kN=\EU:kP=\EV:kS=\EJ:kb=^H:\
+ :kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:ks=\E&s1A:ku=\EA:\
+ :le=^H:me=\E&d@:nd=\EC:se=\E&v0S:sf=^J:so=\E&v5S:st=\E1:\
+ :ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
+# HP 9845 desktop computer from BRL
+# (hp9845: removed unknown capability :gu: -- esr)
+hp9845|HP 9845:\
+ :am:bs:da:db:eo:mi:xs:\
+ :co#80:li#21:\
+ :al=\EL:bc=\ED:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E&a%r%2c%2Y:\
+ :dc=\EP:dl=\EM:ei=\ER:if=/usr/share/tabset/std:im=\EQ:\
+ :nd=\EC:se=\E&d@:so=\E&dB:up=\EA:
+# From: Charles A. Finnell of MITRE <finnell@mitre.org>, developed 07SEP90
+# (hp98550: replaced /usr/share/tabset/9837 with std because :it#8:,:st=\E1:;
+# added empty <acsc> to avoid warnings re :as:/:ae: --esr)
+hp98550|hp98550a|HP 9000 Series 300 color console:\
+ :am:bs:da:db:mi:xs:\
+ :co#128:it#8:li#49:lm#0:\
+ :ac=:ae=^O:al=\EL:as=^N:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:\
+ :ch=\E&a%dC:cl=\EH\EJ:cm=\E&a%dy%dC:cr=^M:ct=\E3:\
+ :cv=\E&a%dY:dc=\EP:dl=\EM:do=^J:ei=\ER:\
+ :if=/usr/share/tabset/std:im=\EQ:k1=\Ep:k2=\Eq:k3=\Er:\
+ :k4=\Es:k5=\Et:k6=\Eu:k7=\Ev:k8=\Ew:kA=\EL:kC=\EJ:kD=\EP:\
+ :kE=\EK:kF=\ES:kH=\EF:kI=\EQ:kL=\EM:kM=\ER:kN=\EU:kP=\EV:\
+ :kR=\ET:kS=\EJ:kT=\E1:ka=\E3:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:\
+ :kl=\ED:kr=\EC:ks=\E&s1A:kt=\E2:ku=\EA:le=^H:mb=\E&dA:\
+ :md=\E&dJ:me=\E&d@:mh=\E&dH:mk=\E&ds:mr=\E&dJ:nd=\EC:\
+ :se=\E&d@:sf=^J:so=\E&dJ:st=\E1:ta=^I:ue=\E&d@:up=\EA:\
+ :us=\E&dD:ve=\E*dQ:vi=\E*dR:
+
+bobcat|sbobcat|HP 9000 model 300 console:\
+ :am:da:db:mi:xs:\
+ :co#128:it#8:li#47:sg#0:\
+ :al=10*\EL:bt=\Ei:cd=\EJ:ce=\EK:ch=6\E&a%dC:cl=\EH\EJ:\
+ :cm=6\E&a%dy%dC:cr=^M:cv=6\E&a%dY:dc=\EP:dl=10*\EM:do=\EB:\
+ :ei=\ER:im=\EQ:kb=^H:kd=\EB:ke=\E&s0A:kh=\Eh:kl=\ED:kr=\EC:\
+ :ks=\E&s1A:ku=\EA:le=^H:me=\E&d@:nd=\EC:nw=^M^J:se=\E&d@:\
+ :sf=^J:so=\E&dB:ta=^I:ue=\E&d@:up=\EA:us=\E&dD:
+gator-t|HP 9000 model 237 emulating extra-tall AAA:\
+ :li#94:tc=gator:
+gator|HP 9000 model 237 emulating AAA:\
+ :bw:km:mi:ul:\
+ :co#128:it#8:li#47:\
+ :AL=1*\E[%dL:DC=4\E[%dP:DL=1*\E[%dM:IC=4\E[%d@:al=\E[L:\
+ :bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=:ho=\E[H:\
+ :ic=\E[@:im=:kb=^H:kd=^J:kl=^H:le=^H:me=\E[m:mr=\E[7m:\
+ :nd=\E[C:nw=^M^J:rp=1*%.\E[%db:se=\E[m:so=\E[7m:ta=^I:\
+ :ue=\E[m:up=\EM:us=\E[4m:
+gator-52|HP 9000 model 237 emulating VT52:\
+ :co#128:li#47:tc=vt52:
+gator-52t|HP 9000 model 237 emulating extra-tall VT52:\
+ :li#94:tc=gator-52:
+
+#### Honeywell-Bull
+#
+# From: Michael Haardt <michael@gandalf.moria> 11 Jan 93
+#
+
+# Honeywell Bull terminal. Its cursor and function keys send single
+# control characters and it has standout/underline glitch. Most programs
+# do not like these features/bugs. Visual bell is realized by flashing the
+# "keyboard locked" LED.
+dku7003-dumb|Honeywell Bull DKU 7003 dumb mode:\
+ :co#80:li#25:\
+ :cd=^_:ce=\E[K:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:do=^K:ho=^]:\
+ :kb=^H:kd=^K:kh=^]:kl=^Y:kr=^X:ku=^Z:le=^Y:nd=^X:nw=^M^J:\
+ :sf=^J:ta=^I:up=^Z:vb=\E[2h\E[2l:
+dku7003|Honeywell Bull DKU 7003 all features described:\
+ :ms:\
+ :sg#1:\
+ :mb=\E[5m:md=\E[7m:me=\E[m:mh=\E[2m:mr=\E[7m:se=\E[m:\
+ :so=\E[7m:ue=\E[m:us=\E[4m:\
+ :tc=dku7003-dumb:
+
+#### IBM
+#
+
+ibm327x|line mode IBM 3270 style:\
+ :gn:\
+ :ce=^M:cl=^M^J:ho=^M:
+
+# Beware! The 3101 entry IBM shipped with AIX 3 is *wrong*. Losers...
+# From: J.B. Nicholson-Owens <jeffo@uiuc.edu> 8 Mar 94
+# (ibm3101: :if=/usr/share/tabset/ibm3101: removed, no such file -- esr)
+# Some versions of this that have :ct=\EH:; they may ort may not be broken.
+ibm3101|i3101|IBM 3101-10:\
+ :am:bs:xo:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EY%+ %+ :cr=^M:ct=\E1:do=^J:\
+ :ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\
+ :nw=^M^J:sf=^J:st=\E0:ta=^I:up=\EA:
+ibm3151|IBM 3151 display:\
+ :ae=\E>B:as=\E>A:is=\E S:me=\E4@\E>B:r2=\E S:s0=\E>B:\
+ :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E>B%;:\
+ :te=\E>B:ti=\E>B:\
+ :tc=ibm3163:
+# From: Mark Easter <marke@fsi-ssd.csg.ssd.fsi.com> 29 Oct 1992
+# I've commented out or translated some IBM extensions.
+# <kend>, :kN:, :kP:, <mc4>, <mc5> merged in from AIX 3.2.5
+ibm3161|ibm3163|wy60-316X|wyse60-316X|IBM 3161/3163 display:\
+ :am:bs:mi:ms:\
+ :co#80:it#8:li#24:\
+ :@7=\E2:F1=\Ek\r:F2=\El\r:F3=\E\041a\r:F4=\E\041b\r:\
+ :F5=\E\041c\r:F6=\E\041d\r:F7=\E\041e\r:F8=\E\041f\r:\
+ :F9=\E\041g\r:FA=\E\041h\r:FB=\E\041i\r:FC=\E\041j\r:\
+ :FD=\E\041k\r:FE=\E\041l\r:\
+ :ac=j\352k\353l\354m\355n\356q\361t\364u\365v\366w\367x\370:\
+ :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dc=\EQ:\
+ :dl=\EO:do=\EB:ho=\EH:k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:k4=\Ed\r:\
+ :k5=\Ee\r:k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:k9=\Ei\r:k;=\Ej\r:\
+ :kA=\EN:kB=\E2:kC=\EL\r:kD=\EQ:kE=\EI:kI=\EP \010:kL=\EO:\
+ :kN=\EI:kP=\EL:kS=\EJ:kT=\E0:ka=\E 1:kb=^H:kd=\EB:kh=\EH:\
+ :kl=\ED:kr=\EC:kt=\E1:ku=\EA:le=\ED:mb=\E4D:md=\E4H:\
+ :me=\E4@\E<@:mk=\E4P:mr=\E4A:nd=\EC:pf=^P^T:po=^P^R:\
+ :..sa=\E4%{64}%?%p1%t%{65}%|%;%?%p2%t%{66}%|%;%?%p3%t%{65}%|%;%?%p4%t%{68}%|%;%?%p5%t%{64}%|%;%?%p6%t%{72}%|%;%?%p7%t%{80}%|%;%c%?%p9%t\E>A%e\E<@%;:\
+ :se=\E4@:sf=^J:so=\E4A:te=\E>A:ti=\E>A:ue=\E4@:up=\EA:\
+ :us=\E4B:
+
+ibm3161-C|IBM 3161-C NLS terminal using cartridge:\
+ :s0=\E>B:s1=\E>A:te=\E>B:ti=\E>B:\
+ :tc=ibm3161:
+ibm3162|IBM 3162 display:\
+ :al=\EN:mb=\E4$a:md=\E4(a:me=\E4@:mk=\E40a:mr=\E4\041a:\
+ :se=\E4>b:so=\E4\041a:ue=\E4=b:us=\E4"a:\
+ :tc=ibm3161-C:
+
+# How the 3164 sgr string works:
+# %{32} # push space for no special video characteristics
+# %?%p2%t%{1}%|%; # if p2 set, then OR the 1 bit for reverse
+# %?%p3%t%{4}%|%; # if p3 set, then OR the 4 bit for blink
+# %?%p4%t%{2}%|%; # if p4 set, then OR the 2 bit for underline
+# %c # pop Pa1
+# %{39}%p1%- # calculate 32 + (7 - p1) for foreground
+# %c # pop Pa2
+# %{64} # use only black background for now
+# %c # pop Pa3
+# (ibm3164: merged :ms:,<colors>,<pairs>,<setb>,<setf> from AIX 3.2.5 -- esr)
+ibm3164|i3164|IBM 3164:\
+ :ms:\
+ :Co#8:pa#64:\
+ :Sb=\E4 %+@:..Sf=\E4%?%p1%t %p1%{32}%+%c%e\041'%;@:\
+ :mb=\E4D:md=\E4H:me=\E4@:\
+ :..sa=\E4%{32}%?%p2%t%{1}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%c%{39}%p1%-%c%{64}%c:tc=ibm3163:
+
+# From: <pryor@math.berkeley.edu>
+# (ibm5081: merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5. -- esr)
+ibm5081|ibmmpel|IBM 5081 1024x1024 256/4096 Megapel color display:\
+ :es:hs:\
+ :li#33:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ds=\Ej\EYA \EI\Ek:fs=\Ek:\
+ :me=\E[0m\E(B:s0=\E(B:s1=\E(0:ts=\Ej\EYA%+ \Eo:\
+ :tc=ibmmono:
+ibm5081-c|ibmmpel-c|IBM 5081 1024x1024 256/4096 Megapel enhanced color display:\
+ :es:hs:\
+ :li#33:\
+ :ds=\Ej\EYA \EI\Ek:fs=\Ek:ts=\Ej\EYA%+ \Eo:tc=ibmega-c:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ibm5151|wy60-AT|wyse60-AT|IBM 5151 Monochrome display:\
+ :am:bw:ms:xo:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
+ :SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\
+ :k0=\E[010q:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:\
+ :k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:\
+ :kD=\E[P:kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m:mr=\E[7m:nd=\E[C:rc=\E[u:sc=\E[s:se=\E[m:sf=\E[S:\
+ :so=\E[7m:sr=\E[T:ue=\E[m:up=\E[A:us=\E[4m:
+ibm5154|IBM 5154 Color display:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:md@:tc=ibm5151:
+ibm6153|IBM 6153 Black & White display:\
+ :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\
+ :tc=ibm5151:
+ibm6153-90|IBM 6153 Black & White display:\
+ :co#90:li#36:\
+ :mb@:md@:tc=ibm5151:
+ibm6153-40|IBM 6153 Black & White display:\
+ :co#40:li#12:tc=ibm6153-90:
+ibm6154|IBM 6154 Color displays:\
+ :mb@:md=\E[12m:me=\E[0;10m:s0=\E[10m:s1=\E[11m:s2=\E[12m:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;12%;m:\
+ :tc=ibm5154:
+ibm6155|IBM 6155 Black & White display:\
+ :mb@:md@:tc=ibm5151:
+ibm8503|ibm8507|ibm8604|IBM 8503 B & W VGA display:\
+ :tc=hft-c:
+ibm8512|ibm8513|IBM color VGA Terminal:\
+ :am:mi:ms:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\
+ :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\
+ :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\
+ :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\
+ :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\
+ :us=\E[4m:\
+ :tc=ibm8503:
+ibm8514|IBM 8514 color display:\
+ :es:hs:\
+ :li#41:\
+ :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\
+ :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\
+ :tc=ibmega:
+ibm8514-c|IBM 8514 color display with standout and underline:\
+ :es:hs:\
+ :li#41:\
+ :cr=^M:do=^J:ds=\Ej\EYI \EI\Ek:fs=\Ek:kb=^H:kd=^J:kl=^H:\
+ :nw=^M^J:sf=^J:ta=^I:ts=\Ej\EYI%+ \Eo:\
+ :tc=ibmega-c:
+
+ibmaed|IBM Experimental display:\
+ :am:bs:eo:ms:\
+ :co#80:it#8:li#52:\
+ :al=\EN:cd=\EJ:ce=\EI:cl=\EH\EK:cm=\EY%+ %+ :dc=\EQ:dl=\EO:\
+ :do=\EB:ei=:ho=\EH:ic=\EP:im=:kb=^H:kd=\EB:kl=\ED:kr=\EC:\
+ :ku=\EA:le=^H:me=\E0:nd=\EC:se=\E0:so=\E0:ta=^I:up=\EA:\
+ :vb=\EG:
+ibm-apl|apl|IBM apl terminal simulator:\
+ :li#25:tc=dm1520:
+# (ibmmono: this had an unknown `sb' boolean, I changed it to `bs'.
+# Also it had ":I0=f10:" which pretty obviously should be "l0=f10" -- esr)
+ibmmono|IBM workstation monochrome:\
+ :es:hs:\
+ :al=\EL:dl=\EM:ds=\Ej\EY8 \EI\Ek:fs=\Ek:k0=\E<:k1=\ES:\
+ :k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\EY:\
+ :kF=\EE:kI=\0:kN=\EE:kP=\Eg:kR=\EG:kb=^H:kh=\EH:l0=f10:\
+ :md=\EZ:me=\Ew\Eq\Ez\EB:mk=\EF\Ef0;\Eb0;:mr=\Ep:se=\Ez:\
+ :so=\EZ:sr=\EA:ts=\Ej\EY8%+ \Eo:ue=\Ew:us=\EW:\
+ :tc=ibm3101:
+ibmega|IBM Enhanced Color Display:\
+ :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmmono:
+ibmega-c|ibm5154-c|IBM Enhanced Color Display with standout and underline:\
+ :se=\EB:so=\EF\Ef3;:ue=\EB:us=\EF\Ef2;:\
+ :tc=ibmmono:
+ibmvga-c|IBM VGA display color termcap:\
+ :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega-c:
+ibmvga|IBM VGA display:\
+ :cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ibmega:
+# ibmapa* and ibmmono entries come from ACIS 4.3 distribution
+rtpc|ibmapa16|IBM 6155 Extended Monochrome Graphics Display:\
+ :li#32:\
+ :ds=\Ej\EY@ \EI\Ek:ts=\Ej\EY@%+ \Eo:tc=ibmmono:
+# Advanced Monochrome (6153) and Color (6154) Graphics Display:
+ibmapa8c|ibmapa8|IBM 6153/4 Advanced Graphics Display:\
+ :li#31:\
+ :ds=\Ej\EY? \EI\Ek:ts=\Ej\EY?%+ \Eo:tc=ibmmono:
+ibmapa8c-c|ibm6154-c|IBM 6154 Advanced Color Graphics Display:\
+ :li#31:\
+ :ds=\Ej\EY? \EI\Ek:mh=\EF\Ef7;:ts=\Ej\EY?%+ \Eo:tc=ibmega-c:
+hft-c-old|HFT with Color PC850:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:tc=ibm5151:
+# From: Marc Pawliger <marc@ibminet.awdpa.ibm.com>
+# also in /usr/lpp/bos/bsdsysadmin.
+# (hft-c: this entry had :kb=\E[D:kf=\E[C: on the line with ku/kd/kh; this was
+# pretty obviously mislabeled for :le: and :nd:; also ":ul=\E[4m:" was clearly
+# a typo for ":us=\E[4m:"; also ":el=\E[K:" was a typo for ":ce=\E[K:".
+# I also added <rmam>/<smam> based on the terminal reset string.
+# There was an unknown boolean ":ht:" which I assume was meant to set hardware
+# tabs, so I have inserted it#8. Finally, :ac=^N: paired with the :ae: looked
+# like a typo for :as=^N:; finally, added empty <acsc> to quiet tic -- esr)
+hft-c|IBM High Function Terminal:\
+ :am:mi:ms:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DL=\E[%dM:RA=\E[?7l:SA=\E[?7h:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:dl=\E[M:dm=\E[4h:\
+ :do=^J:ec=\E[%dX:ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\Eb\E[m\017\E[?7h:k0=\E[010q:k1=\E[001q:k2=\E[002q:\
+ :k3=\E[003q:k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:\
+ :k8=\E[008q:k9=\E[009q:kd=\E[B:kh=\E[H:ku=\E[A:le=\E[D:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r1=\Eb\E[m\017\E[?7h\E[H\E[J:rc=\E[u:sc=\E[s:se=\E[m:\
+ :so=\E[7m:te=\E[20h:ti=\E[20;4l\E[?7h\Eb:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+hft|AIWS High Function Terminal:\
+ :am:xo:\
+ :co#80:li#25:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:ei=\E6:ho=\E[H:\
+ :ic=\E[@:im=\E6:k1=\E[001q:k2=\E[002q:k3=\E[003q:\
+ :k4=\E[004q:k5=\E[005q:k6=\E[006q:k7=\E[007q:k8=\E[008q:\
+ :k9=\E[009q:kN=\E[153q:kP=\E[159q:ka=\E[010q:kb=^H:\
+ :kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mk=\E[8m:mr=\E[7m:nd=\E[C:se=\E[m:sf=^J:\
+ :so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+ibm-system1|system1|ibm system/1 computer:\
+ :am:xt:\
+ :co#80:li#24:\
+ :bl=^G:cl=^Z:cm=\005%+ %+ :ho=^K:le=^H:nd=^\:sf=^J:up=^^:
+# lft-pc850 : IBM Low Function Terminal Device
+# lft "supports" underline, bold, and blink in the sense that the lft code
+# sets all the right bits. HOWEVER, depending upon the adapter, these
+# attributes may or may not be supported by the device driver.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+lft|lft-pc850|LFT-PC850|IBM LFT PC850 Device:\
+ :am:bw:ms:xo:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:\
+ :ae=\E(B:al=\E[L:as=\E(0:bl=^G:bt=\E[Z:cd=\E[2J:ce=\E[0K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:is=\Ec:\
+ :k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
+ :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:kD=\E[P:\
+ :kI=\E[139q:kN=\E[154q:kP=\E[150q:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
+ :mr=\E[7m:nd=\E[C:se=\E[0m:sf=\ED:so=\E[7m:sr=\EL:ue=\E[0m:\
+ :up=\E[A:us=\E[4m:
+
+#
+# AIX entries. IBM ships these with AIX 3.2.5.
+# AIX extension caps are commented out,
+# except for box1 which has been translated to an <acsc> string.
+#
+aixterm|IBM Aixterm Terminal Eemulator:\
+ :es:hs:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\
+ :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m:\
+ :sr@:ts=\E[?%p1%dT:\
+ :tc=ibm6154:
+aixterm-m|IBM AIXterm Monochrome Terminal Emulator:\
+ :es:hs:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ds=\E[?E:fs=\E[?F:md=\E[1m:\
+ :me=\E[0;10m\E(B:s0=\E(B:s1=\E(0:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
+ :sr@:ts=\E[?%p1%dT:\
+ :tc=ibm6153:
+aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator:\
+ :es:hs:\
+ :ds=\E[?E:fs=\E[?F:md=\E[1m:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
+ :sr@:ts=\E[?%p1%dT:\
+ :tc=ibm6153:
+jaixterm|IBM Kanji Aixterm Terminal Eemulator:\
+ :ac@:tc=aixterm:
+jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator:\
+ :ac@:\
+ :tc=aixterm-m:
+
+#### Infoton/General Terminal Corp.
+#
+
+# gt100 sounds like something DEC would come out with. Let's hope they don't.
+i100|gt100|gt100a|General Terminal 100A (formerly Infoton 100):\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\Ef%r%+ %+ :cr=^M:\
+ :dl=\EM:do=^J:ho=\EH:le=^H:nd=\EC:se=\Ea:sf=^J:so=\Eb:up=\EA:\
+ :vb=\Eb\Ea:
+i400|infoton 400:\
+ :am:bs:\
+ :co#80:li#25:\
+ :al=\E[L:bl=^G:ce=\E[N:cl=\E[2J:cm=%i\E[%3;%3H:cr=^M:\
+ :dc=\E[4h\E[2Q\E[P\E[4l\E[0Q:dl=\E[M:do=^J:\
+ :ei=\E[4l\E[0Q:im=\E[4h\E[2Q:le=^H:nd=\E[C:sf=^J:up=\E[A:
+# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
+addrinfo:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=^K:cl=^L:..cm=\037%p1%{1}%-%c%p2%{1}%-%c:cr=^M:\
+ :do=^J:ho=^H:le=^Z:ll=^H^\:nd=^Y:sf=^J:up=^\:
+# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
+infoton:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=^K:cl=^L:cr=^M:do=^J:le=^Z:ll=^H^\:nd=^Y:sf=^J:\
+ :up=^\:
+
+# The ICL6402 was actually the Kokusai Display System 6402.
+# The 6404 was the KDS7372 (color version of the 6402).
+#
+# ICL6404 control codes follow:
+#
+#code function
+#~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+#ctrl-A set SOM position at cursor position
+#ctrl-G Bell
+#ctrl-H Backspace
+#ctrl-I Horiz tab
+#ctrl-J Linefeed
+#ctrl-K Cursor up
+#ctrl-L Cursor right
+#ctrl-M Carriage return
+#ctrl-N Disable xon/xoff to host
+#ctrl-O Enable xon/xoff to host
+#ctrl-R Enable bidirectional mode
+#ctrl-T Disable bidirectional mode
+#ctrl-V Cursor down
+#ctrl-Z Clear unprotected data to insert char
+#ctrl-^ Cursor home
+#ctrl-_ Newline
+#
+#ESC lead-in char for multiple character command
+#
+#ESC space R execute power on sequence
+#ESC ! p1 p2 define scroll region:
+# p1 = scroll top line: 20h - 37h
+# p1 = scroll bottom line: 20h - 37h
+#ESC " unlock keyboard
+#ESC # lock keyboard
+#ESC $ Semi-graphics mode on
+#ESC % Semi-graphics mode off
+#ESC & protect mode on
+#ESC ' protect mode off
+#ESC ( write protect mode off (full intensity)
+#ESC ) write protect mode on (half intensity)
+#
+#ESC * clear screen
+#ESC + clear unprotected data to insert char
+#ESC , clear unprotected data to half intensity spaces
+#ESC - p1 p2 p3 p4 address cursor to page, row, column:
+# p1 = page number 0 - 3
+# p2 = row 20h - 7fh
+# p3 = column (lo) 20h - 7fh
+# p4 = column (hi) 20h - 21h (only 132 col)
+#ESC . p1 set cursor style:
+# p1 = 0 invisible cursor
+# p1 = 1 block blinking cursor
+# p1 = 2 block steady cursor
+# p1 = 3 underline blinking cursor
+# p1 = 4 underline steady cursor
+#ESC / transmit cursor location (page, row, column)
+#ESC 0 p1 p2 p3 p4 program edit key:
+# p1 = edit key code: '@'-'S', '`'-'s'
+# p2 p3 p4 = program data (3 bytes)
+#
+#ESC 1 set tab
+#ESC 2 clear tab at cursor
+#ESC 3 clear all tabs
+#ESC 4 send unprotect line to cursor
+#ESC 5 send unprotect page to cursor
+#ESC 6 send line to cursor
+#ESC 7 send page to cursor
+#ESC 8 n set scroll mode:
+# n = 0 set jump scroll
+# n = 1 set smooth scroll
+#ESC 9 n control display:
+# n = 0 display off
+# n = 1 display on
+#ESC : clear unprotected data to null
+#ESC ; clear unprotected data to insert char
+#
+#ESC < keyclick on
+#ESC = p1 p2 address cursor to row, column
+# p1 = row 20h - 7fh
+# p2 = column (lo) 20h - 7fh
+# p3 = column (hi) 20h - 21h (only 132 col)
+#ESC > keyclick off
+#ESC ? transmit cursor location (row, column)
+#
+#ESC @ copy print mode on
+#ESC A copy print mode off
+#ESC B block mode on
+#ESC C block mode off (conversation mode)
+#ESC D F set full duplex
+#ESC D H set half duplex
+#ESC E line insert
+#ESC F p1 p2 set page colour (p1 = f/grnd, p2 = b/grnd)
+# 0 = black, 1 = red, 2 = green, 3 = yellow
+# 4 = blue, 5 = magenta, 6 = cyan, 7 = white
+#ESC G n set serial field attribute (n = 30h - 3Fh)
+#ESC H n full graphics mode:
+# n = 0 exit full graphics mode
+# n = 1 enter full graphics mode
+#ESC I back tab
+#ESC J back page
+#ESC K forward page
+#
+#ESC L unformatted page print
+#ESC M L move window left (132 col mode only)
+#ESC M R move window right (132 col mode only)
+#ESC N set page edit (clear line edit)
+#ESC O set line edit (clear page edit)
+#ESC P formatted page print
+#ESC Q character insert
+#ESC R line delete
+#ESC S send message unprotected only
+#ESC T erase line to insert char
+#ESC U set monitor mode (see ESC X, ESC u)
+#
+#ESC V n select video attribute mode:
+# n = 0 serial field attribute mode
+# n = 1 parallel character attribute mode
+#ESC V 2 n define line attribute:
+# n = 0 single width single height
+# n = 1 single width double height
+# n = 2 double width single height
+# n = 3 double width double height
+#ESC V 3 n select character font:
+# n = 0 system font
+# n = 1 user defined font
+#ESC V 4 n select screen mode:
+# n = 0 page screen mode
+# n = 1 virtual screen mode
+#ESC V 5 n control mouse mode:
+# n = 0 disable mouse
+# n = 1 enable sample mode
+# n = 2 send mouse information
+# n = 3 enable request mode
+#ESC W character delete
+#ESC X clear monitor mode (see ESC U, ESC u)
+#ESC Y erase page to insert char
+#
+#ESC Z n send user/status line:
+# n = 0 send user line
+# n = 1 send status line
+# n = 2 send terminal ID
+#ESC [ p1 p2 p3 set character attribute (parallel char mode):
+# p1: 0 = normal
+# 1 = blank
+# 2 = blink
+# 3 = blink blank (= blank)
+# 4 = reverse
+# 5 = reverse blank
+# 6 = reverse blink
+# 7 = reverse blink blank (= reverse blank)
+# 8 = underline
+# 9 = underline blank
+# : = underline blink
+# ; = underline blink blank
+# < = reverse underline
+# = = reverse underline blank
+# > = reverse underline blink
+# ? = reverse underline blink blank
+# p2, p3: f/grnd, b/grnd colour
+# (see ESC F for colours)
+# use ZZ for mono, eg.
+# ESC [ 0 Z Z for normal
+# ESC [ 4 Z Z for inverse etc.
+#
+#ESC \ n set page size:
+# n = 1 24 lines/page
+# n = 2 48 lines/page
+# n = 3 72 lines/page
+# n = 4 96 lines/page
+#ESC ] n set Wordstar mode:
+# n = 0 normal (KDS7372) mode
+# n = 1 Wordstar mode
+#
+#ESC b set foreground colour screen
+#
+#ESC c n enter self-test mode:
+# n = 0 exit self test mode
+# n = 1 ROM test
+# n = 2 RAM test
+# n = 3 NVRAM test
+# n = 4 screen display test
+# n = 5 main/printer port test
+# n = 6 mouse port test
+# n = 7 graphics board test
+# n = 8 graphics memory test
+# n = 9 display all 'E'
+# n = : display all 'H'
+#ESC d set background colour screen
+#
+#ESC e n program insert char (n = insert char)
+#ESC f text CR load user status line with 'text'
+#
+#ESC g display user status line on 25th line
+#ESC h display system status line on 25th line
+#ESC i tab
+#ESC j reverse linefeed
+#ESC k n duplex/local edit mode:
+# n = 0 duplex edit mode
+# n = 1 local edit mode
+#ESC l n select virtual screen:
+# n = 0 screen 1
+# n = 1 screen 2
+#ESC m save current config to NVRAM
+#ESC n p1 select display screen:
+# p1 = 0 screen 1
+# p1 = 1 screen 2
+# p1 = 2 screen 3
+# p1 = 3 screen 4
+#ESC o p1 p2 set characters/line and attribute:
+# p1 = 0 80 chars/line
+#
+#ESC o p1 p2 set characters/line and attribute:
+# p1 = 0 80 chars/line
+# p1 = 1 132 chars/line
+# p2 = 0 single width single height
+# p2 = 1 single width double height
+# p2 = 2 double width single height
+# p2 = 3 double width double height
+#
+#ESC q insert mode on
+#ESC r edit mode on
+#ESC s send message all
+#ESC t erase line to null
+#ESC u clear monitor mode (see ESC U, ESC X)
+#ESC v autopage mode on
+#ESC w autopage mode off
+#ESC x p1 p2 p3 define delimiter code...
+#ESC y erase page to null
+#
+#ESC z 2 p1 p2 p3 p4 draw quadrangle:
+# p1 = starting row
+# p2 = starting column
+# p3 = end row
+# p4 = end column
+#
+#ESC { p1 p2 p3 p4 configure main port
+# (baud, stop bits, parity, word length)
+#
+#ESC | p1 p2 text Ctrl-Y program function key with 'text':
+# p1 = function key code:
+# '1' - ';' normal f1- f11
+# '<' - 'F' shifted f1 - f11
+# p2 = program mode:
+# 1 = FDX
+# 2 = LOC
+# 3 = HDX
+# Ctrl-Y = terminator
+# (use Ctrl-P to escape ^P, ^Y )
+#
+#ESC } p1 p2 p3 p4 configure printer port
+# (baud, stop bits, parity, word length)
+#ESC ~ send system status
+#
+# Codes and info from Peter Disdale <pete@pdlmail.demon.co.uk> 12 May 1997
+#
+# Entry is by esr going solely on above information and is UNTESTED.
+# This actually looks a lot like a Televideo 9xx.
+# This entry uses page 0 and is monochrome; I'm not brave enough to try
+# to make color work without a test terminal. The :am: capability is a guess.
+# The initialization string sets conversation mode, blinking underline cursor,
+# full duplex, parallel attribute mode, display user status line, white
+# foreground, black background, normal highlight.
+#
+icl6404|kds7372|icl6402|kds6402|ICL 6404 aka Kokusai Display Systems 7372:\
+ :am:bs:hs:\
+ :co#80:li#24:\
+ :DC=\EW:al=\EE:bl=^G:bt=\EI:cl=\E*:cm=\E=%+ %+P%+P:cr=^M:\
+ :..cs=\E\041%+%p1%{32}%+%p2%{32} cud1=\026:ct=\E3:\
+ :dl=\ER:ei=\Er:ho=^^:i1=\EC\E.3\EDF\EV1\Eg\E[0ZZ:im=\Eq:\
+ :mb=\E[2ZZ:me=\E[0ZZ:mk=\E[1ZZ:mr=\E[4ZZ:nd=^L:nw=^_:\
+ :r2=\Eo1:\
+ :..sa=\E[%{0}%?%p1%t%{4}%|%;%?%p2%t%{8}%|%;%?%p3%t%{4}%|%;%?%p4%t%{2}%|%;%?%p7%t%{1}%|%;ZZ:\
+ :se=\E[%gh%{4}%^%Ph%gh%dZZ:so=\E[8ZZ:st=\E1:ta=^I:\
+ :ue=\E[%gh%{8}%^%Ph%gh%dZZ:up=^K:us=\E[8ZZ:ve=\E.3:\
+ :vi=\E.0:vs=\E.1:
+icl6404-w|kds7372-w|ICL 6404 aka Kokusai Display Systems 7372 132 cols:\
+ :r2=\Eo1:\
+ :tc=icl6404:
+
+#### Interactive Systems Corp
+#
+# ISC used to sell OEMed and customized hardware to support ISC UNIX.
+# ISC UNIX still exists in 1995, but ISC itself is no more; they got
+# bought out by Sun.
+#
+
+# From: <cithep!eric> Wed Sep 16 08:06:44 1981
+# (intext: removed obsolete ":ma=^K^P^R^L^L ::bc=^_:", also the
+# ":le=^_:" later overridden -- esr)
+intext|Interactive Systems Corporation modified owl 1200:\
+ :am:bs:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=\020:bl=^G:bt=^Y:cd=\026J:ce=^Kp^R:cl=\014:\
+ :cm=\017%+ %+ :cr=^M:dc=\022:dl=\021:do=^J:ei=^V<:im=^V;:\
+ :ip=:k0=^VJ\r:k1=^VA\r:k2=^VB\r:k3=^VC\r:k4=^VD\r:k5=^VE\r:\
+ :k6=^VF\r:k7=^VG\r:k8=^VH\r:k9=^VI\r:kb=^H:kd=^J:ke=^V9:\
+ :kh=^Z:kl=^_:kr=^^:ks=\036\072\264\026%:ku=^\:le=^H:nd=^^:\
+ :se=^V# :sf=^J:so=^V$\054:ta=^I:up=^\:
+intext2|intextii|INTERACTIVE modified owl 1251:\
+ :am:bw:ul:\
+ :co#80:li#24:sg#0:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=:ic=\E[@:im=:k0=\E@\r:k1=\EP\r:k2=\EQ\r:\
+ :k3=\ES\r:k4=\ET\r:k5=\EU\r:k6=\EV\r:k7=\EW\r:k8=\EX\r:\
+ :k9=\EY\r:kb=^H:kd=\EB\r:kh=\ER\r:kl=\ED\r:kr=\EC\r:\
+ :ku=\EA\r:l0=REFRSH:l1=DEL CH:l2=TABSET:l3=GOTO:l4=+PAGE:\
+ :l5=+SRCH:l6=-PAGE:l7=-SRCH:l8=LEFT:l9=RIGHT:nd=\E[C:\
+ :se=\E[2 D:sf=\E[S:so=\E[6 D:sr=\E[T:ta=^I:ue=\E[2 D:\
+ :up=\E[A:us=\E[18 D:\
+ :vb=\E[;;;;;;;;;2;;u\E[;;;;;;;;;1;;u:
+
+#### Kimtron (abm, kt)
+#
+# Kimtron seems to be history, but as March 1998 these people are still
+# offering repair services for Kimtron equipment:
+#
+# Com/Pair Monitor Service
+# 1105 N. Cliff Ave.
+# Sioux Falls, South Dakota 57103
+#
+# WATS voice: 1-800/398-4946
+# POTS fax: +1 605/338-8709
+# POTS voice: +1 605/338-9650
+# Email: <compair@sd.cybernex.net>
+# Internet/Web: <http://www.com-pair.com>
+#
+# Kimtron entries include (undocumented) codes for: enter dim mode,
+# enter bold mode, enter reverse mode, turn off all attributes.
+#
+
+# Kimtron ABM 85 added by Dual Systems
+# (abm85: removed duplicated ":kd=^J:" -- esr)
+abm85|Kimtron ABM 85:\
+ :am:bs:bw:ms:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=\EE:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :dc=\EW:\
+ :dl=\ER:do=^J:ei=\Er:if=/usr/share/tabset/stdcrt:im=\EQ:\
+ :is=\EC\EX\Eg\En\E%\Er\E(\Ek\Em\Eq:kb=^H:kd=^J:kh=^^:\
+ :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\Ek:so=\Ej:ta=^I:ue=\Em:\
+ :up=^K:us=\El:
+# Kimtron ABM 85H added by Dual Systems.
+# Some notes about the abm85h entries:
+# 1) there are several firmware revs of 85H in the world. Use abm85h-old for
+# firmware revs prior to SP51
+# 2) Make sure to use abm85h entry if the terminal is in 85h mode and the
+# abm85e entry if it is in tvi920 emulation mode. They are incompatible
+# in some places and NOT software settable i.e., :is: can't fix it)
+# 3) In 85h mode, the arrow keys and special functions transmit when
+# the terminal is in dup-edit, and work only locally in local-edit.
+# Vi won't swallow `del char' for instance, but :ti: turns on
+# dup-edit anyway so that the arrow keys will work right. If the
+# arrow keys don't work the way you like, change :ti:, :te:, and
+# :is:. Note that 920E mode does not have software commands to toggle
+# between dup and local edit, so you get whatever was set last on the
+# terminal.
+# 4) :vb: attribute is nice, but seems too slow to work correctly
+# (\Eb:pc:\Ed)
+# 5) Make sure `hidden' attributes are selected. If `embedded' attributes
+# are selected, the <xmc@> entry should be removed.
+# 6) auto new-line should be on (selectable from setup mode only)
+#
+# From: Erik Fair <fair@ucbarpa> Sun Oct 27 07:21:05 1985
+abm85h|Kimtron ABM 85H native mode:\
+ :hs:\
+ :sg@:\
+ :bl=^G:ds=\Ee:fs=^M:im=\EZ:\
+ :is=\EC\EN\EX\024\016\EA\Ea\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\EG0\Ed\E.4\El:\
+ :kd=^V:me=\E(\EG0:mh=\E):mk@:ts=\Eg\Ef:vb@:ve=\E.4:vs=\E.2:\
+ :tc=adm+sgr:tc=abm85:
+abm85e|Kimtron ABM 85H in 920E mode:\
+ :sg@:\
+ :bl=^G:im=\EZ:\
+ :is=\EC\EX\EA\E%\E9\Ee\Er\En\E"\E}\E'\E(\Ef\r\Ek\Eq\Em:\
+ :me=\E(\Ek:mh=\E):mr=\Ej:vb@:\
+ :tc=abm85:
+abm85h-old|oabm85h|o85h|Kimtron ABM 85H with old firmware rev.:\
+ :sg@:\
+ :bl=^G:im=\EZ:\
+ :is=\E}\EC\EX\Ee\En\E%\Er\E(\Ek\Em\Eq\Ed\ET\EC\E9\EF:\
+ :me=\E(\Ek:mh=\E):mr=\Ej:\
+ :tc=abm85:
+# From: <malman@bbn-vax.arpa>
+# (kt7: removed obsolete :ma=^V^J^L :" -- esr)
+kt7|kimtron model kt-7:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :al=\EE:bt=\EI:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=\EW:\
+ :dl=\ER:do=^V:ei=:fs=\Eg:ho=^^:ic=\EQ:\
+ :if=/usr/share/tabset/stdcrt:im=:is=\El\E":k0=^AI\r:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=\EE:kB=\EI:kC=^Z:kD=\EW:\
+ :kE=\ET:kI=\EQ:kL=\ER:kS=\EY:kb=^H:kd=^V:kh=^^:kl=^H:kr=^L:\
+ :ku=^K:le=^H:mk@:nd=^L:ta=^I:ts=\Ef:up=^K:\
+ :tc=adm+sgr:
+# Renamed TB=^I to :ta:, BE=^G to :bl:, BS=^H to :kb:, N to :kS: (based on the
+# other kt7 entry and the adjacent key capabilities). Removed EE which is
+# identical to :mh:. Removed :ES=\EGD: which is some kind of highlight
+# but we can't figure out what.
+kt7ix|kimtron model kt-7 or 70 in IX mode:\
+ :am:bw:\
+ :co#80:it#8:li#25:\
+ :@7=\EY:PU=\EK:ac=jYk?lZm@nEqDt4uCvAwBx3:ae=\E%:al=\EE:\
+ :as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :\
+ :cr=^M:dc=\EW:dl=\ER:do=^V:ds=\Ef\r:ei=:fs=^M:ho=^^:ic=\EQ:\
+ :im=:is=\EG0\E s\017\E~:k0=^AI\r:k1=^A@\r:k2=^AA\r:\
+ :k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:\
+ :k9=^AH\r:kA=\EE:kB=\EI:kC=\E*:kE=\ET:kI=\EQ:kL=\ER:kN=\EJ:\
+ :kS=\EY:kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\EG2:me=\EG0:mh=\EG@:nd=^L:nw=^M^J:se=\EG0:sf=^J:\
+ :so=\EG4:ta=^I:ts=\Ef:ue=\EG0:up=^K:us=\EG8:ve=\E.3:vi=\E.0:
+
+#### Microdata/MDIS
+#
+# This was a line of terminals made by McDonnell-Douglas Information Systems.
+# These entries come direct from MDIS documentation. I have edited them only
+# to move primary names of the form p[0-9] * to aliases, and to comment out
+# :ae:/:as: in a couple of entries without <acsc> strings. I have
+# also removed the change history; the last version indicates this is
+# version 4.3 by A.Barkus, September 1990 (earliest entry is October 1989).
+#
+
+# McDonnell Information Systems Terminal Family History
+# =========================================
+#
+# Prism-1, Prism-2 and P99:
+# Ancient Microdata and CMC terminals, vaguely like Adds Regent 25.
+#
+# Prism-4 and Prism-5:
+# Slightly less ancient range of Microdata terminals. Follow-on from
+# Prism-2, but with many enhancements. P5 has eight display pages.
+#
+# Prism-6:
+# A special terminal for use with library systems, primarily in Germany.
+# Limited numbers. Similar functionality to P5 (except attributes?).
+#
+# Prism-7, Prism-8 and Prism-9:
+# More recent range of MDIS terminals, in which P7 and P8
+# replace the P4 & P5, with added functionality, and P9 is the flagship.
+# The P9 has two emulation modes - P8 and ANSI - and includes a
+# large number of the DEC VT220 control sequences. Both
+# P8 and P9 support 80c/24ln/8pg and 132cl/24li/4pg formats.
+#
+# Prism-12 and Prism-14:
+# Latest range, functionally very similar to the P9. The P14 has a
+# black-on-white overscanning screen.
+#
+# The terminfo definitions given here are:
+#
+# p2 - Prism-2 (or Prism-1 or P99).
+#
+# p4 - Prism-4 (and older P7s & P8s).
+# p5 - Prism-5 (or Prism-6).
+#
+# p7 - Prism-7.
+# p8 - Prism-8 (in national or multinational mode).
+# p8-w - 132 column version of p8.
+# p9 - Prism-9 in ANSI mode.
+# p9-w - 132 column version of p9.
+# p9-8 - Prism-9 in Prism-8 emulation mode.
+# p9-8-w - As p9-8, but with 132 columns.
+#
+# p12 - Prism-12 in ANSI mode.
+# p12-w - 132 column version of p12.
+# p12-m - Prism-12 in MDC emulation mode.
+# p12-m-w - As p12-m, but with 132 columns.
+# p14 - Prism-14 in ANSI mode.
+# p14-w - 132 column version of p14.
+# p14-m - Prism-14 in MDC emulation mode.
+# p14-m-w - As p14-m, but with 132 columns.
+#
+# p2: Prism-2
+# -----------
+#
+# Includes Prism-1 and basic P99 without SP or MP loaded.
+# The simplest form of Prism-type terminal.
+# Basic cursor movement and clearing operations only.
+# No video attributes.
+# Notes:
+# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+# value up, followed by backspace.
+#
+prism2|MDC Prism-2:\
+ :am:bw:ms:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EJ:ce=\EK:\
+ :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
+ :cl=\014:\
+ :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
+ :cr=^M:cv=\013%+ :do=^J:ho=^A:kb=^H:kh=^A:le=^H:nd=^F:sf=^J:\
+ :up=^Z:
+
+# p4: Prism-4
+# -----------
+#
+# Includes early versions of P7 & P8.
+# Basic family definition for most Prisms (except P2 and P9 ANSI).
+# Notes:
+# Horizontal cursor qualifiers of NUL, XON and XOFF are mapped to the next
+# value up, followed by backspace.
+# Cursor key definitions removed because they interfere with vi and csh keys.
+#
+prism4|p4|P4|MDC Prism-4:\
+ :5i:am:bw:hs:ms:\
+ :co#80:li#24:sg#1:ws#72:\
+ :bl=^G:cd=\EJ:ce=\EK:\
+ :..ch=\020%p1%{10}%/%{16}%*%p1%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
+ :cl=\014:\
+ :..cm=\013%p1%{32}%+%c\020%p2%{10}%/%{16}%*%p2%{10}%m%+%Pc%?%{17}%gc%=%{19}%gc%=%|%gc%!%|%t%{1}%gc%+%c%{8}%e%gc%;%c:\
+ :cr=^M:cv=\013%+ :do=^J:ds=\035\343\035\345:fs=^]\345:\
+ :ho=^A:kb=^H:kh=^A:le=^H:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:\
+ :nd=^F:pf=\ET:po=\ER:ps=\EU:\
+ :..sa=\003%{64}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{16}%+%;%?%p4%t%{2}%+%;%?%p5%t%{1}%+%;%?%p7%t%{8}%+%;%c%?%p9%t\016%e\017%;:\
+ :se=^C :sf=^J:so=^CD:ts=^]\343:ue=^C :up=^Z:us=^CP:\
+ :ve=^]\342:vi=^]\344:
+
+# p5: Prism-5
+# -----------
+#
+# Same definition as p4. Includes Prism-6 (not tested!).
+# Does not use any multi-page features.
+#
+prism5|p5|P5|MDC Prism-5:\
+ :tc=p4:
+
+# p7: Prism-7
+# -----------
+#
+# Similar definition to p4. Uses ANSI cursor motion to avoid network problems.
+# Notes:
+# Use p4 for very early models of P7.
+# Rev-index removed; can't send nulls to terminal in 8-bit modes.
+#
+prism7|p7|P7|MDC Prism-7:\
+ :ch@:cm=\E[%i%d;%dH:cv@:tc=p4:
+
+# p8: Prism-8
+# -----------
+#
+# Similar definition to p7. Uses ANSI cursor motion to avoid network problems.
+# Supports national and multinational character sets.
+# Notes:
+# Alternate char set operations only work in multinational mode.
+# Use p4 for very early models of P8.
+# Rev-index removed; can't send nulls to terminal in 8-bit modes.
+# (esr: commented out :as:/:ae: because there's no <acsc>)
+#
+prism8|p8|P8|MDC Prism-8:\
+ :ch=\E[%i%d`:cm=\E[%i%d;%dH:cv=\E[%i%dd:is=\E[<12h:tc=p4:
+
+# p8-w: Prism-8 in 132 column mode
+# --------------------------------
+#
+# 'Wide' version of p8.
+# Notes:
+# Rev-index removed; can't send nulls to terminal in 8-bit modes.
+#
+prism8-w|p8-w|P8-W|MDC Prism-8 in 132 column mode:\
+ :co#132:\
+ :is=\E[<12h\E[<14h:tc=p8:
+
+# p9: Prism-9 in ANSI mode
+# -------------------------
+#
+# The "flagship" model of this generation of terminals.
+# ANSI X3.64 (ISO 6429) standard sequences, plus many DEC VT220 ones.
+# Notes:
+# Tabs only reset by "reset". Otherwise assumes default (8 cols).
+# Fixes to deal with terminal firmware bugs:
+# . 'ri' uses insert-line since rev index doesn't always
+# . 'sgr0' has extra '0' since esc[m fails
+# . 'fsl' & 'dsl' use illegal char since cr is actioned wrong on line 25
+# Not covered in the current definition:
+# . Labels
+# . Programming Fn keys
+# . Graphic characters (defaults correctly to vt100)
+# . Padding values (sets xon)
+# (esr: commented out :as:/:ae: because there's no <acsc>)
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+prism9|p9|P9|MDC Prism-9 in ANSII mode:\
+ :5i:am:bw:hs:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:ws#72:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:F1=\E[23~:\
+ :F2=\E[24~:F3=\E[25~:F4=\E[26~:F5=\E[28~:F6=\E[29~:\
+ :F7=\E[31~:F8=\E[32~:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
+ :al=\E[L:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%i%d`:cl=^L:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%d%v:ct=\E[2g:\
+ :cv=\E[%i%dd:dc=\E[P:dl=\E[M:do=^J:ds=\E[%}\024:ec=\E[%dX:\
+ :ei=\E[4l:fs=^T:ho=\E[H:im=\E[4h:is=\E[&p\E[<12l\E F:\
+ :k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:k5=\E[15~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:k;=\E[21~:kC=^L:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[0m:mp=\E[32%{:mr=\E[7m:nd=\E[C:\
+ :nw=^M^J:pf=\E[4i:po=\E[5i:ps=\E[i:\
+ :r2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N:\
+ :rc=\E[%z:rp=\E[%r%db%.:sc=\E[%y:se=\E[27m:sf=^J:so=\E[7m:\
+ :sr=\E[L:st=\EH:ta=^I:ts=\E[%i%p1%d%%}:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:ve=\E[<4h:vi=\E[<4l:
+
+# p9-w: Prism-9 in 132 column mode
+# --------------------------------
+#
+# 'Wide' version of p9.
+#
+prism9-w|p9-w|P9-W|MDC Prism-9 in 132 column mode:\
+ :co#132:\
+ :is=\E[&p\E[<12l\E F\E[<14h:\
+ :r2=\E[&p\E[<12l\E F\E[<14h:tc=p9:
+
+# p9-8: Prism-9 in P8 mode
+# ------------------------
+#
+# P9 terminal in P8 emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism9-8|p9-8|P9-8|MDC Prism-9 in P8 mode:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\
+ :dl=\E[M:ei=:ic=\E[@:im=:\
+ :tc=p8:
+
+# p9-8-w: Prism-9 in P8 and 132 column modes
+# ------------------------------------------
+#
+# P9 terminal in P8 emulation mode and 132 column mode.
+#
+prism9-8-w|p9-8-w|P9-8-W|MDC Prism-9 in Prism 8 emulation and 132 column mode:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:IC=\E[%d@:al=\E[L:dc=\E[P:\
+ :dl=\E[M:ei=:ic=\E[@:im=:\
+ :tc=p8-w:
+
+# p12: Prism-12 in ANSI mode
+# ---------------------------
+#
+# See p9 definition.
+#
+prism12|p12|P12|MDC Prism-12 in ANSI mode:\
+ :tc=p9:
+
+# p12-w: Prism-12 in 132 column mode
+# ----------------------------------
+#
+# 'Wide' version of p12.
+#
+prism12-w|p12-w|P12-W|MDC Prism-12 in 132 column mode:\
+ :tc=p9-w:
+
+# p12-m: Prism-12 in MDC emulation mode
+# -------------------------------------
+#
+# P12 terminal in MDC emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism12-m|p12-m|P12-M|MDC Prism-12 in MDC emulation mode:\
+ :tc=p9-8:
+
+# p12-m-w: Prism-12 in MDC emulation and 132 column modes
+# -------------------------------------------------------
+#
+# P12 terminal in MDC emulation mode and 132 column mode.
+#
+prism12-m-w|p12-m-w|P12-M-W|MDC Prism-12 in MDC emulation and 132 column mode:\
+ :tc=p9-8-w:
+
+# p14: Prism-14 in ANSII mode
+# ---------------------------
+#
+# See p9 definition.
+#
+prism14|p14|P14|MDC Prism-14 in ANSII mode:\
+ :tc=p9:
+
+# p14-w: Prism-14 in 132 column mode
+# ----------------------------------
+#
+# 'Wide' version of p14.
+#
+prism14-w|p14-w|P14-W|MDC Prism-14 in 132 column mode:\
+ :tc=p9-w:
+
+# p14-m: Prism-14 in MDC emulation mode
+# -------------------------------------
+#
+# P14 terminal in MDC emulation mode.
+# Similar to p8 definition.
+# Insertion and deletion operations possible.
+#
+prism14-m|p14-m|P14-M|MDC Prism-14 in MDC emulation mode:\
+ :tc=p9-8:
+
+# p14-m-w: Prism-14 in MDC emulation and 132 column modes
+# -------------------------------------------------------
+#
+# P14 terminal in MDC emulation mode and 132 column mode.
+#
+prism14-m-w|p14-m-w|P14-M-W|MDC Prism-14 in MDC emulation and 132 column mode:\
+ :tc=p9-8-w:
+
+# End of McDonnell Information Systems Prism definitions
+
+# These things were popular in the Pick database community at one time
+# From: George Land <georgeland@aol.com> 24 Sep 1996
+p8gl|prism8gl|McDonnell-Douglas Prism-8 alternate definition:\
+ :am:bw:hs:mi:\
+ :co#80:li#24:ma#1:sg#1:ws#78:\
+ :F2=^AJ\r:F3=^AK\r:F4=^AL\r:F5=^AM\r:F6=^AN\r:F7=^AO\r:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\E[%i%d;%dH:cr=^M:dc= ^H:\
+ :dl=^P:do=^J:ho=^A:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:\
+ :k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:k;=^AI\r:\
+ :kD= ^H:kE=\EK:kL=^P:kS=\EJ:kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:\
+ :ku=^Z:l1=F1:l2=F2:l3=F3:l4=F4:l5=F5:l6=F6:l7=F7:l8=F8:l9=F9:\
+ :la=F10:le=^U:mb=^CB:me=^C :mh=^CA:mk=^CH:mr=^CD:nd=^F:\
+ :nw=^J^M:pc=\0:se=^C :sf=^J:so=^CE:ue=^C :up=^Z:us=^C0:
+
+#### Microterm (act, mime)
+#
+# The mime1 entries refer to the Microterm Mime I or Mime II.
+# The default mime is assumed to be in enhanced act iv mode.
+#
+
+# New "safe" cursor movement (5/87) from <reuss@umd5.umd.edu>. Prevents
+# freakout with out-of-range args on Sytek multiplexors. No :so=^N: and
+# :se=^N: since it gets confused and it's too dim anyway. No :ic:
+# since Sytek insists ^S means xoff.
+# (act4: found ":ic=2^S:ei=:im=:ip=.1*^V:" commented out in 8.3 -- esr)
+act4|microterm|microterm act iv:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=2.3*\001<2.3*/>:bl=^G:cd=2.2*\037:ce=.1*\036:\
+ :cl=12\014:cm=\024%+^X%>/0%+P:cr=^M:dc=.1*\004:\
+ :dl=2.3*\027:do=^K:ho=^]:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:\
+ :sf=^J:up=^Z:
+# The padding on :sr: and :ta: for act5 and mime is a guess and not final.
+# The act 5 has hardware tabs, but they are in columns 8, 16, 24, 32, 41 (!)...
+# (microterm5: removed obsolete ":ma==^Z^P^Xl^Kj:" -- esr)
+act5|microterm5|microterm act v:\
+ :kd=^K:kl=^H:kr=^X:ku=^Z:sr=\EH:uc=^H\EA:tc=act4:
+# Mimes using brightness for standout. Half bright is really dim unless
+# you turn up the brightness so far that lines show up on the screen.
+mime-fb|full bright mime1:\
+ :is=^S\E:se=^S:so=^Y:tc=mime:
+mime-hb|half bright mime1:\
+ :is=^Y\E:se=^Y:so=^S:tc=mime:
+# (mime: removed obsolete ":ma=^X ^K^J^Z^P:"; removed ":do=^K:" that overrode
+# the more plausible ":do=^J:" -- esr)
+# uc was at one time disabled to get around a curses bug, be wary of it
+mime|mime1|mime2|mimei|mimeii|microterm mime1:\
+ :am:bs:\
+ :co#80:it#8:li#24:vt#9:\
+ :al=\001:bl=^G:cd=^_:ce=^^:cl=^]^C:cm=\024%+^X%> 0%+P:\
+ :cr=^M:dl=\027:do=^J:ho=^]:is=^S\E^Q:kd=^K:kl=^H:kr=^X:ku=^Z:\
+ :le=^H:nd=^X:sf=^J:sr=\022:ta=\011:uc=^U:up=^Z:
+# These termcaps (for mime2a) put the terminal in low intensity mode
+# since high intensity mode is so obnoxious.
+mime2a-s|microterm mime2a (emulating an enhanced soroc iq120):\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\001:bl=^G:cd=\EJ:ce=\EK:cl=\EL:cm=\E=%+ %+ :cr=^M:\
+ :dc=\ED:dl=\027:do=^J:ei=^Z:ho=^^:im=\EE:ip=:is=\E):kd=^J:\
+ :kl=^H:kr=^L:ku=^K:le=^H:nd=^L:se=\E;:sf=^J:so=\E\072:sr=\EI:\
+ :ue=\E7:up=\EI:us=\E6:
+# This is the preferred mode (but ^X can't be used as a kill character)
+mime2a|mime2a-v|microterm mime2a (emulating an enhanced vt52):\
+ :bs:\
+ :co#80:it#8:li#24:\
+ :al=\001:bl=^G:cd=\EQ:ce=\EP:cl=\EL:cm=\EY%+ %+ :cr=^M:\
+ :dc=^N:dl=\027:do=^J:ei=^Z:ho=\EH:im=^O:ip=:is=^Y:kd=\EB:\
+ :kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\E9:sf=^J:so=\E8:\
+ :sr=\EA:ta=^I:ue=\E5:up=\EA:us=\E4:
+# (mime3a: removed obsolete ":ma=^X ^K^J^Z^P:" -- esr)
+mime3a|mime1 emulating 3a:\
+ :am@:\
+ :kd=^K:kl=^H:kr=^X:ku=^Z:tc=adm3a:
+mime3ax|mime-3ax|mime1 emulating enhanced 3a:\
+ :it#8:\
+ :al=\001:cd=^_:ce=^X:dl=\027:ta=\011:tc=mime3a:
+# Wed Mar 9 18:53:21 1983
+# We run our terminals at 2400 baud, so there might be some timing problems at
+# higher speeds. The major improvements in this model are the terminal now
+# scrolls down and insert mode works without redrawing the rest of the line
+# to the right of the cursor. This is done with a bit of a kludge using the
+# exit graphics mode to get out of insert, but it does not appear to hurt
+# anything when using vi at least. If you have some users using act4s with
+# programs that use curses and graphics mode this could be a problem.
+mime314|mm314|mime 314:\
+ :am:\
+ :co#80:li#24:\
+ :al=^A:cd=^_:ce=^^:cl=^L:cm=\024%.%.:dc=^D:dl=^W:ei=^V:ho=^]:\
+ :im=^S:kd=^K:kl=^H:kr=^X:ku=^Z:le=^H:nd=^X:ta=^I:up=^Z:
+# Microterm mime 340 from University of Wisconsin
+mm340|mime340|mime 340:\
+ :co#80:li#24:\
+ :al=46\EU:cd=2*\037:ce=2.1\EL:cl=12\032:cm=\E=%+ %+ :\
+ :cr=^M:dc=2.1*\E#:dl=49.6\EV:do=^J:is=\E\054:kb=^H:kd=^J:\
+ :kl=^H:ku=^K:le=^H:nd=^L:nw=^M^J:sf=^J:ta=^I:up=^K:
+# This came from University of Wisconsin marked "astro termcap for jooss".
+# (mt4520-rv: removed obsolete ":kn#4:" and incorrect ":ri=\E[C:";
+# also added <rmam>/<smam> based on the init string -- esr)
+mt4520-rv|micro-term 4520 reverse video:\
+ :am:hs:ms:xn:xo:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[g:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
+ :fs=\E[?5l\E[?5h:ho=\E[H:ic=\E[@:im=:\
+ :is=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[1;24r\E[24;1H\E[H\E[J:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:me=\E[m:\
+ :nd=\E[C:nw=\EE:\
+ :r1=\E(B\E[2l\E>\E[20l\E[?3l\E[?5h\E[?7h\E[H\E[J:\
+ :rc=\E8:rf=/usr/share/tabset/vt100:sc=\E7:se=\E[0m:\
+ :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ts=\E[25;1H:ue=\E[24m:\
+ :up=\E[A:us=\E[4m:vb=\E[?5l\E[?5h:ve=\E[0V\E8:\
+ :vs=\E7\E[0U:
+
+# Fri Aug 5 08:11:57 1983
+# This entry works for the ergo 4000 with the following setups:
+# ansi,wraparound,newline disabled, xon/xoff disabled in both
+# setup a & c.
+#
+# WARNING!!! There are multiple versions of ERGO 4000 microcode
+# Be advised that very early versions DO NOT WORK RIGHT !!
+# Microterm does have a ROM exchange program- use it or lose big
+# (ergo400: added <rmam>/<smam> based on the init string -- esr)
+ergo4000|microterm ergo 4000:\
+ :da:db:ms:\
+ :co#80:li#66:\
+ :AL=\E[1L:RA=\E[?7l:SA=\E[?7m:bl=^G:cd=\E[0J:ce=\E[0K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:dc=\E[1P:dl=\E[1M:\
+ :do=\E[B:ei=\E[4l:im=\E[4h:\
+ :is=\E<\E=\E[?1l\E[?4l\E[?5l\E[?7h\E[?8h:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\E[B:ke=\E=:kl=\E[D:kr=\E[C:\
+ :ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:le=^H:me=\E[m:\
+ :nd=\E[C:se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:
+
+#### NCR
+#
+# NCR's terminal group was merged with AT&T's when AT&T bought the company.
+# For what happened to that group, see the ADDS section.
+#
+# There is an NCR4103 terminal that's just a re-badged Wyse-50.
+#
+
+# The following vendor-supplied termcaps were captured from the Boundless
+# Technologies site, 8 March 1998. I removed all-upper-case names that were
+# identical, except for case, to lower-case ones. I also uncommented the acsc
+# capabilities.X
+#
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300an:
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intwan|NCR Intecolor emulation of the 2900_260C with an ANSI keyboard:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wan:
+# The Intecolor emulation of the NCR 2900/260C color terminal is basically a
+# DEC vt200/300 with color capabilities added.
+ncr260intpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300pp:
+# The Intecolor emulation of the NCR 2900/260C color terminal is basicly a
+# DEC vt200/300 with color capabilities added.
+ncr260intwpp|NCR Intecolor emulation of the 2900_260C with a PC+ keyboard in 132 column mode:\
+ :Co#8:pa#64:\
+ :AB=\E[4%p1%dm:AF=\E[3%p1%dm:op=\E[0m:tc=ncr260vt300wpp:
+# This definition for ViewPoint supports several attributes. This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies. The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260vppp|NCR 2900_260 viewpoint:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:li#24:sg#1:\
+ :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^A:\
+ :K3=\EJ:K4=\ET:K5=\EJ:ae=\EcB0\EH\003:al=\EM:\
+ :as=\EcB1\EH\002:bl=^G:bt=\EI:cd=\Ek:ce=\EK:cl=\014:\
+ :cm=\EY%+ %+ :cr=\r:dc=\EW:dl=\El:do=\n:ds=\E`c:ei=\Er:\
+ :fs=^M:ho=\036:im=\Eq:\
+ :is=\Ee6\E~%\E+\E`\072\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
+ :k1=^B1\r:k2=^B2\r:k3=^B3\r:k4=^B4\r:k5=^B5\r:k6=^B6\r:\
+ :k7=^B7\r:k8=^B8\r:k9=^B9\r:kD=\EW:kI=\Eq:kN=\EJ:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=\010:ll=\001:mb=\EG2:\
+ :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\006:nw=\037:se=\EG0:\
+ :sf=\n:so=\EG4:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\032:\
+ :us=\EG8:ve=\E`5:vi=\E`0:vs=\E`5:
+ncr260vpwpp|NCR 2900_260 viewpoint wide mode:\
+ :co#132:\
+ :cm=\Ea%i%dR%dC:\
+ :is=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
+ :r2=\Ee6\E~%\E+\E`;\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7:\
+ :tc=ncr260vppp:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260vt100an|NCR 2900_260 vt100 with ansi kybd:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=\r:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\
+ :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\
+ :im=\E[4h:\
+ :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kD=\E[3~:kI=\E[2~:\
+ :kN=\E[6~:kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\
+ :se=\E[0m:sf=\ED:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}:ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[?25h:\
+ :vi=\E[?25l:
+ncr260vt100wan|NCR 2900_260 vt100 wide mode ansi kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :tc=ncr260vt100an:
+ncr260vt100pp|NCR 2900_260 vt100 with PC+ kybd:\
+ :@7=\E[5~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:\
+ :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :kD=\E[4~:kI=\E[1~:kN=\E[6~:kP=\E[3~:kd=\E[B:ke=\E>:\
+ :kh=\E[2~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:\
+ :l3=pf3:l4=pf4:\
+ :r2=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:tc=ncr260vt100an:
+ncr260vt100wpp|NCR 2900_260 vt100 wide mode pc+ kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :tc=ncr260vt100pp:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260vt200an|NCR 2900_260 vt200 with ansi kybd:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\
+ :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\
+ :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\
+ :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\
+ :im=\E[4h:\
+ :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
+ :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
+ :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\
+ :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\
+ :vi=\E[?25l:
+ncr260vt200wan|NCR 2900_260 vt200 wide mode ansi kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E(B\E)0\017\E[2J\E[1;1H:\
+ :tc=ncr260vt200an:
+ncr260vt200pp|NCR 2900_260 vt200 with pc+ kybd:\
+ :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
+ :tc=ncr260vt200an:
+ncr260vt200wpp|NCR 2900_260 vt200 wide mode pc+ kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :tc=ncr260vt200pp:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260vt300an|NCR 2900_260 vt300 with ansi kybd:\
+ :am:hs:mi:ms:xn:xo:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dE:UP=\E[%dA:ae=\017:al=\E[L:as=\016:\
+ :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:\
+ :cr=\r:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:\
+ :ds=\E[0$~\E[1$~:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:ho=\E[H:\
+ :im=\E[4h:\
+ :is=\E[\041p\E[?7;19;67h\E[?1;3;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[M:k6=\E[17~:\
+ :k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:\
+ :kP=\E[5~:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:\
+ :ks=\E[?1h\E=:ku=\EOA:le=\E[D:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m\017:mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:sc=\E7:\
+ :se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[2$~\E[1$}:ue=\E[24m:up=\E[A:us=\E[4m:ve=\E[?25h:\
+ :vi=\E[?25l:
+ncr260vt300wan|NCR 2900_260 vt300 wide mode ansi kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H:\
+ :tc=ncr260vt300an:
+ncr260vt300pp|NCR 2900_260 vt300 with pc+ kybd:\
+ :@7=\E[1~:K1=\E[H:K2=\E[V:K3=\EOu:K5=\E[U:kD=\E[4~:\
+ :kI=\E[2~:kN=\E[6~:kP=\E[5~:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ks=\E=:ku=\E[A:l1=pf1:l2=pf2:l3=pf3:l4=pf4:\
+ :tc=ncr260vt300an:
+NCR260VT300WPP|ncr260vt300wpp|NCR 2900_260 vt300 wide mode pc+ kybd:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:\
+ :is=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :r2=\E[\041p\E[?3;7;19;67h\E[?1;4l\E[1;0%w\E(B\E)0\017\E[2J\E[1;1H\E>:\
+ :tc=ncr260vt300pp:
+# This terminfo file contains color capabilities for the Wyse325 emulation of
+# the NCR 2900/260C color terminal. Because of the structure of the command
+# (escape sequence) used to set color attributes, one of the fore/background
+# colors must be preset to a given value. I have set the background color to
+# black. The user can change this setup by altering the last section of the
+# 'setf' definition. The escape sequence to set color attributes is
+# ESC d y <foreground_color> <background_color> 1
+# In addition, the background color can be changed through the desk accessories.
+# The capablitiy 'op' sets colors to green on black (default combination).
+#
+# NOTE: The NCR Unix System Administrator's Shell will not function properly
+# if the 'pairs' capability is defined. Un-Comment the 'pairs'
+# capability and recompile if you wish to have it included.
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260wy325pp|NCR 2900_260 wyse 325:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:li#24:\
+ :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\
+ :K2=\EJ:K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:\
+ :as=\EH\002\EcB1:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E*:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:\
+ :ei=\Er:fs=^M:ho=\036:im=\Eq:\
+ :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
+ :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\
+ :so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:up=\013:us=\EG8:\
+ :ve=\E`1:vi=\E`0:vs=\E`5:
+ncr260wy325wpp|NCR 2900_260 wyse 325 wide mode:\
+ :co#132:\
+ :cm=\Ea%i%dR%dC:\
+ :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :tc=ncr260wy325pp:
+# This definition for Wyse 350 supports several attributes. This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies. The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+# In addition, color capabilities have been added to this file. The drawback,
+# however, is that the background color has to be black. The foreground colors
+# are numbered 0 through 15.
+#
+# NOTE: The NCR Unix System Administrator's Shell does not function properly
+# with the 'pairs' capability defined as below. If you wish to
+# have it included, Un-comment it and recompile (using 'tic').
+#
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260wy350pp|NCR 2900_260 wyse 350:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:li#24:sg#1:\
+ :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\
+ :K4=\ET:K5=\EK:ae=\EH\003\EcB0:al=\EE:as=\EH\002\EcB1:\
+ :bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :cr=^M:\
+ :ct=\E0:dc=\EW:dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:\
+ :im=\Eq:\
+ :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
+ :me=\EG0\EH\003\EcD:mh=\EGp:mr=\EG4:nd=\014:nw=\037:\
+ :se=\EG0:sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=^I:ts=\EF:ue=\EG0:\
+ :up=\013:us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
+ncr260wy350wpp|NCR 2900_260 wyse 350 wide mode:\
+ :co#132:\
+ :cm=\Ea%i%dR%dC:\
+ :is=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :r2=\Ee6\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :tc=ncr260wy350pp:
+# This definition for Wyse 50+ supports several attributes. This means
+# that it has magic cookies (extra spaces where the attributes begin).
+# Some applications do not function well with magic cookies. The System
+# Administrator's Shell in NCR Unix SVR4 1.03 is one such application.
+# If supporting various attributes is not vital, 'xmc#1' and the extra
+# attributes can be removed.
+# Mapping to ASCII character set ('acsc' capability) can also be
+# restored if needed.
+# (ncr260wy50+pp: originally contained commented-out
+# <acsc=j5k3l2m1n8q:t4u9v=w0x6>, as well as the commented-out one there -- esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260wy50+pp|NCR 2900_260 wyse 50+:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:li#24:sg#1:\
+ :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\
+ :K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:\
+ :ce=\ET:cl=\E+:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:\
+ :do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\
+ :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
+ :me=\EG0\EH\003:mh=\EGp:mr=\EG4:nd=\014:nw=\037:se=\EG0:\
+ :sf=\n:so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\
+ :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
+ncr260wy50+wpp|NCR 2900_260 wyse 50+ wide mode:\
+ :co#132:\
+ :cm=\Ea%i%dR%dC:\
+ :is=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :r2=\Ee6\E~"\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :tc=ncr260wy50+pp:
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+ncr260wy60pp|NCR 2900_260 wyse 60:\
+ :am:bw:hs:km:mi:ms:xo:\
+ :co#80:li#24:\
+ :CM=\Ew@%p1%{48}%+%c%p2%{32}%+%c%p3%{32}%+%c:K1=^^:\
+ :K2=\EJ:K4=\ET:K5=\EK:ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:\
+ :cd=\Ey:ce=\Et:cl=\E*:cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:\
+ :dl=\ER:do=\n:ds=\E`c:ei=\Er:fs=^M:ho=\036:im=\Eq:\
+ :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`\072\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\Eq:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=\010:mb=\EG2:\
+ :me=\EG0\EcB0\EcD:mr=\EG4:nd=\014:nw=\037:se=\EG0:sf=\n:\
+ :so=\EGt:sr=\Ej:st=\E1:ta=\011:ts=\EF:ue=\EG0:up=\013:\
+ :us=\EG8:ve=\E`1:vi=\E`0:vs=\E`5:
+ncr260wy60wpp|NCR 2900_260 wyse 60 wide mode:\
+ :co#132:\
+ :cm=\Ea%i%dR%dC:\
+ :is=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :r2=\Ee6\E~4\E+\Ed/\Ee1\Ed*\Er\EO\E`1\E`;\E`@\E~\041\E"\Ee4\Ex@\E`9\Ee7:\
+ :tc=ncr260wy60pp:
+ncr160vppp|NCR 2900_160 viewpoint:\
+ :tc=ncr260vppp:
+ncr160vpwpp|NCR 2900_160 viewpoint wide mode:\
+ :tc=ncr260vpwpp:
+ncr160vt100an|NCR 2900_160 vt100 with ansi kybd:\
+ :tc=ncr260vt100an:
+ncr160vt100pp|NCR 2900_160 vt100 with PC+ kybd:\
+ :tc=ncr260vt100pp:
+ncr160vt100wan|NCR 2900_160 vt100 wide mode ansi kybd:\
+ :tc=ncr260vt100wan:
+ncr160vt100wpp|NCR 2900_160 vt100 wide mode pc+ kybd:\
+ :tc=ncr260vt100wpp:
+ncr160vt200an|NCR 2900_160 vt200 with ansi kybd:\
+ :tc=ncr260vt200an:
+ncr160vt200pp|NCR 2900_160 vt200 with pc+ kybd:\
+ :tc=ncr260vt200pp:
+ncr160vt200wan|NCR 2900_160 vt200 wide mode ansi kybd:\
+ :tc=ncr260vt200wan:
+ncr160vt200wpp|NCR 2900_160 vt200 wide mode pc+ kybd:\
+ :tc=ncr260vt200wpp:
+ncr160vt300an|NCR 2900_160 vt300 with ansi kybd:\
+ :tc=ncr260vt300an:
+ncr160vt300pp|NCR 2900_160 vt300 with pc+ kybd:\
+ :tc=ncr260vt300pp:
+ncr160vt300wan|NCR 2900_160 vt300 wide mode ansi kybd:\
+ :tc=ncr260vt300wan:
+ncr160vt300wpp|NCR 2900_160 vt300 wide mode pc+ kybd:\
+ :tc=ncr260vt300wpp:
+ncr160wy50+pp|NCR 2900_160 wyse 50+:\
+ :tc=ncr260wy50+pp:
+ncr160wy50+wpp|NCR 2900_160 wyse 50+ wide mode:\
+ :tc=ncr260wy50+wpp:
+ncr160wy60pp|NCR 2900_160 wyse 60:\
+ :tc=ncr260wy60pp:
+ncr160wy60wpp|NCR 2900_160 wyse 60 wide mode:\
+ :tc=ncr260wy60wpp:
+ncrvt100an|ncrvt100pp|NCR vt100 for the 2900 terminal:\
+ :5i:am:hs:mi:ms:xo:\
+ :Nl#32:co#80:it#8:li#24:\
+ :#4=\E[D:%i=\E[C:@8=^M:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
+ :DO=\E[%dB:K1=\E[H:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:\
+ :ac=``aaffgghhiijjkkllmmnnqqttuuvvwwxxyyzz~~:ae=\017:\
+ :al=\E[B\E[L:as=\016:bl=^G:cb=\E[1K:cd=\E[0J:ce=\E[0K:\
+ :cl=\E[2J\E[1;1H:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[1P:dl=\E[M:do=\E[B:ds=\E[31l:eA=\E(B\E)0:\
+ :ei=\E[4l:fs=1:ho=\E[H:im=\E[4h:\
+ :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3l\E(B\E)0:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:\
+ :ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\017\E[0m:mr=\E[7m:\
+ :nd=\E[C:nw=\EE:ps=\E[i:\
+ :r2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\
+ :rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<100>:\
+ :sc=\E7:se=\E[0m:sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ts=\E[>+1:ue=\E[0m:up=\E[A:us=\E[4m:
+ncrvt100wan|NCRVT100WPP|ncrvt100wpp|NCR VT100 emulation of the 2900 terminal:\
+ :co#132:\
+ :is=\E[12h\E[?10l\E%/0n\E[P\031\E[?3h\E(B\E)0:\
+ :r2=\Ec\E[12;31h\E[?4;5;10l\E?3;6;7;19;25h\E[33;34l\E[0m\E(B\E)0\E%/0n\E[P\031:\
+ :tc=ncrvt100an:
+#
+# Vendor-supplied NCR termcaps end here
+
+# NCR7900 DIP switches:
+#
+# Switch A:
+# 1-4 - Baud Rate
+# 5 - Parity (Odd/Even)
+# 6 - Don't Send or Do Send Spaces
+# 7 - Parity Enable
+# 8 - Stop Bits (One/Two)
+#
+# Switch B:
+# 1 - Upper/Lower Shift
+# 2 - Typewriter Shift
+# 3 - Half Duplex / Full Duplex
+# 4 - Light/Dark Background
+# 5-6 - Carriage Return Without / With Line Feed
+# 7 - Extended Mode
+# 8 - Suppress Keyboard Display
+#
+# Switch C:
+# 1 - End of line entry disabled/enabled
+# 2 - Conversational mode / (Local?) Mode
+# 3 - Control characters displayed / not displayed
+# 4 - (2-wire?) / 4-wire communications
+# 5 - RTS on and off for each character
+# 6 - (50Hz?) / 60 Hz
+# 7 - Exit after level zero diagnostics
+# 8 - RS-232 interface
+#
+# Switch D:
+# 1 - Reverse Channel (yes / no)
+# 2 - Manual answer (no / yes)
+# 3-4 - Cursor appearance
+# 5 - Communication Rate
+# 6 - Enable / Disable EXT turnoff
+# 7 - Enable / Disable CR turnoff
+# 8 - Enable / Disable backspace
+#
+# Since each attribute parameter is 0 or 1, we shift each attribute (standout,
+# reverse, blink, dim, and underline) the appropriate number of bits (by
+# multiplying the 0 or 1 by a correct factor to shift) so the bias character,
+# '@' is (effectively) "or"ed with each attribute to generate the proper third
+# character in the <ESC>0 sequence. The :sa: string implements the following
+# equation:
+#
+# ((((('@' + P5) | (P4 << 1)) | (P3 << 3)) | (P2 << 4)) | (p1 * 17)) =>
+# ((((('@' + P5) + (P4 << 1)) + (P3 << 3)) + (P2 << 4)) + (p1 * 17))
+#
+# Where: P1 <==> Standout attribute parameter
+# P2 <==> Underline attribute parameter
+# P3 <==> Reverse attribute parameter
+# P4 <==> Blink attribute parameter
+# P5 <==> Dim attribute parameter
+# From <root@goliath.un.atlantaga.NCR.COM>, init string hacked by SCO.
+ncr7900i|ncr7900|ncr 7900 model 1:\
+ :am:bw:ul:\
+ :co#80:li#24:sg#1:\
+ :bl=^G:cd=\Ek:ce=\EK:cl=^L:cm=\E1%r%.%.:cr=^M:do=^J:\
+ :is=\E0@\010\E3\E4\E7:kd=^J:kh=^A:kl=^U:kr=^F:ku=^Z:le=^H:\
+ :ll=^A:mb=\E0B:me=\E0@:mh=\E0A:mr=\E0P:nd=^F:pf=^T:po=^R:\
+ :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c:\
+ :se=\E0@:sf=^J:so=\E0Q:ue=\E0@:up=^Z:us=\E0`:
+ncr7900iv|ncr 7900 model 4:\
+ :am:bw:es:hs:\
+ :co#80:li#24:\
+ :al=\E^N:bl=^G:cl=^L:cm=\013%+@\E\005%02:cr=^M:dl=\E^O:\
+ :do=^J:ds=\Ey1:fs=\Ek\Ey5:ho=\013@\E^E00:k1=\ES:k2=\ET:\
+ :k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:kb=^H:kd=\EB:\
+ :kh=\EH:kl=\ED:kr=\EC:ku=\EA:l6=blue:l7=red:l8=white:le=^H:\
+ :nw=^M^J:sf=^J:ts=\Ej\Ex5\Ex1\EY8%p1%{32}%+%c\Eo:
+# Warning: This terminal will lock out the keyboard when it receives a CTRL-D.
+# The user can enter a CTRL-B to get out of this locked state.
+# In <hpa>, we want to output the character given by the formula:
+# ((col / 10) * 16) + (col % 10) where "col" is "p1"
+ncr7901|ncr 7901 model:\
+ :am:bw:ul:\
+ :co#80:li#24:\
+ :bl=^G:cd=\Ek:ce=\EK:ch=\020%+^J:cl=^L:cm=\EY%+ %+ :cr=^M:\
+ :cv=\013%+@:do=^J:is=\E4^O:kC=^L:kd=^J:kh=^H:kl=^U:kr=^F:\
+ :ku=^Z:le=^H:ll=^A:mb=\E0B:me=^O:mh=\E0A:mr=\E0P:nd=^F:pf=^T:\
+ :po=^R:\
+ :..sa=\E0%p5%{64}%+%p4%{2}%*%+%p3%{16}%*%+%p2%{32}%*%+%p1%{17}%*%+%c\016:\
+ :se=^O:sf=^J:so=\E0Q\016:ue=^O:up=^Z:us=\E0`\016:ve=^X:\
+ :vi=^W:
+
+#### Perkin-Elmer (Owl)
+#
+# These are official terminfo entries from within Perkin-Elmer.
+#
+
+bantam|pe550|pe6100|perkin elmer 550:\
+ :bs:\
+ :co#80:li#24:\
+ :bl=^G:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:do=^J:ho=\EH:\
+ :le=^H:ll=\EH\EA:nd=\EC:sf=^J:up=\EA:
+fox|pe1100|perkin elmer 1100:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :cr=^M:\
+ :ct=\E3:do=^J:ho=\EH:le=^H:ll=\EH\EA:nd=\EC:sf=^J:st=\E1:\
+ :up=\EA:vb=\020\002\020\003:
+owl|pe1200|perkin elmer 1200:\
+ :am:bs:in:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EI:cl=\EH\EJ:cm=\EX%+ \EY%+ :\
+ :cr=^M:ct=\E3:dc=\EO:dl=\EM:do=^J:ei=:ho=\EH:ic=\EN:im=:ip=:\
+ :k0=\ERJ:k1=\ERA:k2=\ERB:k3=\ERC:k4=\ERD:k5=\ERE:k6=\ERF:\
+ :k7=\ERG:k8=\ERH:k9=\ERI:kb=^H:le=^H:ll=\EH\EA:me=\E\041\0:\
+ :nd=\EC:se=\E\041\0:sf=^J:so=\E\041^H:st=\E1:up=\EA:\
+ :vb=\020\002\020\003:
+pe1251|pe6300|pe6312|perkin elmer 1251:\
+ :am:\
+ :co#80:it#8:li#24:pb#300:sg#1:vt#8:\
+ :bl=^G:cd=\EJ:ce=\EI:cl=\EK:cm=\EX%+ \EY%+ :cr=^M:ct=\E3:\
+ :do=\EB:ho=\EH:k0=\ERA:k1=\ERB:k2=\ERC:k3=\ERD:k4=\ERE:\
+ :k5=\ERF:k6=\ERG:k7=\ERH:k8=\ERI:k9=\ERJ:k;=\ERK:le=\ED:\
+ :nd=\EC:sf=^J:st=\E1:up=\EA:
+# (pe7000m: this had
+# rmul=\E!\0, smul=\E!\040,
+# which is probably wrong, it collides with kf0
+pe7000m|perkin elmer 7000 series monochrome monitor:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:bt=\E\041Y:cd=\EJ:ce=\EI:cl=\EK:cm=\ES%+ %+ :cr=^M:\
+ :do=\EB:ho=\EH:i1=\E\041\0\EW 7o\Egf\ES7 :k0=\E\041\0:\
+ :k1=\E\041^A:k2=\E\041^B:k3=\E\041^C:k4=\E\041^D:\
+ :k5=\E\041^E:k6=\E\041^F:k7=\E\041^G:k8=\E\041^H:\
+ :k9=\E\041^I:k;=\E\041^J:kb=^H:kd=\E\041U:kh=\E\041S:\
+ :kl=\E\041V:kr=\E\041W:ku=\E\041T:le=\ED:ll=\ES7 :nd=\EC:\
+ :sf=^J:sr=\ER:up=\EA:
+pe7000c|perkin elmer 7000 series colour monitor:\
+ :i1=\E\041\0\EW 7o\Egf\Eb0\Ec7\ES7 :se=\Eb0:so=\Eb2:\
+ :ue=\E\041\0:us=\E\041 :\
+ :tc=pe7000m:
+
+#### Prime
+#
+# Yes, Prime made terminals. These entries were posted by Kevin J. Cummings
+# <cummings@primerd.prime.com> on 14 Dec 1992 and lightly edited by esr.
+# Prime merged with ComputerVision in the late 1980s; you can reach them at:
+#
+# ComputerVision Services
+# 500 Old Connecticut Path
+# Framingham, Mass.
+#
+
+# Standout mode is dim reverse-video.
+pt100|pt200|wren|fenix|prime pt100/pt200:\
+ :am:bw:mi:ms:\
+ :co#80:it#8:li#24:\
+ :DC=\E[%dP:DL=\E[M:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:al=\E[L\E[t:bt=\E[Z:cd=\E[J\E[r:ce=\E[K\E[t:\
+ :cl=\E?:cm=\E0%+!%+!:cr=^M:dc=\E[P:do=\ED:ei=\E[4l:ho=\E$B:\
+ :im=\E[4h:kb=^H:kd=\E[B:ke=\E[>13l:kh=\E$A:kl=\E[D:kr=\E[C:\
+ :ks=\E[>13h:ku=\E[A:le=^H:me=\E[m:mh=\E[2m:nd=\E[C:nw=^M^J:\
+ :se=\E[m:sf=^J:so=\E[2;7m:ta=^I:te=:\
+ :ti=\E[>1l\E[>2l\E[>16l\E[4l\E[>9l\E[20l\E[>3l\E[>7h\E[>12l\E[1Q:\
+ :ue=\E[m:up=\EM:us=\E[4m:vb=\E$\E$P:
+pt100w|pt200w|wrenw|fenixw|prime pt100/pt200 in 132-column mode:\
+ :co#132:\
+ :cm=\E[%i%d;%dH:tc=pt100:
+pt250|Prime PT250:\
+ :se@:so@:tc=pt100:
+pt250w|Prime PT250 in 132-column mode:\
+ :se@:so@:tc=pt100w:
+
+#### Sperry Univac
+#
+# Sperry Univac has merged with Burroughs to form Unisys.
+#
+
+# This entry is for the Sperry UTS30 terminal running the TTY
+# utility under control of CP/M Plus 1R1. The functionality
+# provided is comparable to the DEC vt100.
+# (uts30: I added <rmam>/<smam> based on the init string -- esr)
+uts30|sperry uts30 with cp/m@1R1:\
+ :am:bw:hs:\
+ :co#80:li#24:ws#40:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7m:SF=\E[%dB:\
+ :SR=\E[%dA:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\Ed:al=\EN:as=\EF:bl=^G:cd=\E[J:ce=\E[K:cl=^L:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\EU%+ %+ :dc=\EM:dl=\EL:do=\EB:\
+ :ei=:fs=^M:ho=\E[H:ic=\EO:im=:is=\E[U 7\E[24;1H:kb=^H:\
+ :kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\EC:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\EX:\
+ :rf=/usr/share/tabset/vt100:sc=\EW:se=\E[m:sf=^J:\
+ :so=\E[7m:sr=\EI:ta=^I:ts=\E]:uc=\EPB:ue=\E[m:up=\E[A:\
+ :us=\E[4m:ve=\ES:vi=\ER:
+
+#### Tandem
+#
+# Tandem builds these things for use with its line of fault-tolerant
+# transaction-processing computers. They aren't generally available
+# on the merchant market, and so are fairly uncommon.
+#
+
+tandem6510|adm3a repackaged by Tandem:\
+ :tc=adm3a:
+
+# A funny series of terminal that TANDEM uses. The actual model numbers
+# have a fourth digit after 653 that designates minor variants. These are
+# natively block-mode and rather ugly, but they have a character mode which
+# this doubtless(?) exploits. There is a 6520 that is slightly dumber.
+# (tandem653: had ":sb=\ES:", probably someone's mistake for sf; also,
+# removed :if=/usr/share/tabset/tandem653:, no such file -- esr)
+tandem653|t653x|Tandem 653x multipage terminal:\
+ :am:bs:da:db:hs:\
+ :co#80:li#24:sg#1:ws#64:\
+ :cd=\EJ:ce=\EK:cl=\EI:cm=\023%+ %+ :do=^J:ds=\Eo\r:fs=^M:\
+ :ho=\EH:le=^H:me=\E6 :nd=\EC:se=\E6 :sf=\ES:so=\E6$:sr=\ET:\
+ :ts=\Eo:ue=\E6 :up=\EA:us=\E60:
+
+#### Tandy/Radio Shack
+#
+# Tandy has a line of VDTs distinct from its microcomputers.
+#
+
+dmterm|deskmate terminal:\
+ :am:bw:\
+ :co#80:li#24:\
+ :al=\EP:bl=^G:cd=\EJ:ce=\EK:cl=\Ej:cm=\EY%+ %+ :cr=^M:\
+ :dc=\ES:dl=\ER:do=\EB:ei=:ho=\EH:ic=\EQ:im=:k0=\E1:k1=\E2:\
+ :k2=\E3:k3=\E4:k4=\E5:k5=\E6:k6=\E7:k7=\E8:k8=\E9:k9=\E0:\
+ :kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:l2=f3:l3=f4:\
+ :l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:ll=\EE:mk@:nd=\EC:\
+ :sf=\EX:ta=^I:ue@:up=\EA:us@:ve=\EG6:vi=\EG5:\
+ :tc=adm+sgr:
+dt100|dt-100|Tandy DT-100 terminal:\
+ :xo:\
+ :co#80:li#24:sg#1:\
+ :ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[L:as=^N:bl=^G:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%2;%2r:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:\
+ :im=:is=\E[?3l\E)0\E(B:k1=\E[?3i:k2=\E[2i:k3=\E[@:k4=\E[M:\
+ :k5=\E[17~:k6=\E[18~:k7=\E[19~:k8=\E[20~:k9=\E[21~:\
+ :k;=\E[?5i:kN=\E[29~:kP=\E[28~:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:l1=f1:l2=f2:l3=f3:l4=f4:l5=f5:l6=f6:l7=f7:\
+ :l8=f8:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:\
+ :ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
+dt100w|dt-100w|Tandy DT-100 terminal (wide mode):\
+ :co#132:tc=dt100:
+dt110|Tandy DT-110 emulating ansi:\
+ :xo:\
+ :co#80:li#24:\
+ :@7=\E[K:ac=jjkkllmmnnqqttuuvvwwxx:ae=^O:al=\E[0L:as=^N:\
+ :bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\010\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:dc=\E[0P:dl=\E[0M:do=\E[0B:\
+ :eA=\E(B\E)0:ei=:ho=\E[H:ic=\E[0@:im=:is=\E[?3l\E)0\E(B:\
+ :k1=\E[1~:k2=\E[2~:k3=\E[3~:k4=\E[4~:k5=\E[5~:k6=\E[6~:\
+ :k7=\E[7~:k8=\E[8~:k9=\E[9~:k;=\E[10~:kI=\E[@:kN=\E[26~:\
+ :kP=\E[25~:kd=\E[B:kh=\E[G:kl=\E[D:kr=\E[C:ku=\E[A:l0=f1:\
+ :l1=f2:l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:l8=f9:l9=f10:le=^H:\
+ :me=\E[m:nd=\E[C:se=\E[m:sf=^J:so=\E[7m:sr=\EM:ta=^I:\
+ :ue=\E[m:up=\E[0A:us=\E[4m:ve=\E[?25h:vi=\E[?25l:
+pt210|TRS-80 PT-210 printing terminal:\
+ :hc:os:\
+ :co#80:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+
+#### Tektronix (tek)
+#
+# Tektronix tubes are graphics terminals. Most of them use modified
+# oscilloscope technology incorporating a long-persistence green phosphor,
+# and support vector graphics on a main screen with an attached "dialogue
+# area" for interactive text.
+#
+
+tek|tek4012|tektronix 4012:\
+ :bs:os:\
+ :co#75:li#35:\
+ :bl=^G:cl=\E\014:cr=^M:do=^J:ff=\014:is=\E^O:le=^H:
+# (tek4013: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
+tek4013|tektronix 4013:\
+ :ac=:ae=\E^O:as=\E^N:tc=tek4012:
+tek4014|tektronix 4014:\
+ :co#81:li#38:\
+ :is=\E\017\E9:tc=tek4012:
+# (tek4015: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
+tek4015|tektronix 4015:\
+ :ac=:ae=\E^O:as=\E^N:tc=tek4014:
+tek4014-sm|tektronix 4014 in small font:\
+ :co#121:li#58:\
+ :is=\E\017\E\072:tc=tek4014:
+# (tek4015-sm: added <acsc> to suppress tic warnings re :as:/:ae: --esr)
+tek4015-sm|tektronix 4015 in small font:\
+ :ac=:ae=\E^O:as=\E^N:tc=tek4014-sm:
+# Tektronix 4023 from Andrew Klossner <orca!andrew.tektronix@csnet-relay>
+#
+# You need to have "stty nl2" in effect. Some versions of tset(1) know
+# how to set it for you.
+#
+# It's got the Magic Cookie problem around stand-out mode. If you can't
+# live with Magic Cookie, remove the :so: and :se: fields and do without
+# reverse video. If you like reverse video stand-out mode but don't want
+# it to flash, change the letter 'H' to 'P' in the :so: field.
+tek4023|tektronix 4023:\
+ :am:bs:\
+ :co#80:dN#4:li#24:sg#1:vt#4:\
+ :bl=^G:cl=4\E\014:cm=\034%r%+ %+ :cr=^M:do=^J:kb=^H:le=^H:\
+ :nd=^I:nl=^J:se=^_@:so=^_P:
+# It is recommended that you run the 4025 at 4800 baud or less;
+# various bugs in the terminal appear at 9600. It wedges at the
+# bottom of memory (try "cat /usr/dict/words"); ^S and ^Q typed
+# on keyboard don't work. You have to hit BREAK twice to get
+# one break at any speed - this is a documented feature.
+# Can't use cursor motion because it's memory relative, and
+# because it only works in the workspace, not the monitor.
+# Same for home. Likewise, standout only works in the workspace.
+#
+# :ce: was commented out since vi and rogue seem to work better
+# simulating it with lots of spaces!
+#
+# :al: and :AL: had 145ms of padding, but that slowed down vi's ^U
+# and didn't seem necessary.
+#
+tek4024|tek4025|tek4027|tektronix 4024/4025/4027:\
+ :am:bs:da:db:\
+ :co#80:it#8:li#34:lm#0:\
+ :AL=\037up\r\037ili %d\r:CC=^_:DL=\037dli %d\r\006:\
+ :DO=\037dow %d\r:LE=\037lef %d\r:RI=\037rig %d\r:\
+ :UP=\037up %d\r:al=\037up\r\037ili\r:bl=^G:\
+ :cd=\037dli 50\r:cl=\037era\r\n\n:cr=^M:dc=\037dch\r:\
+ :dl=\037dli\r\006:do=^F^J:ei=:ic=\037ich\r \010:im=:\
+ :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\
+ :ke=\037lea p2\r\037lea p4\r\037lea p6\r\037lea p8\r\037lea f5\r:\
+ :ks=\037lea p4 /h/\r\037lea p8 /k/\r\037lea p6 / /\r\037lea p2 /j/\r\037lea f5 /H/\r:\
+ :le=^H:nd=\037rig\r:sf=^F^J:ta=^I:up=^K:
+tek4025-17|tek 4025 17 line window:\
+ :li#17:tc=tek4025:
+tek4025-17-ws|tek 4025 17 line window in workspace:\
+ :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r\037wor 17\r\037mon 17\r:\
+ :se=\037att s\r:so=\037att e\r:te=\037mon h\r:\
+ :ti=\037wor h\r:\
+ :tc=tek4025-17:
+tek4025-ex|tek4027-ex|tek 4025/4027 w/!:\
+ :is=\037com 33\r\n\041sto 9 17 25 33 41 49 57 65 73\r:\
+ :te=\037com 33\r:ti=\041com 31\r:\
+ :tc=tek4025:
+# Tektronix 4025a
+# From: Doug Gwyn <gwyn@brl-smoke.ARPA>
+# The following status modes are assumed for normal operation (replace the
+# initial "!" by whatever the current command character is):
+# !COM 29 # NOTE: changes command character to GS (^])
+# ^]DUP
+# ^]ECH R
+# ^]EOL
+# ^]RSS T
+# ^]SNO N
+# ^]STO 9 17 25 33 41 49 57 65 73
+# Other modes may be set according to communication requirements.
+# If the command character is inadvertently changed, termcap can't restore it.
+# Insert-character cannot be made to work on both top and bottom rows.
+# Clear-to-end-of-display emulation via !DLI 988 is too grotty to use, alas.
+# There also seems to be a problem with vertical motion, perhaps involving
+# delete/insert-line, following a typed carriage return. This terminal sucks.
+# Delays not specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# (tek4025a: removed obsolete ":xx:". This may mean the tek4025a entry won't
+# work any more. -- esr)
+tek4025a|Tektronix 4025A:\
+ :am:bs:bw:da:db:pt:xo:\
+ :co#80:it#8:li#34:\
+ :CC=^]:DC=\035dch %d;:DL=\035dli %d;:DO=\035dow %d;:\
+ :LE=\035lef %d;:RI=\035rig %d;:SF=\035dow %d;:\
+ :UP=\035up %d;:al=\013\035ili;:bl=^G:bt=\035bac;:\
+ :ce=\035dch 80;:ch=\r\035rig %d;:cl=\035era;\n\035rup;:\
+ :cr=^M:ct=\035sto;:dc=\035dch;:dl=\035dli;:do=^J:le=^H:\
+ :nd=\035rig;:\
+ :rs=\041com 29\035del 0\035rss t\035buf\035buf n\035cle\035dis\035dup\035ech r\035eol\035era g\035for n\035pad 203\035pad 209\035sno n\035sto 9 17 25 33 41 49 57 65 73\035wor 0;:\
+ :sf=^J:ta=^I:up=^K:
+# From: cbosg!teklabs!davem Wed Sep 16 21:11:41 1981
+# Here's the command file that I use to get rogue to work on the 4025.
+# It should work with any program using the old curses (e.g. it better
+# not try to scroll, or cursor addressing won't work. Also, you can't
+# see the cursor.)
+# (This "learns" the arrow keys for rogue. I have adapted it for termcap - mrh)
+tek4025-cr|tek 4025 for curses and rogue:\
+ :am:bs:\
+ :co#80:it#8:li#33:\
+ :cl=\037era;:cm=\037jum%i%d\054%d;:do=^F^J:\
+ :is=\041com 31\r\n\037sto 9 17 25 33 41 49 57 65 73\r:\
+ :le=^H:nd=\037rig;:sf=^F^J:ta=^I:te=\037wor 0:\
+ :ti=\037wor 33h:up=^K:
+# next two lines commented out since curses only allows 128 chars, sigh.
+# :ti=\037lea p1/b/\037lea p2/j/\037lea p3/n/\037lea p4/h/\037lea p5/ /\037lea p6/l/\037lea p7/y/\037lea p8/k/\037lea p9/u/\037lea p./f/\037lea pt/`era w/13\037lea p0/s/\037wor 33h:\
+# :te=\037lea p1\037lea p2\037lea p3\037lea p4\037lea pt\037lea p5\037lea p6\037lea p7\037lea p8\037lea p9/la/13\037lea p.\037lea p0\037wor 0:
+tek4025ex|4025ex|4027ex|tek 4025 w/!:\
+ :is=\037com 33\r\n\041sto 9\05417\05425\05433\05441\05449\05457\05465\05473\r:\
+ :te=\037com 33\r:ti=\041com 31\r:\
+ :tc=tek4025:
+tek4105|tektronix 4105:\
+ :am:bs:mi:ms:ul:xn:xt:\
+ :co#79:it#8:li#29:\
+ :ac=:ae=\E[m:al=\E[1L:as=\E[1m:bl=^G:bt=\E[Z:cd=\E[J:\
+ :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%2;%2H:cr=^M:ct=\E[1g:\
+ :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:i1=\E%!1\E[m:\
+ :im=\E[4h:is=\E%!1\E[?6141\E[m:kb=^H:kd=\E[1B:kl=\E[1D:\
+ :kr=\E[1C:ku=\E[1A:mb=\E[=3;<7m:md=\E[=7;<4m:\
+ :me=\E[=0;<1m:mh=\E[=1;<6m:mk=\E[=6;<5:mr=\E[=1;<3m:\
+ :nd=\E[1C:se=\E[=0;<1m:sf=\E[S:so=\E[=2;<3m:sr=\E[T:ta=^I:\
+ :te=:ti=\E%!1\E[?6l\E[2J:ue=\E[=0;<1m:up=\E[1A:\
+ :us=\E[=5;<2m:
+
+# (tek4105-30: I added <rmam>/<smam> based on the init string -- esr)
+tek4105-30|4015 emulating 30 line vt100:\
+ :am:mi:ms:xn:xo:\
+ :co#80:it#8:li#30:vt#3:\
+ :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^J:\
+ :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:\
+ :nd=\E[C:r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :..sa=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[1;7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+
+# Tektronix 4105 from BRL
+# The following setup modes are assumed for normal operation:
+# CODE ansi CRLF no DABUFFER 141
+# DAENABLE yes DALINES 30 DAMODE replace
+# DAVISIBILITY yes ECHO no EDITMARGINS 1 30
+# FLAGGING input INSERTREPLACE replace LFCR no
+# ORIGINMODE relative PROMPTMODE no SELECTCHARSET G0 B
+# SELECTCHARSET G1 0 TABS -2
+# Other setup modes may be set for operator convenience or communication
+# requirements; I recommend
+# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
+# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
+# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
+# GAMODE overstrike GCURSOR 0 100 0 GSPEED 10 1
+# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
+# PROMPTSTRING '' QUEUESIZE 2460 WINDOW 0 0 4095 3132
+# XMTDELAY 0
+# and factory color maps. After setting these modes, save them with NVSAVE. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# "IC" cannot be used in combination with "im" & "ei".
+# "tek4105a" is just a guess:
+tek4105a|Tektronix 4105:\
+ :bs:ms:pt:xo:\
+ :co#80:it#8:kn#8:li#30:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\
+ :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\
+ :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\
+ :l5=F6:l6=F8:le=^H:ll=\E[30;H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:rc=\E8:\
+ :rs=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLA>\ELM0\EKE0\ENF1\EKS0\END0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\
+ :sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:us=\E[4m:\
+ :ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\
+ :vs=\E%!0\ETD70\E%!1:
+
+#
+# Tektronix 4106/4107/4109 from BRL
+# The following setup modes are assumed for normal operation:
+# CODE ansi COLUMNMODE 80 CRLF no
+# DABUFFER 141 DAENABLE yes DALINES 32
+# DAMODE replace DAVISIBILITY yes ECHO no
+# EDITMARGINS 1 32 FLAGGING input INSERTREPLACE replace
+# LFCR no LOCKKEYBOARD no ORIGINMODE relative
+# PROMPTMODE no SELECTCHARSET G0 B SELECTCHARSET G1 0
+# TABS -2
+# Other setup modes may be set for operator convenience or communication
+# requirements; I recommend
+# ACURSOR 1 0 AUTOREPEAT yes AUTOWRAP yes
+# BYPASSCANCEL <LF> CURSORKEYMODE no DAINDEX 1 0 0
+# EOFSTRING '' EOLSTRING <CR> EOMCHARS <CR> <NU>
+# GAMODE overstrike GCURSOR 0 100 0 GSPEED 9 3
+# IGNOREDEL no KEYEXCHAR <DL> NVDEFINE -53 "<NU>"
+# PROMPTSTRING '' QUEUESIZE 2620 WINDOW 0 0 4095 3132
+# XMTDELAY 0
+# and factory color maps. After setting these modes, save them with NVSAVE. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+# "IC" cannot be used in combination with "im" & "ei".
+tek4106brl|tek4107brl|tek4109brl|Tektronix 4106 4107 or 4109:\
+ :ms:xo:\
+ :co#80:it#8:li#32:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:ae=^O:al=\E[L:\
+ :as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:\
+ :dl=\E[M:do=^J:ec=\E[%dX:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E%!1:k0=\EOA:k1=\EOB:k2=\EOC:k3=\EOD:k4=\EOP:k5=\EOQ:\
+ :k6=\EOR:k7=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:l4=F5:\
+ :l5=F6:l6=F8:le=^H:ll=\E[32;H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:nw=\EE:\
+ :r1=\030\E%!0\EKC\E\014\EKR0\EKF0\ENM0\ELBH=\ETF8000010F40\ELI100\ELLB0\ELM0\EKE0\ENF1\EKS0\END0\ERE0\E%!1\Ec\E[?3;5l\E[?7;8h\E[r\E[m\E>:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7;42m:sr=\EM:st=\EH:\
+ :ta=^I:te=\E%!0\ELBH=\E%!1:ti=\E[?6l:ue=\E[m:up=\EM:\
+ :us=\E[4m:ve=\E%!0\ETD10\E%!1:vi=\E%!0\ETD00\E%!1:\
+ :vs=\E%!0\ETD70\E%!1:
+
+tek4107|tek4109|tektronix terminals 4107 4109:\
+ :am:bs:mi:ms:ul:xn:xt:\
+ :co#79:it#8:li#29:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\ELZ:cm=\EY%+ %+ :cr=^M:do=^J:kb=^H:\
+ :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:mb=\E%!1\E[5m\E%!0:\
+ :md=\E%!1\E[1m\E%!0:me=\E%!1\E[m\E%!0:\
+ :mh=\E%!1\E[<0m\E%!0:mr=\E%!1\E[7m\E%0:nd=\EC:\
+ :..sa=\E%%\0411\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m\E%%\0410:\
+ :se=\E%!1\E[m\E%!0:sf=^J:so=\E%!1\E[7;5m\E%!0:sr=\EI:\
+ :ta=^I:ue=\E%!1\E[m\E%!0:up=\EA:us=\E%!1\E[4m\E%!0:\
+ :ve=\E%!0:vs=\E%!3:
+# Tektronix 4207 with sysline. In the ancestral termcap file this was 4107-s;
+# see the note attached to tek4207.
+tek4207-s|Tektronix 4207 with sysline but no memory:\
+ :es:hs:\
+ :ds=\E7\E[?6l\E[2K\E[?6h\E8:fs=\E[?6h\E8:\
+ :i1=\E%!1\E[2;32r\E[132D\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\
+ :is=\E7\E[?6l\E[2K\E[?6h\E8:\
+ :ts=\E7\E[?6l\E[2K\E[;%i%df:tc=tek4107:
+
+# The 4110 series may be a wonderful graphics series, but they make the 4025
+# look good for screen editing. In the dialog area, you can't move the cursor
+# off the bottom line. Out of the dialog area, ^K moves it up, but there
+# is no way to scroll.
+#
+# Note that there is a floppy for free from Tek that makes the
+# 4112 emulate the vt52 (use the vt52 termcap). There is also
+# an expected enhancement that will use ANSI standard sequences.
+#
+# 4112 in non-dialog area pretending to scroll. It really wraps
+# but vi is said to work (more or less) in this mode.
+#
+# 'vi' works reasonably well with this entry.
+#
+otek4112|o4112-nd|otek4113|otek4114|old tektronix 4110 series:\
+ :am:\
+ :co#80:li#34:\
+ :bl=^G:cl=\E^L:cr=^M:do=^J:le=^H:sf=^J:te=\EKA1\ELV1:\
+ :ti=\EKA0\ELV0\EMG0:up=^K:
+# The 4112 with the ANSI compatibility enhancement
+tek4112|tek4114|tektronix 4110 series:\
+ :am:bs:db:\
+ :co#80:li#34:\
+ :al=\E[L:bt=\E[Z:cd=\E[0J:ce=\E[0K:cl=\E[2J\E[0;0H:\
+ :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=:ic=\E[@:im=:\
+ :is=\E3\0411:le=^H:me=\E[m:nd=\E[C:se=\E[m:\
+ :sf=\E7\E[0;0H\E[M\E8:so=\E[7m:sr=\E7\E[0;0H\E[L\E8:\
+ :ue=\E[m:up=\EM:us=\E[4m:
+tek4112-nd|4112 not in dialog area:\
+ :ns:\
+ :up=^K:tc=tek4112:
+tek4112-5|4112 in 5 line dialog area:\
+ :li#5:tc=tek4112:
+# (tek4113: this used to have ":nd=\LM1\s\LM0:", someone's mistake;
+# removed ":as=\E^N:, :ae=\E^O:", which had been commented out in 8.3.
+# Note, the !0 and !1 sequences in :te:/:ti:/:ve:/:vi: were
+# previously \0410 and \0411 sequences...I don't *think* they were supposed
+# to be 4-digit octal -- esr)
+tek4113|tektronix 4113 color graphics with 5 line dialog area:\
+ :am:bs:da:eo:\
+ :co#80:li#5:\
+ :cl=\ELZ:do=^J:is=\EKA1\ELL5\ELV0\ELV1:le=^H:\
+ :nd=\ELM1 \ELM0:uc=\010\ELM1_\ELM0:\
+ :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:
+tek4113-34|tektronix 4113 color graphics with 34 line dialog area:\
+ :li#34:\
+ :is=\EKA1\ELLB2\ELV0\ELV1:tc=tek4113:
+# :ns: left off to allow vi visual mode. APL font (:as=\E^N:/:ae=\E^O:) not
+# supported here. :uc: is slow, but looks nice. Suggest setenv MORE -up .
+# :vb: needs enough delay to let you see the background color being toggled.
+tek4113-nd|tektronix 4113 color graphics with no dialog area:\
+ :am:bs:eo:\
+ :co#80:it#8:li#34:\
+ :cl=\E^L:do=^J:ho=\ELF7l\177 @:is=\ELZ\EKA0\ELF7l\177 @:\
+ :le=^H:ll=\ELF hl @:nd=^I:se=\EMT1:so=\EMT2:ta=^I:\
+ :uc=\010\EMG1_\EMG0:up=^K:\
+ :vb=\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERBA4\ERB0:\
+ :vs=\ELZ\EKA0:
+# This entry is from Tek. Inc. (Brian Biehl)
+# (tek4115: :bc: renamed to :le:, <rmam>/<smam> added based on init string -- esr)
+otek4115|Tektronix 4115:\
+ :am:bs:da:db:eo:\
+ :co#80:it#8:li#34:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:bt=\E[Z:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ei=\E[4l:ho=\E[H:if=/usr/share/tabset/vt100:im=\E[4h:\
+ :is=\E%!0\E%\014\ELV0\EKA1\ELBB2\ENU@=\ELLB2\ELM0\ELV1\EKYA?\E%!1\E[<1l\E[?7h\E[?8h\E[34;1H\E[34B\E[m:\
+ :kb=^H:ke=\E>:ks=\E=:le=\E[D:me=\E[m:nd=\E[C:se=\E[m:\
+ :so=\E[7m:sr=\EM:ta=^I:te=\E%!0\ELBG8\E%!1\E[34;1H\E[J:\
+ :ti=\E%!0\ELBB2\E%!1:ue=\E[m:up=\E[A:us=\E[4m:\
+ :ve=\E%!0\ELBG8\E%!1\E[34;1H:vs=\E%!0\ELBB2\E%!1:
+tek4115|newer tektronix 4115 entry with more ANSI capabilities:\
+ :am:xo:\
+ :co#80:li#34:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:\
+ :RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:al=\E[L:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:ch=\E[%+^AG:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:cr=^M:ct=\E[2g:cv=\E[%+^Ad:dc=\E[P:\
+ :dl=\E[M:do=^J:ei=:ho=\E[H:ic=\E[@:im=:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mk=\E[8m:mr=\E[7m:nd=\E[C:..rp=%p1%c\E[%p2%{1}%-%db:\
+ :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\
+ :se=\E[m:sf=^J:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+# The tek4125 emulates a vt100 incorrectly - the scrolling region
+# command is ignored. The following entry replaces :cs: with the needed
+# :AL:, :AL:, and :im:; removes some cursor pad commands that the tek4125
+# chokes on; and adds a lot of initialization for the tek dialog area.
+# Note that this entry uses all 34 lines and sets the cursor color to green.
+# Steve Jacobson 8/85
+# (tek4125: there were two "\!"s in the is that I replaced with "\E!";
+# commented out, :im:=\E1 because there's no :ei: -- esr)
+tek4125|tektronix 4125:\
+ :li#34:\
+ :al=\E[1L:cs@:dl=\E[1M:\
+ :is=\E%\E\0410\EQD1\EUX03\EKA\ELBB2\ELCE0\ELI100\ELJ2\ELLB2\ELM0\ELS1\ELX00\ELV1\E%\E\0411\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :ks=\E=:rc@:sc@:\
+ :tc=vt100:
+
+# From: <jcoker@ucbic>
+# (tek4207: This was the termcap file's entry for the 4107/4207, but SCO
+# supplied another, less capable 4107 entry. So we'll use that for 4107 and
+# note that if jcoker wasn't confused you may be able to use this one.
+# I merged in :ms:,:sf:,:sr:,<invis>,:ct: from a BRL entry -- esr)
+tek4207|Tektronix 4207 graphics terminal with memory:\
+ :am:bw:mi:ms:ul:xn:\
+ :co#80:it#8:li#32:\
+ :al=3\E[L:bt=\E[Z:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:\
+ :cm=\E[%i%d;%dH:ct=\E[1g:dc=4\E[P:dl=3\E[M:do=^J:ei=:\
+ :ho=\E[H:ic=4\E[@:im=:\
+ :is=\E%!0\ELBP0\E%!1\E[H\E[2g\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[8C\EH\E[J:\
+ :kd=\ED:kh=\E[H:kl=\E[D:kr=\E[C:ku=\EM:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mk=\E[=6;<5:mr=\E[7m:nd=\E[C:se=\E[m:\
+ :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:\
+ :te=\E[?6h\E%!0\ELBP0\E%!1\E[32;1f:ti=\E[?6l\E[H\E[J:\
+ :ue=\E[m:up=\EM:us=\E[4m:
+
+# From: <carolyn@dali.berkeley.edu> Thu Oct 31 12:54:27 1985
+# (tek4404: There was a "\!" in :ti: that I replaced with "\E!".
+# Tab had been given as \E2I,that must be the tab-set capability -- esr)
+tek4404|tektronix 4404:\
+ :bs:\
+ :co#80:it#8:li#32:\
+ :al=\E[1L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:\
+ :cs=\E[%i%d;%dr:dc=\E[P:dl=\E[1M:do=^J:ei=\E[4l:ho=\E[H:\
+ :im=\E[4h:kd=\E[B:ke=\E[?1h:kl=\E[D:kr=\E[C:ks=\E[?1l:\
+ :ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:rc=\E8:\
+ :sc=\E7:se=\E[27m:so=\E[7m:st=\E[2I:ta=^I:\
+ :te=\E[1;1H\E[0J\E[?6h\E[?1l:\
+ :ti=\E%\E\0411\E[1;32r\E[?6l\E>:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+# Some unknown person wrote:
+# I added the is string - straight Unix has ESC ; in the login
+# string which sets a ct8500 into monitor mode (aka 4025 snoopy
+# mode). The is string here cleans up a few things (but not
+# everything).
+ct8500|tektronix ct8500:\
+ :am:bw:da:db:\
+ :co#80:li#25:\
+ :al=\E^L:bl=^G:bt=\E^I:cd=\E^U:ce=\E^T:cl=\E^E:\
+ :cm=\E|%+ %+ :cr=^M:dc=\E^]:dl=\E^M:do=^J:ei=:ic=\E^\:im=:\
+ :is=\037\EZ\Ek:le=^H:me=\E :nd=\ES:se=\E :sf=^J:so=\E$:\
+ :sr=\E^A:ta=^I:ue=\E :up=\ER:us=\E\041:
+
+# Tektronix 4205 terminal.
+#
+# am is not defined because the wrap around occurs not when the char.
+# is placed in the 80'th column, but when we are attempting to type
+# the 81'st character on the line. (esr: hmm, this is like the vt100
+# version of xenl, perhaps am + xenl would work!)
+#
+# Bold, dim, and standout are simulated by colors and thus not allowed
+# with colors. The tektronix color table is mapped into the RGB color
+# table by setf/setb. All colors are reset to factory specifications by oc.
+# The <initc> cap uses RGB notation to define colors. for arguments 1-3 the
+# interval (0-1000) is broken into 8 smaller sub-intervals (125). Each sub-
+# interval then maps into pre-defined value.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+tek4205|tektronix 4205:\
+ :cc:mi:ms:\
+ :Co#8:NC#49:co#80:it#8:li#30:pa#63:\
+ :AL=\E[%dL:DO=\E[%dB:IC=\E[%d@:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[1L:as=^N:bl=^G:bt=\E[Z:cb=\E[1K:cd=\E[J:\
+ :ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:ct=\E[1g:\
+ :dc=\E[1P:dl=\E[1M:do=\E[B:eA=\E)0:ec=\E%dX:ei=\E[4l:\
+ :ho=\E[H:i1=\E%!0\ETM1\E%!1\E[m:im=\E[4h:k0=\EOA:k1=\EOB:\
+ :k2=\EOC:k3=\EOD:k4=\EP:k5=\EQ:k6=\ER:k7=\ES:kb=^H:kd=\E[B:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[=7;<4m:\
+ :me=\E[=0;<1m\E[24;25;27m\017:mh=\E[=1;<6m:mk=\E[=6;<5:\
+ :mr=\E[7m:nd=\E[C:\
+ :oc=\E%!0\ETFB000001F4F4F42F40030F404A4C<F450F4F46F40F47F4F40\E%!1:\
+ :op=\E[39;40m:se=\E[=0;<1m:sf=\ED:so=\E[=2;<3m:sr=\EM:\
+ :ta=^I:te=:ti=\E%%\0411\E[?6l\E[2J:ue=\E[24m:up=\E[A:\
+ :us=\E[4m:
+
+#### Teletype (tty)
+#
+# These are the hardcopy Teletypes from before AT&T bought the company,
+# clattering electromechanical dinosaurs in Bakelite cases that printed on
+# pulpy yellow roll paper. If you remember these you go back a ways.
+# Teletype-branded VDTs are listed in the AT&T section.
+#
+# The earliest UNIXes were designed to use these clunkers; nroff and a few
+# other programs still default to emitting codes for the Model 37.
+#
+
+tty33|tty35|model 33 or 35 teletype:\
+ :hc:os:xo:\
+ :co#72:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+tty37|model 37 teletype:\
+ :bs:hc:os:xo:\
+ :bl=^G:cr=^M:do=^J:hd=\E9:hu=\E8:le=^H:sf=^J:up=\E7:
+
+# There are known to be at least three flavors of the tty40, all seem more
+# like IBM half duplex forms fillers than ASCII terminals. They have lots of
+# awful braindamage, such as printing a visible newline indicator after each
+# newline. The 40-1 is a half duplex terminal and is hopeless. The 40-2 is
+# braindamaged but has hope and is described here. The 40-4 is a 3270
+# lookalike and beyond hope. The terminal has visible bell but I don't know
+# it - it's null here to prevent it from showing the BL character.
+# There is an \EG in <nl> because of a bug in old vi (if stty says you have
+# a "newline" style terminal (-crmode) vi figures all it needs is nl
+# to get crlf, even if :cr: is not ^M.)
+# (tty40: removed obsolete ":nl=\EG\EB:", it's just do+cr -- esr)
+tty40|ds40|ds40-2|dataspeed40|teletype dataspeed 40/2:\
+ :bs:xo:\
+ :co#80:li#24:\
+ :al=\EL:cd=\EJ:cl=\EH\EJ:cr=\EG:ct=\EH\E2:dc=\EP:dl=\EM:\
+ :do=\EB:ei=:ho=\EH:ic=\E\136:im=:kb=^]:kl=^H:le=^H:nd=\EC:\
+ :pf=^T:po=\022:r2=\023\ER:se=\E4:sf=\ES:so=\E3:sr=\ET:\
+ :st=\E1:ta=\E@:up=\E7:
+tty43|model 43 teletype:\
+ :am:bs:hc:os:xo:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J:
+
+#### Tymshare
+#
+
+# You can add :is=\E<: to put this 40-column mode, though I can't
+# for the life of me think why anyone would want to.
+scanset|sc410|sc415|Tymshare Scan Set:\
+ :am:bw:ms:\
+ :co#80:li#24:\
+ :ac=j%k4l<m-q\054x5:ae=^O:as=^N:bl=^G:cd=\EJ:ce=\EK:\
+ :cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:kd=\EB:kl=\ED:\
+ :kr=\EC:ku=\EA:le=^H:nd=^I:pf=\E;0:po=\E;0:ps=\E;3:r1=\E>:\
+ :rc=^C:sc=^B:sf=^J:up=^K:
+
+#### Volker-Craig (vc)
+#
+# If you saw a Byte Magazine cover with a terminal on it during the early
+# 1980s, it was probably one of these. Carl Helmers liked them because
+# they could crank 19.2 and were cheap (that is, he liked them until he tried
+# to program one...)
+#
+
+# Missing in vc303a and vc303 descriptions: they scroll 2 lines at a time
+# every other linefeed.
+vc303|vc103|vc203|volker-craig 303:\
+ :am:bs:ns:\
+ :co#80:li#24:\
+ :bl=^G:cl=\014:cr=^M:do=^J:ho=\013:kd=^J:kl=^H:kr=^I:ku=^N:\
+ :le=^H:ll=\017W:nd=^I:up=^N:
+vc303a|vc403a|volker-craig 303a:\
+ :ce=\026:cl=\030:ho=\031:kr=^U:ku=^Z:ll=^P:nd=^U:up=^Z:tc=vc303:
+# (vc404: removed obsolete ":ma=^Z^P^U :" -- esr)
+vc404|volker-craig 404:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cd=\027:ce=\026:cl=\030:cm=\020%+ %+ :cr=^M:do=^J:\
+ :ho=\031:kd=^J:kl=^H:kr=^U:ku=^Z:le=^H:nd=^U:sf=^J:up=^Z:
+vc404-s|volker-craig 404 w/standout mode:\
+ :do=^J:se=^O:so=^N:tc=vc404:
+# From: <wolfgang@cs.sfu.ca>
+# (vc414: merged in cup/dl1/home from an old vc414h-noxon)
+vc414|vc414h|Volker-Craig 414H in sane escape mode.:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\E\032:cd=\E^X:ce=10\E\017:cl=\E\034:cm=\E\021%r%.%.:\
+ :dc=\E3:dl=\E\023:do=\E^K:ei=:ho=\E^R:ic=\E\072:im=:k0=\EA:\
+ :k1=\EB:k2=\EC:k3=\ED:k4=\EE:k5=\EF:k6=\EG:k7=\EH:kd=\E^K:\
+ :kh=\E^R:kl=^H:kr=^P:ku=\E^L:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
+ :l4=PF5:l5=PF6:l6=PF7:l7=PF8:nd=^P:se=\E^_:so=\E^Y:up=\E^L:
+vc415|volker-craig 415:\
+ :cl=^L:tc=vc404:
+
+######## OBSOLETE PERSONAL-MICRO CONSOLES AND EMULATIONS
+#
+
+#### IBM PC and clones
+#
+
+# The pcplot IBM-PC terminal emulation program is really messed up. It is
+# supposed to emulate a vt-100, but emulates the wraparound bug incorrectly,
+# doesn't support scrolling regions, ignores add line commands, and ignores
+# delete line commands. Consequently, the resulting behavior looks like a
+# crude adm3a-type terminal.
+# Steve Jacobson 8/85
+pcplot|pc-plot terminal emulation program:\
+ :xn@:\
+ :AL@:DL@:al@:cs@:dl@:rc@:sc@:tc=vt100:
+# KayPro II from Richard G Turner <rturner at Darcom-Hq.ARPA>
+# I've found that my KayPro II, running MDM730, continues to emulate an
+# ADM-3A terminal, just like I was running TERM.COM. On our 4.2 UNIX
+# system the following termcap entry works well:
+# I have noticed a couple of minor glitches, but nothing I can't work
+# around. (I added two capabilities from the BRL entry -- esr)
+kaypro|kaypro2|kaypro II:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:cd=^W:ce=^X:cl=1\032:cm=\E=%+ %+ :cr=^M:\
+ :dl=\ER:do=^J:ho=^^:kd=^J:kr=^L:ku=^K:nd=^L:sf=^J:up=^K:
+
+# From IBM, Thu May 5 19:35:27 1983
+# (ibmpc: commented out :im:=\200R because we don't know :ei: -- esr)
+ibm-pc|ibm5051|5051|IBM Personal Computer (no ANSI.SYS):\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=^L^K:cr=^M^^:do=^J:ho=^K:kd=^_:le=^]:nd=^\:sf=\n:\
+ :up=^^:
+
+ibmpc|wy60-PC|wyse60-PC|IBM PC/XT running PC/IX:\
+ :am:bw:eo:hs:km:ms:ul:\
+ :co#80:it#8:li#24:\
+ :@7=\E[Y:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:SF=\E[%dS\E[%dB:\
+ :SR=\E[%dT\E[%dA:UP=\E[%dA:\
+ :ac=j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263:\
+ :bl=^G:cd=\E[J:ce=\E[K:ch=\E[%i%dG:cl=\Ec:cm=\E[%i%d;%dH:\
+ :cr=^M:do=\E[B:ec=\E[%dX:ho=\E[H:k1=\240:k2=\241:k3=\242:\
+ :k4=\243:k5=\244:k6=\245:k7=\246:k8=\247:k9=\250:k;=\251:\
+ :kB=^]:kD=\177:kI=\E[^H:kN=\E[U:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;1H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mk=\E[30;40m:mr=\E[7m:nd=\E[C:nw=^M:\
+ :..sa=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:\
+ :se=\E[m:sf=\E[S\E[B:so=\E[7m:sr=\E[T\E[A:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+
+#### Apple II
+#
+# Apple II firmware console first, then various 80-column cards and
+# terminal emulators. For two cents I'd toss all these in the UFO file
+# along with the 40-column apple entries.
+#
+
+# From: brsmith@umn-cs.cs.umn.edu (Brian R. Smith) via BRL
+# 'it#8' tells UNIX that you have tabs every 8 columns. This is a
+# function of TIC, not the firmware.
+# The clear key on a IIgs will do something like clear-screen,
+# depending on what you're in.
+appleIIgs|appleIIe|appleIIc|Apple 80 column firmware interface:\
+ :am:bs:bw:eo:ms:\
+ :co#80:it#8:li#24:\
+ :bl=^G:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:ho=^Y:\
+ :kC=^X:kD=\177:kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:nd=^\:\
+ :nw=^M^W:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_:
+# Apple //e with 80-column card, entry from BRL
+# The modem interface is permitted to discard LF (maybe DC1), otherwise
+# passing characters to the 80-column firmware via COUT (PR#3 assumed).
+# Auto-wrap does not work right due to newline scrolling delay, which also
+# requires that you set "stty cr2".
+# Note: Cursor addressing is only available via the Pascal V1.1 entry,
+# not via the BASIC PR#3 hook. All this nonsense can be avoided only by
+# using a terminal emulation program instead of the built-in firmware.
+apple2e|Apple //e:\
+ :bw:ms:\
+ :co#80:li#24:\
+ :bl=^G:cd=4*\013:ce=4\035:cl=100\014:do=^J:ho=^Y:is=^R^N:\
+ :kb=^H:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:mr=^O:nw=100\r:\
+ :r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:ta=^I:up=^_:
+# mcvax!vu44!vu45!wilcke uses the "ap" entry together with Ascii Express Pro
+# 4.20, with incoming and outgoing terminals both on 0, emulation On.
+apple2e-p|Apple //e via Pascal:\
+ :cm=\036%r%+ %+ :kb=^H:kd=^J:kl=^H:tc=apple2e:
+# (ASCII Express) MouseTalk "Standard Apple //" emulation from BRL
+# Enable DC3/DC1 flow control with "stty ixon -ixany".
+apple-ae|ASCII Express:\
+ :am:bs:bw:ms:nx:xo:\
+ :co#80:it#8:li#24:\
+ :bl=500\007:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :cr=^M:do=^J:\
+ :ho=^Y:is=^R^N:kC=^X:kd=^J:kl=^H:kr=^U:ku=^K:le=^H:me=^N:\
+ :mr=^O:nd=^U:r1=^R^N:se=^N:sf=^W:so=^O:sr=^V:up=^_:
+appleII|apple ii plus:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :do=^J:ho=\E^Y:\
+ :is=\024T1\016:kd=^J:kr=^U:le=^H:me=^N:nd=^\:se=^N:so=^O:\
+ :ta=^I:up=^_:vb=\024G1\024T1:ve=^TC2:vs=^TC6:
+# Originally by Gary Ford 21NOV83
+# From: <ee178aci%sdcc7@SDCSVAX.ARPA> Fri Oct 11 21:27:00 1985
+apple-80|apple II with smarterm 80 col:\
+ :am:bs:bw:\
+ :co#80:li#24:\
+ :bt=^R:cd=10*\013:ce=10\035:cl=10*\014:cm=\036%r%+ %+ :\
+ :cr=10*\r:do=^J:ho=^Y:le=^H:nd=^\:up=^_:
+apple-soroc|apple emulating soroc 120:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\
+ :kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
+# From Peter Harrison, Computer Graphics Lab, San Francisco
+# ucbvax!ucsfmis!harrison .....uucp
+# ucbvax!ucsfmis!harrison@BERKELEY .......ARPA
+# "These two work. If you don't have the inverse video chip for the
+# Apple with videx then remove the :so: and :se: fields."
+# (apple-videx: this used to be called DaleApple -- esr)
+apple-videx|Apple with videx videoterm 80 column board with inverse video:\
+ :am:bs:xn:\
+ :co#80:it#8:li#24:\
+ :cd=^K:ce=^]:cl=300\014:cm=\036%r%+ %+ :do=^J:ho=^Y:kd=^J:\
+ :kh=^Y:kl=^H:kr=^U:le=^H:me=^Z2:nd=^\:se=^Z2:so=^Z3:ta=^I:\
+ :up=^_:
+# My system [for reference] : Apple ][+, 64K, Ultraterm display card,
+# Apple Cat ][ 212 modem, + more all
+# controlled by ASCII Express: Pro.
+# From Dave Shaver <isucs1!shaver>
+apple-uterm-vb|Videx Ultraterm for Apple micros with Visible Bell:\
+ :am:bs:eo:xt:\
+ :co#80:li#24:\
+ :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\
+ :is=^V4^W06\017\rVisible Bell Installed.\016\r\n:\
+ :nd=^\:se=^N:so=^O:up=^_:vb=^W35^W06:
+apple-uterm|Ultraterm for Apple micros:\
+ :am:bs:eo:xt:\
+ :co#80:li#24:\
+ :ac=:cd=^K:ce=^]:cl=^L:cm=\036%r%+ %+ :ho=^Y:\
+ :is=^V4^W06\016:nd=^\:se=^N:so=^O:up=^_:
+# from trwrba!bwong (Bradley W. Wong):
+#
+# This entry assumes that you are using an apple with the UCSD Pascal
+# language card. SYSTEM.MISCINFO is assumed to be the same as that
+# supplied with the standard apple except that screenwidth should be set
+# using SETUP to 80 columns. Note that the right arrow in not mapped in
+# this termcap entry. This is because that key, on the Apple, transmits
+# a ^U and would thus preempt the more useful "up" function of vi.
+#
+# HMH 2/23/81
+apple80p|80-column apple with Pascal card:\
+ :am:bw:\
+ :co#80:li#24:\
+ :cd=^K:ce=^]:cl=^Y^L:cm=\036%r%+ %+ :ho=^Y:kl=^H:nd=^\\072:\
+ :up=^_:
+#
+# Apple II+ equipped with Videx 80 column card
+#
+# Terminfo from ihnp4!ihu1g!djc1 (Dave Christensen) via BRL;
+# manually converted by D A Gwyn
+#
+# DO NOT use any terminal emulation with this data base, it works directly
+# with the Videx card. This has been tested with vi 1200 baud and works fine.
+#
+# This works great for vi, except I've noticed in pre-R2, ^U will scroll back
+# 1 screen, while in R2 ^U doesn't.
+# For inverse alternate character set add:
+# :as:=^O::ae:=^N:
+# (apple-v: added it#8 -- esr)
+apple-videx2|Apple II+ w/ Videx card (similar to Datamedia h1520):\
+ :am:xn:\
+ :co#80:it#8:li#24:\
+ :bl=100\007:cd=16*\013:ce=^]:cl=16*\014:cm=\036%r%+ %+ :\
+ :cr=^M:do=^J:ho=^Y:kb=^H:kd=^J:kh=^Y:kl=^H:kr=^\:ku=^_:le=^H:\
+ :nd=^\:se=^Z2:sf=^J:so=^Z3:ta=8\011:up=^_:
+apple-videx3|vapple|Apple II with 80 col card:\
+ :am:bs:\
+ :co#80:li#24:\
+ :ce=\Ex:cl=\Ev:cm=\EY%+ %+ :ho=\EH:k0=\EP:k1=\EQ:k2=\ER:\
+ :k3=\E :k4=\E\041:k5=\E":k6=\E#:k7=\E$:k8=\E%:k9=\E&:kd=\EB:\
+ :kh=\EH:kl=\ED:kr=\EC:ku=\EA:nd=\EC:up=\EA:
+#From: decvax!cbosgd!cbdkc1!mww Mike Warren via BRL
+aepro|Apple II+ running ASCII Express Pro--vt52:\
+ :bs:\
+ :co#80:li#24:\
+ :cd=\EJ:ce=\EK:cl=300\014:cm=\EY%+ %+ :ho=\EH:nd=\EC:\
+ :up=\EA:
+# UCSD addition: Yet another termcap from Brian Kantor's Micro Munger Factory
+apple-vm80|ap-vm80|apple with viewmax-80:\
+ :bs:\
+ :co#80:li#24:\
+ :cd=300\013:ce=^]:cl=300\014:cm=100\036%+ %+ :ho=200\031:\
+ :nd=^\\072:up=^_:
+
+#### Apple Lisa & Macintosh
+#
+
+# (lisa: changed :vs: to :ve: -- esr)
+lisa|apple lisa console display (black on white):\
+ :am:bs:eo:ms:\
+ :co#88:it#8:li#32:\
+ :ac=jdkclfmenbqattuvvuwsx`:ae=\E[10m:al=\E[L:as=\E[11m:\
+ :cd=\E[J:ce=\E[K:cl=^L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:\
+ :do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E>\E[m\014:kb=^H:\
+ :kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:\
+ :se=\E[m:so=\E[7m:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[5l:\
+ :vi=\E[5h:
+liswb|apple lisa console display (white on black):\
+ :is=\E>\E[0;7m\014:se=\E[0;7m:so=\E[m:ue=\E[0;7m:\
+ :us=\E[4m:tc=lisa:
+
+# lisaterm from ulysses!gamma!epsilon!mb2c!jed (John E. Duncan III) via BRL;
+# :is: revised by Ferd Brundick <fsbrn@BRL.ARPA>
+#
+# These entries assume that the 'Auto Wraparound' is enabled.
+# Xon-Xoff flow control should also be enabled.
+#
+# The vt100 uses :rs2: and :rf: rather than :is2:/:tbc:/:hts: because the tab
+# settings are in non-volatile memory and don't need to be reset upon login.
+# Also setting the number of columns glitches the screen annoyingly.
+# You can type "reset" to get them set.
+#
+lisaterm|Apple Lisa or Lisa/2 running LisaTerm vt100 emulation:\
+ :am:bs:pt:xn:xo:\
+ :co#80:it#8:kn#4:li#24:vt#3:\
+ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:do=^J:ho=\E[H:k0=\EOP:k1=\EOQ:\
+ :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=F1:l1=F2:l2=F3:l3=F4:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :r1=\E>\E[?1l\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\E[A:us=\E[4m:
+# Lisaterm in 132 column ("wide") mode.
+lisaterm-w|Apple Lisa with Lisaterm in 132 column mode:\
+ :co#132:\
+ :kb=^H:kd=^J:kl=^H:tc=lisaterm:
+# Although MacTerminal has insert/delete line, it is commented out here
+# since it is much faster and cleaner to use the "lock scrolling region"
+# method of inserting and deleting lines due to the MacTerminal implementation.
+# Also, the "Insert/delete ch" strings have an extra character appended to them
+# due to a bug in MacTerminal V1.1. Blink is disabled since it is not
+# supported by MacTerminal.
+mac|macintosh|Macintosh with MacTerminal:\
+ :xn:\
+ :dN#30:\
+ :dc=7\E[P:ei=:ic=9\E[@:im=:ip=7:mb@:tc=lisa:
+# Lisaterm in 132 column ("wide") mode.
+mac-w|macterminal-w|Apple Macintosh with Macterminal in 132 column mode:\
+ :co#132:tc=mac:
+
+#### Radio Shack/Tandy
+#
+
+# (coco3: This had "ta" used incorrectly as a boolean and bl given as "bl#7".
+# I read these as mistakes for ":it#8:" and ":bl=\007:" respectively -- esr)
+# From: <{pbrown,ctl}@ocf.berkeley.edu> 12 Mar 90
+coco3|os9LII|Tandy CoCo3 24*80 OS9 Level II:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :al=^_0:bl=^G:cd=^K:ce=^D:cl=5*\014:cm=2\002%r%+ %+ :\
+ :dl=^_1:do=^J:ho=^A:kd=^J:kl=^H:kr=^I:ku=^L:le=^H:mb=^_":\
+ :md=\E\072^A:me=\037\041\E\072\0:mr=^_ :nd=^F:se=^_\041:\
+ :so=^_ :ue=^_#:up=^I:us=^_":ve=^E\041:vi=^E :
+# (trs2: removed obsolete ":nl=^_:" -- esr)
+trs2|trsII|trs80II|Radio Shack Model II using P&T CP/M:\
+ :am:bs:ms:\
+ :co#80:it#8:li#24:\
+ :al=^D:bl=^G:cd=^B:ce=^A:cl=^L:cm=\EY%+ %+ :cr=^M:dl=^K:\
+ :do=^_:ho=^F:kb=^H:kd=^_:kl=^\:kr=^]:ku=^^:le=^H:me=^O:nd=^]:\
+ :se=^O:sf=^J:so=^N:ta=^I:up=^^:
+# From: Kevin Braunsdorf <ksb@mentor.cc.purdue.edu>
+# (This had extension capabilities
+# :BN=\E[?33h:BF=\E[?33l:UC=\E[_ q:BC=\E[\177 q:\
+# :CN=\ERC:CF=\ERc:NR=\ERD:NM=\ER@:
+# I also deleted the unnecessary ":kn#2:", ":sg#0:" -- esr)
+trs16|trs-80 model 16 console:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :ac=jak`l_mbquvewcxs:ae=\ERg:al=\EL:as=\ERG:bl=^G:cd=\EJ:\
+ :ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:dc=\EQ:dl=\EM:do=\EB:ei=:\
+ :ho=\EH:ic=\EP:im=:k0=^A:k1=^B:k2=^D:k3=^L:k4=^U:k5=^P:k6=^N:\
+ :k7=^S:kb=^H:kd=\EB:kh=^W:kl=\ED:kr=\EC:ku=\EA:l0=f1:l1=f2:\
+ :l2=f3:l3=f4:l4=f5:l5=f6:l6=f7:l7=f8:le=^H:me=\ER@:nd=\EC:\
+ :pf=\E]+:po=\E]=:se=\ER@:sf=^J:so=\ERD:ta=^I:up=\EA:ve=\ERC:\
+ :vi=\ERc:
+
+#### Atari ST
+#
+
+# From: Simson L. Garfinkel <simsong@media-lab.mit.edu>
+atari|atari st:\
+ :am:bs:\
+ :co#80:it#8:li#25:\
+ :al=\EL:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :dl=\EM:do=\EB:\
+ :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:me=\Eq:nd=\EC:se=\Eq:\
+ :so=\Ep:sr=\EI:ta=^I:up=\EA:
+# UniTerm terminal program for the Atari ST: 49-line VT220 emulation mode
+# From: Paul M. Aoki <aoki@ucbvax.berkeley.edu>
+uniterm|uniterm49|UniTerm VT220 emulator with 49 lines:\
+ :li#49:\
+ :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;49r\E[49;1H:tc=vt220:
+# MiNT VT52 emulation. 80 columns, 25 rows.
+# MiNT is Now TOS, the operating system which comes with all Ataris now
+# (mainly Atari Falcon). This termcap is for the VT52 emulation you get
+# under tcsh/zsh/bash/sh/ksh/ash/csh when you run MiNT in `console' mode
+# From: Per Persson <pp@gnu.ai.mit.edu>, 27 Feb 1996
+st52|Atari ST with VT52 emulation:\
+ :am:km:\
+ :co#80:li#25:\
+ :K1=\E#7:K2=\E#9:K3=\E#5:K4=\E#1:K5=\E#3:al=\EL:bl=^G:\
+ :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:dl=\EM:do=\EB:\
+ :ho=\EH:k0=\E#D:k1=\E#;:k2=\E#<:k3=\E#=:k4=\E#>:k5=\E#?:\
+ :k6=\E#@:k7=\E#A:k8=\E#B:k9=\E#C:kA=\E#R:kC=\E#7:kF=\E#2:\
+ :kR=\E#8:kb=^H:kd=\E#P:kh=\E#G:kl=\E#K:kr=\E#M:ku=\E#H:\
+ :l0=f10:le=\ED:me=\Eq:nd=\EC:nw=^M^J:r1=\Ez_\Eb@\EcA:\
+ :rc=\Ek:sc=\Ej:se=\Eq:sf=^J:so=\Ep:sr=\EI:ta=^I:te=:ti=\Ee:\
+ :up=\EA:ve=\Ee:vi=\Ef:
+
+#### Commodore Business Machines
+#
+# Formerly located in West Chester, PA; went spectacularly bust in 1994
+# after years of shaky engineering and egregious mismanagement. Made one
+# really nice machine (the Amiga) and boatloads of nasty ones (PET, C-64,
+# C-128, VIC-20). The C-64 is said to have been the most popular machine
+# ever (most units sold); they can still be found gathering dust in closets
+# everywhere.
+#
+
+# From: Kent Polk <kent@swrinde.nde.swri.edu>, 30 May 90
+# Added a few more entries, converted caret-type control sequence (^x) entries
+# to '\0xx' entries since a couple of people mentioned losing '^x' sequences.
+# Corrections by Ty Sarna <tsarna@endicor.com>, Sat Feb 28 18:55:15 1998
+#
+# :as:, :ae: Support for alternate character sets.
+# :ve=\E[\040p:vi=\E[\060\040p: cursor visible/invisible.
+# :xn: vt100 kludginess at column 80/NEWLINE ignore after 80 cols(Concept)
+# This one appears to fix a problem I always had with a line ending
+# at 'width+1' (I think) followed by a blank line in vi. The blank
+# line tended to disappear and reappear depending on how the screen
+# was refreshed. Note that this is probably needed only if you use
+# something like a Dnet Fterm with the window sized to some peculiar
+# dimension larger than 80 columns.
+# :k0=\E9~: map F10 to k0 - could have F0-9 -> k0-9, but ... F10 was 'k;'
+# (amiga: removed obsolete :kn#10:,
+# also added empty <acsc> to suppress a warning --esr)
+amiga|Amiga ANSI:\
+ :am:bs:bw:xn:\
+ :co#80:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:SF=\E[%dS:SR=\E[%dT:UP=\E[%dA:ac=:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=\E[B:ei=:\
+ :ho=\E[H:ic=\E[@:im=:is=\E[20l:k0=\E[9~:k1=\E[0~:k2=\E[1~:\
+ :k3=\E[2~:k4=\E[3~:k5=\E[4~:k6=\E[5~:k7=\E[6~:k8=\E[7~:\
+ :k9=\E[8~:kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:\
+ :mb=\E[7;2m:md=\E[1m:me=\E[m:mh=\E[2m:mk=\E[8m:mr=\E[7m:\
+ :nd=\E[C:r1=\Ec:se=\E[m:sf=\E[S:so=\E[7m:sr=\E[T:ue=\E[m:\
+ :up=\E[A:us=\E[4m:ve=\E[ p:vi=\E[0 p:
+
+# From: Hans Verkuil <hans@wyst.hobby.nl>, 4 Dec 1995
+# (amiga: added empty <acsc> to suppress a warning.
+# I'm told this entry screws up badly with AS225, the Amiga
+# TCP/IP package once from Commodore, and now sold by InterWorks.--esr)
+amiga-h|Hans Verkuil's Amiga ANSI:\
+ :bs:bw:ms:\
+ :co#80:li#24:\
+ :DC=\233%dP:DO=\233%dB:IC=\233%d@:LE=\233%dD:RI=\233%dC:\
+ :SF=\233%dS:SR=\233%dT:UP=\233%dA:ac=:ae=^O:as=^N:bl=^G:\
+ :bt=\233Z:cd=\233J:ce=\233K:cl=\233H\233J:\
+ :cm=\233%i%d;%dH:cr=^M:dc=\233P:do=\233B:ec=\233%dP:ei=:\
+ :ho=\233H:ic=\233@:im=:is=\23320l:k0=\2339~:k1=\2330~:\
+ :k2=\2331~:k3=\2332~:k4=\2333~:k5=\2334~:k6=\2335~:\
+ :k7=\2336~:k8=\2337~:k9=\2338~:kD=\177:kb=^H:kd=\233B:\
+ :kl=\233D:kr=\233C:ku=\233A:le=\233D:mb=\2337;2m:\
+ :md=\2331m:me=\2330m:mh=\2332m:mk=\2338m:mr=\2337m:\
+ :nd=\233C:nw=\233B\r:r1=\Ec:se=\2330m:sf=\233S:so=\2337m:\
+ :sr=\233T:ta=^I:te=\233?7h:ti=\233?7l:ue=\2330m:up=\233A:\
+ :us=\2334m:vb=^G:ve=\233 p:vi=\2330 p:
+
+# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
+amiga-8bit|Amiga ANSI using 8-bit controls:\
+ :AL=\233%dL:DL=\233%dM:SF@:SR@:ac=:al=\233L:dl=\233M:\
+ :sf=\204:sr=\215:\
+ :tc=amiga-h:
+
+# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
+# I'm trying to write a termcap for a commodore b-128, and I'm
+# having a little trouble. I've had to map most of my control characters
+# to something that unix will accept (my delete-char is a ctrl-t, etc),
+# and create some functions (like cm), but thats life.
+# The problem is with the arrow keys - right, and up work fine, but
+# left deletes the previous character and down I just can't figure out.
+# Jove knows what I want, but I don't know what it's sending to me (it
+# isn't thats bound to next-line in jove).
+# Anybody got any ideas? Here's my termcap.
+# DAG -- I changed his "^n" entries to "\n"; see if that works.
+#
+commodore|b-128|Commodore B-128 micro:\
+ :am:bw:\
+ :co#80:dN#20:li#24:pb#150:\
+ :al=10\Ei:bc=^H:ce=10\Eq:cl=10\E\006:\
+ :cm=20\E\013%2\054%2\054:cr=^M:dc=10*\177:dl=10*\Ed:\
+ :do=^J:ei=:ho=\E^E:ic=5\E\n:im=:kd=^J:kh=\E^E:kl=^B:kr=^F:\
+ :ku=^P:nd=^F:nl=^M:ta=5\011:up=^P:
+
+#### North Star
+#
+# North Star Advantage from Lt. Fickie <brl-ibd!fickie> via BRL
+northstar|North Star Advantage:\
+ :bs:\
+ :co#80:li#24:\
+ :cd=200\017:ce=200\016:cl=200\004:cm=1\E=%+ %+ :\
+ :ho=200\034\032:
+
+#### Osborne
+#
+# Thu Jul 7 03:55:16 1983
+#
+# As an aside, be careful; it may sound like an anomaly on the
+# Osborne, but with the 80-column upgrade, it's too easy to
+# enter lines >80 columns!
+#
+# I've already had several comments...
+# The Osborne-1 with the 80-col option is capable of being
+# 52, 80, or 104 characters wide; default to 80 for compatibility
+# with most systems.
+#
+# The tab is destructive on the Ozzie; make sure to 'stty -tabs'.
+osborne-w|osborne1-w|osborne I in 104-column mode:\
+ :ms:ul:xt:\
+ :co#104:li#24:\
+ :al=\EE:bl=^G:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:dc=\EW:dl=\ER:\
+ :do=^J:ei=:ic=\EQ:im=:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:\
+ :se=\E(:sf=^J:so=\E):ue=\Em:up=^K:us=\El:
+# Osborne I from ptsfa!rhc (Robert Cohen) via BRL
+osborne|osborne1|osborne I in 80-column mode:\
+ :am:bs:mi:ms:ul:xs:\
+ :co#80:dB#4:li#24:\
+ :al=\EE:ce=\ET:cl=^Z:cm=\E=%+ %+ :dc=4\EW:dl=\ER:do=^J:ei=:\
+ :im=\EQ:is=^Z:kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=\010:nd=^L:\
+ :se=\E):so=\E(:ue=\Em:up=^K:us=\El:
+#
+# Osborne Executive definition from BRL
+# Similar to tvi920
+# Added by David Milligan and Tom Smith (SMU)
+osexec|Osborne executive:\
+ :am:bs:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=^Z:cm=\E=%+ %+ :cr=^M:ct=\E3:\
+ :dc=\EW:dl=\ER:do=^J:ei=:ho=^^:ic=\EQ:im=:\
+ :is=\Eq\Ek\Em\EA\Ex0:k0=^A@\r:k1=^AA\r:k2=^AB\r:k3=^AC\r:\
+ :k4=^AD\r:k5=^AE\r:k6=^AF\r:k7=^AG\r:k8=^AH\r:k9=^AI\r:\
+ :kb=^H:kd=^J:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:nl=^J:se=\Ek:\
+ :so=\Ej:st=\E1:ue=\Em:up=^K:us=\El:
+
+#### Console types for obsolete UNIX clones
+#
+# Coherent, Minix, Venix, and several lesser-known kin were OSs for 8088
+# machines that tried to emulate the UNIX look'n'feel. Coherent and Venix
+# were commercial, Minix an educational tool sold in conjunction with a book.
+# Memory-segmentation limits and a strong tendency to look like V7 long after
+# it was obsolete made all three pretty lame. Venix croaked early. Coherent
+# and Minix were ported to 32-bit Intel boxes, only to be run over by a
+# steamroller named `Linux' (which, to be fair, traces some lineage to Minix).
+# Coherent's vendor, the Mark Williams Company, went belly-up in 1994. There
+# are also, I'm told, Minix ports that ran on Amiga and Atari machines and
+# even as single processes under SunOS and the Macintosh OS.
+#
+
+# This is the entry provided with minix 1.7.4, with bogus :ri: removed.
+minix|minix console (v1.7):\
+ :am:xn:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\
+ :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:is=\E[0m:k0=\E[Y:\
+ :k1=\E[V:k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:l0=End:l1=PgUp:l2=PgDn:\
+ :l3=Num +:l4=Num -:l5=Num 5:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[0m:mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:\
+ :sr=\EM:ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
+# Corrected Jan 14, 1997 by Vincent Broman <broman@nosc.mil>
+minix-old|minix console (v1.5):\
+ :xo:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:al=\E[L:bl=^G:cd=\E[0J:\
+ :ce=\E[K:cl=\E[H\E[0J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k0=\E[Y:k1=\E[V:\
+ :k2=\E[U:k3=\E[T:k4=\E[S:k5=\E[G:kb=^H:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\E[5m:md=\E[1m:me=\E[0m:\
+ :mr=\E[7m:nd=\E[C:nw=^M^J:se=\E[0m:sf=^J:so=\E[7m:sr=\EM:\
+ :ta=^I:ue=\E[0m:up=\E[A:us=\E[4m:
+# The linewrap option can be specified by editing /usr/include/minix/config.h
+# before recompiling the minix 1.5 kernel.
+minix-old-am|minix console with linewrap:\
+ :am:tc=minix-old:
+
+pc-minix|minix console on an Intel box:\
+ :tc=klone+acs:tc=minix:
+
+# According to the Coherent 2.3 manual, the PC console is similar
+# to a z19. The differences seem to be (1) 25 lines, (2) no status
+# line, (3) standout is broken, (4) ins/del line is broken, (5)
+# has blinking and bold.
+pc-coherent|pcz19|coherent|IBM PC console running Coherent:\
+ :am:mi:\
+ :co#80:it#8:li#25:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:\
+ :do=\EB:ei=\EO:ho=\EH:im=\E@:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
+ :kr=\EC:ku=\EA:le=^H:me=\Eq:nd=\EC:se=\Eq:sf=^J:so=\Ep:\
+ :sr=\EI:ta=^I:up=\EA:
+
+# According to the Venix 1.1 manual, the PC console is similar
+# to a DEC vt52. Differences seem to be (1) arrow keys send
+# different strings, (2) enhanced standout, (3) added insert/delete line.
+# Note in particular that it doesn't have automatic margins.
+# There are other keys (f1-f10, kpp, knp, kcbt, kich1, kdch1) but they
+# not described here because this derives from an old termcap entry.
+pc-venix|venix|IBM PC console running Venix:\
+ :co#80:it#8:li#25:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:\
+ :dl=\EM:do=^J:kb=^H:kd=\EP:kh=\EG:kl=\EK:kr=\EM:ku=\EH:le=^H:\
+ :nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA:
+
+#### Miscellaneous microcomputer consoles
+#
+# If you know anything more about any of these, please tell me.
+#
+
+# The MAI Basic Four computer was obsolete at the end of the 1980s.
+# It may be used as a terminal by putting it in "line" mode as seen on
+# one of the status lines.
+# Initialization is similar to CIT80. :is: will set ANSI mode for you.
+# Hardware tabs set by :if: at 8-spacing. Auto line wrap causes glitches so
+# wrap mode is reset by :vs:. Using :sf:=\E[S caused errors so I
+# used \ED instead.
+# From: bf347@lafn.org (David Lawyer), 28 Jun 1997
+mai|basic4|MAI Basic Four in ansi mode:\
+ :am:da:db:mi:ms:\
+ :co#82:it#8:li#25:\
+ :al=\E[L:bl=^G:cd=^_:ce=^^:cl=^]^_:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:dc=\E[1P:dl=\E[M:do=^J:ei=\E[4l:ho=^]:\
+ :if=/usr/lib/tabset/vt100:im=\E[4h:\
+ :is=\E>\E[?1h\E[?7h\E[?5l\017\E(B\E[m\E[20l\E[1;24r\E[24;1H:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:\
+ :k8=\EOW:kb=^H:kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=^X:nw=^M\ED:rc=\E8:\
+ :sc=\E7:se=\E[m:sf=\ED:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=^Z:\
+ :us=\E[4m:ve=\E[?7h:vs=\E[?7l:
+# basis from Peter Harrison, Computer Graphics Lab, San Francisco
+# ucbvax!ucsfmis!harrison ...uucp / ucbvax!ucsfmis!harrison@BERKELEY ...ARPA
+#
+# On Sat, 7 Aug 1999, Torsten Jerzembeck <toje@nightingale.ms.sub.org> wrote:
+# The Basis 108 was a Apple II clone, manufactured by the "Basis
+# Mikrocomputer GmbH" in Munster, Germany (the company still exists today,
+# about 1,5 km from where I live, but doesn't build own computers any
+# more). A Basis 108 featured a really heavy (cast aluminium?) case, was
+# equipped with one or two 5.25" disk drives, had a monochrome and colour
+# video output for a TV set or a dedicated monitor and several slots for
+# Apple II cards. Basis 108 were quite popular at german schools before
+# the advent of the IBM PC. They run, for example, the UCSD Pascal
+# development system (which I used even in 1993 to program the steering
+# and data recording for our school's experimental solar panel :), Apple DOS
+# or CP/M.
+# (basis: removed obsolete ":ma=^K^P^R^L^L :nl=5000*^J:" -- esr)
+basis|BASIS108 computer with terminal translation table active:\
+ :cd=\EY:ce=\ET:cl=300\E*:do=5000\n:kb=^H:kd=^J:kl=^H:kr=^L:\
+ :ku=^K:me=\E):se=\E):so=\E(:\
+ :tc=adm3a:
+# luna's BMC terminal emulator
+luna|luna68k|LUNA68K Bitmap console:\
+ :co#88:li#46:tc=ansi-mini:
+megatek|pegasus workstation terminal emulator:\
+ :am:os:\
+ :co#83:li#60:
+# The Xerox 820 was a Z80 micro with a snazzy XEROX PARC-derived
+# interface (pre-Macintosh by several years) that went nowhere.
+xerox820|x820|Xerox 820:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=^Q:ce=^X:cl=1^Z:cm=\E=%+ %+ :cr=^M:do=^J:ho=^^:\
+ :le=^H:nd=^L:sf=^J:up=^K:
+
+#### Videotex and teletext
+#
+
+# From: Alexandre Montaron <canal@mygale.org>, 18 Jun 1998
+#
+minitel1|minitel 1:\
+ :am:bw:es:hs:hz:ms:\
+ :Co#8:co#40:li#24:pa#8:\
+ :..Sf=\E%?%p1%{1}%=%tD%e%p1%{3}%=%tF%e%p1%{4}%=%tA%e%p1%{6}%=%tC%e%p1%{64}%+%c%;:\
+ :ac=+.\054\054./f0g1:bl=^G:ce=^X:cl=^L:cm=\037%+A%+A:\
+ :cr=^M:do=^J:eA=^Y:fs=^J:ho=^^:\
+ :is=\E;`ZQ\E\072iC\E\072iE\021:le=^H:mb=\EH:me=\EI\E\:\
+ :mr=\E]:nd=^I:nw=^M^J:op=\EG:rp=%.\022%+?:\
+ :..sa=%?%p1%t\E]%;%?%p3%t\E]%;%?%p4%t\EH%;:se=\E\:\
+ :sf=^J:so=\E]:sr=^K:ts=\037@%p1%{65}%+%c:up=^K:ve=^Q:vi=^T:
+# is2=Fnct TE, Fnct MR, Fnct CM et pour finir: curseur ON.
+minitel1b|minitel 1-bistandard (in 40cols mode):\
+ :mi:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:al=\E[L:cb=\E[1K:cd=\E[J:dc=\E[P:\
+ :dl=\E[M:ei=\E[4l:i1=\E;iYA\E;jYC:im=\E[4h:kA=\E[L:\
+ :kC=\E[2J:kD=\E[P:kE=^X:kI=\E[4h:kL=\E[M:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ks=\E;iYA\E;jYC:kt=^I:ku=\E[A:\
+ :tc=minitel1:
+# :ke: posait des problemes (logout en sortant de vi).
+minitel1b-80|minitel 1-bistandard (standard teleinformatique):\
+ :am@:bw@:hz@:\
+ :Co@:co#80:it#8:pa@:\
+ :@8=\EOM:Sf@:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:ho=\E[H:\
+ :i1@:is@:k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:\
+ :k6=\EOv:k7=\EOw:k8=\EOx:k9=\EOy:ke@:ks@:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:nw=\EE:op@:rc=\E8:rp@:\
+ :..sa=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m:\
+ :sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:ue=\E[24m:\
+ :up=\E[A:us=\E[4m:ve=\037@A\021\n:vi=\037@A\024\n:\
+ :tc=minitel1b:
+# \E\:1} switch to te'le'informatique mode (ascii terminal/ISO 6429)
+# \E[?3l 80 columns
+# \E[?4l scrolling on
+# \E[12h local echo off
+# \Ec reset: G0 U.S. charset (to get #,@,{,},...), 80 cols, clear screen
+# \E)0 G1 DEC set (line graphics)
+#
+# From: Igor Tamitegama <igor@ppp1493-ft.teaser.fr>, 18 Jan 1997
+m2-nam|minitel|minitel-2|minitel-2-nam|France Telecom Minitel 2 mode te'le'informatique:\
+ :bs:es:hs:xn:\
+ :co#80:it#8:li#24:sg#0:ws#72:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:SF=^J:SR=\EM:UP=\E[%dA:\
+ :ac=aaffggjjkkllmmnnooqqssttuuvvwwxx:ae=^O:al=\E[L:\
+ :as=^N:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
+ :fs=^J:ho=\E[H:i1=\E\0721}\Ec\E[?4l\E[12h:\
+ :i2=\E[?3l kbs=\010:im=\E[4h:ip=7:is=\Ec\E[12h\E)0:\
+ :k0=\EOp:k1=\EOq:k2=\EOr:k3=\EOs:k4=\EOt:k5=\EOu:k6=\EOv:\
+ :k7=\EOw:k8=\EOx:k9=\EOy:k;=\EOp:kA=\E[4l:kC=\E[2J:kD=\E[P:\
+ :kI=\E[4h:kL=\E[M:kN=\EOn:kP=\EOR:kd=\E[B:kh=\E[H:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:ll=\E[24;80H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:nw=^M^J:ps=\E[i:\
+ :r1=\Ec\E[?4l\E[12h:r2=\Ec\E)0:rc=\E8:sc=\E7:se=\E[27m:\
+ :sf=^J:so=\E[7m:sr=\EM:ta=^I:ts=^_@A:u6=\E[%i%d;%dR:\
+ :u7=\E[6n:ue=\E[24m:up=\E[A:us=\E[4m:vb=^G:ve=\E[<1l:\
+ :vi=\E[<1h:
+
+######## OBSOLETE VDT TYPES
+#
+# These terminals are *long* dead -- these entries are retained for
+# historical interest only.
+
+#### Amtek Business Machines
+#
+
+# (abm80: early versions of this entry apparently had ":se=\E^_:so=\E^Y",
+# but these caps were commented out in 8.3; also, removed overridden
+# ":do=^J:" -- esr)
+abm80|amtek business machines 80:\
+ :am:bs:bw:\
+ :co#80:li#24:\
+ :al=\E^Z:bt=^T:cd=\E^X:ce=\E^O:cl=\E^\:cm=\E\021%r%+ %+ :\
+ :dl=\E^S:do=\E^K:ho=\E^R:le=^H:nd=^P:up=\E^L:
+
+#### Bell Labs blit terminals
+#
+# These were AT&T's official entries. The 5620 FAQ maintained by
+# David Breneman <daveb@dgtl.com> has this to say:
+#
+# Actually, in the beginning was the Jerq, and the Jerq was white with a
+# green face, and Locanthi and Pike looked upon the Jerq and said the Jerq
+# was good. But lo, upon the horizon loomed a mighty management-type person
+# (known now only by the initials VP) who said, the mighty Jerq must stay
+# alone, and could not go forth into the world. So Locanthi and Pike put the
+# Jerq to sleep, cloned its parts, and the Blit was brought forth unto the
+# world. And the Jerq lived the rest of its days in research, but never
+# strayed from those paths.
+#
+# In all seriousness, the Blit was originally known as the Jerq, but when
+# it started to be shown outside of the halls of the Bell Labs Research
+# organization, the management powers that be decided that the name could
+# not remain. So it was renamed to be Blit. This was in late 1981.
+#
+# (The AT&T 5620 was the commercialized Blit. Its successors were the 630,
+# 730, and 730+.)
+#
+
+blit|jerq|blit running teletype rom:\
+ :am:eo:ul:xo:\
+ :co#87:it#8:li#72:\
+ :AL=\EF%+ :DC=\Ee%+ :DL=\EE%+ :IC=\Ef%+ :al=\EF\041:bl=^G:\
+ :ce=\EK:cl=^L:cm=\EY%r%+ %+ :cr=^M:dc=\Ee\041:dl=\EE\041:\
+ :do=^J:ei=:ic=\Ef\041:im=:k1=\Ex:k2=\Ey:k3=\Ez:kb=^H:kd=\EB:\
+ :kl=\ED:kr=\EC:ku=\EA:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:
+
+# (cbblit: here's a BSD termcap that says :do=\EG: -- esr)
+cbblit|fixterm|blit running columbus code:\
+ :co#88:\
+ :cd=\EJ:ei=\ER:ic@:im=\EQ:pO=\EP%03:pf=^T:po=^R:se=\EV\041:\
+ :so=\EU\041:ue=\EV":us=\EU":vb=\E^G:\
+ :tc=blit:
+
+oblit|ojerq|first version of blit rom:\
+ :am:da:db:eo:mi:ul:xo:\
+ :co#88:it#8:li#72:\
+ :AL=\Ef%+ :DL=\Ee%+ :al=\EF:bl=^G:cd=\EJ:ce=\EK:cl=^L:\
+ :cm=\EY%r%+ %+ :cr=^M:dc=\EO:dl=\EE:do=^J:ei=\ER:im=\EQ:\
+ :kb=^H:le=\ED:nd=\EC:sf=^J:ta=^I:up=\EA:vb=\E^G:
+
+#### Bolt, Beranek & Newman (bbn)
+#
+# The BitGraph was a product of the now-defunct BBN Computer Corporation.
+# The parent company, best known as the architects of the Internet, is
+# still around.
+#
+# Jeff DelPapa <dp@world.std.com> writes:
+# The bitgraph was a large white box that contained a monochrome bitmap
+# display, and a 68000 to run it. You could download code and run it on
+# the cpu, it had 128kb (I think) of memory. I used one in the late
+# 70's, sure beat a vt100. It had one strange feature tho -- it used
+# the cpu to bitblt pixels to scroll, it took longer than the refresh
+# rate, and looked like a rubber sheet stretching, then snapping
+# upwards. It had everything the early mac had, except a floppy drive a
+# small screen (it had a 17" crisp beauty) and a real OS. They (Bolt
+# Beranek and Neuman) sold at most a few hundred of them to the real
+# world. DOD may have bought more...
+#
+
+# Entries for the BitGraph terminals. The problem
+# with scrolling in vi can only be fixed by getting BBN to put
+# smarter scroll logic in the terminal or changing vi or padding
+# scrolls with about 500 ms delay.
+#
+# I always thought the problem was related to the terminal
+# counting newlines in its input buffer before scrolling and
+# then moving the screen that much. Then vi comes along and
+# paints lines in on the bottom line of the screen, so you get
+# this big white gap.
+
+bitgraph|bg2.0nv|bg3.10nv|bbn bitgraph 2.0 or later (normal video):\
+ :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:\
+ :tc=bg2.0:
+bg2.0rv|bg3.10rv|bbn bitgraph 2.0 (reverse video):\
+ :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg2.0:
+bg2.0|bg3.10|bbn bitgraph 2.0 or later (no init):\
+ :bs:xn:\
+ :co#85:li#64:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[J:cm=%i\E[%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:dl=\E[M:do=\E[B:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kd=\E[B:ke=\E>:kl=\E[D:kr=\E[C:ks=\E=:\
+ :ku=\E[A:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:me=\E[m:nd=\E[C:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A:
+
+bg1.25rv|bbn bitgraph 1.25 (reverse video):\
+ :is=\E>\E[?5h\E[?7h:vb=\E[?5l\E[?5h:tc=bg1.25:
+bg1.25nv|bbn bitgraph 1.25 (normal video):\
+ :is=\E>\E[?5l\E[?7h:vb=\E[?5h\E[?5l:tc=bg1.25:
+# (bg1.25: I added <rmam>/<smam> based on the init string -- esr)
+bg1.25|bbn bitgraph 1.25:\
+ :co#85:li#64:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=%i\E[%d;%dH:cr=^M:dl=\E[M:do=\E[B:k1=\EP:\
+ :k2=\EQ:k3=\ER:k4=\ES:kd=\EB:ke=\E>:kl=\ED:kr=\EC:ks=\E=:\
+ :ku=\EA:l1=PF1:l2=PF2:l3=PF3:l4=PF4:le=^H:ll=\E[64;1H:\
+ :me=\E[m:nd=\E[C:se=\E[m:sf=\n:so=\E[7m:ta=^I:up=\E[A:
+
+#### Bull (bq, dku, vip)
+#
+# (Adapted for terminfo; AIX extension capabilities translated -- esr)
+
+#============================================#
+# BULL QUESTAR 210 `SDP' terminals emulation #
+#============================================#
+#
+# Description written by R.K.Saunders (Bull Transac)
+#
+# Modifications written by F. Girard (Bull MTS)
+# 19-05-87 V02.00.01
+# 17-12-87 V02.00.02
+# 15-09-89 V02.00.05
+#
+# Typical technical selections F1 (modes SDP/ROLL):
+# -------------------------------------------------------
+# | 01 02 03 04 05 06 07 08 09 10 |
+# | 1010 0011 1010 0110 0110 0001 0100 0000 0000 0000 |
+# | |
+# | 11 12 13 14 15 16 17 18 19 20 |
+# | 0000 0110 100? 0000 0000 0000 0001 0000 0000 0001 |
+# | |
+# | 21 22 23 24 25 26 27 28 29 30 |
+# | 0011 0000 0001 1000 0000 0000 0000 0000 0000 0000 |
+# | |
+# | 31 32 33 34 35 36 37 38 39 40 |
+# | 1010 0011 0000 0000 0000 0000 0000 0000 0000 0000 |
+# -------------------------------------------------------
+# Typical firmware identification F5 "etat 6":
+# P287.02.04b (AZERTY)
+# P297.11.04 (24-pin: 2732) or P798.11.04 (28-pin: 2764)
+# P298.03.03 (monochrome) or P374.03.02 (colour)
+#
+# SM SDP mode (VIP command): ^[[?=h
+# RIS (erases screen): ^[c
+# DMI disable keyboard: ^[`
+# SM double rendition mode: ^[[?>h
+# RM solicited status mode: ^[[5l
+# RM character mode: ^[[>l
+# RM echoplex mode: ^[[12l
+# RM column tab mode: ^[[18l
+# RM forbid SS2 keyboard mode: ^[[?<l
+# SM scroll mode: ^[[=h
+# FCF enable XON/XOFF: ^[P1s^[\
+# MTL select end msg character: ^[[^Wp
+# EMI enable keyboard: ^[b
+# RIS retour etat initial: ^[c
+# enable FC keypad: ^[[?<h,
+# MPW map status line window: ^[PY99:98^[\
+# SCP select status line: ^[[0;98v
+# ED erase entire partition: ^[[2J
+# SCP select main partition: ^[[v
+# SM character insertion mode: ^[[4h
+# RM character replacement mode: ^[[4l
+# COO cursor on: ^[[r
+# COO cursor off: ^[[1r
+# SGR dim (turquoise) rev attr: ^[[2;7m
+# SGR Data normal attr: ^[[m
+# SO Line-graphic mode ON: ^N
+# SI Line-graphic mode OFF: ^O
+# MC start routing to printer: ^[[5i
+# MC stop routing to printer: ^M^[[4i
+#
+
+# This entry covers the following terminals:
+# dku7102, tws2102, and tws models 2105 to 2112
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+tws-generic|dku7102|Bull Questar tws terminals:\
+ :am:es:hs:mi:ms:xn:xo:xs@:\
+ :co#80:it#8:li#24:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:bt=\E[Z:\
+ :cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%df:cr=^M:ct=\E[2g:\
+ :dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[v:ei=\E[4l:fs=\E[v:\
+ :ho=\E[H:i1=\E[?=h\Ec\E`\E[?>h\EPY99\07298\E\:\
+ :i2=\Eb\E[?<h:im=\E[4h:\
+ :is=\E[5;>;12;18;?<l\E[=h\EP1s\E\\E[\027p:\
+ :k1=\E[1u\027:k2=\E[2u\027:k3=\E[3u\027:k4=\E[4u\027:\
+ :k5=\E[5u\027:k6=\E[6u\027:k7=\E[7u\027:k8=\E[8u\027:\
+ :kD=\E[P:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:ll=\E[H\E[A:mb=\E[0;5m:me=\E[m\017:mh=\E[0;2m:\
+ :mr=\E[0;7m:nd=\E[C:se=\E[m:sf=^J:so=\E[0;7m:st=\EH:\
+ :ta=\E[I:te=\E[0;98v\E[2J\E[v:ti=\E[?>h\EPY99\07298\E\:\
+ :ts=\EPY99\07298\E\\E[0;98v\E[2;7m:ue=\E[m:up=\E[A:\
+ :us=\E[0;4m:ve=\E[r:vi=\E[1r:
+tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA:\
+ :ds=\E[0;98v\E[2J\E[v:fs=\E[v:i2=\Eb:ts=\E[0;98v:\
+ :tc=tws-generic:
+tws2103|xdku|BULL Questar tws2103:\
+ :ta=^I:tc=tws-generic:
+tws2103-sna|dku7103-sna|BULL Questar tws2103 for SNA:\
+ :ta=^I:\
+ :tc=tws2102-sna:
+dku7102-old|BULL Questar 200 DKU7102 (microcode version < 6):\
+ :AL@:DL@:al@:ce=\E[K\E[m:cl=\E[2J\E[H:cm@:dl@:\
+ :ds=\EPY99\07298\E\\E[0;98v\E[2J\E[H\E[v:\
+ :ts=\EPY99\07298\E\\E[0;98v\E[H\E[2;7m:\
+ :tc=tws-generic:
+dku7202|BULL Questar 200 DKU7202 (colour/character attributes):\
+ :i2=\E[?3h\Eb:mb=\E[0;2;4m:mh=\E[0;5m:so=\E[0;4;5;7m:\
+ :ta=^I:us=\E[0;2m:\
+ :tc=tws-generic:
+
+#=========================================================#
+# BULL QUESTAR 303 & 310 `DEC VT 320' terminals emulation #
+#=========================================================#
+#
+# Description written by J. Staerck (BULL SA)
+# Copyright (c) 1989 BULL SA
+#---------------------------------------------------------------------------
+# This entry is used for terminals with vt320 emulation mode
+# and following set-up :
+# 8 bit ISO Latin Character Set (ISO 8859-1),
+# 7 bit Control Characters,
+# 80 columns screen.
+# Hereafter are some DEC vt terminals' commands. (valid on vt200 and 300)
+# They are used in string capabilities with vt220-320 emulation mode.
+# In the following DEC definitions, two kinds of terminfo databases are
+# provided :
+# 1. the first with Command Sequence Introducer starting with escape
+# sequence in 7 bits characters ex. ESC [ : 2 chars. in 7-bit mode.
+# 2. the second with Command Sequence Introducer starting with escape
+# sequence in 8 bits characters ex. ESC [ : 1 char. 'CSI' =x9B.
+# Soft Terminal Reset esc [ ! p
+# RIS (erases screen): esc c
+# DECKPNM numeric keypad mode: esc >
+# DECKPAM applic. keypad mode: esc =
+# DECSTBM Scrolling region: esc [ r
+# SCS select G0 = US: esc ( B
+# SCS select G1 = line-graphic: esc ) 0
+# Select 7-bit C1 controls: esc sp F
+# Select 8-bit C1 controls: esc sp G
+# Select cursor home: esc [ H
+# Select erase screen: esc [ J
+# SM KAM lock keyboard: esc [ 2 h
+# RM KAM unlock keyboard: esc [ 2 l
+# SM SRM local echo off: esc [ 1 2 h
+# RM SRM local echo on: esc [ 1 2 l
+# SM LNM New line : esc [ 2 0 h
+# RM LNM return = CR only: esc [ 2 0 l
+# SM DECCKM cursor keys mode: esc [ ? 1 h
+# RM DECCKM appli. keys mode: esc [ ? 1 l
+# SM DECANM ANSI mode on: esc [ ? 2 h
+# RM DECANM ANSI mode off: esc [ ? 2 l
+# SM DECCOLM 132-column screen: esc [ ? 3 h
+# RM DECCOLM 80-column screen: esc [ ? 3 l
+# SM DECSCLM Smooth scroll: esc [ ? 4 h
+# RM DECSCLM Jump scroll: esc [ ? 4 l
+# SM DECSCNM screen light backgr. esc [ ? 5 h
+# RM DECSCNM screen dark backgr. esc [ ? 5 l
+# SM DECOM move within margins: esc [ ? 6 h
+# RM DECOM move outside margins: esc [ ? 6 l
+# SM DECAWM auto right margin: esc [ ? 7 h
+# RM DECAWM auto right margin: esc [ ? 7 l
+# SM DECARM auto repeat: esc [ ? 8 h
+# RM DECARM auto repeat: esc [ ? 8 l
+# DECSASD Select active main: esc [ 0 $ }
+# DECSASD Select active status: esc [ 1 $ }
+# DECSSDT Select status none: esc [ 0 $ ~
+# DECSSDT Select status indic.: esc [ 1 $ ~
+# DECSSDT Select status host-wr: esc [ 2 $ ~
+# SM DECTCEM Visible cursor: esc [ ? 2 5 h
+# RM DECTCEM Invisible cursor: esc [ ? 2 5 l
+# SM DECNCRM 7 bits NCR set: esc [ ? 4 2 h
+# RM DECNCRM Multi or ISO latin: esc [ ? 4 2 l
+# SM DECNKM numeric keypad mode: esc [ ? 6 6 h
+# RM DECNKM numeric keypad appl.: esc [ ? 6 6 l
+# SM DECKBUM clavier informatique esc [ ? 6 8 h
+# RM DECKBUM clavier bureautique: esc [ ? 6 8 l
+# DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 " p
+# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 0 " p
+# or DECSCL vt300 mode 8-bit ctrl: esc [ 6 3 ; 2 " p
+# DECSCL vt300 mode 7-bit ctrl: esc [ 6 3 ; 1 " p
+# Char. and Line attributes: esc [ Ps ... Ps m
+# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
+# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
+#
+
+# This entry covers BQ303, BQ306, BQ310, Q303, Q306, Q310
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+bq300|Bull vt320 ISO Latin 1 80 columns terminal:\
+ :am:eo:es:hs:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:ws#80:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :ct=\E[3g:dc=\E[P:dl=\E[M:do=\E[B:\
+ :ds=\E[1$}\E[2$~\n\E[0$}:ec=\E[%dX:ei=\E[4l:fs=\E[0$}:\
+ :ho=\E[H:i1=\E[63;1"p\E[2h:\
+ :i2=\E[0$}\E[?25h\E[2l\E[H\E[J:im=\E[4h:\
+ :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k6=\E[17~:k7=\E[18~:\
+ :k8=\E[19~:k9=\E[20~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:\
+ :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=\E[D:mb=\E[5m:md=\E[1m:me=\E[0m\E(B:mr=\E[7m:nd=\E[C:\
+ :nw=\EE:rc=\E8:sc=\E7:se=\E[27m:sf=\ED:so=\E[7m:sr=\EM:\
+ :st=\EH:ta=^I:te=\E[?7h:ti=\E[?7l\E[?1l\E(B:\
+ :ts=\E[1$}\E[2$~:ue=\E[24m:up=\E[A:us=\E[4m:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+bg300-rv|Bull vt320 reverse 80 columns:\
+ :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :vb=\E[?5l\E[?5h:\
+ :tc=bq300:
+bq300-w|Bull vt320 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :r2=\E[?3h:\
+ :tc=bq300:
+bq300-w-rv|Bull vt320 reverse mode 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :r2=\E[?3h:vb=\E[?5l\E[?5h:\
+ :tc=bq300:
+
+# This entry is used for terminals with vt320 emulation mode
+# and following set-up :
+# 8 bit ISO Latin Character Set (ISO 8859-1),
+# 8 bit Control Characters, (CSI coded as x9B for ESC [)
+# 80 columns screen.
+# Soft Terminal Reset csi ! p
+# RIS (erases screen): esc c
+# DECKPNM numeric keypad mode: esc >
+# DECKPAM applic. keypad mode: esc =
+# DECSTBM Scrolling region: esc [ r
+# SCS select G0 = US: esc ( B
+# SCS select G1 = line-graphic: esc ) 0
+# Select 7-bit C1 controls: esc sp F
+# Select 8-bit C1 controls: esc sp G
+# Select cursor home: csi H
+# Select erase screen: csi J
+# SM KAM lock keyboard: csi 2 h
+# RM KAM unlock keyboard: csi 2 l
+# SM SRM local echo off: csi 1 2 h
+# RM SRM local echo on: csi 1 2 l
+# SM LNM New line : csi 2 0 h
+# RM LNM return = CR only: csi 2 0 l
+# SM DECCKM cursor keys mode: csi ? 1 h
+# RM DECCKM appli. keys mode: csi ? 1 l
+# SM DECANM ANSI mode on: csi ? 2 h
+# RM DECANM ANSI mode off: csi ? 2 l
+# SM DECCOLM 132-column screen: csi ? 3 h
+# RM DECCOLM 80-column screen: csi ? 3 l
+# SM DECSCLM Smooth scroll: csi ? 4 h
+# RM DECSCLM Jump scroll: csi ? 4 l
+# SM DECSCNM screen light backgr. csi ? 5 h
+# RM DECSCNM screen dark backgr. csi ? 5 l
+# SM DECOM move within margins: csi ? 6 h
+# RM DECOM move outside margins: csi ? 6 l
+# SM DECAWM auto right margin: csi ? 7 h
+# RM DECAWM auto right margin: csi ? 7 l
+# SM DECARM auto repeat: csi ? 8 h
+# RM DECARM auto repeat: csi ? 8 l
+# DECSASD Select active main: csi 0 $ }
+# DECSASD Select active status: csi 1 $ }
+# DECSSDT Select status none: csi 0 $ ~
+# DECSSDT Select status indic.: csi 1 $ ~
+# DECSSDT Select status host-wr: csi 2 $ ~
+# SM DECTCEM Visible cursor: csi ? 2 5 h
+# RM DECTCEM Invisible cursor: csi ? 2 5 l
+# SM DECNCRM 7 bits NCR set: csi ? 4 2 h
+# RM DECNCRM Multi or ISO latin: csi ? 4 2 l
+# DECSCL vt300 mode 8-bit ctrl: csi 6 3 " p
+# or DECSCL vt300 mode 8-bit ctrl: csi 6 3 ; 0 " p
+# DECSCL vt300 mode 7-bit ctrl: csi 6 3 ; 1 " p
+# Char. and Line attributes: csi Ps ... Ps m
+# with: 0 All off, 1 Bold, 4 Underline, 5 Blinking, 7 Reverse
+# and : 22 Bold off, 24 Underline off, 25 Blinking off, 27 Reverse off
+# (bq300-8: :le:,:nd:,:up:,:do:,:dl:,:al: to get under 1024 --esr)
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+bq300-8|Bull vt320 full 8 bits 80 columns:\
+ :am:eo:es:hs:km:mi:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:ws#80:\
+ :AL=\233%dL:DC=\233%dP:DL=\233%dM:DO=\233%dB:IC=\233%d@:\
+ :K1=\217w:K2=\217u:K3=\217y:K4=\217q:K5=\217s:LE=\233%dD:\
+ :RI=\233%dC:UP=\233%dA:ae=^O:as=^N:bl=^G:cd=\233J:ce=\233K:\
+ :cl=\233H\233J:cm=\233%i%d;%dH:cr=^M:cs=\233%i%d;%dr:\
+ :ct=\2333g:dc=\233P:ds=\2331$}\2332$~\n\2330$}:\
+ :ec=\233%dX:ei=\2334l:fs=\2330$}:ho=\233H:\
+ :i1=\E[63;2"p\E[2h:i2=\2330$}\233?25h\2332l\233H\233J:\
+ :im=\2334h:\
+ :is=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :k1=\217P:k2=\217Q:k3=\217R:k4=\217S:k6=\23317~:\
+ :k7=\23318~:k8=\23319~:k9=\23320~:kD=\2333~:kI=\2332~:\
+ :kN=\2336~:kP=\2335~:kb=^H:kd=\233B:ke=\233?1l\E>:\
+ :kl=\233D:kr=\233C:ku=\233A:mb=\2335m:md=\2331m:\
+ :me=\2330m\E(B:mr=\2337m:nw=\EE:rc=\E8:sc=\E7:se=\23327m:\
+ :sf=\ED:so=\2337m:sr=\EM:st=\EH:ta=^I:te=\233?7h:\
+ :ti=\233?7l\233?1l\E(B:ts=\2331$}\2332$~:ue=\23324m:\
+ :us=\2334m:vb=\233?5h\233?5l:ve=\233?25h:vi=\233?25l:\
+ :vs=\233?25h:
+bq300-8rv|Bull vt320 8-bit reverse mode 80 columns:\
+ :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :vb=\233?5l\233?5h:\
+ :tc=bq300-8:
+bq300-8w|Bull vt320 8-bit 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :r2=\233?3h:\
+ :tc=bq300-8:
+bq300-w-8rv|Bull vt320 8-bit reverse mode 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :r2=\233?3h:vb=\233?5l\233?5h:\
+ :tc=bq300-8:
+
+# This entry is used for terminals with vt320 emulation mode
+# a 102 keys keyboard (PC scancode !) and following set-up :
+# 8 bit ISO Latin Character Set (ISO 8859-1),
+# 7 bit Control Characters,
+# 80 columns screen.
+bq300-pc|Questar 303 with PC keyboard ISO Latin 1 80 columns:\
+ :%0@:%1@:*6@:@0@:@7=\E[4~:F1=\E[29~:F2=\E[31~:F3@:F4@:F5@:F6@:\
+ :F7@:F8@:F9@:FA@:k1=\E[17~:k2=\E[18~:k3=\E[19~:k4=\E[20~:\
+ :k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:k9=\E[26~:\
+ :k;=\E[28~:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:\
+ :kh=\E[1~:l1@:l2@:l3@:l4@:\
+ :tc=bq300:
+bq300-pc-rv|Questar 303 with PC keyboard reverse mode 80 columns:\
+ :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :vb=\E[?5l\E[?5h:\
+ :tc=bq300-pc:
+bq300-pc-w|Questar 303 with PC keyboard 132 columns terminal:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :r2=\E[?3h:\
+ :tc=bq300-pc:
+bq300-pc-w-rv|Questar 303 with PC keyboard reverse mode 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E F\E[?42l\E[?4l:\
+ :r2=\E[?3h:vb=\E[?5l\E[?5h:\
+ :tc=bq300-pc:
+# 8 bit ISO Latin Character Set (ISO 8859-1),
+# 8 bit Control Characters,
+# 80 columns screen.
+bq300-8-pc|Q306-8-pc|Questar 303 with PC keyboard in full 8 bits 80 columns:\
+ :%0@:%1@:*6@:@0@:@7=\2334~:F1=\23329~:F2=\23331~:F3@:F4@:F5@:\
+ :F6@:F7@:F8@:F9@:FA@:k1=\23317~:k2=\23318~:k3=\23319~:\
+ :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\
+ :k9=\23326~:k;=\23328~:kD=\2333~:kI=\2332~:kN=\2336~:\
+ :kP=\2335~:kb=^H:kh=\2331~:l1@:l2@:l3@:l4@:\
+ :tc=bq300-8:
+bq300-8-pc-rv|Questar 303 with PC keyboard full 8 bits reverse mode 80 columns:\
+ :is=\E[?2h\E[?3l\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :vb=\E[?5l\E[?5h:\
+ :tc=bq300-8-pc:
+bq300-8-pc-w|Questar 303 with PC keyboard full 8 bits 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :r2=\E[?3h:\
+ :tc=bq300-8-pc:
+bq300-8-pc-w-rv|Questar 303 with PC keyboard full 8 bits reverse 132 columns:\
+ :co#132:ws#132:\
+ :is=\E[?2h\E[?3h\E[?5h\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l:\
+ :r2=\E[?3h:vb=\E[?5l\E[?5h:\
+ :tc=bq300-8-pc:
+
+#======================================================#
+# BULL QUESTAR 310 `VIP 7800/8800' terminals emulation #
+#======================================================#
+
+# normal mode, 8 bits, 80 columns terminal.
+# RES reset : ^[e
+# RIS reset initial state: ^[c
+# BLE bell enable ^[h
+# BLD bell disable ^[g
+# CAMS char. attr. mode set ^[[D
+# CAMR char. attr. mode reset ^[[G
+# CLR clear ^[`
+# KBU keyboard unlock (set) ^[[W
+# KBL keyboard lock (reset) ^[[X
+# CM character mode (async.) ^[k
+# NEP non echoplex mode (by host) ^[l
+# EP echoplex mode (by host) ^[m
+# IM insert mode set ^[[I
+# IM insert mode reset ^[[J
+# RMS roll mode set ^[r
+# RMR roll mode reset ^[q
+# SM78 set mode vip7800 ^[[1q
+# SD scroll up (72 lines) ^[[0s
+# SD scroll down (72 lines) ^[[1s
+# RBM block mode reset ^[[E
+# SLS status line set ^[w
+# SLR status line reset ^[v
+# SLL status line lock ^[O
+# LGS Line-graphic mode set ^[G
+# LGR Line-graphic mode reset ^[F
+# TBC tab clear (at cursor pos.) ^[[g
+# TBI tab initialize ^[[N
+# TBS tab set (at cursor pos.) ^[p
+# PDS print data space ^[[0p
+# PHD print host data ^[[3p
+# PDT print data terminator ^[[<p
+# PRES print adapter reset ^[[2p
+# SSPR multi-part. reset ^[[<>u
+# SSP0 partition 0 set ^[[00u
+# SSP1 partition n format 1 ^[[PnPnSTRINGu
+# SSP2 partition n format 2 ^[[PnPnSTRINGu
+# SSP3 partition n format 3 ^[[PnPnu
+# ATR attribute (visual)
+# blink : ^[sB
+# dim : ^[sL
+# hide (blank) : ^[sH
+# restore : ^[sR
+# inverse video : ^[sI
+# prot. : ^[sP
+# underline : ^[s_
+# reset : ^{
+#
+# This covers the vip7800 and BQ3155-vip7800
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+vip|Bull Questar 3155-7800:\
+ :am:es:hs:km:ms:xn:xo:\
+ :co#80:it#8:li#24:vt#3:ws#80:\
+ :ae=\EF:as=\EG:bl=^G:bt=\E[Z:cd=\EJ:ce=\EK:cl=\E`:\
+ :cm=\E[%i%03%03f:cr=^M:ct=\E[N:dc=\E[P:dl=\E[M:do=^J:\
+ :ds=\Ev:ei=\E[J:fs=\EO:ho=\EH:i2=\Er\E[W\E`:ic=\E[I:\
+ :im=\E[I:is=\E[00u\E[<>001001024080024080u\E[01u:\
+ :k1=\E0:k2=\E2:k3=\E6:k4=\E8:k5=\E\072:k6=\E<:k7=\E>:k8=\EP:\
+ :k9=\ER:kD=\E[P:kH=\EH\EA:kI=\E[I:kb=^H:kd=\EB:kh=\EH:\
+ :kl=\ED:kr=\EC:ku=\EA:le=^H:ll=\EH\EA:mb=\EsB:\
+ :me=\EsR\EsU\EF:mh=\EsL:mr=\EsI:nd=\EC:nw=^M:se=\EsR:sf=^J:\
+ :so=\EsI:sr=\EA\EJ\EH\E[L:st=\Ep:ta=^I:ts=\Ew:ue=\EsR:\
+ :up=\EA:us=\Es_:vb=\007\007\007:
+# normal screen, 8 bits, 132 columns terminal.
+vip-w|vip7800-w|Q310-vip-w|Q310-vip-w-am|Questar 3155-vip7800 wide:\
+ :co#132:ws#132:\
+ :is=\E[00u\E[<>001001024132024132u\E[01u:tc=vip:
+vip-H|vip7800-H|Q310-vip-H|Q310-vip-H-am|Questar 3155-vip7800 72 lines:\
+ :li#72:\
+ :is=\E[00u\E[<>001001024080072080u\E[01u:tc=vip:
+vip-Hw|vip7800-Hw|Q310-vip-Hw|Questar 3155-vip7800 wide 72 lines:\
+ :co#132:li#72:ws#132:\
+ :is=\E[00u\E[<>001001024132072132u\E[01u:tc=vip:
+#### Chromatics
+#
+
+# I have put the long strings in :ti:/:te:. Ti sets up a window
+# that is smaller than the screen, and puts up a warning message
+# outside the window. Te erases the warning message, puts the
+# window back to be the whole screen, and puts the cursor at just
+# below the small window. I defined :ve: and :vi: to really turn
+# the cursor on and off, but I have taken this out since I don't
+# like the cursor being turned off when vi exits.
+cg7900|chromatics|chromatics 7900:\
+ :am:\
+ :co#80:li#40:\
+ :al=^A>2:bl=^G:cd=^Al:ce=^A`:cl=^L:cm=\001M%r%d\054%d\054:\
+ :cr=^M:dc=^A<1:dl=^A<2:do=^J:ei=:ho=^\:ic=^A>1:im=:le=^H:\
+ :ll=^A|:nd=^]:se=\001C1\054\001c2\054:sf=^J:\
+ :so=\001C4\054\001c7\054:\
+ :te=\001W0\05440\05485\05448\054\014\001W0\0540\05485\05448\054\001M0\05440\054:\
+ :ti=\001P0\001O1\001R1\001C4\054\001c0\054\014\001M0\05442\054WARNING DOUBLE ENTER ESCAPE and \025\001C1\054\001c2\054\001W0\0540\05479\05439\054:\
+ :uc=\001\001_\001\0:up=^K:
+
+#### Computer Automation
+#
+
+ca22851|computer automation 22851:\
+ :am:\
+ :co#80:li#24:\
+ :bl=^G:cd=^\:ce=^]:cl=\014:cm=\002%i%.%.:cr=^M:do=^J:ho=^^:\
+ :kd=^W:kh=^^:kl=^U:ku=^V:le=^U:nd=^I:sf=^J:up=^V:
+
+#### Cybernex
+#
+
+# This entry has correct padding and the undocumented "ri" capability
+cyb83|xl83|cybernex xl-83:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cd=\020:ce=\017:cl=\014:cm=\027%+ %+ :cr=^M:do=^J:\
+ :ho=^K:kd=^J:kl=^H:kr=^I:ku=^N:le=^H:nd=^I:sf=^J:sr=^N:up=^N:
+# (mdl110: removed obsolete ":ma=^Z^P:" and overridden ":cd=145^NA^W:" -- esr)
+cyb110|mdl110|cybernex mdl-110:\
+ :am:bs:\
+ :co#80:li#24:\
+ :al=\016A\016\035:bl=^G:cd=\016@\026:ce=\016@\026:\
+ :cl=\030:cm=\020%+ %+ :cr=^M:dc=\016A\036:\
+ :dl=\016A\016\036:do=^J:ei=:ho=^Y:ic=\016A\035:im=:le=^H:\
+ :nd=^U:se=^NG:sf=^J:so=^NF:ta=\011:up=^Z:
+
+#### Datapoint
+#
+# Datapoint is gone. They used to be headquartered in Texas.
+# They created ARCnet, an Ethernet competitor that flourished for a while
+# in the early 1980s before 3COM got wise and cut its prices. The service
+# side of Datapoint still lives (1995) in the form of Intelogic Trace.
+#
+
+dp3360|datapoint|datapoint 3360:\
+ :am:bs:\
+ :co#82:li#25:\
+ :bl=^G:cd=^_:ce=^^:cl=^]^_:cr=^M:do=^J:ho=^]:le=^H:nd=^X:\
+ :sf=^J:up=^Z:
+
+# From: Jan Willem Stumpel <jw.stumpel@inter.nl.net>, 11 May 1997
+# The Datapoint 8242 Workstation was sold at least between 1985
+# and 1989. To make the terminal work with this entry, press
+# CONTROL-INT-INT to take the terminal off-line, and type (opt).
+# Set the options AUTO ROLL, ROLL DN, and ESC KBD on, and AUTO
+# CR/LF off. Use control-shift-[] as escape key, control-I as tab,
+# shift-F1 to shift-F5 as F6 to F10 (unshifted F1 to F5 are in
+# fact unusable because the strings sent by the terminal conflict
+# with other keys).
+# The terminal is capable of displaying "box draw" characters.
+# For each graphic character you must send 2 ESC's (\E\E) followed
+# by a control character as follows:
+# character meaning
+# ========= =======
+# ctrl-E top tee
+# ctrl-F right tee
+# ctrl-G bottom tee
+# ctrl-H left tee
+# ctrl-I cross
+# ctrl-J top left corner
+# ctrl-K top right corner
+# ctrl-L bottom left corner
+# ctrl-M bottom right corner
+# ctrl-N horizontal line
+# ctrl-O vertical line
+# Unfortunately this cannot be fitted into the termcap/terminfo
+# description scheme.
+dp8242|datapoint 8242:\
+ :ms:\
+ :co#80:li#25:\
+ :al=\E^T:bl=^G:cd=^W:ce=^V:cl=\025\E\004\027\030:\
+ :cm=\011%r%+\%+\:cr=^M:dl=\E^Z:do=^J:ho=^U:\
+ :i1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\
+ :k1=^G\Ee:k2=^I\Ed:k3=^J\Ec:k4=^J\Eb:k5=^S\Ea:k6=\EO\Ee:\
+ :k7=\EN\Ed:k8=\EM\Ec:k9=\EL\Eb:k;=\EK\Ea:kb=^H:kd=^B:kl=^D:\
+ :kr=^F:ku=^E:le=^H:nw=^M^J:\
+ :r1=\E\014\E\016\0\230\0\317\025\027\030\E\004:\
+ :rp=\E\023%.%.:se=\E^D:sf=^C:so=\E^E:sr=^K:ta=^I:ue=\E^D:\
+ :us=\E^F:ve=^X:vi=^Y:\
+ :..wi=\E\014\E\016%p1%'\0'%+%c%p2%'\0'%+%c%p3%'\0'%+%c%p4%'\0'%+%c\025:
+
+#### DEC terminals (Obsolete types: DECwriter and vt40/42/50)
+#
+# These entries are DEC's official terminfos for its older terminals.
+# Contact Bill Hedberg <hedberg@hannah.enet.dec.com> of Terminal Support
+# Engineering for more information. Updated terminfos and termcaps
+# are kept available at ftp://gatekeeper.dec.com/pub/DEC/termcaps.
+#
+
+gt40|dec gt40:\
+ :bs:os:\
+ :co#72:li#30:\
+ :bl=^G:cr=^M:do=^J:le=^H:
+gt42|dec gt42:\
+ :bs:os:\
+ :co#72:li#40:\
+ :bl=^G:cr=^M:do=^J:le=^H:
+
+vt50|dec vt50:\
+ :bs:\
+ :co#80:li#12:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cr=^M:do=^J:le=^H:nd=\EC:\
+ :sf=^J:ta=^I:up=\EA:
+vt50h|dec vt50h:\
+ :bs:\
+ :co#80:li#12:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=^M:do=^J:\
+ :le=^H:nd=\EC:sf=^J:sr=\EI:ta=^I:up=\EA:
+# (<acsc>/:ae:/:as: capabilities aren't in DEC's official entry -- esr)
+vt52|dec vt52:\
+ :bs:\
+ :co#80:it#8:li#24:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\
+ :cr=^M:do=\EB:ho=\EH:kb=^H:kd=\EB:kl=\ED:kr=\EC:ku=\EA:\
+ :le=\ED:nd=\EC:nw=^M^J:sf=^J:sr=\EI:ta=^I:up=\EA:
+
+# (vt61: there's a BSD termcap that claims :dl=\EPd:, :al=\EPf.: :kb=^H:)
+vt61|vt-61|vt61.5|dec vt61:\
+ :co#80:li#24:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cr=\r:do=^J:\
+ :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:sf=\n:sr=\EI:ta=^I:\
+ :up=\EA:
+
+# The gigi does standout with red!
+# (gigi: I added <rmam>/<smam> based on the init string, corrected cub1 -- esr)
+gigi|vk100|dec gigi graphics terminal:\
+ :am:bs:xn:\
+ :co#84:li#24:\
+ :DO=\E[%dB:LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:\
+ :UP=\E[%dA:bl=^G:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:do=^J:\
+ :is=\E>\E[?3l\E[?4l\E[?5l\E[?20l\E[?7h\E[?8h:k1=\EOP:\
+ :k2=\EOQ:k3=\EOR:k4=\EOS:kd=\EOB:ke=\E[?1l\E>:kh=\E[H:\
+ :kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:me=\E[m:\
+ :nd=\E[C:se=\E[m:sf=^J:so=\E[7;31m:sr=\EM:ta=^I:ue=\E[m:\
+ :up=\E[A:us=\E[4m:
+
+# DEC PRO-350 console (VT220-style). The 350 was DEC's attempt to produce
+# a PC differentiated from the IBM clones. It was a total, ludicrous,
+# grossly-overpriced failure (among other things, DEC's OS didn't include
+# a format program, so you had to buy pre-formatted floppies from DEC at
+# a hefty premium!).
+pro350|decpro|dec pro console:\
+ :bs:\
+ :co#80:it#8:li#24:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\EG:as=\EF:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :do=\EB:\
+ :ho=\EH:k0=\EE:k1=\EF:k2=\EG:k3=\EH:k4=\EI:k5=\EJ:k6=\Ei:\
+ :k7=\Ej:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:\
+ :se=\E^N:so=\E^H:sr=\EI:ta=^I:ue=\E^C:up=\EA:us=\E^D:
+
+dw1|decwriter I:\
+ :bs:hc:os:\
+ :co#72:\
+ :bl=^G:cr=^M:do=^J:le=^H:sf=^J:
+dw2|decwriter|dw|decwriter II:\
+ :bs:hc:os:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:kb=^H:le=^H:sf=^J:
+# \E(B Use U.S. character set (otherwise # => british pound !)
+# \E[20l Disable "linefeed newline" mode (else puts \r after \n,\f,\v)
+# \E[w 10 char/in pitch
+# \E[1;132 full width horizontal margins
+# \E[2g clear all tab stops
+# \E[z 6 lines/in
+# \E[66t 66 lines/page (for \f)
+# \E[1;66r full vertical page can be printed
+# \E[4g clear vertical tab stops
+# \E> disable alternate keypad mode (so it transmits numbers!)
+# \E[%i%p1%du set tab stop at column %d (origin == 1)
+# (Full syntax is \E[n;n;n;n;n;...;nu where each 'n' is
+# a tab stop)
+#
+# The dw3 does standout with wide characters.
+#
+dw3|la120|decwriter III:\
+ :bs:hc:os:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:\
+ :i1=\E(B\E[20l\E[w\E[0;132s\E[2g\E[z\E[66t\E[1;66r\E[4g\E>:\
+ :is=\E[9;17;25;33;41;49;57;65;73;81;89;97;105;113;121;129u\r:\
+ :kb=^H:le=^H:me=\E[w:se=\E[w:sf=^J:so=\E[6w:ta=^I:
+dw4|decwriter IV:\
+ :am:bs:hc:os:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:is=\Ec:k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:\
+ :kb=^H:le=^H:sf=^J:ta=^I:
+
+# These aren't official
+ln03|dec ln03 laser printer:\
+ :hc:\
+ :co#80:li#66:\
+ :bl=^G:cr=^M:do=^J:hd=\EK:hu=\EL:me=\E[m:nw=^M^J:se=\E[22m:\
+ :sf=^J:so=\E[1m:ta=^I:ue=\E[24m:us=\E[4m:
+ln03-w|dec ln03 laser printer 132 cols:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:kb=^H:kd=^J:kl=^H:nw=^M^J:sf=^J:ta=^I:tc=ln03:
+
+#### Delta Data (dd)
+#
+
+# Untested. The cup sequence is hairy enough that it probably needs work.
+# The idea is ctrl(O), dd(row), dd(col), where dd(x) is x - 2*(x%16) + '9'.
+# There are BSD-derived termcap entries floating around for this puppy
+# that are *certainly* wrong.
+delta|dd5000|delta data 5000:\
+ :am:bs:\
+ :co#80:li#27:\
+ :bl=^G:ce=^NU:cl=^NR:cm=\017%+^P%+^P:dc=^NV:do=^J:ho=^NQ:\
+ :le=^H:nd=^Y:sf=^J:up=^Z:
+
+#### Digital Data Research (ddr)
+#
+
+# (ddr: I added <rmam>/<smam> based on the init string -- esr)
+ddr|rebus3180|ddr3180|Rebus/DDR 3180 vt100 emulator:\
+ :am:bs:xn:\
+ :co#80:it#8:li#24:vt#3:\
+ :RA=\E[7l:SA=\E[7l:cd=50\E[J:ce=3\E[K:cl=50\E[H\E[2J:\
+ :cm=5\E[%i%d;%dH:cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
+ :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kb=^H:kd=\E[B:ke=\E[?1l\E>:kl=\E[D:kr=\E[C:ks=\E[?1h\E=:\
+ :ku=\E[A:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
+ :nd=2\E[C:r1=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:rc=\E8:\
+ :rf=/usr/share/tabset/vt100:sc=\E7:se=\E[m:sf=5\ED:\
+ :so=\E[7m:sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
+
+#### Evans & Sutherland
+#
+
+# Jon Leech <leech@cs.unc.edu> tells us:
+# The ps300 was the Evans & Sutherland Picture System 300, a high
+# performance 3D vector graphics system with a bunch of specialized hardware.
+# Approximate date of release was 1982 (early 80s, anyway), and it had several
+# evolutions including (limited) color versions such as the PS330C. PS300s
+# were effectively obsolete by the late 80s, replaced by raster graphics
+# systems, although specialized applications like molecular modelling
+# hung onto them for a while longer. AFAIK all E&S vector graphics systems
+# are out of production, though of course E&S is very much alive (in 1996).
+# (ps300: changed ":pt@:" to "it@" -- esr)
+#
+ps300|Picture System 300:\
+ :xt:\
+ :it@:\
+ :se@:so@:ue@:us@:tc=vt100:
+
+#### General Electric (ge)
+#
+
+terminet1200|terminet300|tn1200|tn300|terminet|GE terminet 1200:\
+ :bs:hc:os:\
+ :co#120:\
+ :bl=^G:cr=^M:do=^J:sf=^J:
+
+#### Heathkit/Zenith
+#
+
+# Here is a description of the H19 DIP switches:
+#
+# S401
+# 0-3 = baud rate as follows:
+#
+# 3 2 1 0
+# --- --- --- ---
+# 0 0 1 1 300 baud
+# 0 1 0 1 1200 baud
+# 1 0 0 0 2400 baud
+# 1 0 1 0 4800 baud
+# 1 1 0 0 9600 baud
+# 1 1 0 1 19.2K baud
+#
+# 4 = parity (0 = no parity)
+# 5 = even parity (0 = odd parity)
+# 6 = stick parity (0 = normal parity)
+# 7 = full duplex (0 = half duplex)
+#
+# S402
+# 0 = block cursor (0 = underscore cursor)
+# 1 = no key click (0 = keyclick)
+# 2 = wrap at end of line (0 = no wrap)
+# 3 = auto LF on CR (0 = no LF on CR)
+# 4 = auto CR on LF (0 = no CR on LF)
+# 5 = ANSI mode (0 = VT52 mode)
+# 6 = keypad shifted (0 = keypad unshifted)
+# 7 = 50Hz refresh (1 = 60Hz refresh)
+#
+# Factory Default settings are as follows:
+# 7 6 5 4 3 2 1 0
+# S401 1 0 0 0 1 1 0 0
+# S402 0 0 0 0 0 0 0 0
+# (h19: I added <rmam>/<smam> based on the init string;
+# also added empty <acsc> to suppress a tic warning -- esr)
+h19-a|h19a|heath-ansi|heathkit-a|heathkit h19 ansi mode:\
+ :am:bs:mi:ms:\
+ :co#80:it#8:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:ac=:ae=\E[11m:al=\E[1L:as=\E[10m:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :dc=\E[1P:dl=\E[1M:do=\E[1B:ei=\E[4l:ho=\E[H:im=\E[4h:\
+ :is=\E<\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m\E[?7h:k1=\EOS:\
+ :k2=\EOT:k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:\
+ :kb=^H:kd=\E[1B:kh=\E[H:kl=\E[1D:kr=\E[1C:ku=\E[1A:l6=blue:\
+ :l7=red:l8=white:le=^H:nd=\E[1C:se=\E[m:sf=^J:so=\E[7m:\
+ :sr=\EM:ta=^I:up=\E[1A:ve=\E[>4l:vs=\E[>4h:
+h19-bs|heathkit w/keypad shifted:\
+ :ke=\Eu:ks=\Et:tc=h19-b:
+h19-us|h19us|h19-smul|heathkit w/keypad shifted/underscore cursor:\
+ :ke=\Eu:ks=\Et:\
+ :tc=h19-u:
+# (h19: merged in :ip: from BSDI hp19-e entry>;
+# also added empty <acsc> to suppress a tic warning --esr)
+# From: Tim Pierce <twp@skepsis.com>, 23 Feb 1998
+# Tim tells us that:
+# I have an old Zenith-19 terminal at home that still gets a lot of use.
+# This terminal suffers from the same famous insert-mode padding lossage
+# that has been acknowledged for the Z29 terminal. Emacs is nearly
+# unusable on this box, since even a half-scroll up or down the window
+# causes flaming terminal death.
+#
+# On the Z19, the only way I have found around this problem is to remove
+# the :al: and :dl: entries entirely. No amount of extra padding will
+# help (I have tried up to 20000). Removing :al=\EL$: and :dl=\EM$:
+# makes Emacs a little slower, but it remains in the land of the living.
+# Big win.
+h19|heath|h19-b|heathkit|heath-19|z19|zenith|heathkit h19:\
+ :am:bs:es:hs:mi:ms:\
+ :co#80:it#8:li#24:\
+ :ac=:ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :\
+ :cr=^M:dc=\EN:do=\EB:ei=\EO:fs=\Ek\Ey5:ho=\EH:im=\E@:\
+ :ip=1.5<1.5/>:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\
+ :k7=\EQ:k8=\ER:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\
+ :l6=blue:l7=red:l8=white:le=^H:nd=\EC:se=\Eq:sf=^J:so=\Ep:\
+ :sr=\EI:ta=^I:ts=\Ej\Ex5\EY8%p1%{32}%+%c\Eo\Eo:up=\EA:\
+ :ve=\Ey4:vs=\Ex4:
+h19-u|heathkit with underscore cursor:\
+ :ve@:vs@:tc=h19-b:
+h19-g|h19g|heathkit w/block cursor:\
+ :ve=\Ex4:tc=h19-b:
+alto-h19|altoh19|altoheath|alto-heath|alto emulating heathkit h19:\
+ :li#60:\
+ :al=\EL:dl=\EM:tc=h19:
+
+# The major problem with the Z29 is that it requires more padding than the Z19.
+#
+# The problem with declaring an H19 to be synonymous with a Z29 is that
+# it needs more padding. It especially loses if a program attempts
+# to put the Z29 into insert mode and insert text at 9600 baud. It
+# even loses worse if the program attempts to insert tabs at 9600
+# baud. Adding padding to text that is inserted loses because in
+# order to make the Z29 not die, one must add so much padding that
+# whenever the program tries to use insert mode, the effective
+# rate is about 110 baud.
+#
+# What program would want to put the terminal into insert mode
+# and shove stuff at it at 9600 baud you ask?
+#
+# Emacs. Emacs seems to want to do the mathematically optimal
+# thing in doing a redisplay rather than the practical thing.
+# When it is about to output a line on top of a line that is
+# already on the screen, instead of just killing to the end of
+# the line and outputting the new line, it compares the old line
+# and the new line and if there are any similarities, it
+# constructs the new line by deleting the text on the old line
+# on the terminal that is already there and then inserting new
+# text into the line to transform it into the new line that is
+# to be displayed. The Z29 does not react kindly to this.
+#
+# But don't cry for too long.... There is a solution. You can make
+# a termcap entry for the Z29 that says the Z29 has no insert mode.
+# Then Emacs cannot use it. "Oh, no, but now inserting into a
+# line will be really slow", you say. Well there is a sort of a
+# solution to that too. There is an insert character option on
+# the Z29 that will insert one character. Unfortunately, it
+# involves putting the terminal into ansi mode, inserting the
+# character, and changing it back to H19 mode. All this takes 12
+# characters. Pretty expensive to insert one character, but it
+# works. Either Emacs doesn't try to use its inserting hack when
+# it's only given an insert character ability or the Z29 doesn't
+# require padding with this (the former is probably more likely,
+# but I haven't checked it out).
+# (z29: added empty <acsc> to suppress a tic warning, merged in
+# status line capabilities from BRL entry --esr)
+z29|zenith29|z29b|zenith z29b:\
+ :am:bs:es:hs:mi:ms:pt:\
+ :co#80:kn#10:li#24:\
+ :ac=:ae=\EF:al=1\EL:as=\EG:bc=\ED:bl=^G:bt=\E-:cd=\EJ:ce=\EK:\
+ :cl=\EE:cm=\EY%+ %+ :cr=^M:dc=\EN:dl=1\EM:do=\EB:ds=\Ey1:\
+ :ei=\EO:fs=\Ek\Ey5:ho=\EH:ic=\E<\E[1@\E[?2h:im=\E@:\
+ :is=\E<\E[?2h\Ev:k0=\E~:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:\
+ :k6=\EP:k7=\EQ:k8=\ER:k9=\E0I:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
+ :kr=\EC:ku=\EA:l0=home:le=^H:nd=\EC:se=\Eq:sf=\n:so=\Ep:\
+ :sr=2\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Es0:up=\EA:\
+ :us=\Es8:ve=\Ey4:vs=\Ex4:
+# z29 in ansi mode. Assumes that the cursor is in the correct state, and that
+# the world is stable. <rs1> causes the terminal to be reset to the state
+# indicated by the name. kc -> key click, nkc -> no key click, uc -> underscore
+# cursor, bc -> block cursor.
+# From: Mike Meyers
+# (z29a: replaced nonexistent :if=/usr/share/tabset/zenith29: befause :st:
+# looks vt100-compatible -- esr)
+z29a|z29a-kc-bc|h29a-kc-bc|heath/zenith 29 in ansi mode:\
+ :am:bs:es:hs:mi:ms:pt:\
+ :co#80:it#8:kn#10:li#24:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:bc=\ED:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:\
+ :do=^J:ds=\E[>1l:fs=\E[u\E[>5l:ho=\E[H:\
+ :if=/usr/share/tabset/vt100:k0=\E[~:k1=\EOS:k2=\EOT:\
+ :k3=\EOU:k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:\
+ :kC=\E[J:kS=\E[J:kb=^H:kd=\EOB:kh=\E[H:kl=\EOD:kr=\EOC:\
+ :ku=\EOA:l0=help:le=^H:mb=\E[5m:md=\E[2m:me=\E[m:mh=\E[2m:\
+ :mr=\E[7m:nd=\E[C:nw=^M\ED:ps=\E#7:\
+ :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>4h\E[>1;2;3;5;6;7;8;9l\E[m\E[11m:\
+ :rc=\E[r:sc=\E[s:se=\E[m:sf=\ED:so=\E[7;2m:sr=\EM:st=\EH:\
+ :ta=^I:te=\E[?7h:ti=\E[?7l:\
+ :ts=\E[s\E[>5;1h\E[25;%i%dH\E[1K:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+z29a-kc-uc|h29a-kc-uc|z29 ansi mode with keyckick and underscore cursor:\
+ :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>1;2;3;4;5;6;7;8;9l\E[m\E[11m:\
+ :tc=z29a:
+z29a-nkc-bc|h29a-nkc-bc|z29 ansi mode with block cursor and no keyclick:\
+ :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2;4h\E[>1;3;5;6;7;8;9l\E[m\E[11m:\
+ :tc=z29a:
+z29a-nkc-uc|h29a-nkc-uc|z29 ansi mode with underscore cursor and no keyclick:\
+ :r1=\E<\E[1;24r\E[24;1H\E[?7h\E[>2h\E[>1;3;4;5;6;7;8;9l\E[m\E[11m:\
+ :tc=z29a:
+# From: Jeff Bartig <jeffb@dont.doit.wisc.edu> 31 Mar 1995
+z39-a|z39a|zenith39-a|zenith39-ansi|Zenith 39 in ANSI mode:\
+ :5i:am:es:hs:mi:ms:xo:\
+ :co#80:li#24:\
+ :%1=\E[~:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:K1=\EOw:\
+ :K2=\EOy:K3=\EOu:K4=\EOq:K5=\EOs:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:ac=0a``aaffggjjkkllmmnnooqqssttuuvvwwxx~~:\
+ :ae=\E(B:al=\E[1L:as=\E(0:bl=^G:bt=\E[1Z:cb=\E[1K:cd=\E[0J:\
+ :ce=\E[0K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[1P:dl=\E[1M:do=\E[B:\
+ :ds=\E[>1l:ei=\E[4l:fs=\E[u:ho=\E[H:im=\E[4h:\
+ :is=\E<\E[>1;3;5;6;7l\E[0m\E[2J:k1=\EOS:k2=\EOT:k3=\EOU:\
+ :k4=\EOV:k5=\EOW:k6=\EOP:k7=\EOQ:k8=\EOR:k9=\EOX:kS=\E[J:\
+ :kb=^H:kd=\E[B:ke=\E[>7l:kh=\E[H:kl=\E[D:kr=\E[C:ks=\E[>7h:\
+ :ku=\E[A:le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[0m:\
+ :mh=\E[2m:mr=\E[7m:nd=\E[C:pf=\E[4i:po=\E[5i:\
+ :ps=\E[?19h\E[i:r2=\E<\Ec\0:rc=\E[u:sc=\E[s:se=\E[0m:\
+ :sf=^J:so=\E[7m:st=\EH:ta=^I:ts=\E[s\E[>1h\E[25;%i%p1%dH:\
+ :ue=\E[0m:up=\E[A:us=\E[4m:ve=\E[>5l:vi=\E[>5h:
+
+# From: Brad Brahms <Brahms@USC-ECLC>
+z100|h100|z110|z-100|h-100|heath/zenith z-100 pc with color monitor:\
+ :ve=\Ey4\Em70:vs=\Ex4\Em71:\
+ :tc=z100bw:
+# (z100bw: removed obsolete ":kn#10:", added empty <acsc> -- esr)
+z100bw|h100bw|z110bw|z-100bw|h-100bw|heath/zenith z-100 pc:\
+ :bs:mi:ms:pt:\
+ :co#80:it#8:kn#10:li#24:\
+ :ac=:ae=\EG:al=5*\EL:as=\EF:cd=\EJ:ce=\EK:cl=5*\EE:\
+ :cm=1*\EY%+ %+ :dc=1*\EN:dl=5*\EM:do=\EB:ei=\EO:ho=\EH:\
+ :im=\E@:k0=\EJ:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:\
+ :k7=\EQ:k8=\ER:k9=\EOI:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:\
+ :ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Ep:sr=\EI:ta=^I:up=\EA:\
+ :ve=\Ey4:vs=\Ex4:
+p19|h19-b with il1/dl1:\
+ :al=2*\EL:dl=2*\EM:tc=h19-b:
+# From: <ucscc!B.fiatlux@ucbvax.berkeley.edu>
+# (ztx: removed duplicate :sr: -- esr)
+ztx|ztx11|zt-1|htx11|ztx-1-a|ztx-10 or 11:\
+ :am:bs:es:hs:\
+ :co#80:it#8:li#24:\
+ :al=\EL:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :dl=\EM:do=^J:\
+ :ds=\Ey1:fs=\Ek\Ey5:ho=\EH:\
+ :is=\Ej\EH\Eq\Ek\Ev\Ey1\Ey5\EG\Ey8\Ey9\Ey>:k0=\ES:\
+ :k1=\EB:k2=\EU:k3=\EV:k4=\EW:k5=\EP:k6=\EQ:k7=\ER:kb=^H:\
+ :kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eq:so=\Es5:\
+ :sr=\EI:ta=^I:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:ue=\Eq:up=\EA:\
+ :us=\Es2:
+
+#### IMS International (ims)
+#
+# There was a company called IMS International located in Carson City,
+# Nevada, that flourished from the mid-70s to mid-80s. They made S-100
+# bus/Z80 hardware and a line of terminals called Ultimas.
+#
+
+# From: Erik Fair <fair@ucbarpa.berkeley.edu> Sun Oct 27 07:21:05 1985
+ims950-b|bare ims950 no init string:\
+ :is@:tc=ims950:
+# (ims950: removed obsolete ":ko@:" -- esr)
+ims950|ims televideo 950 emulation:\
+ :xn@:\
+ :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950:
+# (ims950-rv: removed obsolete ":ko@:" -- esr)
+ims950-rv|ims tvi950 rev video:\
+ :xn@:\
+ :k0@:k1@:k2@:k3@:k4@:k5@:k6@:k7@:k8@:k9@:kb@:kd@:kh@:kl@:kr@:ku@:vb@:tc=tvi950-rv:
+ims-ansi|ultima2|ultimaII|IMS Ultima II:\
+ :am:bs:\
+ :co#80:it#8:li#24:\
+ :cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:cm=\E[%i%2;%2H:do=\ED:\
+ :if=/usr/share/tabset/vt100:\
+ :is=\E[m\E[>14l\E[?1;?5;20l\E>\E[1m\r:kd=\E[B:kh=\E[H:\
+ :kl=\E[D:kr=\E[C:ku=\E[A:le=^H:me=\E[m:se=\E[m\E[1m:\
+ :so=\E[7m:sr=\EM:ta=^I:ue=\E[m\E[1m:up=\EM:us=\E[4m:
+
+#### Intertec Data Systems
+#
+# I think this company is long dead as of 1995. They made an early CP/M
+# micro called the "Intertec Superbrain" that was moderately popular,
+# then sank out of sight.
+#
+
+superbrain|intertec superbrain:\
+ :am:bs:bw:\
+ :co#80:li#24:\
+ :bc=^U:bl=^G:cd=\E~k<10*>:ce=\E~K:cl=\014:cm=\EY%+ %+ :\
+ :cr=^M:do=^J:kd=^J:kl=^U:kr=^F:ku=^K:le=^H:nd=^F:sf=^J:ta=^I:\
+ :te=^L:ti=^L:up=^K:
+# (intertube: a Gould entry via BRL asserted smul=\E0@$<200/>,
+# rmul=\E0A$<200/>; my guess is the highlight letter is bit-coded like an ADM,
+# and the reverse is actually true. Try it. -- esr)
+intertube|intertec|Intertec InterTube:\
+ :am:bs:\
+ :co#80:li#25:\
+ :bl=^G:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=^A:le=^H:nd=^F:\
+ :se=\E0@:sf=^J:so=\E0P:up=^Z:
+# The intertube 2 has the "full duplex" problem like the tek 4025: if you
+# are typing and a command comes in, the keystrokes you type get interspersed
+# with the command and it messes up
+intertube2|intertec data systems intertube 2:\
+ :bs:\
+ :ce=\EK:ch=\020%+^J:cm=\016%.\020%+^J:cv=\013%.:\
+ :ll=^K^X\r:\
+ :tc=intertube:
+
+#### Ithaca Intersystems
+#
+# This company made S100-bus personal computers long ago in the pre-IBM-PC
+# past. They used to be reachable at:
+#
+# Ithaca Intersystems
+# 1650 Hanshaw Road
+# Ithaca, New York 14850
+#
+# However, the outfit went bankrupt years ago.
+#
+
+# The Graphos III was a color graphics terminal from Ithaca Intersystems.
+# These entries were written (originally in termcap syntax) by Brian Yandell
+# <yandell@stat.wisc.edu> and Mike Meyer <mikem@stat.wisc.edu> at the
+# University of Wisconsin.
+
+# (graphos: removed obsolete and syntactically incorrect :kn=4:,
+# removed :if=/usr/share/tabset/init.graphos: and
+# <rf=/usr/share/tabset/init.graphos> no such file & no :st: -- esr)
+graphos|graphos III:\
+ :am:mi:\
+ :co#80:it#8:li#24:\
+ :AL=\E[%dL:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:\
+ :UP=\E[%dA:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:dm=\E[4h:do=\E[B:\
+ :ed=\E[4l:ei=\E[4l:ho=\E[H:im=\E[4h:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ku=\E[A:le=^H:me=\E[m:nd=\E[C:nw=^M\ED:rc=\E8:sc=\E7:\
+ :se=\E[m:sf=\ED:so=\E[7m:sr=\EM:ta=^I:up=\E[A:\
+ :ve=\Ez56;2;0;0z\Ez73z\Ez4;1;1z:\
+ :vs=\Ez4;2;1z\Ez56;2;80;24z:
+graphos-30|graphos III with 30 lines:\
+ :li#30:\
+ :vs=\Ez4;2;1z\Ez56;2;80;30z:tc=graphos:
+
+#### Modgraph
+#
+# These people used to be reachable at:
+#
+# Modgraph, Inc
+# 1393 Main Street,
+# Waltham, MA 02154
+# Vox: (617)-890-5796.
+#
+# However, if you call that number today you'll get an insurance company.
+# I have mail from "Michael Berman, V.P. Sales, Modgraph" dated
+# 26 Feb 1997 that says:
+#
+# Modgraph GX-1000, replaced by GX-2000. Both are out of production, have been
+# for ~7 years. Modgraph still in business. Products are rugged laptop and
+# portable PC's and specialized CRT and LCD monitors (rugged, rack-mount
+# panel-mount etc). I can be emailed at sonfour@aol.com
+#
+# Peter D. Smith <pdsmith@nbbn.com> notes that his modgraph manual was
+# dated 1984. According to the manual, it featured Tek 4010/4014
+# graphics and DEC VT100/VT52 + ADM-3A emulation with a VT220-style keyboard.
+#
+
+modgraph|mod24|modgraph terminal emulating vt100:\
+ :xn@:\
+ :co#80:li#24:\
+ :is=\E\1369;0s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s:\
+ :rf@:sr=5\EM\E[K:vs=\E\1369;0s\E\1367;1s:\
+ :tc=vt100:
+# The GX-1000 manual is dated 1984. This looks rather like a VT-52.
+modgraph2|modgraph gx-1000 80x24 with keypad not enabled:\
+ :am:da:db:\
+ :co#80:it#8:li#24:\
+ :cd=50\EJ:ce=3\EK:cl=50\EH\EJ:cm=5\EY%+ %+ :\
+ :is=\E<\E\1365;2s\E\1367;1s\E[3g\E\13611;9s\E\13611;17s\E\13611;25s\E\13611;33s\E\13611;41s\E\13611;49s\E\13611;57s\E\13611;65s\E\13611;73s\E\13611;81s\E\13611;89s\E\13612;0s\E\13614;2s\E\13615;9s\E\13625;1s\E\1369;1s\E\13627;1:\
+ :le=^H:nd=2\EC:sr=5\EI:ta=^I:up=2\EA:
+#
+# Modgraph from Nancy L. Cider <nancyc@brl-tbd>
+# BUG NOTE from Barbara E. Ringers <barb@brl-tbd>:
+# If we set TERM=vt100, and set the Modgraph screen to 24 lines, setting a
+# mark and using delete-to-killbuffer work correctly. However, we would
+# like normal mode of operation to be using a Modgraph with 48 line setting.
+# If we set TERM=mod (which is a valid entry in termcap with 48 lines)
+# the setting mark and delete-to-killbuffer results in the deletion of only
+# the line the mark is set on.
+# We've discovered that the delete-to-killbuffer works correctly
+# with TERM=mod and screen set to 80x48 but it's not obvious. Only
+# the first line disappears but a ctrl-l shows that it did work
+# correctly.
+modgraph48|mod|Modgraph w/48 lines:\
+ :am:bs:pt:xn:\
+ :co#80:it#8:li#48:vt#3:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:do=^J:ho=\E[H:\
+ :is=\E<\E[1;48r\E[0q\E[3;4q\E=\E[?1h:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:\
+ :me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:r1=\E=\E[0q\E>:rc=\E8:\
+ :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\
+ :us=\E[4m:vb=\E[?5h\E[0q\E[1;2q\E[?5l\E[0q\E[4;3q:
+
+#### Morrow Designs
+#
+# This was George Morrow's company. They started in the late 1970s making
+# S100-bus machines. They used to be reachable at:
+#
+# Morrow
+# 600 McCormick St.
+# San Leandro, CA 94577
+#
+# but they're long gone now (1995).
+#
+
+# The mt70 terminal was shipped with the Morrow MD-3 microcomputer.
+# Jeff's specimen was dated June 1984.
+# From: Jeff Wieland <wieland@acn.purdue.edu> 24 Feb 1995
+mt70|mt-70|Morrow MD-70; native Morrow mode:\
+ :am:mi:ms:xo:\
+ :co#80:it#8:li#24:\
+ :%1=^AO\r:F1=^A`\r:F2=^Aa\r:F3=^Ab\r:F4=^Ac\r:F5=^Ad\r:\
+ :F6=^Ae\r:F7=^Af\r:F8=^Ag\r:F9=^Ah\r:FA=^Ai\r:\
+ :ac=+z\054{-x.yOi`|jGkFlEmDnHqJtLuKvNwMxI:ae=\E%:\
+ :al=\EE:as=\E$:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=^Z:\
+ :cm=\E=%+ %+ :cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ei=:ho=^^:\
+ :i1=\E"2\EG0\E]:ic=\EQ:im=:k1=^A@\r:k2=^AA\r:k3=^AB\r:\
+ :k4=^AC\r:k5=^AD\r:k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:\
+ :k;=^AI\r:kB=^A^Z\r:kC=^An\r:kD=\177:kb=^H:kd=^AK\r:\
+ :kh=^AN\r:kl=^AL\r:kr=^AM\r:ku=^AJ\r:le=^H:mh=\EG2:mk@:\
+ :nd=^L:nw=^_:sf=^J:ta=^I:te=:ti=\E"2\EG0\E]:up=^K:us=\EG1:\
+ :vb=\EK1\EK0:ve=\E"2:vi=\E"0:\
+ :tc=adm+sgr:
+
+#### Motorola
+#
+
+# Motorola EXORterm 155 from {decvax, ihnp4}!philabs!sbcs!megad!seth via BRL
+# (Seth H Zirin)
+ex155|Motorola Exorterm 155:\
+ :am:bs:bw:\
+ :co#80:kn#5:li#24:\
+ :bt=\E[:cd=\ET:ce=\EU:cl=\EX:cm=\EE%+ %+ :do=\EB:ho=\E@:\
+ :kB=\E[:kC=\EX:kE=\EU:kS=\ET:kb=^H:kd=^J:kh=\E@:kl=^H:kr=^L:\
+ :ku=^K:nd=\ED:se=\Ec\ED:so=\Eb\ED:ta=\EZ:ue=\Eg\ED:\
+ :us=\Ef\ED:
+
+#### Omron
+#
+# This company is still around in 1995, manufacturing point-of-sale systems.
+
+omron|Omron 8025AG:\
+ :am:bs:da:db:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=\ER:ce=\EK:cl=\EJ:cr=^M:dc=\EP:dl=\EM:do=^J:\
+ :ho=\EH:le=^H:nd=\EC:se=\E4:sf=\ES:so=\Ef:sr=\ET:up=\EA:\
+ :vs=\EN:
+
+#### Ramtek
+#
+# Ramtek was a vendor of high-end graphics terminals around 1979-1983; they
+# were competition for things like the Tektronics 4025.
+#
+
+# Ramtek 6221 from BRL, probably by Doug Gwyn
+# The following SET-UP modes are assumed for normal operation:
+# UNDERLINE_CURSOR ANSI_MODE AUTO_XON/XOFF_ON
+# NEWLINE_OFF 80_COLUMNS
+# Other SET-UP modes may be set for operator convenience or communication
+# requirements; I recommend
+# SMOOTH_SCROLL AUTO_REPEAT_ON 3_#_SHIFTED WRAP_AROUND_ON
+# Hardware tabs are assumed to be every 8 columns; they can be set up by the
+# "reset", "tset", or "tabs" utilities (use rt6221-w, 160 columns, for this).
+# Note that the Control-E key is useless on this brain-damaged terminal. No
+# delays are specified; use "stty ixon -ixany" to enable DC3/DC1 flow control!
+rt6221|Ramtek 6221 80x24:\
+ :bs:ms:pt:xo:\
+ :co#80:it#8:kn#4:li#24:vt#3:\
+ :DO=\E[%dB:LE=\E[%dD:RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:as=^N:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[J:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:ct=\E[3g:do=^K:ho=\E[1;1H:is=\E)0:\
+ :k0=\EOP:k1=\EOQ:k2=\EOR:k3=\EOS:kb=^H:kd=\E[B:ke=\E>:\
+ :kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
+ :le=^H:ll=\E[24;1H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
+ :nd=\E[C:nw=\EE:\
+ :r1=\E[1w\E[>37m\E[>39m\E[1v\E[20l\E[?3l\E[?6l\E[>5h\E[>6h\E[>7h\E[>8l\E[>9h\E[>10l\E[1;24r\E[m\E[q\E(B\017\E)0\E#5\E>:\
+ :rc=\E8:sc=\E7:se=\E[m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ :ue=\E[m:up=\EM:us=\E[4m:ve=\E[>5h\E[>9h:vi=\E[>5l:\
+ :vs=\E[>7h\E[>9l:
+# [TO DO: Check out: short forms of ho/cl and ll; reset (\Ec)].
+rt6221-w|Ramtek 6221 160x48:\
+ :co#160:li#48:\
+ :ll=\E[48;1H:tc=rt6221:
+
+#### RCA
+#
+
+# RCA VP3301 or VP3501
+rca|rca vp3301/vp3501:\
+ :bs:\
+ :co#40:li#24:\
+ :cl=^L:cm=\EY%+ %+ :ho=^Z:nd=^U:se=\E\ES0:so=\E\ES1:up=^K:
+
+
+#### Selanar
+#
+
+# Selanar HiREZ-100 from BRL, probably by Doug Gwyn
+# The following SET-UP modes are assumed for normal operation:
+# SET_DEFAULT_TABS 48_LINES 80_COLUMNS
+# ONLINE ANSI CURSOR_VISIBLE
+# VT102_AUTO_WRAP_ON VT102_NEWLINE_OFF VT102_MONITOR_MODE_OFF
+# LOCAL_ECHO_OFF US_CHAR_SET WPS_TERMINAL_DISABLED
+# CPU_AUTO_XON/XOFF_ENABLED PRINT_FULL_SCREEN
+# For use with graphics software, all graphics modes should be set to factory
+# default. Other SET-UP modes may be set for operator convenience or
+# communication requirements. No delays are specified; use "stty ixon -ixany"
+# to enable DC3/DC1 flow control!
+# I commented out the scrolling capabilities since they are too slow.
+hirez100|Selanar HiREZ-100:\
+ :bs:mi:ms:pt:xo:\
+ :co#80:it#8:kn#4:li#48:vt#3:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ac=:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
+ :ce=\E[K:cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:\
+ :dc=\E[P:dl=\E[M:do=^J:ho=\E[H:is=\E<\E)0:k0=\EOP:k1=\EOQ:\
+ :k2=\EOR:k3=\EOS:kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:\
+ :kr=\EOC:ks=\E[?1h\E=:ku=\EOA:l0=PF1:l1=PF2:l2=PF3:l3=PF4:\
+ :le=^H:ll=\E[48H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:\
+ :nd=\E[C:nw=\EE:pf=\E[4i\E[?4i:po=\E[?5i\E[5i:ps=\E[i:\
+ :r1=\030\E2\E<\E[4i\E[?4i\E[12h\E[2;4;20l\E[?0;7h\E[?1;3;6;19l\E[r\E[m\E(B\017\E)0\E>:\
+ :rc=\E8:sc=\E7:se=\E[m:so=\E[7m:st=\EH:ta=^I:ue=\E[m:up=\EM:\
+ :us=\E[4m:
+hirez100-w|Selanar HiREZ-100 in 132-column mode:\
+ :co#132:tc=hirez100:
+
+#### Signetics
+#
+
+# From University of Wisconsin
+vsc|Signetics Vsc Video driver by RMC:\
+ :am:ms:\
+ :co#80:it#8:li#26:\
+ :ce=\E[K:cl=50\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:do=^J:\
+ :ho=\E[H:kb=^H:kd=^J:kl=^H:le=^H:me=^_\041:mr=^_ :nd=\E[C:\
+ :nw=^M^J:se=^_\041:sf=^J:so=^_ :ta=^I:ue=^_#:up=\E[A:us=^_":
+
+#### Soroc
+#
+# Alan Frisbie <frisbie@flying-disk.com> writes:
+#
+# As you may recall, the Soroc logo consisted of their name,
+# with the letter "S" superimposed over an odd design. This
+# consisted of a circle with a slightly smaller 15 degree (approx.)
+# wedge with rounded corners inside it. The color was sort of
+# a metallic gold/yellow.
+#
+# If I had been more of a beer drinker it might have been obvious
+# to me, but it took a clue from their service department to make
+# me exclaim, "Of course!" The circular object was the top of
+# a beer can (the old removable pop-top style) and "Soroc" was an
+# anagram for "Coors".
+#
+# I can just imagine the founders of the company sitting around
+# one evening, tossing back a few and trying to decide what to
+# call their new company and what to use for a logo.
+#
+
+# (soroc120: removed obsolete ":ma=^K^P^R^L^L :" -- esr)
+soroc120|iq120|soroc|soroc iq120:\
+ :cd=\EY:ce=\ET:cl=\E*:do=^J:kd=^J:kl=^H:kr=^L:ku=^K:tc=adm3a:
+soroc140|iq140|soroc iq140:\
+ :am:bs:mi:\
+ :co#80:li#24:\
+ :al=\Ee:bl=^G:bt=\EI:cd=\Ey:ce=\Et:cl=\E+:cm=\E=%+ %+ :\
+ :cr=^M:dc=\Ew:dl=\Er:do=^J:ei=\E8:ho=^^:im=\E9:k0=^A0\r:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kb=^H:kh=^^:kr=^L:ku=^K:le=^H:\
+ :ll=^^^K:nd=^L:se=\E\177:sf=^J:so=\E\177:ue=\E^A:up=^K:\
+ :us=\E^A:
+
+#### Synertek
+#
+# Bob Manson <manson@pattyr.acs.ohio-state.edu> writes (28 Apr 1995):
+#
+# Synertek used to make ICs, various 6502-based single-board process
+# control and hobbyist computers, and assorted peripherals including a
+# series of small inexpensive terminals (I think they were one of the
+# first to have a "terminal-on-a-keyboard", where the terminal itself
+# was only slightly larger than the keyboard).
+#
+# They apparently had a KTM-1 model, which I've never seen. The KTM-2/40
+# was a 40x24 terminal that could connect to a standard TV through a
+# video modulator. The KTM-2/80 was the 80-column version (the 2/40
+# could be upgraded to the 2/80 by adding 2 2114 SRAMs and a new ROM).
+# I have a KTM-2/80 still in working order. The KTM-2s had fully
+# socketed parts, used 2 6507s, a 6532 as keyboard scanner, a program
+# ROM and 2 ROMs as character generators. They were incredibly simple,
+# and I've never had any problems with mine (witness the fact that mine
+# was made in 1981 and is still working great... I've blown the video
+# output transistor a couple of times, but it's a 2N2222 :-)
+#
+# The KTM-3 (which is what is listed in the terminfo file) was their
+# attempt at putting a KTM-2 in a box (and some models came with a
+# CRT). It wasn't much different from the KTM-2 hardware-wise, but the
+# control and escape sequences are very different. The KTM-3 was always
+# real broken, at least according to the folks I've talked to about it.
+#
+# The padding in the entry is probably off--these terminals were very
+# slow (it takes like 100ms for the KTM-2 to clear the screen...) And
+# anyone with any sanity replaced the ROMs with something that provided
+# a reasonable subset of VT100 functionality, since the usual ROMs were
+# obviously very primitive... oh, you could get an upgraded ROM from
+# Synertek for some incredible amount of money, but what hacker with an
+# EPROM burner would do that? :)
+#
+# Sorry I don't have any contact info; I believe they were located in
+# Sunnyvale, and I'm fairly sure they are still manufacturing ICs
+# (they've gone to ASICs and FPGAs), but I doubt they're in the computer
+# business these days.
+#
+
+# Tested, seems to work fine with vi.
+synertek|ktm|synertek380|synertek ktm 3/80 tubeless terminal:\
+ :am:\
+ :co#80:li#24:\
+ :cd=\EJ:ce=\EK:cl=^Z:cm=\E=%+ %+ :le=^H:nd=^L:up=^K:
+
+#### Tab Office Products
+#
+# TAB Products Co. - Palo Alto, California
+# Electronic Office Products,
+# 1451 California Avenue 94304
+#
+# I think they're out of business.
+#
+
+# The tab 132 uses xon/xoff, so no padding needed.
+# :ks:/:ke: have nothing to do with arrow keys.
+# :is: sets 80 col mode, normal video, autowrap on (for :am:).
+# Seems to be no way to get rid of status line.
+# The manual for this puppy was dated June 1981. It claims to be VT52-
+# compatible but looks more vt100-like.
+tab132|tab|tab132-15|tab 132/15:\
+ :da:db:\
+ :co#80:dN@:li#24:lm#96:\
+ :al=\E[L:cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
+ :im=\E[4h:is=\E[?7h\E[?3l\E[?5l:kd=\E[B:ke@:kl=\E[D:ks@:\
+ :ku=\E[A:\
+ :tc=vt100:
+tab132-w|tab132 in wide mode:\
+ :co#132:\
+ :is=\E[?7h\E[?3h\E[?5l:tc=tab132:
+tab132-rv|tab132 in reverse-video mode:\
+ :is=\E[?7h\E[?3l\E[?5h:tc=tab132:
+tab132-w-rv|tab132 in reverse-video/wide mode:\
+ :is=\E[?7h\E[?3h\E[?5h:tc=tab132-w:
+
+
+#### Teleray
+#
+# Research Incorporated
+# 6425 Flying Cloud Drive
+# Eden Prairie, MN 55344
+# Vox: (612)-941-3300
+#
+# The Teleray terminals were all discontinued in 1992-93. RI still services
+# and repairs these beasts, but no longer manufactures them. The Teleray
+# people believe that all the types listed below are very rare now (1995).
+# There was a newer line of Telerays (Model 7, Model 20, Model 30, and
+# Model 100) that were ANSI-compatible.
+#
+# Note two things called "teleray". Reorder should move the common one
+# to the front if you have either. A dumb teleray with the cursor stuck
+# on the bottom and no obvious model number is probably a 3700.
+#
+
+t3700|dumb teleray 3700:\
+ :bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=^L:cr=^M:do=^J:le=^H:sf=^J:
+t3800|teleray 3800 series:\
+ :bs:\
+ :co#80:it#8:li#24:\
+ :bl=^G:cd=\EJ:ce=\EK:cl=^L:cm=\EY%+ %+ :cr=^M:do=^J:ho=\EH:\
+ :le=^H:ll=\EY7 :nd=\EC:sf=^J:ta=^I:up=^K:
+t1061|teleray|teleray 1061:\
+ :am:bs:km:xs:xt:\
+ :co#80:it#8:li#24:sg#1:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\014:cm=\EY%+ %+ :cr=^M:\
+ :ct=\EG:dc=\EQ:dl=\EM:do=^J:ei=:ho=\EH:ic=\EP:im=:ip=:\
+ :is=\Ee\EU01^Z1\EV\EU02^Z2\EV\EU03^Z3\EV\EU04^Z4\EV\EU05^Z5\EV\EU06^Z6\EV\EU07^Z7\EV\EU08^Z8\EV\Ef:\
+ :k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:k7=^Z7:k8=^Z8:\
+ :le=^H:nd=\EC:se=\ER@:sf=^J:so= \ERD:st=\EF:ta=^I:ue=\ER@:\
+ :up=\EA:us=\ERH:
+t1061f|teleray 1061 with fast PROMs:\
+ :al=\EL:dl=\EM:ip@:tc=t1061:
+# "Teleray Arpa Special", officially designated as
+# "Teleray Arpa network model 10" with "Special feature 720".
+# This is the new (1981) fast microcode updating the older "arpa" proms
+# (which gave meta-key and programmable-fxn keys). 720 is much much faster,
+# converts the keypad to programmable function keys, and has other goodies.
+# Standout mode is still broken (magic cookie, etc) so is suppressed as no
+# programs handle such lossage properly.
+# Note: this is NOT the old termcap's "t1061f with fast proms."
+# From: J. Lepreau <lepreau@utah-cs> Tue Feb 1 06:39:37 1983, Univ of Utah
+# (t10: removed overridden ":so@:se@:us@:ue@:" -- esr)
+t10|teleray 10 special:\
+ :bs:km:xs:xt:\
+ :co#80:it#8:li#24:sg#2:\
+ :al=\EL:cd=\EJ:ce=\EK:cl=30\Ej:cm=\EY%+ %+ :dc=\EQ:dl=\EM:\
+ :ei=:ho=\EH:ic=\EP:im=:le=^H:nd=\EC:pc=\0:se=\ER@:sf=\Eq:\
+ :so=\ERD:sr=\Ep:ta=^I:ue=\ER@:up=\EA:us=\ERH:
+# teleray 16 - map the arrow keys for vi/rogue, shifted to up/down page, and
+# back/forth words. Put the function keys (f1-f10) where they can be
+# found, and turn off the other magic keys along the top row, except
+# for line/local. Do the magic appropriate to make the page shifts work.
+# Also toggle ^S/^Q for those of us who use Emacs.
+t16|teleray 16:\
+ :am:da:db:mi:xs:xt:\
+ :co#80:li#24:\
+ :al=\E[L:bl=^G:cd=\E[0J:ce=\E[0K:cl=\E[H\E[2J:\
+ :cm=%i\E[%d;%df:cr=^M:dc=\E[P:dl=\E[M:do=\E[B:ei=\E[4l:\
+ :ho=\E[H:im=\E[4h:k1=^Z1:k2=^Z2:k3=^Z3:k4=^Z4:k5=^Z5:k6=^Z6:\
+ :k7=^Z7:k8=^Z8:k9=^Z9:k;=^Z0:le=^H:me=\E[m:nd=\E[C:se=\E[m:\
+ :sf=^J:so=\E[7m:sr=\E[T:ta=^I:te=\E[V\E[24;1f\E[?38h:\
+ :ti=\E[U\E[?38l:ue=\E[m:up=\E[A:us=\E[4m:
+
+#### Texas Instruments (ti)
+#
+
+# The Silent 700 was so called because it was built around a quiet thermal
+# printer. It was portable, equipped with an acoustic coupler, and pretty
+# neat for its day.
+ti700|ti733|ti735|ti745|ti800|ti silent 700/733/735/745 or omni 800:\
+ :bs:hc:os:\
+ :co#80:\
+ :bl=^G:cr=\r:do=^J:le=^H:sf=^J:
+
+#
+# Texas Instruments 916 VDT 7 bit control mode
+#
+ti916|ti916-220-7|Texas Instruments 916 VDT 8859/1 vt220 mode 7 bit CTRL:\
+ :da:db:in:ms:\
+ :%9=^X:@4=\E[29~:@8=^J:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:\
+ :DO=\E[%dB:F1=\E[29~:F2=\E[31~:IC=\E[%d@:LE=\E[%dD:\
+ :RI=\E[%dC:UP=\E[%dA:ae=\017:as=\016:bt=\E[Z:cb=\E[1K:\
+ :cd=\E[J:ce=\E[0K:ch=\E[%+^AG:cl=\E[H\E[2J:\
+ :cm=\E[%i%d;%dH:ct=\E[3g:cv=\E[%+^Ad:dc=\E[P:eA=\E(B\E)0:\
+ :ec=\E[%dX:ei=:ff=^L:im=:ip=:is=\E[1;24r\E[24;1H:k1=\E[17~:\
+ :k2=\E[18~:k3=\E[19~:k4=\E[20~:k5=\E[21~:k6=\E[23~:\
+ :k7=\E[24~:k8=\E[25~:k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:\
+ :kN=\E[S:kP=\E[T:kh=\E[H:mp=\E&:r2=\E[\041p:st=\E[0W:\
+ :vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:\
+ :tc=vt220:
+#
+# Texas Instruments 916 VDT 8 bit control mode
+#
+ti916-8|ti916-220-8|Texas Instruments 916 VDT 8859/1 8 vt220 mode bit CTRL:\
+ :%9=^X:@4=\23329~:@8=^J:F1=\23329~:F2=\23331~:k1=\23317~:\
+ :k2=\23318~:k3=\23319~:k4=\23320~:k5=\23321~:k6=\23323~:\
+ :k7=\23324~:k8=\23325~:k9=\23326~:k;=\23328~:kD=\233P:\
+ :kI=\233@:kN=\233S:kP=\233T:kd=\233B:kh=\233H:kl=\233D:\
+ :kr=\233C:ku=\233A:\
+ :tc=ti916:
+#
+# Texas Instruments 916 VDT 8859/1 7 bit control 132 column mode
+#
+ti916-132|Texas Instruments 916 VDT vt220 132 column:\
+ :co#132:tc=ti916:
+#
+# Texas Instruments 916 VDT 8859/1 8 bit control 132 column mode
+#
+ti916-8-132|Texas Instruments 916 VDT 8-bit vt220 132 column:\
+ :co#132:tc=ti916-8:
+ti924|Texas Instruments 924 VDT 8859/1 7 bit CTRL:\
+ :am:bs:xo:\
+ :co#80:it#8:li#24:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
+ :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\
+ :do=\E[B:ho=\E[H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\E[16~:\
+ :k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:kD=\E[P:kI=\E[@:\
+ :kb=^H:kd=\E[B:kl=\E[D:kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:\
+ :sf=\ED:so=\E[7m:sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:\
+ :us=\E[4m:ve=\E[?25h:vi=\E[?25l:vs=\E[?31h:
+ti924-8|Texas Instruments 924 VDT 8859/1 8 bit CTRL:\
+ :am:xo:\
+ :co#80:it#8:li#24:\
+ :al=\E[L:bl=^G:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:\
+ :cm=%i\E[%d;%dH:cr=^M:cs=%i\E[%d;%dr:ct=\E[3g:dl=\E[M:\
+ :do=\E[B:ho=\E[H:k1=P\217>:k2=Q\217>:k3=R\217>:k4=S\217>:\
+ :k5=~\23316>:k6=~\23317>:k7=~\23318>:k8=~\23319>:\
+ :k9=~\23320>:kD=P\233>:kI=@\233>:kb=^H:kd=\E[B:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=\E[D:mb=\E[5m:md=\E[1m:me=\E[m:\
+ :mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:se=\E[m:sf=\ED:so=\E[7m:\
+ :sr=\EM:st=\EH:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[?25h:\
+ :vi=\E[?25l:vs=\E[?31h:
+ti924w|Texas Instruments 924 VDT 7 bit - 132 column mode:\
+ :co#132:tc=ti924:
+ti924-8w|Texas Instruments 924 VDT 8 bit - 132 column mode:\
+ :co#132:tc=ti924-8:
+ti931|Texas Instruments 931 VDT:\
+ :am:bs:xo:\
+ :co#80:li#24:\
+ :al=\EN:bl=^G:cd=\EJ:ce=\EI:cl=\EL:cm=\EY%+ %+ :cr=^M:\
+ :dc=\EQ:dl=\EO:do=\EB:ei=:ho=\EH:ic=\ER\EP\EM:im=:\
+ :is=\EGB\E(@B@@\E):k1=\Ei1:k2=\Ei2:k3=\Ei3:k4=\Ei4:\
+ :k5=\Ei5:k6=\Ei6:k7=\Ei7:k8=\Ei8:k9=\Ei9:kA=\EN:kD=\EQ:\
+ :kI=\EP:kL=\EO:kd=\EB:kl=\ED:kr=\EC:ku=\EA:le=\ED:mb=\E4P:\
+ :me=\E4@:mk=\E4H:mr=\E4B:nd=\EC:se=\E4@:sf=\Ea:so=\E4A:\
+ :sr=\Eb:ue=\E4@:up=\EA:us=\E4D:ve=\E4@:
+ti926|Texas Instruments 926 VDT 8859/1 7 bit CTRL:\
+ :cs@:sf=\E[1S:sr=\E[1T:tc=ti924:
+# (ti926-8: I corrected this from the broken SCO entry -- esr)
+ti926-8|Texas Instruments 926 VDT 8859/1 8 bit CTRL:\
+ :cs@:sf=\2331S:sr=\2331T:\
+ :tc=ti924-8:
+ti_ansi|basic entry for ti928:\
+ :am:eo:ut:xn:xo:\
+ :Co#8:co#80:it#8:li#25:pa#64:\
+ :@7=\E[F:AB=\E[4%p1%dm:AF=\E[3%p1%dm:al=\E[L:bl=^G:\
+ :bt=\E[Z:cd=\E[J:ce=\E[K:cl=\E[2J\E[H:cm=\E[%i%d;%dH:\
+ :cr=^M:cs=\E[%i%d;%dr:dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:\
+ :ic=\E[@:im=:k0=\E[V:k1=\E[M:k2=\E[N:k3=\E[O:k4=\E[P:\
+ :k5=\E[Q:k6=\E[R:k7=\E[S:k8=\E[T:k9=\E[U:kN=\E[G:kP=\E[I:\
+ :kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:nd=\E[C:op=\E[37;40m:se=\E[m:\
+ :sf=\E[S:so=\E[7m:sr=\E[T:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+#
+# 928 VDT 7 bit control mode
+#
+ti928|Texas Instruments 928 VDT 8859/1 7 bit CTRL:\
+ :%9=\E[35~:@7=\E_1\E\:@8=\E[8~:F1=\E[29~:F2=\E[31~:\
+ :F3=\E[32~:F5=\E[34~:k1=\E[17~:k2=\E[18~:k3=\E[19~:\
+ :k4=\E[20~:k5=\E[21~:k6=\E[23~:k7=\E[24~:k8=\E[25~:\
+ :k9=\E[26~:k;=\E[28~:kD=\E[P:kI=\E[@:kN=\E[S:kP=\E[T:\
+ :tc=ti_ansi:
+#
+# 928 VDT 8 bit control mode
+#
+ti928-8|Texas Instruments 928 VDT 8859/1 8 bit CTRL:\
+ :%9=\23335~:@7=\2371\234:@8=\2338~:F1=\23329~:F2=\23331~:\
+ :F3=\23332~:F5=\23334~:k1=\23317~:k2=\23318~:k3=\23319~:\
+ :k4=\23320~:k5=\23321~:k6=\23323~:k7=\23324~:k8=\23325~:\
+ :k9=\23326~:k;=\23328~:kD=\233P:kI=\233@:kN=\233S:\
+ :kP=\233T:kh=\233H:\
+ :tc=ti_ansi:
+
+#### Zentec (zen)
+#
+
+# (zen30: removed obsolete :ma=^L ^R^L^K^P:. This entry originally
+# had just :so:=\EG6 which I think means standout was supposed to be
+# dim-reverse using ADM12-style attributes. ADM12 :us:/:ue: and
+# <invis> might work-- esr)
+zen30|z30|zentec 30:\
+ :am:bs:mi:ul:\
+ :co#80:li#24:\
+ :al=\EE:bl=^G:cd=\EY:ce=\ET:cl=\E*:cm=\E=%+ %+ :cr=^M:\
+ :dc=\EW:dl=\ER:do=^J:ei=\Er:ho=^^:im=\Eq:le=^H:mh=\EG2:nd=^L:\
+ :sf=^J:so=\EG6:ue@:up=^K:us@:\
+ :tc=adm+sgr:
+# (zen50: this had extension capabilities
+# :BS=^U:CL=^V:CR=^B:
+# UK/DK/RK/LK/HM were someone's aliases for ku/kd/kl/kr/kh,
+# which were also in the original entry -- esr)
+# (zen50: removed obsolete ":ma=^Hh^Ll^Jj^Kk:" -- esr)
+zen50|z50|zentec zephyr:\
+ :am:bs:\
+ :co#80:li#24:sg#1:\
+ :al=\EE:cd=\EY:ce=\ET:cl=\E+:cm=\E=%+ %+ :dc=\EW:dl=\ER:ei=:\
+ :ic=\EQ:im=:kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mk@:ue@:up=^K:\
+ :us@:\
+ :tc=adm+sgr:
+
+# CCI 4574 (Office Power) from Will Martin <wmartin@BRL.ARPA> via BRL
+cci|cci1|z8001|zen8001|CCI Custom Zentec 8001:\
+ :am:bs:bw:\
+ :co#80:li#24:\
+ :cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :cs=\ER%+ %+ :do=^J:\
+ :ho=\EH:is=\EM \EF\ET\EP\ER 7:kb=^H:kd=\EB:kh=\EH:kl=\ED:\
+ :kr=\EC:ku=\EA:le=^H:mb=\EM":me=\EM :mh=\EM\041:mk=\EM(:\
+ :mr=\EM$:nd=\EC:pf=^T:po=^R:se=\EM :so=\EM$:sr=\EI:ue=\EM :\
+ :up=\EA:us=\EM0:ve=\EP:vs=\EF\EQ\EM \ER 7:
+
+######## OBSOLETE UNIX CONSOLES
+#
+
+#### Altos
+#
+# Altos made a moderately successful line of UNIX boxes. In 1990 they were
+# bought out by Acer, a major Taiwanese manufacturer of PC-clones.
+# Acer has a web site at http://www.acer.com.
+#
+# Altos descriptions from Ted Mittelstaedt <tedm@agora.rain.com> 4 Sep 1993
+# His comments suggest they were shipped with the system.
+#
+
+# (altos2: had extension capabilities
+# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+# :YU=^AQ\r:YD=^AR\r:YR=^AS\r:YL=^AT\r:\
+# :HL=^AP\r:SP=\E[i:\
+# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+# :LO=\E[0q:LC=\E[5q:LL=\E[6q:\
+# Comparison with the k* capabilities makes it obvious that the c* things are
+# shift keys. I have renamed them to keys 32 and up accordingly. Also,
+# :sr: was given as a boolean-- esr)
+altos2|alt2|altos-2|altos II:\
+ :co#80:it#8:li#24:sg#0:\
+ :*5=^Am\r:*8=^An\r:DL=\E[M:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\
+ :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\
+ :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:RA=\E[?7l:SA=\E[?7h:al=\E[L:\
+ :cd=\E[J:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :dc=\E[P:do=\E[1B:ei=:ho=\E[H:ic=\E[@:\
+ :if=/usr/share/tabset/vt100:im=:\
+ :is=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:k0=^AI\r:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:kC=^AL\r:\
+ :kD=^AM\r:kE=^AN\r:kF=^AO\r:kb=^H:kd=\E[B:kh=\E[f:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[1C:nw=^M^J:se=\E[m:\
+ :sf=^J:so=\E[7m:ta=^I:ue=\E[m:up=\E[1A:us=\E[4m:
+# (altos3: had extension capabilities
+# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+# :XU=^Aq\r:XD=^Ar\r:XR=^As\r:XL=^At\r:\
+# :HL=^AP\r:SP=\E[i:\
+# :IS=\E[@:DE=\E[P:IL=\E[L:NS=\E[S:PS=\E[T:\
+altos3|altos5|alt3|alt5|altos-3|altos-5|altos III or V:\
+ :mb=\E[5p:me=\E[p:sr=\EM:\
+ :tc=altos2:
+altos4|alt4|altos-4|altos IV:\
+ :tc=wy50:
+# (altos7: had extension capabilities:
+# :GG#0:GI=\EH8:GF=\EH7:\
+# :c0=^A`\r:c1=^Aa\r:c2=^Ab\r:c3=^Ac\r:\
+# :c4=^Ad\r:c5=^Ae\r:c6=^Af\r:c7=^Ag\r:\
+# :c8=^Ah\r:c9=^Ai\r:cA=^Aj\r:cB=^Ak\r:\
+# :cC=^Al\r:cD=^Am\r:cE=^An\r:cF=^Ao\r:
+# Comparison with the k* capabilities makes it obvious that the c* things are
+# shift keys. I have renamed them to keys 32 and up accordingly. I have
+# also made this entry relative to adm12 in order to give it an :sa:. The
+# <invis> imported by use=adm+sgr may work, let me know. -- esr)
+altos7|alt7|altos VII:\
+ :am:mi:\
+ :co#80:li#24:sg#0:\
+ :*5=^Am\r:*8=^An\r:DL=\ER:FM=^A`\r:FN=^Aa\r:FO=^Ab\r:\
+ :FP=^Ac\r:FQ=^Ad\r:FR=^Ae\r:FS=^Af\r:FT=^Ag\r:FU=^Ah\r:\
+ :FV=^Ai\r:FW=^Aj\r:FX=^Ak\r:\
+ :ac=j5k3l2m1n8q\072t4u9v=w0x6:al=\EE:cd=\EY:ce=\ET:\
+ :cl=\E+^^:cm=\E=%+ %+ :cr=^M:dc=\EW:do=^J:ei=\Er:ho=^^:\
+ :im=\Eq:is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Eu\E~2:\
+ :k0=^AI\r:k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:\
+ :k6=^AE\r:k7=^AF\r:k8=^AG\r:k9=^AH\r:kA=^AJ\r:kB=^AK\r:\
+ :kC=^AL\r:kD=^AM\r:kE=^AN\r:kF=^AO\r:kN=\EK:kP=\EJ:kb=^H:\
+ :kd=^J:kh=^^:kl=^H:kr=^L:ku=^K:le=^H:mb=\EG2:md=\EGt:mh=\EGp:\
+ :mk=\EG1:nd=^L:nw=^M^J:pf=\EJ:po=\Ed#:sf=^J:sr=\Ej:ta=^I:\
+ :up=^K:\
+ :tc=adm+sgr:
+altos7pc|alt7pc|altos PC VII:\
+ :@7=\ET:tc=altos7:
+
+#### Apollo consoles
+#
+# Apollo got bought by Hewlett-Packard. The Apollo workstations are
+# labeled HP700s now.
+#
+
+# From: Gary Darland <goodmanc@garnet.berkeley.edu>
+apollo|apollo console:\
+ :am:bs:mi:\
+ :co#88:li#53:\
+ :al=\EI:cd=\EJ:ce=\EK:ch=\EN%d:cl=^L:cm=\EM%+ %d):cv=\EO+ :\
+ :dc=\EP:dl=\EL:do=\EB:ei=\ER:im=\EQ:le=^H:nd=\EC:se=\ET:\
+ :sf=\EE:so=\ES:sr=\ED:te=\EX:ti=\EW:ue=\EV:up=\EA:us=\EU:
+
+# We don't know whether or not the apollo guys replicated DEC's firmware bug
+# in the VT132 that reversed :ei:/:im:. To be on the safe side, disable
+# both these capabilities.
+apollo_15P|apollo 15 inch display:\
+ :ei@:im@:tc=vt132:
+apollo_19L|apollo 19 inch display:\
+ :ei@:im@:tc=vt132:
+apollo_color|apollo color display:\
+ :ei@:im@:tc=vt132:
+
+#### Convergent Technology
+#
+# Burroughs bought Convergent shortly before it merged with Univac.
+# CTOS is (I believe) dead. Probably the aws is too (this entry dates
+# from 1991 or earlier).
+#
+
+# Convergent AWS workstation from Gould/SEL UTX/32 via BRL
+# (aws: removed unknown :dn=^K: -- esr)
+aws|Convergent Technologies AWS workstation under UTX and Xenix:\
+ :am:\
+ :co#80:li#28:sg#0:\
+ :ac=:ae=\EAAF:al=\EIL:as=\EAAN:bc=^H:cd=\EEF:ce=\EEL:\
+ :ch=\EH%.:cl=^L:cm=\EC%r%.%.:cv=\EV%.:dc=\EDC:dl=\EDL:\
+ :do=^K:ei=:ic=\EIC:im=:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\
+ :ma=\016h\013j\001k\022l\002m:nd=^R:nl=^J:se=\EARF:\
+ :sf=\ESU:so=\EARN:sr=\ESD:ue=\EAUF:up=^A:us=\EAUN:
+awsc|Convergent Technologies AWS workstation under CTOS:\
+ :am:\
+ :co#80:li#24:sg#0:\
+ :ac=:ae=\EAAF:as=\EAAN:bc=^N:cd=\EEF:ce=\EEL:cl=^L:\
+ :cm=\EC%r%.%.:do=^K:kb=^H:kd=^K:kl=^N:kr=^R:ku=^A:\
+ :ma=\016h\013j\001k\022l\002m:nd=^R:se=\EAA:so=\EAE:\
+ :ue=\EAA:up=^A:us=\EAC:
+
+#### DEC consoles
+#
+
+# The MicroVax console. Tim Theisen <tim@cs.wisc.edu> writes:
+# The digital uVax II's had a graphic display called a qdss. It was
+# supposed to be a high performance graphic accelerator, but it was
+# late to market and barely appeared before faster dumb frame buffers
+# appeared. I have only used this display while running X11. However,
+# during bootup, it was in text mode, and probably had a terminal emulator
+# within it. And that is what your termcap entry is for. In graphics
+# mode the screen size is 1024x864 pixels.
+qdss|qdcons|qdss glass tty:\
+ :am:bs:\
+ :co#128:li#57:\
+ :cl=1\032:cm=\E=%.%.:do=^J:le=^H:nd=^L:up=^K:
+
+#### Fortune Systems consoles
+#
+# Fortune made a line of 68K-based UNIX boxes that were pretty nifty
+# in their day; I (esr) used one myself for a year or so around 1984.
+# They had no graphics, though, and couldn't compete against Suns and
+# the like. R.I.P.
+#
+
+# From: Robert Nathanson <c160-3bp@Coral> via tut Wed Oct 5, 1983
+# (This had extension capabilities
+# :rv=\EH:re=\EI:rg=0:GG=0:\
+# :CO=\E\\:WL=^Aa\r:WR=^Ab\r:CL=^Ac\r:CR=^Ad\r:DL=^Ae\r:RF=^Af\r:\
+# :RC=^Ag\r:CW=^Ah\r:NU=^Aj\r:EN=^Ak\r:HM=^Al:PL=^Am\r:\
+# :PU=^An\r:PD=^Ao\r:PR=^Ap\r:HP=^A@\r:RT=^Aq\r:TB=\r:CN=\177:MP=\E+F:
+# It had both ":bs:" and ":bs=^H:"; I removed the latter. Also, it had
+# ":sg=0:" and ":ug=0:"; evidently the composer was trying (unnecessarily)
+# to force both magic cookie glitches off. Once upon a time, I
+# used a Fortune myself, so I know the capabilities of the form ^A[a-z]\r are
+# function keys; thus the "Al" value for HM was certainly an error. I renamed
+# EN/PD/PU/CO/CF/RT according to the XENIX/TC mappings, but not HM/DL/RF/RC.
+# I think :rv: and :re: are start/end reverse video and :rg: is a nonexistent
+# "reverse-video-glitch" capability; I have put :rv: and :re: in with standard
+# names below. I've removed obsolete ":nl=5^J:" as there is a :do: -- esr)
+fos|fortune|Fortune system:\
+ :am:bs:bw:\
+ :co#80:li#25:\
+ :@7=^Ak\r:@8=^Aq:ac=j*k(l m"q&v%w#x-:ae=^O:al=\034E:\
+ :as=\Eo:bl=^G:cd=\034Y:ce=^\Z:cl=\014:cm=\034C%+ %+ :cr=^M:\
+ :dc=\034W:dl=\034R:do=\n:ei=:ho=\036:ic=\034Q:im=:is=^_..:\
+ :k1=^Aa\r:k2=^Ab\r:k3=^Ac\r:k4=^Ad\r:k5=^Ae\r:k6=^Af\r:\
+ :k7=^Ag\r:k8=^Ah\r:kN=^Ao\r:kP=^An\r:kb=^H:kd=^Ay\r:\
+ :kh=^A?\r:kl=^Aw\r:kr=^Az\r:ku=^Ax\r:le=^H:mb=\EN:me=\EI:\
+ :mr=\EH:nw=^M^J:se=^\I`:sf=^J:so=^\H`:ta=^Z:ue=^\IP:up=\013:\
+ :us=^\HP:ve=\E\:vi=\E]:vs=\E\072:
+
+#### IBM Unix consoles
+#
+
+# The following is a version of the ibm-pc entry distributed with PC/IX,
+# (Interactive Systems' System 3 for the Big Blue), modified by Richard
+# McIntosh at UCB/CSM. The :pt: and :uc: have been removed from the original,
+# (the former is untrue, and the latter failed under UCB/man); standout and
+# underline modes have been added. Note: this entry describes the "native"
+# capabilities of the PC monochrome display, without ANY emulation; most
+# communications packages (but NOT PC/IX connect) do some kind of emulation.
+pcix|PC/IX console:\
+ :am:bw:eo:\
+ :co#80:li#24:\
+ :cd=\E[J:ce=\E[K:cl=\Ec:cm=\E[%i%2;%2H:do=\E[B:ho=\E[H:\
+ :le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+
+# (ibmpcx: this entry used to be known as ibmx.
+# It formerly included the following extension capabilities:
+# :GC=b:GL=v:GR=t:RT=^J:\
+# :GH=\E[196g:GV=\E[179g:\
+# :GU=\E[193g:GD=\E[194g:\
+# :G1=\E[191g:G2=\E[218g:G3=\E[192g:G4=\E[217g:\
+# :CW=\E[E:NU=\E[F:RF=\E[G:RC=\E[H:\
+# :WL=\E[K:WR=\E[L:CL=\E[M:CR=\E[N:\
+# I renamed GS/GE/WL/WR/CL/CR/PU/PD/HM/EN; also, removed a duplicate
+# ":kh=\E[Y:". Added IBM-PC forms characters and highlights, they match
+# what was there before. -- esr)
+ibmpcx|xenix|ibmx|IBM PC xenix console display:\
+ :am:bs:ms:\
+ :co#80:li#25:\
+ :@7=\E[d:al=\E[L:cd=\E[J:ce=\E[K:cl=^L:cm=\E[%d;%dH:\
+ :dc=\E[P:dl=\E[M:do=\E[B:ei=:ho=\E[H:ic=\E[@:im=:k1=\E[K:\
+ :k2=\E[L:k3=\E[M:k4=\E[N:kN=\E[e:kP=\E[Z:kb=^H:kd=\E[B:\
+ :kh=\E[Y:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:nd=\E[C:up=\E[A:\
+ :tc=klone+acs:tc=klone+sgr:
+
+
+#### Masscomp consoles
+#
+# Masscomp has gone out of business. Their product line was purchased by
+# comany in Georgia (US) called "XS International", parts and service may
+# still be available through them.
+#
+
+# (masscomp: ":MT:" changed to ":km:"; -- esr)
+masscomp|masscomp workstation console:\
+ :bs:km:mi:\
+ :co#80:it#8:li#24:\
+ :al=\E[L:cd=\E[J:ce=\E[K:cl=\E[2J:cm=\E[%i%d;%dH:dc=\E[P:\
+ :dl=\E[M:do=\E[B:ei=\E[4l:im=\E[4h:is=\EGc\EGb\EGw:kb=^H:\
+ :kd=\EOB:kl=\EOD:kr=\EOC:ku=\EOA:le=^H:nd=\E[C:se=\E[m:\
+ :so=\E[7m:ta=^I:ue=\EGau:up=\E[A:us=\EGu:
+masscomp1|masscomp large screen version 1:\
+ :co#104:li#36:tc=masscomp:
+masscomp2|masscomp large screen version 2:\
+ :co#64:li#21:tc=masscomp:
+
+#### Sony NEWS workstations
+#
+
+# (news-unk: this had :KB=news: -- esr)
+news-unk|SONY NEWS vt100 emulator old common entry:\
+ :am:bs:pt:xn:\
+ :co#80:\
+ :AL=\E[%dL:DL=\E[%dM:al=\E[L:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:\
+ :dl=\E[M:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\
+ :is=\E[?7h\E[?1l\E[?3l\E7\E8:k0=\EOY:k1=\EOP:k2=\EOQ:\
+ :k3=\EOR:k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:k9=\EOX:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:\
+ :nl=^J:rc=\E8:rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[r:\
+ :sc=\E7:se=\E[m:so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:\
+ :us=\E[4m:
+#
+# (news-29: this had :TY=ascii: --esr)
+news-29:\
+ :li#29:tc=news-unk:
+# (news-29-euc: this had :TY=euc: --esr)
+news-29-euc:\
+ :tc=news-29:
+# (news-29-sjis: this had :TY=sjis: --esr)
+news-29-sjis:\
+ :tc=news-29:
+#
+# (news-33: this had :TY=ascii: --esr)
+news-33:\
+ :li#33:tc=news-unk:
+# (news-33-euc: this had :TY=euc: --esr)
+news-33-euc:\
+ :tc=news-33:
+# (news-33-sjis: this had :TY=sjis: --esr)
+news-33-sjis:\
+ :tc=news-33:
+#
+# (news-42: this had :TY=ascii: --esr)
+news-42:\
+ :li#42:tc=news-unk:
+# (news-42-euc: this had :TY=euc: --esr)
+news-42-euc:\
+ :tc=news-42:
+# (news-42-sjis: this had :TY=sjis: --esr)
+news-42-sjis:\
+ :tc=news-42:
+#
+# NEWS-OS old termcap entry
+#
+# (news-old-unk: this had :KB=news:TY=sjis: --esr)
+news-old-unk|SONY NEWS vt100 emulator common entry:\
+ :am:bs:pt:xn:\
+ :co#80:vt#3:\
+ :bl=^G:cd=\E[J:ce=\E[K:cl=\E[;H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
+ :cs=\E[%i%d;%dr:do=^J:ho=\E[H:if=/usr/lib/tabset/vt100:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:kb=^H:kd=\EOB:\
+ :ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:ku=\EOA:le=^H:\
+ :mb=\E[5m:md=\E[1m:me=\E[m:mr=\E[7m:nd=\E[C:nl=^J:rc=\E8:\
+ :rs=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:sc=\E7:se=\E[m:\
+ :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+#
+# (nwp512: this had :DE=^H:, which I think means :bs: --esr)
+nwp512|news|nwp514|news40|vt100-bm|old sony vt100 emulator 40 lines:\
+ :bs:\
+ :li#40:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk:
+#
+# (nwp512-a: this had :TY=ascii: and the alias vt100-bm --esr)
+nwp512-a|nwp514-a|news-a|news42|news40-a|sony vt100 emulator 42 line:\
+ :li#42:\
+ :is=\E[?7h\E[?1l\E[?3l\E7\E[1;42r\E8:tc=news-old-unk:
+#
+# (nwp-512-o: this had :KB=nwp410:DE=^H: I interpret the latter as :bs:. --esr)
+nwp512-o|nwp514-o|news-o|news40-o|vt100-bm-o|sony vt100 emulator 40 lines:\
+ :bs:\
+ :li#40:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;40r\E8:tc=news-old-unk:
+#
+# (nwp513: this had :DE=^H: and the alias vt100-bm --esr)
+nwp513|nwp518|nwe501|newscbm|news31|sony vt100 emulator 33 lines:\
+ :bs:\
+ :li#31:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk:
+#
+# (nwp513-a: this had :TY=ascii: and :DE=^H:, which I interpret as :bs:; --esr)
+# also the alias vt100-bm.
+nwp513-a|nwp518-a|nwe501-a|nwp251-a|newscbm-a|news31-a|newscbm33|news33|old sony vt100 emulator 33 lines:\
+ :bs:\
+ :li#33:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;33r\E8:tc=news-old-unk:
+#
+# (nwp513-o: had :DE=^H:, I think that's :bs:; also the alias vt100-bm --esr)
+nwp513-o|nwp518-o|nwe501-o|nwp251-o|newscbm-o|news31-o|old sony vt100 emulator 33 lines:\
+ :bs:\
+ :li#31:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;31r\E8:tc=news-old-unk:
+#
+# (news28: this had :DE=^H:, I think that's :bs:, and :KB=nws1200: --esr)
+news28|sony vt100 emulator 28 lines:\
+ :bs:\
+ :li#28:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;28r\E8:tc=news-old-unk:
+#
+# (news29: this had :TY=ascii:KB=nws1200:\ --esr)
+news29|news28-a|sony vt100 emulator 29 lines:\
+ :li#29:\
+ :is=\E7\E[r\E8\EE\EE\EE\EM\EM\EM\E[?7h\E[?1l\E[?3l\E7\E[1;29r\E8:tc=news-old-unk:
+#
+# (news511: this had :TY=sjis: --esr)
+nwp511|nwp-511|nwp-511 vt100:\
+ :am:bs:pt:xn:\
+ :co#80:li#24:\
+ :al=\E[L:cd=30\E[J:ce=3\E[K:cl=20\E[;H\E[2J:\
+ :cm=\E[%i%d;%dH:dl=\E[M:is=\E[?5l\E[?1l\E>\E[?7h\E[?8h:\
+ :k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:k5=\EOT:k6=\E#W:kd=\E[B:\
+ :kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:nd=\E[C:\
+ :rs=\E7\E[r\E8\E[?5l\E[?1l\E>\E[?7h\E[?8h:se=2\E[m:\
+ :so=2\E[7m:sr=5\EM:ue=2\E[m:up=2\E[A:us=2\E[4m:\
+ :vb=\E[?5h\0\0\0\0\0\0\0\0\0\0\0\0\0\E[?5l:
+# (news517: this had :TY=sjis:. --esr)
+nwp517|nwp-517|nwp-517 vt200 80 cols 30 rows:\
+ :es:hs:\
+ :co#80:li#30:\
+ :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\
+ :is=\E7\E[r\E8\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :ts=\E[1$}\E[;%df:\
+ :tc=vt200:
+# (news517-w: this had :TY=sjis:. --esr)
+nwp517-w|nwp-517-w|nwp-517 vt200 132 cols 50 rows:\
+ :es:hs:\
+ :co#132:li#50:\
+ :ds=\E[1$~:fs=\E[0$}:i2=\E[2$~\n:\
+ :is=\E7\E[r\E8\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :rs=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h:\
+ :ts=\E[1$}\E[;%df:tc=vt200:
+
+#### Obsolete virtual-terminal types.
+#
+
+# Columbus UNIX virtual terminal. This terminal also appears in
+# UNIX 4.0 and successors as line discipline 1 (?), but is
+# undocumented and does not really work quite right.
+cbunix|cb unix virtual terminal:\
+ :am:bs:da:db:\
+ :co#80:li#24:lm#0:\
+ :al=\EP:bl=^G:cd=\EL:ce=\EK:cl=\EL:cm=\EG%r%.%.:cr=^M:\
+ :dc=\EM:dl=\EN:do=^J:ei=:ic=\EO:im=:kd=\EB:kh=\EE:kl=\ED:\
+ :kr=\EC:ku=\EA:le=^H:nd=\EC:se=\Eb^D:sf=^J:so=\Ea^D:\
+ :ue=\Eb^A:up=\EA:us=\Ea^A:
+# (vremote: removed obsolete ":nl@:" -- esr)
+vremote|virtual remote terminal:\
+ :am@:\
+ :co#79:tc=cbunix:
+
+pty|4bsd pseudo teletype:\
+ :cm=\EG%+ %+ :se=\Eb$:so=\Ea$:ue=\Eb\041:us=\Ea\041:tc=cbunix:
+
+######## OTHER OBSOLETE TYPES
+#
+# These terminals are *long* dead -- these entries are retained for
+# historical interest only.
+#
+
+#### Obsolete non-ANSI software emulations
+#
+
+#### Avatar
+#
+# These entries attempt to describe Avatar, a terminal emulation used with
+# MS-DOS bulletin-board systems. It was designed to give ANSI-like
+# capabilities, but with cheaper (shorter) control sequences. Messy design,
+# excessively dependent on PC idiosyncracies, but apparently rather popular
+# in the BBS world.
+#
+# No color support. Avatar doesn't fit either of the Tektronix or HP color
+# models that terminfo knows about. An Avatar color attribute is the
+# low 7 bits of the IBM-PC display-memory attribute. Bletch.
+#
+# I wrote these entries while looking at the Avatar spec. I don't have
+# the facilities to test them. Let me know if they work, or don't.
+#
+# Avatar escapes not used by these entries (because maybe you're smarter
+# and more motivated than I am and can figure out how to wrap terminfo
+# around some of them, and because they are weird enough to be funny):
+# level 0:
+# ^L -- clear window/reset current attribute to default
+# ^V^A%p1%c -- set current color attribute, parameter decodes as follows:
+#
+# bit: 6 5 4 3 2 1 0
+# | | | | |
+# +---+---+ | +---+---+
+# | | |
+# | | foreground color
+# | foreground intensity
+# background color
+# level 0+:
+# ^V^J%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) up by p1 lines
+# ^V^K%p1%c%p2%c%p3%c%p4%c%p5%c -- scroll (p2,p3) to (p4,p5) down by p1 lines
+# ^V^L%p1%c%p2%c%p3%c -- clear p2 lines and p3 cols w/attr %p1
+# ^V^M%p1%c%p2%c%p3%c%p4%c -- fill p3 lines & p4 cols w/char p2+attr %p1
+# (^V^L and ^V^M set the current attribute as a side-effect.)
+# ^V ^Y <a> [...] <c> -- repeat pattern. <a> specifies the number of bytes
+# in the pattern, <c> the number of times the pattern
+# should be repeated. If either value is 0, no-op.
+# The pattern can contain Avatar console codes,
+# including other ^V ^Y patterns.
+# level 1:
+# ^V^O -- clockwise mode on; turn print direction right each time you
+# hit a window edge (yes, really). Turned off by CR
+# ^V^P -- no-op
+# ^V^Q%c -- query the driver
+# ^V^R -- driver reset
+# ^V^S -- Sound tone (PC-specific)
+# ^V^T -- change highlight at current cursor poition to %c
+# ^V^U%p1%c%p2%c -- highlight window <a> with attribute <b>
+# ^V^V%p1%c%p2%c%p3%c%p4%c%p5%c
+# -- define window
+#
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+# (The :mb:/:md:/:mr:/:as:/:us:/:so: capabilities exist only to
+# tell ncurses that the corresponding highlights exist; it should use :sa:,
+# which is the only method that will actually work for multiple highlights.)
+avatar0|avatar terminal emulator level 0:\
+ :am:ms:ut:\
+ :co#80:it#8:li#25:\
+ :as=:ce=^V^G:cm=\026\010%.%.:cr=^M:do=^V^D:le=^V^E:\
+ :mb=^A^V\177:md=^V^A^P:me=^V^A^G:mk=^V^A\0:mr=^A^Vp:\
+ :nd=^V^F:r2=^L:rp=\031%.%d:\
+ :..sa=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;:\
+ :sf=^J:so=^A^Vp:up=^V^C:us=^V^A:\
+ :tc=klone+acs:
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+avatar0+|avatar terminal emulator level 0+:\
+ :dc=^V^N:ei=\026\n\0\0\0\0:im=^V^I:tc=avatar0:
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
+avatar|avatar1|avatar terminal emulator level 1:\
+ :RA=^V":SA=^V$:al=^V+:dl=^V-:ei=^V^P:ve=^V'^A:vi=^V'^B:\
+ :vs=^V^C:\
+ :tc=avatar0+:
+
+#### RBcomm
+#
+# RBComm is a lean and mean terminal emulator written by the Interrupt List
+# maintainer, Ralf Brown. It was fairly popular in the late DOS years (early
+# '90s), especially in the BBS world, and still has some loyal users due to
+# its very small memory footprint and to a cute macro language.
+rbcomm|IBM PC with RBcomm and EMACS keybindings:\
+ :am:bw:mi:ms:xn:\
+ :co#80:it#8:li#25:\
+ :AL=\E[%dL:DL=\E[%dM:al=^K:bl=^G:bt=\E[Z:cd=^F5:ce=^P^P:\
+ :cl=^L:cm=\037%r%+ %+ :cr=^M:cs=\E[%i%d;%dr:dc=^W:dl=^Z:\
+ :dm=:do=^C:ec=\E[%dX:ed=:ei=^]:im=^\:\
+ :is=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g:kb=^H:kd=^N:\
+ :ke=\E>:kh=^A:kl=^B:kr=^F:ks=\E=:ku=^P:le=^H:mb=\E[5m:\
+ :md=\E[1m:me=\E[m:mk=\E[8m:mr=^R:nd=^B:nw=^M\ED:\
+ :r1=\017\E(B\E)0\025\E[?3l\E[>8g:rc=\E8:rp=\030%.%.:\
+ :sc=\E7:se=^U:sf=\ED:so=^R:sr=\EM:ta=^I:te=:ti=:ue=^U:up=^^:\
+ :us=^T:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+rbcomm-nam|IBM PC with RBcomm without autowrap:\
+ :am@:\
+ :bl=^G:cr=^M:do=^J:\
+ :is=\017\035\E(B\E)0\E[?7l\E[?3l\E[>8g:kb=^H:kd=^J:\
+ :kl=^H:nw=^M^J:sf=^J:ta=^I:\
+ :tc=rbcomm:
+rbcomm-w|IBM PC with RBcomm in 132 column mode:\
+ :co#132:\
+ :bl=^G:cr=^M:do=^J:\
+ :is=\017\035\E(B\E)0\E[?7h\E[?3h\E[>8g:kb=^H:kd=^J:\
+ :kl=^H:nw=^M^J:sf=^J:ta=^I:\
+ :tc=rbcomm:
+
+# CTRM terminal emulator
+# 1. underlining is not allowed with colors: first, is is simulated by
+# black on white, second, it disables background color manipulations.
+# 2. BLINKING, REVERSE and BOLD are allowed with colors,
+# so we have to save their status in the static registers A, B and H
+# respectively, to be able to restore them when color changes
+# (because any color change turns off ALL attributes)
+# 3. :md: and :mr: sequences alternate modes,
+# rather then simply entering them. Thus we have to check the
+# static register B and H to determine the status, before sending the
+# escape sequence.
+# 4. :me: now must set the status of all 3 register (A,B,H) to zero
+# and then reset colors
+# 5. implementation of the protect mode would badly penalize the performance.
+# we would have to use \E&bn sequence to turn off colors (as well as all
+# other attributes), and keep the status of protect mode in yet another
+# static variable. If someone really needs this mode, they would have to
+# create another terminfo entry.
+# 6. original color-pair is white on black.
+# store the information about colors into static registers
+# 7. set foreground color. it performs the following steps.
+# 1) turn off all attributes
+# 2) turn on the background and video attributes that have been turned
+# on before (this information is stored in static registers X,Y,Z,A,B,H,D).
+# 3) turn on foreground attributes
+# 4) store information about foreground into U,V,W static registers
+# 8. turn on background: similar to turn on foreground above
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+ctrm|C terminal emulator:\
+ :am:ut:xo:\
+ :Co#8:NC#2:Nl#0:co#80:lh#0:li#24:lm#0:lw#0:pa#63:pb#19200:vt#6:\
+ :al=\EL:bl=^G:bt=\Ei:cd=\EJ:ce=\EK:ch=\E&a%dC:cl=\EH\EJ:\
+ :cm=\E&a%r%dc%dY:cr=^M:ct=\E3:cv=\E&a%dY:dc=\EP:dl=\EM:\
+ :do=^J:ei=\ER:im=\EQ:ip=:is=\E&jA\r:k1=\Ep\r:k2=\Eq\r:\
+ :k3=\Er\r:k4=\Es\r:k5=\Et\r:k6=\Eu\r:k7=\Ev\r:k8=\Ew\r:\
+ :kb=^H:kd=\Ew\r:ke=\E&jA:kh=\Ep\r:kl=\Eu\r:kr=\Ev\r:\
+ :ks=\E&jB:ku=\Et\r:le=^H:mb=\E&dA%{1}%PA:\
+ :md=%?%gH%{0}%=%t\E&dH%{1}%PH%;:\
+ :me=\E&d@%{0}%PA%{0}%PB%{0}%PH:\
+ :mr=%?%gB%{0}%=%t\E&dB%{1}%PB%;:nd=\EC:\
+ :op=\E&bn\E&bB\E&bG\E&bR%{0}%PX%{0}%PY%{0}%PZ%{1}%PW%{1}%PV%{1}%PU:\
+ :sf=^J:so=\E&dD:st=\E1:ta=\011:up=\EA:us=\E&dD:
+
+# gs6300 - can't use blue foreground, it clashes with underline;
+# it's simulated with cyan
+# Bug: The <op> capability probably resets attributes.
+# (gs6300: commented out <rmln> (no <smln>) --esr)
+gs6300|emots|AT&T PC6300 with EMOTS terminal emulator:\
+ :am:ms:ut:xo:\
+ :Co#8:co#80:it#8:li#24:pa#63:\
+ :AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+ :LE=\E[%dD:RI=\E[%dC:Sb=\E[?;%dm:\
+ :..Sf=\E[?%?%p1%{0}%=%t0%e%p1%{1}%=%t2%e%p1%{1}%-%d%;m:\
+ :UP=\E[%dA:\
+ :ac=++\054\054--..``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=\E[10m:al=\E[L:as=\E[11m:bl=^G:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:dc=\E[P:dl=\E[M:do=^J:\
+ :ei=:ho=\E[H:ic=\E[@:im=:is=\E[m:k1=\E[0s:k2=\E[24s:\
+ :k3=\E[1s:k4=\E[23s:k5=\E[2s:k6=\E[22s:k7=\E[3s:k8=\E[21s:\
+ :kB=^R^I:kb=^H:kd=\E[B:kh=\E[H:kl=\E[D:kr=\E[C:ku=\E[A:\
+ :le=^H:mb=\E[5m:md=\E[1m:me=\E[m\E[10m:mr=\E[7m:nd=\E[C:\
+ :op=\E[?;m:pf=\E[4i:po=\E[5i:r1=\Ec:sf=^J:so=\E[1m:sr=\E[L:\
+ :ta=^I:up=\E[A:us=\E[4m:
+
+# From: <earle@smeagol.UUCP> 29 Oct 85 05:40:18 GMT
+# MS-Kermit with Heath-19 emulation mode enabled
+# (h19k: changed ":pt@:" to ":it@"
+h19k|h19kermit|heathkit emulation provided by Kermit (no auto margin):\
+ :am@:da:db:xt:\
+ :it@:\
+ :ta@:tc=h19-u:
+
+# Apple Macintosh with Versaterm, a terminal emulator distributed by Synergy
+# Software (formerly Peripherals Computers & Supplies, Inc) of
+# 2457 Perkiomen Ave., Reading, PA 19606, 1-800-876-8376. They can
+# also be reached at support@synergy.com.
+versaterm|versaterm vt100 emulator for the macintosh:\
+ :am:xn:\
+ :co#80:it#8:li#24:\
+ :al=9\E[1L:bl=^G:cd=50\E[J:ce=3\E[K:cl=50\E[;H\E[2J:\
+ :cm=5\E[%i%d;%dH:cr=^M:cs=\E[%i%d;%dr:dc=7\E[1P:\
+ :dl=9\E[1M:do=^J:ei=:ho=\E[H:ic=7\E[1@:im=:\
+ :is=\E[1;24r\E[24;1H:k1=\EOP:k2=\EOQ:k3=\EOR:k4=\EOS:\
+ :kb=^H:kd=\EOB:ke=\E>\E[?1l:kl=\EOD:kr=\EOC:ks=\E=\E[?1h:\
+ :ku=\EOA:le=^H:mb=2\E[5m:md=2\E[1m:me=2\E[m:mr=2\E[7m:\
+ :nd=2\E[C:nw=^M^J:r1=\E>:rc=\E8:\
+ :rf=/usr/share/tabset/vt100:sc=\E7:se=2\E[m:so=2\E[7m:\
+ :sr=5\EM:ta=^I:ue=2\E[m:up=2\E[A:us=2\E[4m:
+
+# From: Rick Thomas <ihnp4!btlunix!rbt>
+# (xtalk: I added <rmam>/<smam> based on the init string.
+xtalk|IBM PC with xtalk communication program (versions up to 3.4):\
+ :am:mi:ms:xo:\
+ :co#80:it#8:li#24:sg#1:vt#3:\
+ :@8=\EOM:DO=\E[%dB:K1=\EOq:K2=\EOr:K3=\EOs:K4=\EOp:K5=\EOn:\
+ :LE=\E[%dD:RA=\E[?7l:RI=\E[%dC:SA=\E[?7h:UP=\E[%dA:\
+ :ac=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
+ :ae=^O:al=\E[L:as=^N:bl=^G:cb=\E[1K:cd=\E[J:ce=\E[K:\
+ :cl=\E[H\E[J:cm=\E[%i%d;%dH:cr=^M:ct=\E[3g:dl=\E[M:do=^J:\
+ :eA=\E(B\E)0:ho=\E[H:k0=\EOy:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\EOt:k6=\EOu:k7=\EOv:k8=\EOl:k9=\EOw:k;=\EOx:\
+ :kb=^H:kd=\EOB:ke=\E[?1l\E>:kl=\EOD:kr=\EOC:ks=\E[?1h\E=:\
+ :ku=\EOA:le=^H:me=\E[m:nd=\E[C:\
+ :r2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h:se=\E[m :sf=^J:\
+ :so=\E[7m :sr=\EM:st=\EH:ta=^I:up=\E[A:
+
+# The official PC terminal emulator program of the AT&T Product Centers.
+# Note - insert mode commented out - doesn't seem to work on AT&T PC.
+simterm|attpc running simterm:\
+ :am:\
+ :co#80:li#24:\
+ :al=\EL:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\E=%+ %+ :cr=^M:\
+ :dc=\ER:dl=\EM:do=\EB:ho=\EH:le=^H:me=\E&d@:nd=\EC:se=\E&d@:\
+ :sf=^J:so=\E&dB:te=\EVE:ti=\EVS:up=\EA:
+
+#### Miscellaneous obsolete terminals, manufacturers unknown
+#
+# If you have any information about these (like, a manufacturer's name,
+# and a date on the serial-number plate) please send it!
+
+cad68-3|cgc3|cad68 basic monitor transparent mode size 3 chars:\
+ :am:bs:\
+ :co#73:li#36:\
+ :cl=^Z:ho=^^:le=^H:nd=^L:up=^K:
+cad68-2|cgc2|cad68 basic monitor transparent mode size 2 chars:\
+ :am:bs:\
+ :co#85:li#39:\
+ :cl=^Z:ho=^^:k1=\E5:k2=\E6:k3=\E7:k4=\E8:kd=\E2:kl=\E3:\
+ :kr=\E4:ku=\E1:le=^H:nd=^L:se=\Em^C:so=\Em^L:up=^K:
+cops10|cops|cops-10|cops 10:\
+ :am:bw:\
+ :co#80:li#24:\
+ :bl=^G:cd=^W:ce=^V:cl=30\030:cm=\020%+ %+ :cr=^M:do=^J:\
+ :kb=^H:kd=^J:kh=^Y:kl=^H:kr=^L:ku=^K:le=^H:nd=^L:sf=^J:up=^K:
+# (d132: removed duplicate :ic=\E5:,
+# merged in capabilities from a BRL entry -- esr)
+d132|datagraphix|datagraphix 132a:\
+ :da:db:in:\
+ :co#80:li#30:\
+ :al=\E3:bl=^G:cl=^L:cm=\E8%i%3%3:cr=^M:dc=\E6:do=^J:ei=:\
+ :ho=\ET:ic=\E5:im=:kb=^H:kd=^J:kl=^H:le=^H:nd=\EL:nw=^M^J:\
+ :sf=^J:sr=\Ew:ta=^I:up=\EK:ve=\Em\En:vs=\Ex:
+# The d800 was an early portable terminal from c.1984-85 that looked a lot
+# like the original Compaq `lunchbox' portable (but no handle). It had a vt220
+# mode (which is what this entry looks like) and several other lesser-known
+# emulations.
+d800|Direct 800/A:\
+ :am:bs:da:db:ms:xs:\
+ :co#80:it#8:li#24:\
+ :ac=``a1fxgqh0jYk?lZm@nEooppqDrrsstCu4vAwBx3yyzz{{||}}~~:\
+ :ae=\E[m:as=\E[1m:bl=^G:cd=\E[J:ce=\E[K:cl=\E[1;1H\E[2J:\
+ :cm=\E[%i%d;%dH:cr=^M:do=^J:k1=\EOP:k2=\EOQ:k3=\EOR:\
+ :k4=\EOS:k5=\EOT:k6=\EOU:k7=\EOV:k8=\EOW:kd=\E[B:kl=\E[D:\
+ :kr=\E[C:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:sf=\ED:\
+ :so=\E[7m:sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:ve=\E[>12h:\
+ :vs=\E[>12l:
+digilog|digilog 333:\
+ :bs:\
+ :co#80:li#16:\
+ :bl=^G:ce=^X:cr=^M:do=^J:ho=^N:le=^H:nd=^I:sf=^J:up=^O:
+# The DWK was a terminal manufactured in the Soviet Union c.1986
+dwk|dwk-vt|dwk terminal:\
+ :am:\
+ :co#80:it#8:li#24:\
+ :ac=+\136\054Q-S.M0\177`+a\072f'g#h#i#jXkClJmFnNo~qUs_tEuPv\wKxW~_:\
+ :ae=\EG:as=\EF:bl=^G:cd=\EJ:ce=\EK:cl=\EH\EJ:cm=\EY%+ %+ :\
+ :cr=^M:dc=\EP:do=^J:ei=:ho=\EH:ic=\EQ:im=:k1=\Ef1:k2=\Ef2:\
+ :k3=\Ef3:k4=\Ef4:k5=\Ef5:k6=\Ef6:k7=\Ef7:k8=\Ef8:k9=\Ef9:\
+ :k;=\Ef0:kD=\Ee:kI=\Ed:kN=\Eh:kP=\Eg:kb=\177:kd=\EB:kl=\ED:\
+ :kr=\EC:ku=\EA:le=^H:me=\EX:mr=\ET:nd=\EC:nw=^M^J:se=\EX:\
+ :sf=^J:so=\ET:sr=\ES:ta=^I:up=\EA:
+env230|envision230|envision 230 graphics terminal:\
+ :xn@:\
+ :pf=\E[4i:po=\E[5i:ps=\E[0i:\
+ :..sa=\E[%?%p1%t;1%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m:tc=vt100:
+# These execuports were impact-printer ttys with a 30- or maybe 15-cps acoustic
+# coupler attached, the whole rig fitting in a suitcase and more or less
+# portable. Hot stuff for c.1977 :-) -- esr
+ep48|ep4080|execuport 4080:\
+ :am:bs:os:\
+ :co#80:\
+ :bl=^G:cr=^M:do=^J:hd=^\:hu=^^:le=^H:sf=^J:
+ep40|ep4000|execuport 4000:\
+ :co#136:tc=ep4080:
+# Adam Thompson <athompso@pangea.ca> tells us:
+# Informer series - these are all portable units, resembling older
+# automatic bread-baking machines. The terminal looks like a `clamshell'
+# design, but isn't. The structure is similar to the Direct terminals,
+# but only half the width. The entire unit is only about 10" wide.
+# It features an 8" screen (6" or 7" if you have color!), and an 9"x6"
+# keyboard. All the keys are crammed together, much like some laptop
+# PCs today, but perhaps less well organized...all these units have a
+# bewildering array of plugs on the back, including a built-in modem.
+# The 305 was a color version of the 304; the 306 and 307 were mono and
+# color terminals built for IBM bisync protocols.
+# From: Paul Leondis <unllab@amber.berkeley.edu>
+ifmr|Informer D304:\
+ :am:bs:\
+ :co#80:li#24:\
+ :cd=\E/:ce=\EQ:cl=\EZ:cm=\EY%r%+ %+ :dc=\E\:do=^J:ei=:\
+ :ho=\EH:ic=\E[:im=:le=^H:me=\EK:nd=\EC:se=\EK:so=\EJ:sr=\En:\
+ :up=\EA:
+# Entry largely based on wy60 and has the features of wy60ak.
+# (untranslatable capabilities removed to fit entry within 1023 bytes)
+# (sgr removed to fit entry within 1023 bytes)
+# (terminfo-only capabilities suppressed to fit entry within 1023 bytes)
+opus3n1+|Esprit Opus3n1+ in wy60 mode with ANSI arrow keys:\
+ :am:bw:hs:km:mi:ms:ul:xo:\
+ :co#80:li#24:ws#80:\
+ :ae=\EH^C:al=\EE:as=\EH^B:bl=^G:bt=\EI:cd=\EY:ce=\ET:cl=\E*:\
+ :cm=\Ea%i%dR%dC:cr=^M:ct=\E0:dc=\EW:dl=\ER:do=^J:ds=\Ez(\r:\
+ :ei=\Er:fs=^M:ho=\036:if=/usr/share/tabset/std:im=\Eq:ip=:\
+ :is=\E`\072\Ee(\EO\Ee6\Ec41\E~4\Ec21\Ed/\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177\Ezz`\E[F\177\EA1*\EZH12:\
+ :k1=^A@\r:k2=^AA\r:k3=^AB\r:k4=^AC\r:k5=^AD\r:k6=^AE\r:\
+ :k7=^AF\r:k8=^AG\r:k9=^AH\r:kD=\EW:kI=\EQ:kN=\EK:kP=\EJ:\
+ :kb=^H:kd=\E[B:kh=^^:kl=\E[D:kr=\E[C:ku=\E[A:le=^H:mb=\EG2:\
+ :me=\E(\EH\003\EG0\EcD:mh=\EGp:nd=^L:nw=\r\n:sf=^J:sr=\Ej:\
+ :st=\E1:ta=\011:te=:\
+ :ti=\Ezz&\E[A\177\Ezz'\E[B\177\Ezz(\E[D\177\Ezz)\E[C\177\Ezz<\E[Q\177:\
+ :ts=\Ez(:uc=\EG8%p1%c\EG0:up=^K:ve=\E`1:vi=\E`0:\
+ :tc=adm+sgr:
+teletec|Teletec Datascreen:\
+ :am:bs:\
+ :co#80:li#24:\
+ :bl=^G:cl=^L:cr=^M:do=^J:ho=^^:le=^H:nd=^_:sf=^J:up=^K:
+# From: Mark Dornfeld <romwa@ucbvax.berkeley.edu>
+# This description is for the LANPAR Technologies VISION 3220
+# terminal from 1984/85. The function key definitions k0-k5 represent the
+# edit keypad: FIND, INSERT HERE, REMOVE, SELECT, PREV SCREEN,
+# NEXT SCREEN. The key definitions k6-k9 represent the PF1 to PF4 keys.
+#
+# Kenneth Randell <kenr@datametrics.com> writes on 31 Dec 1998:
+# I had a couple of scopes (3221) like this once where I used to work, around
+# the 1987 time frame if memory serves me correctly. These scopes were made
+# by an outfit called LANPAR Technologies, and were meant to me DEC VT 220
+# compatible. The 3220 was a plain text terminal like the VT-220, the 3221
+# was a like the VT-240 (monochrome with Regis + Sixel graphics), and the 3222
+# was like the VT-241 (color with Regis + Sixel Graphics). These terminals
+# (3221) cost about $1500 each, and one was always broken -- had to be sent
+# back to the shop for repairs.
+# The only real advantage these scopes had over the VT-240's were:
+# 1) They were faster in the Regis display, or at least the ones I did
+# 2) They had a handy debugging feature where you could split-screen the
+# scope, the graphics would appear on the top, and the REGIS commands would
+# appear on the bottom. I don't remember the VT-240s being able to do that.
+# I would swear that LANPAR Technologies was in MA someplace, but since I
+# don't work at the same place anymore, and those terminals and manuals were
+# long since junked, I cannot be any more sure than that.
+#
+# (v3220: removed obsolete ":kn#10:",
+# I added <rmam>/<smam> based on the init string -- esr)
+v3220|LANPAR Vision II model 3220/3221/3222:\
+ :am:bs:mi:xn:\
+ :co#80:it#8:li#24:\
+ :RA=\E[?7l:SA=\E[?7h:al=\E[L:cd=\E[J:ce=\E[K:cl=\E[H\E[J:\
+ :cm=\E[%i%d;%dH:dc=\E[P:dl=\E[M:ei=\E[4l:im=\E[4h:\
+ :is=\E>\E[?3l\E[?7h\E[?8h\E[p:k0=\E[1~:k1=\E[2~:\
+ :k2=\E[3~:k3=\E[4~:k4=\E[5~:k5=\E[6~:k6=\E[OP:k7=\E[OQ:\
+ :k8=\E[OR:k9=\E[OS:kd=\E[B:ke=\E>:kh=\E[H:kl=\E[D:kr=\E[C:\
+ :ks=\E=:ku=\E[A:le=^H:me=\E[m:nd=\E[C:se=\E[m:so=\E[7m:\
+ :sr=\EM:ta=^I:ue=\E[m:up=\E[A:us=\E[4m:
+######## ICH/ICH1 VERSUS RMIR/SMIR
+#
+# Some non-curses applications get confused if both ich/ich1 and rmir/smir
+# are present; the symptom is doubled characters in an update using insert.
+# These applications are technically correct; in both 4.3BSD termcap and
+# terminfo, you're not actually supposed to specify both ich/ich1 and rmir/smir
+# unless the terminal needs both. To my knowledge, no terminal still in this
+# file requires both other than the very obsolete dm2500.
+#
+# For ncurses-based applications this is not a problem, as ncurses uses
+# one or the other as appropriate but never mixes the two. Therefore we
+# have not corrected entries like `linux' and `xterm' that specify both.
+# If you see doubled characters from these, use the linux-nic and xterm-nic
+# entries that suppress ich/ich1. And upgrade to ncurses!
+#
+
+######## VT100/ANSI/ISO 6429/ECMA-48/PC-TERM TERMINAL STANDARDS
+#
+# ANSI X3.64 has been withdrawn and replaced by ECMA-48. The ISO 6429 and
+# ECMA-48 standards are said to be almost identical, but are not the same
+# as X3.64 (though for practical purposes they are close supersets of it).
+#
+# You can obtain ECMA-48 for free by sending email to helpdesk@ecma.ch
+# requesting the standard(s) you want (i.e. ECMA-48, "Control Functions for
+# Coded Character Sets"), include your snail-mail address, and you should
+# receive the document in due course. Don't expect an email acknowledgement.
+#
+# Related standards include "X3.4-1977: American National Standard Code for
+# Information Interchange" (the ASCII standard) and "X3.41.1974:
+# Code-Extension Techniques for Use with the 7-Bit Coded Character Set of
+# American National Standard for Information Interchange." I believe (but
+# am not certain) that these are effectively identical to ECMA-6 and ECMA-35
+# respectively.
+#
+
+#### VT100/ANSI/ECMA-48
+#
+# ANSI Standard (X3.64) Control Sequences for Video Terminals and Peripherals
+# and ECMA-48 Control Functions for Coded Character Sets.
+#
+# Much of the content of this comment is adapted from a table prepared by
+# Richard Shuford, based on a 1984 Byte article. Terminfo correspondences,
+# discussion of some terminfo-related issues, and updates to capture ECMA-48
+# have been added. Control functions described in ECMA-48 only are tagged
+# with * after their names.
+#
+# The table is a complete list of the defined ANSI X3.64/ECMA-48 control
+# sequences. In the main table, \E stands for an escape (\033) character,
+# SPC for space. Pn stands for a single numeric parameter to be inserted
+# in decimal ASCII. Ps stands for a list of such parameters separated by
+# semicolons. Parameter meanings for most parametrized sequences are
+# decribed in the notes.
+#
+# Sequence Sequence Parameter or
+# Mnemonic Name Sequence Value Mode terminfo
+# -----------------------------------------------------------------------------
+# APC Applicatn Program Command \E _ - Delim -
+# BEL Bell * ^G - - bel
+# BPH Break Permitted Here * \E B - * -
+# BS Backpace * ^H - EF -
+# CAN Cancel * ^X - - - (A)
+# CBT Cursor Backward Tab \E [ Pn Z 1 eF cbt
+# CCH Cancel Previous Character \E T - - -
+# CHA Cursor Horizntal Absolute \E [ Pn G 1 eF hpa (B)
+# CHT Cursor Horizontal Tab \E [ Pn I 1 eF tab (C)
+# CMD Coding Method Delimiter * \E
+# CNL Cursor Next Line \E [ Pn E 1 eF nel (D)
+# CPL Cursor Preceding Line \E [ Pn F 1 eF -
+# CPR Cursor Position Report \E [ Pn ; Pn R 1, 1 - - (E)
+# CSI Control Sequence Intro \E [ - Intro -
+# CTC Cursor Tabulation Control \E [ Ps W 0 eF - (F)
+# CUB Cursor Backward \E [ Pn D 1 eF cub
+# CUD Cursor Down \E [ Pn B 1 eF cud
+# CUF Cursor Forward \E [ Pn C 1 eF cuf
+# CUP Cursor Position \E [ Pn ; Pn H 1, 1 eF cup (G)
+# CUU Cursor Up \E [ Pn A 1 eF cuu
+# CVT Cursor Vertical Tab \E [ Pn Y - eF - (H)
+# DA Device Attributes \E [ Pn c 0 - -
+# DAQ Define Area Qualification \E [ Ps o 0 - -
+# DCH Delete Character \E [ Pn P 1 eF dch
+# DCS Device Control String \E P - Delim -
+# DL Delete Line \E [ Pn M 1 eF dl
+# DLE Data Link Escape * ^P - - -
+# DMI Disable Manual Input \E \ - Fs -
+# DSR Device Status Report \E [ Ps n 0 - - (I)
+# DTA Dimension Text Area * \E [ Pn ; Pn SPC T - PC -
+# EA Erase in Area \E [ Ps O 0 eF - (J)
+# ECH Erase Character \E [ Pn X 1 eF ech
+# ED Erase in Display \E [ Ps J 0 eF ed (J)
+# EF Erase in Field \E [ Ps N 0 eF -
+# EL Erase in Line \E [ Ps K 0 eF el (J)
+# EM End of Medium * ^Y - - -
+# EMI Enable Manual Input \E b Fs -
+# ENQ Enquire ^E - - -
+# EOT End Of Transmission ^D - * -
+# EPA End of Protected Area \E W - - - (K)
+# ESA End of Selected Area \E G - - -
+# ESC Escape ^[ - - -
+# ETB End Transmission Block ^W - - -
+# ETX End of Text ^C - - -
+# FF Form Feed ^L - - -
+# FNK Function Key * \E [ Pn SPC W - - -
+# GCC Graphic Char Combination* \E [ Pn ; Pn SPC B - - -
+# FNT Font Selection \E [ Pn ; Pn SPC D 0, 0 FE -
+# GSM Graphic Size Modify \E [ Pn ; Pn SPC B 100, 100 FE - (L)
+# GSS Graphic Size Selection \E [ Pn SPC C none FE -
+# HPA Horz Position Absolute \E [ Pn ` 1 FE - (B)
+# HPB Char Position Backward \E [ j 1 FE -
+# HPR Horz Position Relative \E [ Pn a 1 FE - (M)
+# HT Horizontal Tab * ^I - FE - (N)
+# HTJ Horz Tab w/Justification \E I - FE -
+# HTS Horizontal Tab Set \E H - FE hts
+# HVP Horz & Vertical Position \E [ Pn ; Pn f 1, 1 FE - (G)
+# ICH Insert Character \E [ Pn @ 1 eF ich
+# IDCS ID Device Control String \E [ SPC O - * -
+# IGS ID Graphic Subrepertoire \E [ SPC M - * -
+# IL Insert Line \E [ Pn L 1 eF il
+# IND Index \E D - FE -
+# INT Interrupt \E a - Fs -
+# JFY Justify \E [ Ps SPC F 0 FE -
+# IS1 Info Separator #1 * ^_ - * -
+# IS2 Info Separator #1 * ^^ - * -
+# IS3 Info Separator #1 * ^] - * -
+# IS4 Info Separator #1 * ^\ - * -
+# LF Line Feed ^J - - -
+# LS1R Locking Shift Right 1 * \E ~ - - -
+# LS2 Locking Shift 2 * \E n - - -
+# LS2R Locking Shift Right 2 * \E } - - -
+# LS3 Locking Shift 3 * \E o - - -
+# LS3R Locking Shift Right 3 * \E | - - -
+# MC Media Copy \E [ Ps i 0 - - (S)
+# MW Message Waiting \E U - - -
+# NAK Negative Acknowledge * ^U - * -
+# NBH No Break Here * \E C - - -
+# NEL Next Line \E E - FE nel (D)
+# NP Next Page \E [ Pn U 1 eF -
+# NUL Null * ^@ - - -
+# OSC Operating System Command \E ] - Delim -
+# PEC Pres. Expand/Contract * \E Pn SPC Z 0 - -
+# PFS Page Format Selection * \E Pn SPC J 0 - -
+# PLD Partial Line Down \E K - FE - (T)
+# PLU Partial Line Up \E L - FE - (U)
+# PM Privacy Message \E ^ - Delim -
+# PP Preceding Page \E [ Pn V 1 eF -
+# PPA Page Position Absolute * \E [ Pn SPC P 1 FE -
+# PPB Page Position Backward * \E [ Pn SPC R 1 FE -
+# PPR Page Position Forward * \E [ Pn SPC Q 1 FE -
+# PTX Parallel Texts * \E [ \ - - -
+# PU1 Private Use 1 \E Q - - -
+# PU2 Private Use 2 \E R - - -
+# QUAD Typographic Quadding \E [ Ps SPC H 0 FE -
+# REP Repeat Char or Control \E [ Pn b 1 - rep
+# RI Reverse Index \E M - FE - (V)
+# RIS Reset to Initial State \E c - Fs -
+# RM Reset Mode * \E [ Ps l - - - (W)
+# SACS Set Add. Char. Sep. * \E [ Pn SPC / 0 - -
+# SAPV Sel. Alt. Present. Var. * \E [ Ps SPC ] 0 - - (X)
+# SCI Single-Char Introducer \E Z - - -
+# SCO Sel. Char. Orientation * \E [ Pn ; Pn SPC k - - -
+# SCS Set Char. Spacing * \E [ Pn SPC g - - -
+# SD Scroll Down \E [ Pn T 1 eF rin
+# SDS Start Directed String * \E [ Pn ] 1 - -
+# SEE Select Editing Extent \E [ Ps Q 0 - - (Y)
+# SEF Sheet Eject & Feed * \E [ Ps ; Ps SPC Y 0,0 - -
+# SGR Select Graphic Rendition \E [ Ps m 0 FE sgr (O)
+# SHS Select Char. Spacing * \E [ Ps SPC K 0 - -
+# SI Shift In ^O - - - (P)
+# SIMD Sel. Imp. Move Direct. * \E [ Ps ^ - - -
+# SL Scroll Left \E [ Pn SPC @ 1 eF -
+# SLH Set Line Home * \E [ Pn SPC U - - -
+# SLL Set Line Limit * \E [ Pn SPC V - - -
+# SLS Set Line Spacing * \E [ Pn SPC h - - -
+# SM Select Mode \E [ Ps h none - - (W)
+# SO Shift Out ^N - - - (Q)
+# SOH Start Of Heading * ^A - - -
+# SOS Start of String * \E X - - -
+# SPA Start of Protected Area \E V - - - (Z)
+# SPD Select Pres. Direction * \E [ Ps ; Ps SPC S 0,0 - -
+# SPH Set Page Home * \E [ Ps SPC G - - -
+# SPI Spacing Increment \E [ Pn ; Pn SPC G none FE -
+# SPL Set Page Limit * \E [ Ps SPC j - - -
+# SPQR Set Pr. Qual. & Rapid. * \E [ Ps SPC X 0 - -
+# SR Scroll Right \E [ Pn SPC A 1 eF -
+# SRCS Set Reduced Char. Sep. * \E [ Pn SPC f 0 - -
+# SRS Start Reversed String * \E [ Ps [ 0 - -
+# SSA Start of Selected Area \E F - - -
+# SSU Select Size Unit * \E [ Pn SPC I 0 - -
+# SSW Set Space Width * \E [ Pn SPC [ none - -
+# SS2 Single Shift 2 (G2 set) \E N - Intro -
+# SS3 Single Shift 3 (G3 set) \E O - Intro -
+# ST String Terminator \E \ - Delim -
+# STAB Selective Tabulation * \E [ Pn SPC ^ - - -
+# STS Set Transmit State \E S - - -
+# STX Start pf Text * ^B - - -
+# SU Scroll Up \E [ Pn S 1 eF indn
+# SUB Substitute * ^Z - - -
+# SVS Select Line Spacing * \E [ Pn SPC \ 1 - -
+# SYN Synchronous Idle * ^F - - -
+# TAC Tabul. Aligned Centered * \E [ Pn SPC b - - -
+# TALE Tabul. Al. Leading Edge * \E [ Pn SPC a - - -
+# TATE Tabul. Al. Trailing Edge* \E [ Pn SPC ` - - -
+# TBC Tab Clear \E [ Ps g 0 FE tbc
+# TCC Tabul. Centered on Char * \E [ Pn SPC c - - -
+# TSR Tabulation Stop Remove * \E [ Pn SPC d - FE -
+# TSS Thin Space Specification \E [ Pn SC E none FE -
+# VPA Vert. Position Absolute \E [ Pn d 1 FE vpa
+# VPB Line Position Backward * \E [ Pn k 1 FE -
+# VPR Vert. Position Relative \E [ Pn e 1 FE - (R)
+# VT Vertical Tabulation * ^K - FE -
+# VTS Vertical Tabulation Set \E J - FE -
+#
+# ---------------------------------------------------------------------------
+#
+# Notes:
+#
+# Some control characters are listed in the ECMA-48 standard without
+# being assigned functions relevant to terminal control there (they
+# referred to other standards such as ISO 1745 or ECMA-35). They are listed
+# here anyway for completeness.
+#
+# (A) ECMA-48 calls this "CancelCharacter" but retains the CCH abbreviation.
+#
+# (B) There seems to be some confusion abroad between CHA and HPA. Most
+# `ANSI' terminals accept the CHA sequence, not the HPA. but terminfo calls
+# the capability (hpa). ECMA-48 calls this "Cursor Character Absolute" but
+# preserved the CHA abbreviation.
+#
+# (C) CHT corresponds to terminfo (tab). Usually it has the value ^I.
+# Occasionally (as on, for example, certain HP terminals) this has the HTJ
+# value. ECMA-48 calls this "Cursor Forward Tabulation" but preserved the
+# CHT abbreviation.
+#
+# (D) terminfo (nel) is usually \r\n rather than ANSI \EE.
+#
+# (E) ECMA-48 calls this "Active Position Report" but preserves the CPR
+# abbreviation.
+#
+# (F) CTC parameter values: 0 = set char tab, 1 = set line tab, 2 = clear
+# char tab, 3 = clear line tab, 4 = clear all char tabs on current line,
+# 5 = clear all char tabs, 6 = clear all line tabs.
+#
+# (G) CUP and HVP are identical in effect. Some ANSI.SYS versions accept
+# HVP, but always allow CUP as an alternate. ECMA-48 calls HVP "Character
+# Position Absolute" but retains the HVP abbreviation.
+#
+# (H) ECMA calls this "Cursor Line Tabulation" but preserves the CVT
+# abbreviation.
+#
+# (I) DSR parameter values: 0 = ready, 1 = busy, 2 = busy, will send DSR
+# later, 3 = malfunction, 4 = malfunction, will send DSR later, 5 = request
+# DSR, 6 = request CPR response.
+#
+# (J) ECMA calls ED "Erase In Page". EA/ED/EL parameters: 0 = clear to end,
+# 1 = clear from beginning, 2 = clear.
+#
+# (K) ECMA calls this "End of Guarded Area" but preserves the EPA abbreviation.
+#
+# (L) The GSM parameters are vertical and horizontal parameters to scale by.
+#
+# (M) Some ANSI.SYS versions accept HPR, but more commonly `ANSI' terminals
+# use CUF for this function and ignore HPR. ECMA-48 calls this "Character
+# Position Relative" but retains the HPR abbreviation.
+#
+# (N) ECMA-48 calls this "Character Tabulation" but retains the HT
+# abbreviation.
+#
+# (O) SGR parameter values: 0 = default mode (attributes off), 1 = bold,
+# 2 = dim, 3 = italicized, 4 = underlined, 5 = slow blink, 6 = fast blink,
+# 7 = reverse video, 8 = invisible, 9 = crossed-out (marked for deletion),
+# 10 = primary font, 10 + n (n in 1..9) = nth alternative font, 20 = Fraktur,
+# 21 = double underline, 22 = turn off 2, 23 = turn off 3, 24 = turn off 4,
+# 25 = turn off 5, 26 = proportional spacing, 27 = turn off 7, 28 = turn off
+# 8, 29 = turn off 9, 30 = black fg, 31 = red fg, 32 = green fg, 33 = yellow
+# fg, 34 = blue fg, 35 = magenta fg, 36 = cyan fg, 37 = white fg, 38 = set
+# fg color as in CCIT T.416, 39 = set default fg color, 40 = black bg
+# 41 = red bg, 42 = green bg, 43 = yellow bg, 44 = blue bg, 45 = magenta bg,
+# 46 = cyan bg, 47 = white bg, 48 = set bg color as in CCIT T.416, 39 = set
+# default bg color, 50 = turn off 26, 51 = framed, 52 = encircled, 53 =
+# overlined, 54 = turn off 51 & 52, 55 = not overlined, 56-59 = reserved,
+# 61-65 = variable highlights for ideograms.
+#
+# (P) SI is also called LSO, Locking Shift Zero.
+#
+# (Q) SI is also called LS1, Locking Shift One.
+#
+# (R) Some ANSI.SYS versions accept VPR, but more commonly `ANSI' terminals
+# use CUD for this function and ignore VPR. ECMA calls it `Line Position
+# Absolute' but retains the VPA abbreviation.
+#
+# (S) MC parameters: 0 = start xfer to primary aux device, 1 = start xfer from
+# primary aux device, 2 = start xfer to secondary aux device, 3 = start xfer
+# from secondary aux device, 4 = stop relay to primary aux device, 5 =
+# start relay to primary aux device, 6 = stop relay to secondary aux device,
+# 7 = start relay to secondary aux device.
+#
+# (T) ECMA-48 calls this "Partial Line Forward" but retains the PLD
+# abbreviation.
+#
+# (U) ECMA-48 calls this "Partial Line Backward" but retains the PLD
+# abbreviation.
+#
+# (V) ECMA-48 calls this "Reverse Line Feed" but retains the RI abbreviation.
+#
+# (W) RM/SM modes are as follows: 1 = Guarder Area Transfer Mode (GATM),
+# 2 = Keyboard Action Mode (KAM), 3 = Control Representation Mode (CRM),
+# 4 = Insertion Replacement Mode, 5 = Status Report Transfer Mode (SRTM),
+# 6 = Erasure Mode (ERM), 7 = Line Editing Mode (LEM), 8 = Bi-Directional
+# Support Mode (BDSM), 9 = Device Component Select Mode (DCSM),
+# 10 = Character Editing Mode (HEM), 11 = Positioning Unit Mode (PUM),
+# 12 = Send/Receive Mode, 13 = Format Effector Action Mode (FEAM),
+# 14 = Format Effector Transfer Mode (FETM), 15 = Multiple Area Transfer
+# Mode (MATM), 16 = Transfer Termination Mode, 17 = Selected Area Transfer
+# Mode, 18 = Tabulation Stop Mode, 19 = Editing Boundary Mode, 20 = Line Feed
+# New Line Mode (LF/NL), Graphic Rendition Combination Mode (GRCM), 22 =
+# Zero Default Mode (ZDM). The EBM and LF/NL modes have actually been removed
+# from ECMA-48's 5th edition but are listed here for reference.
+#
+# (X) Select Alternate Presentation Variants is used only for non-Latin
+# alphabets.
+#
+# (Y) "Select Editing Extent" (SEE) was ANSI "Select Edit Extent Mode" (SEM).
+#
+# (Z) ECMA-48 calls this "Start of Guarded Area" but retains the SPA
+# abbreviation.
+#
+# ---------------------------------------------------------------------------
+#
+# Abbreviations:
+#
+# Intro an Introducer of some kind of defined sequence; the normal 7-bit
+# X3.64 Control Sequence Introducer is the two characters "Escape ["
+#
+# Delim a Delimiter
+#
+# x/y identifies a character by position in the ASCII table (column/row)
+#
+# eF editor function (see explanation)
+#
+# FE format effector (see explanation)
+#
+# F is a Final character in
+# an Escape sequence (F from 3/0 to 7/14 in the ASCII table)
+# a control sequence (F from 4/0 to 7/14)
+#
+# Gs is a graphic character appearing in strings (Gs ranges from
+# 2/0 to 7/14) in the ASCII table
+#
+# Ce is a control represented as a single bit combination in the C1 set
+# of controls in an 8-bit character set
+#
+# C0 the familiar set of 7-bit ASCII control characters
+#
+# C1 roughly, the set of control chars available only in 8-bit systems.
+# This is too complicated to explain fully here, so read Jim Fleming's
+# article in the February 1983 BYTE, especially pages 214 through 224.
+#
+# Fe is a Final character of a 2-character Escape sequence that has an
+# equivalent representation in an 8-bit environment as a Ce-type
+# (Fe ranges from 4/0 to 5/15)
+#
+# Fs is a Final character of a 2-character Escape sequence that is
+# standardized internationally with identical representation in 7-bit
+# and 8-bit environments and is independent of the currently
+# designated C0 and C1 control sets (Fs ranges from 6/0 to 7/14)
+#
+# I is an Intermediate character from 2/0 to 2/15 (inclusive) in the
+# ASCII table
+#
+# P is a parameter character from 3/0 to 3/15 (inclusive) in the ASCII
+# table
+#
+# Pn is a numeric parameter in a control sequence, a string of zero or
+# more characters ranging from 3/0 to 3/9 in the ASCII table
+#
+# Ps is a variable number of selective parameters in a control sequence
+# with each selective parameter separated from the other by the code
+# 3/11 (which usually represents a semicolon); Ps ranges from
+# 3/0 to 3/9 and includes 3/11
+#
+# * Not relevant to terminal control, listed for completeness only.
+#
+# Format Effectors versus Editor Functions
+#
+# A format effector specifies how following output is to be displayed.
+# An editor function allows you to modify the display. Informally
+# format effectors may be destructive; format effectors should not be.
+#
+# For instance, a format effector that moves the "active position" (the
+# cursor or equivalent) one space to the left would be useful when you want to
+# create an overstrike, a compound character made of two standard characters
+# overlaid. Control-H, the Backspace character, is actually supposed to be a
+# format effector, so you can do this. But many systems use it in a
+# nonstandard fashion, as an editor function, deleting the character to the
+# left of the cursor and moving the cursor left. When Control-H is assumed to
+# be an editor function, you cannot predict whether its use will create an
+# overstrike unless you also know whether the output device is in an "insert
+# mode" or an "overwrite mode". When Control-H is used as a format effector,
+# its effect can always be predicted. The familiar characters carriage
+# return, linefeed, formfeed, etc., are defined as format effectors.
+#
+# NOTES ON THE DEC VT100 IMPLEMENTATION
+#
+# Control sequences implemented in the VT100 are as follows:
+#
+# CPR, CUB, CUD, CUF, CUP, CUU, DA, DSR, ED, EL, HTS, HVP, IND,
+# LNM, NEL, RI, RIS, RM, SGR, SM, TBC
+#
+# plus several private DEC commands.
+#
+# Erasing parts of the display (EL and ED) in the VT100 is performed thus:
+#
+# Erase from cursor to end of line Esc [ 0 K or Esc [ K
+# Erase from beginning of line to cursor Esc [ 1 K
+# Erase line containing cursor Esc [ 2 K
+# Erase from cursor to end of screen Esc [ 0 J or Esc [ J
+# Erase from beginning of screen to cursor Esc [ 1 J
+# Erase entire screen Esc [ 2 J
+#
+# Some brain-damaged terminal/emulators respond to Esc [ J as if it were
+# Esc [ 2 J, but this is wrong; the default is 0.
+#
+# The VT100 responds to receiving the DA (Device Attributes) control
+#
+# Esc [ c (or Esc [ 0 c)
+#
+# by transmitting the sequence
+#
+# Esc [ ? l ; Ps c
+#
+# where Ps is a character that describes installed options.
+#
+# The VT100's cursor location can be read with the DSR (Device Status
+# Report) control
+#
+# Esc [ 6 n
+#
+# The VT100 reports by transmitting the CPR sequence
+#
+# Esc [ Pl ; Pc R
+#
+# where Pl is the line number and Pc is the column number (in decimal).
+#
+# The specification for the DEC VT100 is document EK-VT100-UG-003.
+
+#### ANSI.SYS
+#
+# Here is a description of the color and attribute controls supported in the
+# the ANSI.SYS driver under MS-DOS. Most console drivers and ANSI
+# terminal emulators for Intel boxes obey these. They are a proper subset
+# of the ECMA-48 escapes.
+#
+# 0 all attributes off
+# 1 foreground bright
+# 4 underscore on
+# 5 blink on/background bright (not reliable with brown)
+# 7 reverse-video
+# 8 set blank (non-display)
+# 10 set primary font
+# 11 set first alternate font (on PCs, display ROM characters 1-31)
+# 12 set second alternate font (on PCs, display IBM high-half chars)
+#
+# Color attribute sets
+# 3n set foreground color / 0=black, 1=red, 2=green, 3=brown,
+# 4n set background color \ 4=blue, 5=magenta, 6=cyan, 7=white
+# Bright black becomes gray. Bright brown becomes yellow,
+# These coincide with the prescriptions of the ISO 6429/ECMA-48 standard.
+#
+# * If the 5 attribute is on and you set a background color (40-47) it is
+# supposed to enable bright background.
+#
+# * Many VGA cards (such as the Paradise and compatibles) do the wrong thing
+# when you try to set a "bright brown" (yellow) background with attribute
+# 5 (you get a blinking yellow foreground instead). A few displays
+# (including the System V console) support an attribute 6 that undoes this
+# braindamage (this is required by iBCS2).
+#
+# * Some older versions of ANSI.SYS have a bug that causes thems to require
+# ESC [ Pn k as EL rather than the ANSI ESC [ Pn K. (This is not ECMA-48
+# compatible.)
+
+#### Intel Binary Compatibility Standard
+#
+# For comparison, here are the capabilities implied by the Intel Binary
+# Compatibility Standard for UNIX systems (Intel order number 468366-001).
+# These recommendations are optional. IBCS2 allows the leading escape to
+# be either the 7-bit \E[ or 8-bit \0233 introducer, in accordance with
+# the ANSI X.364/ISO 6429/ECMA-48 standard. Here are the iBCS2 capabilities
+# (as described in figure 9-3 of the standard). Those expressed in the ibcs2
+# terminfo entry are followed with the corresponding capability in parens:
+#
+# CSI <n>k disable (n=0) or enable (n=1) keyclick
+# CSI 2h lock keyboard
+# CSI 2i send screen as input
+# CSI 2l unlock keyboard
+# CSI 6m enable background color intensity
+# CSI <0-2>c reserved
+# CSI <0-59>m select graphic rendition
+# CSI <n>;<m>H (cup) cursor to line n and column m
+# CSI <n>;<m>f cursor to line n and column m
+# CSI <n>@ (ich) insert characters
+# CSI <n>A (cuu) cursor up n lines
+# CSI <n>B (cud) cursor down n lines
+# CSI <n>C (cuu) cursor right n characters
+# CSI <n>D (cud) cursor left n characters
+# CSI <n>E cursor down n lines and in first column
+# CSI <n>F cursor up n lines and in first column
+# CSI <n>G (hpa) position cursor at column n-1
+# CSI <n>J (ed) erase in display
+# CSI <n>K (el) erase in line
+# CSI <n>L (il) insert line(s)
+# CSI <n>P (dch) delete characters
+# CSI <n>S (indn) scroll up n lines
+# CSI <n>T (rin) scroll down n lines
+# CSI <n>X (ech) erase characters
+# CSI <n>Z (cbt) back up n tab stops
+# CSI <n>` cursor to column n on line
+# CSI <n>a (cuu) cursor right n characters
+# CSI <n>d (vpa) cursor to line n
+# CSI <n>e cursor down n lines and in first column
+# CSI <n>g (cbt) clear all tabs
+# CSI <n>z make virtual terminal n active
+# CSI ?7h (smam) turn automargin on
+# CSI ?7l (rmam) turn automargin off
+# CSI s save cursor position
+# CSI u restore cursor position to saved value
+# CSI =<c>A set overscan color
+# CSI =<c>F set normal foreground color
+# CSI =<c>G set normal background color
+# CSI =<c>H set reverse foreground color
+# CSI =<c>I set reverse foreground color
+# CSI =<c>J set graphic foreground color
+# CSI =<c>K set graphic foreground color
+# CSI =<n>g (dispc) display n from alternate graphics character set
+# CSI =<p>;<d>B set bell parameters
+# CSI =<s>;<e>C set cursor parameters
+# CSI =<x>D enable/disable intensity of background color
+# CSI =<x>E set/clear blink vs. bold background
+# CSI 7 (sc) (sc) save cursor position
+# CSI 8 (rc) (rc) restore cursor position to saved value
+# CSI H (hts) (hts) set tab stop
+# CSI Q<n><string> define function key string
+# (string must begin and end with delimiter char)
+# CSI c (clear) clear screen
+#
+# The lack of any specification for attributes in SGR (among other things)
+# makes this a wretchedly weak standard. The table above is literally
+# everything iBSC2 has to say about terminal escape sequences; there is
+# no further discussion of their meaning or how to set the parameters
+# in these sequences at all.
+#
+
+######## NONSTANDARD CAPABILITY TRANSLATIONS USED IN THIS FILE
+#
+# The historical termcap file entries were written primarily in 4.4BSD termcap.
+# The 4.4BSD termcap set was substantially larger than the original 4.1BSD set,
+# with the extension names chosen for compatibility with the termcap names
+# assigned in System V terminfo. There are some variant extension sets out
+# there. We try to describe them here.
+#
+# XENIX extensions:
+#
+# The XENIX extensions include a set of function-key capabilities as follows:
+#
+# code XENIX variable name terminfo name name clashes?
+# ---- ------------------- ------------- -----------------------
+# CL key_char_left
+# CR key_char_right
+# CW key_change_window create_window
+# EN key_end kend
+# HM key_home khome
+# HP ??
+# LD key_delete_line kdl1
+# LF key_linefeed label_off
+# NU key_next_unlocked_cell
+# PD key_page_down knp
+# PL ??
+# PN start_print mc5
+# PR ??
+# PS stop_print mc4
+# PU key_page_up kpp pulse
+# RC key_recalc remove_clock
+# RF key_toggle_ref req_for_input
+# RT key_return kent
+# UP key_up_arrow kcuu1 parm_up_cursor
+# WL key_word_left
+# WR key_word_right
+#
+# The XENIX extensions also include the following character-set and highlight
+# capabilities:
+#
+# XENIX terminfo function
+# ----- -------- ------------------------------
+# GS smacs start alternate character set
+# GE rmacs end alternate character set
+# GG :as:/:ae: glitch (analogous to :sg:/:ug:)
+# bo blink begin blink (not used in /etc/termcap)
+# be end blink (not used in /etc/termcap)
+# bb blink glitch (not used in /etc/termcap)
+# it dim begin dim (not used in /etc/termcap)
+# ie end dim (not used in /etc/termcap)
+# ig dim glitch (not used in /etc/termcap)
+#
+# Finally, XENIX also used the following forms-drawing capabilities:
+#
+# single double type ASCII approximation
+# ------ ------ ------------- -------------------
+# GV Gv vertical line |
+# GH Gv horizontal line - _
+# G1 G5 top right corner _ |
+# G2 G6 top left corner |
+# G3 G7 bottom left corner |_
+# G4 G8 bottom right corner _|
+# GD Gd down-tick character T
+# GL Gl left-tick character -|
+# GR Gr right-tick character |-
+# GC Gc middle intersection -|-
+# GU Gu up-tick character _|_
+#
+# These were invented to take advantage of the IBM PC ROM character set. One
+# can compose an acsc string from the single-width characters as follows
+# "j{G4}k{G1}l{G2}m{G3}q{GH}x{GV}t{GR}u{GL}v{GU}w{GD}n{GC}"
+# When translating a termcap file, ncurses tic will do this automatically.
+# The double forms characters don't fit the SVr4 terminfo model.
+#
+# AT&T Extensions:
+#
+# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
+# nonstandard capabilities. Its signature is the KM capability, used to name
+# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
+# set. Comments in the original, and a little cross-checking with other AT&T
+# documentation, seem to establish that BO=:mr: (start reverse video), DS=:mh:
+# (start dim), XS=:mk: (secure/invisible mode), EE=:me: (end highlights),
+# FL=:LO: (enable soft labels), FE=:LF: (disable soft labels), CI=:vi: (make
+# cursor invisible), and CV=:ve: (make cursor normal).
+#
+# HP Extensions
+#
+# The HP library (as of mid-1995, their term.h file version 70.1) appears to
+# have the System V capabilities up to SVr1 level. After that, it supports
+# two nonstandard caps meml and memu corresponding to the old termcap :ml:,
+# :mu: capabilities. After that, it supports caps plab_norm, label_on,
+# label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the
+# HP binary format incompatible with SVr4's.
+#
+# IBM Extensions
+#
+# There is a set of nonstandard terminfos used by IBM's AIX operating system.
+# The AIX terminfo library diverged from SVr1 terminfo, and replaces all
+# capabilities following prtr_non with the following special capabilties:
+# box[12], batt[12], colb[0123456789], colf[0123456789], f[01234567], kbtab,
+# kdo, kcmd, kcpn, kend, khlp, knl, knpn, kppn, kppn, kquit, ksel, kscl, kscr,
+# ktab, kmpf[123456789], apstr, ksf1..ksf10, kf11...kf63, kact, topl, btml,
+# rvert, lvert. Some of these are identical to XPG4/SVr4 equivalents:
+# kcmd, kend, khlp, and kf11...kf63. Two others (kbtab and ksel) can be
+# renamed (to kcbt and kslt). The places in the box[12] capabilities
+# correspond to acsc chars, here is the mapping:
+#
+# box1[0] = ACS_ULCORNER
+# box1[1] = ACS_HLINE
+# box1[2] = ACS_URCORNER
+# box1[3] = ACS_VLINE
+# box1[4] = ACS_LRCORNER
+# box1[5] = ACS_LLCORNER
+# box1[6] = ACS_TTEE
+# box1[7] = ACS_RTEE
+# box1[8] = ACS_BTEE
+# box1[9] = ACS_LTEE
+# box1[10] = ACS_PLUS
+#
+# The box2 characters are the double-line versions of these forms graphics.
+# The AIX binary terminfo format is incompatible with SVr4's.
+#
+# Iris console extensions:
+#
+# HS is half-intensity start; HE is half-intensity end
+# CT is color terminal type (for Curses & rogue)
+# CP is color change escape sequence
+# CZ are color names (for Curses & rogue)
+#
+# The ncurses tic utility recognizes HS as an alias for mh <dim>.
+#
+# TC Extensions:
+#
+# There is a set of extended termcaps associated with something
+# called the "Terminal Control" or TC package created by MainStream Systems,
+# Winfield Kansas. This one also uses GS/GE for as/ae, and also uses
+# CF for civis and CO for cvvis. Finally, they define a boolean :ct:
+# that flags color terminals.
+#
+######## CHANGE HISTORY
+#
+# The last /etc/termcap version maintained by John Kunze was 8.3, dated 8/5/94.
+# Releases 9 and up are maintained by Eric S. Raymond as part of the ncurses
+# project.
+#
+# This file contains all the capability information present in John Kunze's
+# last version of the termcap master file, except as noted in the change
+# comments at end of file. Some information about very ancient obsolete
+# capabilities has been moved to comments. Some all-numeric names of older
+# terminals have been retired.
+#
+# I changed :MT: to :km: (the 4.4BSD name) everywhere. I commented out some
+# capabilities (EP, dF, dT, dV, kn, ma, ml, mu, xr, xx) that are no longer
+# used by BSD curses.
+#
+# The 9.1.0 version of this file was translated from my lightly-edited copy of
+# 8.3, then mechanically checked against 8.3 using Emacs Lisp code written for
+# the purpose. Unless the ncurses tic implementation and the Lisp code were
+# making perfectly synchronized mistakes which I then failed to catch by
+# eyeball, the translation was correct and perfectly information-preserving.
+#
+# Major version number bumps correspond to major version changes in ncurses.
+#
+# Here is a log of the changes since then:
+#
+# 9.1.0 (Wed Feb 1 04:50:32 EST 1995):
+# * First terminfo master translated from 8.3.
+# 9.2.0 (Wed Feb 1 12:21:45 EST 1995):
+# * Replaced Wyse entries with updated entries supplied by vendor.
+#
+# 9.3.0 (Mon Feb 6 19:14:40 EST 1995):
+# * Added contact & status info from G. Clark Brown <clark@sssi.com>.
+# 9.3.1 (Tue Feb 7 12:00:24 EST 1995):
+# * Better XENIX keycap translation. Describe TC termcaps.
+# * Contact and history info supplied by Qume.
+# 9.3.2 (Sat Feb 11 23:40:02 EST 1995):
+# * Raided the Shuford FTP site for recent termcaps/terminfos.
+# * Added information on X3.64 and VT100 standard escape sequences.
+# 9.3.3 (Mon Feb 13 12:26:15 EST 1995):
+# * Added a correct X11R6 xterm entry.
+# * Fixed terminfo translations of padding.
+# 9.3.4 (Wed Feb 22 19:27:34 EST 1995):
+# * Added correct acsc/smacs/rmacs strings for vt100 and xterm.
+# * Added u6/u7/u8/u9 capabilities.
+# * Added PCVT entry.
+# 9.3.5 (Thu Feb 23 09:37:12 EST 1995):
+# * Emacs uses :so:, not :mr:, for its mode line. Fix linux entry
+# to use reverse-video standout so Emacs will look right.
+# * Added el1 capability to ansi.
+# * Added smacs/rmacs to ansi.sys.
+#
+# 9.4.0 (Sat Feb 25 16:43:25 EST 1995):
+# * New mt70 entry.
+# * Added COPYRIGHTS AND OTHER DELUSIONS.
+# * Added AT&T 23xx & 500/513, vt220 and vt420, opus3n1+, netronics
+# smartvid & smarterm, ampex 175 & 219 & 232,
+# env230, falco ts100, fluke, intertube, superbrain, ncr7901, vic20,
+# ozzie, trs200, tr600, Tandy & Texas Instruments VDTs, intext2,
+# screwpoint, fviewpoint, Contel Business Systems, Datamedia Colorscan,
+# adm36, mime314, ergo4000, ca22851. Replaced att7300, esprit, dd5500.
+# * Replaced the Perkin-Elmer entries with vendor's official ones.
+# * Restored the old minimal-ansi entry, luna needs it.
+# * Fixed some incorrect ip and proportional-padding translations.
+# 9.4.1 (Mon Feb 27 14:18:33 EST 1995):
+# * Fix linux & AT386 sgr strings to do A_ALTCHARSET turnoff correctly.
+# * Make the xterm entry 65 lines again; create xterm25 and xterm24
+# to force a particular height.
+# * Added beehive4 and reorganized other Harris entries.
+# 9.4.2 (Thu Mar 9 01:45:44 EST 1995):
+# * Merged in DEC's official entries for its terminals. The only old
+# entry I kept was Doug Gwyn's alternate vt100 (as vt100-avo).
+# * Replaced the translated BBN Bitgraph entries with purpose-built
+# ones from AT&T's SVr3.
+# * Replaced the AT&T entries with AT&T's official terminfos.
+# * Added teleray 16, vc415, cops10.
+# * Merged in many individual capabilities from SCO terminfo files.
+# 9.4.3 (Mon Mar 13 02:37:53 EST 1995):
+# * Typo fixes.
+# * Change linux entry so A_PROTECT enables IBM-PC ROM characters.
+# 9.4.4 (Mon Mar 27 12:32:35 EST 1995):
+# * Added tty35, Ann Arbor Guru series. vi300 and 550, cg7900, tvi803,
+# pt210, ibm3164, IBM System 1, ctrm, Tymshare scanset, dt200, adm21,
+# simterm, citoh and variants.
+# * Replaced sol entry with sol1 and sol2.
+# * Replaced Qume QVT and Freedom-series entries with purpose-built
+# terminfo entries.
+# * Enhanced vt220, tvi910, tvi924, hpterm, hp2645, adm42, tek
+# and dg200 entries using caps from from SCO.
+# * Added the usual set of function-key mappings to ANSI entry.
+# * Corrected xterm's function-key capabilities.
+# 9.4.5 (Tue Mar 28 14:27:49 EST 1995):
+# * Fix in xterm entry, cub and cud are not reliable under X11R6.
+# 9.4.6 (Thu Mar 30 14:52:15 EST 1995):
+# * Fix in xterm entry, get the arrow keys right.
+# * Change some \0 escapes to \200.
+# 9.4.7 (Tue Apr 4 11:27:11 EDT 1995)
+# * Added apple (Videx card), adm1a, oadm31.
+# * Fixed malformed ampex csr.
+# * Fixed act4, cyb110; they had old-style prefix padding left in.
+# * Changed mandatory to advisory padding in many entries.
+# * Replaced HP entries up to hpsub with purpose-built ones.
+# * Blank rmir/smir/rmdc/smdc capabilities removed.
+# * Small fixes merged in from SCO entries for lpr, fos, tvi910+, tvi924.
+# 9.4.8 (Fri Apr 7 09:36:34 EDT 199):
+# * Replaced the Ann Arbor entries with SCO's, the init strings are
+# more efficient (but the entries otherwise identical).
+# * Added dg211 from Shuford archive.
+# * Added synertek, apple-soroc, ibmpc, pc-venix, pc-coherent, xtalk,
+# adm42-nl, pc52, gs6300, xerox820, uts30.
+# * Pull SCO's padding into vi200 entry.
+# * Improved capabilities for tvi4107 and other Televideo and Viewpoint
+# entries merged in from SCO's descriptions.
+# * Fixed old-style prefix padding on zen50, h1500.
+# * Moved old superbee entry to superbee-xsb, pulled in new superbee
+# entry from SCO's description.
+# * Reorganized the special entries.
+# * Added lm#0 to cbunix and virtual entries.
+#
+# 9.5.0 (Mon Apr 10 11:30:00 EDT 1995):
+# * Restored cdc456tst.
+# * Fixed sb1 entry, SCO erroneously left out the xsb glitch.
+# * Added megatek, beacon, microkit.
+# * Freeze for ncurses-1.9 release.
+# 9.5.1 (Fri Apr 21 12:46:42 EDT 1995):
+# * Added historical data for TAB.
+# * Comment fixes from David MacKenzie.
+# * Added the new BSDI pc3 entry.
+# 9.5.2 (Tue Apr 25 17:27:52 EDT 1995)
+# * A change in the tic -C logic now ensures that all entries in
+# the termcap translation will fit in < 1024 bytes.
+# * Added `bobcat' and `gator' HP consoles and the Nu machine entries
+# from GNU termcap file. This merges in all their local information.
+# 9.5.3 (Tue Apr 25 22:28:13 EDT 1995)
+# * Changed tic -C logic to dump all capabilities used by GNU termcap.
+# * Added warnings about entries with long translations (restoring
+# all the GNU termcaps pushes a few over the edge).
+# 9.5.4 (Wed Apr 26 15:35:09 EDT 1995)
+# * Yet another tic change, and a couple of entry tweaks, to reduce the
+# number of long (> 1024) termcap translations back to 0.
+#
+# 9.6.0 (Mon May 1 10:35:54 EDT 1995)
+# * Added kf13-kf20 to Linux entry.
+# * Regularize Prime terminal names.
+# * Historical data on Synertek.
+# * Freeze for ncurses-1.9.1.
+# 9.6.1 (Sat May 6 02:00:52 EDT 1995):
+# * Added true xterm-color entry, renamed djm's pseudo-color entry.
+# * Eliminate whitespace in short name fields, this tanks some scripts.
+# * Name field changes to shorten some long entries.
+# * Termcap translation now automatically generates empty rmir/smir
+# when ich1/ich is present (copes with an ancient vi bug).
+# * Added `screen' entries from FSF's screen-3.6.2.
+# * Added linux-nic and xterm-nic entries.
+# 9.6.2 (Sat May 6 17:00:55 EDT 1995):
+# * Change linux entry to use smacs=\E[11m and have an explicit acsc,
+# eliminating some special-case code in ncurses.
+#
+# 9.7.0 (Tue May 9 18:03:12 EDT 1995):
+# * Added vt320-k3, rsvidtx from the Emacs termcap.dat file. I think
+# that captures everything unique from it.
+# * Added reorder script generator.
+# * Freeze for ncurses 1.9.2 release.
+# 9.7.1 (Thu Jun 29 09:35:22 EDT 1995):
+# * Added Sean Farley's kspd, flash, rs1 capabilities for linux.
+# * Added Olaf Siebert's corrections for adm12.
+# * ansi-pc-color now includes the colors and pairs caps, so that
+# entries which use it will inherit them automatically.
+# * The linux entry can now recognize the center (keypad 5) key.
+# * Removed some junk that found its way into Linux acsc.
+#
+# 9.8.0 (Fri Jul 7 04:46:57 EDT 1995):
+# * Add 50% cut mark as a desperate hack to reduce tic's core usage.
+# * xterm doesn't try to use application keypad mode any more.
+# * Freeze for ncurses-1.9.3 release.
+# 9.8.1 (Thu Jul 19 17:02:12 EDT 1995):
+# * Added corrected sun entry from vendor.
+# * Added csr capability to linux entry.
+# * Peter Wemm says the at386 hpa should be \E[%i%p1%dG, not \E[%p1%dG.
+# * Added vt102-nsgr to cope with stupid IBM PC `VT100' emulators.
+# * Some commented-out caps in long entries come back in, my code
+# for computing string-table lengths had a bug in it.
+# * pcansi series modified to fit comm-program reality better.
+# 9.8.2 (Sat Sep 9 23:35:00 EDT 1995):
+# * BSD/OS actually ships the ibmpc3 bold entry as its console.
+# * Correct some bad aliases in the pcansi series
+# * Added entry for QNX console.
+# * Clean up duplicate long names for use with 4.4 library.
+# * Change vt100 standout to be normal reverse vide, not bright reverse;
+# this makes the Emacs status line look better.
+# 9.8.3 (Sun Sep 10 13:07:34 EDT 1995):
+# * Added Adam Thompson's VT320 entries, also his dtx-sas and z340.
+# * Minor surgery, mostly on name strings, to shorten termcap version.
+#
+# 9.9.0 (Sat Sep 16 23:03:48 EDT 1995):
+# * Added dec-vt100 for use with the EWAN emulator.
+# * Added kmous to xterm for use with xterm's mouse-tracking facility.
+# * Freeze for 1.9.5 alpha release.
+# 9.9.1 (Wed Sep 20 13:46:09 EDT 1995):
+# * Changed xterm lines to 24, the X11R6 default.
+# 9.9.2 (Sat Sep 23 21:29:21 EDT 1995):
+# * Added 7 newly discovered, undocumented acsc characters to linux
+# entry (the pryz{|} characters).
+# * ncurses no longer steals A_PROTECT. Simplify linux sgr accordingly.
+# * Correct two typos in the xterm entries introduced in 9.9.1.
+# * I finally figured out how to translate ko capabilities. Done.
+# * Added tvi921 entries from Tim Theisen.
+# * Cleanup: dgd211 -> dg211, adm42-nl -> adm42-nsl.
+# * Removed mystery tec entry, it was neither interesting nor useful.
+# * shortened altos3, qvt203, tvi910+, tvi92D, tvi921-g, tvi955, vi200-f,
+# vi300-ss, att505-24, contel301, dm3045, f200vi, pe7000c, vc303a,
+# trs200, wind26, wind40, wind50, cdc456tst, dku7003, f110, dg211,
+# by making them relative to use capabilities
+# * Added cuf1=^L to tvi925 from deleted variant tvi925a.
+# * fixed cup in adm22 entry and parametrized strings in vt320-k3.
+# * added it#8 to entries that used to have :pt: -- tvi912, vi200,
+# ampex80,
+# * Translate all home=\E[;H capabilities to home=\E[H, they're
+# equivalent.
+# * Translate \E[0m -> \E[m in [rs]mso, [rs]mul, and init strings of
+# vt100 and ANSI-like terminals.
+# 9.9.3 (Tue Sep 26 20:11:15 EDT 1995):
+# * Added it#8 and ht=\t to *all* entries with :pt:; the ncurses tic
+# does this now, too.
+# * fviewpoint is gone, it duplicated screwpoint.
+# * Added hp2627, graphos, graphos-30, hpex, ibmega, ibm8514, ibm8514-c,
+# ibmvga, ibmvga-c, minix, mm340, mt4520-rv, screen2, screen3,
+# versaterm, vi500, vsc, vt131, vt340, vt400 entries from UW.
+# The UW vi50 replaces the old one, which becomes vi50adm,
+# * No more embedded commas in name fields.
+#
+# 9.10.0 (Wed Oct 4 15:39:37 EDT 1995):
+# * XENIX forms characters in fos, trs16, scoansi become acsc strings,
+# * Introduced klone+* entries for describing Intel-console behavior.
+# * Linux kbs is default-mapped to delete for some brain-dead reason.
+# * -nsl -> -ns. The -pp syntax is obsolete.
+# * Eliminate [A-Z]* primaries in accordance with SVr4 terminfo docs.
+# * Make xterm entry do application-keypad mode again. I got complaints
+# that it was messing up someone's 3270 emulator.
+# * Added some longname fields in order to avoid warning messages from
+# older tic implementations.
+# * According to ctrlseqs.ms, xterm has a full vt100 graphics set. Use
+# it! (This gives us pi, greater than, less than, and a few more.)
+# * Freeze for ncurses-1.9.6 release.
+# 9.10.1 (Sat Oct 21 22:18:09 EDT 1995):
+# * Add xon to a number of console entries, they're memory-mapped and
+# don't need padding.
+# * Correct the use dependencies in the ansi series.
+# * Hand-translate more XENIX capabilities.
+# * Added hpterm entry for HP's X terminal emulator.
+# * Added aixterm entries.
+# * Shortened four names so everything fits in 14 chars.
+#
+# 9.11.0 (Thu Nov 2 17:29:35 EST 1995):
+# * Added ibcs2 entry and info on iBCS2 standard.
+# * Corrected hpa/vpa in linux entry. They still fail the worm test.
+# * We can handle the HP meml/memu capability now.
+# * Added smacs to klone entries, just as documentation.
+# * Carrected ansi.sys and cit-500 entries.
+# * Added z39, vt320-k311, v220c, and avatar entries.
+# * Make pcansi use the ansi.sys invis capability.
+# * Added DIP switch descriptions for vt100, adm31, tvi910, tvi920c,
+# tvi925, tvi950, dt80, ncr7900i, h19.
+# * X3.64 has been withdrawn, change some references.
+# * Removed function keys from ansi-m entry.
+# * Corrected ansi.sys entry.
+# * Freeze for ncurses-1.9.7 release.
+# 9.11.1 (Tue Nov 6 18:18:38 EST 1995):
+# * Added rmam/smam capabilities to many entries based on init strings.
+# * Added correct hpa/vpa to linux.
+# * Reduced several entries relative to vt52.
+# 9.11.2 (Tue Nov 7 00:21:06 EST 1995):
+# * Exiled some utterly unidentifiable custom and homebrew types to the
+# UFO file; also, obsolete small-screen hardware; also, entries which
+# look flat-out incorrect, garbled, or redundant. These include the
+# following entries: carlock, cdc456tst, microkit, qdss, ramtek, tec,
+# tec400, tec500, ubell, wind, wind16, wind40, wind50, plasma, agile,
+# apple, bch, daleblit, nucterm, ttywilliams, nuterminal, nu24, bnu,
+# fnu, nunix-30, nunix-61, exidy, ex3000, sexidy, pc52, sanyo55,
+# yterm10, yterm11, yterm10nat, aed, aed-ucb, compucolor, compucolor2,
+# vic20, dg1, act5s, netx, smartvid, smarterm, sol, sol2, dt200,
+# trs80, trs100, trs200, trs600, xitex, rsvidtx, vid, att2300-x40,
+# att2350-x40, att4410-nfk, att5410-ns, otty5410, att5425-nl-w,
+# tty5425-fk, tty5425-w-fk, cita, c108-na, c108-rv-na, c100-rv-na,
+# c108-na-acs, c108-rv-na-acs, ims950-ns, infotonKAS, ncr7900i-na,
+# regent60na, scanset-n, tvi921-g, tvi925n, tvi925vbn, tvi925vb,
+# vc404-na, vc404-s-na, vt420nam, vt420f-nam, vt420pc-nam, vt510nam,
+# vt510pc-nam, vt520nam, vt525nam, xterm25, xterm50, xterm65, xterms.
+# * Corrected pcvt25h as suggested by Brian C. Grayson
+# <bgrayson@pine.ece.utexas.edu>.
+# 9.11.3 (Thu Nov 9 12:14:40 EST 1995):
+# * Added kspd=\E[P, kcbt=\E[Z, to linux entry, changed kbs back to ^H.
+# * Added kent=\EOM to xterm entry.
+#
+# 9.11.4 (Fri Nov 10 08:31:35 EST 1995):
+# * Corrected gigi entry.
+# * Restored cuf/cud1 to xterm, their apparent bugginess was due to
+# bad hpa/vpa capabilities.
+# * Corrected flash strings to have a uniform delay of .2 sec. No
+# more speed-dependent NUL-padding!
+# * terminfo capabilities in comments bracketed with <>.
+# 9.11.5 (Fri Nov 10 15:35:02 EST 1995):
+# * Replaced pcvt with the 3.31 pcvt entries.
+# * Freeze for 1.9.7a.
+# 9.11.6 (Mon Nov 13 10:20:24 EST 1995):
+# * Added emu entry from the X11R6 contrib tape sources.
+#
+# 9.12.0 (Wed Nov 29 04:22:25 EST 1995):
+# * Improved iris-ansi and sun entries.
+# * More flash string improvements.
+# * Corrected wy160 & wy160 as suggested by Robert Dunn
+# * Added dim to at386.
+# * Reconciled pc3 and ibmpc3 with the BSDI termcap file. Keith says
+# he's ready to start using the termcap generated from this one.
+# * Added vt102-w, vt220-w, xterm-bold, wyse-vp, wy75ap, att4424m,
+# ln03, lno3-w, h19-g, z29a*, qdss. Made vt200 an alias of vt220.
+# * Improved hpterm, apollo consoles, fos, qvt101, tvi924. tvi925,
+# att610, att620, att630,
+# * Changed hazeltine name prefix from h to hz.
+# * Sent t500 to the UFI file.
+# * I think we've sucked all the juice out of BSDI's termcap file now.
+# * Freeze for ncurses 1.9.8 release
+# 9.12.1 (Thu Nov 30 03:14:06 EST 1995)
+# * Unfreeze, linux kbs needed to be fixed.
+# * Tim Theisen pinned down a bug in the DMD firmware.
+# 9.12.2 (Thu Nov 30 19:08:55 EST 1995):
+# * Fixes to ansi and klone capabilities (thank you, Aaron Ucko).
+# (The broken ones had been shadowed by sgr.)
+# 9.12.3 (Thu Dec 7 17:47:22 EST 1995):
+# * Added documentation on ECMA-48 standard.
+# * New Amiga entry.
+# 9.12.4 (Thu Dec 14 04:16:39 EST 1995):
+# * More ECMA-48 stuff
+# * Corrected typo in minix entry, added pc-minix.
+# * Corrected khome/kend in xterm (thank you again, Aaron Ucko).
+# * Added rxvt entry.
+# * Added 1.3.x color-change capabilities to linux entry.
+# 9.12.5 (Tue Dec 19 00:22:10 EST 1995):
+# * Corrected rxvt entry khome/kend.
+# * Corrected linux color change capabilities.
+# * NeXT entries from Dave Wetzel.
+# * Cleaned up if and rf file names (all in /usr/share now).
+# * Changed linux op capability to avoid screwing up a background color
+# pair set by setterm.
+# 9.12.6 (Wed Feb 7 16:14:35 EST 1996):
+# * Added xterm-sun.
+# 9.12.7 (Fri Feb 9 13:27:35 EST 1996):
+# * Added visa50.
+#
+# 9.13.0 (Sun Mar 10 00:13:08 EST 1996):
+# * Another sweep through the Shuford archive looking for new info.
+# * Added dg100 alias to dg6053 based on a comp.terminals posting.
+# * Added st52 from Per Persson.
+# * Added eterm from the GNU Emacs 19.30 distribution.
+# * Freeze for 1.9.9.
+# 9.13.1 (Fri Mar 29 14:06:46 EST 1996):
+# * FreeBSD console entries from Andrew Chernov.
+# * Removed duplicate Atari st52 name.
+# 9.13.2 (Tue May 7 16:10:06 EDT 1996)
+# * xterm doesn't actually have ACS_BLOCK.
+# * Change klone+color setf/setb to simpler forms that can be
+# translated into termcap.
+# * Added xterm1.
+# * Removed mechanically-generated junk capabilities from cons* entries.
+# * Added color support to bsdos.
+# 9.13.3 (Thu May 9 10:35:51 EDT 1996):
+# * Added Wyse 520 entries from Wm. Randolph Franklin <wrf@ecse.rpi.edu>.
+# * Created ecma+color, linux can use it. Also added ech to linux.
+# * Teach xterm about more keys. Add Thomas Dickey's 3.1.2E updates.
+# * Add descriptions to FreeBSD console entries. Also shorten
+# some aliases to <= 14 chars for portability.
+# * Added x68k console
+# * Added OTbs to several VT-series entries.
+# 9.13.4 (Wed May 22 10:54:09 EDT 1996):
+# * screen entry update for 3.7.1 from Michael Alan Dorfman.
+# 9.13.5 (Wed Jun 5 11:22:41 EDT 1996):
+# * kterm correction due to Kenji Rikitake.
+# * ACS correction in vt320-kll due to Phillippe De Muyter.
+# 9.13.6 (Sun Jun 16 15:01:07 EDT 1996):
+# * Sun console entry correction from J.T. Conklin.
+# * Changed all DEC VT300 and up terminals to use VT300 tab set
+# 9.13.7 (Mon Jul 8 20:14:32 EDT 1996):
+# * Added smul to linux entry (we never noticed it was missing
+# because of sgr!).
+# * Added rmln to hp+labels (deduced from other HP entries).
+# * Added vt100 acsc capability to vt220, vt340, vt400, d800, dt80-sas,
+# pro350, att7300, 5420_2, att4418, att4424, att4426, att505, vt320-k3.
+# * Corrected vt220 acsc.
+# * The klone+sgr and klone+sgr-dumb entries now use klone+acs;
+# this corresponds to reality and helps prevent some tic warnings.
+# * Added sgr0 to c101, pcix, vt100-nav, screen2, oldsun, next, altos2,
+# hpgeneric, hpansi, hpsub, hp236, hp700-wy, bobcat, dku7003, adm11,
+# adm12, adm20, adm21, adm22, adm31, adm36, adm42, pt100, pt200,
+# qvt101, tvi910, tvi921, tvi92B, tvi925, tvi950, tvi970, wy30-mc,
+# wy50-mc, wy100, wyse-vp, ampex232, regent100, viewpoint, vp90,
+# adds980, cit101, cit500, contel300, cs10, dm80, falco, falco-p,
+# f1720a, go140, sb1, superbeeic, microb, ibm8512, kt7, ergo4000,
+# owl, uts30, dmterm, dt100, dt100, dt110, appleII, apple-videx,
+# lisa, trsII, atari, st52, pc-coherent, basis, m2-man, bg2.0, bg1.25,
+# dw3, ln03, ims-ansi, graphos, t16, zen30, xtalk, simterm, d800,
+# ifmr, v3220, wy100q, tandem653, ibmaed.
+# * Added DWK terminal description.
+# 9.13.8 (Wed Jul 10 11:45:21 EDT 1996):
+# * Many entries now have highlights inherited from adm+sgr.
+# * xterm entry now corresponds to XFree86 3.1.2E, with color.
+# * xtitle and xtitle-twm enable access to the X status line.
+# * Added linux-1.3.6 color palette caps in conventional format.
+# * Added adm1178 terminal.
+# * Move fos and apollo terminals to obsolete category.
+# * Aha! The BRL terminals file told us what the Iris extensions mean.
+# * Added, from the BRL termcap file: rt6221, rt6221-w, northstar,
+# commodore, cdc721-esc, excel62, osexec. Replaced from the BRL file:
+# cit500, adm11.
+# 9.13.9 (Mon Jul 15 00:32:51 EDT 1996):
+# * Added, from the BRL termcap file: cdc721, cdc721l, cdc752, cdc756,
+# aws, awsc, zentec8001, modgraph48, rca vp3301/vp3501, ex155.
+# * Corrected, from BRL termcap file: vi50.
+# * Better rxvt entry & corrected xterm entries from Thomas Dickey.
+# 9.13.10 (Mon Jul 15 12:20:13 EDT 1996):
+# * Added from BRL: cit101e & variants, hmod1, vi200, ansi77, att5620-1,
+# att5620-s, att5620-s, dg210, aas1901, hz1520, hp9845, osborne
+# (old osborne moved to osborne-w), tvi970-vb, tvi970-2p, tvi925-hi,
+# tek4105brl, tek4106brl, tek4107brl,tek4109brl, hazel, aepro,
+# apple40p, apple80p, appleIIgs, apple2e, apple2e-p, apple-ae.
+# * Paired-attribute fixes to various terminals.
+# * Sun entry corrections from A. Lukyanov & Gert-Jan Vons.
+# * xterm entry corrections from Thomas Dickey.
+# 9.13.11 (Tue Jul 30 16:42:58 EDT 1996):
+# * Added t916 entry, translated from a termcap in SCO's support area.
+# * New qnx entry from Michael Hunter.
+# 9.13.12 (Mon Aug 5 14:31:11 EDT 1996):
+# * Added hpex2 from Ville Sulko.
+# * Fixed a bug that ran the qnx and pcvtXX together.
+# 9.13.13 (Fri Aug 9 01:16:17 EDT 1996):
+# * Added dtterm entry from Solaris CDE.
+# 9.13.14 (Tue Sep 10 15:31:56 EDT 1996):
+# * corrected pairs#8 typo in dtterm entry.
+# * added tvi9065.
+# 9.13.15 (Sun Sep 15 02:47:05 EDT 1996):
+# * updated xterm entry to cover 3.1.2E's new features.
+# 9.13.16 (Tue Sep 24 12:47:43 EDT 1996):
+# * Added new minix entry
+# * Removed aliases of the form ^[0-9]* for obsolete terminals.
+# * Commented out linux-old, nobody's using pre-1.2 kernels now.
+# 9.13.17 (Fri Sep 27 13:25:38 EDT 1996):
+# * Added Prism entries and kt7ix.
+# * Caution notes about EWAN and tabset files.
+# * Changed /usr/lib/tabset -> /usr/share/tabset.
+# * Added acsc/rmacs/smacs to vt52.
+# 9.13.18 (Mon Oct 28 13:24:59 EST 1996):
+# * Merged in Thomas Dickey's reorganization of the xterm entries;
+# added technical corrections to avoid warning messages.
+# 9.13.19 (Sat Nov 16 16:05:49 EST 1996):
+# * Added rmso=\E[27m in Linux entry.
+# * Added koi8-r support for Linux console.
+# * Replace xterm entries with canonical ones from XFree86 3.2.
+# 9.13.20 (Sun Nov 17 23:02:51 EST 1996):
+# * Added color_xterm from Jacob Mandelson
+# 9.13.21 (Mon Nov 18 12:43:42 EST 1996):
+# * Back off the xterm entry to use r6 as a base.
+# 9.13.22 (Sat Nov 30 11:51:31 EST 1996):
+# * Added dec-vt220 at Adrian Garside's request.
+# 9.13.23 (Fri Feb 21 16:36:06 EST 1997):
+# * Replaced minitel-2 entry.
+# * Added MGR, ansi-nt.
+# * Minor corrections to xterm entries.
+# * Replaced EWAN telnet entry.
+# * Dropped the reorder script generator. It was a fossil.
+# 9.13.24 (Sun Feb 23 20:55:23 EST 1997):
+# * Thorsten Lockert added termcap `bs' to a lot of types, working from
+# the 4.4BSD Lite2 file.
+# 9.13.25 (Fri Jun 20 12:33:36 EDT 1997):
+# * Added Datapoint 8242, pilot, ansi_psx, rbcomm, vt220js.
+# * Updated iris-ansi; corrected vt102-w.
+# * Switch base xterm entry to 3.3 level.
+# 9.13.26 (Mon Jun 30 22:45:45 EDT 1997)
+# * Added basic4.
+# * Removed rmir/smir from tv92B.
+#
+# 10.2.0 (Sat Feb 28 12:47:36 EST 1998):
+# * add hds200 description (Walter Skorski)
+# * add beterm entry (Fred Fish)
+# * add Thomas Dickey's xterm-xf86-v40, xterm-8bit, xterm-16color,
+# iris-color entries.
+# * add emx entries.
+# * Replaced unixpc entry with Benjamin Sittler's corrected version.
+# * Replaced xterm/rxvt/emu/syscons entries with Thomas Dickey's
+# versions.
+# * remove sgr string from qnx based on report by Xiaodan Tang
+# * Added u8/u9, removed rmul/smul from sun-il.
+# * 4.2 tic displays \0 rather than \200.
+# * add linux-koi8r to replace linux-koi8 (which uses a corrupt acsc,
+# apparently based on cp-866).
+# * Merged in Pavel Roskin's acsc for linux-koi8
+# * Corrected some erroneous \\\s to \.
+# * 4.2 ncurses has been changed to use setaf/setab, consistent w/SysV.
+# * II -> ii in pcvtXX, screen, xterm.
+# * Removed \n chars following ANSI escapes in sgr & friends.
+# * Updated Wyse entries.
+# * h19 corrections from Tim Pierce.
+# * Noted that the dm2500 has both ich and smir.
+# * added pccons for the Alpha under OSF/1.
+# * Added Sony NEWS workstation entries and cit101e-rv.
+# * Reverted `amiga'; to Kent Polk's version, as I'm told
+# the Verkuil entry messes up with Amiga Telnet.
+# 10.2.1 (Sun Mar 8 18:32:04 EST 1998):
+# * Corrected attributions in 10.2.0 release notes.
+# * Scanned the Shuford archive for new terminfos and information.
+# * Removed sgr from qnx entry (Thomas Dickey).
+# * Added entries for ICL and Kokusai Data Systems terminals.
+# * Incorporated NCR terminfos from the Boundless Technology FTP site.
+# * Incorporated att700 from the Boundless Technology FTP site.
+# * Miscellaneous contact-address and Web-page updates.
+# 10.2.2 (Thu May 7 12:18:04 EDT 1998):
+# * Moved Altos to OBSOLETE UNIX CONSOLES
+# * Moved Hewlett-Packard terminals to OLDER TERMINAL TYPES, except for
+# the 700s which go to WORKSTATION CONSOLES.
+# * Major reorganization of ANSI/console/VT types. Moved vt52 to the
+# obsolete section.
+# * Daisy-wheel printers moved to UFO file.
+# 10.2.3 (Tue May 12 22:59:11 EDT 1998):
+# * Commented out hds200 is2 to avoid overflowing terminfo length limit.
+# * Restored OT capabilities to UFO file.
+# * add nxterm and xterm-color terminfo description (request by Cristian
+# Gafton <gafton@redhat.com>).
+# * Modify rxvt terminfo description to clear alternate screen before
+# switching back to normal screen, for compatibility with applications
+# which use xterm (reported by Manoj Kasichainula <manojk@io.com>).
+# * Modify linux terminfo description to reset color palette (reported
+# by Telford Tendys <telford@eng.uts.edu.au>).
+# 10.2.4 (Thu Jul 2 18:13:26 EDT 1998):
+# * Added minitel1 entries from Alexander Montaron.
+# * Added qnxt2 from Federico Bianchi.
+# 10.2.5: (Mon Aug 24 07:32:34 EDT 1998):
+# * Resolve NetBSD Problem Report #4583 by adding civis/cnorm to pcvtXX.
+# * dtterm enacs correction from Alexander V. Lukyanov.
+# * Added ncsa-telnet, resolving Debian bug report 25341.
+# * Added Francesco Potorti's tuned Wyse 99 entries.
+# 10.2.6: (Mon Dec 21 00:49:43 EST 1998):
+# * Home site has changed.
+# 10.2.7: (Wed Mar 3 15:53:04 EST 1999):
+# * Documentation fixes, mainly from David J. Mackenzie.
+#
+# 11.0.0: (Wed Mar 1 22:02:03 EST 2000)
+# * BSD/OS console fixes from Jeffrey Honig at BSDI.
+# ** TD's branch changes up to his 1999/10/23 version begin here
+# * Added arm100 terminfo entries from Dave Millen.
+# * Added Data General entries from Hasufin.
+# * NCSA telnet entry from Francesco Potorti as modified by TD.
+# * Added teraterm, crt, ms-vt100, mach, mach-bold, linux-lat,
+# ofcons, wsvt25, wsvt25m, rcons, rcons-color, cygwin, amiga-8bit,
+# ibm3161-C, ibm3162.
+# * Updated xterm entries, BSD/OS entries, AIX entries.
+# * Updated linux, iris-ansi, screen, beterm entries.
+# * Added full function keys for scoansi.
+# * Typo fixes for icl6404, osborne, eterm. att6386
+# * Corrected hp70092 acsc.
+# * Added ibmpc from AIX 3.2.5; ibm-pc is no longer a synonym.
+# * Added ibm5151 from AIX 3.2.5; ibmmono is no longer a synonym.
+# * Added ibm5154 from AIX 3.2.5; ibmega is no longer a synonym.
+# * Merged acsc, s0ds, s1ds, sgr0 into ibm5081 from AIX 3.2.5.
+# * Merged kend, knp, kpp, mc4, mc5 into ibm3161 in from AIX 3.2.5.
+# * Merged acsc into hft-c from AIX 3.2.5.
+# * Updated ibm3151 from AIX 3.2.5.
+# * Errors in TD's branch not accepted: ibm3101, ibm3151, ibm8514
+# * Merged msgr,colors,pairs,setb,setf into ibm3164 from AIX 3.2.5.
+# ** TD's branch changes end here
+# * Address updates from various contributors.
+# * Historical info on basis console.
+# * Ty Sarna's corrections to the amiga entry.
+# * Add Kevin Turner's entry for the Wyse 85 in 8-bit mode.
+# * Added 22 Bull-Questar terminal variants from AIX 4.1.5
+# * Added OSF/1 console and lft from AIX 4.1.5.
+# * Move vt2220 to vt220-old, vt220-8 to vt220, introduce vt220-8bit
+# from AIX 4.1.5.
+# * swtp moved to UFO file (only 20 lines).
+# * Added pcmw.
+# 11.0.1: (Thu Mar 2 10:49:21 EST 2000):
+# * Disabled hpa, vpa, in rxvt.
+# * Incorporated ansi components and generic-ansi.
+#
+# The following sets edit modes for GNU EMACS.
+# Local Variables:
+# fill-prefix:"\t"
+# fill-column:75
+# comment-column:0
+# comment-start-skip:"^#+"
+# comment-start:"# "
+# compile-command:"tic -c termtypes.master"
+# End:
+######## SHANTIH! SHANTIH! SHANTIH!
diff --git a/source/a/file/file.SlackBuild b/source/a/file/file.SlackBuild
new file mode 100755
index 000000000..aaa0ca41f
--- /dev/null
+++ b/source/a/file/file.SlackBuild
@@ -0,0 +1,131 @@
+#!/bin/sh
+
+# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=5.03
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-file
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf file-$VERSION
+tar xvf $CWD/file-$VERSION.tar.?z* || exit 1
+cd file-$VERSION || exit 1
+
+# Make the default data directory /etc/file like it has always been:
+zcat $CWD/file.etc.file.diff.gz | patch -p1 --verbose || exit 1
+# This is needed after the patch above:
+autoreconf || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Don't spew warnings about using the flat text files
+zcat $CWD/file.quiet.diff.gz | patch -p1 -E --verbose || exit 1
+# I don't know what this one does
+zcat $CWD/file.short.diff.gz | patch -p1 -E --verbose || exit 1
+
+# Add zisofs and crda regulatory bin detection
+zcat $CWD/file.zisofs.magic.gz >> magic/Magdir/compress
+zcat $CWD/file.crdaregbin.magic.gz >> magic/Magdir/crdaregbin
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --datadir=/etc \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/file-$VERSION \
+ --enable-fsect-man5 \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Is file really this much of a processing bottleneck? Doubtful.
+#
+# NOTE: Benchmarked flat files vs. .mgc June 2009, found no measurable
+# difference on 3000+ files.
+#
+# If you really need these (let's say you're doing virus scanning
+# and this *would* speed things up quite a bit) you can create
+# the pre-parsed file yourself using file's -C option.
+rm -f $PKG/etc/file/magic.mgc
+mkdir -p $PKG/etc/file/magic
+cp -a magic/Magdir/* $PKG/etc/file/magic
+# After building, this works fine. /etc/file/magic/ takes up 1.2M,
+# while the magic.mgc file is 1.7M. Considering a difference of 500k,
+# and the potential speedup, I'm not sure it's worth the effort...
+# but it does make it easier for an admin to add a small chunk of
+# new magic.
+
+# IMHO, moving this sort of thing does not make sense.
+# We'll support both the traditional and new locations.
+# I hate to squat on a name as generic as "/etc/misc/",
+# but it wasn't my idea.
+( cd $PKG/etc ; ln -sf file misc )
+
+# Strip everything for good measure:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+( cd $PKG/usr/man || exit 1
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
+
+mkdir -p $PKG/usr/doc/file-$VERSION
+cp -a \
+ AUTHORS COPYING INSTALL MAINT NEWS README TODO \
+ $PKG/usr/doc/file-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/file-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/file/file.crdaregbin.magic b/source/a/file/file.crdaregbin.magic
new file mode 100644
index 000000000..bff01854f
--- /dev/null
+++ b/source/a/file/file.crdaregbin.magic
@@ -0,0 +1,5 @@
+# CRDA Regulatory database file
+# http://git.kernel.org/?p=linux/kernel/git/mcgrof/crda.git;a=summary
+# (see regdb.h)
+0 belong 0x52474442 CRDA regulatory database file
+>4 belong 19 (Version 1)
diff --git a/source/a/file/file.etc.file.diff b/source/a/file/file.etc.file.diff
new file mode 100644
index 000000000..98e075486
--- /dev/null
+++ b/source/a/file/file.etc.file.diff
@@ -0,0 +1,11 @@
+--- ./configure.ac.orig 2009-05-06 15:32:25.000000000 -0500
++++ ./configure.ac 2009-06-12 17:40:25.000000000 -0500
+@@ -47,7 +47,7 @@
+ fsect=4
+ ])
+
+-AC_SUBST([pkgdatadir], ['$(datadir)/misc'])
++AC_SUBST([pkgdatadir], ['$(datadir)/file'])
+ AC_SUBST(fsect)
+ AM_CONDITIONAL(FSECT5, test x$fsect = x5)
+
diff --git a/source/a/file/file.quiet.diff b/source/a/file/file.quiet.diff
new file mode 100644
index 000000000..198f62df5
--- /dev/null
+++ b/source/a/file/file.quiet.diff
@@ -0,0 +1,14 @@
+diff -Nur file-5.00.orig/src/apprentice.c file-5.00/src/apprentice.c
+--- file-5.00.orig/src/apprentice.c 2009-02-03 14:27:51.000000000 -0600
++++ file-5.00/src/apprentice.c 2009-02-08 22:19:19.215635230 -0600
+@@ -285,8 +285,8 @@
+
+ #ifndef COMPILE_ONLY
+ if ((rv = apprentice_map(ms, &magic, &nmagic, fn)) == -1) {
+- if (ms->flags & MAGIC_CHECK)
+- file_magwarn(ms, "using regular magic file `%s'", fn);
++ /* if (ms->flags & MAGIC_CHECK)
++ file_magwarn(ms, "using regular magic file `%s'", fn); */
+ rv = apprentice_load(ms, &magic, &nmagic, fn, action);
+ if (rv != 0)
+ return -1;
diff --git a/source/a/file/file.short.diff b/source/a/file/file.short.diff
new file mode 100644
index 000000000..be47218c5
--- /dev/null
+++ b/source/a/file/file.short.diff
@@ -0,0 +1,12 @@
+diff -Nur file-5.00.orig/src/readelf.h file-5.00/src/readelf.h
+--- file-5.00.orig/src/readelf.h 2008-05-28 15:58:16.000000000 -0500
++++ file-5.00/src/readelf.h 2009-02-08 22:17:26.681636542 -0600
+@@ -233,7 +233,7 @@
+ #define NT_OPENBSD_VERSION 1
+ #define NT_DRAGONFLY_VERSION 1
+ /* GNU executables (name = "GNU") */
+-#define NT_GNU_VERSION 1
++#define NT_GNU_VERSION 0
+
+ /* GNU OS tags */
+ #define GNU_OS_LINUX 0
diff --git a/source/a/file/file.xz.magic b/source/a/file/file.xz.magic
new file mode 100644
index 000000000..9aa36e45a
--- /dev/null
+++ b/source/a/file/file.xz.magic
@@ -0,0 +1,9 @@
+
+# XZ (Lempel-Ziv-Markov chain-Algorithm) file format supported by:
+# - 7-Zip <http://7-zip.org/>
+# - LZMA SDK <http://7-zip.org/sdk.html>
+# - XZ Utils <http://tukaani.org/xz/>
+#
+0 ustring \xFD7zXZ\x00 xz compressed data,
+>6 ubyte&0x10 0x00 single-block stream
+>6 ubyte&0x10 0x10 multi-block stream
diff --git a/source/a/file/file.zisofs.magic b/source/a/file/file.zisofs.magic
new file mode 100644
index 000000000..9aeb61edd
--- /dev/null
+++ b/source/a/file/file.zisofs.magic
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# zisofs: file(1) magic for zisofs/RockRidge compressed files
+#
+# from H. Peter Anvin <hpa@zytor.com> May 4, 2001
+#
+0 string \x37\xE4\x53\x96\xC9\xDB\xD6\x07 zisofs/Rockridge compressed file
+>8 lelong x - %d bytes
diff --git a/source/a/file/slack-desc b/source/a/file/slack-desc
new file mode 100644
index 000000000..96be26176
--- /dev/null
+++ b/source/a/file/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+file: file (a utility to determine file type)
+file:
+file: This is Ian F. Darwin's 'file' utility, used to identify files.
+file: Christos Zoulas has been file's maintainer since 1994.
+file:
+file:
+file:
+file:
+file:
+file:
+file:
diff --git a/source/a/findutils/findutils.SlackBuild b/source/a/findutils/findutils.SlackBuild
new file mode 100755
index 000000000..aca93a0cc
--- /dev/null
+++ b/source/a/findutils/findutils.SlackBuild
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=4.4.2
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-findutils
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf findutils-$VERSION
+tar xvf $CWD/findutils-$VERSION.tar.?z* || exit 1
+cd findutils-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# We use slocate instead of these:
+zcat $CWD/findutils.nolocate.diff.gz | patch -p1 --verbose || exit 1
+
+# Don't output warnings by default. Let's make the crazy assumption that the
+# user actually does know what they are doing, and will use -warn if they'd
+# like to be yelled at.
+zcat $CWD/findutils.no.default.options.warnings.diff.gz | patch -p1 --verbose || exit 1
+
+# Feel free to change the "--without-fts" if you like find to be faster and
+# less reliable. With the current setting, "find" will be non-fts(), and
+# ftsfind will still be there if you want to use it.
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-locate \
+ --without-fts \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/findutils-$VERSION
+cp -a \
+ AUTHORS COPYING* NEWS README* THANKS TODO \
+ $PKG/usr/doc/findutils-$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info pages and purge "dir" file from the package:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/findutils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/findutils/findutils.no.default.options.warnings.diff b/source/a/findutils/findutils.no.default.options.warnings.diff
new file mode 100644
index 000000000..2b1076731
--- /dev/null
+++ b/source/a/findutils/findutils.no.default.options.warnings.diff
@@ -0,0 +1,11 @@
+--- ./find/util.c.orig 2008-03-10 04:37:22.000000000 -0500
++++ ./find/util.c 2009-02-21 15:50:38.000000000 -0600
+@@ -910,7 +910,7 @@
+
+ if (isatty(0))
+ {
+- p->warnings = true;
++ p->warnings = false;
+ p->literal_control_chars = false;
+ }
+ else
diff --git a/source/a/findutils/findutils.nolocate.diff b/source/a/findutils/findutils.nolocate.diff
new file mode 100644
index 000000000..920b57baf
--- /dev/null
+++ b/source/a/findutils/findutils.nolocate.diff
@@ -0,0 +1,22 @@
+--- ./Makefile.am.orig 2009-02-21 15:09:54.000000000 -0600
++++ ./Makefile.am 2009-02-21 15:18:43.000000000 -0600
+@@ -4,7 +4,7 @@
+ EXTRA_DIST = COPYING ChangeLog TODO config.h.in stamp-h.in \
+ THANKS import-gnulib.sh import-gnulib.config
+ # "tests" is the gnulib unit test dir.
+-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4
++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4
+
+ ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
+
+--- ./Makefile.in.orig 2009-02-21 15:09:54.000000000 -0600
++++ ./Makefile.in 2009-02-21 15:18:56.000000000 -0600
+@@ -572,7 +572,7 @@
+ THANKS import-gnulib.sh import-gnulib.config
+
+ # "tests" is the gnulib unit test dir.
+-SUBDIRS = gnulib tests build-aux lib find xargs locate doc po m4
++SUBDIRS = gnulib tests build-aux lib find xargs doc po m4
+ ACLOCAL_AMFLAGS = -I gnulib/m4 -I m4
+ TESTFILE_SUFFIXES = .exp .xo .xe .xi
+ all: config.h
diff --git a/source/a/findutils/slack-desc b/source/a/findutils/slack-desc
new file mode 100644
index 000000000..f26e47217
--- /dev/null
+++ b/source/a/findutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+findutils: findutils (utilities to locate files)
+findutils:
+findutils: This package contains the GNU find and xargs programs. The find and
+findutils: xargs implementations comply with POSIX 1003.2. They also support
+findutils: some additional options, some borrowed from Unix and some unique to
+findutils: GNU.
+findutils:
+findutils:
+findutils:
+findutils:
+findutils:
diff --git a/source/a/floppy/fdutils-5.4-20020222.diff b/source/a/floppy/fdutils-5.4-20020222.diff
new file mode 100644
index 000000000..28a7b0405
--- /dev/null
+++ b/source/a/floppy/fdutils-5.4-20020222.diff
@@ -0,0 +1,2991 @@
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/Changelog fdutils/Changelog
+--- fdutils-5.4/Changelog Sat Jun 3 16:29:33 2000
++++ fdutils/Changelog Sun Feb 3 23:51:42 2002
+@@ -1,3 +1,9 @@
++020203 Fix fdmount and superformat bugs
++020203 Create /dev/fd0 before testing for existence of /dev/fd0
++011002 Fix floppycontrol.c printf conditional on FD_DISK_CHANGED, so that
++ it works with gcc3 which apparently considers printf as a macro...
++000612 Explicitly include sysmacros.h, apparently this is needed in
++ certain environments
+ 000603 Released 5.4
+ 000527 Fixed a couple of buffer overrun exploits and other cleanup. Made
+ fdutils compilable with Linux 2.3/2.4 kernels. Documentation fixes
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/INSTALL fdutils/INSTALL
+--- fdutils-5.4/INSTALL Thu Jul 1 19:48:19 1999
++++ fdutils/INSTALL Mon May 21 00:24:21 2001
+@@ -8,14 +8,17 @@
+ 3. Compile the utilities:
+ make
+
+- 3. Run the MAKEFLOPPIES script to create the device files:
++ 4. Install:
++ make install
++
++ 5. Run the MAKEFLOPPIES script to create the device files:
+ cd /dev
+ MAKEFLOPPIES
+
+- 4. Enjoy!
++ 6. Enjoy!
+ I you have any questions, feel free to ask!
+
+- 5. You might also want to get a recent version of mtools (later than
++ 7. You might also want to get a recent version of mtools (later than
+ 3.0)
+
+ A. Knaff
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.guess fdutils/config.guess
+--- fdutils-5.4/config.guess Tue Jun 17 22:37:13 1997
++++ fdutils/config.guess Mon May 21 00:24:45 2001
+@@ -1,7 +1,10 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
+-#
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
++# Free Software Foundation, Inc.
++
++timestamp='2001-04-20'
++
+ # This file 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 of the License, or
+@@ -22,18 +25,92 @@
+ # the same distribution terms that you use for the rest of that program.
+
+ # Written by Per Bothner <bothner@cygnus.com>.
+-# The master version of this file is at the FSF in /home/gd/gnu/lib.
++# Please send patches to <config-patches@gnu.org>.
+ #
+ # This script attempts to guess a canonical system name similar to
+ # config.sub. If it succeeds, it prints the system name on stdout, and
+ # exits with 0. Otherwise, it exits with 1.
+ #
+ # The plan is that this can be called by configure scripts if you
+-# don't specify an explicit system type (host/target name).
+-#
+-# Only a few systems have been added to this list; please add others
+-# (but try to keep the structure clean).
+-#
++# don't specify an explicit build system type.
++
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION]
++
++Output the configuration name of the system \`$me' is run on.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.guess ($timestamp)
++
++Originally written by Per Bothner.
++Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
++Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit 0 ;;
++ --version | -v )
++ echo "$version" ; exit 0 ;;
++ --help | --h* | -h )
++ echo "$usage"; exit 0 ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help" >&2
++ exit 1 ;;
++ * )
++ break ;;
++ esac
++done
++
++if test $# != 0; then
++ echo "$me: too many arguments$help" >&2
++ exit 1
++fi
++
++
++dummy=dummy-$$
++trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
++
++# CC_FOR_BUILD -- compiler used by this script.
++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
++# use `HOST_CC' if defined, but it is deprecated.
++
++case $CC_FOR_BUILD,$HOST_CC,$CC in
++ ,,) echo "int dummy(){}" > $dummy.c
++ for c in cc gcc c89 ; do
++ ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
++ if test $? = 0 ; then
++ CC_FOR_BUILD="$c"; break
++ fi
++ done
++ rm -f $dummy.c $dummy.o $dummy.rel
++ if test x"$CC_FOR_BUILD" = x ; then
++ CC_FOR_BUILD=no_compiler_found
++ fi
++ ;;
++ ,,*) CC_FOR_BUILD=$CC ;;
++ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
++esac
+
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+ # (ghazi@noc.rutgers.edu 8/24/94.)
+@@ -43,37 +120,162 @@
+
+ UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
+-
+ # Note: order is significant - the case branches are not exclusive.
+
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
++ *:NetBSD:*:*)
++ # Netbsd (nbsd) targets should (where applicable) match one or
++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
++ # switched to ELF, *-*-netbsd* would select the old
++ # object file format. This provides both forward
++ # compatibility and a consistent mechanism for selecting the
++ # object file format.
++ # Determine the machine/vendor (is the vendor relevant).
++ case "${UNAME_MACHINE}" in
++ amiga) machine=m68k-unknown ;;
++ arm32) machine=arm-unknown ;;
++ atari*) machine=m68k-atari ;;
++ sun3*) machine=m68k-sun ;;
++ mac68k) machine=m68k-apple ;;
++ macppc) machine=powerpc-apple ;;
++ hp3[0-9][05]) machine=m68k-hp ;;
++ ibmrt|romp-ibm) machine=romp-ibm ;;
++ *) machine=${UNAME_MACHINE}-unknown ;;
++ esac
++ # The Operating System including object format, if it has switched
++ # to ELF recently, or will in the future.
++ case "${UNAME_MACHINE}" in
++ i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep __ELF__ >/dev/null
++ then
++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
++ # Return netbsd for either. FIX?
++ os=netbsd
++ else
++ os=netbsdelf
++ fi
++ ;;
++ *)
++ os=netbsd
++ ;;
++ esac
++ # The OS release
++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
++ # contains redundant information, the shorter form:
++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
++ echo "${machine}-${os}${release}"
++ exit 0 ;;
+ alpha:OSF1:*:*)
++ if test $UNAME_RELEASE = "V4.0"; then
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++ fi
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+- echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
++ cat <<EOF >$dummy.s
++ .data
++\$Lformat:
++ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
++
++ .text
++ .globl main
++ .align 4
++ .ent main
++main:
++ .frame \$30,16,\$26,0
++ ldgp \$29,0(\$27)
++ .prologue 1
++ .long 0x47e03d80 # implver \$0
++ lda \$2,-1
++ .long 0x47e20c21 # amask \$2,\$1
++ lda \$16,\$Lformat
++ mov \$0,\$17
++ not \$1,\$18
++ jsr \$26,printf
++ ldgp \$29,0(\$26)
++ mov 0,\$16
++ jsr \$26,exit
++ .end main
++EOF
++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
++ if test "$?" = 0 ; then
++ case `./$dummy` in
++ 0-0)
++ UNAME_MACHINE="alpha"
++ ;;
++ 1-0)
++ UNAME_MACHINE="alphaev5"
++ ;;
++ 1-1)
++ UNAME_MACHINE="alphaev56"
++ ;;
++ 1-101)
++ UNAME_MACHINE="alphapca56"
++ ;;
++ 2-303)
++ UNAME_MACHINE="alphaev6"
++ ;;
++ 2-307)
++ UNAME_MACHINE="alphaev67"
++ ;;
++ esac
++ fi
++ rm -f $dummy.s $dummy
++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++ exit 0 ;;
++ Alpha\ *:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # Should we change UNAME_MACHINE based on the output of uname instead
++ # of the specific Alpha model?
++ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+- echo m68k-cbm-sysv4
++ echo m68k-unknown-sysv4
+ exit 0;;
+- amiga:NetBSD:*:*)
+- echo m68k-cbm-netbsd${UNAME_RELEASE}
+- exit 0 ;;
+ amiga:OpenBSD:*:*)
+- echo m68k-cbm-openbsd${UNAME_RELEASE}
+- exit 0 ;;
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ *:[Aa]miga[Oo][Ss]:*:*)
++ echo ${UNAME_MACHINE}-unknown-amigaos
++ exit 0 ;;
++ arc64:OpenBSD:*:*)
++ echo mips64el-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ arc:OpenBSD:*:*)
++ echo mipsel-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ hkmips:OpenBSD:*:*)
++ echo mips-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ pmax:OpenBSD:*:*)
++ echo mipsel-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ sgi:OpenBSD:*:*)
++ echo mips-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ wgrisc:OpenBSD:*:*)
++ echo mipsel-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ *:OS/390:*:*)
++ echo i370-ibm-openedition
++ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+- Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
++ echo hppa1.1-hitachi-hiuxmpp
++ exit 0;;
++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+@@ -81,9 +283,12 @@
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+- NILE:*:*:dcosx)
++ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
++ sun4H:SunOS:5.*:*)
++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+@@ -108,26 +313,61 @@
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
++ sun*:*:4.2BSD:*)
++ UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++ case "`/bin/arch`" in
++ sun3)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ ;;
++ sun4)
++ echo sparc-sun-sunos${UNAME_RELEASE}
++ ;;
++ esac
++ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+- atari*:NetBSD:*:*)
+- echo m68k-atari-netbsd${UNAME_RELEASE}
+- exit 0 ;;
+ atari*:OpenBSD:*:*)
+- echo m68k-atari-openbsd${UNAME_RELEASE}
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+- sun3*:NetBSD:*:*)
+- echo m68k-sun-netbsd${UNAME_RELEASE}
++ # The situation for MiNT is a little confusing. The machine name
++ # can be virtually everything (everything which is not
++ # "atarist" or "atariste" at least should have a processor
++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
++ # to the lowercase version "mint" (or "freemint"). Finally
++ # the system name "TOS" denotes a system which is actually not
++ # MiNT. But MiNT is downward compatible to TOS, so this should
++ # be no problem.
++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+- sun3*:OpenBSD:*:*)
+- echo m68k-sun-openbsd${UNAME_RELEASE}
++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit 0 ;;
++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+- mac68k:NetBSD:*:*)
+- echo m68k-apple-netbsd${UNAME_RELEASE}
++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit 0 ;;
++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit 0 ;;
++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit 0 ;;
++ sun3*:OpenBSD:*:*)
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+- echo m68k-apple-openbsd${UNAME_RELEASE}
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ mvme68k:OpenBSD:*:*)
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
++ exit 0 ;;
++ mvme88k:OpenBSD:*:*)
++ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+@@ -141,9 +381,17 @@
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
++ 2020:CLIX:*:* | 2430:CLIX:*:*)
++ echo clipper-intergraph-clix${UNAME_RELEASE}
++ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+- sed 's/^ //' << EOF >dummy.c
+- int main (argc, argv) int argc; char **argv; {
++ sed 's/^ //' << EOF >$dummy.c
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++ int main (int argc, char *argv[]) {
++#else
++ int main (argc, argv) int argc; char *argv[]; {
++#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+@@ -158,12 +406,15 @@
+ exit (-1);
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy \
+- && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+- && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
++ $CC_FOR_BUILD $dummy.c -o $dummy \
++ && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
++ && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
++ Motorola:PowerMAX_OS:*:*)
++ echo powerpc-motorola-powermax
++ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+@@ -179,15 +430,18 @@
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
+- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
+- -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
++ then
++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
++ [ ${TARGET_BINARY_INTERFACE}x = x ]
++ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+- else
++ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
++ fi
++ else
++ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+- else echo i586-dg-dgux${UNAME_RELEASE}
+- fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+@@ -208,12 +462,20 @@
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+- i?86:AIX:*:*)
++ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
++ ia64:AIX:*:*)
++ if [ -x /usr/bin/oslevel ] ; then
++ IBM_REV=`/usr/bin/oslevel`
++ else
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
++ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+- sed 's/^ //' << EOF >dummy.c
++ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+@@ -224,8 +486,8 @@
+ exit(0);
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+@@ -233,8 +495,9 @@
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+- *:AIX:*:4)
+- if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
++ *:AIX:*:[45])
++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+@@ -242,7 +505,7 @@
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+- IBM_REV=4.${UNAME_RELEASE}
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+@@ -252,7 +515,7 @@
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+@@ -267,18 +530,75 @@
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+- 9000/[3478]??:HP-UX:*:*)
++ 9000/[34678]??:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+- 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
+- 9000/8?? ) HP_ARCH=hppa1.0 ;;
++ 9000/[678][0-9][0-9])
++ case "${HPUX_REV}" in
++ 11.[0-9][0-9])
++ if [ -x /usr/bin/getconf ]; then
++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ case "${sc_cpu_version}" in
++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH="hppa2.0n" ;;
++ 64) HP_ARCH="hppa2.0w" ;;
++ esac ;;
++ esac
++ fi ;;
++ esac
++ if [ "${HP_ARCH}" = "" ]; then
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
++EOF
++ (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
++ if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
++ rm -f $dummy.c $dummy
++ fi ;;
+ esac
+- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
++ ia64:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++ echo ia64-hp-hpux${HPUX_REV}
++ exit 0 ;;
+ 3050*:HI-UX:*:*)
+- sed 's/^ //' << EOF >dummy.c
++ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+@@ -303,8 +623,8 @@
+ exit (0);
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
++ $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+@@ -313,13 +633,16 @@
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
++ *9??*:MPE/iX:*:*)
++ echo hppa1.0-hp-mpeix
++ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+- i?86:OSF1:*:*)
++ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+@@ -329,6 +652,9 @@
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
++ hppa*:OpenBSD:*:*)
++ echo hppa-unknown-openbsd
++ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+@@ -359,104 +685,297 @@
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+- echo t90-cray-unicos${UNAME_RELEASE}
++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*T3D:*:*:*)
++ echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*T3E:*:*:*)
++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit 0 ;;
++ CRAY*SV1:*:*:*)
++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY-2:*:*:*)
+ echo cray2-cray-unicos
+ exit 0 ;;
+- F300:UNIX_System_V:*:*)
+- FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+- F301:UNIX_System_V:*:*)
+- echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
+- exit 0 ;;
+- hp3[0-9][05]:NetBSD:*:*)
+- echo m68k-hp-netbsd${UNAME_RELEASE}
++ hp300:OpenBSD:*:*)
++ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+- hp3[0-9][05]:OpenBSD:*:*)
+- echo m68k-hp-openbsd${UNAME_RELEASE}
+- exit 0 ;;
+- i?86:BSD/386:*:* | *:BSD/OS:*:*)
++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
++ sparc*:BSD/OS:*:*)
++ echo sparc-unknown-bsdi${UNAME_RELEASE}
++ exit 0 ;;
++ *:BSD/OS:*:*)
++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+- *:NetBSD:*:*)
+- echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+- exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+- echo i386-pc-cygwin32
++ echo ${UNAME_MACHINE}-pc-cygwin
++ exit 0 ;;
++ i*:MINGW*:*)
++ echo ${UNAME_MACHINE}-pc-mingw32
++ exit 0 ;;
++ i*:PW*:*)
++ echo ${UNAME_MACHINE}-pc-pw32
++ exit 0 ;;
++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
++ # UNAME_MACHINE based on the output of uname instead of i386?
++ echo i386-pc-interix
++ exit 0 ;;
++ i*:UWIN*:*)
++ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+- echo powerpcle-unknown-cygwin32
++ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+- echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+- *:Linux:*:*)
+- # The BFD linker knows what the default object file format is, so
+- # first see if it will tell us.
+- ld_help_string=`ld --help 2>&1`
+- if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
+- echo "${UNAME_MACHINE}-pc-linux" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
+- echo "${UNAME_MACHINE}-pc-linux-aout" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
+- echo "${UNAME_MACHINE}-pc-linux-coff" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
+- echo "${UNAME_MACHINE}-unknown-linux" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
+- echo "${UNAME_MACHINE}-unknown-linux-aout" ; exit 0
+- elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
+- echo "powerpc-unknown-linux" ; exit 0
+- elif test "${UNAME_MACHINE}" = "alpha" ; then
+- echo alpha-unknown-linux ; exit 0
+- elif test "${UNAME_MACHINE}" = "sparc" ; then
+- echo sparc-unknown-linux ; exit 0
+- else
+- # Either a pre-BFD a.out linker (linux-oldld) or one that does not give us
+- # useful --help. Gcc wants to distinguish between linux-oldld and linux-aout.
+- test ! -d /usr/lib/ldscripts/. \
+- && echo "${UNAME_MACHINE}-pc-linux-oldld" && exit 0
+- # Determine whether the default compiler is a.out or elf
+- cat >dummy.c <<EOF
++ i*86:Minix:*:*)
++ echo ${UNAME_MACHINE}-pc-minix
++ exit 0 ;;
++ arm*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ ia64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux
++ exit 0 ;;
++ m68*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ mips:Linux:*:*)
++ cat >$dummy.c <<EOF
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++int main (int argc, char *argv[]) {
++#else
++int main (argc, argv) int argc; char *argv[]; {
++#endif
++#ifdef __MIPSEB__
++ printf ("%s-unknown-linux-gnu\n", argv[1]);
++#endif
++#ifdef __MIPSEL__
++ printf ("%sel-unknown-linux-gnu\n", argv[1]);
++#endif
++ return 0;
++}
++EOF
++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
++ ;;
++ ppc:Linux:*:*)
++ # Determine Lib Version
++ cat >$dummy.c <<EOF
++#include <features.h>
++#if defined(__GLIBC__)
++extern char __libc_version[];
++extern char __libc_release[];
++#endif
+ main(argc, argv)
+-int argc;
+-char *argv[];
++ int argc;
++ char *argv[];
+ {
++#if defined(__GLIBC__)
++ printf("%s %s\n", __libc_version, __libc_release);
++#else
++ printf("unknown\n");
++#endif
++ return 0;
++}
++EOF
++ LIBC=""
++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
++ if test "$?" = 0 ; then
++ ./$dummy | grep 1\.99 > /dev/null
++ if test "$?" = 0 ; then LIBC="libc1" ; fi
++ fi
++ rm -f $dummy.c $dummy
++ echo powerpc-unknown-linux-gnu${LIBC}
++ exit 0 ;;
++ alpha:Linux:*:*)
++ cat <<EOF >$dummy.s
++ .data
++ \$Lformat:
++ .byte 37,100,45,37,120,10,0 # "%d-%x\n"
++ .text
++ .globl main
++ .align 4
++ .ent main
++ main:
++ .frame \$30,16,\$26,0
++ ldgp \$29,0(\$27)
++ .prologue 1
++ .long 0x47e03d80 # implver \$0
++ lda \$2,-1
++ .long 0x47e20c21 # amask \$2,\$1
++ lda \$16,\$Lformat
++ mov \$0,\$17
++ not \$1,\$18
++ jsr \$26,printf
++ ldgp \$29,0(\$26)
++ mov 0,\$16
++ jsr \$26,exit
++ .end main
++EOF
++ LIBC=""
++ $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
++ if test "$?" = 0 ; then
++ case `./$dummy` in
++ 0-0) UNAME_MACHINE="alpha" ;;
++ 1-0) UNAME_MACHINE="alphaev5" ;;
++ 1-1) UNAME_MACHINE="alphaev56" ;;
++ 1-101) UNAME_MACHINE="alphapca56" ;;
++ 2-303) UNAME_MACHINE="alphaev6" ;;
++ 2-307) UNAME_MACHINE="alphaev67" ;;
++ esac
++ objdump --private-headers $dummy | \
++ grep ld.so.1 > /dev/null
++ if test "$?" = 0 ; then
++ LIBC="libc1"
++ fi
++ fi
++ rm -f $dummy.s $dummy
++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ exit 0 ;;
++ parisc:Linux:*:* | hppa:Linux:*:*)
++ # Look for CPU level
++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
++ PA7*) echo hppa1.1-unknown-linux-gnu ;;
++ PA8*) echo hppa2.0-unknown-linux-gnu ;;
++ *) echo hppa-unknown-linux-gnu ;;
++ esac
++ exit 0 ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-gnu
++ exit 0 ;;
++ s390:Linux:*:* | s390x:Linux:*:*)
++ echo ${UNAME_MACHINE}-ibm-linux
++ exit 0 ;;
++ sh*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ sparc:Linux:*:* | sparc64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit 0 ;;
++ x86_64:Linux:*:*)
++ echo x86_64-unknown-linux-gnu
++ exit 0 ;;
++ i*86:Linux:*:*)
++ # The BFD linker knows what the default object file format is, so
++ # first see if it will tell us. cd to the root directory to prevent
++ # problems with other programs or directories called `ld' in the path.
++ ld_supported_emulations=`cd /; ld --help 2>&1 \
++ | sed -ne '/supported emulations:/!d
++ s/[ ][ ]*/ /g
++ s/.*supported emulations: *//
++ s/ .*//
++ p'`
++ case "$ld_supported_emulations" in
++ i*86linux)
++ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
++ exit 0
++ ;;
++ elf_i*86)
++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
++ ;;
++ i*86coff)
++ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
++ exit 0
++ ;;
++ esac
++ # Either a pre-BFD a.out linker (linux-gnuoldld)
++ # or one that does not give us useful --help.
++ # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
++ # If ld does not provide *any* "supported emulations:"
++ # that means it is gnuoldld.
++ test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
++ case "${UNAME_MACHINE}" in
++ i*86)
++ VENDOR=pc;
++ ;;
++ *)
++ VENDOR=unknown;
++ ;;
++ esac
++ # Determine whether the default compiler is a.out or elf
++ cat >$dummy.c <<EOF
++#include <features.h>
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++ int main (int argc, char *argv[]) {
++#else
++ int main (argc, argv) int argc; char *argv[]; {
++#endif
+ #ifdef __ELF__
+- printf ("%s-pc-linux\n", argv[1]);
++# ifdef __GLIBC__
++# if __GLIBC__ >= 2
++ printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
++# else
++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
++# endif
++# else
++ printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
++# endif
+ #else
+- printf ("%s-pc-linux-aout\n", argv[1]);
++ printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+ #endif
+ return 0;
+ }
+ EOF
+- ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
+- rm -f dummy.c dummy
+- fi ;;
++ $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
++ rm -f $dummy.c $dummy
++ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
++ ;;
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
+ # are messed up and put the nodename in both sysname and nodename.
+- i?86:DYNIX/ptx:4*:*)
++ i*86:DYNIX/ptx:4*:*)
+ echo i386-sequent-sysv4
+ exit 0 ;;
+- i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
++ i*86:UNIX_SV:4.2MP:2.*)
++ # Unixware is an offshoot of SVR4, but it has its own version
++ # number series starting with 2...
++ # I am not positive that other SVR4 systems won't match this,
++ # I just have to hope. -- rms.
++ # Use sysv4.2uw... so that sysv4* matches it.
++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++ exit 0 ;;
++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+- echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+- echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+- i?86:*:3.2:*)
++ i*86:*:5:7*)
++ # Fixed at (any) Pentium or better
++ UNAME_MACHINE=i586
++ if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
++ echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
++ else
++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
++ fi
++ exit 0 ;;
++ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+@@ -465,11 +984,24 @@
+ (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
++ (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
++ && UNAME_MACHINE=i686
++ (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
++ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
++ i*86:*DOS:*:*)
++ echo ${UNAME_MACHINE}-pc-msdosdjgpp
++ exit 0 ;;
++ pc:*:*:*)
++ # Left here for compatibility:
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i386.
++ echo i386-pc-msdosdjgpp
++ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+@@ -489,7 +1021,7 @@
+ exit 0 ;;
+ M68*:*:R3V[567]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+- 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
++ 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+@@ -500,24 +1032,30 @@
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+- m68*:LynxOS:2.*:*)
++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+- i?86:LynxOS:2.*:*)
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+- rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
++ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++ echo powerpc-unknown-lynxos${UNAME_RELEASE}
++ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
++ RM*:ReliantUNIX-*:*:*)
++ echo mips-sni-sysv4
++ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+@@ -529,6 +1067,10 @@
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
++ PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+@@ -541,23 +1083,101 @@
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+- R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
++ news*:NEWS-OS:6*:*)
++ echo mips-sony-newsos6
++ exit 0 ;;
++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+- PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+- # says <Richard.M.Bartel@ccMail.Census.GOV>
+- echo i586-unisys-sysv4
+- exit 0 ;;
++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
++ echo powerpc-be-beos
++ exit 0 ;;
++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
++ echo powerpc-apple-beos
++ exit 0 ;;
++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
++ echo i586-pc-beos
++ exit 0 ;;
++ SX-4:SUPER-UX:*:*)
++ echo sx4-nec-superux${UNAME_RELEASE}
++ exit 0 ;;
++ SX-5:SUPER-UX:*:*)
++ echo sx5-nec-superux${UNAME_RELEASE}
++ exit 0 ;;
++ Power*:Rhapsody:*:*)
++ echo powerpc-apple-rhapsody${UNAME_RELEASE}
++ exit 0 ;;
++ *:Rhapsody:*:*)
++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
++ exit 0 ;;
++ *:Darwin:*:*)
++ echo `uname -p`-apple-darwin${UNAME_RELEASE}
++ exit 0 ;;
++ *:procnto*:*:* | *:QNX:[0123456789]*:*)
++ if test "${UNAME_MACHINE}" = "x86pc"; then
++ UNAME_MACHINE=pc
++ fi
++ echo `uname -p`-${UNAME_MACHINE}-nto-qnx
++ exit 0 ;;
++ *:QNX:*:4*)
++ echo i386-pc-qnx
++ exit 0 ;;
++ NSR-[KW]:NONSTOP_KERNEL:*:*)
++ echo nsr-tandem-nsk${UNAME_RELEASE}
++ exit 0 ;;
++ *:NonStop-UX:*:*)
++ echo mips-compaq-nonstopux
++ exit 0 ;;
++ BS2000:POSIX*:*:*)
++ echo bs2000-siemens-sysv
++ exit 0 ;;
++ DS/*:UNIX_System_V:*:*)
++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
++ exit 0 ;;
++ *:Plan9:*:*)
++ # "uname -m" is not consistent, so use $cputype instead. 386
++ # is converted to i386 for consistency with other x86
++ # operating systems.
++ if test "$cputype" = "386"; then
++ UNAME_MACHINE=i386
++ else
++ UNAME_MACHINE="$cputype"
++ fi
++ echo ${UNAME_MACHINE}-unknown-plan9
++ exit 0 ;;
++ i*86:OS/2:*:*)
++ # If we were able to find `uname', then EMX Unix compatibility
++ # is probably installed.
++ echo ${UNAME_MACHINE}-pc-os2-emx
++ exit 0 ;;
++ *:TOPS-10:*:*)
++ echo pdp10-unknown-tops10
++ exit 0 ;;
++ *:TENEX:*:*)
++ echo pdp10-unknown-tenex
++ exit 0 ;;
++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
++ echo pdp10-dec-tops20
++ exit 0 ;;
++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
++ echo pdp10-xkl-tops20
++ exit 0 ;;
++ *:TOPS-20:*:*)
++ echo pdp10-unknown-tops20
++ exit 0 ;;
++ *:ITS:*:*)
++ echo pdp10-unknown-its
++ exit 0 ;;
+ esac
+
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+ #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+-cat >dummy.c <<EOF
++cat >$dummy.c <<EOF
+ #ifdef _SEQUENT_
+ # include <sys/types.h>
+ # include <sys/utsname.h>
+@@ -595,7 +1215,10 @@
+ #endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+- printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
++ if (version < 4)
++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
++ else
++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+ #endif
+
+@@ -640,11 +1263,24 @@
+ #endif
+
+ #if defined (vax)
+-#if !defined (ultrix)
+- printf ("vax-dec-bsd\n"); exit (0);
+-#else
+- printf ("vax-dec-ultrix\n"); exit (0);
+-#endif
++# if !defined (ultrix)
++# include <sys/param.h>
++# if defined (BSD)
++# if BSD == 43
++ printf ("vax-dec-bsd4.3\n"); exit (0);
++# else
++# if BSD == 199006
++ printf ("vax-dec-bsd4.3reno\n"); exit (0);
++# else
++ printf ("vax-dec-bsd\n"); exit (0);
++# endif
++# endif
++# else
++ printf ("vax-dec-bsd\n"); exit (0);
++# endif
++# else
++ printf ("vax-dec-ultrix\n"); exit (0);
++# endif
+ #endif
+
+ #if defined (alliant) && defined (i860)
+@@ -655,8 +1291,8 @@
+ }
+ EOF
+
+-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
+-rm -f dummy.c dummy
++$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
++rm -f $dummy.c $dummy
+
+ # Apollos put the system type in the environment.
+
+@@ -688,6 +1324,48 @@
+ esac
+ fi
+
+-#echo '(Unable to guess system type)' 1>&2
++cat >&2 <<EOF
++$0: unable to guess system type
++
++This script, last modified $timestamp, has failed to recognize
++the operating system you are using. It is advised that you
++download the most up to date version of the config scripts from
++
++ ftp://ftp.gnu.org/pub/gnu/config/
++
++If the version you run ($0) is already up to date, please
++send the following data and any information you think might be
++pertinent to <config-patches@gnu.org> in order to provide the needed
++information to handle your system.
++
++config.guess timestamp = $timestamp
++
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
++/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
++
++hostinfo = `(hostinfo) 2>/dev/null`
++/bin/universe = `(/bin/universe) 2>/dev/null`
++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
++/bin/arch = `(/bin/arch) 2>/dev/null`
++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
++
++UNAME_MACHINE = ${UNAME_MACHINE}
++UNAME_RELEASE = ${UNAME_RELEASE}
++UNAME_SYSTEM = ${UNAME_SYSTEM}
++UNAME_VERSION = ${UNAME_VERSION}
++EOF
+
+ exit 1
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.h.in fdutils/config.h.in
+--- fdutils-5.4/config.h.in Fri Jul 2 23:37:12 1999
++++ fdutils/config.h.in Mon May 21 00:24:53 2001
+@@ -14,3 +14,6 @@
+
+ /* Define if you have the <linux/xia_fs.h> header file. */
+ #undef HAVE_LINUX_XIA_FS_H
++
++/* Define if you have the <sys/sysmacros.h> header file. */
++#undef HAVE_SYS_SYSMACROS_H
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/config.sub fdutils/config.sub
+--- fdutils-5.4/config.sub Sun Mar 2 18:43:27 1997
++++ fdutils/config.sub Mon May 21 00:24:43 2001
+@@ -1,6 +1,10 @@
+ #! /bin/sh
+-# Configuration validation subroutine script, version 1.1.
+-# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
++# Configuration validation subroutine script.
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
++# Free Software Foundation, Inc.
++
++timestamp='2001-05-11'
++
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+ # can handle that machine. It does not imply ALL GNU software can.
+@@ -25,6 +29,8 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+
++# Please send patches to <config-patches@gnu.org>.
++#
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+ # If it is invalid, we print an error message on stderr and exit with code 1.
+@@ -45,30 +51,73 @@
+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+ # It is wrong to echo any other type of specification.
+
+-if [ x$1 = x ]
+-then
+- echo Configuration name missing. 1>&2
+- echo "Usage: $0 CPU-MFR-OPSYS" 1>&2
+- echo "or $0 ALIAS" 1>&2
+- echo where ALIAS is a recognized configuration type. 1>&2
+- exit 1
+-fi
++me=`echo "$0" | sed -e 's,.*/,,'`
+
+-# First pass through any local machine types.
+-case $1 in
+- *local*)
+- echo $1
+- exit 0
+- ;;
+- *)
+- ;;
++usage="\
++Usage: $0 [OPTION] CPU-MFR-OPSYS
++ $0 [OPTION] ALIAS
++
++Canonicalize a configuration name.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.sub ($timestamp)
++
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
++Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit 0 ;;
++ --version | -v )
++ echo "$version" ; exit 0 ;;
++ --help | --h* | -h )
++ echo "$usage"; exit 0 ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help"
++ exit 1 ;;
++
++ *local*)
++ # First pass through any local machine types.
++ echo $1
++ exit 0;;
++
++ * )
++ break ;;
++ esac
++done
++
++case $# in
++ 0) echo "$me: missing argument$help" >&2
++ exit 1;;
++ 1) ;;
++ *) echo "$me: too many arguments$help" >&2
++ exit 1;;
+ esac
+
+ # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+- linux-gnu*)
++ nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+@@ -94,15 +143,25 @@
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+- -apple)
++ -apple | -axis)
+ os=
+ basic_machine=$1
+ ;;
++ -sim | -cisco | -oki | -wec | -winbond)
++ os=
++ basic_machine=$1
++ ;;
++ -scout)
++ ;;
++ -wrs)
++ os=-vxworks
++ basic_machine=$1
++ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+- os=sco3.2v5
++ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+@@ -121,6 +180,9 @@
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
++ -udk*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+@@ -143,25 +205,50 @@
+ -psos*)
+ os=-psos
+ ;;
++ -mint | -mint[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
+ esac
+
+ # Decode aliases for certain CPU-COMPANY combinations.
+ case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+- tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \
+- | arme[lb] | pyramid \
+- | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
+- | alpha | we32k | ns16k | clipper | i370 | sh \
+- | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
+- | pdp11 | mips64el | mips64orion | mips64orionel \
+- | sparc | sparclet | sparclite | sparc64)
++ tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
++ | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
++ | pyramid | mn10200 | mn10300 | tron | a29k \
++ | 580 | i960 | h8300 \
++ | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
++ | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
++ | hppa64 \
++ | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
++ | alphaev6[78] \
++ | we32k | ns16k | clipper | i370 | sh | sh[34] \
++ | powerpc | powerpcle \
++ | 1750a | dsp16xx | pdp10 | pdp11 \
++ | mips16 | mips64 | mipsel | mips64el \
++ | mips64orion | mips64orionel | mipstx39 | mipstx39el \
++ | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
++ | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
++ | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
++ | v850 | c4x \
++ | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
++ | pj | pjl | h8500 | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
++ m6811 | m68hc11 | m6812 | m68hc12)
++ # Motorola 68HC11/12.
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65 | z8k)
++ ;;
++
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+- i[3456]86)
++ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+@@ -170,23 +257,52 @@
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+- vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \
+- | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
+- | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
+- | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
+- | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
+- | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
+- | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
+- | mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
++ # FIXME: clean up the formatting here.
++ vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
++ | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
++ | arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
++ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
++ | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
++ | xmp-* | ymp-* \
++ | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
++ | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
++ | hppa2.0n-* | hppa64-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
++ | alphaev6[78]-* \
++ | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
++ | clipper-* | orion-* \
++ | sparclite-* | pdp10-* | pdp11-* | sh-* | sh[34]-* | sh[34]eb-* \
++ | powerpc-* | powerpcle-* | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
++ | mips16-* | mips64-* | mipsel-* \
++ | mips64el-* | mips64orion-* | mips64orionel-* \
++ | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
++ | mipstx39-* | mipstx39el-* | mcore-* \
++ | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
++ | [cjt]90-* \
++ | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
++ | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
++ | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
++ 386bsd)
++ basic_machine=i386-unknown
++ os=-bsd
++ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
++ a29khif)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ os=-scout
++ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+@@ -202,20 +318,24 @@
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+- basic_machine=m68k-cbm
++ basic_machine=m68k-unknown
+ ;;
+- amigados)
+- basic_machine=m68k-cbm
+- os=-amigados
++ amigaos | amigados)
++ basic_machine=m68k-unknown
++ os=-amigaos
+ ;;
+ amigaunix | amix)
+- basic_machine=m68k-cbm
++ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
++ apollo68bsd)
++ basic_machine=m68k-apollo
++ os=-bsd
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+@@ -252,13 +372,16 @@
+ basic_machine=cray2-cray
+ os=-unicos
+ ;;
+- [ctj]90-cray)
+- basic_machine=c90-cray
++ [cjt]90)
++ basic_machine=${basic_machine}-cray
+ os=-unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
++ cris | cris-* | etrax*)
++ basic_machine=cris-axis
++ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+@@ -292,6 +415,10 @@
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ os=-ose
++ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+@@ -302,6 +429,10 @@
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
++ go32)
++ basic_machine=i386-pc
++ os=-go32
++ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+@@ -310,6 +441,14 @@
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
++ h8300xray)
++ basic_machine=h8300-hitachi
++ os=-xray
++ ;;
++ h8500hms)
++ basic_machine=h8500-hitachi
++ os=-hms
++ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+@@ -325,13 +464,30 @@
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
++ hp3k9[0-9][0-9] | hp9[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+- hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7)
++ hp9k6[0-9][0-9] | hp6[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hp9k7[0-79][0-9] | hp7[0-79][0-9])
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k78[0-9] | hp78[0-9])
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+@@ -340,27 +496,42 @@
+ hppa-next)
+ os=-nextstep3
+ ;;
++ hppaosf)
++ basic_machine=hppa1.1-hp
++ os=-osf
++ ;;
++ hppro)
++ basic_machine=hppa1.1-hp
++ os=-proelf
++ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+- os=-mvs
+ ;;
+ # I'm not sure what "Sysv32" means. Should this be sysv3.2?
+- i[3456]86v32)
++ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+- i[3456]86v4*)
++ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+- i[3456]86v)
++ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+- i[3456]86sol2)
++ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
++ i386mach)
++ basic_machine=i386-mach
++ os=-mach
++ ;;
++ i386-vsta | vsta)
++ basic_machine=i386-unknown
++ os=-vsta
++ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+@@ -386,19 +557,59 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
++ mingw32)
++ basic_machine=i386-pc
++ os=-mingw32
++ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++ mipsel*-linux*)
++ basic_machine=mipsel-unknown
++ os=-linux-gnu
++ ;;
++ mips*-linux*)
++ basic_machine=mips-unknown
++ os=-linux-gnu
++ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
++ mmix*)
++ basic_machine=mmix-knuth
++ os=-mmixware
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ os=-msdos
++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ os=-mvs
++ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
++ netbsd386)
++ basic_machine=i386-unknown
++ os=-netbsd
++ ;;
++ netwinder)
++ basic_machine=armv4l-rebel
++ os=-linux
++ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+@@ -411,6 +622,10 @@
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
++ necv70)
++ basic_machine=v70-nec
++ os=-sysv
++ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+@@ -436,9 +651,32 @@
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
++ mon960)
++ basic_machine=i960-intel
++ os=-mon960
++ ;;
++ nonstopux)
++ basic_machine=mips-compaq
++ os=-nonstopux
++ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
++ nsr-tandem)
++ basic_machine=nsr-tandem
++ ;;
++ op50n-* | op60c-*)
++ basic_machine=hppa1.1-oki
++ os=-proelf
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ os=-ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ os=-os68k
++ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+@@ -456,30 +694,28 @@
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+- pentium | p5)
+- basic_machine=i586-intel
++ pentium | p5 | k5 | k6 | nexgen)
++ basic_machine=i586-pc
++ ;;
++ pentiumpro | p6 | 6x86 | athlon)
++ basic_machine=i686-pc
+ ;;
+- pentiumpro | p6)
+- basic_machine=i686-intel
++ pentiumii | pentium2)
++ basic_machine=i686-pc
+ ;;
+- pentium-* | p5-*)
++ pentium-* | p5-* | k5-* | k6-* | nexgen-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- pentiumpro-* | p6-*)
++ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+- k5)
+- # We don't have specific support for AMD's K5 yet, so just call it a Pentium
+- basic_machine=i586-amd
+- ;;
+- nexen)
+- # We don't have specific support for Nexgen yet, so just call it a Pentium
+- basic_machine=i586-nexgen
++ pentiumii-* | pentium2-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+- power) basic_machine=rs6000-ibm
++ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+@@ -494,12 +730,24 @@
+ ps2)
+ basic_machine=i386-ibm
+ ;;
++ pw32)
++ basic_machine=i586-unknown
++ os=-pw32
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+@@ -507,6 +755,10 @@
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
++ sparclite-wrs)
++ basic_machine=sparclite-wrs
++ os=-vxworks
++ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+@@ -514,6 +766,13 @@
+ spur)
+ basic_machine=spur-unknown
+ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ os=-sysv4
++ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+@@ -554,10 +813,28 @@
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
++ sv1)
++ basic_machine=sv1-cray
++ os=-unicos
++ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
++ t3e)
++ basic_machine=t3e-cray
++ os=-unicos
++ ;;
++ tic54x | c54x*)
++ basic_machine=tic54x-unknown
++ os=-coff
++ ;;
++ tx39)
++ basic_machine=mipstx39-unknown
++ ;;
++ tx39el)
++ basic_machine=mipstx39el-unknown
++ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+@@ -569,6 +846,10 @@
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ os=-none
++ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+@@ -577,7 +858,7 @@
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+- vpp*|vx|vx-*)
++ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+@@ -592,6 +873,14 @@
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
++ w65*)
++ basic_machine=w65-wdc
++ os=-none
++ ;;
++ w89k-*)
++ basic_machine=hppa1.1-winbond
++ os=-proelf
++ ;;
+ xmp)
+ basic_machine=xmp-cray
+ os=-unicos
+@@ -599,6 +888,10 @@
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
++ z8k-*-coff)
++ basic_machine=z8k-unknown
++ os=-sim
++ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+@@ -606,8 +899,21 @@
+
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
++ w89k)
++ basic_machine=hppa1.1-winbond
++ ;;
++ op50n)
++ basic_machine=hppa1.1-oki
++ ;;
++ op60c)
++ basic_machine=hppa1.1-oki
++ ;;
+ mips)
+- basic_machine=mips-mips
++ if [ x$os = x-linux-gnu ]; then
++ basic_machine=mips-unknown
++ else
++ basic_machine=mips-mips
++ fi
+ ;;
+ romp)
+ basic_machine=romp-ibm
+@@ -618,13 +924,20 @@
+ vax)
+ basic_machine=vax-dec
+ ;;
++ pdp10)
++ # there are many clones, so DEC is not a safe bet
++ basic_machine=pdp10-unknown
++ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+- sparc)
++ sh3 | sh4)
++ basic_machine=sh-unknown
++ ;;
++ sparc | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+@@ -636,6 +949,19 @@
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
++ mac | mpw | mac-mpw)
++ basic_machine=m68k-apple
++ ;;
++ pmac | pmac-mpw)
++ basic_machine=powerpc-apple
++ ;;
++ c4x*)
++ basic_machine=c4x-none
++ os=-coff
++ ;;
++ *-unknown)
++ # Make sure to match an already-canonicalized machine name.
++ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+@@ -668,9 +994,12 @@
+ -solaris)
+ os=-solaris2
+ ;;
+- -unixware* | svr4*)
++ -svr4*)
+ os=-sysv4
+ ;;
++ -unixware*)
++ os=-sysv4.2uw
++ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+@@ -681,19 +1010,42 @@
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+- | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
+- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
++ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+- | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+- | -linux-gnu* | -uxpv*)
++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
++ -qnx*)
++ case $basic_machine in
++ x86-* | i*86-*)
++ ;;
++ *)
++ os=-nto$os
++ ;;
++ esac
++ ;;
++ -nto*)
++ os=-nto-qnx
++ ;;
++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ ;;
++ -mac*)
++ os=`echo $os | sed -e 's|mac|macos|'`
++ ;;
+ -linux*)
+- os=`echo $os | sed -e 's|linux|linux|'`
++ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+@@ -701,6 +1053,12 @@
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
++ -opened*)
++ os=-openedition
++ ;;
++ -wince*)
++ os=-wince
++ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+@@ -716,12 +1074,18 @@
+ -acis*)
+ os=-aos
+ ;;
++ -386bsd)
++ os=-bsd
++ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
++ -nsk*)
++ os=-nsk
++ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+@@ -747,9 +1111,18 @@
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
++ -ose*)
++ os=-ose
++ ;;
++ -es1800*)
++ os=-ose
++ ;;
+ -xenix)
+ os=-xenix
+ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ os=-mint
++ ;;
+ -none)
+ ;;
+ *)
+@@ -775,9 +1148,15 @@
+ *-acorn)
+ os=-riscix1.2
+ ;;
++ arm*-rebel)
++ os=-linux
++ ;;
+ arm*-semi)
+ os=-aout
+ ;;
++ pdp10-*)
++ os=-tops20
++ ;;
+ pdp11-*)
+ os=-none
+ ;;
+@@ -796,15 +1175,36 @@
+ # default.
+ # os=-sunos4
+ ;;
++ m68*-cisco)
++ os=-aout
++ ;;
++ mips*-cisco)
++ os=-elf
++ ;;
++ mips*-*)
++ os=-elf
++ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
++ *-be)
++ os=-beos
++ ;;
+ *-ibm)
+ os=-aix
+ ;;
++ *-wec)
++ os=-proelf
++ ;;
++ *-winbond)
++ os=-proelf
++ ;;
++ *-oki)
++ os=-proelf
++ ;;
+ *-hp)
+ os=-hpux
+ ;;
+@@ -815,7 +1215,7 @@
+ os=-sysv
+ ;;
+ *-cbm)
+- os=-amigados
++ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+@@ -865,9 +1265,21 @@
+ *-masscomp)
+ os=-rtu
+ ;;
+- f301-fujitsu)
++ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
++ *-rom68k)
++ os=-coff
++ ;;
++ *-*bug)
++ os=-coff
++ ;;
++ *-apple)
++ os=-macos
++ ;;
++ *-atari*)
++ os=-mint
++ ;;
+ *)
+ os=-none
+ ;;
+@@ -889,9 +1301,15 @@
+ -aix*)
+ vendor=ibm
+ ;;
++ -beos*)
++ vendor=be
++ ;;
+ -hpux*)
+ vendor=hp
+ ;;
++ -mpeix*)
++ vendor=hp
++ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+@@ -907,7 +1325,7 @@
+ -genix*)
+ vendor=ns
+ ;;
+- -mvs*)
++ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -ptx*)
+@@ -919,9 +1337,26 @@
+ -aux*)
+ vendor=apple
+ ;;
++ -hms*)
++ vendor=hitachi
++ ;;
++ -mpw* | -macos*)
++ vendor=apple
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ vendor=atari
++ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+ esac
+
+ echo $basic_machine$os
++exit 0
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure fdutils/configure
+--- fdutils-5.4/configure Fri Jul 2 23:37:09 1999
++++ fdutils/configure Mon May 21 00:24:49 2001
+@@ -1250,7 +1250,7 @@
+ esac
+
+
+-for ac_hdr in linux/ext_fs.h linux/xia_fs.h
++for ac_hdr in linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/configure.in fdutils/configure.in
+--- fdutils-5.4/configure.in Thu Jul 1 19:22:51 1999
++++ fdutils/configure.in Mon May 21 00:24:21 2001
+@@ -18,7 +18,7 @@
+ AC_C_CONST
+ AC_C_INLINE
+
+-AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h)
++AC_CHECK_HEADERS(linux/ext_fs.h linux/xia_fs.h sys/sysmacros.h)
+
+ dnl Make fdmount accessible by the floppy group only
+ undefine([fdmount-floppy-only])dnl
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/README fdutils/doc/README
+--- fdutils-5.4/doc/README Thu Jul 1 19:43:45 1999
++++ fdutils/doc/README Mon Jun 11 22:26:36 2001
+@@ -171,7 +171,7 @@
+ disks and also Commodore 1581 disks. Please get Michael Haardt's
+ documentation on floppy drives for a detailed description of those
+ formats. This can be ftp'ed from
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+
+ Commodore 1581 disks are not yet described in this documentation.
+ Use 'setfdprm /dev/fd0 1600 10 2 80 2 0x2A 0x02 0xDF 0x2E' to use
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/acronyms.texi fdutils/doc/acronyms.texi
+--- fdutils-5.4/doc/acronyms.texi Sat May 27 18:37:00 2000
++++ fdutils/doc/acronyms.texi Mon Jun 11 22:23:31 2001
+@@ -100,7 +100,7 @@
+ disks, i.e. virtually all disks that are available today. The PC
+ hardware can only read MFM and FM disks. The doc at:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+ @end example
+ contains more detailed information about FM and MFM encoding.
+
+@@ -108,7 +108,7 @@
+ FM is a low level encoding of disk data. It was used for SD disks, and
+ is now considered to be obsolete. The doc at:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/floppy.ps
+ @end example
+ contains more detailed information about FM and MFM encoding.
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskd.1 fdutils/doc/diskd.1
+--- fdutils-5.4/doc/diskd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/diskd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH diskd 1 "02jun00" fdutils-5.4
++.TH diskd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ diskd - disk daemon; wait for disk to be inserted
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/diskseekd.1 fdutils/doc/diskseekd.1
+--- fdutils-5.4/doc/diskseekd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/diskseekd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH diskseekd 1 "02jun00" fdutils-5.4
++.TH diskseekd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ diskseek, diskseekd - disk seek daemon; simulates Messy Dos' drive cleaning effect
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fd.4 fdutils/doc/fd.4
+--- fdutils-5.4/doc/fd.4 Fri Jul 2 23:44:15 1999
++++ fdutils/doc/fd.4 Mon Jun 11 22:23:59 2001
+@@ -1,7 +1,7 @@
+ '\" t
+ .\"{{{}}}
+ .\"{{{ Notes
+-.\" Copyright (c) 1993 Michael Haardt (michael@cantor.informatik.rwth-aachen.de)
++.\" Copyright (c) 1993 Michael Haardt (michael@moria.de)
+ .\" and 1994,1995, 1997 Alain Knaff (alain@linux.lu)
+ .\"
+ .\" This is free documentation; you can redistribute it and/or
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdmount.1 fdutils/doc/fdmount.1
+--- fdutils-5.4/doc/fdmount.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/fdmount.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH fdmount 1 "02jun00" fdutils-5.4
++.TH fdmount 1 "11Jun01" fdutils-5.4
+ .SH Name
+ fdmount - Floppy disk mount utility
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/fdrawcmd.1 fdutils/doc/fdrawcmd.1
+--- fdutils-5.4/doc/fdrawcmd.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/fdrawcmd.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH fdrawcmd 1 "02jun00" fdutils-5.4
++.TH fdrawcmd 1 "11Jun01" fdutils-5.4
+ .SH Name
+ fdrawcmd - send raw commands to the floppy disk controller
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppycontrol.1 fdutils/doc/floppycontrol.1
+--- fdutils-5.4/doc/floppycontrol.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/floppycontrol.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH floppycontrol 1 "02jun00" fdutils-5.4
++.TH floppycontrol 1 "11Jun01" fdutils-5.4
+ .SH Name
+ floppycontrol - floppy driver configuration utility
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/floppymeter.1 fdutils/doc/floppymeter.1
+--- fdutils-5.4/doc/floppymeter.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/floppymeter.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH floppymeter 1 "02jun00" fdutils-5.4
++.TH floppymeter 1 "11Jun01" fdutils-5.4
+ .SH Name
+ floppymeter - measure raw capacity and exact rotation speed of floppy drive
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/format2.texi fdutils/doc/format2.texi
+--- fdutils-5.4/doc/format2.texi Fri Sep 19 21:01:19 1997
++++ fdutils/doc/format2.texi Mon Jun 11 21:59:18 2001
+@@ -157,7 +157,7 @@
+ on floppy drives for a detailed description of those formats. This can
+ be ftp'ed from the following location:
+ @example
+-ftp://cantor.informatik.rwth-aachen.de/pub/linux/floppy.ps
++http://www.moria.de/~michael/floppy/
+ @end example
+
+ Commodore 1581 disks are not yet described in this documentation. Use
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/getfdprm.1 fdutils/doc/getfdprm.1
+--- fdutils-5.4/doc/getfdprm.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/getfdprm.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH getfdprm 1 "02jun00" fdutils-5.4
++.TH getfdprm 1 "11Jun01" fdutils-5.4
+ .SH Name
+ getfdprm - print the current format information
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/makefloppies.1 fdutils/doc/makefloppies.1
+--- fdutils-5.4/doc/makefloppies.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/makefloppies.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH makefloppies 1 "02jun00" fdutils-5.4
++.TH makefloppies 1 "11Jun01" fdutils-5.4
+ .SH Name
+ MAKEFLOPPIES - Creates the default floppy device nodes.
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/setfdprm.1 fdutils/doc/setfdprm.1
+--- fdutils-5.4/doc/setfdprm.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/setfdprm.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH setfdprm 1 "02jun00" fdutils-5.4
++.TH setfdprm 1 "11Jun01" fdutils-5.4
+ .SH Name
+ setfdprm - sets user-provided floppy disk parameters
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.1 fdutils/doc/superformat.1
+--- fdutils-5.4/doc/superformat.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/superformat.1 Mon Jun 11 22:22:46 2001
+@@ -1,4 +1,4 @@
+-.TH superformat 1 "02jun00" fdutils-5.4
++.TH superformat 1 "11Jun01" fdutils-5.4
+ .SH Name
+ superformat - format floppies
+ '\" t
+@@ -258,14 +258,19 @@
+ spins, and on how much time is needed to change the head or the track.
+ .TP
+ \&\fR\&\f(CW--absolute_skew\ \fIabsolute-skew\fR\&\f(CW\fR\
+-Set the absolute skew. (The skew value used for the first formatted
+-track)
++.IP
++Set the absolute skew. This skew value is used for the first formatted
++track. It is expressed in raw bytes.
+ .TP
+ \&\fR\&\f(CW--head_skew\ \fIhead-skew\fR\&\f(CW\fR\
+-Set the head skew. (The skew added for passing from head 0 to head 1)
++.IP
++Set the head skew. This is the skew added for passing from head 0 to
++head 1. It is expressed in raw bytes.
+ .TP
+ \&\fR\&\f(CW--track_skew\ \fItrack-skew\fR\&\f(CW\fR\
+-Set the track skew. (The skew added for seeking to the next track)
++.IP
++Set the track skew. This is the skew added for seeking to the next
++track. It is expressed in raw bytes.
+ .PP
+ Example: (absolute skew=3, head skew=1, track skew=2)
+ .PP
+@@ -287,6 +292,10 @@
+ .lp
+
+ \&\fR
++.PP
++N.B. For simplicitie's sake, this example expresses skews in units of
++sectors. In reality, superformat expects the skews to be expressed in
++raw bytes.
+ .PP
+ .SH Examples
+ In all the examples of this section, we assume that drive 0 is a 3 1/2
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/superformat.texi fdutils/doc/superformat.texi
+--- fdutils-5.4/doc/superformat.texi Sat May 27 18:36:51 2000
++++ fdutils/doc/superformat.texi Mon May 21 00:24:21 2001
+@@ -187,14 +187,20 @@
+
+ @table @code
+ @item --absolute_skew @var{absolute-skew}
+-Set the absolute skew. (The skew value used for the first formatted
+-track)
++
++Set the absolute skew. This skew value is used for the first formatted
++track. It is expressed in raw bytes.
+
+ @item --head_skew @var{head-skew}
+-Set the head skew. (The skew added for passing from head 0 to head 1)
++
++Set the head skew. This is the skew added for passing from head 0 to
++head 1. It is expressed in raw bytes.
+
+ @item --track_skew @var{track-skew}
+-Set the track skew. (The skew added for seeking to the next track)
++
++Set the track skew. This is the skew added for seeking to the next
++track. It is expressed in raw bytes.
++
+ @end table
+
+ Example: (absolute skew=3, head skew=1, track skew=2)
+@@ -209,6 +215,10 @@
+ track 2 head 0: 4,5,6,1,2,3 (skew=3)
+ track 2 head 1: 3,4,5,6,1,2 (skew=4)
+ @end example
++
++N.B. For simplicitie's sake, this example expresses skews in units of
++sectors. In reality, superformat expects the skews to be expressed in
++raw bytes.
+
+ @node Examples, Troubleshooting, Sector skewing options, superformat
+ @subsection Examples
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/doc/xdfcopy.1 fdutils/doc/xdfcopy.1
+--- fdutils-5.4/doc/xdfcopy.1 Fri Jun 2 22:28:27 2000
++++ fdutils/doc/xdfcopy.1 Mon Jun 11 22:22:47 2001
+@@ -1,4 +1,4 @@
+-.TH xdfcopy 1 "02jun00" fdutils-5.4
++.TH xdfcopy 1 "11Jun01" fdutils-5.4
+ .SH Name
+ xdfcopy - Program to copy and format Xdf disks in Linux
+ '\" t
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/MAKEFLOPPIES fdutils/src/MAKEFLOPPIES
+--- fdutils-5.4/src/MAKEFLOPPIES Wed Aug 21 16:51:25 1996
++++ fdutils/src/MAKEFLOPPIES Sun Feb 3 20:13:39 2002
+@@ -12,6 +12,9 @@
+ set -u
+ MAJOR=2
+ TMPDEVICE=/dev/tmpfloppy$$
++if [ ! -b /dev/fd0 ] ; then
++ mknod /dev/fd0 b $MAJOR 0
++fi
+ if floppycontrol 2>/dev/null; then
+ FLOPPYCONTROL=yes
+ else
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/diskseekd.c fdutils/src/diskseekd.c
+--- fdutils-5.4/src/diskseekd.c Sat May 27 18:50:05 2000
++++ fdutils/src/diskseekd.c Mon May 21 00:24:21 2001
+@@ -1,4 +1,7 @@
+ #include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <sys/time.h>
+ #include <unistd.h>
+ #include <stdio.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/driveprm.c fdutils/src/driveprm.c
+--- fdutils-5.4/src/driveprm.c Sat May 27 18:49:58 2000
++++ fdutils/src/driveprm.c Mon May 21 00:24:21 2001
+@@ -1,3 +1,7 @@
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stdio.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/fdmount.c fdutils/src/fdmount.c
+--- fdutils-5.4/src/fdmount.c Sat May 27 18:50:14 2000
++++ fdutils/src/fdmount.c Sun Feb 3 23:50:06 2002
+@@ -826,14 +826,9 @@
+
+ mnt=get_mounted(devname);
+ if (!mnt) {
+- if (!force) {
+- errmsg("not mounted");
+- save_unlock_mtab();
+- return -1;
+- }
+- else {
+- msg("not in /etc/mtab, trying to unmount anyway!");
+- }
++ errmsg("not mounted");
++ save_unlock_mtab();
++ return -1;
+ }
+ else {
+ mountpoint=mnt->ms.mnt_dir;
+@@ -860,7 +855,7 @@
+ }
+ #endif
+
+- e=umount(devname);
++ e=umount(mountpoint);
+ if (e) {
+ errmsg("failed to unmount: %s\n",strerror(errno));
+ goto err;
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppycontrol.c fdutils/src/floppycontrol.c
+--- fdutils-5.4/src/floppycontrol.c Sun Apr 2 10:18:15 2000
++++ fdutils/src/floppycontrol.c Sat Oct 27 13:47:28 2001
+@@ -16,6 +16,11 @@
+ #include <getopt.h>
+ #include "enh_options.h"
+
++#ifndef FD_DISK_CHANGED
++#define FD_DISK_CHANGED 0
++#endif
++
++
+ int eioctl(int fd, int command,void * param, char *emsg)
+ {
+ int r;
+@@ -381,14 +386,17 @@
+ eioctl( fd, FDPOLLDRVSTAT, &drivstat,"get drive state");
+ else
+ eioctl( fd, FDGETDRVSTAT , &drivstat,"get drive state");
+- printf("%s %s %s %s %s\n",
++
++#ifndef FD_DCL_SEEN
++# define FD_DCL_SEEN 0x40
++#endif
++ printf("%s %s %s %s %s %s\n",
+ drivstat.flags & FD_VERIFY ? "verify" : "",
+ drivstat.flags & FD_DISK_NEWCHANGE ? "newchange" : "",
+ drivstat.flags & FD_NEED_TWADDLE ? "need_twaddle" : "",
+-#ifdef FD_DISK_CHANGED
+ drivstat.flags & FD_DISK_CHANGED ? "disk_changed" : "",
+-#endif
+- drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "");
++ drivstat.flags & FD_DISK_WRITABLE ?"disk_writable" : "",
++ drivstat.flags & FD_DCL_SEEN ?"dcl_seen" : "");
+ printf("spinup= %ld\n", drivstat.spinup_date);
+ printf("select= %ld\n", drivstat.select_date);
+ printf("first_read= %ld\n", drivstat.first_read_date);
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/floppymeter.c fdutils/src/floppymeter.c
+--- fdutils-5.4/src/floppymeter.c Sat May 27 18:49:58 2000
++++ fdutils/src/floppymeter.c Mon May 21 00:24:21 2001
+@@ -1,3 +1,7 @@
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/measure.c fdutils/src/measure.c
+--- fdutils-5.4/src/measure.c Sat May 27 18:49:57 2000
++++ fdutils/src/measure.c Sun Feb 3 22:15:54 2002
+@@ -138,6 +138,23 @@
+ perror("format");
+ exit(1);
+ }
++
++ if((raw_cmd.reply[1] & ~0x20) |
++ (raw_cmd.reply[2] & ~0x20)) {
++ int i;
++
++ if ( raw_cmd.reply[1] & ST1_WP ){
++ fprintf(stderr,"The disk is write protected\n");
++ exit(1);
++ }
++
++ fprintf(stderr,
++ "\nFatal error while measuring raw capacity\n");
++ for(i=0; i < raw_cmd.reply_count; i++) {
++ fprintf(stderr, "%d: %02x\n", i, raw_cmd.reply[i]);
++ }
++ exit(1);
++ }
+ }
+
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/mediaprm.c fdutils/src/mediaprm.c
+--- fdutils-5.4/src/mediaprm.c Wed Mar 22 22:16:53 2000
++++ fdutils/src/mediaprm.c Mon May 21 00:24:21 2001
+@@ -20,6 +20,7 @@
+ FE_TPI,
+ FE_STRETCH,
+ FE_SWAPSIDES,
++ FE_ZEROBASED,
+
+ FE_GAP,
+
+@@ -35,7 +36,8 @@
+ FE_DENSITY,
+ } field_t;
+
+-static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, GAP, FM;
++static int SIZE, SECT, VSECT, HEAD, CYL, TPI, STRETCH, SWAPSIDES, ZEROBASED;
++static int GAP, FM;
+ static int PERP, SSIZE, _2M, DTR, SPEC1, FMT_GAP, DENSITY;
+ static int ssize;
+
+@@ -48,6 +50,7 @@
+ #define F_TPI FE_TPI,&TPI
+ #define F_STRETCH FE_STRETCH,&STRETCH
+ #define F_SWAPSIDES FE_SWAPSIDES,&SWAPSIDES
++#define F_ZEROBASED FE_ZEROBASED,&ZEROBASED
+
+ #define F_GAP FE_GAP,&GAP
+
+@@ -77,6 +80,7 @@
+ { "stretch", F_STRETCH, 0 },
+
+ { "swapsides", F_SWAPSIDES, 1},
++ { "zerobased", F_ZEROBASED, 1},
+
+ { "gap", F_GAP, 0},
+
+@@ -234,7 +238,7 @@
+ medprm->sect = VSECT / 512;
+ medprm->head = HEAD;
+ medprm->track = CYL;
+- medprm->stretch = STRETCH | (SWAPSIDES << 1);
++ medprm->stretch = STRETCH | (SWAPSIDES << 1) | (ZEROBASED << 2);
+ medprm->gap = GAP;
+ medprm->rate = (FM<<7) | (PERP<<6) | (ssize<<3) | (_2M<<2) | DTR;
+ medprm->spec1 = SPEC1;
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/printfdprm.c fdutils/src/printfdprm.c
+--- fdutils-5.4/src/printfdprm.c Mon Jun 9 22:58:15 1997
++++ fdutils/src/printfdprm.c Mon May 21 00:24:21 2001
+@@ -141,6 +141,12 @@
+ print("swapsides",0);
+ #endif
+
++#ifdef FD_ZEROBASED
++ if(ft->stretch & FD_ZEROBASED)
++ print("zerobased",0);
++#endif
++
++
+ if(ft->rate & FD_2M)
+ print("2M",0);
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.c fdutils/src/superformat.c
+--- fdutils-5.4/src/superformat.c Sat May 27 18:49:57 2000
++++ fdutils/src/superformat.c Fri Feb 22 11:55:23 2002
+@@ -26,7 +26,10 @@
+ cylinders as happen to work (as in 2m). Currently, if too many cylinders
+ are attempted it won't fail until the very end
+ */
+-
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -68,6 +71,7 @@
+ char floppy_buffer[24 * 512];
+ int verbosity = 3;
+ static char noverify = 0;
++static char noformat = 0;
+ static char dosverify = 0;
+ static char verify_later = 0;
+ short stretch;
+@@ -323,7 +327,8 @@
+ raw_cmd.length = nssect * sizeof(format_map_t);
+ raw_cmd.cmd_count = 6;
+ raw_cmd.cmd[0] = FD_FORMAT & ~fm_mode;
+- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3);
++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^
++ (fd->swapSides ? 4 : 0);
+ raw_cmd.cmd[2] = fd->sizecode;
+ raw_cmd.cmd[3] = nssect;
+ raw_cmd.cmd[4] = fd->fmt_gap;
+@@ -355,7 +360,8 @@
+ raw_cmd.data = floppy_buffer;
+ raw_cmd.cmd_count = 9;
+ raw_cmd.cmd[0] = FD_WRITE & ~fm_mode & ~0x80;
+- raw_cmd.cmd[1] = head << 2 | ( fd->drive & 3);
++ raw_cmd.cmd[1] = (head << 2 | ( fd->drive & 3)) ^
++ (fd->swapSides ? 4 : 0);
+ raw_cmd.cmd[2] = cylinder;
+ raw_cmd.cmd[3] = head;
+ raw_cmd.cmd[4] = cur_sector;
+@@ -490,6 +496,7 @@
+
+ short retries;
+ short zeroBased=0;
++ short swapSides=0;
+ int n,rsize;
+ char *verify_buffer = NULL;
+ char dosdrive;
+@@ -510,6 +517,11 @@
+ (void *) &noverify,
+ "skip verification" },
+
++ { '\0', "print-drive-deviation", 0, EO_TYPE_BYTE, 1, 0,
++ (void *) &noformat,
++ "print deviation, do not format " },
++
++
+ { 'B', "dosverify", 0, EO_TYPE_BYTE, 1, 0,
+ (void *) &dosverify,
+ "verify disk using mbadblocks" },
+@@ -662,11 +674,6 @@
+ exit(1);
+ }
+
+- fd[0].zeroBased = zeroBased;
+- if(zeroBased)
+- noverify = 1;
+-
+-
+ /* sanity checking */
+ if (sizecode < 0 || sizecode >= MAX_SIZECODE) {
+ fprintf(stderr,"Bad sizecode %d\n", sizecode);
+@@ -779,7 +786,16 @@
+ break;
+ }
+ stretch = geometry.stretch & 1;
+-
++#ifdef FD_ZEROBASED
++ if(geometry.stretch & FD_ZEROBASED) {
++ zeroBased = 1;
++ }
++#endif
++#ifdef FD_SWAPSIDES
++ if(geometry.stretch & FD_SWAPSIDES) {
++ swapSides = 1;
++ }
++#endif
+ mask |= SET_SECTORS | SET_CYLINDERS |
+ SET_SIZECODE | SET_2M | SET_RATE;
+ } else {
+@@ -831,6 +847,15 @@
+ stretch = 0;
+ }
+ }
++
++ fd[0].zeroBased = zeroBased;
++#ifndef FD_ZEROBASED
++ if(zeroBased) {
++ noverify = 1;
++ }
++#endif
++
++ fd[0].swapSides = swapSides;
+
+ if (cylinders > fd[0].drvprm.tracks) {
+ fprintf(stderr,"too many cylinder for this drive\n");
+@@ -900,8 +925,9 @@
+ fprintf(stderr,
+ "In order to avoid this time consuming "
+ "measurement in the future,\n"
+- "add the following line to " DRIVEPRMFILE
+- ":\ndrive%d: deviation=%d\n",
++ "add the following line to " DRIVEPRMFILE ":\n");
++ fprintf(stdout,
++ "drive%d: deviation=%d\n",
+ fd[0].drive,
+ (fd[0].raw_capacity-old_capacity)*1000000/
+ old_capacity);
+@@ -914,6 +940,9 @@
+ }
+ }
+
++ if(noformat)
++ return 0;
++
+ /* FIXME. Why is this needed? */
+ fd[0].raw_capacity -= 30;
+
+@@ -971,7 +1000,11 @@
+ parameters.head = heads;
+ parameters.track = cylinders;
+ parameters.size = cylinders * heads * sectors;
+- parameters.stretch = stretch;
++ parameters.stretch = stretch
++#ifdef FD_ZEROBASED
++ | (zeroBased ? 4 : 0)
++#endif
++ | (swapSides ? 2 : 0);
+ parameters.gap = fd[0].gap;
+ if ( !use_2m)
+ fd0.rate = fd[0].rate;
+@@ -1054,7 +1087,7 @@
+ ioctl(fd[0].fd, FDFLUSH );
+ close(fd[0].fd);
+
+- if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2)
++ if (! (mask & SET_DOSDRIVE ) && fd[0].drive < 2 && !zeroBased)
+ dosdrive = fd[0].drive+'a';
+
+ if (dosdrive) {
+@@ -1085,8 +1118,9 @@
+ dosverify = 0;
+ }
+ } else {
+- fprintf(stderr,
+- "\nwarning: mformat not called because DOS drive unknown\n");
++ if(!zeroBased)
++ fprintf(stderr,
++ "\nwarning: mformat not called because DOS drive unknown\n");
+ /*exit(1);*/
+ dosverify = 0;
+ }
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/superformat.h fdutils/src/superformat.h
+--- fdutils-5.4/src/superformat.h Sun Apr 2 10:09:28 2000
++++ fdutils/src/superformat.h Mon May 21 00:24:21 2001
+@@ -84,6 +84,7 @@
+ int rotations; /* how many time do we have to go over 0 to read
+ * the track */
+ int zeroBased; /* 1 if sector numbering starts at zero */
++ int swapSides; /* if logical side 0 is on physical 1 and vice-versa */
+ };
+
+
+diff -ur --new-file --exclude-from=/home/aknaff/floppy/exclude fdutils-5.4/src/xdfcopy.c fdutils/src/xdfcopy.c
+--- fdutils-5.4/src/xdfcopy.c Sat May 27 18:49:57 2000
++++ fdutils/src/xdfcopy.c Mon May 21 00:24:21 2001
+@@ -2,6 +2,10 @@
+ * Software patents declared unconstitutional, worldwide
+ */
+
++#include <sys/types.h>
++#ifdef HAVE_SYS_SYSMACROS_H
++# include <sys/sysmacros.h>
++#endif
+ #include <unistd.h>
+ #include <stdio.h>
+ #include <string.h>
diff --git a/source/a/floppy/fdutils.mediaprm.diff b/source/a/floppy/fdutils.mediaprm.diff
new file mode 100644
index 000000000..cf9a0a6d7
--- /dev/null
+++ b/source/a/floppy/fdutils.mediaprm.diff
@@ -0,0 +1,8 @@
+--- ./src/mediaprm.orig Sat Feb 3 21:01:37 2001
++++ ./src/mediaprm Sat Feb 3 21:01:48 2001
+@@ -1,4 +1,4 @@
+-# /etc/fdprm - floppy disk parameter table
++# /etc/mediaprm - floppy disk parameter table
+
+ ########################################################################
+ # Standard linux disk formats. Names are of the form
diff --git a/source/a/floppy/floppy.SlackBuild b/source/a/floppy/floppy.SlackBuild
new file mode 100755
index 000000000..38a5cc86f
--- /dev/null
+++ b/source/a/floppy/floppy.SlackBuild
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=5.4
+MTOOLS=3.9.8
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+if [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O"
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-floppy
+
+rm -rf $PKG $TMP/fdutils-$VERSION $TMP/mtools-$MTOOLS
+mkdir -p $TMP $PKG/{etc,usr/{bin,info,man/man{1,4,5}}}
+
+cd $TMP
+tar xzvf $CWD/fdutils-$VERSION.tar.gz
+cd fdutils-$VERSION
+zcat $CWD/fdutils-5.4-20020222.diff.gz | patch -p1 --verbose --backup --suffix=.orig
+zcat $CWD/fdutils.mediaprm.diff.gz | patch -p1 --verbose --backup --suffix=.orig
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+make install prefix=$PKG/usr
+mkdir -p $PKG/usr/doc/fdutils-$VERSION
+cp -a COPYING CREDITS Changelog INSTALL doc/FAQ.html doc/README \
+ $PKG/usr/doc/fdutils-$VERSION
+chown root:root $PKG/usr/doc/fdutils-$VERSION/*
+chmod 644 $PKG/usr/doc/fdutils-$VERSION/*
+cd $TMP
+tar xzvf $CWD/mtools-$MTOOLS.tar.gz
+cd mtools-$MTOOLS
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+#make all floppyd floppyd_installtest
+make all
+make install prefix=$PKG/usr sysconfdir=$PKG/etc bindir=$PKG/usr/bin \
+ MAN1DIR=$PKG/usr/man/man1 MAN5DIR=$PKG/usr/man/man5
+cat $CWD/mtools.conf > $PKG/etc/mtools.conf
+cat $CWD/mediaprm > $PKG/etc/mediaprm
+mkdir -p $PKG/usr/doc/mtools-$MTOOLS
+cp -a COPYING Changelog INSTALL README Release.notes TODO \
+ $PKG/usr/doc/mtools-$MTOOLS
+chown root:root $PKG/usr/doc/mtools-$MTOOLS/*
+chmod 644 $PKG/usr/doc/mtools-$MTOOLS/*
+( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+)
+( cd $PKG/usr/info ; rm -f dir ; gzip -9 * )
+
+# These are obsolete and/or cruft:
+rm -f $PKG/usr/bin/MAKEFLOPPIES $PKG/usr/bin/lz $PKG/usr/bin/mcheck \
+ $PKG/usr/bin/mcomp $PKG/usr/bin/mxtar $PKG/usr/bin/tgz \
+ $PKG/usr/bin/uz $PKG/usr/man/man1/makefloppies.1
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cd $PKG
+makepkg -l y -c n $TMP/floppy-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/floppy/mediaprm b/source/a/floppy/mediaprm
new file mode 100644
index 000000000..03c82e3b7
--- /dev/null
+++ b/source/a/floppy/mediaprm
@@ -0,0 +1,786 @@
+# /etc/mediaprm - floppy disk parameter table
+
+########################################################################
+# Standard linux disk formats. Names are of the form
+# actual media capacity/maximum drive capacity
+# (Note: although 5.25" HD drives can format disks at 1.44M, they're listed
+# as 1200 because that's the common maximum size.)
+
+# size sec/t hds trk stre gap rate spec1 fmt_gap
+
+"360/360":
+ DS DD sect=9
+
+"1200/1200":
+ DS HD sect=15
+
+"360/720":
+ SS DD sect=9
+
+"720/720":
+ DS DD sect=9
+
+"360/1200":
+ DS DD sect=9
+
+"720/1200":
+ DS QD sect=9
+
+"1440/1440":
+ DS HD sect=18
+
+"2880/2880":
+ DS ED sect=36
+
+"2880/2880":
+ DS ED sect=36
+
+"2880/2880":
+ DS ED sect=36
+
+"1440/1200":
+ DS HD sect=18
+
+"1680/1440":
+ DS HD sect=21
+
+"410/1200":
+ DS DD sect=10 cyl=41
+
+"820/1440":
+ DS DD sect=10 cyl=82
+
+"1476/1200":
+ DS HD sect=18 cyl=82
+
+"1722/1440":
+ DS HD sect=21 cyl=82
+
+"420/1200":
+ DS DD sect=10 cyl=42
+
+"830/1440":
+ DS DD sect=10 cyl=83
+
+"1494/1200":
+ DS HD sect=18 cyl=83
+
+"1743/1440":
+ DS HD sect=21 cyl=83
+
+"1743/1440":
+ DS HD sect=21 cyl=83
+
+"880/1200":
+ DS QD tracksize=11b ssize=1KB
+
+"1040/720":
+ DS QD sect=13
+
+"1120/720":
+ DS QD tracksize=7KB mss
+
+"1600/1200":
+ DS HD tracksize=10KB mss
+
+"1760/1440":
+ DS HD sect=11 ssize=1KB
+
+"1920/1440":
+ DS HD tracksize=12KB mss
+
+"3200/2880":
+ DS ED sect=5 ssize=4KB
+
+"3520/2880":
+ DS ED tracksize=22KB ssize=4KB
+
+"3840/2880":
+ DS ED sect=3 ssize=8KB
+
+"3840/2880":
+ DS ED sect=3 ssize=8KB
+
+"1840/1440":
+ DS HD tracksize=23b ssize=2KB
+
+"800/720":
+ DS DD sect=10
+
+"1600/1440":
+ DS HD sect=20
+
+########################################################################
+# CP/M formats
+#
+# the name is constructed as CODsize, where COD identifies the
+# brand of the computer having formatted the disk
+
+# Generic CP/M - SSSD 8"
+
+"GEN250":
+ SS DD sect=24 dtr=0 fm=1 cyl=77 ssize=128
+
+# ABC-80 - SSDD 48 tpi 5.25"
+
+"ABC160":
+ SS DD sect=16 ssize=256
+
+# Actrix (Access Matrix) - SSDD 48 tpi 5.25"
+
+"ACT180":
+ SS DD sect=9
+
+# Adler Textriter - SSDD 48 tpi 5.25"
+
+"ADL160":
+ SS DD sect=16 ssize=256
+
+# Advanced Digital Super 6 - SSDD 48 tpi 5.25"
+
+"ADV160":
+ SS DD sect=4 ssize=1KB
+
+# Advanced Digital Super 6 - DSDD 96 tpi 5.25"
+
+"ADV640":
+ DS QD sect=4 ssize=1KB
+
+# Altos Series 5 - DSDD 96 tpi 5.25"
+
+"ALT720":
+ DS QD sect=9
+
+# Amigo - SSDD 48 tpi 5.25"
+
+"AMI200":
+ SS DD sect=10
+
+# Ampro - SSDD 48 tpi 5.25"
+
+"AMP200":
+ SS DD sect=10
+
+# Ampro - SSDD 96 tpi 5.25"
+
+"AMP400":
+ SS QD sect=5 ssize=1KB
+
+# Amstrad PCW8256 - DSDD 96 tpi 5.25"
+
+"AMS720":
+ DS QD sect=9
+
+# Archive I - SSDD 96 tpi 5.25"
+
+"ARC400":
+ SS QD sect=5 ssize=1KB
+
+# Archive II & III - DSDD 96 tpi 5.25"
+
+"ARC800":
+ DS QD sect=5 ssize=1KB
+
+# Arisia - SSDD 48 tpi 5.25"
+
+"ARI180":
+ SS DD sect=18 ssize=256
+
+# ATR-8000 - SSDD 48 tpi 5.25"
+
+"ATR200":
+ SS DD sect=5 ssize=1KB
+
+# Beehive - DSDD 48 tpi 5.25"
+
+"BEE400":
+ DS DD sect=10
+
+# Bitelex - SSDD 48 tpi 5.25"
+
+"BIT160":
+ SS DD sect=16 ssize=256
+
+# BMC IF800 Model 20 - DSDD 48 tpi 5.25"
+
+"BMC400":
+ DS DD sect=10
+
+# Burr-Brown - DSDD 48 tpi 5.25"
+
+"BUR360":
+ DS DD sect=18 ssize=256
+
+# Cal-PC - DSDD 48 tpi 5.25"
+
+"CAL400":
+ DS DD sect=5 ssize=1KB
+
+# Cashcom 100 - DSDD 96 tpi 5.25"
+
+"CAS640":
+ DS QD sect=4 ssize=1KB
+
+# CDI-5000 - DSDD 48 tpi 5.25"
+
+"CDI400":
+ DS DD sect=5 ssize=1KB
+
+# CMC Supersystem 2 - DSDD 96 tpi 5.25"
+
+"CMC800":
+ DS QD sect=5 ssize=1KB
+
+# Coleco ADAM, 40 track - SSDD 48 tpi 5.25"
+
+"COL160":
+ SS DD sect=8
+
+# Compugraphic MCS-5 - SSDD 48 tpi 5.25"
+
+"COM160":
+ SS DD sect=16 ssize=256
+
+# Compupro (Viasyn) (1024 bytes/sector) - DSDD 96 tpi 5.25"
+
+"COM800":
+ DS QD sect=5 ssize=1KB
+
+# Cromemco CDOS - SSSD 48 tpi 5.25"
+
+"CRO80":
+ SS SD sect=16 dtr=1 fm=1 ssize=128
+
+# Cromemco CDOS - SSDD 48 tpi 5.25"
+
+"CRO200":
+ SS DD sect=10
+
+# Cromemco CP/M - SSDD 48 tpi 5.25"
+
+"CRO200":
+ SS DD sect=10
+
+# C/WP Cortex - SSDD 48 tpi 5.25"
+
+"CWP200":
+ SS DD sect=10
+
+# Cykey - DSDD 48 tpi 5.25"
+
+"CYK320":
+ DS DD sect=16 ssize=256
+
+# DEC DECMate II - SSDD 96 tpi 5.25"
+
+"DEC400":
+ SS QD sect=10
+
+# DEC Rainbow - SSDD 96 tpi 5.25"
+
+"DEC180":
+ SS DD sect=9
+
+# DEC VT-180 - SSDD 48 tpi 5.25"
+
+"DEC180":
+ SS DD sect=9
+
+# Direct 1025 - DSDD 48 tpi 5.25"
+
+"DIR320":
+ DS DD sect=16 ssize=256
+
+# Discovery - DSDD 96 tpi 5.25"
+
+"DIS640":
+ DS QD sect=8
+
+# Eagle II - SSDD 96 tpi 5.25"
+
+"EAG400":
+ SS QD sect=5 ssize=1KB
+
+# Epson QX-10 - DSDD 48 tpi 5.25"
+
+"EPS400":
+ DS DD sect=10
+
+# Epson QX-10 (256 bytes/sector) - DSDD 48 tpi 5.25"
+
+"EPS320":
+ DS DD sect=16 ssize=256
+
+# Epson PX-8 - DSDD 3.5"
+
+"EPS320":
+ DS DD sect=8
+
+# Ericsson DTC - SSDD 96 tpi 5.25"
+
+"ERI320":
+ SS QD sect=16 ssize=256
+
+# Ericsson Step One - DSDD 96 tpi 5.25"
+
+"ERI720":
+ DS QD sect=9
+
+# Florida Graphics - DSDD 96 tpi 5.25"
+
+"FLO640":
+ DS QD sect=16 ssize=256
+
+# Formula 1 - DSDD 48 tpi 5.25"
+
+"FOR360":
+ DS DD sect=18 ssize=256
+
+# Fujitsu Micro 16 - DSDD 48 tpi 5.25"
+
+"FUJ320":
+ DS DD sect=16 ssize=256
+
+# Fujitsu Micro 8 - DSDD 48 tpi 5.25"
+
+"FUJ320":
+ DS DD sect=16 ssize=256
+
+# HCL System 2 - DSDD 96 tpi 5.25"
+
+"HCL800":
+ DS QD sect=5 ssize=1KB
+
+# Heath H89, Magnolia CP/M - SSDD 48 tpi 5.25"
+
+"HEA180":
+ SS DD sect=9
+
+# Heurikon MLZ-91A - DSDD 96 tpi 5.25"
+
+"HEU640":
+ DS QD sect=16 ssize=256
+
+# IBM PC, CP/M-86 - SSDD 48 tpi 5.25"
+
+"IBM160":
+ SS DD sect=8
+
+# IMS 5000 - SSDD 48 tpi 5.25"
+
+"IMS160":
+ SS DD sect=16 ssize=256
+
+# IMS 5000 TurboDOS - DSDD 96 tpi 5.25"
+
+"IMS800":
+ DS QD sect=5 ssize=1KB
+
+# Intel iPDS 100 - DSDD 96 tpi 5.25"
+
+"INT640":
+ DS QD sect=16 ssize=256
+
+# Insight Enterprises - DSDD 48 tpi 5.25"
+
+"INS320":
+ DS DD sect=16 ssize=256
+
+# Ithaca Intersystems - SSDD 96 tpi 5.25"
+
+"ITH360":
+ SS QD sect=18 ssize=256
+
+# Jet-80 - DSDD 48 tpi 5.25"
+
+"JET400":
+ DS DD sect=5 ssize=1KB
+
+# Lexoriter - SSDD 48 tpi 5.25"
+
+"LEX160":
+ SS DD sect=16 ssize=256
+
+# LNW 2 - SSDD 48 tpi 5.25"
+
+"LNW180":
+ SS DD sect=18 ssize=256
+
+# Macsym 150 - SSDD 96 tpi 5.25"
+
+"MAC320":
+ SS QD sect=8
+
+# Magic - DSDD 48 tpi 5.25"
+
+"MAG400":
+ DS DD sect=10
+
+# MAI Basic Four - DSDD 96 tpi 5.25"
+
+"MAI640":
+ DS QD sect=16 ssize=256
+
+# Micron Quark - DSDD 48 tpi 5.25"
+
+"MIC320":
+ DS DD sect=4 ssize=1KB
+
+# Monroe 8800 Series - SSDD 96 tpi 5.25"
+
+"MON320":
+ SS QD sect=16 ssize=256
+
+# Morrow MD2 - SSDD 48 tpi 5.25"
+
+"MOR200":
+ SS DD sect=5 ssize=1KB
+
+# Morrow MD3, 5, 11, 16, 34 - DSDD 48 tpi 5.25"
+
+"MOR400":
+ DS DD sect=5 ssize=1KB
+
+# Morrow TurboDOS - DSDD 48 tpi 5.25"
+
+"MOR320":
+ DS DD sect=4 ssize=1KB
+
+# NCR FirstStep - DSDD 96 tpi 5.25"
+
+"NCR640":
+ DS QD sect=16 ssize=256
+
+# NEC PC-8001A - SSDD 48 tpi 5.25"
+
+"NEC160":
+ SS DD sect=16 ssize=256
+
+# NEC PC 8801A/8831A - DSDD 48 tpi 5.25"
+
+"NEC320":
+ DS DD sect=8
+
+# NEC PC 8500/8431A, Starlet - DSDD 3.5"
+
+"NEC320":
+ SS QD sect=16 ssize=256
+
+# Nixdorf 8810/30 - DSDD 96 tpi 5.25"
+
+"NIX800":
+ DS QD sect=10
+
+# OKI IF800 Model 20 - DSDD 48 tpi 5.25"
+
+"OKI400":
+ DS DD sect=10
+
+# Olivetti ETV300 - SSDD 48 tpi 5.25"
+
+"OLI180":
+ SS DD sect=18 ssize=256
+
+# Olivetti M20 - DSDD 48 tpi 5.25"
+
+"OLI320":
+ DS DD sect=16 ssize=256
+
+# Olivetti 250 - SSDD 3.5"
+
+"OLI320":
+ SS QD sect=16 ssize=256
+
+# Olympia EX-100 - DSDD 48 tpi 5.25"
+
+"OLY360":
+ DS DD sect=9
+
+# Olympia ETX II - SSDD 48 tpi 5.25"
+
+"OLY180":
+ SS DD sect=9
+
+# Osborne 1 - SSSD 48 tpi 5.25"
+
+"OSB100":
+ SS SD sect=10 dtr=1 fm=1 ssize=256
+
+# Osborne 1 - SSDD 48 tpi 5.25"
+
+"OSB200":
+ SS DD sect=5 ssize=1KB
+
+# Osborne Executive - SSDD 48 tpi 5.25"
+
+"OSB200":
+ SS DD sect=5 ssize=1KB
+
+# Osborne 1 + Osmosis - DSDD 96 tpi 5.25"
+
+"OSB400":
+ DS DD sect=10
+
+# Osborne Vixen - DSDD 48 tpi 5.25"
+
+"OSB400":
+ DS DD sect=5 ssize=1KB
+
+# Osborne Executive w/Z3 - DSDD 96 tpi 5.25"
+
+"OSB800":
+ DS QD sect=5 ssize=1KB
+
+# OSM Zeus 4 - DSDD 96 tpi 5.25"
+
+"OSM640":
+ DS QD sect=8
+
+# Panasonic KX-E828 - DSDD 48 tpi 5.25"
+
+"PAN320":
+ DS DD sect=16 ssize=256
+
+# Pegasus Data Logger - DSDD 48 tpi 5.25"
+
+"PEG360":
+ DS DD sect=9
+
+# Philips PC-2010 - SSDD 48 tpi 5.25"
+
+"PHI160":
+ SS DD sect=16 ssize=256
+
+# Philips PC-3000 - 3004 - SSDD 96 tpi 5.25"
+
+"PHI320":
+ SS QD sect=16 ssize=256
+
+# Pied Piper - DSDD 96 tpi 5.25"
+
+"PIE800":
+ DS QD sect=10
+
+# PMC Micromate - DSDD 48 tpi 5.25"
+
+"PMC400":
+ DS DD sect=5 ssize=1KB
+
+# Proglas 770KB - DSDD 96 tpi 5.25"
+
+"PRO800":
+ DS QD sect=10
+
+# Royal Alphatronic - DSDD 48 tpi 5.25"
+
+"ROY320":
+ DS DD sect=16 ssize=256
+
+# Sage IV - DSDD 96 tpi 5.25"
+
+"SAG640":
+ DS QD sect=8
+
+# Sanyo MBC-1000, MBC-1150 - DSDD 48 tpi 5.25"
+
+"SAN320":
+ DS DD sect=16 ssize=256
+
+# Sanyo MBC-1250 - DSDD 96 tpi 5.25"
+
+"SAN640":
+ DS QD sect=16 ssize=256
+
+# Seequa Chameleon - SSDD 48 tpi 5.25"
+
+"SEE160":
+ SS DD sect=8
+
+# Seiko - DSDD 96 tpi 5.25"
+
+"SEI640":
+ DS QD sect=16 ssize=256
+
+# Siemens PG-685 - DSDD 96 tpi 5.25"
+
+"SIE720":
+ DS QD sect=9
+
+# Siemens PG-675 DSDD 48 tpi 5.25"
+
+"SIE360":
+ DS DD sect=9
+
+# Siemens PG-635 DSDD 3.5"
+
+"SIE720":
+ DS QD sect=9
+
+# Sorbus TurboDOS - 5.25" DSHD (or 8" DSDD)
+
+"SOR1232":
+ DS HD sect=8 cyl=77 ssize=1KB
+
+# Sperry UTS 30, UTS 5000 - DSDD 96 tpi 5.25"
+
+"SPE720":
+ DS QD sect=9
+
+# Superbrain JR - SSDD 48 tpi 5.25"
+
+"SUP175":
+ SS DD sect=10 cyl=35
+
+# Superbrain 40 track - SSDD 48 tpi 5.25"
+
+"SUP200":
+ SS DD sect=10
+
+# Systel 2 - SSDD 48 tpi 5.25"
+
+"SYS180":
+ SS DD sect=9
+
+# Systel 3 - DSDD 48 tpi 5.25"
+
+"SYS360":
+ DS DD sect=9
+
+# Televideo 801, 806 - DSDD 48 tpi 5.25"
+
+"TEL360":
+ DS DD sect=18 ssize=256
+
+# Televideo 1603 - DSDD 96 tpi 5.25"
+
+"TEL720":
+ DS QD sect=9
+
+# TI Professional, CP/M-86 - SSDD 48 tpi 5.25"
+
+"TI1160":
+ SS DD sect=8
+
+# Toshiba T100, T200 - DSDD 48 tpi 5.25"
+
+"TOS320":
+ DS DD sect=16 ssize=256
+
+# TRS-80 Model 1, Omikron CP/M - SSSD 48 tpi 5.25"
+
+"TRS0":
+ SS SD sect=16 dtr=1 fm=1 cyl=0 ssize=128
+
+# TRS-80 Model 1, Color Power II - SSDD 48 tpi 5.25"
+
+"TRS180":
+ SS DD sect=18 ssize=256
+
+# TRS-80, MM CP/M - SSDD 48 tpi 5.25"
+
+"TRS200":
+ SS DD sect=10
+
+# TRS-80 Model 4, MT CP/M - SSDD 48 tpi 5.25"
+
+"TRS180":
+ SS DD sect=18 ssize=256
+
+# TRS-80 Model 4, MT CP/M - DSDD 48 tpi 5.25"
+
+"TRS360":
+ DS DD sect=18 ssize=256
+
+# TRS-80 Model 4 - SSDD 48 tpi 5.25"
+
+"TRS160":
+ SS DD sect=8
+
+# Visual 1050 - SSDD 96 tpi 5.25"
+
+"VIS400":
+ SS QD sect=10
+
+# Wangwriter - DSDD 48 tpi 5.25"
+
+"WAN320":
+ DS DD sect=16 ssize=256
+
+# Wave Mate Bullet - SSDD 48 tpi 5.25"
+
+"WAV200":
+ SS DD sect=5 ssize=1KB
+
+# Xerox 820 - SSSD 48 tpi 5.25"
+
+"XER80":
+ SS SD sect=16 dtr=1 fm=1 ssize=128
+
+# Xerox 820 II - SSDD 48 tpi 5.25"
+
+"XER160":
+ SS DD sect=16 ssize=256
+
+# Zenith Z-37 Disk - SSSD 48 tpi 5.25"
+
+"ZEN100":
+ SS SD sect=10 dtr=1 fm=1 ssize=256
+
+# Zenith Z-37 Disk - DSDD 96 tpi 5.25"
+
+"ZEN640":
+ DS QD sect=16 ssize=256
+
+# Zenith Z89, Heath H89 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=16 ssize=256
+
+# Zenith Z89, Heath H89 - DSDD 96 tpi 5.25"
+
+"ZEN640":
+ DS QD sect=16 ssize=256
+
+# Zenith Z90 - SSDD 48 tpi 5.25"
+
+"ZEN160":
+ SS DD sect=16 ssize=256
+
+# Zenith Z90 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=16 ssize=256
+
+# Zenith Z-100 - SSDD 48 tpi 5.25"
+
+"ZEN160":
+ SS DD sect=8
+
+# Zenith Z-100 - DSDD 48 tpi 5.25"
+
+"ZEN320":
+ DS DD sect=8
+
+
+
+########################################################################
+# Other interesting formats, please contribute ;-)
+#
+
+# Commodore 1581 (the 3 1/2 drive of the Commodore 128)
+"CBM1581":
+ DS DD sect=10 swapsides
+
+# Color computer, sides 1 and 2
+"COCO1":
+ SS DD sect=18 cyl=35 ssize=256
+
+"COCO2":
+ SS DD sect=18 cyl=35 ssize=256
+
+# TO7 (Thomson), sides 1 and 2
+"TO7-1"
+ SS DD sect=16 ssize=256
+
+"TO7-2"
+ SS DD sect=16 ssize=256 swapsides
diff --git a/source/a/floppy/mtools.conf b/source/a/floppy/mtools.conf
new file mode 100644
index 000000000..b528c01d6
--- /dev/null
+++ b/source/a/floppy/mtools.conf
@@ -0,0 +1,64 @@
+# Example mtools.conf files. Uncomment the lines which correspond to
+# your architecture and comment out the "SAMPLE FILE" line below
+#SAMPLE FILE
+
+# # Linux floppy drives
+drive a: file="/dev/fd0" exclusive
+drive b: file="/dev/fd1" exclusive
+
+# # First SCSI hard disk partition
+# drive c: file="/dev/sda1"
+
+# # First IDE hard disk partition
+# drive c: file="/dev/hda1"
+
+# # dosemu floppy image
+# drive m: file="/var/lib/dosemu/diskimage"
+
+# # dosemu hdimage
+# drive n: file="/var/lib/dosemu/diskimage" offset=3840
+
+# # Atari ramdisk image
+# drive o: file="/tmp/atari_rd" offset=136
+
+# # ZIP disk for Solaris:
+# Drive X is ZIP-100 at target 5
+# drive X: file="/dev/rdsk/c0t5d0s2" partition=4 scsi=1 nodelay
+
+# # ZIP disk for SunOS:
+# # Zip drive is at target 5, which default kernel calls tape st1 !!
+# drive Y: file="/dev/rsd5c" partition=4 scsi=1 nodelay
+
+# # autoselect zip drive/floppy on HP-UX 9/10
+# drive a: file="/dev/rdsk/c201d5" exclusive partition=4
+# drive a: file="/dev/rdsk/c201d5s0" exclusive partition=4
+# drive a: file="/dev/rfloppy/c201d0s0" exclusive
+
+# A/UX target 5 on 1st scsi bus jaz or zip
+# drive X: file="/dev/rdsk/c105d0s31" partition=4
+
+
+# Some examples for BeOS.
+# floppy drive. hardcoded in devices.c, so no real need to define it here
+#drive a: file="/dev/floppy_disk" exclusive
+# ZIP drive on SCSI ID 6
+#drive z: file="/dev/scsi_disk_060" offset=16384 fat_bits=16
+
+# SCO Unix 3.2v4
+# # Floppy disk drives
+#
+# drive a: file="/dev/install" exclusive
+# drive b: file="/dev/install1" exclusive
+#
+# # SCSI hard disk partitions
+#
+# drive c: file="/dev/dsk/0sC"
+# drive d: file="/dev/dsk/0sD"
+# drive e: file="/dev/dsk/0sE"
+# drive f: file="/dev/dsk/0sF"
+# drive g: file="/dev/dsk/0sG"
+# drive h: file="/dev/dsk/0sH"
+
+# # uncomment the following line to display all file names in lower
+# # case by default
+# mtools_lower_case=1
diff --git a/source/a/floppy/slack-desc b/source/a/floppy/slack-desc
new file mode 100644
index 000000000..bb9169420
--- /dev/null
+++ b/source/a/floppy/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+floppy: floppy (floppy disk utilities)
+floppy:
+floppy: Contains fdutils-5.4, tools to test and format floppy disks; and
+floppy: mtools-3.9.8, a collection of utilities for using DOS/Windows floppy
+floppy: disks with Linux.
+floppy:
+floppy:
+floppy:
+floppy:
+floppy:
+floppy:
diff --git a/source/a/gawk/gawk.SlackBuild b/source/a/gawk/gawk.SlackBuild
new file mode 100755
index 000000000..e65e5aaf7
--- /dev/null
+++ b/source/a/gawk/gawk.SlackBuild
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=3.1.6
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gawk
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf gawk-$VERSION
+tar xjvf $CWD/gawk-$VERSION.tar.bz2
+cd gawk-$VERSION
+
+chown -R root:root .
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ $ARCH-slackware-linux
+
+make -j3 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+( cd $PKG/usr/bin
+ ln -sf gawk-$VERSION gawk
+ ln -sf pgawk-$VERSION pgawk
+)
+mkdir -p $PKG/bin
+mv $PKG/usr/bin/gawk* $PKG/bin
+mv $PKG/usr/bin/awk $PKG/bin
+( cd $PKG/usr/bin
+ ln -sf ../../bin/awk .
+ ln -sf ../../bin/gawk .
+ ln -sf ../../bin/gawk-$VERSION .
+)
+( cd $PKG/usr/info
+ rm dir
+ gzip -9 *
+)
+( cd $PKG/usr/man/man1
+ rm -f pgawk.1
+ gzip -9 *
+ ln -sf gawk.1.gz awk.1.gz
+ ln -sf gawk.1.gz pgawk.1.gz
+)
+mkdir -p $PKG/usr/doc/gawk-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING FUTURES INSTALL LIMITATIONS NEWS POSIX.STD \
+ PROBLEMS README README_d \
+ $PKG/usr/doc/gawk-$VERSION
+find $PKG/usr/doc/gawk-$VERSION -type d -exec chmod 755 {} \;
+find $PKG/usr/doc/gawk-$VERSION -type f -exec chmod 644 {} \;
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/gawk-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/gawk/slack-desc b/source/a/gawk/slack-desc
new file mode 100644
index 000000000..739f2a9e6
--- /dev/null
+++ b/source/a/gawk/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gawk: gawk (pattern scanning and processing language)
+gawk:
+gawk: Gawk is the GNU Project's implementation of the AWK programming
+gawk: language. It conforms to the definition of the language in the POSIX
+gawk: 1003.2 Command Language And Utilities Standard. This version in turn
+gawk: is based on the description in The AWK Programming Language, by Aho,
+gawk: Kernighan, and Weinberger, with the additional features found in the
+gawk: System V Release 4 version of UNIX awk. Gawk also provides more
+gawk: recent Bell Labs awk extensions, and some GNU-specific extensions.
+gawk:
+gawk:
diff --git a/source/a/genpower/genpower.SlackBuild b/source/a/genpower/genpower.SlackBuild
new file mode 100755
index 000000000..03f15675c
--- /dev/null
+++ b/source/a/genpower/genpower.SlackBuild
@@ -0,0 +1,93 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-1.0.5}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-genpower
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf genpower-$VERSION
+tar xvf $CWD/genpower-$VERSION.tar.gz || exit 1
+cd genpower-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+find . -type d -name CVS -depth -exec rm -rf {} \;
+
+zcat $CWD/genpower.var.diff.gz | patch -p1 -E --verbose || exit 1
+zcat $CWD/genpower.halt.diff.gz | patch -p1 --verbose || exit 1
+
+make -j4 || make || exit 1
+mkdir -p $PKG/sbin
+cat genpowerd > $PKG/sbin/genpowerd
+cat gentest > $PKG/sbin/gentest
+cat genpowerfail > $PKG/sbin/genpowerfail
+mkdir -p $PKG/etc
+cat genpowerd.conf > $PKG/etc/genpowerd.conf.new
+chmod 755 $PKG/sbin/*
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/man/man8
+cat genpowerd.8 | gzip -9c > $PKG/usr/man/man8/genpowerd.8.gz
+cat gentest.8 | gzip -9c > $PKG/usr/man/man8/gentest.8.gz
+
+mkdir -p $PKG/usr/doc/genpower-$VERSION
+cp -a \
+ COPYING Change.Log README TODO genpower.docs cables \
+ $PKG/usr/doc/genpower-$VERSION
+
+mkdir -p $PKG/install
+cat << EOF > $PKG/install/doinst.sh
+#!/bin/sh
+config() {
+ NEW="\$1"
+ OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r \$OLD ]; then
+ mv \$NEW \$OLD
+ elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy
+ rm \$NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/genpowerd.conf.new
+EOF
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/genpower-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/genpower/genpower.halt.diff b/source/a/genpower/genpower.halt.diff
new file mode 100644
index 000000000..05c6a23f1
--- /dev/null
+++ b/source/a/genpower/genpower.halt.diff
@@ -0,0 +1,32 @@
+--- ./genpowerfail.orig 2008-12-02 17:49:36.000000000 -0600
++++ ./genpowerfail 2008-12-02 18:22:37.000000000 -0600
+@@ -36,23 +36,23 @@
+ stats=`head -1 $statpath`
+ case "$stats" in
+ FAIL) # Power is down
+- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
+ ;;
+ SCRAM) # Battery is low
+- shutdown -r now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console &
++ shutdown -h now "THE POWER IS DOWN! BATTERY POWER IS LOW! EMERGENCY SHUTDOWN!" < /dev/console &
+ ;;
+ CABLE) # Possible bad cable
+- shutdown -r +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
++ shutdown -h +1 "POSSIBLE BAD CABLE! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
+ ;;
+ *) # Unknown message, assume power is down
+- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
+ ;;
+
+ esac
+ else
+- # genowerfail called, and upsstatus dosen't exist.
++ # genpowerfail called, and upsstatus dosen't exist.
+ # Assume user is using powerd, and shutdown.
+- shutdown -r +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
++ shutdown -h +2 "THE POWER IS DOWN! SHUTTING DOWN SYSTEM! PLEASE LOG OFF NOW!" < /dev/console &
+
+ fi
+ ;;
diff --git a/source/a/genpower/genpower.var.diff b/source/a/genpower/genpower.var.diff
new file mode 100644
index 000000000..fa3c9e998
--- /dev/null
+++ b/source/a/genpower/genpower.var.diff
@@ -0,0 +1,34 @@
+--- ./genpowerfail.orig Wed Apr 10 18:25:07 2002
++++ ./genpowerfail Wed Apr 10 19:14:27 2002
+@@ -6,19 +6,19 @@
+ # This script is also being run when the power comes
+ # up again (if it does in time!)
+ #
+-# Version: /etc/genpowerfail 1.0.1
++# Version: /sbin/genpowerfail 1.0.1
+ #
+ # Author: Tom Webster <webster@kaiwan.com>
+ #
+
+ # Set the path.
+-PATH=/sbin:/etc:/bin:/usr/bin
++PATH=/sbin:/bin:/usr/bin:/usr/sbin
+
+ # Set location of upsstatus file
+ statpath="/etc/upsstatus"
+
+ # Set location of file containing PID of running shutdowns
+-spidpath="/etc/shutdownpid"
++spidpath="/var/run/shutdownpid"
+
+ # See what happened.
+ case "$1" in
+@@ -63,7 +63,7 @@
+ shutdown -c "THE POWER IS BACK"
+ ;;
+ *)
+- echo "Usage: /etc/genpowerfail {start|stop}"
++ echo "Usage: /sbin/genpowerfail {start|stop}"
+ exit 1
+ ;;
+ esac
diff --git a/source/a/genpower/slack-desc b/source/a/genpower/slack-desc
new file mode 100644
index 000000000..e0f4590e5
--- /dev/null
+++ b/source/a/genpower/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+genpower: genpower (UPS monitoring daemon)
+genpower:
+genpower: The genpower daemon, genpowerd, will monitor the status of a serial
+genpower: line connected to a UPS (Uninterruptible Power Supply). If a power
+genpower: failure is detected, genpowerd will notify the system to take the
+genpower: needed steps to react to the condition of the UPS. This may include
+genpower: shutting the system down, or canceling a pending shutdown if the
+genpower: power is restored.
+genpower:
+genpower:
+genpower:
diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild
new file mode 100755
index 000000000..945032c69
--- /dev/null
+++ b/source/a/gettext/gettext-tools.SlackBuild
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright 2005-2008 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=0.17
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gettext-tools
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf gettext-$VERSION
+tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1
+cd gettext-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-static \
+ --infodir=/usr/info \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/gettext-tools-$VERSION \
+ --build=$ARCH-slackware-linux
+make -j4 || exit 1
+cd gettext-tools
+make install DESTDIR=$PKG
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+gzip $PKG/usr/man/man?/*
+( cd $PKG/usr/doc
+ mv gettext gettext-tools-$VERSION
+ cd gettext-tools-$VERSION
+ # These take up a ton of space otherwise
+ tar cf examples.tar examples
+ bzip2 -9 examples.tar
+ rm -rf examples
+ # Move the HTML docs into a subdirectory:
+ mkdir html
+ mv *.html html
+ # This file isn't in the package, but it's in one you have to install,
+ # or there will be bigger problems than this dead link:
+ rm -f ABOUT-NLS
+ ln -sf /usr/share/gettext/ABOUT-NLS .
+)
+cp -a \
+ AUTHORS ../COPYING INSTALL NEWS README \
+ $PKG/usr/doc/gettext-tools-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc.gettext-tools > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/gettext-tools-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild
new file mode 100755
index 000000000..bdc269c50
--- /dev/null
+++ b/source/a/gettext/gettext.SlackBuild
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=0.17
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gettext
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf gettext-$VERSION
+tar xjvf $CWD/gettext-$VERSION.tar.bz2 || exit 1
+cd gettext-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+cd gettext-runtime
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --infodir=/usr/info \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/gettext-$VERSION \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+make -j4 || exit 1
+make install DESTDIR=$PKG
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+gzip -9 $PKG/usr/man/man?/*
+( cd $PKG/usr/doc
+ mkdir gettext-$VERSION
+ mv gettext/csharpdoc gettext/javadoc1 gettext/javadoc2 libasprintf \
+ gettext-$VERSION
+ rm -rf gettext
+ cd gettext-$VERSION
+ if [ -r $PKG/usr/share/gettext/ABOUT-NLS ]; then
+ rm -f ABOUT-NLS
+ ln -sf /usr/share/gettext/ABOUT-NLS .
+ fi
+)
+cp -a \
+ AUTHORS BUGS intl/COPYING.LIB-2.0 intl/COPYING.LIB-2.1 INSTALL NEWS README \
+ $PKG/usr/doc/gettext-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/gettext-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/gettext/slack-desc b/source/a/gettext/slack-desc
new file mode 100644
index 000000000..b8f30f254
--- /dev/null
+++ b/source/a/gettext/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gettext: gettext (internationalization framework)
+gettext:
+gettext: The GNU gettext package contains "gettext" and "ngettext", programs
+gettext: that are used to internationalize the messages given by shell scripts.
+gettext:
+gettext:
+gettext:
+gettext:
+gettext:
+gettext:
+gettext:
diff --git a/source/a/gettext/slack-desc.gettext-tools b/source/a/gettext/slack-desc.gettext-tools
new file mode 100644
index 000000000..06c32c463
--- /dev/null
+++ b/source/a/gettext/slack-desc.gettext-tools
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gettext-tools: gettext-tools (internationalization framework tools)
+gettext-tools:
+gettext-tools: The GNU gettext-tools package is useful for authors and maintainers of
+gettext-tools: internationalized software, or for anyone compiling programs that
+gettext-tools: use the gettext functions. This package provides the needed tools and
+gettext-tools: library functions for the handling of messages in different languages.
+gettext-tools: Some other GNU packages use the gettext program (included in this
+gettext-tools: package) to internationalize the messages given by shell scripts.
+gettext-tools:
+gettext-tools:
+gettext-tools:
diff --git a/source/a/getty-ps/getty-ps.SlackBuild b/source/a/getty-ps/getty-ps.SlackBuild
new file mode 100755
index 000000000..76e4012dd
--- /dev/null
+++ b/source/a/getty-ps/getty-ps.SlackBuild
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.1.0b
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-getty-ps
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+tar xzvf $CWD/getty_ps-$VERSION.tar.gz
+cd getty_ps-$VERSION
+zcat $CWD/getty.bugfixes.diff.gz | patch -p1 --verbose || exit
+# Prevent "error: conflicting types for 'send'"
+# because send is already defined in <sys/net.h>
+sed -i -e "s/send/gettysend/g" funcs.c
+chown -R root:root .
+make clean
+rm getty uugetty
+make
+strip getty uugetty
+mkdir $PKG/sbin
+cat getty > $PKG/sbin/getty
+cat uugetty > $PKG/sbin/uugetty
+chmod 755 $PKG/sbin/*
+mkdir $PKG/etc
+cat Examples/gettydefs > $PKG/etc/gettydefs
+#cat Examples/ttytype > $PKG/etc/ttytype
+mkdir $PKG/etc/default
+cp -a Examples/default/* $PKG/etc/default
+chown root:root $PKG/etc/default/*
+mkdir -p $PKG/usr/man/man1
+cat man/getty.1 | gzip -9c > $PKG/usr/man/man1/getty.1.gz
+( cd $PKG/usr/man/man1 ; ln -sf getty.1.gz uugetty.1.gz )
+mkdir -p $PKG/usr/man/man5
+cat man/gettydefs.5 | gzip -9c > $PKG/usr/man/man5/gettydefs.5.gz
+mkdir -p $PKG/usr/doc/getty-ps-$VERSION
+cp -a \
+ ANNOUNCE ChangeLog README.* Examples *.lsm INSTALL \
+ $PKG/usr/doc/getty-ps-$VERSION
+find $PKG/usr/doc/getty-ps-$VERSION -type d -exec chmod 755 {} \;
+find $PKG/usr/doc/getty-ps-$VERSION -type f -exec chmod 644 {} \;
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/getty-ps-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/getty_ps-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/getty-ps/getty.bugfixes.diff b/source/a/getty-ps/getty.bugfixes.diff
new file mode 100644
index 000000000..6a1ed29e9
--- /dev/null
+++ b/source/a/getty-ps/getty.bugfixes.diff
@@ -0,0 +1,356 @@
+This patch contains the following bugfixes:
+
+* the TIMEOUT (and -t flag) has now different effect for getty and uugetty:
+ with uugetty, TIMEOUT set will now cause uugetty exit no matter whether
+ there has been any input from the user (the counting will start immediately
+ after login() has been spawned - pre- getty-2.1.0 behavior), while for
+ getty, it will make the counter start after single input has been detected
+ from the user
+ * getty.1 manpage updated accordingly
+
+* @F issue substitution now works as expected
+
+* @V / VERSION functionality documentation fix in getty.1 manpage
+
+* fixed a bunch of memleaks (if not all):
+ * Fputs() made strdup()-free (we now use static structs where possible)
+ * avoided unnecessary dual strdup() for Version in defs()
+ * freeing of "DEF **def" including its internals is now handled, as well as
+ feeing of other variables in defs() pointing to strdup()ed memory areas
+
+Jan Rafaj
+
+--- ./man/getty.1.orig 2002-09-13 09:05:03.000000000 +0200
++++ ./man/getty.1 2005-07-21 10:24:53.000000000 +0200
+@@ -307,7 +307,18 @@
+ to exit (which
+ .I init
+ should then respawn), if the login is not completed within timeout seconds
+-(after the login name is entered)
++(after the login name is entered). This option behaves differently for
++.I getty
++and
++.I uugetty.
++If
++.I getty
++is used, the counting will start after single input from the user has been
++detected, whileas with
++.I uugetty,
++the counting will start immediately after
++.IR login (1m)
++has been spawned, no matter the input from the user.
+
+ Giving
+ .B \-w
+@@ -388,9 +399,12 @@
+ If
+ .I string
+ begins with a '/' character, it is assumed to be the full pathname of a
+-file, and
++text file, and
+ .B @V
+-is set to be the contents of that file. The default is /proc/version.
++is set to be the contents of the first line in that file (line has to be
++terminated by newline character or by end of file).
++.br
++The default is /proc/version.
+ .TP
+ LOGIN=\fIname\fR
+ Sets the name of the login program to
+@@ -503,6 +517,14 @@
+ to exit if no user name is accepted before the
+ .I number
+ of seconds elapse after the login prompt is displayed.
++With
++.I getty,
++the counting will start as soon as a single character
++has been entered by the user, whileas with
++.I uugetty,
++the counting will start immediately after the login prompt
++is displayed, no matter the input from the user.
++.br
+ The default is to wait indefinitely for the user name.
+ .TP
+ CONNECT=\fIstring\fR
+@@ -865,6 +887,11 @@
+ .IR cu (1)
+ and others). This prevents two or more processes from having conficting
+ use of a tty port.
++.br
++.I Uugetty
++also differs from
++.I getty
++by handling the -t parameter and TIMEOUT option.
+ .PP
+ When
+ .I uugetty
+--- ./main.c.orig 2004-04-11 03:34:34.000000000 +0200
++++ ./main.c 2005-07-21 11:37:19.000000000 +0200
+@@ -78,6 +78,8 @@
+ void debugstart();
+ #endif /* DEBUG */
+
++DEF **def;
++
+ /* trivial globals */
+
+ char buf[MAXLINE];
+@@ -86,7 +88,7 @@
+ char tbuf[64];
+
+ #define Perror(s) { debug(D_INIT, "Line %d: %s: Error %d: %s\n", \
+- __LINE__, s, errno, sys_errlist[errno]); \
++ __LINE__, s, errno, strerror(errno)); \
+ exit(errno); \
+ }
+
+@@ -149,6 +151,50 @@
+ }
+ }
+
++/*
++ * Why a lot of programmers ignore the fact that memory area returned
++ * by strdup() and *alloc() has to be freed upon exit? :(( -JR
++ */
++void free_def(void)
++{
++ register DEF **deflist = def;
++
++ for (; *deflist != (DEF *)NULL; deflist++) {
++ free((*deflist)->name);
++ free((*deflist)->value);
++ free(*deflist);
++ }
++}
++
++void free_sysname(void)
++{
++ if (SysName)
++ free(SysName);
++ SysName = NULL;
++}
++
++void free_version(void)
++{
++ if (Version)
++ free(Version);
++ Version = NULL;
++}
++
++#ifdef UUGETTY
++void free_lock(void)
++{
++ if (lock)
++ free(lock);
++ lock = NULL;
++}
++
++void free_altlock(void)
++{
++ if (altlock)
++ free(altlock);
++ altlock = NULL;
++}
++#endif
+
+ /*
+ ** main
+@@ -320,7 +366,6 @@
+ char **args;
+ {
+ register int c;
+- DEF **def;
+ char *p;
+ char termcap[1024];
+
+@@ -416,22 +461,27 @@
+ /* now, get all that info in the defaults file */
+
+ def = defbuild(defname);
++ atexit(free_def);
+ #ifdef DEBUG
+ if ((p = defvalue(def, "DEBUG"))) (void) sscanf(p, "%o", &Debug);
+ if (Debug) debugstart();
+ #endif /* DEBUG */
+ SysName = strdup(getuname());
++ atexit(free_sysname);
+ if (p = defvalue(def, "SYSTEM")) SysName = p;
+- if (p = defvalue(def, "VERSION"))
+- Version = strdup(p);
+- if (*Version == '/')
+- { if ((fp = fopen(Version, "r")))
+- { fgets(buf, MAXLINE, fp);
+- fclose(fp);
+- buf[strlen(buf)-1] = '\0';
+- Version = strdup(buf);
++ if (p = defvalue(def, "VERSION")) {
++ if (*p == '/') {
++ if ((fp = fopen(p, "r"))) {
++ fgets(buf, MAXLINE, fp);
++ fclose(fp);
++ buf[strlen(buf)-1] = '\0';
++ Version = strdup(buf);
+ }
+- }
++ } else {
++ Version = strdup(p);
++ }
++ atexit(free_version);
++ }
+ if((p = defvalue(def, "LOGIN"))) login_pgm = p;
+ if((p = defvalue(def, "ISSUE"))) issue = p;
+ if((p = defvalue(def, "CLEAR")) && (strequal(p, "NO")))
+@@ -489,12 +539,15 @@
+ #ifdef UUGETTY
+ (void) sprintf(buf, LOCK, Device);
+ lock = strdup(buf);
++ atexit(free_lock);
+ if((p = defvalue(def, "ALTLOCK"))) {
+ (void) sprintf(buf, LOCK, p);
+ altlock = strdup(buf);
++ atexit(free_altlock);
+ } else if(! strequal(Device, InitDevice)) {
+ (void) sprintf(buf, LOCK, InitDevice);
+ altlock = strdup(buf);
++ atexit(free_altlock);
+ }
+
+ debug(D_LOCK, "lock = (%s), altlock = (%s)", lock, altlock);
+@@ -625,8 +678,8 @@
+ with the uts struct filled above.
+ */
+
+- debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s,
+- id: %c%c, time: %d, user: %s, host: %s, addr: %d",
++ debug(D_UTMP, "adding utmp entry: type: %d, pid: %d, line: %s, "
++ "id: %c%c, time: %d, user: %s, host: %s, addr: %d",
+ uts.ut_type, uts.ut_pid, uts.ut_line,
+ (uts.ut_id[0] ? uts.ut_id[0] : ' '),
+ (uts.ut_id[1] ? uts.ut_id[1] : ' '),
+@@ -1077,16 +1130,20 @@
+ login_prompt:
+ (void) ioctl(STDIN, TCFLSH, 0);
+ #ifdef FIDO
+- if (emsi && (strcmp(emsi,"yes") == 0))
+- (void) Fputs("**EMSI_REQA77E\r", stdout);
++ if (emsi && (strcmp(emsi,"yes") == 0))
++ (void) Fputs("**EMSI_REQA77E\r", stdout);
+ #endif
+ (void) Fputs(gtab->login, stdout);
+-
++#ifndef UUGETTY
+ login_result=getlogname(&termio, buf, MAXLINE);
++#endif
+ if(TimeOut > 0) {
+ (void) signal(SIGALRM, timeout);
+ (void) alarm((unsigned) TimeOut);
+ }
++#ifdef UUGETTY
++ login_result=getlogname(&termio, buf, MAXLINE);
++#endif
+
+ switch(login_result) {
+ #ifdef FIDO
+@@ -1114,6 +1171,13 @@
+ #ifdef SETTERM
+ setenv("TERM", term, TRUE);
+ #endif /* SETTERM */
++ free_def();
++ free_sysname();
++ free_version();
++#ifdef UUGETTY
++ free_lock();
++ free_altlock();
++#endif
+ debug(D_RUN, "execing login");
+ (void) execl(login_pgm,
+ "login", buf, NULLPTR);
+--- ./funcs.c.orig 2002-09-25 08:43:28.000000000 +0200
++++ ./funcs.c 2005-07-20 19:01:55.000000000 +0200
+@@ -87,12 +87,11 @@
+ register char *s;
+ register FILE *stream;
+ {
+- char c, n, tbuf[20], ubuf[MAXBUF];
+- char *cbuf;
++ char c, n, tbuf[20];
+ time_t clock;
+ struct tm *lt;
+- struct utsname utsbuf;
+- struct hostent *fqdname;
++ static struct utsname utsbuf;
++ static struct hostent *fqdname;
+ FILE *fp1;
+
+ char *day_name[] = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };
+@@ -119,21 +118,8 @@
+ return(EOF);
+ break;
+ case 'F': /* FQDName */
+- cbuf = strdup(SysName);
+-#if 0 /* The does a seg violation - no idea why.... */
+ fqdname = gethostbyname(SysName);
+-#endif
+-#if 0 /* So, we cheat.....! */
+- /* Which also gets a seg violation! */
+- if (fp1 = fopen("/etc/HOSTNAME", "r"))
+- { fgets(cbuf, MAXBUF, fp1);
+- fclose(fp1);
+- cbuf[strlen(cbuf)] = '\0';
+- }
+- if (fqdname != NULL)
+- cbuf = strdup(fqdname->h_name);
+-#endif
+- if (Fputs(cbuf, stream) == EOF)
++ if (fqdname && Fputs(fqdname->h_name, stream) == EOF)
+ return(EOF);
+ break;
+ case 'L': /* line */
+@@ -141,18 +127,15 @@
+ return(EOF);
+ break;
+ case 'M': /* arch of machine */
+- cbuf = strdup(utsbuf.machine);
+- if (Fputs(cbuf, stream) == EOF)
++ if (Fputs(utsbuf.machine, stream) == EOF)
+ return(EOF);
+ break;
+ case 'O': /* O/S name */
+- cbuf = strdup(utsbuf.sysname);
+- if (Fputs(cbuf, stream) == EOF)
++ if (Fputs(utsbuf.sysname, stream) == EOF)
+ return(EOF);
+ break;
+ case 'R': /* O/S rev_id */
+- cbuf = strdup(utsbuf.release);
+- if (Fputs(cbuf, stream) == EOF)
++ if (Fputs(utsbuf.release, stream) == EOF)
+ return(EOF);
+ break;
+ case 'S': /* system node name */
+@@ -166,8 +149,8 @@
+ return(EOF);
+ break;
+ case 'U': /* number of active users */
+- (void) sprintf(ubuf, "%d", Nusers);
+- if (Fputs(ubuf, stream) == EOF)
++ (void) sprintf(tbuf, "%d", Nusers);
++ if (Fputs(tbuf, stream) == EOF)
+ return(EOF);
+ break;
+ case 'V': /* version */
+@@ -175,12 +158,10 @@
+ return(EOF);
+ break;
+ case 'u': /* user count str */
+- cbuf = malloc(20);
+ (void) sprintf(tbuf, "%d User", Nusers);
+ if (Nusers > 1)
+- cbuf = strcat(tbuf,"s");
+- else cbuf=strdup(tbuf);
+- if (Fputs(cbuf, stream) == EOF)
++ strcat(tbuf, "s");
++ if (Fputs(tbuf, stream) == EOF)
+ return(EOF);
+ break;
+ case '@': /* in case '@@' was used */
diff --git a/source/a/getty-ps/getty_ps-2.1.0.lsm b/source/a/getty-ps/getty_ps-2.1.0.lsm
new file mode 100644
index 000000000..b89d9f50f
--- /dev/null
+++ b/source/a/getty-ps/getty_ps-2.1.0.lsm
@@ -0,0 +1,26 @@
+Begin4
+Title: getty-ps
+Version: 2.1.0
+Entered-date: 27SEP02
+Description: A versatile getty/uugetty program designed to allow easy
+ use of a modem for incoming/outgoing data/fax/voice calls.
+ It also allows easy set-up of regular login ports. Unlike
+ agetty, it stores most of it's configuration and port
+ initialization information in up to 2 files. This usually
+ results in slightly more involved initial installation, but
+ easier maintenance than agetty. It also leaves the
+ inittab entries looking uncluttered. Supports 57600 and
+ faster speeds, and is compatible with uucp and efax-0.9[a].
+ Ringback is provided as an optional feature.
+Keywords: getty uugetty serial modem ringback efax uucp
+Author: Paul Sutcliffe, Jr.
+Maintained-by: Christine Jamison <getty-info@nwmagic.net>
+Primary-site: ftp.ibiblio.org:/pub/Linux/system/serial/getty_ps-2.1.0.tar.gz
+Alternate-site: ftp.nwmagic.net:/pub/sources/getty_ps-2.1.0.tar.gz
+Original-site: Unknown
+Platforms: Linux (tested on 1.0.x-2.4.5, Slackware 4.0 thru 8.1); should
+ compile and work on almost any Unix, after library
+ compatibility is resolved and paths are checked in tune.h;
+ compiles clean with gcc 2.7.2.3 & 2.95.3.
+Copying-policy: FRS
+End
diff --git a/source/a/getty-ps/slack-desc b/source/a/getty-ps/slack-desc
new file mode 100644
index 000000000..dda6cf7ad
--- /dev/null
+++ b/source/a/getty-ps/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+getty-ps: getty-ps (console or terminal login)
+getty-ps:
+getty-ps: /sbin/getty and /sbin/uugetty.
+getty-ps: These control the process of logging into your system, and may be used
+getty-ps: instead of 'agetty', which is the default getty included with the
+getty-ps: util-linux package. getty-ps supports a number of enhancements such as
+getty-ps: ringback support.
+getty-ps:
+getty-ps: getty-ps was originally written by Paul Sutcliffe, Jr, and is
+getty-ps: currently maintained by Christine Jamison.
+getty-ps:
diff --git a/source/a/gpm/gpm-1.20.1-consolename.patch b/source/a/gpm/gpm-1.20.1-consolename.patch
new file mode 100644
index 000000000..c5879fb41
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-consolename.patch
@@ -0,0 +1,18 @@
+--- gpm-1.20.1/src/lib/liblow.c.orig 2004-10-13 16:34:15.181502369 -0400
++++ gpm-1.20.1/src/lib/liblow.c 2004-10-13 16:34:20.491778415 -0400
+@@ -262,13 +262,14 @@
+ gpm_report(GPM_PR_ERR,"consolename not set");
+ goto err;
+ }
++#if 0
+ /* do we really need this check ? */
+ if(strncmp(tty,consolename,strlen(consolename)-1)
+ || !isdigit(tty[strlen(consolename)-1])) {
+ gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed");
+ goto err;
+ }
+-
++#endif
+ conn->vc=atoi(&tty[strlen(consolename)-1]);
+ }
+
diff --git a/source/a/gpm/gpm-1.20.1-gpmopen.patch b/source/a/gpm/gpm-1.20.1-gpmopen.patch
new file mode 100644
index 000000000..f36ad9396
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-gpmopen.patch
@@ -0,0 +1,22 @@
+--- gpm-1.20.1/src/lib/liblow.c.gpmopen 2004-05-04 17:36:09.000000000 -0400
++++ gpm-1.20.1/src/lib/liblow.c 2004-05-04 17:42:51.000000000 -0400
+@@ -200,8 +200,6 @@
+ Gpm_Stst *new = NULL;
+ char* sock_name = 0;
+
+- consolename = NULL;
+-
+ #if 0
+ gpm_report(GPM_PR_DEBUG,"VC: %d",flag);
+ #endif
+@@ -260,6 +258,10 @@
+ gpm_report(GPM_PR_ERR,"checking tty name failed");
+ goto err;
+ }
++ if (consolename == NULL) {
++ gpm_report(GPM_PR_ERR,"consolename not set");
++ goto err;
++ }
+ /* do we really need this check ? */
+ if(strncmp(tty,consolename,strlen(consolename)-1)
+ || !isdigit(tty[strlen(consolename)-1])) {
diff --git a/source/a/gpm/gpm-1.20.1-idie.patch b/source/a/gpm/gpm-1.20.1-idie.patch
new file mode 100644
index 000000000..4594f0784
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-idie.patch
@@ -0,0 +1,12 @@
+--- gpm-1.20.1/src/lib/liblow.c.orig 2004-05-06 14:14:03.000000000 -0400
++++ gpm-1.20.1/src/lib/liblow.c 2004-05-06 14:18:05.000000000 -0400
+@@ -376,7 +376,9 @@
+
+ /*....................................... Error: free all memory */
+ err:
++#if 0
+ gpm_report(GPM_PR_ERR,"Oh, oh, it's an error! possibly I die! ");
++#endif
+ do {
+ new=gpm_stack->next;
+ free(gpm_stack);
diff --git a/source/a/gpm/gpm-1.20.1-input-defines.diff b/source/a/gpm/gpm-1.20.1-input-defines.diff
new file mode 100644
index 000000000..4a925a6a3
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-input-defines.diff
@@ -0,0 +1,26 @@
+--- ./src/headers/input-defines.h.orig 2006-12-11 19:56:14.000000000 -0600
++++ ./src/headers/input-defines.h 2006-12-11 19:59:30.000000000 -0600
+@@ -59,23 +59,4 @@
+ #define PSMOUSE_SYNAPTICS 7
+ #endif
+
+-#ifndef HAVE_INPUT_ID
+-struct input_id {
+- unsigned short bustype;
+- unsigned short vendor;
+- unsigned short product;
+- unsigned short version;
+-};
+-#endif
+-
+-#ifndef HAVE_INPUT_ABSINFO
+-struct input_absinfo {
+- int value;
+- int minimum;
+- int maximum;
+- int fuzz;
+- int flat;
+-};
+-#endif
+-
+ #endif
diff --git a/source/a/gpm/gpm-1.20.1-input.patch b/source/a/gpm/gpm-1.20.1-input.patch
new file mode 100644
index 000000000..152e60381
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-input.patch
@@ -0,0 +1,16 @@
+diff -ur gpm-1.20.1.orig/src/headers/config.h.in gpm-1.20.1/src/headers/config.h.in
+--- gpm-1.20.1.orig/src/headers/config.h.in 2004-09-04 10:24:11.000000000 -0400
++++ gpm-1.20.1/src/headers/config.h.in 2004-09-04 10:26:02.000000000 -0400
+@@ -46,6 +46,12 @@
+ /* Define if you have the <linux/input.h> header file. */
+ #undef HAVE_LINUX_INPUT_H
+
++/* Definedif you have the input_id structure */
++#undef HAVE_INPUT_ID
++
++/* Definedif you have the input_absinfo structure */
++#undef HAVE_INPUT_ABSINFO
++
+ /* Define if you have the <linux/joystick.h> header file. */
+ #undef HAVE_LINUX_JOYSTICK_H
+
diff --git a/source/a/gpm/gpm-1.20.1-lib-silent.patch b/source/a/gpm/gpm-1.20.1-lib-silent.patch
new file mode 100644
index 000000000..099075b5b
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-lib-silent.patch
@@ -0,0 +1,19 @@
+--- gpm-1.20.1/src/lib/report-lib.c.lib-silent 2002-12-24 23:57:16.000000000 +0100
++++ gpm-1.20.1/src/lib/report-lib.c 2006-01-18 17:55:38.000000000 +0100
+@@ -24,8 +24,16 @@
+
+ #include "headers/message.h"
+
++static int gpm_silent() {
++ if ( getenv( "GPM_VERBOSE" ) == NULL ) return 1;
++ return 0;
++}
++
+ void gpm_report(int line, char *file, int stat, char *text, ... )
+ {
++ if ( gpm_silent() && stat != GPM_STAT_OOPS )
++ return;
++
+ char *string = NULL;
+ va_list ap;
+ va_start(ap,text);
diff --git a/source/a/gpm/gpm-1.20.1-math.patch b/source/a/gpm/gpm-1.20.1-math.patch
new file mode 100644
index 000000000..634a5fd84
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-math.patch
@@ -0,0 +1,11 @@
+--- gpm-1.20.1/configure.in.math Tue Jun 24 10:52:44 2003
++++ gpm-1.20.1/configure.in Tue Jun 24 10:53:54 2003
+@@ -128,7 +128,7 @@
+ AC_SUBST(lispdir)
+
+ CPPFLAGS='-I$(srcdir) $(DEFS) -include headers/config.h -Wall -DSYSCONFDIR="\"$(sysconfdir)\"" -DSBINDIR="\"$(sbindir)\""'
+-LDFLAGS='-L$(srcdir)'
++LDFLAGS='-lm -L$(srcdir)'
+
+ dnl AC_DEFINE_UNQUOTED(SYSCONFDIR,"$sysconfdir")
+ dnl AC_DEFINE_UNQUOTED(SBINDIR,"$sbindir")
diff --git a/source/a/gpm/gpm-1.20.1-multilib.patch b/source/a/gpm/gpm-1.20.1-multilib.patch
new file mode 100644
index 000000000..723ee2b59
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-multilib.patch
@@ -0,0 +1,52 @@
+--- gpm-1.20.1/doc/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500
++++ gpm-1.20.1/doc/Makefile.in 2004-10-20 17:25:11.000000000 -0400
+@@ -97,7 +97,7 @@
+
+ # Main portion
+
+-all: $(srcdir)/gpm.info $(MANPAGES)
++all: gpm.info $(MANPAGES)
+
+ # why gpmdoc.ps and gpm.ps??
+ # there is no gpm.ps in my tree and no rule to generate gpm.ps.
+@@ -131,8 +131,8 @@
+ #i keep all my infopages compressed and i'm tired to do it by
+ #hand, so check if there are any compressed pages and do this
+ #one too
+- -ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \
+- && gzip -f $(infodir)/gpm.info
++ #-ls $(infodir)/*[-.]info.gz >/dev/null 2>&1 \
++ # && gzip -f $(infodir)/gpm.info
+ # Hmm.... shouldn't man pages be compressed too?
+ # maybe they should, but at least at my system they are not.
+
+--- gpm-1.20.1/contrib/Makefile.in.multilib 2002-12-24 17:57:16.000000000 -0500
++++ gpm-1.20.1/contrib/Makefile.in 2004-10-20 17:11:38.000000000 -0400
+@@ -9,10 +9,10 @@
+
+ include $(top_builddir)/Makefile.include
+
+-all: $(srcdir)/$(ELISP)
++all: $(filter-out %.elc,$(srcdir)/$(ELISP))
+
+ install: all
+- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \
++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \
+ $(INSTALL_DATA) $(srcdir)/$$i $(lispdir)/`basename $$i` ;\
+ done; fi
+
+@@ -20,7 +20,7 @@
+ $(EMACS) -batch -l $(srcdir)/emacs/exec.el -exec '(byte-compile-file "$<")'
+
+ uninstall:
+- if [ -n "$(ELISP)" ]; then for i in `echo $(ELISP)`; do \
++ if [ -n "$(filter-out %.elc,$(ELISP))" ]; then for i in `echo $(filter-out %.elc,$(ELISP))`; do \
+ rm -f $(lispdir)/$$i ;\
+ done; fi
+
+@@ -28,4 +28,4 @@
+ $(CP) -r $(srcdir) $(top_builddir)/gpm-$(release)/
+
+ clean distclean:
+- $(RM) -f $(srcdir)/emacs/*.elc
++ $(RM) $(srcdir)/emacs/*.elc
diff --git a/source/a/gpm/gpm-1.20.1-no-console-error.patch b/source/a/gpm/gpm-1.20.1-no-console-error.patch
new file mode 100644
index 000000000..20c177b4d
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-no-console-error.patch
@@ -0,0 +1,15 @@
+--- gpm-1.20.1/src/console.c.no-console-error 2006-01-18 17:06:15.000000000 +0100
++++ gpm-1.20.1/src/console.c 2006-01-18 17:08:19.000000000 +0100
+@@ -249,8 +249,10 @@
+ /* Failed, try OLD console */
+ else if (stat(GPM_OLD_CONSOLE, &buf) == 0)
+ console.device = GPM_OLD_CONSOLE;
+- else
+- gpm_report(GPM_PR_OOPS, "Can't determine console device");
++ else { // XXX handle this gracefully?
++ fprintf( stderr, "no console device found" );
++ exit( 1 );
++ }
+
+ return console.device;
+ }
diff --git a/source/a/gpm/gpm-1.20.1-nodebug.patch b/source/a/gpm/gpm-1.20.1-nodebug.patch
new file mode 100644
index 000000000..945b576c4
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-nodebug.patch
@@ -0,0 +1,12 @@
+--- gpm-1.20.1/src/lib/liblow.c.orig 2004-03-31 15:06:45.000000000 -0500
++++ gpm-1.20.1/src/lib/liblow.c 2004-03-31 15:09:32.000000000 -0500
+@@ -202,7 +202,9 @@
+
+ consolename = NULL;
+
++#if 0
+ gpm_report(GPM_PR_DEBUG,"VC: %d",flag);
++#endif
+
+ /*....................................... First of all, check xterm */
+
diff --git a/source/a/gpm/gpm-1.20.1-subscript.patch b/source/a/gpm/gpm-1.20.1-subscript.patch
new file mode 100644
index 000000000..bf4ca75b0
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-subscript.patch
@@ -0,0 +1,11 @@
+--- gpm-1.20.1/src/mice.c.lr 2004-02-15 09:19:48.000000000 +0100
++++ gpm-1.20.1/src/mice.c 2004-02-15 09:22:18.000000000 +0100
+@@ -2112,7 +2112,7 @@
+ for (i=0; i<4; i++)
+ if (gunze_calib[i] & ~1023) calibok = 0;
+ if (gunze_calib[0] == gunze_calib[2]) calibok = 0;
+- if (gunze_calib[1] == gunze_calib[4]) calibok = 0;
++ if (gunze_calib[1] == gunze_calib[3]) calibok = 0;
+ fclose(f);
+ }
+ if (!calibok) {
diff --git a/source/a/gpm/gpm-1.20.1-weak-wgetch.patch b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch
new file mode 100644
index 000000000..81e6a2b5b
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1-weak-wgetch.patch
@@ -0,0 +1,38 @@
+--- gpm-1.20.1/src/lib/libcurses.c.weak-wgetch 2002-12-24 17:57:16.000000000 -0500
++++ gpm-1.20.1/src/lib/libcurses.c 2004-03-22 15:51:24.000000000 -0500
+@@ -41,7 +41,12 @@
+ #endif /* HAVE_NCURSES_CURSES_H */
+ #endif /* HAVE_NCURSES_H */
+
+-#define GET(win) ((win) ? wgetch(win) : getch())
++/* If win != NULL, it must have been created by ncurses anyway.
++ Avoid circular library dependencies. */
++#pragma weak wgetch
++#pragma weak stdscr
++
++#define GET(win) ((win && wgetch) ? wgetch(win) : getch())
+
+ int Gpm_Wgetch(WINDOW *win)
+ {
+--- gpm-1.20.1/configure.in.weak-wgetch 2004-03-22 15:49:51.000000000 -0500
++++ gpm-1.20.1/configure.in 2004-03-22 15:51:24.000000000 -0500
+@@ -115,7 +115,7 @@
+ AC_CHECK_LIB($i, wgetch,,,$TERMLIBS)
+ else :; fi
+ done
+- SHARED_LIBS="$LIBS $TERMLIBS -lc"
++ SHARED_LIBS="-lc"
+ LIBS=$SAVELIBS ;;
+ esac
+
+--- gpm-1.20.1/configure.weak-wgetch 2004-03-22 15:49:55.000000000 -0500
++++ gpm-1.20.1/configure 2004-03-22 15:51:24.000000000 -0500
+@@ -4295,7 +4295,7 @@
+
+ else :; fi
+ done
+- SHARED_LIBS="$LIBS $TERMLIBS -lc"
++ SHARED_LIBS="-lc"
+ LIBS=$SAVELIBS ;;
+ esac
+
diff --git a/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff
new file mode 100644
index 000000000..111e7843b
--- /dev/null
+++ b/source/a/gpm/gpm-1.20.1.send-noise-to-syslogs.diff
@@ -0,0 +1,86 @@
+diff -u -r gpm-1.20.1.orig/src/report.c gpm-1.20.1/src/report.c
+--- gpm-1.20.1.orig/src/report.c 2006-08-20 14:34:30.000000000 -0500
++++ gpm-1.20.1/src/report.c 2006-08-20 14:44:54.000000000 -0500
+@@ -48,15 +48,15 @@
+ *
+ * Startup Mode:
+ * debug : - (ignore)
+- * info : syslog/stdout
+- * warn/err : syslog/stderr
++ * info : syslog
++ * warn/err : syslog
+ * oops : syslog/stderr [exit]
+ *
+ * Running Mode: (daemon)
+ * debug : - (ignore)
+ * info : syslog
+- * warn : syslog+system console
+- * err : syslog+system console+current console
++ * warn : syslog
++ * err : syslog
+ * oops : syslog/stderr [_exit]
+ *
+ * Debug Mode :
+@@ -85,9 +85,6 @@
+ syslog(LOG_INFO | LOG_USER, GPM_STRING_INFO);
+ vsyslog(LOG_INFO | LOG_USER, text, ap);
+ #endif
+- fprintf(stderr,GPM_STRING_INFO);
+- vfprintf(stderr,text,ap);
+- fprintf(stderr,"\n");
+ break;
+
+ case GPM_STAT_WARN:
+@@ -95,9 +92,6 @@
+ syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN);
+ vsyslog(LOG_DAEMON | LOG_WARNING, text, ap);
+ #endif
+- fprintf(stderr,GPM_STRING_WARN);
+- vfprintf(stderr,text,ap);
+- fprintf(stderr,"\n");
+ break;
+
+ case GPM_STAT_ERR:
+@@ -105,9 +99,6 @@
+ syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR);
+ vsyslog(LOG_DAEMON | LOG_ERR, text, ap);
+ #endif
+- fprintf(stderr,GPM_STRING_ERR);
+- vfprintf(stderr,text,ap);
+- fprintf(stderr,"\n");
+ break;
+
+ case GPM_STAT_OOPS:
+@@ -139,12 +130,6 @@
+ syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN);
+ vsyslog(LOG_DAEMON | LOG_WARNING, text, ap);
+ #endif
+- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) {
+- fprintf(f, GPM_STRING_WARN);
+- vfprintf(f, text, ap);
+- fprintf(f, "\n");
+- fclose(f);
+- }
+ break;
+
+ case GPM_STAT_ERR:
+@@ -152,19 +137,6 @@
+ syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR);
+ vsyslog(LOG_DAEMON | LOG_ERR, text, ap);
+ #endif
+- if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) {
+- fprintf(f, GPM_STRING_ERR);
+- vfprintf(f, text, ap);
+- fprintf(f, "\n");
+- fclose(f);
+- }
+-
+- if ((f = fopen(console.device, "a")) != NULL) {
+- fprintf(f, GPM_STRING_ERR);
+- vfprintf(f, text, ap);
+- fprintf(f, "\n");
+- fclose(f);
+- }
+ break;
+
+ case GPM_STAT_OOPS:
diff --git a/source/a/gpm/gpm-evdev-cumulative.patch b/source/a/gpm/gpm-evdev-cumulative.patch
new file mode 100644
index 000000000..2fd86d10c
--- /dev/null
+++ b/source/a/gpm/gpm-evdev-cumulative.patch
@@ -0,0 +1,7023 @@
+diff -urN gpm-1.20.1/configure.in gpm/configure.in
+--- gpm-1.20.1/configure.in 2002-12-24 17:57:16.000000000 -0500
++++ gpm/configure.in 2003-10-02 01:22:42.000000000 -0500
+@@ -61,6 +61,13 @@
+
+ AC_CHECK_HEADERS(syslog.h linux/input.h linux/joystick.h ncurses.h ncurses/curses.h curses.h)
+
++EVDEV_SRCS=
++if test ${ac_cv_header_linux_input_h} = yes ; then
++ EVDEV_SRCS=evdev.c ;
++ AC_CHECK_TYPE(struct input_absinfo,AC_DEFINE_UNQUOTED(HAVE_INPUT_ABSINFO, 1, [define if struct input_absinfo defined in linux/input.h]),,[#include <linux/input.h>])
++ AC_CHECK_TYPE(struct input_id,AC_DEFINE_UNQUOTED(HAVE_INPUT_ID, 1, [define if struct input_id defined in linux/input.h]),,[#include <linux/input.h>])
++fi
++
+ AC_ARG_WITH(curses,
+ [ --without-curses disable curses support even if curses found])
+
+@@ -124,6 +131,7 @@
+ AC_SUBST(PICFLAGS)
+ AC_SUBST(SOLDFLAGS)
+ AC_SUBST(CURSES_OBJS)
++AC_SUBST(EVDEV_SRCS)
+ AC_SUBST(SHARED_LIBS)
+ AC_SUBST(lispdir)
+
+diff -urN gpm-1.20.1/src/client.c gpm/src/client.c
+--- gpm-1.20.1/src/client.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/client.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,319 @@
++/*
++ * client.c - GPM client handling (server side)
++ *
++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk>
++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it>
++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net>
++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org>
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h> /* strerror(); ?!? */
++#include <errno.h>
++#include <unistd.h> /* select(); */
++#include <signal.h> /* SIGPIPE */
++#include <time.h> /* time() */
++#include <sys/fcntl.h> /* O_RDONLY */
++#include <sys/stat.h> /* mkdir() */
++#include <sys/time.h> /* timeval */
++#include <sys/types.h> /* socket() */
++#include <sys/socket.h> /* socket() */
++#include <sys/un.h> /* struct sockaddr_un */
++
++#include "headers/gpmInt.h"
++#include "headers/message.h"
++#include "headers/console.h"
++#include "headers/selection.h"
++#include "headers/client.h"
++
++/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */
++#if !defined(__GLIBC__)
++ typedef unsigned int __socklen_t;
++#endif /* __GLIBC__ */
++
++#ifndef max
++#define max(a,b) ((a)>(b) ? (a) : (b))
++#endif
++
++extern int errno;
++
++struct client_info *cinfo[MAX_VC + 1];
++
++/*-------------------------------------------------------------------*
++ * This was inline, and incurred in a compiler bug (2.7.0)
++ *-------------------------------------------------------------------*/
++static int get_data(int fd, Gpm_Connect *data)
++{
++ static int len;
++
++#ifdef GPM_USE_MAGIC
++ while ((len = read(whence, &check, sizeof(int))) == 4 &&
++ check != GPM_MAGIC)
++ gpm_report(GPM_PR_INFO, GPM_MESS_NO_MAGIC);
++
++ if (len == 0) return 0;
++
++ if (check != GPM_MAGIC) {
++ gpm_report(GPM_PR_INFO, GPM_MESS_NOTHING_MORE);
++ return -1;
++ }
++#endif
++
++ len = read(fd, data, sizeof(Gpm_Connect));
++
++ return len ? (len == sizeof(Gpm_Connect) ? 1 : -1) : 0;
++}
++
++/*-------------------------------------------------------------------*/
++int listen_for_clients(void)
++{
++ struct sockaddr_un ctladdr;
++ int fd, len;
++
++ unlink(GPM_NODE_CTL);
++
++ if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_SOCKET_PROB);
++
++ memset(&ctladdr, 0, sizeof(ctladdr));
++ ctladdr.sun_family = AF_UNIX;
++ strcpy(ctladdr.sun_path, GPM_NODE_CTL);
++ len = sizeof(ctladdr.sun_family) + strlen(GPM_NODE_CTL);
++
++ if (bind(fd, (struct sockaddr *)&ctladdr, len) == -1)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_BIND_PROB, ctladdr.sun_path);
++
++ /* needs to be 0777, so all users can _try_ to access gpm */
++ chmod(GPM_NODE_CTL, 0777);
++ listen(fd, 5); /* Queue up calls */
++
++ return fd;
++}
++
++/*-------------------------------------------------------------------*/
++struct client_info *accept_client_connection(int fd)
++{
++ struct client_info *info;
++ Gpm_Connect *request;
++ int newfd;
++#if !defined(__GLIBC__)
++ int len;
++#else /* __GLIBC__ */
++ size_t len; /* isn't that generally defined in C ??? -- nico */
++#endif /* __GLIBC__ */
++ struct sockaddr_un addr; /* reuse this each time */
++#ifndef SO_PEERCRED
++ struct stat statbuf;
++ time_t staletime;
++#endif
++ uid_t uid;
++
++ /*....................................... Accept */
++ memset(&addr, 0, sizeof(addr));
++ addr.sun_family = AF_UNIX;
++
++ len = sizeof(addr);
++ if ((newfd = accept(fd, (struct sockaddr *)&addr, &len)) < 0) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_ACCEPT_FAILED, strerror(errno));
++ return NULL;
++ }
++
++ gpm_report(GPM_PR_INFO, GPM_MESS_CONECT_AT, newfd);
++
++ if (!(info = malloc(sizeof(struct client_info))))
++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM);
++
++ request = &info->data;
++ if (get_data(newfd, request) == -1)
++ goto err;
++
++ if (request->vc > MAX_VC) {
++ gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, request->vc, MAX_VC);
++ goto err;
++ }
++
++#ifndef SO_PEERCRED
++ if (stat(addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) {
++ gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path);
++ goto err;
++ }
++
++ unlink(addr.sun_path); /* delete socket */
++
++ staletime = time(0) - 30;
++ if (statbuf.st_atime < staletime ||
++ statbuf.st_ctime < staletime ||
++ statbuf.st_mtime < staletime) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_SOCKET_OLD);
++ goto err;
++ }
++
++ uid = statbuf.st_uid; /* owner of socket */
++#else
++ {
++ struct ucred sucred;
++ socklen_t credlen = sizeof(struct ucred);
++
++ if (getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) {
++ gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno));
++ goto err;
++ }
++ uid = sucred.uid;
++ gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid);
++ }
++#endif
++
++ if (uid != 0 && !is_console_owner(request->vc, uid)) {
++ gpm_report(GPM_PR_WARN, GPM_MESS_FAILED_CONNECT, uid, request->vc);
++ goto err;
++ }
++
++ /* register the connection information in the right place */
++ info->next = cinfo[request->vc];
++ info->fd = newfd;
++ cinfo[request->vc] = info;
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_LONG_STATUS,
++ request->pid, request->vc, request->eventMask, request->defaultMask,
++ request->minMod, request->maxMod);
++
++ return info;
++
++err:
++ free(info);
++ close(newfd);
++
++ return NULL;
++}
++
++/*-------------------------------------------------------------------*/
++void remove_client(struct client_info *ci, int vc)
++{
++ struct client_info *p, *prev = NULL;
++
++ for (p = cinfo[vc]; p; prev = p, p = p->next) {
++ if (p == ci) {
++ if (!prev) /* it is on top of the stack */
++ cinfo[vc] = p->next;
++ else
++ prev->next = p->next;
++ break;
++ }
++ }
++ if (p) free(p);
++}
++
++/*-------------------------------------------------------------------*/
++void notify_clients_resize(void)
++{
++ struct client_info *ci;
++ int i;
++
++ for (i = 0; i < MAX_VC + 1; i++)
++ for (ci = cinfo[i]; ci; ci = ci->next)
++ kill(ci->data.pid, SIGWINCH);
++}
++
++/*-------------------------------------------------------------------*/
++/* returns 0 if the event has not been processed, and 1 if it has */
++int do_client(struct client_info *cinfo, Gpm_Event *event)
++{
++ Gpm_Connect *info = &cinfo->data;
++ /* value to return if event is not used */
++ int res = !(info->defaultMask & event->type);
++
++ /* instead of returning 0, scan the stack of clients */
++ if ((info->minMod & event->modifiers) < info->minMod)
++ goto try_next;
++ if ((info->maxMod & event->modifiers) < event->modifiers)
++ goto try_next;
++
++ /* if not managed, use default mask */
++ if (!(info->eventMask & GPM_BARE_EVENTS(event->type))) {
++ if (res) return res;
++ else goto try_next;
++ }
++
++ /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */
++ MAGIC_P((write(cinfo->fd, &magic, sizeof(int))));
++ write(cinfo->fd, event, sizeof(Gpm_Event));
++
++ return info->defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */
++
++ try_next:
++ if (cinfo->next != 0)
++ return do_client(cinfo->next, event); /* try the next */
++
++ return 0; /* no next, not used */
++}
++
++/*-------------------------------------------------------------------*/
++/* returns 0 if client disconnects, -1 - error, 1 -successs */
++int process_client_request(struct client_info *ci, int vc,
++ int x, int y, int buttons, int clicks,
++ int three_button_mouse)
++{
++ int rc;
++ Gpm_Connect conn;
++ static Gpm_Event event;
++
++ gpm_report(GPM_PR_INFO, GPM_MESS_CON_REQUEST, ci->fd, vc);
++ if (vc > MAX_VC) return -1;
++
++ /* itz 10-22-96 this shouldn't happen now */
++ if (vc == -1) gpm_report(GPM_PR_OOPS, GPM_MESS_UNKNOWN_FD);
++
++ rc = get_data(ci->fd, &conn);
++
++ if (rc == 0) { /* no data */
++ gpm_report(GPM_PR_INFO, GPM_MESS_CLOSE);
++ close(ci->fd);
++ return 0;
++ }
++
++ if (rc == -1) return -1; /* too few bytes */
++
++ if (conn.pid != 0) {
++ ci->data = conn;
++ return 1;
++ }
++
++ /* Aha, request for information (so-called snapshot) */
++ switch (conn.vc) {
++ case GPM_REQ_SNAPSHOT:
++ event.vc = get_console_state(&event.modifiers);
++ event.x = x; event.y = y;
++ event.buttons = buttons;
++ event.clicks = clicks;
++ event.dx = console.max_x; event.dy = console.max_y;
++ /* fall through */
++
++ case GPM_REQ_BUTTONS:
++ event.type = (three_button_mouse == 1 ? 3 : 2); /* buttons */
++ write(ci->fd, &event, sizeof(Gpm_Event));
++ break;
++
++ case GPM_REQ_NOPASTE:
++ selection_disable_paste();
++ gpm_report(GPM_PR_INFO, GPM_MESS_DISABLE_PASTE, vc);
++ break;
++ }
++
++ return 1;
++}
++
+diff -urN gpm-1.20.1/src/console.c gpm/src/console.c
+--- gpm-1.20.1/src/console.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/console.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,257 @@
++/*
++ * console.c - GPM console and selection/paste handling
++ *
++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk>
++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it>
++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net>
++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org>
++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h> /* strerror(); ?!? */
++#include <errno.h>
++#include <unistd.h> /* select(); */
++#include <time.h> /* time() */
++#include <sys/fcntl.h> /* O_RDONLY */
++#include <sys/stat.h> /* mkdir() */
++#include <asm/types.h> /* __u32 */
++
++#include <linux/vt.h> /* VT_GETSTATE */
++#include <sys/kd.h> /* KDGETMODE */
++#include <termios.h> /* winsize */
++
++#include "headers/gpmInt.h"
++#include "headers/console.h"
++#include "headers/message.h"
++
++#ifndef HAVE___U32
++# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */
++typedef unsigned int __u32;
++# endif
++#endif
++
++struct gpm_console console = { 0, DEF_LUT, 0, 0 };
++
++/*-------------------------------------------------------------------*/
++static int count_digits(int num)
++{
++ int digits = 1;
++
++ while ((num /= 10))
++ digits++;
++
++ return digits;
++}
++
++/*-------------------------------------------------------------------*/
++char *compose_vc_name(int vc)
++{
++ char *tty;
++
++ tty = malloc(strlen(console.device) + count_digits(vc) + sizeof(char));
++ if (tty) {
++ /* console is /dev/vc/0 or /dev/tty0 and we trimming the ending 0 */
++ strncpy(tty, console.device, strlen(console.device) - 1);
++ sprintf(&tty[strlen(console.device) - 1], "%d", vc);
++ }
++
++ return tty;
++}
++
++/*-------------------------------------------------------------------*/
++int open_console(int mode)
++{
++ int fd;
++
++ if ((fd = open(console.device, mode)) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON);
++
++ return fd;
++}
++
++/*-------------------------------------------------------------------*/
++int is_text_console(void)
++{
++ int fd;
++ int kd_mode;
++
++ fd = open_console(O_RDONLY);
++ if (ioctl(fd, KDGETMODE, &kd_mode)<0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_KDGETMODE);
++ close(fd);
++
++ return kd_mode == KD_TEXT;
++}
++
++/*-------------------------------------------------------------------*/
++void wait_text_console(void)
++{
++ do {
++ sleep(2);
++ } while (!is_text_console());
++}
++
++/*-------------------------------------------------------------------*/
++void refresh_console_size(void)
++{
++ struct winsize win;
++ int fd = open_console(O_RDONLY);
++
++ ioctl(fd, TIOCGWINSZ, &win);
++ close(fd);
++
++ if (!win.ws_col || !win.ws_row) {
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_ZERO_SCREEN_DIM);
++ console.max_x = 80; console.max_y = 25;
++ } else {
++ console.max_x = win.ws_col; console.max_y = win.ws_row;
++ }
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SCREEN_SIZE, console.max_x, console.max_y);
++}
++
++/*-------------------------------------------------------------------*/
++int get_console_state(unsigned char *shift_state)
++{
++ struct vt_stat stat;
++ int fd;
++
++ fd = open_console(O_RDONLY);
++
++ *shift_state = 6; /* code for the ioctl */
++ if (ioctl(fd, TIOCLINUX, shift_state) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_SHIFT_STATE);
++
++ if (ioctl(fd, VT_GETSTATE, &stat) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_GET_CONSOLE_STAT);
++
++ close(fd);
++
++ return stat.v_active;
++}
++
++/*-------------------------------------------------------------------*/
++int is_console_owner(int vc, uid_t uid)
++{
++ struct stat statbuf;
++ char *tty;
++ int rc;
++
++ if ((tty = compose_vc_name(vc)) == NULL)
++ gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
++
++ if ((rc = stat(tty, &statbuf)) == -1)
++ gpm_report(GPM_PR_ERR, GPM_MESS_STAT_FAILS, tty);
++
++ free(tty);
++
++ return rc != -1 && uid == statbuf.st_uid;
++}
++
++/*-------------------------------------------------------------------*/
++/* octal digit */
++static int isodigit(const unsigned char c)
++{
++ return ((c & ~7) == '0');
++}
++
++/*-------------------------------------------------------------------*/
++/* routine to convert digits from octal notation (Andries Brouwer) */
++static int getsym(const unsigned char *p0, unsigned char *res)
++{
++ const unsigned char *p = p0;
++ char c;
++
++ c = *p++;
++ if (c == '\\' && *p) {
++ c = *p++;
++ if (isodigit(c)) {
++ c -= '0';
++ if (isodigit(*p)) c = 8*c + (*p++ - '0');
++ if (isodigit(*p)) c = 8*c + (*p++ - '0');
++ }
++ }
++ *res = c;
++ return (p - p0);
++}
++
++/*-------------------------------------------------------------------*/
++/* description missing! FIXME */
++void console_load_lut(void)
++{
++ extern int errno;
++ int i, c, fd;
++ unsigned char this, next;
++ static __u32 long_array[9] = {
++ 0x05050505, /* ugly, but preserves alignment */
++ 0x00000000, /* control chars */
++ 0x00000000, /* digits */
++ 0x00000000, /* uppercase and '_' */
++ 0x00000000, /* lowercase */
++ 0x00000000, /* Latin-1 control */
++ 0x00000000, /* Latin-1 misc */
++ 0x00000000, /* Latin-1 uppercase */
++ 0x00000000 /* Latin-1 lowercase */
++ };
++
++#define inwordLut (long_array+1)
++
++ for (i = 0; console.charset[i]; ) {
++ i += getsym(console.charset + i, &this);
++ if (console.charset[i] == '-' && console.charset[i + 1] != '\0')
++ i += getsym(console.charset + i + 1, &next) + 1;
++ else
++ next = this;
++ for (c = this; c <= next; c++)
++ inwordLut[c >> 5] |= 1 << (c & 0x1F);
++ }
++
++ fd = open_console(O_WRONLY);
++
++ if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */
++ if (errno == EPERM && getuid())
++ gpm_report(GPM_PR_WARN, GPM_MESS_ROOT); /* why do we still continue?*/
++ else if (errno == EINVAL)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_CSELECT);
++ }
++ close(fd);
++}
++
++/*-------------------------------------------------------------------*/
++/* Returns the name of the console (/dev/tty0 or /dev/vc/0) */
++/* Also fills console.device */
++char *get_console_name()
++{
++ struct stat buf;
++
++ /* first try the devfs device, because in the next time this will be
++ * the preferred one. If that fails, take the old console */
++
++ /* Check for open new console */
++ if (stat(GPM_DEVFS_CONSOLE, &buf) == 0)
++ console.device = GPM_DEVFS_CONSOLE;
++
++ /* Failed, try OLD console */
++ else if (stat(GPM_OLD_CONSOLE, &buf) == 0)
++ console.device = GPM_OLD_CONSOLE;
++ else
++ gpm_report(GPM_PR_OOPS, "Can't determine console device");
++
++ return console.device;
++}
++
+diff -urN gpm-1.20.1/src/evdev.c gpm/src/evdev.c
+--- gpm-1.20.1/src/evdev.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/evdev.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,851 @@
++/*
++ * evdev.c - support for event input devices in linux 2.4 & 2.6
++ *
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ * Based on XFree86 driver by Stefan Gmeiner & Peter Osterlund
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++#include <time.h>
++#include <sys/select.h>
++#include <sys/time.h>
++
++#include <linux/input.h>
++#include "headers/input-defines.h" /* misisng bits in case <linux/input.h> is old */
++
++#include "headers/gpm.h"
++#include "headers/gpmInt.h"
++#include "headers/console.h"
++#include "headers/message.h"
++#include "headers/optparser.h"
++
++enum evdev_type {
++ EVDEV_UNKNOWN,
++ EVDEV_RELATIVE,
++ EVDEV_ABSOLUTE,
++ EVDEV_TOUCHPAD,
++ EVDEV_SYNAPTICS
++};
++
++enum touch_type {
++ TOUCH_NONE,
++ TOUCH_FINGERS,
++ TOUCH_PALM
++};
++
++enum gesture_type {
++ GESTURE_NONE,
++ GESTURE_TAP_PENDING,
++ GESTURE_TAP,
++ GESTURE_DRAG_PENDING,
++ GESTURE_DRAG,
++ GESTURE_DOUBLE_TAP
++};
++
++enum edge_type {
++ BOTTOM_EDGE = 1,
++ TOP_EDGE = 2,
++ LEFT_EDGE = 4,
++ RIGHT_EDGE = 8,
++ LEFT_BOTTOM_EDGE = BOTTOM_EDGE | LEFT_EDGE,
++ RIGHT_BOTTOM_EDGE = BOTTOM_EDGE | RIGHT_EDGE,
++ RIGHT_TOP_EDGE = TOP_EDGE | RIGHT_EDGE,
++ LEFT_TOP_EDGE = TOP_EDGE | LEFT_EDGE
++};
++
++struct event_data {
++ int dx, dy;
++ int wdx, wdy;
++ int abs_x, abs_y;
++ int buttons;
++ int touch; /* dumb touchpad report touch events, smart ones - pressure */
++ int pressure;
++ int w;
++ int finger_count;
++ int synced;
++};
++
++struct touch_data {
++ int touching;
++ int x, y;
++ int finger_count;
++ int buttons;
++ int clicks;
++ struct timeval start;
++ enum gesture_type gesture;
++};
++
++struct event_device {
++ enum evdev_type type;
++ int dont_sync;
++
++ struct event_data pkt;
++ int pkt_count;
++
++ int prev_x[4], prev_y[4];
++ int prev_pressure, avg_w;
++ struct touch_data touch;
++
++ int left_edge, right_edge;
++ int top_edge, bottom_edge;
++ int touch_high, touch_low;
++ int tap_time, tap_move;
++ int y_inverted;
++
++ enum touch_type (*detect_touch)(struct event_device *evdev);
++ void (*update_finger_count)(struct event_device *evdev);
++};
++
++struct evdev_capabilities {
++ unsigned char evbits[EV_MAX/8 + 1];
++ unsigned char keybits[KEY_MAX/8 + 1];
++ unsigned char absbits[ABS_MAX/8 + 1];
++ unsigned char mscbits[MSC_MAX/8 + 1];
++};
++
++#ifndef max
++#define max(a,b) ((a)>(b) ? (a) : (b))
++#endif
++
++#define fx(i) (evdev->prev_x[(evdev->pkt_count - (i)) & 03])
++#define fy(i) (evdev->prev_y[(evdev->pkt_count - (i)) & 03])
++
++#define toggle_btn(btn, val) do { if (val) data->buttons |= (btn);\
++ else data->buttons &= ~(btn);\
++ } while (0)
++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec) * 1000 + (t2.tv_usec - t1.tv_usec) / 1000)
++
++#define test_bit(bit, array) (array[bit / 8] & (1 << (bit % 8)))
++
++/* ------------- evdev protocol handling routines ---------------------*/
++
++static void parse_input_event(struct input_event *event, struct event_data *data)
++{
++ switch (event->type) {
++ case EV_REL:
++ switch (event->code) {
++ case REL_X:
++ data->dx = (signed char)event->value;
++ break;
++ case REL_Y:
++ data->dy = (signed char)event->value;
++ break;
++ case REL_WHEEL:
++ data->wdy += event->value;
++ break;
++ case REL_HWHEEL:
++ data->wdx += event->value;
++ break;
++ }
++ break;
++
++ case EV_ABS:
++ switch (event->code) {
++ case ABS_X:
++ data->abs_x = event->value;
++ break;
++
++ case ABS_Y:
++ data->abs_y = event->value;
++ break;
++
++ case ABS_PRESSURE:
++ data->pressure = event->value;
++ break;
++
++ case ABS_TOOL_WIDTH:
++ data->w = event->value;
++ break;
++ }
++ break;
++
++ case EV_MSC:
++ switch (event->code) {
++ case MSC_GESTURE:
++ data->w = event->value;
++ break;
++ }
++ break;
++
++
++ case EV_KEY:
++ switch(event->code) {
++ case BTN_0:
++ case BTN_LEFT:
++ toggle_btn(GPM_B_LEFT, event->value);
++ break;
++
++ case BTN_2:
++ case BTN_STYLUS2:
++ case BTN_SIDE:
++ case BTN_MIDDLE:
++ toggle_btn(GPM_B_MIDDLE, event->value);
++ break;
++
++ case BTN_STYLUS:
++ case BTN_1:
++ case BTN_RIGHT:
++ toggle_btn(GPM_B_RIGHT, event->value);
++ break;
++
++ case BTN_TOUCH:
++ data->touch = event->value ? 1 : 0;
++ break;
++
++ case BTN_TOOL_FINGER:
++ if (event->value) data->finger_count = 1;
++ break;
++
++ case BTN_TOOL_DOUBLETAP:
++ if (event->value) data->finger_count = 2;
++ break;
++
++ case BTN_TOOL_TRIPLETAP:
++ if (event->value) data->finger_count = 3;
++ break;
++
++ }
++ break;
++
++ case EV_SYNC:
++ switch(event->code) {
++ case SYN_REPORT:
++ data->synced = 1;
++ break;
++ }
++ break;
++ }
++}
++
++static void tp_figure_deltas(struct event_device *evdev, struct Gpm_Event *state)
++{
++ struct event_data *pkt = &evdev->pkt;
++
++ state->dx = state->dy = 0;
++ if (evdev->touch.touching) {
++ fx(0) = pkt->abs_x;
++ fy(0) = pkt->abs_y;
++ if (evdev->pkt_count >= 2 &&
++ evdev->touch.gesture != GESTURE_DRAG_PENDING) {
++ state->dx = ((fx(0) - fx(1)) / 2 + (fx(1) - fx(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR;
++ state->dy = ((fy(0) - fy(1)) / 2 + (fy(1) - fy(2)) / 2) / 8; //SYN_REL_DECEL_FACTOR;
++ }
++ evdev->pkt_count++;
++ } else {
++ evdev->pkt_count = 0;
++ }
++}
++
++static enum touch_type dumb_tp_detect_touch(struct event_device *evdev)
++{
++ return evdev->pkt.touch ? TOUCH_FINGERS : TOUCH_NONE;
++}
++
++static enum touch_type smart_tp_detect_touch(struct event_device *evdev)
++{
++ if (evdev->touch.touching)
++ return evdev->pkt.pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE;
++ else
++ return evdev->pkt.pressure > evdev->touch_high ? TOUCH_FINGERS : TOUCH_NONE;
++}
++
++static enum touch_type syn_detect_touch(struct event_device *evdev)
++{
++ struct event_data *pkt = &evdev->pkt;
++ enum touch_type type = TOUCH_NONE;
++
++ if (pkt->pressure > 200 || pkt->w > 10)
++ return TOUCH_PALM;
++
++ if (pkt->abs_x == 0)
++ evdev->avg_w = 0;
++ else
++ evdev->avg_w = (pkt->w - evdev->avg_w + 1) / 2;
++
++ if (evdev->touch.touching) {
++ type = pkt->pressure > evdev->touch_low ? TOUCH_FINGERS : TOUCH_NONE;
++ } else if (pkt->pressure > evdev->touch_high) {
++ int safe_w = max(pkt->w, evdev->avg_w);
++
++ if (pkt->finger_count > 1)
++ type = TOUCH_FINGERS;
++ else if (pkt->w < 2)
++ type = TOUCH_FINGERS; /* more than one finger -> not a palm */
++ else if (safe_w < 6 && evdev->prev_pressure < evdev->touch_high)
++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */
++ else if (safe_w < 7 && evdev->prev_pressure < evdev->touch_high / 2)
++ type = TOUCH_FINGERS; /* thin finger, distinct touch -> not a palm */
++ else if (pkt->pressure > evdev->prev_pressure + 1)
++ type = TOUCH_NONE; /* pressure not stable, may be a palm */
++ else if (pkt->pressure < evdev->prev_pressure - 5)
++ type = TOUCH_NONE; /* pressure not stable, may be a palm */
++ else
++ type = TOUCH_FINGERS;
++ }
++
++ evdev->prev_pressure = pkt->pressure;
++ return type;
++}
++
++static enum edge_type tp_detect_edges(struct event_device *evdev, int x, int y)
++{
++ enum edge_type edge = 0;
++
++ if (x > evdev->right_edge)
++ edge |= RIGHT_EDGE;
++ else if (x < evdev->left_edge)
++ edge |= LEFT_EDGE;
++
++ if (y < evdev->top_edge)
++ edge |= TOP_EDGE;
++ else if (y > evdev->bottom_edge)
++ edge |= BOTTOM_EDGE;
++
++ return edge;
++}
++
++static int tp_touch_expired(struct event_device *evdev)
++{
++ struct timeval now;
++
++ GET_TIME(now);
++ return DIF_TIME(evdev->touch.start, now) > evdev->tap_time;
++}
++
++static int tp_detect_tap(struct event_device *evdev)
++{
++ return !tp_touch_expired(evdev) &&
++ (evdev->touch.finger_count > 1 ||
++ (abs(evdev->pkt.abs_x - evdev->touch.x) < evdev->tap_move &&
++ abs(evdev->pkt.abs_y - evdev->touch.y) < evdev->tap_move));
++}
++
++static int tp_tap_to_buttons(struct event_device *evdev)
++{
++ enum edge_type edge;
++ if (evdev->touch.finger_count < 2) {
++ edge = tp_detect_edges(evdev, evdev->pkt.abs_x, evdev->pkt.abs_y);
++ switch (edge) {
++ case RIGHT_TOP_EDGE:
++ return GPM_B_MIDDLE;
++ break;
++ case RIGHT_BOTTOM_EDGE:
++ return GPM_B_RIGHT;
++ break;
++ default:
++ return GPM_B_LEFT;
++ break;
++ }
++ } else {
++ switch (evdev->touch.finger_count) {
++ case 2:
++ return GPM_B_MIDDLE;
++ case 3:
++ return GPM_B_RIGHT;
++ default:
++ return GPM_B_LEFT;
++ }
++ }
++}
++
++static void tp_detect_gesture(struct event_device *evdev, int timed_out, enum touch_type touch_type)
++{
++ struct touch_data *touch = &evdev->touch;
++ int was_touching = touch->touching;
++
++ touch->touching = touch_type == TOUCH_FINGERS;
++
++ if (touch->touching) {
++ if (!was_touching) {
++ GET_TIME(touch->start);
++ touch->finger_count = 0;
++ if (touch->gesture == GESTURE_TAP_PENDING) {
++ touch->gesture = GESTURE_DRAG_PENDING;
++ } else {
++ touch->x = evdev->pkt.abs_x;
++ touch->y = evdev->pkt.abs_y;
++ touch->buttons = 0;
++ }
++ } else if (touch->gesture == GESTURE_DRAG_PENDING && tp_touch_expired(evdev)) {
++ touch->gesture = GESTURE_DRAG;
++ }
++ } else {
++ if (was_touching) {
++ if (tp_detect_tap(evdev)) {
++ if (touch->gesture == GESTURE_DRAG_PENDING) {
++ touch->gesture = GESTURE_DOUBLE_TAP;
++ touch->clicks = 4;
++ } else {
++ if ((touch->buttons = tp_tap_to_buttons(evdev)) == GPM_B_LEFT) {
++ touch->gesture = GESTURE_TAP_PENDING;
++ } else {
++ touch->gesture = GESTURE_TAP;
++ touch->clicks = 2;
++ }
++ }
++ } else {
++ touch->gesture = GESTURE_NONE;
++ }
++ } else {
++ if (touch->gesture == GESTURE_TAP_PENDING && tp_touch_expired(evdev)) {
++ touch->gesture = GESTURE_TAP;
++ touch->clicks = 2;
++ }
++ }
++ }
++}
++
++static int tp_process_gesture(struct event_device *evdev, struct Gpm_Event *state)
++{
++ int next_timeout = -1;
++
++ switch(evdev->touch.gesture) {
++ case GESTURE_DOUBLE_TAP:
++ case GESTURE_TAP:
++ if (--evdev->touch.clicks == 0)
++ evdev->touch.gesture = GESTURE_NONE;
++ else
++ next_timeout = 0;
++
++ if (evdev->touch.clicks % 2)
++ state->buttons |= evdev->touch.buttons;
++ else
++ state->buttons &= ~evdev->touch.buttons;
++ break;
++
++ case GESTURE_DRAG:
++ state->buttons |= evdev->touch.buttons;
++ break;
++
++ case GESTURE_DRAG_PENDING:
++ case GESTURE_TAP_PENDING:
++ next_timeout = evdev->tap_time;
++ break;
++
++ default:
++ break;
++ }
++ return next_timeout;
++}
++
++static void tp_update_finger_count(struct event_device *evdev)
++{
++ evdev->touch.finger_count = max(evdev->pkt.finger_count, evdev->touch.finger_count);
++}
++
++static void syn_update_finger_count(struct event_device *evdev)
++{
++ if (evdev->pkt.w == 1)
++ evdev->touch.finger_count = 3;
++ else if (evdev->pkt.w == 0 && evdev->touch.finger_count != 3)
++ evdev->touch.finger_count = 2;
++ else
++ evdev->touch.finger_count = 1;
++}
++
++static int compose_gpm_event(struct event_device *evdev, int timed_out, Gpm_Event *state)
++{
++ struct event_data *pkt = &evdev->pkt;
++ enum touch_type touch_type;
++ int next_timeout = -1;
++
++ if (!timed_out) {
++ state->buttons = pkt->buttons;
++ state->wdx = pkt->wdx; state->wdy = pkt->wdy;
++ }
++
++ switch (evdev->type) {
++ case EVDEV_RELATIVE:
++ if (!timed_out) {
++ state->dx = pkt->dx; state->dy = pkt->dy;
++ if (evdev->pkt.touch)
++ state->buttons |= GPM_B_LEFT;
++ else
++ state->buttons &= ~GPM_B_LEFT;
++ }
++ break;
++
++ case EVDEV_ABSOLUTE:
++ if (!timed_out) {
++ if (pkt->abs_x < evdev->left_edge)
++ pkt->abs_x = evdev->left_edge;
++ else if (pkt->abs_x > evdev->right_edge)
++ pkt->abs_x = evdev->right_edge;
++
++ if (pkt->abs_y > evdev->bottom_edge)
++ pkt->abs_y = evdev->bottom_edge;
++ else if (pkt->abs_y < evdev->top_edge)
++ pkt->abs_y = evdev->top_edge;
++
++ state->x = (pkt->abs_x - evdev->left_edge) *
++ console.max_x / (evdev->right_edge - evdev->left_edge);
++ state->y = (pkt->abs_y - evdev->top_edge) *
++ console.max_y / (evdev->bottom_edge - evdev->top_edge);
++
++ if (evdev->y_inverted) state->y = console.max_y - state->y;
++
++ if (evdev->pkt.touch)
++ state->buttons |= GPM_B_LEFT;
++ else
++ state->buttons &= ~GPM_B_LEFT;
++ }
++ break;
++
++ case EVDEV_TOUCHPAD:
++ case EVDEV_SYNAPTICS:
++ touch_type = timed_out ? TOUCH_NONE : evdev->detect_touch(evdev);
++
++ if (touch_type != TOUCH_PALM) {
++ tp_detect_gesture(evdev, timed_out, touch_type);
++
++ if (evdev->touch.touching && !tp_touch_expired(evdev))
++ evdev->update_finger_count(evdev);
++
++ if (evdev->touch.finger_count < 2)
++ tp_figure_deltas(evdev, state);
++
++ next_timeout = tp_process_gesture(evdev, state);
++ }
++ break;
++
++ default:
++ /* should not happen */
++ gpm_report(GPM_PR_OOPS, "Bad evdev type %d", evdev->type);
++ break;
++ }
++
++ if (evdev->y_inverted) state->dy = -state->dy;
++
++ return next_timeout;
++}
++
++int M_evdev(struct micedev *dev, struct miceopt *opts,
++ unsigned char *data, struct Gpm_Event *state)
++{
++ struct event_device *evdev = dev->private;
++ struct input_event *event = (struct input_event *)data;
++ int timed_out = data == NULL;
++
++ if (!timed_out)
++ parse_input_event(event, &evdev->pkt);
++
++ if (timed_out || evdev->pkt.synced || evdev->dont_sync) {
++ dev->timeout = compose_gpm_event(evdev, timed_out, state);
++ evdev->pkt.dx = evdev->pkt.dy = 0;
++ evdev->pkt.wdx = evdev->pkt.wdy = 0;
++ evdev->pkt.finger_count = 0;
++ evdev->pkt.synced = 0;
++ return 0;
++ }
++
++ dev->timeout = -1;
++ return -1;
++}
++
++/* ------------- evdev initialization routines ---------------------*/
++
++static int evdev_get_id(int fd, struct input_id *id)
++{
++ if (ioctl(fd, EVIOCGID, id) < 0) {
++ gpm_report(GPM_PR_ERR, "evdev: cannot query device identification");
++ return -1;
++ }
++ return 0;
++}
++
++static int evdev_get_capabilities(int fd, struct evdev_capabilities *caps)
++{
++ memset(caps, 0, sizeof(*caps));
++
++ if (ioctl(fd, EVIOCGBIT(0, EV_MAX), caps->evbits) < 0) {
++ gpm_report(GPM_PR_ERR, "evdev: cannot query device capabilities");
++ return -1;
++ }
++
++ if (test_bit(EV_ABS, caps->evbits) &&
++ ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(caps->absbits)), caps->absbits) < 0) {
++ gpm_report(GPM_PR_ERR, "evdev: cannot query ABS device capabilities");
++ return -1;
++ }
++
++ if (test_bit(EV_KEY, caps->evbits) &&
++ ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(caps->keybits)), caps->keybits) < 0) {
++ gpm_report(GPM_PR_ERR, "evdev: cannot query KEY device capabilities");
++ return -1;
++ }
++
++ if (test_bit(EV_MSC, caps->evbits) &&
++ ioctl(fd, EVIOCGBIT(EV_MSC, sizeof(caps->mscbits)), caps->mscbits) < 0) {
++ /* don't complain as 2.4 kernels didnt have it
++ gpm_report(GPM_PR_ERR, "evdev: cannot query MSC device capabilities");
++ return -1;
++ */
++ }
++ return 0;
++}
++
++static int evdev_query_axis(int fd, int axis, int *axis_min, int *axis_max)
++{
++ struct input_absinfo axis_info;
++
++ if (ioctl(fd, EVIOCGABS(axis), &axis_info) == -1) {
++ gpm_report(GPM_PR_ERR, "evdev: could not query axis data");
++ return -1;
++ }
++
++ *axis_min = axis_info.minimum;
++ *axis_max = axis_info.maximum;
++ return 0;
++}
++
++static int evdev_get_limits(int fd, struct event_device *evdev,
++ struct evdev_capabilities *caps)
++{
++ if (test_bit(ABS_X, caps->absbits) &&
++ evdev_query_axis(fd, ABS_X, &evdev->left_edge, &evdev->right_edge) < 0)
++ return -1;
++
++ if (test_bit(ABS_Y, caps->absbits) &&
++ evdev_query_axis(fd, ABS_Y, &evdev->top_edge, &evdev->bottom_edge) < 0)
++ return -1;
++
++ return 0;
++}
++
++static int is_synaptics(struct input_id *id)
++{
++ return id->bustype == BUS_I8042 && id->vendor == 0x0002 && id->product == PSMOUSE_SYNAPTICS;
++}
++
++static enum evdev_type evdev_guess_type(struct input_id *id, struct evdev_capabilities *caps)
++{
++ if (test_bit(EV_ABS, caps->evbits)) {
++ if (is_synaptics(id))
++ return EVDEV_SYNAPTICS;
++
++ if (test_bit(BTN_TOUCH, caps->keybits) && caps->keybits[BTN_MOUSE / 8])
++ return EVDEV_TOUCHPAD;
++
++ return EVDEV_ABSOLUTE;
++ }
++
++ if (!test_bit(EV_REL, caps->evbits)) {
++ gpm_report(GPM_PR_ERR,
++ "evdev: device does not report neither absolute nor relative coordinates");
++ return EVDEV_UNKNOWN;
++ }
++
++ return EVDEV_RELATIVE;
++}
++
++static enum evdev_type evdev_str_to_type(const char *type)
++{
++ if (!strcmp(type, "relative")) {
++ return EVDEV_RELATIVE;
++ } else if (!strcmp(type, "absolute")) {
++ return EVDEV_ABSOLUTE;
++ } else if (!strcmp(type, "touchpad")) {
++ return EVDEV_TOUCHPAD;
++ } else if (!strcmp(type, "synaptics")) {
++ return EVDEV_SYNAPTICS;
++ } else {
++ gpm_report(GPM_PR_ERR, "evdev: unknown type '%s'", type);
++ return EVDEV_UNKNOWN;
++ }
++}
++
++static void warn_if_present(struct option_helper *optinfo, const char *name, const char *type)
++{
++ if (is_option_present(optinfo, name))
++ gpm_report(GPM_PR_WARN,
++ "evdev: option '%s' is not valud for type '%s', ignored",
++ name, type);
++}
++
++// -o type=(auto|synaptics|touchpad|relative|absolute),y_inverse,
++// left=1234,right=1234,top=1234,bottom=1234,
++// touch_high=30,touch_low=25,tap_time=30,tap_move=100
++static int evdev_apply_options(struct event_device *evdev, char *optstring)
++{
++ char *type = "auto";
++ struct option_helper optinfo[] = {
++ { "type", OPT_STRING, u: { sptr: &type } },
++ { "y_inverted", OPT_BOOL, u: { iptr: &evdev->y_inverted }, value: 1 },
++ { "left", OPT_INT, u: { iptr: &evdev->left_edge } },
++ { "right", OPT_INT, u: { iptr: &evdev->right_edge } },
++ { "top", OPT_INT, u: { iptr: &evdev->top_edge } },
++ { "bottom", OPT_INT, u: { iptr: &evdev->bottom_edge } },
++ { "touch_high", OPT_INT, u: { iptr: &evdev->touch_high } },
++ { "touch_low", OPT_INT, u: { iptr: &evdev->touch_low } },
++ { "tap_time", OPT_INT, u: { iptr: &evdev->tap_time } },
++ { "tap_move", OPT_INT, u: { iptr: &evdev->tap_move } },
++ { "", OPT_END }
++ };
++
++ if (parse_options("evdev", optstring, ',', optinfo) < 0)
++ return -1;
++
++ if (strcmp(type, "auto"))
++ evdev->type = evdev_str_to_type(type);
++
++ switch (evdev->type) {
++ case EVDEV_RELATIVE:
++ warn_if_present(optinfo, "left", type);
++ warn_if_present(optinfo, "right", type);
++ warn_if_present(optinfo, "top", type);
++ warn_if_present(optinfo, "bottom", type);
++ warn_if_present(optinfo, "tap_move", type);
++ warn_if_present(optinfo, "tap_time", type);
++ warn_if_present(optinfo, "touch_high", type);
++ warn_if_present(optinfo, "touch_low", type);
++ break;
++
++ case EVDEV_ABSOLUTE:
++ warn_if_present(optinfo, "tap_move", type);
++ warn_if_present(optinfo, "tap_time", type);
++ warn_if_present(optinfo, "touch_high", type);
++ warn_if_present(optinfo, "touch_low", type);
++ break;
++
++ case EVDEV_TOUCHPAD:
++ break;
++
++ case EVDEV_SYNAPTICS:
++ warn_if_present(optinfo, "y_inverted", type);
++ break;
++
++ default:
++ return -1;
++ }
++ return 0;
++}
++
++int I_evdev(struct micedev *dev, struct miceopt *opts, Gpm_Type *type)
++{
++ struct input_id id;
++ struct evdev_capabilities caps;
++ struct event_device *evdev;
++
++ if (!dev->private) { /* called first time, not re-init */
++ if (!(dev->private = evdev = malloc(sizeof(*evdev))))
++ gpm_report(GPM_PR_OOPS, "Can't allocate memory for event device");
++
++ memset(evdev, 0, sizeof(*evdev));
++
++ if (evdev_get_id(dev->fd, &id))
++ goto init_fail;
++
++ if (evdev_get_capabilities(dev->fd, &caps))
++ goto init_fail;
++
++ evdev->type = evdev_guess_type(&id, &caps);
++
++ /* load default values - suitable for my synaptics ;P */
++ evdev->left_edge = 1900;
++ evdev->right_edge = 5300;
++ evdev->top_edge = 2000;
++ evdev->bottom_edge = 3900;
++ evdev->tap_time = 180;
++ evdev->tap_move = 220;
++ evdev->touch_high = 30;
++ evdev->touch_low = 25;
++
++ if (evdev->type == EVDEV_ABSOLUTE && evdev_get_limits(dev->fd, evdev, &caps) < 0)
++ goto init_fail;
++
++ if (evdev_apply_options(evdev, opts->text) < 0)
++ goto init_fail;
++
++ if (!test_bit(EV_SYNC, caps.evbits)) {
++ evdev->dont_sync = 1;
++ if (evdev->type == EVDEV_TOUCHPAD || evdev->type == EVDEV_SYNAPTICS) {
++ gpm_report(GPM_PR_ERR,
++ "evdev: The running kernel lacks EV_SYNC support which is required for touchpad/synaptics mode");
++ goto init_fail;
++ }
++ }
++
++ switch (evdev->type) {
++ case EVDEV_RELATIVE:
++ gpm_report(GPM_PR_INFO, "evdev: selected Relative mode");
++ if (!test_bit(EV_REL, caps.evbits))
++ gpm_report(GPM_PR_WARN, "evdev: selected relative mode but device does not report any relative events");
++ break;
++
++ case EVDEV_ABSOLUTE:
++ gpm_report(GPM_PR_INFO, "evdev: selected Absolute mode");
++ if (evdev->right_edge <= evdev->left_edge) {
++ gpm_report(GPM_PR_ERR, "evdev: right edge value should be gerater than left");
++ goto init_fail;
++ }
++ if (evdev->bottom_edge <= evdev->top_edge) {
++ gpm_report(GPM_PR_ERR, "evdev: bottom edge value should be gerater than top");
++ goto init_fail;
++ }
++ if (!test_bit(EV_ABS, caps.evbits))
++ gpm_report(GPM_PR_WARN, "evdev: selected absolute mode but device does not report any absolute events");
++ opts->absolute = 1;
++ break;
++
++ case EVDEV_TOUCHPAD:
++ gpm_report(GPM_PR_INFO, "evdev: selected Touchpad mode");
++ if (!test_bit(EV_ABS, caps.evbits))
++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report any absolute events");
++ if (test_bit(ABS_PRESSURE, caps.absbits))
++ evdev->detect_touch = smart_tp_detect_touch;
++ else if (test_bit(BTN_TOUCH, caps.keybits))
++ evdev->detect_touch = dumb_tp_detect_touch;
++ else
++ gpm_report(GPM_PR_WARN, "evdev: selected touchpad mode but device does not report pressure not touch events");
++ evdev->update_finger_count = tp_update_finger_count;
++ break;
++
++ case EVDEV_SYNAPTICS:
++ gpm_report(GPM_PR_INFO, "evdev: selected Synaptics mode");
++ if (!is_synaptics(&id))
++ gpm_report(GPM_PR_WARN, "evdev: idevice isn't identified as Synaptics");
++ if (!test_bit(EV_ABS, caps.evbits))
++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report any absolute events");
++ if (!test_bit(ABS_PRESSURE, caps.absbits))
++ gpm_report(GPM_PR_WARN, "evdev: selected synaptics mode but device does not report pressure");
++ if (test_bit(EV_MSC, caps.evbits) && test_bit(MSC_GESTURE, caps.mscbits)) {
++ /* this is compatibility mode with pre 2.6-test6 kernels */
++ evdev->update_finger_count = syn_update_finger_count;
++ evdev->y_inverted = 1;
++ } else {
++ evdev->update_finger_count = tp_update_finger_count;
++ }
++ evdev->detect_touch = syn_detect_touch;
++ break;
++
++ default:
++ break;
++ }
++ }
++
++ return 0;
++
++init_fail:
++ free(dev->private);
++ return -1;
++}
++
+diff -urN gpm-1.20.1/src/gpm.c gpm/src/gpm.c
+--- gpm-1.20.1/src/gpm.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/gpm.c 2003-10-02 01:22:42.000000000 -0500
+@@ -24,1108 +24,607 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h> /* strerror(); ?!? */
++#include <limits.h>
+ #include <errno.h>
+ #include <unistd.h> /* select(); */
+ #include <signal.h> /* SIGPIPE */
+ #include <time.h> /* time() */
+-#include <sys/param.h>
+ #include <sys/fcntl.h> /* O_RDONLY */
+ #include <sys/wait.h> /* wait() */
+-#include <sys/stat.h> /* mkdir() */
+ #include <sys/time.h> /* timeval */
+-#include <sys/types.h> /* socket() */
+-#include <sys/socket.h> /* socket() */
+-#include <sys/un.h> /* struct sockaddr_un */
+-
+-#include <linux/vt.h> /* VT_GETSTATE */
+-#include <sys/kd.h> /* KDGETMODE */
+-#include <termios.h> /* winsize */
+
+ #include "headers/gpmInt.h"
+ #include "headers/message.h"
+-
+-/* who the f*** runs gpm without glibc? doesn't have dietlibc __socklent_t? */
+-#if !defined(__GLIBC__)
+- typedef unsigned int __socklen_t;
+-#endif /* __GLIBC__ */
++#include "headers/console.h"
++#include "headers/selection.h"
++#include "headers/client.h"
+
+ #ifndef max
+ #define max(a,b) ((a)>(b) ? (a) : (b))
+ #endif
+
+-extern int errno;
+-
+-static void gpm_killed(int);
+-
+-/*
+- * all the values duplicated for dual-mouse operation are
+- * now in this structure (see gpmInt.h)
+- * mouse_table[0] is single mouse, mouse_table[1] and mouse_table[2]
+- * are copied data from mouse_table[0] for dual mouse operation.
+- */
+-
+-struct mouse_features mouse_table[3] = {
+- {
+- DEF_TYPE, DEF_DEV, DEF_SEQUENCE,
+- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, 0 /* scaley */,
+- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP,
+- (char *)NULL /* extra */,
+- (Gpm_Type *)NULL,
+- -1
+- }
+-};
+-struct mouse_features *which_mouse;
+-
+-/* These are only the 'global' options */
+-
+-char *opt_lut=DEF_LUT;
+-int opt_test=DEF_TEST;
+-int opt_ptrdrag=DEF_PTRDRAG;
+-int opt_double=0;
+-int opt_aged = 0;
+-char *opt_special=NULL; /* special commands, like reboot or such */
+-int opt_rawrep=0;
+-Gpm_Type *repeated_type=0;
+-
+-static int opt_resize=0; /* not really an option */
+-struct winsize win;
+-int maxx, maxy;
+-int fifofd=-1;
+-
+-int eventFlag=0;
+-Gpm_Cinfo *cinfo[MAX_VC+1];
+-fd_set selSet, readySet, connSet;
+-
+-time_t last_selection_time;
+-time_t opt_age_limit = 0;
+-
+-/* BRAINDEAD..ok not really, but got to leave anyway... FIXME */
+-/* argc and argv for mice initialization */
+-static int mouse_argc[3]; /* 0 for default (unused) and two mice */
+-static char **mouse_argv[3]; /* 0 for default (unused) and two mice */
+-
+-/*===================================================================*/
+-/*
+- * first, all the stuff that used to be in gpn.c (i.e., not main-loop)
+- */
+-/*-------------------------------------------------------------------*/
++#ifndef min
++#define min(a,b) ((a)<(b) ? (a) : (b))
++#endif
+
+-/* build_argv is used for mouse initialization routines */
+-static char **build_argv(char *argv0, char *str, int *argcptr, char sep)
+-{
+- int argc = 1;
+- char **argv;
+- char *s;
+-
+- /* argv0 is never NULL, but the extra string may well be */
+- if (str)
+- for (s=str; sep && (s = strchr(s, sep)); argc++) s++;
+-
+- argv = calloc(argc+2, sizeof(char **));
+- if (!argv) gpm_report(GPM_PR_OOPS,GPM_MESS_ALLOC_FAILED);
+- argv[0] = argv0;
+-
+- if (!str) {
+- *argcptr = argc; /* 1 */
+- return argv;
+- }
+- /* else, add arguments */
+- s = argv[1] = strdup(str);
+- argc = 2; /* first to fill */
+-
+- /* ok, now split: the first one is in place, and s is the whole string */
+- for ( ; sep && (s = strchr(s, sep)) ; argc++) {
+- *s = '\0';
+- s++;
+- argv[argc] = s;
+- }
+- *argcptr = argc;
+- return argv;
+-}
++#define NULL_SET ((fd_set *)NULL)
++#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
++#define DIF_TIME(t1,t2) ((t2.tv_sec - t1.tv_sec)*1000 + (t2.tv_usec - t1.tv_usec)/1000)
+
+-/*-------------------------------------------------------------------*/
+-/* The old console option is removed. We are taking stderr now
+- * In the next update there should also be support for syslog
+- ********************************************************************/
+
+-static inline int open_console(const int mode)
+-{
+- int fd;
++enum mouse_rslt { MOUSE_NO_DATA, MOUSE_DATA_OK, MOUSE_MORE_DATA };
+
+- if ((fd=open(option.consolename, mode)) < 0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON);
+- return fd;
+-}
++extern int errno;
+
+-/*-------------------------------------------------------------------*/
+-static inline int wait_text(int *fdptr)
+-{
+- int fd;
+- int kd_mode;
++char *opt_special=NULL; /* special commands, like reboot or such */
++struct repeater repeater;
+
+- close(*fdptr);
+- do
+- {
+- sleep(2);
+- fd = open_console(O_RDONLY);
+- if (ioctl(fd, KDGETMODE, &kd_mode)<0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE);
+- close(fd);
+- }
+- while (kd_mode != KD_TEXT) ;
+-
+- /* reopen, reinit (the function is only used if we have one mouse device) */
+- if ((*fdptr=open(opt_dev,O_RDWR))<0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev);
+- if (m_type->init)
+- m_type=(m_type->init)(*fdptr, m_type->flags, m_type, mouse_argc[1],
+- mouse_argv[1]);
+- return (1);
+-}
++static int console_resized; /* not really an option */
+
+ /*-------------------------------------------------------------------*/
+-static inline void selection_copy(int x1, int y1, int x2, int y2, int mode)
++static void gpm_killed(int signo)
+ {
+-/*
+- * The approach in "selection" causes a bus error when run under SunOS 4.1
+- * due to alignment problems...
+- */
+- unsigned char buf[6*sizeof(short)];
+- unsigned short *arg = (unsigned short *)buf + 1;
+- int fd;
+-
+- buf[sizeof(short)-1] = 2; /* set selection */
+-
+- arg[0]=(unsigned short)x1;
+- arg[1]=(unsigned short)y1;
+- arg[2]=(unsigned short)x2;
+- arg[3]=(unsigned short)y2;
+- arg[4]=(unsigned short)mode;
+-
+- if ((fd=open_console(O_WRONLY))<0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON);
+- /* FIXME: should be replaced with string constant (headers/message.h) */
+- gpm_report(GPM_PR_DEBUG,"ctl %i, mode %i",(int)*buf, arg[4]);
+- if (ioctl(fd, TIOCLINUX, buf+sizeof(short)-1) < 0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX);
+- close(fd);
+-
+- if (mode < 3) {
+- opt_aged = 0;
+- last_selection_time = time(0);
++ if (signo == SIGWINCH) {
++ gpm_report(GPM_PR_WARN, GPM_MESS_RESIZING, option.progname, getpid());
++ console_resized = 1;
++ } else {
++ if (signo == SIGUSR1)
++ gpm_report(GPM_PR_WARN, GPM_MESS_KILLED_BY, option.progname, getpid(), option.progname);
++ exit(0);
+ }
+ }
+
+-
+-/*-------------------------------------------------------------------*/
+-/* comment missing; FIXME */
+-/*-------------------------------------------------------------------*/
+-static inline void selection_paste(void)
+-{
+- char c=3;
+- int fd;
+-
+- if (!opt_aged && (0 != opt_age_limit) &&
+- (last_selection_time + opt_age_limit < time(0))) {
+- opt_aged = 1;
+- }
+-
+- if (opt_aged) {
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_SKIP_PASTE);
+- return;
+- }
+-
+- fd=open_console(O_WRONLY);
+- if(ioctl(fd, TIOCLINUX, &c) < 0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX);
+- close(fd);
+-}
+-
+-/*-------------------------------------------------------------------*/
+-static inline int do_selection(Gpm_Event *event) /* returns 0, always */
+-{
+- static int x1=1, y1=1, x2, y2;
+-#define UNPOINTER() 0
+-
+- x2=event->x; y2=event->y;
+- switch(GPM_BARE_EVENTS(event->type)) {
+- case GPM_MOVE:
+- if (x2<1) x2++; else if (x2>maxx) x2--;
+- if (y2<1) y2++; else if (y2>maxy) y2--;
+- selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */
+- return 0;
+-
+- case GPM_DRAG:
+- if (event->buttons==GPM_B_LEFT) {
+- if (event->margin) /* fix margins */
+- switch(event->margin) {
+- case GPM_TOP: x2=1; y2++; break;
+- case GPM_BOT: x2=maxx; y2--; break;
+- case GPM_RGT: x2--; break;
+- case GPM_LFT: y2<=y1 ? x2++ : (x2=maxx, y2--); break;
+- }
+- selection_copy(x1,y1,x2,y2,event->clicks);
+- if (event->clicks>=opt_ptrdrag && !event->margin) /* pointer */
+- selection_copy(x2,y2,x2,y2,3);
+- } /* if */
+- return 0;
+-
+- case GPM_DOWN:
+- switch (event->buttons) {
+- case GPM_B_LEFT:
+- x1=x2; y1=y2;
+- selection_copy(x1,y1,x2,y2,event->clicks); /* start selection */
+- return 0;
+-
+- case GPM_B_MIDDLE:
+- selection_paste();
+- return 0;
+-
+- case GPM_B_RIGHT:
+- if (opt_three==1)
+- selection_copy(x1,y1,x2,y2,event->clicks);
+- else
+- selection_paste();
+- return 0;
+- }
+- } /* switch above */
+- return 0;
+-}
+-
+-/*-------------------------------------------------------------------*/
+-/* returns 0 if the event has not been processed, and 1 if it has */
+-static inline int do_client(Gpm_Cinfo *cinfo, Gpm_Event *event)
+-{
+- Gpm_Connect info=cinfo->data;
+- int fd=cinfo->fd;
+- /* value to return if event is not used */
+- int res = !(info.defaultMask & event->type);
+-
+- /* instead of returning 0, scan the stack of clients */
+- if ((info.minMod & event->modifiers) < info.minMod)
+- goto scan;
+- if ((info.maxMod & event->modifiers) < event->modifiers)
+- goto scan;
+-
+- /* if not managed, use default mask */
+- if (!(info.eventMask & GPM_BARE_EVENTS(event->type))) {
+- if (res) return res;
+- else goto scan;
+- }
+-
+- /* WARNING */ /* This can generate a SIGPIPE... I'd better catch it */
+- MAGIC_P((write(fd,&magic, sizeof(int))));
+- write(fd,event, sizeof(Gpm_Event));
+-
+- return info.defaultMask & GPM_HARD ? res : 1; /* HARD forces pass-on */
+-
+- scan:
+- if (cinfo->next != 0)
+- return do_client (cinfo->next, event); /* try the next */
+- return 0; /* no next, not used */
+-}
+-
+ /*-------------------------------------------------------------------
+ * fetch the actual device data from the mouse device, dependent on
+ * what Gpm_Type is being passed.
+ *-------------------------------------------------------------------*/
+-static inline char *getMouseData(int fd, Gpm_Type *type, int kd_mode)
++static char *getMouseData(int fd, Gpm_Type *type, int text_mode)
+ {
+ static unsigned char data[32]; /* quite a big margin :) */
+- char *edata=data+type->packetlen;
+- int howmany=type->howmany;
+- int i,j;
++ unsigned char *pdata;
++ int len, togo;
+
+-/*....................................... read and identify one byte */
+-
+- if (read(fd, data, howmany)!=howmany) {
+- if (opt_test) exit(0);
++ /*....................................... read and identify one byte */
++ if (read(fd, data, type->howmany) != type->howmany) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_READ_FIRST, strerror(errno));
+ return NULL;
+ }
+
+- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep)
+- write(fifofd, data, howmany);
++ if (!text_mode && repeater.fd != -1 && repeater.raw)
++ write(repeater.fd, data, type->howmany);
+
+- if ((data[0]&(m_type->proto)[0]) != (m_type->proto)[1]) {
+- if (m_type->getextra == 1) {
+- data[1]=GPM_EXTRA_MAGIC_1; data[2]=GPM_EXTRA_MAGIC_2;
+- gpm_report(GPM_PR_DEBUG,GPM_EXTRA_DATA,data[0]);
++ if ((data[0] & type->proto[0]) != type->proto[1]) {
++ if (type->getextra == 1) {
++ data[1] = GPM_EXTRA_MAGIC_1; data[2] = GPM_EXTRA_MAGIC_2;
++ gpm_report(GPM_PR_DEBUG, GPM_EXTRA_DATA, data[0]);
+ return data;
+ }
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_PROT_ERR);
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_PROT_ERR);
+ return NULL;
+ }
+
+-/*....................................... read the rest */
++ /*....................................... read the rest */
+
+ /*
+ * well, this seems to work almost right with ps2 mice. However, I've never
+ * tried ps2 with the original selection package, which called usleep()
+ */
+-
+- if((i=m_type->packetlen-howmany)) /* still to get */
++ if ((togo = type->packetlen - type->howmany)) { /* still to get */
++ pdata = &data[type->howmany];
+ do {
+- j = read(fd,edata-i,i); /* edata is pointer just after data */
+- if (kd_mode!=KD_TEXT && fifofd != -1 && opt_rawrep && j > 0)
+- write(fifofd, edata-i, j);
+- i -= j;
+- } while (i && j);
+-
+- if (i) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_READ_REST, strerror(errno));
++ if ((len = read(fd, pdata, togo)) == 0)
++ break;
++ if (!text_mode && repeater.fd != -1 && repeater.raw && len > 0)
++ write(repeater.fd, pdata, len);
++ pdata += len;
++ togo -= len;
++ } while (togo);
++ }
++
++ if (togo) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_READ_REST, strerror(errno));
+ return NULL;
+ }
+
+- if ((data[1]&(m_type->proto)[2]) != (m_type->proto)[3]) {
+- gpm_report(GPM_PR_INFO,GPM_MESS_SKIP_DATA);
++ if ((data[1] & type->proto[2]) != type->proto[3]) {
++ gpm_report(GPM_PR_INFO, GPM_MESS_SKIP_DATA);
+ return NULL;
+ }
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_DATA_4,data[0],data[1],data[2],data[3]);
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_DATA_4, data[0], data[1], data[2], data[3]);
+ return data;
+ }
+
+-
+-static int statusX,statusY,statusB; /* to return info */
+-static int statusC=0; /* clicks */
+-void get_console_size(Gpm_Event *ePtr);
+-
+-/*-------------------------------------------------------------------
+- * call getMouseData to get hardware device data, call mouse device's fun()
+- * to retrieve the hardware independent event data, then optionally repeat
+- * the data via repeat_fun() to the repeater device
+- *-------------------------------------------------------------------*/
+-static inline int processMouse(int fd, Gpm_Event *event, Gpm_Type *type,
+- int kd_mode)
++/*-------------------------------------------------------------------*/
++void handle_console_resize(Gpm_Event *event)
+ {
+- char *data;
+- static int fine_dx, fine_dy;
+- static int i, j, m;
+- static Gpm_Event nEvent;
+- static struct vt_stat stat;
+- static struct timeval tv1={0,0}, tv2; /* tv1==0: first click is single */
+- static struct timeval timeout={0,0};
+- fd_set fdSet;
+- static int newB=0, oldB=0, oldT=0; /* old buttons and Type to chain events */
+- /* static int buttonlock, buttonlockflag; */
+-
+-#define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
+-#define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \
+- (t2.tv_usec-t1.tv_usec)/1000)
+-
+-
+- oldT=event->type;
+-
+- if (eventFlag) {
+- eventFlag=0;
+-
+- if (m_type->absolute) { /* a pen or other absolute device */
+- event->x=nEvent.x;
+- event->y=nEvent.y;
+- }
+- event->dx=nEvent.dx;
+- event->dy=nEvent.dy;
+- event->buttons=nEvent.buttons;
+- } else {
+- event->dx=event->dy=0;
+- event->wdx=event->wdy=0;
+- nEvent.modifiers = 0; /* some mice set them */
+- FD_ZERO(&fdSet); FD_SET(fd,&fdSet); i=0;
+-
+- do { /* cluster loop */
+- if(((data=getMouseData(fd,m_type,kd_mode))==NULL)
+- || ((*(m_type->fun))(&nEvent,data)==-1) ) {
+- if (!i) return 0;
+- else break;
+- }
+-
+- event->modifiers = nEvent.modifiers; /* propagate modifiers */
+-
+- /* propagate buttons */
+- nEvent.buttons = (opt_sequence[nEvent.buttons&7]&7) |
+- (nEvent.buttons & ~7); /* change the order */
+- oldB=newB; newB=nEvent.buttons;
+- if (!i) event->buttons=nEvent.buttons;
+-
+- if (oldB!=newB) {
+- eventFlag = (i!=0)*(which_mouse-mouse_table); /* 1 or 2 */
+- break;
+- }
+-
+- /* propagate movement */
+- if (!(m_type->absolute)) { /* mouse */
+- if (abs(nEvent.dx)+abs(nEvent.dy) > opt_delta)
+- nEvent.dx*=opt_accel, nEvent.dy*=opt_accel;
+-
+- /* increment the reported dx,dy */
+- event->dx+=nEvent.dx;
+- event->dy+=nEvent.dy;
+- } else { /* a pen */
+- /* get dx,dy to check if there has been movement */
+- event->dx = (nEvent.x) - (event->x);
+- event->dy = (nEvent.y) - (event->y);
+- }
+-
+- /* propagate wheel */
+- event->wdx += nEvent.wdx;
+- event->wdy += nEvent.wdy;
+-
+- select(fd+1,&fdSet,(fd_set *)NULL,(fd_set *)NULL,&timeout/* zero */);
+-
+- } while (i++ <opt_cluster && nEvent.buttons==oldB && FD_ISSET(fd,&fdSet));
+-
+- } /* if(eventFlag) */
+-
+-/*....................................... update the button number */
++ int old_x, old_y;
++ struct micetab *mouse;
+
+- if ((event->buttons&GPM_B_MIDDLE) && !opt_three) opt_three++;
++ old_x = console.max_x; old_y = console.max_y;
++ refresh_console_size();
++ if (!old_x) { /* first invocation, place the pointer in the middle */
++ event->x = console.max_x / 2;
++ event->y = console.max_y / 2;
++ } else { /* keep the pointer in the same position where it was */
++ event->x = event->x * console.max_x / old_x;
++ event->y = event->y * console.max_y / old_y;
++ }
+
+-/*....................................... we're a repeater, aren't we? */
++ for (mouse = micelist; mouse; mouse = mouse->next) {
++ /*
++ * the following operation is based on the observation that 80x50
++ * has square cells. (An author-centric observation ;-)
++ */
++ mouse->options.scaley = mouse->options.scalex * 50 * console.max_x / 80 / console.max_y;
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_X_Y_VAL,
++ mouse->options.scalex, mouse->options.scaley);
++ }
++}
+
+- if (kd_mode!=KD_TEXT) {
+- if (fifofd != -1 && ! opt_rawrep) {
+- if (m_type->absolute) { /* hof Wed Feb 3 21:43:28 MET 1999 */
+- /* prepare the values from a absolute device for repeater mode */
+- static struct timeval rept1,rept2;
+- gettimeofday(&rept2, (struct timezone *)NULL);
+- if (((rept2.tv_sec -rept1.tv_sec)
+- *1000+(rept2.tv_usec-rept1.tv_usec)/1000)>250) {
+- event->dx=0;
+- event->dy=0;
+- }
+- rept1=rept2;
+-
+- event->dy=event->dy*((win.ws_col/win.ws_row)+1);
+- event->x=nEvent.x;
+- event->y=nEvent.y;
+- }
+- repeated_type->repeat_fun(event, fifofd); /* itz Jan 11 1999 */
++static void handle_repeater(int absolute_dev, Gpm_Event *new_event, Gpm_Event *event)
++{
++ static struct timeval last;
++ struct timeval now;
++
++ if (absolute_dev) {
++ /* prepare the values from a absolute device for repeater mode */
++ GET_TIME(now);
++ if (((now.tv_sec - last.tv_sec) * 1000 +
++ (now.tv_usec - last.tv_usec) / 1000) > 250) {
++ event->dx = 0;
++ event->dy = 0;
+ }
+- return 0; /* no events nor information for clients */
+- } /* first if of these three */
+-
+-/*....................................... no, we arent a repeater, go on */
++ last = now;
+
+- /* use fine delta values now, if delta is the information */
+- if (!(m_type)->absolute) {
+- fine_dx+=event->dx; fine_dy+=event->dy;
+- event->dx=fine_dx/opt_scale; event->dy=fine_dy/opt_scaley;
+- fine_dx %= opt_scale; fine_dy %= opt_scaley;
++ event->dy = event->dy * ((console.max_x / console.max_y) + 1);
++ event->x = new_event->x;
++ event->y = new_event->y;
+ }
++ repeater.type->repeat_fun(event, repeater.fd);
++}
+
+- /* up and down, up and down, ... who does a do..while(0) loop ???
+- and then makes a break into it... argh ! */
+-
+- if (!event->dx && !event->dy && (event->buttons==oldB))
+- do { /* so to break */
+- static long awaketime;
+- /*
+- * Ret information also if never happens, but enough time has elapsed.
+- * Note: return 1 will segfault due to missing event->vc; FIXME!
+- */
+- if (time(NULL)<=awaketime) return 0;
+- awaketime=time(NULL)+1;
+- break;
+- } while (0);
+-
+-/*....................................... fill missing fields */
+-
+- event->x+=event->dx, event->y+=event->dy;
+- statusB=event->buttons;
+-
+- i=open_console(O_RDONLY);
+- /* modifiers */
+- j = event->modifiers; /* save them */
+- event->modifiers=6; /* code for the ioctl */
+- if (ioctl(i,TIOCLINUX,&(event->modifiers))<0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE);
+- event->modifiers |= j; /* add mouse-specific bits */
+-
+- /* status */
+- j = stat.v_active;
+- if (ioctl(i,VT_GETSTATE,&stat)<0) gpm_report(GPM_PR_OOPS,GPM_MESS_GET_CONSOLE_STAT);
+-
+- /*
+- * if we changed console, request the current console size,
+- * as different consoles can be of different size
+- */
+- if (stat.v_active != j)
+- get_console_size(event);
+- close(i);
+-
+- event->vc = stat.v_active;
+-
+- if (oldB==event->buttons)
+- event->type = (event->buttons ? GPM_DRAG : GPM_MOVE);
+- else
+- event->type = (event->buttons > oldB ? GPM_DOWN : GPM_UP);
+-
++static void calculate_clicks(Gpm_Event *event, int click_tmo)
++{
++ static struct timeval release;
++ struct timeval now;
++
+ switch(event->type) { /* now provide the cooked bits */
+ case GPM_DOWN:
+- GET_TIME(tv2);
+- if (tv1.tv_sec && (DIF_TIME(tv1,tv2)<opt_time)) /* check first click */
+- statusC++, statusC%=3; /* 0, 1 or 2 */
++ GET_TIME(now);
++ if (release.tv_sec && (DIF_TIME(release, now) < click_tmo)) /* check first click */
++ event->clicks++, event->clicks %= 3; /* 0, 1 or 2 */
+ else
+- statusC=0;
+- event->type|=(GPM_SINGLE<<statusC);
++ event->clicks = 0;
++ event->type |= GPM_SINGLE << event->clicks;
+ break;
+
+ case GPM_UP:
+- GET_TIME(tv1);
+- event->buttons^=oldB; /* for button-up, tell which one */
+- event->type|= (oldT&GPM_MFLAG);
+- event->type|=(GPM_SINGLE<<statusC);
++ GET_TIME(release);
++ event->type |= GPM_SINGLE << event->clicks;
+ break;
+
+ case GPM_DRAG:
+- event->type |= GPM_MFLAG;
+- event->type|=(GPM_SINGLE<<statusC);
++ event->type |= GPM_SINGLE << event->clicks;
+ break;
+
+ case GPM_MOVE:
+- statusC=0;
++ event->clicks = 0;
++
+ default:
+ break;
+ }
+- event->clicks=statusC;
++}
++
++static void snap_to_screen_limits(Gpm_Event *event)
++{
++ int extent;
+
+-/* UGLY - FIXME! */
+-/* The current policy is to force the following behaviour:
+- * - At buttons up, must fit inside the screen, though flags are set.
+- * - At button down, allow going outside by one single step
+- */
++ /* The current policy is to force the following behaviour:
++ * - At buttons up, must fit inside the screen, though flags are set.
++ * - At button down, allow going outside by one single step
++ * DTOR: Midnight Commander seems to want the opposite...
++ */
+
++ extent = (event->type & (GPM_DRAG|GPM_UP)) ? 1 : 0;
+
+ /* selection used 1-based coordinates, so do I */
+-
+ /*
+ * 1.05: only one margin is current. Y takes priority over X.
+- * The i variable is how much margin is allowed. "m" is which one is there.
+ */
+
+- m = 0;
+- i = ((event->type&(GPM_DRAG|GPM_UP))!=0); /* i is boolean */
+-
+- if (event->y>win.ws_row) {event->y=win.ws_row+1-!i; i=0; m = GPM_BOT;}
+- else if (event->y<=0) {event->y=1-i; i=0; m = GPM_TOP;}
+-
+- if (event->x>win.ws_col) {event->x=win.ws_col+1-!i; if (!m) m = GPM_RGT;}
+- else if (event->x<=0) {event->x=1-i; if (!m) m = GPM_LFT;}
++ event->margin = 0;
+
+- event->margin=m;
++ if (event->y > console.max_y) {
++ event->y = console.max_y + extent;
++ extent = 0;
++ event->margin = GPM_BOT;
++ } else if (event->y <= 0) {
++ event->y = 1 - extent;
++ extent = 0;
++ event->margin = GPM_TOP;
++ }
+
+- gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i",
+- event->dx,event->dy,
+- event->x,event->y,
+- event->buttons, event->vc,
+- event->clicks);
++ if (event->x > console.max_x) {
++ event->x = console.max_x + extent;
++ if (!event->margin) event->margin = GPM_RGT;
++ } else if (event->x <= 0) {
++ event->x = 1 - extent;
++ if (!event->margin) event->margin = GPM_LFT;
++ }
++}
+
+- /* update the global state */
+- statusX=event->x; statusY=event->y;
++static int more_data_waiting(int fd)
++{
++ static struct timeval timeout = {0, 0};
++ fd_set fdSet;
+
+- if (opt_special && event->type & GPM_DOWN)
+- return processSpecial(event);
++ FD_ZERO(&fdSet);
++ FD_SET(fd, &fdSet);
++ select(fd + 1, &fdSet, NULL_SET, NULL_SET, &timeout/* zero */);
+
+- return 1;
++ return FD_ISSET(fd, &fdSet);
+ }
+
+-/*-------------------------------------------------------------------*
+- * This was inline, and incurred in a compiler bug (2.7.0)
+- *-------------------------------------------------------------------*/
+-static int get_data(Gpm_Connect *where, int whence)
++static int multiplex_buttons(struct micetab *mouse, int new_buttons)
+ {
+- static int i;
++ static int left_btn_clicks, mid_btn_clicks, right_btn_clicks;
++ int mask;
++ int muxed_buttons = 0;
++
++ new_buttons =
++ (mouse->options.sequence[new_buttons & 7] & 7) | (new_buttons & ~7);
++ mask = new_buttons ^ mouse->buttons;
++ mouse->buttons = new_buttons;
+
+-#ifdef GPM_USE_MAGIC
+- while ((i=read(whence,&check,sizeof(int)))==4 && check!=GPM_MAGIC)
+- gpm_report(GPM_PR_INFO,GPM_MESS_NO_MAGIC);
+-
+- if (!i) return 0;
+- if (check!=GPM_MAGIC) {
+- gpm_report(GPM_PR_INFO,GPM_MESS_NOTHING_MORE);
+- return -1;
++ if (mask & GPM_B_LEFT) {
++ if (new_buttons & GPM_B_LEFT) left_btn_clicks++;
++ else left_btn_clicks--;
+ }
+-#endif
++ if (left_btn_clicks) muxed_buttons |= GPM_B_LEFT;
+
+- if ((i=read(whence, where, sizeof(Gpm_Connect)))!=sizeof(Gpm_Connect)) {
+- return i ? -1 : 0;
++ if (mask & GPM_B_MIDDLE) {
++ if (new_buttons & GPM_B_MIDDLE) mid_btn_clicks++;
++ else mid_btn_clicks--;
+ }
++ if (mid_btn_clicks) muxed_buttons |= GPM_B_MIDDLE;
+
+- return 1;
+-}
++ if (mask & GPM_B_RIGHT) {
++ if (new_buttons & GPM_B_RIGHT) right_btn_clicks++;
++ else right_btn_clicks--;
++ }
++ if (right_btn_clicks) muxed_buttons |= GPM_B_RIGHT;
+
+-static void disable_paste(int vc)
+-{
+- opt_aged++;
+- gpm_report(GPM_PR_INFO,GPM_MESS_DISABLE_PASTE,vc);
++ return muxed_buttons;
+ }
+
+-/*-------------------------------------------------------------------*/
+- /* returns -1 if closing connection */
+-static inline int processRequest(Gpm_Cinfo *ci, int vc)
++/*-------------------------------------------------------------------
++ * call getMouseData to get hardware device data, call mouse device's fun()
++ * to retrieve the hardware independent event data, then optionally repeat
++ * the data via repeat_fun() to the repeater device
++ *-------------------------------------------------------------------*/
++static enum mouse_rslt processMouse(struct micetab *mouse, int timeout, int attempt,
++ Gpm_Event *event, int text_mode)
+ {
++ static int last_active;
++ static int fine_dx, fine_dy;
++ static int oldB;
++
++ static Gpm_Event nEvent;
++ struct Gpm_Type *type = mouse->type;
++ struct miceopt *opt = &mouse->options;
++ enum mouse_rslt rslt = MOUSE_DATA_OK;
++ unsigned char shift_state;
++ char *data = NULL;
+ int i;
+- Gpm_Cinfo *cinfoPtr, *next;
+- Gpm_Connect conn;
+- static Gpm_Event event;
+- static struct vt_stat stat;
+-
+- gpm_report(GPM_PR_INFO,GPM_MESS_CON_REQUEST, ci->fd, vc);
+- if (vc>MAX_VC) return -1;
+-
+- /* itz 10-22-96 this shouldn't happen now */
+- if (vc==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_UNKNOWN_FD);
+-
+- i=get_data(&conn,ci->fd);
+-
+- if (!i) { /* no data */
+- gpm_report(GPM_PR_INFO,GPM_MESS_CLOSE);
+- close(ci->fd);
+- FD_CLR(ci->fd,&connSet);
+- FD_CLR(ci->fd,&readySet);
+- if (cinfo[vc]->fd == ci->fd) { /* it was on top of the stack */
+- cinfoPtr = cinfo[vc];
+- cinfo[vc]=cinfo[vc]->next; /* pop the stack */
+- free(cinfoPtr);
+- return -1;
+- }
+- /* somewhere inside the stack, have to walk it */
+- cinfoPtr = cinfo[vc];
+- while (cinfoPtr && cinfoPtr->next) {
+- if (cinfoPtr->next->fd == ci->fd) {
+- next = cinfoPtr->next;
+- cinfoPtr->next = next->next;
+- free (next);
++
++ if (attempt > 1) { /* continue interrupted cluster loop */
++ if (opt->absolute) {
++ event->x = nEvent.x;
++ event->y = nEvent.y;
++ }
++ event->dx = nEvent.dx;
++ event->dy = nEvent.dy;
++ event->buttons = nEvent.buttons;
++ } else {
++ event->dx = event->dy = 0;
++ event->wdx = event->wdy = 0;
++ nEvent.modifiers = 0; /* some mice set them */
++ i = 0;
++
++ do { /* cluster loop */
++ if (!timeout && (data = getMouseData(mouse->dev.fd, type, text_mode)) != NULL) {
++ GET_TIME(mouse->timestamp);
++ }
++
++ /* in case of timeout data passed to typr->fun() is NULL */
++ if ((!timeout && data == NULL) ||
++ type->fun(&mouse->dev, &mouse->options, data, &nEvent) == -1) {
++ if (!i) return MOUSE_NO_DATA;
++ else break;
++ }
++
++ event->modifiers = nEvent.modifiers; /* propagate modifiers */
++
++ /* propagate buttons */
++ nEvent.buttons = multiplex_buttons(mouse, nEvent.buttons);
++
++ if (!i) event->buttons = nEvent.buttons;
++
++ if (oldB != nEvent.buttons) {
++ rslt = MOUSE_MORE_DATA;
+ break;
+ }
+- cinfoPtr = cinfoPtr->next;
+- }
+- return -1;
+- } /* not data */
+-
+- if (i == -1) return -1; /* too few bytes */
+
+- if (conn.pid!=0) {
+- ci->data = conn;
+- return 0;
+- }
+-
+- /* Aha, request for information (so-called snapshot) */
+- switch(conn.vc) {
+- case GPM_REQ_SNAPSHOT:
+- i=open_console(O_RDONLY);
+- ioctl(i,VT_GETSTATE,&stat);
+- event.modifiers=6; /* code for the ioctl */
+- if (ioctl(i,TIOCLINUX,&(event.modifiers))<0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_GET_SHIFT_STATE);
+- close(i);
+- event.vc = stat.v_active;
+- event.x=statusX; event.y=statusY;
+- event.dx=maxx; event.dy=maxy;
+- event.buttons= statusB;
+- event.clicks=statusC;
+- /* fall through */
+- /* missing break or do you want this ??? */
+-
+- case GPM_REQ_BUTTONS:
+- event.type= (opt_three==1 ? 3 : 2); /* buttons */
+- write(ci->fd,&event,sizeof(Gpm_Event));
+- break;
++ /* propagate movement */
++ if (!opt->absolute) { /* mouse */
++ if (abs(nEvent.dx) + abs(nEvent.dy) > opt->delta)
++ nEvent.dx *= opt->accel, nEvent.dy *= opt->accel;
+
+- case GPM_REQ_NOPASTE:
+- disable_paste(vc);
+- break;
++ /* increment the reported dx,dy */
++ event->dx += nEvent.dx;
++ event->dy += nEvent.dy;
++ } else { /* a pen */
++ /* get dx,dy to check if there has been movement */
++ event->dx = nEvent.x - event->x;
++ event->dy = nEvent.y - event->y;
++ }
++
++ /* propagate wheel */
++ event->wdx += nEvent.wdx;
++ event->wdy += nEvent.wdy;
++
++ } while (i++ < opt->cluster && more_data_waiting(mouse->dev.fd));
++ } /* if(eventFlag) */
++
++ /*....................................... update the button number */
++
++ if ((event->buttons & GPM_B_MIDDLE) && !opt->three_button) opt->three_button++;
++
++ /*....................................... we're a repeater, aren't we? */
++
++ if (!text_mode) {
++ if (repeater.fd != -1 && !repeater.raw)
++ handle_repeater(opt->absolute, &nEvent, event);
++ oldB = nEvent.buttons;
++ return MOUSE_NO_DATA; /* no events nor information for clients */
+ }
+
+- return 0;
+-}
++/*....................................... no, we arent a repeater, go on */
+
+-/*-------------------------------------------------------------------*/
+-static inline int processConn(int fd) /* returns newfd or -1 */
+-{
+- Gpm_Cinfo *info;
+- Gpm_Connect *request;
+- Gpm_Cinfo *next;
+- int vc, newfd;
+-#if !defined(__GLIBC__)
+- int len;
+-#else /* __GLIBC__ */
+- size_t len; /* isn't that generally defined in C ??? -- nico */
+-#endif /* __GLIBC__ */
+- struct sockaddr_un addr; /* reuse this each time */
+- struct stat statbuf;
+- uid_t uid;
+- char *tty = NULL;
+-
+-/*....................................... Accept */
+-
+- bzero((char *)&addr,sizeof(addr));
+- addr.sun_family=AF_UNIX;
+-
+- len=sizeof(addr);
+- if ((newfd=accept(fd,(struct sockaddr *)&addr, &len))<0) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_ACCEPT_FAILED,strerror(errno));
+- return -1;
+- }
+-
+- gpm_report(GPM_PR_INFO,GPM_MESS_CONECT_AT,newfd);
+-
+- info=malloc(sizeof(Gpm_Cinfo));
+- if (!info) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+- request=&(info->data);
+-
+- if(get_data(request,newfd)==-1) {
+- free(info);
+- close(newfd);
+- return -1;
+- }
+-
+- if ((vc=request->vc)>MAX_VC) {
+- gpm_report(GPM_PR_WARN,GPM_MESS_REQUEST_ON, vc, MAX_VC);
+- free(info);
+- close(newfd);
+- return -1;
+- }
+-
+-#ifndef SO_PEERCRED
+- if (stat (addr.sun_path, &statbuf) == -1 || !S_ISSOCK(statbuf.st_mode)) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_ADDRES_NSOCKET,addr.sun_path);
+- free(info); /* itz 10-12-95 verify client's right */
+- close(newfd);
+- return -1; /* to read requested tty */
++ /* use fine delta values now, if delta is the information */
++ if (!opt->absolute) {
++ fine_dx += event->dx;
++ fine_dy += event->dy;
++ event->dx = fine_dx / opt->scalex;
++ event->dy = fine_dy / opt->scaley;
++ fine_dx %= opt->scalex;
++ fine_dy %= opt->scaley;
+ }
+-
+- unlink(addr.sun_path); /* delete socket */
+
+- staletime = time(0) - 30;
+- if (statbuf.st_atime < staletime
+- || statbuf.st_ctime < staletime
+- || statbuf.st_mtime < staletime) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_SOCKET_OLD);
+- free (info);
+- close(newfd);
+- return -1; /* socket is ancient */
++ /* up and down, up and down, ... who does a do..while(0) loop ???
++ and then makes a break into it... argh ! */
++
++ if (!event->dx && !event->dy && event->buttons == oldB) {
++ static time_t awaketime;
++ /*
++ * Ret information also if never happens, but enough time has elapsed.
++ * Note: return 1 will segfault due to missing event->vc; FIXME!
++ */
++ if (time(NULL) <= awaketime) return MOUSE_NO_DATA;
++ awaketime = time(NULL) + 1;
+ }
+
+- uid = statbuf.st_uid; /* owner of socket */
+-#else
+- {
+- struct ucred sucred;
+- socklen_t credlen = sizeof(struct ucred);
+-
+- if(getsockopt(newfd, SOL_SOCKET, SO_PEERCRED, &sucred, &credlen) == -1) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_GETSOCKOPT, strerror(errno));
+- free(info);
+- close(newfd);
+- return -1;
+- }
+- uid = sucred.uid;
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_PEER_SCK_UID, uid);
+- }
+-#endif
+- if (uid != 0) {
+- if(( tty =
+- malloc(strlen(option.consolename)+Gpm_cnt_digits(vc) + sizeof(char))) == NULL)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+-
+- strncpy(tty,option.consolename,strlen(option.consolename)-1);
+- sprintf(&tty[strlen(option.consolename)-1],"%d",vc);
++ /*....................................... fill missing fields */
++ event->x += event->dx; event->y += event->dy;
+
+- if(stat(tty, &statbuf) == -1) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_STAT_FAILS,tty);
+- free(info);
+- free(tty);
+- close(newfd);
+- return -1;
+- }
+- if (uid != statbuf.st_uid) {
+- gpm_report(GPM_PR_WARN,GPM_MESS_FAILED_CONNECT, uid, tty); /*SUSPECT!*/
+- free(info);
+- free(tty);
+- close(newfd);
+- return -1;
++ event->vc = get_console_state(&shift_state);
++ if (event->vc != last_active) {
++ handle_console_resize(event);
++ last_active = event->vc;
++ }
++ event->modifiers |= shift_state;
++
++ if (oldB == event->buttons)
++ event->type = (event->buttons ? (GPM_DRAG | GPM_MFLAG) : GPM_MOVE);
++ else {
++ if (event->buttons > oldB)
++ event->type = GPM_DOWN;
++ else {
++ event->type &= GPM_MFLAG;
++ event->type |= GPM_UP;
++ event->buttons ^= oldB; /* for button-up, tell which one */
+ }
+- free(tty); /* at least here it's not needed anymore */
+ }
++ calculate_clicks(event, opt->time);
++ snap_to_screen_limits(event);
++
++ gpm_report(GPM_PR_DEBUG,"M: %3i %3i (%3i %3i) - butt=%i vc=%i cl=%i",
++ event->dx, event->dy, event->x, event->y,
++ event->buttons, event->vc, event->clicks);
+
+- /* register the connection information in the right place */
+- info->next=next=cinfo[vc];
+- info->fd=newfd;
+- cinfo[vc]=info;
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_LONG_STATUS,
+- request->pid, request->vc, request->eventMask, request->defaultMask,
+- request->minMod, request->maxMod);
+-
+- /* if the client gets motions, give it the current position */
+- if(request->eventMask & GPM_MOVE) {
+- Gpm_Event event={0,0,vc,0,0,statusX,statusY,GPM_MOVE,0,0};
+- do_client(info, &event);
+- }
++ oldB = nEvent.buttons;
+
+- return newfd;
++ if (opt_special && (event->type & GPM_DOWN) && !processSpecial(event))
++ rslt = MOUSE_NO_DATA;
++
++ return rslt;
+ }
+
+-/*-------------------------------------------------------------------*/
+-void get_console_size(Gpm_Event *ePtr)
++static int wait_for_data(fd_set *connSet, int maxfd, fd_set *selSet)
+ {
+- int i, prevmaxx, prevmaxy;
+- struct mouse_features *which_mouse; /* local */
++ struct micetab *mouse;
++ struct timeval now, timeout = { 0, 0 };
++ int mouse_tmo, tmo = INT_MAX;
+
+- /* before asking the new console size, save the previous values */
+- prevmaxx = maxx; prevmaxy = maxy;
++ GET_TIME(now);
+
+- i=open_console(O_RDONLY);
+- ioctl(i, TIOCGWINSZ, &win);
+- close(i);
+- if (!win.ws_col || !win.ws_row) {
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_ZERO_SCREEN_DIM);
+- win.ws_col=80; win.ws_row=25;
+- }
+- maxx=win.ws_col; maxy=win.ws_row;
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_SCREEN_SIZE,maxx,maxy);
+-
+- if (!prevmaxx) { /* first invocation, place the pointer in the middle */
+- statusX = ePtr->x = maxx/2;
+- statusY = ePtr->y = maxy/2;
+- } else { /* keep the pointer in the same position where it was */
+- statusX = ePtr->x = ePtr->x * maxx / prevmaxx;
+- statusY = ePtr->y = ePtr->y * maxy / prevmaxy;
+- }
+-
+- for (i=1; i <= 1+opt_double; i++) {
+- which_mouse=mouse_table+i; /* used to access options */
+- /*
+- * the following operation is based on the observation that 80x50
+- * has square cells. (An author-centric observation ;-)
+- */
+- opt_scaley=opt_scale*50*maxx/80/maxy;
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_X_Y_VAL,opt_scale,opt_scaley);
++ *selSet = *connSet;
++ for (mouse = micelist; mouse; mouse = mouse->next) {
++ FD_SET(mouse->dev.fd, selSet);
++ maxfd = max(maxfd, mouse->dev.fd);
++ if (mouse->dev.timeout >= 0) {
++ mouse_tmo = mouse->dev.timeout - DIF_TIME(mouse->timestamp, now);
++ tmo = min(tmo, mouse_tmo);
++ }
+ }
++
++ if (tmo == INT_MAX)
++ timeout.tv_sec = SELECT_TIME;
++ else if (tmo > 0) {
++ timeout.tv_sec = tmo / 1000;
++ timeout.tv_usec = (tmo % 1000) * 1000;
++ }
++
++ return select(maxfd + 1, selSet, NULL_SET, NULL_SET, &timeout);
+ }
+
+-/*-------------------------------------------------------------------*/
+-static void gpm_killed(int signo)
+-{
+- if(signo==SIGWINCH) {
+- gpm_report(GPM_PR_WARN,GPM_MESS_RESIZING, option.progname, getpid());
+- opt_resize++;
+- return;
+- }
+- if (signo==SIGUSR1)
+- gpm_report(GPM_PR_WARN,GPM_MESS_KILLED_BY,option.progname, getpid(),option.progname);
+- exit(0);
+-}
++
+
+ /*-------------------------------------------------------------------*/
+ int old_main()
+ {
+- int ctlfd, newfd;
+- struct sockaddr_un ctladdr;
+- int i, len, kd_mode, fd;
+- struct timeval timeout;
+- int maxfd=-1;
+- int pending;
++ int ctlfd;
++ int i, text_mode;
++ struct timeval now;
++ int maxfd = -1;
++ int pending, attempt;
++ int timed_out;
+ Gpm_Event event;
++ struct micetab *mouse;
++ struct client_info *ci;
++ fd_set selSet, connSet;
++ enum mouse_rslt rslt;
+
+- for (i = 1; i <= 1+opt_double; i++) {
+- which_mouse=mouse_table+i; /* used to access options */
+-
+- if (!opt_dev) gpm_report(GPM_PR_OOPS,GPM_MESS_NEED_MDEV);
+-
+- if(!strcmp(opt_dev,"-")) fd=0; /* use stdin */
+- else if( (fd=open(opt_dev,O_RDWR | O_NDELAY)) < 0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,opt_dev);
+-
+- /* and then reset the flag */
+- fcntl(fd,F_SETFL,fcntl(fd,F_GETFL) & ~O_NDELAY);
+-
+- /* create argc and argv for this device */
+- mouse_argv[i] = build_argv(opt_type, opt_options, &mouse_argc[i], ',');
+-
+- /* init the device, and use the return value as new mouse type */
+- if (m_type->init)
+- m_type=(m_type->init)(fd, m_type->flags, m_type, mouse_argc[i],
+- mouse_argv[i]);
+- if (!m_type) gpm_report(GPM_PR_OOPS,GPM_MESS_MOUSE_INIT);
+-
+- which_mouse->fd=fd;
+- maxfd=max(fd, maxfd);
+- }
+-
+-/*....................................... catch interesting signals */
+-
++ /*....................................... catch interesting signals */
+ signal(SIGTERM, gpm_killed);
+ signal(SIGINT, gpm_killed);
+ signal(SIGUSR1, gpm_killed); /* usr1 is used by a new gpm killing the old */
+ signal(SIGWINCH,gpm_killed); /* winch can be sent if console is resized */
++ signal(SIGPIPE, SIG_IGN); /* WARN */
+
+-/*....................................... create your nodes */
+-
+- /* control node */
+-
+- if((ctlfd=socket(AF_UNIX,SOCK_STREAM,0))==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_SOCKET_PROB);
+- bzero((char *)&ctladdr,sizeof(ctladdr));
+- ctladdr.sun_family=AF_UNIX;
+- strcpy(ctladdr.sun_path,GPM_NODE_CTL);
+- unlink(GPM_NODE_CTL);
+-
+- len=sizeof(ctladdr.sun_family)+strlen(GPM_NODE_CTL);
+- if(bind(ctlfd,(struct sockaddr *)(&ctladdr),len) == -1)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_BIND_PROB,ctladdr.sun_path);
+- maxfd=max(maxfd,ctlfd);
+-
+- /* needs to be 0777, so all users can _try_ to access gpm */
+- chmod(GPM_NODE_CTL,0777);
+-
+- get_console_size(&event); /* get screen dimensions */
+-
+-/*....................................... wait for mouse and connections */
+-
+- listen(ctlfd, 5); /* Queue up calls */
+-
+-#define NULL_SET ((fd_set *)NULL)
+-#define resetTimeout() (timeout.tv_sec=SELECT_TIME,timeout.tv_usec=0)
++ init_mice();
++ handle_console_resize(&event); /* get screen dimensions */
++ ctlfd = listen_for_clients();
+
++ /*....................................... wait for mouse and connections */
+ FD_ZERO(&connSet);
+- FD_SET(ctlfd,&connSet);
+-
+- if (opt_double) FD_SET(mouse_table[2].fd,&connSet);
+-
+- readySet=connSet;
+- FD_SET(mouse_table[1].fd,&readySet);
+-
+- signal(SIGPIPE,SIG_IGN); /* WARN */
+-
+-/*--------------------------------------- main loop begins here */
++ FD_SET(ctlfd, &connSet);
++ maxfd = max(maxfd, ctlfd);
++
++ /*--------------------------------------- main loop begins here */
+
+- while(1) {
+- selSet=readySet;
+- resetTimeout();
+- if (opt_test) timeout.tv_sec=0;
++ while (1) {
+
+- if (eventFlag) { /* an event left over by clustering */
+- pending=1;
+- FD_ZERO(&selSet);
+- FD_SET(mouse_table[eventFlag].fd,&selSet);
+- }
+- else
+- while((pending=select(maxfd+1,&selSet,NULL_SET,NULL_SET,&timeout))==0){
+- selSet=readySet;
+- resetTimeout();
+- } /* go on */
+-
+- if(opt_resize) { /* did the console resize? */
+- get_console_size(&event);
+- opt_resize--;
+- signal(SIGWINCH,gpm_killed); /* reinstall handler */
+-
+- /* and notify clients */
+- for(i=0; i<MAX_VC+1; i++) {
+- Gpm_Cinfo *ci;
+- for (ci = cinfo[i]; ci; ci = ci->next) kill(ci->data.pid,SIGWINCH);
+- }
++ pending = wait_for_data(&connSet, maxfd, &selSet);
++
++ if (console_resized) { /* did the console resize? */
++ handle_console_resize(&event);
++ console_resized = 0;
++ signal(SIGWINCH, gpm_killed); /* reinstall handler */
++ notify_clients_resize();
+ }
+
+ if (pending < 0) {
+- if (errno==EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB);
+- gpm_report(GPM_PR_ERR,GPM_MESS_SELECT_STRING,strerror(errno));
+- selSet=readySet;
+- resetTimeout();
++ if (errno == EBADF) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB);
++ gpm_report(GPM_PR_ERR, GPM_MESS_SELECT_STRING, strerror(errno));
+ continue;
+ }
+
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_SELECT_TIMES,pending);
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SELECT_TIMES, pending);
+
+-/*....................................... manage graphic mode */
++ /*....................................... manage graphic mode */
+
+- /*
+- * Be sure to be in text mode. This used to be before select,
+- * but actually it only matters if you have events.
+- */
+- {
+- int fd = open_console(O_RDONLY);
+- if (ioctl(fd, KDGETMODE, &kd_mode) < 0)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_KDGETMODE);
+- close(fd);
+- if(kd_mode != KD_TEXT && !option.repeater) {
+- wait_text(&mouse_table[1].fd);
+- maxfd=max(maxfd,mouse_table[1].fd);
+- readySet=connSet;
+- FD_SET(mouse_table[1].fd,&readySet);
++ /*
++ * Be sure to be in text mode. This used to be before select,
++ * but actually it only matters if you have events.
++ */
++ text_mode = is_text_console();
++ if (!text_mode && !repeater.type && !repeater.raw) {
++ /* if we don;t have repeater then there is only one mouse so
++ * we can safely use micelist
++ */
++ close(micelist->dev.fd);
++ wait_text_console();
++ /* reopen, reinit (the function is only used if we have one mouse device) */
++ if ((micelist->dev.fd = open(micelist->device, O_RDWR)) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, micelist->device);
++ if (micelist->type->init)
++ micelist->type->init(&micelist->dev, &micelist->options, micelist->type);
+ continue; /* reselect */
+ }
+- }
+
+-/*....................................... got mouse, process event */
+-/*
+- * Well, actually, run a loop to maintain inlining of functions without
+- * lenghtening the file. This is not too clean a code, but it works....
+- */
+-
+- for (i=1; i <= 1+opt_double; i++) {
+- which_mouse=mouse_table+i; /* used to access options */
+- if (FD_ISSET(which_mouse->fd,&selSet)) {
+- FD_CLR(which_mouse->fd,&selSet); pending--;
+- if (processMouse(which_mouse->fd, &event, m_type, kd_mode))
+- /* pass it to the client, if any
+- * or to the default handler, if any
+- * or to the selection handler
+- */ /* FIXME -- check event.vc */
+- /* can't we please rewrite the following a bit nicer?*/
+- (cinfo[event.vc] && do_client(cinfo[event.vc], &event))
+- || (cinfo[0] && do_client(cinfo[0], &event))
+- || do_selection(&event);
++ /*....................................... got mouse, process event */
++ /*
++ * Well, actually, run a loop to maintain inlining of functions without
++ * lenghtening the file. This is not too clean a code, but it works....
++ */
++ GET_TIME(now);
++ for (mouse = micelist; mouse; mouse = mouse->next) {
++ timed_out = mouse->dev.timeout >= 0 &&
++ DIF_TIME(mouse->timestamp, now) >= mouse->dev.timeout;
++ if (timed_out || FD_ISSET(mouse->dev.fd, &selSet)) {
++ if (FD_ISSET(mouse->dev.fd, &selSet)) {
++ FD_CLR(mouse->dev.fd, &selSet);
++ pending--;
+ }
++ attempt = 0;
++ do {
++ rslt = processMouse(mouse, timed_out, ++attempt, &event, text_mode);
++ if (rslt != MOUSE_NO_DATA) {
++ /* pass it to the client or to the default handler,
++ * or to the selection handler
++ */
++ if (event.vc > MAX_VC) event.vc = 0;
++ if (event.vc == 0 || !cinfo[event.vc] || !do_client(cinfo[event.vc], &event))
++ if (!cinfo[0] || !do_client(cinfo[0], &event))
++ do_selection(&event, mouse->options.three_button);
++ }
++ } while (rslt == MOUSE_MORE_DATA);
++ }
+ }
+
+ /*..................... got connection, process it */
+-
+- if (pending && FD_ISSET(ctlfd,&selSet)) {
+- FD_CLR(ctlfd,&selSet); pending--;
+- newfd=processConn(ctlfd);
+- if (newfd>=0) {
+- FD_SET(newfd,&connSet);
+- FD_SET(newfd,&readySet);
+- maxfd=max(maxfd,newfd);
++ if (pending && FD_ISSET(ctlfd, &selSet)) {
++ FD_CLR(ctlfd, &selSet);
++ pending--;
++ if ((ci = accept_client_connection(ctlfd))) {
++ if (ci->data.eventMask & GPM_MOVE) {
++ Gpm_Event e = { 0, 0, ci->data.vc, 0, 0,
++ event.x, event.y, GPM_MOVE, 0, 0 };
++ do_client(ci, &e);
++ }
++ FD_SET(ci->fd, &connSet);
++ maxfd = max(maxfd, ci->fd);
+ }
+ }
+
+ /*........................ got request */
+-
+- /* itz 10-22-96 check _all_ clients, not just those on top! */
+- for (i=0; pending && (i<=MAX_VC); i++) {
+- Gpm_Cinfo* ci;
++ /* itz 10-22-96 check _all_ clients, not just those on top! */
++ for (i = 0; pending && i <= MAX_VC; i++) {
+ for (ci = cinfo[i]; pending && ci; ci = ci->next) {
+- if (FD_ISSET(ci->fd,&selSet)) {
+- FD_CLR(ci->fd,&selSet); pending--;
+- /* itz Sat Sep 12 21:10:22 PDT 1998 */
+- /* this code is clearly incorrect; the next highest
+- descriptor after the one we're closing is not necessarily
+- being used. Fortunately, it doesn't hurt simply to leave this
+- out. */
+-
+-#ifdef NOTDEF
+- if ((processRequest(ci,i)==-1) && maxfd==ci->fd) maxfd--;
+-#else
+- (void)processRequest(ci,i);
+-#endif
++ if (FD_ISSET(ci->fd, &selSet)) {
++ FD_CLR(ci->fd, &selSet);
++ pending--;
++ if (!process_client_request(ci, i, event.x, event.y, event.clicks,
++ event.buttons, micelist->options.three_button)) {
++ FD_CLR(ci->fd, &connSet);
++ remove_client(ci, i);
++ }
+ }
+ }
+ }
+
+ /*.................. look for a spare fd */
+-
+ /* itz 10-22-96 this shouldn't happen now! */
+- for (i=0; pending && i<=maxfd; i++) {
+- if (FD_ISSET(i,&selSet)) {
+- FD_CLR(i,&selSet);
++ for (i = 0; pending && i <= maxfd; i++) {
++ if (FD_ISSET(i, &selSet)) {
++ FD_CLR(i, &selSet);
+ pending--;
+- gpm_report(GPM_PR_WARN,GPM_MESS_STRANGE_DATA,i);
++ gpm_report(GPM_PR_WARN, GPM_MESS_STRANGE_DATA,i);
+ }
+ }
+
+ /*................... all done. */
+-
+- if(pending) gpm_report(GPM_PR_OOPS,GPM_MESS_SELECT_PROB);
++ if (pending) gpm_report(GPM_PR_OOPS, GPM_MESS_SELECT_PROB);
+ } /* while(1) */
+ }
+diff -urN gpm-1.20.1/src/gpn.c gpm/src/gpn.c
+--- gpm-1.20.1/src/gpn.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/gpn.c 2003-10-02 01:22:42.000000000 -0500
+@@ -28,201 +28,104 @@
+ #include <stdlib.h>
+ #include <string.h> /* strerror(); ?!? memcpy() */
+ #include <ctype.h> /* isdigit */
+-#include <signal.h>
+-#include <stdarg.h> /* Log uses it */
+-#include <errno.h>
+ #include <unistd.h> /* getopt(),symlink() */
+-#include <sys/stat.h> /* mkdir() */
+-#include <sys/param.h>
+-#include <sys/time.h> /* timeval */
+-#include <sys/wait.h> /* wait() */
+-#include <sys/types.h> /* socket() */
+-#include <sys/socket.h> /* socket() */
+-#include <sys/un.h> /* struct sockaddr_un */
+-#include <asm/types.h> /* __u32 */
+-
+-#ifdef SIGTSTP /* true if BSD system */
+-#include <sys/file.h>
+-#include <sys/ioctl.h>
+-#endif
+-
+-#ifndef HAVE___U32
+-# ifndef _I386_TYPES_H /* /usr/include/asm/types.h */
+-typedef unsigned int __u32;
+-# endif
+-#endif
+
+ #include "headers/message.h"
+ #include "headers/gpmInt.h"
+ #include "headers/gpm.h"
++#include "headers/console.h"
++#include "headers/selection.h"
+
+-extern int errno;
+-
+-/*===================================================================*/
+-/* octal digit */
+-static int isodigit(const unsigned char c)
++/* usage: display for usage informations */
++int usage(char *whofailed)
+ {
+- return ((c & ~7) == '0');
++ if (whofailed) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_SPEC_ERR, whofailed, option.progname);
++ return 1;
++ }
++ printf(GPM_MESS_USAGE, option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE,
++ DEF_DELTA, DEF_TIME, DEF_LUT, DEF_SCALE, DEF_SAMPLE, DEF_TYPE);
++ return 1;
+ }
+
+-/* routine to convert digits from octal notation (Andries Brouwer) */
+-static int getsym(const unsigned char *p0, unsigned char *res)
++/*****************************************************************************
++ * the function returns a valid type pointer or NULL if not found
++ *****************************************************************************/
++static struct Gpm_Type *find_mouse_by_name(char *name)
+ {
+- const unsigned char *p = p0;
+- char c;
++ Gpm_Type *type;
++ char *s;
++ int len = strlen(name);
+
+- c = *p++;
+- if (c == '\\' && *p) {
+- c = *p++;
+- if (isodigit(c)) {
+- c -= '0';
+- if (isodigit(*p)) c = 8*c + (*p++ - '0');
+- if (isodigit(*p)) c = 8*c + (*p++ - '0');
++ for (type = mice; type->fun; type++) {
++ if (!strcasecmp(name, type->name)) break;
++ /* otherwise, look in the synonym list */
++ for (s = type->synonyms; s; s = strchr(s, ' ')) {
++ while (*s && isspace(*s)) s++; /* skip spaces */
++ if (!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/
+ }
++ if (s) break; /* found a synonym */
+ }
+- *res = c;
+- return (p - p0);
++ return type->fun ? type : NULL;
+ }
+
+-/* description missing! FIXME */
+-int loadlut(char *charset)
++static void init_button_sequence(struct miceopt *opt, char *arg)
+ {
+- int i, c, fd;
+- unsigned char this, next;
+- static __u32 long_array[9]={
+- 0x05050505, /* ugly, but preserves alignment */
+- 0x00000000, /* control chars */
+- 0x00000000, /* digits */
+- 0x00000000, /* uppercase and '_' */
+- 0x00000000, /* lowercase */
+- 0x00000000, /* Latin-1 control */
+- 0x00000000, /* Latin-1 misc */
+- 0x00000000, /* Latin-1 uppercase */
+- 0x00000000 /* Latin-1 lowercase */
++ int i;
++ static struct {
++ char *in;
++ char *out;
++ } seq[] = {
++ {"123", "01234567"},
++ {"132", "02134657"},
++ {"213", "01452367"}, /* warning: these must be readable as integers... */
++ {"231", "02461357"},
++ {"312", "04152637"},
++ {"321", "04261537"},
++ {NULL, NULL}
+ };
+
++ if (strlen(arg) != 3 || atoi(arg) < 100)
++ exit(usage("sequence"));
+
+-#define inwordLut (long_array+1)
+-
+- for (i=0; charset[i]; ) {
+- i += getsym(charset+i, &this);
+- if (charset[i] == '-' && charset[i + 1] != '\0')
+- i += getsym(charset+i+1, &next) + 1;
+- else
+- next = this;
+- for (c = this; c <= next; c++)
+- inwordLut[c>>5] |= 1 << (c&0x1F);
+- }
+-
+- if ((fd=open(option.consolename, O_WRONLY)) < 0) {
+- /* try /dev/console, if /dev/tty0 failed -- is that really senseful ??? */
+- free(option.consolename); /* allocated by main */
+- if((option.consolename=malloc(strlen(GPM_SYS_CONSOLE)+1)) == NULL)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+- strcpy(option.consolename,GPM_SYS_CONSOLE);
+-
+- if ((fd=open(option.consolename, O_WRONLY)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN_CON);
+- }
+- if (ioctl(fd, TIOCLINUX, &long_array) < 0) { /* fd <0 is checked */
+- if (errno==EPERM && getuid())
+- gpm_report(GPM_PR_WARN,GPM_MESS_ROOT); /* why do we still continue?*/
+- else if (errno==EINVAL)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_CSELECT);
+- }
+- close(fd);
+-
+- return 0;
++ for (i = 0; seq[i].in && strcmp(seq[i].in, arg); i++);
++ if (!seq[i].in)
++ exit(usage("button sequence"));
++ opt->sequence = strdup(seq[i].out); /* I can rewrite on it */
+ }
+
+-/* usage: display for usage informations */
+-int usage(char *whofailed)
++static void validate_mouse(struct micetab *mouse, int mouse_no)
+ {
+- if (whofailed) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_SPEC_ERR,whofailed,option.progname);
+- return 1;
+- }
+- printf(GPM_MESS_USAGE,option.progname, DEF_ACCEL, DEF_BAUD, DEF_SEQUENCE,
+- DEF_DELTA, DEF_TIME, DEF_LUT,DEF_SCALE, DEF_SAMPLE, DEF_TYPE);
+- return 1;
+-}
+-
+-/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the
+- unwanted functionality in check_uniqueness. */
+-
+-void check_kill(void)
+-{
+- int old_pid;
+- FILE* fp = fopen(GPM_NODE_PID, "r");
+-
+- /* if we cannot find the old pid file, leave */
+- if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID);
+-
+- /* else read the pid */
+- if (fscanf(fp,"%d",&old_pid) != 1)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_READ_PROB,GPM_NODE_PID);
+- fclose(fp);
+-
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_KILLING,old_pid);
+-
+- /* first check if we run */
+- if (kill(old_pid,0) == -1) {
+- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID);
+- unlink(GPM_NODE_PID);
++ if (!mouse->device) {
++ if (!mouse->type && mouse_no > 1)
++ gpm_report(GPM_PR_OOPS,
++ "No device/protocol specified for mouse #%d, probably extra -M option?", mouse_no);
++ else
++ gpm_report(GPM_PR_OOPS, "No device specified for mouse #%d", mouse_no);
+ }
+- /* then kill us (not directly, but the other instance ... ) */
+- if (kill(old_pid,SIGTERM) == -1)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_CANT_KILL, old_pid);
+
+- gpm_report(GPM_PR_INFO,GPM_MESS_KILLED,old_pid);
+- exit(0);
+-}
++ if (!mouse->type)
++ mouse->type = find_mouse_by_name(DEF_TYPE);
+
+-/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two
+- completely different things; opening a socket to a running daemon
+- and checking that a running daemon existed. Ugly. */
+-/* rewritten mostly on 20th of February 2002 - nico */
+-void check_uniqueness(void)
+-{
+- FILE *fp = 0;
+- int old_pid = -1;
++ mouse->options.absolute = mouse->type->absolute;
+
+- if((fp = fopen(GPM_NODE_PID, "r")) != NULL) {
+- fscanf(fp, "%d", &old_pid);
+- if (kill(old_pid,0) == -1) {
+- gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID);
+- unlink(GPM_NODE_PID);
+- } else /* we are really running, exit asap! */
+- gpm_report(GPM_PR_OOPS,GPM_MESS_ALREADY_RUN, old_pid);
+- }
+- /* now try to sign ourself */
+- if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) {
+- fprintf(fp,"%d\n",getpid());
+- fclose(fp);
+- } else {
+- gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID);
+- }
++ if (!mouse->options.sequence)
++ init_button_sequence(&mouse->options, DEF_SEQUENCE);
+ }
+
+-/*****************************************************************************
+- * the function returns a valid type pointer or NULL if not found
+- *****************************************************************************/
+-struct Gpm_Type *find_mouse_by_name(char *name)
++static void validate_repeater(char *type)
+ {
+- Gpm_Type *type;
+- char *s;
+- int len = strlen(name);
+-
+- for (type=mice; type->fun; type++) {
+- if (!strcasecmp(name, type->name)) break;
+- /* otherwise, look in the synonym list */
+- for (s = type->synonyms; s; s = strchr(s, ' ')) {
+- while (*s && isspace(*s)) s++; /* skip spaces */
+- if(!strncasecmp(name, s, len) && !isprint(*(s + len))) break;/*found*/
+- }
+- if(s) break; /* found a synonym */
++ if (strcmp(type, "raw") == 0)
++ repeater.raw = 1;
++ else {
++ repeater.raw = 0;
++
++ if (!(repeater.type = find_mouse_by_name(type)))
++ exit(M_listTypes()); /* not found */
++
++ if (!repeater.type->repeat_fun) /* unsupported translation */
++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_REPEAT, type);
+ }
+- if (!type->fun) return NULL;
+- return type;
+ }
+
+ /*****************************************************************************
+@@ -230,60 +133,86 @@
+ * Can't believe it, today cmdline() really does what the name tries to say
+ *****************************************************************************/
+ void cmdline(int argc, char **argv)
+-{
+- extern struct options option;
++{
++ struct micetab *mouse;
++ struct miceopt *opt;
+ char options[]="a:A::b:B:d:Dg:hi:kl:m:Mo:pr:R::s:S:t:TuvV::23";
+- int opt;
++ int opt_char, tmp;
++ int mouse_no = 1;
++
++ mouse = add_mouse();
++ opt = &mouse->options;
+
+- /* initialize for the dual mouse */
+- mouse_table[2]=mouse_table[1]=mouse_table[0]; /* copy defaults */
+- which_mouse=mouse_table+1; /* use the first */
+-
+- while ((opt = getopt(argc, argv, options)) != -1) {
+- switch (opt) {
+- case 'a': opt_accel = atoi(optarg); break;
+- case 'A': opt_aged++;
+- if (optarg)
+- opt_age_limit = atoi(optarg); break;
+- case 'b': opt_baud = atoi(optarg); break;
+- case 'B': opt_sequence = optarg; break;
+- case 'd': opt_delta = atoi(optarg); break;
+- case 'D': option.run_status = GPM_RUN_DEBUG; break;
+- case 'g': opt_glidepoint_tap=atoi(optarg); break;
+- case 'h': exit(usage(NULL));
+- case 'i': opt_time=atoi(optarg); break;
+- case 'k': check_kill(); break;
+- case 'l': opt_lut = optarg; break;
+- case 'm': add_mouse(GPM_ADD_DEVICE,optarg);
+- opt_dev = optarg; break; /* GO AWAY!*/
+- case 'M': opt_double++; option.repeater++;
+- if (option.repeater_type == 0)
+- option.repeater_type = "msc";
+- which_mouse=mouse_table+2; break;
+- case 'o': add_mouse(GPM_ADD_OPTIONS,optarg);
+- gpm_report(GPM_PR_DEBUG,"options: %s",optarg);
+- opt_options = optarg; break; /* GO AWAY */
+- case 'p': opt_ptrdrag = 0; break;
+- case 'r':
+- /* being called responsiveness, I must take the inverse */
+- opt_scale=atoi(optarg);
+- if(!opt_scale || opt_scale > 100) opt_scale=100; /* the maximum */
+- else opt_scale=100/opt_scale; break;
+- case 'R':
+- option.repeater++;
+- if (optarg) option.repeater_type = optarg;
+- else option.repeater_type = "msc"; break;
+- case 's': opt_sample = atoi(optarg); break;
+- case 'S': if (optarg) opt_special = optarg;
+- else opt_special=""; break;
+- case 't': add_mouse(GPM_ADD_TYPE,optarg);
+- opt_type = optarg; break; /* GO AWAY */
+- case 'u': option.autodetect = 1; break;
+- case 'T': opt_test++; break;
+- case 'v': printf(GPM_MESS_VERSION "\n"); exit(0);
+- case '2': opt_three = -1; break;
+- case '3': opt_three = 1; break;
+- default: exit(usage("commandline"));
++ while ((opt_char = getopt(argc, argv, options)) != -1) {
++ switch (opt_char) {
++ case 'a': if ((opt->accel = atoi(optarg)) < 1)
++ exit(usage("acceleration"));
++ break;
++ case 'A': sel_opts.aged = 1;
++ if (optarg)
++ sel_opts.age_limit = atoi(optarg);
++ break;
++ case 'b': opt->baud = atoi(optarg);
++ break;
++ case 'B': init_button_sequence(opt, optarg);
++ break;
++ case 'd': if ((opt->delta = atoi(optarg)) < 2)
++ exit(usage("delta"));
++ break;
++ case 'D': option.run_status = GPM_RUN_DEBUG;
++ break;
++ case 'g': if (atoi(optarg) > 3)
++ exit(usage("glidepoint tap button"));
++ opt->glidepoint_tap = GPM_B_LEFT >> (atoi(optarg) - 1);
++ break;
++ case 'h': exit(usage(NULL));
++ case 'i': opt->time = atoi(optarg);
++ break;
++ case 'k': kill_gpm();
++ break;
++ case 'l': console.charset = optarg;
++ break;
++ case 'm': mouse->device = optarg;
++ break;
++ case 'M': validate_mouse(mouse, mouse_no);
++ mouse = add_mouse();
++ opt = &mouse->options;
++ mouse_no++;
++ if (!repeater.type && !repeater.raw)
++ repeater.type = find_mouse_by_name(DEF_REP_TYPE);
++ break;
++ case 'o': gpm_report(GPM_PR_DEBUG,"options: %s", optarg);
++ opt->text = optarg;
++ break;
++ case 'p': sel_opts.ptrdrag = 0;
++ break;
++ case 'r': /* being called responsiveness, I must take the inverse */
++ tmp = atoi(optarg);
++ if (!tmp || tmp > 100) tmp = 1;
++ opt->scalex = 100 / tmp;
++ break;
++ case 'R': validate_repeater((optarg) ? optarg : DEF_REP_TYPE);
++ break;
++ case 's': opt->sample = atoi(optarg);
++ break;
++ case 'S': if (optarg) opt_special = optarg;
++ else opt_special="";
++ break;
++ case 't': mouse->type = find_mouse_by_name(optarg);
++ if (!mouse->type)
++ exit(M_listTypes());
++ break;
++ case 'u': option.autodetect = 1;
++ break;
++ case 'v': printf(GPM_MESS_VERSION "\n");
++ exit(0);
++ case '2': opt->three_button = -1;
++ break;
++ case '3': opt->three_button = 1;
++ break;
++ default: exit(usage("commandline"));
+ }
+ }
++
++ validate_mouse(micelist, mouse_no);
+ }
+diff -urN gpm-1.20.1/src/headers/client.h gpm/src/headers/client.h
+--- gpm-1.20.1/src/headers/client.h 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/headers/client.h 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,57 @@
++/* -*-mode:C;tab-width:3-*-
++ * client.h - GPM client handling (server side)
++ *
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#ifndef __GPM_CLIENT_H
++#define __GPM_CLIENT_H_
++
++#ifdef HAVE_LINUX_TTY_H
++#include <linux/tty.h>
++#endif
++
++#include "headers/gpm.h"
++
++/* FIXME: still needed ?? */
++/* How many virtual consoles are managed? */
++#ifndef MAX_NR_CONSOLES
++# define MAX_NR_CONSOLES 64 /* this is always sure */
++#endif
++
++#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */
++
++struct client_info {
++ Gpm_Connect data;
++ int fd;
++ struct client_info *next;
++};
++
++struct Gpm_Event;
++
++extern struct client_info *cinfo[MAX_VC + 1];
++
++int listen_for_clients(void);
++struct client_info *accept_client_connection(int fd);
++void remove_client(struct client_info *ci, int vc);
++void notify_clients_resize(void);
++int do_client(struct client_info *cinfo, struct Gpm_Event *event);
++int process_client_request(struct client_info *ci, int vc,
++ int x, int y, int buttons, int clicks,
++ int three_button_mouse);
++
++#endif /* __GPM_CLIENT_H_ */
+diff -urN gpm-1.20.1/src/headers/console.h gpm/src/headers/console.h
+--- gpm-1.20.1/src/headers/console.h 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/headers/console.h 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,42 @@
++/* -*-mode:C;tab-width:3-*-
++ * console.h - GPM console and selection/paste handling
++ *
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#ifndef __GPM_CONSOLE_H_
++#define __GPM_CONSOLE_H_
++
++struct gpm_console {
++ char *device;
++ char *charset;
++ int max_x, max_y;
++};
++
++extern struct gpm_console console;
++
++int open_console(int mode);
++char *get_console_name();
++char *compose_vc_name(int vc);
++int is_text_console(void);
++void wait_text_console(void);
++void refresh_console_size(void);
++int is_console_owner(int vc, uid_t uid);
++int get_console_state(unsigned char *shift_state);
++void console_load_lut(void);
++
++#endif /* __GPM_CONSOLE_H_ */
+diff -urN gpm-1.20.1/src/headers/gpmInt.h gpm/src/headers/gpmInt.h
+--- gpm-1.20.1/src/headers/gpmInt.h 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/headers/gpmInt.h 2003-10-02 01:22:42.000000000 -0500
+@@ -23,8 +23,7 @@
+ #ifndef _GPMINT_INCLUDED
+ #define _GPMINT_INCLUDED
+
+-#include <sys/types.h> /* time_t */ /* for whom ???? FIXME */
+-
++#include <sys/time.h> /* timeval */
+ #include "gpm.h"
+
+ #if !defined(__GNUC__)
+@@ -35,23 +34,12 @@
+ /* timeout for the select() syscall */
+ #define SELECT_TIME 86400 /* one day */
+
+-#ifdef HAVE_LINUX_TTY_H
+-#include <linux/tty.h>
+-#endif
+-
+-/* FIXME: still needed ?? */
+-/* How many virtual consoles are managed? */
+-#ifndef MAX_NR_CONSOLES
+-# define MAX_NR_CONSOLES 64 /* this is always sure */
+-#endif
+-
+-#define MAX_VC MAX_NR_CONSOLES /* doesn't work before 1.3.77 */
+-
+ /* How many buttons may the mouse have? */
+ /* #define MAX_BUTTONS 3 ===> not used, it is hardwired :-( */
+
+ /* all the default values */
+ #define DEF_TYPE "ms"
++#define DEF_REP_TYPE "msc"
+ #define DEF_DEV NULL /* use the type-related one */
+ #define DEF_LUT "-a-zA-Z0-9_./\300-\326\330-\366\370-\377"
+ #define DEF_SEQUENCE "123" /* how buttons are reordered */
+@@ -62,12 +50,10 @@
+ #define DEF_SCALE 10
+ #define DEF_TIME 250 /* time interval (ms) for multiple clicks */
+ #define DEF_THREE 0 /* have three buttons? */
+-#define DEF_KERNEL 0 /* no kernel module, by default */
+
+ /* 10 on old computers (<=386), 0 on current machines */
+ #define DEF_CLUSTER 0 /* maximum number of clustered events */
+
+-#define DEF_TEST 0
+ #define DEF_PTRDRAG 1 /* double or triple click */
+ #define DEF_GLIDEPOINT_TAP 0 /* tapping emulates no buttons by default */
+
+@@ -84,11 +70,6 @@
+ #define GPM_DEVFS_CONSOLE "/dev/vc/0"
+ #define GPM_OLD_CONSOLE "/dev/tty0"
+
+-/* for adding a mouse; add_mouse */
+-#define GPM_ADD_DEVICE 0
+-#define GPM_ADD_TYPE 1
+-#define GPM_ADD_OPTIONS 2
+-
+ /*** mouse commands ***/
+
+ #define GPM_AUX_SEND_ID 0xF2
+@@ -117,126 +98,95 @@
+
+ /*....................................... Structures */
+
++struct micedev {
++ int fd;
++ int timeout; /* the protocol driver wants to be called
++ after X msec even if there is no new data
++ arrived (-1 to disable/default) */
++ void *private; /* private data maintained by protocol driver */
++};
++
++struct miceopt {
++ char *sequence;
++ int baud;
++ int sample;
++ int delta;
++ int accel;
++ int scalex, scaley;
++ int time;
++ int cluster;
++ int three_button;
++ int glidepoint_tap;
++ int absolute; /* device reports absolute coordinates - initially copied
++ from Gpm_Type; allows same protocol (type) control devices
++ in absolute and relative mode */
++ char *text; /* extra textual options supplied via '-o text' */
++};
++
+ /*
+ * and this is the entry in the mouse-type table
+ */
+ typedef struct Gpm_Type {
+- char *name;
+- char *desc; /* a descriptive line */
+- char *synonyms; /* extra names (the XFree name etc) as a list */
+- int (*fun)(Gpm_Event *state, unsigned char *data);
+- struct Gpm_Type *(*init)(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv);
+- unsigned short flags;
+- unsigned char proto[4];
+- int packetlen;
+- int howmany; /* how many bytes to read at a time */
+- int getextra; /* does it get an extra byte? (only mouseman) */
+- int absolute; /* flag indicating absolute pointing device */
++ char *name;
++ char *desc; /* a descriptive line */
++ char *synonyms; /* extra names (the XFree name etc) as a list */
++ int (*fun)(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state);
++ int (*init)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type);
++ unsigned short flags;
++ unsigned char proto[4];
++ int packetlen;
++ int howmany; /* how many bytes to read at a time */
++ int getextra; /* does it get an extra byte? (only mouseman) */
++ int absolute; /* flag indicating absolute pointing device */
+
+- int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */
++ int (*repeat_fun)(Gpm_Event *state, int fd); /* repeat this event into fd */
+ /* itz Mon Jan 11 23:27:54 PST 1999 */
+ } Gpm_Type;
+
+ #define GPM_EXTRA_MAGIC_1 0xAA
+ #define GPM_EXTRA_MAGIC_2 0x55
+
+-typedef struct Gpm_Cinfo {
+- Gpm_Connect data;
+- int fd;
+- struct Gpm_Cinfo *next;
+-} Gpm_Cinfo;
+-
+-
+-/*....................................... Global variables */
+-
+-/* this structure is used to hide the dual-mouse stuff */
+-
+-struct mouse_features {
+- char *opt_type, *opt_dev, *opt_sequence;
+- int opt_baud,opt_sample,opt_delta, opt_accel, opt_scale, opt_scaley;
+- int opt_time, opt_cluster, opt_three, opt_glidepoint_tap;
+- char *opt_options; /* extra textual configuration */
+- Gpm_Type *m_type;
+- int fd;
+-};
+-
+-extern struct mouse_features mouse_table[3], *which_mouse; /*the current one*/
+-
+-// looks unused; delete
+-//typedef struct Opt_struct_type {int a,B,d,i,p,r,V,A;} Opt_struct_type;
+-
+-/* this is not very clean, actually, but it works fine */
+-#define opt_type (which_mouse->opt_type)
+-#define opt_dev (which_mouse->opt_dev)
+-#define opt_sequence (which_mouse->opt_sequence)
+-#define opt_baud (which_mouse->opt_baud)
+-#define opt_sample (which_mouse->opt_sample)
+-#define opt_delta (which_mouse->opt_delta)
+-#define opt_accel (which_mouse->opt_accel)
+-#define opt_scale (which_mouse->opt_scale)
+-#define opt_scaley (which_mouse->opt_scaley)
+-#define opt_time (which_mouse->opt_time)
+-#define opt_cluster (which_mouse->opt_cluster)
+-#define opt_three (which_mouse->opt_three)
+-#define opt_glidepoint_tap (which_mouse->opt_glidepoint_tap)
+-#define opt_options (which_mouse->opt_options)
+-
+-#define m_type (which_mouse->m_type)
+-
+-/* the other variables */
+-
+-extern char *opt_lut;
+-extern int opt_test, opt_ptrdrag;
+-extern int opt_kill;
+-extern int opt_kernel, opt_explicittype;
+-extern int opt_aged;
+-extern time_t opt_age_limit;
+ extern char *opt_special;
+-extern int opt_rawrep;
+-extern int fifofd;
+-extern int opt_double;
+-
+-extern Gpm_Type *repeated_type;
+ extern Gpm_Type mice[]; /* where the hell are the descriptions...*/
+-extern struct winsize win;
+-extern int maxx, maxy;
+-extern Gpm_Cinfo *cinfo[MAX_VC+1];
+
+ /* new variables <CLEAN> */
+
+ /* structure prototypes */
++struct repeater {
++ int fd;
++ int raw;
++ Gpm_Type *type;
++};
+
+ /* contains all mice */
+ struct micetab {
+ struct micetab *next;
+- char *device;
+- char *protocol;
+- char *options;
++ struct micedev dev;
++ struct miceopt options;
++ Gpm_Type *type;
++ char *device;
++ int buttons; /* mouse's button state from last read */
++ struct timeval timestamp; /* last time mouse data arrived */
+ };
+
+ struct options {
+ int autodetect; /* -u [aUtodetect..'A' is not available] */
+- int no_mice; /* number of mice */
+- int repeater; /* repeat data */
+- char *repeater_type; /* repeat data as which mouse type */
+ int run_status; /* startup/daemon/debug */
+ char *progname; /* hopefully gpm ;) */
+- struct micetab *micelist; /* mice and their options */
+- char *consolename; /* /dev/tty0 || /dev/vc/0 */
+ };
+
+ /* global variables */
+ struct options option; /* one should be enough for us */
++extern struct repeater repeater; /* again, only one */
++extern struct micetab *micelist;
+
+ /* new variables </CLEAN> */
+
+-
+ /*....................................... Prototypes */
+ /* server_tools.c */
+-void add_mouse (int type, char *value);
+-int init_mice (struct micetab *micelist);
+-int reset_mice(struct micetab *micelist);
++struct micetab *add_mouse(void);
++void init_mice(void);
++void cleanup_mice(void);
+
+ /* startup.c */
+ void startup(int argc, char **argv);
+@@ -246,17 +196,15 @@
+
+ /* gpn.c */
+ void cmdline(int argc, char **argv);
+-int giveInfo(int request, int fd);
+-int loadlut(char *charset);
+-int usage(char *whofailed);
+-struct Gpm_Type *find_mouse_by_name(char *name);
++int giveInfo(int request, int fd);
++int usage(char *whofailed);
+ void check_uniqueness(void);
+-void check_kill(void);
+-
++void kill_gpm(void);
+
+ /* mice.c */
+ extern int M_listTypes(void);
+- /* special.c */
++
++ /* special.c */
+ int processSpecial(Gpm_Event *event);
+ int twiddler_key(unsigned long message);
+ int twiddler_key_init(void);
+diff -urN gpm-1.20.1/src/headers/input-defines.h gpm/src/headers/input-defines.h
+--- gpm-1.20.1/src/headers/input-defines.h 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/headers/input-defines.h 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,81 @@
++/*
++ * input-defines.h - complements <linux/input.h> adding missing bits
++ *
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++#ifndef __GPM_INPUT_DEFINES_H
++#define __GPM_INPUT_DEFINES_H
++
++#include <linux/input.h>
++#include "headers/config.h"
++
++#ifndef ABS_TOOL_WIDTH
++#define ABS_TOOL_WIDTH 0x1c
++#endif
++
++#ifndef BTN_TOOL_FINGER
++#define BTN_TOOL_FINGER 0x145
++#endif
++
++#ifndef BTN_TOUCH
++#define BTN_TOUCH 0x14a
++#endif
++
++#ifndef BTN_TOOL_DOUBLETAP
++#define BTN_TOOL_DOUBLETAP 0x14d
++#endif
++
++#ifndef BTN_TOOL_TRIPLETAP
++#define BTN_TOOL_TRIPLETAP 0x14e
++#endif
++
++#ifndef MSC_GESTURE
++#define MSC_GESTURE 2
++#endif
++
++#ifndef EV_SYNC
++#define EV_SYNC 0
++#endif
++
++#ifndef SYN_REPORT
++#define SYN_REPORT 0
++#endif
++
++#ifndef PSMOUSE_SYNAPTICS
++#define PSMOUSE_SYNAPTICS 7
++#endif
++
++#ifndef HAVE_INPUT_ID
++struct input_id {
++ unsigned short bustype;
++ unsigned short vendor;
++ unsigned short product;
++ unsigned short version;
++};
++#endif
++
++#ifndef HAVE_INPUT_ABSINFO
++struct input_absinfo {
++ int value;
++ int minimum;
++ int maximum;
++ int fuzz;
++ int flat;
++};
++#endif
++
++#endif
+diff -urN gpm-1.20.1/src/headers/message.h gpm/src/headers/message.h
+--- gpm-1.20.1/src/headers/message.h 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/headers/message.h 2003-10-02 01:22:42.000000000 -0500
+@@ -96,7 +96,6 @@
+ " -S [commands] enable special commands (see man page)\n" \
+ " -t mouse-type sets mouse type (default '%s')\n" \
+ " Use a non-existent type (e.g. \"help\") to get a list\n" \
+- " -T test: read mouse, no clients\n" \
+ " -v print version and exit\n" \
+ " -V verbosity increase number of logged messages\n\n\n" \
+ " Examples:\n\n" \
+@@ -168,7 +167,8 @@
+ #define GPM_MESS_SELECT_TIMES "selected %i times"
+
+ #define GPM_MESS_OPTION_NO_ARG "%s: Option \"%s\" takes no argument: ignoring \"%s\""
+-#define GPM_MESS_INVALID_ARG "%s: Invalid arg. \"%s\" to \"%s\""
++#define GPM_MESS_INVALID_ARG "%s: Invalid argument \"%s\" for option \"%s\""
++#define GPM_MESS_MISSING_ARG "%s: Option \"%s\" requires an argument"
+ #define GPM_MESS_CONT_WITH_ERR "%s: Continuing despite errors in option parsing"
+ #define GPM_MESS_TOO_MANY_OPTS "%s: Too many options for \"-t %s\""
+
+@@ -196,7 +196,7 @@
+
+ /* warnings */
+ #define GPM_MESS_REQUEST_ON "Request on vc %i > %i"
+-#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %s"
++#define GPM_MESS_FAILED_CONNECT "Failed gpm connect attempt by uid %d for vc %d"
+ #define GPM_MESS_ZERO_SCREEN_DIM "zero screen dimension, assuming 80x25"
+ #define GPM_MESS_STRANGE_DATA "Data on strange file descriptor %d"
+ #define GPM_MESS_RESIZING "%s pid %i is resizing :-)"
+diff -urN gpm-1.20.1/src/headers/optparser.h gpm/src/headers/optparser.h
+--- gpm-1.20.1/src/headers/optparser.h 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/headers/optparser.h 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,50 @@
++/*
++ * optparser.h - GPM mouse options parser
++ *
++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk>
++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it>
++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net>
++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de>
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++#ifndef __GPM_OPTPARSER_H_
++#define __GPM_OPTPARSER_H_
++
++enum option_type {
++ OPT_BOOL = 1,
++ OPT_INT, /* "%i" */
++ OPT_DEC, /* "%d" */
++ OPT_STRING,
++ /* other types must be added */
++ OPT_END = 0
++};
++
++struct option_helper {
++ char *name;
++ enum option_type type;
++ union u {
++ int *iptr; /* used for int and bool arguments */
++ char **sptr; /* used for string arguments, by strdup()ing the value */
++ } u;
++ int value; /* used for boolean arguments */
++ int present;
++};
++
++int parse_options(const char *who, const char *opt, char sep, struct option_helper *info);
++int check_no_options(const char *proto, const char *opts, char sep);
++int is_option_present(struct option_helper *info, const char *name);
++#endif
+diff -urN gpm-1.20.1/src/headers/selection.h gpm/src/headers/selection.h
+--- gpm-1.20.1/src/headers/selection.h 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/headers/selection.h 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,37 @@
++/*
++ * console.h - GPM selection/paste handling
++ *
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#ifndef __GPM_SELECTION_H_
++#define __GPM_SELECTION_H_
++
++struct sel_options {
++ int aged;
++ int age_limit;
++ int ptrdrag;
++};
++
++struct Gpm_Event;
++
++extern struct sel_options sel_opts; /* only one exists */
++
++void do_selection(struct Gpm_Event *event, int three_button_mode);
++void selection_disable_paste(void);
++
++#endif /* __GPM_CONSOLE_H_ */
+diff -urN gpm-1.20.1/src/headers/synaptics.h gpm/src/headers/synaptics.h
+--- gpm-1.20.1/src/headers/synaptics.h 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/headers/synaptics.h 2003-10-02 01:22:42.000000000 -0500
+@@ -62,7 +62,7 @@
+ **
+ ** Process the touchpad 6/7/8 byte data.
+ */
+-void syn_process_serial_data (Gpm_Event *state,
++void syn_process_serial_data (int fd, Gpm_Event *state,
+ unsigned char *data);
+
+
+@@ -72,7 +72,7 @@
+ **
+ ** Process the touchpad 6 byte data.
+ */
+-void syn_process_ps2_data (Gpm_Event *state,
++void syn_process_ps2_data (int fd, Gpm_Event *state,
+ unsigned char *data);
+
+
+diff -urN gpm-1.20.1/src/lib/liblow.c gpm/src/lib/liblow.c
+--- gpm-1.20.1/src/lib/liblow.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/lib/liblow.c 2003-10-02 01:22:42.000000000 -0500
+@@ -80,6 +80,8 @@
+ int gpm_consolefd=-1; /* used to invoke ioctl() */
+ int gpm_morekeys=0;
+
++static char *consolename;
++
+ int gpm_convert_event(unsigned char *mdata, Gpm_Event *ePtr);
+
+ /*----------------------------------------------------------------------------*
+@@ -192,14 +194,13 @@
+ char *tty = NULL;
+ char *term = NULL;
+ int i;
+- extern struct options option;
+ static int checked_con = 0;
+ struct sockaddr_un addr;
+ struct winsize win;
+ Gpm_Stst *new = NULL;
+ char* sock_name = 0;
+
+- option.consolename = NULL;
++ consolename = NULL;
+
+ gpm_report(GPM_PR_DEBUG,"VC: %d",flag);
+
+@@ -216,7 +217,7 @@
+
+ /* check whether we know what name the console is: what's with the lib??? */
+ if(checked_con == 0) {
+- option.consolename = Gpm_get_console();
++ consolename = Gpm_get_console();
+ checked_con++;
+ }
+
+@@ -245,10 +246,10 @@
+ conn->vc=0; /* default handler */
+ if (flag > 0) { /* forced vc number */
+ conn->vc=flag;
+- if((tty = malloc(strlen(option.consolename)+Gpm_cnt_digits(flag))) == NULL)
++ if((tty = malloc(strlen(consolename)+Gpm_cnt_digits(flag))) == NULL)
+ gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+- memcpy(tty,option.consolename,strlen(option.consolename)-1);
+- sprintf(&tty[strlen(option.consolename)-1],"%i",flag);
++ memcpy(tty,consolename,strlen(consolename)-1);
++ sprintf(&tty[strlen(consolename)-1],"%i",flag);
+ } else { /* use your current vc */
+ if (isatty(0)) tty = ttyname(0); /* stdin */
+ if (!tty && isatty(1)) tty = ttyname(1); /* stdout */
+@@ -258,13 +259,13 @@
+ goto err;
+ }
+ /* do we really need this check ? */
+- if(strncmp(tty,option.consolename,strlen(option.consolename)-1)
+- || !isdigit(tty[strlen(option.consolename)-1])) {
+- gpm_report(GPM_PR_ERR,"strncmp/isdigit/option.consolename failed");
++ if(strncmp(tty,consolename,strlen(consolename)-1)
++ || !isdigit(tty[strlen(consolename)-1])) {
++ gpm_report(GPM_PR_ERR,"strncmp/isdigit/consolename failed");
+ goto err;
+ }
+
+- conn->vc=atoi(&tty[strlen(option.consolename)-1]);
++ conn->vc=atoi(&tty[strlen(consolename)-1]);
+ }
+
+ if (gpm_consolefd == -1)
+@@ -272,6 +273,8 @@
+ gpm_report(GPM_PR_ERR,GPM_MESS_DOUBLE_S,tty,strerror(errno));
+ goto err;
+ }
++
++ if (flag > 0) free(tty);
+ }
+
+ new->info=*conn;
+diff -urN gpm-1.20.1/src/lib/tools.c gpm/src/lib/tools.c
+--- gpm-1.20.1/src/lib/tools.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/lib/tools.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,93 @@
++/*
++ * tools.c - tools which are needed by client and server
++ *
++ * Copyright (c) 2001 Nico Schottelius <nico@schottelius.org>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#include <stdio.h> /* NULL */
++#include <string.h>
++#include <stdlib.h>
++#include <sys/types.h> /* these three are */
++#include <sys/stat.h> /* needed for */
++#include <unistd.h> /* stat() */
++
++#include "headers/gpmInt.h" /* only used for some defines */
++#include "headers/message.h"
++
++/*****************************************************************************
++ * check, whether devfs is used or not.
++ * See /usr/src/linux/Documentation/filesystems/devfs/ for details.
++ * Returns: the name of the console (/dev/tty0 or /dev/vc/0)
++ *****************************************************************************/
++char *Gpm_get_console( void )
++{
++
++ char *back = NULL, *tmp = NULL;
++ struct stat buf;
++
++ /* first try the devfs device, because in the next time this will be
++ * the preferred one. If that fails, take the old console */
++
++ /* Check for open new console */
++ if (stat(GPM_DEVFS_CONSOLE,&buf) == 0)
++ tmp = GPM_DEVFS_CONSOLE;
++
++ /* Failed, try OLD console */
++ else if(stat(GPM_OLD_CONSOLE,&buf) == 0)
++ tmp = GPM_OLD_CONSOLE;
++
++ if(tmp != NULL)
++ if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL)
++ strcpy(back,tmp);
++
++ return(back);
++}
++
++/* what's the english name for potenz ? */
++int Gpm_x_high_y(int base, int pot_y)
++{
++ int val = 1;
++
++ if(pot_y == 0) val = 1;
++ else if(pot_y < 0) val = 0; /* ugly hack ;) */
++ else while(pot_y > 0) {
++ val = val * base;
++ pot_y--;
++ }
++ return val;
++}
++
++/* return characters needed to display int */
++int Gpm_cnt_digits(int number)
++{
++ /* 0-9 = 1 10^0 <-> (10^1)-1
++ * 10 - 99 = 2 10^1 <-> (10^2)-1
++ * 100 - 999 = 3 10^2 <-> (10^3)-1
++ * 1000 - 9999 = 4 ... */
++
++ int ret = 0, num = 0;
++
++ /* non negative, please */
++ if(number < 0) number *= -1;
++ else if(number == 0) ret = 1;
++ else while(number > num) {
++ ret++;
++ num = (Gpm_x_high_y(10,ret) - 1);
++ }
++
++ return(ret);
++}
+diff -urN gpm-1.20.1/src/Makefile.in gpm/src/Makefile.in
+--- gpm-1.20.1/src/Makefile.in 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/Makefile.in 2003-10-02 01:22:42.000000000 -0500
+@@ -12,15 +12,16 @@
+ include $(top_builddir)/Makefile.include
+
+ # Main portion: regular build rules
++MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@
+
+-GSRC = main.c gpm.c gpn.c mice.c special.c twiddler.c synaptics.c \
+- startup.c server_tools.c
++GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \
++ selection.c client.c optparser.c $(MICESRC)
+
+-GOBJ = $(GSRC:.c=.o) report.o tools.o
++GOBJ = $(GSRC:.c=.o) report.o
+
+-LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c
++LSRC = lib/liblow.c lib/libhigh.c lib/libxtra.c lib/report-lib.c lib/tools.c
+
+-LOBJ = $(LSRC:.c=.o) tools.o @CURSES_OBJS@
++LOBJ = $(LSRC:.c=.o) @CURSES_OBJS@
+
+ PICS = $(LOBJ:.o=.lo)
+
+@@ -143,7 +144,7 @@
+ $(CC) -I. @CPPFLAGS@ $(CPPFLAGS) @CFLAGS@ $(CFLAGS) -c -o $@.o $<
+ $(CC) @LDFLAGS@ $(LDFLAGS) -o $@ $@.o @LIBS@ $(LIBS) lib/libgpm.a
+
+-prog/mouse-test: mice.o twiddler.o synaptics.o
++prog/mouse-test: $(MICESRC:.c=.o) console.o optparser.o
+
+ $(PROG): lib/libgpm.so lib/@SHLIB@ lib/libgpm.a
+
+diff -urN gpm-1.20.1/src/mice.c gpm/src/mice.c
+--- gpm-1.20.1/src/mice.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/mice.c 2003-10-02 01:22:42.000000000 -0500
+@@ -46,15 +46,11 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <termios.h>
+-#include <fcntl.h>
+-#include <termios.h>
+ #include <errno.h>
+ #include <unistd.h>
+ #include <ctype.h>
+
+-#include <sys/types.h>
+ #include <sys/stat.h> /* stat() */
+-#include <sys/time.h> /* select() */
+
+ #include <linux/kdev_t.h> /* MAJOR */
+ #include <linux/keyboard.h>
+@@ -72,135 +68,40 @@
+
+
+ #include "headers/gpmInt.h"
++#include "headers/console.h"
+ #include "headers/twiddler.h"
+ #include "headers/synaptics.h"
+ #include "headers/message.h"
+-
+-/*========================================================================*/
+-/* Parsing argv: helper dats struct function (should they get elsewhere?) */
+-/*========================================================================*/
+-
+-enum argv_type {
+- ARGV_BOOL = 1,
+- ARGV_INT, /* "%i" */
+- ARGV_DEC, /* "%d" */
+- ARGV_STRING,
+- /* other types must be added */
+- ARGV_END = 0
+-};
+-
+-typedef struct argv_helper {
+- char *name;
+- enum argv_type type;
+- union u {
+- int *iptr; /* used for int and bool arguments */
+- char **sptr; /* used for string arguments, by strdup()ing the value */
+- } u;
+- int value; /* used for boolean arguments */
+-} argv_helper;
+-
+-static int parse_argv(argv_helper *info, int argc, char **argv)
+-{
+- int i, j = 0, errors = 0;
+- long l;
+- argv_helper *p;
+- char *s, *t;
+- int base = 0; /* for strtol */
+-
+-
+- for (i=1; i<argc; i++) {
+- for (p = info; p->type != ARGV_END; p++) {
+- j = strlen(p->name);
+- if (strncmp(p->name, argv[i], j))
+- continue;
+- if (isalnum(argv[i][j]))
+- continue;
+- break;
+- }
+- if (p->type == ARGV_END) { /* not found */
+- fprintf(stderr, "%s: Uknown option \"%s\" for pointer \"%s\"\n",
+- option.progname, argv[i], argv[0]);
+- errors++;
+- continue;
+- }
+- /* Found. Look for trailing stuff, if any */
+- s = argv[i]+j;
+- while (*s && isspace(*s)) s++; /* skip spaces */
+- if (*s == '=') s++; /* skip equal */
+- while (*s && isspace(*s)) s++; /* skip other spaces */
+-
+- /* Now parse what s is */
+- switch(p->type) {
+- case ARGV_BOOL:
+- if (*s) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_OPTION_NO_ARG,option.progname,p->name,s);
+- errors++;
+- }
+- *(p->u.iptr) = p->value;
+- break;
+-
+- case ARGV_DEC:
+- base = 10; /* and fall through */
+- case ARGV_INT:
+- l = strtol(s, &t, base);
+- if (*t) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_INVALID_ARG, option.progname, s, p->name);
+- errors++;
+- break;
+- }
+- *(p->u.iptr) = (int)l;
+- break;
+-
+- case ARGV_STRING:
+- *(p->u.sptr) = strdup(s);
+- break;
+-
+- case ARGV_END: /* let's please "-Wall" */
+- break;
+- }
+- } /* for i in argc */
+- if (errors) gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname);
+- return errors;
+-}
+-
+-/*========================================================================*/
+-/* Provide a common error engine by parsing with an empty option-set */
+-/*========================================================================*/
+-static volatile int check_no_argv(int argc, char **argv)
+-{
+- static argv_helper optioninfo[] = {
+- {"", ARGV_END}
+- };
+- return parse_argv(optioninfo, argc, argv);
+-}
++#include "headers/optparser.h"
+
+ /*========================================================================*/
+ /* Parse the "old" -o options */
+ /*========================================================================*/
+-static int option_modem_lines(int fd, int argc, char **argv)
++static int option_modem_lines(int fd, char *proto, char *opts)
+ {
+- static unsigned int err, lines, reallines;
++ static unsigned int lines, reallines;
++ static struct option_helper optioninfo[] = {
++ {"dtr", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR},
++ {"rts", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_RTS},
++ {"both", OPT_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS},
++ {"", OPT_END}
++ };
+
+- static argv_helper optioninfo[] = {
+- {"dtr", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR},
+- {"rts", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_RTS},
+- {"both", ARGV_BOOL, u: {iptr: &lines}, value: TIOCM_DTR | TIOCM_RTS},
+- {"", ARGV_END}
+- };
++ int rslt = parse_options(proto, opts, ',', optioninfo);
+
+- if (argc<2) return 0;
+- if (argc > 2) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_TOO_MANY_OPTS,option.progname, argv[0]);
++ if (rslt < 0) {
++ errno = EINVAL;
++ return -1;
++ } else if (rslt > 1) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_TOO_MANY_OPTS, option.progname, proto);
+ errno = EINVAL; /* used by gpm_oops(), if the caller reports failure */
+ return -1;
++ } else if (rslt == 1) {
++ /* ok, move the lines */
++ ioctl(fd, TIOCMGET, &reallines);
++ reallines &= ~lines;
++ ioctl(fd, TIOCMSET, &reallines);
+ }
+- err = parse_argv(optioninfo, argc, argv);
+- if(err) return 0; /* a message has been printed, but go on as good */
+-
+- /* ok, move the lines */
+- ioctl(fd, TIOCMGET, &reallines);
+- reallines &= ~lines;
+- ioctl(fd, TIOCMSET, &reallines);
+ return 0;
+ }
+
+@@ -233,28 +134,12 @@
+ /*========================================================================*/
+
+ #ifdef HAVE_LINUX_INPUT_H
+-static int M_evdev (Gpm_Event * state, unsigned char *data)
+-{
+- struct input_event thisevent;
+- (void) memcpy (&thisevent, data, sizeof (struct input_event));
+- if (thisevent.type == EV_REL) {
+- if (thisevent.code == REL_X)
+- state->dx = (signed char) thisevent.value;
+- else if (thisevent.code == REL_Y)
+- state->dy = (signed char) thisevent.value;
+- } else if (thisevent.type == EV_KEY) {
+- switch(thisevent.code) {
+- case BTN_LEFT: state->buttons ^= GPM_B_LEFT; break;
+- case BTN_MIDDLE: state->buttons ^= GPM_B_MIDDLE; break;
+- case BTN_RIGHT: state->buttons ^= GPM_B_RIGHT; break;
+- case BTN_SIDE: state->buttons ^= GPM_B_MIDDLE; break;
+- }
+- }
+- return 0;
+-}
++/* defined in evdev.c */
++extern int M_evdev(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state);
++extern int I_evdev(struct micedev *dev, struct miceopt *opt, Gpm_Type *type);
+ #endif /* HAVE_LINUX_INPUT_H */
+
+-static int M_ms(Gpm_Event *state, unsigned char *data)
++static int M_ms(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /*
+ * some devices report a change of middle-button state by
+@@ -273,7 +158,7 @@
+ return 0;
+ }
+
+-static int M_ms_plus(Gpm_Event *state, unsigned char *data)
++static int M_ms_plus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ static unsigned char prev=0;
+
+@@ -293,7 +178,7 @@
+ return 0;
+ }
+
+-static int M_ms_plus_lr(Gpm_Event *state, unsigned char *data)
++static int M_ms_plus_lr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /*
+ * Same as M_ms_plus but with an addition by Edmund GRIMLEY EVANS
+@@ -329,19 +214,19 @@
+ int SUMMA_BORDER=100;
+ int summamaxx,summamaxy;
+ char summaid=-1;
+-static int M_summa(Gpm_Event *state, unsigned char *data)
++static int M_summa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ int x, y;
+
+ x = ((data[2]<<7) | data[1])-SUMMA_BORDER;
+ if (x<0) x=0;
+ if (x>summamaxx) x=summamaxx;
+- state->x = (x * win.ws_col / summamaxx);
++ state->x = (x * console.max_x / summamaxx);
+ realposx = (x * 16383 / summamaxx);
+
+ y = ((data[4]<<7) | data[3])-SUMMA_BORDER;
+ if (y<0) y=0; if (y>summamaxy) y=summamaxy;
+- state->y = 1 + y * (win.ws_row-1)/summamaxy;
++ state->y = 1 + y * (console.max_y-1)/summamaxy;
+ realposy = y * 16383 / summamaxy;
+
+ state->buttons=
+@@ -396,7 +281,7 @@
+
+
+ /* 'Genitizer' (kw@dtek.chalmers.se 11/12/97) */
+-static int M_geni(Gpm_Event *state, unsigned char *data)
++static int M_geni(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /* this is a little confusing. If we use the stylus, we
+ * have three buttons (tip, lower, upper), and if
+@@ -419,7 +304,7 @@
+
+
+ /* m$ 'Intellimouse' (steveb 20/7/97) */
+-static int M_ms3(Gpm_Event *state, unsigned char *data)
++static int M_ms3(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->wdx = state->wdy = 0;
+ state->buttons= ((data[0] & 0x20) >> 3) /* left */
+@@ -470,7 +355,7 @@
+ }
+
+ /* M_brw is a variant of m$ 'Intellimouse' the middle button is different */
+-static int M_brw(Gpm_Event *state, unsigned char *data)
++static int M_brw(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= ((data[0] & 0x20) >> 3) /* left */
+ | ((data[3] & 0x20) >> 4) /* middle */
+@@ -491,7 +376,7 @@
+ return 0;
+ }
+
+-static int M_bare(Gpm_Event *state, unsigned char *data)
++static int M_bare(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /* a bare ms protocol */
+ state->buttons= ((data[0] & 0x20) >> 3) | ((data[0] & 0x10) >> 4);
+@@ -500,7 +385,7 @@
+ return 0;
+ }
+
+-static int M_sun(Gpm_Event *state, unsigned char *data)
++static int M_sun(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= (~data[0]) & 0x07;
+ state->dx= (signed char)(data[1]);
+@@ -508,7 +393,7 @@
+ return 0;
+ }
+
+-static int M_msc(Gpm_Event *state, unsigned char *data)
++static int M_msc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= (~data[0]) & 0x07;
+ state->dx= (signed char)(data[1]) + (signed char)(data[3]);
+@@ -558,7 +443,7 @@
+
+ }
+
+-static int M_logimsc(Gpm_Event *state, unsigned char *data) /* same as msc */
++static int M_logimsc(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= (~data[0]) & 0x07;
+ state->dx= (signed char)(data[1]) + (signed char)(data[3]);
+@@ -566,7 +451,7 @@
+ return 0;
+ }
+
+-static int M_mm(Gpm_Event *state, unsigned char *data)
++static int M_mm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= data[0] & 0x07;
+ state->dx= (data[0] & 0x10) ? data[1] : - data[1];
+@@ -574,7 +459,7 @@
+ return 0;
+ }
+
+-static int M_logi(Gpm_Event *state, unsigned char *data) /* equal to mm */
++static int M_logi(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= data[0] & 0x07;
+ state->dx= (data[0] & 0x10) ? data[1] : - data[1];
+@@ -582,7 +467,7 @@
+ return 0;
+ }
+
+-static int M_bm(Gpm_Event *state, unsigned char *data) /* equal to sun */
++static int M_bm(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ state->buttons= (~data[0]) & 0x07;
+ state->dx= (signed char)data[1];
+@@ -590,7 +475,7 @@
+ return 0;
+ }
+
+-static int M_ps2(Gpm_Event *state, unsigned char *data)
++static int M_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ static int tap_active=0; /* there exist glidepoint ps2 mice */
+
+@@ -599,8 +484,8 @@
+ !!(data[0]&2) * GPM_B_RIGHT +
+ !!(data[0]&4) * GPM_B_MIDDLE;
+
+- if (data[0]==0 && opt_glidepoint_tap) /* by default this is false */
+- state->buttons = tap_active = opt_glidepoint_tap;
++ if (data[0]==0 && opt->glidepoint_tap) /* by default this is false */
++ state->buttons = tap_active = opt->glidepoint_tap;
+ else if (tap_active) {
+ if (data[0]==8)
+ state->buttons = tap_active = 0;
+@@ -623,10 +508,11 @@
+ state->dy= -((data[0] & 0x20) ? data[2]-256 : data[2]);
+ else
+ state->dy = 0;
++
+ return 0;
+ }
+
+-static int M_imps2(Gpm_Event *state, unsigned char *data)
++static int M_imps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+
+ static int tap_active=0; /* there exist glidepoint ps2 mice */
+@@ -636,8 +522,8 @@
+ state->buttons= ((data[0] & 1) << 2) /* left */
+ | ((data[0] & 6) >> 1); /* middle and right */
+
+- if (data[0]==0 && opt_glidepoint_tap) // by default this is false
+- state->buttons = tap_active = opt_glidepoint_tap;
++ if (data[0]==0 && opt->glidepoint_tap) // by default this is false
++ state->buttons = tap_active = opt->glidepoint_tap;
+ else if (tap_active) {
+ if (data[0]==8)
+ state->buttons = tap_active = 0;
+@@ -667,7 +553,7 @@
+
+ }
+
+-static int M_netmouse(Gpm_Event *state, unsigned char *data)
++static int M_netmouse(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /* Avoid these beasts if you can. They connect to normal PS/2 port,
+ * but their protocol is one byte longer... So if you have notebook
+@@ -706,47 +592,45 @@
+ }
+
+ /* standard ps2 */
+-static Gpm_Type *I_ps2(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++int I_ps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, };
+- write (fd, s, sizeof (s));
++ write(dev->fd, s, sizeof (s));
+ usleep (30000);
+- tcflush (fd, TCIFLUSH);
+- return type;
++ tcflush (dev->fd, TCIFLUSH);
++ return 0;
+ }
+
+-static Gpm_Type *I_netmouse(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_netmouse(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ unsigned char magic[6] = { 0xe8, 0x03, 0xe6, 0xe6, 0xe6, 0xe9 };
+ int i;
+
+- if (check_no_argv(argc, argv)) return NULL;
++ if (!check_no_options(type->name, opt->text, ',')) return -1;
+ for (i=0; i<6; i++) {
+ unsigned char c = 0;
+- write( fd, magic+i, 1 );
+- read( fd, &c, 1 );
++ write(dev->fd, magic+i, 1 );
++ read(dev->fd, &c, 1 );
+ if (c != 0xfa) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_NETM_NO_ACK,c);
+- return NULL;
++ return -1;
+ }
+ }
+ {
+ unsigned char rep[3] = { 0, 0, 0 };
+- read( fd, rep, 1 );
+- read( fd, rep+1, 1 );
+- read( fd, rep+2, 1 );
++ read( dev->fd, rep, 1 );
++ read( dev->fd, rep+1, 1 );
++ read( dev->fd, rep+2, 1 );
+ if (rep[0] || (rep[1] != 0x33) || (rep[2] != 0x55)) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_NETM_INV_MAGIC, rep[0], rep[1], rep[2]);
+- return NULL;
++ return -1;
+ }
+ }
+- return type;
++ return 0;
+ }
+
+ #define GPM_B_BOTH (GPM_B_LEFT|GPM_B_RIGHT)
+-static int M_mman(Gpm_Event *state, unsigned char *data)
++static int M_mman(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /*
+ * the damned MouseMan has 3/4 bytes packets. The extra byte
+@@ -784,7 +668,7 @@
+ mytype->getextra=1;
+ } else {
+ if (b & 0x2) prev |= GPM_B_MIDDLE;
+- if (b & 0x1) prev |= opt_glidepoint_tap;
++ if (b & 0x1) prev |= opt->glidepoint_tap;
+ }
+ }
+ state->buttons=prev;
+@@ -828,7 +712,7 @@
+
+ #define IsA(m) ((WacomModell==(-1))? 0:!strcmp(#m,wcmodell[WacomModell].name))
+
+-static int M_wacom(Gpm_Event *state, unsigned char *data)
++static int M_wacom(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ static int ox=-1, oy;
+ int x, y;
+@@ -878,8 +762,8 @@
+ if (WacomAbsoluteWanted) { /* Absolute Mode */
+ if (x>wmaxx) x=wmaxx; if (x<0) x=0;
+ if (y>wmaxy) y=wmaxy; if (y<0) y=0;
+- state->x = (x * win.ws_col / wmaxx);
+- state->y = (y * win.ws_row / wmaxy);
++ state->x = (x * console.max_x / wmaxx);
++ state->y = (y * console.max_y / wmaxy);
+
+ realposx = (x / wmaxx); /* this two lines come from the summa driver. */
+ realposy = (y / wmaxy); /* they seem to be buggy (always give zero). */
+@@ -889,8 +773,8 @@
+ if( abs(x-ox)>(wmaxx/wcmodell[WacomModell].treshold)
+ || abs(y-oy)>(wmaxy/wcmodell[WacomModell].treshold) ) ox=x; oy=y;
+
+- state->dx= (x-ox) / (wmaxx / win.ws_col / wcmodell[WacomModell].treshold);
+- state->dy= (y-oy) / (wmaxy / win.ws_row / wcmodell[WacomModell].treshold);
++ state->dx= (x-ox) / (wmaxx / console.max_x / wcmodell[WacomModell].treshold);
++ state->dy= (y-oy) / (wmaxy / console.max_y / wcmodell[WacomModell].treshold);
+ }
+
+ ox=x; oy=y;
+@@ -918,7 +802,7 @@
+ #define CAL_Y_MAX 0xF40
+ #define CAL_Y_SIZE (CAL_Y_MAX - CAL_Y_MIN)
+
+-static int M_calus(Gpm_Event *state, unsigned char *data)
++static int M_calus(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ int x, y;
+
+@@ -932,12 +816,12 @@
+ state->dx = 0; state->dy = 0;
+
+ state->x = x < CAL_X_MIN ? 0
+- : x > CAL_X_MAX ? win.ws_col+1
+- : (long)(x-CAL_X_MIN) * (long)(win.ws_col-1) / CAL_X_SIZE+2;
++ : x > CAL_X_MAX ? console.max_x+1
++ : (long)(x-CAL_X_MIN) * (long)(console.max_x-1) / CAL_X_SIZE+2;
+
+- state->y = y < CAL_Y_MIN ? win.ws_row + 1
++ state->y = y < CAL_Y_MIN ? console.max_y + 1
+ : y > CAL_Y_MAX ? 0
+- : (long)(CAL_Y_MAX-y) * (long)win.ws_row / CAL_Y_SIZE + 1;
++ : (long)(CAL_Y_MAX-y) * (long)console.max_y / CAL_Y_SIZE + 1;
+
+ realposx = x < CAL_X_MIN ? 0
+ : x > CAL_X_MAX ? 16384
+@@ -950,7 +834,7 @@
+ return 0;
+ }
+
+-static int M_calus_rel(Gpm_Event *state, unsigned char *data)
++static int M_calus_rel(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ static int ox=-1, oy;
+ int x, y;
+@@ -984,7 +868,7 @@
+ #define NCR_DELTA_X (NCR_RIGHT_X - NCR_LEFT_X)
+ #define NCR_DELTA_Y (NCR_TOP_Y - NCR_BOTTOM_Y)
+
+-static int M_ncr(Gpm_Event *state, unsigned char *data)
++static int M_ncr(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ int x,y;
+
+@@ -1002,14 +886,14 @@
+ state->x = x < NCR_LEFT_X
+ ? 0
+ : x > NCR_RIGHT_X
+- ? win.ws_col+1
+- : (long)(x-NCR_LEFT_X) * (long)(win.ws_col-1) / NCR_DELTA_X+2;
++ ? console.max_x+1
++ : (long)(x-NCR_LEFT_X) * (long)(console.max_x-1) / NCR_DELTA_X+2;
+
+ state->y = y < NCR_BOTTOM_Y
+- ? win.ws_row + 1
++ ? console.max_y + 1
+ : y > NCR_TOP_Y
+ ? 0
+- : (long)(NCR_TOP_Y-y) * (long)win.ws_row / NCR_DELTA_Y + 1;
++ : (long)(NCR_TOP_Y-y) * (long)console.max_y / NCR_DELTA_Y + 1;
+
+ realposx = x < NCR_LEFT_X
+ ? 0
+@@ -1026,7 +910,7 @@
+ return 0;
+ }
+
+-static int M_twid(Gpm_Event *state, unsigned char *data)
++static int M_twid(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ unsigned long message=0UL; int i,h,v;
+ static int lasth, lastv, lastkey, key, lock=0, autorepeat=0;
+@@ -1144,7 +1028,7 @@
+ #ifdef HAVE_LINUX_JOYSTICK_H
+ /* Joystick mouse emulation (David Given) */
+
+-static int M_js(Gpm_Event *state, unsigned char *data)
++static int M_js(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ struct JS_DATA_TYPE *jdata = (void*)data;
+ static int centerx = 0;
+@@ -1193,21 +1077,21 @@
+ #endif /* have joystick.h */
+
+ /* Synaptics TouchPad mouse emulation (Henry Davies) */
+-static int M_synaptics_serial(Gpm_Event *state, unsigned char *data)
++static int M_synaptics_serial(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+- syn_process_serial_data (state, data);
++ syn_process_serial_data(dev->fd, state, data);
+ return 0;
+ }
+
+
+ /* Synaptics TouchPad mouse emulation (Henry Davies) */
+-static int M_synaptics_ps2(Gpm_Event *state, unsigned char *data)
++static int M_synaptics_ps2(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+- syn_process_ps2_data(state, data);
++ syn_process_ps2_data(dev->fd, state, data);
+ return 0;
+ }
+
+-static int M_mtouch(Gpm_Event *state, unsigned char *data)
++static int M_mtouch(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /*
+ * This is a simple decoder for the MicroTouch touch screen
+@@ -1219,8 +1103,8 @@
+ static int upx, upy; /* keep track of last finger-up place */
+ static struct timeval uptv, tv; /* time of last up, and down events */
+
+- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF)
+- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF)
++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF)
++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF)
+
+ #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
+ #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \
+@@ -1245,7 +1129,7 @@
+
+ if (avgx < 0) { /* press event */
+ GET_TIME(tv);
+- if (DIF_TIME(uptv, tv) < opt_time) {
++ if (DIF_TIME(uptv, tv) < opt->time) {
+ /* count as button press placed at finger-up pixel */
+ state->buttons = GPM_B_LEFT;
+ realposx = avgx = upx; state->x = REAL_TO_XCELL(realposx);
+@@ -1287,7 +1171,7 @@
+ static int gunze_calib[4]; /* x0,y0 x1,y1 (measured at 1/8 and 7/8) */
+ static int gunze_debounce = 100; /* milliseconds: ignore shorter taps */
+
+-static int M_gunze(Gpm_Event *state, unsigned char *data)
++static int M_gunze(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ /*
+ * This generates button-1 events, by now.
+@@ -1300,8 +1184,8 @@
+ static struct timeval uptv, tv; /* time of last up, and down events */
+ int timediff;
+
+- #define REAL_TO_XCELL(x) (x * win.ws_col / 0x3FFF)
+- #define REAL_TO_YCELL(y) (y * win.ws_row / 0x3FFF)
++ #define REAL_TO_XCELL(x) (x * console.max_x / 0x3FFF)
++ #define REAL_TO_YCELL(y) (y * console.max_y / 0x3FFF)
+
+ #define GET_TIME(tv) (gettimeofday(&tv, (struct timezone *)NULL))
+ #define DIF_TIME(t1,t2) ((t2.tv_sec -t1.tv_sec) *1000+ \
+@@ -1350,7 +1234,7 @@
+ GET_TIME(tv);
+ timediff = DIF_TIME(uptv, tv);
+ released = 0;
+- if (timediff > gunze_debounce && timediff < opt_time) {
++ if (timediff > gunze_debounce && timediff < opt->time) {
+ /* count as button press placed at finger-up pixel */
+ dragging = 1;
+ state->buttons = GPM_B_LEFT;
+@@ -1399,7 +1283,7 @@
+ /* corresponding correction of the protocol identification */
+ /* mask) 2001/07/12 by Maciej W. Rozycki (macro@ds2.pg.gda.pl) */
+
+-static int M_vsxxx_aa(Gpm_Event *state, unsigned char *data)
++static int M_vsxxx_aa(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+
+ /* The mouse protocol is as follows:
+@@ -1449,16 +1333,16 @@
+ /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */
+ static int wizardpad_width = -1;
+ static int wizardpad_height = -1;
+-static int M_wp(Gpm_Event *state, unsigned char *data)
++static int M_wp(struct micedev *dev, struct miceopt *opt, unsigned char *data, Gpm_Event *state)
+ {
+ int x, y, pressure;
+
+ x = ((data[4] & 0x1f) << 12) | ((data[3] & 0x3f) << 6) | (data[2] & 0x3f);
+- state->x = x * win.ws_col / (wizardpad_width * 40);
++ state->x = x * console.max_x / (wizardpad_width * 40);
+ realposx = x * 16383 / (wizardpad_width * 40);
+
+ y = ((data[7] & 0x1f) << 12) | ((data[6] & 0x3f) << 6) | (data[5] & 0x3f);
+- state->y = win.ws_row - y * win.ws_row / (wizardpad_height * 40) - 1;
++ state->y = console.max_y - y * console.max_y / (wizardpad_height * 40) - 1;
+ realposy = 16383 - y * 16383 / (wizardpad_height * 40) - 1;
+
+ pressure = ((data[9] & 0x0f) << 4) | (data[8] & 0x0f);
+@@ -1475,11 +1359,9 @@
+ /*========================================================================*/
+ /* Then, mice should be initialized */
+
+-static Gpm_Type* I_empty(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_empty(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+- if (check_no_argv(argc, argv)) return NULL;
+- return type;
++ return check_no_options(type->name, opt->text, ',') ? 0 : -1;
+ }
+
+ static int setspeed(int fd,int old,int new,int needtowrite,unsigned short flags)
+@@ -1536,28 +1418,27 @@
+ {125,"Q"},
+ {1E9,"N"}, };
+
+-static Gpm_Type* I_serial(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_serial(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ int i; unsigned char c;
+ fd_set set; struct timeval timeout={0,0}; /* used when not debugging */
+
+ /* accept "-o dtr", "-o rts" and "-o both" */
+- if (option_modem_lines(fd, argc, argv)) return NULL;
++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1;
+
+ #ifndef DEBUG
+ /* flush any pending input (thanks, Miguel) */
+ FD_ZERO(&set);
+ for(i=0; /* always */ ; i++) {
+- FD_SET(fd,&set);
+- switch(select(fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){
+- case 1: if (read(fd,&c,1)==0) break;
++ FD_SET(dev->fd,&set);
++ switch(select(dev->fd+1,&set,(fd_set *)NULL,(fd_set *)NULL,&timeout/*zero*/)){
++ case 1: if (read(dev->fd,&c,1)==0) break;
+ case -1: continue;
+ }
+ break;
+ }
+
+- if (type->fun==M_logimsc) write(fd, "QU", 2 );
++ if (type->fun==M_logimsc) write(dev->fd, "QU", 2 );
+
+ #if 0 /* Did this ever work? -- I don't know, but should we not remove it,
+ * if it doesn't work ??? -- Nico */
+@@ -1570,7 +1451,7 @@
+
+ /* Non mman: change from any available speed to the chosen one */
+ for (i=9600; i>=1200; i/=2)
+- setspeed(fd, i, opt_baud, (type->fun != M_mman) /* write */, flags);
++ setspeed(dev->fd, i, opt->baud, (type->fun != M_mman) /* write */, type->flags);
+
+ /*
+ * reset the MouseMan/TrackMan to use the 3/4 byte protocol
+@@ -1578,51 +1459,50 @@
+ * Changed after 1.14; why not having "I_mman" now?
+ */
+ if (type->fun==M_mman) {
+- setspeed(fd, 1200, 1200, 0, flags); /* no write */
+- write(fd, "*X", 2);
+- setspeed(fd, 1200, opt_baud, 0, flags); /* no write */
+- return type;
++ setspeed(dev->fd, 1200, 1200, 0, type->flags); /* no write */
++ write(dev->fd, "*X", 2);
++ setspeed(dev->fd, 1200, opt->baud, 0, type->flags); /* no write */
++ return 0;
+ }
+
+ if(type->fun==M_geni) {
+ gpm_report(GPM_PR_INFO,GPM_MESS_INIT_GENI);
+- setspeed(fd, 1200, 9600, 1, flags); /* write */
+- write(fd, ":" ,1);
+- write(fd, "E" ,1); /* setup tablet. relative mode, resolution... */
+- write(fd, "@" ,1); /* setup tablet. relative mode, resolution... */
++ setspeed(dev->fd, 1200, 9600, 1, type->flags); /* write */
++ write(dev->fd, ":" ,1);
++ write(dev->fd, "E" ,1); /* setup tablet. relative mode, resolution... */
++ write(dev->fd, "@" ,1); /* setup tablet. relative mode, resolution... */
+ }
+
+ if (type->fun==M_synaptics_serial) {
+ int packet_length;
+
+- setspeed (fd, 1200, 1200, 1, flags);
+- packet_length = syn_serial_init (fd);
+- setspeed (fd, 1200, 9600, 1, flags);
++ setspeed (dev->fd, 1200, 1200, 1, type->flags);
++ packet_length = syn_serial_init (dev->fd);
++ setspeed (dev->fd, 1200, 9600, 1, type->flags);
+
+ type->packetlen = packet_length;
+ type->howmany = packet_length;
+ }
+
+ if (type->fun==M_vsxxx_aa) {
+- setspeed (fd, 4800, 4800, 0, flags); /* no write */
+- write(fd, "R", 1); /* initialize a mouse; without getting an "R" */
++ setspeed (dev->fd, 4800, 4800, 0, type->flags); /* no write */
++ write(dev->fd, "R", 1); /* initialize a mouse; without getting an "R" */
+ /* a mouse does not send a bytestream */
+ }
+
+- return type;
++ return 0;
+ }
+
+-static Gpm_Type* I_logi(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_logi(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ int i;
+ struct stat buf;
+ int busmouse;
+
+- if (check_no_argv(argc, argv)) return NULL;
++ if (!check_no_options(type->name, opt->text, ',')) return -1;
+
+ /* is this a serial- or a bus- mouse? */
+- if(fstat(fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT);
++ if(fstat(dev->fd,&buf)==-1) gpm_report(GPM_PR_OOPS,GPM_MESS_FSTAT);
+ i=MAJOR(buf.st_rdev);
+
+ /* I don't know why this is herein, but I remove it. I don't think a
+@@ -1635,21 +1515,20 @@
+ type->howmany = busmouse ? 3 : 1;
+
+ /* change from any available speed to the chosen one */
+- for (i=9600; i>=1200; i/=2) setspeed(fd, i, opt_baud, 1 /* write */, flags);
++ for (i=9600; i>=1200; i/=2) setspeed(dev->fd, i, opt->baud, 1 /* write */, type->flags);
+
+ /* this stuff is peculiar of logitech mice, also for the serial ones */
+- write(fd, "S", 1);
+- setspeed(fd, opt_baud, opt_baud, 1 /* write */,
++ write(dev->fd, "S", 1);
++ setspeed(dev->fd, opt->baud, opt->baud, 1 /* write */,
+ CS8 |PARENB |PARODD |CREAD |CLOCAL |HUPCL);
+
+ /* configure the sample rate */
+- for (i=0;opt_sample<=sampletab[i].sample;i++) ;
+- write(fd,sampletab[i].code,1);
+- return type;
++ for (i=0;opt->sample<=sampletab[i].sample;i++) ;
++ write(dev->fd,sampletab[i].code,1);
++ return 0;
+ }
+
+-static Gpm_Type *I_wacom(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_wacom(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ /* wacom graphire tablet */
+ #define UD_RESETBAUD "\r$" /* reset baud rate to default (wacom V) */
+@@ -1664,19 +1543,19 @@
+ {
+ /* Init Wacom communication; this is modified from xf86Wacom.so module */
+ /* Set speed to 19200 */
+- setspeed (fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL);
++ setspeed (dev->fd, 1200, 19200, 0, B19200|CS8|CREAD|CLOCAL|HUPCL);
+ /* Send Reset Baudrate Command */
+- write(fd, UD_RESETBAUD, strlen(UD_RESETBAUD));
++ write(dev->fd, UD_RESETBAUD, strlen(UD_RESETBAUD));
+ usleep(250000);
+ /* Send Reset Command */
+- write(fd, UD_RESET, strlen(UD_RESET));
++ write(dev->fd, UD_RESET, strlen(UD_RESET));
+ usleep(75000);
+ /* Set speed to 9600bps */
+- setspeed (fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL);
++ setspeed (dev->fd, 1200, 9600, 0, B9600|CS8|CREAD|CLOCAL|HUPCL);
+ /* Send Reset Command */
+- write(fd, UD_RESET, strlen(UD_RESET));
++ write(dev->fd, UD_RESET, strlen(UD_RESET));
+ usleep(250000);
+- write(fd, UD_STOP, strlen(UD_STOP));
++ write(dev->fd, UD_STOP, strlen(UD_STOP));
+ usleep(100000);
+ }
+
+@@ -1690,7 +1569,7 @@
+ struct timeval timeout;
+ fd_set readfds;
+ int err;
+- FD_ZERO(&readfds); FD_SET(fd, &readfds);
++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds);
+ timeout.tv_sec = 0; timeout.tv_usec = 200000;
+ err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
+ return((err>0)?1:err);
+@@ -1706,11 +1585,11 @@
+ * Get Data to buffer until full or timeout.
+ * Give back 0 for timeout and !0 for buffer full
+ */
+- if (cmd) write(fd,cmd,strlen(cmd));
++ if (cmd) write(dev->fd,cmd,strlen(cmd));
+ memset(buffer,0,sizeof(buffer)); p=buffer;
+ err=wait_wacom();
+ while (err != -1 && err && (p-buffer)<(sizeof(buffer)-1)) {
+- p+= read(fd,p,(sizeof(buffer)-1)-(p-buffer));
++ p+= read(dev->fd,p,(sizeof(buffer)-1)-(p-buffer));
+ err=wait_wacom();
+ }
+ /* return 1 for buffer full */
+@@ -1728,13 +1607,14 @@
+ */
+
+ /* accept boolean options absolute and relative */
+- static argv_helper optioninfo[] = {
+- {"absolute", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0},
+- {"relative", ARGV_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0},
+- {"", ARGV_END}
++ static struct option_helper optioninfo[] = {
++ {"absolute", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: !0},
++ {"relative", OPT_BOOL, u: {iptr: &WacomAbsoluteWanted}, value: 0},
++ {"", OPT_END}
+ };
+- parse_argv(optioninfo, argc, argv);
+- type->absolute = WacomAbsoluteWanted;
++
++ parse_options(type->name, opt->text, ',', optioninfo);
++ opt->absolute = WacomAbsoluteWanted;
+ reset_wacom();
+
+ /* "Flush" input queque */
+@@ -1756,7 +1636,7 @@
+ }
+ if(WacomModell >= (sizeof(wcmodell) / sizeof(struct WC_MODELL)))
+ WacomModell=-1;
+- gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, type->absolute? 'A':'R',
++ gpm_report(GPM_PR_INFO,GPM_MESS_WACOM_MOD, opt->absolute? 'A':'R',
+ (WacomModell==(-1))? "Unknown" : wcmodell[WacomModell].name,
+ buffer+2);
+
+@@ -1767,24 +1647,23 @@
+ wmaxx = (wmaxx-wcmodell[WacomModell].border);
+ wmaxy = (wmaxy-wcmodell[WacomModell].border);
+ }
+- write(fd,UD_SENDCOORDS,4);
++ write(dev->fd,UD_SENDCOORDS,4);
+
+- return type;
++ return 0;
+ }
+
+-static Gpm_Type *I_pnp(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_pnp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ struct termios tty;
+
+ /* accept "-o dtr", "-o rts" and "-o both" */
+- if (option_modem_lines(fd, argc, argv)) return NULL;
++ if (option_modem_lines(dev->fd, type->name, opt->text)) return -1;
+
+ /*
+ * Just put the device to 1200 baud. Thanks to Francois Chastrette
+ * for his great help and debugging with his own pnp device.
+ */
+- tcgetattr(fd, &tty);
++ tcgetattr(dev->fd, &tty);
+
+ tty.c_iflag = IGNBRK | IGNPAR;
+ tty.c_oflag = 0;
+@@ -1792,15 +1671,15 @@
+ tty.c_line = 0;
+ tty.c_cc[VTIME] = 0;
+ tty.c_cc[VMIN] = 1;
+- tty.c_cflag = flags | B1200;
+- tcsetattr(fd, TCSAFLUSH, &tty); /* set parameters */
++ tty.c_cflag = type->flags | B1200;
++ tcsetattr(dev->fd, TCSAFLUSH, &tty); /* set parameters */
+
+ /*
+ * Don't read the silly initialization string. I don't want to see
+ * the vendor name: it is only propaganda, with no information.
+ */
+
+- return type;
++ return 0;
+ }
+
+ /*
+@@ -1848,8 +1727,7 @@
+
+ /* intellimouse, ps2 version: Ben Pfaff and Colin Plumb */
+ /* Autodetect: Steve Bennett */
+-static Gpm_Type *I_imps2(int fd, unsigned short flags, struct Gpm_Type *type,
+- int argc, char **argv)
++static int I_imps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ int id;
+ static unsigned char basic_init[] = { GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100 };
+@@ -1857,36 +1735,36 @@
+ static unsigned char ps2_init[] = { GPM_AUX_SET_SCALE11, GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100, GPM_AUX_SET_RES, 3, };
+
+ /* Do a basic init in case the mouse is confused */
+- write_to_mouse(fd, basic_init, sizeof (basic_init));
++ write_to_mouse(dev->fd, basic_init, sizeof (basic_init));
+
+ /* Now try again and make sure we have a PS/2 mouse */
+- if (write_to_mouse(fd, basic_init, sizeof (basic_init)) != 0) {
++ if (write_to_mouse(dev->fd, basic_init, sizeof (basic_init)) != 0) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_INIT);
+- return(NULL);
++ return -1;
+ }
+
+ /* Try to switch to 3 button mode */
+- if (write_to_mouse(fd, imps2_init, sizeof (imps2_init)) != 0) {
++ if (write_to_mouse(dev->fd, imps2_init, sizeof (imps2_init)) != 0) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_FAILED);
+- return(NULL);
++ return -1;
+ }
+
+ /* Read the mouse id */
+- id = read_mouse_id(fd);
++ id = read_mouse_id(dev->fd);
+ if (id == GPM_AUX_ID_ERROR) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_MID_FAIL);
+ id = GPM_AUX_ID_PS2;
+ }
+
+ /* And do the real initialisation */
+- if (write_to_mouse(fd, ps2_init, sizeof (ps2_init)) != 0) {
++ if (write_to_mouse(dev->fd, ps2_init, sizeof (ps2_init)) != 0) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_SETUP_FAIL);
+ }
+
+ if (id == GPM_AUX_ID_IMPS2) {
+ /* Really an intellipoint, so initialise 3 button mode (4 byte packets) */
+ gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_AUTO);
+- return type;
++ return 0;
+ }
+ if (id != GPM_AUX_ID_PS2) {
+ gpm_report(GPM_PR_ERR,GPM_MESS_IMPS2_BAD_ID, id);
+@@ -1894,69 +1772,64 @@
+ else gpm_report(GPM_PR_INFO,GPM_MESS_IMPS2_PS2);
+
+ for (type=mice; type->fun; type++)
+- if (strcmp(type->name, "ps2") == 0) return(type);
++ if (strcmp(type->name, "ps2") == 0) return 0;
+
+ /* ps2 was not found!!! */
+- return(NULL);
++ return -1;
+ }
+
+ /*
+ * This works with Dexxa Optical Mouse, but because in X same initstring
+ * is named ExplorerPS/2 so I named it in the same way.
+ */
+-static Gpm_Type *I_exps2(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_exps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ static unsigned char s1[] = { 243, 200, 243, 200, 243, 80, };
+
+- if (check_no_argv(argc, argv)) return NULL;
++ if (!check_no_options(type->name, opt->text, ',')) return -1;
+
+- write (fd, s1, sizeof (s1));
++ write (dev->fd, s1, sizeof (s1));
+ usleep (30000);
+- tcflush (fd, TCIFLUSH);
+- return type;
++ tcflush (dev->fd, TCIFLUSH);
++ return 0;
+ }
+
+-static Gpm_Type *I_twid(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_twid(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+
+- if (check_no_argv(argc, argv)) return NULL;
++ if (!check_no_options(type->name, opt->text, ',')) return -1;
+
+- if (twiddler_key_init() != 0) return NULL;
++ if (twiddler_key_init() != 0) return -1;
+ /*
+ * the twiddler is a serial mouse: just drop dtr
+ * and run at 2400 (unless specified differently)
+ */
+- if(opt_baud==DEF_BAUD) opt_baud = 2400;
+- argv[1] = "dtr"; /* argv[1] is guaranteed to be NULL (this is dirty) */
+- return I_serial(fd, flags, type, argc, argv);
++ if (opt->baud == DEF_BAUD) opt->baud = 2400;
++ opt->text = "dtr";
++ return I_serial(dev, opt, type);
+ }
+
+-static Gpm_Type *I_calus(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_calus(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+- if (check_no_argv(argc, argv)) return NULL;
++ if (!check_no_options(type->name, opt->text, ',')) return -1;
+
+- if (opt_baud == 1200) opt_baud=9600; /* default to 9600 */
+- return I_serial(fd, flags, type, argc, argv);
++ if (opt->baud == 1200) opt->baud = 9600; /* default to 9600 */
++ return I_serial(dev, opt, type);
+ }
+
+ /* synaptics touchpad, ps2 version: Henry Davies */
+-static Gpm_Type *I_synps2(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_synps2(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+- syn_ps2_init (fd);
+- return type;
++ syn_ps2_init (dev->fd);
++ return 0;
+ }
+
+
+-static Gpm_Type *I_summa(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_summa(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ void resetsumma()
+ {
+- write(fd,0,1); /* Reset */
++ write(dev->fd,0,1); /* Reset */
+ usleep(400000); /* wait */
+ }
+ int waitsumma()
+@@ -1964,7 +1837,7 @@
+ struct timeval timeout;
+ fd_set readfds;
+ int err;
+- FD_ZERO(&readfds); FD_SET(fd, &readfds);
++ FD_ZERO(&readfds); FD_SET(dev->fd, &readfds);
+ timeout.tv_sec = 0; timeout.tv_usec = 200000;
+ err = select(FD_SETSIZE, &readfds, NULL, NULL, &timeout);
+ return(err);
+@@ -1987,34 +1860,34 @@
+ char GEN_MODELL=0x7f;
+
+ /* Set speed to 9600bps */
+- setspeed (fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD);
++ setspeed (dev->fd, 1200, 9600, 1, B9600|CS8|CREAD|CLOCAL|HUPCL|PARENB|PARODD);
+ resetsumma();
+
+- write(fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE));
++ write(dev->fd, SS_PROMPT_MODE, strlen(SS_PROMPT_MODE));
+
+ if (strstr(type->name,"acecad")!=NULL) summaid=11;
+
+ if (summaid<0) { /* Summagraphics test */
+ /* read the Summa Firm-ID */
+- write(fd, SS_FIRMID, strlen(SS_FIRMID));
++ write(dev->fd, SS_FIRMID, strlen(SS_FIRMID));
+ err=waitsumma();
+ if (!((err == -1) || (!err))) {
+ summaid=10; /* Original Summagraphics */
+- read(fd, buffer, 255); /* Read Firm-ID */
++ read(dev->fd, buffer, 255); /* Read Firm-ID */
+ }
+ }
+
+ if (summaid<0) { /* Genius-test */
+ resetsumma();
+- write(fd,GEN_MMSERIES,1);
+- write(fd,&GEN_MODELL,1); /* Read modell */
++ write(dev->fd,GEN_MMSERIES,1);
++ write(dev->fd,&GEN_MODELL,1); /* Read modell */
+ err=waitsumma();
+ if (!((err == -1) || (!err))) { /* read Genius-ID */
+ err=waitsumma();
+ if (!((err == -1) || (!err))) {
+ err=waitsumma();
+ if (!((err == -1) || (!err))) {
+- read(fd,&config,1);
++ read(dev->fd,&config,1);
+ summaid=(config[0] & 224) >> 5; /* genius tablet-id (0-7)*/
+ }
+ }
+@@ -2024,30 +1897,29 @@
+ /* unknown tablet ?*/
+ if ((summaid<0) || (summaid==11)) {
+ resetsumma();
+- write(fd, SS_BINARY_FMT SS_PROMPT_MODE, 3);
++ write(dev->fd, SS_BINARY_FMT SS_PROMPT_MODE, 3);
+ }
+
+ /* read tablet size */
+ err=waitsumma();
+- if (!((err == -1) || (!err))) read(fd,buffer,sizeof(buffer));
+- write(fd,SS_READCONFIG,1);
+- read(fd,&config,5);
++ if (!((err == -1) || (!err))) read(dev->fd,buffer,sizeof(buffer));
++ write(dev->fd,SS_READCONFIG,1);
++ read(dev->fd,&config,5);
+ summamaxx=(config[2]<<7 | config[1])-(SUMMA_BORDER*2);
+ summamaxy=(config[4]<<7 | config[3])-(SUMMA_BORDER*2);
+
+- write(fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3);
+- if (summaid<0) write(fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4);
++ write(dev->fd,SS_ABSOLUTE SS_STREAM_MODE SS_UPPER_ORIGIN,3);
++ if (summaid<0) write(dev->fd,SS_500LPI SS_TABID0 SS_BINARY_FMT,4);
+
+- return type;
++ return 0;
+ }
+
+-static Gpm_Type *I_mtouch(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_mtouch(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ struct termios tty;
+
+ /* Set speed to 9600bps (copied from I_summa, above :) */
+- tcgetattr(fd, &tty);
++ tcgetattr(dev->fd, &tty);
+ tty.c_iflag = IGNBRK | IGNPAR;
+ tty.c_oflag = 0;
+ tty.c_lflag = 0;
+@@ -2055,18 +1927,17 @@
+ tty.c_cc[VTIME] = 0;
+ tty.c_cc[VMIN] = 1;
+ tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL;
+- tcsetattr(fd, TCSAFLUSH, &tty);
++ tcsetattr(dev->fd, TCSAFLUSH, &tty);
+
+
+ /* Turn it to "format tablet" and "mode stream" */
+- write(fd,"\001MS\r\n\001FT\r\n",10);
++ write(dev->fd,"\001MS\r\n\001FT\r\n",10);
+
+- return type;
++ return 0;
+ }
+
+ /* simple initialization for the gunze touchscreen */
+-static Gpm_Type *I_gunze(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_gunze(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ struct termios tty;
+ FILE *f;
+@@ -2075,29 +1946,29 @@
+
+ #define GUNZE_CALIBRATION_FILE SYSCONFDIR "/gpm-calibration"
+ /* accept a few options */
+- static argv_helper optioninfo[] = {
+- {"smooth", ARGV_INT, u: {iptr: &gunze_avg}},
+- {"debounce", ARGV_INT, u: {iptr: &gunze_debounce}},
++ static struct option_helper optioninfo[] = {
++ {"smooth", OPT_INT, u: {iptr: &gunze_avg}},
++ {"debounce", OPT_INT, u: {iptr: &gunze_debounce}},
+ /* FIXME: add corner tapping */
+- {"", ARGV_END}
++ {"", OPT_END}
+ };
+- parse_argv(optioninfo, argc, argv);
++ parse_options(type->name, opt->text, ',', optioninfo);
+
+ /* check that the baud rate is valid */
+- if (opt_baud == DEF_BAUD) opt_baud = 19200; /* force 19200 as default */
+- if (opt_baud != 9600 && opt_baud != 19200) {
+- gpm_report(GPM_PR_ERR,GPM_MESS_GUNZE_WRONG_BAUD,option.progname, argv[0]);
+- opt_baud = 19200;
++ if (opt->baud == DEF_BAUD) opt->baud = 19200; /* force 19200 as default */
++ if (opt->baud != 9600 && opt->baud != 19200) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_GUNZE_WRONG_BAUD, option.progname, type->name);
++ opt->baud = 19200;
+ }
+- tcgetattr(fd, &tty);
++ tcgetattr(dev->fd, &tty);
+ tty.c_iflag = IGNBRK | IGNPAR;
+ tty.c_oflag = 0;
+ tty.c_lflag = 0;
+ tty.c_line = 0;
+ tty.c_cc[VTIME] = 0;
+ tty.c_cc[VMIN] = 1;
+- tty.c_cflag = (opt_baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL;
+- tcsetattr(fd, TCSAFLUSH, &tty);
++ tty.c_cflag = (opt->baud == 9600 ? B9600 : B19200) |CS8|CREAD|CLOCAL|HUPCL;
++ tcsetattr(dev->fd, TCSAFLUSH, &tty);
+
+ /* FIXME: try to find some information about the device */
+
+@@ -2120,19 +1991,18 @@
+ gunze_calib[0] = gunze_calib[1] = 128; /* 1/8 */
+ gunze_calib[2] = gunze_calib[3] = 896; /* 7/8 */
+ }
+- return type;
++ return 0;
+ }
+
+ /* Genius Wizardpad tablet -- Matt Kimball (mkimball@xmission.com) */
+-static Gpm_Type *I_wp(int fd, unsigned short flags,
+- struct Gpm_Type *type, int argc, char **argv)
++static int I_wp(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type)
+ {
+ struct termios tty;
+ char tablet_info[256];
+ int count, pos, size;
+
+ /* Set speed to 9600bps (copied from I_summa, above :) */
+- tcgetattr(fd, &tty);
++ tcgetattr(dev->fd, &tty);
+ tty.c_iflag = IGNBRK | IGNPAR;
+ tty.c_oflag = 0;
+ tty.c_lflag = 0;
+@@ -2140,22 +2010,22 @@
+ tty.c_cc[VTIME] = 0;
+ tty.c_cc[VMIN] = 1;
+ tty.c_cflag = B9600|CS8|CREAD|CLOCAL|HUPCL;
+- tcsetattr(fd, TCSAFLUSH, &tty);
++ tcsetattr(dev->fd, TCSAFLUSH, &tty);
+
+ /* Reset the tablet (':') and put it in remote mode ('S') so that
+ it isn't sending anything to us. */
+- write(fd, ":S", 2);
+- tcsetattr(fd, TCSAFLUSH, &tty);
++ write(dev->fd, ":S", 2);
++ tcsetattr(dev->fd, TCSAFLUSH, &tty);
+
+ /* Query the model of the tablet */
+- write(fd, "T", 1);
++ write(dev->fd, "T", 1);
+ sleep(1);
+- count = read(fd, tablet_info, 255);
++ count = read(dev->fd, tablet_info, 255);
+
+ /* The tablet information should start with "KW" followed by the rest of
+ the model number. If it isn't there, it probably isn't a WizardPad. */
+- if(count < 2) return NULL;
+- if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return NULL;
++ if(count < 2) return -1;
++ if(tablet_info[0] != 'K' || tablet_info[1] != 'W') return -1;
+
+ /* Now, we want the width and height of the tablet. They should be
+ of the form "X###" and "Y###" where ### is the number of units of
+@@ -2177,9 +2047,9 @@
+ }
+
+ /* Set the tablet to stream mode with 180 updates per sec. ('O') */
+- write(fd, "O", 1);
++ write(dev->fd, "O", 1);
+
+- return type;
++ return 0;
+ }
+
+ /*========================================================================*/
+@@ -2241,7 +2111,7 @@
+ {0x80, 0x80, 0x80, 0x00}, 6, 6, 0, 0, 0},
+ #ifdef HAVE_LINUX_INPUT_H
+ {"evdev", "Linux Event Device",
+- "", M_evdev, I_empty, STD_FLG,
++ "", M_evdev, I_evdev, STD_FLG,
+ {0x00, 0x00, 0x00, 0x00} , 16, 16, 0, 0, NULL},
+ #endif /* HAVE_LINUX_INPUT_H */
+ {"exps2", "IntelliMouse Explorer (ps2) - 3 buttons, wheel unused",
+diff -urN gpm-1.20.1/src/optparser.c gpm/src/optparser.c
+--- gpm-1.20.1/src/optparser.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/optparser.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,155 @@
++/*
++ * optparser.c - GPM mouse options parser
++ *
++ * Copyright (C) 1993 Andrew Haylett <ajh@gec-mrc.co.uk>
++ * Copyright (C) 1994-2000 Alessandro Rubini <rubini@linux.it>
++ * Copyright (C) 1998,1999 Ian Zimmerman <itz@rahul.net>
++ * Copyright (C) 2001,2002 Nico Schottelius <nicos@pcsystems.de>
++ * Copyright (C) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++#include <ctype.h>
++
++#include "headers/gpmInt.h"
++#include "headers/message.h"
++#include "headers/optparser.h"
++
++int parse_options(const char *proto, const char *opts, char sep, struct option_helper *info)
++{
++ int len, n, n_opts = 0, errors = 0;
++ long l;
++ struct option_helper *p;
++ char *s, *t, *str;
++ int base; /* for strtol */
++
++ for (p = info; p->type != OPT_END; p++)
++ p->present = 0;
++
++ if (!opts)
++ return 0;
++
++ if (!(str = strdup(opts)))
++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALLOC_FAILED);
++
++ /* split input string */
++ for (s = str, n = 1; sep && (s = strchr(s, sep)); s++, n++)
++ *s = '\0';
++
++ for (s = str; n; s += strlen(s) + 1, n--) {
++ if (strlen(s) == 0)
++ continue;
++
++ for (p = info; p->type != OPT_END; p++) {
++ len = strlen(p->name);
++ if (!strncmp(p->name, s, len) && !isalnum(s[len]))
++ break;
++ }
++ if (p->type == OPT_END) { /* not found */
++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\" for protocol \"%s\"\n",
++ option.progname, s, proto);
++ errors++;
++ continue;
++ }
++ if (p->present) {
++ gpm_report(GPM_PR_ERR, "%s: option \"%s\" has already been seen, ignored (\"%s\")\n",
++ option.progname, s, proto);
++ continue;
++ }
++ p->present = 1;
++ n_opts++;
++ /* Found. Look for trailing stuff, if any */
++ s += len;
++ while (*s && isspace(*s)) s++; /* skip spaces */
++ if (*s == '=') s++; /* skip equal */
++ while (*s && isspace(*s)) s++; /* skip other spaces */
++
++ /* Now parse what s is */
++ base = 0;
++ switch(p->type) {
++ case OPT_BOOL:
++ if (*s) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_OPTION_NO_ARG, option.progname, p->name, s);
++ errors++;
++ }
++ *(p->u.iptr) = p->value;
++ break;
++
++ case OPT_DEC:
++ base = 10; /* and fall through */
++
++ case OPT_INT:
++ if (*s == '\0') {
++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name);
++ } else {
++ l = strtol(s, &t, base);
++ if (*t) {
++ gpm_report(GPM_PR_ERR, GPM_MESS_INVALID_ARG, option.progname, s, p->name);
++ errors++;
++ break;
++ }
++ *(p->u.iptr) = (int)l;
++ }
++ break;
++
++ case OPT_STRING:
++ if (*s == '\0')
++ gpm_report(GPM_PR_ERR, GPM_MESS_MISSING_ARG, option.progname, p->name);
++ else
++ *(p->u.sptr) = strdup(s);
++ break;
++
++ case OPT_END: /* let's please "-Wall" */
++ break;
++ }
++ } /* for i in argc */
++
++ free(str);
++
++ if (errors) {
++ gpm_report(GPM_PR_ERR,GPM_MESS_CONT_WITH_ERR, option.progname);
++ return -errors;
++ }
++ return n_opts;
++}
++
++int check_no_options(const char *proto, const char *opts, char sep)
++{
++ static struct option_helper info[] = {
++ { "", OPT_END }
++ };
++
++ return parse_options(proto, opts, sep, info) == 0;
++}
++
++int is_option_present(struct option_helper *info, const char *name)
++{
++ struct option_helper *p;
++ int len;
++
++ for (p = info; p->type != OPT_END; p++) {
++ len = strlen(p->name);
++ if (!strncmp(p->name, name, len) && !isalnum(name[len]))
++ return p->present;
++ }
++
++ gpm_report(GPM_PR_ERR, "%s: Uknown option \"%s\"\n", option.progname, name);
++ return 0;
++}
++
+diff -urN gpm-1.20.1/src/prog/mouse-test.c gpm/src/prog/mouse-test.c
+--- gpm-1.20.1/src/prog/mouse-test.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/prog/mouse-test.c 2003-10-02 01:22:42.000000000 -0500
+@@ -50,22 +50,9 @@
+ #define max(a,b) ((a)>(b)?(a):(b))
+ #endif
+
+-
+-/* this material is needed to pass options to mice.c */
+-struct mouse_features mymouse = {
+- DEF_TYPE, DEF_DEV, DEF_SEQUENCE,
+- DEF_BAUD, DEF_SAMPLE, DEF_DELTA, DEF_ACCEL, DEF_SCALE, DEF_SCALE /*scaley*/,
+- DEF_TIME, DEF_CLUSTER, DEF_THREE, DEF_GLIDEPOINT_TAP,
+- (char *)NULL /* extra */,
+- (Gpm_Type *)NULL,
+- -1 /* fd */
+-};
+-
+ /* and this is a workaroud */
+ struct winsize win;
+
+-struct mouse_features *which_mouse=&mymouse;
+-
+ char *progname;
+ char *consolename;
+ int devcount=0;
+@@ -78,9 +65,9 @@
+
+ struct device {
+ char *name;
+- int fd;
++ struct micedev mdev;
+ struct device *next;
+-};
++} *devlist;
+
+ static int message(void)
+ {
+@@ -148,47 +135,48 @@
+ /*-----------------------------------------------------------------------------
+ Place the description here.
+ -----------------------------------------------------------------------------*/
+-struct device **gpm_makedev(struct device **current, char *name)
++void gpm_makedev(char *name)
+ {
+- int fd; int modes;
++ struct device *dev;
++ int fd;
++ int modes;
++
+ if ((fd=open(name,O_RDWR|O_NONBLOCK))==-1) {
+ perror(name);
+- return current;
+- }
+- modes = fcntl(fd, F_GETFL);
+- if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) {
+- close(fd);
+- perror(name);
+- return current;
++ } else {
++ modes = fcntl(fd, F_GETFL);
++ if (0 > fcntl(fd, F_SETFL, modes & ~O_NONBLOCK)) {
++ close(fd);
++ perror(name);
++ } else {
++ dev = malloc(sizeof(struct device));
++ if (!dev) gpm_report(GPM_PR_OOPS,"malloc()");
++ dev->name=strdup(name);
++ if (!dev->name) gpm_report(GPM_PR_OOPS,"malloc()");
++ dev->mdev.fd=fd;
++ dev->mdev.private = NULL;
++ dev->next=devlist;
++ devlist = dev;
++ devcount++;
++ }
+ }
+-
+- *current=malloc(sizeof(struct device));
+- if (!*current) gpm_report(GPM_PR_OOPS,"malloc()");
+- (*current)->name=strdup(name);
+- if (!(*current)->name) gpm_report(GPM_PR_OOPS,"malloc()");
+- (*current)->fd=fd;
+- (*current)->next=NULL;
+- devcount++;
+- return &((*current)->next);
+ }
+
+-Gpm_Type *(*I_serial)(int fd, unsigned short flags, struct Gpm_Type *type,
+- int argc, char **argv);
++int (*I_serial)(struct micedev *dev, struct miceopt *opt, struct Gpm_Type *type);
+
+
+ /*-----------------------------------------------------------------------------
+ Place the description here.
+ -----------------------------------------------------------------------------*/
+-int mousereopen(int oldfd, char *name, Gpm_Type *type)
++int mousereopen(struct micedev *dev, char *name, Gpm_Type *type, struct miceopt *opts)
+ {
+- int fd;
+ if (!type) type=mice+1; /* ms */
+- close(oldfd);
++ close(dev->fd);
+ usleep(100000);
+- fd=open(name,O_RDWR);
+- if (fd < 0) gpm_report(GPM_PR_OOPS,name);
+- (*I_serial)(fd,type->flags,type,1,&type->name); /* ms initialization */
+- return fd;
++ dev->fd=open(name,O_RDWR);
++ if (dev->fd < 0) gpm_report(GPM_PR_OOPS,name);
++ I_serial(dev, opts, type); /* ms initialization */
++ return dev->fd;
+ }
+
+ int noneofthem(void)
+@@ -281,10 +269,9 @@
+ {
+ struct item *list=NULL;
+ struct item **nextitem;
+- struct device *devlist=NULL;
+- struct device **nextdev;
++ struct device *nextdev;
+ Gpm_Type *cursor;
+- int i, mousefd;
++ int i;
+ char *mousename;
+ #define BUFLEN 512
+ char buf[BUFLEN];
+@@ -294,6 +281,9 @@
+ int trial, readamount,packetsize,got;
+ int baudtab[4]={1200,9600,4800,2400};
+ #define BAUD(i) (baudtab[(i)%4])
++ struct miceopt opt = {0};
++ struct micedev mdev = {0};
++
+ consolename = Gpm_get_console();
+
+ if (!isatty(fileno(stdin))) {
+@@ -306,8 +296,8 @@
+
+ /* init the list of possible devices */
+
+- for (nextdev=&devlist, i=1; i<argc; i++)
+- nextdev=gpm_makedev(nextdev,argv[i]);
++ for (i=1; i<argc; i++)
++ gpm_makedev(argv[i]);
+
+ if (argc==1) { /* no cmdline, get all devices */
+ FILE *f;
+@@ -320,7 +310,7 @@
+ if (!f) gpm_report(GPM_PR_OOPS,"popen()");
+ while (fgets(s,64,f)) {
+ s[strlen(s)-1]='\0'; /* trim '\n' */
+- nextdev=gpm_makedev(nextdev,s);
++ gpm_makedev(s);
+ }
+ pclose(f);
+ }
+@@ -345,19 +335,18 @@
+
+ /* BUG */ /* Logitech initialization is not performed */
+
+- opt_baud=BAUD(trial);
+- printf("\r\nTrying with %i baud\r\n",opt_baud);
++ opt.baud=BAUD(trial);
++ printf("\r\nTrying with %i baud\r\n",opt.baud);
+ trial++;
+
+ FD_ZERO(&devSet); FD_ZERO(&gotSet);
+ FD_SET(fileno(stdin),&devSet); maxfd=fileno(stdin);
+ printf("\r\n The possible device nodes are:\r\n");
+- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next)) {
+- printf("\t%s\r\n", (*nextdev)->name);
+- FD_SET((*nextdev)->fd,&devSet);
+- maxfd=max((*nextdev)->fd,maxfd);
+- (*I_serial)((*nextdev)->fd,(mice+1)->flags,mice+1,
+- 1, &(mice+1)->name); /* try ms mode */
++ for (nextdev=devlist; nextdev; nextdev=nextdev->next) {
++ printf("\t%s\r\n", nextdev->name);
++ FD_SET(nextdev->mdev.fd, &devSet);
++ maxfd=max(nextdev->mdev.fd,maxfd);
++ I_serial(&nextdev->mdev, &opt, mice+1); /* try ms mode */
+ }
+
+ savSet=devSet;
+@@ -379,43 +368,43 @@
+ getchar();
+ break;
+ }
+- for (nextdev=&devlist; *nextdev; nextdev=&((*nextdev)->next))
+- if (FD_ISSET((*nextdev)->fd,&devSet)) {
++ for (nextdev=devlist; nextdev; nextdev=nextdev->next)
++ if (FD_ISSET(nextdev->mdev.fd,&devSet)) {
+ gotthem++;
+- FD_CLR((*nextdev)->fd,&savSet);
+- FD_SET((*nextdev)->fd,&gotSet);
++ FD_CLR(nextdev->mdev.fd,&savSet);
++ FD_SET(nextdev->mdev.fd,&gotSet);
+ }
+ }
+- if (gotthem) for (nextdev=&devlist; *nextdev; /* nothing */ ) {
+- cur=*nextdev;
+- if (!FD_ISSET(cur->fd,&gotSet)) {
++ if (gotthem) for (nextdev=devlist; nextdev; /* nothing */ ) {
++ cur=nextdev;
++ if (!FD_ISSET(cur->mdev.fd,&gotSet)) {
+ printf("removing \"%s\" from the list\r\n",cur->name);
+- *nextdev=cur->next;
+- close(cur->fd);
++ nextdev=cur->next;
++ close(cur->mdev.fd);
+ free(cur->name);
+ free(cur);
+ devcount--;
+ } else {
+- read(cur->fd,buf,80); /* flush */
+- nextdev=&(cur->next); /* follow list */
++ read(cur->mdev.fd,buf,80); /* flush */
++ nextdev=cur->next; /* follow list */
+ }
+ }
+
+ } /* devcount>1 */
+
+- mousefd=devlist->fd;
++ mdev=devlist->mdev;
+ mousename=devlist->name;
+ free(devlist);
+ printf("\r\nOk, so your mouse device is \"%s\"\r\n",mousename);
+
+ /* now close and reopen it, complete with initialization */
+- opt_baud=BAUD(0);
+- mousefd=mousereopen(mousefd,mousename,NULL);
+-
++ opt.baud=BAUD(0);
++ mousereopen(&mdev, mousename, NULL,&opt);
++
+ FD_ZERO(&checkSet);
+- FD_SET(mousefd,&checkSet);
++ FD_SET(mdev.fd,&checkSet);
+ FD_SET(fileno(stdin),&checkSet);
+- maxfd=max(mousefd,fileno(stdin));
++ maxfd=max(mdev.fd, fileno(stdin));
+
+ /*====================================== Identify mouse type */
+
+@@ -440,7 +429,7 @@
+ printf("\r\nNow please press and release your left mouse button,\r\n"
+ "one time only\r\n\r\n");
+
+- i=read(mousefd,buf,1);
++ i=read(mdev.fd, buf, 1);
+ if (i==-1 && errno==EINVAL)
+ readamount=3;
+ else
+@@ -466,7 +455,7 @@
+ else
+ nextitem=&(cur->next);
+ }
+- read(mousefd,buf,BUFLEN); /* flush */
++ read(mdev.fd, buf, BUFLEN); /* flush */
+
+ /*====================================== Packet size - second step */
+
+@@ -484,12 +473,12 @@
+ while (packetsize==1) {
+ int success3=0,success5=0;
+
+- opt_baud=BAUD(trial);
+- printf("\tBaud rate is %i\r\n",opt_baud);
+- mousefd=mousereopen(mousefd,mousename,NULL);
++ opt.baud=BAUD(trial);
++ printf("\tBaud rate is %i\r\n",opt.baud);
++ mousereopen(&mdev, mousename,NULL, &opt);
+
+ printf("\r\n==> Detecting the packet size\r\n");
+- got=eventlist(mousefd,buf,BUFLEN,GPM_B_LEFT,readamount);
++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_LEFT,readamount);
+
+ /* try three -- look at repeating arrays of 6 bytes */
+ for (i=0;i<got-12;i++)
+@@ -512,8 +501,7 @@
+ trial++;
+ }
+
+-/*====================================== Use that info to discard protocols */
+-
++/*====================================== Use that info to discard protocols */
+ for (nextitem=&list; *nextitem; /* nothing */) {
+ struct item *cur=*nextitem;
+ int packetheads=0;
+@@ -530,7 +518,7 @@
+ if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1])
+ && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) {
+ packetheads++;
+- if ((*(cur->this->fun))(&event,buf+i)==-1) {
++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) {
+ packetheads--;
+ continue;
+ }
+@@ -594,7 +582,7 @@
+ * First trial: remove the "-t ms" extension if spurious buttons come in
+ */
+
+- got=eventlist(mousefd,buf,BUFLEN,0,readamount);
++ got=eventlist(mdev.fd,buf,BUFLEN,0,readamount);
+ pending=0;
+ for (nextitem=&list; *nextitem; /* nothing */) {
+ struct item *cur=*nextitem;
+@@ -604,7 +592,7 @@
+ for (i=0;i<got;i++) {
+ if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1])
+ && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) {
+- if ((*(cur->this->fun))(&event,buf+i)==-1) continue;
++ if ((*(cur->this->fun))(&mdev, &opt, buf+i, &event)==-1) continue;
+ i+=packetsize-1;
+ if (event.buttons) pending--;
+ }
+@@ -624,8 +612,8 @@
+ */
+
+ printf("\r\n==> Looking for '-t mman'and enhanced ms\r\n");
+- mousefd=mousereopen(mousefd,mousename, mice /* mman */);
+- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount);
++ mousereopen(&mdev, mousename, mice /* mman */, &opt);
++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount);
+
+ /* if it uses the 4-byte protocol, find it in a rude way */
+ for (pending=0,i=0;i<got-16;i++)
+@@ -646,7 +634,7 @@
+ for (i=0;i<got;i++) {
+ if ( ((buf[i] &(cur->this->proto)[0]) == (cur->this->proto)[1])
+ && ((buf[i+1]&(cur->this->proto)[2]) == (cur->this->proto)[3]) ) {
+- if ((*(cur->this->fun))(&event,buf+i)==-1) continue;
++ if ((*(cur->this->fun))(&mdev,&opt,buf+i,&event)==-1) continue;
+ i+=packetsize-1;
+ if (event.buttons && event.buttons!=GPM_B_MIDDLE) pending--;
+ if (event.buttons==GPM_B_MIDDLE) pending++;
+@@ -677,16 +665,16 @@
+ char *Xtognames[3]={"'ClearDTR' and 'ClearRTS'","'ClearDTR'","'ClearRTS'"};
+ int alllines,lines, index;
+
+- ioctl(mousefd, TIOCMGET, &alllines);
++ ioctl(mdev.fd, TIOCMGET, &alllines);
+
+ printf("\r\nSome mice change protocol to three-buttons-aware if some\r\n"
+ "\r\ncontrol lines are toggled after opening\r\n");
+ for (index=0;index<3;index++) {
+- mousereopen(mousefd,mousename,NULL);
++ mousereopen(&mdev, mousename, NULL, &opt);
+ lines = alllines & ~toggle[index];
+- ioctl(mousefd, TIOCMSET, &lines);
++ ioctl(mdev.fd, TIOCMSET, &lines);
+ printf("\r\n==> Trying with '-o %s'\r\n",tognames[index]);
+- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount);
++ got=eventlist(mdev.fd, buf, BUFLEN, GPM_B_MIDDLE, readamount);
+
+ /* if it uses the 5-byte protocol, find it in a rude way */
+ for (pending=0,i=0;i<got-20;i++)
+@@ -717,7 +705,7 @@
+
+ getchar();
+
+- got=eventlist(mousefd,buf,BUFLEN,GPM_B_MIDDLE,readamount);
++ got=eventlist(mdev.fd,buf,BUFLEN,GPM_B_MIDDLE,readamount);
+
+ /* if it uses the 5-byte protocol, find it in a rude way */
+ for (pending=0,i=0;i<got-20;i++)
+diff -urN gpm-1.20.1/src/report.c gpm/src/report.c
+--- gpm-1.20.1/src/report.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/report.c 2003-10-02 01:22:42.000000000 -0500
+@@ -31,6 +31,7 @@
+
+ #include "headers/gpmInt.h"
+ #include "headers/message.h"
++#include "headers/console.h"
+
+ /*
+ * gpm_report
+@@ -70,7 +71,7 @@
+
+ void gpm_report(int line, char *file, int stat, char *text, ... )
+ {
+- FILE *console = NULL;
++ FILE *f = NULL;
+ va_list ap;
+
+ va_start(ap,text);
+@@ -138,11 +139,11 @@
+ syslog(LOG_DAEMON | LOG_WARNING, GPM_STRING_WARN);
+ vsyslog(LOG_DAEMON | LOG_WARNING, text, ap);
+ #endif
+- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) {
+- fprintf(console,GPM_STRING_WARN);
+- vfprintf(console,text,ap);
+- fprintf(console,"\n");
+- fclose(console);
++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) {
++ fprintf(f, GPM_STRING_WARN);
++ vfprintf(f, text, ap);
++ fprintf(f, "\n");
++ fclose(f);
+ }
+ break;
+
+@@ -151,18 +152,18 @@
+ syslog(LOG_DAEMON | LOG_ERR, GPM_STRING_ERR);
+ vsyslog(LOG_DAEMON | LOG_ERR, text, ap);
+ #endif
+- if((console = fopen(GPM_SYS_CONSOLE,"a")) != NULL) {
+- fprintf(console,GPM_STRING_ERR);
+- vfprintf(console,text,ap);
+- fprintf(console,"\n");
+- fclose(console);
++ if ((f = fopen(GPM_SYS_CONSOLE, "a")) != NULL) {
++ fprintf(f, GPM_STRING_ERR);
++ vfprintf(f, text, ap);
++ fprintf(f, "\n");
++ fclose(f);
+ }
+
+- if((console = fopen(option.consolename,"a")) != NULL) {
+- fprintf(console,GPM_STRING_ERR);
+- vfprintf(console,text,ap);
+- fprintf(console,"\n");
+- fclose(console);
++ if ((f = fopen(console.device, "a")) != NULL) {
++ fprintf(f, GPM_STRING_ERR);
++ vfprintf(f, text, ap);
++ fprintf(f, "\n");
++ fclose(f);
+ }
+ break;
+
+@@ -184,24 +185,24 @@
+ case GPM_RUN_DEBUG:
+ switch(stat) {
+ case GPM_STAT_INFO:
+- console = stdout;
+- fprintf(console,GPM_STRING_INFO); break;
++ f = stdout;
++ fprintf(f, GPM_STRING_INFO); break;
+ case GPM_STAT_WARN:
+- console = stderr;
+- fprintf(console,GPM_STRING_WARN); break;
++ f = stderr;
++ fprintf(f, GPM_STRING_WARN); break;
+ case GPM_STAT_ERR:
+- console = stderr;
+- fprintf(console,GPM_STRING_ERR); break;
++ f = stderr;
++ fprintf(f, GPM_STRING_ERR); break;
+ case GPM_STAT_DEBUG:
+- console = stderr;
+- fprintf(console,GPM_STRING_DEBUG); break;
++ f = stderr;
++ fprintf(f, GPM_STRING_DEBUG); break;
+ case GPM_STAT_OOPS:
+- console = stderr;
+- fprintf(console,GPM_STRING_OOPS); break;
++ f = stderr;
++ fprintf(f, GPM_STRING_OOPS); break;
+ }
+
+- vfprintf(console,text,ap);
+- fprintf(console,"\n");
++ vfprintf(f, text, ap);
++ fprintf(f, "\n");
+
+ if(stat == GPM_STAT_OOPS) exit(1);
+
+diff -urN gpm-1.20.1/src/selection.c gpm/src/selection.c
+--- gpm-1.20.1/src/selection.c 1969-12-31 19:00:00.000000000 -0500
++++ gpm/src/selection.c 2003-10-02 01:22:42.000000000 -0500
+@@ -0,0 +1,156 @@
++/*
++ * console.c - GPM console and selection/paste handling
++ *
++ * Copyright (C) 1993 Andreq Haylett <ajh@gec-mrc.co.uk>
++ * Copyright (C) 1994-1999 Alessandro Rubini <rubini@linux.it>
++ * Copyright (C) 1998 Ian Zimmerman <itz@rahul.net>
++ * Copyright (c) 2001,2002 Nico Schottelius <nico@schottelius.org>
++ * Copyright (c) 2003 Dmitry Torokhov <dtor@mail.ru>
++ *
++ * 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 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, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
++ ********/
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h> /* strerror(); ?!? */
++#include <errno.h>
++#include <unistd.h> /* select(); */
++#include <time.h> /* time() */
++#include <sys/fcntl.h> /* O_RDONLY */
++#include <sys/stat.h> /* mkdir() */
++#include <asm/types.h> /* __u32 */
++
++#include <linux/vt.h> /* VT_GETSTATE */
++#include <sys/kd.h> /* KDGETMODE */
++#include <termios.h> /* winsize */
++
++#include "headers/gpmInt.h"
++#include "headers/message.h"
++#include "headers/console.h"
++#include "headers/selection.h"
++
++struct sel_options sel_opts = { 0, 0, DEF_PTRDRAG };
++static time_t last_selection_time;
++
++/*-------------------------------------------------------------------*/
++static void selection_copy(int x1, int y1, int x2, int y2, int mode)
++{
++/*
++ * The approach in "selection" causes a bus error when run under SunOS 4.1
++ * due to alignment problems...
++ */
++ unsigned char buf[6 * sizeof(short)];
++ unsigned short *arg = (unsigned short *)buf + 1;
++ int fd;
++
++ buf[sizeof(short) - 1] = 2; /* set selection */
++
++ arg[0] = (unsigned short)x1;
++ arg[1] = (unsigned short)y1;
++ arg[2] = (unsigned short)x2;
++ arg[3] = (unsigned short)y2;
++ arg[4] = (unsigned short)mode;
++
++ if ((fd = open_console(O_WRONLY)) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN_CON);
++
++ gpm_report(GPM_PR_DEBUG, "ctl %i, mode %i", (int)*buf, arg[4]);
++ if (ioctl(fd, TIOCLINUX, buf + sizeof(short) - 1) < 0)
++ gpm_report(GPM_PR_OOPS,GPM_MESS_IOCTL_TIOCLINUX);
++ close(fd);
++
++ if (mode < 3) {
++ sel_opts.aged = 0;
++ last_selection_time = time(0);
++ }
++}
++
++/*-------------------------------------------------------------------*/
++static void selection_paste(void)
++{
++ char c = 3;
++ int fd;
++
++ if (!sel_opts.aged &&
++ sel_opts.age_limit != 0 &&
++ last_selection_time + sel_opts.age_limit < time(0)) {
++ sel_opts.aged = 1;
++ }
++
++ if (sel_opts.aged) {
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_SKIP_PASTE);
++ } else {
++ fd = open_console(O_WRONLY);
++ if (ioctl(fd, TIOCLINUX, &c) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_IOCTL_TIOCLINUX);
++ close(fd);
++ }
++}
++
++/*-------------------------------------------------------------------*/
++void do_selection(Gpm_Event *event, int three_button_mode)
++{
++ static int x1 = 1, y1 = 1;
++ int x2, y2;
++
++ x2 = event->x; y2 = event->y;
++ switch(GPM_BARE_EVENTS(event->type)) {
++ case GPM_MOVE:
++ if (x2 < 1) x2++; else if (x2 > console.max_x) x2--;
++ if (y2 < 1) y2++; else if (y2 > console.max_y) y2--;
++ selection_copy(x2, y2, x2, y2, 3); /* just highlight pointer */
++ break;
++
++ case GPM_DRAG:
++ if (event->buttons == GPM_B_LEFT) {
++ switch(event->margin) { /* fix margins */
++ case GPM_TOP: x2 = 1; y2++; break;
++ case GPM_BOT: x2 = console.max_x; y2--; break;
++ case GPM_RGT: x2--; break;
++ case GPM_LFT: y2 <= y1 ? x2++ : (x2 = console.max_x, y2--); break;
++ default: break;
++ }
++ selection_copy(x1, y1, x2, y2, event->clicks);
++ if (event->clicks >= sel_opts.ptrdrag && !event->margin) /* pointer */
++ selection_copy(x2, y2, x2, y2, 3);
++ } /* if */
++ break;
++
++ case GPM_DOWN:
++ switch (event->buttons) {
++ case GPM_B_LEFT:
++ x1 = x2; y1 = y2;
++ selection_copy(x1, y1, x2, y2, event->clicks); /* start selection */
++ break;
++
++ case GPM_B_MIDDLE:
++ selection_paste();
++ break;
++
++ case GPM_B_RIGHT:
++ if (three_button_mode == 1)
++ selection_copy(x1, y1, x2, y2, event->clicks);
++ else
++ selection_paste();
++ break;
++ }
++ } /* switch above */
++}
++
++/*-------------------------------------------------------------------*/
++void selection_disable_paste(void)
++{
++ sel_opts.aged = 1;
++}
+diff -urN gpm-1.20.1/src/server_tools.c gpm/src/server_tools.c
+--- gpm-1.20.1/src/server_tools.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/server_tools.c 2003-10-02 01:22:42.000000000 -0500
+@@ -21,151 +21,80 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ ********/
+
++#include <string.h>
++#include <stdlib.h> /* malloc() */
++#include <sys/fcntl.h>
++
+ #include "headers/gpmInt.h"
+ #include "headers/message.h"
+
+-#include <stdlib.h> /* malloc() */
++struct micetab *micelist;
+
+-/* DESCR: add this to the list of mice. initialization follows later */
+-/* RETURN: - */
++/* DESCR: allocate a new mouse and to the list of mice. initialization follows later */
++/* RETURN: new mouse structure */
+ /* COMMENT: does error handling and exiting itself */
+-void add_mouse(int type, char *value)
++struct micetab *add_mouse(void)
+ {
+- struct micetab *tmp = option.micelist;
++ struct micetab *mouse;
+
+- /* PREAMBLE for all work: */
+- /* -m /dev/misc/psaux -t ps2 [ -o options ] */
++ gpm_report(GPM_PR_DEBUG, "adding mouse device");
++ if (!(mouse = malloc(sizeof(struct micetab))))
++ gpm_report(GPM_PR_OOPS, GPM_MESS_NO_MEM);
++
++ memset(mouse, 0, sizeof(struct micetab));
++
++ mouse->dev.timeout = -1;
++
++ mouse->options.sequence = NULL;
++ mouse->options.sample = DEF_SAMPLE;
++ mouse->options.delta = DEF_DELTA;
++ mouse->options.accel = DEF_ACCEL;
++ mouse->options.scalex = DEF_SCALE;
++ mouse->options.scaley = DEF_SCALE;
++ mouse->options.time = DEF_TIME;
++ mouse->options.cluster = DEF_CLUSTER;
++ mouse->options.three_button = DEF_THREE;
++ mouse->options.glidepoint_tap = DEF_GLIDEPOINT_TAP;
++ mouse->options.text = NULL;
+
+- switch(type) {
++ mouse->next = micelist;
++ micelist = mouse;
+
+- /*---------------------------------------------------------------------*/
+- /********************** -m mousedevice *********************************/
+- /*---------------------------------------------------------------------*/
+-
+- case GPM_ADD_DEVICE:
+-
+- /* first invocation */
+- if(option.micelist == NULL) {
+- gpm_report(GPM_PR_DEBUG,"adding mouse device: %s",value);
+- option.micelist = (struct micetab *) malloc(sizeof(struct micetab));
+- if(!option.micelist) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+- option.micelist->next = NULL;
+- option.micelist->device = value;
+- option.micelist->protocol = NULL;
+- option.micelist->options = NULL;
+- return;
+- }
+-
+- /* find actual mouse */
+- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL)
+- tmp = tmp->next;
+-
+- gpm_report(GPM_PR_DEBUG,"finished searching");
+-
+- /* found end of micelist, add new mouse */
+- if(tmp->next == NULL && tmp->protocol != NULL) {
+- gpm_report(GPM_PR_DEBUG,"next mouse making");
+- tmp->next = (struct micetab *) malloc(sizeof(struct micetab));
+- if(!tmp) gpm_report(GPM_PR_OOPS,GPM_MESS_NO_MEM);
+- tmp->next = NULL;
+- tmp->device = value;
+- tmp->protocol = NULL;
+- tmp->options = NULL;
+- return;
+- } else gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV);
+-
+- //} else if(tmp->device != NULL && tmp->protocol == NULL)
+- // gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV); /* -m -m */
+-
+-
+- break;
+-
+- /*---------------------------------------------------------------------*/
+- /************************* -t type / protocol **************************/
+- /*---------------------------------------------------------------------*/
+-
+- case GPM_ADD_TYPE:
+- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV);
+-
+- /* skip to next mouse, where either device or protocol is missing */
+- while(tmp->device != NULL && tmp->protocol != NULL && tmp->next !=NULL)
+- tmp = tmp->next;
+-
+- /* check whether device (-m) is there, if so, write protocol */
+- if(tmp->device == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV);
+- else {
+- gpm_report(GPM_PR_DEBUG,"adding mouse type: %s",value);
+- tmp->protocol = value;
+- option.no_mice++; /* finally we got our mouse */
+- }
+-
+- break;
+-
+- /*---------------------------------------------------------------------*/
+- /*************************** -o options ********************************/
+- /*---------------------------------------------------------------------*/
+-
+- case GPM_ADD_OPTIONS:
+- if(option.micelist == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV);
+-
+- /* look for the last mouse */
+- tmp = option.micelist;
+- while(tmp->next != NULL) tmp = tmp->next;
+-
+- /* if -m or -t are missing exit */
+- if(tmp->device == NULL || tmp->protocol == NULL)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_FIRST_DEV);
+- else {
+- gpm_report(GPM_PR_DEBUG,"adding mouse options: %s",value);
+- tmp->options = value;
+- }
+- break;
+- }
++ return mouse;
+ }
+
+-/* DESCR: mice initialization. currently print mice. */
+-/* RETURN: 0 - failed to init one or more devices
+- 1 - init was fine */
++/* DESCR: mice initialization. calls appropriate init functions. */
+ /* COMMENT: does error handling and exiting itself */
+-int init_mice(struct micetab *micelist)
++void init_mice(void)
+ {
+- struct micetab *tmp = micelist;
++ struct micetab *mouse;
++
++ for (mouse = micelist; mouse; mouse = mouse->next) {
++ if (!strcmp(mouse->device, "-"))
++ mouse->dev.fd = 0; /* use stdin */
++ else if ((mouse->dev.fd = open(mouse->device, O_RDWR | O_NDELAY)) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, mouse->device);
+
+- while(tmp != NULL) { /* there are still mice to init */
+- gpm_report(GPM_PR_DEBUG,"initialize %s with proto %s",tmp->device,tmp->protocol);
+- if(tmp->options != NULL) {
+- gpm_report(GPM_PR_DEBUG,"and options %s",tmp->options);
+- }
+- tmp = tmp->next;
++ /* and then reset the flag */
++ fcntl(mouse->dev.fd, F_SETFL, fcntl(mouse->dev.fd, F_GETFL) & ~O_NDELAY);
++
++ /* init the device, and use the return value as new mouse type */
++ if (mouse->type->init)
++ if (mouse->type->init(&mouse->dev, &mouse->options, mouse->type))
++ gpm_report(GPM_PR_OOPS, GPM_MESS_MOUSE_INIT);
+ }
+-
+- gpm_report(GPM_PR_DEBUG,"finished initialization");
+- return 1;
+ }
+
+ /* DESCR: when leaving, we should reset mice to their normal state */
+-/* RETURN: 0 - failed to reset one or more devices
+- 1 - reset was fine */
+ /* COMMENT: does error handling and exiting itself */
+-int reset_mice(struct micetab *micelist)
++void cleanup_mice(void)
+ {
+- struct micetab *tmp = micelist;
+- struct micetab *end = tmp;
+-
+- while(tmp != NULL) { /* FIXME! I never get NULL, as free()d before */
+- end = tmp;
+- while(tmp->next != NULL) { /* set end to the last mouse */
+- end = tmp;
+- tmp = tmp->next;
+- }
+-
+- gpm_report(GPM_PR_DEBUG,"reset: %s with proto %s",end->device,end->protocol);
+- if(tmp->options != NULL) {
+- gpm_report(GPM_PR_DEBUG,"and options %s",end->options);
+- }
+- free(end); /* be clean() */
+- tmp = micelist; /* reset to the first mice again */
++ struct micetab *tmp;
++
++ while ((tmp = micelist)) {
++ if (micelist->dev.private)
++ free(micelist->dev.private);
++ micelist = micelist->next;
++ free(tmp);
+ }
+-
+- return 1;
+ }
+diff -urN gpm-1.20.1/src/special.c gpm/src/special.c
+--- gpm-1.20.1/src/special.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/special.c 2003-10-02 01:22:42.000000000 -0500
+@@ -37,6 +37,7 @@
+ #include <sys/param.h>
+
+ #include "headers/gpmInt.h"
++#include "headers/console.h"
+
+ /*
+ * This function is only called at button press, to avoid unnecessary
+@@ -78,7 +79,7 @@
+ return 1;
+
+ /* devfs change */
+- consolef=fopen(option.consolename,"w");
++ consolef = fopen(console.device, "w");
+ if (!consolef) consolef=stderr;
+ if (event->type & GPM_TRIPLE) /* just triggered: make noise and return */
+ {
+@@ -153,7 +154,7 @@
+ case 0: /* child */
+ close(0); close(1); close(2);
+ open(GPM_NULL_DEV,O_RDONLY); /* stdin */
+- open(option.consolename,O_WRONLY); /* stdout */
++ open(console.device, O_WRONLY); /* stdout */
+ dup(1); /* stderr */
+ for (i=3;i<OPEN_MAX; i++) close(i);
+ execl("/bin/sh","sh","-c",command,(char *)NULL);
+diff -urN gpm-1.20.1/src/startup.c gpm/src/startup.c
+--- gpm-1.20.1/src/startup.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/startup.c 2003-10-02 01:22:42.000000000 -0500
+@@ -26,6 +26,7 @@
+ #include <string.h> /* strlen() */
+ #include <errno.h> /* errno */
+ #include <unistd.h> /* unlink,geteuid */
++#include <signal.h>
+ #include <sys/types.h> /* geteuid, mknod */
+ #include <sys/stat.h> /* mknod */
+ #include <fcntl.h> /* mknod */
+@@ -34,11 +35,13 @@
+
+ #include "headers/gpmInt.h"
+ #include "headers/message.h"
++#include "headers/console.h"
++#include "headers/selection.h"
+
+ /* what todo atexit */
+ static void gpm_exited(void)
+ {
+- gpm_report(GPM_PR_DEBUG,GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL);
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_REMOVE_FILES, GPM_NODE_PID, GPM_NODE_CTL);
+ unlink(GPM_NODE_PID);
+ unlink(GPM_NODE_CTL);
+ }
+@@ -48,34 +51,12 @@
+ extern struct options option;
+ extern int errno;
+
+- int i,opt;
+-
+- static struct {
+- char *in;
+- char *out;
+- } seq[] = {
+- {"123","01234567"},
+- {"132","02134657"},
+- {"213","01452367"}, /* warning: these must be readable as integers... */
+- {"231","02461357"},
+- {"312","04152637"},
+- {"321","04261537"},
+- {NULL,NULL}
+- };
+-
+ /* basic settings */
+ option.run_status = GPM_RUN_STARTUP; /* 10,9,8,... let's go */
+ option.autodetect = 0; /* no mouse autodection */
+ option.progname = argv[0]; /* who we are */
+- option.consolename = Gpm_get_console(); /* get consolename */
+-
+- /* basic2: are not necessary for oops()ing, if not root */
+- option.no_mice = 0; /* counts -m + -t */
+- option.micelist = NULL; /* no mice found yet */
+- option.repeater = 0; /* repeat data */
+- option.repeater_type = NULL; /* type of */
+-
+
++ get_console_name();
+ cmdline(argc, argv); /* parse command line */
+
+ if (geteuid() != 0) gpm_report(GPM_PR_OOPS,GPM_MESS_ROOT); /* root or exit */
+@@ -87,54 +68,18 @@
+ /****************** OLD CODE from gpn.c ***********************/
+
+ openlog(option.progname, LOG_PID,
+- option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER);
+- loadlut(opt_lut);
+-
+- if (option.repeater) {
+- if(mkfifo(GPM_NODE_FIFO,0666) && errno!=EEXIST)
+- gpm_report(GPM_PR_OOPS,GPM_MESS_CREATE_FIFO,GPM_NODE_FIFO);
+- if((fifofd=open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0)
+- gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO);
+- }
+-
+- /* duplicate initialization */
+- for (i=1; i <= 1+opt_double; i++) {
+- which_mouse=mouse_table+i; /* used to access options */
+- if (opt_accel < 1) exit(usage("acceleration"));
+- if (opt_delta < 2) exit(usage("delta"));
+- if (strlen(opt_sequence) != 3 || atoi(opt_sequence)<100)
+- exit(usage("sequence"));
+- if (opt_glidepoint_tap > 3) exit(usage("glidepoint tap button"));
+- if (opt_glidepoint_tap)
+- opt_glidepoint_tap=GPM_B_LEFT >> (opt_glidepoint_tap-1);
+-
+- /* choose the sequence */
+- for (opt=0; seq[opt].in && strcmp(seq[opt].in,opt_sequence); opt++) ;
+- if(!seq[opt].in) exit(usage("button sequence"));
+- opt_sequence=strdup(seq[opt].out); /* I can rewrite on it */
+-
+- /* look for the mouse type */
+- m_type = find_mouse_by_name(opt_type);
+- if (!m_type) /* not found */
+- exit(M_listTypes());
+- }
++ option.run_status != GPM_RUN_DEBUG ? LOG_DAEMON : LOG_USER);
+
+- /* Check repeater status */
+- if (option.repeater) {
+- if (strcmp(option.repeater_type,"raw") == 0)
+- opt_rawrep = 1;
+- else {
+- /* look for the type */
+- repeated_type = find_mouse_by_name(option.repeater_type);
++ console_load_lut();
+
+- if(!repeated_type) exit(M_listTypes()); /* not found */
+-
+- if (!(repeated_type->repeat_fun)) /* unsupported translation */
+- gpm_report(GPM_PR_OOPS,GPM_MESS_NO_REPEAT,option.repeater_type);
+- }
++ if (repeater.raw || repeater.type) {
++ if (mkfifo(GPM_NODE_FIFO, 0666) && errno != EEXIST)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_CREATE_FIFO, GPM_NODE_FIFO);
++ if ((repeater.fd = open(GPM_NODE_FIFO, O_RDWR|O_NONBLOCK)) < 0)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_OPEN, GPM_NODE_FIFO);
+ }
+
+- if(option.run_status == GPM_RUN_STARTUP ) { /* else is debugging */
++ if(option.run_status == GPM_RUN_STARTUP) { /* else is debugging */
+ /* goto background and become a session leader (Stefan Giessler) */
+ switch(fork()) {
+ case -1: gpm_report(GPM_PR_OOPS,GPM_MESS_FORK_FAILED); /* error */
+@@ -152,13 +97,63 @@
+ /* is changing to root needed, because of relative paths ? or can we just
+ * remove and ignore it ?? FIXME */
+ if (chdir("/") < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_CHDIR_FAILED);
+-
+
+- //return mouse_table[1].fd; /* the second is handled in the main() */
++ atexit(gpm_exited); /* call gpm_exited at the end */
++}
+
+- /****************** OLD CODE from gpn.c END ***********************/
++/* itz Sat Sep 12 10:30:05 PDT 1998 this function used to mix two
++ completely different things; opening a socket to a running daemon
++ and checking that a running daemon existed. Ugly. */
++/* rewritten mostly on 20th of February 2002 - nico */
++void check_uniqueness(void)
++{
++ FILE *fp = 0;
++ int old_pid = -1;
+
+- init_mice(option.micelist); /* reads option.micelist */
+- atexit(gpm_exited); /* call gpm_exited at the end */
++ if ((fp = fopen(GPM_NODE_PID, "r")) != NULL) {
++ fscanf(fp, "%d", &old_pid);
++ if (kill(old_pid, 0) == -1) {
++ gpm_report(GPM_PR_INFO,GPM_MESS_STALE_PID, GPM_NODE_PID);
++ unlink(GPM_NODE_PID);
++ } else /* we are really running, exit asap! */
++ gpm_report(GPM_PR_OOPS, GPM_MESS_ALREADY_RUN, old_pid);
++ }
++ /* now try to sign ourself */
++ if ((fp = fopen(GPM_NODE_PID,"w")) != NULL) {
++ fprintf(fp,"%d\n",getpid());
++ fclose(fp);
++ } else {
++ gpm_report(GPM_PR_OOPS,GPM_MESS_NOTWRITE,GPM_NODE_PID);
++ }
++}
+
++/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the
++ unwanted functionality in check_uniqueness. */
++void kill_gpm(void)
++{
++ int old_pid;
++ FILE* fp = fopen(GPM_NODE_PID, "r");
++
++ /* if we cannot find the old pid file, leave */
++ if (fp == NULL) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN, GPM_NODE_PID);
++
++ /* else read the pid */
++ if (fscanf(fp, "%d", &old_pid) != 1)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_READ_PROB, GPM_NODE_PID);
++ fclose(fp);
++
++ gpm_report(GPM_PR_DEBUG, GPM_MESS_KILLING, old_pid);
++
++ /* first check if we run */
++ if (kill(old_pid,0) == -1) {
++ gpm_report(GPM_PR_INFO, GPM_MESS_STALE_PID, GPM_NODE_PID);
++ unlink(GPM_NODE_PID);
++ }
++ /* then kill us (not directly, but the other instance ... ) */
++ if (kill(old_pid, SIGTERM) == -1)
++ gpm_report(GPM_PR_OOPS, GPM_MESS_CANT_KILL, old_pid);
++
++ gpm_report(GPM_PR_INFO, GPM_MESS_KILLED, old_pid);
++ exit(0);
+ }
++
+diff -urN gpm-1.20.1/src/synaptics.c gpm/src/synaptics.c
+--- gpm-1.20.1/src/synaptics.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/synaptics.c 2003-10-02 01:22:42.000000000 -0500
+@@ -865,7 +865,7 @@
+ static int scrolling_speed_timer = 0;
+ static int scrolling_amount_left = 0; /* Tells how much to scroll up or down */
+
+-
++static int mouse_fd;
+
+
+
+@@ -882,6 +882,7 @@
+ ** which makes reading the debug data harder, only dump the report if it is different
+ ** than the previously dumped.
+ */
++#if DEBUG_REPORTS
+ static void tp_dump_report_data (report_type report,
+ int edges,
+ Gpm_Event* state)
+@@ -934,7 +935,7 @@
+ (multi_finger_pressure>4500 && multi_finger_xy>50000? 'f':' '));
+
+ }
+-
++#endif
+
+ /* syn_dump_info
+ **
+@@ -1158,8 +1159,8 @@
+ status = GPM_B_NOT_SET;
+ break;
+ case Reset_Touchpad_Action:
+- syn_ps2_reset(which_mouse->fd);
+- syn_ps2_absolute_mode(which_mouse->fd);
++ syn_ps2_reset(mouse_fd);
++ syn_ps2_absolute_mode(mouse_fd);
+ status = GPM_B_NOT_SET;
+ break;
+ case Toggle_Four_Way_Button_Action:
+@@ -2950,10 +2951,8 @@
+ data [0],data [1],data [2],data [3],data [4],data [5]);
+
+ if (reset_on_error_enabled) {
+- /* Hack to get the fd: which_mouse is the current mouse,
+- and as the synaptic code is called, it is the current mouse. */
+- syn_ps2_reset(which_mouse->fd);
+- syn_ps2_absolute_mode(which_mouse->fd);
++ syn_ps2_reset(mouse_fd);
++ syn_ps2_absolute_mode(mouse_fd);
+ }
+
+ report->left = 0;
+@@ -3108,7 +3107,7 @@
+ **
+ ** Process the touchpad 6 byte report.
+ */
+-void syn_process_serial_data (Gpm_Event *state,
++void syn_process_serial_data (int fd, Gpm_Event *state,
+ unsigned char *data)
+ {
+ /* initialize the state */
+@@ -3116,6 +3115,8 @@
+ state->dx = 0;
+ state->dy = 0;
+
++ mouse_fd = fd; /* cheat */
++
+ syn_serial_translate_data (data, &cur_report);
+ if (wmode_enabled){
+ syn_process_wmode_report(&cur_report);
+@@ -3196,7 +3197,7 @@
+ **
+ ** Process the touchpad 6 byte report.
+ */
+-void syn_process_ps2_data (Gpm_Event *state,
++void syn_process_ps2_data (int fd, Gpm_Event *state,
+ unsigned char *data)
+ {
+ /* gpm_report(GPM_PR_DEBUG,"Data %02x %02x %02x %02x %02x %02x",data[0],data[1],data[2],data[3],data[4],data[5]); */
+@@ -3206,6 +3207,7 @@
+ state->dx = 0;
+ state->dy = 0;
+
++ mouse_fd = fd; /* cheat */
+
+ if (wmode_enabled) {
+ syn_ps2_translate_wmode_data (data, &cur_report);
+diff -urN gpm-1.20.1/src/tools.c gpm/src/tools.c
+--- gpm-1.20.1/src/tools.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/tools.c 1969-12-31 19:00:00.000000000 -0500
+@@ -1,93 +0,0 @@
+-/*
+- * tools.c - tools which are needed by client and server
+- *
+- * Copyright (c) 2001 Nico Schottelius <nico@schottelius.org>
+- *
+- * 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 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, write to the Free Software
+- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+- ********/
+-
+-#include <stdio.h> /* NULL */
+-#include <string.h>
+-#include <stdlib.h>
+-#include <sys/types.h> /* these three are */
+-#include <sys/stat.h> /* needed for */
+-#include <unistd.h> /* stat() */
+-
+-#include "headers/gpmInt.h" /* only used for some defines */
+-#include "headers/message.h"
+-
+-/*****************************************************************************
+- * check, whether devfs is used or not.
+- * See /usr/src/linux/Documentation/filesystems/devfs/ for details.
+- * Returns: the name of the console (/dev/tty0 or /dev/vc/0)
+- *****************************************************************************/
+-char *Gpm_get_console( void )
+-{
+-
+- char *back = NULL, *tmp = NULL;
+- struct stat buf;
+-
+- /* first try the devfs device, because in the next time this will be
+- * the preferred one. If that fails, take the old console */
+-
+- /* Check for open new console */
+- if (stat(GPM_DEVFS_CONSOLE,&buf) == 0)
+- tmp = GPM_DEVFS_CONSOLE;
+-
+- /* Failed, try OLD console */
+- else if(stat(GPM_OLD_CONSOLE,&buf) == 0)
+- tmp = GPM_OLD_CONSOLE;
+-
+- if(tmp != NULL)
+- if((back = malloc(strlen(tmp) + sizeof(char)) ) != NULL)
+- strcpy(back,tmp);
+-
+- return(back);
+-}
+-
+-/* what's the english name for potenz ? */
+-int Gpm_x_high_y(int base, int pot_y)
+-{
+- int val = 1;
+-
+- if(pot_y == 0) val = 1;
+- else if(pot_y < 0) val = 0; /* ugly hack ;) */
+- else while(pot_y > 0) {
+- val = val * base;
+- pot_y--;
+- }
+- return val;
+-}
+-
+-/* return characters needed to display int */
+-int Gpm_cnt_digits(int number)
+-{
+- /* 0-9 = 1 10^0 <-> (10^1)-1
+- * 10 - 99 = 2 10^1 <-> (10^2)-1
+- * 100 - 999 = 3 10^2 <-> (10^3)-1
+- * 1000 - 9999 = 4 ... */
+-
+- int ret = 0, num = 0;
+-
+- /* non negative, please */
+- if(number < 0) number *= -1;
+- else if(number == 0) ret = 1;
+- else while(number > num) {
+- ret++;
+- num = (Gpm_x_high_y(10,ret) - 1);
+- }
+-
+- return(ret);
+-}
+diff -urN gpm-1.20.1/src/twiddler.c gpm/src/twiddler.c
+--- gpm-1.20.1/src/twiddler.c 2002-12-24 17:57:16.000000000 -0500
++++ gpm/src/twiddler.c 2003-10-02 01:22:42.000000000 -0500
+@@ -54,6 +54,7 @@
+ #include "headers/gpm.h"
+ #include "headers/gpmInt.h"
+ #include "headers/message.h"
++#include "headers/console.h"
+ #include "headers/twiddler.h"
+
+
+@@ -134,17 +135,6 @@
+ int (*fun)(char *string);
+ };
+
+-
+-/* The same silly function as in gpm.c */
+-static inline int open_console(const int mode)
+-{
+- int fd;
+- extern struct options option;
+- if ((fd=open(option.consolename, mode)) < 0) gpm_report(GPM_PR_OOPS,GPM_MESS_OPEN,option.consolename);
+- return fd;
+-}
+-
+-
+ /*===================================================================*/
+ /* This part deals with pushing keys */
+
+@@ -175,7 +165,7 @@
+ int twiddler_exec(char *s)
+ {
+ int pid;
+- extern struct options option;
++
+ switch(pid=fork()) {
+ case -1: return -1;
+ case 0:
+@@ -184,7 +174,7 @@
+ close(2); /* very rude! */
+
+ open(GPM_NULL_DEV,O_RDONLY);
+- open(option.consolename,O_WRONLY);
++ open(console.device, O_WRONLY);
+ dup(1);
+ execl("/bin/sh", "sh", "-c", s, NULL);
+ exit(1); /* shouldn't happen */
diff --git a/source/a/gpm/gpm.SlackBuild b/source/a/gpm/gpm.SlackBuild
new file mode 100755
index 000000000..b0352fe89
--- /dev/null
+++ b/source/a/gpm/gpm.SlackBuild
@@ -0,0 +1,149 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# by: volkerdi@slackware.com
+
+VERSION=1.20.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-5}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-gpm
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf gpm-$VERSION
+tar xjvf $CWD/gpm-$VERSION.tar.bz2
+cd gpm-$VERSION
+sed -i -e "s/OPEN_MAX/NR_OPEN/" $(grep -lr OPEN_MAX *)
+chown -R root:root .
+find . \
+ \( -perm 700 -o -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/gpm-evdev-cumulative.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm.evdevmakefile.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-math.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-weak-wgetch.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-nodebug.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-gpmopen.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-idie.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-subscript.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-input.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-consolename.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-multilib.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-no-console-error.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-lib-silent.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1.send-noise-to-syslogs.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/gpm-1.20.1-input-defines.diff.gz | patch -p1 --verbose || exit 1
+
+autoconf
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+
+make || exit 1
+zcat $CWD/inputattach.c.gz > inputattach.c
+gcc $SLKCFLAGS -o inputattach inputattach.c || exit
+
+mkdir -p $PKG/usr/bin $PKG/etc/rc.d
+cat inputattach > $PKG/usr/bin/inputattach
+( cd src
+ mkdir -p $PKG/usr/sbin
+ cat gpm > $PKG/usr/sbin/gpm
+ cat prog/disable-paste > $PKG/usr/bin/disable-paste
+ cat prog/gpm-root > $PKG/usr/bin/gpm-root
+ cat prog/hltest > $PKG/usr/bin/hltest
+ cat prog/mev > $PKG/usr/bin/mev
+ cat prog/mouse-test > $PKG/usr/bin/mouse-test
+ mkdir -p $PKG/usr/include
+ cp headers/gpm.h $PKG/usr/include/gpm.h
+ chmod 644 $PKG/usr/include/gpm.h
+ mkdir -p $PKG/usr/lib${LIBDIRSUFFIX} $PKG/lib${LIBDIRSUFFIX}
+ cat lib/libgpm.a > $PKG/usr/lib${LIBDIRSUFFIX}/libgpm.a
+ cat lib/libgpm.so.1.19.0 > $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0
+ chmod 755 $PKG/lib${LIBDIRSUFFIX}/libgpm.so.1.19.0
+)
+( cd conf
+ mkdir -p $PKG/etc
+ cat gpm-root.conf > $PKG/etc/gpm-root.conf
+ cat gpm-syn.conf > $PKG/etc/gpm-syn.conf
+ cat gpm-twiddler.conf > $PKG/etc/gpm-twiddler.conf
+)
+( cd contrib/emacs
+ mkdir -p $PKG/usr/share/emacs/site-lisp
+ cat t-mouse.el > $PKG/usr/share/emacs/site-lisp/t-mouse.el
+)
+mkdir -p $PKG/usr/doc/gpm-$VERSION
+cp -a \
+ BUGS COPYING Changelog Changes MANIFEST README TODO \
+ $PKG/usr/doc/gpm-$VERSION
+( cd doc
+ for page in *.1 *.7 *.8 ; do
+ CHAPTER=`echo $page | cut -f 2 -d .`
+ mkdir -p $PKG/usr/man/man$CHAPTER
+ cat $page | gzip -9c > $PKG/usr/man/man${CHAPTER}/$page.gz
+ done
+ mkdir -p $PKG/usr/info
+ cat gpm.info | gzip -9c > $PKG/usr/info/gpm.info.gz
+ cp -a \
+ Announce FAQ HACK_GPM README* \
+ $PKG/usr/doc/gpm-$VERSION
+)
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ ln -sf ../../lib${LIBDIRSUFFIX}/libgpm.so.1 libgpm.so )
+( cd $PKG/lib${LIBDIRSUFFIX} ; ln -sf libgpm.so.1.19.0 libgpm.so.1 )
+zcat $CWD/mouseconfig.gz > $PKG/usr/sbin/mouseconfig
+chmod 755 $PKG/usr/bin/* $PKG/usr/sbin/*
+mkdir -p $PKG/var/log/setup
+zcat $CWD/setup.mouse.gz > $PKG/var/log/setup/setup.mouse
+chmod 755 $PKG/var/log/setup/setup.mouse
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/gpm-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/gpm/gpm.evdevmakefile.patch b/source/a/gpm/gpm.evdevmakefile.patch
new file mode 100644
index 000000000..bd56c3aab
--- /dev/null
+++ b/source/a/gpm/gpm.evdevmakefile.patch
@@ -0,0 +1,11 @@
+--- ./src/Makefile.in.orig 2006-02-07 15:24:17.000000000 -0600
++++ ./src/Makefile.in 2006-02-07 15:26:03.000000000 -0600
+@@ -12,7 +12,7 @@
+ include $(top_builddir)/Makefile.include
+
+ # Main portion: regular build rules
+-MICESRC = mice.c twiddler.c synaptics.c @EVDEV_SRCS@
++MICESRC = mice.c twiddler.c synaptics.c evdev.c
+
+ GSRC = main.c gpm.c gpn.c special.c startup.c server_tools.c console.c \
+ selection.c client.c optparser.c $(MICESRC)
diff --git a/source/a/gpm/inputattach.c b/source/a/gpm/inputattach.c
new file mode 100644
index 000000000..c47fad137
--- /dev/null
+++ b/source/a/gpm/inputattach.c
@@ -0,0 +1,472 @@
+/*
+ * $Id: inputattach.c,v 1.21 2002/07/10 22:34:01 vojtech Exp $
+ *
+ * Copyright (c) 1999-2000 Vojtech Pavlik
+ *
+ * Sponsored by SuSE
+ *
+ * Twiddler support Copyright (c) 2001 Arndt Schoenewald
+ * Sponsored by Quelltext AG (http://www.quelltext-ag.de), Dortmund, Germany
+ */
+
+/*
+ * Input line discipline attach program
+ */
+
+/*
+ * 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 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Should you need to contact me, the author, you can do so either by
+ * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
+ * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
+ */
+
+#include <linux/serio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <termios.h>
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+
+int readchar(int fd, unsigned char *c, int timeout)
+{
+ struct timeval tv;
+ fd_set set;
+
+ tv.tv_sec = 0;
+ tv.tv_usec = timeout * 1000;
+
+ FD_ZERO(&set);
+ FD_SET(fd, &set);
+
+ if (!select(fd+1, &set, NULL, NULL, &tv)) return -1;
+ if (read(fd, c, 1) != 1) return -1;
+
+ return 0;
+}
+
+
+
+void setline(int fd, int flags, int speed)
+{
+ struct termios t;
+
+ tcgetattr(fd, &t);
+
+ t.c_cflag = flags | CREAD | HUPCL | CLOCAL;
+ t.c_iflag = IGNBRK | IGNPAR;
+ t.c_oflag = 0;
+ t.c_lflag = 0;
+ t.c_cc[VMIN ] = 1;
+ t.c_cc[VTIME] = 0;
+
+ cfsetispeed(&t, speed);
+ cfsetospeed(&t, speed);
+
+ tcsetattr(fd, TCSANOW, &t);
+}
+
+int logitech_command(int fd, char *c)
+{
+ int i;
+ unsigned char d;
+ for (i = 0; c[i]; i++) {
+ write(fd, c + i, 1);
+ if (readchar(fd, &d, 1000))
+ return -1;
+ if (c[i] != d)
+ return -1;
+ }
+ return 0;
+}
+
+int magellan_init(int fd, long *id, long *extra)
+{
+ write(fd, "m3\rpBB\rz\r", 9);
+ return 0;
+}
+
+int warrior_init(int fd, long *id, long *extra)
+{
+ if (logitech_command(fd, "*S")) return -1;
+ setline(fd, CS8, B4800);
+ return 0;
+}
+
+int spaceball_waitchar(int fd, unsigned char c, unsigned char *d, int timeout)
+{
+ unsigned char b = 0;
+
+ while (!readchar(fd, &b, timeout)) {
+ if (b == 0x0a) continue;
+ *d++ = b;
+ if (b == c) break;
+ }
+
+ *d = 0;
+
+ return -(b != c);
+}
+
+int spaceball_waitcmd(int fd, char c, char *d)
+{
+ int i;
+
+ for (i = 0; i < 8; i++) {
+ if (spaceball_waitchar(fd, 0x0d, d, 1000))
+ return -1;
+ if (d[0] == c)
+ return 0;
+ }
+
+ return -1;
+}
+
+int spaceball_cmd(int fd, char *c, char *d)
+{
+ int i;
+
+ for (i = 0; c[i]; i++)
+ write(fd, c + i, 1);
+ write(fd, "\r", 1);
+
+ i = spaceball_waitcmd(fd, toupper(c[0]), d);
+
+ return i;
+}
+
+#define SPACEBALL_1003 1
+#define SPACEBALL_2003B 3
+#define SPACEBALL_2003C 4
+#define SPACEBALL_3003C 7
+#define SPACEBALL_4000FLX 8
+#define SPACEBALL_4000FLX_L 9
+
+int spaceball_init(int fd, long *id, long *extra)
+{
+ char r[64];
+
+ if (spaceball_waitchar(fd, 0x11, r, 4000) ||
+ spaceball_waitchar(fd, 0x0d, r, 1000))
+ return -1;
+
+ if (spaceball_waitcmd(fd, '@', r))
+ return -1;
+
+ if (strncmp("@1 Spaceball alive", r, 18))
+ return -1;
+
+ if (spaceball_waitcmd(fd, '@', r))
+ return -1;
+
+ if (spaceball_cmd(fd, "hm", r))
+ return -1;
+
+ if (!strncmp("Hm2003B", r, 7))
+ *id = SPACEBALL_2003B;
+ if (!strncmp("Hm2003C", r, 7))
+ *id = SPACEBALL_2003C;
+ if (!strncmp("Hm3003C", r, 7))
+ *id = SPACEBALL_3003C;
+
+ if (!strncmp("HvFirmware", r, 10)) {
+
+ if (spaceball_cmd(fd, "\"", r))
+ return -1;
+
+ if (strncmp("\"1 Spaceball 4000 FLX", r, 21))
+ return -1;
+
+ if (spaceball_waitcmd(fd, '"', r))
+ return -1;
+
+ if (strstr(r, " L "))
+ *id = SPACEBALL_4000FLX_L;
+ else
+ *id = SPACEBALL_4000FLX;
+
+ if (spaceball_waitcmd(fd, '"', r))
+ return -1;
+
+ if (spaceball_cmd(fd, "YS", r))
+ return -1;
+
+ if (spaceball_cmd(fd, "M", r))
+ return -1;
+
+ return 0;
+ }
+
+ if (spaceball_cmd(fd, "P@A@A", r) ||
+ spaceball_cmd(fd, "FT@", r) ||
+ spaceball_cmd(fd, "MSS", r))
+ return -1;
+
+ return 0;
+}
+
+int stinger_init(int fd, long *id, long *extra)
+{
+ int i;
+ unsigned char c;
+ unsigned char *response = "\r\n0600520058C272";
+
+ if (write(fd, " E5E5", 5) != 5) /* Enable command */
+ return -1;
+
+ for (i = 0; i < 16; i++) /* Check for Stinger */
+ if (readchar(fd, &c, 200) || (c != response[i]))
+ return -1;
+
+ return 0;
+}
+
+int mzp_init(int fd, long *id, long *extra)
+{
+ if (logitech_command(fd, "*X*q")) return -1;
+ setline(fd, CS8, B9600);
+ return 0;
+}
+
+int newton_init(int fd, long *id, long *extra)
+{
+ int i;
+ unsigned char c;
+ unsigned char response[35] =
+ { 0x16, 0x10, 0x02, 0x64, 0x5f, 0x69, 0x64, 0x00,
+ 0x00, 0x00, 0x0c, 0x6b, 0x79, 0x62, 0x64, 0x61,
+ 0x70, 0x70, 0x6c, 0x00, 0x00, 0x00, 0x01, 0x6e,
+ 0x6f, 0x66, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0x03, 0xdd, 0xe7 };
+
+ for (i = 0; i < 35; i++)
+ if (readchar(fd, &c, 400) || (c != response[i]))
+ return -1;
+
+ return 0;
+}
+
+int twiddler_init(int fd, long *id, long *extra)
+{
+ unsigned char c[10];
+ int count, line;
+
+ /* Turn DTR off, otherwise the Twiddler won't send any data. */
+ if (ioctl(fd, TIOCMGET, &line)) return -1;
+ line &= ~TIOCM_DTR;
+ if (ioctl(fd, TIOCMSET, &line)) return -1;
+
+ /* Check whether the device on the serial line is the Twiddler.
+ *
+ * The Twiddler sends data packets of 5 bytes which have the following
+ * properties: the MSB is 0 on the first and 1 on all other bytes, and
+ * the high order nibble of the last byte is always 0x8.
+ *
+ * We read and check two of those 5 byte packets to be sure that we
+ * are indeed talking to a Twiddler. */
+
+ /* Read at most 5 bytes until we find one with the MSB set to 0 */
+ for (count = 0; count < 5; count++) {
+ if (readchar(fd, c+0, 500)) return -1;
+ if ((c[0] & 0x80) == 0) break;
+ }
+
+ if (count == 5) {
+ /* Could not find header byte in data stream */
+ return -1;
+ }
+
+ /* Read remaining 4 bytes plus the full next data packet */
+ for (count = 1; count < 10; count++) {
+ if (readchar(fd, c+count, 500)) return -1;
+ }
+
+ /* Check whether the bytes of both data packets obey the rules */
+ for (count = 1; count < 10; count++) {
+ if ((count % 5 == 0 && (c[count] & 0x80) != 0)
+ || (count % 5 == 4 && (c[count] & 0xF0) != 0x80)
+ || (count % 5 != 0 && (c[count] & 0x80) != 0x80)) {
+ /* Invalid byte in data packet */
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+int dump_init(int fd, long *id, long *extra)
+{
+ unsigned char c, o = 0;
+
+ c = 0x80;
+
+ if (write(fd, &c, 1) != 1) /* Enable command */
+ return -1;
+
+ while (1)
+ if (!readchar(fd, &c, 1)) {
+ printf("%02x (%c) ", c, ((c > 32) && (c < 127)) ? c : 'x');
+ o = 1;
+ } else {
+ if (o) {
+ printf("\n");
+ o = 0;
+ }
+ }
+}
+
+struct input_types {
+ char name[16];
+ char name2[16];
+ int speed;
+ int flags;
+ unsigned long type;
+ unsigned long extra;
+ int flush;
+ int (*init)(int fd, long *id, long *extra);
+};
+
+struct input_types input_types[] = {
+
+{ "--sunkbd", "-skb", B1200, CS8, SERIO_SUNKBD, 0x00, 1, NULL },
+{ "--spaceorb", "-orb", B9600, CS8, SERIO_SPACEORB, 0x00, 1, NULL },
+{ "--spaceball", "-sbl", B9600, CS8, SERIO_SPACEBALL,0x00, 0, spaceball_init },
+{ "--magellan", "-mag", B9600, CS8 | CSTOPB | CRTSCTS, SERIO_MAGELLAN, 0x00, 1, magellan_init },
+{ "--warrior", "-war", B1200, CS7 | CSTOPB, SERIO_WARRIOR, 0x00, 1, warrior_init },
+{ "--stinger", "-sting", B1200, CS8, SERIO_STINGER, 0x00, 1, stinger_init },
+{ "--mousesystems", "-msc", B1200, CS8, SERIO_MSC, 0x01, 1, NULL },
+{ "--sunmouse", "-sun", B1200, CS8, SERIO_SUN, 0x01, 1, NULL },
+{ "--microsoft", "-bare", B1200, CS7, SERIO_MS, 0x00, 1, NULL },
+{ "--mshack", "-ms", B1200, CS7, SERIO_MS, 0x01, 1, NULL },
+{ "--mouseman", "-mman", B1200, CS7, SERIO_MP, 0x01, 1, NULL },
+{ "--intellimouse", "-ms3", B1200, CS7, SERIO_MZ, 0x11, 1, NULL },
+{ "--mmwheel", "-mmw", B1200, CS7 | CSTOPB, SERIO_MZP, 0x13, 1, mzp_init },
+{ "--iforce", "-ifor", B38400, CS8, SERIO_IFORCE, 0x00, 0, NULL },
+{ "--newtonkbd", "-newt", B9600, CS8, SERIO_NEWTON, 0x00, 0, newton_init },
+{ "--h3600ts", "-ipaq", B115200, CS8, SERIO_H3600, 0x00, 0, NULL },
+{ "--stowawaykbd", "-ipaqkbd", B115200, CS8, SERIO_STOWAWAY, 0x00, 0, NULL },
+{ "--ps2serkbd", "-ps2ser", B1200, CS8, SERIO_PS2SER, 0x00, 1, NULL },
+#if 0
+{ "--twiddler", "-twid", B2400, CS8, SERIO_TWIDKBD, 0x00, 0, twiddler_init },
+{ "--twiddler-joy", "-twidjoy", B2400, CS8, SERIO_TWIDJOY, 0x00, 0, twiddler_init },
+{ "--ipod-remote", "-ipod", B9600, CS8, SERIO_IPOD_REM, 0x00, 0, NULL },
+#endif
+{ "--dump", "-dump", B2400, CS8, 0, 0x00, 0, dump_init },
+{ "", "", 0, 0 }
+
+};
+
+int main(int argc, char **argv)
+{
+ unsigned long devt;
+ int ldisc;
+ int type;
+ long id, extra;
+ int fd;
+ char c;
+
+ if (argc < 2 || argc > 4 || (argc == 4 && strcmp(argv[3], "--daemon")) || !strcmp("--help", argv[1])) {
+ puts("");
+ puts("Usage: inputttach <mode> <device>");
+ puts("");
+ puts("Modes:");
+ puts(" --sunkbd -skb Sun Type 4 and Type 5 keyboards");
+ puts(" --spaceorb -orb SpaceOrb 360 / SpaceBall Avenger");
+ puts(" --spaceball -sbl SpaceBall 2003 / 3003 / 4000 FLX");
+ puts(" --magellan -mag Magellan / SpaceMouse");
+ puts(" --warrior -war WingMan Warrior");
+ puts(" --stinger -stng Gravis Stinger");
+ puts(" --mousesystems -msc 3-button Mouse Systems mice");
+ puts(" --sunmouse -sun 3-button Sun mice");
+ puts(" --microsoft -bare 2-button Microsoft mice");
+ puts(" --mshack -ms 3-button mice in Microsoft mode");
+ puts(" --mouseman -mman 3-button Logitech and Genius mice");
+ puts(" --intellimouse -ms3 Microsoft IntelliMouse");
+ puts(" --mmwheel -mmw Logitech mice with 4-5 buttons or wheel");
+ puts(" --iforce -ifor I-Force joysticks and wheels");
+ puts(" --h3600ts -ipaq Ipaq h3600 touchscreen");
+ puts(" --stowawaykbd -ipaqkbd Stowaway keyboard");
+ puts(" --ps2serkbd -ps2ser PS/2 via serial keyboard");
+#if 0
+ puts(" --twiddler -twid Handykey Twiddler chording keyboard");
+ puts(" --twiddler-joy -twidjoy Handykey Twiddler used as a joystick");
+ puts(" --ipod-remote -ipod iPod remote control");
+#endif
+ puts("");
+ return 1;
+ }
+
+ for (type = 0; input_types[type].speed; type++) {
+ if (!strncasecmp(argv[1], input_types[type].name, 16) ||
+ !strncasecmp(argv[1], input_types[type].name2, 16))
+ break;
+ }
+
+ if (!input_types[type].speed) {
+ fprintf(stderr, "inputattach: invalid mode\n");
+ return 1;
+ }
+
+ if ((fd = open(argv[2], O_RDWR | O_NOCTTY | O_NONBLOCK)) < 0) {
+ perror("inputattach");
+ return 1;
+ }
+
+ setline(fd, input_types[type].flags, input_types[type].speed);
+
+ if (input_types[type].flush)
+ while (!readchar(fd, &c, 100));
+
+ id = 0;
+ extra = input_types[type].extra;
+
+ if (input_types[type].init && input_types[type].init(fd, &id, &extra)) {
+ fprintf(stderr, "inputattach: device initialization failed\n");
+ return 1;
+ }
+
+ ldisc = N_MOUSE;
+ if(ioctl(fd, TIOCSETD, &ldisc)) {
+ fprintf(stderr, "inputattach: can't set line discipline\n");
+ return 1;
+ }
+
+ devt = SERIO_RS232 | input_types[type].type | (id << 8) | (extra << 16);
+
+ if(ioctl(fd, SPIOCSTYPE, &devt)) {
+ fprintf(stderr, "inputattach: can't set device type\n");
+ return 1;
+ }
+
+ if (argc == 4 && !strcmp(argv[3],"--daemon"))
+ daemon(0,0);
+
+ read(fd, NULL, 0);
+
+ ldisc = 0;
+ ioctl(fd, TIOCSETD, &ldisc);
+ close(fd);
+
+ return 0;
+}
diff --git a/source/a/gpm/mouseconfig b/source/a/gpm/mouseconfig
new file mode 100644
index 000000000..4e9575f51
--- /dev/null
+++ b/source/a/gpm/mouseconfig
@@ -0,0 +1,7 @@
+#!/bin/sh
+# Starts the Slackware mouse configuration menu, where you can set your
+# /dev/mouse link and configure gpm.
+COLOR=on
+export COLOR
+cd /
+/bin/sh /var/log/setup/setup.mouse /
diff --git a/source/a/gpm/setup.mouse b/source/a/gpm/setup.mouse
new file mode 100644
index 000000000..dcdc6a8f9
--- /dev/null
+++ b/source/a/gpm/setup.mouse
@@ -0,0 +1,154 @@
+#!/bin/sh
+#BLURB="Configure the console mouse support (GPM)."
+T_PX=$1
+TMP=/var/log/setup/tmp
+GPM=/usr/sbin/gpm
+# If the mouse is USB, we can autodetect it:
+if [ -r /proc/bus/usb/devices ]; then
+ if cat /proc/bus/usb/devices | grep usb_mouse 1> /dev/null 2> /dev/null ; then
+ MOUSE_TYPE=usb
+ MTYPE="imps2"
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse )
+ fi
+fi
+
+if [ "$MOUSE_TYPE" = "" ]; then
+ dialog --title "MOUSE CONFIGURATION" --default-item "imps2" --menu \
+"This part of the configuration \
+process will create a /dev/mouse link pointing to your default mouse device. \
+You can change the /dev/mouse link later if the mouse doesn't work, or if \
+you switch to a different type of pointing device. We will also use the \
+information about the mouse to set the correct protocol for gpm, the Linux \
+mouse server. Please select a mouse type \
+from the list below:" 20 76 8 \
+ "ps2" "PS/2 port mouse (most desktops and laptops)" \
+ "usb" "USB connected mouse" \
+ "imps2" "Microsoft PS/2 Intellimouse" \
+ "exps2" "Intellimouse Explorer PS/2" \
+ "bare" "2 button Microsoft compatible serial mouse" \
+ "ms" "3 button Microsoft compatible serial mouse" \
+ "mman" "Logitech serial MouseMan and similar devices" \
+ "msc" "MouseSystems serial (most 3 button serial mice)" \
+ "pnp" "Plug and Play (serial mice that do not work with ms)" \
+ "ms3" "Microsoft serial Intellimouse" \
+ "netmouse" "Genius Netmouse on PS/2 port" \
+ "logi" "Some serial Logitech devices" \
+ "logim" "Make serial Logitech behave like msc" \
+ "atibm" "ATI XL busmouse (mouse card)" \
+ "inportbm" "Microsoft busmouse (mouse card)" \
+ "logibm" "Logitech busmouse (mouse card)" \
+ "ncr" "A pointing pen (NCR3125) on some laptops" \
+ "twid" "Twiddler keyboard, by HandyKey Corp" \
+ "genitizer" "Genitizer tablet (relative mode)" \
+ "js" "Use a joystick as a mouse" \
+ "wacom" "Wacom serial graphics tablet" \
+ 2> $TMP/mtype
+ if [ ! $? = 0 ]; then
+ rm -f $TMP/mtype
+ exit
+ fi
+ if [ -f $TMP/mtype ]; then
+ MOUSE_TYPE="`cat $TMP/mtype`"
+ else
+ unset MOUSE_TYPE
+ fi
+ rm -f $TMP/mtype
+ if [ "$MOUSE_TYPE" = "bare" -o "$MOUSE_TYPE" = "ms" \
+ -o "$MOUSE_TYPE" = "mman" -o "$MOUSE_TYPE" = "msc" \
+ -o "$MOUSE_TYPE" = "genitizer" \
+ -o "$MOUSE_TYPE" = "pnp" -o "$MOUSE_TYPE" = "ms3" \
+ -o "$MOUSE_TYPE" = "logi" -o "$MOUSE_TYPE" = "logim" \
+ -o "$MOUSE_TYPE" = "wacom" -o "$MOUSE_TYPE" = "twid" ]; then
+ dialog --title "SELECT SERIAL PORT" --menu "Your mouse requires a \
+serial port. Which one would you like to use?" 12 50 4 \
+ "/dev/ttyS0" "(COM1: under DOS)" \
+ "/dev/ttyS1" "(COM2: under DOS)" \
+ "/dev/ttyS2" "(COM3: under DOS)" \
+ "/dev/ttyS3" "(COM4: under DOS)" 2> $TMP/mport
+ if [ ! $? = 0 ]; then
+ rm -f $TMP/mport
+ exit
+ fi
+ MDEVICE="`cat $TMP/mport`"
+ SHORT_MDEVICE=`basename $MDEVICE`
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf $SHORT_MDEVICE mouse )
+ # For the serial mice, the protocol is the same as the mouse type:
+ MTYPE=$MOUSE_TYPE
+ rm -f $TMP/mport
+ elif [ "$MOUSE_TYPE" = "ps2" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse )
+ MTYPE="ps2"
+ elif [ "$MOUSE_TYPE" = "ncr" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse )
+ MTYPE="ncr"
+ elif [ "$MOUSE_TYPE" = "exps2" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse )
+ MTYPE="exps2"
+ elif [ "$MOUSE_TYPE" = "imps2" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf psaux mouse )
+ MTYPE="imps2"
+ elif [ "$MOUSE_TYPE" = "logibm" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf logibm mouse )
+ MTYPE="ps2"
+ elif [ "$MOUSE_TYPE" = "atibm" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf atibm mouse )
+ MTYPE="ps2"
+ elif [ "$MOUSE_TYPE" = "inportbm" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf inportbm mouse )
+ MTYPE="bm"
+ elif [ "$MOUSE_TYPE" = "js" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf js0 mouse )
+ MTYPE="js"
+ elif [ "$MOUSE_TYPE" = "usb" ]; then
+ ( cd $T_PX/dev ; rm -f mouse ; ln -sf input/mice mouse )
+ MTYPE="imps2"
+ fi
+fi
+
+# OK, we know enough now to create a sample rc.gpm:
+cat << EOF > $T_PX/etc/rc.d/rc.gpm-sample
+#!/bin/sh
+# Start/stop/restart the GPM mouse server:
+
+if [ "\$1" = "stop" ]; then
+ echo "Stopping gpm..."
+ $GPM -k
+elif [ "\$1" = "restart" ]; then
+ echo "Restarting gpm..."
+ $GPM -k
+ sleep 1
+ $GPM -m /dev/mouse -t $MTYPE
+else # assume \$1 = start:
+ echo "Starting gpm: $GPM -m /dev/mouse -t $MTYPE"
+ $GPM -m /dev/mouse -t $MTYPE
+fi
+
+# There is another way to run GPM, where it acts as a repeater outputting a
+# virtual MouseSystems mouse on /dev/gpmdata. This is useful for feeding
+# gpm's data to X, especially if you've got a busmouse (in that situation X
+# and gpm may not coexist without using a repeater). To try running a GPM
+# repeater for X, change the gpm command line to look like this:
+# $GPM -R msc -m /dev/mouse -t $MTYPE
+# Then, make sure that the mouse configuration in your XF86Config file refers
+# to the repeater device (/dev/gpmdata) and a MouseSystems mouse type. If you
+# edit the file directly, you'll want the lines to look like this (minus the
+# comment marks '#' shown here, of course):
+#Section "Pointer"
+# Protocol "MouseSystems"
+# Device "/dev/gpmdata"
+
+EOF
+chmod 755 $T_PX/etc/rc.d/rc.gpm-sample
+# Now ask if this should be the new rc.gpm:
+ dialog --title "GPM CONFIGURATION" --yesno \
+"The gpm program allows you to cut and paste text on\n\
+the virtual consoles using a mouse. If you choose to\n\
+run it at boot time, this line will be added to your\n\
+/etc/rc.d/rc.gpm:\n\
+\n\
+ $GPM -m /dev/mouse -t $MTYPE \n\
+\n\
+Shall we load the gpm program at boot time?" 12 58
+ if [ $? = 0 ]; then
+ mv $T_PX/etc/rc.d/rc.gpm-sample $T_PX/etc/rc.d/rc.gpm
+ fi
diff --git a/source/a/gpm/slack-desc b/source/a/gpm/slack-desc
new file mode 100644
index 000000000..17774f10e
--- /dev/null
+++ b/source/a/gpm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gpm: gpm (general purpose mouse server)
+gpm:
+gpm: The general purpose mouse server, or gpm, allows you to use the mouse
+gpm: to cut and paste text from the screen. It also acts as a mouse
+gpm: server for applications running on the Linux console, such as the
+gpm: Midnight Commander file manager.
+gpm:
+gpm: NOTE: This program may cause problems when you start X on systems
+gpm: that do not use a serial mouse. If you get an 'unable to open mouse
+gpm: device' error from X, disable /etc/rc.d/rc.gpm.
+gpm:
diff --git a/source/a/grep/grep.SlackBuild b/source/a/grep/grep.SlackBuild
new file mode 100755
index 000000000..1b2ac8e7e
--- /dev/null
+++ b/source/a/grep/grep.SlackBuild
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# Copyright 2005-2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-2.5.4}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-grep
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf grep-$VERSION
+tar xvf $CWD/grep-$VERSION.tar.bz2 || exit 1
+cd grep-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --bindir=/bin \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-perl-regexp \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# ****************************************************************************
+# Makefile installs different binaries for each of grep, egrep, and fgrep
+# This is how we used to do it...
+#( cd $PKG/bin
+# rm -f egrep ; ln -sf grep egrep
+# rm -f fgrep ; ln -sf grep fgrep
+#)
+# ****************************************************************************
+
+# Make symlinks in /usr/bin:
+mkdir -p $PKG/usr/bin
+( cd $PKG/usr/bin
+ ln -sf ../../bin/grep .
+ ln -sf ../../bin/egrep .
+ ln -sf ../../bin/fgrep .
+)
+
+# Compress man pages
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
+
+# Compress info pages
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/grep-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING* INSTALL NEWS README* THANKS TODO \
+ $PKG/usr/doc/grep-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/grep-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/grep/slack-desc b/source/a/grep/slack-desc
new file mode 100644
index 000000000..fe831013e
--- /dev/null
+++ b/source/a/grep/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+grep: grep (print lines matching a pattern)
+grep:
+grep: This is GNU grep, the "fastest grep in the west" (we hope). Grep
+grep: searches through textual input for lines which contain a match to a
+grep: specified pattern and then prints the matching lines.
+grep:
+grep:
+grep:
+grep:
+grep:
+grep:
diff --git a/source/a/gzip/gzip.SlackBuild b/source/a/gzip/gzip.SlackBuild
new file mode 100755
index 000000000..c2719ebd3
--- /dev/null
+++ b/source/a/gzip/gzip.SlackBuild
@@ -0,0 +1,146 @@
+#!/bin/sh
+# Copyright 2006-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=gzip
+VERSION=${VERSION:-1.3.12}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# The following command renames the internal implementation of futimens
+# to gl_futimens as newer versions of Glibc provide an incompatible version:
+sed -i -e "s/futimens/gl_&/" $(grep -lr futimens *)
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --bindir=/bin \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make -j4 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# The ncompress package already has this:
+rm -f $PKG/bin/uncompress
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Fix locations:
+#( cd $PKG
+ #mkdir bin
+ #mv usr/bin/gzip bin
+ #( cd bin ; rm -rf gunzip )
+ #( cd bin ; ln -sf gzip gunzip )
+ #( cd bin ; rm -rf zcat )
+ #( cd bin ; ln -sf gzip zcat )
+ #( cd usr/bin ; rm -rf gzip )
+ #( cd usr/bin ; ln -sf ../../bin/gzip gzip )
+ #( cd usr/bin ; rm -rf gunzip )
+ #( cd usr/bin ; ln -sf ../../bin/gunzip gunzip )
+ #( cd usr/bin ; rm -rf zcat )
+ #( cd usr/bin ; ln -sf ../../bin/zcat zcat )
+ #( cd usr/bin ; rm -rf zcmp )
+ #( cd usr/bin ; ln -sf zdiff zcmp )
+ #( cd usr/bin ; rm -rf zegrep )
+ #( cd usr/bin ; ln -sf zgrep zegrep )
+ #( cd usr/bin ; rm -rf zfgrep )
+ #( cd usr/bin ; ln -sf zgrep zfgrep )
+#)
+
+mkdir -p $PKG/usr/bin
+( cd $PKG/bin
+ for file in * ; do
+ ( cd $PKG/usr/bin ; ln -sf ../../bin/$file . )
+ done
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.tgz
+
diff --git a/source/a/gzip/slack-desc b/source/a/gzip/slack-desc
new file mode 100644
index 000000000..ef26d586e
--- /dev/null
+++ b/source/a/gzip/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+gzip: gzip (file compression utility)
+gzip:
+gzip: Gzip reduces the size of the named files using Lempel-Ziv coding
+gzip: (LZ77). Whenever possible, each file is replaced by one with the
+gzip: extension .gz, while keeping the same ownership modes, access and
+gzip: modification times.
+gzip:
+gzip:
+gzip:
+gzip:
+gzip:
diff --git a/source/a/hdparm/hdparm.SlackBuild b/source/a/hdparm/hdparm.SlackBuild
new file mode 100755
index 000000000..293b1cf87
--- /dev/null
+++ b/source/a/hdparm/hdparm.SlackBuild
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=${VERSION:-9.3}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-hdparm
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf hdparm-$VERSION
+tar xvf $CWD/hdparm-$VERSION.tar.bz2 || exit 1
+cd hdparm-$VERSION || exit 1
+chown -R root:root .
+make $NUMJOBS || make || exit 1
+mkdir -p $PKG/sbin
+cat hdparm > $PKG/sbin/hdparm
+chmod 755 $PKG/sbin/hdparm
+mkdir -p $PKG/usr/sbin
+( cd $PKG/usr/sbin
+ ln -sf ../../sbin/hdparm .
+)
+mkdir -p $PKG/usr/man/man8
+cat hdparm.8 | gzip -9c > $PKG/usr/man/man8/hdparm.8.gz
+mkdir -p $PKG/usr/doc/hdparm-$VERSION
+cp -a \
+ LICENSE.TXT README.acoustic hdparm.lsm contrib \
+ $PKG/usr/doc/hdparm-$VERSION
+# I'm also not sure why I'm putting a binary in the docs, but...
+rm -f $PKG/usr/doc/hdparm-$VERSION/contrib/fix_standby.c
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/hdparm-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/hdparm/slack-desc b/source/a/hdparm/slack-desc
new file mode 100644
index 000000000..dc846e073
--- /dev/null
+++ b/source/a/hdparm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+hdparm: hdparm (read/set hard drive parameters)
+hdparm:
+hdparm: hdparm provides a command line interface to various hard disk ioctls
+hdparm: supported by the Linux ATA/IDE device driver subsystem. This may be
+hdparm: required to enable higher-performing disk modes.
+hdparm:
+hdparm: hdparm was written by Mark Lord.
+hdparm:
+hdparm:
+hdparm:
+hdparm:
diff --git a/source/a/infozip/infozip.SlackBuild b/source/a/infozip/infozip.SlackBuild
new file mode 100755
index 000000000..900c4f95d
--- /dev/null
+++ b/source/a/infozip/infozip.SlackBuild
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=6.0
+ZIP=3.0
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-infozip
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf zip$(echo $ZIP | tr -d .)
+tar xvf $CWD/zip$(echo $ZIP | tr -d .).tar.?z* || exit 1
+cd zip$(echo $ZIP | tr -d .)
+chown -R root:root .
+mkdir -p $PKG/usr/doc/zip-$ZIP
+cp -a BUGS CHANGES INSTALL LICENSE README* TODO US* WHATSNEW WHERE \
+ $PKG/usr/doc/zip-$ZIP
+chmod 644 $PKG/usr/doc/zip-$ZIP/*
+make -f unix/Makefile generic_gcc || exit 1
+mkdir -p $PKG/usr/bin
+cat zip > $PKG/usr/bin/zip
+cat zipnote > $PKG/usr/bin/zipnote
+cat zipsplit > $PKG/usr/bin/zipsplit
+cat zipcloak > $PKG/usr/bin/zipcloak
+mkdir -p $PKG/usr/man/man1
+for page in man/zip.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$(basename $page).gz
+done
+
+cd $TMP
+rm -rf unzip$(echo $VERSION | tr -d .)
+tar xvf $CWD/unzip$(echo $VERSION | tr -d .).tar.?z* || exit 1
+cd unzip$(echo $VERSION | tr -d .)
+chown -R root:root .
+mkdir -p $PKG/usr/doc/unzip-$VERSION
+cp -a BUGS COPYING* Contents History.* INSTALL LICENSE README ToDo WHERE \
+ $PKG/usr/doc/unzip-$VERSION
+chmod 644 $PKG/usr/doc/unzip-$VERSION/*
+make -f unix/Makefile generic || exit 1
+cat unzip > $PKG/usr/bin/unzip
+cat unzipsfx > $PKG/usr/bin/unzipsfx
+cat funzip > $PKG/usr/bin/funzip
+cat unix/zipgrep > $PKG/usr/bin/zipgrep
+( cd $PKG/usr/bin ; ln -sf unzip zipinfo )
+chmod 755 $PKG/usr/bin/*
+cd man
+for page in funzip.1 unzip.1 unzipsfx.1 zipgrep.1 zipinfo.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+cd ..
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/infozip-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/zip-$ZIP
+ rm -rf $TMP/unzip-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/infozip/slack-desc b/source/a/infozip/slack-desc
new file mode 100644
index 000000000..92e643160
--- /dev/null
+++ b/source/a/infozip/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+infozip: infozip (Info-ZIP's zip and unzip utilities)
+infozip:
+infozip: zip is a compression and file packaging utility for Unix, VMS, MSDOS,
+infozip: OS/2, Windows NT, Minix, Atari and Macintosh, Amiga and Acorn RISC OS.
+infozip: It is analogous to a combination of the UNIX commands tar(1) and
+infozip: compress(1) and is compatible with PKZIP (Phil Katz's ZIP). A
+infozip: companion program (unzip(1L)), unpacks zip archives.
+infozip:
+infozip:
+infozip:
+infozip:
diff --git a/source/a/inotify-tools/inotify-tools.SlackBuild b/source/a/inotify-tools/inotify-tools.SlackBuild
new file mode 100755
index 000000000..82e807fce
--- /dev/null
+++ b/source/a/inotify-tools/inotify-tools.SlackBuild
@@ -0,0 +1,109 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=inotify-tools
+VERSION=${VERSION:-3.13}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/${PKGNAM}-${VERSION}/html \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make -j4 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-${VERSION}
+cp -a \
+ AUTHORS COPYING ChangeLog INSTALL NEWS README \
+ $PKG/usr/doc/${PKGNAM}-${VERSION}
+# Get rid of html api documentation:
+rm -rf $PKG/usr/doc/${PKGNAM}-${VERSION}/html
+
+mkdir -p $PKG/install
+#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/inotify-tools/slack-desc b/source/a/inotify-tools/slack-desc
new file mode 100644
index 000000000..f5cb8c6e8
--- /dev/null
+++ b/source/a/inotify-tools/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+inotify-tools: inotify-tools (command line utilities for inotify)
+inotify-tools:
+inotify-tools: inotify-tools is a set of command-line programs for Linux providing a
+inotify-tools: simple interface to inotify. These programs can be used to monitor
+inotify-tools: and act upon filesystem events.
+inotify-tools:
+inotify-tools: For more information see the inotifywait and inotifywatch man pages.
+inotify-tools:
+inotify-tools: inotify-tools home: http://inotify-tools.sourceforge.net/
+inotify-tools:
+inotify-tools:
diff --git a/source/a/jfsutils/jfsutils.SlackBuild b/source/a/jfsutils/jfsutils.SlackBuild
new file mode 100755
index 000000000..d97ebcb62
--- /dev/null
+++ b/source/a/jfsutils/jfsutils.SlackBuild
@@ -0,0 +1,96 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-1.1.14}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-jfsutils
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf jfsutils-$VERSION
+tar xvf $CWD/jfsutils-$VERSION.tar.?z* || exit 1
+cd jfsutils-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --disable-dependency-tracking \
+ --build=$ARCH-slackware-linux
+
+make
+
+mkdir -p $PKG/sbin
+cat fsck/jfs_fsck > $PKG/sbin/jfs_fsck
+( cd $PKG/sbin ; ln -sf jfs_fsck fsck.jfs )
+cat mkfs/jfs_mkfs > $PKG/sbin/jfs_mkfs
+( cd $PKG/sbin ; ln -sf jfs_mkfs mkfs.jfs )
+cat logdump/jfs_logdump > $PKG/sbin/jfs_logdump
+cat fscklog/jfs_fscklog > $PKG/sbin/jfs_fscklog
+cat xpeek/jfs_debugfs > $PKG/sbin/jfs_debugfs
+cat tune/jfs_tune > $PKG/sbin/jfs_tune
+chmod 755 $PKG/sbin/*
+
+mkdir -p $PKG/usr/man/man8
+for file in `find . -name "*.8"` ; do
+ cat $file | gzip -9c > $PKG/usr/man/man8/`basename $file`.gz
+done
+( cd $PKG/usr/man/man8
+ ln -sf jfs_fsck.8.gz fsck.jfs.8.gz
+ ln -sf jfs_mkfs.8.gz mkfs.jfs.8.gz
+)
+
+mkdir -p $PKG/usr/doc/jfsutils-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog NEWS README \
+ $PKG/usr/doc/jfsutils-$VERSION
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/jfsutils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/jfsutils/slack-desc b/source/a/jfsutils/slack-desc
new file mode 100644
index 000000000..d9c52dd2b
--- /dev/null
+++ b/source/a/jfsutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+jfsutils: jfsutils (IBM JFS utilities)
+jfsutils:
+jfsutils: Utilities for managing IBM's Journaled File System (JFS) under Linux:
+jfsutils: jfs_debugfs - shell-type JFS file system editor.
+jfsutils: jfs_fsck - check and repair a JFS formatted device.
+jfsutils: jfs_fscklog - extract a JFS fsck service log into a file.
+jfsutils: jfs_logdump - dump a JFS formatted device's journal log.
+jfsutils: jfs_mkfs - create a JFS formatted partition.
+jfsutils: jfs_tune - adjust tunable file system parameters on JFS.
+jfsutils:
+jfsutils:
diff --git a/source/a/kbd/kbd.SlackBuild b/source/a/kbd/kbd.SlackBuild
new file mode 100755
index 000000000..7ac0b142f
--- /dev/null
+++ b/source/a/kbd/kbd.SlackBuild
@@ -0,0 +1,177 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=kbd
+VERSION=1.15
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+NUMJOBS=${NUMJOBS:--j4}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-kbd
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+
+# Add some extra fonts:
+( cd $PKG ; explodepkg $CWD/sources/extraf.tgz )
+
+# Extract source:
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.bz2
+cd $PKGNAM-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . -perm 666 -exec chmod 644 {} \;
+find . -perm 664 -exec chmod 644 {} \;
+find . -perm 600 -exec chmod 644 {} \;
+find . -perm 444 -exec chmod 644 {} \;
+find . -perm 400 -exec chmod 644 {} \;
+find . -perm 440 -exec chmod 644 {} \;
+find . -perm 777 -exec chmod 755 {} \;
+find . -perm 775 -exec chmod 755 {} \;
+find . -perm 511 -exec chmod 755 {} \;
+find . -perm 711 -exec chmod 755 {} \;
+find . -perm 555 -exec chmod 755 {} \;
+
+# Apply patches:
+# These are taken from Fedora's SRPM:
+zcat $CWD/sources/kbd-1.15-po.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-keycodes-man.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-sparc.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-unicode_start.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-resizecon-x86_64.patch | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-quiet_doc.patch | patch -p1 --verbose || exit 1
+
+# This is from Fedora's spec file:
+# 7-bit maps are obsolete; so are non-euro maps
+( cd data/keymaps/i386
+ mv qwerty/fi.map qwerty/fi-old.map
+ cp -fav qwerty/fi-latin9.map qwerty/fi.map
+ cp -fav qwerty/pt-latin9.map qwerty/pt.map
+ cp -fav qwerty/sv-latin1.map qwerty/se-latin1.map
+ mv -fv azerty/fr.map azerty/fr-old.map
+ cp -fav azerty/fr-latin9.map azerty/fr.map
+ cp -fav azerty/fr-latin9.map azerty/fr-latin0.map # legacy alias
+
+ # Rename conflicting keymaps
+ mv -fv dvorak/no.map dvorak/no-dvorak.map
+ mv -fv fgGIod/trf.map fgGIod/trf-fgGIod.map
+ mv -fv olpc/es.map olpc/es-olpc.map
+ mv -fv olpc/pt.map olpc/pt-olpc.map
+ mv -fv qwerty/cz.map qwerty/cz-qwerty.map )
+
+# Apply a euro fix for the nl.map from alienBOB:
+zcat $CWD/sources/nl.euro.diff.gz | patch -p1 || exit 1
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --localedir=/usr/share/locale/ \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --datadir=/usr/share/kbd \
+ --enable-nls || exit 1
+
+# Build:
+make $NUMJOBS || exit 1
+
+# Install into package:
+make install DESTDIR=$PKG || exit 1
+# This is where it's always been in Slackware, so let's move it back:
+( cd $PKG
+ mkdir -vpm755 bin
+ mv -fv usr/bin/loadkeys bin/
+ cd usr/bin ; ln -vsf ../../bin/loadkeys . )
+
+# ro_win.map.gz is useless
+rm -fv $PKG/usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz
+
+# The rhpl keyboard layout table is indexed by kbd layout names, so we need a
+# Korean keyboard
+ln -vfs us.map.gz $PKG/usr/share/kbd/keymaps/i386/qwerty/ko.map.gz
+
+# Install the setup script that will be run from the Slackware installer:
+mkdir -pm755 $PKG/var/log/setup
+install -vpm755 $CWD/setup.setconsolefont $PKG/var/log/setup/
+install -vpm755 $CWD/setconsolefont $PKG/usr/bin/
+
+# Copy docs:
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ ChangeLog COPYING README doc/* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+rm -f $PKG/usr/doc/$PKGNAM-$VERSION/kbd.FAQ.sgml
+
+# Additional keymaps:
+# This is the keymap for Speakup (http://linux-speakup.org) users:
+cat $CWD/sources/speakupmap.map.gz > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakupmap.map.gz
+# Another keymap for Speakup from Thomas Ward, for JFW users.
+tar xvf $CWD/sources/speakup-jfw.tar.gz
+( cd speakup-jfw
+ cat speakup-jfw.map | gzip -9c > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.map.gz
+ cat readme > $PKG/usr/share/kbd/keymaps/i386/qwerty/speakup-jfw.readme )
+
+# Create the default run control script which will set the
+# console font to the default:
+mkdir -pm755 $PKG/etc/rc.d
+cat << EOF > $PKG/etc/rc.d/rc.font.new
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v
+EOF
+chmod 755 $PKG/etc/rc.d/rc.font.new
+
+# Create package post-install script:
+mkdir -p $PKG/install
+cat << EOF > $PKG/install/doinst.sh
+#if [ -r etc/rc.d/rc.font ]; then
+# rm -f etc/rc.d/rc.font.new
+#else
+# mv etc/rc.d/rc.font.new etc/rc.d/rc.font
+#fi
+EOF
+
+# Compress man pages:
+( cd $PKG/usr/man
+ find . -name "*.?" -type f | xargs gzip -9
+)
+
+# Install package description:
+install -vpm644 $CWD/slack-desc $PKG/install/
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+cd $PKG
+makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+#EOF
diff --git a/source/a/kbd/setconsolefont b/source/a/kbd/setconsolefont
new file mode 100644
index 000000000..d4cfb875a
--- /dev/null
+++ b/source/a/kbd/setconsolefont
@@ -0,0 +1,384 @@
+#!/bin/sh
+
+# 06-May-2009
+# Updated by Stuart Winter <mozes@slackware.com>
+# Run 'setfont' in a chroot. This makes setfont work
+# correctly in the installer.
+
+if [ "$TMP" = "" ]; then
+ TMP=/var/log/setup/tmp
+fi
+
+load_font() {
+ if [ ! -z "$T_PX" ]; then
+ CHROOT="chroot $T_PX"
+ fi
+
+ $CHROOT setfont $*
+ if [ ! $? = 0 ]; then
+ if [ -r $T_PX/usr/share/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont $T_PX/usr/share/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ elif [ -r $T_PX/usr/lib/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont $T_PX/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ elif [ -r /var/adm/mount/live/usr/lib/kbd/consolefonts/$1 ]; then
+ $CHROOT setfont /var/adm/mount/live/usr/lib/kbd/consolefonts/$* 1> /dev/null 2> /dev/null
+ else # load default font
+ $CHROOT setfont
+ fi
+ fi
+}
+
+# Determine effective root path:
+if [ -r $TMP/SeTT_PX ]; then
+ T_PX="`cat $TMP/SeTT_PX`"
+elif [ ! "$1" = "" ]; then
+ T_PX=$1
+else
+ T_PX=/
+fi
+
+if [ ! "$COLOR" = "off" -o -r $TMP/SeTcolor -o -r /tmp/SeTcolor ]; then # use color menus
+ if [ ! "$1" = "" ]; then
+ dialog --title "CONSOLE FONT CONFIGURATION" --defaultno --yesno "Would you like to try \
+out some custom screen fonts?" 5 60
+ if [ $? = 1 ]; then
+ exit
+ fi
+ fi
+ REPLY=`mktemp -q $TMP/temp.XXXXXX`
+ FONT="161.cp.gz -16"
+ while [ 0 ]; do
+ dialog --default-item "$FONT" --title "SELECT A SCREEN FONT" --menu "Select one of the following \
+custom fonts. If you decide you like it, you can make it your new default \
+screen font. You'll be able to try as many of these as you like." 21 65 12 \
+"161.cp.gz -16" "" \
+"162.cp.gz -16" "" \
+"163.cp.gz -16" "" \
+"164.cp.gz -16" "" \
+"165.cp.gz -16" "" \
+"737.cp.gz -16" "" \
+"880.cp.gz -16" "" \
+"928.cp.gz -16" "" \
+"972.cp.gz -16" "" \
+"Agafari-12.psfu.gz" "" \
+"Agafari-14.psfu.gz" "" \
+"Agafari-16.psfu.gz" "" \
+"Cyr_a8x14.psfu.gz" "" \
+"Cyr_a8x16.psfu.gz" "" \
+"Cyr_a8x8.psfu.gz" "" \
+"Goha-12.psfu.gz" "" \
+"Goha-14.psfu.gz" "" \
+"Goha-16.psfu.gz" "" \
+"GohaClassic-12.psfu.gz" "" \
+"GohaClassic-14.psfu.gz" "" \
+"GohaClassic-16.psfu.gz" "" \
+"Lat2-Terminus16.psfu.gz" "" \
+"LatArCyrHeb-08.psfu.gz" "" \
+"LatArCyrHeb-14.psfu.gz" "" \
+"LatArCyrHeb-16+.psfu.gz" "" \
+"LatArCyrHeb-16.psfu.gz" "" \
+"LatArCyrHeb-19.psfu.gz" "" \
+"Mik_8x16.gz" "" \
+"UniCyrExt_8x16.psf.gz" "" \
+"UniCyr_8x14.psf.gz" "" \
+"UniCyr_8x16.psf.gz" "" \
+"UniCyr_8x8.psf.gz" "" \
+"alt-8x14.gz" "" \
+"alt-8x16.gz" "" \
+"alt-8x8.gz" "" \
+"altc-8x16.gz" "" \
+"aply16.psf.gz" "" \
+"arm8.fnt.gz" "" \
+"b.fnt.gz" "" \
+"c.fnt.gz" "" \
+"cp1250.psfu.gz" "" \
+"cp850-8x14.psfu.gz" "" \
+"cp850-8x16.psfu.gz" "" \
+"cp850-8x8.psfu.gz" "" \
+"cp857.08.gz" "" \
+"cp857.14.gz" "" \
+"cp857.16.gz" "" \
+"cp865-8x14.psfu.gz" "" \
+"cp865-8x16.psfu.gz" "" \
+"cp865-8x8.psfu.gz" "" \
+"cp866-8x14.psf.gz" "" \
+"cp866-8x16.psf.gz" "" \
+"cp866-8x8.psf.gz" "" \
+"cybercafe.fnt.gz" "" \
+"cyr-sun16.psfu.gz" "" \
+"default8x16.psfu.gz" "" \
+"default8x9.psfu.gz" "" \
+"drdos8x14.psfu.gz" "" \
+"drdos8x16.psfu.gz" "" \
+"drdos8x6.psfu.gz" "" \
+"drdos8x8.psfu.gz" "" \
+"gr737a-8x8.psfu.gz" "" \
+"gr737a-9x14.psfu.gz" "" \
+"gr737a-9x16.psfu.gz" "" \
+"gr737b-8x11.psfu.gz" "" \
+"gr737b-9x16-medieval.psfu.gz" "" \
+"gr737c-8x14.psfu.gz" "" \
+"gr737c-8x16.psfu.gz" "" \
+"gr737c-8x6.psfu.gz" "" \
+"gr737c-8x7.psfu.gz" "" \
+"gr737c-8x8.psfu.gz" "" \
+"gr737d-8x16.psfu.gz" "" \
+"gr928-8x16-thin.psfu.gz" "" \
+"gr928-9x14.psfu.gz" "" \
+"gr928-9x16.psfu.gz" "" \
+"gr928a-8x14.psfu.gz" "" \
+"gr928a-8x16.psfu.gz" "" \
+"gr928b-8x14.psfu.gz" "" \
+"gr928b-8x16.psfu.gz" "" \
+"greek-polytonic.psfu.gz" "" \
+"iso01-12x22.psfu.gz" "" \
+"iso01.08.gz" "" \
+"iso01.14.gz" "" \
+"iso01.16.gz" "" \
+"iso02-12x22.psfu.gz" "" \
+"iso02.08.gz" "" \
+"iso02.14.gz" "" \
+"iso02.16.gz" "" \
+"iso03.08.gz" "" \
+"iso03.14.gz" "" \
+"iso03.16.gz" "" \
+"iso04.08.gz" "" \
+"iso04.14.gz" "" \
+"iso04.16.gz" "" \
+"iso05.08.gz" "" \
+"iso05.14.gz" "" \
+"iso05.16.gz" "" \
+"iso06.08.gz" "" \
+"iso06.14.gz" "" \
+"iso06.16.gz" "" \
+"iso07.14.gz" "" \
+"iso07.16.gz" "" \
+"iso07u-16.psfu.gz" "" \
+"iso08.08.gz" "" \
+"iso08.14.gz" "" \
+"iso08.16.gz" "" \
+"iso09.08.gz" "" \
+"iso09.14.gz" "" \
+"iso09.16.gz" "" \
+"iso10.08.gz" "" \
+"iso10.14.gz" "" \
+"iso10.16.gz" "" \
+"koi8-14.psf.gz" "" \
+"koi8c-8x16.gz" "" \
+"koi8r-8x14.gz" "" \
+"koi8r-8x16.gz" "" \
+"koi8r-8x8.gz" "" \
+"koi8r.8x8.psfu.gz" "" \
+"koi8u_8x14.psfu.gz" "" \
+"koi8u_8x16.psfu.gz" "" \
+"koi8u_8x8.psfu.gz" "" \
+"lat0-08.psfu.gz" "" \
+"lat0-10.psfu.gz" "" \
+"lat0-12.psfu.gz" "" \
+"lat0-14.psfu.gz" "" \
+"lat0-16.psfu.gz" "" \
+"lat1-08.psfu.gz" "" \
+"lat1-10.psfu.gz" "" \
+"lat1-12.psfu.gz" "" \
+"lat1-14.psfu.gz" "" \
+"lat1-16.psfu.gz" "" \
+"lat2-08.psfu.gz" "" \
+"lat2-10.psfu.gz" "" \
+"lat2-12.psfu.gz" "" \
+"lat2-14.psfu.gz" "" \
+"lat2-16.psfu.gz" "" \
+"lat2a-16.psfu.gz" "" \
+"lat4-08.psfu.gz" "" \
+"lat4-10.psfu.gz" "" \
+"lat4-12.psfu.gz" "" \
+"lat4-14.psfu.gz" "" \
+"lat4-16+.psfu.gz" "" \
+"lat4-16.psfu.gz" "" \
+"lat4-19.psfu.gz" "" \
+"lat4a-08.psfu.gz" "" \
+"lat4a-10.psfu.gz" "" \
+"lat4a-12.psfu.gz" "" \
+"lat4a-14.psfu.gz" "" \
+"lat4a-16+.psfu.gz" "" \
+"lat4a-16.psfu.gz" "" \
+"lat4a-19.psfu.gz" "" \
+"lat5-12.psfu.gz" "" \
+"lat5-14.psfu.gz" "" \
+"lat5-16.psfu.gz" "" \
+"lat7-14.psfu.gz" "" \
+"lat7a-14.psfu.gz" "" \
+"lat7a-16.psf.gz" "" \
+"lat9-08.psf.gz" "" \
+"lat9-10.psf.gz" "" \
+"lat9-12.psf.gz" "" \
+"lat9-14.psf.gz" "" \
+"lat9-16.psf.gz" "" \
+"lat9u-08.psfu.gz" "" \
+"lat9u-10.psfu.gz" "" \
+"lat9u-12.psfu.gz" "" \
+"lat9u-14.psfu.gz" "" \
+"lat9u-16.psfu.gz" "" \
+"lat9v-08.psfu.gz" "" \
+"lat9v-10.psfu.gz" "" \
+"lat9v-12.psfu.gz" "" \
+"lat9v-14.psfu.gz" "" \
+"lat9v-16.psfu.gz" "" \
+"lat9w-08.psfu.gz" "" \
+"lat9w-10.psfu.gz" "" \
+"lat9w-12.psfu.gz" "" \
+"lat9w-14.psfu.gz" "" \
+"lat9w-16.psfu.gz" "" \
+"m.fnt.gz" "" \
+"ml.fnt.gz" "" \
+"mod_d.fnt.gz" "" \
+"mod_s.fnt.gz" "" \
+"mr.fnt.gz" "" \
+"mu.fnt.gz" "" \
+"r.fnt.gz" "" \
+"rl.fnt.gz" "" \
+"ro.fnt.gz" "" \
+"ruscii_8x16.psfu.gz" "" \
+"ruscii_8x8.psfu.gz" "" \
+"s.fnt.gz" "" \
+"sc.fnt.gz" "" \
+"scrawl_s.fnt.gz" "" \
+"scrawl_w.fnt.gz" "" \
+"sd.fnt.gz" "" \
+"sun12x22.psfu.gz" "" \
+"t.fnt.gz" "" \
+"t850b.fnt.gz" "" \
+"tcvn8x16.psf.gz" "" \
+"viscii10-8x16.psfu.gz" "" \
+2> $REPLY
+ if [ ! $? = 0 ]; then
+ load_font
+ exit
+ fi
+ FONT=`cat $REPLY`
+ rm -f $REPLY
+ load_font $FONT
+ dialog --title "SET AS DEFAULT FONT" --yesno "Well, what do you think? \
+If you'd like to make this your default font, select YES. You can change \
+the default font any time by typing 'setconsolefont' or by editing \
+/etc/rc.d/rc.font. If you don't \
+like this font, select NO, and you'll be returned to the font selection \
+menu. If you decide you want to stick with the default font, hit ESC or \
+CANCEL once you get to that menu." 11 60
+ if [ $? = 0 ]; then
+ cat << EOF > $T_PX/etc/rc.d/rc.font
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v $FONT
+EOF
+ chmod 755 $T_PX/etc/rc.d/rc.font
+ exit
+ else
+ load_font
+ fi
+ done
+else # no color!
+ echo
+ echo -n "Would you like to try out some custom screen fonts ([y]es, [n]o)? "
+ read YESNO;
+ if [ "$YESNO" = "n" ]; then
+ exit
+ fi
+ while [ 0 ]; do
+ cat << EOF
+
+SELECT A SCREEN FONT. Your choices are:
+161.cp.gz 162.cp.gz 163.cp.gz 164.cp.gz 165.cp.gz 737.cp.gz 880.cp.gz 928.cp.gz
+972.cp.gz Agafari-12.psfu.gz Agafari-14.psfu.gz Agafari-16.psfu.gz
+Cyr_a8x14.psfu.gz Cyr_a8x16.psfu.gz Cyr_a8x8.psfu.gz Goha-12.psfu.gz
+Goha-14.psfu.gz Goha-16.psfu.gz GohaClassic-12.psfu.gz GohaClassic-14.psfu.gz
+GohaClassic-16.psfu.gz Lat2-Terminus16.psfu.gz LatArCyrHeb-08.psfu.gz
+LatArCyrHeb-14.psfu.gz LatArCyrHeb-16+.psfu.gz LatArCyrHeb-16.psfu.gz
+LatArCyrHeb-19.psfu.gz Mik_8x16.gz UniCyrExt_8x16.psf.gz UniCyr_8x14.psf.gz
+UniCyr_8x16.psf.gz UniCyr_8x8.psf.gz alt-8x14.gz alt-8x16.gz alt-8x8.gz
+altc-8x16.gz aply16.psf.gz arm8.fnt.gz b.fnt.gz c.fnt.gz cp1250.psfu.gz
+cp850-8x14.psfu.gz cp850-8x16.psfu.gz cp850-8x8.psfu.gz cp857.08.gz cp857.14.gz
+cp857.16.gz cp865-8x14.psfu.gz cp865-8x16.psfu.gz cp865-8x8.psfu.gz
+cp866-8x14.psf.gz cp866-8x16.psf.gz cp866-8x8.psf.gz cybercafe.fnt.gz
+cyr-sun16.psfu.gz default8x16.psfu.gz default8x9.psfu.gz drdos8x14.psfu.gz
+drdos8x16.psfu.gz drdos8x6.psfu.gz drdos8x8.psfu.gz gr737a-8x8.psfu.gz
+gr737a-9x14.psfu.gz gr737a-9x16.psfu.gz gr737b-8x11.psfu.gz
+gr737b-9x16-medieval.psfu.gz gr737c-8x14.psfu.gz gr737c-8x16.psfu.gz
+gr737c-8x6.psfu.gz gr737c-8x7.psfu.gz gr737c-8x8.psfu.gz gr737d-8x16.psfu.gz
+gr928-8x16-thin.psfu.gz gr928-9x14.psfu.gz gr928-9x16.psfu.gz
+gr928a-8x14.psfu.gz gr928a-8x16.psfu.gz gr928b-8x14.psfu.gz gr928b-8x16.psfu.gz
+greek-polytonic.psfu.gz iso01-12x22.psfu.gz iso01.08.gz iso01.14.gz iso01.16.gz
+iso02-12x22.psfu.gz iso02.08.gz iso02.14.gz iso02.16.gz iso03.08.gz iso03.14.gz
+iso03.16.gz iso04.08.gz iso04.14.gz iso04.16.gz iso05.08.gz iso05.14.gz
+iso05.16.gz iso06.08.gz iso06.14.gz iso06.16.gz iso07.14.gz iso07.16.gz
+iso07u-16.psfu.gz iso08.08.gz iso08.14.gz iso08.16.gz iso09.08.gz iso09.14.gz
+iso09.16.gz iso10.08.gz iso10.14.gz iso10.16.gz koi8-14.psf.gz koi8c-8x16.gz
+koi8r-8x14.gz koi8r-8x16.gz koi8r-8x8.gz koi8r.8x8.psfu.gz koi8u_8x14.psfu.gz
+koi8u_8x16.psfu.gz koi8u_8x8.psfu.gz lat0-08.psfu.gz lat0-10.psfu.gz
+lat0-12.psfu.gz lat0-14.psfu.gz lat0-16.psfu.gz lat1-08.psfu.gz lat1-10.psfu.gz
+lat1-12.psfu.gz lat1-14.psfu.gz lat1-16.psfu.gz lat2-08.psfu.gz lat2-10.psfu.gz
+lat2-12.psfu.gz lat2-14.psfu.gz lat2-16.psfu.gz lat2a-16.psfu.gz lat4-08.psfu.gz
+lat4-10.psfu.gz lat4-12.psfu.gz lat4-14.psfu.gz lat4-16+.psfu.gz lat4-16.psfu.gz
+lat4-19.psfu.gz lat4a-08.psfu.gz lat4a-10.psfu.gz lat4a-12.psfu.gz
+lat4a-14.psfu.gz lat4a-16+.psfu.gz lat4a-16.psfu.gz lat4a-19.psfu.gz
+lat5-12.psfu.gz lat5-14.psfu.gz lat5-16.psfu.gz lat7-14.psfu.gz lat7a-14.psfu.gz
+lat7a-16.psf.gz lat9-08.psf.gz lat9-10.psf.gz lat9-12.psf.gz lat9-14.psf.gz
+lat9-16.psf.gz lat9u-08.psfu.gz lat9u-10.psfu.gz lat9u-12.psfu.gz
+lat9u-14.psfu.gz lat9u-16.psfu.gz lat9v-08.psfu.gz lat9v-10.psfu.gz
+lat9v-12.psfu.gz lat9v-14.psfu.gz lat9v-16.psfu.gz lat9w-08.psfu.gz
+lat9w-10.psfu.gz lat9w-12.psfu.gz lat9w-14.psfu.gz lat9w-16.psfu.gz m.fnt.gz
+ml.fnt.gz mod_d.fnt.gz mod_s.fnt.gz mr.fnt.gz mu.fnt.gz r.fnt.gz rl.fnt.gz
+ro.fnt.gz ruscii_8x16.psfu.gz ruscii_8x8.psfu.gz s.fnt.gz sc.fnt.gz
+scrawl_s.fnt.gz scrawl_w.fnt.gz sd.fnt.gz sun12x22.psfu.gz t.fnt.gz t850b.fnt.gz
+tcvn8x16.psf.gz viscii10-8x16.psfu.gz
+
+EOF
+ echo -n "Which font would you like (or ENTER to quit)? "
+ read FONT;
+ if [ "$FONT" = "" ]; then
+ load_font
+ echo
+ exit
+ fi
+ if [ ! -r $T_PX/usr/share/kbd/consolefonts/$FONT -a ! -r \
+ /var/adm/mount/usr/share/kbd/consolefonts/$FONT ]; then
+ cat << EOF
+
+Sorry, I couldn't find that font. Try again.
+
+EOF
+ fi
+ load_font $FONT
+ cat << EOF
+
+SET AS DEFAULT FONT
+
+Well, what do you think? If you'd like to make this your default font, select
+YES. You can change the default font any time by typing 'setconsolefont' or by
+editing /etc/rc.d/rc.font. If you don't like this font, select NO, and you'll
+be able to select a different one. If you decide you want to stick with the
+default font, hit RETURN once you return to the font selection menu.
+
+EOF
+ echo -n "Would you like to have this font loaded by default ([y]es, [n]o)? "
+ read DEF
+ if [ "$DEF" = "YES" -o "$DEF" = "y" ]; then
+ cat << EOF > $T_PX/etc/rc.d/rc.font
+#!/bin/sh
+#
+# This selects your default screen font from among the ones in
+# /usr/share/kbd/consolefonts.
+#
+setfont -v $FONT
+EOF
+ chmod 755 $T_PX/etc/rc.d/rc.font
+ echo
+ exit
+ else
+ load_font
+ fi
+ echo
+ done
+fi
diff --git a/source/a/kbd/setup.setconsolefont b/source/a/kbd/setup.setconsolefont
new file mode 100644
index 000000000..615cbaab0
--- /dev/null
+++ b/source/a/kbd/setup.setconsolefont
@@ -0,0 +1,10 @@
+#!/bin/sh
+#BLURB="Select a font for the console"
+
+# These platforms are headless so we don't need to configure
+# this package.
+#
+# Silently exit if we find ourselves on one of these platforms
+egrep -q "SheevaPlug" /proc/cpuinfo > /dev/null 2>&1 && exit
+
+sh usr/bin/setconsolefont $*
diff --git a/source/a/kbd/slack-desc b/source/a/kbd/slack-desc
new file mode 100644
index 000000000..d912c1126
--- /dev/null
+++ b/source/a/kbd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+kbd: kbd (keyboard maps and console fonts)
+kbd:
+kbd: Load and save keyboard mappings. Needed if you are not using the US
+kbd: keyboard map. This package also contains utilities to change your
+kbd: console fonts - if you install it you'll get a menu later on that lets
+kbd: you select from many different fonts. If you like one, you can make
+kbd: it your default font. A new default font can be chosen at any time by
+kbd: typing 'setconsolefont'.
+kbd:
+kbd:
+kbd:
diff --git a/source/a/kbd/sources/kbd-1.15-keycodes-man.patch b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch
new file mode 100644
index 000000000..d18a8c8b5
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-keycodes-man.patch
@@ -0,0 +1,52 @@
+diff -up kbd-1.15/man/man1/showkey.1_old kbd-1.15/man/man1/showkey.1
+--- kbd-1.15/man/man1/showkey.1_old 2008-03-13 17:46:23.000000000 +0100
++++ kbd-1.15/man/man1/showkey.1 2008-12-10 12:31:38.000000000 +0100
+@@ -80,6 +80,19 @@ corresponds to what the keyboard hardwar
+ to know the scan codes sent by various keys it is better to boot a
+ 2.4 kernel. Since 2.6.9 there also is the boot option atkbd.softraw=0
+ that tells the 2.6 kernel to return the actual scan codes.
++
++.SH NOTES
++The raw scan codes are available only on AT and PS/2 keyboards,
++and even then they are disabled unless the
++.B atkbd.softraw=0
++kernel parameter is used.
++When the raw scan codes are not available, the kernel uses a fixed built-in
++table to produce scan codes from keycodes. Thus,
++.BR setkeycodes (8)
++can affect the output of
++.B showkey
++in scan code dump mode.
++
+ .SH "SEE ALSO"
+ .BR loadkeys (1),
+ .BR dumpkeys (1),
+diff -up kbd-1.15/man/man8/setkeycodes.8_old kbd-1.15/man/man8/setkeycodes.8
+--- kbd-1.15/man/man8/setkeycodes.8_old 2008-12-10 12:31:56.000000000 +0100
++++ kbd-1.15/man/man8/setkeycodes.8 2008-12-10 12:37:36.000000000 +0100
+@@ -41,6 +41,10 @@ to showkey(1), the command
+ will assign the keycode 112 to it, and then loadkeys(1) can be used
+ to define the function of this key.
+
++USB keyboards have standardized keycodes and
++.B setkeycodes
++doesn't affect them at all.
++
+ .SH "2.6 KERNELS"
+ In 2.6 kernels key codes lie in the range 1-255, instead of 1-127.
+ (It might be best to confine oneself to the range 1-239.)
+@@ -54,6 +58,14 @@ None.
+ .SH BUGS
+ The keycodes of X have nothing to do with those of Linux.
+ Unusual keys can be made visible under Linux, but not under X.
++
++.B setkeycodes
++affects only the "first" input device
++that has modifiable scancode-to-keycode mapping.
++If there is more than one such device,
++.B setkeycodes
++cannot change the mapping of other devices than the "first" one.
++
+ .SH "SEE ALSO"
+ .I "dumpkeys (1), loadkeys (1), showkey (1), getkeycodes (8)"
+
diff --git a/source/a/kbd/sources/kbd-1.15-po.patch b/source/a/kbd/sources/kbd-1.15-po.patch
new file mode 100644
index 000000000..0221f60c9
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-po.patch
@@ -0,0 +1,31 @@
+diff -up kbd-1.15/po/Makefile.in_old kbd-1.15/po/Makefile.in
+--- kbd-1.15/po/Makefile.in_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/po/Makefile.in 2008-12-09 15:35:58.000000000 +0100
+@@ -4,10 +4,10 @@ srcdir = @srcdir@
+
+ prefix = @prefix@
+ datarootdir = @datarootdir@
+-datadir = @datadir@
+-localedir = $(DESTDIR)$(datadir)/locale
+-gnulocaledir = $(DESTDIR)$(datadir)/locale
+-gettextsrcdir = $(DESTDIR)$(datadir)/gettext/po
++datadir = $(DESTDIR)@datadir@
++localedir = $(DESTDIR)@localedir@
++gnulocaledir = $(DESTDIR)@localedir@
++gettextsrcdir = $(datadir)/gettext/po
+
+ FOREIGN = @FOREIGN@
+ HAVE_XGETTEXT = @HAVE_XGETTEXT@
+@@ -36,10 +36,10 @@ INCLUDES = -I.. -I$(INTL)
+ COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+ # Enter here all .po files
+-POFILES = cs.po da.po de.po el.po es.po fr.po gr.po nl.po pl.po \
++POFILES = cs.po da.po de.po el.po es.po fr.po nl.po pl.po \
+ ro.po ru.po sv.po tr.po
+ # the same but with .gmo
+-GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo gr.gmo nl.gmo \
++GMOFILES = cs.gmo da.gmo de.gmo el.gmo es.gmo fr.gmo nl.gmo \
+ pl.gmo ro.gmo ru.gmo sv.gmo tr.gmo
+
+ CATALOGS = $(GMOFILES)
diff --git a/source/a/kbd/sources/kbd-1.15-quiet_doc.patch b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch
new file mode 100644
index 000000000..eca867b85
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-quiet_doc.patch
@@ -0,0 +1,34 @@
+diff -up kbd-1.15/man/man1/loadkeys.1.in_old kbd-1.15/man/man1/loadkeys.1.in
+--- kbd-1.15/man/man1/loadkeys.1.in_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/man/man1/loadkeys.1.in 2009-03-05 13:11:08.000000000 +0100
+@@ -19,6 +19,8 @@ loadkeys \- load keyboard translation ta
+ ] [
+ .I -m --mktable
+ ] [
++.I -q --quiet
++] [
+ .I -s --clearstrings
+ ] [
+ .I -v --verbose
+@@ -148,6 +150,10 @@ command (and does not modify the current
+ .B loadkeys
+ prints its version number and a short usage message to the programs
+ standard error output and exits.
++.TP
++.B \-q \-\-quiet
++.B loadkeys
++suppresses all normal output.
+ .SH WARNING
+ Note that anyone having read access to
+ .B /dev/console
+diff -up kbd-1.15/src/loadkeys.c_old kbd-1.15/src/loadkeys.c
+--- kbd-1.15/src/loadkeys.c_old 2008-10-23 21:03:59.000000000 +0200
++++ kbd-1.15/src/loadkeys.c 2009-03-05 13:09:00.000000000 +0100
+@@ -1966,6 +1966,7 @@ usage(void) {
+ " -d --default load \"%s\"\n"
+ " -h --help display this help text\n"
+ " -m --mktable output a \"defkeymap.c\" to stdout\n"
++" -q --quiet suppress all normal output\n"
+ " -s --clearstrings clear kernel string table\n"
+ " -u --unicode implicit conversion to Unicode\n"
+ " -v --verbose report the changes\n"), PACKAGE_VERSION, DEFMAP);
diff --git a/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch
new file mode 100644
index 000000000..5e8350a86
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-resizecon-x86_64.patch
@@ -0,0 +1,15 @@
+diff -up kbd-1.15/configure_old kbd-1.15/configure
+--- kbd-1.15/configure_old 2009-01-08 15:11:04.000000000 +0100
++++ kbd-1.15/configure 2009-01-08 15:11:45.000000000 +0100
+@@ -7637,8 +7637,9 @@ fi
+
+
+ case $host_cpu in
+- i?86*) RESIZECONS_PROGS=yes ;;
+- *) RESIZECONS_PROGS=no ;;
++ i?86*) RESIZECONS_PROGS=yes ;;
++ x86_64*) RESIZECONS_PROGS=yes ;;
++ *) RESIZECONS_PROGS=no ;;
+ esac
+ if test "$RESIZECONS_PROGS" = "yes"; then
+ RESIZECONS_PROGS_TRUE=
diff --git a/source/a/kbd/sources/kbd-1.15-sparc.patch b/source/a/kbd/sources/kbd-1.15-sparc.patch
new file mode 100644
index 000000000..a858a253a
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-sparc.patch
@@ -0,0 +1,97 @@
+diff -up kbd-1.15/man/man8/kbdrate.8_old kbd-1.15/man/man8/kbdrate.8
+--- kbd-1.15/man/man8/kbdrate.8_old 2008-12-10 14:20:33.000000000 +0100
++++ kbd-1.15/man/man8/kbdrate.8 2008-12-10 14:41:10.000000000 +0100
+@@ -22,7 +22,7 @@ Using
+ without any options will reset the repeat rate to 10.9 characters per second (cps)
+ and the delay to 250 milliseconds (ms) for Intel- and M68K-based systems.
+ These are the IBM defaults. On SPARC-based systems it will reset the repeat rate
+-to 5 cps and the delay to 200 ms.
++to 20 cps and the delay to 200 ms.
+
+ .SH OPTIONS
+ .TP
+@@ -69,3 +69,5 @@ When these ioctls fail an ioport interfa
+ .I /etc/rc.local
+ .br
+ .I /dev/port
++.br
++.I /dev/kbd
+diff -up kbd-1.15/src/kbdrate.c_old kbd-1.15/src/kbdrate.c
+--- kbd-1.15/src/kbdrate.c_old 2008-12-10 14:00:25.000000000 +0100
++++ kbd-1.15/src/kbdrate.c 2008-12-10 14:20:11.000000000 +0100
+@@ -77,7 +77,6 @@ beats rebuilding the kernel!
+
+ #ifdef __sparc__
+ #include <asm/param.h>
+-#include <asm/kbio.h>
+ #endif
+
+ #ifndef KDKBDREP
+@@ -109,11 +108,15 @@ static int valid_delays[] = { 250, 500,
+
+ static int
+ KDKBDREP_ioctl_ok(double rate, int delay, int silent) {
++#if defined(KDKBDREP) && !defined(__sparc__)
+ /*
+ * This ioctl is defined in <linux/kd.h> but is not
+ * implemented anywhere - must be in some m68k patches.
++ * We cannot blindly try unimplemented ioctls on sparc64 -
++ * the 32<->64bit transition layer does not like it.
+ * Since 2.4.9 also on i386.
+- */
++ */
++
+ struct my_kbd_repeat kbdrep_s;
+
+ /* don't change, just test */
+@@ -177,6 +180,9 @@ KDKBDREP_ioctl_ok(double rate, int delay
+ rate, kbdrep_s.delay );
+
+ return 1; /* success! */
++#else /* no KDKBDREP or __sparc__ */
++ return 0;
++#endif /* KDKBDREP */
+ }
+
+ static int
+@@ -221,7 +227,7 @@ sigalrmhandler( int sig ) {
+ int
+ main( int argc, char **argv ) {
+ #ifdef __sparc__
+- double rate = 5.0; /* Default rate */
++ double rate = 20.0; /* Default rate */
+ int delay = 200; /* Default delay */
+ #else
+ double rate = 10.9; /* Default rate */
+@@ -272,7 +278,9 @@ main( int argc, char **argv ) {
+
+
+ /* The ioport way */
++ /* The ioport way - will crash on sparc */
+
++#ifndef __sparc__
+ for (i = 0; i < RATE_COUNT; i++)
+ if (rate * 10 >= valid_rates[i]) {
+ value &= 0x60;
+@@ -335,5 +343,7 @@ main( int argc, char **argv ) {
+ valid_rates[value & 0x1f] / 10.0,
+ valid_delays[ (value & 0x60) >> 5 ] );
+
++#endif
++
+ return 0;
+ }
+diff -up kbd-1.15/src/setleds.c_old kbd-1.15/src/setleds.c
+--- kbd-1.15/src/setleds.c_old 2008-12-10 14:00:02.000000000 +0100
++++ kbd-1.15/src/setleds.c 2008-12-10 14:00:16.000000000 +0100
+@@ -14,10 +14,6 @@
+ #include "nls.h"
+ #include "version.h"
+
+-#ifdef __sparc__
+-#include <asm/kbio.h>
+-#endif
+-
+ static void
+ usage(void)
+ {
diff --git a/source/a/kbd/sources/kbd-1.15-unicode_start.patch b/source/a/kbd/sources/kbd-1.15-unicode_start.patch
new file mode 100644
index 000000000..d3dab3fe3
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15-unicode_start.patch
@@ -0,0 +1,21 @@
+diff -up kbd-1.15/src/unicode_start_old kbd-1.15/src/unicode_start
+--- kbd-1.15/src/unicode_start_old 2009-01-08 13:34:10.000000000 +0100
++++ kbd-1.15/src/unicode_start 2009-01-08 14:02:12.000000000 +0100
+@@ -72,6 +72,9 @@ stty iutf8
+ # have a Unicode map attached, or explicitly specified, e.g.,
+ # by giving `def.uni' as a second argument.
+
++DEFAULT_UNICODE_FONT=LatArCyrHeb-16
++# Also drdos8x16 is a good candidate.
++
+ case "$#" in
+ 2)
+ setfont "$1" -u "$2"
+@@ -80,6 +83,7 @@ case "$#" in
+ setfont "$1"
+ ;;
+ 0)
++ setfont $DEFAULT_UNICODE_FONT
+ ;;
+ *)
+ echo "usage: unicode_start [font [unicode map]]"
diff --git a/source/a/kbd/sources/kbd-1.15.tar.bz2.sign b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign
new file mode 100644
index 000000000..39388b383
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15.tar.bz2.sign
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+Comment: See http://www.kernel.org/signature.html for info
+
+iD8DBQBJj684yGugalF9Dw4RAqQuAJ9fBsk3RWp6BT4UWHjceFn5YuEBygCff3dW
+qo/ACrIhyBx/eiZEpao8N4o=
+=0zxS
+-----END PGP SIGNATURE-----
diff --git a/source/a/kbd/sources/nl.euro.diff b/source/a/kbd/sources/nl.euro.diff
new file mode 100644
index 000000000..655a7e228
--- /dev/null
+++ b/source/a/kbd/sources/nl.euro.diff
@@ -0,0 +1,10 @@
+--- ./data/keymaps/i386/qwerty/nl.map.orig 2004-01-03 09:01:22.000000000 -0800
++++ ./data/keymaps/i386/qwerty/nl.map 2004-05-29 21:16:31.000000000 -0700
+@@ -12,6 +12,7 @@
+ keymaps 0-6,8-9,12
+ alt_is_meta
+ include "qwerty-layout"
++ altgr keycode 18 = euro
+ altgr keycode 19 = paragraph
+ altgr keycode 31 = ssharp
+ altgr keycode 44 = guillemotleft
diff --git a/source/a/kbd/sources/speakupmap.map b/source/a/kbd/sources/speakupmap.map
new file mode 100644
index 000000000..9c73e35df
--- /dev/null
+++ b/source/a/kbd/sources/speakupmap.map
@@ -0,0 +1,308 @@
+# us.map
+# with some additions from quinlan@spectrum.cs.bucknell.edu (Daniel Quinlan)
+# 14 Mar 1994
+keymaps 0-2,4-6,8,9,12,13
+keycode 1 = Escape Escape
+ alt keycode 1 = Meta_Escape
+keycode 2 = one exclam
+ alt keycode 2 = Meta_one
+ alt shift keycode 2 = Meta_exclam
+keycode 3 = two at at
+ control keycode 3 = nul
+ control shift keycode 3 = nul
+ alt keycode 3 = Meta_two
+ alt shift keycode 3 = Meta_at
+keycode 4 = three numbersign
+ control keycode 4 = Escape
+ alt keycode 4 = Meta_three
+ alt shift keycode 4 = Meta_numbersign
+keycode 5 = four dollar dollar
+ control keycode 5 = Control_backslash
+ alt keycode 5 = Meta_four
+ alt shift keycode 5 = Meta_dollar
+keycode 6 = five percent
+ control keycode 6 = Control_bracketright
+ alt keycode 6 = Meta_five
+ alt shift keycode 6 = Meta_percent
+keycode 7 = six asciicircum
+ control keycode 7 = Control_asciicircum
+ alt keycode 7 = Meta_six
+ alt shift keycode 7 = Meta_asciicircum
+keycode 8 = seven ampersand braceleft
+ control keycode 8 = Control_underscore
+ alt keycode 8 = Meta_seven
+keycode 9 = eight asterisk bracketleft
+ control keycode 9 = Delete
+ alt keycode 9 = Meta_eight
+keycode 10 = nine parenleft bracketright
+ alt keycode 10 = Meta_nine
+keycode 11 = zero parenright braceright
+ alt keycode 11 = Meta_zero
+keycode 12 = minus underscore backslash
+ control keycode 12 = Control_underscore
+ control shift keycode 12 = Control_underscore
+ alt keycode 12 = Meta_minus
+keycode 13 = equal plus
+ alt keycode 13 = Meta_equal
+keycode 14 = Delete Delete
+ alt keycode 14 = Meta_Delete
+keycode 15 = Tab Tab
+ alt keycode 15 = Meta_Tab
+keycode 16 = q
+keycode 17 = w
+keycode 18 = e
+keycode 19 = r
+keycode 20 = t
+keycode 21 = y
+keycode 22 = u
+keycode 23 = i
+keycode 24 = o
+keycode 25 = p
+keycode 26 = bracketleft braceleft
+ control keycode 26 = Escape
+ alt keycode 26 = Meta_bracketleft
+ alt shift keycode 26 = Meta_braceleft
+keycode 27 = bracketright braceright asciitilde
+ control keycode 27 = Control_bracketright
+ alt keycode 27 = Meta_bracketright
+ alt shift keycode 27 = Meta_braceright
+keycode 28 = Return
+ alt keycode 28 = 0x080d
+keycode 29 = Control
+keycode 30 = a
+keycode 31 = s
+keycode 32 = d
+keycode 33 = f
+keycode 34 = g
+keycode 35 = h
+keycode 36 = j
+keycode 37 = k
+keycode 38 = l
+keycode 39 = semicolon colon
+ alt keycode 39 = Meta_semicolon
+keycode 40 = apostrophe quotedbl
+ control keycode 40 = Control_g
+ alt keycode 40 = Meta_apostrophe
+keycode 41 = grave asciitilde
+ control keycode 41 = nul
+ alt keycode 41 = Meta_grave
+keycode 42 = Shift
+keycode 43 = backslash bar
+ control keycode 43 = Control_backslash
+ alt keycode 43 = Meta_backslash
+ alt shift keycode 43 = Meta_bar
+keycode 44 = z
+keycode 45 = x
+keycode 46 = c
+keycode 47 = v
+keycode 48 = b
+keycode 49 = n
+keycode 50 = m
+keycode 51 = comma less
+ alt keycode 51 = Meta_comma
+ alt shift keycode 51 = Meta_less
+keycode 52 = period greater
+ alt keycode 52 = Meta_period
+ alt shift keycode 52 = Meta_greater
+keycode 53 = slash question
+ control keycode 53 = Delete
+ alt keycode 53 = Meta_slash
+keycode 54 = Shift
+keycode 55 = 0x0d26
+#keycode 55 = KP_Multiply
+ altgr keycode 55 = 0x0406
+keycode 56 = Alt
+keycode 57 = space space
+ control keycode 57 = nul
+ alt keycode 57 = Meta_space
+keycode 58 = Caps_Lock
+keycode 59 = F1 F11 Console_13
+ control keycode 59 = F1
+ alt keycode 59 = Console_1
+ control alt keycode 59 = Console_1
+keycode 60 = F2 F12 Console_14
+ control keycode 60 = F2
+ alt keycode 60 = Console_2
+ control alt keycode 60 = Console_2
+keycode 61 = F3 F13 Console_15
+ control keycode 61 = F3
+ alt keycode 61 = Console_3
+ control alt keycode 61 = Console_3
+keycode 62 = F4 F14 Console_16
+ control keycode 62 = F4
+ alt keycode 62 = Console_4
+ control alt keycode 62 = Console_4
+keycode 63 = F5 F15 Console_17
+ control keycode 63 = F5
+ alt keycode 63 = Console_5
+ control alt keycode 63 = Console_5
+keycode 64 = F6 F16 Console_18
+ control keycode 64 = F6
+ alt keycode 64 = Console_6
+ control alt keycode 64 = Console_6
+keycode 65 = F7 F17 Console_19
+ control keycode 65 = F7
+ alt keycode 65 = Console_7
+ control alt keycode 65 = Console_7
+keycode 66 = F8 F18 Console_20
+ control keycode 66 = F8
+ alt keycode 66 = Console_8
+ control alt keycode 66 = Console_8
+keycode 67 = F9 F19 Console_21
+ control keycode 67 = F9
+ alt keycode 67 = Console_9
+ control alt keycode 67 = Console_9
+keycode 68 = F10 F20 Console_22
+ control keycode 68 = F10
+ alt keycode 68 = Console_10
+ control alt keycode 68 = Console_10
+keycode 69 = Num_Lock
+keycode 70 = Scroll_Lock Show_Memory Show_Registers
+ control keycode 70 = Show_State
+ alt keycode 70 = Scroll_Lock
+keycode 71 = 0x0d0b
+ altgr keycode 71 = 0x0d0f
+#keycode 71 = KP_7
+ alt keycode 71 = Ascii_7
+keycode 72 = 0x0d0a
+ altgr keycode 72 = 0x0d20
+#keycode 72 = KP_8
+ alt keycode 72 = Ascii_8
+keycode 73 = 0x0d0c
+ altgr keycode 73 = 0x0d0d
+#keycode 73 = KP_9
+ alt keycode 73 = Ascii_9
+keycode 74 = 0x0d1e
+ altgr keycode 74 = 0x0d24
+keycode 75 = 0x0d08
+ altgr keycode 75 = 0x0d22
+#keycode 75 = KP_4
+ alt keycode 75 = Ascii_4
+keycode 76 = 0x0d07
+#keycode 76 = KP_5
+ altgr keycode 76 = 0x0d12
+ alt keycode 76 = Ascii_5
+keycode 77 = 0x0d09
+ altgr keycode 77 = 0x0d23
+#keycode 77 = KP_6
+ alt keycode 77 = Ascii_6
+#keycode 78 = KP_Add
+keycode 78 = 0x0d14
+ altgr keycode 78 = 0x0d21
+keycode 79 = 0x0d05
+#keycode 79 = KP_1
+ altgr keycode 79 = 0x0d10
+ alt keycode 79 = Ascii_1
+keycode 80 = 0x0d04
+#keycode 80 = KP_2
+ altgr keycode 80 = 0x0d11
+ alt keycode 80 = Ascii_2
+keycode 81 = 0x0d06
+ altgr keycode 81 = 0x0d0e
+#keycode 81 = KP_3
+ alt keycode 81 = Ascii_3
+#keycode 82 = 0x0d14
+keycode 82 = AltGr
+#keycode 82 = KP_0
+ alt keycode 82 = Ascii_0
+#keycode 83 = KP_Period
+keycode 83 = 0x0d1b
+ altgr keycode 83 = 0x0d1d
+ altgr control keycode 83 = Boot
+ control alt keycode 83 = Boot
+keycode 84 = Last_Console
+keycode 85 =
+keycode 86 = less greater bar
+ alt keycode 86 = Meta_less
+keycode 87 = F11 F11 Console_23
+ control keycode 87 = F11
+ alt keycode 87 = Console_11
+ control alt keycode 87 = Console_11
+keycode 88 = F12 F12 Console_24
+ control keycode 88 = F12
+ alt keycode 88 = Console_12
+ control alt keycode 88 = Console_12
+keycode 89 =
+keycode 90 =
+keycode 91 =
+keycode 92 =
+keycode 93 =
+keycode 94 =
+keycode 95 =
+keycode 96 = 0x0d03
+ altgr keycode 96 = 0x0d1c
+#keycode 96 = KP_Enter
+keycode 97 = Control
+keycode 98 = 0x0d27
+#keycode 98 = KP_Divide
+ altgr keycode 98 = 0x0d28
+#keycode 99 = Control_backslash
+keycode 99 = 0x0d25
+ control keycode 99 = Control_backslash
+ alt keycode 99 = Control_backslash
+keycode 100 = Alt
+keycode 101 = Break
+keycode 102 = Find
+keycode 103 = Up
+keycode 104 = Prior
+ shift keycode 104 = Scroll_Backward
+keycode 105 = Left
+ alt keycode 105 = Decr_Console
+keycode 106 = Right
+ alt keycode 106 = Incr_Console
+keycode 107 = Select
+keycode 108 = Down
+keycode 109 = Next
+ shift keycode 109 = Scroll_Forward
+keycode 110 = Insert
+keycode 111 = Remove
+ altgr control keycode 111 = Boot
+ control alt keycode 111 = Boot
+keycode 112 =
+keycode 113 =
+keycode 114 =
+keycode 115 =
+keycode 116 =
+keycode 117 =
+keycode 118 =
+keycode 119 =
+keycode 120 =
+keycode 121 =
+keycode 122 =
+keycode 123 =
+keycode 124 =
+keycode 125 =
+keycode 126 =
+keycode 127 =
+string F1 = "\033[[A"
+string F2 = "\033[[B"
+string F3 = "\033[[C"
+string F4 = "\033[[D"
+string F5 = "\033[[E"
+string F6 = "\033[17~"
+string F7 = "\033[18~"
+string F8 = "\033[19~"
+string F9 = "\033[20~"
+string F10 = "\033[21~"
+string F11 = "\033[23~"
+string F12 = "\033[24~"
+string F13 = "\033[25~"
+string F14 = "\033[26~"
+string F15 = "\033[28~"
+string F16 = "\033[29~"
+string F17 = "\033[31~"
+string F18 = "\033[32~"
+string F19 = "\033[33~"
+string F20 = "\033[34~"
+string Find = "\033[1~"
+string Insert = "\033[2~"
+string Remove = "\033[3~"
+string Select = "\033[4~"
+string Prior = "\033[5~"
+string Next = "\033[6~"
+string F21 = ""
+string F22 = ""
+string F23 = ""
+string F24 = ""
+string F25 = ""
+string F26 = ""
diff --git a/source/a/less/less.SlackBuild b/source/a/less/less.SlackBuild
new file mode 100755
index 000000000..643359571
--- /dev/null
+++ b/source/a/less/less.SlackBuild
@@ -0,0 +1,102 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-less
+
+VERSION=${VERSION:-418}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "armel" ]; then
+ SLKCFLAGS="-O2 -march=armv4t"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf less-$VERSION
+tar xvf $CWD/less-$VERSION.tar.bz2 || exit 1
+cd less-$VERSION
+zcat $CWD/less.sysconfdir.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/man
+
+make $NUMJOBS || make || exit 1
+
+mkdir -p $PKG/usr/bin
+cat less > $PKG/usr/bin/less
+cat lesskey > $PKG/usr/bin/lesskey
+cat lessecho > $PKG/usr/bin/lessecho
+zcat $CWD/lesspipe.sh.gz > $PKG/usr/bin/lesspipe.sh
+chmod 755 $PKG/usr/bin/*
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/less-$VERSION
+cp -a \
+ COPYING* LICENSE README NEWS \
+ $PKG/usr/doc/less-$VERSION
+
+mkdir -p $PKG/usr/man/man1
+for page in less.nro lesskey.nro ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page .nro`.1.gz
+done
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/less-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/less/less.sysconfdir.diff b/source/a/less/less.sysconfdir.diff
new file mode 100644
index 000000000..25c5bb584
--- /dev/null
+++ b/source/a/less/less.sysconfdir.diff
@@ -0,0 +1,15 @@
+--- ./less.nro.orig Mon May 27 17:14:24 2002
++++ ./less.nro Mon May 27 17:14:46 2002
+@@ -947,10 +947,10 @@
+ Otherwise,
+ .I less
+ looks in a standard place for the system-wide lesskey file:
+-On Unix systems, the system-wide lesskey file is /usr/local/etc/sysless.
++On Unix systems, the system-wide lesskey file is /etc/sysless.
+ (However, if
+ .I less
+-was built with a different sysconf directory than /usr/local/etc,
++was built with a different sysconf directory than /etc,
+ that directory is where the sysless file is found.)
+ On MS-DOS and Windows systems, the system-wide lesskey file is c:\\_sysless.
+ On OS/2 systems, the system-wide lesskey file is c:\\sysless.ini.
diff --git a/source/a/less/lesspipe.sh b/source/a/less/lesspipe.sh
new file mode 100644
index 000000000..2d660522d
--- /dev/null
+++ b/source/a/less/lesspipe.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+#
+# Copyright 1997, 1998, 1999, 2000 Patrick Volkerding, Moorhead, MN, USA
+# Copyright 2001, 2002 Slackware Linux, Inc, Concord, CA, USA
+# Copyright 2006, 2009 Patrick Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# This is a preprocessor for 'less'. It is used when this environment
+# variable is set: LESSOPEN="|lesspipe.sh %s"
+
+lesspipe() {
+ case "$1" in
+ *.tar) tar tvvf "$1" 2>/dev/null ;;
+ *.tgz | *.tar.gz | *.tar.Z | *.tar.z | *.tar.bz2 | *.tbz ) tar tvvf "$1" 2>/dev/null ;;
+ *.tlz | *.tar.lzma ) lzma -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;;
+ *.txz | *.tar.xz ) xz -dc "$1" 2> /dev/null | tar tvvf - 2> /dev/null ;;
+ *.zip) unzip -l "$1" 2>/dev/null ;;
+ *.rpm) rpm -qpvl "$1" 2>/dev/null ;;
+ *.rar) # check if rar is installed first
+ if which rar 1> /dev/null ; then
+ `which rar` t "$1"
+ fi ;;
+ *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) # *roff src?
+ if file -L "$1" | grep roff 1> /dev/null ; then
+ nroff -S -mandoc "$1"
+ fi ;;
+ *.1.gz|*.2.gz|*.3.gz|*.4.gz|*.5.gz|*.6.gz|*.7.gz|*.8.gz|*.9.gz|*.n.gz|*.man.gz) # compressed *roff src?
+ if gzip -dc "$1" | file - | grep roff 1> /dev/null ; then
+ gzip -dc "$1" | nroff -S -mandoc -
+ fi ;;
+ *.1.bz2|*.2.bz2|*.3.bz2|*.4.bz2|*.5.bz2|*.6.bz2|*.7.bz2|*.8.bz2|*.9.bz2|*.n.bz2|*.man.bz2) # compressed *roff src?
+ if bzip2 -dc "$1" | file - | grep roff 1> /dev/null ; then
+ bzip2 -dc "$1" | nroff -S -mandoc -
+ fi ;;
+ *.gz) gzip -dc "$1" 2>/dev/null ;;
+ *.bz2) bzip2 -dc "$1" 2>/dev/null ;;
+ *.lzma) lzma -dc "$1" 2>/dev/null ;;
+ *.xz) xz -dc "$1" 2>/dev/null ;;
+# *) FILE=`file -L "$1"` ; # Check to see if binary, if so -- view with 'strings'
+# FILE1=`echo $FILE | cut -d ' ' -f 2`
+# FILE2=`echo $FILE | cut -d ' ' -f 3`
+# if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
+# -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
+# strings "$1"
+# fi ;;
+ esac
+}
+
+lesspipe "$1"
diff --git a/source/a/less/slack-desc b/source/a/less/slack-desc
new file mode 100644
index 000000000..bbf440f9a
--- /dev/null
+++ b/source/a/less/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+less: less (file pager)
+less:
+less: Less is a paginator similar to more (1), but which allows backward
+less: movement in the file as well as forward movement. Also, less does not
+less: have to read the entire input file before starting, so with large
+less: input files it starts up faster than text editors like vi (1).
+less:
+less: Less was written by Mark Nudelman.
+less:
+less:
+less:
diff --git a/source/a/lha/lha.SlackBuild b/source/a/lha/lha.SlackBuild
new file mode 100755
index 000000000..fb333362f
--- /dev/null
+++ b/source/a/lha/lha.SlackBuild
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=114i
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-lha
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf lha-114i
+tar xzvf $CWD/lha-114i.tar.gz
+cd lha-114i
+zcat $CWD/lha_1.14i-10.1.diff.gz | patch -p1 --verbose || exit 1
+patch -p0 < debian/patch.paul
+patch -p0 < debian/patch.multibyte
+patch -p0 < debian/patch.CAN-2004-0234_0235
+patch -p0 < debian/patch.header-overflow
+patch -p1 < debian/patch.redhat-sec2
+patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338
+chown -R root:root .
+make || exit 1
+mkdir -p $PKG/usr/bin
+cat src/lha > $PKG/usr/bin/lha
+chmod 755 $PKG/usr/bin/lha
+mkdir -p $PKG/usr/man/man1
+cat debian/lha.1 | gzip -9 > $PKG/usr/man/man1/lha.1.gz
+mkdir -p $PKG/usr/man/jp/man1
+cat man/lha.man | gzip -9 > $PKG/usr/man/jp/man1/lha.1.gz
+mkdir -p $PKG/usr/doc/lha-114i
+cp -a \
+ change-${VERSION}.txt \
+ $PKG/usr/doc/lha-${VERSION}
+mkdir -p $PKG/usr/doc/lha-${VERSION}/jp
+cp -a *.euc \
+ $PKG/usr/doc/lha-${VERSION}/jp
+chmod 644 $PKG/usr/man/jp/man1/*
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/lha-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/lha/lha_1.14i-10.1.diff b/source/a/lha/lha_1.14i-10.1.diff
new file mode 100644
index 000000000..cc32c4a67
--- /dev/null
+++ b/source/a/lha/lha_1.14i-10.1.diff
@@ -0,0 +1,5901 @@
+--- lha-1.14i.orig/src/lha_macro.h
++++ lha-1.14i/src/lha_macro.h
+@@ -7,7 +7,7 @@
+ /* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */
+ /* ------------------------------------------------------------------------ */
+
+-#define LHA_VERSION "lha for unix version 1.14g"
++#define LHA_VERSION "lha for unix version 1.14i"
+
+ /* Most of System V, define SYSTIME_HAS_NO_TM */
+ #ifdef SYSTIME_HAS_NO_TM
+--- lha-1.14i.orig/man/lha.n
++++ lha-1.14i/man/lha.n
+@@ -9,7 +9,7 @@
+ ]
+ .I archive_file
+ [
+-.I flie
++.I file
+ \&.\|.\|. ]
+ .br
+ .B lha
+--- lha-1.14i.orig/man/lha.man
++++ lha-1.14i/man/lha.man
+@@ -1,324 +1,224 @@
++LHA(N) LHa for UNIX Users Manual LHA(N)
+
+
+-LHA(N) Unix Programmer's Manual LHA(N)
+
++NNAAMMEE ̾̾
++ LHa - ⰵ̥
+
+-NNNAAAMMMEEE ̾̾̾
+- LHa - ⰵ̥
++SSYYNNOOPPSSIISS 
++ llhhaa kkeeyy [ mmooddiiffiieerrss ] _a_r_c_h_i_v_e___f_i_l_e [ _f_i_l_e ... ]
++ llhhaa _a_r_c_h_i_v_e___f_i_l_e
+
+-SSSYYYNNNOOOPPPSSSIIISSS 
+- lllhhhaaa kkkeeeyyy [ mmmooodddiiifffiiieeerrrsss ] _a_r_c_h_i_v_e__f_i_l_e [ _f_l_i_e ... ]
+- lllhhhaaa _a_r_c_h_i_v_e__f_i_l_e
++DDEESSCCRRIIPPTTIIOONN 
++ LLHHaa ϸΨι⤤̵ǽĥե륢ФǤ
++ kkeeyy ˵ǽʸꤷfile ɲáСɽʤɤ
++ ʤޤ archive_file Τߤꤷˤϡǽʸ l
++ ꤷΤƱưԤʤޤ
++ ǽʸϰʲ̤Ǥ
+
+-DDDEEESSSCCCRRRIIIPPPTTTIIIOOONNN 
+- LLLHHHaaa ϸΨι⤤̵ǽĥե륢ФǤ
+- kkkeeeyyy ˵ǽʸꤷfile ɲáС
+- ɽʤɤԤʤޤ archive_file Τߤꤷ
+- ˤϡǽʸ l ꤷΤƱưԤʤ
+-
+- ǽʸϰʲ̤Ǥ
++ aa ɲáfile archive_file ɲäޤ file ǥ쥯ȥ
++ СΥǥ쥯ȥ˴ޤޤե򤹤٤ɲäޤ
+
+- aaa ɲáfile archive_file ɲäޤfile
+- 쥯ȥǤСΥǥ쥯ȥ˴ޤޤե
+- 򤹤٤ɲäޤ
++ uu file archive_file ˳ǼƤʤ⤷ϳǼ
++ ƤΤŤСfile archive_file ɲäޤ
+
+- uuu file archive_file ˳ǼƤʤ
+- ⤷ϳǼƤΤŤСfile
+- archive_file ɲäޤ
++ ll ޤ vv
++ ɽarchive_file ˳ǼƤ file ξɽ
++ ޤfile λ꤬ʤ archive_file ƤΥեξ
++ ɽ ޤ v ꤹ l ܤɽ
++
+
+- lll ޤ vvv
+- ɽarchive_file ˳ǼƤ file ξ
+- ɽޤfile λ꤬ʤ
+- archive_file ƤΥեξɽޤ
+- v ꤹ l ܤɽޤ
++ xx ޤ ee
++ Сarchive_file file Фޤfile λ꤬ʤ
++ archive_file ƤΥեФޤФ٤ե
++ 뤬Ǥ¸ߤƤˤϡŤͽ񤭤Ƥ䤤
++ Ԥʤޤ
+
+- xxx ޤ eee
+- Сarchive_file file Фޤfile
+- ꤬ʤ archive_file ƤΥե
+- ФޤФ٤ե뤬Ǥ¸ߤƤ
+- ˤϡŤͽ񤭤Ƥ䤤碌Ԥʤޤ
+-
++ pp ɽarchive_file file ƤФɸϤؤ
++ Ϥޤfile λ꤬ʤСƤƤϤޤ
+
+- ppp ɽarchive_file file ƤФ
+- ɸϤؤȽϤޤfile λ꤬ʤС
+- ƤƤϤޤ
++ dd archive_file file ޤ
+
+- ddd archive_file file ޤ
++ mm ưfile archive_file ɲä塢file ޤ
++ ϡkey a modifiers d ꤷƱưԤ
++ ޤ
+
+- mmm ưfile archive_file ɲä塢file
+- ޤϡkey a modifiers d
+- ꤷƱưԤʤޤ
++ cc archive_file 򿷤˺file ɲäޤ
+
++ ǽѹʸ modifiers ꤹ뤳Ȥˤä key ưξܺ٤ѹ
++ Ǥޤmodifiers ϡʲ椫ʣꤹ뤳ȤǤ
++
+
+- January 14,1997 1
+
+
++ qq<<nnuumm>> ɽŪʥåɽޤ <num> ͤ
++ äơINDICATOR ɽˡѹǤޤ
+
+-LHA(N) Unix Programmer's Manual LHA(N)
++ qq00 oooo........ ɽɽԤʤ
+
++ qq11 ե̾̾ɽɽΤ߹Ԥʤ
+
+- ccc archive_file 򿷤˺file ɲ
+- ޤ
++ qq22 ɽɽʤ
+
+- ǽѹʸ modifiers ꤹ뤳Ȥˤä key ư
+- ܺ٤ѹ뤳ȤǤޤmodifiers ϡʲ椫ʣ
+- ꤹ뤳ȤǤޤ
++ ʤͤϤʤäݤˤϡq2 Ʊˤʤޤ
+
++ vv ɽξĹɽåĹˤޤ
+
++ nn ¹ԤʤºݤιФưԤʤޤ󡣼¹Ƥγ
++ ǧΤѰդƤޤ
+
+- qqq<<<nnnuuummm>>> ɽŪʥåɽޤ
+- <num> ͤˤäơINDICATOR ɽˡѹǤ
+- ޤ
++ ff Ūʼ¹ԡեлˡ¸ߤեκǧ
++ Ԥʤ鷺Ū˺Ԥʤޤ
+
+- qqq000 oooooo............ ɽɽɽԤʤ
++ tt ƥȥ⡼ɤˤǼ,С֥եؤΥե
++ Ǽˤϡ UNIX MS-DOS ؤβԥѴԤʤ
++ եлˤϵդˡMS-DOS UNIX ؤβԥѴ
++ Ԥʤޤ
+
+- qqq111 ե̾̾̾ɽɽɽΤ߹Ԥʤ
++ oo{{nnuumm}} LHarc ߴ֤ޤϰ̥르ꥺꤹ 롣
++ ǽʸ a, u, m ȶ˻ꤷлˤ̵뤵ޤ
+
+- qqq222 ɽɽɽʤ
++ oo LLHHaarrcc ߴ֤Ԥ
+
+- ʤͤϤʤäݤˤϡq2 Ʊˤʤ
+-
++ ֤ޤ̥르ꥺ
++ -lh1-Ѥޤ
+
+- vvv ɽξĹɽåĹˤޤ
++ oo55 ̥르ꥺ --llhh55-- Ѥ롣
+
+- nnn ¹ԤʤºݤιФưԤʤޤ
+- ¹ƤγǧΤѰդƤޤ
++ oo66 ̥르ꥺ --llhh66-- Ѥ롣
+
+- fff Ūʼ¹ԡեлˡ¸ߤե
+- κǧԤʤ鷺Ū˺Ԥʤޤ
++ LHAμˤäƤϡ-lh6-줿֤ФǤ
++ Τǡ֤ۤݤˤդƤ
++ MSDOSǤǤǤ -lh6- ϹԤޤ󡣤ޤMSDOS
++ LHA version 2.5x ʹߤΥСǤ -lh6- ФΤߤǤ
++
+
+- ttt ƥȥ⡼ɤˤǼ,С֥ե
+- ؤΥեγǼˤϡUNIX MS-DOS ؤβ
+- ԥѴԤʤޤեлˤϵդ
+- MS-DOS UNIX ؤβԥѴԤʤޤ
+-
++ ww==<<//ddiirr>>
++ ǼлΥѥǥ쥯ȥ ꡣ ե
++ ϡ/tmp Ǥ/tmp 礭ʾΥեǼݤˤɬ
++ פǤ
+
+- ooo{{{nnnuuummm}}} LHarc ߴ֤ޤϰ̥르ꥺ
+- ꤹ롣ǽʸ a, u, m ȶ˻ꤷл
+- ˤ̵뤵ޤ
++ dd եǼΥեκǽʸ a, ⤷ u ȶ
++ ֥եؤΥեγǼθ˥ե
++ ޤ u ղä硢֥եƤ
++ ե 뤬Ǽ줺˺뤳ȤˤʤΤդƲ
++
+
+- ooo LLLHHHaaarrrccc ߴ֤Ԥ
++ ii лΥǥ쥯ȥ̵̾л˥ǥ쥯ȥ̵̾
++ ޤ
+
+- ŤΥ֤ޤ̥르
+- ꥺ-lh1-Ѥޤ
++ zz ̳Ǽ֤ؤΥեγǼ˰̤Ԥʤޤ
++ 󡣤Ǥ˰̤ԤʤäƤư̸Ψ˾ʤʤɤ˻
++ ޤлˤ̵뤵ޤ
+
++ gg [generic]֤κ UNIX Ѥղþʤ
++ ֥եޤлˤ̵뤵ޤ
+
++ 00//11//22 إå٥ꡣ֤ɽηꤷ
++ ե ȤǤ 1 Ǥ0 LHarc ѰդƤŤǤ
++ 2 η줵褦ǤϥեγǼΤ
++ ͭǤեлˤϼưŪ˷ȽǤޤ
+
+- January 14,1997 2
++ _a_r_c_h_i_v_e___f_i_l_e ˤϥ֥եꤷޤ
+
++ _a_r_c_h_i_v_e___f_i_l_e _- Ƚ񤯤Ȥˤäơ֥եɸϤ
++ 뤳ȤǽǤ ttaarr(1) Τ褦ˡ֤κˤɸ
++ Ϥˡ֤ΥեлˤɸϤˤʤޤ
+
++ л _a_r_c_h_i_v_e___f_i_l_e ¸ߤʤˤϥեå ..llzzhh ե̾
++ θղäФߤޤ
++ ä˵Ϥޤ󤬡Ѿ奵եåȤ ..llzzhh ѤΤ˾
++ ȻפޤܰʳǤ ..llhhaa ѤƤ륱뤽Ǥ
++ ǡŬĴƲ:-)
++ եå ccoomm ⤷ ..eexxee ξˤϡMS-DOS ǤǺ줿 _S_F_X(
++ Ÿǽդΰ̥ե) ɤåбޤ
++ եå ..xx ξˤϡ SHARP X68000 OS, Human68k Ǥ
++ 줿 SFX ɤåбޤ
++ SFX Υ֥եФɲäԤä ϡ
++ եå ..llzzhh ѹSFX ξޤ
+
+-LHA(N) Unix Programmer's Manual LHA(N)
+
++FFIILLEESS ե
++ *.lzh - LHa/LHarc ֥ե
++ *.bak - Хååץե
++ /tmp/lh* - ƥݥե
++ *.com *.exe - MS-DOS SFX ե
++ *.x - Human68k SFX ե
+
+- ooo555 ̥르ꥺ ---lllhhh555- Ѥ롣
+
+- ooo666 ̥르ꥺ ---lllhhh666- Ѥ롣
++SSEEEE AALLSSOO ϢϢ
++ ttaarr(1), aarr(1), ccoommpprreessss(1)
+
+- LHAμˤäƤϡ-lh6-줿֤
+- ФǤʤ줬Τǡ֤ۤ
+- ˤդƤMSDOSǤǤǤ -lh6-
+- ϹԤޤ󡣤ޤMSDOS LHA version 2.5x
+- ʹߤΥСǤ -lh6- ФΤߤǤޤ
++DDIISSTTRRIIBBUUTTIIOONN ۤˤĤ
++ ʲξǡۡžܡѤĤޤ
+
+- www===<<<///dddiiirrr>>>
+- ǼлΥѥǥ쥯ȥꡣǥե
+- ȤǤϡ/tmp Ǥ/tmp 礭ʾΥե
+- ǼݤˤɬפǤ
++ 1. ɽʤȡ
+
+- ddd եǼΥեκǽʸ a, ⤷
+- u ȶѤ֥եؤΥե
+- Ǽθ˥եޤu ղä硢
+- ֥եƤ˥ե뤬
+- Ǽ줺˺뤳ȤˤʤΤդƲ
+-
++ 2. ƤˤĤƤϡ
+
+- iii лΥǥ쥯ȥ̵̾л˥ǥ쥯
+- ̵̾ˤޤ
++ a. ۤκݤ¸ߤ(ʤɡɥ
++ ȡץޡؤμʤ)ۤ줿Τɬ
++ ¸ 뤳ȡѤƤʤС
++ ȤѰդ뤳ȡ
+
+- zzz 󰵽̳Ǽ֤ؤΥեγǼ˰̤
+- Ԥʤޤ󡣤Ǥ˰̤ԤʤäƤư̸Ψ˾
+- ʤʤɤ˻Ѥޤлˤ̵뤵ޤ
+-
++ b. LHa ФղòͤդƺۤˤϤ
++ Ǥޤ褦Ϥ뤳ȡޤκݤˤ
++ òͤդƤ뤳ȤɥȤѰ
++ 뤳ȡ
+
+- ggg [generic]֤κUNIX Ѥղþ
+- ʤ֥եޤлˤ̵
+- ޤ
++ c. ХʥΤߤۤϵʤ(ղòͤΤΤޤ)
+
+- 000///111///222 إå٥ꡣ֤ɽη
+- ޤǥեȤǤ 1 Ǥ0 LHarc Ѱդ
+- ƤŤǤ 2 η줵
+- 褦ǤϥեγǼΤͭǤե
+- лˤϼưŪ˷ȽǤޤ
++ 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ)
+
+- _a_r_c_h_i_v_e__f_i_l_e ˤϥ֥եꤷޤ
++ . ʤͥåȤǤդϼͳǤ뤬ͥåȤ˥Ǥ
++ ʤʻ浪ӡ CD-ROM ʤɤˤդϡ
++ E-Mail 򤪴ꤤޤ˽ʤݤˤϡ
++ ɬ E-Mail 򤪴ꤤޤ
+
+- _a_r_c_h_i_v_e__f_i_l_e - Ƚ񤯤Ȥˤäơ֥ե
+- ɸϤˤ뤳ȤǽǤtttaaarrr(1) Τ褦ˡ
+- ֤κˤɸϤˡ֤Υե
++ 4. Υץ¸ߤѤȤˤä»ݾڤ
++ ʤ
+
++ 5. ԤϡΥץäƤ⡢̳
++ ʤ
+
+- January 14,1997 3
++ 6. Υץΰޤ¾ΥץȤ߹
++ Ƥ⤫ޤʤξ硢Υץ LHa ǤϤʤ LHa
++ ̾äƤϤʤ
+
++ 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤȤˤǧ
++ 롣
+
++ a. ΥץᥤȤ뾦Ѥ϶ػߤ롣
+
+-LHA(N) Unix Programmer's Manual LHA(N)
++ b. Ѥ꤬ΥץλѼԤȤŬڤȽǤ
++ ˤۤʤ
+
++ c. 󥹥ȡμʤȤƻѤ硢Υץ
++ ˶ʤξ硢ѼԤȤ
++ ޤΤȤ»ϡѼԤǤ餦
+
+- лˤɸϤˤʤޤ
++ d. ѤղòͤȤƹԤΥץѤ 硢
++ ѼԤϡΥݡȤԤ
+
+- л_a_r_c_h_i_v_e__f_i_l_e ¸ߤʤˤϥեå...lllzzzhhh
+- ե̾θղäФߤޤ
+- ä˵Ϥޤ󤬡Ѿ奵եåȤ...lllzzzhhh
+- Τ˾ޤȻפޤܰʳǤ ...lllhhhaaa ѤƤ
+- 륱뤽ǤΤǡŬĴƲ:-)
+- եåcccooommm ⤷...eeexxxeee ξˤϡMS-DOS ǤǺ
+- 줿_S_F_X(Ÿǽդΰ̥ե) ɤ
+- åбޤ
+- եå...xxx ξˤϡ SHARP X68000 OS,
+- Human68k ǤǺ줿 SFX ɤåб
+- ޤ
+- SFX Υ֥եФɲäԤä
+- ˤϡեå...lllzzzhhh ѹSFX ξޤ
+-
+
+-FFFIIILLLEEESSS ե
+- *.lzh - LHa/LHarc ֥ե
+- *.bak - Хååץե
+- /tmp/lh* - ƥݥե
+- *.com *.exe - MS-DOS SFX ե
+- *.x - Human68k SFX ե
++Ǹ((FFrroomm YY..TTaaggaawwaa))
++ LZHUF ˡδäȤʤä LZARI ˡȯɽƤä¼ɧᡢ
++ NIFTY-Serve ˾Ҳ𤷡ޤLArc κԤǤ⤢뻰ɧᡢޤ
++ LZHUF ˡڤӡMS-DOS LHarc ȺٻᡢLHarc
++ UNIX γȯ˶Ϥã褯åζϤ򤷤Ƥ줿к
++ (MIX ID:k.ishi)ޤʥݡȤ򤯤줿ߤʤ󡢤
++ ѤƤäϺ (MIX ID:kmori)˴դޤ
+
+-SSSEEEEEE AAALLLSSSOOO ϢϢϢ
+- tttaaarrr(1), aaarrr(1), cccooommmppprrreeessssss(1)
+
+-DDDIIISSSTTTRRRIIIBBBUUUTTTIIIOOONNN ۤˤĤ
++Ǹ((FFrroomm MMaassaarruu OOkkii))
++ 嵭Ϥ󡢲ä LHarc UNIX Y.Tagawa ᡢ
++ OSK ˰ܿȺ LHx Υ르ꥺȤ߹ H.S ᡢ JUNET
++ LHa for UNIX MailingList ˤƶϤƤäߤʤ˴פޤ
+
+- ʲξǡۡžܡѤĤޤ
++Ǹ((FFrroomm NNoobbuuttaakkaa WWaattaazzaakkii))
++ Υץκˤäˤޤ LHa ž夲Ƥ
++ ä ˴פޤ
+
+- 1. ɽʤȡ
+
+- 2. ƤˤĤƤϡ
+-
+- a. ۤκݤ¸ߤ(ʤɡɥ
+- ȡץޡؤμʤ)ۤ
+- Τɬ¸ߤ뤳ȡѤƤʤ
+- ɥȤѰդ뤳ȡ
+-
+- b. LHa Фղòͤդƺۤ
+- ϤǤޤ褦Ϥ뤳ȡޤ
+- κݤˤղòͤդƤ뤳Ȥ
+- ȤѰդ뤳ȡ
+-
+-
+-
+- January 14,1997 4
+-
+-
+-
+-LHA(N) Unix Programmer's Manual LHA(N)
+-
+-
+- c. ХʥΤߤۤϵʤ(ղòͤΤΤ
+- ޤ)
+-
+- 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ)
+-
+- . ʤͥåȤǤդϼͳǤ뤬ͥåȤ˥
+- Ǥʤʻ浪ӡCD-ROM ʤɤˤ
+- ϡˤ E-Mail 򤪴ꤤޤ
+- ˽ʤݤˤϡɬ E-Mail 򤪴ꤤޤ
+-
+- 4. Υץ¸ߤѤȤˤä»
+- ݾڤʤ
+-
+- 5. ԤϡΥץäƤ⡢
+- ̳ʤ
+-
+- 6. Υץΰޤ¾Υץ
+- Ȥ߹ѤƤ⤫ޤʤξ硢Υץ
+- LHa ǤϤʤLHa ̾äƤϤʤ
+-
+- 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤ
+- Ȥˤǧ롣
+-
+- a. ΥץᥤȤ뾦Ѥ϶ػߤ롣
+-
+- b. Ѥ꤬ΥץλѼԤȤŬڤ
+- ȽǤˤۤʤ
+-
+- c. 󥹥ȡμʤȤƻѤ硢Υץ
+- ȤȤ˶ʤξ硢Ѽ
+- ȤԤޤΤȤ»ϡѼԤ
+- Ǥ餦
+-
+- d. ѤղòͤȤƹԤΥץѤ
+- 硢ѼԤϡΥݡȤԤ
+-
+-Ǹ(((FFFrrrooommm YYY...TTTaaagggaaawwwaaa)))
+- LZHUF ˡδäȤʤä LZARI ˡȯɽƤä¼
+- ɧᡢ NIFTY-Serve ˾Ҳ𤷡ޤLArc κԤǤ⤢
+- 뻰ɧᡢޤװ LZHUF ˡڤӡMS-DOS
+- LHarc ȺٻᡢLHarc UNIX γȯ˶Ϥ
+- ã褯åζϤ򤷤Ƥ줿к(MIX
+- ID:k.ishi)ޤʥݡȤ򤯤줿ߤʤ󡢤
+- ѤƤäϺ (MIX ID:kmori)˴դޤ
+-
+-
+-
+- January 14,1997 5
+-
+-
+-
+-LHA(N) Unix Programmer's Manual LHA(N)
+-
+-
+-Ǹ(((FFFrrrooommm MMMaaasssaaarrruuu OOOkkkiii)))
+- 嵭Ϥ󡢲ä LHarc UNIX Y.Tagawa
+- ᡢ OSK ˰ܿȺ LHx Υ르ꥺȤ߹
+- H.S ᡢJUNET LHa for UNIX MailingList ˤƶϤ
+- Ƥäߤʤ˴פޤ
+-
+-Ǹ(((FFFrrrooommm NNNooobbbuuutttaaakkkaaa WWWaaatttaaazzzaaakkkiii)))
+- Υץκˤäˤޤ LHa
+- ž夲Ƥä ˴פޤ
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+- January 14,1997 6
+
++ January 14,1997 LHA(N)
+--- lha-1.14i.orig/Makefile
++++ lha-1.14i/Makefile
+@@ -20,7 +20,7 @@
+
+ #MACHINE = -DSYSTIME_HAS_NO_TM -DFTIME -DEUC
+ #MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DHAVE_TM_ZONE -DSYSV_SYSTEM_DIR
+-MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME
++MACHINE = -DSYSTIME_HAS_NO_TM -DEUC -DSYSV_SYSTEM_DIR -DMKTIME -DMULTIBYTE_CHAR
+
+ #OPTIMIZE = -O2 -fstrength-reduce -fomit-frame-pointer
+ OPTIMIZE = -O2 -DSUPPORT_LH7 -DMKSTEMP
+--- lha-1.14i.orig/debian/patch.multibyte
++++ lha-1.14i/debian/patch.multibyte
+@@ -0,0 +1,145 @@
++diff -Nuar src.old/header.c src/header.c
++--- src.old/header.c Fri Oct 6 02:36:03 2000
+++++ src/header.c Fri Jul 19 16:46:41 2002
++@@ -82,6 +82,7 @@
++ register int i;
++
++ #ifdef MULTIBYTE_CHAR
+++ if (multibyte_mode == TRUE) {
++ for (i = 0; i < len; i++) {
++ if (MULTIBYTE_FIRST_P(name[i]) &&
++ MULTIBYTE_SECOND_P(name[i + 1]))
++@@ -91,6 +92,14 @@
++ else if (!noconvertcase && isupper(name[i]))
++ name[i] = tolower(name[i]);
++ }
+++ } else {
+++ for (i = 0; i < len; i++) {
+++ if (name[i] == '\\')
+++ name[i] = '/';
+++ else if (!noconvertcase && isupper(name[i]))
+++ name[i] = tolower(name[i]);
+++ }
+++ }
++ #else
++ for (i = 0; i < len; i++) {
++ if (name[i] == '\\')
++@@ -111,6 +120,7 @@
++ boolean lower_case_used = FALSE;
++
++ #ifdef MULTIBYTE_CHAR
+++ if (multibyte_mode == TRUE) {
++ for (i = 0; i < len; i++) {
++ if (MULTIBYTE_FIRST_P(name[i]) &&
++ MULTIBYTE_SECOND_P(name[i + 1]))
++@@ -128,6 +138,19 @@
++ name[i] = '/';
++ else if (!noconvertcase && !lower_case_used && isupper(name[i]))
++ name[i] = tolower(name[i]);
+++ }
+++ } else {
+++ for (i = 0; i < len; i++)
+++ if (islower(name[i])) {
+++ lower_case_used = TRUE;
+++ break;
+++ }
+++ for (i = 0; i < len; i++) {
+++ if (name[i] == '\\')
+++ name[i] = '/';
+++ else if (!noconvertcase && !lower_case_used && isupper(name[i]))
+++ name[i] = tolower(name[i]);
+++ }
++ }
++ #else
++ for (i = 0; i < len; i++)
++diff -Nuar src.old/lha.h src/lha.h
++--- src.old/lha.h Fri Jul 19 17:22:13 2002
+++++ src/lha.h Fri Jul 19 17:18:05 2002
++@@ -101,6 +101,9 @@
++ #ifdef EUC
++ EXTERN boolean euc_mode;
++ #endif
+++#ifdef MULTIBYTE_CHAR
+++EXTERN boolean multibyte_mode;
+++#endif
++
++ /* list command flags */
++ EXTERN boolean verbose_listing;
++diff -Nuar src.old/lharc.c src/lharc.c
++--- src.old/lharc.c Fri Oct 6 02:33:34 2000
+++++ src/lharc.c Fri Jul 19 16:56:03 2002
++@@ -101,6 +101,10 @@
++ euc_mode = FALSE;
++ #endif
++
+++#ifdef MULTIBYTE_CHAR
+++ multibyte_mode = FALSE;
+++#endif
+++
++ /* view command flags */
++ verbose_listing = FALSE;
++
++@@ -177,6 +181,11 @@
++ e TEXT code convert from/to EUC\n\
++ ");
++ #endif
+++#ifdef MULTIBYTE_CHAR
+++ fprintf(stderr, "\
+++ y filename multibyte convert\n\
+++");
+++#endif
++ exit(1);
++ }
++
++@@ -308,6 +317,11 @@
++ case 'e':
++ text_mode = TRUE;
++ euc_mode = TRUE;
+++ break;
+++#endif
+++#ifdef MULTIBYTE_CHAR
+++ case 'y':
+++ multibyte_mode = TRUE;
++ break;
++ #endif
++ case 'n':
++diff -Nuar src.old/util.c src/util.c
++--- src.old/util.c Wed Oct 4 23:57:38 2000
+++++ src/util.c Fri Jul 19 16:49:23 2002
++@@ -113,18 +113,29 @@
++ #endif
++ for (p = path; (c = *p) != 0; p++) {
++ #ifdef MULTIBYTE_CHAR
++- if (kflg) {
++- kflg = 0;
+++ if (multibyte_mode == TRUE) {
+++ if (kflg) {
+++ kflg = 0;
+++ } else if (MULTIBYTE_FIRST_P(c)) {
+++ kflg = 1;
+++ } else {
+++ if (c == '\\' || c == DELIM || c == DELIM2) {
+++ *p = delim;
+++ path = p + 1;
+++ }
+++ }
+++ } else {
+++ if (c == '\\' || c == DELIM || c == DELIM2) {
+++ *p = delim;
+++ path = p + 1;
+++ }
++ }
++- else if (MULTIBYTE_FIRST_P(c)) {
++- kflg = 1;
++- }
++- else
++-#endif
+++#else
++ if (c == '\\' || c == DELIM || c == DELIM2) {
++ *p = delim;
++ path = p + 1;
++ }
+++#endif
++ }
++ return path;
++ }
+--- lha-1.14i.orig/debian/README.Debian
++++ lha-1.14i/debian/README.Debian
+@@ -0,0 +1,6 @@
++lha for DEBIAN
++----------------------
++
++LHa for UNIX
++
++Atsushi KAMOSHIDA <kamop@post1.com>, Sun, 13 Apr 1997 17:52:59 +0900
+--- lha-1.14i.orig/debian/org/lha.h
++++ lha-1.14i/debian/org/lha.h
+@@ -0,0 +1,322 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX Archiver Driver */
++/* */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14i Modified and bug fixed 2000.10.06 t.okamoto */
++/* ------------------------------------------------------------------------ */
++/*
++ Included...
++ lharc.h interface.h slidehuf.h
++*/
++#include <stdio.h>
++#include <errno.h>
++#include <ctype.h>
++#include <sys/types.h>
++#include <sys/file.h>
++#include <sys/stat.h>
++
++#include <signal.h>
++
++#include "lha_macro.h"
++
++struct encode_option {
++#if defined(__STDC__) || defined(AIX)
++ void (*output) ();
++ void (*encode_start) ();
++ void (*encode_end) ();
++#else
++ int (*output) ();
++ int (*encode_start) ();
++ int (*encode_end) ();
++#endif
++};
++
++struct decode_option {
++ unsigned short (*decode_c) ();
++ unsigned short (*decode_p) ();
++#if defined(__STDC__) || defined(AIX)
++ void (*decode_start) ();
++#else
++ int (*decode_start) ();
++#endif
++};
++
++/* ------------------------------------------------------------------------ */
++/* LHa File Type Definition */
++/* ------------------------------------------------------------------------ */
++struct string_pool {
++ int used;
++ int size;
++ int n;
++ char *buffer;
++};
++
++typedef struct LzHeader {
++ unsigned char header_size;
++ char method[METHOD_TYPE_STRAGE];
++ long packed_size;
++ long original_size;
++ long last_modified_stamp;
++ unsigned char attribute;
++ unsigned char header_level;
++ char name[256];
++ unsigned short crc;
++ boolean has_crc;
++ unsigned char extend_type;
++ unsigned char minor_version;
++
++ /* extend_type == EXTEND_UNIX and convert from other type. */
++ time_t unix_last_modified_stamp;
++ unsigned short unix_mode;
++ unsigned short unix_uid;
++ unsigned short unix_gid;
++} LzHeader;
++
++struct interfacing {
++ FILE *infile;
++ FILE *outfile;
++ unsigned long original;
++ unsigned long packed;
++ int dicbit;
++ int method;
++};
++
++
++/* ------------------------------------------------------------------------ */
++/* Option switch variable */
++/* ------------------------------------------------------------------------ */
++/* command line options (common options) */
++EXTERN boolean quiet;
++EXTERN boolean text_mode;
++EXTERN boolean verbose;
++EXTERN boolean noexec; /* debugging option */
++EXTERN boolean force;
++EXTERN boolean prof;
++EXTERN boolean delete_after_append;
++EXTERN int compress_method;
++EXTERN int header_level;
++/* EXTERN int quiet_mode; */ /* 1996.8.13 t.okamoto */
++#ifdef EUC
++EXTERN boolean euc_mode;
++#endif
++
++/* list command flags */
++EXTERN boolean verbose_listing;
++
++/* extract/print command flags */
++EXTERN boolean output_to_stdout;
++
++/* add/update/delete command flags */
++EXTERN boolean new_archive;
++EXTERN boolean update_if_newer;
++EXTERN boolean generic_format;
++
++EXTERN boolean remove_temporary_at_error;
++EXTERN boolean recover_archive_when_interrupt;
++EXTERN boolean remove_extracting_file_when_interrupt;
++EXTERN boolean get_filename_from_stdin;
++EXTERN boolean ignore_directory;
++EXTERN boolean verify_mode;
++
++/* Indicator flag */
++EXTERN int quiet_mode;
++
++/* ------------------------------------------------------------------------ */
++/* Globale Variable */
++/* ------------------------------------------------------------------------ */
++EXTERN char **cmd_filev;
++EXTERN int cmd_filec;
++
++EXTERN char *archive_name;
++EXTERN char expanded_archive_name[FILENAME_LENGTH];
++EXTERN char temporary_name[FILENAME_LENGTH];
++EXTERN char backup_archive_name[FILENAME_LENGTH];
++
++EXTERN char *reading_filename, *writting_filename;
++
++/* 1996.8.13 t.okamoto */
++#if 0
++EXTERN boolean remove_temporary_at_error;
++EXTERN boolean recover_archive_when_interrupt;
++EXTERN boolean remove_extracting_file_when_interrupt;
++#endif
++
++EXTERN int archive_file_mode;
++EXTERN int archive_file_gid;
++
++EXTERN struct interfacing interface;
++EXTERN node *next;
++/* EXTERN unsigned short crc; */ /* 1996.8.13 t.okamoto */
++
++EXTERN int noconvertcase; /* 2000.10.6 */
++
++/* slide.c */
++EXTERN int unpackable;
++EXTERN unsigned long origsize, compsize;
++EXTERN unsigned short dicbit;
++EXTERN unsigned short maxmatch;
++EXTERN unsigned long count;
++EXTERN unsigned long loc; /* short -> long .. Changed N.Watazaki */
++EXTERN unsigned char *text;
++EXTERN int prev_char;
++
++/* huf.c */
++#ifndef LHA_MAIN_SRC /* t.okamoto 96/2/20 */
++EXTERN unsigned short left[], right[];
++EXTERN unsigned char c_len[], pt_len[];
++EXTERN unsigned short c_freq[], c_table[], c_code[];
++EXTERN unsigned short p_freq[], pt_table[], pt_code[], t_freq[];
++#endif
++
++/* append.c */
++#ifdef NEED_INCREMENTAL_INDICATOR
++EXTERN long indicator_count;
++EXTERN long indicator_threshold;
++#endif
++
++/* crcio.c */
++EXTERN FILE *infile, *outfile;
++EXTERN unsigned short crc, bitbuf;
++EXTERN int dispflg;
++EXTERN long reading_size;
++
++/* from dhuf.c */
++EXTERN unsigned int n_max;
++
++/* lhadd.c */
++EXTERN FILE *temporary_fp;
++
++/* ------------------------------------------------------------------------ */
++/* Functions */
++/* ------------------------------------------------------------------------ */
++/* from lharc.c */
++extern int patmatch();
++
++extern void interrupt();
++
++extern void message();
++extern void warning();
++extern void error();
++extern void fatal_error();
++
++extern boolean need_file();
++extern int inquire();
++extern FILE *xfopen();
++
++extern boolean find_files();
++extern void free_files();
++
++extern void init_sp();
++extern void add_sp();
++extern void finish_sp();
++extern void free_sp();
++extern void cleaning_files();
++
++extern void build_temporary_name();
++extern void build_backup_file_name();
++extern void build_standard_archive_name();
++
++extern FILE *open_old_archive();
++extern void init_header();
++extern boolean get_header();
++extern boolean archive_is_msdos_sfx1();
++extern boolean skip_msdos_sfx1_code();
++extern void write_header();
++extern void write_archive_tail();
++extern void copy_old_one();
++extern unsigned char *convdelim();
++extern long copyfile();
++
++extern void cmd_list(), cmd_extract(), cmd_add(), cmd_delete();
++
++extern boolean ignore_directory;
++extern boolean compress_method;
++extern boolean verify_mode;
++
++extern char *extract_directory;
++
++/* from slide.c */
++
++extern int encode_alloc();
++extern void encode();
++extern void decode();
++
++/* from append.c */
++extern void start_indicator();
++extern void finish_indicator();
++extern void finish_indicator2();
++
++/* slide.c */
++extern void output_st1();
++extern unsigned char *alloc_buf();
++extern void encode_start_st1();
++extern void encode_end_st1();
++extern unsigned short decode_c_st1();
++extern unsigned short decode_p_st1();
++extern void decode_start_st1();
++
++/* from shuf.c */
++extern void decode_start_st0();
++extern void encode_p_st0( /* unsigned short j */ );
++extern void encode_start_fix();
++extern void decode_start_fix();
++extern unsigned short decode_c_st0();
++extern unsigned short decode_p_st0();
++
++/* from dhuf.c */
++extern void start_c_dyn();
++extern void decode_start_dyn();
++extern unsigned short decode_c_dyn();
++extern unsigned short decode_p_dyn();
++extern void output_dyn( /* int code, unsigned int pos */ );
++extern void encode_end_dyn();
++
++extern int decode_lzhuf();
++
++/* from larc.c */
++
++extern unsigned short decode_c_lzs();
++extern unsigned short decode_p_lzs();
++extern unsigned short decode_c_lz5();
++extern unsigned short decode_p_lz5();
++extern void decode_start_lzs();
++extern void decode_start_lz5();
++
++extern void make_table( /* int nchar, uchar bitlen[], int tablebits,
++ ushort table[] */ );
++
++/* from maketree.c */
++/*
++ * void make_code(short n, uchar len[], ushort code[]); short make_tree(short
++ * nparm, ushort freqparm[], uchar lenparm[], ushort codeparam[]);
++ */
++extern void make_code( /* int n, uchar len[], ushort code[] */ );
++extern short make_tree( /* int nparm, ushort freqparm[], uchar lenparm[],
++ ushort codeparam[] */ );
++
++/* from crcio.c */
++extern void make_crctable();
++extern unsigned short calccrc( /* uchar *p, uint n */ );
++extern void fillbuf( /* uchar n */ );
++extern unsigned short getbits( /* uchar n */ );
++extern void putcode( /* uchar n, ushort x */ );
++extern void putbits( /* uchar n, ushort x */ );
++extern int fread_crc( /* uchar *p, int n, FILE *f */ );
++extern void fwrite_crc( /* uchar *p, int n, FILE *f */ );
++extern void init_getbits();
++extern void init_putbits();
++extern void make_crctable();
++extern unsigned short calccrc();
++
++/* from lhadd.c */
++extern int encode_lzhuf();
++extern int encode_stored_crc();
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* End: */
++
++
+--- lha-1.14i.orig/debian/org/header.c
++++ lha-1.14i/debian/org/header.c
+@@ -0,0 +1,875 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX */
++/* header.c -- header manipulate functions */
++/* */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Original Y.Tagawa */
++/* modified 1991.12.16 M.Oki */
++/* Ver. 1.10 Symbolic Link added 1993.10.01 N.Watazaki */
++/* Ver. 1.13b Symbolic Link Bug Fix 1994.08.22 N.Watazaki */
++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14i bug fixed 2000.10.06 t.okamoto */
++/* ------------------------------------------------------------------------ */
++#include "lha.h"
++
++/* ------------------------------------------------------------------------ */
++static char *get_ptr;
++/* ------------------------------------------------------------------------ */
++int
++calc_sum(p, len)
++ register char *p;
++ register int len;
++{
++ register int sum;
++
++ for (sum = 0; len; len--)
++ sum += *p++;
++
++ return sum & 0xff;
++}
++
++/* ------------------------------------------------------------------------ */
++static unsigned short
++get_word()
++{
++ int b0, b1;
++
++ b0 = get_byte();
++ b1 = get_byte();
++ return (b1 << 8) + b0;
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++put_word(v)
++ unsigned int v;
++{
++ put_byte(v);
++ put_byte(v >> 8);
++}
++
++/* ------------------------------------------------------------------------ */
++static long
++get_longword()
++{
++ long b0, b1, b2, b3;
++
++ b0 = get_byte();
++ b1 = get_byte();
++ b2 = get_byte();
++ b3 = get_byte();
++ return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0;
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++put_longword(v)
++ long v;
++{
++ put_byte(v);
++ put_byte(v >> 8);
++ put_byte(v >> 16);
++ put_byte(v >> 24);
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++msdos_to_unix_filename(name, len)
++ register char *name;
++ register int len;
++{
++ register int i;
++
++#ifdef MULTIBYTE_CHAR
++ for (i = 0; i < len; i++) {
++ if (MULTIBYTE_FIRST_P(name[i]) &&
++ MULTIBYTE_SECOND_P(name[i + 1]))
++ i++;
++ else if (name[i] == '\\')
++ name[i] = '/';
++ else if (!noconvertcase && isupper(name[i]))
++ name[i] = tolower(name[i]);
++ }
++#else
++ for (i = 0; i < len; i++) {
++ if (name[i] == '\\')
++ name[i] = '/';
++ else if (!noconvertcase && isupper(name[i]))
++ name[i] = tolower(name[i]);
++ }
++#endif
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++generic_to_unix_filename(name, len)
++ register char *name;
++ register int len;
++{
++ register int i;
++ boolean lower_case_used = FALSE;
++
++#ifdef MULTIBYTE_CHAR
++ for (i = 0; i < len; i++) {
++ if (MULTIBYTE_FIRST_P(name[i]) &&
++ MULTIBYTE_SECOND_P(name[i + 1]))
++ i++;
++ else if (islower(name[i])) {
++ lower_case_used = TRUE;
++ break;
++ }
++ }
++ for (i = 0; i < len; i++) {
++ if (MULTIBYTE_FIRST_P(name[i]) &&
++ MULTIBYTE_SECOND_P(name[i + 1]))
++ i++;
++ else if (name[i] == '\\')
++ name[i] = '/';
++ else if (!noconvertcase && !lower_case_used && isupper(name[i]))
++ name[i] = tolower(name[i]);
++ }
++#else
++ for (i = 0; i < len; i++)
++ if (islower(name[i])) {
++ lower_case_used = TRUE;
++ break;
++ }
++ for (i = 0; i < len; i++) {
++ if (name[i] == '\\')
++ name[i] = '/';
++ else if (!noconvertcase && !lower_case_used && isupper(name[i]))
++ name[i] = tolower(name[i]);
++ }
++#endif
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++macos_to_unix_filename(name, len)
++ register char *name;
++ register int len;
++{
++ register int i;
++
++ for (i = 0; i < len; i++) {
++ if (name[i] == ':')
++ name[i] = '/';
++ else if (name[i] == '/')
++ name[i] = ':';
++ }
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++unix_to_generic_filename(name, len)
++ register char *name;
++ register int len;
++{
++ register int i;
++
++ for (i = 0; i < len; i++) {
++ if (name[i] == '/')
++ name[i] = '\\';
++ else if (islower(name[i]))
++ name[i] = toupper(name[i]);
++ }
++}
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* Generic stamp format: */
++/* */
++/* 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 */
++/* |<-------- year ------->|<- month ->|<-- day -->| */
++/* */
++/* 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 */
++/* |<--- hour --->|<---- minute --->|<- second*2 ->| */
++/* */
++/* ------------------------------------------------------------------------ */
++
++/*
++ * NOTE : If you don't have `gettimeofday(2)', or your gettimeofday(2)
++ * returns bogus timezone information, try FTIME, MKTIME, TIMELOCAL or TZSET.
++ */
++
++/* choose one */
++#if defined(MKTIME)
++#ifdef TIMELOCAL
++#undef TIMELOCAL
++#endif
++#endif /* defined(MKTIME) */
++
++#if defined(MKTIME) || defined(TIMELOCAL)
++#ifdef TZSET
++#undef TZSET
++#endif
++#endif /* defined(MKTIME) || defined(TIMELOCAL) */
++
++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET)
++#ifdef FTIME
++#undef FTIME
++#endif
++#endif
++
++#if defined(MKTIME) || defined(TIMELOCAL) || defined(TZSET) || defined(FTIME)
++#ifdef GETTIMEOFDAY
++#undef GETTIMEOFDAY
++#endif
++#else
++#ifndef GETTIMEOFDAY
++#define GETTIMEOFDAY /* use gettimeofday() */
++#endif
++#endif
++
++#ifdef FTIME
++#include <sys/timeb.h>
++#endif
++
++/*
++ * You may define as : #define TIMEZONE_HOOK \ extern long
++ * timezone ; \ extern void tzset();
++ */
++#ifdef TIMEZONE_HOOK
++TIMEZONE_HOOK
++/* Which do you like better, `TIMEZONE_HOOK' or `TIMEZONE_HOOK;' ? */
++#endif
++
++#if defined(TZSET) && defined(_MINIX)
++extern long timezone; /* not defined in time.h */
++#endif
++
++/* ------------------------------------------------------------------------ */
++#if defined(FTIME) || defined(GETTIMEOFDAY) || defined(TZSET)
++static long
++gettz()
++#ifdef TZSET
++{
++ tzset();
++ return timezone;
++}
++#endif
++
++/* ------------------------------------------------------------------------ */
++#if !defined(TZSET) && defined(FTIME)
++{
++ struct timeb buf;
++
++ ftime(&buf);
++ return buf.timezone * 60L;
++}
++#endif
++
++/* ------------------------------------------------------------------------ */
++#if !defined(TZSET) && !defined(FTIME) /* maybe defined(GETTIMEOFDAY) */
++{
++#ifdef HAVE_TM_ZONE
++ time_t tt;
++
++ time(&tt);
++ return -localtime(&tt)->tm_gmtoff;
++#else /* HAVE_TM_ZONE */
++ struct timeval tp;
++ struct timezone tzp;
++ gettimeofday(&tp, &tzp);/* specific to 4.3BSD */
++ /*
++ * return (tzp.tz_minuteswest * 60L + (tzp.tz_dsttime != 0 ? 60L *
++ * 60L : 0));
++ */
++ return (tzp.tz_minuteswest * 60L);
++#endif /* HAVE_TM_ZONE */
++}
++#endif
++#endif /* defined(FTIME) || defined(GETTIMEOFDAY) ||
++ * defined(TZSET) */
++
++/* ------------------------------------------------------------------------ */
++#ifdef NOT_USED
++static struct tm *
++msdos_to_unix_stamp_tm(a)
++ long a;
++{
++ static struct tm t;
++
++ t.tm_sec = (a & 0x1f) * 2;
++ t.tm_min = (a >> 5) & 0x3f;
++ t.tm_hour = (a >> 11) & 0x1f;
++ t.tm_mday = (a >> 16) & 0x1f;
++ t.tm_mon = ((a >> 16 + 5) & 0x0f) - 1;
++ t.tm_year = ((a >> 16 + 9) & 0x7f) + 80;
++ return &t;
++}
++#endif
++
++/* ------------------------------------------------------------------------ */
++static time_t
++generic_to_unix_stamp(t)
++ long t;
++#if defined(MKTIME) || defined(TIMELOCAL)
++{
++ struct tm dostm;
++
++ /*
++ * special case: if MSDOS format date and time were zero, then we
++ * set time to be zero here too.
++ */
++ if (t == 0)
++ return (time_t) 0;
++
++ dostm.tm_sec = (t & 0x1f) * 2;
++ dostm.tm_min = t >> 5 & 0x3f;
++ dostm.tm_hour = t >> 11 & 0x1f;
++ dostm.tm_mday = t >> 16 & 0x1f;
++ dostm.tm_mon = (t >> 16 + 5 & 0x0f) - 1; /* 0..11 */
++ dostm.tm_year = (t >> 16 + 9 & 0x7f) + 80;
++#if 0
++ dostm.tm_isdst = 0; /* correct? */
++#endif
++ dostm.tm_isdst = -1; /* correct? */
++#ifdef MKTIME
++ return (time_t) mktime(&dostm);
++#else /* maybe defined(TIMELOCAL) */
++ return (time_t) timelocal(&dostm);
++#endif
++}
++
++#else /* defined(MKTIME) || defined(TIMELOCAL) */
++{
++ int year, month, day, hour, min, sec;
++ long longtime;
++ static unsigned int dsboy[12] = {0, 31, 59, 90, 120, 151,
++ 181, 212, 243, 273, 304, 334};
++ unsigned int days;
++
++ /*
++ * special case: if MSDOS format date and time were zero, then we
++ * set time to be zero here too.
++ */
++ if (t == 0)
++ return (time_t) 0;
++
++ year = ((int) (t >> 16 + 9) & 0x7f) + 1980;
++ month = (int) (t >> 16 + 5) & 0x0f; /* 1..12 means Jan..Dec */
++ day = (int) (t >> 16) & 0x1f; /* 1..31 means 1st,...31st */
++
++ hour = ((int) t >> 11) & 0x1f;
++ min = ((int) t >> 5) & 0x3f;
++ sec = ((int) t & 0x1f) * 2;
++
++ /* Calculate days since 1970.01.01 */
++ days = (365 * (year - 1970) + /* days due to whole years */
++ (year - 1970 + 1) / 4 + /* days due to leap years */
++ dsboy[month - 1] + /* days since beginning of this year */
++ day - 1); /* days since beginning of month */
++
++ if ((year % 4 == 0) &&
++ (year % 100 != 0 || year % 400 == 0) && /* 1999.5.24 t.oka */
++ (month >= 3)) /* if this is a leap year and month */
++ days++; /* is March or later, add a day */
++
++ /* Knowing the days, we can find seconds */
++ longtime = (((days * 24) + hour) * 60 + min) * 60 + sec;
++ longtime += gettz(); /* adjust for timezone */
++
++ /* LONGTIME is now the time in seconds, since 1970/01/01 00:00:00. */
++ return (time_t) longtime;
++}
++#endif /* defined(MKTIME) || defined(TIMELOCAL) */
++
++/* ------------------------------------------------------------------------ */
++static long
++unix_to_generic_stamp(t)
++ time_t t;
++{
++ struct tm *tm = localtime(&t);
++
++ return ((((long) (tm->tm_year - 80)) << 25) +
++ (((long) (tm->tm_mon + 1)) << 21) +
++ (((long) tm->tm_mday) << 16) +
++ (long) ((tm->tm_hour << 11) +
++ (tm->tm_min << 5) +
++ (tm->tm_sec / 2)));
++}
++
++/* ------------------------------------------------------------------------ */
++/* build header functions */
++/* ------------------------------------------------------------------------ */
++boolean
++get_header(fp, hdr)
++ FILE *fp;
++ register LzHeader *hdr;
++{
++ int header_size;
++ int name_length;
++ char data[LZHEADER_STRAGE];
++ char dirname[FILENAME_LENGTH];
++ int dir_length = 0;
++ int checksum;
++ int i;
++ char *ptr;
++ int extend_size;
++ int dmy;
++
++ bzero(hdr, sizeof(LzHeader));
++
++ if (((header_size = getc(fp)) == EOF) || (header_size == 0)) {
++ return FALSE; /* finish */
++ }
++
++ if (fread(data + I_HEADER_CHECKSUM,
++ sizeof(char), header_size - 1, fp) < header_size - 1) {
++ fatal_error("Invalid header (LHarc file ?)");
++ return FALSE; /* finish */
++ }
++ setup_get(data + I_HEADER_LEVEL);
++ hdr->header_level = get_byte();
++ if (hdr->header_level != 2 &&
++ fread(data + header_size, sizeof(char), 2, fp) < 2) {
++ fatal_error("Invalid header (LHarc file ?)");
++ return FALSE; /* finish */
++ }
++
++ if (hdr->header_level >= 3) {
++ fatal_error("Unknown level header");
++ return FALSE;
++ }
++
++ setup_get(data + I_HEADER_CHECKSUM);
++ checksum = get_byte();
++
++ if (hdr->header_level == 2) {
++ hdr->header_size = header_size + checksum*256;
++ } else {
++ hdr->header_size = header_size;
++ }
++ bcopy(data + I_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++ setup_get(data + I_PACKED_SIZE);
++ hdr->packed_size = get_longword();
++ hdr->original_size = get_longword();
++ hdr->last_modified_stamp = get_longword();
++ hdr->attribute = get_byte();
++
++ if ((hdr->header_level = get_byte()) != 2) {
++ if (calc_sum(data + I_METHOD, header_size) != checksum)
++ warning("Checksum error (LHarc file?)", "");
++ name_length = get_byte();
++ for (i = 0; i < name_length; i++)
++ hdr->name[i] = (char) get_byte();
++ hdr->name[name_length] = '\0';
++ }
++ else {
++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp;
++ name_length = 0;
++ }
++
++ /* defaults for other type */
++ hdr->unix_mode = UNIX_FILE_REGULAR | UNIX_RW_RW_RW;
++ hdr->unix_gid = 0;
++ hdr->unix_uid = 0;
++
++ if (hdr->header_level == 0) {
++ extend_size = header_size - name_length -22;
++ if (extend_size < 0) {
++ if (extend_size == -2) {
++ hdr->extend_type = EXTEND_GENERIC;
++ hdr->has_crc = FALSE;
++ } else {
++ fatal_error("Unkonwn header (lha file?)");
++ return FALSE;
++ }
++ } else {
++ hdr->has_crc = TRUE;
++ hdr->crc = get_word();
++ }
++
++ if (extend_size >= 1) {
++ hdr->extend_type = get_byte();
++ extend_size--;
++ }
++ if (hdr->extend_type == EXTEND_UNIX) {
++ if (extend_size >= 11) {
++ hdr->minor_version = get_byte();
++ hdr->unix_last_modified_stamp = (time_t) get_longword();
++ hdr->unix_mode = get_word();
++ hdr->unix_uid = get_word();
++ hdr->unix_gid = get_word();
++ extend_size -= 11;
++ } else {
++ hdr->extend_type = EXTEND_GENERIC;
++ }
++ }
++ while (extend_size-- > 0)
++ dmy = get_byte();
++ if (hdr->extend_type == EXTEND_UNIX)
++ return TRUE;
++ } else if (hdr->header_level == 1) {
++ hdr->has_crc = TRUE;
++ extend_size = header_size - name_length-25;
++ hdr->crc = get_word();
++ hdr->extend_type = get_byte();
++ while (extend_size-- > 0)
++ dmy = get_byte();
++ } else { /* level 2 */
++ hdr->has_crc = TRUE;
++ hdr->crc = get_word();
++ hdr->extend_type = get_byte();
++ }
++
++ if (hdr->header_level > 0) {
++ /* Extend Header */
++ if (hdr->header_level != 2)
++ setup_get(data + hdr->header_size);
++ ptr = get_ptr;
++ while ((header_size = get_word()) != 0) {
++ if (hdr->header_level != 2 &&
++ ((data + LZHEADER_STRAGE - get_ptr < header_size) ||
++ fread(get_ptr, sizeof(char), header_size, fp) < header_size)) {
++ fatal_error("Invalid header (LHa file ?)");
++ return FALSE;
++ }
++ switch (get_byte()) {
++ case 0:
++ /*
++ * header crc
++ */
++ setup_get(get_ptr + header_size - 3);
++ break;
++ case 1:
++ /*
++ * filename
++ */
++ for (i = 0; i < header_size - 3; i++)
++ hdr->name[i] = (char) get_byte();
++ hdr->name[header_size - 3] = '\0';
++ name_length = header_size - 3;
++ break;
++ case 2:
++ /*
++ * directory
++ */
++ for (i = 0; i < header_size - 3; i++)
++ dirname[i] = (char) get_byte();
++ dirname[header_size - 3] = '\0';
++ convdelim(dirname, DELIM);
++ dir_length = header_size - 3;
++ break;
++ case 0x40:
++ /*
++ * MS-DOS attribute
++ */
++ if (hdr->extend_type == EXTEND_MSDOS ||
++ hdr->extend_type == EXTEND_HUMAN ||
++ hdr->extend_type == EXTEND_GENERIC)
++ hdr->attribute = get_word();
++ break;
++ case 0x50:
++ /*
++ * UNIX permission
++ */
++ if (hdr->extend_type == EXTEND_UNIX)
++ hdr->unix_mode = get_word();
++ break;
++ case 0x51:
++ /*
++ * UNIX gid and uid
++ */
++ if (hdr->extend_type == EXTEND_UNIX) {
++ hdr->unix_gid = get_word();
++ hdr->unix_uid = get_word();
++ }
++ break;
++ case 0x52:
++ /*
++ * UNIX group name
++ */
++ setup_get(get_ptr + header_size - 3);
++ break;
++ case 0x53:
++ /*
++ * UNIX user name
++ */
++ setup_get(get_ptr + header_size - 3);
++ break;
++ case 0x54:
++ /*
++ * UNIX last modified time
++ */
++ if (hdr->extend_type == EXTEND_UNIX)
++ hdr->unix_last_modified_stamp = (time_t) get_longword();
++ break;
++ default:
++ /*
++ * other headers
++ */
++ setup_get(get_ptr + header_size - 3);
++ break;
++ }
++ }
++ if (hdr->header_level != 2 && get_ptr - ptr != 2) {
++ hdr->packed_size -= get_ptr - ptr - 2;
++ hdr->header_size += get_ptr - ptr - 2;
++ }
++ }
++
++ switch (hdr->extend_type) {
++ case EXTEND_MSDOS:
++ msdos_to_unix_filename(hdr->name, name_length);
++ msdos_to_unix_filename(dirname, dir_length);
++ case EXTEND_HUMAN:
++ if (hdr->header_level == 2)
++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp;
++ else
++ hdr->unix_last_modified_stamp =
++ generic_to_unix_stamp(hdr->last_modified_stamp);
++ break;
++
++#ifdef OSK
++ case EXTEND_OS68K:
++ case EXTEND_XOSK:
++#endif
++ case EXTEND_UNIX:
++ break;
++
++ case EXTEND_MACOS:
++ macos_to_unix_filename(hdr->name, name_length);
++ /* macos_to_unix_filename(dirname, dir_length); */
++ hdr->unix_last_modified_stamp =
++ generic_to_unix_stamp(hdr->last_modified_stamp);
++ break;
++
++ default:
++ generic_to_unix_filename(hdr->name, name_length);
++ generic_to_unix_filename(dirname, dir_length);
++ if (hdr->header_level == 2)
++ hdr->unix_last_modified_stamp = hdr->last_modified_stamp;
++ else
++ hdr->unix_last_modified_stamp =
++ generic_to_unix_stamp(hdr->last_modified_stamp);
++ }
++
++ if (dir_length) {
++ strcat(dirname, hdr->name);
++ strcpy(hdr->name, dirname);
++ name_length += dir_length;
++ }
++
++ return TRUE;
++}
++
++/* ------------------------------------------------------------------------ */
++void
++init_header(name, v_stat, hdr)
++ char *name;
++ struct stat *v_stat;
++ LzHeader *hdr;
++{
++ int len;
++
++ if (compress_method == LZHUFF5_METHOD_NUM) /* Changed N.Watazaki */
++ bcopy(LZHUFF5_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++ else if (compress_method)
++ bcopy(LZHUFF1_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++ else
++ bcopy(LZHUFF0_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++
++ hdr->packed_size = 0;
++ hdr->original_size = v_stat->st_size;
++ hdr->last_modified_stamp = unix_to_generic_stamp(v_stat->st_mtime);
++ hdr->attribute = GENERIC_ATTRIBUTE;
++ hdr->header_level = header_level;
++ strcpy(hdr->name, name);
++ len = strlen(name);
++ hdr->crc = 0x0000;
++ hdr->extend_type = EXTEND_UNIX;
++ hdr->unix_last_modified_stamp = v_stat->st_mtime;
++ /* since 00:00:00 JAN.1.1970 */
++#ifdef NOT_COMPATIBLE_MODE
++ /* Please need your modification in this space. */
++#else
++ hdr->unix_mode = v_stat->st_mode;
++#endif
++
++ hdr->unix_uid = v_stat->st_uid;
++ hdr->unix_gid = v_stat->st_gid;
++
++ if (is_directory(v_stat)) {
++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE;
++ hdr->original_size = 0;
++ if (len > 0 && hdr->name[len - 1] != '/')
++ strcpy(&hdr->name[len++], "/");
++ }
++
++#ifdef S_IFLNK
++ if (is_symlink(v_stat)) {
++ char lkname[257];
++ int len;
++ bcopy(LZHDIRS_METHOD, hdr->method, METHOD_TYPE_STRAGE);
++ hdr->attribute = GENERIC_DIRECTORY_ATTRIBUTE;
++ hdr->original_size = 0;
++ len = readlink(name, lkname, 256);
++ lkname[len] = (char)'\0';
++ sprintf(hdr->name, "%s|%s", hdr->name, lkname);
++ }
++#endif
++ if (generic_format)
++ unix_to_generic_filename(hdr->name, len);
++}
++
++/* ------------------------------------------------------------------------ */
++/* Write unix extended header or generic header. */
++void
++write_header(nafp, hdr)
++ FILE *nafp;
++ LzHeader *hdr;
++{
++ int header_size;
++ int name_length;
++ char data[LZHEADER_STRAGE];
++ char *p;
++ char *headercrc_ptr;
++
++ bzero(data, LZHEADER_STRAGE);
++ bcopy(hdr->method, data + I_METHOD, METHOD_TYPE_STRAGE);
++ setup_put(data + I_PACKED_SIZE);
++ put_longword(hdr->packed_size);
++ put_longword(hdr->original_size);
++
++ if (hdr->header_level == HEADER_LEVEL2)
++ put_longword((long) hdr->unix_last_modified_stamp);
++ else
++ put_longword(hdr->last_modified_stamp);
++
++ switch (hdr->header_level) {
++ case HEADER_LEVEL0:
++ put_byte(hdr->attribute);
++ break;
++ case HEADER_LEVEL1:
++ case HEADER_LEVEL2:
++ put_byte(0x20);
++ break;
++ }
++
++ put_byte(hdr->header_level);
++
++ convdelim(hdr->name, DELIM2);
++ if (hdr->header_level != HEADER_LEVEL2) {
++ if (p = (char *) rindex(hdr->name, DELIM2))
++ name_length = strlen(++p);
++ else
++ name_length = strlen(hdr->name);
++ put_byte(name_length);
++ bcopy(p ? p : hdr->name, data + I_NAME, name_length);
++ setup_put(data + I_NAME + name_length);
++ }
++
++ put_word(hdr->crc);
++ if (header_level == HEADER_LEVEL0) {
++ if (generic_format) {
++ header_size = I_GENERIC_HEADER_BOTTOM - 2 + name_length;
++ data[I_HEADER_SIZE] = header_size;
++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size);
++ } else {
++ /* write old-style extend header */
++ put_byte(EXTEND_UNIX);
++ put_byte(CURRENT_UNIX_MINOR_VERSION);
++ put_longword((long) hdr->unix_last_modified_stamp);
++ put_word(hdr->unix_mode);
++ put_word(hdr->unix_uid);
++ put_word(hdr->unix_gid);
++ header_size = I_UNIX_EXTEND_BOTTOM - 2 + name_length;
++ data[I_HEADER_SIZE] = header_size;
++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size);
++ }
++ } else {
++ /* write extend header. */
++ char *ptr;
++
++ if (generic_format)
++ put_byte(0x00);
++ else
++ put_byte(EXTEND_UNIX);
++
++ ptr = put_ptr;
++ if (hdr->header_level == HEADER_LEVEL2) {
++ /* write common header */
++ put_word(5);
++ put_byte(0x00);
++ headercrc_ptr = put_ptr;
++ put_word(0x0000);
++ }
++
++ if (generic_format) {
++ header_size = put_ptr - data; /* +2 for last 0x0000 */
++ } else {
++ put_word(5);
++ if (hdr->header_level == HEADER_LEVEL1)
++ header_size = put_ptr - data - 2;
++ put_byte(0x50); /* permission */
++ put_word(hdr->unix_mode);
++ put_word(7);
++ put_byte(0x51); /* gid and uid */
++ put_word(hdr->unix_gid);
++ put_word(hdr->unix_uid);
++
++ if (p = (char *) rindex(hdr->name, DELIM2)) {
++ int i;
++
++ name_length = p - hdr->name + 1;
++ put_word(name_length + 3);
++ put_byte(2); /* dirname */
++ for (i = 0; i < name_length; i++)
++ put_byte(hdr->name[i]);
++ }
++ } /* if generic .. */
++
++ if (header_level != HEADER_LEVEL2) {
++ if (!generic_format) {
++ put_word(7);
++ put_byte(0x54); /* time stamp */
++ put_longword(hdr->unix_last_modified_stamp);
++ }
++ hdr->packed_size += put_ptr - ptr;
++ ptr = put_ptr;
++ setup_put(data + I_PACKED_SIZE);
++ put_longword(hdr->packed_size);
++ put_ptr = ptr;
++ data[I_HEADER_SIZE] = header_size;
++ data[I_HEADER_CHECKSUM] = calc_sum(data + I_METHOD, header_size);
++ } else { /* header level 2 */
++ int i;
++ if (p = (char *) rindex(hdr->name, DELIM2))
++ name_length = strlen(++p);
++ else {
++ p = hdr->name;
++ name_length = strlen(hdr->name);
++ }
++ put_word(name_length + 3);
++ put_byte(1); /* filename */
++ for (i = 0; i < name_length; i++)
++ put_byte(*p++);
++ } /* if he.. != HEAD_LV2 */
++ header_size = put_ptr - data;
++ }
++
++ if (header_level == HEADER_LEVEL2) {
++ unsigned short hcrc;
++ setup_put(data + I_HEADER_SIZE);
++ put_word(header_size + 2);
++ /* common header */
++ hcrc = calc_header_crc(data, (unsigned int) header_size + 2);
++ setup_put(headercrc_ptr);
++ put_word(hcrc);
++ }
++
++ if (fwrite(data, sizeof(char), header_size + 2, nafp) == 0)
++ fatal_error("Cannot write to temporary file");
++
++ convdelim(hdr->name, DELIM);
++}
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* compile-command:"gcc -c header.c" */
++/* End: */
+--- lha-1.14i.orig/debian/org/lharc.c
++++ lha-1.14i/debian/org/lharc.c
+@@ -0,0 +1,1135 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX */
++/* lharc.c -- append to archive */
++/* */
++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */
++/* Modified Nobutaka Watazaki */
++/* Thanks to H.Yoshizaki. (MS-DOS LHarc) */
++/* */
++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */
++/* Ver. 0.01 Alpha Version (for 4.2BSD) 1989.05.28 Y.Tagawa */
++/* Ver. 0.02 Alpha Version Rel.2 1989.05.29 Y.Tagawa */
++/* Ver. 0.03 Release #3 Beta Version 1989.07.02 Y.Tagawa */
++/* Ver. 0.03a Debug 1989.07.03 Y.Tagawa */
++/* Ver. 0.03b Modified 1989.07.13 Y.Tagawa */
++/* Ver. 0.03c Debug (Thanks to void@rena.dit.junet) */
++/* 1989.08.09 Y.Tagawa */
++/* Ver. 0.03d Modified (quiet and verbose) 1989.09.14 Y.Tagawa */
++/* V1.00 Fixed 1989.09.22 Y.Tagawa */
++/* V1.01 Bug Fixed 1989.12.25 Y.Tagawa */
++/* */
++/* DOS-Version Original LHx V C2.01 (C) H.Yohizaki */
++/* */
++/* V2.00 UNIX Lharc + DOS LHx -> OSK LHx 1990.11.01 Momozou */
++/* V2.01 Minor Modified 1990.11.24 Momozou */
++/* */
++/* Ver. 0.02 LHx for UNIX 1991.11.18 M.Oki */
++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */
++/* Ver. 0.04 LHa for UNIX beta version 1992.01.20 M.Oki */
++/* Ver. 1.00 LHa for UNIX Fixed 1992.03.19 M.Oki */
++/* */
++/* Ver. 1.10 for Symblic Link 1993.06.25 N.Watazaki */
++/* Ver. 1.11 for Symblic Link Bug Fixed 1993.08.18 N.Watazaki */
++/* Ver. 1.12 for File Date Check 1993.10.28 N.Watazaki */
++/* Ver. 1.13 Bug Fixed (Idicator calcurate) 1994.02.21 N.Watazaki */
++/* Ver. 1.13a Bug Fixed (Sym. Link delete) 1994.03.11 N.Watazaki */
++/* Ver. 1.13b Bug Fixed (Sym. Link delete) 1994.07.29 N.Watazaki */
++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14b,c Bug Fixed 1996.03.07 t.okamoto */
++/* Ver. 1.14d Version up 1997.01.12 t.okamoto */
++/* Ver. 1.14g Bug Fixed 2000.05.06 t.okamoto */
++/* Ver. 1.14i Modified 2000.10.06 t.okamoto */
++/* ------------------------------------------------------------------------ */
++#define LHA_MAIN_SRC
++
++#include "lha.h"
++
++/* ------------------------------------------------------------------------ */
++/* PROGRAM */
++/* ------------------------------------------------------------------------ */
++static int cmd = CMD_UNKNOWN;
++
++/* 1996.8.13 t.okamoto */
++#if 0
++char **cmd_filev;
++int cmd_filec;
++
++char *archive_name;
++char expanded_archive_name[FILENAME_LENGTH];
++char temporary_name[FILENAME_LENGTH];
++char backup_archive_name[FILENAME_LENGTH];
++#endif
++
++/* static functions */
++static void sort_files();
++static void print_version();
++
++char *extract_directory = NULL;
++char **xfilev;
++int xfilec = 257;
++
++/* 1996.8.13 t.okamoto */
++#if 0
++char *writting_filename;
++char *reading_filename;
++
++int archive_file_mode;
++int archive_file_gid;
++#endif
++/* ------------------------------------------------------------------------ */
++static void
++init_variable() /* Added N.Watazaki */
++{
++/* options */
++ quiet = FALSE;
++ text_mode = FALSE;
++ verbose = FALSE;
++ noexec = FALSE; /* debugging option */
++ force = FALSE;
++ prof = FALSE;
++#ifndef SUPPORT_LH7
++ compress_method = LZHUFF5_METHOD_NUM;
++#endif
++#ifdef SUPPORT_LH7
++ compress_method = LZHUFF7_METHOD_NUM;
++#endif
++
++ header_level = HEADER_LEVEL1;
++ quiet_mode = 0;
++
++#ifdef EUC
++ euc_mode = FALSE;
++#endif
++
++/* view command flags */
++ verbose_listing = FALSE;
++
++/* extract command flags */
++ output_to_stdout = FALSE;
++
++/* append command flags */
++ new_archive = FALSE;
++ update_if_newer = FALSE;
++ delete_after_append = FALSE;
++ generic_format = FALSE;
++
++ remove_temporary_at_error = FALSE;
++ recover_archive_when_interrupt = FALSE;
++ remove_extracting_file_when_interrupt = FALSE;
++ get_filename_from_stdin = FALSE;
++ ignore_directory = FALSE;
++ verify_mode = FALSE;
++
++ noconvertcase = FALSE;
++
++ extract_directory = NULL;
++ xfilec = 257;
++}
++
++/* ------------------------------------------------------------------------ */
++/* NOTES : Text File Format */
++/* GENERATOR NewLine */
++/* [generic] 0D 0A */
++/* [MS-DOS] 0D 0A */
++/* [OS9][MacOS] 0D */
++/* [UNIX] 0A */
++/* ------------------------------------------------------------------------ */
++static void
++print_tiny_usage_and_exit()
++{
++ fprintf(stderr, "\
++LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa\n\
++LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki\n\
++LHx(arc) for OSK V 2.01 Modified 1990 Momozou\n\
++LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki\n\
++LHa for UNIX V 1.14 Modified 1995 Nobutaka Watazaki\n\
++LHa for UNIX V 1.14i Modified 2000 Tsugio Okamoto\n\
++");
++ fprintf(stderr, "\
++usage: lha [-]{axelvudmcp[q[num]][vnfodizg012]}[w=<dir>] archive_file [file...]\n\
++commands: options:\n\
++ a Add(or replace) to archive q{num} quiet (num:quiet mode)\n\
++ x,e EXtract from archive v verbose\n\
++ l,v List / Verbose List n not execute\n\
++ u Update newer files to archive f force (over write at extract)\n\
++ d Delete from archive t FILES are TEXT file\n");
++#ifdef SUPPORT_LH7
++ fprintf(stderr, "\
++ m Move to archive (means 'ad') o[567] compression method (a/u)\n\
++");
++#endif
++#ifndef SUPPORT_LH7
++ fprintf(stderr, "\
++ m Move to archive (means 'ad') o use LHarc compatible method (a/u)\n\
++");
++#endif
++ fprintf(stderr, "\
++ c re-Construct new archive w=<dir> specify extract directory (a/u/m/x/e)\n\
++ p Print to STDOUT from archive d delete FILES after (a/u/c)\n\
++ t Test file CRC in archive i ignore directory path (x/e)\n\
++ z files not compress (a/u)\n\
++ g Generic format (for compatibility)\n\
++ or not convert case when extracting\n\
++ 0/1/2 header level (a/u)\n\
++");
++#ifdef EUC
++ fprintf(stderr, "\
++ e TEXT code convert from/to EUC\n\
++");
++#endif
++ exit(1);
++}
++
++/* ------------------------------------------------------------------------ */
++int
++main(argc, argv)
++ int argc;
++ char *argv[];
++{
++ char *p, inpbuf[256];
++
++ int i;
++ int ac;
++ char **av, *m;
++
++ init_variable(); /* Added N.Watazaki */
++
++ ac = argc;
++ av = (char **)malloc( sizeof(char*)*argc );
++ if (av == NULL) fatal_error("not enough memory\n");
++ for (i=0; i<argc; i++) {
++ if ((av[i] = strdup( argv[i] )) == NULL)
++ fatal_error("not enough memory\n");
++ }
++
++ if (ac < 2)
++ print_tiny_usage_and_exit();
++
++ if (strcmp(av[1], "--version") == 0) {
++ print_version();
++ exit(1);
++ }
++
++ if (ac < 3) {
++ cmd = CMD_LIST;
++ av--; /* argv--; */ /* 1999.7.18 */
++ ac++; /* argc++; */
++ goto work;
++ }
++
++ m = av[1];
++
++ if (m[0] == '-')
++ m++;
++ /* commands */
++ switch (*m) {
++ case 'x':
++ case 'e':
++ cmd = CMD_EXTRACT;
++ break;
++
++ case 'p':
++ output_to_stdout = TRUE;
++ cmd = CMD_EXTRACT;
++ break;
++
++ case 'c':
++ new_archive = TRUE;
++ cmd = CMD_ADD;
++ break;
++
++ case 'a':
++ cmd = CMD_ADD;
++ break;
++
++ case 'd':
++ cmd = CMD_DELETE;
++ break;
++
++ case 'u':
++ update_if_newer = TRUE;
++ cmd = CMD_ADD;
++ break;
++
++ case 'm':
++ delete_after_append = TRUE;
++ cmd = CMD_ADD;
++ break;
++
++ case 'v':
++ verbose_listing = TRUE;
++ cmd = CMD_LIST;
++ break;
++
++ case 'l':
++ cmd = CMD_LIST;
++ break;
++
++ case 't':
++ cmd = CMD_EXTRACT;
++ verify_mode = TRUE;
++ break;
++
++ default:
++ print_tiny_usage_and_exit();
++
++ }
++
++ /* options */
++ /* p = &argv[1][1]; */
++ p = m+1;
++ while ( *p != 0 ) {
++ switch ((*p++)) {
++ case 'q':
++ switch (*p) {
++ case '0':
++ case '1':
++ quiet_mode = *p - '0';
++ ++p;
++ break;
++ case '2':
++ default:
++ quiet = TRUE;
++ break;
++ }
++ case 'f':
++ force = TRUE;
++ break;
++ case 'p':
++ prof = TRUE;
++ break;
++ case 'v':
++ verbose = TRUE;
++ break;
++ case 't':
++ text_mode = TRUE;
++ break;
++#ifdef EUC
++ case 'e':
++ text_mode = TRUE;
++ euc_mode = TRUE;
++ break;
++#endif
++ case 'n':
++ noexec = TRUE;
++ break;
++ case 'g':
++ generic_format = TRUE;
++ noconvertcase = TRUE;
++ header_level = 0;
++ break;
++ case 'd':
++ delete_after_append = TRUE;
++ break;
++ case 'o':
++ switch (*p) {
++ case 0:
++ compress_method = LZHUFF1_METHOD_NUM;
++ header_level = 0;
++ break;
++ case '5':
++ compress_method = LZHUFF5_METHOD_NUM;
++ p++;
++ break;
++#ifdef SUPPORT_LH7
++ case '6':
++ compress_method = LZHUFF6_METHOD_NUM;
++ p++;
++ break;
++ case '7':
++ compress_method = LZHUFF7_METHOD_NUM;
++ p++;
++ break;
++#endif
++ default:
++ fprintf(stderr, "LHa: error option o%c\n", p[-1]);
++ exit(1);
++ }
++ break;
++ case 'z':
++ compress_method = LZHUFF0_METHOD_NUM; /* Changed N.Watazaki */
++ break;
++ case 'i':
++ ignore_directory = TRUE;
++ break;
++ case 'w':
++ if (*p == '=')
++ p++;
++ extract_directory = p;
++ while (*p)
++ p++;
++ break;
++ case '0':
++ header_level = HEADER_LEVEL0;
++ break;
++ case '1':
++ header_level = HEADER_LEVEL1;
++ break;
++ case '2':
++ header_level = HEADER_LEVEL2;
++ break;
++ default:
++ fprintf(stderr, "LHa: Unknown option '%c'.\n", p[-1]);
++ exit(1);
++ }
++ }
++
++work:
++ /* archive file name */
++ archive_name = av[2];
++
++ if (!strcmp(archive_name, "-")) {
++ if (!isatty(1) && cmd == CMD_ADD)
++ quiet = TRUE;
++ }
++ else {
++ if (ac == 3 && !isatty(0)) { /* 1999.7.18 */
++ get_filename_from_stdin = TRUE;
++ }
++ }
++
++ /* target file name */
++ if (get_filename_from_stdin) {
++ cmd_filec = 0;
++ if ((xfilev = (char **) malloc(sizeof(char *) * xfilec)) == NULL)
++ fatal_error("Virtual memory exhausted\n");
++ while (fgets(inpbuf, sizeof(inpbuf), stdin)) {
++ /* delete \n if it exist */
++ i=0; p=inpbuf;
++ while (i < sizeof(inpbuf) && p != 0) {
++ if (*p == '\n') {
++ *p = 0;
++ break;
++ }
++ p++; i++;
++ }
++
++ if (cmd_filec >= xfilec) {
++ xfilec += 256;
++ cmd_filev = (char **) realloc(xfilev,
++ sizeof(char *) * xfilec);
++ if (cmd_filev == NULL)
++ fatal_error("Virtual memory exhausted\n");
++ xfilev = cmd_filev;
++ }
++ if (strlen(inpbuf) < 1)
++ continue;
++ if ((xfilev[cmd_filec++] = (char *) strdup(inpbuf)) == NULL)
++ fatal_error("Virtual memory exhausted\n");
++ }
++ xfilev[cmd_filec] = NULL;
++ cmd_filev = xfilev;
++ } else {
++ cmd_filec = ac - 3;
++ cmd_filev = av + 3;
++ }
++ sort_files();
++
++ /* make crc table */
++ make_crctable();
++
++ switch (cmd) {
++ case CMD_EXTRACT:
++ cmd_extract();
++ break;
++ case CMD_ADD:
++ cmd_add();
++ break;
++ case CMD_LIST:
++ cmd_list();
++ break;
++ case CMD_DELETE:
++ cmd_delete();
++ break;
++ }
++
++#ifdef USE_PROF
++ if (!prof)
++ exit(0);
++#endif
++
++ return 0;
++}
++
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++
++/* ------------------------------------------------------------------------ */
++static void
++print_version()
++{
++ fprintf(stderr, "%s\n", LHA_VERSION);
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++message_1(title, subject, name)
++ char *title, *subject, *name;
++{
++ fprintf(stderr, "LHa: %s%s ", title, subject);
++ fflush(stderr);
++
++ if (errno == 0)
++ fprintf(stderr, "%s\n", name);
++ else
++ perror(name);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++message(subject, name)
++ char *subject, *name;
++{
++ message_1("", subject, name);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++warning(subject, name)
++ char *subject, *name;
++{
++ message_1("Warning: ", subject, name);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++error(subject, msg)
++ char *subject, *msg;
++{
++ message_1("Error: ", subject, msg);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++fatal_error(msg)
++ char *msg;
++{
++ message_1("Fatal error:", "", msg);
++
++ if (remove_temporary_at_error)
++ unlink(temporary_name);
++
++ exit(1);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++write_error()
++{
++ fatal_error(writting_filename);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++read_error()
++{
++ fatal_error(reading_filename);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++interrupt(signo)
++ int signo;
++{
++ errno = 0;
++ message("Interrupted\n", "");
++
++ if (temporary_fp)
++ fclose(temporary_fp);
++ unlink(temporary_name);
++ if (recover_archive_when_interrupt)
++ rename(backup_archive_name, archive_name);
++ if (remove_extracting_file_when_interrupt) {
++ errno = 0;
++ message("Removing", writting_filename);
++ unlink(writting_filename);
++ }
++ signal(SIGINT, SIG_DFL);
++ signal(SIGHUP, SIG_DFL);
++ kill(getpid(), signo);
++}
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++static int
++sort_by_ascii(a, b)
++ char **a, **b;
++{
++ register char *p, *q;
++ register int c1, c2;
++
++ p = *a, q = *b;
++ if (generic_format) {
++ do {
++ c1 = *(unsigned char *) p++;
++ c2 = *(unsigned char *) q++;
++ if (!c1 || !c2)
++ break;
++ if (islower(c1))
++ c1 = toupper(c1);
++ if (islower(c2))
++ c2 = toupper(c2);
++ }
++ while (c1 == c2);
++ return c1 - c2;
++ }
++ else {
++ while (*p == *q && *p != '\0')
++ p++, q++;
++ return *(unsigned char *) p - *(unsigned char *) q;
++ }
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++sort_files()
++{
++ if (cmd_filec > 1)
++ qsort(cmd_filev, cmd_filec, sizeof(char *), sort_by_ascii);
++}
++
++/* ------------------------------------------------------------------------ */
++char *
++xmalloc(size)
++ int size;
++{
++ char *p = (char *) malloc(size);
++ if (!p)
++ fatal_error("Not enough memory");
++ return p;
++}
++
++/* ------------------------------------------------------------------------ */
++char *
++xrealloc(old, size)
++ char *old;
++ int size;
++{
++ char *p = (char *) realloc(old, size);
++ if (!p)
++ fatal_error("Not enough memory");
++ return p;
++}
++
++/* ------------------------------------------------------------------------ */
++/* STRING POOL */
++/* ------------------------------------------------------------------------ */
++/*
++ string pool :
++ +-------------+-------------+------+-------------+----------+
++ | N A M E 1 \0| N A M E 2 \0| .... | N A M E n \0| |
++ +-------------+-------------+------+-------------+----------+
++ ^ ^ ^ buffer+0 buffer+used buffer+size
++
++ vector :
++ +---------------+---------------+------------- -----------------+
++ | pointer to | pointer to | pointer to ... pointer to |
++ | stringpool | N A M E 1 | N A M E 2 ... N A M E n |
++ +---------------+---------------+------------- -------------+
++ ^ malloc base returned
++*/
++
++/* ------------------------------------------------------------------------ */
++void
++init_sp(sp)
++ struct string_pool *sp;
++{
++ sp->size = 1024 - 8; /* any ( >=0 ) */
++ sp->used = 0;
++ sp->n = 0;
++ sp->buffer = (char *) xmalloc(sp->size * sizeof(char));
++}
++
++/* ------------------------------------------------------------------------ */
++void
++add_sp(sp, name, len)
++ struct string_pool *sp;
++ char *name; /* stored '\0' at tail */
++ int len; /* include '\0' */
++{
++ while (sp->used + len > sp->size) {
++ sp->size *= 2;
++ sp->buffer = (char *) xrealloc(sp->buffer, sp->size * sizeof(char));
++ }
++ bcopy(name, sp->buffer + sp->used, len);
++ sp->used += len;
++ sp->n++;
++}
++
++/* ------------------------------------------------------------------------ */
++void
++finish_sp(sp, v_count, v_vector)
++ register struct string_pool *sp;
++ int *v_count;
++ char ***v_vector;
++{
++ int i;
++ register char *p;
++ char **v;
++
++ v = (char **) xmalloc((sp->n + 1) * sizeof(char *));
++ *v++ = sp->buffer;
++ *v_vector = v;
++ *v_count = sp->n;
++ p = sp->buffer;
++ for (i = sp->n; i; i--) {
++ *v++ = p;
++ if (i - 1)
++ p += strlen(p) + 1;
++ }
++}
++
++/* ------------------------------------------------------------------------ */
++void
++free_sp(vector)
++ char **vector;
++{
++ vector--;
++ free(*vector); /* free string pool */
++ free(vector);
++}
++
++
++/* ------------------------------------------------------------------------ */
++/* READ DIRECTORY FILES */
++/* ------------------------------------------------------------------------ */
++static boolean
++include_path_p(path, name)
++ char *path, *name;
++{
++ char *n = name;
++ while (*path)
++ if (*path++ != *n++)
++ return (path[-1] == '/' && *n == '\0');
++ return (*n == '/' || (n != name && path[-1] == '/' && n[-1] == '/'));
++}
++
++/* ------------------------------------------------------------------------ */
++void
++cleaning_files(v_filec, v_filev)
++ int *v_filec;
++ char ***v_filev;
++{
++ char *flags;
++ struct stat stbuf;
++
++ register char **filev = *v_filev;
++ register int filec = *v_filec;
++ register char *p;
++ register int i, j;
++
++ if (filec == 0)
++ return;
++
++ flags = xmalloc(filec * sizeof(char));
++
++ /* flags & 0x01 : 1: ignore */
++ /* flags & 0x02 : 1: directory, 0 : regular file */
++ /* flags & 0x04 : 1: need delete */
++
++
++ for (i = 0; i < filec; i++)
++ if (GETSTAT(filev[i], &stbuf) < 0) {
++ flags[i] = 0x04;
++ fprintf(stderr,
++ "LHa: Cannot access \"%s\", ignored.\n", filev[i]);
++ }
++ else {
++ if (is_regularfile(&stbuf))
++ flags[i] = 0x00;
++ else if (is_directory(&stbuf))
++ flags[i] = 0x02;
++#ifdef S_IFLNK
++ else if (is_symlink(&stbuf)) /* t.okamoto */
++ flags[i] = 0x00;
++#endif
++ else {
++ flags[i] = 0x04;
++ fprintf(stderr,
++ "LHa: Cannot archive \"%s\", ignored.\n", filev[i]);
++ }
++ }
++ errno = 0;
++
++ for (i = 0; i < filec; i++) {
++ p = filev[i];
++ if ((flags[i] & 0x07) == 0x00) { /* regular file, not
++ * deleted/ignored */
++ for (j = i + 1; j < filec; j++) {
++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not
++ * deleted/ignored */
++ if (STREQU(p, filev[j]))
++ flags[j] = 0x04; /* delete */
++ }
++ }
++ }
++ else if ((flags[i] & 0x07) == 0x02) { /* directory, not
++ * deleted/ignored */
++ for (j = i + 1; j < filec; j++) {
++ if ((flags[j] & 0x07) == 0x00) { /* regular file, not
++ * deleted/ignored */
++ if (include_path_p(p, filev[j]))
++ flags[j] = 0x04; /* delete */
++ }
++ else if ((flags[j] & 0x07) == 0x02) { /* directory, not
++ * deleted/ignored */
++ if (include_path_p(p, filev[j]))
++ flags[j] = 0x04; /* delete */
++ }
++ }
++ }
++ }
++
++ for (i = j = 0; i < filec; i++) {
++ if ((flags[i] & 0x04) == 0) {
++ if (i != j)
++ filev[j] = filev[i];
++ j++;
++ }
++ }
++ *v_filec = j;
++
++ free(flags);
++}
++
++/* ------------------------------------------------------------------------ */
++#ifdef NODIRECTORY
++/* please need your imprementation */
++boolean
++find_files(name, v_filec, v_filev)
++ char *name;
++ int *v_filec;
++ char ***v_filev;
++{
++ return FALSE; /* DUMMY */
++}
++
++/* ------------------------------------------------------------------------ */
++void
++free_files(filec, filev)
++ int filec;
++ char **filev;
++{
++ /* do nothing */
++}
++/* ------------------------------------------------------------------------ */
++#else
++boolean
++find_files(name, v_filec, v_filev)
++ char *name;
++ int *v_filec;
++ char ***v_filev;
++{
++ struct string_pool sp;
++ char newname[FILENAME_LENGTH];
++ int len, n;
++ DIR *dirp;
++ DIRENTRY *dp;
++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf;
++
++ strcpy(newname, name);
++ len = strlen(name);
++ if (len > 0 && newname[len - 1] != '/')
++ newname[len++] = '/';
++
++ dirp = opendir(name);
++ if (!dirp)
++ return FALSE;
++
++ init_sp(&sp);
++
++ GETSTAT(temporary_name, &tmp_stbuf);
++ GETSTAT(archive_name, &arc_stbuf);
++
++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
++ n = NAMLEN(dp);
++ strncpy(newname + len, dp->d_name, n);
++ newname[len + n] = '\0';
++ if (GETSTAT(newname, &fil_stbuf) < 0)
++ continue;
++#ifdef NO_INODE
++ if ( dp->d_name[0] != '.' ||
++ (n != 1 &&
++ (dp->d_name[1] != '.' ||
++ n != 2)) ) {
++ add_sp(&sp, newname, len+n+1);
++ }
++#else
++ if ((dp->d_ino != 0) &&
++ /* exclude '.' and '..' */
++ ((dp->d_name[0] != '.') ||
++ ((n != 1) &&
++ ((dp->d_name[1] != '.') ||
++ (n != 2)))) &&
++ ((tmp_stbuf.st_dev != fil_stbuf.st_dev ||
++ tmp_stbuf.st_ino != fil_stbuf.st_ino) &&
++ (arc_stbuf.st_dev != fil_stbuf.st_dev ||
++ arc_stbuf.st_ino != fil_stbuf.st_ino))) {
++ add_sp(&sp, newname, len + n + 1);
++ }
++#endif
++ }
++ closedir(dirp);
++ finish_sp(&sp, v_filec, v_filev);
++ if (*v_filec > 1)
++ qsort(*v_filev, *v_filec, sizeof(char *), sort_by_ascii);
++ cleaning_files(v_filec, v_filev);
++
++ return TRUE;
++}
++
++/* ------------------------------------------------------------------------ */
++void
++free_files(filec, filev)
++ int filec;
++ char **filev;
++{
++ free_sp(filev);
++}
++#endif
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++/* Build temporary file name and store to TEMPORARY_NAME */
++void
++build_temporary_name()
++{
++#ifdef TMP_FILENAME_TEMPLATE
++ /* "/tmp/lhXXXXXX" etc. */
++ if (extract_directory == NULL) {
++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE);
++ }
++ else {
++ sprintf(temporary_name, "%s/lhXXXXXX", extract_directory);
++ }
++#ifdef MKSTEMP
++ mkstemp(temporary_name);
++#else
++ mktemp(temporary_name);
++#endif
++#else
++ char *p, *s;
++
++ strcpy(temporary_name, archive_name);
++ for (p = temporary_name, s = (char *) 0; *p; p++)
++ if (*p == '/')
++ s = p;
++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX");
++#ifdef MKSTEMP
++ mkstemp(temporary_name);
++#else
++ mktemp(temporary_name);
++#endif
++#endif
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++modify_filename_extention(buffer, ext)
++ char *buffer;
++ char *ext;
++{
++ register char *p, *dot;
++
++ for (p = buffer, dot = (char *) 0; *p; p++) {
++ if (*p == '.')
++ dot = p;
++ else if (*p == '/')
++ dot = (char *) 0;
++ }
++
++ if (dot)
++ p = dot;
++
++ strcpy(p, ext);
++}
++
++/* ------------------------------------------------------------------------ */
++/* build backup file name */
++void
++build_backup_name(buffer, original)
++ char *buffer;
++ char *original;
++{
++ strcpy(buffer, original);
++ modify_filename_extention(buffer, BACKUPNAME_EXTENTION); /* ".bak" */
++}
++
++/* ------------------------------------------------------------------------ */
++void
++build_standard_archive_name(buffer, orginal)
++ char *buffer;
++ char *orginal;
++{
++ strcpy(buffer, orginal);
++ modify_filename_extention(buffer, ARCHIVENAME_EXTENTION); /* ".lzh" */
++}
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++boolean
++need_file(name)
++ char *name;
++{
++ int i;
++
++ if (cmd_filec == 0)
++ return TRUE;
++
++ for (i = 0; i < cmd_filec; i++) {
++ if (patmatch(cmd_filev[i], name, 0))
++ return TRUE;
++ }
++
++ return FALSE;
++}
++
++FILE *
++xfopen(name, mode)
++ char *name, *mode;
++{
++ FILE *fp;
++
++ if ((fp = fopen(name, mode)) == NULL)
++ fatal_error(name);
++
++ return fp;
++}
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++static boolean
++open_old_archive_1(name, v_fp)
++ char *name;
++ FILE **v_fp;
++{
++ FILE *fp;
++ struct stat stbuf;
++
++ if (stat(name, &stbuf) >= 0 &&
++ is_regularfile(&stbuf) &&
++ (fp = fopen(name, READ_BINARY)) != NULL) {
++ *v_fp = fp;
++ archive_file_gid = stbuf.st_gid;
++ archive_file_mode = stbuf.st_mode;
++ return TRUE;
++ }
++
++ *v_fp = NULL;
++ archive_file_gid = -1;
++ return FALSE;
++}
++
++/* ------------------------------------------------------------------------ */
++FILE *
++open_old_archive()
++{
++ FILE *fp;
++ char *p;
++
++ if (!strcmp(archive_name, "-")) {
++ if (cmd == CMD_EXTRACT || cmd == CMD_LIST)
++ return stdin;
++ else
++ return NULL;
++ }
++ if (p = (char *) rindex(archive_name, '.')) {
++ if (strucmp(".LZH", p) == 0
++ || strucmp(".LZS", p) == 0
++ || strucmp(".COM", p) == 0 /* DOS SFX */
++ || strucmp(".EXE", p) == 0
++ || strucmp(".X", p) == 0 /* HUMAN SFX */
++ || strucmp(".BAK", p) == 0) { /* for BackUp */
++ open_old_archive_1(archive_name, &fp);
++ return fp;
++ }
++ }
++
++ if (open_old_archive_1(archive_name, &fp))
++ return fp;
++ sprintf(expanded_archive_name, "%s.lzh", archive_name);
++ if (open_old_archive_1(expanded_archive_name, &fp)) {
++ archive_name = expanded_archive_name;
++ return fp;
++ }
++ /*
++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name =
++ * expanded_archive_name; return NULL; }
++ */
++ sprintf(expanded_archive_name, "%s.lzs", archive_name);
++ if (open_old_archive_1(expanded_archive_name, &fp)) {
++ archive_name = expanded_archive_name;
++ return fp;
++ }
++ /*
++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name =
++ * expanded_archive_name; return NULL; }
++ */
++ /*
++ * sprintf( expanded_archive_name , "%s.lzh",archive_name);
++ * archive_name = expanded_archive_name;
++ */
++ return NULL;
++}
++
++/* ------------------------------------------------------------------------ */
++int
++inquire(msg, name, selective)
++ char *msg, *name, *selective;
++{
++ char buffer[1024];
++ char *p;
++
++ for (;;) {
++ fprintf(stderr, "%s %s ", name, msg);
++ fflush(stderr);
++
++ fgets(buffer, 1024, stdin);
++
++ for (p = selective; *p; p++)
++ if (buffer[0] == *p)
++ return p - selective;
++ }
++ /* NOTREACHED */
++}
++
++/* ------------------------------------------------------------------------ */
++void
++write_archive_tail(nafp)
++ FILE *nafp;
++{
++ putc(0x00, nafp);
++}
++
++/* ------------------------------------------------------------------------ */
++void
++copy_old_one(oafp, nafp, hdr)
++ FILE *oafp, *nafp;
++ LzHeader *hdr;
++{
++ if (noexec) {
++ fseek(oafp, (long) (hdr->header_size + 2) + hdr->packed_size, SEEK_CUR);
++ }
++ else {
++ reading_filename = archive_name;
++ writting_filename = temporary_name;
++ if (hdr->header_level != 2) {
++ copyfile(oafp, nafp,
++ (long) (hdr->header_size + 2) + hdr->packed_size, 0);
++ } else {
++ copyfile(oafp, nafp,
++ (long) (hdr->header_size) + hdr->packed_size, 0);
++ }
++ }
++}
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* compile-command:"gcc -c lharc.c" */
++/* End: */
+--- lha-1.14i.orig/debian/org/util.c
++++ lha-1.14i/debian/org/util.c
+@@ -0,0 +1,375 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX */
++/* util.c -- LHarc Util */
++/* */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14e Support for sfx archives 1999.05.28 T.Okamoto */
++/* ------------------------------------------------------------------------ */
++#include "lha.h"
++/*
++ * util.c - part of LHa for UNIX Feb 26 1992 modified by Masaru Oki Mar 4
++ * 1992 modified by Masaru Oki #ifndef USESTRCASECMP added. Mar 31 1992
++ * modified by Masaru Oki #ifdef NOMEMSET added.
++ */
++#include <errno.h>
++
++/* ------------------------------------------------------------------------ */
++extern unsigned short crc;
++extern int quiet;
++/* ------------------------------------------------------------------------ */
++long
++copyfile(f1, f2, size, crc_flg) /* return: size of source file */
++ FILE *f1;
++ FILE *f2;
++ long size;
++ int crc_flg;/* 0: no crc, 1: crc check, 2: extract, 3:
++ * append */
++{
++ unsigned short xsize;
++ char *buf;
++ long rsize = 0;
++
++ if ((buf = (char *) malloc(BUFFERSIZE)) == NULL)
++ fatal_error("virtual memory exhausted.\n");
++ crc = 0;
++ if ((crc_flg == 2 || crc_flg) && text_mode)
++ init_code_cache();
++ while (size > 0) {
++ /* read */
++ if (crc_flg == 3 && text_mode) {
++ xsize = fread_txt(buf, BUFFERSIZE, f1);
++ if (xsize == 0)
++ break;
++ if (ferror(f1)) {
++ fatal_error("file read error\n");
++ }
++ }
++ else {
++ xsize = (size > BUFFERSIZE) ? BUFFERSIZE : size;
++ if (fread(buf, 1, xsize, f1) != xsize) {
++ fatal_error("file read error\n");
++ }
++ }
++ /* write */
++ if (f2) {
++ if (crc_flg == 2 && text_mode) {
++ if (fwrite_txt(buf, xsize, f2)) {
++ fatal_error("file write error\n");
++ }
++ }
++ else {
++ if (fwrite(buf, 1, xsize, f2) != xsize) {
++ fatal_error("file write error\n");
++ }
++ }
++ }
++ /* calculate crc */
++ if (crc_flg) {
++ calccrc(buf, xsize);
++ }
++ rsize += xsize;
++ if (crc_flg != 3 || !text_mode)
++ size -= xsize;
++ }
++ free(buf);
++ return rsize;
++}
++
++/* ------------------------------------------------------------------------ */
++int
++encode_stored_crc(ifp, ofp, size, original_size_var, write_size_var)
++ FILE *ifp, *ofp;
++ long size;
++ long *original_size_var;
++ long *write_size_var;
++{
++ int save_quiet;
++
++ save_quiet = quiet;
++ quiet = 1;
++ size = copyfile(ifp, ofp, size, 3);
++ *original_size_var = *write_size_var = size;
++ quiet = save_quiet;
++ return crc;
++}
++
++/* ------------------------------------------------------------------------ */
++/* convert path delimit
++ erreturns *filename */
++/* ------------------------------------------------------------------------ */
++unsigned char *
++convdelim(path, delim)
++ unsigned char *path;
++ unsigned char delim;
++{
++ unsigned char c;
++ unsigned char *p;
++#ifdef MULTIBYTE_CHAR
++ int kflg;
++
++ kflg = 0;
++#endif
++ for (p = path; (c = *p) != 0; p++) {
++#ifdef MULTIBYTE_CHAR
++ if (kflg) {
++ kflg = 0;
++ }
++ else if (MULTIBYTE_FIRST_P(c)) {
++ kflg = 1;
++ }
++ else
++#endif
++ if (c == '\\' || c == DELIM || c == DELIM2) {
++ *p = delim;
++ path = p + 1;
++ }
++ }
++ return path;
++}
++
++/* ------------------------------------------------------------------------ */
++/* If TRUE, archive file name is msdos SFX file name. */
++boolean
++archive_is_msdos_sfx1(name)
++ char *name;
++{
++ int len = strlen(name);
++
++ return ((len >= 4) &&
++ (strucmp(".COM", name + len - 4) == 0 ||
++ strucmp(".EXE", name + len - 4) == 0)) ||
++ ((len >= 2) &&
++ (strucmp(".x", name + len - 2) == 0));
++}
++
++/* ------------------------------------------------------------------------ */
++/* skip SFX header */
++boolean
++skip_msdos_sfx1_code(fp)
++ FILE *fp;
++{
++ unsigned char buffer[MAXSFXCODE];
++ unsigned char *p, *q;
++ int n;
++
++ n = fread(buffer, sizeof(char), MAXSFXCODE, fp);
++
++ for (p = buffer + 2, q = buffer + n - /* 5 */ (I_HEADER_LEVEL+1)-2; p < q; p++) {
++ /* found "-l??-" keyword (as METHOD type string) */
++ if (p[0] == '-' && p[1] == 'l' && p[4] == '-') {
++ /* size and checksum validate check */
++ if ( (p[I_HEADER_LEVEL-2] == 0 || p[I_HEADER_LEVEL-2] == 0)
++ && p[I_HEADER_SIZE-2] > 20
++ && p[I_HEADER_CHECKSUM-2] == calc_sum(p, p[-2])) {
++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR);
++ return TRUE;
++ } else if (p[I_HEADER_LEVEL-2] == 2 && p[I_HEADER_SIZE-2] >= 24
++ && p[I_ATTRIBUTE-2] == 0x20) {
++ fseek(fp, ((p - 2) - buffer) - n, SEEK_CUR);
++ return TRUE;
++ }
++ }
++ }
++
++ fseek(fp, -n, SEEK_CUR);
++ return FALSE;
++}
++
++/*
++ * strdup(3)
++ */
++
++/* ------------------------------------------------------------------------ */
++#ifdef NOSTRDUP
++char *
++strdup(buf)
++ char *buf;
++{
++ char *p;
++
++ if ((p = (char *) malloc(strlen(buf) + 1)) == NULL)
++ return NULL;
++ strcpy(p, buf);
++ return p;
++}
++#endif
++
++/*
++ * memmove( char *dst , char *src , size_t cnt )
++ */
++
++/* ------------------------------------------------------------------------ */
++#if defined(NOBSTRING) && !defined(__STDC__)
++void *
++memmove(dst, src, cnt)
++ register char *dst, *src;
++ register int cnt;
++{
++ if (dst == src)
++ return dst;
++ if (src > dst) {
++ while (--cnt >= 0)
++ *dst++ = *src++;
++ }
++ else {
++ dst += cnt;
++ src += cnt;
++ while (--cnt >= 0)
++ *--dst = *--src;
++ }
++ return dst;
++}
++#endif
++
++/*
++ * rename - change the name of file 91.11.02 by Tomohiro Ishikawa
++ * (ishikawa@gaia.cow.melco.CO.JP) 92.01.20 little modified (added #ifdef) by
++ * Masaru Oki 92.01.28 added mkdir() and rmdir() by Tomohiro Ishikawa
++ */
++
++#if defined(NOFTRUNCATE) && !defined(_MINIX)
++
++/* ------------------------------------------------------------------------ */
++int
++rename(from, to)
++ char *from, *to;
++{
++ struct stat s1, s2;
++ extern int errno;
++
++ if (stat(from, &s1) < 0)
++ return (-1);
++ /* is 'FROM' file a directory? */
++ if ((s1.st_mode & S_IFMT) == S_IFDIR) {
++ errno = ENOTDIR;
++ return (-1);
++ }
++ if (stat(to, &s2) >= 0) { /* 'TO' exists! */
++ /* is 'TO' file a directory? */
++ if ((s2.st_mode & S_IFMT) == S_IFDIR) {
++ errno = EISDIR;
++ return (-1);
++ }
++ if (unlink(to) < 0)
++ return (-1);
++ }
++ if (link(from, to) < 0)
++ return (-1);
++ if (unlink(from) < 0)
++ return (-1);
++ return (0);
++}
++#endif /* NOFTRUNCATE */
++/* ------------------------------------------------------------------------ */
++
++#ifdef NOMKDIR
++#ifndef MKDIRPATH
++#define MKDIRPATH "/bin/mkdir"
++#endif
++#ifndef RMDIRPATH
++#define RMDIRPATH "/bin/rmdir"
++#endif
++int
++rmdir(path)
++ char *path;
++{
++ int stat, rtn = 0;
++ char *cmdname;
++ if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1))
++ == 0)
++ return (-1);
++ strcpy(cmdname, RMDIRPATH);
++ *(cmdname + strlen(RMDIRPATH)) = ' ';
++ strcpy(cmdname + strlen(RMDIRPATH) + 1, path);
++ if ((stat = system(cmdname)) < 0)
++ rtn = -1; /* fork or exec error */
++ else if (stat) { /* RMDIR command error */
++ errno = EIO;
++ rtn = -1;
++ }
++ free(cmdname);
++ return (rtn);
++}
++
++/* ------------------------------------------------------------------------ */
++int
++mkdir(path, mode)
++ char *path;
++ int mode;
++{
++ int child, stat;
++ char *cmdname, *cmdpath = MKDIRPATH;
++ if ((cmdname = (char *) strrchr(cmdpath, '/')) == (char *) 0)
++ cmdname = cmdpath;
++ if ((child = fork()) < 0)
++ return (-1); /* fork error */
++ else if (child) { /* parent process */
++ while (child != wait(&stat)) /* ignore signals */
++ continue;
++ }
++ else { /* child process */
++ int maskvalue;
++ maskvalue = umask(0); /* get current umask() value */
++ umask(maskvalue | (0777 & ~mode)); /* set it! */
++ execl(cmdpath, cmdname, path, (char *) 0);
++ /* never come here except execl is error */
++ return (-1);
++ }
++ if (stat != 0) {
++ errno = EIO; /* cannot get error num. */
++ return (-1);
++ }
++ return (0);
++}
++#endif
++
++/*
++ * strucmp modified: Oct 29 1991 by Masaru Oki
++ */
++
++#ifndef USESTRCASECMP
++static int
++my_toupper(n)
++ register int n;
++{
++ if (n >= 'a' && n <= 'z')
++ return n & (~('a' - 'A'));
++ return n;
++}
++
++/* ------------------------------------------------------------------------ */
++int
++strucmp(s, t)
++ register char *s, *t;
++{
++ while (my_toupper(*s++) == my_toupper(*t++))
++ if (!*s || !*t)
++ break;
++ if (!*s && !*t)
++ return 0;
++ return 1;
++}
++#endif
++
++/* ------------------------------------------------------------------------ */
++#ifdef NOMEMSET
++/* Public Domain memset(3) */
++char *
++memset(s, c, n)
++ char *s;
++ int c, n;
++{
++ char *p = s;
++ while (n--)
++ *p++ = (char) c;
++ return s;
++}
++#endif
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* compile-command:"gcc -c util.c" */
++/* End: */
+--- lha-1.14i.orig/debian/org/lhext.c
++++ lha-1.14i/debian/org/lhext.c
+@@ -0,0 +1,425 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX */
++/* lhext.c -- LHarc extract */
++/* */
++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */
++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */
++/* Ver. 0.03 LHa for UNIX 1991.12.17 M.Oki */
++/* Ver. 1.12 LHa for UNIX 1993.10.01 N.Watazaki */
++/* Ver. 1.13b Symbolic Link Update Bug Fix 1994.06.21 N.Watazaki */
++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14e bugfix 1999.04.30 T.Okamoto */
++/* ------------------------------------------------------------------------ */
++#include "lha.h"
++/* ------------------------------------------------------------------------ */
++static int skip_flg = FALSE; /* FALSE..No Skip , TRUE..Skip */
++static char *methods[] =
++{
++ LZHUFF0_METHOD, LZHUFF1_METHOD, LZHUFF2_METHOD, LZHUFF3_METHOD,
++ LZHUFF4_METHOD, LZHUFF5_METHOD, LZHUFF6_METHOD, LZHUFF7_METHOD,
++ LARC_METHOD, LARC5_METHOD, LARC4_METHOD,
++ LZHDIRS_METHOD,
++ NULL
++};
++
++/* ------------------------------------------------------------------------ */
++static boolean
++inquire_extract(name)
++ char *name;
++{
++ struct stat stbuf;
++
++ skip_flg = FALSE;
++ if (stat(name, &stbuf) >= 0) {
++ if (!is_regularfile(&stbuf)) {
++ error("Already exist (not a file)", name);
++ return FALSE;
++ }
++
++ if (noexec) {
++ printf("EXTRACT %s but file is exist.\n", name);
++ return FALSE;
++ }
++ else if (!force) {
++ if (!isatty(0))
++ return FALSE;
++
++ switch (inquire("OverWrite ?(Yes/[No]/All/Skip)", name, "YyNnAaSs\n")) {
++ case 0:
++ case 1:/* Y/y */
++ break;
++ case 2:
++ case 3:/* N/n */
++ case 8:/* Return */
++ return FALSE;
++ case 4:
++ case 5:/* A/a */
++ force = TRUE;
++ break;
++ case 6:
++ case 7:/* S/s */
++ skip_flg = TRUE;
++ break;
++ }
++ }
++ }
++ if (noexec)
++ printf("EXTRACT %s\n", name);
++
++ return TRUE;
++}
++
++/* ------------------------------------------------------------------------ */
++static boolean
++make_parent_path(name)
++ char *name;
++{
++ char path[FILENAME_LENGTH];
++ struct stat stbuf;
++ register char *p;
++
++ /* make parent directory name into PATH for recursive call */
++ strcpy(path, name);
++ for (p = path + strlen(path); p > path; p--)
++ if (p[-1] == '/') {
++ *--p = '\0';
++ break;
++ }
++
++ if (p == path) {
++ message("Why?", "ROOT");
++ return FALSE; /* no more parent. */
++ }
++
++ if (GETSTAT(path, &stbuf) >= 0) {
++ if (is_directory(&stbuf))
++ return TRUE;
++ error("Not a directory", path);
++ return FALSE;
++ }
++ errno = 0;
++
++ if (verbose)
++ printf("Making directory \"%s\".\n", path);
++
++ if (mkdir(path, 0777) >= 0) /* try */
++ return TRUE; /* successful done. */
++ errno = 0;
++
++ if (!make_parent_path(path))
++ return FALSE;
++
++ if (mkdir(path, 0777) < 0) { /* try again */
++ message("Cannot make directory", path);
++ return FALSE;
++ }
++
++ return TRUE;
++}
++
++/* ------------------------------------------------------------------------ */
++static FILE *
++open_with_make_path(name)
++ char *name;
++{
++ FILE *fp;
++
++ if ((fp = fopen(name, WRITE_BINARY)) == NULL) {
++ errno = 0;
++ if (!make_parent_path(name) ||
++ (fp = fopen(name, WRITE_BINARY)) == NULL)
++ error("Cannot extract", name);
++ errno = 0;
++ }
++ return fp;
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++adjust_info(name, hdr)
++ char *name;
++ LzHeader *hdr;
++{
++ time_t utimebuf[2];
++
++ /* adjust file stamp */
++ utimebuf[0] = utimebuf[1] = hdr->unix_last_modified_stamp;
++
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK)
++ utime(name, utimebuf);
++
++ if (hdr->extend_type == EXTEND_UNIX
++ || hdr->extend_type == EXTEND_OS68K
++ || hdr->extend_type == EXTEND_XOSK) {
++#ifdef NOT_COMPATIBLE_MODE
++ Please need your modification in this space.
++#else
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) != UNIX_FILE_SYMLINK)
++ chmod(name, hdr->unix_mode);
++#endif
++ if (!getuid()) {
++#ifndef HAVE_NO_LCHOWN
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK)
++ lchown(name, hdr->unix_uid, hdr->unix_gid);
++ else
++#endif /* HAVE_NO_LCHWON */
++ chown(name, hdr->unix_uid, hdr->unix_gid);
++ }
++ errno = 0;
++ }
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++extract_one(afp, hdr)
++ FILE *afp; /* archive file */
++ LzHeader *hdr;
++{
++ FILE *fp; /* output file */
++ struct stat stbuf;
++ char name[257];
++ int crc;
++ int method;
++ boolean save_quiet, save_verbose, up_flag;
++ char *q = hdr->name, c;
++
++ if (ignore_directory && rindex(hdr->name, '/')) {
++ q = (char *) rindex(hdr->name, '/') + 1;
++ }
++ else {
++ if (*q == '/') {
++ q++;
++ /*
++ * if OSK then strip device name
++ */
++ if (hdr->extend_type == EXTEND_OS68K
++ || hdr->extend_type == EXTEND_XOSK) {
++ do
++ c = (*q++);
++ while (c && c != '/');
++ if (!c || !*q)
++ q = "."; /* if device name only */
++ }
++ }
++ }
++
++ if (extract_directory)
++ sprintf(name, "%s/%s", extract_directory, q);
++ else
++ strcpy(name, q);
++
++
++ /* LZHDIRS_METHODĥإåå */
++ /* 1999.4.30 t.okamoto */
++ for (method = 0;; method++) {
++ if (methods[method] == NULL) {
++ error("Unknown method skiped ...", name);
++ return;
++ }
++ if (bcmp(hdr->method, methods[method], 5) == 0)
++ break;
++ }
++
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_REGULAR
++ && method != LZHDIRS_METHOD_NUM) {
++#if 0
++ for (method = 0;; method++) {
++ if (methods[method] == NULL) {
++ error("Unknown method skiped ...", name);
++ return;
++ }
++ if (bcmp(hdr->method, methods[method], 5) == 0)
++ break;
++ }
++#endif
++
++ reading_filename = archive_name;
++ writting_filename = name;
++ if (output_to_stdout || verify_mode) {
++ if (noexec) {
++ printf("%s %s\n", verify_mode ? "VERIFY" : "EXTRACT", name);
++ if (afp == stdin) {
++ int i = hdr->packed_size;
++ while (i--)
++ fgetc(afp);
++ }
++ return;
++ }
++
++ save_quiet = quiet;
++ save_verbose = verbose;
++ if (!quiet && output_to_stdout) {
++ printf("::::::::\n%s\n::::::::\n", name);
++ quiet = TRUE;
++ verbose = FALSE;
++ }
++ else if (verify_mode) {
++ quiet = FALSE;
++ verbose = TRUE;
++ }
++
++ crc = decode_lzhuf
++ (afp, stdout, hdr->original_size, hdr->packed_size, name, method);
++ quiet = save_quiet;
++ verbose = save_verbose;
++ }
++ else {
++ if (skip_flg == FALSE) {
++ up_flag = inquire_extract(name);
++ if (up_flag == FALSE && force == FALSE) {
++ return;
++ }
++ }
++
++ if (skip_flg == TRUE) { /* if skip_flg */
++ if (stat(name, &stbuf) == 0 && force != TRUE) {
++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) {
++ if (quiet != TRUE)
++ printf("%s : Skipped...\n", name);
++ return;
++ }
++ }
++ }
++ if (noexec) {
++ if (afp == stdin) {
++ int i = hdr->packed_size;
++ while (i--)
++ fgetc(afp);
++ }
++ return;
++ }
++
++ signal(SIGINT, interrupt);
++ signal(SIGHUP, interrupt);
++
++ unlink(name);
++ errno = 0;
++ remove_extracting_file_when_interrupt = TRUE;
++
++ if ((fp = open_with_make_path(name)) != NULL) {
++ crc = decode_lzhuf
++ (afp, fp, hdr->original_size, hdr->packed_size, name, method);
++ fclose(fp);
++ }
++ remove_extracting_file_when_interrupt = FALSE;
++ signal(SIGINT, SIG_DFL);
++ signal(SIGHUP, SIG_DFL);
++
++ if (!fp)
++ return;
++ }
++
++ errno = 0;
++ if (hdr->has_crc && crc != hdr->crc)
++ error("CRC error", name);
++ }
++ else if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_DIRECTORY
++ || (hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK
++ || method == LZHDIRS_METHOD_NUM) {
++ /* ǡSymblic Link ϡפ */
++ if (!ignore_directory && !verify_mode) {
++ if (noexec) {
++ if (quiet != TRUE)
++ printf("EXTRACT %s (directory)\n", name);
++ return;
++ }
++ /* NAME has trailing SLASH '/', (^_^) */
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) {
++ char buf[256], *bb1, *bb2;
++ int l_code;
++ strcpy(buf, name);
++ bb1 = strtok(buf, "|");
++ bb2 = strtok(NULL, "|");
++
++#ifdef S_IFLNK
++ if (skip_flg == FALSE) {
++ up_flag = inquire_extract(name);
++ if (up_flag == FALSE && force == FALSE) {
++ return;
++ }
++ } else {
++ if (GETSTAT(bb1, &stbuf) == 0 && force != TRUE) {
++ if (stbuf.st_mtime >= hdr->unix_last_modified_stamp) {
++ if (quiet != TRUE)
++ printf("%s : Skipped...\n", bb1);
++ return;
++ }
++ }
++ }
++
++ unlink(bb1);
++ l_code = symlink(bb2, bb1);
++ if (l_code < 0) {
++ if (quiet != TRUE)
++ warning("Can't make Symbolic Link : ");
++ }
++ if (quiet != TRUE) {
++ printf("Symbolic Link %s -> %s\n", bb1, bb2);
++ }
++ strcpy(name, bb1); /* Symbolic's name set */
++#else
++ sprintf(buf, "%s -> %s", bb1, bb2);
++ warning("Can't make Symbolic Link", buf);
++ return;
++#endif
++ } else { /* make directory */
++ if (!output_to_stdout && !make_parent_path(name))
++ return;
++ }
++ }
++ }
++ else {
++ error("Unknown information", name);
++ }
++
++ if (!output_to_stdout)
++ adjust_info(name, hdr);
++}
++
++/* ------------------------------------------------------------------------ */
++/* EXTRACT COMMAND MAIN */
++/* ------------------------------------------------------------------------ */
++void
++cmd_extract()
++{
++ LzHeader hdr;
++ long pos;
++ FILE *afp;
++
++ /* open archive file */
++ if ((afp = open_old_archive()) == NULL)
++ fatal_error(archive_name);
++
++ if (archive_is_msdos_sfx1(archive_name))
++ skip_msdos_sfx1_code(afp);
++
++ /* extract each files */
++ while (get_header(afp, &hdr)) {
++ if (need_file(hdr.name)) {
++ pos = ftell(afp);
++ extract_one(afp, &hdr);
++ fseek(afp, pos + hdr.packed_size, SEEK_SET);
++ } else {
++ if (afp != stdin)
++ fseek(afp, hdr.packed_size, SEEK_CUR);
++ else {
++ int i = hdr.packed_size;
++ while (i--)
++ fgetc(afp);
++ }
++ }
++ }
++
++ /* close archive file */
++ fclose(afp);
++
++ return;
++}
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* End: */
+--- lha-1.14i.orig/debian/org/lha_macro.h
++++ lha-1.14i/debian/org/lha_macro.h
+@@ -0,0 +1,420 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX Archiver Driver macro define */
++/* */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Ver. 1.14 Soruce All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14g modified 2000.05.06 T.OKAMOTO */
++/* ------------------------------------------------------------------------ */
++
++#define LHA_VERSION "lha for unix version 1.14i"
++
++/* Most of System V, define SYSTIME_HAS_NO_TM */
++#ifdef SYSTIME_HAS_NO_TM
++#include <time.h>
++#else
++#include <sys/time.h>
++#endif /* SYSTIME_HAS_NO_TM */
++
++/* ------------------------------------------------------------------------ */
++/* Directory Access Stuff */
++/* ------------------------------------------------------------------------ */
++#ifndef NODIRECTORY
++#ifdef SYSV_SYSTEM_DIR
++
++#include <dirent.h>
++
++#define DIRENTRY struct dirent
++#define NAMLEN(p) strlen (p->d_name)
++
++#else /* not SYSV_SYSTEM_DIR */
++
++#ifdef NONSYSTEM_DIR_LIBRARY
++#include "lhdir.h"
++#else
++#include <sys/dir.h>
++#endif /* not NONSYSTEM_DIR_LIBRARY */
++
++#define DIRENTRY struct direct
++#define NAMLEN(p) p->d_namlen
++
++#endif /* not SYSV_SYSTEM_DIR */
++#endif /* NODIRECTORY */
++
++/* ------------------------------------------------------------------------ */
++/* Other Define */
++/* ------------------------------------------------------------------------ */
++/* Not support 'void' */
++#ifdef NOVOID
++#define void
++#endif
++
++#ifndef SEEK_SET
++#define SEEK_SET 0
++#define SEEK_CUR 1
++#define SEEK_END 2
++#endif /* SEEK_SET
++
++
++/* non-integral functions */
++extern struct tm *localtime();
++extern char *getenv();
++
++#ifndef _MINIX
++#ifndef __STDC__
++extern char *malloc();
++extern char *realloc();
++#endif
++#endif
++
++/* external variables */
++extern int errno;
++
++#define FALSE 0
++#define TRUE 1
++typedef int boolean;
++
++/* used by qsort() for alphabetic-sort */
++#define STRING_COMPARE(a,b) strcmp((a),(b))
++
++#define FILENAME_LENGTH 1024
++
++/* ------------------------------------------------------------------------ */
++/* YOUR CUSTOMIZIES */
++/* ------------------------------------------------------------------------ */
++
++#ifndef ARCHIVENAME_EXTENTION
++#define ARCHIVENAME_EXTENTION ".lzh"
++#endif
++#ifndef BACKUPNAME_EXTENTION
++#define BACKUPNAME_EXTENTION ".bak"
++#endif
++#ifndef TMP_FILENAME_TEMPLATE
++#define TMP_FILENAME_TEMPLATE "/tmp/lhXXXXXX"
++#endif
++
++#define SJC_FIRST_P(c) \
++ (((unsigned char)(c) >= 0x80) && \
++ (((unsigned char)(c) < 0xa0) || \
++ ((unsigned char)(c) >= 0xe0) && \
++ ((unsigned char)(c) < 0xfd)))
++#define SJC_SECOND_P(c) \
++ (((unsigned char)(c) >= 0x40) && \
++ ((unsigned char)(c) < 0xfd) && \
++ ((unsigned char)(c) != 0x7f))
++
++#ifdef MULTIBYTE_CHAR
++#define MULTIBYTE_FIRST_P SJC_FIRST_P
++#define MULTIBYTE_SECOND_P SJC_SECOND_P
++#endif /* MULTIBYTE_CHAR */
++
++/* ------------------------------------------------------------------------ */
++/* LHa File Definitions */
++/* ------------------------------------------------------------------------ */
++#ifdef S_IFLNK
++#define GETSTAT lstat
++#else
++#define GETSTAT stat
++#endif
++
++#ifdef LHA_MAIN_SRC
++#define EXTERN
++#else
++#define EXTERN extern
++#endif /* LHA_MAIN_SRC */
++
++#define LZHUFF0_METHOD "-lh0-"
++#define LZHUFF1_METHOD "-lh1-"
++#define LZHUFF2_METHOD "-lh2-"
++#define LZHUFF3_METHOD "-lh3-"
++#define LZHUFF4_METHOD "-lh4-"
++#define LZHUFF5_METHOD "-lh5-"
++#define LZHUFF6_METHOD "-lh6-"
++#define LZHUFF7_METHOD "-lh7-"
++#define LARC_METHOD "-lzs-"
++#define LARC5_METHOD "-lz5-"
++#define LARC4_METHOD "-lz4-"
++#define LZHDIRS_METHOD "-lhd-"
++
++#define METHOD_TYPE_STRAGE 5
++
++/* Added N.Watazaki ..V */
++#define LZHUFF0_METHOD_NUM 0
++#define LZHUFF1_METHOD_NUM 1
++#define LZHUFF2_METHOD_NUM 2
++#define LZHUFF3_METHOD_NUM 3
++#define LZHUFF4_METHOD_NUM 4
++#define LZHUFF5_METHOD_NUM 5
++#define LZHUFF6_METHOD_NUM 6
++#define LZHUFF7_METHOD_NUM 7
++#define LARC_METHOD_NUM 8
++#define LARC5_METHOD_NUM 9
++#define LARC4_METHOD_NUM 10
++#define LZHDIRS_METHOD_NUM 11
++/* Added N.Watazaki ..^ */
++
++#define I_HEADER_SIZE 0
++#define I_HEADER_CHECKSUM 1
++#define I_METHOD 2
++#define I_PACKED_SIZE 7
++#define I_ORIGINAL_SIZE 11
++#define I_LAST_MODIFIED_STAMP 15
++#define I_ATTRIBUTE 19
++#define I_HEADER_LEVEL 20
++#define I_NAME_LENGTH 21
++#define I_NAME 22
++
++#define I_CRC 22 /* + name_length */
++#define I_EXTEND_TYPE 24 /* + name_length */
++#define I_MINOR_VERSION 25 /* + name_length */
++#define I_UNIX_LAST_MODIFIED_STAMP 26 /* + name_length */
++#define I_UNIX_MODE 30 /* + name_length */
++#define I_UNIX_UID 32 /* + name_length */
++#define I_UNIX_GID 34 /* + name_length */
++#define I_UNIX_EXTEND_BOTTOM 36 /* + name_length */
++
++#define I_GENERIC_HEADER_BOTTOM I_EXTEND_TYPE
++
++#define EXTEND_GENERIC 0
++#define EXTEND_UNIX 'U'
++#define EXTEND_MSDOS 'M'
++#define EXTEND_MACOS 'm'
++#define EXTEND_OS9 '9'
++#define EXTEND_OS2 '2'
++#define EXTEND_OS68K 'K'
++#define EXTEND_OS386 '3' /* OS-9000??? */
++#define EXTEND_HUMAN 'H'
++#define EXTEND_CPM 'C'
++#define EXTEND_FLEX 'F'
++#define EXTEND_RUNSER 'R'
++
++/* this OS type is not official */
++
++#define EXTEND_TOWNSOS 'T'
++#define EXTEND_XOSK 'X'
++
++/*---------------------------------------------------------------------------*/
++
++#define GENERIC_ATTRIBUTE 0x20
++#define GENERIC_DIRECTORY_ATTRIBUTE 0x10
++#define HEADER_LEVEL0 0x00
++#define HEADER_LEVEL1 0x01
++#define HEADER_LEVEL2 0x02
++
++#define CURRENT_UNIX_MINOR_VERSION 0x00
++
++#define DELIM ('/')
++#define DELIM2 (0xff)
++#define DELIMSTR "/"
++
++#define OSK_RW_RW_RW 0000033
++#define OSK_FILE_REGULAR 0000000
++#define OSK_DIRECTORY_PERM 0000200
++#define OSK_SHARED_PERM 0000100
++#define OSK_OTHER_EXEC_PERM 0000040
++#define OSK_OTHER_WRITE_PERM 0000020
++#define OSK_OTHER_READ_PERM 0000010
++#define OSK_OWNER_EXEC_PERM 0000004
++#define OSK_OWNER_WRITE_PERM 0000002
++#define OSK_OWNER_READ_PERM 0000001
++
++#define UNIX_FILE_TYPEMASK 0170000
++#define UNIX_FILE_REGULAR 0100000
++#define UNIX_FILE_DIRECTORY 0040000
++#define UNIX_FILE_SYMLINK 0120000
++#define UNIX_SETUID 0004000
++#define UNIX_SETGID 0002000
++#define UNIX_STYCKYBIT 0001000
++#define UNIX_OWNER_READ_PERM 0000400
++#define UNIX_OWNER_WRITE_PERM 0000200
++#define UNIX_OWNER_EXEC_PERM 0000100
++#define UNIX_GROUP_READ_PERM 0000040
++#define UNIX_GROUP_WRITE_PERM 0000020
++#define UNIX_GROUP_EXEC_PERM 0000010
++#define UNIX_OTHER_READ_PERM 0000004
++#define UNIX_OTHER_WRITE_PERM 0000002
++#define UNIX_OTHER_EXEC_PERM 0000001
++#define UNIX_RW_RW_RW 0000666
++
++#define LZHEADER_STRAGE 4096
++
++#define MAX_INDICATOR_COUNT 64
++
++typedef short node;
++
++/* ------------------------------------------------------------------------ */
++/* Slide relation */
++/* ------------------------------------------------------------------------ */
++#if defined(__STDC__) || defined(AIX)
++
++#include <limits.h>
++
++#else
++
++#ifndef CHAR_BIT
++#define CHAR_BIT 8
++#endif
++
++#ifndef UCHAR_MAX
++#define UCHAR_MAX ((1<<(sizeof(unsigned char)*8))-1)
++#endif
++
++#ifndef USHRT_MAX
++#define USHRT_MAX ((1<<(sizeof(unsigned short)*8))-1)
++#endif
++
++#ifndef SHRT_MAX
++#define SHRT_MAX ((1<<(sizeof(short)*8-1))-1)
++#endif
++
++#ifndef SHRT_MIN
++#define SHRT_MIN (SHRT_MAX-USHRT_MAX)
++#endif
++
++#ifndef ULONG_MAX
++#define ULONG_MAX ((1<<(sizeof(unsigned long)*8))-1)
++#endif
++
++#ifndef LONG_MAX
++#define LONG_MAX ((1<<(sizeof(long)*8-1))-1)
++#endif
++
++#ifndef LONG_MIN
++#define LONG_MIN (LONG_MAX-ULONG_MAX)
++#endif
++
++#endif /* not __STDC__ */
++
++/* ------------------------------------------------------------------------ */
++/* FILE Attribute */
++/* ------------------------------------------------------------------------ */
++#define is_directory(statp) (((statp)->st_mode & S_IFMT) == S_IFDIR)
++#define is_symlink(statp) (((statp)->st_mode & S_IFMT) == S_IFLNK)
++#define is_regularfile(statp) (((statp)->st_mode & S_IFMT) == S_IFREG)
++
++#ifdef MSDOS
++#define WRITE_BINARY "wb"
++#define READ_BINARY "rb"
++#else
++#define WRITE_BINARY "w"
++#define READ_BINARY "r"
++#endif
++
++/* ------------------------------------------------------------------------ */
++/* Memory and String function */
++/* ------------------------------------------------------------------------ */
++#include <string.h>
++
++#ifdef NOINDEX
++#define index strchr
++#define rindex strrchr
++#endif /* NOINDEX */
++
++#ifdef NOBSTRING
++#define bcmp(a,b,n) memcmp ((a),(b),(n))
++#define bzero(d,n) memset((d),0,(n))
++#define bcopy(s,d,n) memmove((d),(s),(n))
++#endif /* NOBSTRING */
++
++#ifdef USESTRCASECMP
++#define strucmp(p,q) strcasecmp((p),(q))
++#endif
++
++/* ------------------------------------------------------------------------ */
++/* Individual macro define */
++/* ------------------------------------------------------------------------ */
++
++/* from crcio.c */
++#define CRCPOLY 0xA001 /* CRC-16 */
++#define UPDATE_CRC(c) crc = crctable[(crc ^ (c)) & 0xFF] ^ (crc >> CHAR_BIT)
++
++/* dhuf.c */
++#define N_CHAR (256 + 60 - THRESHOLD + 1)
++#define TREESIZE_C (N_CHAR * 2)
++#define TREESIZE_P (128 * 2)
++#define TREESIZE (TREESIZE_C + TREESIZE_P)
++#define ROOT_C 0
++#define ROOT_P TREESIZE_C
++
++/* header.c */
++#define setup_get(PTR) (get_ptr = (PTR))
++#define get_byte() (*get_ptr++ & 0xff)
++#define put_ptr get_ptr
++#define setup_put(PTR) (put_ptr = (PTR))
++#define put_byte(c) (*put_ptr++ = (char)(c))
++
++/* huf.c */
++#define NP (MAX_DICBIT + 1)
++#define NT (USHRT_BIT + 3)
++#if 0
++#define PBIT 4 /* smallest integer such that (1 << PBIT) > * NP */
++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */
++#endif
++
++#define PBIT 5 /* smallest integer such that (1 << PBIT) > * NP */
++#define TBIT 5 /* smallest integer such that (1 << TBIT) > * NT */
++
++#define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD)
++
++/* #if NT > NP #define NPT NT #else #define NPT NP #endif */
++#define NPT 0x80
++
++/* larc.c */
++#define MAGIC0 18
++#define MAGIC5 19
++
++/* lharc.c */
++#define CMD_UNKNOWN 0
++#define CMD_EXTRACT 1
++#define CMD_ADD 2
++#define CMD_LIST 3
++#define CMD_DELETE 4
++
++#define STREQU(a,b) (((a)[0] == (b)[0]) ? (strcmp ((a),(b)) == 0) : FALSE)
++
++/* shuf.c */
++#define N1 286 /* alphabet size */
++#define N2 (2 * N1 - 1) /* # of nodes in Huffman tree */
++#define EXTRABITS 8 /* >= log2(F-THRESHOLD+258-N1) */
++#define BUFBITS 16 /* >= log2(MAXBUF) */
++#define LENFIELD 4 /* bit size of length field for tree output */
++
++/* util.c */
++#define BUFFERSIZE 2048
++#define MAXSFXCODE 1024*64
++
++#ifndef NULL
++#define NULL (char *)0
++#endif
++
++/* slide.c */
++/*
++#define PERCOLATE 1
++#define NIL 0
++#define HASH(p, c) ((p) + ((c) << hash1) + hash2)
++*/
++
++/* slide.c */
++#ifdef SUPPORT_LH7
++#define MAX_DICBIT 16 /* lh7 use 16bits */
++#endif
++
++#ifndef SUPPORT_LH7
++#define MAX_DICBIT 15 /* lh6 use 15bits */
++#endif
++
++#define MAX_DICSIZ (1 << MAX_DICBIT)
++#define MATCHBIT 8 /* bits for MAXMATCH - THRESHOLD */
++#define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */
++#define THRESHOLD 3 /* choose optimal value */
++
++/* from huf.c */
++
++/* alphabet = {0, 1, 2, ..., NC - 1} */
++#define CBIT 9 /* $\lfloor \log_2 NC \rfloor + 1$ */
++#define USHRT_BIT 16 /* (CHAR_BIT * sizeof(ushort)) */
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* End: */
+--- lha-1.14i.orig/debian/org/lhlist.c
++++ lha-1.14i/debian/org/lhlist.c
+@@ -0,0 +1,348 @@
++/* ------------------------------------------------------------------------ */
++/* LHa for UNIX */
++/* lhlist.c -- LHarc list */
++/* */
++/* Copyright (C) MCMLXXXIX Yooichi.Tagawa */
++/* Modified Nobutaka Watazaki */
++/* */
++/* Ver. 0.00 Original 1988.05.23 Y.Tagawa */
++/* Ver. 1.00 Fixed 1989.09.22 Y.Tagawa */
++/* Ver. 1.01 Bug Fix for month name 1989.12.25 Y.Tagawa */
++/* Ver. 1.10 Changed list format 1993.10.01 N.Watazaki */
++/* Ver. 1.14 Source All chagned 1995.01.14 N.Watazaki */
++/* Ver. 1.14e Bug Fix for many problems 1999.05.25 T.Okamoto */
++/* ------------------------------------------------------------------------ */
++#include "lha.h"
++
++/* ------------------------------------------------------------------------ */
++static long packed_size_total;
++static long original_size_total;
++static int list_files;
++
++/* ------------------------------------------------------------------------ */
++/* Print Stuff */
++/* ------------------------------------------------------------------------ */
++/* need 14 or 22 (when verbose_listing is TRUE) column spaces */
++static void
++print_size(packed_size, original_size)
++ long packed_size, original_size;
++{
++ if (verbose_listing)
++ printf("%7d ", packed_size);
++
++ printf("%7d ", original_size);
++
++ if (original_size == 0L)
++ printf("******");
++ else /* Changed N.Watazaki */
++ printf("%5.1f%%", packed_size * 100.0 / original_size);
++}
++
++/* ------------------------------------------------------------------------ */
++/* need 12 or 17 (when verbose_listing is TRUE) column spaces */
++static void
++print_stamp(t)
++ time_t t;
++{
++ static boolean got_now = FALSE;
++ static time_t now;
++ static unsigned int threshold;
++ static char t_month[12 * 3 + 1] = "JanFebMarAprMayJunJulAugSepOctNovDec";
++ struct tm *p;
++
++ if (t == 0) {
++ printf(" "); /* 12 spaces */
++ return;
++ }
++
++ if (!got_now) {
++ now = time((time_t *) 0);
++ p = localtime(&now);
++ threshold = p->tm_year * 12 + p->tm_mon - 6;
++ got_now = TRUE;
++ }
++
++ p = localtime(&t);
++
++ if (p->tm_year * 12 + p->tm_mon > threshold)
++ printf("%.3s %2d %02d:%02d",
++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_hour, p->tm_min);
++ else
++ printf("%.3s %2d %04d",
++ &t_month[p->tm_mon * 3], p->tm_mday, p->tm_year + 1900);
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++print_bar()
++{
++ char *p, *q;
++ /* 17+1+(0 or 7+1)+7+1+6+1+(0 or 1+4)+(12 or 17)+1+20 */
++ /* 12345678901234567_ 1234567_123456 _123456789012 1234 */
++
++ if (verbose_listing) {
++ p = "- ------ ---------- ";
++ q = " -------------";
++ }
++ else {
++ p = " ";
++ q = " --------------------";
++ }
++
++ if (verbose)
++ q = "";
++
++ printf("---------- ----------- ------- ------%s------------%s\n", p, q);
++}
++
++/* ------------------------------------------------------------------------ */
++/* */
++/* ------------------------------------------------------------------------ */
++static void
++list_header()
++{
++ char *p, *q;
++
++ if (verbose_listing) {
++ p = "PACKED SIZE RATIO METHOD CRC";
++ q = " NAME";
++ }
++ else {
++ p = " SIZE RATIO";
++ q = " NAME";
++ }
++
++ if (verbose)
++ q = "";
++
++ printf(" PERMSSN UID GID %s STAMP%s\n", p, q);
++#if 0
++ printf(" PERMSSN UID GID %s SIZE RATIO%s %s STAMP%s%s\n",
++ verbose_listing ? " PACKED " : "", /* 8,0 */
++ verbose_listing ? " CRC" : "", /* 5,0 */
++ verbose_listing ? " " : "", /* 2,0 */
++ verbose_listing ? " " : " ", /* 6,3 */
++ verbose ? "" : " NAME");
++#endif
++ print_bar();
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++list_one(hdr)
++ register LzHeader *hdr;
++{
++ register int mode;
++ register char *p;
++ char method[6];
++ char modebits[11];
++
++ if (verbose)
++ printf("%s\n", hdr->name);
++
++ strncpy(method, hdr->method, 5);
++ method[5] = '\0';
++
++ switch (mode = hdr->extend_type) {
++ case EXTEND_UNIX:
++ mode = hdr->unix_mode;
++
++ if (mode & UNIX_FILE_DIRECTORY)
++ modebits[0] = 'd';
++ else if ((mode & UNIX_FILE_SYMLINK) == UNIX_FILE_SYMLINK)
++ modebits[0] = 'l';
++ else
++ modebits[0] = '-';
++ modebits[1] = ((mode & UNIX_OWNER_READ_PERM) ? 'r' : '-');
++ modebits[2] = ((mode & UNIX_OWNER_WRITE_PERM) ? 'w' : '-');
++ modebits[3] = (mode & UNIX_SETUID) ? 's' :
++ ((mode & UNIX_OWNER_EXEC_PERM) ? 'x' : '-');
++ modebits[4] = ((mode & UNIX_GROUP_READ_PERM) ? 'r' : '-');
++ modebits[5] = ((mode & UNIX_GROUP_WRITE_PERM) ? 'w' : '-');
++ modebits[6] = (mode & UNIX_SETGID) ? 's' :
++ ((mode & UNIX_GROUP_EXEC_PERM) ? 'x' : '-');
++ modebits[7] = ((mode & UNIX_OTHER_READ_PERM) ? 'r' : '-');
++ modebits[8] = ((mode & UNIX_OTHER_WRITE_PERM) ? 'w' : '-');
++ modebits[9] = (mode & UNIX_STYCKYBIT) ? 't' :
++ ((mode & UNIX_OTHER_EXEC_PERM) ? 'x' : '-');
++ modebits[10] = 0;
++
++ printf("%s %5d/%-5d ", modebits,
++ hdr->unix_uid, hdr->unix_gid);
++ break;
++ case EXTEND_OS68K:
++ /**/ case EXTEND_XOSK:/**/
++ mode = hdr->unix_mode;
++ printf("%c%c%c%c%c%c%c%c %5d/%-5d",
++ ((mode & OSK_DIRECTORY_PERM) ? 'd' : '-'),
++ ((mode & OSK_SHARED_PERM) ? 's' : '-'),
++ ((mode & OSK_OTHER_EXEC_PERM) ? 'e' : '-'),
++ ((mode & OSK_OTHER_WRITE_PERM) ? 'w' : '-'),
++ ((mode & OSK_OTHER_READ_PERM) ? 'r' : '-'),
++ ((mode & OSK_OWNER_EXEC_PERM) ? 'e' : '-'),
++ ((mode & OSK_OWNER_WRITE_PERM) ? 'w' : '-'),
++ ((mode & OSK_OWNER_READ_PERM) ? 'r' : '-'),
++ hdr->unix_uid, hdr->unix_gid);
++ break;
++ default:
++ switch (hdr->extend_type) { /* max 18 characters */
++ case EXTEND_GENERIC:
++ p = "[generic]";
++ break;
++ case EXTEND_CPM:
++ p = "[CP/M]";
++ break;
++ case EXTEND_FLEX:
++ p = "[FLEX]";
++ break;
++ case EXTEND_OS9:
++ p = "[OS-9]";
++ break;
++ case EXTEND_OS68K:
++ p = "[OS-9/68K]";
++ break;
++ case EXTEND_MSDOS:
++ p = "[MS-DOS]";
++ break;
++ case EXTEND_MACOS:
++ p = "[Mac OS]";
++ break;
++ case EXTEND_OS2:
++ p = "[OS/2]";
++ break;
++ case EXTEND_HUMAN:
++ p = "[Human68K]";
++ break;
++ case EXTEND_OS386:
++ p = "[OS-386]";
++ break;
++ case EXTEND_RUNSER:
++ p = "[Runser]";
++ break;
++#ifdef EXTEND_TOWNSOS
++ /* This ID isn't fixed */
++ case EXTEND_TOWNSOS:
++ p = "[TownsOS]";
++ break;
++#endif
++ /* Ouch! Please customize it's ID. */
++ default:
++ p = "[unknown]";
++ break;
++ }
++ printf("%-23.23s", p);
++ break;
++ }
++
++ print_size(hdr->packed_size, hdr->original_size);
++
++ if (verbose_listing)
++ if (hdr->has_crc)
++ printf(" %s %04x", method, hdr->crc);
++ else
++ printf(" %s ****", method);
++
++ printf(" ");
++ print_stamp(hdr->unix_last_modified_stamp);
++
++ if (!verbose)
++ if ((mode & UNIX_FILE_SYMLINK) != UNIX_FILE_SYMLINK)
++ printf(" %s", hdr->name);
++ else {
++ char buf[256], *b1, *b2;
++ strcpy(buf, hdr->name);
++ b1 = strtok(buf, "|");
++ b2 = strtok(NULL, "|");
++ printf(" %s -> %s", b1, b2);
++ }
++
++ if (verbose)
++ printf(" [%d]", hdr->header_level);
++ printf("\n");
++
++}
++
++/* ------------------------------------------------------------------------ */
++static void
++list_tailer()
++{
++ struct stat stbuf;
++
++ print_bar();
++
++ printf(" Total %9d file%c ",
++ list_files, (list_files == 1) ? ' ' : 's');
++ print_size(packed_size_total, original_size_total);
++ printf(" ");
++
++ if (verbose_listing)
++ printf(" ");
++
++ if (stat(archive_name, &stbuf) < 0)
++ print_stamp((time_t) 0);
++ else
++ print_stamp(stbuf.st_mtime);
++
++ printf("\n");
++}
++
++/* ------------------------------------------------------------------------ */
++/* LIST COMMAND MAIN */
++/* ------------------------------------------------------------------------ */
++void
++cmd_list()
++{
++ FILE *afp;
++ LzHeader hdr;
++ int i;
++
++ /* initialize total count */
++ packed_size_total = 0L;
++ original_size_total = 0L;
++ list_files = 0;
++
++ /* open archive file */
++ if ((afp = open_old_archive()) == NULL) {
++ error(archive_name, "");
++ exit(1);
++ }
++ if (archive_is_msdos_sfx1(archive_name))
++ skip_msdos_sfx1_code(afp);
++
++ /* print header message */
++ if (!quiet)
++ list_header();
++
++ /* print each file information */
++ while (get_header(afp, &hdr)) {
++ if (need_file(hdr.name)) {
++ list_one(&hdr);
++ list_files++;
++ packed_size_total += hdr.packed_size;
++ original_size_total += hdr.original_size;
++ }
++
++ if (afp != stdin)
++ fseek(afp, hdr.packed_size, SEEK_CUR);
++ else {
++ i = hdr.packed_size;
++ while (i--)
++ fgetc(afp);
++ }
++ }
++
++ /* close archive file */
++ fclose(afp);
++
++ /* print tailer message */
++ if (!quiet)
++ list_tailer();
++
++ return;
++}
++
++/* Local Variables: */
++/* mode:c */
++/* tab-width:4 */
++/* compile-command:"gcc -c lhlist.c" */
++/* End: */
+--- lha-1.14i.orig/debian/changelog
++++ lha-1.14i/debian/changelog
+@@ -0,0 +1,178 @@
++lha (1.14i-10.1) unstable; urgency=high
++
++ * Security NMU for vulnerabilities inherited from GNU Gzip:
++ [CVE-2006-4335 CVE-2006-4337 CVE-2006-4338]
++
++ -- Moritz Muehlenhoff <jmm@debian.org> Wed, 13 Dec 2006 20:21:32 +0100
++
++lha (1.14i-10) unstable; urgency=high
++
++ * debian/patch.redhat-sec2: Add one more security patch to fix:
++ - CAN-2004-0771 (-w working directory option buffer overflow)
++ http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0771
++ - CAN-2004-0769 (buffer overflow can be executed arbitrary code
++ via long pathnames in headers, another issue of bug fixed in -9)
++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0769
++ - CAN-2004-0745 (execute arbitrary commands via a directory with
++ shell metacharacters in its name.)
++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0745
++ - CAN-2004-0694 (reserved number)
++ http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2004-0694
++ taken from RedHat patch. (Closes: #279870)
++ * man/lha.n: Fix typo "flie" instead of "file". (Closes: #277545)
++
++ -- GOTO Masanori <gotom@debian.org> Sat, 13 Nov 2004 15:31:22 +0900
++
++lha (1.14i-9) unstable; urgency=high
++
++ * debian/patch.header-overflow: Add fix another lha buffer overflow
++ problem. It warns when hitting an archive which includes
++ long directory name with option l, v, x. See:
++ http://lw.ftw.zamosc.pl/lha-exploit.txt
++ http://www.securityfocus.com/archive/1/363418
++ http://bugs.gentoo.org/show_bug.cgi?id=51285
++ Thanks to Lukasz Wojtow <lw@wszia.edu.pl> for pointing this problem.
++
++ -- GOTO Masanori <gotom@debian.org> Wed, 16 Jun 2004 09:51:06 +0900
++
++lha (1.14i-8) unstable; urgency=high
++
++ * debian/patch.CAN-2004-0234_0235: Add fix CAN-2004-0235 symlink part
++ patches. (Closes: #247355, #247357)
++
++ -- GOTO Masanori <gotom@debian.org> Sat, 8 May 2004 02:24:57 +0900
++
++lha (1.14i-7) unstable; urgency=high
++
++ * debian/patch.CAN-2004-ulf: Add to fix CAN-2004-0234 (buffer overflows),
++ CAN-2004-0235 (directory traversal). See:
++ http://marc.theaimsgroup.com/?l=full-disclosure&m=108345064008698&w=2
++ * debian/control: Change my mail address.
++
++ -- GOTO Masanori <gotom@debian.org> Thu, 6 May 2004 15:13:14 +0900
++
++lha (1.14i-6) unstable; urgency=low
++
++ * debian/copyright: Added more copyright license statement, translated
++ by Osamu Aoki <debian@aokiconsulting.com>.
++ * debian/copyright: Added good summary of upstream author, investigated by
++ Osamu Aoki <debian@aokiconsulting.com> and
++ Tatsuya Kinoshita <tats@iris.ne.jp>.
++ * debian/header-e.doc: Added English version of header.doc (LHa header
++ structure format document) translated by Osamu Aoki
++ <debian@aokiconsulting.com>.
++
++ -- GOTO Masanori <gotom@debian.or.jp> Tue, 27 Aug 2002 13:08:22 +0900
++
++lha (1.14i-5) unstable; urgency=low
++
++ * debian/patch.multibyte: Add multibyte character mode option 'y'.
++ You can use multibyte filename especially SHIFTJIS code
++ with this option.
++
++ -- GOTO Masanori <gotom@debian.or.jp> Fri, 19 Jul 2002 16:57:11 +0900
++
++lha (1.14i-4) unstable; urgency=low
++
++ * debian/copyright: add original/translated license statement
++ (closes: Bug#144582).
++
++ -- GOTO Masanori <gotom@debian.or.jp> Wed, 1 May 2002 09:53:24 +0900
++
++lha (1.14i-3) unstable; urgency=low
++
++ * fix lha reports a wrong version number (closes: Bug#135199).
++
++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 3 Mar 2002 21:38:46 +0900
++
++lha (1.14i-2) unstable; urgency=low
++
++ * Applied the patch not to get compiling warning message.
++ Patched by Paul Slootman <paul@wurtel.net>. (Closes: #109634).
++
++ -- GOTO Masanori <gotom@debian.or.jp> Thu, 23 Aug 2001 00:26:53 +0900
++
++lha (1.14i-1) unstable; urgency=low
++
++ * New upstream release (Closes: #62256).
++ * New maintainer.
++ * Updated Standards-version 3.5.2.
++ * Use build this package with dh_*.
++ * New upstream version is ready for -lh7- format (Closes: #67592).
++ * Japanese manual is now included (Closes: #49245).
++ * Unclosed Bugs (No copyright file is included)
++ has just re-closed (Closes: #48748).
++
++ -- GOTO Masanori <gotom@debian.or.jp> Sun, 22 Jul 2001 13:11:50 +0900
++
++lha (1.14e-2) unstable; urgency=low
++
++ * Moved /usr/man/* and /usr/doc/* under /usr/share. Closes: #80759.
++ * Updated Standards-version, fixed lintian warnings.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 21 Jan 2001 17:35:52 +0000
++
++lha (1.14e-0) unstable; urgency=low
++
++ * New upstream release. Thanks to Jiro Iwamoto <iwamot@maroon.plala.or.jp> for pointing this out.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 25 Jul 1999 23:05:24 +0100
++
++lha (1.14d-1) unstable; urgency=low
++
++ * Fixed manpage - no need to specify "-b" for command line help. Closes bug #33328.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 14 Feb 1999 16:24:44 +0000
++
++lha (1.14d-0) unstable; urgency=low
++
++ * New upstream release. Thanks to Tomohiro KUBOTA <kubota@kubota.rcpom.osaka-u.ac.jp> for pointing this out.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 16 Jan 1999 21:54:37 +0000
++
++lha (1.14c-1) frozen unstable; urgency=low
++
++ * New man page, supplied by Martin Schulze <joey@finlandia.Infodrom.North.DE>. Fixes Bug#27195.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sun, 18 Oct 1998 13:53:12 +0100
++
++lha (1.14c-0) unstable; urgency=low
++
++ * New upstream release. Thanks to Atsushi KAMOSHIDA <kamop@debian.or.jp> for pointing this out.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Sat, 15 Aug 1998 14:16:19 +0100
++
++lha (1.00-6) unstable; urgency=low
++
++ * New maintainer.
++
++ -- Steve McIntyre <stevem@chiark.greenend.org.uk> Mon, 12 Jan 1998 00:09:12 +0000
++
++lha (1.00-5) unstable; urgency=low, closes=16756
++
++ * Corrected Standards-Version to 2.3.0.1 (Bug#16756)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 02:08:03 +0100
++
++lha (1.00-4) unstable; urgency=low
++
++ * Compiled against libc6 (Bug#11696)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 31 Dec 1997 20:51:38 +0100
++
++lha (1.00-3) unstable; urgency=low
++
++ * Corrected manpage (Bug#7980)
++
++ * New maintainer address
++
++ -- Martin Schulze <joey@namib.north.de> Mon, 28 Apr 1997 13:10:10 +0200
++
++lha (1.00-2) unstable; urgency=low
++
++ * Installed ChangeLog files
++
++ * Converted into new packaging scheme
++
++ -- Martin Schulze <joey@namib.north.de> Sun, 23 Feb 1997 12:22:13 +0100
++
+--- lha-1.14i.orig/debian/lha.1
++++ lha-1.14i/debian/lha.1
+@@ -0,0 +1,139 @@
++ .\" lha - LZH un-archiver
++.\" Copyright (c) 1996 Martin Schulze <joey@namib.north.de>
++.\"
++.\" This manual page 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 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, write to the Free Software
++.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++.\"
++.\" This manpage is written especially for Debian GNU/Linux.
++.\"
++.\" LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa
++.\" LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki
++.\" LHx(arc) for OSK V 2.01 Modified 1990 Momozou
++.\" LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki
++.\"
++.\" Additions by Joerg Boehnke <joerg@oggi.oche.de>
++.\"
++.TH LHA 1 "22 Sept, 1998" "Debian GNU/Linux" "Archiver"
++.SH NAME
++LHa \- LZH un-archiver
++.SH SYNOPSIS
++.B lha
++.B key
++[
++.B -
++]
++.B {axelvudmcp}
++[
++.B qvnfodizg012
++]
++[
++.B w=<dir>
++]
++.I archive_file
++[
++.I flie
++\&.\|.\|. ]
++.br
++.B lha
++.I archive_file
++.SH DESCRIPTION
++The
++.B lha
++program displays or extracts the contents of a LZH archive.
++
++For a list of commands, please refer to the executable. It will
++display a list of valid commands and modifiers if you omit any
++parameter.
++
++.TP
++commands:
++
++.B a
++Add(or replace) to archive
++
++.B x,e
++EXtract from archive
++
++.B l,v
++List / Verbose List
++
++.B u
++Update newer files to archive
++
++.B d
++Delete from archive
++
++.B m
++Move to archive (means 'ad')
++
++.B c
++re-Construct new archive
++
++.B p
++Print to STDOUT from archive
++
++.B t
++Test file CRC in archive
++
++.TP
++options:
++
++.B q
++quiet
++
++.B v
++verbose
++
++.B n
++not execute
++
++.B f
++force (over write at extract)
++
++.B t
++FILES are TEXT file
++
++.B o
++use LHarc compatible method (a/u)
++
++.B w=<dir>
++specify extract directory (x/e)
++
++.B d
++delete FILES after (a/u/c)
++
++.B i
++ignore directory path (x/e)
++
++.B z
++files not compress (a/u)
++
++.B g
++[Generic] format (for compatibility)
++
++.B 0/1/2
++header level (a/u)
++
++.B e
++TEXT code convert from/to EUC
++
++.B y
++filename multibyte convert
++
++.SH BUGS
++
++This manpage is poor, it really should be improved, but the original
++is in Japanese.
++
++Try lha without any command line arguments to get help
+--- lha-1.14i.orig/debian/rules
++++ lha-1.14i/debian/rules
+@@ -0,0 +1,115 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatability version to use.
++export DH_COMPAT=3
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++ # Add here commands to configure the package.
++
++ patch -p0 < debian/patch.paul
++ patch -p0 < debian/patch.multibyte
++ patch -p0 < debian/patch.CAN-2004-0234_0235
++ patch -p0 < debian/patch.header-overflow
++ patch -p1 < debian/patch.redhat-sec2
++ patch -p1 < debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338
++
++ touch configure-stamp
++
++build: configure-stamp build-stamp
++build-stamp:
++ dh_testdir
++
++ # Add here commands to compile the package.
++ $(MAKE)
++ #/usr/bin/docbook-to-man debian/lha.sgml > lha.1
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp configure-stamp
++
++ # Add here commands to clean up after the build process.
++ -$(MAKE) clean
++
++ # delete copied docs.
++ rm -f MACHINES MACHINES2 PROBLEMS README
++ rm -f header.doc debian/lha.euc.1.gz debian/lha.1.gz
++ cp debian/org/lha.h src/lha.h
++ cp debian/org/header.c src/header.c
++ cp debian/org/lharc.c src/lharc.c
++ cp debian/org/util.c src/util.c
++ cp debian/org/lhext.c src/lhext.c
++ cp debian/org/lhlist.c src/lhlist.c
++ cp debian/org/lha_macro.h src/lha_macro.h
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # Add here commands to install the package into debian/lha.
++ # $(MAKE) install BINDIR=$(CURDIR)/debian/lha/usr/bin \
++ # MANDIR=$(CURDIR)/debian/lha/usr/share/man \
++ # MANSECT=1
++ install -m 755 src/lha $(CURDIR)/debian/lha/usr/bin
++
++ # Copy the filenames without the .euc extension
++ cp MACHINES.euc MACHINES
++ cp MACHINES2.euc MACHINES2
++ cp PROBLEMS.euc PROBLEMS
++ cp README.euc README
++ cp header.doc.euc header.doc
++
++ gzip -9 -c man/lha.n > debian/lha.euc.1.gz
++ gzip -9 -c debian/lha.1 > debian/lha.1.gz
++ install -m 644 debian/lha.euc.1.gz $(CURDIR)/debian/lha/usr/share/man/ja/man1/lha.1.gz
++ install -m 644 debian/lha.1.gz $(CURDIR)/debian/lha/usr/share/man/man1/lha.1.gz
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++# dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++# dh_installlogrotate
++# dh_installemacsen
++# dh_installpam
++# dh_installmime
++# dh_installinit
++# dh_installcron
++# dh_installman
++# dh_installinfo
++# dh_undocumented
++ dh_installchangelogs CHANGES.euc
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++# dh_makeshlibs
++ dh_installdeb
++# dh_perl
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install configure
+--- lha-1.14i.orig/debian/dirs
++++ lha-1.14i/debian/dirs
+@@ -0,0 +1,3 @@
++usr/bin
++usr/share/man/man1
++usr/share/man/ja/man1/
+--- lha-1.14i.orig/debian/copyright
++++ lha-1.14i/debian/copyright
+@@ -0,0 +1,172 @@
++This package was debianized by Atsushi KAMOSHIDA kamop@post1.com on
++Sun, 13 Apr 1997 17:52:59 +0900.
++
++It was downloaded from http://www2m.biglobe.ne.jp/~dolphin/lha/lha.htm
++
++Upstream Authors:
++
++ LHarc 0.01-1.00: Yooichi Tagawa (LHa code taken from here, 1988-1989)
++ Nikkei-mix ID: y.tagawa (Now this is defunct BBS, Licensing term
++ in manual page come from his licence for lharc)
++ His new web page seems to be www2s.biglibe.ne.jp/~yex/
++ yooedit2001@yahoo.co.jp is the contact e-mail address for another
++ software. Page updated at least July/2001
++
++ LHa 0.01-1.00: Masaru Oki (LHa original author, 1991-1992)
++ E-Mail address: oki@netbsd.org
++
++ LHa 1.10-1.14: Nobutaka Watazaki (Last official release? 1993-1995)
++ ALICE-NET ALS00595 Nasty
++ E-Mail JBD02514@niftyserve.or.jp
++ E-Mail femcs@mbox.kyoto-inet.or.jp
++ NIFTY-Serve JBD02514
++ E-Mail address: watazaki@shimadzu.co.jp
++ E-Mail address: watazaki@shimadzusd.co.jp
++
++ Lha 1.14a-1.14e: Tsugio Okamoto <tsugio@muc.biglobe.ne.jp> (1996-2000)
++
++
++Copyright:
++
++Original Source Code License Statement:
++
++ /* Copyright (C) MCMLXXXIX Yooichi.Tagawa */
++ /* Modified Nobutaka Watazaki */
++ /* Thanks to H.Yoshizaki. (MS-DOS LHarc) */
++
++
++Original Authors License Statement (from man/lha.man, in Japanese
++EUC-JP):
++
++ ۤˤĤ
++ ʲξǡۡžܡѤĤޤ
++
++ 1. ɽʤȡ
++
++ 2. ƤˤĤƤϡ
++
++ a. ۤκݤ¸ߤ(ʤ
++ ɡ ȡץޡؤμ
++ )ۤ줿Τɬ¸
++ ȡ ѤƤʤС
++ ȤѰդ뤳ȡ
++
++ b. LHa Фղòͤդƺۤ
++ ˤϤǤޤ褦Ϥ
++ ȡޤκݤˤղòͤդƤ
++ 뤳ȤɥȤѰդ뤳ȡ
++
++ c. ХʥΤߤۤϵʤ(ղò
++ Τޤ)
++
++ 3. ǿǤ̳ۤ뤳ȡ(̳Ϥʤ)
++
++ . ʤͥåȤǤդϼͳǤ뤬ͥåȤ
++ Ǥʤʻ浪ӡ CDROM
++ դϡˤ EMail
++ ꤤޤ˽ʤݤˤϡɬ
++ EMail 򤪴ꤤޤ
++
++ 4. Υץ¸ߤѤȤˤä»
++ ݾڤʤ
++
++ 5. ԤϡΥץäƤ⡢
++ ̳ʤ
++
++ 6. Υץΰޤ¾Υץ
++ Ȥ߹ѤƤ⤫ޤʤξ硢Υ
++ LHa ǤϤʤ LHa ̾äƤϤʤ
++
++ 7. Ѥ˴ؤƤϡ嵭ξ˲äξΤ
++ Ȥˤǧ롣
++
++ a. ΥץᥤȤ뾦Ѥ϶
++ 롣
++
++ b. Ѥ꤬ΥץλѼԤȤ
++ ŬڤȽǤˤۤʤ
++
++ c. 󥹥ȡμʤȤƻѤ硢Υ
++ ȤȤ˶ʤξ
++ 硢ѼԤȤԤޤΤȤ»
++ ϡѼԤǤ餦
++
++ d. ѤղòͤȤƹԤΥץ
++ Ѥ硢ѼԤϡΥݡȤԤ
++
++
++Original Authors License Statement (from man/lha.man, translated by
++Osamu Aoki <debian@aokiconsulting.com>):
++
++ Permission is given for redistribution, copy, and modification provided
++ following conditions are met.
++
++ 1. Do not remove copyright clause.
++ 2. Distribution shall conform:
++ a. The content of redistribution (i.e., source code, documentation,
++ and reference guide for programmers) shall include original contents.
++ If contents are modified, the document clearly indicating
++ the fact of modification must be included.
++ b. If LHa is redistributed with added values, you must put your best
++ effort to include them (Translator comment: If read literally,
++ original Japanese was unclear what "them" means here. But
++ undoubtedly this "them" means source code for the added value
++ portion and this is a typical Japanese sloppy writing style to
++ abbreviate as such) Also the document clearly indicating that
++ added value was added must be included.
++ c. Binary only distribution is not allowed (including added value
++ ones.)
++ 3. You need to put effort to distribute the latest version (This is not
++ your duty).
++
++ NB: Distribution on Internet is free. Please notify me by e-mail or
++ other means prior to the distribution if distribution is done through
++ non-Internet media (Magazine, CDROM etc.) If not, make sure to Email
++ me later.
++
++ 4. Any damage caused by the existence and use of this program will not
++ be compensated.
++
++ 5. Author will not be responsible to correct errors even if program is
++ defective.
++
++ 6. This program, either as a part of this or as a whole of this, may be
++ included into other programs. In this case, that program is not LHa
++ and can not call itself LHa.
++
++ 7. For commercial use, in addition to above conditions, following
++ condition needs to be met.
++
++ a. The program whose content is mainly this program can not be used
++ commercially.
++ b. If the recipient of commercial use deems inappropriate as a
++ program user, you must not distribute.
++ c. If used as a method for the installation, you must not force
++ others to use this program. In this case, commercial user will
++ perform its work while taking full responsibility of its outcome.
++ d. If added value is done under the commercial use by using this
++ program, commercial user shall provide its support.
++
++
++(Osamu Aoki also comments:
++ Here "commercial" may be interpreted as "for-fee". "Added value" seems
++ to mean "feature enhancement". )
++
++
++License Statement by Tsugio Okamoto (in Japanese EUC-JP):
++
++ ʤͥåȤǤդϼͳǤͥåȤ˥Ǥʤʻ浪ӡ
++ CD-ROM ʤɤˤˤؤդϡˤ Inter-Net E-Mail
++ ꤤޤ ɤˡǺܤȤݤз빽ǤΤǡ
++ ޤʤݤˤϡ E-Mail ɬꤤޤ
++
++
++Translated License Statement by Tsugio Okamoto (translated by
++GOTO Masanori <gotom@debian.org>):
++
++ It's free to distribute on the network, but if you distribute for
++ the people who cannot access the network (by magazine or CD-ROM),
++ please send E-Mail (Inter-Net address) to the author before the
++ distribution. That's well where this software is appeard.
++ If you cannot do, you must send me the E-Mail later.
++
+--- lha-1.14i.orig/debian/control
++++ lha-1.14i/debian/control
+@@ -0,0 +1,13 @@
++Source: lha
++Section: non-free/utils
++Priority: optional
++Maintainer: GOTO Masanori <gotom@debian.org>
++Build-Depends: debhelper (>> 4.0.0)
++Standards-Version: 3.6.0
++
++Package: lha
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: lzh archiver
++ The famous lzh archiver, known from DOS. When mixing DOS and Unix
++ you might need it. (Especially for fido <--> rfc conversions.)
+--- lha-1.14i.orig/debian/docs
++++ lha-1.14i/debian/docs
+@@ -0,0 +1,10 @@
++README.euc
++change-114e.txt
++change-114g.txt
++change-114h.txt
++change-114i.txt
++MACHINES
++MACHINES2
++PROBLEMS
++header.doc
++debian/header-e.doc
+--- lha-1.14i.orig/debian/patch.paul
++++ lha-1.14i/debian/patch.paul
+@@ -0,0 +1,10 @@
++--- src/lha.h Thu Oct 5 19:35:38 2000
+++++ src/lha.h Wed Aug 22 15:49:55 2001
++@@ -16,6 +16,7 @@
++ #include <sys/types.h>
++ #include <sys/file.h>
++ #include <sys/stat.h>
+++#include <stdlib.h>
++
++ #include <signal.h>
++
+--- lha-1.14i.orig/debian/header-e.doc
++++ lha-1.14i/debian/header-e.doc
+@@ -0,0 +1,189 @@
++/* header.doc (In English) */
++Header structure used in LHa for UNIX Mar. 2, 1992, Masaru Oki.
++(Translated by Osamu Aoki)
++
++----------------------------------------------------------------
++This version, as a transitional mreasure, uses level-1 as default value while
++offering 3 types of header types. In the future, I plan to use level-2 which
++has no limit on number of characters for the path mname.
++
++ A. Spec for header
++
++Basic part
++-----------------------------------------------------------------------------
++ level-0 level-1 level-2
++-----------------------------------------------------------------------------
++ 1 header size 1 header size 2 total header size
++ 1 header sum 1 header sum
++ 5 method ID 5 method ID 5 method ID
++ 4 packed size 4 skip size 4 packed size
++ 4 original size 4 original size 4 original size
++ 2 time 2 time 4 time(UNIX type)
++ 2 date 2 date
++ 1 attribute 1 0x20 1 RESERVED
++ 1 level 0x00 1 level 0x01 1 level 0x02
++ 1 name length 1 name length
++ ? pathname ? filename
++ 2 file crc 2 file crc 2 file crc
++ . ........ 1 OS ID 'U' 1 OS ID 'U'
++ . ........
++ 2 next-header size 2 next-header size
++ *************************************************************************
++ 24 + ? 27 + ? 26
++
++Extension part
++-----------------------------------------------------------------------------
++ 1 ext-type 1 ext-type
++ . ........ . ........
++ 2 next-header size 2 next-header size
++
++-----------------------------------------------------------------------------
++
++ a. Types of header
++
++ level-0 header
++ Same format as conventional LHarc, LArc. Separator for directory
++ name is '\' as default.
++
++ level-1 header
++ This header is used as default. Archive type -lh0 made with -x0 can
++ be unfrozen by LHarc but there will be no checking on CRC.
++
++ level-2 header
++ Header for supporting long file names. I would like to standarize
++ on this format in the future. Please follow this if you wish to
++ make utilities related ti LH.
++
++ b. method ID for freeze/unfreeze
++
++ * these methods are freeze/unfreeze, others are unfreeze only
++
++ -lh0- * no compression
++
++ -lh1- * 4k sliding dictionary(max 60 bytes) + dynamic Huffman
++ + fixed encoding of position
++
++ -lh2- 8k sliding dictionary(max 256 bytes) + dynamic Huffman
++
++ -lh3- 8k sliding dictionary(max 256 bytes) + static Huffman
++
++ -lh4- * 4k sliding dictionary(max 256 bytes) + static Huffman
++ + improved encoding of position and trees
++
++ -lh5- * 8k sliding dictionary(max 256 bytes) + static Huffman
++ + improved encoding of position and trees
++
++ -lh6- 32k sliding dictionary(max 256 bytes) + static Huffman
++ + improved encoding of position and trees
++
++ -lh7- 64k sliding dictionary(max 256 bytes) + static Huffman
++ + improved encoding of position and trees
++
++ -lzs- 2k sliding dictionary(max 17 bytes)
++
++ -lz4- no compression
++
++ -lz5- 4k sliding dictionary(max 17 bytes)
++
++ c. About OS ID
++
++ Following OS ID are reserved.
++
++ MS-DOS 'M'
++ OS/2 '2'
++ OS9 '9'
++ OS/68K 'K'
++ OS/386 '3'
++ HUMAN 'H'
++ UNIX 'U'
++ CP/M 'C'
++ FLEX 'F'
++ Mac 'm'
++ Runser 'R'
++
++ B. Extension
++
++ a. OS independent (0x00 - 0x3f)
++
++ common header
++ 1 0x00
++ 2 header crc
++ ( 1 information )
++ 2 next-header size
++
++ filename header
++ 1 0x01
++ ? filename
++ 2 next-header size
++
++ dirname header
++ 1 0x02
++ ? dirname
++ 2 next-header size
++
++ comment header
++ 1 0x3f
++ ? comments
++ 2 next-header size
++
++(Above portion, from lhx.doc by Mr. Yoshizaki)
++----------------------------------------------------------------
++LHa for UNIX : specification for extension header
++
++* Category of machine specific information (Information to be recorded)
++ Followings are UNIX specific information which requires to be recorded
++ (1) Permission
++ (2) GID,UID
++ (3) Group name, User name
++ (4) Last change time (UNIX time)
++
++* Type of machine specific information (ext-type)
++ First 1 byte of extension header contain value to distinguish types of
++ the infoemation. Foe UNIX specific information, 0x50 - 0x54 will be
++ used.
++
++* Method to store
++ Above categories (1) - (4) will be different type.
++
++
++ (1) Pemission
++ size value
++ 1 0x50
++ 2 Valur of permission
++ 2 next-header size
++
++ (2)GID,UID
++ size value
++ 1 0x51
++ 2 GID
++ 2 UID
++ 2 next-header size
++
++ (3)-1 Group name
++ 1 0x52
++ ? Group name string
++ 2 next-header size
++
++ (3)-2 user name
++ 1 0x53
++ ? User name string
++ 2 next-header size
++
++ (4) Last change time (for header_level1)
++ 1 0x54
++ 4 UNIX time
++ 2 next-header size
++
++* Implimentation of LHa for UNIX ver 1.14 (Watazaki)
++ Above (3) is not supported
++ Group name and user name specified by (3) is not used to make an
++ archive thus ignored during expansion.
++ Also (4) is contained only in level-1 archive.
++----------------------------------------------------------------
++That's all folks :)
++
++Partially modified by
++Nobutaka Watazaki
++watazaki@shimadzu.co.jp
++
++
+--- lha-1.14i.orig/debian/patch.CAN-2004-0234_0235
++++ lha-1.14i/debian/patch.CAN-2004-0234_0235
+@@ -0,0 +1,85 @@
++--- src/header.c.old 2000-10-05 19:36:03.000000000 +0200
+++++ src/header.c 2004-04-17 23:55:54.000000000 +0200
++@@ -538,6 +538,10 @@
++ /*
++ * filename
++ */
+++ if (header_size >= 256) {
+++ fprintf(stderr, "Possible buffer overflow hack attack, type #1\n");
+++ exit(109);
+++ }
++ for (i = 0; i < header_size - 3; i++)
++ hdr->name[i] = (char) get_byte();
++ hdr->name[header_size - 3] = '\0';
++@@ -547,6 +551,10 @@
++ /*
++ * directory
++ */
+++ if (header_size >= FILENAME_LENGTH) {
+++ fprintf(stderr, "Possible buffer overflow hack attack, type #2\n");
+++ exit(110);
+++ }
++ for (i = 0; i < header_size - 3; i++)
++ dirname[i] = (char) get_byte();
++ dirname[header_size - 3] = '\0';
++--- src/lhext.c.old 2000-10-04 16:57:38.000000000 +0200
+++++ src/lhext.c 2004-04-18 01:27:44.000000000 +0200
++@@ -190,8 +190,13 @@
++ q = (char *) rindex(hdr->name, '/') + 1;
++ }
++ else {
+++ if (is_directory_traversal(q)) {
+++ fprintf(stderr, "Possible directory traversal hack attempt in %s\n", q);
+++ exit(111);
+++ }
+++
++ if (*q == '/') {
++- q++;
+++ while (*q == '/') { q++; }
++ /*
++ * if OSK then strip device name
++ */
++@@ -419,6 +424,33 @@
++ return;
++ }
++
+++int
+++is_directory_traversal(char *string)
+++{
+++ unsigned int type = 0; /* 0 = new, 1 = only dots, 2 = other chars than dots */
+++ char *temp;
+++
+++ temp = string;
+++
+++ while (*temp != 0) {
+++ if (temp[0] == '/') {
+++ if (type == 1) { return 1; }
+++ type = 0;
+++ temp++;
+++ continue;
+++ }
+++
+++ if ((temp[0] == '.') && (type < 2))
+++ type = 1;
+++ if (temp[0] != '.')
+++ type = 2;
+++
+++ temp++;
+++ } /* while */
+++
+++ return (type == 1);
+++}
+++
++ /* Local Variables: */
++ /* mode:c */
++ /* tab-width:4 */
++--- src/lhext.c.symlink 2000-10-04 10:57:38.000000000 -0400
+++++ src/lhext.c 2003-05-19 22:55:57.000000000 -0400
++@@ -351,6 +351,7 @@ extract_one(afp, hdr)
++ }
++
++ unlink(bb1);
+++ make_parent_path(bb1);
++ l_code = symlink(bb2, bb1);
++ if (l_code < 0) {
++ if (quiet != TRUE)
+--- lha-1.14i.orig/debian/patch.header-overflow
++++ lha-1.14i/debian/patch.header-overflow
+@@ -0,0 +1,21 @@
++--- src/header.c 2002-07-19 17:23:58.000000000 +0900
+++++ src/header.c 2004-06-16 09:49:23.000000000 +0900
++@@ -648,8 +648,17 @@
++ }
++
++ if (dir_length) {
+++ if ((dir_length + name_length) > sizeof(dirname)) {
+++ fprintf(stderr, "Insufficient buffer size\n");
+++ exit(112);
+++ }
++ strcat(dirname, hdr->name);
++- strcpy(hdr->name, dirname);
+++
+++ if ((dir_length + name_length) > sizeof(hdr->name)) {
+++ fprintf(stderr, "Insufficient buffer size\n");
+++ exit(112);
+++ }
+++ strncpy(hdr->name, dirname, sizeof(hdr->name));
++ name_length += dir_length;
++ }
++
+--- lha-1.14i.orig/debian/patch.redhat-sec2
++++ lha-1.14i/debian/patch.redhat-sec2
+@@ -0,0 +1,196 @@
++diff -urNp lha-114i.orig/src/lha_macro.h lha-114i/src/lha_macro.h
++--- lha-114i.orig/src/lha_macro.h 2004-08-03 15:53:56.000000000 -0500
+++++ lha-114i/src/lha_macro.h 2004-08-03 15:54:05.000000000 -0500
++@@ -53,7 +53,7 @@
++ #define SEEK_SET 0
++ #define SEEK_CUR 1
++ #define SEEK_END 2
++-#endif /* SEEK_SET
+++#endif /* SEEK_SET */
++
++
++ /* non-integral functions */
++diff -urNp lha-114i.orig/src/lharc.c lha-114i/src/lharc.c
++--- lha-114i.orig/src/lharc.c 2004-08-03 15:53:56.000000000 -0500
+++++ lha-114i/src/lharc.c 2004-08-03 15:54:05.000000000 -0500
++@@ -830,9 +830,10 @@ find_files(name, v_filec, v_filev)
++ DIRENTRY *dp;
++ struct stat tmp_stbuf, arc_stbuf, fil_stbuf;
++
++- strcpy(newname, name);
+++ strncpy(newname, name, sizeof(newname));
+++ newname[sizeof(newname)-1] = 0;
++ len = strlen(name);
++- if (len > 0 && newname[len - 1] != '/')
+++ if (len > 0 && newname[len - 1] != '/' && len < (sizeof(newname)-1))
++ newname[len++] = '/';
++
++ dirp = opendir(name);
++@@ -846,6 +847,11 @@ find_files(name, v_filec, v_filev)
++
++ for (dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
++ n = NAMLEN(dp);
+++ if (len >= (sizeof(newname)-1) ||
+++ (len+n) >= (sizeof(newname)-1) ||
+++ n <= 0 ||
+++ (len+n) <= 0)
+++ break;
++ strncpy(newname + len, dp->d_name, n);
++ newname[len + n] = '\0';
++ if (GETSTAT(newname, &fil_stbuf) < 0)
++@@ -903,7 +909,8 @@ build_temporary_name()
++ strcpy(temporary_name, TMP_FILENAME_TEMPLATE);
++ }
++ else {
++- sprintf(temporary_name, "%s/lhXXXXXX", extract_directory);
+++ snprintf(temporary_name, sizeof(temporary_name),
+++ "%s/lhXXXXXX", extract_directory);
++ }
++ #ifdef MKSTEMP
++ mkstemp(temporary_name);
++@@ -913,10 +920,16 @@ build_temporary_name()
++ #else
++ char *p, *s;
++
++- strcpy(temporary_name, archive_name);
+++ strncpy(temporary_name, archive_name, sizeof(temporary_name));
+++ temporary_name[sizeof(temporary_name)-1] = 0;
++ for (p = temporary_name, s = (char *) 0; *p; p++)
++ if (*p == '/')
++ s = p;
+++
+++ if( sizeof(temporary_name) - ((size_t) (s-temporary_name)) - 1
+++ <= strlen("lhXXXXXX"))
+++ exit(-1);
+++
++ strcpy((s ? s + 1 : temporary_name), "lhXXXXXX");
++ #ifdef MKSTEMP
++ mkstemp(temporary_name);
++@@ -1052,7 +1065,8 @@ open_old_archive()
++
++ if (open_old_archive_1(archive_name, &fp))
++ return fp;
++- sprintf(expanded_archive_name, "%s.lzh", archive_name);
+++ snprintf(expanded_archive_name, sizeof(expanded_archive_name),
+++ "%s.lzh", archive_name);
++ if (open_old_archive_1(expanded_archive_name, &fp)) {
++ archive_name = expanded_archive_name;
++ return fp;
++@@ -1061,7 +1075,8 @@ open_old_archive()
++ * if ( (errno&0xffff)!=E_PNNF ) { archive_name =
++ * expanded_archive_name; return NULL; }
++ */
++- sprintf(expanded_archive_name, "%s.lzs", archive_name);
+++ snprintf(expanded_archive_name, sizeof(expanded_archive_name),
+++ "%s.lzs", archive_name);
++ if (open_old_archive_1(expanded_archive_name, &fp)) {
++ archive_name = expanded_archive_name;
++ return fp;
++diff -urNp lha-114i.orig/src/lhext.c lha-114i/src/lhext.c
++--- lha-114i.orig/src/lhext.c 2004-08-03 15:53:56.000000000 -0500
+++++ lha-114i/src/lhext.c 2004-08-03 15:55:40.000000000 -0500
++@@ -82,7 +82,8 @@ make_parent_path(name)
++ register char *p;
++
++ /* make parent directory name into PATH for recursive call */
++- strcpy(path, name);
+++ memset(path, 0, sizeof(path));
+++ strncpy(path, name, sizeof(path)-1);
++ for (p = path + strlen(path); p > path; p--)
++ if (p[-1] == '/') {
++ *--p = '\0';
++@@ -212,9 +213,11 @@ extract_one(afp, hdr)
++ }
++
++ if (extract_directory)
++- sprintf(name, "%s/%s", extract_directory, q);
++- else
++- strcpy(name, q);
+++ snprintf(name, sizeof(name), "%s/%s", extract_directory, q);
+++ else {
+++ strncpy(name, q, sizeof(name));
+++ name[sizeof(name) - 1] = '\0';
+++ }
++
++
++ /* LZHDIRS_METHOD�����ĥإå��������å����� */
++@@ -335,7 +338,8 @@ extract_one(afp, hdr)
++ if ((hdr->unix_mode & UNIX_FILE_TYPEMASK) == UNIX_FILE_SYMLINK) {
++ char buf[256], *bb1, *bb2;
++ int l_code;
++- strcpy(buf, name);
+++ strncpy(buf, name, sizeof(buf));
+++ buf[sizeof(buf)-1] = 0;
++ bb1 = strtok(buf, "|");
++ bb2 = strtok(NULL, "|");
++
++@@ -365,9 +369,10 @@ extract_one(afp, hdr)
++ if (quiet != TRUE) {
++ printf("Symbolic Link %s -> %s\n", bb1, bb2);
++ }
++- strcpy(name, bb1); /* Symbolic's name set */
+++ strncpy(name, bb1, 255); /* Symbolic's name set */
+++ name[255] = 0;
++ #else
++- sprintf(buf, "%s -> %s", bb1, bb2);
+++ sprintf(buf, sizeof(buf), "%s -> %s", bb1, bb2);
++ warning("Can't make Symbolic Link", buf);
++ return;
++ #endif
++diff -urNp lha-114i.orig/src/lhlist.c lha-114i/src/lhlist.c
++--- lha-114i.orig/src/lhlist.c 2004-08-03 15:53:56.000000000 -0500
+++++ lha-114i/src/lhlist.c 2004-08-03 15:54:05.000000000 -0500
++@@ -250,7 +250,8 @@ list_one(hdr)
++ printf(" %s", hdr->name);
++ else {
++ char buf[256], *b1, *b2;
++- strcpy(buf, hdr->name);
+++ strncpy(buf, hdr->name, sizeof(buf));
+++ buf[sizeof(buf)-1] = 0;
++ b1 = strtok(buf, "|");
++ b2 = strtok(NULL, "|");
++ printf(" %s -> %s", b1, b2);
++diff -urNp lha-114i.orig/src/util.c lha-114i/src/util.c
++--- lha-114i.orig/src/util.c 2004-08-03 15:53:56.000000000 -0500
+++++ lha-114i/src/util.c 2004-08-03 15:54:05.000000000 -0500
++@@ -276,21 +276,27 @@ rmdir(path)
++ char *path;
++ {
++ int stat, rtn = 0;
++- char *cmdname;
++- if ((cmdname = (char *) malloc(strlen(RMDIRPATH) + 1 + strlen(path) + 1))
++- == 0)
+++ pid_t child;
+++
+++
+++ /* XXX thomas: shell meta chars in path could exec commands */
+++ /* therefore we should avoid using system() */
+++ if ((child = fork()) < 0)
+++ return (-1); /* fork error */
+++ else if (child) { /* parent process */
+++ while (child != wait(&stat)) /* ignore signals */
+++ continue;
+++ }
+++ else { /* child process */
+++ execl(RMDIRPATH, "rmdir", path, (char *) 0);
+++ /* never come here except execl is error */
++ return (-1);
++- strcpy(cmdname, RMDIRPATH);
++- *(cmdname + strlen(RMDIRPATH)) = ' ';
++- strcpy(cmdname + strlen(RMDIRPATH) + 1, path);
++- if ((stat = system(cmdname)) < 0)
++- rtn = -1; /* fork or exec error */
++- else if (stat) { /* RMDIR command error */
++- errno = EIO;
++- rtn = -1;
++ }
++- free(cmdname);
++- return (rtn);
+++ if (stat != 0) {
+++ errno = EIO; /* cannot get error num. */
+++ return (-1);
+++ }
+++ return (0);
++ }
++
++ /* ------------------------------------------------------------------------ */
+--- lha-1.14i.orig/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338
++++ lha-1.14i/debian/patch.CVE-2006-4335-CVE-2006-4337-CVE-2006-4338
+@@ -0,0 +1,137 @@
++diff -aur lha-1.14i.orig/src/huf.c lha-1.14i/src/huf.c
++--- lha-1.14i.orig/src/huf.c 2000-10-05 19:35:49.000000000 +0200
+++++ lha-1.14i/src/huf.c 2006-12-11 10:07:31.000000000 +0100
++@@ -332,7 +332,7 @@
++ }
++ else {
++ i = 0;
++- while (i < n) {
+++ while (i < MIN(n, NPT)) {
++ c = bitbuf >> (16 - 3);
++ if (c == 7) {
++ unsigned short mask = 1 << (16 - 4);
++@@ -345,7 +345,7 @@
++ pt_len[i++] = c;
++ if (i == i_special) {
++ c = getbits(2);
++- while (--c >= 0)
+++ while (--c >= 0 && i < NPT)
++ pt_len[i++] = 0;
++ }
++ }
++@@ -370,7 +370,7 @@
++ c_table[i] = c;
++ } else {
++ i = 0;
++- while (i < n) {
+++ while (i < MIN(n,NC)) {
++ c = pt_table[bitbuf >> (16 - 8)];
++ if (c >= NT) {
++ unsigned short mask = 1 << (16 - 9);
++@@ -380,7 +380,7 @@
++ else
++ c = left[c];
++ mask >>= 1;
++- } while (c >= NT);
+++ } while (c >= NT && (mask || c != left[c])); /* CVE-2006-4338 */
++ }
++ fillbuf(pt_len[c]);
++ if (c <= 2) {
++@@ -427,7 +427,7 @@
++ else
++ j = left[j];
++ mask >>= 1;
++- } while (j >= NC);
+++ } while (j >= NC && (mask || j != left[j])); /* CVE-2006-4338 */
++ fillbuf(c_len[j] - 12);
++ }
++ return j;
++@@ -451,7 +451,7 @@
++ else
++ j = left[j];
++ mask >>= 1;
++- } while (j >= np);
+++ } while (j >= np && (mask || j != left[j])); /* CVE-2006-4338 */
++ fillbuf(pt_len[j] - 8);
++ }
++ if (j != 0)
++Only in lha-1.14i/src: huf.c~
++diff -aur lha-1.14i.orig/src/lha_macro.h lha-1.14i/src/lha_macro.h
++--- lha-1.14i.orig/src/lha_macro.h 2006-12-11 09:43:54.000000000 +0100
+++++ lha-1.14i/src/lha_macro.h 2006-12-11 09:55:42.000000000 +0100
++@@ -408,6 +408,8 @@
++ #define MAXMATCH 256 /* formerly F (not more than UCHAR_MAX + 1) */
++ #define THRESHOLD 3 /* choose optimal value */
++
+++#define MIN(a,b) ((a) <= (b) ? (a) : (b))
+++
++ /* from huf.c */
++
++ /* alphabet = {0, 1, 2, ..., NC - 1} */
++Only in lha-1.14i/src: lha_macro.h~
++diff -aur lha-1.14i.orig/src/maketbl.c lha-1.14i/src/maketbl.c
++--- lha-1.14i.orig/src/maketbl.c 2000-10-04 16:57:38.000000000 +0200
+++++ lha-1.14i/src/maketbl.c 2006-12-11 09:59:51.000000000 +0100
++@@ -32,8 +32,15 @@
++ }
++
++ /* count */
++- for (i = 0; i < nchar; i++)
++- count[bitlen[i]]++;
+++ for (i = 0; i < nchar; i++) {
+++ if (bitlen[i] > 16) {
+++ /* CVE-2006-4335 */
+++ error("Bad table (case a)");
+++ exit(1);
+++ }
+++ else
+++ count[bitlen[i]]++;
+++ }
++
++ /* calculate first code */
++ total = 0;
++@@ -41,8 +48,11 @@
++ start[i] = total;
++ total += weight[i] * count[i];
++ }
++- if ((total & 0xffff) != 0)
++- error("make_table()", "Bad table (5)\n");
+++
+++ if ((total & 0xffff) != 0 || tablebits > 16) { /* 16 for weight below */
+++ error("make_table(): Bad table (case b)");
+++ exit(1);
+++ }
++
++ /* shift data for make table. */
++ m = 16 - tablebits;
++@@ -53,7 +63,7 @@
++
++ /* initialize */
++ j = start[tablebits + 1] >> m;
++- k = 1 << tablebits;
+++ k = MIN(1 << tablebits, 4096);
++ if (j != 0)
++ for (i = j; i < k; i++)
++ table[i] = 0;
++@@ -66,12 +76,19 @@
++ l = start[k] + weight[k];
++ if (k <= tablebits) {
++ /* code in table */
+++ l = MIN(l, 4096);
++ for (i = start[k]; i < l; i++)
++ table[i] = j;
++ }
++ else {
++ /* code not in table */
++- p = &table[(i = start[k]) >> m];
+++ i = start[k];
+++ if ((i >> m) > 4096) {
+++ /* CVE-2006-4337 */
+++ error("Bad table (case c)");
+++ exit(1);
+++ }
+++ p = &table[i >> m];
++ i <<= tablebits;
++ n = k - tablebits;
++ /* make tree (n length) */
++Only in lha-1.14i/src: maketbl.c~
diff --git a/source/a/lha/slack-desc b/source/a/lha/slack-desc
new file mode 100644
index 000000000..75c1dd43a
--- /dev/null
+++ b/source/a/lha/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+lha: lha (LHa archive utility)
+lha:
+lha: LHa is an archiving and compressing utility written by Tsugio Okamoto.
+lha:
+lha:
+lha:
+lha:
+lha:
+lha:
+lha:
+lha:
diff --git a/source/a/lilo/lilo.SlackBuild b/source/a/lilo/lilo.SlackBuild
new file mode 100755
index 000000000..197f33843
--- /dev/null
+++ b/source/a/lilo/lilo.SlackBuild
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-22.8}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-14}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-lilo
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf lilo-$VERSION
+tar xvf $CWD/lilo-$VERSION.src.tar.gz || exit 1
+cd lilo-$VERSION
+chown -R root:root .
+
+make || exit 1
+make install ROOT=$PKG
+
+# Add a Slackware logo boot menu (sorry, couldn't resist):
+if [ "$ARCH" = "x86_64" -a -f $CWD/slack64.bmp ]; then
+ cp -a $CWD/slack64.bmp $PKG/boot/slack.bmp
+else
+ cp -a $CWD/slack.bmp $PKG/boot
+fi
+chmod 644 $PKG/boot/slack.bmp
+
+# We don't need to add this empty directory:
+rmdir $PKG/etc
+
+# Add Slackware's 'liloconfig' utility:
+mkdir -p $PKG/sbin
+cp -a $CWD/liloconfig $PKG/sbin/liloconfig
+chmod 755 $PKG/sbin/liloconfig
+mkdir -p $PKG/var/log/setup
+cp -a $CWD/setup.liloconfig $PKG/var/log/setup/setup.liloconfig
+cp -a $CWD/text.lilohelp $PKG/var/log/setup/text.lilohelp
+chmod 755 $PKG/var/log/setup/setup.liloconfig
+chmod 644 $PKG/var/log/setup/text.lilohelp
+chown root:root \
+ $PKG/var/log/setup/setup.liloconfig $PKG/var/log/setup/text.lilohelp
+
+rm -rf $PKG/usr/doc/lilo-$VERSION
+mkdir -p $PKG/usr/doc/lilo-$VERSION
+cp -a CHANGES COPYING COPYRIGHT INCOMPAT QuickInst READM* doc sample \
+ $PKG/usr/doc/lilo-$VERSION
+if [ -r $CWD/lilo-$VERSION.lsm ]; then
+ cp -a $CWD/lilo-$VERSION.lsm $PKG/usr/doc/lilo-$VERSION
+fi
+if [ -r $CWD/lilo-$VERSION.announce.txt ]; then
+ cp -a $CWD/lilo-$VERSION.announce.txt $PKG/usr/doc/lilo-$VERSION
+fi
+
+mv $PKG/usr/share/man $PKG/usr
+rmdir $PKG/usr/share
+gzip -9 $PKG/usr/man/man?/*.?
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/lilo-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/lilo/liloconfig b/source/a/lilo/liloconfig
new file mode 100644
index 000000000..e786e7522
--- /dev/null
+++ b/source/a/lilo/liloconfig
@@ -0,0 +1,1165 @@
+#!/bin/sh
+#
+# Copyright 1994, 1998, 1999 Patrick Volkerding, Moorhead, Minnesota USA
+# Copyright 2002, 2003 Slackware Linux, Inc, Concord, CA
+# Copyright 2007, 2008 Patrick Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+TMP=/var/log/setup/tmp
+CONSOLETYPE=standard
+unset UTFVT
+
+# Set the OS root directory (called T_PX for some unknown reason).
+# If an argument is given to this script and it is a directory, it
+# is taken to be the root directory. First though, we check for a
+# directory named $T_PX, and that gets the first priority.
+if [ ! -d "$T_PX" ]; then
+ if [ ! "$1" = "" ]; then
+ if [ -d "$1" ]; then
+ T_PX="$1"
+ fi
+ else
+ # Are we on the installer image?
+ if [ -r /usr/lib/setup/SeTpartitions ]; then
+ T_PX=/mnt
+ # Or, are we on a running system?
+ elif [ -r /etc/slackware-version ]; then
+ T_PX=/
+ # One more installer-likely thing:
+ elif [ -r /usr/lib/setup/setup ]; then
+ T_PX=/mnt
+ else
+ # We will have to assume we've on an installed and running system.
+ T_PX=/
+ fi
+ fi
+fi
+
+# If there's no boot_message.txt, start the header for one now:
+if [ ! -r $T_PX/boot/boot_message.txt ]; then
+ cat << EOF > $T_PX/boot/boot_message.txt
+
+Welcome to the LILO Boot Loader!
+
+Please enter the name of the partition you would like to boot
+at the prompt below. The choices are:
+
+EOF
+fi
+
+# The default install location may be set here:
+DEFAULT=" --default-item MBR "
+
+# This is a different 'probe' than the function below.
+PROBE() {
+ if [ -x /sbin/probe ]; then
+ /sbin/probe -l
+ elif fdisk -l | grep "Disk /dev/ide" 1> /dev/null 2> /dev/null ; then # no devfs yet
+ for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
+ /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
+ /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
+ /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
+ fdisk -l $devs 2> /dev/null
+ done
+ elif fdisk -l | grep "Disk /dev/scsi" 1> /dev/null 2> /dev/null ; then # no devfs yet
+ for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
+ /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
+ /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
+ /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
+ fdisk -l $devs 2> /dev/null
+ done
+ elif [ -z "`fdisk -l`" ]; then
+ for devs in /dev/hda /dev/hdb /dev/hdc /dev/hdd /dev/hde /dev/hdf /dev/hdg \
+ /dev/hdh /dev/hdi /dev/hdj /dev/hdk /dev/hdl /dev/hdm /dev/hdn /dev/hdo /dev/hdp \
+ /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi \
+ /dev/sdj /dev/sdk /dev/sdl /dev/sdm /dev/sdn /dev/sdo /dev/sdp ; do
+ fdisk -l $devs 2> /dev/null
+ done
+ else # We got output without /dev/ide or /dev/scsi, so it can probably be trusted:
+ fdisk -l 2> /dev/null
+ fi
+}
+
+# Function to ask if the Slackware logo boot screen should be used.
+ask_boot_splash() {
+ dialog --title "OPTIONAL SLACKWARE LOGO BOOT SCREEN" \
+ --yesno \
+"Would you like to use a boot screen with the Slackware logo \
+against a black background? If you answer no here, the standard \
+LILO menu will be used.\n\
+" 7 65 2> $TMP/reply
+ RETVAL=$?
+ return $RETVAL
+}
+
+boot_bmp() {
+ cat << EO_BMP
+# Boot BMP Image.
+# Bitmap in BMP format: 640x480x8
+ bitmap = /boot/slack.bmp
+# Menu colors (foreground, background, shadow, highlighted
+# foreground, highlighted background, highlighted shadow):
+ bmp-colors = 255,0,255,0,255,0
+# Location of the option table: location x, location y, number of
+# columns, lines per column (max 15), "spill" (this is how many
+# entries must be in the first column before the next begins to
+# be used. We don't specify it here, as there's just one column.
+ bmp-table = 60,6,1,16
+# Timer location x, timer location y, foreground color,
+# background color, shadow color.
+ bmp-timer = 65,27,0,255
+EO_BMP
+}
+
+# Menu to check if we want to use VESA framebuffer support:
+use_framebuffer() {
+if cat /proc/devices | grep "29 fb" 1> /dev/null ; then
+ dialog --title "CONFIGURE LILO TO USE FRAME BUFFER CONSOLE?" \
+ --default-item 1024x768x256 \
+ --menu "Looking at /proc/devices, it seems your kernel has support for \
+the Linux frame buffer console. If we enable this in /etc/lilo.conf, it \
+will allow more rows and columns of text on the screen and give you a cool \
+penguin logo at boot time. However, the frame buffer text console is \
+slower than a standard text console. In addition, not every video card \
+or monitor supports all of these video modes. Would you like to use the \
+frame buffer console, or the standard Linux console?" 0 0 0 \
+ "standard" "Use the standard Linux console (the safe choice)" \
+ "640x480x256" "Frame buffer console, 640x480x256" \
+ "800x600x256" "Frame buffer console, 800x600x256" \
+ "1024x768x256" "Frame buffer console, 1024x768x256" \
+ "640x480x32k" "Frame buffer console, 640x480x32k" \
+ "800x600x32k" "Frame buffer console, 800x600x32k" \
+ "1024x768x32k" "Frame buffer console, 1024x768x32k" \
+ "640x480x64k" "Frame buffer console, 640x480x64k" \
+ "800x600x64k" "Frame buffer console, 800x600x64k" \
+ "1024x768x64k" "Frame buffer console, 1024x768x64k" \
+ 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ exit
+ fi
+# Frame buffer modes above 1024x768 look terrible except
+# on LCD panels, and 32 bit color is slow. Since we don't
+# even need to run a framebuffer console to run framebuffer
+# X anymore, these modes aren't of much real use.
+# "1280x1024x256" "Frame buffer console, 1280x1024x256" \
+# "1600x1200x256" "Frame buffer console, 1600x1200x256" \
+# "1280x1024x32k" "Frame buffer console, 1280x1024x32k" \
+# "1600x1200x32k" "Frame buffer console, 1600x1200x32k" \
+# "1280x1024x64k" "Frame buffer console, 1280x1024x64k" \
+# "1600x1200x64k" "Frame buffer console, 1600x1200x64k" \
+# "640x480x16m" "Frame buffer console, 640x480x16.8m" \
+# "800x600x16m" "Frame buffer console, 800x600x16.8m" \
+# "1024x768x16m" "Frame buffer console, 1024x768x16.8m" \
+# "1280x1024x16m" "Frame buffer console, 1280x1024x16.8m" \
+# "1600x1200x16m" "Frame buffer console, 1600x1200x16.8m"
+ CONSOLETYPE="`cat $TMP/reply`"
+ if [ "$CONSOLETYPE" = "1600x1200x16m" ]; then
+ CONSOLENUM=799
+ elif [ "$CONSOLETYPE" = "1600x1200x64k" ]; then
+ CONSOLENUM=798
+ elif [ "$CONSOLETYPE" = "1600x1200x32k" ]; then
+ CONSOLENUM=797
+ elif [ "$CONSOLETYPE" = "1600x1200x256" ]; then
+ CONSOLENUM=796
+ elif [ "$CONSOLETYPE" = "1280x1024x16m" ]; then
+ CONSOLENUM=795
+ elif [ "$CONSOLETYPE" = "1280x1024x64k" ]; then
+ CONSOLENUM=794
+ elif [ "$CONSOLETYPE" = "1280x1024x32k" ]; then
+ CONSOLENUM=793
+ elif [ "$CONSOLETYPE" = "1280x1024x256" ]; then
+ CONSOLENUM=775
+ elif [ "$CONSOLETYPE" = "1024x768x16m" ]; then
+ CONSOLENUM=792
+ elif [ "$CONSOLETYPE" = "1024x768x64k" ]; then
+ CONSOLENUM=791
+ elif [ "$CONSOLETYPE" = "1024x768x32k" ]; then
+ CONSOLENUM=790
+ elif [ "$CONSOLETYPE" = "1024x768x256" ]; then
+ CONSOLENUM=773
+ elif [ "$CONSOLETYPE" = "800x600x16m" ]; then
+ CONSOLENUM=789
+ elif [ "$CONSOLETYPE" = "800x600x64k" ]; then
+ CONSOLENUM=788
+ elif [ "$CONSOLETYPE" = "800x600x32k" ]; then
+ CONSOLENUM=787
+ elif [ "$CONSOLETYPE" = "800x600x256" ]; then
+ CONSOLENUM=771
+ elif [ "$CONSOLETYPE" = "640x480x16m" ]; then
+ CONSOLENUM=786
+ elif [ "$CONSOLETYPE" = "640x480x64k" ]; then
+ CONSOLENUM=785
+ elif [ "$CONSOLETYPE" = "640x480x32k" ]; then
+ CONSOLENUM=784
+ elif [ "$CONSOLETYPE" = "640x480x256" ]; then
+ CONSOLENUM=769
+ fi
+fi
+}
+
+# A function to ask for append= parameters.
+ask_append() {
+ dialog --title "OPTIONAL LILO append=\"<kernel parameters>\" LINE" --inputbox \
+"Some systems might require extra parameters to be passed to the kernel. \
+If you needed to pass parameters to the kernel when you booted the Slackware \
+bootdisk, you'll probably want to enter the same ones here. Most \
+systems won't require any extra parameters. If you don't need any, just \
+hit ENTER to continue.\n\
+" 12 72 2> $TMP/reply
+ RETVAL=$?
+ return $RETVAL
+}
+
+ask_utf() {
+ if [ "$(uname -r | cut -f 3 -d .)" -gt "23" ]; then
+ dialog --defaultno --title "USE UTF-8 TEXT CONSOLE?" --yesno \
+"Beginning with the 2.6.24 kernel, the text consoles default to UTF-8 mode. \
+Unless you are using a UTF-8 locale (\$LANG setting), using the old default \
+of a non-UTF text console is safer until some issues with various console \
+programs are addressed. This option has no effect on the use of UTF-8 with X. \
+\"No\" is the safe choice here." 10 70
+ fi
+}
+
+# This function scans for bootable partitions (making some assumptions along
+# the way which may or may not be correct, but usually work), and sets up
+# LILO in either the superblock, or the MBR.
+simplelilo()
+{
+ use_framebuffer;
+
+ ask_append;
+ if [ $? = 1 -o $? = 255 ]; then
+ APPEND=""
+ fi
+ APPEND="`cat $TMP/reply`"
+
+ ask_utf;
+ if [ $? = 1 -o $? = 255 ]; then
+ UTFVT="vt.default_utf8=0"
+ else
+ UTFVT="vt.default_utf8=1"
+ fi
+
+ if PROBE -l | grep 'OS/2 Boot Manager' 1> /dev/null 2> /dev/null ; then
+ dialog --title "OS/2 BOOT MANAGER FOUND" --yesno \
+ "Your system appears to have Boot Manager, a boot menu system provided \
+with OS/2 and Partition Magic. If you like, we can install a very simple \
+LILO boot block at the start of your Linux partition. Then, you can \
+add the partition to the Boot Manager menu, and you'll be able to use \
+Boot Manager to boot Linux. Would you like to install LILO in a Boot \
+Manager compatible way?" 11 65
+ FLAG=$?
+ if [ ! $FLAG = 0 -a ! $FLAG = 1 ]; then
+ exit 1
+ fi
+ if [ $FLAG = 0 ]; then # yes, use BM
+ if [ -r $T_PX/etc/lilo.conf ]; then
+ mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.orig
+ fi
+ cat << EOF > $T_PX/etc/lilo.conf
+# LILO configuration file
+# generated by 'liloconfig'
+#
+# Start LILO global section
+#
+EOF
+ if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
+ echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf
+ echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf
+ fi
+ cat << EOF >> $T_PX/etc/lilo.conf
+boot = $ROOT_DEVICE
+#delay = 5
+EOF
+ if [ "$CONSOLETYPE" = "standard" ]; then
+ cat << EOF >> $T_PX/etc/lilo.conf
+vga = normal
+EOF
+ else
+ cat << EOF >> $T_PX/etc/lilo.conf
+# VESA framebuffer at $CONSOLETYPE
+vga = $CONSOLENUM
+EOF
+ fi
+ cat << EOF >> $T_PX/etc/lilo.conf
+# End LILO global section
+# Linux root partition section
+image = $KERNEL
+ root = $ROOT_DEVICE
+ label = Linux
+ read-only
+# End root Linux partition section
+EOF
+ installcolor;
+ return
+ fi # Use Boot Manager
+ fi # Boot Manager detected
+ # If we got here, we either don't have boot manager or don't want to use it
+ dialog --title "SELECT LILO DESTINATION" $DEFAULT --menu \
+"LILO can be installed to a variety of places:\n\
+\n\
+ 1. The superblock of your root Linux partition. (which could\n\
+ be made the bootable partition with Windows or Linux fdisk, or\n\
+ booted with a program like OS/2 Boot Manager)\n\
+ 2. A formatted floppy disk.\n\
+ 3. The Master Boot Record of your first hard drive.\n\
+\n\
+Options 1 and 2 are the safest, but option 1 does require a little\n\
+extra work later (setting the partition bootable with fdisk).\n\
+Which option would you like?" \
+ 20 72 3 \
+ "Root" "Install to superblock (not for use with XFS)" \
+ "Floppy" "Install to a formatted floppy in /dev/fd0 (A:)" \
+ "MBR" "Install to Master Boot Record" \
+ 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ exit
+ fi
+ TG="`cat $TMP/reply`"
+ rm -r $TMP/reply
+ if [ "$TG" = "MBR" ]; then
+ MBR_TARGET=/dev/sda
+ echo $MBR_TARGET > $TMP/LILOMBR
+ cat /proc/partitions | while read LINE ; do
+ MAJOR="`echo $LINE | cut -f 1 -d ' '`"
+ MINOR="`echo $LINE | cut -f 2 -d ' '`"
+ if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives
+ if [ "$MAJOR" = "3" ]; then
+ MBR_TARGET=/dev/hda
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then
+ MBR_TARGET=/dev/hdc
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then
+ MBR_TARGET=/dev/hde
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then
+ MBR_TARGET=/dev/hdg
+ echo $MBR_TARGET > $TMP/LILOMBR
+ fi
+ fi
+ done
+ LILO_TARGET=`cat $TMP/LILOMBR`
+ elif [ "$TG" = "Root" ]; then
+ LILO_TARGET=`echo $ROOT_DEVICE`
+ elif [ "$TG" = "Floppy" ]; then
+ LILO_TARGET="/dev/fd0"
+ fi
+ cat << EOF > $T_PX/etc/lilo.conf
+# LILO configuration file
+# generated by 'liloconfig'
+#
+# Start LILO global section
+EOF
+ if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
+ echo "# Append any additional kernel parameters:" >> $T_PX/etc/lilo.conf
+ echo "append=\"$APPEND $UTFVT\"" >> $T_PX/etc/lilo.conf
+ fi
+ cat << EOF >> $T_PX/etc/lilo.conf
+boot = $LILO_TARGET
+
+# Boot BMP Image.
+# Bitmap in BMP format: 640x480x8
+ bitmap = /boot/slack.bmp
+# Menu colors (foreground, background, shadow, highlighted
+# foreground, highlighted background, highlighted shadow):
+ bmp-colors = 255,0,255,0,255,0
+# Location of the option table: location x, location y, number of
+# columns, lines per column (max 15), "spill" (this is how many
+# entries must be in the first column before the next begins to
+# be used. We don't specify it here, as there's just one column.
+ bmp-table = 60,6,1,16
+# Timer location x, timer location y, foreground color,
+# background color, shadow color.
+ bmp-timer = 65,27,0,255
+
+# Standard menu.
+# Or, you can comment out the bitmap menu above and
+# use a boot message with the standard menu:
+#message = /boot/boot_message.txt
+
+# Wait until the timeout to boot (if commented out, boot the
+# first entry immediately):
+prompt
+# Timeout before the first entry boots.
+# This is given in tenths of a second, so 600 for every minute:
+timeout = 1200
+# Override dangerous defaults that rewrite the partition table:
+change-rules
+ reset
+EOF
+ if [ "$CONSOLETYPE" = "standard" ]; then
+ cat << EOF >> $T_PX/etc/lilo.conf
+# Normal VGA console
+vga = normal
+# VESA framebuffer console @ 1024x768x64k
+# vga=791
+# VESA framebuffer console @ 1024x768x32k
+# vga=790
+# VESA framebuffer console @ 1024x768x256
+# vga=773
+# VESA framebuffer console @ 800x600x64k
+# vga=788
+# VESA framebuffer console @ 800x600x32k
+# vga=787
+# VESA framebuffer console @ 800x600x256
+# vga=771
+# VESA framebuffer console @ 640x480x64k
+# vga=785
+# VESA framebuffer console @ 640x480x32k
+# vga=784
+# VESA framebuffer console @ 640x480x256
+# vga=769
+EOF
+ else
+ cat << EOF >> $T_PX/etc/lilo.conf
+# VESA framebuffer console @ $CONSOLETYPE
+vga = $CONSOLENUM
+# Normal VGA console
+# vga = normal
+# VESA framebuffer console @ 1024x768x64k
+# vga=791
+# VESA framebuffer console @ 1024x768x32k
+# vga=790
+# VESA framebuffer console @ 1024x768x256
+# vga=773
+# VESA framebuffer console @ 800x600x64k
+# vga=788
+# VESA framebuffer console @ 800x600x32k
+# vga=787
+# VESA framebuffer console @ 800x600x256
+# vga=771
+# VESA framebuffer console @ 640x480x64k
+# vga=785
+# VESA framebuffer console @ 640x480x32k
+# vga=784
+# VESA framebuffer console @ 640x480x256
+# vga=769
+EOF
+ fi
+cat << EOF >> $T_PX/etc/lilo.conf
+# End LILO global section
+EOF
+ # OK, now let's look for Windows partitions:
+ DOSP="`PROBE -l | grep "DOS
+Win
+W95
+FAT12
+FAT16
+HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort`"
+ DOSP="`echo $DOSP | cut -f 1 -d ' '`"
+ if [ ! "$DOSP" = "" ]; then
+ TABLE="`echo $DOSP | cut -b1-8`"
+ cat << EOF >> $T_PX/etc/lilo.conf
+# Windows bootable partition config begins
+other = $DOSP
+ label = Windows
+ table = $TABLE
+# Windows bootable partition config ends
+EOF
+ echo "Windows - (Windows FAT/NTFS partition)" >> $T_PX/boot/boot_message.txt
+ fi
+ # Next, we search for Linux partitions:
+ LNXP="`PROBE -l | grep "Linux$"`"
+ LNXP="`echo $LNXP | cut -f 1 -d ' ' | sort`"
+ if [ ! "$LNXP" = "" ]; then
+ cat << EOF >> $T_PX/etc/lilo.conf
+# Linux bootable partition config begins
+image = $KERNEL
+ root = $ROOT_DEVICE
+ label = Linux
+ read-only
+# Linux bootable partition config ends
+EOF
+ echo "Linux - (Linux partition)" >> $T_PX/boot/boot_message.txt
+ fi
+# DEAD CODE, BUT IN CASE OS/2 MAKES A COMEBACK!
+# # OK, hopefully we can remember how to deal with OS/2 :^)
+# OS2P="`PROBE -l | grep "HPFS"`"
+# OS2P="`echo $OS2P | cut -f 1 -d ' ' | sort`"
+# if [ ! "$OS2P" = "" ]; then
+# TABLE="`echo $OS2P | cut -b1-8`"
+# if [ "$TABLE" = "/dev/hda" ]; then
+# cat << EOF >> $T_PX/etc/lilo.conf
+## OS/2 bootable partition config begins
+#other = $OS2P
+# label = OS2
+# table = $TABLE
+## OS/2 bootable partition config ends
+#EOF
+# else
+# cat << EOF >> $T_PX/etc/lilo.conf
+## OS/2 bootable partition config begins
+#other = $OS2P
+# label = OS2
+# table = $TABLE
+# loader = /boot/os2_d.b
+## map-drive = 0x80
+## to = 0x81
+## map-drive = 0x81
+## to = 0x80
+## OS/2 bootable partition config ends
+#EOF
+# echo "OS2 - OS/2 Warp (HPFS partition)" >> $T_PX/boot/boot_message.txt
+# fi
+# fi
+ echo >> $T_PX/boot/boot_message.txt
+ # Done, now we must install lilo:
+ installcolor;
+}
+
+checkp_text()
+{
+ if [ ! -r $1 ]; then
+ echo
+ echo "I can't find a device named '$1'!"
+ echo
+ echo -n "Are you sure you want to use this device name [y]es, [n]o? "
+ read use_device;
+ if [ ! "$use_device" = "y" ]; then
+ return 1;
+ fi
+ return 0;
+ fi
+}
+
+checkp_dialog()
+{
+ if [ ! -r $1 ]; then
+ dialog --title "DEVICE FILE NOT FOUND" --yesno "I can't find a \
+device named '$1'. Are you sure you want to use this device \
+name?" 7 60
+ return $?;
+ fi
+}
+
+installcolor()
+{
+ dialog --infobox "\nInstalling the Linux Loader..." 5 40
+ if [ "$T_PX" = "/" ]; then
+ lilo 1> /dev/null 2> /etc/lilo-error.$$
+ SUCCESS=$?
+ else
+ lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$
+ SUCCESS=$?
+ fi
+ if [ ! "$SUCCESS" = "0" ]; then # edit file to try lba32 mode:
+ cat $T_PX/etc/lilo.conf | while read line ; do
+ echo $line
+ if [ "$line" = "# Start LILO global section" ] ; then
+ echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS"
+ fi
+ done > $T_PX/etc/lilo.conf.lba32
+ mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf
+ if [ "$T_PX" = "/" ]; then
+ lilo 1> /dev/null 2> /etc/lilo-error.$$
+ SUCCESS=$?
+ else
+ lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /etc/lilo-error.$$
+ SUCCESS=$?
+ fi
+ fi
+ sleep 1
+ if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured
+ echo >> /etc/lilo-error.$$
+cat << EOF >> /etc/lilo-error.$$
+Sorry, but the attempt to install LILO has returned an error, so LILO \
+has not been correctly installed. You'll have to use a bootdisk \
+to start your \
+machine instead. It should still be possible to get LILO working by \
+editing the /etc/lilo.conf and reinstalling LILO manually. See the \
+LILO man page and documentation in /usr/doc/lilo/ for more help. \
+The error message may be seen above.
+EOF
+ dialog --msgbox "$(cat /etc/lilo-error.$$)" 0 0
+ fi
+}
+
+installtext()
+{
+ echo "Installing the Linux Loader..."
+ if [ "$T_PX" = "/" ]; then
+ lilo
+ SUCCESS=$?
+ else
+ lilo -r $T_PX -m /boot/map -C /etc/lilo.conf
+ SUCCESS=$?
+ fi
+ if [ ! "$SUCCESS" = "0" ]; then # try lba32 mode:
+ cat $T_PX/etc/lilo.conf | while read line ; do
+ echo $line
+ if [ "$line" = "# Start LILO global section" ] ; then
+ echo "lba32 # Allow booting past 1024th cylinder with a recent BIOS"
+ fi
+ done > $T_PX/etc/lilo.conf.lba32
+ mv $T_PX/etc/lilo.conf.lba32 $T_PX/etc/lilo.conf
+ if [ "$T_PX" = "/" ]; then
+ lilo 1> /dev/null 2> /dev/null
+ SUCCESS=$?
+ else
+ lilo -r $T_PX -m /boot/map -C /etc/lilo.conf 1> /dev/null 2> /dev/null
+ SUCCESS=$?
+ fi
+ fi
+ sleep 1
+ if [ ! "$SUCCESS" = "0" ]; then # some LILO error occured
+ cat << EOF
+
+LILO INSTALL ERROR # $SUCCESS
+
+Sorry, but the attempt to install LILO has returned an error, so LILO
+has not been correctly installed. You'll have to use a bootdisk to
+start your machine instead. It should still be possible to get LILO
+working by editing the /etc/lilo.conf and reinstalling LILO manually.
+See the LILO man page and documentation in /usr/doc/lilo/ for more
+help.
+
+EOF
+ fi
+}
+
+# 'probe()' borrowed from LILO QuickInst.
+probe()
+{
+ [ ! -z "`dd if=$1 bs=1 count=1 2>/dev/null | tr '\0' x`" ]
+ return
+}
+
+# Figure out if we're installing from the hard drive
+if [ -r $TMP/SeTT_PX ]; then
+ T_PX="`cat $TMP/SeTT_PX`"
+else
+ if [ "$T_PX" = "" -a ! "$1" = "" ]; then
+ T_PX=$1
+ else
+ T_PX=/
+ fi
+fi
+HDR="no" # this means the header section of /etc/lilo.conf has not yet
+ # been configured
+LNX="no" # this means no Linux partition has been defined as bootable
+ # through LILO. Both of these must change to "yes" before LILO will
+ # install from this script.
+# Determine the root partition (such as /dev/hda2)
+ROOT_DEVICE=$2
+if [ "$ROOT_DEVICE" = "" ]; then
+ if [ -r $TMP/SeTrootdev ]; then
+ ROOT_DEVICE="`cat $TMP/SeTrootdev`"
+ else
+ ROOT_DEVICE="`mount | cut -f 1 -d " " | sed -n "1 p"`"
+ fi
+fi
+# Figure out where the kernel is:
+ARCHTYPE=i386
+if [ -r $T_PX/vmlinuz ]; then
+ KERNEL=/vmlinuz
+elif [ -r $T_PX/boot/vmlinuz ]; then
+ KERNEL=/boot/vmlinuz
+elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/bzImage ]; then
+ KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/bzImage
+elif [ -r $T_PX/usr/src/linux/arch/$ARCHTYPE/boot/zImage ]; then
+ KERNEL=/usr/src/linux/arch/$ARCHTYPE/boot/zImage
+else
+ exit 99 # no kernel? guess you couldn't read. bye bye.
+fi
+
+ # If we're installing from the umsdos.gz rootdisk, suggest skipping LILO:
+ if [ ! "$T_PX" = "/" ]; then
+ if mount | grep " on /mnt " | grep umsdos 1> /dev/null 2> /dev/null ; then
+ dialog --title "SKIP LILO CONFIGURATION? (RECOMMENDED)" --yesno "Since \
+you are installing to a FAT partition, it's suggested that you do not \
+configure LILO at this time. (Instead, use your bootdisk. For booting \
+off the hard drive from MS-DOS, you can use Loadlin. You'll find \
+Loadlin on your hard drive in \LINUX\ROOT) Skip LILO configuration \
+(highly recommended)?" 10 70
+ if [ $? = 0 ]; then
+ exit
+ fi
+ fi
+ fi
+ # OK, now let's see if we should automate things:
+ dialog --title "INSTALL LILO" --menu "LILO (Linux Loader) is a generic \
+boot loader. There's a simple installation which tries to automatically \
+set up LILO to boot Linux (also Windows if found). For \
+more advanced users, the expert option offers more control over the \
+installation process. Since LILO does not work in all cases (and can \
+damage partitions if incorrectly installed), there's the third (safe) \
+option, which is to skip installing LILO for now. You can always install \
+it later with the 'liloconfig' command. Which option would you like?" \
+ 18 67 3 \
+ "simple" "Try to install LILO automatically" \
+ "expert" "Use expert lilo.conf setup menu" \
+ "skip" "Do not install LILO" 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ exit
+ fi
+ REPLY="`cat $TMP/reply`"
+ rm -f $TMP/reply
+ if [ "$REPLY" = "skip" ]; then
+ exit
+ elif [ "$REPLY" = "simple" ]; then
+ # Do simple LILO setup
+ simplelilo
+ exit
+ fi
+ # drop through to last option: (use the expert menus)
+ while [ 0 ]; do
+ dialog --title "EXPERT LILO INSTALLATION" --menu \
+"This menu directs the creation of the LILO config file, lilo.conf. \
+To install, you make a new LILO configuration file by creating a new header \
+and then adding one or more bootable partitions to the file. Once you've done \
+this, you can select the install option. Alternately, if you already have an \
+/etc/lilo.conf, you may reinstall using that. If you make a mistake, you can \
+always start over by choosing 'Begin'. \
+Which option would you like?" 21 73 8 \
+"Begin" "Start LILO configuration with a new LILO header" \
+"Linux" "Add a Linux partition to the LILO config" \
+"Windows" "Add a Windows FAT or NTFS partition to the LILO config" \
+"Install" "Install LILO" \
+"Recycle" "Reinstall LILO using the existing lilo.conf" \
+"Skip" "Skip LILO installation and exit this menu" \
+"View" "View your current /etc/lilo.conf" \
+"Help" "Read the Linux Loader HELP file" 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ REPLY="Skip"
+ else
+ REPLY="`cat $TMP/reply`"
+ fi
+ rm -r $TMP/reply
+ if [ "$REPLY" = "Begin" ]; then
+ ask_append;
+ if [ $? = 1 -o $? = 255 ]; then
+ APPEND=""
+ HDR="no"
+ continue;
+ else
+ APPEND="`cat $TMP/reply`"
+ fi
+ ask_utf;
+ if [ $? = 1 -o $? = 255 ]; then
+ UTFVT="vt.default_utf8=0"
+ else
+ UTFVT="vt.default_utf8=1"
+ fi
+ use_framebuffer;
+ dialog --title "SELECT LILO TARGET LOCATION" $DEFAULT --menu "LILO can be installed \
+to a variety of places: \
+the superblock of your root Linux partition (which could then be made the \
+bootable partition with fdisk), a formatted floppy disk, \
+or the master boot record of your first hard drive. If you're using \
+a boot system such as Boot Manager, you should use the "Root" \
+selection. Please pick a target location:" 15 65 3 \
+"Root" "Install to superblock (not for use with XFS)" \
+"Floppy" "Use a formatted floppy disk in the boot drive" \
+"MBR" "Use the Master Boot Record (possibly unsafe)" \
+2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ HDR="no"
+ continue;
+ else
+ LNX="no"
+ TG="`cat $TMP/reply`"
+ fi
+ rm -r $TMP/reply
+ if [ "$TG" = "MBR" ]; then
+ MBR_TARGET=/dev/sda
+ echo $MBR_TARGET > $TMP/LILOMBR
+ cat /proc/partitions | while read LINE ; do
+ MAJOR="`echo $LINE | cut -f 1 -d ' '`"
+ MINOR="`echo $LINE | cut -f 2 -d ' '`"
+ if [ ! "$MINOR" = "0" -a ! "$MINOR" = "64" ]; then # ignore whole devices to weed out CD drives
+ if [ "$MAJOR" = "3" ]; then
+ MBR_TARGET=/dev/hda
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "22" -a ! "$MBR_TARGET" = "/dev/hda" ]; then
+ MBR_TARGET=/dev/hdc
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "33" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" ]; then
+ MBR_TARGET=/dev/hde
+ echo $MBR_TARGET > $TMP/LILOMBR
+ elif [ "$MAJOR" = "34" -a ! "$MBR_TARGET" = "/dev/hda" -a ! "$MBR_TARGET" = "/dev/hdc" -a ! "$MBR_TARGET" = "/dev/hde" ]; then
+ MBR_TARGET=/dev/hdg
+ echo $MBR_TARGET > $TMP/LILOMBR
+ fi
+ fi
+ done
+ LILO_TARGET=`cat $TMP/LILOMBR`
+ dialog --title "CONFIRM LOCATION TO INSTALL LILO" --inputbox \
+"The auto-detected location to install the LILO boot block is shown below. \
+If you need to make any changes, you can make them below. Otherwise, hit \
+ENTER to accept the target location shown." 11 60 $LILO_TARGET 2> $TMP/reply
+ if [ $? = 0 ]; then
+ LILO_TARGET="`cat $TMP/reply`"
+ fi
+ rm -f $TMP/reply
+ elif [ "$TG" = "Root" ]; then
+ LILO_TARGET=`echo $ROOT_DEVICE`
+ elif [ "$TG" = "Floppy" ]; then
+ LILO_TARGET="/dev/fd0"
+ else
+ HDR="no"
+ continue;
+ fi
+ dialog --title "CHOOSE LILO TIMEOUT" --menu "At boot time, how long would \
+you like LILO to wait for you to select an operating system? If you \
+let LILO time out, it will boot the first OS in the configuration file by \
+default." 13 74 4 \
+"None" "Don't wait at all - boot straight into the first OS" \
+"5" "5 seconds" \
+"30" "30 seconds" \
+"Forever" "Present a prompt and wait until a choice is made" 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ HDR="no"
+ continue;
+ else
+ TIMEOUT="`cat $TMP/reply`"
+ fi
+ rm -r $TMP/reply
+ if [ "$TIMEOUT" = "None" ]; then
+ PROMPT="#prompt"
+ TIMEOUT="#timeout = 5"
+ elif [ "$TIMEOUT" = "5" ]; then
+ PROMPT="prompt"
+ TIMEOUT="timeout = 50"
+ elif [ "$TIMEOUT" = "30" ]; then
+ PROMPT="prompt"
+ TIMEOUT="timeout = 300"
+ elif [ "$TIMEOUT" = "Forever" ]; then
+ PROMPT="prompt"
+ TIMEOUT="#timeout = 300"
+ else
+ HDR="no"
+ continue;
+ fi
+ cat << EOF > $TMP/lilo.conf
+# LILO configuration file
+# generated by 'liloconfig'
+#
+# Start LILO global section
+boot = $LILO_TARGET
+#compact # faster, but won't work on all systems.
+EOF
+ # Boot splash
+ if [ "$PROMPT" = "prompt" ]; then
+ if ask_boot_splash ; then
+ boot_bmp >> $TMP/lilo.conf
+ cat << EOF >> $TMP/lilo.conf
+# Standard menu.
+# Or, you can comment out the bitmap menu above and
+# use a boot message with the standard menu:
+#message = /boot/boot_message.txt
+
+EOF
+ fi
+ else
+ cat << EOF >> $TMP/lilo.conf
+# Standard menu.
+message = /boot/boot_message.txt
+
+EOF
+ fi
+ if [ ! "$APPEND" = "" -o ! "$UTFVT" = "" ]; then
+ echo "# Append any additional kernel parameters:" >> $TMP/lilo.conf
+ echo "append=\"$APPEND $UTFVT\"" >> $TMP/lilo.conf
+ fi
+ cat << EOF >> $TMP/lilo.conf
+$PROMPT
+$TIMEOUT
+EOF
+ if [ "$CONSOLETYPE" = "standard" ]; then
+ cat << EOF >> $TMP/lilo.conf
+# Normal VGA console
+vga = normal
+# VESA framebuffer console @ 1024x768x64k
+# vga=791
+# VESA framebuffer console @ 1024x768x32k
+# vga=790
+# VESA framebuffer console @ 1024x768x256
+# vga=773
+# VESA framebuffer console @ 800x600x64k
+# vga=788
+# VESA framebuffer console @ 800x600x32k
+# vga=787
+# VESA framebuffer console @ 800x600x256
+# vga=771
+# VESA framebuffer console @ 640x480x64k
+# vga=785
+# VESA framebuffer console @ 640x480x32k
+# vga=784
+# VESA framebuffer console @ 640x480x256
+# vga=769
+EOF
+ else
+ cat << EOF >> $TMP/lilo.conf
+# VESA framebuffer console @ $CONSOLETYPE
+vga = $CONSOLENUM
+# Normal VGA console
+# vga = normal
+# VESA framebuffer console @ 1024x768x64k
+# vga=791
+# VESA framebuffer console @ 1024x768x32k
+# vga=790
+# VESA framebuffer console @ 1024x768x256
+# vga=773
+# VESA framebuffer console @ 800x600x64k
+# vga=788
+# VESA framebuffer console @ 800x600x32k
+# vga=787
+# VESA framebuffer console @ 800x600x256
+# vga=771
+# VESA framebuffer console @ 640x480x64k
+# vga=785
+# VESA framebuffer console @ 640x480x32k
+# vga=784
+# VESA framebuffer console @ 640x480x256
+# vga=769
+EOF
+ fi
+ cat << EOF >> $TMP/lilo.conf
+# ramdisk = 0 # paranoia setting
+# End LILO global section
+EOF
+ HDR="yes"
+ elif [ "$REPLY" = "Linux" ]; then
+ if [ "$HDR" = "yes" ]; then
+ echo "These are your Linux partitions:" > $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg
+ PROBE -l | grep "Linux$" | sort >> $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg
+ dialog --title "SELECT LINUX PARTITION" --no-collapse --inputbox \
+"`cat $TMP/tmpmsg`" 21 74 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ rm $TMP/tmpmsg
+ continue
+ fi
+ rm $TMP/tmpmsg
+ LINUX_PART="`cat $TMP/reply`"
+ checkp_dialog $LINUX_PART
+ if [ ! $? = 0 ]; then
+ continue;
+ fi
+ dialog --title "SELECT PARTITION NAME" --inputbox \
+"Now you must select a short, unique name for this partition. \
+You'll use this name if you specify a partition to boot at the \
+LILO prompt. 'Linux' might not be a bad choice. THIS MUST BE A \
+SINGLE WORD." 11 60 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ continue
+ fi
+ LABEL="`cat $TMP/reply`"
+ cat << EOF >> $TMP/lilo.conf
+# Linux bootable partition config begins
+image = $KERNEL
+ root = $LINUX_PART
+ label = $LABEL
+ read-only # Partitions should be mounted read-only for checking
+# Linux bootable partition config ends
+EOF
+ else
+ dialog --title "CAN'T ADD LINUX PARTITION" --msgbox "You can't add \
+partitions unless you start over with a new LILO header." 6 60
+ continue
+ fi
+ LNX="yes"
+ # MORE OS/2 DEAD CODE... DOESN'T HURT.
+ # THIS ITEM HAS LONG BEEN REMOVED FROM THE MENU...
+ elif [ "$REPLY" = "OS/2" ]; then
+ if [ "$HDR" = "yes" ]; then
+ echo "These are possibly OS/2 partitions. They will be treated" > $TMP/tmpmsg
+ echo "as such if you install them using this menu." >> $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg
+ PROBE -l | grep DOS | sort >> $TMP/tmpmsg
+ PROBE -l | grep HPFS | sort >> $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg
+ dialog --title "SELECT OS/2 PARTITION" --no-collapse --inputbox \
+"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ rm $TMP/tmpmsg
+ continue
+ fi
+ rm $TMP/tmpmsg
+ OS_2_PART="`cat $TMP/reply`"
+ checkp_dialog $OS_2_PART
+ if [ ! $? = 0 ]; then
+ continue;
+ fi
+ dialog --title "SELECT PARTITION NAME" --inputbox \
+"Now you must select a short, unique name for this partition. \
+You'll use this name if you specify a partition to boot at the \
+LILO prompt. 'OS/2' might not be a bad choice. THIS MUST BE A \
+SINGLE WORD." 11 60 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ continue
+ fi
+ LABEL="`cat $TMP/reply`"
+ TABLE="`echo $OS_2_PART | cut -b1-8`"
+ if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then
+ cat << EOF >> $TMP/lilo.conf
+# OS/2 bootable partition config begins
+other = $OS_2_PART
+ label = $LABEL
+ table = $TABLE
+# OS/2 bootable partition config ends
+EOF
+ else
+ cat << EOF >> $TMP/lilo.conf
+# OS/2 bootable partition config begins
+other = $OS_2_PART
+ label = $LABEL
+ table = $TABLE
+ loader = /boot/os2_d.b
+# map-drive = 0x80
+# to = 0x81
+# map-drive = 0x81
+# to = 0x80
+# OS/2 bootable partition config ends
+EOF
+ fi
+ else
+ dialog --title "CAN'T ADD OS/2 PARTITION" --msgbox "You can't add \
+partitions unless you start over with a new LILO header." 6 60
+ continue
+ fi
+ LNX="yes"
+ elif [ "$REPLY" = "Windows" ]; then
+ if [ "$HDR" = "yes" ]; then
+ echo "These are possibly Windows or DOS partitions. They will be treated" > $TMP/tmpmsg
+ echo "as such if you install them using this menu." >> $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo " Device Boot Start End Blocks Id System" >> $TMP/tmpmsg
+ PROBE -l | grep "DOS
+Win
+W95
+FAT12
+FAT16
+HPFS" | grep -v "Ext'd" | grep -v "Extend" | sort >> $TMP/tmpmsg
+ echo >> $TMP/tmpmsg
+ echo "Which one would you like LILO to boot?" >> $TMP/tmpmsg
+ dialog --title "SELECT WINDOWS PARTITION" --no-collapse --inputbox \
+"`cat $TMP/tmpmsg`" 20 74 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ rm $TMP/tmpmsg
+ continue
+ fi
+ rm $TMP/tmpmsg
+ DOSPART="`cat $TMP/reply`"
+ checkp_dialog $DOSPART
+ if [ ! $? = 0 ]; then
+ continue;
+ fi
+ dialog --title "SELECT PARTITION NAME" --inputbox \
+"Now you must select a short, unique name for this partition. \
+You'll use this name if you specify a partition to boot at the \
+LILO prompt. 'Windows' might not be a bad choice. THIS MUST BE A \
+SINGLE WORD." 11 60 2> $TMP/reply
+ if [ $? = 1 -o $? = 255 ]; then
+ continue
+ fi
+ LABEL="`cat $TMP/reply`"
+ unset USE_LOADER
+ TABLE="`echo $DOSPART | cut -b1-8`"
+ if [ "`echo $TABLE | cut -b6-8`" = "hda" ]; then
+ USE_LOADER="no"
+ fi
+ if [ "`echo $TABLE | cut -b6-8`" = "sda" ]; then
+ if probe /dev/hda; then
+ USE_LOADER="yes"
+ else
+ USE_LOADER="no"
+ fi
+ fi
+ if [ "$USE_LOADER" = "no" ]; then
+ cat << EOF >> $TMP/lilo.conf
+# Windows bootable partition config begins
+other = $DOSPART
+ label = $LABEL
+ table = $TABLE
+# Windows bootable partition config ends
+EOF
+ else
+ cat << EOF >> $TMP/lilo.conf
+# Windows bootable partition config begins
+other = $DOSPART
+ label = $LABEL
+# map-drive = 0x80
+# to = 0x81
+# map-drive = 0x81
+# to = 0x80
+ table = $TABLE
+# Windows bootable partition config ends
+EOF
+ fi
+ else
+ dialog --title "CAN'T ADD WINDOWS PARTITION" --msgbox "You can't add \
+partitions unless you start over with a new LILO header." 6 60
+ continue
+ fi
+ LNX="yes"
+ elif [ "$REPLY" = "Install" -o "$REPLY" = "Recycle" ]; then
+ if [ "$REPLY" = "Recycle" -a -r $T_PX/etc/lilo.conf ]; then
+ LNX="yes"
+ fi
+ if [ "$LNX" = "no" ]; then
+ dialog --title "CAN'T INSTALL LILO" --msgbox "LILO could not be \
+installed. If you have not created a LILO configuration file by defining \
+a new header and adding at least one bootable partition to it, you must do \
+so before installing LILO. If you were attempting to use an existing LILO \
+configuration file, it could not be found. Try making a new one." 9 70
+ continue
+ else
+ if [ "$REPLY" = "Install" ]; then
+ if [ -r $TMP/lilo.conf ]; then
+ if [ -r $T_PX/etc/lilo.conf ]; then
+ mv $T_PX/etc/lilo.conf $T_PX/etc/lilo.conf.bak
+ fi
+ cp $TMP/lilo.conf $T_PX/etc/lilo.conf
+ chmod 644 $T_PX/etc/lilo.conf
+ fi
+ fi
+ installcolor;
+ fi
+ rm -f $TMP/tmpmsg $TMP/reply
+ break
+ elif [ "$REPLY" = "Skip" ]; then
+ rm -f $TMP/tmpmsg $TMP/reply
+ break
+ elif [ "$REPLY" = "View" ]; then
+ if [ -r $TMP/lilo.conf ]; then
+ dialog --title "YOUR NEW /etc/lilo.conf" --textbox "$TMP/lilo.conf" 22 70
+ else
+ if [ -r /mnt/etc/lilo.conf ]; then
+ dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/mnt/etc/lilo.conf" 22 70
+ elif [ "$T_PX" = "/" -a -r /etc/lilo.conf ]; then
+ dialog --title "YOUR OLD /etc/lilo.conf" --textbox "/etc/lilo.conf" 22 70
+ else
+ dialog --title "NO CONFIG FILE FOUND" --msgbox "Sorry, but you don't \
+have a LILO configuration file that can be viewed." 6 60
+ fi
+ fi
+ elif [ "$REPLY" = "Help" ]; then
+ dialog --title "LILO INSTALLATION HELP" --textbox "$T_PX/var/log/setup/text.lilohelp" 22 68
+ fi
+ done
+
diff --git a/source/a/lilo/setup.liloconfig b/source/a/lilo/setup.liloconfig
new file mode 100644
index 000000000..0b9798542
--- /dev/null
+++ b/source/a/lilo/setup.liloconfig
@@ -0,0 +1,3 @@
+#!/bin/sh
+#BLURB="Set up LILO to boot Linux (and other OSes) from your hard drive"
+sh sbin/liloconfig $*
diff --git a/source/a/lilo/slack-desc b/source/a/lilo/slack-desc
new file mode 100644
index 000000000..db5daf651
--- /dev/null
+++ b/source/a/lilo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+lilo: lilo (Linux Loader)
+lilo:
+lilo: Generic Boot Loader for Linux ('LInux LOader') by Werner Almesberger.
+lilo: LILO boots Linux from your hard drive. It can also boot other
+lilo: operating systems such as MS-DOS and OS/2, and can even boot DOS from
+lilo: the second hard drive. LILO comes with utilities and documentation
+lilo: that make it easier to install, such as 'liloconfig' and 'QuickStart'.
+lilo: NOTE: Installing boot loaders is inherently dangerous. Be sure to have
+lilo: some means to boot your system from a different media if you install
+lilo: LILO on your hard disk.
+lilo:
diff --git a/source/a/lilo/slack.bmp b/source/a/lilo/slack.bmp
new file mode 100644
index 000000000..3dd5652a8
--- /dev/null
+++ b/source/a/lilo/slack.bmp
Binary files differ
diff --git a/source/a/lilo/slack.dat b/source/a/lilo/slack.dat
new file mode 100644
index 000000000..73c557e61
--- /dev/null
+++ b/source/a/lilo/slack.dat
@@ -0,0 +1,7 @@
+#
+# generated companion file to:
+#
+bitmap = slack.bmp
+bmp-table = 60,6;1,16,16,4
+bmp-colors = 255,0,;0,255,
+bmp-timer = 65,28;255,0,
diff --git a/source/a/lilo/slack64.bmp b/source/a/lilo/slack64.bmp
new file mode 100644
index 000000000..464e4683e
--- /dev/null
+++ b/source/a/lilo/slack64.bmp
Binary files differ
diff --git a/source/a/lilo/text.lilohelp b/source/a/lilo/text.lilohelp
new file mode 100644
index 000000000..9f06bf785
--- /dev/null
+++ b/source/a/lilo/text.lilohelp
@@ -0,0 +1,100 @@
+
+Slackware LILO Installation HELP file
+
+WARNING: As they say in the LILO docs, installing boot
+loaders is inherently dangerous. Be careful out there!
+
+These are the options you can use at the Slackware LILO
+install menu:
+
+1. Start LILO configuration with a new LILO header.
+
+ This choice allows you to start a new configuration
+ file, /etc/lilo.conf, with no OS's entered into it
+ (yet).
+
+ You'll first be asked if you want to use an optional
+ append="...." line. If you didn't need to use extra
+ parameters at the bootkernel prompt, then you can
+ probably just hit ENTER here.
+
+ You will be asked where you want to install LILO. This
+ can be your Master Boot Record, your root partition's
+ superblock (for OS/2's Boot Manager), or to a
+ formatted floppy disk.
+
+ Next, you'll be asked if you want a delay before
+ booting the first OS in your lilo.conf file. This delay
+ allows you to hit left-shift and boot any OS in the
+ lilo.conf file by typing in the label you've given it.
+
+ Once you've started a new lilo.conf, you must add at
+ least one OS to it before you can install LILO.
+
+2. Menu choices to add Linux, OS/2, and DOS to the lilo.conf.
+
+ These all pretty much work the same way. You'll be asked
+ which partition you want to make bootable (answer
+ /dev/hda1 or whatever partition you wish to use), and
+ you'll also be asked to assign a label to the partition.
+ The label can be any short word such as "Linux" or "OS/2"
+ that you'll type in later to boot that partition. The boot
+ prompt is not case-sensitive, so the user can type LINUX or
+ os/2 later on and it will match the labels Linux and OS/2.
+
+3. Install LILO
+
+ Once you've looked at your new config file and are
+ satisfied with the way it looks, pick this choice to
+ install LILO and leave the LILO installation menu.
+
+
+Other options:
+
+ -- Recycle (Reinstall) using your original /etc/lilo.conf.
+
+ If you already have an /etc/lilo.conf, and you just need to
+ refresh lilo then you don't need to reconstruct your
+ lilo.conf. Just use this menu choice to reinstall LILO
+ using the existing /etc/lilo.conf.
+
+
+ -- View your current /etc/lilo.conf
+
+ If you haven't begun building a new lilo.conf, this choice
+ will let you take a look at the existing one in /etc on your
+ root Linux partition.
+
+ If you have begun constructing a new lilo.conf, this option
+ will let you view the progress on that.
+
+
+ -- Skip LILO installation and exit this menu
+
+ This option skips LILO installation. Use this if you don't
+ want to install LILO, or if you've already installed it and
+ don't need to reinstall. You have to reinstall LILO whenever
+ you change your Linux kernel.
+
+ -- Help - Read the Linux Loader HELP file
+
+ I hope you found it helpful! :^)
+
+
+-----------
+
+Other LILO information:
+
+ LILO on the Master Boot Record can be removed easily.
+ MS-DOS's fdisk has a /MBR option that restores the master
+ boot record. You can actually restore your original boot
+ sector from the copy LILO makes in /boot, as well. This is
+ the best way to go about it. See the LILO docs for more
+ information. There is also a '-u' flag to LILO that restores
+ the boot sector from the backup copy. Again, see the LILO
+ docs for detailed info.
+
+Good luck!
+
+--- end of LILO help
+
diff --git a/source/a/logrotate/logrotate.SlackBuild b/source/a/logrotate/logrotate.SlackBuild
new file mode 100755
index 000000000..6b6284b7c
--- /dev/null
+++ b/source/a/logrotate/logrotate.SlackBuild
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-3.7.4}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-logrotate
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_logrotate.tar.gz
+
+cd $TMP
+rm -rf logrotate-$VERSION
+tar xzvf $CWD/logrotate-$VERSION.tar.gz
+cd logrotate-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/logrotate.slackware.diff.gz | patch -p1
+make clean
+make || exit 1
+strip logrotate
+cat logrotate > $PKG/usr/sbin/logrotate
+cat logrotate.8 | gzip -9c > $PKG/usr/man/man8/logrotate.8.gz
+mkdir -p $PKG/usr/doc/logrotate-$VERSION
+cp -a \
+ CHANGES COPYING READM* \
+ $PKG/usr/doc/logrotate-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/logrotate-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/logrotate-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/logrotate/logrotate.slackware.diff b/source/a/logrotate/logrotate.slackware.diff
new file mode 100644
index 000000000..77b8aad6b
--- /dev/null
+++ b/source/a/logrotate/logrotate.slackware.diff
@@ -0,0 +1,49 @@
+diff -u -r --new-file logrotate-3.7.4.orig/config.c logrotate-3.7.4/config.c
+--- logrotate-3.7.4.orig/config.c 2006-07-24 07:08:04.000000000 -0500
++++ logrotate-3.7.4/config.c 2006-09-21 01:07:50.000000000 -0500
+@@ -29,7 +29,7 @@
+ #define isblank(c) ( (c) == ' ' || (c) == '\t' ) ? 1 : 0
+ #endif
+
+-static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v",
++static char *defTabooExts[] = { ".new", ".rpmsave", ".rpmorig", "~", ",v",
+ ".rpmnew", ".swp"
+ };
+ static int defTabooCount = sizeof(defTabooExts) / sizeof(char *);
+diff -u -r --new-file logrotate-3.7.4.orig/config.h logrotate-3.7.4/config.h
+--- logrotate-3.7.4.orig/config.h 2005-11-12 13:07:56.000000000 -0600
++++ logrotate-3.7.4/config.h 2006-09-21 01:08:02.000000000 -0500
+@@ -36,5 +36,5 @@
+ #endif
+
+ #ifndef STATEFILE
+-#define STATEFILE "/var/lib/logrotate.status"
++#define STATEFILE "/var/lib/logrotate/status"
+ #endif
+diff -u -r --new-file logrotate-3.7.4.orig/logrotate.8 logrotate-3.7.4/logrotate.8
+--- logrotate-3.7.4.orig/logrotate.8 2006-05-17 09:46:51.000000000 -0500
++++ logrotate-3.7.4/logrotate.8 2006-09-21 01:07:14.000000000 -0500
+@@ -1,4 +1,4 @@
+-.TH LOGROTATE 8 "Wed Nov 5 2002" "Red Hat Linux" "System Administrator's Manual"
++.TH LOGROTATE 8 "Wed Nov 5 2002" "Linux" "System Administrator's Manual"
+ .SH NAME
+ logrotate \- rotates, compresses, and mails system logs
+ .SH SYNOPSIS
+@@ -410,7 +410,7 @@
+ for information on the taboo extensions). If a + precedes the list of
+ extensions, the current taboo extension list is augmented, otherwise it
+ is replaced. At startup, the taboo extension list
+-contains .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~.
++contains .new, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, and ~.
+
+ .TP
+ \fBweekly\fR
+@@ -427,7 +427,7 @@
+ .SH FILES
+ .PD 0
+ .TP 27
+-\fI/var/lib/logrotate.status\fR
++\fI/var/lib/logrotate/status\fR
+ Default state file.
+ .TP 27
+ \fI/etc/logrotate.conf\fR
diff --git a/source/a/logrotate/slack-desc b/source/a/logrotate/slack-desc
new file mode 100644
index 000000000..2a1c76a5d
--- /dev/null
+++ b/source/a/logrotate/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+logrotate: logrotate (system log rotation tool)
+logrotate:
+logrotate: The logrotate utility is designed to simplify the administration
+logrotate: of log files on a system which generates a lot of log files.
+logrotate: Logrotate allows for the automatic rotation compression, removal
+logrotate: and mailing of log files. Logrotate can be set to handle a log
+logrotate: file daily, weekly, monthly or when the log file gets to a certain
+logrotate: size. Normally, logrotate runs as a daily cron job.
+logrotate:
+logrotate:
+logrotate:
diff --git a/source/a/lvm2/doinst.sh b/source/a/lvm2/doinst.sh
new file mode 100644
index 000000000..261294a91
--- /dev/null
+++ b/source/a/lvm2/doinst.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/lvm/lvm.conf.new
diff --git a/source/a/lvm2/lvm2.SlackBuild b/source/a/lvm2/lvm2.SlackBuild
new file mode 100755
index 000000000..f0f630d89
--- /dev/null
+++ b/source/a/lvm2/lvm2.SlackBuild
@@ -0,0 +1,103 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.02.40
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:-" -j7 "}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-lvm2
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $PKG
+cd $TMP
+rm -rf LVM2.$VERSION
+tar xvf $CWD/LVM2.$VERSION.tar.bz2
+cd LVM2.$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --disable-readline \
+ --enable-cmdlib \
+ --enable-dmeventd \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --enable-static_link \
+ --with-lvm1=internal
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+mv $PKG/etc/lvm/lvm.conf $PKG/etc/lvm/lvm.conf.new
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/LVM2.$VERSION
+cp -a \
+ COPYING* INSTALL README* VERSION WHATS_NEW \
+ $PKG/usr/doc/LVM2.$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/lvm2-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/lvm2/slack-desc b/source/a/lvm2/slack-desc
new file mode 100644
index 000000000..72dc87aee
--- /dev/null
+++ b/source/a/lvm2/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+lvm2: lvm2 (Logical Volume Manager version 2)
+lvm2:
+lvm2: Heinz Mauelshagen's LVM (Logical Volume Manager) for Linux.
+lvm2: LVM adds an additional layer between the physical peripherals and the
+lvm2: low-level I/O interface to get a logical view of disks. This allows
+lvm2: the concatenation of several disks (so-called physical volumes or PVs)
+lvm2: to form a storage pool (so-called Volume Group or VG) with allocation
+lvm2: units called physical extents (called PE). With LVM, you can extend,
+lvm2: resize, or relocate storage dynamically.
+lvm2:
+lvm2:
diff --git a/source/a/mdadm/doinst.sh b/source/a/mdadm/doinst.sh
new file mode 100644
index 000000000..a6a71c731
--- /dev/null
+++ b/source/a/mdadm/doinst.sh
@@ -0,0 +1,12 @@
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/mdadm.conf.new
diff --git a/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign
new file mode 100644
index 000000000..36b614805
--- /dev/null
+++ b/source/a/mdadm/mdadm-2.6.4.tar.bz2.sign
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.7 (GNU/Linux)
+Comment: See http://www.kernel.org/signature.html for info
+
+iD8DBQBHGC8JyGugalF9Dw4RArGIAJ9W38h+Mb/c62Ia6kn+TiDfd8ZxJQCfXEY8
+FdGihwdJnxz8cK3+VC4rmZs=
+=+YBi
+-----END PGP SIGNATURE-----
diff --git a/source/a/mdadm/mdadm.SlackBuild b/source/a/mdadm/mdadm.SlackBuild
new file mode 100755
index 000000000..45cc83b31
--- /dev/null
+++ b/source/a/mdadm/mdadm.SlackBuild
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.6.4
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mdadm
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf mdadm-$VERSION
+tar xjvf $CWD/mdadm-$VERSION.tar.bz2
+cd mdadm-$VERSION
+
+# Build this static... it's small enough.
+zcat $CWD/mdadm.static.small.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make clean || exit 1
+make || exit 1
+#make mdadm.static
+make install DESTDIR=$PKG || exit 1
+#cat mdadm.static > $PKG/sbin/mdadm
+mv $PKG/usr/share/man $PKG/usr
+rmdir $PKG/usr/share
+mkdir -p $PKG/etc
+cat mdadm.conf-example > $PKG/etc/mdadm.conf.new
+gzip -9 $PKG/usr/man/man?/*.?
+mkdir -p $PKG/usr/doc/mdadm-$VERSION
+cp -a \
+ ANNOUNCE-$VERSION COPYING* ChangeLog INSTALL TODO \
+ $PKG/usr/doc/mdadm-$VERSION
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+makepkg -l y -c n $TMP/mdadm-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/mdadm/mdadm.static.small.diff b/source/a/mdadm/mdadm.static.small.diff
new file mode 100644
index 000000000..6be02fda5
--- /dev/null
+++ b/source/a/mdadm/mdadm.static.small.diff
@@ -0,0 +1,20 @@
+--- ./Makefile.orig 2006-06-15 19:21:52.000000000 -0500
++++ ./Makefile 2006-06-25 00:28:24.000000000 -0500
+@@ -39,7 +39,7 @@
+
+ CC = $(CROSS_COMPILE)gcc
+ CXFLAGS = -ggdb
+-CWFLAGS = -Wall -Werror -Wstrict-prototypes
++CWFLAGS = -Wall -Werror -Wstrict-prototypes -Os
+
+ ifdef DEBIAN
+ CPPFLAGS= -DDEBIAN
+@@ -55,7 +55,7 @@
+ CFLAGS = $(CWFLAGS) $(CXFLAGS) -DSendmail=\""$(MAILCMD)"\" $(CONFFILEFLAGS)
+
+ # If you want a static binary, you might uncomment these
+-# LDFLAGS = -static
++LDFLAGS = -static
+ # STRIP = -s
+
+ INSTALL = /usr/bin/install
diff --git a/source/a/mdadm/slack-desc b/source/a/mdadm/slack-desc
new file mode 100644
index 000000000..984da7f3d
--- /dev/null
+++ b/source/a/mdadm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mdadm: mdadm (manage RAID arrays)
+mdadm:
+mdadm: mdadm is a utility program for creating, managing, and monitoring
+mdadm: Linux MD (Software RAID) devices. Unlike the older raidtools
+mdadm: package, mdadm is a single program (which should make it easier to
+mdadm: use).
+mdadm:
+mdadm: mdadm was written by Neil Brown. Development of mdadm is sponsored
+mdadm: by CSE@UNSW (The School of Computer Science and Engineering at
+mdadm: The University of New South Wales).
+mdadm:
diff --git a/source/a/minicom/config.sub-x86_64.diff b/source/a/minicom/config.sub-x86_64.diff
new file mode 100644
index 000000000..fa89bb3c1
--- /dev/null
+++ b/source/a/minicom/config.sub-x86_64.diff
@@ -0,0 +1,20 @@
+--- ./config.sub.orig 1998-04-26 17:20:59.000000000 +0400
++++ ./config.sub 2007-08-30 09:48:46.000000000 +0400
+@@ -129,7 +129,7 @@
+ case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+- tahoe | i[345]86 | i860 | m68k | m68000 | m88k | ns32k | arm \
++ tahoe | i[345]86 | x86_64 | i860 | m68k | m68000 | m88k | ns32k | arm \
+ | arme[lb] | pyramid \
+ | tron | a29k | 580 | i960 | h8300 | hppa1.0 | hppa1.1 \
+ | alpha | we32k | ns16k | clipper | sparclite | i370 | sh \
+@@ -144,7 +144,7 @@
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+- vax-* | tahoe-* | i[345]86-* | i860-* | m68k-* | m68000-* | m88k-* \
++ vax-* | tahoe-* | i[345]86-* | x86_64-* | i860-* | m68k-* | m68000-* | m88k-* \
+ | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
+ | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
+ | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
diff --git a/source/a/minicom/doinst.sh b/source/a/minicom/doinst.sh
new file mode 100644
index 000000000..f667412ed
--- /dev/null
+++ b/source/a/minicom/doinst.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/minicom.users.new
+config etc/minirc.dfl.new
+rm -f etc/minicom.users.new etc/minirc.dfl.new
diff --git a/source/a/minicom/lrzsz_0.12.21-4.diff b/source/a/minicom/lrzsz_0.12.21-4.diff
new file mode 100644
index 000000000..01c721571
--- /dev/null
+++ b/source/a/minicom/lrzsz_0.12.21-4.diff
@@ -0,0 +1,3019 @@
+--- lrzsz-0.12.21.orig/Makefile.in
++++ lrzsz-0.12.21/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -46,10 +46,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -106,13 +105,13 @@
+
+ DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \
+ INSTALL Makefile.am Makefile.in NEWS Specfile.in THANKS TODO acconfig.h \
+-acinclude.m4 aclocal.m4 config.guess config.h.in configure configure.in \
+-install-sh missing mkinstalldirs systype.in
++acinclude.m4 aclocal.m4 config.guess config.h.in config.sub configure \
++configure.in install-sh missing mkinstalldirs systype.in
+
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+@@ -298,7 +297,7 @@
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+- cp -pr $$d/$$file $(distdir)/$$file; \
++ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+@@ -340,7 +339,7 @@
+ all-am: Makefile $(SCRIPTS) config.h
+ all-redirect: all-recursive-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs: installdirs-recursive
+ installdirs-am:
+
+--- lrzsz-0.12.21.orig/aclocal.m4
++++ lrzsz-0.12.21/aclocal.m4
+@@ -1,4 +1,4 @@
+-dnl aclocal.m4 generated automatically by aclocal 1.4a
++dnl aclocal.m4 generated automatically by aclocal 1.4
+
+ dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -117,8 +117,6 @@
+
+ AC_DEFUN(AM_INIT_AUTOMAKE,
+ [AC_REQUIRE([AC_PROG_INSTALL])
+-dnl We require 2.13 because we rely on SHELL being computed by configure.
+-AC_PREREQ([2.13])
+ PACKAGE=[$1]
+ AC_SUBST(PACKAGE)
+ VERSION=[$2]
+--- lrzsz-0.12.21.orig/configure
++++ lrzsz-0.12.21/configure
+@@ -703,7 +703,6 @@
+ fi
+
+
+-
+ PACKAGE=lrzsz
+
+ VERSION=0.12.21rc
+@@ -723,7 +722,7 @@
+
+ missing_dir=`cd $ac_aux_dir && pwd`
+ echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+-echo "configure:727: checking for working aclocal" >&5
++echo "configure:726: checking for working aclocal" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -736,7 +735,7 @@
+ fi
+
+ echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+-echo "configure:740: checking for working autoconf" >&5
++echo "configure:739: checking for working autoconf" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -749,7 +748,7 @@
+ fi
+
+ echo $ac_n "checking for working automake""... $ac_c" 1>&6
+-echo "configure:753: checking for working automake" >&5
++echo "configure:752: checking for working automake" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -762,7 +761,7 @@
+ fi
+
+ echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+-echo "configure:766: checking for working autoheader" >&5
++echo "configure:765: checking for working autoheader" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -775,7 +774,7 @@
+ fi
+
+ echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+-echo "configure:779: checking for working makeinfo" >&5
++echo "configure:778: checking for working makeinfo" >&5
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf. Sigh.
+@@ -926,7 +925,7 @@
+ # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:930: checking for $ac_word" >&5
++echo "configure:929: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -956,7 +955,7 @@
+ # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:960: checking for $ac_word" >&5
++echo "configure:959: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1007,7 +1006,7 @@
+ # Extract the first word of "cl", so it can be a program name with args.
+ set dummy cl; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1011: checking for $ac_word" >&5
++echo "configure:1010: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1039,7 +1038,7 @@
+ fi
+
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:1043: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++echo "configure:1042: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ ac_ext=c
+ # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+@@ -1050,12 +1049,12 @@
+
+ cat > conftest.$ac_ext << EOF
+
+-#line 1054 "configure"
++#line 1053 "configure"
+ #include "confdefs.h"
+
+ main(){return(0);}
+ EOF
+-if { (eval echo configure:1059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+ # If we can't run a trivial program, we are probably using a cross compiler.
+ if (./conftest; exit) 2>/dev/null; then
+@@ -1081,12 +1080,12 @@
+ { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+ fi
+ echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1085: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
++echo "configure:1084: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+ echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+ cross_compiling=$ac_cv_prog_cc_cross
+
+ echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1090: checking whether we are using GNU C" >&5
++echo "configure:1089: checking whether we are using GNU C" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1095,7 +1094,7 @@
+ yes;
+ #endif
+ EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1099: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
++if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+ ac_cv_prog_gcc=yes
+ else
+ ac_cv_prog_gcc=no
+@@ -1114,7 +1113,7 @@
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS=
+ echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1118: checking whether ${CC-cc} accepts -g" >&5
++echo "configure:1117: checking whether ${CC-cc} accepts -g" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1146,7 +1145,7 @@
+ fi
+
+ echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1150: checking how to run the C preprocessor" >&5
++echo "configure:1149: checking how to run the C preprocessor" >&5
+ # On Suns, sometimes $CPP names a directory.
+ if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+@@ -1161,13 +1160,13 @@
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp.
+ cat > conftest.$ac_ext <<EOF
+-#line 1165 "configure"
++#line 1164 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1178,13 +1177,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -E -traditional-cpp"
+ cat > conftest.$ac_ext <<EOF
+-#line 1182 "configure"
++#line 1181 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1187: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1195,13 +1194,13 @@
+ rm -rf conftest*
+ CPP="${CC-cc} -nologo -E"
+ cat > conftest.$ac_ext <<EOF
+-#line 1199 "configure"
++#line 1198 "configure"
+ #include "confdefs.h"
+ #include <assert.h>
+ Syntax Error
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1205: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1204: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ :
+@@ -1235,13 +1234,13 @@
+ fi
+ if test $ac_cv_prog_gcc = yes; then
+ echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
+-echo "configure:1239: checking whether ${CC-cc} needs -traditional" >&5
++echo "configure:1238: checking whether ${CC-cc} needs -traditional" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_pattern="Autoconf.*'x'"
+ cat > conftest.$ac_ext <<EOF
+-#line 1245 "configure"
++#line 1244 "configure"
+ #include "confdefs.h"
+ #include <sgtty.h>
+ Autoconf TIOCGETP
+@@ -1259,7 +1258,7 @@
+
+ if test $ac_cv_prog_gcc_traditional = no; then
+ cat > conftest.$ac_ext <<EOF
+-#line 1263 "configure"
++#line 1262 "configure"
+ #include "confdefs.h"
+ #include <termio.h>
+ Autoconf TCGETA
+@@ -1283,7 +1282,7 @@
+ # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1287: checking for $ac_word" >&5
++echo "configure:1286: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1311,7 +1310,7 @@
+ fi
+
+ echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+-echo "configure:1315: checking for POSIXized ISC" >&5
++echo "configure:1314: checking for POSIXized ISC" >&5
+ if test -d /etc/conf/kconfig.d &&
+ grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+ then
+@@ -1332,9 +1331,9 @@
+ fi
+
+ echo $ac_n "checking for AIX""... $ac_c" 1>&6
+-echo "configure:1336: checking for AIX" >&5
++echo "configure:1335: checking for AIX" >&5
+ cat > conftest.$ac_ext <<EOF
+-#line 1338 "configure"
++#line 1337 "configure"
+ #include "confdefs.h"
+ #ifdef _AIX
+ yes
+@@ -1357,17 +1356,17 @@
+
+ ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6
+-echo "configure:1361: checking for minix/config.h" >&5
++echo "configure:1360: checking for minix/config.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1366 "configure"
++#line 1365 "configure"
+ #include "confdefs.h"
+ #include <minix/config.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1370: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1408,7 +1407,7 @@
+
+
+ echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+-echo "configure:1412: checking for ${CC-cc} option to accept ANSI C" >&5
++echo "configure:1411: checking for ${CC-cc} option to accept ANSI C" >&5
+ if eval "test \"`echo '$''{'am_cv_prog_cc_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -1424,7 +1423,7 @@
+ do
+ CC="$ac_save_CC $ac_arg"
+ cat > conftest.$ac_ext <<EOF
+-#line 1428 "configure"
++#line 1427 "configure"
+ #include "confdefs.h"
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -1461,7 +1460,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1465: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ am_cv_prog_cc_stdc="$ac_arg"; break
+ else
+@@ -1487,7 +1486,7 @@
+
+
+ echo $ac_n "checking for function prototypes""... $ac_c" 1>&6
+-echo "configure:1491: checking for function prototypes" >&5
++echo "configure:1490: checking for function prototypes" >&5
+ if test "$am_cv_prog_cc_stdc" != no; then
+ echo "$ac_t""yes" 1>&6
+ cat >> confdefs.h <<\EOF
+@@ -1500,12 +1499,12 @@
+ U=_ ANSI2KNR=./ansi2knr
+ # Ensure some checks needed by ansi2knr itself.
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:1504: checking for ANSI C header files" >&5
++echo "configure:1503: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1509 "configure"
++#line 1508 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -1513,7 +1512,7 @@
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1530,7 +1529,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1534 "configure"
++#line 1533 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -1548,7 +1547,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1552 "configure"
++#line 1551 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -1569,7 +1568,7 @@
+ :
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1573 "configure"
++#line 1572 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -1580,7 +1579,7 @@
+ exit (0); }
+
+ EOF
+-if { (eval echo configure:1584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:1583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ :
+ else
+@@ -1607,17 +1606,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:1611: checking for $ac_hdr" >&5
++echo "configure:1610: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1616 "configure"
++#line 1615 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1621: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1620: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1646,12 +1645,12 @@
+ fi
+
+ echo $ac_n "checking for working const""... $ac_c" 1>&6
+-echo "configure:1650: checking for working const" >&5
++echo "configure:1649: checking for working const" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1655 "configure"
++#line 1654 "configure"
+ #include "confdefs.h"
+
+ int main() {
+@@ -1700,7 +1699,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1703: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_const=yes
+ else
+@@ -1721,21 +1720,21 @@
+ fi
+
+ echo $ac_n "checking for inline""... $ac_c" 1>&6
+-echo "configure:1725: checking for inline" >&5
++echo "configure:1724: checking for inline" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ ac_cv_c_inline=no
+ for ac_kw in inline __inline__ __inline; do
+ cat > conftest.$ac_ext <<EOF
+-#line 1732 "configure"
++#line 1731 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ } $ac_kw foo() {
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:1738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_c_inline=$ac_kw; break
+ else
+@@ -1786,7 +1785,7 @@
+ esac
+
+ echo $ac_n "checking for syslog in -lsocket""... $ac_c" 1>&6
+-echo "configure:1790: checking for syslog in -lsocket" >&5
++echo "configure:1789: checking for syslog in -lsocket" >&5
+ ac_lib_var=`echo socket'_'syslog | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -1794,7 +1793,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lsocket $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1798 "configure"
++#line 1797 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1805,7 +1804,7 @@
+ syslog()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1833,7 +1832,7 @@
+ fi
+
+ echo $ac_n "checking for syslog in -lbe""... $ac_c" 1>&6
+-echo "configure:1837: checking for syslog in -lbe" >&5
++echo "configure:1836: checking for syslog in -lbe" >&5
+ ac_lib_var=`echo be'_'syslog | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -1841,7 +1840,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lbe $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1845 "configure"
++#line 1844 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1852,7 +1851,7 @@
+ syslog()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1880,7 +1879,7 @@
+ fi
+
+ echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+-echo "configure:1884: checking for gethostbyname in -lnsl" >&5
++echo "configure:1883: checking for gethostbyname in -lnsl" >&5
+ ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -1888,7 +1887,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lnsl $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 1892 "configure"
++#line 1891 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -1899,7 +1898,7 @@
+ gethostbyname()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:1903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:1902: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -1928,12 +1927,12 @@
+
+
+ echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+-echo "configure:1932: checking for ANSI C header files" >&5
++echo "configure:1931: checking for ANSI C header files" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 1937 "configure"
++#line 1936 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -1941,7 +1940,7 @@
+ #include <float.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1945: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:1944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -1958,7 +1957,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1962 "configure"
++#line 1961 "configure"
+ #include "confdefs.h"
+ #include <string.h>
+ EOF
+@@ -1976,7 +1975,7 @@
+ if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat > conftest.$ac_ext <<EOF
+-#line 1980 "configure"
++#line 1979 "configure"
+ #include "confdefs.h"
+ #include <stdlib.h>
+ EOF
+@@ -1997,7 +1996,7 @@
+ :
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2001 "configure"
++#line 2000 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+@@ -2008,7 +2007,7 @@
+ exit (0); }
+
+ EOF
+-if { (eval echo configure:2012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:2011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ :
+ else
+@@ -2035,17 +2034,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2039: checking for $ac_hdr" >&5
++echo "configure:2038: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2044 "configure"
++#line 2043 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2076,17 +2075,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2080: checking for $ac_hdr" >&5
++echo "configure:2079: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2085 "configure"
++#line 2084 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2116,17 +2115,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2120: checking for $ac_hdr" >&5
++echo "configure:2119: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2125 "configure"
++#line 2124 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2129: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2156,17 +2155,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2160: checking for $ac_hdr" >&5
++echo "configure:2159: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2165 "configure"
++#line 2164 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2169: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2196,17 +2195,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2200: checking for $ac_hdr" >&5
++echo "configure:2199: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2205 "configure"
++#line 2204 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2234,12 +2233,12 @@
+
+
+ echo $ac_n "checking for size_t""... $ac_c" 1>&6
+-echo "configure:2238: checking for size_t" >&5
++echo "configure:2237: checking for size_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2243 "configure"
++#line 2242 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -2267,12 +2266,12 @@
+ fi
+
+ echo $ac_n "checking for mode_t""... $ac_c" 1>&6
+-echo "configure:2271: checking for mode_t" >&5
++echo "configure:2270: checking for mode_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2276 "configure"
++#line 2275 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -2300,12 +2299,12 @@
+ fi
+
+ echo $ac_n "checking for off_t""... $ac_c" 1>&6
+-echo "configure:2304: checking for off_t" >&5
++echo "configure:2303: checking for off_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2309 "configure"
++#line 2308 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -2334,12 +2333,12 @@
+
+
+ echo $ac_n "checking for speed_t""... $ac_c" 1>&6
+-echo "configure:2338: checking for speed_t" >&5
++echo "configure:2337: checking for speed_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_speed_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2343 "configure"
++#line 2342 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #if STDC_HEADERS
+@@ -2389,12 +2388,12 @@
+ fi
+
+ echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
+-echo "configure:2393: checking for st_rdev in struct stat" >&5
++echo "configure:2392: checking for st_rdev in struct stat" >&5
+ if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2398 "configure"
++#line 2397 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -2402,7 +2401,7 @@
+ struct stat s; s.st_rdev;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2406: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_st_rdev=yes
+ else
+@@ -2423,12 +2422,12 @@
+ fi
+
+ echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+-echo "configure:2427: checking whether time.h and sys/time.h may both be included" >&5
++echo "configure:2426: checking whether time.h and sys/time.h may both be included" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2432 "configure"
++#line 2431 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -2437,7 +2436,7 @@
+ struct tm *tp;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2440: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_header_time=yes
+ else
+@@ -2459,12 +2458,12 @@
+
+
+ echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
+-echo "configure:2463: checking for socklen_t" >&5
++echo "configure:2462: checking for socklen_t" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_socklen_t'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2468 "configure"
++#line 2467 "configure"
+ #include "confdefs.h"
+
+ #include "confdefs.h"
+@@ -2480,7 +2479,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_socklen_t=yes
+ else
+@@ -2505,12 +2504,12 @@
+ fi
+
+ echo $ac_n "checking whether sys/time.h and sys/select.h may both be included""... $ac_c" 1>&6
+-echo "configure:2509: checking whether sys/time.h and sys/select.h may both be included" >&5
++echo "configure:2508: checking whether sys/time.h and sys/select.h may both be included" >&5
+ if eval "test \"`echo '$''{'lrzsz_cv_header_sys_select'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2514 "configure"
++#line 2513 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <sys/time.h>
+@@ -2519,7 +2518,7 @@
+ struct tm *tp;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2523: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2522: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ lrzsz_cv_header_sys_select=yes
+ else
+@@ -2540,12 +2539,12 @@
+ fi
+
+ echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
+-echo "configure:2544: checking whether struct tm is in sys/time.h or time.h" >&5
++echo "configure:2543: checking whether struct tm is in sys/time.h or time.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2549 "configure"
++#line 2548 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <time.h>
+@@ -2553,7 +2552,7 @@
+ struct tm *tp; tp->tm_sec;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_struct_tm=time.h
+ else
+@@ -2575,19 +2574,19 @@
+
+
+ echo $ac_n "checking for errno declaration""... $ac_c" 1>&6
+-echo "configure:2579: checking for errno declaration" >&5
++echo "configure:2578: checking for errno declaration" >&5
+ if eval "test \"`echo '$''{'lrzsz_cv_decl_errno'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2584 "configure"
++#line 2583 "configure"
+ #include "confdefs.h"
+ #include <errno.h>
+ int main() {
+ int i = errno; errno = 1;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ lrzsz_cv_decl_errno=yes
+ else
+@@ -2610,7 +2609,7 @@
+
+ if test $cross_compiling = no ; then
+ echo $ac_n "checking whether setvbuf arguments are reversed""... $ac_c" 1>&6
+-echo "configure:2614: checking whether setvbuf arguments are reversed" >&5
++echo "configure:2613: checking whether setvbuf arguments are reversed" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2618,7 +2617,7 @@
+ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2622 "configure"
++#line 2621 "configure"
+ #include "confdefs.h"
+ #include <stdio.h>
+ /* If setvbuf has the reversed format, exit 0. */
+@@ -2632,7 +2631,7 @@
+ exit(0); /* Non-reversed systems segv here. */
+ }
+ EOF
+-if { (eval echo configure:2636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:2635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ ac_cv_func_setvbuf_reversed=yes
+ else
+@@ -2657,12 +2656,12 @@
+
+ fi
+ echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+-echo "configure:2661: checking return type of signal handlers" >&5
++echo "configure:2660: checking return type of signal handlers" >&5
+ if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2666 "configure"
++#line 2665 "configure"
+ #include "confdefs.h"
+ #include <sys/types.h>
+ #include <signal.h>
+@@ -2679,7 +2678,7 @@
+ int i;
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++if { (eval echo configure:2682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ ac_cv_type_signal=void
+ else
+@@ -2701,17 +2700,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2705: checking for $ac_hdr" >&5
++echo "configure:2704: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2710 "configure"
++#line 2709 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:2714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -2740,12 +2739,12 @@
+ for ac_func in getpagesize
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:2744: checking for $ac_func" >&5
++echo "configure:2743: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2749 "configure"
++#line 2748 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -2768,7 +2767,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -2793,7 +2792,7 @@
+ done
+
+ echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+-echo "configure:2797: checking for working mmap" >&5
++echo "configure:2796: checking for working mmap" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -2801,7 +2800,7 @@
+ ac_cv_func_mmap_fixed_mapped=no
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2805 "configure"
++#line 2804 "configure"
+ #include "confdefs.h"
+
+ /* Thanks to Mike Haertel and Jim Avera for this test.
+@@ -2941,7 +2940,7 @@
+ }
+
+ EOF
+-if { (eval echo configure:2945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:2944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ ac_cv_func_mmap_fixed_mapped=yes
+ else
+@@ -2966,19 +2965,19 @@
+ # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+ # for constant arguments. Useless!
+ echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+-echo "configure:2970: checking for working alloca.h" >&5
++echo "configure:2969: checking for working alloca.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 2975 "configure"
++#line 2974 "configure"
+ #include "confdefs.h"
+ #include <alloca.h>
+ int main() {
+ char *p = alloca(2 * sizeof(int));
+ ; return 0; }
+ EOF
+-if { (eval echo configure:2982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:2981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_header_alloca_h=yes
+ else
+@@ -2999,12 +2998,12 @@
+ fi
+
+ echo $ac_n "checking for alloca""... $ac_c" 1>&6
+-echo "configure:3003: checking for alloca" >&5
++echo "configure:3002: checking for alloca" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3008 "configure"
++#line 3007 "configure"
+ #include "confdefs.h"
+
+ #ifdef __GNUC__
+@@ -3032,7 +3031,7 @@
+ char *p = (char *) alloca(1);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ ac_cv_func_alloca_works=yes
+ else
+@@ -3064,12 +3063,12 @@
+
+
+ echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+-echo "configure:3068: checking whether alloca needs Cray hooks" >&5
++echo "configure:3067: checking whether alloca needs Cray hooks" >&5
+ if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3073 "configure"
++#line 3072 "configure"
+ #include "confdefs.h"
+ #if defined(CRAY) && ! defined(CRAY2)
+ webecray
+@@ -3094,12 +3093,12 @@
+ if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3098: checking for $ac_func" >&5
++echo "configure:3097: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3103 "configure"
++#line 3102 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3122,7 +3121,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3149,7 +3148,7 @@
+ fi
+
+ echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+-echo "configure:3153: checking stack direction for C alloca" >&5
++echo "configure:3152: checking stack direction for C alloca" >&5
+ if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3157,7 +3156,7 @@
+ ac_cv_c_stack_direction=0
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3161 "configure"
++#line 3160 "configure"
+ #include "confdefs.h"
+ find_stack_direction ()
+ {
+@@ -3176,7 +3175,7 @@
+ exit (find_stack_direction() < 0);
+ }
+ EOF
+-if { (eval echo configure:3180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:3179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ ac_cv_c_stack_direction=1
+ else
+@@ -3198,7 +3197,7 @@
+ fi
+
+ cat > conftest.$ac_ext <<EOF
+-#line 3202 "configure"
++#line 3201 "configure"
+ #include "confdefs.h"
+ #include <utime.h>
+ EOF
+@@ -3216,12 +3215,12 @@
+ for ac_func in gettimeofday settimeofday
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3220: checking for $ac_func" >&5
++echo "configure:3219: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3225 "configure"
++#line 3224 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3244,7 +3243,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3271,12 +3270,12 @@
+ for ac_func in strchr memcpy select vprintf
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3275: checking for $ac_func" >&5
++echo "configure:3274: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3280 "configure"
++#line 3279 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3299,7 +3298,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3326,12 +3325,12 @@
+ for ac_func in times rdchk utime syslog siginterrupt
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3330: checking for $ac_func" >&5
++echo "configure:3329: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3335 "configure"
++#line 3334 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3354,7 +3353,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3381,12 +3380,12 @@
+ for ac_func in mkdir mktime strerror strstr strdup strtoul strtol strpbrk
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3385: checking for $ac_func" >&5
++echo "configure:3384: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3390 "configure"
++#line 3389 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3409,7 +3408,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3438,12 +3437,12 @@
+ for ac_func in stpcpy strftime vasprintf
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3442: checking for $ac_func" >&5
++echo "configure:3441: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3447 "configure"
++#line 3446 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3466,7 +3465,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3494,12 +3493,12 @@
+
+
+ echo $ac_n "checking for getopt_long""... $ac_c" 1>&6
+-echo "configure:3498: checking for getopt_long" >&5
++echo "configure:3497: checking for getopt_long" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_getopt_long'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3503 "configure"
++#line 3502 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char getopt_long(); below. */
+@@ -3522,7 +3521,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_getopt_long=yes"
+ else
+@@ -3552,12 +3551,12 @@
+
+
+ echo $ac_n "checking for ftime""... $ac_c" 1>&6
+-echo "configure:3556: checking for ftime" >&5
++echo "configure:3555: checking for ftime" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_ftime'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3561 "configure"
++#line 3560 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char ftime(); below. */
+@@ -3580,7 +3579,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_ftime=yes"
+ else
+@@ -3595,7 +3594,7 @@
+ if eval "test \"`echo '$ac_cv_func_'ftime`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking that ftime works correctly""... $ac_c" 1>&6
+-echo "configure:3599: checking that ftime works correctly" >&5
++echo "configure:3598: checking that ftime works correctly" >&5
+ if eval "test \"`echo '$''{'lrzsz_cv_sys_ftime_ok'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -3603,7 +3602,7 @@
+ lrzsz_cv_sys_ftime_ok=runtime
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3607 "configure"
++#line 3606 "configure"
+ #include "confdefs.h"
+
+ #include <sys/types.h>
+@@ -3632,7 +3631,7 @@
+ }
+
+ EOF
+-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
++if { (eval echo configure:3635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+ then
+ lrzsz_cv_sys_ftime_ok=yes
+ else
+@@ -3666,20 +3665,20 @@
+
+
+ echo $ac_n "checking for timezone variable""... $ac_c" 1>&6
+-echo "configure:3670: checking for timezone variable" >&5
++echo "configure:3669: checking for timezone variable" >&5
+ if eval "test \"`echo '$''{'libquark_cv_var_timezone'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+
+ cat > conftest.$ac_ext <<EOF
+-#line 3676 "configure"
++#line 3675 "configure"
+ #include "confdefs.h"
+ #include <time.h>
+ int main() {
+ return(int)(timezone/2);
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ libquark_cv_var_timezone=yes
+ else
+@@ -3705,13 +3704,13 @@
+ :
+ else
+ echo $ac_n "checking for $lookup_facility""... $ac_c" 1>&6
+-echo "configure:3709: checking for $lookup_facility" >&5
++echo "configure:3708: checking for $lookup_facility" >&5
+ if eval "test \"`echo '$''{'lrzsz_cv_lookup_facility'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+
+ cat > conftest.$ac_ext <<EOF
+-#line 3715 "configure"
++#line 3714 "configure"
+ #include "confdefs.h"
+
+ #ifdef HAVE_SYSLOG_H
+@@ -3763,17 +3762,17 @@
+ do
+ ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:3767: checking for $ac_hdr" >&5
++echo "configure:3766: checking for $ac_hdr" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3772 "configure"
++#line 3771 "configure"
+ #include "confdefs.h"
+ #include <$ac_hdr>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:3777: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:3776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -3803,12 +3802,12 @@
+ strdup __argz_count __argz_stringify __argz_next
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3807: checking for $ac_func" >&5
++echo "configure:3806: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3812 "configure"
++#line 3811 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3831,7 +3830,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3835: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3860,12 +3859,12 @@
+ for ac_func in stpcpy
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:3864: checking for $ac_func" >&5
++echo "configure:3863: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3869 "configure"
++#line 3868 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -3888,7 +3887,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -3922,19 +3921,19 @@
+
+ if test $ac_cv_header_locale_h = yes; then
+ echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+-echo "configure:3926: checking for LC_MESSAGES" >&5
++echo "configure:3925: checking for LC_MESSAGES" >&5
+ if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 3931 "configure"
++#line 3930 "configure"
+ #include "confdefs.h"
+ #include <locale.h>
+ int main() {
+ return LC_MESSAGES
+ ; return 0; }
+ EOF
+-if { (eval echo configure:3938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:3937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ am_cv_val_LC_MESSAGES=yes
+ else
+@@ -3955,7 +3954,7 @@
+ fi
+ fi
+ echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+-echo "configure:3959: checking whether NLS is requested" >&5
++echo "configure:3958: checking whether NLS is requested" >&5
+ # Check whether --enable-nls or --disable-nls was given.
+ if test "${enable_nls+set}" = set; then
+ enableval="$enable_nls"
+@@ -3975,7 +3974,7 @@
+ EOF
+
+ echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+-echo "configure:3979: checking whether included gettext is requested" >&5
++echo "configure:3978: checking whether included gettext is requested" >&5
+ # Check whether --with-included-gettext or --without-included-gettext was given.
+ if test "${with_included_gettext+set}" = set; then
+ withval="$with_included_gettext"
+@@ -3994,17 +3993,17 @@
+
+ ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
+-echo "configure:3998: checking for libintl.h" >&5
++echo "configure:3997: checking for libintl.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 4003 "configure"
++#line 4002 "configure"
+ #include "confdefs.h"
+ #include <libintl.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:4008: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:4007: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+@@ -4021,19 +4020,19 @@
+ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
+-echo "configure:4025: checking for gettext in libc" >&5
++echo "configure:4024: checking for gettext in libc" >&5
+ if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 4030 "configure"
++#line 4029 "configure"
+ #include "confdefs.h"
+ #include <libintl.h>
+ int main() {
+ return (int) gettext ("")
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ gt_cv_func_gettext_libc=yes
+ else
+@@ -4049,7 +4048,7 @@
+
+ if test "$gt_cv_func_gettext_libc" != "yes"; then
+ echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
+-echo "configure:4053: checking for bindtextdomain in -lintl" >&5
++echo "configure:4052: checking for bindtextdomain in -lintl" >&5
+ ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4057,7 +4056,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lintl $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4061 "configure"
++#line 4060 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -4068,7 +4067,7 @@
+ bindtextdomain()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4084,12 +4083,12 @@
+ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
+-echo "configure:4088: checking for gettext in libintl" >&5
++echo "configure:4087: checking for gettext in libintl" >&5
+ if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
+-echo "configure:4093: checking for gettext in -lintl" >&5
++echo "configure:4092: checking for gettext in -lintl" >&5
+ ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4097,7 +4096,7 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-lintl $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4101 "configure"
++#line 4100 "configure"
+ #include "confdefs.h"
+ /* Override any gcc2 internal prototype to avoid an error. */
+ /* We use char because int might match the return type of a gcc2
+@@ -4108,7 +4107,7 @@
+ gettext()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4147,7 +4146,7 @@
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+ set dummy msgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4151: checking for $ac_word" >&5
++echo "configure:4150: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4181,12 +4180,12 @@
+ for ac_func in dcgettext
+ do
+ echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+-echo "configure:4185: checking for $ac_func" >&5
++echo "configure:4184: checking for $ac_func" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 4190 "configure"
++#line 4189 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func(); below. */
+@@ -4209,7 +4208,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_$ac_func=yes"
+ else
+@@ -4236,7 +4235,7 @@
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+ set dummy gmsgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4240: checking for $ac_word" >&5
++echo "configure:4239: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4272,7 +4271,7 @@
+ # Extract the first word of "xgettext", so it can be a program name with args.
+ set dummy xgettext; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4276: checking for $ac_word" >&5
++echo "configure:4275: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4304,7 +4303,7 @@
+ fi
+
+ cat > conftest.$ac_ext <<EOF
+-#line 4308 "configure"
++#line 4307 "configure"
+ #include "confdefs.h"
+
+ int main() {
+@@ -4312,7 +4311,7 @@
+ return _nl_msg_cat_cntr
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ CATOBJEXT=.gmo
+ DATADIRNAME=share
+@@ -4335,7 +4334,7 @@
+
+ if test "$CATOBJEXT" = "NONE"; then
+ echo $ac_n "checking whether catgets can be used""... $ac_c" 1>&6
+-echo "configure:4339: checking whether catgets can be used" >&5
++echo "configure:4338: checking whether catgets can be used" >&5
+ # Check whether --with-catgets or --without-catgets was given.
+ if test "${with_catgets+set}" = set; then
+ withval="$with_catgets"
+@@ -4348,7 +4347,7 @@
+
+ if test "$nls_cv_use_catgets" = "yes"; then
+ echo $ac_n "checking for main in -li""... $ac_c" 1>&6
+-echo "configure:4352: checking for main in -li" >&5
++echo "configure:4351: checking for main in -li" >&5
+ ac_lib_var=`echo i'_'main | sed 'y%./+-%__p_%'`
+ if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+@@ -4356,14 +4355,14 @@
+ ac_save_LIBS="$LIBS"
+ LIBS="-li $LIBS"
+ cat > conftest.$ac_ext <<EOF
+-#line 4360 "configure"
++#line 4359 "configure"
+ #include "confdefs.h"
+
+ int main() {
+ main()
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+ else
+@@ -4391,12 +4390,12 @@
+ fi
+
+ echo $ac_n "checking for catgets""... $ac_c" 1>&6
+-echo "configure:4395: checking for catgets" >&5
++echo "configure:4394: checking for catgets" >&5
+ if eval "test \"`echo '$''{'ac_cv_func_catgets'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 4400 "configure"
++#line 4399 "configure"
+ #include "confdefs.h"
+ /* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char catgets(); below. */
+@@ -4419,7 +4418,7 @@
+
+ ; return 0; }
+ EOF
+-if { (eval echo configure:4423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
++if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_func_catgets=yes"
+ else
+@@ -4441,7 +4440,7 @@
+ # Extract the first word of "gencat", so it can be a program name with args.
+ set dummy gencat; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4445: checking for $ac_word" >&5
++echo "configure:4444: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_GENCAT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4477,7 +4476,7 @@
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+ set dummy gmsgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4481: checking for $ac_word" >&5
++echo "configure:4480: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4514,7 +4513,7 @@
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+ set dummy msgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4518: checking for $ac_word" >&5
++echo "configure:4517: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4549,7 +4548,7 @@
+ # Extract the first word of "xgettext", so it can be a program name with args.
+ set dummy xgettext; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4553: checking for $ac_word" >&5
++echo "configure:4552: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4607,7 +4606,7 @@
+ # Extract the first word of "msgfmt", so it can be a program name with args.
+ set dummy msgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4611: checking for $ac_word" >&5
++echo "configure:4610: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4641,7 +4640,7 @@
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+ set dummy gmsgfmt; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4645: checking for $ac_word" >&5
++echo "configure:4644: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4677,7 +4676,7 @@
+ # Extract the first word of "xgettext", so it can be a program name with args.
+ set dummy xgettext; ac_word=$2
+ echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:4681: checking for $ac_word" >&5
++echo "configure:4680: checking for $ac_word" >&5
+ if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+@@ -4770,7 +4769,7 @@
+ LINGUAS=
+ else
+ echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+-echo "configure:4774: checking for catalogs to be installed" >&5
++echo "configure:4773: checking for catalogs to be installed" >&5
+ NEW_LINGUAS=
+ for lang in ${LINGUAS=$ALL_LINGUAS}; do
+ case "$ALL_LINGUAS" in
+@@ -4798,17 +4797,17 @@
+ if test "$CATOBJEXT" = ".cat"; then
+ ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
+ echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
+-echo "configure:4802: checking for linux/version.h" >&5
++echo "configure:4801: checking for linux/version.h" >&5
+ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+ else
+ cat > conftest.$ac_ext <<EOF
+-#line 4807 "configure"
++#line 4806 "configure"
+ #include "confdefs.h"
+ #include <linux/version.h>
+ EOF
+ ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:4812: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
++{ (eval echo configure:4811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+ if test -z "$ac_err"; then
+ rm -rf conftest*
+--- lrzsz-0.12.21.orig/debian/changelog
++++ lrzsz-0.12.21/debian/changelog
+@@ -0,0 +1,80 @@
++lrzsz (0.12.21-4) unstable; urgency=low
++
++ * Updated for Standards-Version: 3.5.2.
++ * Added touch stamp-h.in before make invocation in order to stop
++ autoheader from running.
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 25 Mar 2001 19:48:18 +0200
++
++lrzsz (0.12.21-3) unstable; urgency=low
++
++ * Newish upstream version, (990823 in CVS).
++ * Updated for Policy 3.x.
++ * Misc. fixes for debian/*.
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 19 Sep 1999 17:55:38 +0200
++
++lrzsz (0.12.21-2) unstable; urgency=low
++
++ * Removed definition of strstr, advised by upstream maintainer, to
++ get it to compile on glibc2.1, as John Goerzen and Bart Warmerdam
++ noticed (fixes: #39429 #39812).
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 20 Jun 1999 21:38:07 +0200
++
++lrzsz (0.12.21-1) unstable; urgency=low
++
++ * New upstream version (990604 in CVS).
++ * Cleaned up the diff by removing unneeded .deps/ files and not changing
++ aclocal et al.
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 6 Jun 1999 21:01:50 +0200
++
++lrzsz (0.12.20-2) unstable; urgency=low
++
++ * Don't install ansi2knr.1 manpage, closing bug #33121
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100
++
++lrzsz (0.12.20-1) unstable; urgency=low
++
++ * New maintainer.
++ * Althought version number doesn't indicate that, this version is
++ today's CVS snapshot from ftp://tirka.ohse.de/uwe/cvs-trees
++ * This release fixes following bugs: #8373 #11208 #16170 #16744 #17210.
++ * Package is lintian clean.
++
++ -- Josip Rodin <jrodin@jagor.srce.hr> Sun, 7 Feb 1999 01:32:31 +0100
++
++lrzsz (0.12.17) unstable; urgency=low
++
++ * sorry, see ../ChangeLog. automagically generated debian/changelog
++
++ -- Uwe Ohse <uwe@ohse.de> Mon, 02 Jun 1997 10:06:05 +0200
++
++lrzsz (0.12.16) unstable; urgency=low
++
++ * sorry, see ../ChangeLog. changelog is here just to make
++ dpkg happy.
++ * initial release
++
++ -- Uwe Ohse <uwe@ohse.de> Sun, 2 Jun 1997 21:00:00 +0200
++
++lrzsz (0.12b-1.1) unstable; urgency=low
++
++ * Non-maintainer release.
++ * Libc6 compile.
++
++ -- Martin Mitchell <martin@debian.org> Sat, 18 Oct 1997 01:58:54 +1000
++
++lrzsz (0.12b-1) unstable; urgency=low
++
++ * Converted to new source packaging format.
++ * New upstream version.
++
++ -- Michael Alan Dorman <mdorman@calder.med.miami.edu> Tue, 17 Sep 1996 13:39:23 -0400
++
++Local variables:
++mode: debian-changelog
++add-log-mailing-address: "jrodin@jagor.srce.hr"
++End:
+--- lrzsz-0.12.21.orig/debian/control
++++ lrzsz-0.12.21/debian/control
+@@ -0,0 +1,18 @@
++Source: lrzsz
++Section: comm
++Priority: optional
++Maintainer: Josip Rodin <jrodin@jagor.srce.hr>
++Standards-Version: 3.5.2
++Build-Depends: debhelper
++
++Package: lrzsz
++Architecture: any
++Depends: ${shlibs:Depends}
++Suggests: minicom
++Description: Tools for zmodem/xmodem/ymodem file transfer
++ Lrzsz is a cosmetically modified zmodem/ymodem/xmodem package built
++ from the public-domain version of Chuck Forsberg's rzsz package.
++ .
++ These programs use error correcting protocols ({z,x,y}modem) to send
++ (sz, sx, sb) and receive (rz, rx, rb) files over a dial-in serial port
++ from a variety of programs running under various operating systems.
+--- lrzsz-0.12.21.orig/debian/copyright
++++ lrzsz-0.12.21/debian/copyright
+@@ -0,0 +1,31 @@
++This is the lrzsz Debian GNU/Linux package. It was first maintained by
++Michael Alan Dorman <mdorman@debian.org>, with help of Martin Mitchell
++and current upstream maintainer, Uwe Ohse <uwe@ohse.de>.
++
++Current maintainer is Josip Rodin <jrodin@jagor.srce.hr>
++
++Original source was downloaded from: ftp://tirka.ohse.de/uwe/
++
++Copyright (C) until 1988 Chuck Forsberg (Omen Technology INC)
++Copyright (C) 1994 Matt Porter, Michael D. Black
++Copyright (C) 1996, 1997 Uwe Ohse
++
++Please note that credit should be given to Chuck Forsberg (rzsz) and
++Stephen Satchell/Satchell Evaluations (crc routines) for this package.
++
++ 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; version 2 dated June, 1991.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
++ 02111-1307, USA.
++
++On Debian systems, the complete text of the GNU General Public License
++can be found in /usr/share/common-licenses/GPL file.
+--- lrzsz-0.12.21.orig/debian/rules
++++ lrzsz-0.12.21/debian/rules
+@@ -0,0 +1,60 @@
++#!/usr/bin/make -f
++# Derived from debhelper/dh_make example.
++
++#export DH_VERBOSE=1
++tmp := $(CURDIR)/debian/tmp
++
++CFLAGS := -O2
++ifneq "$(findstring debug,$(DEB_BUILD_OPTIONS))" ""
++CFLAGS += -g
++endif
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++ CFLAGS="$(CFLAGS)" ./configure --prefix=/usr \
++ --mandir='$${prefix}/share/man' --program-transform-name=s/l//
++ touch stamp-h.in # to stop autoheader from running
++ $(MAKE)
++ touch $@
++
++clean:
++ dh_testdir
++ dh_testroot
++ [ ! -f Makefile ] || $(MAKE) distclean
++ dh_clean build-stamp
++
++install: build-stamp
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++ $(MAKE) install prefix=$(tmp)/usr
++
++binary-indep:
++# We have nothing to do, no architecture independent packages here.
++
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installdocs NEWS README README.cvs README.isdn4linux TODO
++# dh_installmanpages ansi2knr.1
++ dh_installchangelogs ChangeLog
++ifeq "$(findstring nostrip,$(DEB_BUILD_OPTIONS))" ""
++ dh_strip
++endif
++ dh_compress
++ cd $(tmp)/usr/share/man/man1 ; \
++ ln -s rz.1.gz rb.1.gz ; \
++ ln -s rz.1.gz rx.1.gz ; \
++ ln -s sz.1.gz sb.1.gz ; \
++ ln -s sz.1.gz sx.1.gz
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install
+--- lrzsz-0.12.21.orig/lib/Makefile.in
++++ lrzsz-0.12.21/lib/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -46,10 +46,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -127,7 +126,7 @@
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ DEP_FILES = .deps/alloca.P .deps/error.P .deps/getopt.P .deps/getopt1.P \
+ .deps/long-options.P .deps/mkdir.P .deps/mktime.P .deps/stpcpy.P \
+@@ -282,7 +281,7 @@
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+- cp -pr $$d/$$file $(distdir)/$$file; \
++ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+@@ -343,7 +342,7 @@
+ all-am: Makefile $(ANSI2KNR) $(LIBRARIES) $(HEADERS)
+ all-redirect: all-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+
+
+--- lrzsz-0.12.21.orig/man/Makefile.in
++++ lrzsz-0.12.21/man/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -46,10 +46,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -106,7 +105,7 @@
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+@@ -173,7 +172,7 @@
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+- cp -pr $$d/$$file $(distdir)/$$file; \
++ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+@@ -202,7 +201,7 @@
+ all-am: Makefile $(MANS)
+ all-redirect: all-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(mandir)/man1
+
+--- lrzsz-0.12.21.orig/po/lrzsz.pot
++++ lrzsz-0.12.21/po/lrzsz.pot
+@@ -6,7 +6,7 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 1999-08-22 21:00+0200\n"
++"POT-Creation-Date: 1999-09-19 19:34+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+@@ -14,311 +14,311 @@
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: ENCODING\n"
+
+-#: src/lsz.c:228
++#: src/lsz.c:227
+ msgid "io_mode(,2) in rbsb.c not implemented\n"
+ msgstr ""
+
+-#: src/lrz.c:196 src/lsz.c:230
++#: src/lrz.c:195 src/lsz.c:229
+ #, c-format
+ msgid "caught signal %d; exiting"
+ msgstr ""
+
+-#: src/lsz.c:400
++#: src/lsz.c:399
+ msgid "command tries"
+ msgstr ""
+
+-#: src/lsz.c:422
++#: src/lsz.c:421
+ msgid "packetlength"
+ msgstr ""
+
+-#: src/lsz.c:427
++#: src/lsz.c:426
+ #, c-format
+ msgid "packetlength out of range 24..%ld"
+ msgstr ""
+
+-#: src/lsz.c:436
++#: src/lsz.c:435
+ msgid "framelength"
+ msgstr ""
+
+-#: src/lsz.c:441
++#: src/lsz.c:440
+ #, c-format
+ msgid "framelength out of range 32..%ld"
+ msgstr ""
+
+-#: src/lrz.c:318 src/lsz.c:450
++#: src/lrz.c:317 src/lsz.c:449
+ msgid "min_bps"
+ msgstr ""
+
+-#: src/lsz.c:452
++#: src/lsz.c:451
+ msgid "min_bps must be >= 0"
+ msgstr ""
+
+-#: src/lrz.c:324 src/lsz.c:458
++#: src/lrz.c:323 src/lsz.c:457
+ msgid "min_bps_time"
+ msgstr ""
+
+-#: src/lrz.c:326 src/lsz.c:460
++#: src/lrz.c:325 src/lsz.c:459
+ msgid "min_bps_time must be > 1"
+ msgstr ""
+
+-#: src/lrz.c:342 src/lsz.c:484
++#: src/lrz.c:341 src/lsz.c:483
+ msgid "hour to large (0..23)"
+ msgstr ""
+
+-#: src/lrz.c:344 src/lsz.c:486
++#: src/lrz.c:343 src/lsz.c:485
+ msgid "unparsable stop time\n"
+ msgstr ""
+
+-#: src/lrz.c:348 src/lsz.c:490
++#: src/lrz.c:347 src/lsz.c:489
+ msgid "minute to large (0..59)"
+ msgstr ""
+
+-#: src/lrz.c:358 src/lrz.c:365 src/lsz.c:500 src/lsz.c:507
++#: src/lrz.c:357 src/lrz.c:364 src/lsz.c:499 src/lsz.c:506
+ msgid "stop time to small"
+ msgstr ""
+
+-#: src/lrz.c:363 src/lsz.c:505
++#: src/lrz.c:362 src/lsz.c:504
+ msgid "stop-at"
+ msgstr ""
+
+-#: src/lrz.c:394 src/lsz.c:516
++#: src/lrz.c:393 src/lsz.c:515
+ msgid "timeout"
+ msgstr ""
+
+-#: src/lrz.c:396 src/lsz.c:518
++#: src/lrz.c:395 src/lsz.c:517
+ msgid "timeout out of range 10..1000"
+ msgstr ""
+
+-#: src/lrz.c:412 src/lsz.c:526
++#: src/lrz.c:411 src/lsz.c:525
+ msgid "security violation: can't do that under restricted shell\n"
+ msgstr ""
+
+-#: src/lrz.c:402 src/lsz.c:533
++#: src/lrz.c:401 src/lsz.c:532
+ msgid "window size"
+ msgstr ""
+
+-#: src/lrz.c:427 src/lrz.c:434 src/lsz.c:556 src/lsz.c:563
++#: src/lrz.c:426 src/lrz.c:433 src/lsz.c:555 src/lsz.c:562
+ msgid "cannot turnoff syslog"
+ msgstr ""
+
+-#: src/lrz.c:449 src/lsz.c:571
++#: src/lrz.c:448 src/lsz.c:570
+ msgid "startup delay"
+ msgstr ""
+
+-#: src/lrz.c:465 src/lrz.c:483 src/lrz.c:760 src/lrz.c:1122 src/lrz.c:1244
+-#: src/lrz.c:1292 src/lrz.c:1309 src/lrz.c:1324 src/lrz.c:1423 src/lsz.c:580
+-#: src/lsz.c:596 src/lsz.c:693 src/lsz.c:828 src/lsz.c:1061
++#: src/lrz.c:464 src/lrz.c:482 src/lrz.c:759 src/lrz.c:1121 src/lrz.c:1243
++#: src/lrz.c:1291 src/lrz.c:1308 src/lrz.c:1323 src/lrz.c:1422 src/lsz.c:579
++#: src/lsz.c:595 src/lsz.c:692 src/lsz.c:827 src/lsz.c:1060
+ #: src/zreadline.c:127
+ msgid "out of memory"
+ msgstr ""
+
+-#: src/lrz.c:475 src/lsz.c:592
++#: src/lrz.c:474 src/lsz.c:591
+ msgid "this program was never intended to be used setuid\n"
+ msgstr ""
+
+-#: src/lsz.c:612 src/lsz.c:627
++#: src/lsz.c:611 src/lsz.c:626
+ msgid "need at least one file to send"
+ msgstr ""
+
+-#: src/lsz.c:629
++#: src/lsz.c:628
+ msgid "Can't send command in restricted mode\n"
+ msgstr ""
+
+-#: src/lrz.c:527 src/lsz.c:656
++#: src/lrz.c:526 src/lsz.c:655
+ msgid "hostname too long\n"
+ msgstr ""
+
+-#: src/lrz.c:542 src/lsz.c:671
++#: src/lrz.c:541 src/lsz.c:670
+ msgid "illegal server address\n"
+ msgstr ""
+
+-#: src/lsz.c:710
++#: src/lsz.c:709
+ msgid "can read only one file from stdin"
+ msgstr ""
+
+-#: src/lrz.c:574 src/lsz.c:803
++#: src/lrz.c:573 src/lsz.c:802
+ msgid "Transfer incomplete\n"
+ msgstr ""
+
+-#: src/lrz.c:576 src/lsz.c:805
++#: src/lrz.c:575 src/lsz.c:804
+ msgid "Transfer complete\n"
+ msgstr ""
+
+-#: src/lsz.c:838
++#: src/lsz.c:837
+ #, c-format
+ msgid "send_pseudo %s: cannot open tmpfile %s: %s"
+ msgstr ""
+
+-#: src/lsz.c:851
++#: src/lsz.c:850
+ #, c-format
+ msgid "send_pseudo %s: cannot lstat tmpfile %s: %s"
+ msgstr ""
+
+-#: src/lsz.c:859
++#: src/lsz.c:858
+ #, c-format
+ msgid "send_pseudo %s: avoiding symlink trap"
+ msgstr ""
+
+-#: src/lsz.c:870
++#: src/lsz.c:869
+ #, c-format
+ msgid "send_pseudo %s: cannot write to tmpfile %s: %s"
+ msgstr ""
+
+-#: src/lsz.c:879
++#: src/lsz.c:878
+ #, c-format
+ msgid "send_pseudo %s: failed"
+ msgstr ""
+
+-#: src/lsz.c:882
++#: src/lsz.c:881
+ #, c-format
+ msgid "send_pseudo %s: ok"
+ msgstr ""
+
+-#: src/lsz.c:916
++#: src/lsz.c:915
+ #, c-format
+ msgid "Answering TIMESYNC at %s"
+ msgstr ""
+
+-#: src/lsz.c:921
++#: src/lsz.c:920
+ msgid "timezone"
+ msgstr ""
+
+-#: src/lsz.c:924
++#: src/lsz.c:923
+ msgid "timezone unknown"
+ msgstr ""
+
+-#: src/lsz.c:953
++#: src/lsz.c:952
+ msgid "Can't open any requested files."
+ msgstr ""
+
+-#: src/lsz.c:1009
++#: src/lsz.c:1008
+ #, c-format
+ msgid "security violation: not allowed to upload from %s"
+ msgstr ""
+
+-#: src/lrz.c:1384 src/lsz.c:1027
++#: src/lrz.c:1383 src/lsz.c:1026
+ #, c-format
+ msgid "cannot open %s"
+ msgstr ""
+
+-#: src/lsz.c:1082
++#: src/lsz.c:1081
+ #, c-format
+ msgid "is not a file: %s"
+ msgstr ""
+
+-#: src/lsz.c:1115 src/lsz.c:1130
++#: src/lsz.c:1114 src/lsz.c:1129
+ #, c-format
+ msgid "%s/%s: error occured"
+ msgstr ""
+
+-#: src/lsz.c:1119
++#: src/lsz.c:1118
+ #, c-format
+ msgid "skipped: %s"
+ msgstr ""
+
+-#: src/lsz.c:1122
++#: src/lsz.c:1121
+ #, c-format
+ msgid "%s/%s: skipped"
+ msgstr ""
+
+-#: src/lsz.c:1149
++#: src/lsz.c:1148
+ #, c-format
+ msgid "Bytes Sent:%7ld BPS:%-8ld \n"
+ msgstr ""
+
+-#: src/lsz.c:1178
++#: src/lsz.c:1177
+ #, c-format
+ msgid "Sending %s, %ld blocks: "
+ msgstr ""
+
+-#: src/lsz.c:1181
++#: src/lsz.c:1180
+ msgid "Give your local XMODEM receive command now."
+ msgstr ""
+
+-#: src/lsz.c:1224
++#: src/lsz.c:1223
+ #, c-format
+ msgid "Sending: %s\n"
+ msgstr ""
+
+-#: src/lsz.c:1267
++#: src/lsz.c:1266
+ msgid "Timeout on pathname"
+ msgstr ""
+
+-#: src/lsz.c:1314
++#: src/lsz.c:1313
+ msgid "Receiver Cancelled"
+ msgstr ""
+
+-#: src/lsz.c:1340
++#: src/lsz.c:1339
+ msgid "No ACK on EOT"
+ msgstr ""
+
+-#: src/lsz.c:1361
++#: src/lsz.c:1360
+ #, c-format
+ msgid "Xmodem sectors/kbytes sent: %3d/%2dk"
+ msgstr ""
+
+-#: src/lsz.c:1363
++#: src/lsz.c:1362
+ #, c-format
+ msgid "Ymodem sectors/kbytes sent: %3d/%2dk"
+ msgstr ""
+
+-#: src/lsz.c:1395
++#: src/lsz.c:1394
+ msgid "Cancelled"
+ msgstr ""
+
+-#: src/lsz.c:1399
++#: src/lsz.c:1398
+ msgid "Timeout on sector ACK"
+ msgstr ""
+
+-#: src/lsz.c:1404
++#: src/lsz.c:1403
+ msgid "NAK on sector"
+ msgstr ""
+
+-#: src/lsz.c:1410
++#: src/lsz.c:1409
+ msgid "Got burst for sector ACK"
+ msgstr ""
+
+-#: src/lsz.c:1412
++#: src/lsz.c:1411
+ #, c-format
+ msgid "Got %02x for sector ACK"
+ msgstr ""
+
+-#: src/lsz.c:1424
++#: src/lsz.c:1423
+ msgid "Retry Count Exceeded"
+ msgstr ""
+
+-#: src/lrz.c:596 src/lsz.c:1502
++#: src/lrz.c:595 src/lsz.c:1501
+ #, c-format
+ msgid "Try `%s --help' for more information.\n"
+ msgstr ""
+
+-#: src/lrz.c:601 src/lsz.c:1507
++#: src/lrz.c:600 src/lsz.c:1506
+ #, c-format
+ msgid "%s version %s\n"
+ msgstr ""
+
+-#: src/lsz.c:1510
++#: src/lsz.c:1509
+ #, c-format
+ msgid "Usage: %s [options] file ...\n"
+ msgstr ""
+
+-#: src/lsz.c:1512
++#: src/lsz.c:1511
+ #, c-format
+ msgid " or: %s [options] -{c|i} COMMAND\n"
+ msgstr ""
+
+-#: src/lsz.c:1513
++#: src/lsz.c:1512
+ msgid "Send file(s) with ZMODEM/YMODEM/XMODEM protocol\n"
+ msgstr ""
+
+-#: src/lrz.c:607 src/lsz.c:1515
++#: src/lrz.c:606 src/lsz.c:1514
+ msgid ""
+ " (X) = option applies to XMODEM only\n"
+ " (Y) = option applies to YMODEM only\n"
+ " (Z) = option applies to ZMODEM only\n"
+ msgstr ""
+
+-#: src/lsz.c:1521
++#: src/lsz.c:1520
+ msgid ""
+ " -+, --append append to existing destination file (Z)\n"
+ " -2, --twostop use 2 stop bits\n"
+@@ -345,7 +345,7 @@
+ " -M, --min-bps-time N for at least N seconds (default: 120)\n"
+ msgstr ""
+
+-#: src/lsz.c:1546
++#: src/lsz.c:1545
+ msgid ""
+ " -n, --newer send file if source newer (Z)\n"
+ " -N, --newer-or-longer send file if source newer or longer (Z)\n"
+@@ -371,64 +371,64 @@
+ "short options use the same arguments as the long ones\n"
+ msgstr ""
+
+-#: src/lsz.c:1768
++#: src/lsz.c:1767
+ msgid "got ZRQINIT"
+ msgstr ""
+
+-#: src/lrz.c:1079 src/lrz.c:1772 src/lsz.c:1774
++#: src/lrz.c:1078 src/lrz.c:1771 src/lsz.c:1773
+ msgid "got ZCAN"
+ msgstr ""
+
+-#: src/lsz.c:1991
++#: src/lsz.c:1990
+ #, c-format
+ msgid "blklen now %d\n"
+ msgstr ""
+
+-#: src/lsz.c:2053
++#: src/lsz.c:2052
+ #, c-format
+ msgid "zsendfdata: bps rate %ld below min %ld"
+ msgstr ""
+
+-#: src/lsz.c:2070
++#: src/lsz.c:2069
+ msgid "zsendfdata: reached stop time"
+ msgstr ""
+
+-#: src/lsz.c:2080
++#: src/lsz.c:2079
+ #, c-format
+ msgid "Bytes Sent:%7ld/%7ld BPS:%-8ld ETA %02d:%02d "
+ msgstr ""
+
+-#: src/lsz.c:2223
++#: src/lsz.c:2222
+ #, c-format
+ msgid "calc_blklen: reduced to %d due to error\n"
+ msgstr ""
+
+-#: src/lsz.c:2256
++#: src/lsz.c:2255
+ #, c-format
+ msgid "calc_blklen: returned old value %d due to low bpe diff\n"
+ msgstr ""
+
+-#: src/lsz.c:2258
++#: src/lsz.c:2257
+ #, c-format
+ msgid "calc_blklen: old %ld, new %ld, d %ld\n"
+ msgstr ""
+
+-#: src/lsz.c:2267
++#: src/lsz.c:2266
+ #, c-format
+ msgid "calc_blklen: calc total_bytes=%ld, bpe=%ld, ec=%ld\n"
+ msgstr ""
+
+-#: src/lsz.c:2278
++#: src/lsz.c:2277
+ #, c-format
+ msgid "calc_blklen: blklen %d, ok %ld, failed %ld -> %lu\n"
+ msgstr ""
+
+-#: src/lsz.c:2290
++#: src/lsz.c:2289
+ #, c-format
+ msgid "calc_blklen: returned %d as best\n"
+ msgstr ""
+
+-#: src/lsz.c:2486
++#: src/lsz.c:2485
+ #, c-format
+ msgid ""
+ "\n"
+@@ -444,7 +444,7 @@
+ msgid "Sender Canceled"
+ msgstr ""
+
+-#: src/lrz.c:1002 src/zm.c:586 src/zm.c:645
++#: src/lrz.c:1001 src/zm.c:586 src/zm.c:645
+ msgid "TIMEOUT"
+ msgstr ""
+
+@@ -470,40 +470,40 @@
+ msgid "Retry %d: "
+ msgstr ""
+
+-#: src/lrz.c:382
++#: src/lrz.c:381
+ msgid "don't have settimeofday, will not set time\n"
+ msgstr ""
+
+-#: src/lrz.c:386
++#: src/lrz.c:385
+ msgid "not running as root (this is good!), can not set time\n"
+ msgstr ""
+
+-#: src/lrz.c:441
++#: src/lrz.c:440
+ msgid "bytes_per_error"
+ msgstr ""
+
+-#: src/lrz.c:443
++#: src/lrz.c:442
+ msgid "bytes-per-error should be >100"
+ msgstr ""
+
+-#: src/lrz.c:455
++#: src/lrz.c:454
+ msgid "O_SYNC not supported by the kernel"
+ msgstr ""
+
+-#: src/lrz.c:497 src/lrz.c:499
++#: src/lrz.c:496 src/lrz.c:498
+ msgid "garbage on commandline"
+ msgstr ""
+
+-#: src/lrz.c:604
++#: src/lrz.c:603
+ #, c-format
+ msgid "Usage: %s [options] [filename.if.xmodem]\n"
+ msgstr ""
+
+-#: src/lrz.c:605
++#: src/lrz.c:604
+ msgid "Receive files with ZMODEM/YMODEM/XMODEM protocol\n"
+ msgstr ""
+
+-#: src/lrz.c:612
++#: src/lrz.c:611
+ msgid ""
+ " -+, --append append to existing files\n"
+ " -a, --ascii ASCII transfer (change CR/LF to LF)\n"
+@@ -543,152 +543,152 @@
+ "short options use the same arguments as the long ones\n"
+ msgstr ""
+
+-#: src/lrz.c:676
++#: src/lrz.c:675
+ #, c-format
+ msgid "%s waiting to receive."
+ msgstr ""
+
+-#: src/lrz.c:730 src/lrz.c:1806
++#: src/lrz.c:729 src/lrz.c:1805
+ #, c-format
+ msgid "\rBytes received: %7ld/%7ld BPS:%-6ld \r\n"
+ msgstr ""
+
+-#: src/lrz.c:772
++#: src/lrz.c:771
+ #, c-format
+ msgid "%s: ready to receive %s"
+ msgstr ""
+
+-#: src/lrz.c:799
++#: src/lrz.c:798
+ #, c-format
+ msgid "\rBytes received: %7ld BPS:%-6ld \r\n"
+ msgstr ""
+
+-#: src/lrz.c:825
++#: src/lrz.c:824
+ #, c-format
+ msgid ""
+ "\r\n"
+ "%s: %s removed.\r\n"
+ msgstr ""
+
+-#: src/lrz.c:856
++#: src/lrz.c:855
+ msgid "Pathname fetch returned EOT"
+ msgstr ""
+
+-#: src/lrz.c:903
++#: src/lrz.c:902
+ msgid "Received dup Sector"
+ msgstr ""
+
+-#: src/lrz.c:917
++#: src/lrz.c:916
+ msgid "Sync Error"
+ msgstr ""
+
+-#: src/lrz.c:965
++#: src/lrz.c:964
+ msgid "CRC"
+ msgstr ""
+
+-#: src/lrz.c:976
++#: src/lrz.c:975
+ msgid "Checksum"
+ msgstr ""
+
+-#: src/lrz.c:979
++#: src/lrz.c:978
+ msgid "Sector number garbled"
+ msgstr ""
+
+-#: src/lrz.c:991
++#: src/lrz.c:990
+ msgid "Sender Cancelled"
+ msgstr ""
+
+-#: src/lrz.c:1005
++#: src/lrz.c:1004
+ #, c-format
+ msgid "Got 0%o sector header"
+ msgstr ""
+
+-#: src/lrz.c:1113
++#: src/lrz.c:1112
+ #, c-format
+ msgid "file name ends with a /, skipped: %s\n"
+ msgstr ""
+
+-#: src/lrz.c:1127
++#: src/lrz.c:1126
+ #, c-format
+ msgid "zmanag=%d, Lzmanag=%d\n"
+ msgstr ""
+
+-#: src/lrz.c:1128
++#: src/lrz.c:1127
+ #, c-format
+ msgid "zconv=%d\n"
+ msgstr ""
+
+-#: src/lrz.c:1192 src/lrz.c:1226
++#: src/lrz.c:1191 src/lrz.c:1225
+ #, c-format
+ msgid "file exists, skipped: %s\n"
+ msgstr ""
+
+-#: src/lrz.c:1267
++#: src/lrz.c:1266
+ #, c-format
+ msgid "TIMESYNC: here %ld, remote %ld, diff %ld seconds\n"
+ msgstr ""
+
+-#: src/lrz.c:1276
++#: src/lrz.c:1275
+ #, c-format
+ msgid "TIMESYNC: cannot set time: %s\n"
+ msgstr ""
+
+-#: src/lrz.c:1296
++#: src/lrz.c:1295
+ msgid "Topipe"
+ msgstr ""
+
+-#: src/lrz.c:1314
++#: src/lrz.c:1313
+ #, c-format
+ msgid "Receiving: %s\n"
+ msgstr ""
+
+-#: src/lrz.c:1545
++#: src/lrz.c:1544
+ #, c-format
+ msgid "Blocks received: %d"
+ msgstr ""
+
+-#: src/lrz.c:1599
++#: src/lrz.c:1598
+ #, c-format
+ msgid "%s: %s exists\n"
+ msgstr ""
+
+-#: src/lrz.c:1612 src/lrz.c:1620
++#: src/lrz.c:1611 src/lrz.c:1619
+ #, c-format
+ msgid "%s:\tSecurity Violation"
+ msgstr ""
+
+-#: src/lrz.c:1730
++#: src/lrz.c:1729
+ msgid "remote command execution requested"
+ msgstr ""
+
+-#: src/lrz.c:1737
++#: src/lrz.c:1736
+ msgid "not executed"
+ msgstr ""
+
+-#: src/lrz.c:1768
++#: src/lrz.c:1767
+ msgid "got ZRINIT"
+ msgstr ""
+
+-#: src/lrz.c:1817
++#: src/lrz.c:1816
+ msgid "Skipped"
+ msgstr ""
+
+ #. too bad
+-#: src/lrz.c:2049
++#: src/lrz.c:2048
+ #, c-format
+ msgid "rzfile: bps rate %ld below min %ld"
+ msgstr ""
+
+ #. too bad
+-#: src/lrz.c:2064
++#: src/lrz.c:2063
+ msgid "rzfile: reached stop time"
+ msgstr ""
+
+-#: src/lrz.c:2071
++#: src/lrz.c:2070
+ #, c-format
+ msgid "\rBytes received: %7ld/%7ld BPS:%-6ld ETA %02d:%02d "
+ msgstr ""
+
+-#: src/lrz.c:2215
++#: src/lrz.c:2214
+ msgid "file close error"
+ msgstr ""
+--- lrzsz-0.12.21.orig/src/Makefile.in
++++ lrzsz-0.12.21/src/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -45,10 +45,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -132,7 +131,7 @@
+
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ DEP_FILES = .deps/canit.P .deps/crctab.P .deps/lrz.P .deps/lsyslog.P \
+ .deps/lsz.P .deps/protname.P .deps/rbsb.P .deps/tcp.P .deps/timing.P \
+@@ -167,8 +166,8 @@
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+ @list='$(bin_PROGRAMS)'; for p in $$list; do \
+ if test -f $$p; then \
+- echo " $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
+- $(INSTALL_PROGRAM) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
++ echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
++ $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+ else :; fi; \
+ done
+
+@@ -292,7 +291,7 @@
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+- cp -pr $$d/$$file $(distdir)/$$file; \
++ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+@@ -353,7 +352,7 @@
+ all-am: Makefile $(ANSI2KNR) $(PROGRAMS) $(HEADERS)
+ all-redirect: all-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir)
+
+--- lrzsz-0.12.21.orig/src/lrz.c
++++ lrzsz-0.12.21/src/lrz.c
+@@ -44,7 +44,6 @@
+ #ifndef STRICT_PROTOTYPES
+ extern time_t time();
+ extern char *strerror();
+-extern char *strstr();
+ #endif
+
+ #ifndef HAVE_ERRNO_DECLARATION
+--- lrzsz-0.12.21.orig/src/lsz.c
++++ lrzsz-0.12.21/src/lsz.c
+@@ -53,7 +53,6 @@
+ #ifndef STRICT_PROTOTYPES
+ extern time_t time();
+ extern char *strerror();
+-extern char *strstr();
+ #endif
+
+ #ifndef HAVE_ERRNO_DECLARATION
+--- lrzsz-0.12.21.orig/testsuite/Makefile.in
++++ lrzsz-0.12.21/testsuite/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4a from Makefile.am
++# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+ # Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -46,10 +46,9 @@
+ AUTOHEADER = @AUTOHEADER@
+
+ INSTALL = @INSTALL@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+ INSTALL_DATA = @INSTALL_DATA@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_FLAG =
+ transform = @program_transform_name@
+
+ NORMAL_INSTALL = :
+@@ -103,7 +102,7 @@
+ DIST_COMMON = Makefile.am Makefile.in
+
+
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ EXPECT = expect
+ RUNTEST = runtest
+@@ -133,7 +132,7 @@
+ @for file in $(DISTFILES); do \
+ d=$(srcdir); \
+ if test -d $$d/$$file; then \
+- cp -pr $$d/$$file $(distdir)/$$file; \
++ cp -pr $$/$$file $(distdir)/$$file; \
+ else \
+ test -f $(distdir)/$$file \
+ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+@@ -192,7 +191,7 @@
+ all-am: Makefile
+ all-redirect: all-am
+ install-strip:
+- $(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install
++ $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+ installdirs:
+
+
diff --git a/source/a/minicom/minicom.SlackBuild b/source/a/minicom/minicom.SlackBuild
new file mode 100755
index 000000000..c9249f64b
--- /dev/null
+++ b/source/a/minicom/minicom.SlackBuild
@@ -0,0 +1,134 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-minicom
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mcpu=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# minicom
+cd $TMP
+rm -rf minicom-$VERSION
+tar xzvf $CWD/minicom-$VERSION.tar.gz
+cd minicom-$VERSION
+chown -R root:root .
+find . -perm 777 -exec chmod 755 {} \;
+find . -perm 664 -exec chmod 644 {} \;
+# Fix re-declaration of BC in termcap.h
+zcat $CWD/wintcap.diff.gz | patch -p1 --verbose || exit 1
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc
+make -j3
+make install DESTDIR=$PKG
+mkdir -p $PKG/etc
+zcat $CWD/minicom.users.gz > $PKG/etc/minicom.users.new
+zcat $CWD/minirc.dfl.gz > $PKG/etc/minirc.dfl.new
+gzip -9 $PKG/usr/man/man?/*.?
+mkdir -p $PKG/usr/doc/minicom-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING ChangeLog FILE_ID.DIZ INSTALL NEWS README TODO \
+ doc \
+ $PKG/usr/doc/minicom-$VERSION
+
+# lzrz
+# If autoconf causes failure here (which it probably will),
+# remove it temporarily and the build should work fine...
+cd $TMP
+tar xzvf $CWD/lrzsz_0.12.21.orig.tar.gz
+cd lrzsz-990823
+# Make x86_64 a valid machine type (thanks to Fred Emmott)
+zcat $CWD/config.sub-x86_64.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/lrzsz_0.12.21-4.diff.gz | patch -p1 --verbose || exit 1
+chown -R root:root .
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+make -j3
+cd src
+cat lrz > $PKG/usr/bin/lrz
+cat lsz > $PKG/usr/bin/lsz
+chmod 755 $PKG/usr/bin/l*z
+cd ../man
+for page in lrz.1 lsz.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+echo '.so man1/lrz.1' | gzip -9c > $PKG/usr/man/man1/rz.1.gz
+echo '.so man1/lsz.1' | gzip -9c > $PKG/usr/man/man1/sz.1.gz
+cd ../po
+mkdir -p $PKG/usr/share/locale/de/LC_MESSAGES
+cat de.gmo > $PKG/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
+cd ..
+mkdir -p $PKG/usr/doc/lrzsz-0.12.21
+cp -a ABOUT-NLS AUTHORS COMPATABILITY COPYING INSTALL NEWS README-alpha \
+ README.cvs README.gettext README.isdn4linux README.systems \
+ README.tests THANKS TODO $PKG/usr/doc/lrzsz-0.12.21
+
+
+( cd $PKG
+ ( cd usr/bin ; rm -rf rx )
+ ( cd usr/bin ; ln -sf rz rx )
+ ( cd usr/bin ; rm -rf rb )
+ ( cd usr/bin ; ln -sf rz rb )
+ ( cd usr/bin ; rm -rf sb )
+ ( cd usr/bin ; ln -sf sz sb )
+ ( cd usr/bin ; rm -rf sx )
+ ( cd usr/bin ; ln -sf sz sx )
+ ( cd usr/bin ; rm -rf rz )
+ ( cd usr/bin ; ln -sf lrz rz )
+ ( cd usr/bin ; rm -rf lrb )
+ ( cd usr/bin ; ln -sf lrz lrb )
+ ( cd usr/bin ; rm -rf lrx )
+ ( cd usr/bin ; ln -sf lrz lrx )
+ ( cd usr/bin ; rm -rf sz )
+ ( cd usr/bin ; ln -sf lsz sz )
+ ( cd usr/bin ; rm -rf lsb )
+ ( cd usr/bin ; ln -sf lsz lsb )
+ ( cd usr/bin ; rm -rf lrx )
+ ( cd usr/bin ; ln -sf lsz lrx )
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+
+cd $PKG
+makepkg -l y -c n $TMP/minicom-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/minicom/minicom.users b/source/a/minicom/minicom.users
new file mode 100644
index 000000000..509d86f41
--- /dev/null
+++ b/source/a/minicom/minicom.users
@@ -0,0 +1,36 @@
+# $Id: minicom.users,v 1.1.1.1 1999/12/18 11:18:51 misiek Exp $
+# Minicom.users Access file for the minicom program.
+#
+# Format: Either just one username per line, or
+# a username followed by one or more
+# configuration-names. The name of the
+# default configuration is "dfl". The maximum
+# significant line length is 70 characters.
+#
+# Location: The minicom library directory, probably
+# /etc or /var/lib/minicom or whatever.
+#
+# Notes: If you don't install this file in the
+# specified location, everybody will have
+# access to minicom.
+#
+# This doesn't matter if minicom isn't installed
+# setuid root since access will then be based
+# on the permissions set on the serial port.
+#
+
+#
+# Who may use minicom?
+#
+# User [line] [..line]
+#
+
+# Everyone has access to all configurations.
+ALL
+
+## The rest are examples.
+## # Erik only has access to the default configuration
+## erik dfl
+##
+## # minicom has access to the default configuration, and configuration 'tty5'.
+## minicom dfl tty5
diff --git a/source/a/minicom/minirc.dfl b/source/a/minicom/minirc.dfl
new file mode 100644
index 000000000..42e9d8fe4
--- /dev/null
+++ b/source/a/minicom/minirc.dfl
@@ -0,0 +1 @@
+# Machine-generated file - use "minicom -s" to change parameters.
diff --git a/source/a/minicom/slack-desc b/source/a/minicom/slack-desc
new file mode 100644
index 000000000..67d1878c9
--- /dev/null
+++ b/source/a/minicom/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+minicom: minicom (communications package)
+minicom:
+minicom: Minicom - a full featured menu-driven communications package similar
+minicom: to the DOS program 'Telix'. Also includes sz/rz - utilities used to
+minicom: upload and download files using the Zmodem protocol.
+minicom:
+minicom:
+minicom:
+minicom:
+minicom:
+minicom:
diff --git a/source/a/minicom/wintcap.diff b/source/a/minicom/wintcap.diff
new file mode 100644
index 000000000..40d005b3f
--- /dev/null
+++ b/source/a/minicom/wintcap.diff
@@ -0,0 +1,44 @@
+--- minicom-2.1/src/window.c.orig 2003-05-17 00:06:26.000000000 +0400
++++ minicom-2.1/src/window.c 2007-08-26 11:21:04.000000000 +0400
+@@ -62,7 +62,7 @@
+ static char *CS, *SF, *SR, *VB, *BL;
+ static char *VE, *VI, *KS, *KE;
+ static char *CD, *CL, *IC, *DC;
+-static char *BC, *CR, *NL;
++static char *BCs, *CR, *NL;
+ #if ST_LINE
+ static char *TS, *FS, *DS;
+ #endif
+@@ -322,8 +322,8 @@
+ else if (NL != CNULL && x == 0 && x == curx && y == cury + 1)
+ outstr(NL);
+ #endif
+- else if (BC != CNULL && y == cury && x == curx - 1)
+- outstr(BC);
++ else if (BCs != CNULL && y == cury && x == curx - 1)
++ outstr(BCs);
+ else
+ outstr(tgoto(CM, x, y));
+ curx = x;
+@@ -1918,7 +1918,7 @@
+ CL = tgetstr("cl", &_tptr);
+ IC = tgetstr("ic", &_tptr);
+ DC = tgetstr("dc", &_tptr);
+- BC = tgetstr("bc", &_tptr);
++ BCs = tgetstr("bc", &_tptr);
+ CR = tgetstr("cr", &_tptr);
+ NL = tgetstr("nl", &_tptr);
+ AC = tgetstr("ac", &_tptr);
+@@ -1967,10 +1967,10 @@
+ _has_am = tgetflag("am");
+ _mv_standout = tgetflag("ms");
+ if (tgetflag("bs")) {
+- if (BC == CNULL) BC = "\b";
++ if (BCs == CNULL) BCs = "\b";
+ }
+ else
+- BC = CNULL;
++ BCs = CNULL;
+
+ /* Special IBM box-drawing characters */
+ D_UL = 201;
diff --git a/source/a/mkinitrd/README.initrd b/source/a/mkinitrd/README.initrd
new file mode 100644
index 000000000..f027fa276
--- /dev/null
+++ b/source/a/mkinitrd/README.initrd
@@ -0,0 +1,100 @@
+
+Slackware initrd mini HOWTO
+by Patrick Volkerding, volkerdi@slackware.com
+Wed Jun 17 01:49:18 CDT 2009
+
+This document describes how to create and install an initrd, which may be
+required to use the 2.6 kernel. Also see "man mkinitrd".
+
+1. What is an initrd?
+2. Why to I need an initrd?
+3. How do I build the initrd?
+4. Now that I've built an initrd, how do I use it?
+
+
+1. What is an initrd?
+
+Initrd stands for "initial ramdisk". An initial ramdisk is a very small
+Linux filesystem that is loaded into RAM and mounted as the kernel boots,
+and before the main root filesystem is mounted.
+
+2. Why do I need an initrd?
+
+The usual reason to use an initrd is because you need to load kernel
+modules before mounting the root partition. Usually these modules are
+required to support the filesystem used by the root partition (ext3,
+reiserfs, xfs), or perhaps the controller that the hard drive is attached
+to (SCSI, RAID, etc). Essentially, there are so many different options
+available in modern Linux kernels that it isn't practical to try to ship
+many different kernels to try to cover everyone's needs. It's a lot more
+flexible to ship a generic kernel and a set of kernel modules for it.
+
+3. How do I build the initrd?
+
+The easiest way to make the initrd is to use the mkinitrd script included
+in Slackware's mkinitrd package. We'll walk through the process of
+upgrading to the generic 2.6.29.5 Linux kernel using the packages
+found in Slackware's slackware/a/ directory.
+
+First, make sure the kernel, kernel modules, and mkinitrd package are
+installed (the current version numbers might be a little different, so
+this is just an example):
+
+ installpkg kernel-generic-2.6.29.5-i686-1.tgz
+ installpkg kernel-modules-2.6.29.5-i686-1.tgz
+ installpkg mkinitrd-1.1.0-i486-1.tgz
+
+Change into the /boot directory:
+
+ cd /boot
+
+Now you'll want to run "mkinitrd". I'm using reiserfs for my root
+filesystem, and since it's an IDE system the reiserfs module will be
+the only one I need to load:
+
+ mkinitrd -c -k 2.6.29.5 -m reiserfs
+
+This should do two things. First, it will create a directory
+/boot/initrd-tree containing the initrd's filesystem. Then it will
+create an initrd (/boot/initrd.gz) from this tree. If you wanted to,
+you could make some additional changes in /boot/initrd-tree/ and
+then run mkinitrd again without options to rebuild the image. That's
+optional, though, and only advanced users will need to think about that.
+
+Here's another example: Build an initrd image using Linux 2.6.29.5
+kernel modules for a system with an ext3 root partition on /dev/hdb3.
+Note that you need the mbcache, jbd, and ext3 modules to use ext3:
+
+ mkinitrd -c -k 2.6.29.5 -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3
+
+
+4. Now that I've built an initrd, how do I use it?
+
+Now that you've got an initrd (/boot/initrd.gz), you'll want to load
+it along with the kernel at boot time. If you use LILO for your boot
+loader you'll need to edit /etc/lilo.conf and add a line to load the
+initrd. Here's an example section of lilo.conf showing how this is
+done:
+
+# Linux bootable partition config begins
+image = /boot/vmlinuz-generic-2.6.29.5
+ initrd = /boot/initrd.gz
+ root = /dev/hda6
+ label = Lnx26295
+ read-only
+# Linux bootable partition config ends
+
+The initrd is loaded by the "initrd = /boot/initrd.gz" line.
+Just add the line right below the line for the kernel image you use.
+Save the file, and then run LILO again ('lilo' at the command line).
+You'll need to run lilo every time you edit lilo.conf or rebuild the
+initrd.
+
+Other bootloaders such as syslinux also support the use of an initrd.
+See the documentation for those programs for details on using an
+initrd with them.
+
+
+---------
+
+Have fun!
diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff
new file mode 100644
index 000000000..e4f64367c
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-1.7.2.no-gc-sections.diff
@@ -0,0 +1,11 @@
+--- ./Makefile.orig 2007-09-29 18:54:25.000000000 -0500
++++ ./Makefile 2007-11-27 15:35:42.000000000 -0600
+@@ -570,7 +570,7 @@
+ quiet_cmd_busybox__ ?= LINK $@
+ cmd_busybox__ ?= $(srctree)/scripts/trylink $(CC) $(LDFLAGS) \
+ -o $@ -Wl,-Map -Wl,$@.map \
+- -Wl,--warn-common -Wl,--sort-common -Wl,--gc-sections \
++ -Wl,--warn-common -Wl,--sort-common \
+ -Wl,--start-group $(busybox-all) -Wl,--end-group \
+ $(LDLIBS)
+
diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff
new file mode 100644
index 000000000..99257fc76
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-1.7.2.remove_warning.diff
@@ -0,0 +1,20 @@
+--- ./applets/applets.c.orig 2007-09-16 13:48:10.000000000 -0500
++++ ./applets/applets.c 2007-10-04 22:07:47.000000000 -0500
+@@ -16,7 +16,7 @@
+ #include "busybox.h"
+
+ /* Apparently uclibc defines __GLIBC__ (compat trick?). Oh well. */
+-#if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__)
++/* #if ENABLE_STATIC && defined(__GLIBC__) && !defined(__UCLIBC__)
+ #warning Static linking against glibc produces buggy executables
+ #warning (glibc does not cope well with ld --gc-sections).
+ #warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400
+@@ -24,7 +24,7 @@
+ #warning If you still want to do it, remove -Wl,--gc-sections
+ #warning from top-level Makefile and remove this warning.
+ #error Aborting compilation.
+-#endif
++#endif */
+
+
+ /* Declare <applet>_main() */
diff --git a/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign
new file mode 100644
index 000000000..19ac2fabe
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-1.7.2.tar.bz2.sign
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+busybox-1.7.2.tar.bz2 released Sun, 30 Sep 2007 01:02:10 +0100
+
+MD5: c91ec9756e2000073a9dd8fa9fc3f89e busybox-1.7.2.tar.bz2
+SHA1: d9c618a7b104af4e70d623b1b6f3bc454405e12b busybox-1.7.2.tar.bz2
+
+To verify this signature, you can obtain my public key
+from http://busybox.net/~vda/vda_pubkey.gpg
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2.2 (GNU/Linux)
+
+iD8DBQFG/ueHR7cMVazJllsRAuBAAJ9r7SuXFQJCm/k0KZp39oDMsqBy7ACffZ9t
+r/kwDWTYEr7doIKcNINt+p0=
+=GHTs
+-----END PGP SIGNATURE-----
diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.11.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2
new file mode 100644
index 000000000..012350efa
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-dot-config.1.11.2
@@ -0,0 +1,855 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.11.2
+# Tue Sep 23 23:25:46 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+CONFIG_INSTALL_NO_USR=y
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y
+CONFIG_GZIP=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+# CONFIG_FEATURE_RPM_BZ2 is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_GZIP=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_LZMA=y
+CONFIG_FEATURE_TAR_COMPRESS=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAL=y
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_INODE=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=10
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_DEPMOD=y
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+CONFIG_FEATURE_DEPMOD_ALIAS=y
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+# CONFIG_FINDFS is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_MINIX=y
+
+#
+# Minix filesystem support
+#
+CONFIG_FEATURE_MINIX2=y
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_V0=y
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_VOLUMEID=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+CONFIG_SLATTACH=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_APP_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_TIME=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.0 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0
new file mode 100644
index 000000000..b462fe9a1
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.0
@@ -0,0 +1,857 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.12.0
+# Thu Sep 25 12:38:54 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_PARSE is not set
+
+#
+# Installation Options
+#
+CONFIG_INSTALL_NO_USR=y
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAL=y
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_INODE=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_FEATURE_FLOAT_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=10
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_DEPMOD=y
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+CONFIG_FEATURE_DEPMOD_ALIAS=y
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+# CONFIG_FINDFS is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_MINIX=y
+
+#
+# Minix filesystem support
+#
+CONFIG_FEATURE_MINIX2=y
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_V0=y
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_VOLUMEID=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+CONFIG_SLATTACH=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_APP_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_TIME=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.12.1 b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1
new file mode 100644
index 000000000..5987e0503
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-dot-config.1.12.1
@@ -0,0 +1,857 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.12.1
+# Fri Nov 7 10:20:30 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_PARSE is not set
+
+#
+# Installation Options
+#
+CONFIG_INSTALL_NO_USR=y
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAL=y
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_INODE=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_FEATURE_FLOAT_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=10
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_DEPMOD=y
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+CONFIG_FEATURE_DEPMOD_ALIAS=y
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_MINIX=y
+
+#
+# Minix filesystem support
+#
+CONFIG_FEATURE_MINIX2=y
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_V0=y
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_VOLUMEID=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+CONFIG_SLATTACH=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_APP_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_TIME=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
diff --git a/source/a/mkinitrd/archive/busybox-dot-config.1.7.2 b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2
new file mode 100644
index 000000000..5b9c00b45
--- /dev/null
+++ b/source/a/mkinitrd/archive/busybox-dot-config.1.7.2
@@ -0,0 +1,753 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.7.2
+# Thu Oct 4 22:03:29 2007
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_NITPICK=y
+CONFIG_DESKTOP=y
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_BUILD_AT_ONCE=y
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+
+#
+# Installation Options
+#
+CONFIG_INSTALL_NO_USR=y
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_FANCY_KEYS=y
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_BUNZIP2=y
+CONFIG_CPIO=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_FEATURE_GUNZIP_UNCOMPRESS=y
+CONFIG_GZIP=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+# CONFIG_FEATURE_RPM_BZ2 is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_BZIP2=y
+CONFIG_FEATURE_TAR_LZMA=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_GZIP=y
+CONFIG_FEATURE_TAR_COMPRESS=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Common options for cpio and tar
+#
+CONFIG_FEATURE_UNARCHIVE_TAPE=y
+# CONFIG_FEATURE_DEB_TAR_GZ is not set
+# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
+# CONFIG_FEATURE_DEB_TAR_LZMA is not set
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAL=y
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_SHADOW is not set
+# CONFIG_USE_BB_PWD_GRP is not set
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_ADDUSER=y
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_MINIX=y
+
+#
+# Minix filesystem support
+#
+CONFIG_FEATURE_MINIX2=y
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_V0=y
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_READPROFILE=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_LAST=y
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_STRINGS=y
+CONFIG_SETSID=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_PSCAN=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+# CONFIG_APP_UDHCPC is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_LASH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+
+#
+# ipsvd utilities
+#
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
diff --git a/source/a/mkinitrd/busybox-1.12.1_inotify.diff b/source/a/mkinitrd/busybox-1.12.1_inotify.diff
new file mode 100644
index 000000000..151d16ce9
--- /dev/null
+++ b/source/a/mkinitrd/busybox-1.12.1_inotify.diff
@@ -0,0 +1,11 @@
+--- busybox-1.12.1.orig/miscutils/inotifyd.c 2008-11-07 01:39:21.000000000 +0000
++++ busybox-1.12.1/miscutils/inotifyd.c 2008-11-07 01:37:05.000000000 +0000
+@@ -28,7 +28,7 @@
+ */
+
+ #include "libbb.h"
+-#include <linux/inotify.h>
++#include <sys/inotify.h>
+
+ static volatile smallint signalled;
+
diff --git a/source/a/mkinitrd/busybox-dot-config b/source/a/mkinitrd/busybox-dot-config
new file mode 100644
index 000000000..5987e0503
--- /dev/null
+++ b/source/a/mkinitrd/busybox-dot-config
@@ -0,0 +1,857 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.12.1
+# Fri Nov 7 10:20:30 2008
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEATURE_ASSUME_UNICODE is not set
+CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
+# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
+# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
+CONFIG_SHOW_USAGE=y
+CONFIG_FEATURE_VERBOSE_USAGE=y
+CONFIG_FEATURE_COMPRESS_USAGE=y
+CONFIG_FEATURE_INSTALLER=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_GETOPT_LONG=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_PIDFILE=y
+CONFIG_FEATURE_SUID=y
+CONFIG_FEATURE_SUID_CONFIG=y
+CONFIG_FEATURE_SUID_CONFIG_QUIET=y
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_PREFER_APPLETS is not set
+CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+CONFIG_FEATURE_SYSLOG=y
+CONFIG_FEATURE_HAVE_RPC=y
+
+#
+# Build Options
+#
+CONFIG_STATIC=y
+# CONFIG_PIE is not set
+# CONFIG_NOMMU is not set
+# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_INDIVIDUAL is not set
+# CONFIG_FEATURE_SHARED_BUSYBOX is not set
+CONFIG_LFS=y
+CONFIG_CROSS_COMPILER_PREFIX=""
+
+#
+# Debugging Options
+#
+# CONFIG_DEBUG is not set
+# CONFIG_DEBUG_PESSIMIZE is not set
+# CONFIG_WERROR is not set
+CONFIG_NO_DEBUG_LIB=y
+# CONFIG_DMALLOC is not set
+# CONFIG_EFENCE is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_PARSE is not set
+
+#
+# Installation Options
+#
+CONFIG_INSTALL_NO_USR=y
+CONFIG_INSTALL_APPLET_SYMLINKS=y
+# CONFIG_INSTALL_APPLET_HARDLINKS is not set
+# CONFIG_INSTALL_APPLET_SCRIPT_WRAPPERS is not set
+# CONFIG_INSTALL_APPLET_DONT is not set
+# CONFIG_INSTALL_SH_APPLET_SYMLINK is not set
+# CONFIG_INSTALL_SH_APPLET_HARDLINK is not set
+# CONFIG_INSTALL_SH_APPLET_SCRIPT_WRAPPER is not set
+CONFIG_PREFIX="./_install"
+
+#
+# Busybox Library Tuning
+#
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SIZE_VS_SPEED=2
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_EDITING=y
+CONFIG_FEATURE_EDITING_MAX_LEN=1024
+CONFIG_FEATURE_EDITING_VI=y
+CONFIG_FEATURE_EDITING_HISTORY=64
+# CONFIG_FEATURE_EDITING_SAVEHISTORY is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+# CONFIG_FEATURE_SEAMLESS_LZMA is not set
+CONFIG_FEATURE_SEAMLESS_BZ2=y
+CONFIG_FEATURE_SEAMLESS_GZ=y
+CONFIG_FEATURE_SEAMLESS_Z=y
+CONFIG_AR=y
+CONFIG_FEATURE_AR_LONG_FILENAMES=y
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+# CONFIG_DPKG is not set
+# CONFIG_DPKG_DEB is not set
+# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
+CONFIG_GUNZIP=y
+CONFIG_GZIP=y
+CONFIG_RPM2CPIO=y
+# CONFIG_RPM is not set
+CONFIG_TAR=y
+CONFIG_FEATURE_TAR_CREATE=y
+CONFIG_FEATURE_TAR_AUTODETECT=y
+CONFIG_FEATURE_TAR_FROM=y
+CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
+# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
+CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
+CONFIG_FEATURE_TAR_LONG_OPTIONS=y
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAL=y
+CONFIG_CAT=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_CUT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_INODE=y
+CONFIG_DIRNAME=y
+CONFIG_DOS2UNIX=y
+CONFIG_UNIX2DOS=y
+CONFIG_DU=y
+CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
+CONFIG_ECHO=y
+CONFIG_FEATURE_FANCY_ECHO=y
+CONFIG_ENV=y
+CONFIG_FEATURE_ENV_LONG_OPTIONS=y
+CONFIG_EXPAND=y
+CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y
+CONFIG_EXPR=y
+CONFIG_EXPR_MATH_SUPPORT_64=y
+CONFIG_FALSE=y
+CONFIG_FOLD=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_ID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y
+CONFIG_LENGTH=y
+CONFIG_LN=y
+CONFIG_LOGNAME=y
+CONFIG_LS=y
+CONFIG_FEATURE_LS_FILETYPES=y
+CONFIG_FEATURE_LS_FOLLOWLINKS=y
+CONFIG_FEATURE_LS_RECURSIVE=y
+CONFIG_FEATURE_LS_SORTFILES=y
+CONFIG_FEATURE_LS_TIMESTAMPS=y
+CONFIG_FEATURE_LS_USERNAME=y
+CONFIG_FEATURE_LS_COLOR=y
+CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y
+CONFIG_MD5SUM=y
+CONFIG_MKDIR=y
+CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
+CONFIG_MKFIFO=y
+CONFIG_MKNOD=y
+CONFIG_MV=y
+CONFIG_FEATURE_MV_LONG_OPTIONS=y
+CONFIG_NICE=y
+CONFIG_NOHUP=y
+CONFIG_OD=y
+CONFIG_PRINTENV=y
+CONFIG_PRINTF=y
+CONFIG_PWD=y
+CONFIG_READLINK=y
+CONFIG_FEATURE_READLINK_FOLLOW=y
+CONFIG_REALPATH=y
+CONFIG_RM=y
+CONFIG_RMDIR=y
+# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
+CONFIG_SEQ=y
+CONFIG_SHA1SUM=y
+CONFIG_SLEEP=y
+CONFIG_FEATURE_FANCY_SLEEP=y
+# CONFIG_FEATURE_FLOAT_SLEEP is not set
+CONFIG_SORT=y
+CONFIG_FEATURE_SORT_BIG=y
+CONFIG_SPLIT=y
+CONFIG_FEATURE_SPLIT_FANCY=y
+CONFIG_STAT=y
+CONFIG_FEATURE_STAT_FORMAT=y
+CONFIG_STTY=y
+CONFIG_SUM=y
+CONFIG_SYNC=y
+CONFIG_TAC=y
+CONFIG_TAIL=y
+CONFIG_FEATURE_FANCY_TAIL=y
+CONFIG_TEE=y
+CONFIG_FEATURE_TEE_USE_BLOCK_IO=y
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_TRUE=y
+CONFIG_TTY=y
+CONFIG_UNAME=y
+CONFIG_UNEXPAND=y
+CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y
+CONFIG_UNIQ=y
+CONFIG_USLEEP=y
+CONFIG_UUDECODE=y
+CONFIG_UUENCODE=y
+CONFIG_WC=y
+CONFIG_FEATURE_WC_LARGE=y
+CONFIG_WHO=y
+CONFIG_WHOAMI=y
+CONFIG_YES=y
+
+#
+# Common options for cp and mv
+#
+CONFIG_FEATURE_PRESERVE_HARDLINKS=y
+
+#
+# Common options for ls, more and telnet
+#
+CONFIG_FEATURE_AUTOWIDTH=y
+
+#
+# Common options for df, du, ls
+#
+CONFIG_FEATURE_HUMAN_READABLE=y
+
+#
+# Common options for md5sum, sha1sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_CLEAR=y
+CONFIG_DEALLOCVT=y
+CONFIG_DUMPKMAP=y
+CONFIG_KBD_MODE=y
+CONFIG_LOADFONT=y
+CONFIG_LOADKMAP=y
+CONFIG_OPENVT=y
+CONFIG_RESET=y
+CONFIG_RESIZE=y
+CONFIG_FEATURE_RESIZE_PRINT=y
+CONFIG_SETCONSOLE=y
+CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS=y
+CONFIG_SETFONT=y
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Debian Utilities
+#
+CONFIG_MKTEMP=y
+CONFIG_PIPE_PROGRESS=y
+CONFIG_RUN_PARTS=y
+CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
+CONFIG_FEATURE_RUN_PARTS_FANCY=y
+CONFIG_START_STOP_DAEMON=y
+CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
+CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
+CONFIG_WHICH=y
+
+#
+# Editors
+#
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_MATH=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+CONFIG_FEATURE_DIFF_BINARY=y
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_FEATURE_DIFF_MINIMAL=y
+CONFIG_ED=y
+CONFIG_PATCH=y
+CONFIG_SED=y
+CONFIG_VI=y
+CONFIG_FEATURE_VI_MAX_LEN=1024
+CONFIG_FEATURE_VI_8BIT=y
+CONFIG_FEATURE_VI_COLON=y
+CONFIG_FEATURE_VI_YANKMARK=y
+CONFIG_FEATURE_VI_SEARCH=y
+CONFIG_FEATURE_VI_USE_SIGNALS=y
+CONFIG_FEATURE_VI_DOT_CMD=y
+CONFIG_FEATURE_VI_READONLY=y
+CONFIG_FEATURE_VI_SETOPTS=y
+CONFIG_FEATURE_VI_SET=y
+CONFIG_FEATURE_VI_WIN_RESIZE=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_FEATURE_ALLOW_EXEC=y
+
+#
+# Finding Utilities
+#
+CONFIG_FIND=y
+CONFIG_FEATURE_FIND_PRINT0=y
+CONFIG_FEATURE_FIND_MTIME=y
+CONFIG_FEATURE_FIND_MMIN=y
+CONFIG_FEATURE_FIND_PERM=y
+CONFIG_FEATURE_FIND_TYPE=y
+CONFIG_FEATURE_FIND_XDEV=y
+CONFIG_FEATURE_FIND_MAXDEPTH=y
+CONFIG_FEATURE_FIND_NEWER=y
+CONFIG_FEATURE_FIND_INUM=y
+CONFIG_FEATURE_FIND_EXEC=y
+CONFIG_FEATURE_FIND_USER=y
+CONFIG_FEATURE_FIND_GROUP=y
+CONFIG_FEATURE_FIND_NOT=y
+CONFIG_FEATURE_FIND_DEPTH=y
+CONFIG_FEATURE_FIND_PAREN=y
+CONFIG_FEATURE_FIND_SIZE=y
+CONFIG_FEATURE_FIND_PRUNE=y
+# CONFIG_FEATURE_FIND_DELETE is not set
+CONFIG_FEATURE_FIND_PATH=y
+CONFIG_FEATURE_FIND_REGEX=y
+# CONFIG_FEATURE_FIND_CONTEXT is not set
+CONFIG_GREP=y
+CONFIG_FEATURE_GREP_EGREP_ALIAS=y
+CONFIG_FEATURE_GREP_FGREP_ALIAS=y
+CONFIG_FEATURE_GREP_CONTEXT=y
+CONFIG_XARGS=y
+CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y
+CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y
+CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+
+#
+# Init Utilities
+#
+CONFIG_INIT=y
+# CONFIG_DEBUG_INIT is not set
+CONFIG_FEATURE_USE_INITTAB=y
+CONFIG_FEATURE_KILL_REMOVED=y
+CONFIG_FEATURE_KILL_DELAY=10
+CONFIG_FEATURE_INIT_SCTTY=y
+CONFIG_FEATURE_INIT_SYSLOG=y
+CONFIG_FEATURE_EXTRA_QUIET=y
+# CONFIG_FEATURE_INIT_COREDUMPS is not set
+# CONFIG_FEATURE_INITRD is not set
+CONFIG_HALT=y
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_FEATURE_SHADOWPASSWDS=y
+# CONFIG_USE_BB_PWD_GRP is not set
+# CONFIG_USE_BB_SHADOW is not set
+CONFIG_USE_BB_CRYPT=y
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_DELUSER=y
+CONFIG_GETTY=y
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+CONFIG_LOGIN=y
+# CONFIG_PAM is not set
+CONFIG_LOGIN_SCRIPTS=y
+CONFIG_FEATURE_NOLOGIN=y
+# CONFIG_FEATURE_SECURETTY is not set
+CONFIG_PASSWD=y
+CONFIG_FEATURE_PASSWD_WEAK_CHECK=y
+CONFIG_CRYPTPW=y
+CONFIG_CHPASSWD=y
+CONFIG_SU=y
+CONFIG_FEATURE_SU_SYSLOG=y
+CONFIG_FEATURE_SU_CHECKS_SHELLS=y
+CONFIG_SULOGIN=y
+CONFIG_VLOCK=y
+
+#
+# Linux Ext2 FS Progs
+#
+CONFIG_CHATTR=y
+CONFIG_FSCK=y
+CONFIG_LSATTR=y
+
+#
+# Linux Module Utilities
+#
+# CONFIG_MODPROBE_SMALL is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
+CONFIG_DEPMOD=y
+# CONFIG_FEATURE_DEPMOD_PRUNE_FANCY is not set
+CONFIG_FEATURE_DEPMOD_ALIAS=y
+CONFIG_INSMOD=y
+# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
+CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS=y
+# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
+# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
+CONFIG_FEATURE_MODPROBE_FANCY_ALIAS=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_2_4_MODULES=y
+CONFIG_FEATURE_2_6_MODULES=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
+
+#
+# Linux System Utilities
+#
+CONFIG_DMESG=y
+CONFIG_FEATURE_DMESG_PRETTY=y
+CONFIG_FBSET=y
+CONFIG_FEATURE_FBSET_FANCY=y
+CONFIG_FEATURE_FBSET_READMODE=y
+CONFIG_FDFLUSH=y
+CONFIG_FDFORMAT=y
+CONFIG_FDISK=y
+CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
+CONFIG_FEATURE_FDISK_WRITABLE=y
+# CONFIG_FEATURE_AIX_LABEL is not set
+# CONFIG_FEATURE_SGI_LABEL is not set
+# CONFIG_FEATURE_SUN_LABEL is not set
+CONFIG_FEATURE_OSF_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+CONFIG_MKFS_MINIX=y
+
+#
+# Minix filesystem support
+#
+CONFIG_FEATURE_MINIX2=y
+CONFIG_GETOPT=y
+CONFIG_HEXDUMP=y
+CONFIG_FEATURE_HEXDUMP_REVERSE=y
+CONFIG_HD=y
+CONFIG_HWCLOCK=y
+CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
+CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
+CONFIG_IPCRM=y
+CONFIG_IPCS=y
+CONFIG_LOSETUP=y
+CONFIG_MDEV=y
+CONFIG_FEATURE_MDEV_CONF=y
+CONFIG_FEATURE_MDEV_RENAME=y
+CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
+CONFIG_FEATURE_MDEV_EXEC=y
+CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_V0=y
+CONFIG_MORE=y
+CONFIG_FEATURE_USE_TERMIOS=y
+CONFIG_VOLUMEID=y
+CONFIG_FEATURE_VOLUMEID_EXT=y
+CONFIG_FEATURE_VOLUMEID_REISERFS=y
+CONFIG_FEATURE_VOLUMEID_FAT=y
+CONFIG_FEATURE_VOLUMEID_HFS=y
+CONFIG_FEATURE_VOLUMEID_JFS=y
+CONFIG_FEATURE_VOLUMEID_XFS=y
+CONFIG_FEATURE_VOLUMEID_NTFS=y
+CONFIG_FEATURE_VOLUMEID_ISO9660=y
+CONFIG_FEATURE_VOLUMEID_UDF=y
+CONFIG_FEATURE_VOLUMEID_LUKS=y
+CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y
+CONFIG_FEATURE_VOLUMEID_CRAMFS=y
+CONFIG_FEATURE_VOLUMEID_ROMFS=y
+CONFIG_FEATURE_VOLUMEID_SYSV=y
+# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
+CONFIG_FEATURE_VOLUMEID_LINUXRAID=y
+CONFIG_MOUNT=y
+CONFIG_FEATURE_MOUNT_FAKE=y
+# CONFIG_FEATURE_MOUNT_VERBOSE is not set
+CONFIG_FEATURE_MOUNT_HELPERS=y
+CONFIG_FEATURE_MOUNT_LABEL=y
+CONFIG_FEATURE_MOUNT_NFS=y
+CONFIG_FEATURE_MOUNT_CIFS=y
+CONFIG_FEATURE_MOUNT_FLAGS=y
+CONFIG_FEATURE_MOUNT_FSTAB=y
+CONFIG_PIVOT_ROOT=y
+CONFIG_RDATE=y
+CONFIG_RDEV=y
+CONFIG_READPROFILE=y
+CONFIG_RTCWAKE=y
+CONFIG_SCRIPT=y
+CONFIG_SETARCH=y
+CONFIG_SWAPONOFF=y
+CONFIG_FEATURE_SWAPON_PRI=y
+CONFIG_SWITCH_ROOT=y
+CONFIG_UMOUNT=y
+CONFIG_FEATURE_UMOUNT_ALL=y
+
+#
+# Common options for mount/umount
+#
+CONFIG_FEATURE_MOUNT_LOOP=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+
+#
+# Miscellaneous Utilities
+#
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_CHAT=y
+CONFIG_FEATURE_CHAT_NOFAIL=y
+# CONFIG_FEATURE_CHAT_TTY_HIFI is not set
+CONFIG_FEATURE_CHAT_IMPLICIT_CR=y
+# CONFIG_FEATURE_CHAT_SWALLOW_OPTS is not set
+# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
+# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
+# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
+CONFIG_CHRT=y
+CONFIG_CROND=y
+# CONFIG_DEBUG_CROND_OPTION is not set
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+# CONFIG_DEVFSD is not set
+# CONFIG_DEVFSD_MODLOAD is not set
+# CONFIG_DEVFSD_FG_NP is not set
+# CONFIG_DEVFSD_VERBOSE is not set
+# CONFIG_FEATURE_DEVFS is not set
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_FLAGCS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_HDPARM=y
+CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
+CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
+CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
+CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
+CONFIG_MAKEDEVS=y
+# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
+CONFIG_FEATURE_MAKEDEVS_TABLE=y
+# CONFIG_MAN is not set
+# CONFIG_MICROCOM is not set
+CONFIG_MOUNTPOINT=y
+CONFIG_MT=y
+CONFIG_RAIDAUTORUN=y
+CONFIG_READAHEAD=y
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TTYSIZE=y
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
+# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+CONFIG_ARP=y
+CONFIG_ARPING=y
+CONFIG_BRCTL=y
+# CONFIG_FEATURE_BRCTL_FANCY is not set
+# CONFIG_FEATURE_BRCTL_SHOW is not set
+CONFIG_DNSD=y
+CONFIG_ETHER_WAKE=y
+CONFIG_FAKEIDENTD=y
+CONFIG_FTPGET=y
+CONFIG_FTPPUT=y
+CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y
+CONFIG_HOSTNAME=y
+# CONFIG_HTTPD is not set
+# CONFIG_FEATURE_HTTPD_RANGES is not set
+# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set
+# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
+# CONFIG_FEATURE_HTTPD_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
+# CONFIG_FEATURE_HTTPD_CGI is not set
+# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
+# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
+# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
+# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
+# CONFIG_FEATURE_HTTPD_PROXY is not set
+CONFIG_IFCONFIG=y
+CONFIG_FEATURE_IFCONFIG_STATUS=y
+CONFIG_FEATURE_IFCONFIG_SLIP=y
+CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ=y
+CONFIG_FEATURE_IFCONFIG_HW=y
+CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
+CONFIG_IFENSLAVE=y
+CONFIG_IFUPDOWN=y
+CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_FEATURE_IFUPDOWN_IP=y
+CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
+# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
+CONFIG_FEATURE_IFUPDOWN_IPV4=y
+CONFIG_FEATURE_IFUPDOWN_IPV6=y
+CONFIG_FEATURE_IFUPDOWN_MAPPING=y
+CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
+# CONFIG_INETD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
+# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
+# CONFIG_FEATURE_INETD_RPC is not set
+CONFIG_IP=y
+CONFIG_FEATURE_IP_ADDRESS=y
+CONFIG_FEATURE_IP_LINK=y
+CONFIG_FEATURE_IP_ROUTE=y
+CONFIG_FEATURE_IP_TUNNEL=y
+CONFIG_FEATURE_IP_RULE=y
+CONFIG_FEATURE_IP_SHORT_FORMS=y
+# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
+CONFIG_IPADDR=y
+CONFIG_IPLINK=y
+CONFIG_IPROUTE=y
+CONFIG_IPTUNNEL=y
+CONFIG_IPRULE=y
+CONFIG_IPCALC=y
+CONFIG_FEATURE_IPCALC_FANCY=y
+CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+CONFIG_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+# CONFIG_SENDMAIL is not set
+# CONFIG_FETCHMAIL is not set
+CONFIG_SLATTACH=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+# CONFIG_DEBUG_TFTP is not set
+CONFIG_TRACEROUTE=y
+# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
+# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
+# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
+# CONFIG_APP_UDHCPD is not set
+# CONFIG_APP_DHCPRELAY is not set
+# CONFIG_APP_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_APP_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+# CONFIG_FEATURE_UDHCP_DEBUG is not set
+# CONFIG_FEATURE_RFC3397 is not set
+CONFIG_DHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_ZCIP=y
+CONFIG_TCPSVD=y
+CONFIG_UDPSVD=y
+
+#
+# Process Utilities
+#
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=y
+CONFIG_NMETER=y
+CONFIG_PGREP=y
+CONFIG_PIDOF=y
+CONFIG_FEATURE_PIDOF_SINGLE=y
+CONFIG_FEATURE_PIDOF_OMIT=y
+CONFIG_PKILL=y
+CONFIG_PS=y
+CONFIG_FEATURE_PS_WIDE=y
+CONFIG_FEATURE_PS_TIME=y
+# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+CONFIG_RENICE=y
+CONFIG_BB_SYSCTL=y
+CONFIG_TOP=y
+CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
+CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Shells
+#
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_MSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+CONFIG_ASH=y
+
+#
+# Ash Shell Options
+#
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_READ_NCHARS=y
+CONFIG_ASH_READ_TIMEOUT=y
+CONFIG_ASH_ALIAS=y
+CONFIG_ASH_MATH_SUPPORT=y
+CONFIG_ASH_MATH_SUPPORT_64=y
+CONFIG_ASH_GETOPTS=y
+CONFIG_ASH_BUILTIN_ECHO=y
+CONFIG_ASH_BUILTIN_PRINTF=y
+CONFIG_ASH_BUILTIN_TEST=y
+CONFIG_ASH_CMDCMD=y
+CONFIG_ASH_MAIL=y
+CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
+CONFIG_ASH_RANDOM_SUPPORT=y
+CONFIG_ASH_EXPAND_PRMT=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_JOB is not set
+# CONFIG_HUSH_TICK is not set
+# CONFIG_HUSH_IF is not set
+# CONFIG_HUSH_LOOPS is not set
+# CONFIG_HUSH_CASE is not set
+# CONFIG_LASH is not set
+# CONFIG_MSH is not set
+
+#
+# Bourne Shell Options
+#
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_CTTYHACK=y
+
+#
+# System Logging Utilities
+#
+CONFIG_SYSLOGD=y
+CONFIG_FEATURE_ROTATE_LOGFILE=y
+CONFIG_FEATURE_REMOTE_LOG=y
+# CONFIG_FEATURE_SYSLOGD_DUP is not set
+CONFIG_FEATURE_IPC_SYSLOG=y
+CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16
+CONFIG_LOGREAD=y
+CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y
+CONFIG_KLOGD=y
+CONFIG_LOGGER=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_SV=y
+CONFIG_SVLOGD=y
+CONFIG_CHPST=y
+CONFIG_SETUIDGID=y
+CONFIG_ENVUIDGID=y
+CONFIG_ENVDIR=y
+CONFIG_SOFTLIMIT=y
+# CONFIG_CHCON is not set
+# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
+# CONFIG_GETENFORCE is not set
+# CONFIG_GETSEBOOL is not set
+# CONFIG_LOAD_POLICY is not set
+# CONFIG_MATCHPATHCON is not set
+# CONFIG_RESTORECON is not set
+# CONFIG_RUNCON is not set
+# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
+# CONFIG_SELINUXENABLED is not set
+# CONFIG_SETENFORCE is not set
+# CONFIG_SETFILES is not set
+# CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
+# CONFIG_SETSEBOOL is not set
+# CONFIG_SESTATUS is not set
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init
new file mode 100755
index 000000000..0559932e9
--- /dev/null
+++ b/source/a/mkinitrd/init
@@ -0,0 +1,230 @@
+#!/bin/ash
+#
+# /init: init script to load kernel modules from an initramfs
+# This requires that your kernel supports initramfs!!!
+#
+# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2007, 2008 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# With a generic kernel, you need to load the modules needed to mount the
+# root partition. This might mean a SCSI, RAID, or other drive controller
+# module, as well as the module to support the root filesystem. Once the
+# root partition is mounted all the other modules will be available so you
+# don't need to load them here.
+#
+# Config files used by this script:
+#
+# /rootdev Contains the name of the root device, such as: /dev/hda1
+#
+# /rootfs Contains the root filesystem type, such as: xfs
+#
+# /initrd-name Contains the name of the initrd file.
+#
+# Optional:
+# /load_kernel_modules A script that uses insmod to load the desired
+# modules. If this file is not present, all the modules
+# in /lib/modules/`uname -r`/ will be loaded in the usual
+# sorted order. If you need to load the modules in a
+# certain order, or if the modules need extra options,
+# then use a load_kernel_modules script.
+#
+# There's an example in here. To actually use it, you'll
+# need to make it executable:
+#
+# chmod 755 load_kernel_modules
+
+INITRD=`cat /initrd-name`
+ROOTDEV=`cat /rootdev`
+ROOTFS=`cat /rootfs`
+LUKSDEV=`cat /luksdev`
+RESUMEDEV=`cat /resumedev`
+WAIT=`cat /wait-for-root`
+KEYMAP=`cat /keymap`
+
+# Mount /proc and /sys:
+mount -n proc /proc -t proc
+mount -n sysfs /sys -t sysfs
+
+# Parse command line
+for ARG in `cat /proc/cmdline`; do
+ case $ARG in
+ rescue)
+ RESCUE=1
+ ;;
+ root=/dev/*)
+ ROOTDEV=`echo $ARG | cut -f2 -d=`
+ ;;
+ rootfs=*)
+ ROOTFS=`echo $ARG | cut -f2 -d=`
+ ;;
+ luksdev=/dev/*)
+ LUKSDEV=`echo $ARG | cut -f2 -d=`
+ ;;
+ waitforroot=*)
+ WAIT=`echo $ARG | cut -f2 -d=`
+ ;;
+ root=LABEL=*)
+ ROOTDEV=`echo $ARG | cut -f2- -d=`
+ ;;
+ resume=*)
+ RESUMEDEV=`echo $ARG | cut -f2 -d=`
+ ;;
+ 0|1|2|3|4|5|6)
+ RUNLEVEL=$ARG
+ ;;
+ esac
+done
+
+# Load kernel modules:
+if [ ! -d /lib/modules/`uname -r` ]; then
+ echo "No kernel modules found for Linux `uname -r`."
+elif [ -x ./load_kernel_modules ]; then # use load_kernel_modules script:
+ echo "${INITRD}: Loading kernel modules from initrd image:"
+ . ./load_kernel_modules
+else # load modules (if any) in order:
+ if ls /lib/modules/`uname -r`/*.*o 1> /dev/null 2> /dev/null ; then
+ echo "${INITRD}: Loading kernel modules from initrd image:"
+ for module in /lib/modules/`uname -r`/*.*o ; do
+ insmod $module
+ done
+ unset module
+ fi
+fi
+
+# Sometimes the devices needs extra time to be available.
+# root on USB are good example of that.
+sleep $WAIT
+
+# If udevd is available, use it to generate block devices
+# else use mdev to read sysfs and generate the needed devices
+if [ -x /sbin/udevd -a -x /sbin/udevadm ]; then
+ /sbin/udevd --daemon
+ /sbin/udevadm trigger --subsystem-match=block
+ /sbin/udevadm settle --timeout=10
+else
+ mdev -s
+fi
+
+# Load a custom keyboard mapping:
+if [ -n "$KEYMAP" ]; then
+ echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:"
+ tar xzOf /etc/keymaps.tar.gz ${KEYMAP}.bmap | loadkmap
+fi
+
+if [ "$RESCUE" = "" ]; then
+ # Initialize RAID:
+ if [ -x /sbin/mdadm ]; then
+ /sbin/mdadm -E -s >/etc/mdadm.conf
+ /sbin/mdadm -A -s
+ fi
+
+ # Find root device if a label was given:
+ if echo $ROOTDEV | grep -q "LABEL=" ; then
+ ROOTDEV=`findfs $ROOTDEV`
+ fi
+
+ # Make encrypted root partition available:
+ # The useable device will be under /dev/mapper/
+ # Three scenarios for the commandline exist:
+ # 1- ROOTDEV is on a LUKS volume, and LUKSDEV is a real block device
+ # 2- ROOTDEV is on a LVM volume, and LUKSDEV is a real block device
+ # 3- ROOTDEV is on a LUKS volume, and LUKSDEV is on a LVM volume
+ # Case (3) will have to wait until we initialize the LVM.
+ # Test if ROOTDEV is "/dev/someting" or just "something" - the first means
+ # ROOTDEV is on a LVM volume (scenario 2); we don't need to rewrite ROOTDEV.
+ # The second means that ROOTDEV is on a LUKS volume (scenario 1).
+ CRYPTDEV=""
+ if [ -x /sbin/cryptsetup ]; then
+ # If we find a LUKS device now, it is on a real block device:
+ if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then
+ CRYPTDEV=$(basename $ROOTDEV)
+ echo "Unlocking LUKS crypt volume '${CRYPTDEV}' on device '$LUKSDEV':"
+ /sbin/cryptsetup luksOpen ${LUKSDEV} $CRYPTDEV </dev/systty >/dev/systty 2>&1
+ if [ "$CRYPTDEV" == "$ROOTDEV" ]; then # scenario 1
+ ROOTDEV="/dev/mapper/${CRYPTDEV}"
+ fi
+ fi
+ fi
+
+ # Initialize LVM:
+ if [ -x /sbin/vgscan ]; then
+ /sbin/vgscan --mknodes --ignorelockingfailure
+ sleep 10
+ /sbin/vgchange -ay --ignorelockingfailure
+ fi
+
+ # Make encrypted root partition available (scenario 3):
+ # We have to handle cases here where the LUKS volume is created on a LV
+ if [ -x /sbin/cryptsetup ]; then
+ if /sbin/cryptsetup isLuks ${LUKSDEV} 1>/dev/null 2>/dev/null ; then
+ # Only act if we could not open the LUKS device before (i.e. is on a LV):
+ if [ "x$CRYPTDEV" == "x" ]; then
+ echo "Unlocking LUKS crypt volume '${ROOTDEV}' on device '$LUKSDEV':"
+ /sbin/cryptsetup luksOpen ${LUKSDEV} $ROOTDEV </dev/systty >/dev/systty 2>&1
+ ROOTDEV="/dev/mapper/${ROOTDEV}"
+ fi
+ fi
+ fi
+
+ # Resume state from swap
+ if [ "$RESUMEDEV" != "" ]; then
+ if ls -l $RESUMEDEV | grep -q "^l" ; then
+ RESUMEDEV=`ls -l $RESUMEDEV | awk '{ print $NF }'`
+ fi
+ echo "Trying to resume from $RESUMEDEV"
+ RESMAJMIN=`ls -l $RESUMEDEV | tr , : | awk '{ print $5$6 }'`
+ echo $RESMAJMIN > /sys/power/resume
+ fi
+
+ # Switch to real root partition:
+ echo 0x0100 > /proc/sys/kernel/real-root-dev
+ mount -o ro -t $ROOTFS $ROOTDEV /mnt
+
+ if [ ! -r /mnt/sbin/init ]; then
+ echo "ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead."
+ echo " You can try to fix it. Type 'exit' when things are done."
+ echo
+ /bin/sh
+ fi
+else
+ echo "RESCUE mode"
+ echo
+ echo " You can try to fix or rescue your system now. If you want"
+ echo " to boot into your fixed system, mount your root filesystem"
+ echo " read-only under /mnt:"
+ echo
+ echo " # mount -o ro -t filesystem root_device /mnt"
+ echo
+ echo " Type 'exit' when things are done."
+ echo
+ /bin/sh
+fi
+
+if ps axc | grep -q udevd ; then
+ killall udevd
+fi
+
+unset ERR
+umount /proc
+umount /sys
+echo "${INITRD}: exiting"
+exec switch_root /mnt /sbin/init $RUNLEVEL
diff --git a/source/a/mkinitrd/mkinitrd b/source/a/mkinitrd/mkinitrd
new file mode 100644
index 000000000..8f77725fe
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd
@@ -0,0 +1,494 @@
+#!/bin/sh
+# Copyright 2004 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2004 Patrick J. Volkerding, Concord, CA, USA
+# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified by Robby Workman <rworkman@slackware.com> 26 November 2007
+# to add support for mkinitrd.conf - No additional license terms added
+# Modified by Alan Hicks <alan@slackware.com> 27 November 2007 to enable
+# passing arguments to kernel modules - No additional license terms added
+# volkerdi - feel free to remove these :)
+# Modified by Eric Hameleers <alien@slackware.com> 3 April 2008
+# to add support custom keymaps - No additional license terms added
+# Modified by Patrick Volkerding <volkerdi@slackware.com> 17 Dec 2008
+# Added support to bail out if kernel modules are requested for a kernel
+# version that is not installed (thanks to Eric Hameleers), be more
+# verbose about showing modules added to the initrd (thanks to
+# Ellington Santos), and if "mount" returns /dev/root as the root device,
+# use readlink to resolve the device pointed to by the /dev/root
+# symlink, changed modprobe to use --ignore-install to avoid catching
+# custom "install" lines and causing /sbin/modprobe to be copied to the
+# initrd (thanks to Ken Milmore).
+# Of course, license terms remain unchanged.
+
+MKINITRD_VERSION=1.3.4
+
+print_usage() {
+ cat << EOF
+Usage: mkinitrd [OPTION]
+
+mkinitrd creates an initial ramdisk (actually an initramfs cpio+gzip
+archive) used to load kernel modules that are needed to mount the
+root filesystem, or other modules that might be needed before the
+root filesystem is available. Other binaries may be added to the
+initrd, and the script is easy to modify. Be creative. :-)
+
+ -F Use the contents of /etc/mkinitrd.conf (optional)
+ If this is used in conjunction with any other options passed
+ on the command line, the command-line options will override
+ the config file options. See mkinitrd.conf(5) for details.
+ -c Clear the existing initrd tree first
+ -f Filesystem to use for root partition (must be used with -r)
+ --help Display this message
+ -h Device to resume from hibernation. Needs to be the name of
+ the swap partition holding the hibernation image.
+ -k Kernel version to use
+ -l Custom keymap to load. Like, 'nl' or 'de-latin1-nodeadkeys'
+ -m A colon (:) delimited list of kernel modules to load.
+ Additional options may be added to use when loading the
+ kernel modules (but in this case the entire list must be
+ wrapped with double quotes). Any dependencies of requested
+ modules will also be added to the initrd.
+ -o Output image (default /boot/initrd.gz)
+ -r Root partition device (must be used with -f)
+ -s Initrd source tree (default /boot/initrd-tree/)
+ -w Time to wait until all disks are detected
+ -C Use cryptsetup to unlock the underlying device of an
+ encrypted root filesystem (must be used with '-r' parameter).
+ Two scenarios are possible. (1) root filesystem was created on the
+ encrypted disk/LVM partition, example:
+ -C /dev/sda2 -r cryptroot
+ where /dev/sda2 is the encrypted partition and
+ the actual root device name in /etc/fstab is:
+ /dev/mapper/cryptroot
+ (2) the encrypted partition contains a LVM volume which holds the
+ root filesystem, example:
+ -C /dev/sda2 -r /dev/vg/root
+ where /dev/sda2 is the encrypted partition and
+ the actual root device name in /etc/fstab is:
+ /dev/vg/root
+ -L Add support for LVM partitions
+ -R Add support for RAID partitions
+ -V Display version number
+
+A simple example: Build an initrd for a reiserfs root partition:
+
+ mkinitrd -c -m reiserfs
+
+Another example: Build an initrd image using Linux 2.6.29.3-smp kernel
+modules for a system with an ext3 root partition on /dev/hdb3:
+
+ mkinitrd -c -k 2.6.29.3-smp -m mbcache:jbd:ext3 -f ext3 -r /dev/hdb3
+
+Note that if you are already logged in with /dev/hdb3 as your /
+partition, and it is running ext3, this command works just the same:
+
+ mkinitrd -c -m ext3
+
+If run without options, mkinitrd will rebuild an initrd image using
+the contents of the $SOURCE_TREE directory, or, if that directory
+does not exist it will be created and populated, and then mkinitrd
+will exit.
+
+EOF
+}
+
+create_new_source_tree() {
+ mkdir -p $SOURCE_TREE
+ # Make sure a kernel module directory exists:
+ mkdir -p $SOURCE_TREE/lib/modules/${KERNEL_VERSION}
+ # Add the initrd-tree skeleton:
+ ( cd $SOURCE_TREE ; tar xzf /usr/share/mkinitrd/initrd-tree.tar.gz )
+ # Make sure we have any block devices that might be needed:
+
+ SLOPPY_DEV_LIST=$(cat /proc/partitions)
+ for device in $SLOPPY_DEV_LIST ; do
+ if [ ! -r $SOURCE_TREE/dev/$device ]; then
+ if [ -b /dev/$device ]; then
+ if [ -L /dev/$device ]; then
+ cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE
+ fi
+ cp -a --parents /dev/$device $SOURCE_TREE
+ fi
+ fi
+ done
+}
+
+clear_source_tree() {
+ if [ -d "$SOURCE_TREE" ]; then
+ rm -rf $SOURCE_TREE
+ fi
+}
+
+build_initrd_image() {
+ # Make sure we have any block devices that might be needed:
+ SLOPPY_DEV_LIST=$(cat /proc/partitions)
+ for device in $SLOPPY_DEV_LIST ; do
+ if [ ! -r $SOURCE_TREE/dev/$device ]; then
+ if [ -b /dev/$device ]; then
+ if [ -L /dev/$device ]; then
+ cp -a --parents $(readlink -e /dev/$device) $SOURCE_TREE
+ fi
+ cp -a --parents /dev/$device $SOURCE_TREE
+ fi
+ fi
+ done
+ # Wrap the initrd as an initramfs image and move it into place:
+ ( cd $SOURCE_TREE
+ rm -f $OUTPUT_IMAGE
+ find . | cpio -o -H newc | gzip -9c > $OUTPUT_IMAGE
+ )
+}
+
+badconf_file() {
+ # This won't really help with what's *wrong* with the file,
+ # but it will at least give them a clue that there's a problem
+ echo "/etc/mkinitrd.conf is bad or does not exist."
+ echo "If the file does not exist, do not pass -F to mkinitrd."
+ exit 1
+}
+
+# If --help is given, print_usage and exit:
+if echo $* | grep -wq '\--help' ; then
+ print_usage
+ exit 0
+fi
+
+# If -V given, print version and exit:
+if echo $* | grep -wq '\-V' ; then
+ echo "mkinitrd version $MKINITRD_VERSION"
+ exit 0
+fi
+
+# Default values if these aren't previously set.
+# Might be set from config file or by -s and -o options too.
+SOURCE_TREE=${SOURCE_TREE:-/boot/initrd-tree}
+OUTPUT_IMAGE=${OUTPUT_IMAGE:-/boot/initrd.gz}
+KERNEL_VERSION=${KERNEL_VERSION:-"$(uname -r)"}
+
+# Default actions without options:
+if [ -z "$1" ]; then
+ # If the output tree doesn't exist, create it and then exit:
+ if [ ! -d $SOURCE_TREE ]; then
+ echo "Nothing found at location $SOURCE_TREE, so we will create an"
+ echo -n "initrd directory structure there... "
+ create_new_source_tree
+ echo "done."
+ echo
+ echo "Now cd to $SOURCE_TREE and install some modules in your"
+ echo "module directory (lib/modules/${KERNEL_VERSION}). Then see init"
+ echo "for more information (there are a few other files to edit)."
+ echo "Finally, run mkinitrd again once the initrd-tree is ready,"
+ echo "and $OUTPUT_IMAGE will be created from it."
+ echo
+ exit 0
+ else
+ # If the source tree does exist, the default is to build the initrd
+ # image from it and then exit:
+ build_initrd_image
+ echo "$OUTPUT_IMAGE created."
+ echo "Be sure to run lilo again if you use it."
+ exit 0
+ fi
+fi # default no-option actions
+
+# Parse for the use config file option first or else the other command
+# line options can not override /etc/mkinitrd.conf.
+for opt in "$@"; do
+ if [ $opt = "-F" ]; then
+ if [ -e /etc/mkinitrd.conf ]; then
+ . /etc/mkinitrd.conf || badconf_file
+ else
+ badconf_file
+ fi
+ fi
+done
+
+# Parse options:
+while [ ! -z "$1" ]; do
+ case $1 in
+ -c)
+ CLEAR_TREE=1
+ shift
+ ;;
+ -f)
+ ROOTFS="$2"
+ shift 2
+ ;;
+ -h)
+ RESUMEDEV="$2"
+ shift 2
+ ;;
+ -k)
+ KERNEL_VERSION="$2"
+ shift 2
+ ;;
+ -l)
+ KEYMAP="$2"
+ shift 2
+ ;;
+ -m)
+ MODULE_LIST="$2"
+ shift 2
+ ;;
+ -o)
+ OUTPUT_IMAGE="$2"
+ if [ ! "$(echo $OUTPUT_IMAGE | cut -b1)" = "/" ]; then
+ OUTPUT_IMAGE=$(pwd)/$OUTPUT_IMAGE
+ fi
+ shift 2
+ ;;
+ -r)
+ ROOTDEV="$2"
+ shift 2
+ ;;
+ -s)
+ SOURCE_TREE="$2"
+ shift 2
+ ;;
+ -w)
+ WAIT="$2"
+ shift 2
+ ;;
+ -C)
+ CRYPT=1
+ LUKSDEV="$2"
+ shift 2
+ ;;
+ -L)
+ LVM=1
+ shift
+ ;;
+ -R)
+ RAID=1
+ shift
+ ;;
+ *) # unknown, prevent infinite loop
+ shift
+ ;;
+ esac
+done
+
+# If kernel modules are needed but the kernel version is absent, exit now:
+if [ ! -d /lib/modules/$KERNEL_VERSION ]; then
+ echo "ERROR: No /lib/modules/$KERNEL_VERSION kernel modules tree found for kernel \"$KERNEL_VERSION\""
+ exit 1
+fi
+
+# If clearing source tree was requested, do that first
+if [ "$CLEAR_TREE" = "1" ]; then
+ clear_source_tree
+fi
+
+# If there's no $SOURCE_TREE, make one now:
+if [ ! -d "$SOURCE_TREE" ]; then
+ create_new_source_tree
+fi
+
+# If $ROOTDEV and $ROOTFS are not set, assume we want the
+# values for the currently mounted /
+# (unless we find that values are already set in the initrd-tree):
+if [ -z "$ROOTDEV" -a -z "$(cat $SOURCE_TREE/rootdev 2> /dev/null)" ]; then
+ ROOTDEV=$(mount | grep ' on / ' | cut -f 1 -d ' ')
+ if [ "$ROOTDEV" = "/dev/root" ]; then # find real root device
+ ROOTDEV="/dev/$(readlink /dev/root)"
+ fi
+fi
+if [ -z "$ROOTFS" -a -z "$(cat $SOURCE_TREE/rootfs 2> /dev/null)" ]; then
+ ROOTFS=$(mount | grep ' on / ' | cut -f 5 -d ' ')
+fi
+# If needed, write them in the initrd-tree:
+if [ ! -z "$ROOTDEV" ]; then
+ echo $ROOTDEV > $SOURCE_TREE/rootdev
+fi
+if [ ! -z "$ROOTFS" ]; then
+ echo $ROOTFS > $SOURCE_TREE/rootfs
+fi
+
+# If $WAIT is not set, assume we need only one second
+# to have all devices done
+# (unless we find that value is already set in the initrd-tree):
+if [ -z "$WAIT" -a -z "$(cat $SOURCE_TREE/wait-for-root)" ]; then
+ WAIT=1
+fi
+if [ ! -z "$WAIT" ]; then
+ echo $WAIT > $SOURCE_TREE/wait-for-root
+fi
+
+# Useful to know which initrd is running:
+INITRD_NAME=$(basename $OUTPUT_IMAGE)
+echo $INITRD_NAME > $SOURCE_TREE/initrd-name
+
+# Fill /resumedev with the swap partition holding the hibernation image
+if [ ! -z "$RESUMEDEV" ]; then
+ echo $RESUMEDEV > $SOURCE_TREE/resumedev
+fi
+
+# Add custom keymap support if one was given
+if [ ! -z "$KEYMAP" ]; then
+ echo $KEYMAP > $SOURCE_TREE/keymap
+ cp /usr/share/mkinitrd/keymaps.tar.gz $SOURCE_TREE/etc/
+fi
+
+# If LUKSDEV was set in the config file, then we need to set CRYPT=1
+if [ ! -z "$LUKSDEV" ]; then
+ CRYPT=1
+fi
+
+# Include RAID support in initrd
+if [ ! -z "$RAID" ]; then
+ if [ -r /sbin/mdadm ]; then
+ mkdir -p $SOURCE_TREE/sbin
+ cp /sbin/mdadm $SOURCE_TREE/sbin/mdadm
+ chmod 755 $SOURCE_TREE/sbin/mdadm
+ else
+ echo "ERROR: mdadm binary is missing, RAID support not installed"
+ fi
+fi
+
+# Include LVM support in initrd
+if [ ! -z "$LVM" ]; then
+ if [ -f /sbin/lvm.static ]; then
+ mkdir -p $SOURCE_TREE/sbin
+ cp /sbin/lvm.static $SOURCE_TREE/sbin/lvm.static
+ cp /sbin/dmsetup.static $SOURCE_TREE/sbin/dmsetup.static
+ ( cd $SOURCE_TREE/sbin
+ ln -s lvm.static vgchange 2>/dev/null
+ ln -s lvm.static vgscan 2>/dev/null )
+ if [ -z "${MODULE_LIST}" ] ; then
+ MODULE_LIST="dm-mod"
+ elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then
+ MODULE_LIST="$MODULE_LIST:dm-mod"
+ fi
+ else
+ echo "LVM static binary is missing, LVM support isn't installed"
+ fi
+fi
+
+# Include cryptsetup (LUKS) support in initrd
+if [ ! -z "$CRYPT" ]; then
+ if [ -e /sbin/cryptsetup.static ]; then
+ mkdir -p $SOURCE_TREE/sbin
+ cp /sbin/cryptsetup.static $SOURCE_TREE/sbin/cryptsetup.static
+ ( cd $SOURCE_TREE/sbin
+ ln -s cryptsetup.static cryptsetup 2>/dev/null
+ )
+ cat << EOF > $SOURCE_TREE/sbin/udevadm
+#!/bin/sh
+sleep 3
+EOF
+ chmod 0755 $SOURCE_TREE/sbin/udevadm
+
+ if [ -z "${MODULE_LIST}" ] ; then
+ MODULE_LIST="dm-mod"
+ elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then
+ MODULE_LIST="$MODULE_LIST:dm-mod"
+ fi
+ # Write the underlying luks device to the initrd-tree:
+ echo $LUKSDEV > $SOURCE_TREE/luksdev
+ else
+ echo "Cryptsetup static binary is missing, CRYPT support isn't installed"
+ fi
+fi
+
+# Make module directory:
+if [ ! -d $SOURCE_TREE/lib/modules/$KERNEL_VERSION ]; then
+ mkdir -p $SOURCE_TREE/lib/modules/$KERNEL_VERSION
+fi
+
+# If a module list was given, copy the modules into place:
+if [ ! -z "$MODULE_LIST" ]; then
+ if grep -q "#insmod /lib/modules/2.6.18.8-smp/reiserfs.ko" $SOURCE_TREE/load_kernel_modules ; then
+ rm -f $SOURCE_TREE/load_kernel_modules
+ touch $SOURCE_TREE/load_kernel_modules
+ chmod 755 $SOURCE_TREE/load_kernel_modules
+ echo "# This is a script used to load the kernel modules." >> $SOURCE_TREE/load_kernel_modules
+ echo "# To use it, chmod it 755, and then add the insmod" >> $SOURCE_TREE/load_kernel_modules
+ echo "# lines needed to load your modules, like this:" >> $SOURCE_TREE/load_kernel_modules
+ echo >> $SOURCE_TREE/load_kernel_modules
+ fi
+
+ # Count number of modules
+ # This INDEX number gives us an easy way to find individual
+ # modules and their arguments, as well as tells us how many
+ # times to run through the list
+ if ! echo $MODULE_LIST | grep ':' > /dev/null ; then # only 1 module specified
+ INDEX=1
+ else
+ INDEX=1
+ while [ ! "$(echo "$MODULE_LIST" | cut -f $INDEX -d ':' )" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # Don't include the null value
+ fi
+
+# Wrap everything in a while loop
+i=0
+while [ $i -ne $INDEX ]; do
+ i=$(( $i + 1 ))
+
+ # FULL_MOD is the module plus any arguments (if any)
+ # MODULE is the module name
+ # ARGS is any optional arguments to be passed to the kernel
+ FULL_MOD="$(echo "$MODULE_LIST" | cut -d ':' -f $i)"
+ MODULE="$(echo "$FULL_MOD" | cut -d ' ' -f 1 )"
+ # Test for arguments
+ if echo "$FULL_MOD" | grep ' ' > /dev/null; then
+ ARGS=" $(echo "$FULL_MOD" | cut -d ' ' -f 2- )"
+ else
+ unset ARGS
+ fi
+
+ # Get MODULE deps and prepare insmod lines
+ /sbin/modprobe --set-version $KERNEL_VERSION --show-depends --ignore-install $MODULE 2> /dev/null \
+ | grep "^insmod " | cut -f 2 -d ' ' | while read SRCMOD; do
+
+ if ! grep -q "$SRCMOD" $SOURCE_TREE/load_kernel_modules 2>/dev/null ; then
+ LINE="$(echo "insmod -v $SRCMOD" | sed -e "s/$KERNEL_VERSION/\$(uname -r)/")"
+
+ # Test to see if arguments should be passed
+ # Over-ride the previously defined LINE variable if so
+ if [ "$(basename $SRCMOD .ko)" = "$MODULE" ]; then
+ # SRCMOD and MODULE are same, ARGS can be passed
+ LINE="$LINE$ARGS"
+ fi
+
+ fi
+
+ if ! grep -qx "$LINE" $SOURCE_TREE/load_kernel_modules ; then
+ echo "$LINE" >> $SOURCE_TREE/load_kernel_modules
+ fi
+
+ if cp -a --parents $SRCMOD $SOURCE_TREE 2> /dev/null; then
+ echo "OK: $SRCMOD added."
+ else
+ echo "WARNING: Could not find module \"$SRCMOD\""
+ fi
+
+ done
+
+done
+
+fi
+
+# And finally, build the initrd:
+build_initrd_image
+
diff --git a/source/a/mkinitrd/mkinitrd.8 b/source/a/mkinitrd/mkinitrd.8
new file mode 100644
index 000000000..5fa957218
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd.8
@@ -0,0 +1,194 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH MKINITRD 8 "04 March 2008" "Slackware Version 12.1"
+.SH NAME
+mkinitrd \- create or rebuilt an initrd (initial ramdisk) using initramfs (simple cpio+gzip).
+.SH SYNOPSIS
+.B mkinitrd
+[
+.B \-F
+]
+[
+.B \-c
+]
+[
+.B \-f filesystem
+]
+[
+.B \-h hibernate_partition
+]
+[
+.B \-k kernel_version
+]
+[
+.B \-m module1:module2:module3...
+]
+[
+.B \-o output_file
+]
+[
+.B \-r root_device
+]
+[
+.B \-s source_tree
+]
+[
+.B \-C crypt_device
+]
+[
+.B \-L
+]
+[
+.B \-R
+]
+[
+.B \-V
+]
+.SH DESCRIPTION
+.B mkinitrd
+is used to build an initial ramdisk. An initial ramdisk is a very small
+set of files that are loaded into RAM and "mounted" (as initramfs doesn't
+actually use a filesystem) as the kernel boots (before the main root
+filesystem is mounted). The usual reason to use an initrd is because
+you need to load kernel modules before mounting the root partition.
+Usually these modules are required to support the filesystem used by the
+root partition (ext3, reiserfs, xfs), or perhaps the controller that the
+hard drive is attached to (SCSI, RAID, etc). Essentially, there are so many
+different options available in modern Linux kernels that it isn't practical
+to try to ship many different kernels to try to cover everyone's needs.
+It's a lot more flexible to ship a generic kernel and a set of kernel
+modules for it.
+.SH OPTIONS
+.TP
+.B \-F
+Use the contents of /etc/mkinitrd.conf as options to mkinitrd (optional).
+If this is used in conjunction with any other options passed on the command
+line, the command-line options will override the config file options.
+.br
+See mkinitrd.conf(5) for details.
+.TP
+.B \-c
+Clear the existing initrd tree (by default in /boot/initrd-tree/) first.
+If this is not done, running mkinitrd will add additional modules to the
+existing initrd.
+.TP
+.B \-f filesystem
+Specify the filesystem to use for the root partition. If this isn't given,
+mount will usually figure it out. This option must be used together with the
+\-r option in order to be beneficial.
+.TP
+.B \--help
+Display a help summary.
+.TP
+.B \-h hibernate_partition
+Specify the swap partition holding the hibernation image.
+.TP
+.B \-k kernel version
+Use kernel modules from the specified kernel version. mkinitrd will look
+for them in /lib/modules/(kernel version).
+.TP
+.B \-l keymap
+Load an alternative keyboard mapping. All supported keyboard mappings
+can be found in /usr/share/mkinitrd/keymaps.tar.gz
+Leave the '.bmap' out when you supply this parameter. E.g. '-l nl' will
+add support for dutch keyboard mapping to the initrd.
+.TP
+.B \-m module list
+This is a list of colon-delimited modules to build into the initrd.
+Any dependencies of requested modules will also be added to the initrd.
+Additional options may be added to use when loading the kernel modules
+(but in this case the entire list must be wrapped with double quotes).
+.TP
+.B \-o output image
+The file to write the initrd to. (default: /boot/initrd.gz)
+.TP
+.B \-r root partition
+Specify the device to be used as the root partition. If this isn't given, the
+kernel default will be used (which is usually fine). This option must be used
+together with the \-f option in order to be beneficial.
+.TP
+.B \-s source tree
+The directory to use as the source for the initrd. (default: /boot/initrd-tree/)
+.TP
+.B \-w
+The -w option specifies how long to wait in seconds before assuming that all the
+drives are spun up and ready to go.
+.TP
+.B \-C
+Use cryptsetup to enable the underlying device of an encrypted root partition.
+Requires '-r' parameter. Two scenarios are possible.
+.br
+(1) root filesystem was created on the encrypted disk/LVM partition, example:
+
+ -C /dev/sda2 -r cryptroot
+
+where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is:
+
+ /dev/mapper/cryptroot
+
+(2) the encrypted partition contains a LVM volume which holds the root filesystem, example:
+
+ -C /dev/sda2 -r /dev/vg/root
+
+where /dev/sda2 is the encrypted partition and the actual root device name in /etc/fstab is:
+
+ /dev/vg/root
+.TP
+.B \-L
+This option adds LVM support to the initrd, if the tools are
+available on the system.
+.TP
+.B \-R
+This option adds RAID support to the initrd, if a static mdadm binary is
+available on the system.
+.TP
+.B \-V
+Display version information and exit.
+.SH EXAMPLES
+A simple example: Build an initrd for a reiserfs root partition:
+
+ mkinitrd -c -m reiserfs
+
+Another example: Build an initrd image using Linux 2.6.24.5 kernel
+modules for a system with an ext3 root partition on /dev/hdb3:
+
+ mkinitrd -c -k 2.6.24.5 -m ext3 -f ext3 -r /dev/hdb3
+
+If run without options, mkinitrd will rebuild an initrd image using
+the contents of the $SOURCE_TREE directory, or, if that directory
+does not exist it will be created and populated, and then mkinitrd
+will exit. These options are handy for building an initrd mostly
+by hand. After creating /boot/initrd-tree/, you can add modules and
+edit files by hand, and then rerun mkinitrd to create the initrd.
+
+Once the initrd is created, you'll need to tell your boot loader
+to load it. If you boot with LILO, you will need to add an initrd
+line to /etc/lilo.conf. Here's a section of lilo.conf that shows
+how to set this up:
+
+ # Linux bootable partition config begins
+ image = /boot/vmlinuz-generic-2.6.24.5
+ initrd = /boot/initrd.gz
+ root = /dev/hda6
+ label = Linux26245
+ read-only
+ # Linux bootable partition config ends
+
+Once you've created the initrd and editing /etc/lilo.conf, you will
+need to run 'lilo' to write out the changed boot block. The next
+time you reboot the initrd should be loaded along with the kernel.
+
+Have fun!
+
+.SH SEE ALSO
+mkinitrd.conf (5)
+
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild
new file mode 100755
index 000000000..10e70b997
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd.SlackBuild
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+# Copyright 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.3.4
+BB=1.12.1
+ARCH=${ARCH:-x86_64}
+NUMJOBS=${NUMJOBS:--j7}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mkinitrd
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf busybox-$BB
+tar xvf $CWD/busybox-$BB.tar.bz2 || exit 1
+cd busybox-$BB
+
+#zcat $CWD/busybox-${BB}.remove_warning.diff.gz | patch -p1 --verbose || exit 1
+#zcat $CWD/busybox-${BB}.no-gc-sections.diff.gz | patch -p1 --verbose || exit 1
+# Needed with 2.6.27 kernel:
+zcat $CWD/busybox-1.12.1_inotify.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+sed -e \
+ 's#^CONFIG_PREFIX=.*#CONFIG_PREFIX="'$PKG'/usr/share/mkinitrd/initrd-tree"#' \
+ $CWD/busybox-dot-config > .config
+make oldconfig
+make $NUMJOBS || make || exit 1
+
+mkdir -p $PKG/usr/share/mkinitrd/initrd-tree/{bin,sbin}
+make install || exit 1
+rm -f $PKG/usr/share/mkinitrd/initrd-tree/linuxrc
+
+# Copying additional files:
+cp $CWD/mkinitrd_command_generator.sh $PKG/usr/share/mkinitrd
+chmod 755 $PKG/usr/share/mkinitrd/mkinitrd_command_generator.sh
+cp $CWD/keymaps.tar.gz $PKG/usr/share/mkinitrd
+
+# Zip up the initrd-tree:
+( cd $PKG/usr/share/mkinitrd/initrd-tree
+ tar xf $CWD/_initrd-tree.tar.gz
+ cat $CWD/init > init
+ tar czf ../initrd-tree.tar.gz .
+)
+rm -rf $PKG/usr/share/mkinitrd/initrd-tree
+
+# Add busybox docs:
+mkdir -p $PKG/usr/doc/busybox-$BB
+cp -a AUTHORS INSTALL LICENSE README \
+ $PKG/usr/doc/busybox-$BB
+
+mkdir -p $PKG/sbin
+cat $CWD/mkinitrd > $PKG/sbin/mkinitrd
+chmod 755 $PKG/sbin/mkinitrd
+
+mkdir -p $PKG/usr/man/man{5,8}
+cat $CWD/mkinitrd.8 | gzip -9c > $PKG/usr/man/man8/mkinitrd.8.gz
+cat $CWD/mkinitrd.conf.5 | gzip -9c > $PKG/usr/man/man5/mkinitrd.conf.5.gz
+
+mkdir -p $PKG/etc
+cat $CWD/mkinitrd.conf.sample > $PKG/etc/mkinitrd.conf.sample
+
+mkdir -p $PKG/usr/doc/mkinitrd-$VERSION
+cp -a $CWD/README.initrd $PKG/usr/doc/mkinitrd-$VERSION
+
+( cd $PKG/usr/doc/mkinitrd-$VERSION
+ DATE="$(date)"
+ KERNEL_VERSION="$(uname -r)"
+ PACKAGE_VERSION="$(uname -r | tr - _)"
+ LILO_KERNEL_NAME="$(echo $(uname -r) | tr -d . | tr -d - )"
+ cat README.initrd | sed -e s/@DATE@/"$DATE"/ > README.initrd1
+ cat README.initrd1 | sed -e s/@KERNEL_VERSION@/"$KERNEL_VERSION"/ > README.initrd2
+ cat README.initrd2 | sed -e s/@PACKAGE_VERSION@/"$PACKAGE_VERSION"/ > README.initrd3
+ cat README.initrd3 | sed -e s/@LILO_KERNEL_NAME@/"$LILO_KERNEL_NAME"/ > README.initrd4
+ cat README.initrd4 | sed -e s/@MKINITRD_VERSION@/"$VERSION"/ > README.initrd5
+ cat README.initrd5 | sed -e s/@ARCH@/"$ARCH"/ > README.initrd6
+ cat README.initrd6 | sed -e s/@BUILD@/"$BUILD"/ > README.initrd
+ rm -f README.initrd{1,2,3,4,5,6}
+)
+chmod 644 $PKG/usr/doc/mkinitrd-$VERSION/*
+chown root:root $PKG/usr/doc/mkinitrd-$VERSION/*
+
+mkdir $PKG/boot
+( cd $PKG/boot
+ ln -sf /usr/doc/mkinitrd-$VERSION/README.initrd .
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/mkinitrd-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/mkinitrd/mkinitrd.conf.5 b/source/a/mkinitrd/mkinitrd.conf.5
new file mode 100644
index 000000000..5890e2462
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd.conf.5
@@ -0,0 +1,174 @@
+.\" mkinitrd.5 Robby Workman <rworkman@slackware.com>
+.\" 25 November 2007 "
+
+.TH MKINITRD.CONF 5 "05 Februrary 2008" "Slackware 12.1"
+.SH NAME
+.B mkinitrd.conf(5)
+.SH SYNOPSIS
+.B mkinitrd.conf - optional configuration file for
+.I mkinitrd(8)
+
+.SH DESCRIPTION
+The
+.I mkinitrd.conf
+file contains options to be passed to
+.I mkinitrd(8)
+on every run if mkinitrd is executed with the -F flag.
+.br
+It is intended as a fast and easy way for the system administrator to
+pass options to mkinitrd without having to type them on each execution.
+
+Options passed to
+.I mkinitrd(8)
+on the command line will override any
+values set in the config file.
+
+.SH OPTIONS AND SYNTAX
+
+All options are in the format of OPTION="value"
+.br
+Unset variables have no effect.
+
+.TP 5
+.I SOURCE_TREE
+This is the location for the initrd's source tree.
+.br
+Defaults to "/boot/initrd-tree"
+
+.TP 5
+.I CLEAR_TREE
+This option specifies whether to clear the initrd source tree prior to
+creating the initrd.
+.br
+This requires a value of either "0" or "1" where 0=no and 1=yes
+.br
+Examples:
+.br
+CLEAR_TREE="0" # Do not clear initrd tree first
+.br
+CLEAR_TREE="1" # Clear initrd tree first
+
+It is recommended to leave this unset and pass "-c" on the command line
+when clearing the tree is desired. Clearing the tree is not desirable
+if you wish to build support for more than one kernel into the initrd
+image.
+
+.TP 5
+.I OUTPUT_IMAGE
+This is the location for the initrd image that is created.
+.br
+Defaults to "/boot/initrd.gz"
+
+.TP 5
+.I KERNEL_VERSION
+This is the kernel version for which the initrd should be created.
+.br
+Defaults to "$(uname -r)"
+
+.TP 5
+.I KEYMAP
+This is the custom keyboard map that should be loaded instead of the
+default 'us' keymap.
+.br
+The file /usr/share/mkinitrd/keymaps.tar.gz contains all possible keymaps
+to choose from (omit the '.bmap' extension in the mkinitrd command)
+.br
+Example: KEYMAP="nl"
+
+.TP 5
+.I MODULE_LIST
+This should be a colon-separated list of modules you wish to be included
+in the initrd image.
+.br
+Example: MODULE_LIST="ext3:mbcache:jbd"
+
+If you have loadtime options that you need to specify when loading kernel
+modules, those can be added here as well.
+.br
+Example: MODULE_LIST="module1:module2 option=1:module3"
+
+.TP 5
+.I LUKSDEV
+When using cryptsetup with an encrypted root partition, use this variable to
+define the *actual* device name of the encrypted root partition and define the
+*mapped* device name as ROOTDEV.
+.br
+For example, if your actual root device name in /etc/fstab is:
+.br
+.I /dev/mapper/cryptroot
+on
+.I /dev/sda2
+
+Then you'll need to set:
+.br
+LUKSDEV="/dev/sda2"
+.br
+ROOTDEV="cryptroot"
+
+.TP 5
+.I ROOTDEV
+The device on which your root filesystem is located.
+.br
+Example: ROOTDEV="/dev/sda2"
+
+If you are using cryptsetup and an encrypted root filesystem, be sure to
+read the option above for LUKSDEV or Bad Things will happen.
+
+.TP 5
+.I ROOTFS
+The filesystem type of your root filesystem
+.br
+Example: ROOTFS="ext3"
+
+.TP 5
+.I RAID
+This option adds the mdadm binary to the initrd to support RAID.
+Additional modules may be required, depending on your kernel
+configuration. If you wish to add LVM support to the initrd, then
+set this to 1; otherwise, leave it unset or set it to 0.
+.br
+Examples:
+.br
+RAID="0" # Do not add RAID support to initrd
+.br
+RAID="1" # Add RAID support to initrd
+
+.TP 5
+.I LVM
+This option adds support for LVM partitions into the initrd.
+If you wish to add LVM support to the initrd, then set this to 1;
+otherwise, leave it unset or set it to 0.
+.br
+Examples:
+.br
+LVM="0" # Do not add LVM support to initrd
+.br
+LVM="1" # Add LVM support to initrd
+
+.TP 5
+.I WAIT
+This defines the time to wait, in seconds, until all disks are detected.
+.br
+This is useful for allowing extra time that might be needed for slow usb disks or systems with large amounts of storage to become ready.
+.br
+If not defined, the default is 1 second.
+
+.TP 5
+.I RESUMEDEV
+The swap partition holding your hibernation image.
+.br
+Example: RESUMEDEV="/dev/sda2"
+
+.SH FILES
+.I /etc/mkinitrd.conf
+.br
+See /etc/mkinitrd.conf.sample
+
+.SH "SEE ALSO"
+.BR mkinitrd "(8)"
+
+.SH BUGS
+None known :-)
+
+.SH MISCELLANEOUS
+Support for mkinitrd.conf was added in mkinitrd-1.3.0
diff --git a/source/a/mkinitrd/mkinitrd.conf.sample b/source/a/mkinitrd/mkinitrd.conf.sample
new file mode 100644
index 000000000..29e56f5f0
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd.conf.sample
@@ -0,0 +1,16 @@
+# mkinitrd.conf.sample
+# See "man mkinitrd.conf" for details on the syntax of this file
+#
+#SOURCE_TREE="/boot/initrd-tree"
+#CLEAR_TREE="0"
+#OUTPUT_IMAGE="/boot/initrd.gz"
+#KERNEL_VERSION="$(uname -r)"
+#KEYMAP="us"
+#MODULE_LIST="ext3"
+#LUKSDEV="/dev/hda1"
+#ROOTDEV="/dev/hda1"
+#ROOTFS="ext3"
+#RESUMEDEV="/dev/hda2"
+#RAID="0"
+#LVM="0"
+#WAIT="1"
diff --git a/source/a/mkinitrd/mkinitrd_command_generator.sh b/source/a/mkinitrd/mkinitrd_command_generator.sh
new file mode 100644
index 000000000..d3cdfb731
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd_command_generator.sh
@@ -0,0 +1,842 @@
+#!/bin/sh
+# $Id: mkinitrd_command_generator.sh,v 1.40 2008/12/18 23:32:56 eha Exp eha $
+# Copyright 2008, 2009 by Eric Hameleers <alien@slackware.com>, Eindhoven, Netherlands
+# Copyright 2008, 2009 by PiterPUNK <piterpunk@slackware.com>, Sao Paulo, SP, Brazil
+# All rights reserved.
+#
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+# -----------------------------------------------------------------------------
+#
+# Create an initrd which fits the system.
+# Take into account the use of LVM/LUKS/RAID.
+# Find out about any hardware drivers the system may need in an initrd when
+# booting from a generic lightweight kernel.
+#
+# -----------------------------------------------------------------------------
+
+# The script's revision number will be displayed in the help text:
+REV=$( echo "$Revision: 1.40 $" | cut -d' ' -f2 )
+
+# Define some essential parameter values:
+USING_LVM=""
+USING_LUKS=""
+USING_RAID=""
+MLIST=""
+REALDEV="" # The device that contains the LUKS volume
+BASEDEV="" # Lowest level device (raw block device or RAID volume)
+
+FSTAB=${FSTAB:-"/etc/fstab"} # so we can test with alternate fstab files
+
+# These are needed by -c and -i options:
+SOURCE_TREE=${SOURCE_TREE:-"/boot/initrd-tree"}
+CLEAR_TREE=${CLEAR_TREE:-1}
+KEYMAP=${KEYMAP:-"us"}
+WAIT=${WAIT:-1}
+
+# A basic explanation of the commandline parameters:
+basic_usage() {
+ cat <<-EOT
+
+ *** $(basename $0) revision $REV ***
+ Usage:
+ $(basename $0) [ options ] [ kernel_filename ]
+ Options:
+ -a <"additional params"> Additional parameters to pass to mkinitrd.
+ -c | --conf Show a suitable mkinitrd configuration file.
+ -h | --help Show this help.
+ -i | --interactive Navigate through menus instead of using
+ commandline arguments.
+ --longhelp Show more detailed information/examples.
+ -k <kernelversion> Use specific kernel version.
+ -m <"additional mods"> Additional modules to pass to mkinitrd,
+ separated by colons (:).
+ -l | --lilo Only show lilo.conf section
+ (requires a kernel_filename).
+ -r | --run Only show 'mkinitrd' command.
+ EOT
+}
+
+# More of a tutorial here:
+extended_usage() {
+ cat <<-EOT
+
+ This script is useful in situations where you require an initrd image
+ to boot your computer.
+ For instance, when booting a kernel that does not have support for your
+ storage or root filesystem built in (such as the Slackware 'generic'
+ kernels').
+
+ * When you run the script without parameters, it will examine your
+ running system, your current kernel version and will output an example
+ of a 'mkinitrd' commandline that you can use to generate an initrd
+ image containing enough driver support to boot the computer.
+
+ * You can make it more specific: when you add the filename of a kernel
+ as parameter to the script, it will determine the kernel version from
+ that kernel, and also give an example of the lines that you should add
+ to your '/etc/lilo.conf' file.
+
+ * If you want your initrd image to have a custom name instead of the
+ default '/boot/initrd.gz' you can add it as another parameter to the
+ script, as follows:
+
+ $(basename $0) -a "-o /boot/custom.gz"
+
+ The arguments to the '-a' parameter will be used as additional arguments
+ to the 'mkinitrd' command.
+
+ * If you need additional modules in the initrd image, apart from what
+ the script determines, you can pass then to the script using the '-m'
+ parameter as follows:
+
+ $(basename $0) -m "uhci-hcd:usbhid"
+
+ The above example adds support for USB keyboards to the initrd - you
+ may need that if you have encrypted your root partition and need to
+ enter a passphrase using a USB keyboard.
+
+ * Instead of copying and pasting the script's output, you can create
+ an initrd by directly executing the output, like in this example:
+
+ EOT
+
+ echo " \$($(basename $0) --run /boot/vmlinuz-generic-smp-2.6.24.5-smp)"
+
+ cat <<-EOT
+
+ That used the '-r' or '--run' switch to make the script only write
+ the 'mkinitrd' commandline to the terminal.
+
+ * When you want to add a section for a specific kernel to
+ '/etc/lilo.conf' directly, use the '-l' or '--lilo' switch and use a
+ command like in this example:
+
+ EOT
+
+ echo " $(basename $0) --lilo /boot/vmlinuz-generic-smp-2.6.24.5-smp >>/etc/lilo.conf"
+
+ cat <<-EOT
+
+ That command will result in the following lines being added to your
+ '/etc/lilo.conf' file (example for my hardware):
+
+ # Linux bootable partition config begins
+ # initrd created with 'mkinitrd -c -k 2.6.24.5-smp -m ata_generic:pata_amd:mbcache:jbd:ext3 -f ext3 -r /dev/hda7'
+ image = /boot/vmlinuz-generic-smp-2.6.24.5-smp
+ initrd = /boot/initrd.gz
+ root = /dev/hda7
+ label = 2.6.24.5-smp
+ read-only
+ # Linux bootable partition config ends
+
+ The last two examples show how easy it is to configure your computer
+ for the use of an initrd if you need one. The only thing left to do
+ afterwards is running 'lilo'.
+
+ EOT
+}
+
+# Find the device that holds the root partition:
+get_root_device() {
+ if [ -e $FSTAB ]; then
+ RD=$(cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f1 -d' ')
+ if [ "$(echo $RD | cut -f1 -d=)" = "LABEL" -o "$(echo $RD | cut -f1 -d=)" = "UUID" ]; then
+ DKEY=$(echo $RD | cut -f1 -d=)
+ # The value can be LABEL=foo or LABEL='foo' or LABEL="foo"
+ DVAL=$(echo $RD | cut -f2 -d= | tr -d "'\042")
+ RD=$(/sbin/blkid | grep -w $DKEY | grep -w $DVAL | cut -f1 -d:)
+ fi
+ else
+ RD=$(grep -m1 "^/dev/.*[[:blank:]]/[[:blank:]]" /proc/mounts | cut -f1 -d' ')
+ fi
+ echo $RD
+}
+
+# Get the root fs information:
+get_rootfs_type() {
+ if $(type vol_id 1>/dev/null 2>&1) ; then
+ vol_id $ROOTDEV | grep ID_FS_TYPE | cut -f2 -d=
+ else
+ # Alternatively, use:
+ cat $FSTAB | tr '\t' ' ' | tr -s ' ' | grep ' / ' | cut -f3 -d' '
+ fi
+}
+
+# Add the module(s) needed for the root filesystem:
+add_rootfs_module() {
+ local FSMOD
+ FSMOD=$(/sbin/modprobe --set-version $KVER --show-depends ${ROOTFS} 2>/dev/null | while read LINE; do
+ echo $(basename $(echo $LINE | cut -d' ' -f2) .ko )
+ done)
+ if [ -n "$FSMOD" ]; then
+ [ -n "$MLIST" ] && echo "$MLIST:$(echo $FSMOD | tr ' ' ':')" \
+ || echo $FSMOD | tr ' ' ':'
+ fi
+}
+
+# Determine the list of kernel modules needed to support the root device:
+determine_blockdev_drivers() {
+ # Walk the /sys tree to find kernel modules that are
+ # required for our storage devices.
+ # Thanks to PiterPUNK for this piece of code.
+ local MLIST
+ MLIST=$(for i in $(find /sys/block -name "device" -exec ls -l {} \; | sed -ne 's:.*/\(devices.*\)/[a-zA-Z]\+[.0-9]\+/.*:/sys/\1:p' | sort -u); do
+ for j in $(find $i -name "modalias"); do
+ /sbin/modprobe --set-version $KVER --show-depends $(cat $j) 2>/dev/null | while read LINE ; do
+ echo $(basename $(echo $LINE | cut -d' ' -f2) .ko )
+ done
+ done
+ done)
+ MLIST=$( echo $MLIST | tr ' ' ':' )
+ echo $MLIST
+}
+
+# Search for USB keyboards:
+function add_usb_keyboard() {
+ local USBMOD
+ if cat /proc/bus/input/devices | sed -e 's/^$/\$/g' | \
+ tr "\n$" " \n" | grep -q " Phys=.*usb.* .*Handlers=.*kbd.*B:"; then
+ USBMOD="usbhid"
+ [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \
+ || MLIST="$USBMOD"
+ fi
+ echo $MLIST
+}
+
+# Determine what USB Host Controller is in use
+function add_usb_hcd() {
+ local USBMOD
+ for i in `ls -Ld /sys/module/*_hcd/drivers/*`; do
+ if ls -L $i | grep -q "[0-9a-f]*:" ; then
+ USBMOD=$( echo $i | cut -f4 -d/ | tr "_" "-")
+ [ -n "$MLIST" ] && MLIST="$MLIST:$USBMOD" \
+ || MLIST="$USBMOD"
+ fi
+ done
+ echo $MLIST
+}
+
+# Is the root partition on a (combination of) LVM/LUKS volume?
+check_luks_lvm_raid() {
+ if $( lvdisplay -c $ROOTDEV 1>/dev/null 2>/dev/null ); then
+ # Our root partition is on a LV:
+ USING_LVM=1
+ # Search the Physical Volume of our Logical Volume:
+ MYVG=$( echo $(lvdisplay -c $ROOTDEV) | cut -d: -f2 )
+ for LINE in $(pvdisplay -c) ; do
+ VG=$(echo $LINE | cut -d: -f2)
+ [ "$VG" = "$MYVG" ] && break
+ done
+ PV=$(echo $LINE | cut -d: -f1)
+ # Check if there is a LUKS device underneath:
+ if $( cryptsetup status $PV 1>/dev/null 2>/dev/null ) ; then
+ # Our root partition's LV is on a LUKS volume:
+ USING_LUKS=1
+ REALDEV=$( cryptsetup status $PV | grep 'device: ' | tr -d ' ' | cut -d: -f2 )
+ BASEDEV=$REALDEV
+ else
+ BASEDEV=$PV
+ fi
+ elif $( cryptsetup status $ROOTDEV 1>/dev/null 2>/dev/null ) ; then
+ # Our root device is on a LUKS volume:
+ USING_LUKS=1
+ REALDEV=$( cryptsetup status $ROOTDEV | grep 'device: ' | tr -d ' ' | cut -d: -f2 )
+ ROOTDEV=$(basename $ROOTDEV)
+ # Check for LVM:
+ for LV in $(lvdisplay -c | tr -d ' ' | cut -f1 -d:) ; do
+ # Note: cryptsetup shows the real device, whereas
+ # lvdisplay requires the /dev/<myvg>/... symlink to the real device.
+ if [ "$(readlink $LV)" = "$REALDEV" ]; then
+ REALDEV=$LV
+ break
+ fi
+ done
+ if $( lvdisplay -c $REALDEV 1>/dev/null 2>/dev/null ); then
+ # Our root partition's LUKS device is on a LV:
+ USING_LVM=1
+ # Search the Physical Volume of our Logical Volume:
+ MYVG=$( echo $(lvdisplay -c $REALDEV) | cut -d: -f2 )
+ for LINE in $(pvdisplay -c) ; do
+ VG=$(echo $LINE | cut -d: -f2)
+ [ "$VG" = "$MYVG" ] && break
+ done
+ PV=$(echo $LINE | cut -d: -f1)
+ BASEDEV=$PV
+ else
+ BASEDEV=$REALDEV
+ fi
+ else
+ BASEDEV=$ROOTDEV
+ fi
+
+ # Finally, we should check if base device is
+ # a real block device or a RAID volume:
+ for MD in $(cat /proc/mdstat | grep -w active | cut -d' ' -f1) ; do
+ if [ "$BASEDEV" = "/dev/$MD" ]; then
+ USING_RAID=1
+ break
+ fi
+ done
+}
+
+# Before we start
+[ -x /bin/id ] && CMD_ID="/bin/id" || CMD_ID="/usr/bin/id"
+if [ "$($CMD_ID -u)" != "0" ]; then
+ echo "You need to be root to run $(basename $0)."
+ exit 1
+fi
+
+# Parse the commandline parameters:
+while [ ! -z "$1" ]; do
+ case $1 in
+ --longhelp)
+ basic_usage
+ extended_usage
+ exit 0
+ ;;
+ -a)
+ MKINIT_PARAMS=$2
+ shift 2
+ ;;
+ -c|--conf)
+ [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; }
+ EMIT="conf"
+ shift
+ ;;
+ -h|--help)
+ basic_usage
+ exit 0
+ ;;
+ -i|--interactive)
+ INTERACTIVE=1
+ shift
+ ;;
+ -k)
+ KVER=$2
+ shift 2
+ ;;
+ -m)
+ MKINIT_MODS=$2
+ shift 2
+ ;;
+ -l|--lilo)
+ [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; }
+ EMIT="lilo"
+ shift
+ ;;
+ -L|--fromlilo)
+ FROMLILO=1
+ shift
+ ;;
+ -r|--run)
+ [ -n "$EMIT" ] && { echo "Do not mix incompatible parameters!"; exit 1; }
+ EMIT="run"
+ shift
+ ;;
+ -R|--rootdev)
+ ROOTDEV=$2
+ shift 2
+ ;;
+ -*)
+ echo "Unsupported parameter '$1'!"
+ exit 1
+ ;;
+ *) # Everything else but switches (which start with '-') follows:
+ if [ -f $1 ]; then
+ KFILE=$1
+ # Construction of KFILE's full filename:
+ KFILEPATH=$(cd $(dirname $KFILE) && pwd)
+ if [ -L $KFILE ]; then
+ KFILE=$(readlink $KFILE)
+ else
+ KFILE=$(basename $KFILE)
+ fi
+ KFILE=${KFILEPATH}/$KFILE
+ if [ -z "$(file $KFILE | grep 'Linux kernel x86 boot')" ]; then
+ echo "File '$KFILE' does not look like it is a kernel file!"
+ exit 1
+ fi
+ else
+ echo "File $1 not found!"
+ exit 1
+ fi
+ shift
+ ;;
+ esac
+done
+
+# Determine what to show as output (other options may have set EMIT already)
+EMIT=${EMIT:-"all"}
+
+# An EMIT value of 'lilo' requires a kernel filename as script parameter:
+if [ "$EMIT" = "lilo" ]; then
+ if [ -z "$KFILE" ]; then
+ echo "A kernel_filename is required with the '-l|--lilo' option!"
+ exit 1
+ fi
+fi
+
+# Determine kernel version to use,
+# and check if modules for this kernel are actually present:
+if [ -z "$KVER" ]; then
+ if [ -n "$KFILE" ]; then
+ KVER="$(strings $KFILE | grep '(.*@.*) #' | cut -f1 -d' ')"
+ else
+ KVER="$(uname -r)"
+ fi
+fi
+if [ ! -d /lib/modules/$KVER ]; then
+ echo "Modules for kernel $KVER aren't installed."
+ exit 1
+fi
+
+# Determine whether the user passed an alternate filename for the initrd:
+if [ -n "$MKINIT_PARAMS" ]; then
+ SRCHLIST="$MKINIT_PARAMS"
+ for ELEM in $MKINIT_PARAMS ; do
+ SRCHLIST=$(echo $SRCHLIST | cut -d' ' -f2-) # cut ELEM from the list
+ if [ "$ELEM" = "-o" ]; then
+ IMGFILE=$(echo $SRCHLIST | cut -d' ' -f1)
+ break
+ fi
+ done
+fi
+IMGFILE=${IMGFILE:-"/boot/initrd.gz"}
+
+# Get information about the root device / root filesystem:
+ROOTDEV=${ROOTDEV:-$(get_root_device)}
+ROOTFS=$(get_rootfs_type)
+
+# Determine the list of kernel modules needed to support the root device:
+MLIST=$(determine_blockdev_drivers)
+
+# Determine if a USB keyboard is in use and include usbhid to module list
+MLIST=$(add_usb_keyboard)
+
+# If we use any USB module, try to determine the Host Controller
+if echo $MLIST | grep -q "usb"; then
+ MLIST=$(add_usb_hcd)
+fi
+
+# Check what combination of LUKS/LVM/RAID we have to support:
+# This sets values for USING_LUKS, USING_LVM, USING_RAID, REALDEV and BASEDEV.
+check_luks_lvm_raid
+
+# This is the interactive part:
+if [ "$INTERACTIVE" = "1" ]; then
+ if [ "$FROMLILO" != "1" ]; then
+ dialog --stdout --title "WELCOME TO MKINITRD COMMAND GENERATOR" --msgbox "\
+The main goal of this utility is to create a good initrd to \
+fit your needs. It can detect what kernel you are running, \
+what is your root device, root filesystem, if you use encryption, \
+LVM, RAID, etc. \
+\n\n\
+Usually the probed values are OK and they will be the \
+defaults in all subsequent dialogs, but maybe you want \
+to change something. \n\
+If in doubt, leave the defaults." 0 0
+
+ KVER=$( ls -d1 --indicator-style=none /lib/modules/* | \
+ awk -F/ -vVER=$KVER '{
+ if ( VER == $NF ) {
+ ONOFF="on"
+ } else {
+ ONOFF="off"
+ } ; printf("%s \"\" %s\n",$NF,ONOFF) }' | \
+ xargs dialog --stdout --title "CHOOSE KERNEL VERSION" \
+ --default-item $KVER --radiolist "\
+Please, select the kernel version you want to create this initrd for." 0 0 4 )
+ [ -z "$KVER" ] && exit 1
+
+ OLDROOTDEV=$ROOTDEV
+ ROOTDEV=$( dialog --stdout --title "SELECT ROOT DEVICE" --inputbox "\
+Enter your root device. Root device is the one where your '/' filesystem \
+is mounted." 0 0 "$ROOTDEV" )
+ [ -z "$ROOTDEV" ] && exit 1
+
+ # We need to re-check our defaults in case the user changed the default
+ # value for ROOTDEV:
+ [ "$OLDROOTDEV" != "$ROOTDEV" ] && check_luks_lvm_raid
+ ROOTFS=$(get_rootfs_type)
+
+ ROOTFS=$( dialog --stdout --title "SELECT ROOT FILESYSTEM" --inputbox "\
+Enter the type of your root filesystem." 0 0 "$ROOTFS" )
+ [ -z "$ROOTFS" ] && exit 1
+ fi
+
+ MLIST=$(add_rootfs_module)
+
+ LLR=$( dialog --stdout --title "LVM/LUKS/RAID" --checklist "\
+Do you use some of those in your root filesystem? \
+If this is the case, please select one or more options." 12 45 3 \
+"LVM" "Logical Volume Manager" $([ "$USING_LVM" = "1" ] && echo on || echo off) \
+"LUKS" "Linux Unified Key Setup" $([ "$USING_LUKS" = "1" ] && echo on || echo off) \
+"RAID" "Linux Software RAID" $([ "$USING_RAID" = "1" ] && echo on || echo off))
+
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+
+ echo $LLR | grep -q LUKS && USING_LUKS="1"
+ echo $LLR | grep -q LVM && USING_LVM="1"
+ echo $LLR | grep -q RAID && USING_RAID="1"
+
+ if [ "$USING_LUKS" = "1" ]; then
+ REALDEV=$( dialog --stdout --title "LUKS ROOT DEVICE" --inputbox "\
+Please, enter your LUKS root device:" 0 0 "$REALDEV" )
+ [ -z "$REALDEV" ] && exit 1
+ fi
+fi
+
+# Step out of the interactive loop for a moment. The next block needs to be
+# executed in all cases.
+
+# We need to 'undouble' the MLIST array. Some people report that walking the
+# /sys tree produces duplicate modules in the list.
+# The awk command elimitates doubles without changing the order:
+MLIST=$( echo $MLIST | tr ':' '\n' | awk '!x[$0]++' | tr '\n' ' ' )
+MLIST=$( echo $MLIST | tr ' ' ':' )
+MLIST=$(echo ${MLIST%:}) # To weed out a trailing ':' which was reported once.
+
+# Back to the interactive part:
+
+if [ "$INTERACTIVE" = "1" ]; then
+ MLIST=$( dialog --stdout --title "INITRD'S MODULE LIST" --inputbox "\
+The list here shows all modules needed to support your root filesystem \
+and boot from it. But you can change the list to use some alternative \
+or additional modules. If you don't know what to do, the default is safe." \
+0 0 "$MLIST" )
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+
+ EXTRA=$( dialog --stdout --title "EXTRA CONFIGURATION" --checklist "\
+Now is your chance for some additional configuration. All of these \
+configurations are optional and you can stick to the defaults." 11 72 3 \
+"KEYMAP" "Select keyboard layout (default: US)" \
+ $([ $USING_LUKS = 1 ] && echo on || echo off) \
+"RESUMEDEV" "Select device for 'suspend-to-disk' feature" off \
+"WAIT" "Add delay to allow detection of slow disks at boot" off)
+ if [ "$?" != "0" ]; then
+ exit 1
+ fi
+
+ if echo $EXTRA | grep -q KEYMAP ; then
+ KEYMAP=$( dialog --stdout --title "KEYBOARD LAYOUT SELECTION" \
+ --cancel-label "Skip" \
+ --menu "You may select one of the following keyboard layouts. \
+If you do not select a keyboard map, 'us.map' \
+(the US keyboard layout) is the default. Use the UP/DOWN \
+arrow keys and PageUp/PageDown to scroll \
+through the whole list of choices." \
+22 55 11 \
+"qwerty/us.map" "" \
+"azerty/azerty.map" "" \
+"azerty/be-latin1.map" "" \
+"azerty/fr-latin0.map" "" \
+"azerty/fr-latin1.map" "" \
+"azerty/fr-latin9.map" "" \
+"azerty/fr-old.map" "" \
+"azerty/fr-pc.map" "" \
+"azerty/fr.map" "" \
+"azerty/wangbe.map" "" \
+"azerty/wangbe2.map" "" \
+"dvorak/ANSI-dvorak.map" "" \
+"dvorak/dvorak-l.map" "" \
+"dvorak/dvorak-r.map" "" \
+"dvorak/dvorak.map" "" \
+"dvorak/no-dvorak.map" "" \
+"fgGIod/tr_f-latin5.map" "" \
+"fgGIod/trf-fgGIod.map" "" \
+"olpc/es-olpc.map" "" \
+"olpc/pt-olpc.map" "" \
+"qwerty/bg-cp1251.map" "" \
+"qwerty/bg-cp855.map" "" \
+"qwerty/bg_bds-cp1251.map" "" \
+"qwerty/bg_bds-utf8.map" "" \
+"qwerty/bg_pho-cp1251.map" "" \
+"qwerty/bg_pho-utf8.map" "" \
+"qwerty/br-abnt.map" "" \
+"qwerty/br-abnt2.map" "" \
+"qwerty/br-latin1-abnt2.map" "" \
+"qwerty/br-latin1-us.map" "" \
+"qwerty/by-cp1251.map" "" \
+"qwerty/by.map" "" \
+"qwerty/bywin-cp1251.map" "" \
+"qwerty/cf.map" "" \
+"qwerty/cz-cp1250.map" "" \
+"qwerty/cz-lat2-prog.map" "" \
+"qwerty/cz-lat2.map" "" \
+"qwerty/cz-qwerty.map" "" \
+"qwerty/defkeymap.map" "" \
+"qwerty/defkeymap_V1.0.map" "" \
+"qwerty/dk-latin1.map" "" \
+"qwerty/dk.map" "" \
+"qwerty/emacs.map" "" \
+"qwerty/emacs2.map" "" \
+"qwerty/es-cp850.map" "" \
+"qwerty/es.map" "" \
+"qwerty/et-nodeadkeys.map" "" \
+"qwerty/et.map" "" \
+"qwerty/fi-latin1.map" "" \
+"qwerty/fi-latin9.map" "" \
+"qwerty/fi-old.map" "" \
+"qwerty/fi.map" "" \
+"qwerty/gr-pc.map" "" \
+"qwerty/gr.map" "" \
+"qwerty/hu101.map" "" \
+"qwerty/il-heb.map" "" \
+"qwerty/il-phonetic.map" "" \
+"qwerty/il.map" "" \
+"qwerty/is-latin1-us.map" "" \
+"qwerty/is-latin1.map" "" \
+"qwerty/it-ibm.map" "" \
+"qwerty/it.map" "" \
+"qwerty/it2.map" "" \
+"qwerty/jp106.map" "" \
+"qwerty/kazakh.map" "" \
+"qwerty/kyrgyz.map" "" \
+"qwerty/la-latin1.map" "" \
+"qwerty/lt.baltic.map" "" \
+"qwerty/lt.l4.map" "" \
+"qwerty/lt.map" "" \
+"qwerty/mk-cp1251.map" "" \
+"qwerty/mk-utf.map" "" \
+"qwerty/mk.map" "" \
+"qwerty/mk0.map" "" \
+"qwerty/nl.map" "" \
+"qwerty/nl2.map" "" \
+"qwerty/no-latin1.map" "" \
+"qwerty/no.map" "" \
+"qwerty/pc110.map" "" \
+"qwerty/pl.map" "" \
+"qwerty/pl1.map" "" \
+"qwerty/pl2.map" "" \
+"qwerty/pl3.map" "" \
+"qwerty/pl4.map" "" \
+"qwerty/pt-latin1.map" "" \
+"qwerty/pt-latin9.map" "" \
+"qwerty/pt.map" "" \
+"qwerty/ro.map" "" \
+"qwerty/ro_std.map" "" \
+"qwerty/ru-cp1251.map" "" \
+"qwerty/ru-ms.map" "" \
+"qwerty/ru-yawerty.map" "" \
+"qwerty/ru.map" "" \
+"qwerty/ru1.map" "" \
+"qwerty/ru2.map" "" \
+"qwerty/ru3.map" "" \
+"qwerty/ru4.map" "" \
+"qwerty/ru_win.map" "" \
+"qwerty/ruwin_alt-CP1251.map" "" \
+"qwerty/ruwin_alt-KOI8-R.map" "" \
+"qwerty/ruwin_alt-UTF-8.map" "" \
+"qwerty/ruwin_cplk-CP1251.map" "" \
+"qwerty/ruwin_cplk-KOI8-R.map" "" \
+"qwerty/ruwin_cplk-UTF-8.map" "" \
+"qwerty/ruwin_ct_sh-CP1251.map" "" \
+"qwerty/ruwin_ct_sh-KOI8-R.map" "" \
+"qwerty/ruwin_ct_sh-UTF-8.map" "" \
+"qwerty/ruwin_ctrl-CP1251.map" "" \
+"qwerty/ruwin_ctrl-KOI8-R.map" "" \
+"qwerty/ruwin_ctrl-UTF-8.map" "" \
+"qwerty/se-fi-ir209.map" "" \
+"qwerty/se-fi-lat6.map" "" \
+"qwerty/se-ir209.map" "" \
+"qwerty/se-lat6.map" "" \
+"qwerty/se-latin1.map" "" \
+"qwerty/sk-prog-qwerty.map" "" \
+"qwerty/sk-qwerty.map" "" \
+"qwerty/speakup-jfw.map" "" \
+"qwerty/speakupmap.map" "" \
+"qwerty/sr-cy.map" "" \
+"qwerty/sv-latin1.map" "" \
+"qwerty/tr_q-latin5.map" "" \
+"qwerty/tralt.map" "" \
+"qwerty/trf.map" "" \
+"qwerty/trq.map" "" \
+"qwerty/ttwin_alt-UTF-8.map.gz" "" \
+"qwerty/ttwin_cplk-UTF-8.map.gz" "" \
+"qwerty/ttwin_ct_sh-UTF-8.map.gz" "" \
+"qwerty/ttwin_ctrl-UTF-8.map.gz" "" \
+"qwerty/ua-cp1251.map.gz" "" \
+"qwerty/ua-utf-ws.map" "" \
+"qwerty/ua-utf.map" "" \
+"qwerty/ua-ws.map" "" \
+"qwerty/ua.map" "" \
+"qwerty/uk.map" "" \
+"qwerty/us-acentos.map" "" \
+"qwerty/us.map" "" \
+"qwertz/croat.map" "" \
+"qwertz/cz-us-qwertz.map" "" \
+"qwertz/cz.map" "" \
+"qwertz/de-latin1-nodeadkeys.map" "" \
+"qwertz/de-latin1.map" "" \
+"qwertz/de.map" "" \
+"qwertz/de_CH-latin1.map" "" \
+"qwertz/fr_CH-latin1.map" "" \
+"qwertz/fr_CH.map" "" \
+"qwertz/hu.map" "" \
+"qwertz/sg-latin1-lk450.map" "" \
+"qwertz/sg-latin1.map" "" \
+"qwertz/sg.map" "" \
+"qwertz/sk-prog-qwertz.map" "" \
+"qwertz/sk-qwertz.map" "" \
+"qwertz/slovene.map" "" )
+ [ -n "$KEYMAP" ] && KEYMAP=$(basename $KEYMAP .map)
+ fi
+
+ if echo $EXTRA | grep -q RESUMEDEV ; then
+ # Print information about swap partitions:
+ FREERAM=$(free -k | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2)
+ SWPINFO=""
+ for SWPDEV in $(grep -w swap $FSTAB | cut -d' ' -f1) ; do
+ SWPINFO="$SWPINFO $SWPDEV Linux swap partition $(fdisk -s $SWPDEV) KB \\n"
+ [ $(fdisk -s $SWPDEV) -gt $FREERAM ] && RESUMEDEV=$SWPDEV
+ done
+ FREERAM=$(free -m | grep "^Mem:" | tr -s ' ' | cut -d' ' -f2)
+ RESUMEDEV=$( dialog --stdout --no-collapse --title "HIBERNATE RESUME DEVICE" --inputbox "\
+When using suspend-to-disk feature (hibernate), your computer's RAM is copied \
+to a swap device when it shuts down. The kernel will resume from that RAM \
+image at boot. This means that the swap partition must not be smaller than \
+the amount of RAM you have ($FREERAM MB). \n\
+$SWPINFO \n\
+Please specify a swap partition to be used for hibernation:" \
+0 0 "$RESUMEDEV")
+ [ -z "$RESUMEDEV" ] && exit 1
+ fi
+
+ if echo $EXTRA | grep -q WAIT ; then
+ WAIT=$( dialog --stdout --title "WAIT FOR ROOT DEVICE" --inputbox "\
+Some block devices are too slow to be detected properly at boot. USB storage \
+devices and some disk arrays have this 'feature'. To make your machine \
+boot properly, you can add some delay here, to wait until all your disks are \
+probed and detected. The time is in seconds:" 0 0 "$WAIT")
+ [ -z "$WAIT" ] && exit 1
+ fi
+
+ IMGFILE=$( dialog --stdout --title "INITRD IMAGE NAME" --inputbox "\
+Enter your initrd image filename." 0 0 "$IMGFILE" )
+ [ -z "$IMGFILE" ] && exit 1
+
+else
+ MLIST=$(add_rootfs_module)
+fi
+
+# Add any modules passed along on the commandline:
+if [ -n "$MKINIT_MODS" ]; then
+ [ -n "$MLIST" ] && MLIST="$MLIST:$(echo $MKINIT_MODS | tr ' ' ':')" \
+ || MLIST="$(echo $MKINIT_MODS | tr ' ' ':')"
+fi
+
+# Constructing the mkinitrd command:
+MKINIT="mkinitrd -c -k $KVER -f $ROOTFS -r $ROOTDEV"
+
+# If we have a module list, add them:
+if ! [ -z "$MLIST" -o "$MLIST" = ":" ]; then
+ MKINIT="$MKINIT -m $MLIST"
+fi
+
+# Deal with LUKS/LVM/RAID:
+if [ "$USING_LUKS" = "1" ]; then
+ MKINIT="$MKINIT -C $REALDEV"
+fi
+if [ "$USING_LVM" = "1" ]; then
+ MKINIT="$MKINIT -L"
+fi
+if [ "$USING_RAID" = "1" ]; then
+ MKINIT="$MKINIT -R"
+fi
+
+if [ -n "$RESUMEDEV" ]; then
+ # Add hibernation partition:
+ MKINIT="$MKINIT -h $RESUMEDEV"
+fi
+if [ -n "$KEYMAP" -a "$KEYMAP" != "us" ]; then
+ # Add non-us keyboard mapping:
+ MKINIT="$MKINIT -l $KEYMAP"
+fi
+if [ -n "$WAIT" -a $WAIT -ne 1 ]; then
+ # Add non-default wait time:
+ MKINIT="$MKINIT -w $WAIT"
+fi
+if ! echo "$MKINIT_PARAMS" | grep -q ' -o ' ; then
+ # Add non-default output filename:
+ MKINIT="$MKINIT -o $IMGFILE"
+fi
+if [ -n "$MKINIT_PARAMS" ]; then
+ # Add user-supplied additional parameters:
+ MKINIT="$MKINIT $MKINIT_PARAMS"
+fi
+
+# Notify the user:
+if [ "$EMIT" = "all" ]; then
+ cat <<-EOT
+ #
+ # $(basename $0) revision $REV
+ #
+ # This script will now make a recommendation about the command to use
+ # in case you require an initrd image to boot a kernel that does not
+ # have support for your storage or root filesystem built in
+ # (such as the Slackware 'generic' kernels').
+ # A suitable 'mkinitrd' command will be:
+
+ $MKINIT
+ EOT
+elif [ "$EMIT" = "run" ]; then
+ echo "$MKINIT"
+elif [ "$EMIT" = "conf" ]; then
+ cat <<-EOT
+ SOURCE_TREE="$SOURCE_TREE"
+ CLEAR_TREE="$CLEAR_TREE"
+ OUTPUT_IMAGE="$IMGFILE"
+ KERNEL_VERSION="$KVER"
+ KEYMAP="$KEYMAP"
+ MODULE_LIST="$(echo $MLIST | cut -f2 -d\ )"
+ LUKSDEV="$REALDEV"
+ ROOTDEV="$ROOTDEV"
+ ROOTFS="$ROOTFS"
+ RESUMEDEV="$RESUMEDEV"
+ RAID="$USING_RAID"
+ LVM="$USING_LVM"
+ WAIT="$WAIT"
+ EOT
+fi
+
+if [ -n "$KFILE" ]; then
+ if [ "$EMIT" = "all" ]; then
+ cat <<-EOT
+ # An entry in 'etc/lilo.conf' for kernel '$KFILE' would look like this:
+ EOT
+ fi
+ if [ "$EMIT" = "all" -o "$EMIT" = "lilo" ]; then
+ # Compensate for the syntax used for the LUKS-on-LVM case:
+ [ "$(basename $ROOTDEV)" = "$ROOTDEV" ] && BASE="/dev/mapper/" || BASE=""
+ cat <<-EOT
+ # Linux bootable partition config begins
+ # initrd created with '$MKINIT'
+ image = $KFILE
+ initrd = $IMGFILE
+ root = $BASE$ROOTDEV
+ label = $KVER
+ read-only
+ # Linux bootable partition config ends
+ EOT
+ fi
+fi
diff --git a/source/a/mkinitrd/mkinitrd_kernelcheck.diff b/source/a/mkinitrd/mkinitrd_kernelcheck.diff
new file mode 100644
index 000000000..e1302f54e
--- /dev/null
+++ b/source/a/mkinitrd/mkinitrd_kernelcheck.diff
@@ -0,0 +1,15 @@
+--- mkinitrd.orig 2008-11-30 15:35:58.000000000 +0100
++++ mkinitrd 2008-12-11 11:16:37.000000000 +0100
+@@ -277,6 +277,12 @@
+ esac
+ done
+
++# If kernel modules are needed but the kernel version is absent, exit now:
++if [ ! -d /lib/modules/$KERNEL_VERSION ]; then
++ echo "No modules tree found for kernel \"$KERNEL_VERSION\""
++ exit 1
++fi
++
+ # If clearing source tree was requested, do that first
+ if [ "$CLEAR_TREE" = "1" ]; then
+ clear_source_tree
diff --git a/source/a/mkinitrd/slack-desc b/source/a/mkinitrd/slack-desc
new file mode 100644
index 000000000..49d1a764f
--- /dev/null
+++ b/source/a/mkinitrd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mkinitrd: mkinitrd (make an initial ramdisk)
+mkinitrd:
+mkinitrd: mkinitrd is a script to create an initial ramdisk that is loaded at
+mkinitrd: the same time as the kernel. The initial ramdisk may be responsible
+mkinitrd: for loading kernel modules (such a filesystem or SCSI controller
+mkinitrd: module) that are needed to mount the root filesystem.
+mkinitrd:
+mkinitrd: The "initrd" is implemented as an initramfs. See the kernel
+mkinitrd: documentation for more information on this, if you are interested.
+mkinitrd:
+mkinitrd:
diff --git a/source/a/module-init-tools/doinst.sh b/source/a/module-init-tools/doinst.sh
new file mode 100644
index 000000000..41ff1d753
--- /dev/null
+++ b/source/a/module-init-tools/doinst.sh
@@ -0,0 +1,22 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/modprobe.conf.new
+
+# Retain legacy behavior by tossing a symlink in /etc/modprobe.d/:
+# Note that the plan is to eliminate /etc/modprobe.conf and
+# /etc/modules.conf in the long run, so you may wish to remove the
+# link and move your actual file into /etc/modprobe.d/ if you want
+# to keep it instead of going with smaller chunks in there...
+if [ -r etc/modprobe.conf ]; then
+ ( cd etc/modprobe.d ; ln -s ../modprobe.conf . 2> /dev/null )
+fi
+
diff --git a/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff
new file mode 100644
index 000000000..1565d93a6
--- /dev/null
+++ b/source/a/module-init-tools/modprobe.favor.etc.modprobe.d.diff
@@ -0,0 +1,27 @@
+diff -Nur module-init-tools-3.6.old/doc/modprobe.conf.sgml module-init-tools-3.6.new/doc/modprobe.conf.sgml
+--- module-init-tools-3.6.old/doc/modprobe.conf.sgml 2009-02-04 01:45:24.000000000 -0600
++++ module-init-tools-3.6.new/doc/modprobe.conf.sgml 2009-02-08 01:42:05.097637263 -0600
+@@ -35,7 +35,9 @@
+ <para>Because the <command>modprobe</command> command can add or
+ remove extra more than one module, due to module dependencies,
+ we need a method of specifying what options are to be used with
+- those modules. <filename>/etc/modprobe.conf</filename> (or, if that does not exist, all files under the <filename>/etc/modprobe.d</filename> directory) specifies
++ those modules. All of the files under the <filename>/etc/modprobe.d/</filename>
++ directory are used, or if that directory does not exist, the
++ <filename>/etc/modprobe.conf</filename> file specifies
+ those options, as required. It can also be used to create
+ convenient aliases: alternate names for a module. Finally, it
+ can override the normal <command>modprobe</command> behavior
+diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c
+--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600
++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:42:05.099636402 -0600
+@@ -1366,8 +1366,8 @@
+
+ static const char *default_configs[] =
+ {
+- "/etc/modprobe.conf",
+ "/etc/modprobe.d",
++ "/etc/modprobe.conf",
+ };
+
+ static void read_toplevel_config(const char *filename,
diff --git a/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff
new file mode 100644
index 000000000..24967f0b2
--- /dev/null
+++ b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff
@@ -0,0 +1,43 @@
+diff -Nur module-init-tools-3.6.old/modprobe.c module-init-tools-3.6.new/modprobe.c
+--- module-init-tools-3.6.old/modprobe.c 2009-02-04 01:45:24.000000000 -0600
++++ module-init-tools-3.6.new/modprobe.c 2009-02-08 01:40:24.143637295 -0600
+@@ -38,6 +38,7 @@
+ #include <asm/unistd.h>
+ #include <sys/wait.h>
+ #include <syslog.h>
++#include <regex.h>
+
+ #define streq(a,b) (strcmp((a),(b)) == 0)
+ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+@@ -1275,6 +1276,20 @@
+ return 1;
+ }
+
++/* Let's exclude a few file extensions */
++static int valid_file_name(const char *filename)
++{
++ static regex_t *re = NULL;
++
++ if (!re) {
++ re = NOFAIL(malloc(sizeof(regex_t)));
++ if (regcomp(re, "(^(\\.|\\.\\.)|\\.(new|orig|bak)$)",
++ REG_EXTENDED|REG_NOSUB) != 0)
++ fatal("regcomp failed: %s\n", strerror(errno));
++ }
++ return regexec(re, filename, 0, NULL, 0);
++}
++
+ /* Simple format, ignore lines starting with #, one command per line.
+ Returns true or false. */
+ static int read_config(const char *filename,
+@@ -1294,7 +1309,10 @@
+ if (dir) {
+ struct dirent *i;
+ while ((i = readdir(dir)) != NULL) {
++ /* Removed this line:
+ if (!streq(i->d_name,".") && !streq(i->d_name,"..")
++ and replaced with this one: */
++ if (valid_file_name(i->d_name)
+ && config_filter(i->d_name)) {
+ char sub[strlen(filename) + 1
+ + strlen(i->d_name) + 1];
diff --git a/source/a/module-init-tools/modprobe.no_sys_check.diff b/source/a/module-init-tools/modprobe.no_sys_check.diff
new file mode 100644
index 000000000..90e9a7d19
--- /dev/null
+++ b/source/a/module-init-tools/modprobe.no_sys_check.diff
@@ -0,0 +1,51 @@
+http://bugs.gentoo.org/258442
+
+From 1a55ee5297b883ea4b43cdf74ad890873ebe966c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Fri, 13 Feb 2009 02:21:10 -0500
+Subject: [PATCH] modprobe: remove pointless /sys requirement
+
+When modprobe was converted from parsing /proc to parsing /sys, it was not
+a straight conversion. Instead, a "sanity" check was added early on where
+modprobe would simply abort doing anything useful if /sys isn't mounted.
+Unfortunately, this makes modprobe fairly unusable. Considering the
+kernel itself can invoke modprobe before userspace gets a chance to start
+the init process (and actually mount /sys), we end up with a chicken and
+egg issue. Which gets even worse when the kernel keeps running modprobe
+over and over and the boot output fills up with:
+modprobe: FATAL: /sys is not mounted.
+modprobe: FATAL: /sys is not mounted.
+modprobe: FATAL: /sys is not mounted.
+modprobe: FATAL: /sys is not mounted.
+modprobe: FATAL: /sys is not mounted.
+modprobe: FATAL: /sys is not mounted.
+
+Since modprobe itself is already written to handle the case where it
+cannot figure out whether a given module is loaded (and so was able to run
+perfectly fine without /proc being mounted), the check is wholly useless.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ modprobe.c | 5 -----
+ 1 files changed, 0 insertions(+), 5 deletions(-)
+
+diff --git a/modprobe.c b/modprobe.c
+index 022004c..110204b 100644
+--- a/modprobe.c
++++ b/modprobe.c
+@@ -1522,11 +1522,6 @@ static void handle_module(const char *modname,
+ const char *cmdline_opts,
+ int flags)
+ {
+- struct stat finfo;
+-
+- if (stat("/sys/module", &finfo) < 0)
+- fatal("/sys is not mounted.\n");
+-
+ if (list_empty(todo_list)) {
+ const char *command;
+
+--
+1.6.1.3
+
+
diff --git a/source/a/module-init-tools/module-init-tools.SlackBuild b/source/a/module-init-tools/module-init-tools.SlackBuild
new file mode 100755
index 000000000..d69b43bc2
--- /dev/null
+++ b/source/a/module-init-tools/module-init-tools.SlackBuild
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=3.6
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-module-init-tools
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf module-init-tools-$VERSION
+tar xvf $CWD/module-init-tools-$VERSION.tar.bz2 || exit 1
+cd module-init-tools-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Look for /etc/modprobe.d/ first rather than bailing on the idea if
+# /etc/modprobe.conf exists. IMHO, this is a better default behavior
+# because it allows /etc/modprobe.conf to remain behind if something
+# still looks there, and allows a smoother transition towards using
+# /etc/modprobe.d/ instead.
+zcat $CWD/modprobe.favor.etc.modprobe.d.diff.gz | patch -p1 --verbose || exit 1
+
+# Exclude *.{old,new,bak} files (and a few others that obviously aren't
+# valid for this... Thanks to Marco d'Itri for the patch that it's based on
+zcat $CWD/modprobe.ignore_some_suffixes.diff.gz | patch -p1 --verbose || exit 1
+
+# We get (pointless) errors in early stages of the boot if modprobe checks for
+# a mounted /sys before it actually gets mounted:
+zcat $CWD/modprobe.no_sys_check.diff.gz | patch -p1 --verbose || exit 1
+
+# Using --bindir=/sbin to make lsmod go there too
+CFLAGS= \
+./configure \
+ --prefix=/ \
+ --bindir=/sbin \
+ --docdir=/usr/doc/module-init-tools-$VERSION \
+ --mandir=/usr/man \
+ --enable-zlib \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# We don't need this
+rm -f $PKG/sbin/generate-modprobe.conf
+
+# Links lsmod into /bin
+mkdir -p $PKG/bin
+( cd $PKG/bin ; ln -sf /sbin/lsmod . )
+
+# Add manpage symlink for modprobe.d
+( cd $PKG/usr/man/man5
+ if [ -f modprobe.conf.5 -a ! -e modprobe.d.5 ]; then
+ ln -sf modprobe.conf.5 modprobe.d.5
+ fi
+)
+
+# Compress manpages
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
+
+mkdir -p $PKG/etc/modprobe.d/
+cat << EOF > $PKG/etc/modprobe.conf.new
+# /etc/modprobe.conf (old location for Linux 2.6+ config)
+#
+# The use of this config file is deprecated.
+# Instead, create files in the /etc/modprobe.d/ directory
+# containing modprobe options.
+#
+# For more information, see "man modprobe.conf".
+EOF
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/module-init-tools-$VERSION
+# Most of these are out of date
+cp -a \
+ AUTHORS CODING COPYING FAQ HACKING INSTALL NEWS README TODO \
+ $PKG/usr/doc/module-init-tools-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/module-init-tools-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/module-init-tools/slack-desc b/source/a/module-init-tools/slack-desc
new file mode 100644
index 000000000..2f0ca3316
--- /dev/null
+++ b/source/a/module-init-tools/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+module-init-tools: module-init-tools (kernel module utilities)
+module-init-tools:
+module-init-tools: Utilities to load and unload kernel modules. These are used on Linux
+module-init-tools: to load extra drivers or other features into the running kernel.
+module-init-tools:
+module-init-tools:
+module-init-tools:
+module-init-tools:
+module-init-tools:
+module-init-tools:
+module-init-tools:
diff --git a/source/a/mt-st/mt-st.SlackBuild b/source/a/mt-st/mt-st.SlackBuild
new file mode 100755
index 000000000..cbf44ec2f
--- /dev/null
+++ b/source/a/mt-st/mt-st.SlackBuild
@@ -0,0 +1,82 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-0.9b}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mt-st
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf mt-st-$VERSION
+tar xzvf $CWD/mt-st-$VERSION.tar.gz
+cd mt-st-$VERSION
+
+zcat $CWD/mt-st.config.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/mt-st.man.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/mt-st.sdlt.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+sed -i -e 's#<linux/qic117.h>#"qic117.h"#' mtio.h || exit 1
+make || exit 1
+
+strip mt stinit
+mkdir -p $PKG/bin
+cat mt > $PKG/bin/mt-st
+chmod 755 $PKG/bin/mt-st
+( cd $PKG/bin ; ln -sf mt-st mt )
+mkdir -p $PKG/sbin
+cat stinit > $PKG/sbin/stinit
+chmod 755 $PKG/sbin/stinit
+mkdir -p $PKG/usr/man/man{1,8}
+cat mt.1 | gzip -9c > $PKG/usr/man/man1/mt-st.1.gz
+cat stinit.8 | gzip -9c > $PKG/usr/man/man8/stinit.8.gz
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/mt-st-$VERSION
+cp -a \
+ COPYING README* *.lsm stinit.def.examples \
+ $PKG/usr/doc/mt-st-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/mt-st-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/mt-st/mt-st.config.diff b/source/a/mt-st/mt-st.config.diff
new file mode 100644
index 000000000..756261b15
--- /dev/null
+++ b/source/a/mt-st/mt-st.config.diff
@@ -0,0 +1,172 @@
+--- mt-st-0.8/stinit.def.examples.configfiles 2002-09-23 19:02:21.000000000 +0200
++++ mt-st-0.8/stinit.def.examples 2005-04-07 08:21:01.732633520 +0200
+@@ -56,3 +56,169 @@
+ mode3 blocksize=0 density=1 # 800 bpi
+ }
+
++# DLT2000 / 2000XT
++manufacturer="QUANTUM" model = "DLT2000" {
++scsi2logical=1
++can-bsr
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++mode1 blocksize=0 density=0x81 # 10GB + compression on DLTtape III, 15+ with DLTtape IIIXT in 2000XT
++mode2 blocksize=0 density=0x80 # 10GB, no compression on DLTtape III, 15 with DLTtape IIIXT in 2000XT
++mode3 blocksize=0 density=0x18 # 6GB, compression not available, on DLTtape III
++mode4 blocksize=0 density=0x17 #2.6GB, compression not available, on DLTtape III
++}
++
++# DLT4000
++manufacturer="QUANTUM" model = "DLT4000" {
++scsi2logical=1
++can-bsr
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards compatible, use older modes (e.g. from above) as required
++mode1 blocksize=0 density=0x83 # 20GB + compression
++mode2 blocksize=0 density=0x82 # 20GB, no compression
++mode3 blocksize=0 density=0x81 # 10GB + compression (DLT2000 mode) with DLTtape III, 15+ with DLTtape IIIXT in 2000XT
++mode4 blocksize=0 density=0x80 # 10GB, no compression (DLT2000 mode) with DLTtape III, 15 with DLTtape IIIXT in 2000XT
++}
++
++# DLT7000
++manufacturer="QUANTUM" model = "DLT7000" {
++scsi2logical=1
++can-bsr
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards compatible, use older modes (e.g. from above) as required.
++mode1 blocksize=0 density=0x85 # 35GB + compression
++mode2 blocksize=0 density=0x84 # 35GB, no compression
++mode3 blocksize=0 density=0x83 # 20GB + compression (DLT4000 mode)
++mode4 blocksize=0 density=0x82 # 20GB, no compression (DLT4000 mode)
++}
++
++# DLT8000
++manufacturer="QUANTUM" model = "DLT8000" {
++scsi2logical=1
++can-bsr=1
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards compatible to DLT7000, use older modes (e.g. from above) as required. Modes <10GB (<0x19) not supported!
++mode1 blocksize=0 density=0x89 # 40GB + compression
++mode2 blocksize=0 density=0x88 # 40GB, no compression
++mode3 blocksize=0 density=0x85 # 35GB + compression (DLT7000 mode)
++mode4 blocksize=0 density=0x84 # 35GB, no compression (DLT7000 mode)
++}
++
++
++# SDLT220
++manufacturer="QUANTUM" model = "SuperDLT1" {
++scsi2logical=1
++can-bsr=1
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so no need to define any other modes here.
++mode1 blocksize=0 density=0x48 compression=1 # 110 GB + compression
++mode2 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression
++}
++
++# SDLT320
++manufacturer="QUANTUM" model = "SDLT320" {
++scsi2logical=1
++can-bsr=1
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards write compatible to SDLT220 and read compatible to DLT4000/7000/8000. Mode settings are only required for writing, so we need only the SDL220/320 modes here
++mode1 blocksize=0 density=0x49 compression=1 # 160 GB + compression
++mode2 blocksize=0 density=0x49 compression=0 # 160 GB, no ompression
++mode3 blocksize=0 density=0x48 compression=1 # 110 GB + compression
++mode4 blocksize=0 density=0x48 compression=0 # 110 GB, no ompression
++}
++
++# SDLT600
++manufacturer="QUANTUM" model = "SDLT600" {
++scsi2logical=1
++can-bsr=1
++auto-lock=0
++two-fms=0
++drive-buffering=1
++buffer-writes
++read-ahead=1
++async-writes=1
++can-partitions=0
++fast-mteom=1
++#
++# If your stinit supports the timeouts:
++timeout=3600 # 1 hour
++long-timeout=14400 # 4 hours
++#
++# Drive is backwards read compatible to SDLT220/320 and VS160. Mode settings are only required for writing, so we need only the native SDLT600 mode here.
++mode1 blocksize=0 density=0x4a compression=1 # 300 GB + compression
++mode2 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression
++mode3 blocksize=0 density=0x4a compression=1 # 300 GB + compression
++mode4 blocksize=0 density=0x4a compression=0 # 300 GB, no ompression
++}
++
diff --git a/source/a/mt-st/mt-st.man.diff b/source/a/mt-st/mt-st.man.diff
new file mode 100644
index 000000000..d22acefcc
--- /dev/null
+++ b/source/a/mt-st/mt-st.man.diff
@@ -0,0 +1,31 @@
+--- mt-st-0.9b/mt.1.manfix 2005-08-21 20:53:50.000000000 +0200
++++ mt-st-0.9b/mt.1 2005-10-25 12:13:43.000000000 +0200
+@@ -48,20 +48,22 @@
+ files.
+ The tape is positioned on the first block of the next file.
+ .IP fsfm
+-Forward space
++Forward space past
+ .I count
+-files.
+-The tape is positioned on the last block of the previous file.
++file marks, then backward space one file record.
++This leaves the tape positioned on the last block of the file that is count-1
++files past the current file.
+ .IP bsf
+ Backward space
+ .I count
+ files.
+ The tape is positioned on the last block of the previous file.
+ .IP bsfm
+-Backward space
++Backward space past
+ .I count
+-files.
+-The tape is positioned on the first block of the next file.
++file marks, then forward space one file record.
++This leaves the tape positioned on the first block of the file that is count-1
++files before the current file.
+ .IP asf
+ The tape is positioned at the beginning of the
+ .I count
diff --git a/source/a/mt-st/mt-st.sdlt.diff b/source/a/mt-st/mt-st.sdlt.diff
new file mode 100644
index 000000000..8dd9fa9ff
--- /dev/null
+++ b/source/a/mt-st/mt-st.sdlt.diff
@@ -0,0 +1,11 @@
+--- mt-st-0.7/mt.c.orig Sat Feb 22 14:48:09 2003
++++ mt-st-0.7/mt.c Sat Feb 22 14:50:21 2003
+@@ -220,6 +220,8 @@
+ {0x41, "DLT 40GB"},
+ {0x45, "QIC-3095-MC (TR-4)"},
+ {0x47, "TR-5"},
++ {0x48, "Quantum SDLT220"},
++ {0x49, "Quantum SDLT320"},
+ {0x80, "DLT 15GB uncomp. or Ecrix"},
+ {0x81, "DLT 15GB compressed"},
+ {0x82, "DLT 20GB uncompressed"},
diff --git a/source/a/mt-st/slack-desc b/source/a/mt-st/slack-desc
new file mode 100644
index 000000000..dda830939
--- /dev/null
+++ b/source/a/mt-st/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mt-st: mt-st (controls magnetic tape drive operation)
+mt-st:
+mt-st: This mt originates from BSD NET-2. Some Linux SCSI tape-specific
+mt-st: ioctls have been added to the original source and the man page has
+mt-st: been updated. Although this mt program is tailored for SCSI tape, it
+mt-st: can also be used with the QIC-02 driver and hopefully with other Linux
+mt-st: tape drivers using the same ioctls (some of the commands may not work
+mt-st: with all drivers).
+mt-st:
+mt-st:
+mt-st:
diff --git a/source/a/mtx/mtx.SlackBuild b/source/a/mtx/mtx.SlackBuild
new file mode 100755
index 000000000..c17d11769
--- /dev/null
+++ b/source/a/mtx/mtx.SlackBuild
@@ -0,0 +1,88 @@
+#!/bin/bash
+
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+# mtx.SlackBuild
+# Package mtx for Slackware
+# mozes@slackware.com
+# ftp://ftp.badtux.net/pub/storage/mtx
+
+PACKAGE=mtx
+VERSION=1.3.9
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PACKAGE
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Extract source:
+cd $TMP
+rm -rf $PACKAGE-*
+tar zxvvf $CWD/$PACKAGE-$VERSION.tar.gz
+cd $PACKAGE-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+./configure \
+ --prefix=/usr \
+ --build=$ARCH-slackware-linux \
+ --host=$ARCH-slackware-linux \
+ --target=$ARCH-slackware-linux || exit 1
+
+# Avoid looking in the Kernel source:
+sed -i 's?-I/usr/src/linux/include? ?g' Makefile
+
+# Build:
+make || exit 1
+
+# Install into package:
+mkdir -pm755 $PKG/{install,usr/{sbin,doc/$PACKAGE-$VERSION,man/man1}}
+install -m755 scsitape tapeinfo mtx loaderinfo $PKG/usr/sbin
+install -m644 *.1 $PKG/usr/man/man1
+gzip -9 $PKG/usr/man/man1/*
+
+# Strip:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Copy docs:
+cp -fa mtx.doc CHANGES COMPATABILITY FAQ LICENSE README TODO \
+ $PKG/usr/doc/$PACKAGE-$VERSION
+
+# Install package description:
+install -m644 $CWD/slack-desc $PKG/install
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/$PACKAGE-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/mtx/slack-desc b/source/a/mtx/slack-desc
new file mode 100644
index 000000000..901abb3d4
--- /dev/null
+++ b/source/a/mtx/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+mtx: mtx (Controls tape autochangers)
+mtx:
+mtx: The MTX program controls the robotic mechanism in autoloaders and
+mtx: tape libraries such as the HP SureStore DAT 40x6, Exabyte EZ-17, and
+mtx: Exabyte 220.
+mtx:
+mtx: This program is also reported to work with a variety of other tape
+mtx: libraries and autochangers from Tandberg/Overland, Breece Hill, HP,
+mtx: Seagate, Dell and Quantum.
+mtx:
+mtx:
diff --git a/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch
new file mode 100644
index 000000000..0ae7ec59f
--- /dev/null
+++ b/source/a/ncompress/ncompress-4.2.4-bssUnderflow.patch
@@ -0,0 +1,13 @@
+--- ncompress-4.2.4/compress42.c.bssUnderflow 2006-08-10 11:40:03.000000000 +0200
++++ ncompress-4.2.4/compress42.c 2006-08-10 11:40:31.000000000 +0200
+@@ -1689,6 +1689,10 @@
+
+ if (oldcode == -1)
+ {
++ if (code >= 256) {
++ fprintf(stderr, "uncompress: corrupt input\n");
++ abort_compress();
++ }
+ outbuf[outpos++] = (char_type)(finchar = (int)(oldcode = code));
+ continue;
+ }
diff --git a/source/a/ncompress/ncompress-4.2.4-endians.patch b/source/a/ncompress/ncompress-4.2.4-endians.patch
new file mode 100644
index 000000000..fdc966220
--- /dev/null
+++ b/source/a/ncompress/ncompress-4.2.4-endians.patch
@@ -0,0 +1,11 @@
+--- ncompress-4.2.4/compress42.c.endians 2006-09-19 13:53:58.000000000 +0200
++++ ncompress-4.2.4/compress42.c 2006-09-19 13:57:54.000000000 +0200
+@@ -432,7 +432,7 @@
+
+ union bytes
+ {
+- long word;
++ int word;
+ struct
+ {
+ #if BYTEORDER == 4321
diff --git a/source/a/ncompress/ncompress.2GB.diff b/source/a/ncompress/ncompress.2GB.diff
new file mode 100644
index 000000000..8c545caf4
--- /dev/null
+++ b/source/a/ncompress/ncompress.2GB.diff
@@ -0,0 +1,11 @@
+--- ncompress-4.2.4/compress42.c.2GB 2004-07-14 12:16:19.000000000 -0400
++++ ncompress-4.2.4/compress42.c 2004-07-14 12:16:59.000000000 -0400
+@@ -1329,7 +1329,7 @@
+ REG11 int boff;
+ REG12 int n_bits;
+ REG13 int ratio;
+- REG14 long checkpoint;
++ REG14 unsigned long long checkpoint;
+ REG15 code_int extcode;
+ union
+ {
diff --git a/source/a/ncompress/ncompress.SlackBuild b/source/a/ncompress/ncompress.SlackBuild
new file mode 100755
index 000000000..e8b1c68fa
--- /dev/null
+++ b/source/a/ncompress/ncompress.SlackBuild
@@ -0,0 +1,81 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=4.2.4
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-ncompress
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf ncompress-${VERSION}
+tar xzf $CWD/ncompress-${VERSION}.tar.gz
+cd ncompress-${VERSION}
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/ncompress.make.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress.lfs2.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress.filenamelen.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress.2GB.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress.zerobyteforce.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress-${VERSION}-bssUnderflow.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/ncompress-${VERSION}-endians.patch.gz | patch -p1 --verbose || exit 1
+
+make ENDIAN=4321 || exit 1
+mkdir -p $PKG/usr/bin
+cat compress > $PKG/usr/bin/compress
+chmod 755 $PKG/usr/bin/compress
+( cd $PKG/usr/bin ; ln -sf compress uncompress )
+mkdir $PKG/bin
+( cd $PKG/bin ; ln -sf /usr/bin/compress compress )
+( cd $PKG/bin ; ln -sf compress uncompress )
+mkdir -p $PKG/usr/man/man1
+cat compress.1 | gzip -9c > $PKG/usr/man/man1/compress.1.gz
+echo '.so man1/compress.1' | gzip -9c > $PKG/usr/man/man1/uncompress.1.gz
+mkdir -p $PKG/usr/doc/ncompress-${VERSION}
+cp -a \
+ Acknowleds LZW.INFO README \
+ $PKG/usr/doc/ncompress-${VERSION}
+
+# Strip everything for good measure:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/ncompress-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/ncompress/ncompress.filenamelen.diff b/source/a/ncompress/ncompress.filenamelen.diff
new file mode 100644
index 000000000..67676c7a8
--- /dev/null
+++ b/source/a/ncompress/ncompress.filenamelen.diff
@@ -0,0 +1,98 @@
+--- ncompress-4.2.4/compress42.c.filenamelen Wed Nov 21 12:19:38 2001
++++ ncompress-4.2.4/compress42.c Wed Nov 21 12:20:03 2001
+@@ -140,6 +140,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <errno.h>
++#include <string.h>
+
+ #ifdef DIRENT
+ # include <dirent.h>
+@@ -213,7 +214,7 @@
+ # define OBUFSIZ BUFSIZ /* Default output buffer size */
+ #endif
+
+-#define MAXPATHLEN 1024 /* MAXPATHLEN - maximum length of a pathname we allow */
++#define MAXPATHLEN PATH_MAX /* MAXPATHLEN - maximum length of a pathname we allow */
+ #define SIZE_INNER_LOOP 256 /* Size of the inter (fast) compress loop */
+
+ /* Defines for third byte of header */
+@@ -641,13 +642,11 @@
+ } ;
+ #endif
+
+-void main ARGS((int,char **));
+ void Usage ARGS((void));
+ void comprexx ARGS((char **));
+ void compdir ARGS((char *));
+ void compress ARGS((int,int));
+ void decompress ARGS((int,int));
+-char *rindex ARGS((char *,int));
+ void read_error ARGS((void));
+ void write_error ARGS((void));
+ void abort_compress ARGS((void));
+@@ -694,13 +693,15 @@
+ * deterministic, and can be done on the fly. Thus, the decompression
+ * procedure needs no input table, but tracks the way the table was built.
+ */
+-void
++int
+ main(argc, argv)
+ REG1 int argc;
+ REG2 char *argv[];
+ {
+ REG3 char **filelist;
+ REG4 char **fileptr;
++ int i;
++
+
+ if (fgnd_flag = (signal(SIGINT, SIG_IGN) != SIG_IGN))
+ signal(SIGINT, (SIG_TYPE)abort_compress);
+@@ -714,7 +715,14 @@
+ nomagic = 1; /* Original didn't have a magic number */
+ #endif
+
+- filelist = fileptr = (char **)malloc(argc*sizeof(char *));
++ for(i=0;i<argc;i++){
++ if(strlen(argv[i])>(MAXPATHLEN-1)){
++ fprintf(stderr,"Filename too long\n");
++ exit(1);
++ }
++ }
++
++ filelist = fileptr = (char **)malloc(argc*sizeof(char *));
+ *filelist = NULL;
+
+ if((progname = rindex(argv[0], '/')) != 0)
+@@ -853,8 +861,9 @@
+ else
+ decompress(0, 1);
+ }
+-
++
+ exit((exit_code== -1) ? 1:exit_code);
++ return 0;
+ }
+
+ void
+@@ -1801,20 +1810,6 @@
+ write_error();
+ }
+
+-char *
+-rindex(s, c) /* For those who don't have it in libc.a */
+- REG1 char *s;
+- REG2 int c;
+- {
+- char *p;
+-
+- for (p = NULL; *s; s++)
+- if (*s == (char)c)
+- p = s;
+-
+- return(p);
+- }
+-
+ void
+ read_error()
+ {
diff --git a/source/a/ncompress/ncompress.lfs2.diff b/source/a/ncompress/ncompress.lfs2.diff
new file mode 100644
index 000000000..9da42eb56
--- /dev/null
+++ b/source/a/ncompress/ncompress.lfs2.diff
@@ -0,0 +1,52 @@
+--- ncompress-4.2.4/compress42.c.lfs 2002-06-19 19:19:33.000000000 -0400
++++ ncompress-4.2.4/compress42.c 2002-06-19 19:20:48.000000000 -0400
+@@ -130,6 +130,7 @@
+ * Add variable bit length output.
+ *
+ */
++#include <unistd.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <ctype.h>
+@@ -168,30 +169,6 @@
+ # define SIG_TYPE void (*)()
+ #endif
+
+-#ifndef NOFUNCDEF
+- extern void *malloc LARGS((int));
+- extern void free LARGS((void *));
+-#ifndef _IBMR2
+- extern int open LARGS((char const *,int,...));
+-#endif
+- extern int close LARGS((int));
+- extern int read LARGS((int,void *,int));
+- extern int write LARGS((int,void const *,int));
+- extern int chmod LARGS((char const *,int));
+- extern int unlink LARGS((char const *));
+- extern int chown LARGS((char const *,int,int));
+- extern int utime LARGS((char const *,struct utimbuf const *));
+- extern char *strcpy LARGS((char *,char const *));
+- extern char *strcat LARGS((char *,char const *));
+- extern int strcmp LARGS((char const *,char const *));
+- extern unsigned strlen LARGS((char const *));
+- extern void *memset LARGS((void *,char,unsigned int));
+- extern void *memcpy LARGS((void *,void const *,unsigned int));
+- extern int atoi LARGS((char const *));
+- extern void exit LARGS((int));
+- extern int isatty LARGS((int));
+-#endif
+-
+ #define MARK(a) { asm(" .globl M.a"); asm("M.a:"); }
+
+ #ifdef DEF_ERRNO
+@@ -535,8 +512,8 @@
+ char ofname[MAXPATHLEN]; /* Output filename */
+ int fgnd_flag = 0; /* Running in background (SIGINT=SIGIGN) */
+
+-long bytes_in; /* Total number of byte from input */
+-long bytes_out; /* Total number of byte to output */
++long long bytes_in; /* Total number of byte from input */
++long long bytes_out; /* Total number of byte to output */
+
+ /*
+ * 8086 & 80286 Has a problem with array bigger than 64K so fake the array
diff --git a/source/a/ncompress/ncompress.make.diff b/source/a/ncompress/ncompress.make.diff
new file mode 100644
index 000000000..2a0acc1cc
--- /dev/null
+++ b/source/a/ncompress/ncompress.make.diff
@@ -0,0 +1,60 @@
+--- ncompress-4.2.4/Makefile.orig Thu Oct 31 10:38:46 1996
++++ ncompress-4.2.4/Makefile Thu Oct 31 10:39:12 1996
+@@ -0,0 +1,57 @@
++# Makefile generated by build.
++
++# C complier
++CC=cc $(RPM_OPT_FLAGS)
++
++# Install directory for binarys
++BINDIR=/usr/bin
++
++# Install directory for manual
++MANDIR=/usr/man/man1
++
++# compiler options:
++# options is a collection of:
++#
++# -DAMIGA=1 Amiga support.
++# -DNOFUNCDEF=1 Disable libary function definitions in
++# compress42.c
++# -DDIRENT=1 Use dirent.h
++# -DSYSDIR=1 Use sys/dir.h
++# -DLSTAT=1 Use lstat for finding symlinks.
++# -DUTIME_H=1 Use utime.h
++# -DUSERMEM=<size> Availble memory for compress (default 800k).
++# -DREGISTERS=<nbr> Number of registers (default 2).
++# -DIBUFSIZ=<size> Input buffer size (default BUFSIZ).
++# -DOBUFSIZ=<size> Output buffer size (default BUFSIZ)
++# -DBYTEORDER=<order> Byte order (default: unknown).
++# -DNOALLIGN=1 Data word allignment (default: yes).
++# -DDEF_ERRNO=1 Define error (not defined in errno.h).
++# -DMAXSEG_64K=1 -BITS=16 Support segment processsor like 80286.
++#
++options= -DDIRENT=1 -DSYSDIR=1 -DUTIME_H=1 -DUSERMEM=800000 -DREGISTERS=20 -DIBUFSIZ=1024 -DOBUFSIZ=1024 -DBYTEORDER=$(ENDIAN)
++
++# libary options
++LBOPT=
++
++
++compress: Makefile compress42.c patchlevel.h
++ $(CC) -o compress $(options) "-DCOMPILE_DATE=\"`date`\"" compress42.c
++
++install: compress
++ [ -f $(BINDIR)/compress ] && \
++ { rm -f $(BINDIR)/compress.old ; \
++ mv $(BINDIR)/compress $(BINDIR)/compress.old ; }
++ rm -f $(BINDIR)/uncompress $(BINDIR)/zcat
++ cp compress $(BINDIR)/compress
++ strip $(BINDIR)/compress
++ rm -f $(BINDIR)/uncompress
++ ln $(BINDIR)/compress $(BINDIR)/uncompress
++ rm -f $(BINDIR)/zcat
++ ln -f $(BINDIR)/compress $(BINDIR)/zcat
++ cp zcmp zdiff zmore $(BINDIR)/.
++ chmod 0755 $(BINDIR)/compress $(BINDIR)/zcmp $(BINDIR)/zdiff $(BINDIR)/zmore
++ cp compress.1 zcmp.1 zmore.1 $(MANDIR)/.
++ chmod 0644 $(MANDIR)/compress.1 $(MANDIR)/zcmp.1 $(MANDIR)/zmore.1
++
++cleanup:
++ rm -f compress compress.def comp.log
diff --git a/source/a/ncompress/ncompress.zerobyteforce.diff b/source/a/ncompress/ncompress.zerobyteforce.diff
new file mode 100644
index 000000000..465d67e3e
--- /dev/null
+++ b/source/a/ncompress/ncompress.zerobyteforce.diff
@@ -0,0 +1,24 @@
+--- ncompress-4.2.4/compress42.c.zerobyteforce 2006-04-14 14:18:28.000000000 +0200
++++ ncompress-4.2.4/compress42.c 2006-04-14 14:20:15.000000000 +0200
+@@ -1145,10 +1145,12 @@
+ if (fdout != 1 && close(fdout))
+ write_error();
+
+- if (bytes_in == 0)
++ if ( (bytes_in == 0) && (force == 0 ) )
+ {
+ if (remove_ofname)
+ {
++ if(!quiet)
++ fprintf(stderr, "No compression -- %s unchanged\n", ifname);
+ if (unlink(ofname)) /* Remove input file */
+ {
+ fprintf(stderr, "\nunlink error (ignored) ");
+@@ -1157,6 +1159,7 @@
+ }
+
+ remove_ofname = 0;
++ exit_code = 2;
+ }
+ }
+ else
diff --git a/source/a/ncompress/slack-desc b/source/a/ncompress/slack-desc
new file mode 100644
index 000000000..24bfa0222
--- /dev/null
+++ b/source/a/ncompress/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+ncompress: ncompress (the classic *nix compression utility)
+ncompress:
+ncompress: Compress reduces the size of the named files using adaptive Lempel-Ziv
+ncompress: coding. Whenever possible, each file is replaced by one with the
+ncompress: extension .Z, while keeping the same ownership modes, access and
+ncompress: modification times. If no files are specified, the standard input is
+ncompress: compressed to the standard output. Compressed files can be restored
+ncompress: to their original form using uncompress or zcat.
+ncompress:
+ncompress:
+ncompress:
diff --git a/source/a/ntfs-3g/10-ntfs-3g-policy.fdi b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi
new file mode 100644
index 000000000..baaf81591
--- /dev/null
+++ b/source/a/ntfs-3g/10-ntfs-3g-policy.fdi
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deviceinfo version="0.2">
+ <device>
+ <match key="volume.fstype" string="ntfs">
+ <match key="@block.storage_device:storage.hotpluggable" bool="true">
+ <merge key="volume.fstype" type="string">ntfs-3g</merge>
+ <merge key="volume.policy.mount_filesystem" type="string">ntfs-3g</merge>
+ <append key="volume.mount.valid_options" type="strlist">locale=</append>
+ </match>
+ </match>
+ </device>
+</deviceinfo>
diff --git a/source/a/ntfs-3g/ntfs-3g.SlackBuild b/source/a/ntfs-3g/ntfs-3g.SlackBuild
new file mode 100755
index 000000000..2883d4fbf
--- /dev/null
+++ b/source/a/ntfs-3g/ntfs-3g.SlackBuild
@@ -0,0 +1,105 @@
+#!/bin/sh
+
+# Slackware build script for ntfs-3g
+
+# Copyright (c) 2008, Antonio Hernandez Blas <hba.nihilismus@gmail.com>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# 1.- Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Modified by Robby Workman <rworkman@slackware.com>
+# Modified by Patrick Volkerding <volkerdi@slackware.com>
+# Modified by Eric Hameleers <alien@slackware.com>
+
+PRGNAM=ntfs-3g
+VERSION=${VERSION:-2009.4.4}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PRGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP || exit 1
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1
+cd $PRGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --bindir=/bin \
+ --sbindir=/sbin \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --with-fuse=internal \
+ --disable-ldconfig \
+ --enable-static=no \
+ --build=${ARCH}-slackware-linux \
+ || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Add the HAL fdi file so that automount uses "ntfs-3g" as filesystem type
+mkdir -p $PKG/usr/share/hal/fdi/policy/10osvendor
+cat $CWD/10-ntfs-3g-policy.fdi \
+ > $PKG/usr/share/hal/fdi/policy/10osvendor/10-ntfs-3g-policy.fdi
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+rm -rf $PKG/usr/share/doc
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* CREDITS INSTALL NEWS README* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PRGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/ntfs-3g/slack-desc b/source/a/ntfs-3g/slack-desc
new file mode 100644
index 000000000..353695bbf
--- /dev/null
+++ b/source/a/ntfs-3g/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler-----------------------------------------------------|
+ntfs-3g: ntfs-3g (NTFS read-write filesystem driver)
+ntfs-3g:
+ntfs-3g: The NTFS-3G driver is an open source, freely available NTFS driver
+ntfs-3g: for Linux with read and write support. It provides safe and fast
+ntfs-3g: handling of the Windows XP, Windows Server 2003, Windows 2000 and
+ntfs-3g: Windows Vista file systems. Most POSIX file system operations are
+ntfs-3g: supported, with the exception of full file ownership and access
+ntfs-3g: rights support.
+ntfs-3g:
+ntfs-3g: Homepage for the ntfs-3g project: http://www.ntfs-3g.org
+ntfs-3g:
diff --git a/source/a/patch/patch.SlackBuild b/source/a/patch/patch.SlackBuild
new file mode 100755
index 000000000..fb0c06d98
--- /dev/null
+++ b/source/a/patch/patch.SlackBuild
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=2.5.4
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-patch
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf patch-${VERSION}
+tar xzvf $CWD/patch-${VERSION}.tar.gz
+cd patch-${VERSION}
+chown -R root:root .
+mkdir -p $PKG/usr/doc/patch-${VERSION}
+cp -a AUTHORS COPYING NEWS README $PKG/usr/doc/patch-${VERSION}
+chmod 644 $PKG/usr/doc/patch-${VERSION}/*
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+make CFLAGS=-O2 || exit 1
+mkdir -p $PKG/usr/bin
+cat patch > $PKG/usr/bin/patch
+chmod 755 $PKG/usr/bin/patch
+mkdir -p $PKG/usr/man/man1
+cat patch.man | gzip -9c > $PKG/usr/man/man1/patch.1.gz
+
+# Strip everything for good measure:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/patch-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/patch/slack-desc b/source/a/patch/slack-desc
new file mode 100644
index 000000000..5ddba89b5
--- /dev/null
+++ b/source/a/patch/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+patch: patch (apply a diff file to an original file or files)
+patch:
+patch: Patch is a utility used to apply diffs (or patches) to files, which
+patch: are usually source code.
+patch:
+patch: Larry Wall wrote the original version of patch. Paul Eggert removed
+patch: patch's arbitrary limits; added support for binary files, setting
+patch: file times, and deleting files; and made it conform better to POSIX.
+patch: Other contributors include Wayne Davison, who added unidiff support,
+patch: and David MacKenzie, who added configuration and backup support.
+patch:
diff --git a/source/a/pciutils/pciutils.SlackBuild b/source/a/pciutils/pciutils.SlackBuild
new file mode 100755
index 000000000..183c7adde
--- /dev/null
+++ b/source/a/pciutils/pciutils.SlackBuild
@@ -0,0 +1,106 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-3.1.3}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-pciutils
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf pciutils-$VERSION
+tar xvf $CWD/pciutils-$VERSION.tar.bz2 || exit 1
+cd pciutils-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Fetch the latest pci.ids:
+rm -f pci.ids
+sh update-pciids.sh
+# Now fix the update-pciids script and preinstall it before 'make install'
+# decides that it knows best
+zcat $CWD/pciutils.ids.dest.diff.gz | patch -p1 --verbose || exit 1
+mkdir -p $PKG/usr/sbin
+cat update-pciids.sh > $PKG/usr/sbin/update-pciids
+chmod 755 $PKG/usr/sbin/update-pciids
+
+make \
+ PREFIX=/usr \
+ SBINDIR=/sbin \
+ LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ MANDIR=/usr/man \
+ OPT="$SLKCFLAGS" \
+ $NUMJOBS || exit 1
+
+make install install-lib \
+ PREFIX=/usr \
+ SBINDIR=/sbin \
+ LIBDIR=/usr/lib${LIBDIRSUFFIX} \
+ MANDIR=/usr/man \
+ DESTDIR=$PKG
+
+# Do not compress pci.ids - hal-0.5.11 needs it uncompressed
+( cd $PKG/usr/share ; gzip -d pci.ids.gz )
+# Remove the update-pciids script that 'make install' placed
+rm -f $PKG/sbin/update-pciids
+
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $( find . -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/usr/doc/pciutils-$VERSION
+cp -a \
+ ChangeLog README TODO \
+ $PKG/usr/doc/pciutils-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/pciutils-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/pciutils/pciutils.ids.dest.diff b/source/a/pciutils/pciutils.ids.dest.diff
new file mode 100644
index 000000000..98d152c2b
--- /dev/null
+++ b/source/a/pciutils/pciutils.ids.dest.diff
@@ -0,0 +1,14 @@
+diff -Nur pciutils-3.1.3.orig/update-pciids.sh pciutils-3.1.3/update-pciids.sh
+--- pciutils-3.1.3.orig/update-pciids.sh 2008-11-10 17:11:51.000000000 -0600
++++ pciutils-3.1.3/update-pciids.sh 2009-07-29 02:23:53.102308103 -0500
+@@ -3,8 +3,8 @@
+ [ "$1" = "-q" ] && quiet=true || quiet=false
+
+ set -e
+-SRC="http://pciids.sourceforge.net/v2.2/pci.ids"
+-DEST=pci.ids
++SRC="http://pciids.sourceforge.net/pci.ids"
++DEST=/usr/share/pci.ids
+ PCI_COMPRESSED_IDS=
+ GREP=grep
+
diff --git a/source/a/pciutils/pciutils.url b/source/a/pciutils/pciutils.url
new file mode 100644
index 000000000..e77494b5e
--- /dev/null
+++ b/source/a/pciutils/pciutils.url
@@ -0,0 +1,2 @@
+#ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
+ftp.kernel.org:/pub/software/utils/pciutils/
diff --git a/source/a/pciutils/slack-desc b/source/a/pciutils/slack-desc
new file mode 100644
index 000000000..913f9646a
--- /dev/null
+++ b/source/a/pciutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+pciutils: pciutils (PCI utilities)
+pciutils:
+pciutils: lspci displays detailed information about all PCI buses and devices
+pciutils: in the system, replacing the original /proc/pci interface.
+pciutils:
+pciutils: setpci allows reading from and writing to PCI device configuration
+pciutils: registers. For example, you can adjust the latency timers with it.
+pciutils:
+pciutils: See the manual pages for more details.
+pciutils:
+pciutils:
diff --git a/source/a/pcmciautils/config/60-pcmcia.rules b/source/a/pcmciautils/config/60-pcmcia.rules
new file mode 100644
index 000000000..677da01bf
--- /dev/null
+++ b/source/a/pcmciautils/config/60-pcmcia.rules
@@ -0,0 +1,22 @@
+# PCMCIA devices:
+#
+# Very few CIS firmware entries (which we use for matching)
+# are so broken that we need to read out random bytes of it
+# instead of the manufactor, card or product ID. Then the
+# matching is done in userspace.
+ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \
+ RUN+="/sbin/pcmcia-check-broken-cis"
+
+# However, the "weak" matching by func_id is only allowed _after_ modprobe
+# returns, so that "strong" matches have a higher priority.
+ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \
+ RUN+="/bin/sh -c 'echo 1 > /sys/$DEVPATH/allow_func_id_match'"
+
+# PCMCIA sockets:
+#
+# modprobe the pcmcia bus module so that 16-bit PCMCIA devices work
+ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia"
+
+# if this is a PCMCIA socket which needs a resource database,
+# pcmcia-socket-startup sets it up
+ACTION=="add", SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/pcmcia-socket-startup"
diff --git a/source/a/pcmciautils/config/config.opts b/source/a/pcmciautils/config/config.opts
new file mode 100644
index 000000000..5b8d5faf3
--- /dev/null
+++ b/source/a/pcmciautils/config/config.opts
@@ -0,0 +1,71 @@
+#
+# Local PCMCIA Configuration File
+#
+#----------------------------------------------------------------------
+#
+# System resources available for PCMCIA cards
+#
+# NOTE: these settings have no effect on resources assigned to a
+# CardBus bridge device itself; this file only affects resources
+# assigned to cards. Also, interrupt settings here will only affect
+# ISA bus interrupts assigned to 16-bit cards. PCI interrupts
+# generally can't be reconfigured.
+#
+# With the kernel PCMCIA subsystem, these settings also have no effect
+# at all on resources used for 32-bit CardBus cards. Those are set by
+# the PCI hotplug subsystem.
+#
+
+# These are the official ports to use from pcmcia-cs:
+#include port 0x100-0x4ff, port 0x800-0x8ff, port 0xc00-0xcff
+# However, ports 0x810-0x81f hurt on some DELL machines and
+# ports 0x3b0-0x3df hurt on some FSC machines, so we use this port
+# list instead:
+include port 0x100-0x3af, port 0x3e0-0x4ff, port 0xc00-0xcff
+
+include memory 0xc0000-0xfffff
+include memory 0xa0000000-0xa0ffffff, memory 0x60000000-0x60ffffff
+
+# High port numbers do not always work...
+# include port 0x1000-0x17ff
+
+# Extra port range for IBM Token Ring
+include port 0xa00-0xaff
+
+# Resources we should not use, even if they appear to be available
+
+# First built-in serial port
+exclude irq 4
+# Second built-in serial port
+#exclude irq 3
+# First built-in parallel port
+exclude irq 7
+
+#----------------------------------------------------------------------
+
+# Examples of options for loadable modules
+
+# To fix sluggish network with IBM ethernet adapter...
+#module "pcnet_cs" opts "mem_speed=600"
+
+# Options for IBM Token Ring adapters
+#module "ibmtr_cs" opts "mmiobase=0xd0000 srambase=0xd4000"
+
+# Options for Raylink/WebGear driver: uncomment only one line...
+# These are the default settings for use with the WebGear Windows driver:
+#module "ray_cs" opts "essid=NETWORK_NAME hop_dwell=128 beacon_period=256 translate=0"
+# Generic ad-hoc network
+#module "ray_cs" opts "essid=ADHOC_ESSID hop_dwell=128 beacon_period=256 translate=1"
+# Infrastructure network for older cards
+#module "ray_cs" opts "net_type=1 essid=ESSID1"
+# Infrastructure network for WebGear
+#module "ray_cs" opts "net_type=1 essid=ESSID1 translate=1 hop_dwell=128 beacon_period=256"
+
+# Options for WaveLAN/IEEE driver (AccessPoint mode)...
+#module "wvlan_cs" opts "station_name=MY_PC"
+# Options for WaveLAN/IEEE driver (ad-hoc mode)...
+#module "wvlan_cs" opts "port_type=3 channel=1 station_name=MY_PC"
+
+# Options for Xircom Netwave driver...
+#module "netwave_cs" opts "domain=0x100 scramble_key=0x0"
+
diff --git a/source/a/pcmciautils/config/rc.pcmcia b/source/a/pcmciautils/config/rc.pcmcia
new file mode 100755
index 000000000..1f21be84e
--- /dev/null
+++ b/source/a/pcmciautils/config/rc.pcmcia
@@ -0,0 +1,65 @@
+#!/bin/sh
+#
+# rc.pcmcia: Script to initialize PCMCIA subsystem.
+# Based in an example found in cardmgr-to-pcmciautils.txt
+# and in Slackware rc.pcmcia found in pcmcia-cs package.
+#
+
+# Set this to the driver to use, one of:
+# probe, yenta_socket, i82365, i82092, pd6729, tcic, etc.
+#
+DRIVER=probe
+DRIVER_OPTS=
+
+case "$1" in
+ start)
+ echo "Starting PCMCIA services:"
+ fgrep -q pcmcia /proc/devices
+ if [ $? -ne 0 ] ; then
+ if [ "$DRIVER" = "probe" ]; then
+ echo " <Probing for PCIC: edit /etc/rc.d/rc.pcmcia>"
+ for DRV in yenta_socket i82365 tcic ; do
+ /sbin/modprobe $DRV > /dev/null 2>&1
+ /sbin/pccardctl status | grep -q Socket && break
+ /sbin/modprobe -r $DRV > /dev/null 2>&1
+ done
+ else
+ echo " <Loading PCIC: $DRIVER>"
+ /sbin/modprobe $DRIVER $DRIVER_OPTS > /dev/null 2>&1
+ fi
+ /sbin/modprobe pcmcia > /dev/null 2>&1 # just in case it's not auto-loaded
+ else
+ echo " <PCIC already loaded>"
+ fi
+ ;;
+
+ stop)
+ echo -n "Shutting down PCMCIA services: "
+ echo -n "cards "
+ /sbin/pccardctl eject
+ MODULES=`/sbin/lsmod | grep "pcmcia " | awk '{print $4}' | tr , ' '`
+ for i in $MODULES ; do
+ echo -n "$i "
+ /sbin/modprobe -r $i > /dev/null 2>&1
+ done
+ echo -n "pcmcia "
+ /sbin/modprobe -r pcmcia > /dev/null 2>&1
+ if [ "$DRIVER" = "probe" ]; then
+ for DRV in yenta_socket i82365 tcic ; do
+ grep -qw $DRV /proc/modules && modprobe -r $DRV && \
+ echo -n "$DRV " && break
+ done
+ else
+ /sbin/modprobe -r $DRIVER > /dev/null 2>&1
+ fi
+ echo -n "rsrc_nonstatic "
+ /sbin/modprobe -r rsrc_nonstatic > /dev/null 2>&1
+ echo "pcmcia_core"
+ /sbin/modprobe -r pcmcia_core > /dev/null 2>&1
+ ;;
+
+ restart)
+ $0 stop
+ $0 start
+ ;;
+esac
diff --git a/source/a/pcmciautils/doinst.sh b/source/a/pcmciautils/doinst.sh
new file mode 100644
index 000000000..d01ddb5c4
--- /dev/null
+++ b/source/a/pcmciautils/doinst.sh
@@ -0,0 +1,13 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/rc.d/rc.pcmcia.new
+config etc/pcmcia/config.opts.new
diff --git a/source/a/pcmciautils/pcmciautils.SlackBuild b/source/a/pcmciautils/pcmciautils.SlackBuild
new file mode 100755
index 000000000..dcf70895a
--- /dev/null
+++ b/source/a/pcmciautils/pcmciautils.SlackBuild
@@ -0,0 +1,113 @@
+#!/bin/sh
+
+# Slackware build script for pcmciautils
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-015}
+ARCH=${ARCH:-x86_64}
+# parallel build will cause an error building ccdv:
+NUMJOBS=${NUMJOBS:-" -j1 "}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-pcmciautils
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf pcmciautils-$VERSION
+tar xvf $CWD/pcmciautils-$VERSION.tar.bz2
+cd pcmciautils-$VERSION
+chown -R root.root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Add some firmware:
+( cd $PKG
+ tar xvf $CWD/cis-cs-3.2.8.tar.gz
+ chown -R root:root lib
+)
+
+rm -rf $PKG/etc/*
+mkdir -p $PKG/etc/pcmcia $PKG/etc/rc.d $PKG/lib/udev/rules.d
+
+cp -a $CWD/config/rc.pcmcia $PKG/etc/rc.d/rc.pcmcia.new
+chown root:root $PKG/etc/rc.d/rc.pcmcia.new
+chmod 0755 $PKG/etc/rc.d/rc.pcmcia.new
+
+cp -a $CWD/config/config.opts $PKG/etc/pcmcia/config.opts.new
+chown root:root $PKG/etc/pcmcia/config.opts.new
+chmod 0644 $PKG/etc/pcmcia/config.opts.new
+
+cp -a udev/60-pcmcia.rules $PKG/lib/udev/rules.d/60-pcmcia.rules
+chown root:root $PKG/lib/udev/rules.d/60-pcmcia.rules
+chmod 0644 $PKG/lib/udev/rules.d/60-pcmcia.rules
+
+# Create some symlinks that the udev rules file wants
+( cd $PKG/lib/udev
+ ln -s ../../sbin/pcmcia-check-broken-cis .
+ ln -s ../../sbin/pcmcia-socket-startup .
+)
+
+mv $PKG/usr/share/man $PKG/usr
+rmdir $PKG/usr/share
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/pcmciautils-$VERSION
+cp COPYING* $PKG/usr/doc/pcmciautils-$VERSION
+
+mkdir $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/pcmciautils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/pcmciautils/slack-desc b/source/a/pcmciautils/slack-desc
new file mode 100644
index 000000000..c9958af84
--- /dev/null
+++ b/source/a/pcmciautils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler-------------------------------------------------------|
+pcmciautils: pcmciautils (Utilities for using PCMCIA cards with 2.6+ kernels)
+pcmciautils:
+pcmciautils: This package provides PCMCIA tools that replace the pcmcia-cs tools
+pcmciautils: used with the 2.4.x Linux kernel. PCMCIA cards are commonly used
+pcmciautils: in laptops to provide expanded capabilities such as network
+pcmciautils: connections, modems, increased memory, and more.
+pcmciautils:
+pcmciautils:
+pcmciautils:
+pcmciautils:
+pcmciautils:
diff --git a/source/a/pkgtools/manpages/explodepkg.8 b/source/a/pkgtools/manpages/explodepkg.8
new file mode 100644
index 000000000..3e11fddc8
--- /dev/null
+++ b/source/a/pkgtools/manpages/explodepkg.8
@@ -0,0 +1,41 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH EXPLODEPKG 8 "21 May 1994" "Slackware Version 2.0.0"
+.SH NAME
+explodepkg \- Extract the contents of a tar+compression package (such as a Slackware
+software package) in the current directory.
+.SH SYNOPSIS
+.B explodepkg
+.BI package
+.BI [
+.BI package2,
+.BI package3,
+.BI ...
+.BI ]
+.SH DESCRIPTION
+.B explodepkg
+uncompresses and untars Slackware *.tgz (or .tbz, .tlz, .txz) packages (or any archive
+that was created by
+compressing a tarfile with one of the supported compression utilities) in the current directory. It is not usually
+used to install packages, since it doesn't execute the installation scripts
+in ./install or ./var/log/setup. The primary use for
+.B explodepkg
+is in package maintenance - exploding a package in a subdirectory, making fixes
+to it or upgrading the software, and then building the updated package with
+.B makepkg.
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR tar(1),
+.BR gzip(1),
+.BR installpkg(8),
+.BR makepkg(8),
+.BR pkgtool(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/installpkg.8 b/source/a/pkgtools/manpages/installpkg.8
new file mode 100644
index 000000000..2d77f10e7
--- /dev/null
+++ b/source/a/pkgtools/manpages/installpkg.8
@@ -0,0 +1,91 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH INSTALLPKG 8 "22 Nov 2001" "Slackware Version 8.1.0"
+.SH NAME
+installpkg \- install Slackware packages.
+.SH SYNOPSIS
+.B installpkg
+[
+.B \--warn
+]
+[
+.B \--md5sum
+]
+[
+.B \--root /otherroot
+]
+[
+.B \--infobox
+]
+[
+.B \--menu
+]
+[
+.B \--ask
+]
+[
+.B \--priority ADD|REC|OPT|SKP
+]
+[
+.B \--tagfile /somedir/tagfile
+]
+.BI packagename
+[
+.B packagename2 ...
+]
+.SH DESCRIPTION
+.B installpkg
+installs single or multiple *.tgz (or .tbz, .tlz, .txz) binary packages designed
+for use with the Slackware Linux distribution onto your system.
+.SH OPTIONS
+.TP
+.B \--warn packagename
+Generate a report to the standard output about which files and directories
+would be removed or overwritten if you install the package, but do not
+actually install it.
+.TP
+.B \--md5sum packagename
+Record the package md5sum in the metadata written in /var/log/packages.
+.TP
+.B \--root /otherroot
+Install using a location other than / (the default) as the root of the
+filesystem to install on. In the example given, use /otherroot instead. Setting
+the ROOT environment variable does the same thing.
+.TP
+.B \--infobox
+Use /bin/dialog to display an informational dialog as the package is installed.
+Primarily used when installpkg is called from other scripts.
+.TP
+.B \--menu
+Use /bin/dialog to display a menu asking the user if they would like to install the
+package(s) or not. Generally used when installpkg is called from other scripts.
+.TP
+.B \--ask
+Used with -menu mode. When selected, always ask if a package should be
+installed regardless of what the package's priority is.
+.TP
+.B \--priority ADD|REC|OPT|SKP
+When installing with the \-menu option, package priority levels (found in the file
+"tagfile" in the package directory) are used to automatically install (ADD) or
+skip (SKP) a package, or to suggest recommended (REC) or optional (OPT) to the user
+if a menu is displayed. If a priority is set on the command line, it will override
+the values set in the tagfile for the entire package list.
+.TP
+.B \--tagfile /somedir/tagfile
+Specify a different file to use for package priorities (in this example, /somedir/tagfile
+will be used). The default is "tagfile" in the package's directory.
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR makepkg(8),
+.BR removepkg(8),
+.BR explodepkg(8),
+.BR pkgtool(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/makepkg.8 b/source/a/pkgtools/manpages/makepkg.8
new file mode 100644
index 000000000..b280ce51f
--- /dev/null
+++ b/source/a/pkgtools/manpages/makepkg.8
@@ -0,0 +1,135 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH MAKEPKG 8 "21 May 1994" "Slackware Version 2.0.0"
+.SH NAME
+makepkg \- make Slackware packages.
+.SH SYNOPSIS
+.B makepkg
+[
+.B -l, --linkadd y|n
+]
+[
+.B -c, --chown y|n
+]
+.BI packagename
+.SH DESCRIPTION
+.B makepkg
+creates a new Slackware compatible package.
+The package is constructed using the contents of the current directory and
+all subdirectories. If symbolic links exist, they will be converted to script
+code to recreate them when the package is installed. This code will be
+appended to the primary installation script
+.B ( install/doinst.sh )
+, or, if that script does not exist it will be created with those contents.
+The package will be written out to the file
+.BI packagename
+which should be the full name, including the extension. This is usually .tgz,
+but .tbz, .tlz, and .txz are also accepted. The proper compression utility
+(gzip, bzip2, lzma, or xz) needs to be installed on the machine.
+.SH OPTIONS
+.TP
+.B \-l, --linkadd y|n
+If y, add any symbolic links found to the install script (doinst.sh) and
+delete them. This is the recommended action. If this option is not used,
+makepkg will prompt if symbolic links are found.
+.TP
+.B \-p, --prepend
+If this option is given, then any symbolic links added to doinst.sh will be
+prepended to the existing script. This is useful for packages that contain
+shared libraries that need to be linked first because programs will use them
+later in the doinst.sh script.
+.TP
+.B \-c, --chown y|n
+If y, makepkg will reset all directory permissions to 755 and ownership to root:root.
+In general, you should have the permissions and ownerships worked out yourself, so
+relying on setting this option to y is somewhat sloppy. It is not the default. If an
+option is not provided, makepkg will prompt.
+.SH INSTALLATION SCRIPTS
+There are 3 types of installation scripts supported in the Slackware package
+system.
+.TP
+The first is the
+.B primary
+installation script. This is found in the subdirectory
+.B ./install
+and must have the name
+.B doinst.sh
+in order to be recognized. This ( and other install scripts ) should be written
+using the basic Bourne shell syntax recognized by the
+.B ash
+shell, since this is the shell that will be used to execute the script when
+installing from a Slackware install floppy. This is a common trap - beware of
+using
+.B bash
+syntax extensions, because the script will work fine when installed from the
+hard drive, but will bomb out when installed from floppy. If the package is
+for personal use, this isn't a problem. Be careful, though, if you plan to
+share your package with other users. The
+.B primary installation script
+is executed immediately after the package is installed with
+.B installpkg, pkgtool,
+or
+.B setup.
+.TP
+The second type of script is the
+.B configuration
+script. This is found in the subdirectory
+.B ./var/log/setup
+and must have a name that starts with
+.B setup.
+in order to be recongnized. An example is the timezone script:
+.B /var/log/setup/setup.timeconfig.
+These scripts are executed during the
+.B CONFIGURE
+phase of
+.B setup,
+and are re-executed each time the user runs the
+.B CONFIGURE
+option from
+.B setup
+from then on.
+Typically, the user will go through this phase of setup following the
+installation of all the packages. Anything that needs to be interactive
+should go in one of these scripts to avoid halting the package installation
+process during
+.B setup.
+.TP
+The third type of script is the
+.B onlyonce
+script. Like the name suggests, these are executed only once after the package
+is installed, in contrast to the standard
+.B configuration
+script. These scripts are also found in the
+.B ./var/log/setup
+directory and must have a name that starts with
+.B setup.,
+but in addition the name must contain the string
+.B onlyonce.
+An example might be a script with the name
+.B /var/log/setup/setup.onlyonce.testscript
+.SH PACKAGE FORMAT
+.B makepkg
+uses GNU tar plus GNU gzip to create its packages. A simple way to
+extract the contents of a package (without executing the installation
+scripts, of course) is to use a command like this:
+.TP
+explodepkg package.tgz
+.TP
+Or, something like this:
+.TP
+gzip -dc package.tgz | tar xvvf -
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR installpkg(8),
+.BR explodepkg(8),
+.BR removepkg(8),
+.BR pkgtool(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/pkgtool.8 b/source/a/pkgtools/manpages/pkgtool.8
new file mode 100644
index 000000000..56e392176
--- /dev/null
+++ b/source/a/pkgtools/manpages/pkgtool.8
@@ -0,0 +1,95 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH PKGTOOL 8 "24 Nov 1995" "Slackware Version 3.1.0"
+.SH NAME
+pkgtool \- software package maintenance tool.
+.SH SYNOPSIS
+.B pkgtool
+.LP
+.B pkgtool
+[
+.B --sets #a#b#c#
+]
+[
+.B --source_mounted
+]
+[
+.B --ignore_tagfiles
+]
+[
+.B --tagfile tagfile
+]
+[
+.B --source_dir directory
+]
+[
+.B --target_dir directory
+]
+[
+.B --source_device device
+]
+.SH DESCRIPTION
+.B pkgtool
+is a menu-driven package maintenance tool provided with the Slackware Linux
+distribution. It allows the user to install, remove, or view
+software packages through an interactive
+system. Pkgtool can also be used to re-run the menu-driven scripts normally
+executed at the end of a Slackware installation. This is useful for doing
+basic reconfiguration (like changing the mouse type).
+.SH OPTIONS
+Most users will not want to use any options when running
+.B pkgtool.
+These are generally used only when
+.B pkgtool
+is run during the initial system installation.
+Feel free to try them, but be careful.
+.TP
+.B \--sets #A#B#C#
+Install the disk sets A, B, C. Seperate the disk set names by '#' symbols.
+.TP
+.B \--source_mounted
+When this flag is present,
+.B pkgtool
+will not attempt to unmount and remount the source device with each disk.
+.TP
+.B \--ignore_tagfiles
+When this flag is present,
+.B pkgtool
+will install every package encountered no matter what the tagfiles say.
+.TP
+.B \--tagfile tagfile
+This flag is used to specify from the command line which tagfile should be
+used for the installation.
+.TP
+.B \--source_dir directory
+Used when installing multiple packages from disk sets. This is the directory
+in which the subdirectories for each disk are found. This isn't used when
+installing from floppy.
+.TP
+.B \--target_dir directory
+The directory where the target root directory is located. This is '/' when
+installing on the hard drive, or typically '/mnt' when installing from an
+install disk.
+.TP
+.B \--source_device device
+The source device to install from. This is not used if you've provided the
+.B \--source_mounted
+flag. It's usually used when installing from floppy, as in:
+ \--source_device /dev/fd0u1440
+or
+ \--source_device /dev/fd1h1200.
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR makepkg(8),
+.BR explodepkg(8),
+.BR installpkg(8),
+.BR removepkg(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/removepkg.8 b/source/a/pkgtools/manpages/removepkg.8
new file mode 100644
index 000000000..3bd8bf7a7
--- /dev/null
+++ b/source/a/pkgtools/manpages/removepkg.8
@@ -0,0 +1,108 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH REMOVEPKG 8 "23 Nov 2001" "Slackware Version 8.1.0"
+.SH NAME
+removepkg \- remove Slackware packages.
+.SH SYNOPSIS
+.B removepkg
+.BI packagename
+.LP
+[
+.B ROOT=/mnt
+]
+.B removepkg
+[
+.B \-copy
+]
+[
+.B \-keep
+]
+[
+.B \-preserve
+]
+[
+.B \-warn
+]
+.BI packagename
+.SH DESCRIPTION
+.B removepkg
+removes a previously installed Slackware package, while writing a progress
+report to the standard output. A package may be specified either by the
+full package name (as you'd see listed in /var/log/packages/), or by the
+base package name. For example, the package foo-1.0-i486-1.tgz may be removed
+with any of the following commands:
+
+removepkg foo-1.0-i486-1.tgz (also recognized: .tbz, .tlz, .txz)
+
+removepkg foo-1.0-i486-1
+
+removepkg foo.tgz
+
+removepkg foo
+
+When deleting files,
+.B removepkg
+will analyze the contents of the other packages installed on your system, and
+will only delete the files that are unique to the package being removed.
+Similarly, the installation scripts for all the other packages will be
+considered when deciding whether or not to delete symbolic links from the
+package.
+.LP
+Removing a package (as well as installing one) can be a dangerous undertaking.
+For this reason, there is the
+.B \-warn
+option available. When you use this,
+.B removepkg
+will not actually remove any files or links, but will output a detailed report
+of what it would do if you actually did remove the package. It's suggested that
+you do this (and maybe pipe the output to
+.B less
+) before removing packages to make sure you've backed up anything that might
+be important.
+.LP
+When removing a package, it's original file index will be moved from
+/var/log/packages to /var/log/removed_packages. Likewise, it's installation
+script will be moved from /var/log/scripts to /var/log/removed_scripts.
+.SH OPTIONS
+.TP
+.B \-warn packagename
+Generate a report to the standard output about which files and directories
+would be removed, but does not actually remove the package.
+.TP
+.B \-preserve packagename
+If specified, the complete package subtree is reconstructed in
+/var/log/setup/tmp/preserved_packages/packagename.
+.TP
+.B \-copy packagename
+Construct a copy of the package under /var/log/setup/tmp/preserved_packages/packagename,
+but don't remove it. (same effect as \-warn \-preserve)
+.TP
+.B \-keep
+Save the intermediate files created by removepkg (delete_list,
+required_files, uniq_list, del_link_list, required_links,
+required_list). Mostly useful for debugging purposes.
+.SH " "
+It's possible to remove a package from a filesystem
+other than / by supplying
+.B removepkg
+with a
+.B ROOT
+environment variable:
+.TP
+.B ROOT=/mnt removepkg package
+
+.SH AUTHORS
+Patrick J. Volkerding <volkerdi@slackware.com>,
+with enhancements by Christian Franke <c.franke@acm.org>
+.SH "SEE ALSO"
+.BR installpkg(8),
+.BR makepkg(8),
+.BR pkgtool(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/setup.8-deprecated b/source/a/pkgtools/manpages/setup.8-deprecated
new file mode 100644
index 000000000..533974222
--- /dev/null
+++ b/source/a/pkgtools/manpages/setup.8-deprecated
@@ -0,0 +1,120 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH SETUP 8 "21 May 1994" "Slackware Version 2.0.0"
+.SH NAME
+setup \- Slackware system setup tool.
+.SH SYNOPSIS
+.B setup
+.LP
+.SH DESCRIPTION
+.B setup
+is the system installation and setup tool provided with the Slackware Linux
+distribution.
+.LP
+.B setup
+is usually used to install software packages from your hard drive, a CD,
+NFS, or floppy disks. It is also a frontend for
+.B pkgtool
+and many configuration scripts that come with various packages, such as the
+scripts which allow you to install LILO, configure your timezone, set your
+keyboard fonts, make bootdisks, and many other tasks.
+.SH OPTIONS
+.TP
+.B HELP
+Read the
+.B setup
+help file.
+.TP
+.B KEYMAP
+Change your keyboard map to one of many international and specialized keymaps
+available.
+.B NOTE:
+This change will not become permanent unless you go through the
+.B CONFIGURE option.
+.TP
+.B MAKE TAGS
+This allows you to write out custom tagfiles. A
+.B tagfile
+is a list of package names followed by one of these tags:
+.B ADD
+(required),
+.B SKP
+(skip),
+.B REC
+(recommended) or,
+.B OPT
+(optional). These allow you to completely automate your software installation.
+You can either put these files on the first disk of each disk series
+(optionally using a custom 3 character extension), or in a custom location
+altogether, such as on a floppy disk in ./a1, ./ap1, ./d1, ..., directories.
+The format of a line in a
+.B tagfile
+is like this:
+.LP
+package:
+.B TAG
+.TP
+.B SOURCE
+Select your source media, such as hard disk, NFS, CD, or floppy. You should
+select installation from a directory if your CD or NFS directory has already
+been mounted, as it probably is if you're using
+.B setup
+on your hard drive.
+.TP
+.B TARGET
+Select your target directory. For testing purposes, you may install the
+packages to a directory other than '/'. Don't expect them to run from there,
+though.
+.TP
+.B DISK SETS
+Select the disk sets you want to install. You can also install custom disk
+sets by tagging the
+.B CUS
+selection. The disk sets must be Slackware-like: they require the diskxxx?
+index on each disk, such as diskxyz1 for the first disk of the XYZ series.
+On the last disk there must be a file called
+.B install.end
+to signal the end of the disk series.
+.TP
+.B INSTALL
+Once you've gone through
+.B SOURCE
+and
+.B DISK SETS
+( and possibly
+.B TARGET
+), then you select this choice to go on with the software installation. You'll
+be asked what type of tagfiles you want to use and then
+.B pkgtool
+will be called to install the software.
+.TP
+.B CONFIGURE
+This option runs through several scripts that configure various aspects of your
+Linux system. These might include LILO installation, timezone configuration,
+and other things.
+.TP
+.B PKGTOOL
+This option calls the
+.B pkgtool(8)
+utility for you.
+.TP
+.B EXIT
+Exit the
+.B setup
+program.
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR makepkg(8),
+.BR installpkg(8),
+.BR explodepkg(8),
+.BR removepkg(8),
+.BR pkgtool(8),
+.BR upgradepkg(8)
diff --git a/source/a/pkgtools/manpages/upgradepkg.8 b/source/a/pkgtools/manpages/upgradepkg.8
new file mode 100644
index 000000000..8ca7811ba
--- /dev/null
+++ b/source/a/pkgtools/manpages/upgradepkg.8
@@ -0,0 +1,98 @@
+.\" -*- nroff -*-
+.ds g \" empty
+.ds G \" empty
+.\" Like TP, but if specified indent is more than half
+.\" the current line-length - indent, use the default indent.
+.de Tp
+.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
+.el .TP "\\$1"
+..
+.TH UPGRADEPKG 8 "31 May 2002" "Slackware Version 8.1.0"
+.SH NAME
+upgradepkg \- upgrade Slackware packages.
+.SH SYNOPSIS
+.B upgradepkg
+[
+.B --dry-run
+]
+[
+.B --install-new
+]
+[
+.B --reinstall
+]
+[
+.B --verbose
+]
+.BI newpackagename
+.BI [ newpackagename2 ]
+.LP
+.B upgradepkg
+[
+.B --dry-run
+]
+[
+.B --install-new
+]
+[
+.B --reinstall
+]
+[
+.B --verbose
+]
+.BI oldpackagename%newpackagename
+.BI [ old2%new2 ]
+.SH DESCRIPTION
+.B upgradepkg
+upgrades a Slackware package from an older version to a
+newer one. It does this by
+.B INSTALLING
+the new package onto the system, and then
+.B REMOVING
+any files from the old package that aren't in the new package.
+If the old and new packages have the same name, a single argument is all that
+is required. If the packages have different names, supply the name of the
+old package followed by a percent symbol (%), then the name of the new package.
+Do not add any extra whitespace between pairs of old/new package names.
+
+If upgradepkg finds more than one installed package matching the old package's
+name, it will remove them all.
+.TP
+To upgrade in a directory other than / (such as /mnt):
+.TP
+ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz)
+.SH OPTIONS
+.TP
+.B \--dry-run
+Output a report about which packages would be installed or upgraded
+but don't actually perform the upgrades.
+.TP
+.B \--install-new
+Normally upgradepkg only upgrades packages that are already installed on the system, and
+will skip any packages that do not already have a version installed.
+If
+.B --install-new
+is specified, the behavior is modified to install new packages in addition to upgrading
+existing ones.
+.TP
+.B \--reinstall
+Upgradepkg usually skips packages if the exact same package
+(matching name, version, arch, and build number) is already installed on the system.
+Use the --reinstall option if you want to upgrade all packages even if the same
+version is already installed.
+.TP
+.B \--verbose
+Show all the gory details of the upgrade.
+.SH BUGS
+Before upgrading a package, save any configuration files (such as in /etc)
+that you wish to keep. Sometimes these will be preserved, but it depends on
+the package structure. If you want to force new versions of the config files
+to be installed, remove the old ones manually prior to running upgradepkg.
+.SH AUTHOR
+Patrick J. Volkerding <volkerdi@slackware.com>
+.SH "SEE ALSO"
+.BR makepkg(8),
+.BR installpkg(8),
+.BR removepkg(8),
+.BR explodepkg(8),
+.BR pkgtool(8)
diff --git a/source/a/pkgtools/obsolete-scripts/README b/source/a/pkgtools/obsolete-scripts/README
new file mode 100644
index 000000000..3e0060de1
--- /dev/null
+++ b/source/a/pkgtools/obsolete-scripts/README
@@ -0,0 +1,5 @@
+This directory contains retired installation scripts.
+
+setup.90.modem-device is obsolete since udev will overwrite any
+existing devices or links in /dev.
+
diff --git a/source/a/pkgtools/obsolete-scripts/setup.90.modem-device b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device
new file mode 100644
index 000000000..a1c5993af
--- /dev/null
+++ b/source/a/pkgtools/obsolete-scripts/setup.90.modem-device
@@ -0,0 +1,44 @@
+#!/bin/sh
+#BLURB="Select modem device"
+TMP=/var/log/setup/tmp
+T_PX="$1"
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+
+dialog --title "MODEM CONFIGURATION" --menu "This part of the configuration \
+process will create a /dev/modem link pointing to the callout device (ttyS0, \
+ttyS1, ttyS2, ttyS3) representing your default modem. You \
+can change this link \
+later if you move your modem to a different port. If your modem is a PCI card, \
+it will probably use /dev/ttyS4 or higher. \
+Please select the callout \
+device which you would like to use for your modem:" 22 68 9 \
+"no modem" "do not set a /dev/modem link" \
+"/dev/ttyS0" "(COM1: under DOS)" \
+"/dev/ttyS1" "(COM2: under DOS)" \
+"/dev/ttyS2" "(COM3: under DOS)" \
+"/dev/ttyS3" "(COM4: under DOS)" \
+"/dev/ttyS4" "PCI modem" \
+"/dev/ttyS5" "PCI modem" \
+"/dev/ttyS6" "PCI modem" \
+"/dev/ttyS7" "PCI modem" \
+"/dev/ttyS8" "PCI modem" \
+"/dev/ttyS9" "PCI modem" \
+"/dev/ttyS10" "PCI modem" \
+"/dev/ttyS11" "PCI modem" \
+"/dev/ttyS12" "PCI modem" \
+"/dev/ttyS13" "PCI modem" \
+"/dev/ttyS14" "PCI modem" \
+"/dev/ttyS15" "PCI modem" \
+2> $TMP/callout
+
+if [ $? = 0 ]; then
+ MODEM_DEVICE="`cat $TMP/callout`"
+ if [ ! "$MODEM_DEVICE" = "no modem" ]; then
+ MODEM_DEVICE=`basename $MODEM_DEVICE`
+ ( cd $T_PX/dev ; ln -sf $MODEM_DEVICE modem )
+ fi
+fi
+rm -f $TMP/callout
+
diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild
new file mode 100755
index 000000000..da70e19f0
--- /dev/null
+++ b/source/a/pkgtools/pkgtools.SlackBuild
@@ -0,0 +1,78 @@
+#!/bin/sh
+# Copyright 2005, 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Set initial variables:
+CWD=`pwd`
+if [ "$TMP" = "" ]; then
+ TMP=/tmp
+fi
+PKG=$TMP/package-pkgtools
+
+# *** UPDATE THESE WITH EACH BUILD:
+VERSION=13.0
+ARCH=${ARCH:-noarch}
+BUILD=3
+
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP # location to build the source
+fi
+rm -rf $PKG
+mkdir -p $PKG
+
+# Install Slackware script manpages:
+( cd $CWD/manpages
+ mkdir -p $PKG/usr/man/man8
+ for page in explodepkg.8 installpkg.8 makepkg.8 upgradepkg.8 pkgtool.8 \
+ removepkg.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+ done
+)
+
+# Install Slackware scripts:
+( cd $CWD/scripts
+ # Install the core Slackware package tools:
+ mkdir -p $PKG/sbin
+ for file in explodepkg installpkg makebootdisk makepkg pkgtool removepkg upgradepkg ; do
+ cp -a $CWD/scripts/$file $PKG/sbin
+ done
+ chown root:root $PKG/sbin/*
+ chmod 755 $PKG/sbin/*
+ # These scripts are used during the installation:
+ mkdir -p $PKG/var/log/setup/tmp
+ chmod 700 $PKG/var/log/setup/tmp
+ for file in setup.* ; do
+ cp -a $file $PKG/var/log/setup
+ done
+ chown root:root $PKG/var/log/setup/setup.*
+ chmod 755 $PKG/var/log/setup/setup.*
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/pkgtools-$VERSION-$ARCH-$BUILD.tgz
+
+echo
+echo "HEY -- did you remember to update the version numbers in the setup scripts?"
+echo
+
diff --git a/source/a/pkgtools/scripts/explodepkg b/source/a/pkgtools/scripts/explodepkg
new file mode 100644
index 000000000..a113b085d
--- /dev/null
+++ b/source/a/pkgtools/scripts/explodepkg
@@ -0,0 +1,97 @@
+#!/bin/sh
+# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA
+# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+TAR=tar-1.13
+$TAR --help 1> /dev/null 2> /dev/null
+if [ ! $? = 0 ]; then
+ TAR=tar
+fi
+if [ ! "`LC_MESSAGES=C $TAR --version`" = "tar (GNU tar) 1.13
+
+Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+Written by John Gilmore and Jay Fenlason." ]; then
+ echo "WARNING: pkgtools are unstable with tar > 1.13."
+ echo " You should provide a \"tar-1.13\" in your \$PATH."
+ sleep 5
+fi
+
+if [ $# = 0 ]; then
+ cat << EOF
+Usage: explodepkg package_name [package_name2, ...]
+
+Explodes a Slackware compatible software package
+(or any tar+{gzip,bzip2,lzma,xz archive) in the current directory.
+Equivalent to (for each package listed):
+
+ ( umask 000 ; cat package_name | COMPRESSOR -dc | tar xzvf package_name )
+
+Note: This should only be used for debugging or examining packages, not for
+installing them. It doesn't execute installation scripts or update the package
+indexes in /var/log/packages and /var/log/scripts.
+
+EOF
+fi
+
+# Main loop:
+for PKG in $* ; do
+ echo "Exploding package $PKG in current directory:"
+ # Determine extension:
+ packageext="$( echo $PKG | rev | cut -f 1 -d . | rev)"
+ # Determine compression utility:
+ case $packageext in
+ 'tgz' )
+ packagecompression=gzip
+ ;;
+ 'gz' )
+ packagecompression=gzip
+ ;;
+ 'tbz' )
+ packagecompression=bzip2
+ ;;
+ 'bz2' )
+ packagecompression=bzip2
+ ;;
+ 'tlz' )
+ packagecompression=lzma
+ ;;
+ 'lzma' )
+ packagecompression=lzma
+ ;;
+ 'txz' )
+ packagecompression=xz
+ ;;
+ 'xz' )
+ packagecompression=xz
+ ;;
+ esac
+ ( umask 000 ; cat $PKG | $packagecompression -dc | $TAR xvf - 2> /dev/null )
+ if [ -r install/doinst.sh ]; then
+ echo
+ echo "An installation script was detected in ./install/doinst.sh, but"
+ echo "was not executed."
+ fi
+done
+
diff --git a/source/a/pkgtools/scripts/installpkg b/source/a/pkgtools/scripts/installpkg
new file mode 100644
index 000000000..31bb0b717
--- /dev/null
+++ b/source/a/pkgtools/scripts/installpkg
@@ -0,0 +1,568 @@
+#!/bin/sh
+# Copyright 1994, 1998, 2000 Patrick Volkerding, Concord, CA, USA
+# Copyright 2001, 2003 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Sat Apr 25 21:18:53 UTC 2009
+# Converted to use new pkgbase() function to remove pathname and
+# valid package extensions.
+#
+# Sat Apr 4 22:58:06 CDT 2009
+# Support additional compression formats if the supporting utilities exist:
+# .tbz - bzip2
+# .tlz - lzma
+# .txz - xz (also LZMA)
+# And of course, .tgz (gzip) is not going anywhere. :-) <volkerdi>
+# Add command switches to determine the uncompressed package size even if
+# that will slow things down, and to add the package's md5sum to the
+# metadata stored in /var/log/packages/.
+#
+# Fri Dec 21 17:21:35 CST 2007
+# Added a patch from Johnny Morano to work around package removal issues
+# caused by packages that do not comply with FHS combined with a grep
+# regex error in installpkg. Any package with a single-letter top-
+# level directory could not be removed.
+#
+# Shortened some of the top-line dialog output to avoid overflowing the
+# textbox (needed as some of the packages, especially in X, have very
+# long base package names now). <pjv>
+#
+# Sun Nov 26 12:38:25 CST 1995
+# Added patch from Glenn Moloney <glenn@physics.unimelb.edu.au> to allow
+# packages to be installed to directories other than /.
+#
+# Wed Mar 18 15:15:51 CST 1998
+# Changed $TMP directory to /var/log/setup/tmp, and chmod'ed it 700 to close
+# some security holes.
+
+# Return a package name that has been stripped of the dirname portion
+# and any of the valid extensions (only):
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'tgz' )
+ PKGRETURN=$(basename $1 .tgz)
+ ;;
+ 'tbz' )
+ PKGRETURN=$(basename $1 .tbz)
+ ;;
+ 'tlz' )
+ PKGRETURN=$(basename $1 .tlz)
+ ;;
+ 'txz' )
+ PKGRETURN=$(basename $1 .txz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+# If installpkg encounters a problem, it will return a non-zero error code.
+# If it finds more than one problem (i.e. with a list of packages) you'll only
+# hear about the most recent one. :)
+# 1 = tar returned error code
+# 2 = corrupt compression envelope
+# 3 = does not end in .tgz
+# 4 = no such file
+# 5 = external compression utility missing
+# 99 = user abort from menu mode
+EXITSTATUS=0
+
+# Do not store md5sums by default:
+MD5SUM=0
+
+# So that we know what to expect...
+umask 022
+TAR=tar-1.13
+$TAR --help 1> /dev/null 2> /dev/null
+if [ ! $? = 0 ]; then
+ TAR=tar
+fi
+if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13
+
+Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+Written by John Gilmore and Jay Fenlason." ]; then
+ echo "WARNING: pkgtools are unstable with tar > 1.13."
+ echo " You should provide a \"tar-1.13\" in your \$PATH."
+ sleep 5
+fi
+
+usage() {
+ cat << EOF
+Usage: installpkg [options] <package_filename>
+
+Installpkg is used to install a .t{gz,bz,lz,xz} package like this:
+ installpkg slackware-package-1.0.0-i486-1.tgz (or .tbz, .tlz, .txz)
+
+options: --warn (warn if files will be overwritten, but do not install)
+ --root /mnt (install someplace else, like /mnt)
+ --infobox (use dialog to draw an info box)
+ --menu (confirm package installation with a menu, unless
+ the priority is [required] or ADD)
+ --ask (used with menu mode: always ask if a package should be
+ installed regardless of what the package's priority is)
+ --priority ADD|REC|OPT|SKP (provide a priority for the entire
+ package list to use instead of the priority in the
+ tagfile)
+ --tagfile /somedir/tagfile (specify a different file to use
+ for package priorities. The default is "tagfile" in
+ the package's directory)
+ --md5sum (record the package's md5sum in the metadata file)
+
+EOF
+}
+
+# Eliminate whitespace function:
+crunch() {
+ while read FOO ; do
+ echo $FOO
+ done
+}
+
+package_name() {
+ STRING=$(pkgbase $1)
+ # Check for old style package name with one segment:
+ if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
+ echo $STRING
+ else # has more than one dash delimited segment
+ # Count number of segments:
+ INDEX=1
+ while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # don't include the null value
+ # If we don't have four segments, return the old-style (or out of spec) package name:
+ if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
+ echo $STRING
+ else # we have four or more segments, so we'll consider this a new-style name:
+ NAME=$(expr $INDEX - 3)
+ NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
+ echo $NAME
+ # cruft for later ;)
+ #VER=$(expr $INDEX - 2)
+ #VER="$(echo $STRING | cut -f $VER -d -)"
+ #ARCH=$(expr $INDEX - 1)
+ #ARCH="$(echo $STRING | cut -f $ARCH -d -)"
+ #BUILD="$(echo $STRING | cut -f $INDEX -d -)"
+ fi
+ fi
+}
+
+# Parse options:
+MODE=install # standard text-mode
+while [ 0 ]; do
+ if [ "$1" = "-warn" -o "$1" = "--warn" ]; then
+ MODE=warn
+ shift 1
+ elif [ "$1" = "-md5sum" -o "$1" = "--md5sum" ]; then
+ MD5SUM=1
+ shift 1
+ elif [ "$1" = "-infobox" -o "$1" = "--infobox" ]; then
+ MODE=infobox
+ shift 1
+ elif [ "$1" = "-menu" -o "$1" = "--menu" ]; then
+ MODE=menu
+ shift 1
+ elif [ "$1" = "-ask" -o "$1" = "--ask" ]; then
+ ALWAYSASK="yes"
+ shift 1
+ elif [ "$1" = "-tagfile" -o "$1" = "--tagfile" ]; then
+ if [ -r "$2" ]; then
+ USERTAGFILE="$2"
+ elif [ -r "$(pwd)/$2" ]; then
+ USERTAGFILE="$(pwd)/$2"
+ else
+ usage
+ exit
+ fi
+ shift 2
+ elif [ "$1" = "-priority" -o "$1" = "--priority" ]; then
+ if [ "$2" = "" ]; then
+ usage
+ exit
+ fi
+ USERPRIORITY="$2"
+ shift 2
+ elif [ "$1" = "-root" -o "$1" = "--root" ]; then
+ if [ "$2" = "" ]; then
+ usage
+ exit
+ fi
+ ROOT="$2"
+ shift 2
+ else
+ break
+ fi
+done
+
+# Set the prefix for the package database directories (packages, scripts).
+ADM_DIR="$ROOT/var/log"
+# If the directories don't exist, "initialize" the package database:
+for PKGDBDIR in packages removed_packages removed_scripts scripts setup ; do
+ if [ ! -d $ADM_DIR/$PKGDBDIR ]; then
+ rm -rf $ADM_DIR/$PKGDBDIR # make sure it's not a symlink or something stupid
+ mkdir -p $ADM_DIR/$PKGDBDIR
+ chmod 755 $ADM_DIR/$PKGDBDIR
+ fi
+done
+
+# Make sure there's a proper temp directory:
+TMP=$ADM_DIR/setup/tmp
+# If the $TMP directory doesn't exist, create it:
+if [ ! -d $TMP ]; then
+ rm -rf $TMP # make sure it's not a symlink or something stupid
+ mkdir -p $TMP
+ chmod 700 $TMP # no need to leave it open
+fi
+
+# usage(), exit if called with no arguments:
+if [ $# = 0 ]; then
+ usage;
+ exit
+fi
+
+# If -warn mode was requested, produce the output and then exit:
+if [ "$MODE" = "warn" ]; then
+ while [ -f "$1" ]; do
+ echo "#### Scanning the contents of $1..."
+ mkdir -p $TMP/scan$$
+ # Determine extension:
+ packageext="$( echo $1 | rev | cut -f 1 -d . | rev)"
+ # Determine compressor utility:
+ case $packageext in
+ 'tgz' )
+ packagecompression=gzip
+ ;;
+ 'tbz' )
+ packagecompression=bzip2
+ ;;
+ 'tlz' )
+ packagecompression=lzma
+ ;;
+ 'txz' )
+ packagecompression=xz
+ ;;
+ esac
+ ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $1 2> /dev/null
+ if [ -r $TMP/scan$$/install/doinst.sh ]; then
+ if cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' 1>/dev/null 2>/dev/null ; then
+ cat $TMP/scan$$/install/doinst.sh | grep ' rm -rf ' > $TMP/scan$$/install/delete
+ echo "The following locations will be completely WIPED OUT to allow symbolic"
+ echo "links to be made. (We're talking 'rm -rf') These locations may be files,"
+ echo "or entire directories. Be sure you've backed up anything at these"
+ echo "locations that you want to save before you install this package:"
+ cat $TMP/scan$$/install/delete | cut -f 3,7 -d ' ' | tr ' ' '/'
+ fi
+ if [ -d $TMP/scan$$ ]; then
+ ( cd $TMP/scan$$ ; rm -rf install ) 2> /dev/null
+ ( cd $TMP ; rmdir scan$$ ) 2> /dev/null
+ fi
+ fi
+ echo "The following files will be overwritten when installing this package."
+ echo "Be sure they aren't important before you install this package:"
+ ( $packagecompression -dc | $TAR tvvf - ) < $1 | grep -v 'drwx'
+ echo
+ shift 1
+ done
+ exit
+fi
+
+# Main loop:
+for package in $* ; do
+
+ # Simple package integrity check:
+ if [ ! -f $package ]; then
+ EXITSTATUS=4
+ if [ "$MODE" = "install" ]; then
+ echo "Cannot install $package: file not found"
+ fi
+ continue;
+ fi
+
+ # "shortname" isn't really THAT short...
+ # it's just the full name without ".t{gz,bz,lz,xz}"
+ shortname="$(pkgbase $package)"
+ packagedir="$(dirname $package)"
+ # This is the base package name, used for grepping tagfiles and descriptions:
+ packagebase="$(package_name $shortname)"
+
+ # Reject package if it does not end in '.t{gz,bz,lz,xz}':
+ if [ "$shortname" = "$(basename $package)" ]; then
+ EXITSTATUS=3
+ if [ "$MODE" = "install" ]; then
+ echo "Cannot install $package: file does not end in .tgz, .tbz, .tlz, or .txz"
+ fi
+ continue;
+ fi
+
+ # Determine extension:
+ packageext="$(echo $package | rev | cut -f 1 -d . | rev)"
+
+ # Determine compressor utility:
+ case $packageext in
+ 'tgz' )
+ packagecompression=gzip
+ ;;
+ 'tbz' )
+ packagecompression=bzip2
+ ;;
+ 'tlz' )
+ packagecompression=lzma
+ ;;
+ 'txz' )
+ packagecompression=xz
+ ;;
+ esac
+
+ # Test presence of external compression utility:
+ if ! $packagecompression --help 1> /dev/null 2> /dev/null ; then
+ EXITSTATUS=5
+ if [ "$MODE" = "install" ]; then
+ echo "Cannot install $package: external compression utility $packagecompression missing"
+ fi
+ continue;
+ fi
+
+ # Determine package's priority:
+ unset PRIORITY
+ if [ "$USERTAGFILE" = "" ]; then
+ TAGFILE="$packagedir/tagfile"
+ else
+ TAGFILE="$USERTAGFILE"
+ fi
+ if [ ! -r "$TAGFILE" ]; then
+ TAGFILE=/dev/null
+ fi
+ if grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then
+ PRIORITY="ADD"
+ elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then
+ PRIORITY="REC"
+ elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then
+ PRIORITY="OPT"
+ elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then
+ PRIORITY="SKP"
+ fi
+ if [ "$PRIORITY" = "ADD" ]; then
+ PMSG="[ADD]"
+ elif [ "$PRIORITY" = "REC" ]; then
+ PMSG="[REC]"
+ elif [ "$PRIORITY" = "OPT" ]; then
+ PMSG="[OPT]"
+ elif [ "$PRIORITY" = "SKP" ]; then
+ PMSG="[SKP]"
+ else
+ PMSG=""
+ fi
+
+ # If a tagfile wants this package to be skipped, do that now before
+ # wasting any more CPU on it:
+ if [ "$PRIORITY" = "SKP" -a ! "$ALWAYSASK" = "yes" ]; then
+ continue # next package
+ fi
+
+ # Figure out some package information, like the compressed and uncompressed
+ # sizes, and where to find the package description:
+ COMPRESSED="$(du -s $package | cut -f 1)K"
+ DESCRIPTION=""
+ # First check for .txt file next to the package, since this is faster:
+ if grep "^$packagebase:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then
+ DESCRIPTION="$packagedir/$shortname.txt"
+ elif grep "^$shortname:" "$packagedir/$shortname.txt" 1> /dev/null 2> /dev/null ; then
+ DESCRIPTION="$packagedir/$shortname.txt"
+ fi
+
+ # Test tarball integrity and get uncompressed package size:
+ if [ "$MODE" = "install" ]; then
+ echo "Verifying package $(basename $package)."
+ fi
+ cat $package | $packagecompression -dc | dd 2> $TMP/tmpsize$$ | $TAR tf - 1> $TMP/tmplist$$ 2> /dev/null
+ TARERROR=$?
+ if [ ! "$TARERROR" = "0" ]; then
+ EXITSTATUS=1 # tar file corrupt
+ if [ "$MODE" = "install" ]; then
+ echo "Unable to install $package: tar archive is corrupt (tar returned error code $TARERROR)"
+ fi
+ rm -f $TMP/tmplist$$ $TMP/tmpsize$$
+ continue
+ fi
+ UNCOMPRESSED="$(expr $(cat $TMP/tmpsize$$ | head -n 1 | cut -f 1 -d +) / 2)K"
+ rm -f $TMP/tmpsize$$
+
+ # If we still don't have a package description, look inside the package.
+ # This requires a costly untar.
+ if [ "$DESCRIPTION" = "" ]; then
+ mkdir -p $TMP/scan$$
+ ( cd $TMP/scan$$ ; $packagecompression -dc | $TAR xf - install ) < $package 2> /dev/null
+ if grep "^$packagebase:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then
+ DESCRIPTION="$TMP/scan$$/install/slack-desc"
+ elif grep "^$shortname:" "$TMP/scan$$/install/slack-desc" 1> /dev/null 2> /dev/null ; then
+ DESCRIPTION="$TMP/scan$$/install/slack-desc"
+ fi
+ fi
+
+ if [ "$DESCRIPTION" = "" ]; then
+ #echo "WARNING NO SLACK-DESC"
+ DESCRIPTION="/dev/null"
+ fi
+
+ # Gather package infomation into a temporary file:
+ cat $DESCRIPTION | grep "^$packagebase:" | cut -f 2- -d : | cut -b2- 1> $TMP/tmpmsg$$ 2> /dev/null
+ if [ "$shortname" != "$packagebase" ]; then
+ cat $DESCRIPTION | grep "^$shortname:" | cut -f 2- -d : | cut -b2- 1>> $TMP/tmpmsg$$ 2> /dev/null
+ fi
+ # Adjust the length here. This allows a slack-desc to be any size up to 13 lines instead of fixed at 11.
+ LENGTH=$(cat $TMP/tmpmsg$$ | wc -l)
+ while [ $LENGTH -lt 12 ]; do
+ echo >> $TMP/tmpmsg$$
+ LENGTH=$(expr $LENGTH + 1)
+ done
+ echo "Size: Compressed: ${COMPRESSED}, uncompressed: ${UNCOMPRESSED}." >> $TMP/tmpmsg$$
+ # For recent versions of dialog it is necessary to add \n to the end of each line
+ # or it will remove repeating spaces and mess up our careful formatting:
+ cat << EOF > $TMP/controlns$$
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+\n
+EOF
+ paste -d "" $TMP/tmpmsg$$ $TMP/controlns$$ > $TMP/pasted$$
+ rm -f $TMP/controlns$$
+ mv $TMP/pasted$$ $TMP/tmpmsg$$
+ # Emit information to the console:
+ if [ "$MODE" = "install" ]; then
+ if [ "$PMSG" = "" ]; then
+ echo "Installing package $(basename $package):"
+ else
+ echo "Installing package $(basename $package) $PMSG:"
+ fi
+ echo "PACKAGE DESCRIPTION:"
+ cat $DESCRIPTION | grep "^$packagebase:" | uniq | sed "s/^$packagebase:/#/g"
+ if [ "$shortname" != "$packagebase" ]; then
+ cat $DESCRIPTION | grep "^$shortname:" | uniq | sed "s/^$shortname:/#/g"
+ fi
+ elif [ "$MODE" = "infobox" ]; then # install infobox package
+ dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0
+ elif [ "$MODE" = "menu" -a "$PRIORITY" = "ADD" -a ! "$ALWAYSASK" = "yes" ]; then # ADD overrides menu mode unless -ask was used
+ dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0
+ elif [ "$MODE" = "menu" -a "$USERPRIORITY" = "ADD" ]; then # install no matter what $PRIORITY
+ dialog --title "Installing package $shortname $PMSG" --infobox "$(cat $TMP/tmpmsg$$)" 0 0
+ else # we must need a full menu:
+ dialog --title "Package Name: $shortname $PMSG" --menu "$(cat $TMP/tmpmsg$$)" 0 0 3 \
+ "Yes" "Install package $shortname" \
+ "No" "Do not install package $shortname" \
+ "Quit" "Abort software installation completely" 2> $TMP/reply$$
+ if [ ! $? = 0 ]; then
+ echo "No" > $TMP/reply$$
+ fi
+ REPLY="$(cat $TMP/reply$$)"
+ rm -f $TMP/reply$$ $TMP/tmpmsg$$
+ if [ "$REPLY" = "Quit" ]; then
+ exit 99 # EXIT STATUS 99 = ABORT!
+ elif [ "$REPLY" = "No" ]; then
+ continue # skip the package
+ fi
+ fi
+
+ # Make sure there are no symbolic links sitting in the way of
+ # incoming package files:
+ cat $TMP/tmplist$$ | grep -v "/$" | while read file ; do
+ if [ -L "$ROOT/$file" ]; then
+ rm -f "$ROOT/$file"
+ fi
+ done
+ rm -f $TMP/tmplist$$
+
+ # Write the package file database entry and install the package:
+ echo "PACKAGE NAME: $shortname" > $ADM_DIR/packages/$shortname
+ echo "COMPRESSED PACKAGE SIZE: $COMPRESSED" >> $ADM_DIR/packages/$shortname
+ echo "UNCOMPRESSED PACKAGE SIZE: $UNCOMPRESSED" >> $ADM_DIR/packages/$shortname
+ echo "PACKAGE LOCATION: $package" >> $ADM_DIR/packages/$shortname
+ # Record the md5sum if that's a selected option:
+ if [ $MD5SUM = 1 ]; then
+ echo "PACKAGE MD5SUM: $(md5sum $package | cut -f 1 -d ' ')" >> $ADM_DIR/packages/$shortname
+ fi
+ echo "PACKAGE DESCRIPTION:" >> $ADM_DIR/packages/$shortname
+ cat $DESCRIPTION | grep "^$packagebase:" >> $ADM_DIR/packages/$shortname 2> /dev/null
+ if [ "$shortname" != "$packagebase" ]; then
+ cat $DESCRIPTION | grep "^$shortname:" >> $ADM_DIR/packages/$shortname 2> /dev/null
+ fi
+ echo "FILE LIST:" >> $ADM_DIR/packages/$shortname
+ ( cd $ROOT/ ; $packagecompression -dc | $TAR -xlUpvf - ) < $package >> $TMP/$shortname 2> /dev/null
+ if [ "$(cat $TMP/$shortname | grep '^\./' | wc -l | tr -d ' ')" = "1" ]; then
+ # Good. We have a package that meets the Slackware spec.
+ cat $TMP/$shortname >> $ADM_DIR/packages/$shortname
+ else
+ # Some dumb bunny built a package with something other than makepkg. Bad!
+ # Oh well. Bound to happen. Par for the course. Fix it and move on...
+ echo "WARNING: Package has not been created with 'makepkg'"
+ echo './' >> $ADM_DIR/packages/$shortname
+ cat $TMP/$shortname >> $ADM_DIR/packages/$shortname
+ fi
+ rm -f $TMP/$shortname
+
+ # It's a good idea to make sure those newly installed libraries
+ # are properly activated for use:
+ if [ -x /sbin/ldconfig ]; then
+ /sbin/ldconfig
+ fi
+
+ if [ -f $ROOT/install/doinst.sh ]; then
+ if [ "$MODE" = "install" ]; then
+ echo "Executing install script for $(basename $package)."
+ fi
+ ( cd $ROOT/ ; sh install/doinst.sh -install; )
+ fi
+ # Clean up the mess...
+ if [ -d $ROOT/install ]; then
+ if [ -r $ROOT/install/doinst.sh ]; then
+ cp $ROOT/install/doinst.sh $ADM_DIR/scripts/$shortname
+ chmod 755 $ADM_DIR/scripts/$shortname
+ fi
+ # /install/doinst.sh and /install/slack-* are reserved locations for the package system.
+ ( cd $ROOT/install ; rm -f doinst.sh slack-* 1> /dev/null 2>&1 )
+ rmdir $ROOT/install 1> /dev/null 2>&1
+ fi
+ # If we used a scan directory, get rid of it:
+ if [ -d "$TMP/scan$$" ]; then
+ rm -rf "$TMP/scan$$"
+ fi
+ rm -f $TMP/tmpmsg$$ $TMP/reply$$
+ if [ "$MODE" = "install" ]; then
+ echo "Package $(basename $package) installed."
+ echo
+ fi
+done
+
+exit $EXITSTATUS
diff --git a/source/a/pkgtools/scripts/makebootdisk b/source/a/pkgtools/scripts/makebootdisk
new file mode 100644
index 000000000..86b843a8b
--- /dev/null
+++ b/source/a/pkgtools/scripts/makebootdisk
@@ -0,0 +1,444 @@
+#!/bin/sh
+# Copyright 1995, 1998, 2002, 2005 Patrick Volkerding, Moorhead, Minnesota USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+if [ ! "$UID" = "0" ]; then
+ echo "You need to be root to run this script."
+ exit 1
+fi
+
+# Was a kernel specified on the command line?
+if [ -r "$1" ]; then
+ KERNEL=$1
+ KMSG="Using kernel $KERNEL"
+else
+ KMSG="No kernel selected yet"
+fi
+
+# Make sure there's a proper temp directory:
+TMP=/var/log/setup/tmp
+# If the $TMP directory doesn't exist, create it:
+if [ ! -d $TMP ]; then
+ rm -rf $TMP # make sure it's not a symlink or something stupid
+ mkdir -p $TMP
+ chmod 700 $TMP # no need to leave it open
+fi
+
+ROOT_DEVICE="`mount | grep ' on / ' | cut -f 1 -d ' '`"
+
+if mount | grep ' on / ' | grep umsdos 1> /dev/null 2> /dev/null ; then
+ MOUNT="read-write"
+else
+ MOUNT="read-only"
+fi
+
+make_root_device() {
+# Make a device:
+makedev() {
+ if [ ! -b $1 ]; then
+ mknod $1 b $2 $3
+ chown root.disk $1
+ chmod 640 $1
+ fi
+}
+
+# Make ide device
+# make ide major minor hd1 hd2 (2 base devs for major)
+make_ide() {
+ # Handle base devices:
+ if [ "$2" = "0" ]; then
+ makedev $TMP/lilo/dev/$3 $1 $2
+ return 0
+ elif [ "$2" = "64" ]; then
+ makedev $TMP/lilo/dev/$4 $1 $2
+ return 0
+ fi
+ # Must be a partition:
+ if [ "`expr $2 / 64`" = "0" ]; then
+ DEV=$3
+ NUM=$2
+ else
+ DEV=$4
+ NUM=`expr $2 - 64`
+ fi
+ makedev $TMP/lilo/dev/$DEV$NUM $1 $2
+}
+
+# Make SCSI device
+make_scsi() {
+ # find drive # 0 - 15
+ DRV=`expr $1 / 16`
+ NUM=`expr $1 % 16`
+ if [ "$NUM" = "0" ]; then
+ NUM=""
+ fi
+ if [ "$DRV" = "0" ]; then
+ makedev $TMP/lilo/dev/sda$NUM 8 $1
+ elif [ "$DRV" = "1" ]; then
+ makedev $TMP/lilo/dev/sdb$NUM 8 $1
+ elif [ "$DRV" = "2" ]; then
+ makedev $TMP/lilo/dev/sdc$NUM 8 $1
+ elif [ "$DRV" = "3" ]; then
+ makedev $TMP/lilo/dev/sdd$NUM 8 $1
+ elif [ "$DRV" = "4" ]; then
+ makedev $TMP/lilo/dev/sde$NUM 8 $1
+ elif [ "$DRV" = "5" ]; then
+ makedev $TMP/lilo/dev/sdf$NUM 8 $1
+ elif [ "$DRV" = "6" ]; then
+ makedev $TMP/lilo/dev/sdg$NUM 8 $1
+ elif [ "$DRV" = "7" ]; then
+ makedev $TMP/lilo/dev/sdh$NUM 8 $1
+ elif [ "$DRV" = "8" ]; then
+ makedev $TMP/lilo/dev/sdi$NUM 8 $1
+ elif [ "$DRV" = "9" ]; then
+ makedev $TMP/lilo/dev/sdj$NUM 8 $1
+ elif [ "$DRV" = "10" ]; then
+ makedev $TMP/lilo/dev/sdk$NUM 8 $1
+ elif [ "$DRV" = "11" ]; then
+ makedev $TMP/lilo/dev/sdl$NUM 8 $1
+ elif [ "$DRV" = "12" ]; then
+ makedev $TMP/lilo/dev/sdm$NUM 8 $1
+ elif [ "$DRV" = "13" ]; then
+ makedev $TMP/lilo/dev/sdn$NUM 8 $1
+ elif [ "$DRV" = "14" ]; then
+ makedev $TMP/lilo/dev/sdo$NUM 8 $1
+ elif [ "$DRV" = "15" ]; then
+ makedev $TMP/lilo/dev/sdp$NUM 8 $1
+ fi
+}
+
+if cat /proc/partitions | grep / 1> /dev/null 2> /dev/null ; then # new
+ cat /proc/partitions | grep / | while read line ; do
+ SMASHED_LINE=$line
+ MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
+ MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
+ if [ "$MAJOR" = "3" ]; then
+ make_ide $MAJOR $MINOR hda hdb
+ elif [ "$MAJOR" = "8" ]; then
+ make_scsi $MINOR
+ elif [ "$MAJOR" = "22" ]; then
+ make_ide $MAJOR $MINOR hdc hdd
+ elif [ "$MAJOR" = "33" ]; then
+ make_ide $MAJOR $MINOR hde hdf
+ elif [ "$MAJOR" = "34" ]; then
+ make_ide $MAJOR $MINOR hdg hdh
+ elif [ "$MAJOR" = "56" ]; then
+ make_ide $MAJOR $MINOR hdi hdj
+ fi
+ done
+else # old format
+ cat /proc/partitions | grep d | while read line ; do
+ SMASHED_LINE=$line
+ MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
+ MINOR=`echo $SMASHED_LINE | cut -f 2 -d ' '`
+ DEVNAME=`echo $SMASHED_LINE | cut -f 4 -d ' '`
+ makedev $TMP/lilo/dev/$DEVNAME $MAJOR $MINOR
+ done
+fi
+}
+
+choose_kernel() {
+while [ 0 ]; do # input loop
+cat << EOF > $TMP/tmpmsg
+
+Some possible paths to kernels are these:
+
+/boot/vmlinuz
+/usr/src/linux/arch/i386/boot/bzImage
+/usr/src/linux/arch/i386/boot/zImage
+/vmlinuz
+
+Put the path to the kernel you want to use in the box below.
+
+EOF
+
+ dialog --title "CHOOSE KERNEL" --inputbox "`cat $TMP/tmpmsg`" \
+ 16 72 "/boot/vmlinuz" 2> $TMP/return
+ if [ ! $? = 0 ]; then
+ exit
+ fi
+
+ KERNEL="`cat $TMP/return`"
+
+ if [ ! -r "$KERNEL" ]; then
+ dialog --title "NOT FOUND!" --msgbox "$KERNEL" 5 60
+ continue
+ fi
+ KMSG="Using kernel $KERNEL"
+break
+done
+}
+
+format_disk() {
+ # If anyone still uses 1.2 MB, you'll have to uncomment this.
+ # It's no longer a default option.
+ #FDEV=/dev/fd0h1200
+ #FDEV=/dev/fd0u1400
+ FDEV=/dev/fd0u1680
+ if [ "$FDEV" = "/dev/fd0u1680" ]; then
+ dialog --title "Formatting /dev/fd0u1680" --infobox \
+ "Formatting /dev/fd0, 1.68 megabytes." 3 42
+ elif [ "$FDEV" = "/dev/fd0u1400" ]; then
+ dialog --title "Formatting /dev/fd0u1440" --infobox \
+ "Formatting /dev/fd0, 1.44 megabytes." 3 42
+ elif [ "$FDEV" = "/dev/fd0h1200" ]; then
+ dialog --title "Formatting /dev/fd0h1200" --infobox \
+ "Formatting /dev/fd0, 1.2 megabytes." 3 42
+ fi
+ fdformat $FDEV 1> /dev/null 2> /dev/null
+ if [ ! $? = 0 ]; then
+ dialog --title "ERROR: FLOPPY FORMAT FAILED" --msgbox "The attempt to format the floppy \
+disk in /dev/fd0 has failed, probably due to bad media. Please try again with a \
+different disk. If that doesn't work, perhaps the drive needs cleaning." 0 0
+ return 1
+ fi
+}
+
+DEFAULT_ITEM="syslinux"
+
+while [ 0 ]; do # menu loop
+ dialog --title "MAKE BOOT FLOPPY FROM KERNEL" \
+--default-item $DEFAULT_ITEM \
+--backtitle "$KMSG" --menu "This menu allows you to make a SYSLINUX bootdisk \
+from a compiled kernel. The SYSLINUX bootloader has the advantage of \
+using a FAT filesystem making it easy to replace the kernel later. \
+Which option would you like?" 12 67 2 \
+"syslinux" "Make a SYSLINUX bootdisk" \
+"exit" "Exit this program" 2> $TMP/return
+ if [ ! $? = 0 ]; then
+ break;
+ fi
+ REPLY=`cat $TMP/return`
+ rm -f $TMP/return
+ if [ "$REPLY" = "simple" ]; then # make simple bootdisk
+ if [ "$KERNEL" = "" ]; then
+ choose_kernel
+ fi
+ kernel_size=`du -Lk $KERNEL | cut -f1`
+ if [ "$kernel_size" -gt "1023" ]; then
+cat << EOF > $TMP/tmpmsg
+
+The kernel $KERNEL is $kernel_size K (which is
+more than 1023 Kb in size), so it probably won't
+boot standalone on the floppy. Use the 'syslinux'
+method instead.
+
+EOF
+ dialog --title "KERNEL TOO BIG!" --msgbox "`cat $TMP/tmpmsg`" 10 60
+ continue
+ fi
+ dialog --title "BOOT DISK CREATION" --backtitle "$KMSG" --yesno \
+"\n\
+Now put a formatted floppy in your boot drive. \n\
+This will be made into your Linux boot disk. Use this to\n\
+boot Linux until LILO has been configured to boot from\n\
+the hard drive.\n\n\
+Any data on the target disk will be destroyed.\n\n\
+YES creates the disk, NO aborts.\n" 14 62
+ if [ $? = 0 ]; then
+ format_disk
+ dialog --title "CREATING DISK" --infobox "Creating boot disk from $KERNEL..." 5 72
+ dd if=$KERNEL of=/dev/fd0 2> /dev/null
+ rdev /dev/fd0 $ROOT_DEVICE
+ rdev -v /dev/fd0 -1
+ if [ "$MOUNT" = "read-only" ]; then
+ rdev -R /dev/fd0 1
+ else
+ rdev -R /dev/fd0 0
+ fi
+ fi
+ elif [ "$REPLY" = "syslinux" ]; then # make syslinux bootdisk
+ DEFAULT_ITEM="exit"
+ if [ "$KERNEL" = "" ]; then
+ choose_kernel
+ fi
+ dialog --title "CREATING SYSLINUX BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \
+floppy in your boot drive. This will be made into a SYSLINUX \
+bootdisk that you can use to start your Linux system. Any data on the \
+target disk will be destroyed. YES creates the disk, NO aborts." 8 62
+ if [ $? = 0 ]; then # make the disk
+ format_disk
+ if [ ! $? = 0 ]; then
+ continue
+ fi
+ dialog --title "CREATING BOOT FLOPPY" --infobox "Creating SYSLINUX bootdisk for \
+$ROOT_DEVICE in /dev/fd0." 3 64
+ mkdosfs -F 12 /dev/fd0u1680 1680 1> /dev/null 2> /dev/null
+ if [ ! -d $TMP/bootdisk ]; then
+ mkdir $TMP/bootdisk
+ fi
+ mount -t vfat /dev/fd0 $TMP/bootdisk 1> /dev/null 2> /dev/null
+ cp $KERNEL $TMP/bootdisk/vmlinuz
+ ## This avoids a syslinux-1.72 bug, and doesn't seem to hurt anything:
+ #dd if=/dev/zero bs=1k count=1 >> $TMP/bootdisk/vmlinuz 2> /dev/null
+ if [ ! "$?" = "0" ]; then
+ dialog --title "ERROR COPYING KERNEL TO FLOPPY" \
+ --msgbox "Sorry, but there was an error copying the kernel to the \
+floppy disk. Possibly the kernel is too large to fit the disk. \
+This program will now exit." 0 0
+ umount /dev/fd0
+ rm -rf $TMP/bootdisk
+ exit 1
+ fi
+ cat << EOF > $TMP/bootdisk/message.txt
+
+Welcome to the 09Slackware07 Linux custom bootdisk!
+
+By default, this disk boots a root Linux partition on $ROOT_DEVICE when you
+hit ENTER. If you'd like to boot some other partition, use a command like
+this on the prompt below:
+
+ mount root=/dev/sda1 ro
+
+Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
+the partition should be initially mounted as read-only. If you wish to mount
+the partition read-write, use "rw" instead. To set the video console mode,
+use the vga= parameter (press F1 to see a table). You may also add any other
+kernel parameters you might need depending on your hardware, and which
+drivers are included in your kernel.
+
+EOF
+ cat << EOF > $TMP/bootdisk/syslinux.cfg
+default vmlinuz ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro
+prompt 1
+timeout 6000
+display message.txt
+F1 f1.txt
+F2 message.txt
+#F3 f3.txt
+#F4 f4.txt
+#F5 f5.txt
+#F6 f6.txt
+#F7 f7.txt
+label mount
+ kernel vmlinuz
+ append ramdisk_size=7000 root=$ROOT_DEVICE vga=normal ro
+label ramdisk
+ kernel vmlinuz
+ append vmlinuz ramdisk_size=7000 root=/dev/fd0u1440 vga=normal rw
+EOF
+ cat << EOF > $TMP/bootdisk/f1.txt
+ STANDARD MODES:
+ To make the kernel prompt for standard video modes use: vga=ask
+
+ FRAMEBUFFER MODES:
+ To get the kernel to start in VESA framebuffer mode, you need to pass it
+ a vga= init string on the "boot:" prompt. Here's a table:
+
+ Colors 640x480 800x600 1024x768 1280x1024 1600x1200
+ --------+---------------------------------------------
+ 256 | 769 771 773 775 796
+ 32,768 | 784 787 790 793 797
+ 65,536 | 785 788 791 794 798
+ 16.8M | 786 789 792 795 799
+
+ ...such as this for 1024x768x64k:
+ vga=791
+
+ F2 returns to the previous page.
+
+EOF
+ umount /dev/fd0
+ syslinux-nomtools -s /dev/fd0
+ rm -r $TMP/bootdisk
+ fi
+ elif [ "$REPLY" = "lilo" ]; then # make lilo bootdisk
+ DEFAULT_ITEM="exit"
+ if [ ! -x "`type -path lilo`" ]; then
+cat << EOF > $TMP/tmpmsg
+
+You don't have 'lilo' installed on the system.
+I guess you didn't install the lilo package.
+
+EOF
+ dialog --title "LILO NOT FOUND" --msgbox "`cat $TMP/tmpmsg`" 8 60
+ continue
+ fi
+ if [ "$KERNEL" = "" ]; then
+ choose_kernel
+ fi
+ dialog --title "CREATING LILO BOOTDISK IN /dev/fd0" --backtitle "$KMSG" --yesno "Now put a \
+floppy in your boot drive. This will be made into a LILO \
+bootdisk that you can use to start your Linux system. Any data on the \
+target disk will be destroyed. YES creates the disk, NO aborts." 8 62
+ if [ $? = 0 ]; then # make the disk
+ format_disk
+ DEV=/dev/fd0u1680
+ mknod_fd="-m 0640 $TMP/lilo$DEV b 2 44"
+ dialog --infobox "Creating LILO bootdisk from $KERNEL for $ROOT_DEVICE..." 4 60
+ mke2fs -q -m 0 -i 4096 $DEV 1> /dev/null 2> /dev/null || exit 1
+ if [ ! -d $TMP/lilo ]; then
+ mkdir -p $TMP/lilo
+ fi
+ mount -t ext2 $DEV $TMP/lilo 1> /dev/null || exit 1
+ rmdir $TMP/lilo/lost+found
+ cp $KERNEL $TMP/lilo/vmlinuz || exit 1
+ mkdir $TMP/lilo/dev
+ make_root_device
+ mknod -m 0640 $TMP/lilo/dev/fd0 b 2 0
+ mknod -m 0640 $TMP/lilo/dev/fd1 b 2 1
+ mknod $mknod_fd
+ mknod -m 0666 $TMP/lilo/dev/null c 1 3
+ mkdir $TMP/lilo/etc
+ cat << EOF > $TMP/lilo/etc/lilo.conf
+boot = $DEV
+message=/boot/message
+backup=/dev/null
+prompt
+image = /vmlinuz
+ label = mount
+ ramdisk = 0
+ root = $ROOT_DEVICE
+ vga = normal
+ $MOUNT
+EOF
+ mkdir $TMP/lilo/boot
+ cp -a /boot/chain.b $TMP/lilo/boot
+ if [ -f /boot/boot-text.b ]; then
+ cp -a /boot/boot-text.b $TMP/lilo/boot/boot.b
+ else
+ cp -a /boot/boot.b $TMP/lilo/boot
+ fi
+ cat << EOF > $TMP/lilo/boot/message
+
+Welcome to the Slackware Linux custom LILO bootdisk!
+
+By default, this disk boots a root Linux partition on $ROOT_DEVICE when
+you hit ENTER. If you'd like to boot some other partition, use a command
+like this on the LILO prompt below:
+
+ mount root=/dev/sda1 ro
+
+Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
+the partition should be initially mounted as read-only. If you which to mount
+the partition read-write, use "rw" instead. You may also add any other kernel
+parameters you might need depending on your hardware, and which drivers are
+included in your kernel.
+
+EOF
+ lilo -r $TMP/lilo > /dev/null
+ umount $TMP/lilo
+ rm -rf $TMP/lilo
+ fi
+ elif [ "$REPLY" = "exit" ]; then
+ break;
+ fi
+done
diff --git a/source/a/pkgtools/scripts/makepkg b/source/a/pkgtools/scripts/makepkg
new file mode 100644
index 000000000..e6805476a
--- /dev/null
+++ b/source/a/pkgtools/scripts/makepkg
@@ -0,0 +1,347 @@
+#!/bin/sh
+# Copyright 1994, 1998, 2008 Patrick Volkerding, Moorhead, Minnesota USA
+# Copyright 2003 Slackware Linux, Inc. Concord, CA USA
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Sun Apr 5 21:23:26 CDT 2009
+# Support .tgz, .tbz, .tlz, and .txz packages. <volkerdi>
+#
+# Wed Mar 18 15:32:33 CST 1998
+# Patched to avoid possible symlink attacks in /tmp.
+
+CWD=$(pwd)
+
+TAR=tar-1.13
+umask 022
+$TAR --help 1> /dev/null 2> /dev/null
+if [ ! $? = 0 ]; then
+ TAR=tar
+fi
+if [ ! "$(LC_MESSAGES=C $TAR --version)" = "tar (GNU tar) 1.13
+
+Copyright (C) 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+Written by John Gilmore and Jay Fenlason." ]; then
+ echo "WARNING: pkgtools are unstable with tar > 1.13."
+ echo " You should provide a \"tar-1.13\" in your \$PATH."
+ sleep 5
+fi
+
+make_install_script() {
+ COUNT=1
+ LINE="$(sed -n "$COUNT p" $1)"
+ while [ ! "$LINE" = "" ]; do
+ LINKGOESIN="$(echo "$LINE" | cut -f 1 -d " ")"
+ LINKGOESIN="$(dirname $LINKGOESIN)"
+ LINKNAMEIS="$(echo "$LINE" | cut -f 1 -d ' ')"
+ LINKNAMEIS="$(basename "$LINKNAMEIS")"
+ LINKPOINTSTO="$(echo "$LINE" | cut -f 3 -d ' ')"
+ echo "( cd $LINKGOESIN ; rm -rf $LINKNAMEIS )"
+ echo "( cd $LINKGOESIN ; ln -sf $LINKPOINTSTO $LINKNAMEIS )"
+ COUNT=$(expr $COUNT + 1)
+ LINE="$(sed -n "$COUNT p" $1)"
+ done
+}
+
+usage() {
+ cat << EOF
+
+Usage: makepkg package_name.tgz
+ (or: package_name.tbz, package_name.tlz, package_name.txz)
+
+Makes a Slackware compatible package containing the contents of the current
+and all subdirectories. If symbolic links exist, they will be removed and
+an installation script will be made to recreate them later. This script will
+be called "install/doinst.sh". You may add any of your own ash-compatible
+shell scripts to this file and rebuild the package if you wish.
+
+options: -l, --linkadd y|n (moves symlinks into doinst.sh: recommended)
+ -p, --prepend (prepend rather than append symlinks to an existing
+ doinst.sh. Useful to link libraries needed by
+ programs in the doinst.sh script)
+ -c, --chown y|n (resets all permissions to root:root 755
+ - not generally recommended)
+
+If these options are not set, makepkg will prompt as appropriate.
+EOF
+}
+
+TMP=/tmp # This can be a hole, but I'm going to be careful about file
+ # creation in there, so don't panic. :^)
+
+# Parse options
+while [ 0 ]; do
+ if [ "$1" = "--linkadd" -o "$1" = "-l" ]; then
+ if [ "$2" = "y" ]; then
+ LINKADD=y
+ elif [ "$2" = "n" ]; then
+ LINKADD=n
+ else
+ usage
+ exit 2
+ fi
+ shift 2
+ elif [ "$1" = "--chown" -o "$1" = "-c" ]; then
+ if [ "$2" = "y" ]; then
+ CHOWN=y
+ elif [ "$2" = "n" ]; then
+ CHOWN=n
+ else
+ usage
+ exit 2
+ fi
+ shift 2
+ elif [ "$1" = "-p" -o "$1" = "--prepend" ]; then
+ PREPEND=y
+ shift 1
+ elif [ "$1" = "-h" -o "$1" = "-H" -o "$1" = "--help" -o $# = 0 ]; then
+ usage
+ exit 0
+ else
+ break
+ fi
+done
+
+PACKAGE_NAME="$1"
+TARGET_NAME="$(dirname $PACKAGE_NAME)"
+PACKAGE_NAME="$(basename $PACKAGE_NAME)"
+
+# Identify package extension:
+if [ ! "$(basename $PACKAGE_NAME .tgz)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tgz"
+elif [ ! "$(basename $PACKAGE_NAME .tar.gz)" = "$PACKAGE_NAME" ]; then
+ # .tar.compression is also supported, although the resulting "packages" will
+ # not be installable by installpkg without the correct 3 letter extension
+ # instead.
+ EXTENSION="tar.gz"
+elif [ ! "$(basename $PACKAGE_NAME .tbz)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tbz"
+elif [ ! "$(basename $PACKAGE_NAME .tar.bz2)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tar.bz2"
+elif [ ! "$(basename $PACKAGE_NAME .tlz)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tlz"
+elif [ ! "$(basename $PACKAGE_NAME .tar.lzma)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tar.lzma"
+elif [ ! "$(basename $PACKAGE_NAME .txz)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="txz"
+elif [ ! "$(basename $PACKAGE_NAME .tar.xz)" = "$PACKAGE_NAME" ]; then
+ EXTENSION="tar.xz"
+else
+ EXTENSION="$(echo $PACKAGE_NAME | rev | cut -f 1 -d . | rev)"
+ echo "ERROR: Package extension .$EXTENSION is not supported."
+ exit 1
+fi
+
+TAR_NAME="$(basename $PACKAGE_NAME .$EXTENSION)"
+
+# Sanity check -- we can't make the package in the current directory:
+if [ "$CWD" = "$TARGET_NAME" -o "." = "$TARGET_NAME" ]; then
+ echo "ERROR: Can't make output package in current directory."
+ exit 2
+fi
+
+# Make sure external compression utility is available:
+case $EXTENSION in
+'tgz' | 'tar.gz' )
+ if ! which gzip 1> /dev/null 2> /dev/null ; then
+ echo "ERROR: gzip compression utility not found in \$PATH."
+ exit 3
+ fi
+ ;;
+'tbz' | 'tar.bz2' )
+ if ! which bzip2 1> /dev/null 2> /dev/null ; then
+ echo "ERROR: bzip2 compression utility not found in \$PATH."
+ exit 3
+ fi
+ ;;
+'tlz' | 'tar.lzma' )
+ if ! which lzma 1> /dev/null 2> /dev/null ; then
+ echo "ERROR: lzma compression utility not found in \$PATH."
+ exit 3
+ fi
+ ;;
+'txz' | 'tar.xz' )
+ if ! which xz 1> /dev/null 2> /dev/null ; then
+ echo "ERROR: xz compression utility not found in \$PATH."
+ exit 3
+ fi
+ ;;
+esac
+
+echo
+echo "Slackware package maker, version 3.14159."
+echo
+echo "Searching for symbolic links:"
+# Get rid of possible pre-existing trouble:
+INST=$(mktemp $TMP/makepkg.XXXXXX)
+# This requires the ls from coreutils-5.0 (or newer):
+find . -type l -exec ls -l --time-style=long-iso {} \; | while read foo ; do echo $foo ; done | cut -f 8- -d ' ' | cut -b3- | tee $INST
+if [ ! "$(cat $INST)" = "" ]; then
+ echo
+ echo "Making symbolic link creation script:"
+ make_install_script $INST | tee doinst.sh
+fi
+echo
+if [ ! "$(cat $INST)" = "" ]; then
+ if [ -r install/doinst.sh ]; then
+ echo "Unless your existing installation script already contains the code"
+ echo "to create these links, you should append these lines to your existing"
+ echo "install script. Now's your chance. :^)"
+ echo
+ echo "Would you like to add this stuff to the existing install script and"
+ echo -n "remove the symbolic links ([y]es, [n]o)? "
+ else
+ echo "It is recommended that you make these lines your new installation script."
+ echo
+ echo "Would you like to make this stuff the install script for this package"
+ echo -n "and remove the symbolic links ([y]es, [n]o)? "
+ fi
+ if [ ! "$LINKADD" ]; then
+ read LINKADD;
+ echo
+ else
+ echo $LINKADD
+ echo
+ fi
+ if [ "$LINKADD" = "y" ]; then
+ if [ -r install/doinst.sh ]; then
+ UPDATE="t"
+ if [ "$PREPEND" = "y" ]; then
+ touch install/doinst.sh
+ mv install/doinst.sh install/doinst.sh.shipped
+ cat doinst.sh > install/doinst.sh
+ echo "" >> install/doinst.sh
+ cat install/doinst.sh.shipped >> install/doinst.sh
+ rm -f install/doinst.sh.shipped
+ else
+ cat doinst.sh >> install/doinst.sh
+ fi
+ else
+ mkdir -p install
+ cat doinst.sh > install/doinst.sh
+ fi
+ echo
+ echo "Removing symbolic links:"
+ find . -type l -exec rm -v {} \;
+ echo
+ if [ "$UPDATE" = "t" ]; then
+ if [ "$PREPEND" = "y" ]; then
+ echo "Updating your ./install/doinst.sh (prepending symlinks)..."
+ else
+ echo "Updating your ./install/doinst.sh..."
+ fi
+ else
+ echo "Creating your new ./install/doinst.sh..."
+ fi
+ fi
+else
+ echo "No symbolic links were found, so we won't make an installation script."
+ echo "You can make your own later in ./install/doinst.sh and rebuild the"
+ echo "package if you like."
+fi
+rm -f doinst.sh $INST
+echo
+echo "This next step is optional - you can set the directories in your package"
+echo "to some sane permissions. If any of the directories in your package have"
+echo "special permissions, then DO NOT reset them here!"
+echo
+echo "Would you like to reset all directory permissions to 755 (drwxr-xr-x) and"
+echo -n "directory ownerships to root.root ([y]es, [n]o)? "
+if [ ! "$CHOWN" ]; then
+ read CHOWN;
+ echo
+else
+ echo $CHOWN
+ echo
+fi
+if [ "$CHOWN" = "y" ]; then
+ find . -type d -exec chmod -v 755 {} \;
+ find . -type d -exec chown -v root.root {} \;
+fi
+
+echo "Creating Slackware package: ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}"
+echo
+rm -f ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
+case $EXTENSION in
+'tgz' | 'tar.gz' )
+ $TAR cvf - . | gzip -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
+ ERRCODE=$?
+ if [ ! $? = 0 ]; then
+ echo "ERROR: gzip returned error code $? -- makepkg failed."
+ fi
+ ;;
+'tbz' | 'tar.bz2' )
+ $TAR cvf - . | bzip2 -9c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
+ ERRCODE=$?
+ if [ ! $ERRCODE = 0 ]; then
+ echo "ERROR: bzip2 returned error code $ERRCODE -- makepkg failed."
+ fi
+ ;;
+'tlz' | 'tar.lzma' )
+ $TAR cvf - . | lzma -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
+ ERRCODE=$?
+ if [ ! $ERRCODE = 0 ]; then
+ echo "ERROR: lzma returned error code $ERRCODE -- makepkg failed."
+ fi
+ ;;
+'txz' | 'tar.xz' )
+ $TAR cvf - . | xz -c > ${TARGET_NAME}/${TAR_NAME}.${EXTENSION}
+ ERRCODE=$?
+ if [ ! $ERRCODE = 0 ]; then
+ echo "ERROR: xz returned error code $ERRCODE -- makepkg failed."
+ fi
+ ;;
+esac
+
+# Warn of zero-length files:
+find . -type f -size 0c | while read file ; do
+ echo "WARNING: zero length file $(echo $file | cut -b3-)"
+done
+
+# Warn of corrupt or empty gzip files:
+find . -type f -name '*.gz' | while read file ; do
+ if ! gzip -t $file 1> /dev/null 2> /dev/null ; then
+ echo "WARNING: gzip test failed on $(echo $file | cut -b3-)"
+ else
+ if [ "$(gzip -l $file | tail -n 1 | tr -s ' ' | cut -f 3 -d ' ')" -eq 0 ]; then
+ echo "WARNING: $(echo $file | cut -b3-) is an empty gzipped file"
+ fi
+ fi
+done
+
+# Some more handy warnings:
+if [ -d usr/share/man ]; then
+ echo "WARNING: /usr/share/man (with possibly not gzipped man pages) detected"
+fi
+
+if [ -d usr/share/info ]; then
+ echo "WARNING: /usr/share/info (with possibly not gzipped info pages) detected"
+fi
+
+if find . | grep site_perl 1> /dev/null ; then
+ echo "WARNING: site_perl directory detected (this is fine for a local package build)"
+fi
+
+echo
+echo "Slackware package ${TARGET_NAME}/${TAR_NAME}.${EXTENSION} created."
+echo
diff --git a/source/a/pkgtools/scripts/pkgtool b/source/a/pkgtools/scripts/pkgtool
new file mode 100644
index 000000000..6191e36e7
--- /dev/null
+++ b/source/a/pkgtools/scripts/pkgtool
@@ -0,0 +1,754 @@
+#!/bin/sh
+#
+# Copyright 1993, 1994, 1995, 1996, 1997,
+# 1998, 1999 Patrick Volkerding, Moorhead, MN USA
+# Copyright 2001, 2004 Slackware Linux, Inc., Concord, CA USA
+# All rights reserved.
+# Copyright 2007, 2009 Patrick Volkerding, Sebeka, MN, USA
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Sat Apr 25 21:18:53 UTC 2009
+# Converted to use new pkgbase() function to remove pathname and
+# valid package extensions.
+#
+# Wed Oct 31 16:28:46 CDT 2007
+# * Thanks to Gabriele Inghirami for a patch allowing this script to work
+# with much larger numbers of installed packages.
+# Wed, 27 Apr 1994 00:06:50 -0700 (PDT)
+# * Optimization by David Hinds.
+# Sun Oct 24 23:11:40 BST 2004
+# * Further optimisations by Jim Hawkins <jawkins@armedslack.org>
+# - dramatically improved the speed of the "View" option
+# Thu Nov 04 12:19:56 BST 2004
+# * More optimisations by Jim Hawkins
+# - improved "Remove" speed in a similar manner to "View"
+# Wed Jan 12 16:53:48 GMT 2005
+# * Fixed quoting bug thanks to Lasse Collin
+# Wed Jan 26 23:06:22 GMT 2005
+# * Fix for non-standard package descriptions by Jim Hawkins
+
+# Return a package name that has been stripped of the dirname portion
+# and any of the valid extensions (only):
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'tgz' )
+ PKGRETURN=$(basename $1 .tgz)
+ ;;
+ 'tbz' )
+ PKGRETURN=$(basename $1 .tbz)
+ ;;
+ 'tlz' )
+ PKGRETURN=$(basename $1 .tlz)
+ ;;
+ 'txz' )
+ PKGRETURN=$(basename $1 .txz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+SOURCE_DIR=/var/log/mount
+ASK="tagfiles"
+if [ -L /bin/chmod -a -L /bin/chown ]; then # probably on the bootdisk using busybox
+ TARGET_DIR=/mnt
+ TMP=/mnt/var/log/setup/tmp
+ if mount | grep "on /mnt" 1> /dev/null 2>&1 ; then # good
+ true
+ else # bad
+ echo
+ echo
+ echo "You can't run pkgtool from the rootdisk until you've mounted your Linux"
+ echo "partitions beneath /mnt. Here are some examples of this:"
+ echo
+ echo "If your root partition is /dev/hda1, and is using ext2fs, you would type:"
+ echo "mount /dev/hda1 /mnt -t ext2"
+ echo
+ echo "Then, supposing your /usr partition is /dev/hda2, you must do this:"
+ echo "mount /dev/hda2 /mnt/usr -t ext2"
+ echo
+ echo "Please mount your Linux partitions and then run pkgtool again."
+ echo
+ exit
+ fi
+else
+ TARGET_DIR=/
+ TMP=/var/log/setup/tmp
+fi
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+ chmod 700 $TMP
+ fi
+ADM_DIR=$TARGET_DIR/var/log
+LOG=$TMP/PKGTOOL.REMOVED
+
+# remove whitespace
+crunch() {
+ while read FOO ; do
+ echo $FOO
+ done
+}
+
+package_name() {
+ STRING=$(pkgbase $1)
+ # Check for old style package name with one segment:
+ if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
+ echo $STRING
+ else # has more than one dash delimited segment
+ # Count number of segments:
+ INDEX=1
+ while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # don't include the null value
+ # If we don't have four segments, return the old-style (or out of spec) package name:
+ if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
+ echo $STRING
+ else # we have four or more segments, so we'll consider this a new-style name:
+ NAME=$(expr $INDEX - 3)
+ NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
+ echo $NAME
+ # cruft for later ;)
+ #VER=$(expr $INDEX - 2)
+ #VER="$(echo $STRING | cut -f $VER -d -)"
+ #ARCH=$(expr $INDEX - 1)
+ #ARCH="$(echo $STRING | cut -f $ARCH -d -)"
+ #BUILD="$(echo $STRING | cut -f $INDEX -d -)"
+ fi
+ fi
+}
+
+remove_packages() {
+ for pkg_name in $(cat $TMP/return | tr -d "\042")
+ do
+ if [ -r $ADM_DIR/packages/$pkg_name ]; then
+ dialog --title "PACKAGE REMOVAL IN PROGRESS" --cr-wrap --infobox \
+"\nRemoving package $pkg_name.\n\
+\n\
+Since each file must be checked \
+against the contents of every other installed package to avoid wiping out \
+areas of overlap, this process can take quite some time. If you'd like to \
+watch the progress, flip over to another virtual console and type:\n\
+\n\
+tail -f $TMP/PKGTOOL.REMOVED\n" 13 60
+ export ROOT=$TARGET_DIR
+ removepkg $pkg_name >> $LOG 2> /dev/null
+ else
+ echo "No such package: $pkg_name. Can't remove." >> $LOG
+ fi
+ done
+}
+
+create_list_of_installed_packages()
+{
+ FILES=$(ls $ADM_DIR/packages)
+ if [ -n "$FILES" ]; then
+ cd $ADM_DIR/packages
+ { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
+ | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g
+ s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" "View information about package \1" \\/;p' > $TMP/list_of_installed_packages \
+
+ fi
+}
+
+ create_list_of_files_to_remove ()
+{
+FILES=$(ls $ADM_DIR/packages)
+ if [ -n "$FILES" ]; then
+ cd $ADM_DIR/packages
+ { grep '^PACKAGE DESCRIPTION:$' -Z -H -m1 -A1 $FILES; echo; } \
+ | sed -n 'h;n;/\x00/{h;n;};x;s/ */ /g;s/ $//;s/[\"`$]/\\&/g
+ s/\(.*\)\x00\([^:]*:\)\? *\(.*\)/ "\1" "\3" off "Select\/Unselect removing package \1" \\/;p' > $TMP/temporary_list \
+
+ fi
+}
+
+# Here, we read the list of arguments passed to the pkgtool script.
+if [ $# -gt 0 ]; then # there are arguments to the command
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ -sets | --sets)
+ DISK_SETS=$(echo $2 | tr "[A-Z]" "[a-z]") ; shift 2 ;;
+ -source_mounted | --source-mounted)
+ SOURCE_MOUNTED="always" ; shift 1 ;;
+ -ignore_tagfiles | --ignore-tagfiles)
+ ASK="never" ; shift 1 ;;
+ -tagfile | --tagfile)
+ USETAG=$2 ; shift 2 ;;
+ -source_dir | --source_dir)
+ SOURCE_DIR=$2 ; shift 2 ;;
+ -target_dir | --target_dir)
+ TARGET_DIR=$2
+ ADM_DIR=$TARGET_DIR/var/log
+ shift 2 ;;
+ -source_device | --source_device)
+ SOURCE_DEVICE=$2 ; shift 2 ;;
+ esac
+ done
+else # there were no arguments, so we'll get the needed information from the
+ # user and then go on.
+ CMD_START="true"
+ rm -f $TMP/SeT*
+ while [ 0 ]; do
+ dialog --title "Slackware Package Tool (pkgtool version 13.0)" \
+--menu "\nWelcome to the Slackware package tool.\n\
+\nWhich option would you like?\n" 17 75 7 \
+"Current" "Install packages from the current directory" \
+"Other" "Install packages from some other directory" \
+"Floppy" "Install packages from floppy disks" \
+"Remove" "Remove packages that are currently installed" \
+"View" "View the list of files contained in a package" \
+"Setup" "Choose Slackware installation scripts to run again" \
+"Exit" "Exit Pkgtool" 2> $TMP/reply
+ if [ ! $? = 0 ]; then
+ rm -f $TMP/reply
+ dialog --clear
+ exit
+ fi
+ REPLY="$(cat $TMP/reply)"
+ rm -f $TMP/reply
+ if [ "$REPLY" = "Exit" ]; then
+ dialog --clear
+ exit
+ fi
+ if [ "$REPLY" = "Setup" ]; then
+ echo 'dialog --title "SELECT SYSTEM SETUP SCRIPTS" --item-help --checklist \
+ "Please use the spacebar to select the setup scripts to run. Hit enter when you \
+are done selecting to run the scripts." 17 70 9 \' > $TMP/setupscr
+ for script in $ADM_DIR/setup/setup.* ; do
+ BLURB=$(grep '#BLURB' $script | cut -b8-)
+ if [ "$BLURB" = "" ]; then
+ BLURB="\"\""
+ fi
+ echo " \"$(basename $script | cut -f2- -d .)\" $BLURB \"no\" $BLURB \\" >> $TMP/setupscr
+ done
+ echo "2> $TMP/return" >> $TMP/setupscr
+ . $TMP/setupscr
+ if [ ! "$(cat $TMP/return)" = "" ]; then
+ # Run each script:
+ for script in $(cat $TMP/return) ; do
+ scrpath=$ADM_DIR/setup/setup.$(echo $script | tr -d \")
+ rootdevice="$(mount | head -n 1 | cut -f 1 -d ' ')"
+ ( COLOR=on ; cd $TARGET_DIR ; . $scrpath / $rootdevice )
+ done
+ fi
+ rm -f $TMP/return $TMP/setupscr
+ continue
+ fi # end Setup
+
+ if [ "$REPLY" = "View" ]; then
+create_list_of_installed_packages
+ DEFITEM=""
+ export DEFITEM
+ #dialog --title "SCANNING" --infobox "Please wait while \
+#Pkgtool scans your system to determine which packages you have \
+#installed and prepares a list for you." 0 0
+ (
+ echo 'dialog $DEFITEM --item-help --menu "Please select the package you wish to view." 17 68 10 \
+ --file $TMP/list_of_installed_packages \'
+ echo "2> $TMP/return"
+ ) > $TMP/viewscr
+ while [ 0 ]; do
+ . $TMP/viewscr
+ if [ ! "$(cat $TMP/return)" = "" ]; then
+ DEFITEM="--default-item $(cat $TMP/return)"
+ dialog --title "CONTENTS OF PACKAGE: $(cat $TMP/return)" --no-shadow --textbox "$ADM_DIR/packages/$(cat $TMP/return)" \
+ 0 0 2> /dev/null
+ else
+ break
+ fi
+ done
+ rm -f $TMP/return $TMP/viewscr $TMP/tmpmsg $TMP/list_of_installed_packages
+ # This will clean up after most defective packages:
+ chmod 755 /
+ chmod 1777 /tmp
+ continue
+ fi
+
+ if [ "$REPLY" = "Remove" ]; then
+ #dialog --title "SCANNING" --infobox "Please wait while Pkgtool scans \
+#your system to determine which packages you have installed and prepares \
+#a list for you." 0 0
+ # end section
+ (
+create_list_of_files_to_remove #call the function to create a list of installed packages
+ cat << EOF
+dialog --title "SELECT PACKAGES TO REMOVE" --item-help --checklist \
+"Please select the \
+packages you wish to Remove. Use the \
+spacebar to select packages to delete, and the UP/DOWN arrow keys to \
+scroll up and down through the entire list." 20 75 11 \
+--file $TMP/temporary_list \\
+EOF
+ echo "2> $TMP/return"
+ ) > $TMP/rmscript
+ if [ -L $LOG -o -r $LOG ]; then
+ rm -f $LOG
+ fi
+ cat /dev/null > $LOG
+ chmod 600 $LOG
+ chmod 700 $TMP/rmscript
+ export ADM_DIR;
+ $TMP/rmscript
+ remove_packages
+ if [ "$(cat $TMP/PKGTOOL.REMOVED)" = "" ]; then
+ rm -f $TMP/PKGTOOL.REMOVED
+ dialog --title "NO PACKAGES REMOVED" --msgbox "Hit OK to return \
+to the main menu." 5 40
+ else
+ dialog --title "PACKAGE REMOVAL COMPLETE" --msgbox "The packages have \
+been removed. A complete log of the files that were removed has been created \
+in $TMP: PKGTOOL.REMOVED." 0 0
+ fi
+ rm -f $TMP/rmscript $TMP/return $TMP/tmpmsg $TMP/SeT* $TMP/temporary_list
+ chmod 755 /
+ chmod 1777 /tmp
+# No, return to the main menu:
+# exit
+ elif [ "$REPLY" = "Floppy" ]; then
+ dialog --title "SELECT FLOPPY DRIVE" --menu "Which floppy drive would \
+you like to install from?" \
+11 70 4 \
+"/dev/fd0u1440" "1.44 MB first floppy drive" \
+"/dev/fd1u1440" "1.44 MB second floppy drive" \
+"/dev/fd0h1200" "1.2 MB first floppy drive" \
+"/dev/fd1h1200" "1.2 MB second floppy drive" 2> $TMP/wdrive
+ if [ $? = 1 ]; then
+ dialog --clear
+ exit
+ fi
+ SOURCE_DEVICE="$(cat $TMP/wdrive)"
+ rm -f $TMP/wdrive
+ cat << EOF > $TMP/tmpmsg
+
+Enter the names of any disk sets you would like to install.
+Separate the sets with a space, like this: a b oi x
+
+To install packages from one disk, hit [enter] without typing
+anything.
+
+EOF
+ dialog --title "SOFTWARE SELECTION" --inputbox "$(cat $TMP/tmpmsg)" 13 70 2> $TMP/sets
+ DISK_SETS="$(cat $TMP/sets)"
+ rm -f $TMP/sets
+ if [ "$DISK_SETS" = "" ]; then
+ DISK_SETS="disk"
+ else
+ DISK_SETS=$(echo $DISK_SETS | sed 's/ /#/g')
+ DISK_SETS="#$DISK_SETS"
+ fi
+ break;
+ elif [ "$REPLY" = "Other" ]; then
+ dialog --title "SELECT SOURCE DIRECTORY" --inputbox "Please enter the name of the directory that you wish to \
+install packages from:" 10 50 2> $TMP/pkgdir
+ if [ $? = 1 ]; then
+ rm -f $TMP/pkgdir $TMP/SeT*
+ dialog --clear
+ exit
+ fi
+ SOURCE_DIR="$(cat $TMP/pkgdir)"
+ SOURCE_MOUNTED="always"
+ DISK_SETS="disk"
+ chmod 755 $TARGET_DIR
+ chmod 1777 $TARGET_DIR/tmp
+ rm -f $TMP/pkgdir
+ if [ ! -d $SOURCE_DIR ]; then
+ dialog --title "DIRECTORY NOT FOUND" --msgbox "The directory you want to \
+install from ($SOURCE_DIR) \
+does not seem to exist. Please check the directory and then try again." \
+10 50
+ dialog --clear
+ exit
+ fi
+ break;
+ else # installing from current directory
+ SOURCE_MOUNTED="always"
+ SOURCE_DIR="$PWD"
+ DISK_SETS="disk"
+ chmod 755 $TARGET_DIR
+ chmod 1777 $TARGET_DIR/tmp
+ break;
+ fi
+ done
+fi
+if [ "$DISK_SETS" = "disk" ]; then
+ ASK="always"
+fi
+
+mount_the_source() {
+ # is the source supposed to be mounted already?
+ if [ "$SOURCE_MOUNTED" = "always" ]; then
+ # The source should already be mounted, so we test it
+ if [ ! -d $SOURCE_DIR ]; then # the directory is missing
+ cat << EOF > $TMP/tmpmsg
+
+Your source device cannot be accessed properly.
+
+Please be sure that it is mounted on $SOURCE_DIR,
+and that the Slackware disks are found in subdirectories
+of $SOURCE_DIR like specified.
+
+EOF
+ dialog --title "MOUNT ERROR" --msgbox "$(cat $TMP/tmpmsg)" 11 67
+ rm -f $TMP/tmpmsg
+ exit 1;
+ fi
+ return 0;
+ fi
+ dialog --title "INSERT DISK" --menu "Please insert disk $1 and \
+press ENTER to continue." \
+11 50 3 \
+"Continue" "Continue with the installation" \
+"Skip" "Skip the current disk series" \
+"Quit" "Abort the installation process" 2> $TMP/reply
+ if [ ! $? = 0 ]; then
+ REPLY="Quit"
+ else
+ REPLY="$(cat $TMP/reply)"
+ fi
+ rm -f $TMP/reply
+ if [ "$REPLY" = "Skip" ]; then
+ return 1;
+ fi
+ if [ "$REPLY" = "Quit" ]; then
+ dialog --title "ABORTING" --msgbox "Aborting software installation." 5 50
+ chmod 755 $TARGET_DIR
+ chmod 1777 $TARGET_DIR/tmp
+ exit 1;
+ fi;
+ # Old line:
+ # mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR
+ # New ones: (thanks to Andy Schwierskott!)
+ go_on=y
+ not_successfull_mounted=1
+ while [ "$go_on" = y -a "$not_successfull_mounted" = 1 ]; do
+ mount -r -t msdos $SOURCE_DEVICE $SOURCE_DIR
+ not_successfull_mounted=$?
+ if [ "$not_successfull_mounted" = 1 ]; then
+ mount_answer=x
+ while [ "$mount_answer" != "y" -a "$mount_answer" != "q" ] ; do
+ dialog --title "MOUNT PROBLEM" --menu "Media was not successfully \
+mounted! Do you want to \
+retry, or quit?" 10 60 2 \
+"Yes" "Try to mount the disk again" \
+"No" "No, abort." 2> $TMP/mntans
+ mount_answer="$(cat $TMP/mntans)"
+ rm -f $TMP/mntans
+ if [ "$mount_answer" = "Yes" ]; then
+ mount_answer="y"
+ else
+ mount_answer="q"
+ fi
+ done
+ go_on=$mount_answer
+ fi
+ done
+ test $not_successfull_mounted = 0
+}
+
+umount_the_source() {
+ if [ ! "$SOURCE_MOUNTED" = "always" ]; then
+ umount $SOURCE_DEVICE 1> /dev/null 2>&1
+ fi;
+}
+
+install_disk() {
+ mount_the_source $1
+ if [ $? = 1 ]; then
+ umount_the_source;
+ return 1;
+ fi
+ CURRENT_DISK_NAME="$1"
+ PACKAGE_DIR=$SOURCE_DIR
+ if [ "$SOURCE_MOUNTED" = "always" -a ! "$DISK_SETS" = "disk" ]; then
+ PACKAGE_DIR=$PACKAGE_DIR/$1
+ fi
+
+ # If this directory is missing or contains no *.t?z files, bail.
+ if [ ! -d $PACKAGE_DIR ]; then
+ return 1
+ fi
+ if ! ls $PACKAGE_DIR/*.t?z 1> /dev/null 2> /dev/null ; then
+ return 1
+ fi
+
+ #
+ # look for tagfile for this series and copy into $TMP/tagfile
+ #
+ touch $TMP/tagfile
+ if [ ! "$DISK_SETS" = "disk" ]; then
+ if [ -r $TMP/SeTtagext ]; then
+ if [ -r $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) ]; then
+ cat $PACKAGE_DIR/tagfile$(cat $TMP/SeTtagext) >> $TMP/tagfile
+ else
+ if [ -r $PACKAGE_DIR/tagfile ]; then
+ cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
+ fi
+ fi
+
+ #
+ # Do we need to follow a custom path to the tagfiles?
+ #
+ elif [ -r $TMP/SeTtagpath ]; then
+ custom_path=$(cat $TMP/SeTtagpath)
+ short_path=$(basename $PACKAGE_DIR)
+
+ # If tagfile exists at the specified custom path, copy it over.
+ if [ -r $custom_path/$short_path/tagfile ]; then
+ cat $custom_path/$short_path/tagfile >> $TMP/tagfile
+
+ else # well, I guess we'll use the default one then.
+ if [ -r $PACKAGE_DIR/tagfile ]; then
+ cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
+ fi
+ fi
+ #
+ # We seem to be testing for this too often... maybe this code should
+ # be optimized a little...
+ #
+ elif [ -r $PACKAGE_DIR/tagfile ]; then
+ cat $PACKAGE_DIR/tagfile >> $TMP/tagfile
+ fi
+
+ #
+ # Execute menus if in QUICK mode:
+ #
+ if [ -r $TMP/SeTQUICK -a -r $PACKAGE_DIR/maketag ]; then
+ if [ ! "$MAKETAG" = "" -a -r $PACKAGE_DIR/$MAKETAG ]; then # use alternate maketag
+ sh $PACKAGE_DIR/$MAKETAG
+ else
+ sh $PACKAGE_DIR/maketag
+ fi
+ if [ -r $TMP/SeTnewtag ]; then
+ mv $TMP/SeTnewtag $TMP/tagfile
+ fi
+ fi
+
+ #
+ # Protect tagfile from hacker attack:
+ #
+ if [ -r $TMP/tagfile ]; then
+ chmod 600 $TMP/tagfile
+ fi
+
+ fi # ! "$DISK_SETS" = "disk"
+
+ # It's possible that the tagfile was specified on the command line. If that's
+ # the case, then we'll just override whatever we figured out up above.
+ if [ ! "$USETAG" = "" ]; then
+ cat $USETAG > $TMP/tagfile
+ fi
+
+ # If there's a catalog file present, use it to check for missing files.
+ # If not, forget about that and install whatever's there.
+ if [ "$1" = "single_disk" -o -r $PACKAGE_DIR/disk$1 -o -r $PACKAGE_DIR/package-list.txt ]; then
+ if [ -r $PACKAGE_DIR/package-list.txt ]; then
+ CATALOG_FILE=$PACKAGE_DIR/package-list.txt
+ else
+ CATALOG_FILE=$(basename $PACKAGE_DIR/disk*);
+ fi
+ if [ -r $PACKAGE_DIR/$CATALOG_FILE -a ! -d $PACKAGE_DIR/$CATALOG_FILE ]; then
+ if grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE 1> /dev/null 2>&1 ; then
+ # First we check for missing packages...
+ for PKGTEST in $(grep "^CONTENTS:" $PACKAGE_DIR/$CATALOG_FILE | cut -f2- -d : 2> /dev/null) ; do
+ # This is not a perfect test. (say emacs is missing but emacs-nox is not)
+ if ls $PACKAGE_DIR/$PKGTEST*.t?z 1> /dev/null 2> /dev/null ; then # found something like it
+ true
+ else
+ cat << EOF > $TMP/tmpmsg
+
+WARNING!!!
+
+While looking through your index file ($CATALOG_FILE),
+I noticed that you might be missing a package:
+
+$PKGTEST-\*-\*-\*.t?z
+
+that is supposed to be on this disk (disk $1). You may go
+on with the installation if you wish, but if this is a
+crucial file I'm making no promises that your machine will
+boot.
+
+EOF
+ dialog --title "FILE MISSING FROM YOUR DISK" --msgbox \
+"$(cat $TMP/tmpmsg)" 17 67
+ fi
+ done # checking for missing packages
+ # Now we test for extra packages:
+ ALLOWED="$(grep CONTENTS: $PACKAGE_DIR/$CATALOG_FILE | cut -b10- 2> /dev/null)"
+ for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do
+ BASE=$(pkgbase $PACKAGE_FILENAME)
+ BASE="$(package_name $BASE)"
+ if echo $ALLOWED | grep $BASE 1> /dev/null 2>&1 ; then
+ true
+ else
+ cat << EOF > $TMP/tmpmsg
+
+WARNING!!!
+
+While looking through your index file ($CATALOG_FILE),
+I noticed that you have this extra package:
+
+($BASE.t?z)
+
+that I don't recognize. Please be sure this package is
+really supposed to be here, and is not left over from an
+old version of Slackware. Sometimes this can happen at the
+archive sites.
+
+EOF
+ dialog --title "EXTRA FILE FOUND ON YOUR DISK" \
+--msgbox "$(cat $TMP/tmpmsg)" 17 67
+ rm -f $TMP/tmpmsg
+ fi
+ done
+ fi
+ fi
+ fi # check for missing/extra packages
+
+ # Install the packages:
+ for PACKAGE_FILENAME in $PACKAGE_DIR/*.t?z; do
+ if [ "$PACKAGE_FILENAME" = "$PACKAGE_DIR/*.t?z" ]; then
+ continue;
+ fi
+ if [ "$ASK" = "never" ]; then # install the package
+ installpkg -root $TARGET_DIR -infobox -tagfile $TMP/tagfile $PACKAGE_FILENAME
+ ERROR=$?
+ elif [ "$ASK" = "tagfiles" ]; then
+ installpkg -root $TARGET_DIR -menu -tagfile $TMP/tagfile $PACKAGE_FILENAME
+ ERROR=$?
+ else # ASK should be = always here, and that's how we'll treat it
+ installpkg -root $TARGET_DIR -menu -ask -tagfile $TMP/tagfile $PACKAGE_FILENAME
+ ERROR=$?
+ fi
+ # Check for abort:
+ if [ "$ERROR" = "99" ]; then
+ umount_the_source;
+ chmod 755 $TARGET_DIR
+ chmod 1777 $TARGET_DIR/tmp
+ exit 1;
+ fi
+ done
+ OUTTAHERE="false"
+ if [ -r $PACKAGE_DIR/install.end ]; then
+ OUTTAHERE="true"
+ fi
+ umount_the_source;
+ if [ "$OUTTAHERE" = "true" ]; then
+ return 1;
+ fi
+}
+
+install_disk_set() { # accepts one argument: the series name in lowercase.
+ SERIES_NAME=$1
+ CURRENT_DISK_NUMBER="1";
+ while [ 0 ]; do
+ # Don't start numbering the directories until 2:
+ if [ $CURRENT_DISK_NUMBER = 1 ]; then
+ DISKTOINSTALL=$SERIES_NAME
+ else
+ DISKTOINSTALL=$SERIES_NAME$CURRENT_DISK_NUMBER
+ fi
+ install_disk $DISKTOINSTALL
+ if [ ! $? = 0 ]; then # install.end was found, or the user chose
+ # to quit installing packages.
+ return 0;
+ fi
+ CURRENT_DISK_NUMBER=$(expr $CURRENT_DISK_NUMBER + 1)
+ done;
+}
+
+# /* main() */ ;)
+if [ "$DISK_SETS" = "disk" ]; then
+ install_disk single_disk;
+ ASK="always"
+else
+ touch $TMP/tagfile
+ chmod 600 $TMP/tagfile
+ if echo $DISK_SETS | grep "#a#" 1> /dev/null 2>&1; then
+ A_IS_NEEDED="true"
+ else
+ A_IS_NEEDED="false"
+ fi
+ while [ 0 ];
+ do
+ while [ 0 ]; # strip leading '#'s
+ do
+ if [ "$(echo $DISK_SETS | cut -b1)" = "#" ]; then
+ DISK_SETS="$(echo $DISK_SETS | cut -b2-)"
+ else
+ break;
+ fi
+ done
+ if [ "$A_IS_NEEDED" = "true" ]; then
+ cat << EOF > $TMP/tmpmsg
+
+--- Installing package series ==>a<==
+
+EOF
+ dialog --infobox "$(cat $TMP/tmpmsg)" 5 45
+ sleep 1
+ rm -f $TMP/tmpmsg
+ install_disk_set a;
+ A_IS_NEEDED="false"
+ fi
+ count="1"
+ if [ "$(echo $DISK_SETS | cut -b$count)" = "" ]; then
+ break; # we be done here :^)
+ else
+ count="2"
+ while [ 0 ]; do
+ if [ "$(echo $DISK_SETS | cut -b$count)" = "" -o "$(echo $DISK_SETS | cut -b$count)" = "#" ]; then
+ count="$(expr $count - 1)"
+ break;
+ else
+ count="$(expr $count + 1)"
+ fi
+ done
+ fi
+ diskset="$(echo $DISK_SETS | cut -b1-$count)"
+ count="$(expr $count + 1)"
+ DISK_SETS="$(echo $DISK_SETS | cut -b$count-)"
+ if [ "$diskset" = "a" ]; then
+ continue; # we expect this to be done elsewhere
+ fi
+ cat << EOF > $TMP/tmpmsg
+
+Installing package series ==>$diskset<==
+
+EOF
+ dialog --infobox "$(cat $TMP/tmpmsg)" 5 45
+ sleep 1
+ rm -f $TMP/tmpmsg
+ install_disk_set $diskset;
+ done
+fi
+
+if [ "$DISK_SETS" = "disk" -o "$CMD_START" = "true" ]; then
+ if [ -r $TMP/tagfile ]; then
+ rm $TMP/tagfile
+ fi
+ dialog --clear
+fi
+chmod 755 $TARGET_DIR $TARGET_DIR/var $TARGET_DIR/usr
+chmod 1777 $TARGET_DIR/tmp
diff --git a/source/a/pkgtools/scripts/removepkg b/source/a/pkgtools/scripts/removepkg
new file mode 100644
index 000000000..8b5a911dd
--- /dev/null
+++ b/source/a/pkgtools/scripts/removepkg
@@ -0,0 +1,430 @@
+#!/bin/sh
+# Slackware remove package script
+#
+# Sat Apr 25 21:18:53 UTC 2009 (12.34567890b)
+# Converted to use new pkgbase() function to remove pathname and
+# valid package extensions.
+#
+# Revision 12.34567890 Sun Apr 5 20:59:32 CDT 2009 <volkerdi>
+# - Support packages with the extensions: .tgz, .tbz, .tlz, .txz
+#
+# Revision 1.9 Wed Oct 31 14:04:28 CDT 2007 volkerding
+# - Fix problem removing packages with a large number of fields.
+# Thanks to Niki Kovacs for noticing this, and to Piter Punk
+# for the patch.
+# - Use LC_ALL=C locale, which is much faster with "sort".
+# Thanks to Tsomi.
+# - Don't try to remove any package that starts with '-'. This
+# is not a proper package name (usually a typo), and results
+# in the package database being broken. Thanks to Jef Oliver.
+# - Patched cat_except() to allow the last Slackware package on
+# a partition to be removed (using ROOT=, of course)
+# Thanks to Selkfoster for the patch, and to everyone else who
+# proposed solutions before. This issue really wasn't given
+# the highest priority before, but I figured while I'm in here...
+#
+# Revision 1.8 Thu Nov 22 14:00:13 PST 2001 volkerding Rel $
+# - Move $TMP underneath $ROOT
+# - Understand the idea of a base package name, so that packages
+# can be removed with any of these notations:
+# removepkg foo-1.0-i386-1.tgz
+# removepkg foo-1.0-i386-1
+# removepkg foo.tgz
+# removepkg foo
+#
+# Revision 1.7 2001/03/30 12:36:28 volkerding
+# - Strip extra ".tgz" from input names.
+#
+# Revision 1.6 1999/03/25 18:26:41 volkerding
+# - Use external $ROOT variable, like installpkg.
+#
+# Revision 1.5.1 1998/03/18 15:37:28 volkerding
+# - Since removepkg is always run by root, the temp directory has been
+# moved from /tmp to a private directory to avoid symlink attacks from
+# malicious users.
+#
+# Revision 1.5 1997/06/26 12:09:53 franke
+# - Fixed old bug in TRIGGER regex setting
+# - -preserve/-copy options now preserve non-unique files
+# and empty directories also
+#
+# Revision 1.4 1997/06/09 13:21:36 franke
+# - Package file preserve (-preserve, -copy) added.
+# - Don't execute "rm -rf" lines from doinst.sh, removing links explicit.
+# - Warning on no longer existing files added.
+# - Warning on files changed after package installation added.
+# - Intermediate file preserve (-keep) added.
+# - Check for required files/links now done on a combined list.
+# - Write access to /var/log/{packages,scripts} no longer necessary for -warn.
+#
+# Revision 1.3 1997/06/08 13:03:05 franke
+# Merged with revision 1.1.1.1
+#
+# Revision 1.2 1996/06/01 20:04:26 franke
+# Delete empty directories & formated manual pages added
+#
+# Revision 1.1.1.1 1995/12/18 21:20:42 volkerding
+# Original Version from Slackware 3.1
+#
+# Revision 1.1 1995/06/05 22:49:11 volkerding
+# Original Version from Slackware 3.0
+#
+
+# Copyright 1994, 1995, 1998 Patrick Volkerding, Moorhead, Minnesota USA
+# Copyright 2001, Slackware Linux, Inc., Concord, CA USA
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+# Return a package name that has been stripped of the dirname portion
+# and any of the valid extensions (only):
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'tgz' )
+ PKGRETURN=$(basename $1 .tgz)
+ ;;
+ 'tbz' )
+ PKGRETURN=$(basename $1 .tbz)
+ ;;
+ 'tlz' )
+ PKGRETURN=$(basename $1 .tlz)
+ ;;
+ 'txz' )
+ PKGRETURN=$(basename $1 .txz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+# This makes "sort" run much faster:
+export LC_ALL=C
+
+# Make sure there's a proper temp directory:
+TMP=$ROOT/var/log/setup/tmp
+# If the $TMP directory doesn't exist, create it:
+if [ ! -d $TMP ]; then
+ rm -rf $TMP # make sure it's not a symlink or something stupid
+ mkdir -p $TMP
+ chmod 700 $TMP # no need to leave it open
+fi
+ADM_DIR=$ROOT/var/log
+PRES_DIR=$TMP/preserved_packages
+
+# This simple cat_except() should be used on the installer,
+# since the busybox "find" can't handle the complex find
+# syntax:
+#cat_except() {
+# ( cd "$1" && cat $(ls * | sed "/^$2\$/d"))
+#}
+
+# This version of cat_except() allows the last package to be
+# removed when ROOT= is used:
+cat_except() {
+ ( cd "$1" && \
+ if [ $(find . -type f -maxdepth 1 | wc -l) -ne 1 ]; then
+ cat $(find . -type f -maxdepth 1 | grep -v "$2")
+ fi
+ )
+}
+
+extract_links() {
+ sed -n 's,^( *cd \([^ ;][^ ;]*\) *; *rm -rf \([^ )][^ )]*\) *) *$,\1/\2,p'
+}
+
+preserve_file() {
+ if [ "$PRESERVE" = "true" ]; then
+ F="$(basename "$1")"
+ D="$(dirname "$1")"
+ if [ ! -d "$PRES_DIR/$PKGNAME/$D" ]; then
+ mkdir -p "$PRES_DIR/$PKGNAME/$D" || return 1
+ fi
+ cp -p "$ROOT/$D/$F" "$PRES_DIR/$PKGNAME/$D" || return 1
+ fi
+ return 0
+}
+
+preserve_dir() {
+ if [ "$PRESERVE" = "true" ]; then
+ if [ ! -d "$PRES_DIR/$PKGNAME/$1" ]; then
+ mkdir -p "$PRES_DIR/$PKGNAME/$1" || return 1
+ fi
+ fi
+ return 0
+}
+
+keep_files() {
+ while read FILE ; do
+ if [ ! -d "$ROOT/$FILE" ]; then
+ if [ -r "$ROOT/$FILE" ]; then
+ echo " --> $ROOT/$FILE was found in another package. Skipping."
+ preserve_file "$FILE"
+ else
+ if [ "$(echo $FILE | cut -b1-8)" != "install/" ]; then
+ echo "WARNING: Nonexistent $ROOT/$FILE was found in another package. Skipping."
+ fi
+ fi
+ else
+ preserve_dir "$FILE"
+ fi
+ done
+}
+
+keep_links() {
+ while read LINK ; do
+ if [ -L "$ROOT/$LINK" ]; then
+ echo " --> $ROOT/$LINK (symlink) was found in another package. Skipping."
+ else
+ echo "WARNING: Nonexistent $ROOT/$LINK (symlink) was found in another package. Skipping."
+ fi
+ done
+}
+
+delete_files() {
+ while read FILE ; do
+ if [ ! -d "$ROOT/$FILE" ]; then
+ if [ -r "$ROOT/$FILE" ]; then
+ if [ "$ROOT/$FILE" -nt "$ADM_DIR/packages/$PKGNAME" ]; then
+ echo "WARNING: $ROOT/$FILE changed after package installation."
+ fi
+ if [ ! "$WARN" = "true" ]; then
+ echo " --> Deleting $ROOT/$FILE"
+ preserve_file "$FILE" && rm -f "$ROOT/$FILE"
+ else
+ echo " --> $ROOT/$FILE would be deleted"
+ preserve_file "$FILE"
+ fi
+ else
+ echo " --> $ROOT/$FILE no longer exists. Skipping."
+ fi
+ else
+ preserve_dir "$FILE"
+ fi
+ done
+}
+
+delete_links() {
+ while read LINK ; do
+ if [ -L "$ROOT/$LINK" ]; then
+ if [ ! "$WARN" = "true" ]; then
+ echo " --> Deleting symlink $ROOT/$LINK"
+ rm -f $ROOT/$LINK
+ else
+ echo " --> $ROOT/$LINK (symlink) would be deleted"
+ fi
+ else
+ echo " --> $ROOT/$LINK (symlink) no longer exists. Skipping."
+ fi
+ done
+}
+
+delete_dirs() {
+ sort -r | \
+ while read DIR ; do
+ if [ -d "$ROOT/$DIR" ]; then
+ if [ ! "$WARN" = "true" ]; then
+ if [ $(ls -a "$ROOT/$DIR" | wc -l) -eq 2 ]; then
+ echo " --> Deleting empty directory $ROOT/$DIR"
+ rmdir "$ROOT/$DIR"
+ else
+ echo "WARNING: Unique directory $ROOT/$DIR contains new files"
+ fi
+ else
+ echo " --> $ROOT/$DIR (dir) would be deleted if empty"
+ fi
+ fi
+ done
+}
+
+delete_cats() {
+ sed -n 's,/man\(./[^/]*$\),/cat\1,p' | \
+ while read FILE ; do
+ if [ -f "$ROOT/$FILE" ]; then
+ if [ ! "$WARN" = "true" ]; then
+ echo " --> Deleting $ROOT/$FILE (fmt man page)"
+ rm -f $ROOT/$FILE
+ else
+ echo " --> $ROOT/$FILE (fmt man page) would be deleted"
+ fi
+ fi
+ done
+}
+
+package_name() {
+ STRING=$(pkgbase $1)
+ # If we don't do this, commands run later will take the '-' to be an option
+ # and will destroy the package database. Packages should not contain spaces
+ # in them. Normally this type of problem results from a command line typo.
+ if [ "$(echo $STRING | cut -b 1)" = "-" ]; then
+ STRING="malformed-package-name-detected"
+ fi
+ # Check for old style package name with one segment:
+ if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
+ echo $STRING
+ else # has more than one dash delimited segment
+ # Count number of segments:
+ INDEX=1
+ while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # don't include the null value
+ # If we don't have four segments, return the old-style (or out of spec) package name:
+ if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
+ echo $STRING
+ else # we have four or more segments, so we'll consider this a new-style name:
+ NAME=$(expr $INDEX - 3)
+ NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
+ echo $NAME
+ # cruft for later ;)
+ #VER=$(expr $INDEX - 2)
+ #VER="$(echo $STRING | cut -f $VER -d -)"
+ #ARCH=$(expr $INDEX - 1)
+ #ARCH="$(echo $STRING | cut -f $ARCH -d -)"
+ #BUILD="$(echo $STRING | cut -f $INDEX -d -)"
+ fi
+ fi
+}
+
+# Conversion to 'comm' utility by Mark Wisdom.
+# is pretty nifty! :^)
+remove_packages() {
+ for PKGLIST in $*
+ do
+ PKGNAME=$(pkgbase $PKGLIST)
+ echo
+ # If we don't have a package match here, then we will attempt to find
+ # a package using the long name format (name-version-arch-build) for
+ # which the base package name was given. On a properly-managed machine,
+ # there should only be one package installed with a given basename, but
+ # we don't enforce this policy. If there's more than one, only one will
+ # be removed. If you want to remove them all, you'll need to run
+ # removepkg again until it removes all the same-named packages.
+ if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then
+ SHORT="$(package_name $PKGNAME)"
+ for long_package in $ADM_DIR/packages/${PKGNAME}* ; do
+ if [ "$SHORT" = "$(package_name $long_package)" ]; then
+ PKGNAME="$(basename $long_package)"
+ fi
+ done
+ fi
+
+ if [ ! -e $ADM_DIR/packages/$PKGNAME ]; then
+ long_package=$(ls -1 $ADM_DIR/packages/${PKGNAME}* | grep -m 1 "${PKGNAME}-[^-]*-[^-]*-[^-]*$")
+ if [ -e "$long_package" ]; then
+ PKGNAME=$(basename $long_package)
+ fi
+ fi
+
+ if [ -r $ADM_DIR/packages/$PKGNAME ]; then
+ if [ ! "$WARN" = true ]; then
+ echo "Removing package $ADM_DIR/packages/$PKGNAME..."
+ fi
+ if fgrep "./" $ADM_DIR/packages/$PKGNAME 1> /dev/null 2>&1; then
+ TRIGGER="^\.\/"
+ else
+ TRIGGER="FILE LIST:"
+ fi
+ if [ ! "$WARN" = true ]; then
+ echo "Removing files:"
+ fi
+ sed -n "/$TRIGGER/,/^$/p" < $ADM_DIR/packages/$PKGNAME | \
+ fgrep -v "FILE LIST:" | sort -u > $TMP/delete_list$$
+ # Pat's new-new && improved pre-removal routine.
+ cat_except $ADM_DIR/packages $PKGNAME | sort -u > $TMP/required_list$$
+ if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
+ extract_links < $ADM_DIR/scripts/$PKGNAME | sort -u > $TMP/del_link_list$$
+ cat_except $ADM_DIR/scripts $PKGNAME | extract_links | \
+ sort -u > $TMP/required_links$$
+ mv $TMP/required_list$$ $TMP/required_files$$
+ sort -u $TMP/required_links$$ $TMP/required_files$$ > $TMP/required_list$$
+ comm -12 $TMP/del_link_list$$ $TMP/required_list$$ | keep_links
+ comm -23 $TMP/del_link_list$$ $TMP/required_list$$ | delete_links
+ else
+ cat $ADM_DIR/scripts/* | extract_links | \
+ sort -u > $TMP/required_links$$
+ mv $TMP/required_list$$ $TMP/required_files$$
+ sort -u $TMP/required_links$$ $TMP/required_files$$ >$TMP/required_list$$
+ fi
+ comm -12 $TMP/delete_list$$ $TMP/required_list$$ | keep_files
+ comm -23 $TMP/delete_list$$ $TMP/required_list$$ > $TMP/uniq_list$$
+ delete_files < $TMP/uniq_list$$
+ delete_dirs < $TMP/uniq_list$$
+ delete_cats < $TMP/uniq_list$$
+ if [ ! "$KEEP" = "true" ]; then
+ rm -f $TMP/delete_list$$ $TMP/required_files$$ $TMP/uniq_list$$
+ rm -f $TMP/del_link_list$$ $TMP/required_links$$ $TMP/required_list$$
+ fi
+ if [ "$PRESERVE" = "true" ]; then
+ if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
+ if [ ! -d "$PRES_DIR/$PKGNAME/install" ]; then
+ mkdir -p "$PRES_DIR/$PKGNAME/install"
+ fi
+ cp -p $ADM_DIR/scripts/$PKGNAME $PRES_DIR/$PKGNAME/install/doinst.sh
+ fi
+ fi
+ if [ ! "$WARN" = "true" ]; then
+ for DIR in $ADM_DIR/removed_packages $ADM_DIR/removed_scripts ; do
+ if [ ! -d $DIR ] ; then mkdir -p $DIR ; chmod 755 $DIR ; fi
+ done
+ mv $ADM_DIR/packages/$PKGNAME $ADM_DIR/removed_packages
+ if [ -r $ADM_DIR/scripts/$PKGNAME ]; then
+ mv $ADM_DIR/scripts/$PKGNAME $ADM_DIR/removed_scripts
+ fi
+ fi
+ else
+ echo "No such package: $ADM_DIR/packages/$PKGNAME. Can't remove."
+ fi
+ done
+}
+
+if [ "$#" = "0" ]; then
+ echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1
+fi
+
+while : ; do
+ case "$1" in
+ -copy | --copy) WARN=true; PRESERVE=true; shift;;
+ -keep | --keep) KEEP=true; shift;;
+ -preserve | --preserve) PRESERVE=true; shift;;
+ -warn | --warn) WARN=true; shift;;
+ -* | --*) echo "Usage: $(basename $0) [-copy] [-keep] [-preserve] [-warn] packagename ..."; exit 1;;
+ *) break
+ esac
+done
+
+if [ "$WARN" = "true" ]; then
+ echo "Only warning... not actually removing any files."
+ if [ "$PRESERVE" = "true" ]; then
+ echo "Package contents is copied to $PRES_DIR."
+ fi
+ echo "Here's what would be removed (and left behind) if you"
+ echo "removed the package(s):"
+ echo
+else
+ if [ "$PRESERVE" = "true" ]; then
+ echo "Package contents is copied to $PRES_DIR."
+ fi
+fi
+
+remove_packages $*
+
diff --git a/source/a/pkgtools/scripts/setup.70.install-kernel b/source/a/pkgtools/scripts/setup.70.install-kernel
new file mode 100644
index 000000000..8edf64779
--- /dev/null
+++ b/source/a/pkgtools/scripts/setup.70.install-kernel
@@ -0,0 +1,5 @@
+# Install the bootdisk or CD-ROM's Linux kernel:
+#BLURB="Install a Linux kernel from a bootdisk"
+if [ -x /usr/lib/setup/SeTkernel ]; then
+ . /usr/lib/setup/SeTkernel
+fi
diff --git a/source/a/pkgtools/scripts/setup.80.make-bootdisk b/source/a/pkgtools/scripts/setup.80.make-bootdisk
new file mode 100644
index 000000000..d9b4012f2
--- /dev/null
+++ b/source/a/pkgtools/scripts/setup.80.make-bootdisk
@@ -0,0 +1,175 @@
+#!/bin/sh
+#BLURB="Create a USB Linux boot stick"
+RDIR=/dev/tty4
+NDIR=/dev/null
+TMP=/var/log/setup/tmp
+
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+T_PX="$1"
+ROOT_DEVICE="$2"
+
+while [ 0 ]; do # the bootdisk menu loop
+ # Run "rescan-scsi-bus -l" to get an up to date overview of devices:
+ /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
+ # Get a list of removable block devices before the USB stick is inserted:
+ echo "" > $TMP/remov_prior
+ for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
+ [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
+ && echo $BDEV >> $TMP/remov_prior
+ done
+ dialog --title "MAKE USB FLASH BOOT" --default-item "Skip" --menu \
+"If your computer supports booting from a USB device, it is recommended that you make \
+a USB boot stick for your system at this time. It will boot your computer straight \
+into the root filesystem on $ROOT_DEVICE. \n\
+\n\
+Please insert a USB flash memory stick and then press ENTER to create a boot stick. \n\
+\n\
+WARNING! The existing contents of the USB stick will be erased. \n\
+ " 18 70 2 \
+ "Create" "Make a USB Linux boot stick" \
+ "Skip" "Skip making a USB boot stick" \
+ 2> $TMP/return
+ REPLY=`cat $TMP/return`
+ rm -f $TMP/return
+ if [ "$REPLY" = "Create" ]; then
+ # Run "rescan-scsi-bus -l" to discover our USB stick if needed:
+ /sbin/rescan-scsi-bus -l 1>$RDIR 2>$RDIR
+ # Get a list of removable block devices after the USB stick is inserted:
+ echo "" > $TMP/remov_after
+ for BDEV in $(ls --indicator-style none /sys/block | egrep -v "loop|ram"); do
+ [ -r /sys/block/$BDEV/removable -a "$(cat /sys/block/$BDEV/removable)" == "1" ] \
+ && echo $BDEV >> $TMP/remov_after
+ done
+ ADDED=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
+ REMVD=$(diff -u $TMP/remov_prior $TMP/remov_after | sed -n 's/^\+//p' | grep -v '^+')
+ if [ -n "$ADDED" ] ; then STICK=$ADDED ; else STICK="" ; fi
+ rm $TMP/remov_prior $TMP/remov_after
+ if [ ! -n "$STICK" ]; then
+ dialog --title "NO NEW DEVICE DETECTED" --ok-label Restart --msgbox \
+"No new USB device was detected.
+If you had already inserted your USB stick, please remove it now. \
+Then select 'Restart'." 7 70
+ continue
+ else
+ VENDOR="Vendor : $(cat /sys/block/$STICK/device/vendor)"
+ MODEL="Model : $(cat /sys/block/$STICK/device/model)"
+ SIZE="Size : $(( $(cat /sys/block/$STICK/size) / 2048)) MB"
+ dialog --title "NEW DEVICE DETECTED" --yesno \
+"A new USB device '/dev/$STICK' was detected with specifications:
+
+-- $VENDOR
+-- $MODEL
+-- $SIZE
+
+If this is the USB stick to use, select 'Yes',
+otherwise select 'No'." 12 70
+ if [ $? -eq 1 ]; then
+ continue
+ fi
+ fi
+
+ dialog --title "CREATING USB BOOT STICK" --infobox "Creating SYSLINUX bootdisk for \
+$ROOT_DEVICE on /dev/$STICK." 3 64
+ # Determine max size of the filesystem (in KB) we want to create:
+ USBSIZE=$(( $(cat /sys/block/$STICK/size) / 2048))
+ if [ $USBSIZE -lt 512 ]; then DOSSIZE=$(($USBSIZE*1024))
+ else DOSSIZE=$((512*1024))
+ fi
+ # Hack from Pat. If we're wasting a whole stick, who cares if the partition is
+ # extra-small, as long as the kernel fits? Also, FAT12 is the least problematic.
+ DOSSIZE=15861
+ if [ -x /sbin/mkdosfs ]; then
+ /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null
+ else
+ chroot $T_PX /sbin/mkdosfs -I -n USBSLACK -F 12 /dev/$STICK $DOSSIZE 1> /dev/null 2> /dev/null
+ fi
+ if [ ! -d $TMP/bootdisk ]; then
+ mkdir $TMP/bootdisk
+ fi
+ mount -t vfat /dev/$STICK $TMP/bootdisk 1> /dev/null 2> /dev/null
+ if [ -r $T_PX/vmlinuz ]; then
+ cp $T_PX/vmlinuz $TMP/bootdisk/vmlinuz
+ elif [ -r $T_PX/boot/vmlinuz ]; then
+ cp $T_PX/boot/vmlinuz $TMP/bootdisk/vmlinuz
+ fi
+ # We don't need the isolinux bootloader with syslinux do we?
+ #cp $T_PX/usr/share/syslinux/isolinux.bin $TMP/bootdisk/
+ cat << EOF > $TMP/bootdisk/message.txt
+
+Welcome to the 09Slackware07 Linux custom USB boot stick!
+
+By default, this stick boots a root Linux partition on $ROOT_DEVICE when you
+hit ENTER. If you'd like to boot some other partition, use a command like
+this on the prompt below:
+
+ mount root=/dev/sda1 ro
+
+Where "/dev/sda1" is the partition you want to boot, and "ro" specifies that
+the partition should be initially mounted as read-only. If you wish to mount
+the partition read-write, use "rw" instead. To set the video console mode,
+use the vga= parameter (press F1 to see a table). You may also add any other
+kernel parameters you might need depending on your hardware, and which
+drivers are included in your kernel.
+
+EOF
+ cat << EOF > $TMP/bootdisk/syslinux.cfg
+default vmlinuz root=$ROOT_DEVICE vga=normal ro
+prompt 1
+timeout 6000
+display message.txt
+F1 f1.txt
+F2 message.txt
+#F3 f3.txt
+#F4 f4.txt
+#F5 f5.txt
+#F6 f6.txt
+#F7 f7.txt
+label mount
+ kernel vmlinuz
+ append root=$ROOT_DEVICE vga=normal ro
+EOF
+ cat << EOF > $TMP/bootdisk/f1.txt
+ STANDARD MODES:
+ To make the kernel prompt for standard video modes use: vga=ask
+
+ FRAMEBUFFER MODES:
+ To get the kernel to start in VESA framebuffer mode, you need to pass it
+ a vga= init string on the "boot:" prompt. Here's a table:
+
+ Colors 640x480 800x600 1024x768 1280x1024 1600x1200
+ --------+---------------------------------------------
+ 256 | 769 771 773 775 796
+ 32,768 | 784 787 790 793 797
+ 65,536 | 785 788 791 794 798
+ 16.8M | 786 789 792 795 799
+
+ ...such as this for 1024x768x64k:
+ vga=791
+
+ F2 returns to the previous page.
+
+EOF
+ umount /dev/$STICK
+ rm -r $TMP/bootdisk
+ # Make the device bootable:
+ syslinux -s /dev/$STICK 1> /dev/null 2> /dev/null
+ dialog --title "USB BOOT STICK CREATED" --ok-label Continue --cancel-label Create --menu \
+"The USB boot stick has been successfully created in /dev/$STICK. If you would like to \
+create an additional boot stick, please select 'Create' and we'll go back and make another \
+one, otherwise select 'Continue' to continue configuring your system." 12 70 2 \
+ "Continue" "Continue the configuration (done making boot sticks)" \
+ "Create" "Make a spare Linux boot stick in /dev/$STICK" \
+ 2> $TMP/return
+ REPLY=`cat $TMP/return`
+ rm -f $TMP/return
+ if [ "$REPLY" = "Create" ]; then
+ continue
+ else
+ break
+ fi
+ else # ! Create
+ break
+ fi
+done
diff --git a/source/a/pkgtools/scripts/setup.htmlview b/source/a/pkgtools/scripts/setup.htmlview
new file mode 100644
index 000000000..2fd9930a7
--- /dev/null
+++ b/source/a/pkgtools/scripts/setup.htmlview
@@ -0,0 +1,33 @@
+#!/bin/sh
+#BLURB="Set a default browser link."
+# Sorry, this is not a full menu, and may not ever be.
+# It is trivial to find the htmllink symbolic link and
+# point it at the browser that you like. Besides,
+# this is not a Linux standard that could be locating
+# in any official document. It seems to have been
+# started without any consultation with other
+# distributions by <take a wild guess>, and now things
+# expect it to be there.
+#
+#
+# Note 1. Listing a browser doesn't mean we ship it.
+# Note 2. Complaints about our preferences or missing
+# browsers in the list will be considered.
+# Yell at Pat about it. ;-)
+
+# There must be no link, or we assume the admin set it and
+# do nothing. Can you tell this Q+D script was written for
+# the initial installation?
+
+for browser in firefox seamonkey konqueror galeon epiphany links lynx ; do
+ if [ ! -e usr/bin/htmlview -a -x usr/bin/$browser ]; then
+ cat << EOF > usr/bin/htmlview
+#!/bin/sh
+exec $browser "\$@"
+EOF
+ fi
+done
+if [ -e usr/bin/htmlview ]; then
+ chmod 755 usr/bin/htmlview
+fi
+
diff --git a/source/a/pkgtools/scripts/setup.services b/source/a/pkgtools/scripts/setup.services
new file mode 100644
index 000000000..aee2599fd
--- /dev/null
+++ b/source/a/pkgtools/scripts/setup.services
@@ -0,0 +1,287 @@
+#!/bin/sh
+#BLURB="Select/deselect system daemons (services)"
+TMP=/var/log/setup/tmp
+if [ ! -d $TMP ]; then
+ mkdir -p $TMP
+fi
+T_PX="$1"
+cd $T_PX
+rm -f $TMP/tmpscript
+
+cat << EOF > $TMP/tmpscript
+dialog --title "CONFIRM STARTUP SERVICES TO RUN" --item-help --checklist \\
+"The selected services will be started at boot time. If you \\
+don't need them, you may unselect them to turn them off (which may improve \\
+overall system security). You may also choose to start services that are \\
+not run by default, but be aware that more services means less security. \\
+Use the spacebar to select or unselect the services you wish to run. \\
+Recommended choices have been preselected. \\
+Press the ENTER key when you are finished." \\
+20 75 7 \\
+EOF
+
+if [ -r etc/rc.d/rc.atalk ]; then
+ if [ -x etc/rc.d/rc.atalk ]; then
+ RC_ATALK=on
+ else
+ RC_ATALK=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.atalk" "Netatalk Appletalk file/print server" $RC_ATALK "The Netatalk server is a file and print server for Macintosh networks." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.bind ]; then
+ if [ -x etc/rc.d/rc.bind ]; then
+ RC_BIND=on
+ else
+ RC_BIND=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.bind" "BIND (Domain Name System) server" $RC_BIND "BIND (Berkeley Internet Name Domain) is a Domain Name System (DNS) server." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.cups ]; then
+ if [ -x etc/rc.d/rc.cups ]; then
+ RC_CUPS=on
+ else
+ RC_CUPS=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.cups" "CUPS print server" $RC_CUPS "The Common UNIX Printing system (print spooler choice #1)." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.dnsmasq ]; then
+ if [ -x etc/rc.d/rc.dnsmasq ]; then
+ RC_DNSMASQ=on
+ else
+ RC_DNSMASQ=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.dnsmasq" "dnsmasq DHCP/DNS server" $RC_DNSMASQ "dnsmasq provides DNS and DHCP service to a LAN." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.fuse ]; then
+ if [ -x etc/rc.d/rc.fuse ]; then
+ RC_FUSE=on
+ else
+ RC_FUSE=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.fuse" "Filesystem in Userspace library" $RC_FUSE "FUSE is an interface to allow userspace programs to use filesystems." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.hald ]; then
+ if [ -x etc/rc.d/rc.hald ]; then
+ RC_HALD=on
+ else
+ RC_HALD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.hald" "Hardware Abstraction Layer" $RC_HALD "HAL makes access to CD/DVD drives and USB devices easier." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.hplip ]; then
+ if [ -x etc/rc.d/rc.hplip ]; then
+ RC_HPLIP=on
+ else
+ RC_HPLIP=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.hplip" "HP printer/scanner daemons" $RC_HPLIP "Programs used to run printers and scanners from Hewlett Packard." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.httpd ]; then
+ if [ -x etc/rc.d/rc.httpd ]; then
+ RC_HTTPD=on
+ else
+ RC_HTTPD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.httpd" "The Apache web server" $RC_HTTPD "Apache, the most widely used web server on the net." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.inetd ]; then
+ if [ -x etc/rc.d/rc.inetd ]; then
+ RC_INETD=on
+ else
+ RC_INETD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.inetd" "The BSD Inetd daemon" $RC_INETD "Inetd daemon (this allows: time, ftp, comsat, talk, finger, and auth)." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.ip_forward ]; then
+ if [ -x etc/rc.d/rc.ip_forward ]; then
+ RC_IP_FORWARD=on
+ else
+ RC_IP_FORWARD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.ip_forward" "Activate IP packet forwarding" $RC_IP_FORWARD "Packet forwarding allows your Linux machine to act as a router." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.lprng ]; then
+ if [ -x etc/rc.d/rc.lprng ]; then
+ RC_LPRNG=on
+ else
+ RC_LPRNG=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.lprng" "LPRng print server" $RC_LPRNG "The LPRng printing system (print spooler choice #2)." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.messagebus ]; then
+ if [ -x etc/rc.d/rc.messagebus ]; then
+ RC_MESSAGEBUS=on
+ else
+ RC_MESSAGEBUS=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for communication by HAL and other programs." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.mysqld ]; then
+ if [ -x etc/rc.d/rc.mysqld ]; then
+ RC_MYSQLD=on
+ else
+ RC_MYSQLD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.mysqld" "The MySQL database server" $RC_MYSQLD "MySQL, an SQL-based relational database daemon." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.ntpd ]; then
+ if [ -x etc/rc.d/rc.ntpd ]; then
+ RC_NTPD=on
+ else
+ RC_NTPD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.ntpd" "The network time server" $RC_NTPD "NTP synchronizes your time to/from other NTP servers." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.pcmcia ]; then
+ if [ -x etc/rc.d/rc.pcmcia ]; then
+ RC_PCMCIA=on
+ else
+ RC_PCMCIA=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.pcmcia" "PCMCIA/Cardbus card services" $RC_PCMCIA "This supports PCMCIA or Cardbus cards used with laptops." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.rpc ]; then
+ if [ -x etc/rc.d/rc.rpc ]; then
+ RC_RPC=on
+ else
+ RC_RPC=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.rpc" "RPC (NFS) daemons" $RC_RPC "Needed to serve or mount NFS (Network File System) partitions." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.samba ]; then
+ if [ -x etc/rc.d/rc.samba ]; then
+ RC_SAMBA=on
+ else
+ RC_SAMBA=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.samba" "The Samba file/print server" $RC_SAMBA "Samba is a file and print server for Windows networks." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.saslauthd ]; then
+ if [ -x etc/rc.d/rc.saslauthd ]; then
+ RC_SASLAUTHD=on
+ else
+ RC_SASLAUTHD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.saslauthd" "The SASL authentication server" $RC_SASLAUTHD "SASL is an authentication method often used by mail servers." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.sendmail ]; then
+ if [ -x etc/rc.d/rc.sendmail ]; then
+ RC_SENDMAIL=on
+ else
+ RC_SENDMAIL=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.sendmail" "The Sendmail mail server" $RC_SENDMAIL "The Sendmail server allows your machine to send and receive mail." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.snmpd ]; then
+ if [ -x etc/rc.d/rc.snmpd ]; then
+ RC_SNMPD=on
+ else
+ RC_SNMPD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.snmpd" "Net-SNMP daemon" $RC_SNMPD "SNMP daemon that receives and logs SNMP TRAP and INFORM messages." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.syslog ]; then
+ if [ -x etc/rc.d/rc.syslog ]; then
+ RC_SYSLOGD=on
+ else
+ RC_SYSLOGD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.syslog" "The Linux system logging utilities" $RC_SYSLOGD "The syslogd and klogd daemons log important messages under /var/log." \\
+EOF
+fi
+
+if [ -r etc/rc.d/rc.sshd ]; then
+ if [ -x etc/rc.d/rc.sshd ]; then
+ RC_SSHD=on
+ else
+ RC_SSHD=off
+ fi
+ cat << EOF >> $TMP/tmpscript
+ "rc.sshd" "The SSHD (secure shell) daemon" $RC_SSHD "SSHD allows secure encrypted logins to your machine." \\
+EOF
+fi
+
+cat << EOF >> $TMP/tmpscript
+ 2> $TMP/reply
+EOF
+
+. $TMP/tmpscript
+
+if [ ! $? = 0 ]; then
+ rm -f $TMP/reply $TMP/tmpscript
+ exit
+fi
+
+for service in rc.atalk rc.bind rc.cups rc.dnsmasq rc.fuse rc.hald rc.hplip rc.httpd rc.inetd rc.ip_forward rc.lprng rc.messagebus rc.mysqld rc.ntpd rc.pcmcia rc.rpc rc.samba rc.saslauthd rc.snmpd rc.sendmail rc.syslog rc.sshd ; do
+ if [ -f etc/rc.d/$service ]; then
+ if grep -w $service $TMP/reply 1> /dev/null ; then
+ chmod 755 etc/rc.d/$service
+ else
+ chmod 644 etc/rc.d/$service
+ fi
+ fi
+done
+
+rm -f $TMP/reply $TMP/tmpscript
+
diff --git a/source/a/pkgtools/scripts/upgradepkg b/source/a/pkgtools/scripts/upgradepkg
new file mode 100644
index 000000000..cc3250dae
--- /dev/null
+++ b/source/a/pkgtools/scripts/upgradepkg
@@ -0,0 +1,387 @@
+#!/bin/sh
+# Copyright 1999 Patrick Volkerding, Moorhead, Minnesota, USA
+# Copyright 2001, 2002, 2003 Slackware Linux, Inc., Concord, California, USA
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Modified to handle either old 8.3 or new package-version-arch-build.tgz
+# packages, Sat Nov 17 14:25:58 PST 2001 volkerdi
+#
+# Rewritten to clean out _all_ old packages of a given basename, not just
+# the first one found, Thu Apr 4 01:01:05 PST 2002 volkerdi
+#
+# Added --install-new and --reinstall, Fri May 31 14:11:14 PDT 2002 volkerdi
+# Added --dry-run, Sat Apr 26 18:13:29 PDT 2003
+#
+# Sat Apr 25 21:18:53 UTC 2009
+# Support new compression types and package extensions.
+# Converted to use new pkgbase() function to remove pathname and
+# valid package extensions.
+
+# Return a package name that has been stripped of the dirname portion
+# and any of the valid extensions (only):
+pkgbase() {
+ PKGEXT=$(echo $1 | rev | cut -f 1 -d . | rev)
+ case $PKGEXT in
+ 'tgz' )
+ PKGRETURN=$(basename $1 .tgz)
+ ;;
+ 'tbz' )
+ PKGRETURN=$(basename $1 .tbz)
+ ;;
+ 'tlz' )
+ PKGRETURN=$(basename $1 .tlz)
+ ;;
+ 'txz' )
+ PKGRETURN=$(basename $1 .txz)
+ ;;
+ *)
+ PKGRETURN=$(basename $1)
+ ;;
+ esac
+ echo $PKGRETURN
+}
+
+usage() {
+ cat << EOF
+
+Usage: upgradepkg newpackage [newpackage2 ... ]
+ upgradepkg oldpackage%newpackage [oldpackage2%newpackage2 ... ]
+
+Upgradepkg upgrades a Slackware package (.tgz, .tbz, .tlz, .txz) from an
+older version to a newer one. It does this by INSTALLING the new package
+onto the system, and then REMOVING any files from the old package that
+aren't in the new package. If the old and new packages have the same
+name, a single argument is all that is required. If the packages have
+different names, supply the name of the old package followed by a percent
+symbol (%), then the name of the new package. Do not add any extra
+whitespace between pairs of old/new package names.
+
+Before upgrading a package, save any configuration files (such as in /etc)
+that you wish to keep. Sometimes these will be preserved, but it depends
+on the package. If you want to force new versions of the config files
+to be installed, remove the old ones manually prior to running upgradepkg.
+
+To upgrade in a directory other than / (such as /mnt):
+
+ ROOT=/mnt upgradepkg package.tgz (or .tbz, .tlz, .txz)
+
+EOF
+}
+
+# Make sure there's a proper temp directory:
+TMP=$ROOT/var/log/setup/tmp
+# If the $TMP directory doesn't exist, create it:
+if [ ! -d $TMP ]; then
+ rm -rf $TMP # make sure it's not a symlink or something stupid
+ mkdir $TMP
+ chmod 700 $TMP # no need to leave it open
+fi
+
+# This script expects an 022 umask:
+umask 022
+
+# $ROOT defined?
+if [ -d "$ROOT" ]; then
+ export ROOT
+fi
+
+# --help or no args?
+if [ "$1" = "" -o "$1" = "--help" -o "$1" = "-?" ]; then
+ usage;
+ exit 1;
+fi
+
+# Arg processing loop. These must come before any packages are listed.
+while [ 0 ]; do
+ if [ "$1" = "--no-paranoia" ]; then
+ # Enable --no-paranoia mode. This is so not-recommended that we're
+ # not even going to document it. ;) If a file used to be directly
+ # managed and now is moved into place, using --no-paranoia will cause
+ # it to improperly disappear. It does slightly speed things up, though.
+ # Don't use it.
+ NOT_PARANOID="true"
+ shift 1
+ elif [ "$1" = "--install-new" ]; then
+ # Install packages that do not already have an installed version.
+ # The usual default is to skip them.
+ INSTALL_NEW="yes"
+ shift 1
+ elif [ "$1" = "--reinstall" ]; then
+ # Reinstall packages even if the installed one is the same version.
+ REINSTALL="true"
+ shift 1
+ elif [ "$1" = "--verbose" -o "$1" = "-v" ]; then
+ # We're adding a --verbose mode that doesn't filter removepkg as much
+ VERBOSE="verbose"
+ shift 1
+ elif [ "$1" = "--dry-run" ]; then
+ # Output a report about which packages would be installed or upgraded
+ # but don't actually perform the upgrades.
+ DRY_RUN="true"
+ shift 1
+ else # no more args
+ break;
+ fi
+done # processing args
+
+# Here's a function to figure out the package name from one of those
+# new long filenames. We'll need this to double check the name of the
+# old package.
+
+package_name() {
+ STRING=$(pkgbase $1)
+ # Check for old style package name with one segment:
+ if [ "$(echo $STRING | cut -f 1 -d -)" = "$(echo $STRING | cut -f 2 -d -)" ]; then
+ echo $STRING
+ else # has more than one dash delimited segment
+ # Count number of segments:
+ INDEX=1
+ while [ ! "$(echo $STRING | cut -f $INDEX -d -)" = "" ]; do
+ INDEX=$(expr $INDEX + 1)
+ done
+ INDEX=$(expr $INDEX - 1) # don't include the null value
+ # If we don't have four segments, return the old-style (or out of spec) package name:
+ if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then
+ echo $STRING
+ else # we have four or more segments, so we'll consider this a new-style name:
+ NAME=$(expr $INDEX - 3)
+ NAME="$(echo $STRING | cut -f 1-$NAME -d -)"
+ echo $NAME
+ # cruft for later ;)
+ #VER=$(expr $INDEX - 2)
+ #VER="$(echo $STRING | cut -f $VER -d -)"
+ #ARCH=$(expr $INDEX - 1)
+ #ARCH="$(echo $STRING | cut -f $ARCH -d -)"
+ #BUILD="$(echo $STRING | cut -f $INDEX -d -)"
+ fi
+ fi
+}
+
+ERRCODE=0
+
+# Main processing loop:
+while [ ! "$1" = "" ]; do
+
+# Simple package integrity check:
+if [ ! -f $(echo $1 | cut -f 2 -d '%') ]; then
+ ERRCODE=4
+ echo "Cannot install $1: file not found"
+ shift 1
+ continue;
+fi
+
+# Figure out the names of the old and new packages:
+OLD=$(echo $1 | cut -f 1 -d '%')
+NEW=$(echo $1 | cut -f 2 -d '%')
+INCOMINGDIR=$(dirname $NEW)
+# These are the package names with the extension:
+NNAME=$(basename $NEW)
+ONAME=$(basename $OLD)
+# These are the package names without the extension:
+OLD=$(pkgbase $OLD)
+NEW=$(pkgbase $NEW)
+
+# Make sure the extension is valid:
+if [ "$NNAME" = "$NEW" ]; then
+ # We won't throw an ERRCODE for this, but the package is skipped:
+ echo "Cannot install $1: invalid package extension"
+ shift 1
+ continue;
+fi
+
+# Check and fix the old package name:
+SHORT="$(package_name $OLD)"
+if [ ! -r $ROOT/var/log/packages/$OLD ]; then
+ if ls $ROOT/var/log/packages/$SHORT* 1> /dev/null 2> /dev/null ; then
+ for installed_package in $ROOT/var/log/packages/$SHORT* ; do
+ if [ "$(package_name $installed_package)" = "$SHORT" ]; then # found one
+ OLD="$(basename $installed_package)"
+ break
+ fi
+ done
+ fi
+fi
+
+# Test to see if both the old and new packages are where we expect them
+# to be -- skip to the next package (or package pair) if anything's wrong:
+
+if [ ! -r $ROOT/var/log/packages/$OLD ]; then
+ if [ ! "$INSTALL_NEW" = "yes" ]; then
+ if [ "$DRY_RUN" = "true" ]; then
+ echo "$OLD would not be upgraded (no installed package named $SHORT)."
+ else
+ echo
+ echo "Error: there is no installed package named $OLD."
+ echo " (looking for $ROOT/var/log/packages/$OLD)"
+ echo
+ fi
+ ERRCODE=1
+ else # --install-new was given, so install the new package:
+ if [ "$DRY_RUN" = "true" ]; then
+ echo "$NEW would be installed (new package)."
+ else
+ cat << EOF
+
++==============================================================================
+| Installing new package $INCOMINGDIR/$NNAME
++==============================================================================
+
+EOF
+ installpkg $INCOMINGDIR/$NNAME
+ fi
+ fi
+ shift 1
+ continue;
+elif [ ! -r "$INCOMINGDIR/$NNAME" ]; then
+ if [ "$DRY_RUN" = "true" ]; then
+ echo "$NEW incoming package not found (command line)."
+ else
+ echo
+ echo "Error: incoming package $INCOMINGDIR/$NNAME not found."
+ echo
+ fi
+ shift 1
+ ERRCODE=1
+ continue;
+fi
+
+# Unless --reinstall was given, compare the package names
+# and skip any exact matches:
+if [ ! "$REINSTALL" = "true" ]; then
+ if [ "$OLD" = "$NEW" ]; then
+ if [ "$DRY_RUN" = "true" ]; then
+ echo "$NEW would be skipped (already installed)."
+ else
+ cat << EOF
+
++==============================================================================
+| Skipping package $NEW (already installed)
++==============================================================================
+
+EOF
+ fi
+ shift 1
+ continue;
+ fi
+fi
+
+# Showtime. Let's do the upgrade. First, we will rename all the
+# installed packages with this basename to make them easy to remove later:
+
+TIMESTAMP=$(date +%Y-%m-%d,%T)
+SHORT="$(package_name $OLD)"
+if [ "$DRY_RUN" = "true" ]; then
+ echo -n "$NEW would upgrade: "
+ for installed_package in $ROOT/var/log/packages/$SHORT* ; do
+ if [ "$(package_name $installed_package)" = "$SHORT" ]; then
+ echo -n "$(pkgbase $installed_package)"
+ fi
+ done
+ echo
+ shift 1
+ continue
+fi
+for installed_package in $ROOT/var/log/packages/$SHORT* ; do
+ if [ "$(package_name $installed_package)" = "$SHORT" ]; then
+ mv $installed_package ${installed_package}-upgraded-$TIMESTAMP
+ fi
+done
+for installed_script in $ROOT/var/log/scripts/$SHORT* ; do
+ if [ "$(package_name $installed_script)" = "$SHORT" ]; then
+ if [ -r $installed_script ]; then
+ mv $installed_script ${installed_script}-upgraded-$TIMESTAMP
+ fi
+ fi
+done
+
+# Print a banner for the current upgrade:
+cat << EOF
+
++==============================================================================
+| Upgrading $OLD package using $INCOMINGDIR/$NNAME
++==============================================================================
+
+EOF
+
+# Next, the new package is pre-installed:
+if [ "$VERBOSE" = "verbose" ]; then
+ installpkg $INCOMINGDIR/$NNAME
+ RETCODE=$?
+else
+ echo "Pre-installing package $NEW..."
+ installpkg $INCOMINGDIR/$NNAME 1> /dev/null
+ RETCODE=$?
+fi
+# Make sure that worked:
+if [ ! $RETCODE = 0 ]; then
+ echo "ERROR: Package $INCOMINGDIR/$NNAME did not install"
+ echo "correctly. You may need to reinstall your old package"
+ echo "to avoid problems. Make sure the new package is not"
+ echo "corrupted."
+ sleep 30
+ # Skip this package, but still try to proceed. Good luck...
+ shift 1
+ continue;
+fi
+
+# Now, the leftovers from the old package(s) can go. Pretty simple, huh? :)
+if [ -d "$ROOT" ]; then
+ ( cd $ROOT/var/log/packages
+ for rempkg in *-$TIMESTAMP ; do
+ if [ "$VERBOSE" = "verbose" ]; then
+ ROOT=$ROOT removepkg $rempkg
+ else
+ ROOT=$ROOT removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:"
+ fi
+ done
+ )
+else
+ ( cd /var/log/packages
+ for rempkg in *-$TIMESTAMP ; do
+ if [ "$VERBOSE" = "verbose" ]; then
+ removepkg $rempkg
+ else
+ removepkg $rempkg | grep -v "Skipping\." | grep -v "Removing files:"
+ fi
+ done
+ )
+fi
+echo
+
+# Again! Again!
+# Seriously, the reinstalling of a package can be crucial if any files
+# shift location, so we should always reinstall as the final step:
+if [ ! "$NOT_PARANOID" = "true" ]; then
+ installpkg $INCOMINGDIR/$NNAME
+fi
+
+echo "Package $OLD upgraded with new package $INCOMINGDIR/$NNAME."
+ERRCODE=0
+
+# Process next parameter:
+shift 1
+
+done
+
+if [ ! "$DRY_RUN" = "true" ]; then
+ echo
+fi
+exit $ERRCODE
diff --git a/source/a/pkgtools/slack-desc b/source/a/pkgtools/slack-desc
new file mode 100644
index 000000000..ab3fc1198
--- /dev/null
+++ b/source/a/pkgtools/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+pkgtools: pkgtools (The Slackware package maintenance system)
+pkgtools:
+pkgtools: This package contains utilities for handling Slackware packages.
+pkgtools: Included are the command line utilities 'installpkg', 'removepkg',
+pkgtools: 'makepkg', 'explodepkg', and 'upgradepkg' that install, remove,
+pkgtools: build, examine, and upgrade software packages. Also included are
+pkgtools: 'pkgtool', a menu based program for installing packages, removing
+pkgtools: packages, or viewing the packages that are installed on the system,
+pkgtools: documentation (man pages), and a few other system admin scripts.
+pkgtools:
+pkgtools:
diff --git a/source/a/procps/procinfo.gcc3.diff b/source/a/procps/procinfo.gcc3.diff
new file mode 100644
index 000000000..96a3dbb19
--- /dev/null
+++ b/source/a/procps/procinfo.gcc3.diff
@@ -0,0 +1,11 @@
+--- ./routines.c.orig 2001-02-24 15:30:45.000000000 -0800
++++ ./routines.c 2003-02-07 13:38:09.000000000 -0800
+@@ -390,7 +390,7 @@
+ unsigned int d, h, m, s;
+ static char buf[22];
+
+- t = t * 100 / HZ;
++ t = t * 100. / HZ;
+ d = (int) (t / 8640000);
+ t = t - (long) (d * 8640000);
+ h = (int) (t / 360000);
diff --git a/source/a/procps/procinfo.lsm b/source/a/procps/procinfo.lsm
new file mode 100644
index 000000000..70ff559f6
--- /dev/null
+++ b/source/a/procps/procinfo.lsm
@@ -0,0 +1,15 @@
+Begin3
+Title: procinfo
+Version: 18
+Entered-date: 02MAR01
+Description: A utility to prettyprint /proc/*
+Keywords: procinfo, system info
+Author: svm@kozmix.cistron.nl (Sander van Malssen)
+Maintained-by: svm@kozmix.cistron.nl (Sander van Malssen)
+Primary-site: ftp.cistron.nl /pub/people/svm
+ 23k procinfo-18.tar.gz
+Alternate-site: metalab.unc.edu /pub/Linux/system/status/ps
+Alternate-site: tsx-11.mit.edu /pub/linux/sources/usr.bin
+Platforms: Linux 1.0.x - 2.4.x
+Copying-policy: GNU Public License
+End
diff --git a/source/a/procps/procps-3.2.7-ps-eip64.diff b/source/a/procps/procps-3.2.7-ps-eip64.diff
new file mode 100644
index 000000000..9eb851f44
--- /dev/null
+++ b/source/a/procps/procps-3.2.7-ps-eip64.diff
@@ -0,0 +1,48 @@
+--- procps-3.2.7/ps/ps.1.eip64 2007-06-14 11:08:35.000000000 +0200
++++ procps-3.2.7/ps/ps.1 2007-06-14 11:03:28.000000000 +0200
+@@ -1156,6 +1156,14 @@
+ or\ a\ decimal representation otherwise.
+ T}
+
++rip RIP T{
++64-bit instruction pointer.
++T}
++
++rsp RSP T{
++64-bit stack pointer.
++T}
++
+ rss RSS T{
+ resident set size, the non\-swapped physical memory that
+ a task has used (in\ kiloBytes).
+--- procps-3.2.7/ps/output.c.eip64 2007-06-14 11:08:24.000000000 +0200
++++ procps-3.2.7/ps/output.c 2007-06-14 10:58:21.000000000 +0200
+@@ -764,10 +764,18 @@
+ return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_esp));
+ }
+
++static int pr_rsp(char *restrict const outbuf, const proc_t *restrict const pp){
++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_esp));
++}
++
+ static int pr_eip(char *restrict const outbuf, const proc_t *restrict const pp){
+ return snprintf(outbuf, COLWID, "%08x", (unsigned)(pp->kstk_eip));
+ }
+
++static int pr_rip(char *restrict const outbuf, const proc_t *restrict const pp){
++ return snprintf(outbuf, COLWID, "%016lx", (unsigned long)(pp->kstk_eip));
++}
++
+ /* This function helps print old-style time formats */
+ static int old_time_helper(char *dst, unsigned long long t, unsigned long long rel) {
+ if(!t) return snprintf(dst, COLWID, " -");
+@@ -1403,7 +1411,9 @@
+ {"resident", "RES", pr_nop, sr_resident, 5,MEM, LNX, PO|RIGHT},
+ {"rgid", "RGID", pr_rgid, sr_rgid, 5, 0, XXX, ET|RIGHT},
+ {"rgroup", "RGROUP", pr_rgroup, sr_rgroup, 8, GRP, U98, ET|USER}, /* was 8 wide */
++{"rip", "RIP", pr_rip, sr_kstk_eip, 16, 0, LNX, TO|RIGHT},
+ {"rlink", "RLINK", pr_nop, sr_nop, 8, 0, BSD, AN|RIGHT},
++{"rsp", "RSP", pr_rsp, sr_kstk_eip, 16, 0, LNX, TO|RIGHT},
+ {"rss", "RSS", pr_rss, sr_rss, 5, 0, XXX, PO|RIGHT}, /* was 5 wide */
+ {"rssize", "RSS", pr_rss, sr_vm_rss, 5, 0, DEC, PO|RIGHT}, /*rsz*/
+ {"rsz", "RSZ", pr_rss, sr_vm_rss, 5, 0, BSD, PO|RIGHT}, /*rssize*/
diff --git a/source/a/procps/procps.SlackBuild b/source/a/procps/procps.SlackBuild
new file mode 100755
index 000000000..a5163bbc2
--- /dev/null
+++ b/source/a/procps/procps.SlackBuild
@@ -0,0 +1,191 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=3.2.7
+# Sometimes this number lags behind...
+SOVER=3.2.7
+PSMISCVER=22.3
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-procps
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+# Prepare build locations:
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf procps-$VERSION
+tar xzvf $CWD/procps-$VERSION.tar.gz
+cd procps-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+mkdir -p $PKG/usr/doc/procps-$VERSION
+cp -a BUGS COPYING COPYING.LIB NEWS TODO $PKG/usr/doc/procps-$VERSION
+chown root:root $PKG/usr/doc/procps-$VERSION/*
+chmod 644 $PKG/usr/doc/procps-$VERSION/*
+# While I don't agree this is a harmful patch, I will defer to the
+# maintainer's judgement on this one. Besides, I quit using the '-'
+# with ps years ago. It wasn't that hard to change.
+#echo zcat $CWD/procps.nowarning.diff.gz
+#zcat $CWD/procps.nowarning.diff.gz | patch -p1 --verbose || exit 1
+
+# Display the location from which the user is logged in by default.
+# This is how previous versions of 'w' in Slackware have always
+# defaulted.
+echo zcat $CWD/procps.w.showfrom.diff.gz
+zcat $CWD/procps.w.showfrom.diff.gz | patch -p1 --verbose || exit 1
+
+if [ "$ARCH" = "x86_64" ]; then
+# Taken from RedHat: ps truncates eip and esp to 32bit values on 64bit systems.
+# The patch adds 64bit rip and rsp to the 'ps' output options on x86_64
+ zcat $CWD/procps-3.2.7-ps-eip64.diff.gz | patch -p1 --verbose || exit 1
+fi
+
+make OPT="$SLKCFLAGS"
+mkdir -p $PKG/lib${LIBDIRSUFFIX} $PKG/bin $PKG/sbin $PKG/usr/bin
+cat free > $PKG/bin/free
+cat ps/ps> $PKG/bin/ps
+cat proc/libproc-${SOVER}.so > $PKG/lib${LIBDIRSUFFIX}/libproc-${SOVER}.so
+cat pkill > $PKG/usr/bin/pkill
+cat skill > $PKG/usr/bin/skill
+cat pmap > $PKG/usr/bin/pmap
+cat slabtop > $PKG/usr/bin/slabtop
+cat sysctl > $PKG/sbin/sysctl
+cat tload > $PKG/usr/bin/tload
+cat top > $PKG/usr/bin/top
+cat uptime > $PKG/usr/bin/uptime
+cat vmstat > $PKG/usr/bin/vmstat
+cat w > $PKG/usr/bin/w
+cat watch > $PKG/usr/bin/watch
+( cd $PKG/usr/bin
+ ln -sf pkill pgrep
+ ln -sf skill snice
+ # Just in case
+ ln -sf /bin/free .
+ ln -sf /bin/ps .
+)
+cp -a ps/ps.1 .
+mkdir -p $PKG/usr/man/man1
+for page in free.1 pgrep.1 pkill.1 ps.1 slabtop.1 skill.1 snice.1 tload.1 top.1 uptime.1 w.1 watch.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+mkdir -p $PKG/usr/man/man5
+cat sysctl.conf.5 | gzip -9c > $PKG/usr/man/man5/sysctl.conf.5.gz
+mkdir -p $PKG/usr/man/man8
+for page in vmstat.8 sysctl.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+
+echo "+=============+"
+echo "| psmisc-$PSMISCVER |"
+echo "+=============+"
+cd $TMP
+rm -rf psmisc-$PSMISCVER
+tar xzvf $CWD/psmisc-$PSMISCVER.tar.gz
+cd psmisc-$PSMISCVER
+# Maybe we'll turn on NLS when it supports more than
+# just US English. :)
+CFLAGS="$SLKCFLAGS" \
+./configure --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --disable-nls
+mkdir -p $PKG/usr/doc/psmisc-$PSMISCVER
+cp -a AUTHORS COPYING ChangeLog INSTALL NEWS README $PKG/usr/doc/psmisc-$PSMISCVER
+chmod 644 $PKG/usr/doc/psmisc-$PSMISCVER/*
+chown root:root $PKG/usr/doc/psmisc-$PSMISCVER/*
+make
+cd src
+strip fuser pstree killall
+cat fuser > $PKG/usr/bin/fuser
+cat pstree > $PKG/usr/bin/pstree
+cat killall > $PKG/bin/killall
+cd ../doc
+for page in fuser.1 killall.1 pstree.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+cd ..
+
+echo "+=============+"
+echo "| procinfo-18 |"
+echo "+=============+"
+cd $TMP
+rm -rf procinfo-18
+tar xzvf $CWD/procinfo-18.tar.gz
+cd procinfo-18
+zcat $CWD/procinfo.gcc3.diff.gz | patch -p1 --backup --suffix=.orig --verbose || exit 1
+mkdir -p $PKG/usr/doc/procinfo-18
+cp -a CHANGES README $PKG/usr/doc/procinfo-18
+chmod 644 $PKG/usr/doc/procinfo-18/*
+chown root:root $PKG/usr/doc/procinfo-18/*
+make CFLAGS="$SLKCFLAGS"
+strip procinfo
+cat procinfo > $PKG/usr/bin/procinfo
+cat lsdev.pl > $PKG/usr/bin/lsdev
+cat socklist.pl > $PKG/usr/bin/socklist
+for page in procinfo.8 lsdev.8 socklist.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+
+# Fix permissions:
+chmod 755 $PKG/lib${LIBDIRSUFFIX}/* $PKG/bin/* $PKG/sbin/* $PKG/usr/bin/*
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/procps-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/procps-$VERSION
+ rm -rf $TMP/procinfo-18
+ rm -rf $TMP/psmisc-$PSMISCVER
+ rm -rf $PKG
+fi
diff --git a/source/a/procps/procps.nowarning.diff b/source/a/procps/procps.nowarning.diff
new file mode 100644
index 000000000..bd4b1466a
--- /dev/null
+++ b/source/a/procps/procps.nowarning.diff
@@ -0,0 +1,25 @@
+--- ./ps/parser.c.orig 2004-08-09 17:41:10.000000000 -0700
++++ ./ps/parser.c 2004-08-16 18:30:09.000000000 -0700
+@@ -1213,12 +1213,20 @@
+ // about "ps -aux" suddenly changing behavior if a user "x" were
+ // added to the system.
+ //
++ // Yes, this is still getting patched out here. IMO, people can change
++ // old habits if and when user 'x' comes along. I still find this warning
++ // to be a POLA violation. No offense... that's the beauty of open source.
++ // You've got your ideas about this, and I have mine, and we're allowed
++ // to disagree. Nothing in the UNIX or POSIX standards requires this (annoying)
++ // warning to be displayed, and we're not changing the actual behavior
++ // of ps in any way. I know of no other 'ps' that produces this message.
++ //
+ // Also, a "-x" option is coming. It's already there in fact,
+ // for some non-default personalities. So "ps -ax" will parse
+ // as SysV options... and you're screwed if you've been patching
+ // out the friendly warning. Cut-over is likely to be in 2005.
+- if(!(personality & PER_FORCE_BSD))
+- fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n");
++ // if(!(personality & PER_FORCE_BSD))
++ // fprintf(stderr, "Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html\n");
+ // Remember: contact albert@users.sf.net or procps-feedback@lists.sf.net
+ // if you should feel tempted. Be damn sure you understand all
+ // the issues. The same goes for other stuff too, BTW. Please ask.
diff --git a/source/a/procps/procps.w.showfrom.diff b/source/a/procps/procps.w.showfrom.diff
new file mode 100644
index 000000000..0b1c71a3e
--- /dev/null
+++ b/source/a/procps/procps.w.showfrom.diff
@@ -0,0 +1,11 @@
+--- ./w.c.orig 2002-12-21 05:30:33.000000000 -0800
++++ ./w.c 2003-02-02 11:46:58.000000000 -0800
+@@ -33,6 +33,8 @@
+
+ typedef struct utmp utmp_t;
+
++#define W_SHOWFROM 1
++
+ #ifdef W_SHOWFROM
+ # define FROM_STRING "on"
+ #else
diff --git a/source/a/procps/slack-desc b/source/a/procps/slack-desc
new file mode 100644
index 000000000..22cf9e0d2
--- /dev/null
+++ b/source/a/procps/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+procps: procps (utilities for displaying process information)
+procps:
+procps: The procps package provides the classic set of utilities used to
+procps: display information about the processes currently running on the
+procps: machine.
+procps:
+procps:
+procps:
+procps:
+procps:
+procps:
diff --git a/source/a/quota/quota.SlackBuild b/source/a/quota/quota.SlackBuild
new file mode 100755
index 000000000..0ae450b90
--- /dev/null
+++ b/source/a/quota/quota.SlackBuild
@@ -0,0 +1,108 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=3.17
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-quota
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf quota-tools
+tar xvf $CWD/quota-$VERSION.tar.?z*
+cd quota-tools
+chown -R root:root .
+find . -perm 2755 -exec chmod 755 {} \;
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+make
+make mo
+mkdir -p $PKG/sbin
+cat convertquota > $PKG/sbin/convertquota
+cat quotacheck > $PKG/sbin/quotacheck
+cat quotaon > $PKG/sbin/quotaon
+( cd $PKG/sbin ; ln -sf quotaon quotaoff )
+chmod 755 $PKG/sbin/*
+mkdir -p $PKG/usr/sbin
+for file in edquota repquota warnquota quotastats setquota quot xqmstats rpc.rquotad ; do
+ cat $file > $PKG/usr/sbin/$file
+done
+chmod 755 $PKG/usr/sbin/*
+mkdir -p $PKG/usr/bin
+cat quota > $PKG/usr/bin/quota
+chmod 755 $PKG/usr/bin/quota
+mkdir -p $PKG/usr/include/rpcsvc
+cat rquota.h > $PKG/usr/include/rpcsvc/rquota.h
+cat rquota.x > $PKG/usr/include/rpcsvc/rquota.x
+mkdir -p $PKG/etc
+cat warnquota.conf > $PKG/etc/warnquota.conf-sample
+cat quotatab > $PKG/etc/quotatab-sample
+cat quotagrpadmins > $PKG/etc/quotagrpadmins-sample
+mkdir -p $PKG/usr/man/man{1,2,3,8}
+for page in *.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+for page in *.2 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man2/$page.gz
+done
+for page in *.3 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man3/$page.gz
+done
+for page in *.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+mkdir -p $PKG/usr/share/locale/pl/LC_MESSAGES
+cat po/pl.mo > $PKG/usr/share/locale/pl/LC_MESSAGES/quota.mo
+mkdir -p $PKG/usr/doc/quota-$VERSION
+cp -a Changelog README* $PKG/usr/doc/quota-$VERSION
+( cd doc
+ sgml2txt quotadoc.sgml
+ sgml2html -s 0 quotadoc.sgml
+ if [ ! -r quotadoc.html ]; then
+ echo "WARNING: no quotadoc.html generated"
+ sleep 100
+ fi
+ cp quotadoc*txt quotadoc*html $PKG/usr/doc/quota-$VERSION/ )
+find $PKG/usr/doc/quota-$VERSION -name CVS -type d | xargs rm -rf
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/quota-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/quota
+ rm -rf $PKG
+fi
diff --git a/source/a/quota/slack-desc b/source/a/quota/slack-desc
new file mode 100644
index 000000000..dd07ea43b
--- /dev/null
+++ b/source/a/quota/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+quota: quota (Linux disk quota utilities)
+quota:
+quota: An implementation of the diskquota system for the Linux operating
+quota: system to keep those greedy users from gobbling up 100% of the hard
+quota: drive space. Works with ext2, ext3, reiserfs, and xfs filesystems.
+quota: This system is based on the Melbourne quota system by Robert Elz.
+quota: Edvard Tuinder and Marco van Wieringen ported this code to Linux.
+quota: Jan Kara added support for the new Linux quota format and the XFS
+quota: filesystem.
+quota:
+quota:
diff --git a/source/a/reiserfsprogs/reiserfsprogs.SlackBuild b/source/a/reiserfsprogs/reiserfsprogs.SlackBuild
new file mode 100755
index 000000000..c56d8f13f
--- /dev/null
+++ b/source/a/reiserfsprogs/reiserfsprogs.SlackBuild
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=3.6.21
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-reiserfs
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf reiserfsprogs-$VERSION
+tar xvf $CWD/reiserfsprogs-$VERSION.tar.?z* || exit 1
+cd reiserfsprogs-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sbindir=/sbin \
+ --mandir=/usr/man \
+ --build=$ARCH-slackware-linux
+
+if [ "$ARCH" = "x86_64" ]; then
+ # To prevent compilation errors due to broken header:
+ sed -i -e 's?#define HAVE_ASM_UNALIGNED_H 1?/* & */?' config.h
+fi
+
+make $NUMJOBS || make || exit1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Add a couple of useful symlinks
+( cd $PKG/sbin
+ ln -sf mkreiserfs mkfs.reiserfs
+ ln -sf reiserfsck fsck.reiserfs
+)
+
+# These were renamed, it seems
+# --> Deleting /usr/man/man8/debugreiserfs.8.gz
+# --> Deleting /usr/man/man8/mkreiserfs.8.gz
+# --> Deleting /usr/man/man8/reiserfsck.8.gz
+# --> Deleting /usr/man/man8/reiserfstune.8.gz
+# --> Deleting /usr/man/man8/resize_reiserfs.8.gz
+# Do we want symlinks for backwards compatibility? If so...
+( cd $PKG/usr/man/man8
+ ln -s mkfs.reiserfs.8 mkreiserfs.8
+ ln -s debugfs.reiserfs.8 debugreiserfs.8
+ ln -s fsck.reiserfs.8 reiserfsck.8
+ ln -s tunefs.reiserfs.8 reiserfstune.8
+ ln -s resizefs.reiserfs.8 resize_reiserfs.8
+)
+
+# Compress the man pages
+( cd $PKG/usr/man
+ find . -type f -exec gzip -9 {} \;
+ for i in $(find . -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; done
+)
+
+mkdir -p $PKG/usr/doc/reiserfsprogs-$VERSION
+cp -a \
+ AUTHORS COPYING* CREDITS INSTALL NEWS README* \
+ $PKG/usr/doc/reiserfsprogs-$VERSION
+chmod 644 $PKG/usr/doc/reiserfsprogs-$VERSION/*
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/reiserfsprogs-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/reiserfsprogs/slack-desc b/source/a/reiserfsprogs/slack-desc
new file mode 100644
index 000000000..3358fdf77
--- /dev/null
+++ b/source/a/reiserfsprogs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+reiserfsprogs: reiserfsprogs (Reiserfs filesystem utilities)
+reiserfsprogs:
+reiserfsprogs: These utilities are used for Reiserfs. Reiserfs is a file system
+reiserfsprogs: based on balanced tree algorithms. Learn more at the home site:
+reiserfsprogs: http://www.namesys.com
+reiserfsprogs:
+reiserfsprogs: Reiserfs is the work of Hans Reiser and many others. See the file
+reiserfsprogs: /usr/doc/reiserfs*/README for full credits.
+reiserfsprogs:
+reiserfsprogs:
+reiserfsprogs:
diff --git a/source/a/rpm2tgz/rpm2targz b/source/a/rpm2tgz/rpm2targz
new file mode 100644
index 000000000..484e5ad05
--- /dev/null
+++ b/source/a/rpm2tgz/rpm2targz
@@ -0,0 +1,129 @@
+#!/bin/sh
+# Copyright 1997, 1998 Patrick Volkerding, Moorhead, MN USA
+# Copyright 2002, 2004 Slackware Linux, Inc., Concord, CA USA
+# Copyright 2006, 2009 Patrick Volkerding, Sebeka, MN USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+if [ "$1" = "" ]; then
+ echo "$0: Converts RPM format to standard GNU tar + GNU zip format."
+ echo " (view converted packages with \"less\", install and remove"
+ echo " with \"installpkg\", \"removepkg\", \"pkgtool\", or manually"
+ echo " with \"tar\")"
+ echo
+ echo "Usage: $0 <file.rpm>"
+ if [ "$(basename $0)" = "rpm2tgz" ]; then
+ echo " (Outputs \"file.tgz\")"
+ else
+ echo " (Outputs \"file.tar.gz\")"
+ fi
+ exit 1;
+fi
+
+CWD=$(pwd)
+
+# Create a new temporary directory with a secure filename:
+make_temp_dir() {
+ if [ -x "$(which mcookie)" ]; then
+ tempd=/tmp/tmp.$(mcookie)
+ mkdir -p -m 0755 $tempd
+ elif [ -x "$(which openssl)" ]; then
+ tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | openssl dgst -md5)
+ mkdir -p -m 0755 $tempd
+ elif [ -x "$(which md5)" ]; then
+ tempd=/tmp/tmp.$(dd if=/dev/urandom bs=1k count=1 2> /dev/null | md5)
+ mkdir -p -m 0755 $tempd
+ elif [ -x "$(which mktemp)" ]; then
+ tempd=$(mktemp -d)
+ chmod 755 $tempd
+ ## Uncomment for insecure use, but don't blame me:
+ #else
+ # tempd=/tmp/tmp.$$
+ # mkdir -p -m 0755 $tempd
+ fi
+ if [ -d $tempd ]; then # success, return the name of the directory:
+ echo $tempd
+ else
+ echo "ERROR: Could not find mcookie, openssl, or md5."
+ echo " Exiting since a secure temporary directory could not be made."
+ exit 1
+ fi
+}
+
+for i in $* ; do
+
+ # Determine if this is a source or binary RPM.
+ # If we have getrpmtype, use that. Otherwise, try "file".
+ if which getrpmtype 1> /dev/null 2> /dev/null; then
+ if getrpmtype -n $i | grep source 1> /dev/null 2> /dev/null ; then
+ isSource=1
+ else
+ isSource=0
+ fi
+ else # use file. This works fine on Slackware, and is the default.
+ if file $i | grep RPM | grep " src " 1> /dev/null 2> /dev/null ; then
+ isSource=1
+ else
+ isSource=0
+ fi
+ fi
+
+ # Create a temporary directory:
+ TMPDIR=$(make_temp_dir)
+
+ # Extract the RPM:
+ ofn=$TMPDIR/$(basename $i .rpm).cpio
+ if which rpm2cpio 1> /dev/null 2> /dev/null ; then
+ rpm2cpio $i > $ofn 2> /dev/null
+ if [ ! $? = 0 ]; then
+ echo "ERROR: rpm2cpio failed. (maybe $i is not an RPM?)"
+ rm -rf $TMPDIR
+ continue
+ fi
+ else # less reliable than rpm2cpio...
+ ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | gzip -dc > $ofn 2>/dev/null ) || \
+ ( dd ibs=$(rpmoffset < $i) skip=1 if=$i 2> /dev/null | bzip2 -dc > $ofn 2>/dev/null )
+ fi
+ DEST=$TMPDIR
+ if [ "$isSource" = "1" ]; then
+ DEST=$DEST/$(basename $(basename $i .rpm) .src)
+ fi
+ mkdir -p $DEST
+ ( cd $DEST
+ cpio -i -m -d < $ofn 1> /dev/null 2> /dev/null
+ rm -f $ofn
+ find . -type d -perm 700 -exec chmod 755 {} \;
+ )
+
+ # If this program was called as "rpm2targz", then repack as a plain
+ # tar+gz archive. If it was called as "rpm2tgz", use Slackware's
+ # makepkg to produce the .tgz:
+ if [ "$(basename $0)" = "rpm2tgz" ]; then
+ ( cd $TMPDIR ; makepkg -l y -c n $CWD/$(basename $i .rpm).tgz )
+ else
+ ( cd $TMPDIR ; tar cf - . ) > $(basename $i .rpm).tar
+ gzip -9 $(basename $i .rpm).tar
+ fi
+
+ # Remove temporary directory:
+ rm -rf $TMPDIR
+
+done
+
diff --git a/source/a/rpm2tgz/rpm2targz.README b/source/a/rpm2tgz/rpm2targz.README
new file mode 100644
index 000000000..2ce141c06
--- /dev/null
+++ b/source/a/rpm2tgz/rpm2targz.README
@@ -0,0 +1,18 @@
+
+This package contains 'rpm2targz', a simple utility to convert Red Hat-style
+RPM packages into standard tar.gz archives. Converted binary packages can then
+be installed/removed using the 'installpkg/removepkg' commands, or 'pkgtool'.
+
+It's advisable to at least examine the converted package with 'less' to make
+sure it won't do anything too crazy to your system. If it does, Patrick
+Volkerding and David Cantrell are not responsible, so use this at your own
+risk. :-)
+
+By default, rpm2targz will attempt to use "file" to detect source RPMS, and will
+put the contents into a subdirectory in the resulting package. This may not be
+portable to other operating systems -- if you're trying to run rpm2targz on an
+OS that doesn't have a file that knows RPM types, and you care about this source
+RPM feature, you can compile and install David Cantrell's standalone getrpmtype
+utility. The getrpmtype.tar.gz source archive can be found in Slackware's
+source tree in source/a/rpm2tgz/.
+
diff --git a/source/a/rpm2tgz/rpm2tgz.SlackBuild b/source/a/rpm2tgz/rpm2tgz.SlackBuild
new file mode 100755
index 000000000..abfe3298a
--- /dev/null
+++ b/source/a/rpm2tgz/rpm2tgz.SlackBuild
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=1.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-bin
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+echo "+===========+"
+echo "| rpm2targz |"
+echo "+===========+"
+cd $TMP
+mkdir -p $PKG/usr/bin
+cc -o $PKG/usr/bin/rpmoffset $CWD/rpmoffset.c
+cat $CWD/rpm2targz > $PKG/usr/bin/rpm2targz
+chmod 755 $PKG/usr/bin/{rpmoffset,rpm2targz}
+( cd $PKG/usr/bin ; ln -sf rpm2targz rpm2tgz )
+mkdir -p $PKG/usr/doc/rpm2targz
+cp -a $CWD/rpm2targz.README $PKG/usr/doc/rpm2targz/rpm2targz.README
+chown root:root $PKG/usr/doc/rpm2targz/rpm2targz.README
+chmod 644 $PKG/usr/doc/rpm2targz/rpm2targz.README
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/rpm2tgz-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/rpm2tgz/rpmoffset.c b/source/a/rpm2tgz/rpmoffset.c
new file mode 100644
index 000000000..57af397c6
--- /dev/null
+++ b/source/a/rpm2tgz/rpmoffset.c
@@ -0,0 +1,24 @@
+
+/* Find how deeply inside an .RPM the real data is */
+/* kept, and report the offset in bytes */
+
+/* Wouldn't it be a lot more sane if we could just untar these things? */
+
+#include <stdlib.h>
+
+/* These offsets keep getting bigger, so we're going to just bite a 2MB */
+/* chunk of RAM right away so that we have enough. Yeah, horrible */
+/* quick and dirty implementation, but hey -- it gets the job done. */
+
+#define RPMBUFSIZ 2097152
+
+main()
+{
+ char *buff = malloc(RPMBUFSIZ),*eb,*p;
+ for (p = buff, eb = buff + read(0,buff,RPMBUFSIZ); p < eb; p++)
+ if ((*p == '\037' && p[1] == '\213' && p[2] == '\010') ||
+ (*p == 'B' && p[1] == 'Z' && p[2] == 'h' && '1' <= p[3] && p[3] <= '9' ))
+ printf("%d\n",p - buff),
+ exit(0);
+ exit(1);
+}
diff --git a/source/a/rpm2tgz/slack-desc b/source/a/rpm2tgz/slack-desc
new file mode 100644
index 000000000..8f8861b5f
--- /dev/null
+++ b/source/a/rpm2tgz/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+rpm2tgz: rpm2tgz (a tool for converting an RPM archive into a tar+gz one)
+rpm2tgz:
+rpm2tgz: Converts RPM format to Slackware's GNU tar + GNU zip format. (view
+rpm2tgz: converted packages with "less", install and remove with "installpkg",
+rpm2tgz: "removepkg", "pkgtool", or manually with "tar").
+rpm2tgz:
+rpm2tgz: Converted packages come with no warranty. ;-)
+rpm2tgz:
+rpm2tgz:
+rpm2tgz:
+rpm2tgz:
diff --git a/source/a/sdparm/sdparm.SlackBuild b/source/a/sdparm/sdparm.SlackBuild
new file mode 100755
index 000000000..e00a93568
--- /dev/null
+++ b/source/a/sdparm/sdparm.SlackBuild
@@ -0,0 +1,107 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=sdparm
+VERSION=${VERSION:-1.01}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2"
+fi
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Use --bindir=/usr/sbin, as that's where hdparm has always been...
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --bindir=/usr/sbin \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make -j4 || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.*
+ )
+ done
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ AUTHORS COPYING CREDITS INSTALL NEWS README notes.txt \
+ doc/sdparm.html \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sdparm/slack-desc b/source/a/sdparm/slack-desc
new file mode 100644
index 000000000..497c4d9ec
--- /dev/null
+++ b/source/a/sdparm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sdparm: sdparm (fetch and change SCSI attributes)
+sdparm:
+sdparm: sdparm is a utility for listing and potentially changing SCSI disk
+sdparm: parameters. More generally it can be used on any device that uses
+sdparm: a SCSI command set. Apart from SCSI disks, examples of devices that
+sdparm: use SCSI command sets are ATAPI CD/DVD drives, SCSI and ATAPI tape
+sdparm: drives and SCSI enclosures.
+sdparm:
+sdparm: sdparm was written by Douglas Gilbert.
+sdparm:
+sdparm:
diff --git a/source/a/sed/sed.SlackBuild b/source/a/sed/sed.SlackBuild
new file mode 100755
index 000000000..8dedfc4b4
--- /dev/null
+++ b/source/a/sed/sed.SlackBuild
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=4.1.5
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sed
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $PKG $PKG
+
+cd $TMP
+rm -rf sed-$VERSION
+tar xzvf $CWD/sed-$VERSION.tar.gz
+cd sed-$VERSION
+chown -R root:root .
+find . -perm 777 -exec chmod 755 {} \;
+find . -perm 664 -exec chmod 644 {} \;
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+make -j5
+make install DESTDIR=$PKG
+mkdir -p $PKG/bin
+mv $PKG/usr/bin/sed $PKG/bin
+( cd $PKG/usr/bin ; ln -sf /bin/sed . )
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/usr/doc/sed-$VERSION
+cp -a \
+ ANNOUNCE AUTHORS BUGS COPYING* INSTALL NEWS README README.boot THANKS TODO \
+ $PKG/usr/doc/sed-$VERSION
+gzip -9 $PKG/usr/man/man?/*.?
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/sed-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sed/slack-desc b/source/a/sed/slack-desc
new file mode 100644
index 000000000..46e3ef350
--- /dev/null
+++ b/source/a/sed/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sed: sed (stream editor)
+sed:
+sed: This is the GNU version of sed, a stream editor. A stream editor is
+sed: used to perform basic text transformations on an input stream (a file
+sed: or input from a pipeline). It is sed's ability to filter text in a
+sed: pipeline which distinguishes it from other types of editors.
+sed:
+sed: sed is a required package (it is needed by many system scripts).
+sed:
+sed:
+sed:
diff --git a/source/a/shadow/adduser b/source/a/shadow/adduser
new file mode 100644
index 000000000..02385e33c
--- /dev/null
+++ b/source/a/shadow/adduser
@@ -0,0 +1,437 @@
+#!/bin/bash
+#
+# Copyright 1995 Hrvoje Dogan, Croatia.
+# Copyright 2002, 2003, 2004, 2008, 2009 Stuart Winter, Surrey, England, UK.
+# Copyright 2004, 2008, 2009 Slackware Linux, Inc., Concord, CA, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+##########################################################################
+# Program: /usr/sbin/adduser
+# Purpose: Interactive front end to /usr/sbin/useradd for Slackware Linux
+# Author : Stuart Winter <mozes@slackware.com>
+# Based on the original Slackware adduser by Hrvoje Dogan
+# with modifications by Patrick Volkerding
+# Version: 1.12
+##########################################################################
+# Usage..: adduser [<new_user_name>]
+##########################################################################
+# History #
+###########
+# v1.12 - 21/07/09
+# * Adjusted the search of /etc/passwd to exclude the NIS inclusion
+# string. Thanks to Dominik L. Borkowski.
+# v1.11 - 04/06/09
+# * Add power and netdev to the suggested group list
+# v1.10 - 24/03/08
+# * To facilitate use of the automatic mounting features of HAL,
+# allow the admin to easily add users to the default groups:
+# audio,cdrom,video,plugdev,floppy.
+# The default is not to add new users to these groups.
+# And by the way, this script is "useradd from Slackware" not
+# "superadduser from Gentoo" ;-)
+# v1.09 - 07/06/04
+# * Added standard Slackware script licence to the head of this file.
+# v1.08 - 25/04/04
+# * Disallow user names that begin with a numeric because useradd
+# (from shadow v4.03) does not allow them. <sw>
+# v1.07 - 07/03/03
+# * When supplying a null string for the uid (meaning 'Choose next available'),
+# if there were file names in the range 'a-z' in the pwd then the
+# egrep command considered these files rather than the null string.
+# The egrep expression is now in quotes.
+# Reported & fixed by Vadim O. Ustiansky <sw>
+# v1.06 - 31/03/03
+# * Ask to chown user.group the home directory if it already exists.
+# This helps reduce later confusion when adding users whose home dir
+# already exists (mounted partition for example) and is owned
+# by a user other than the user to which the directory is being
+# assigned as home. Default is not to chown.
+# Brought to my attention by mRgOBLIN. <sw>
+# v1.05 - 04/01/03
+# * Advise & prevent users from creating logins with '.' characters
+# in the user name. <sw>
+# * Made pending account creation info look neater <sw>
+# v1.04 - 09/06/02
+# * Catered for shadow-4.0.3's 'useradd' binary that no longer
+# will let you create a user that has any uppercase chars in it
+# This was reported on the userlocal.org forums
+# by 'xcp' - thanks. <sw,pjv>
+# v1.03 - 20/05/02
+# * Support 'broken' (null lines in) /etc/passwd and
+# /etc/group files <sw>
+# * For recycling UIDs (default still 'off'), we now look in
+# /etc/login.defs for the UID_MIN value and use it
+# If not found then default to 1000 <sw>
+# v1.02 - 10/04/02
+# * Fix user-specified UID bug. <pjv>
+# v1.01 - 23/03/02
+# * Match Slackware indenting style, simplify. <pjv>
+# v1.00 - 22/03/02
+# * Created
+#######################################################################
+
+# Path to files
+pfile=/etc/passwd
+gfile=/etc/group
+sfile=/etc/shells
+
+# Paths to binaries
+useradd=/usr/sbin/useradd
+chfn=/usr/bin/chfn
+passwd=/usr/bin/passwd
+chmod=/bin/chmod
+
+# Defaults
+defhome=/home
+defshell=/bin/bash
+defchmod=711 # home dir permissions - may be preferable to use 701, however.
+defgroup=users
+AGID="audio cdrom floppy plugdev video power netdev" # additional groups for desktop users
+
+# Determine what the minimum UID is (for UID recycling)
+# (we ignore it if it's not at the beginning of the line (i.e. commented out with #))
+export recycleUIDMIN="$(grep ^UID_MIN /etc/login.defs | awk '{print $2}' 2>/dev/null)"
+# If we couldn't find it, set it to the default of 1000
+if [ -z "$recycleUIDMIN" ]; then
+ export recycleUIDMIN=1000 # this is the default from Slackware's /etc/login.defs
+fi
+
+
+# This setting enables the 'recycling' of older unused UIDs.
+# When you userdel a user, it removes it from passwd and shadow but it will
+# never get used again unless you specify it expliticly -- useradd (appears to) just
+# look at the last line in passwd and increment the uid. I like the idea of
+# recycling uids but you may have very good reasons not to (old forgotten
+# confidential files still on the system could then be owned by this new user).
+# We'll set this to no because this is what the original adduser shell script
+# did and it's what users expect.
+recycleuids=no
+
+# Function to read keyboard input.
+# bash1 is broken (even ash will take read -ep!), so we work around
+# it (even though bash1 is no longer supported on Slackware).
+function get_input() {
+ local output
+ if [ "`echo $BASH_VERSION | cut -b1`" = "1" ]; then
+ echo -n "${1} " >&2 # fudge for use with bash v1
+ read output
+ else # this should work with any other /bin/sh
+ read -ep "${1} " output
+ fi
+ echo $output
+}
+
+# Function to display the account info
+function display () {
+ local goose
+ goose="$(echo $2 | cut -d ' ' -f 2-)" # lop off the prefixed argument useradd needs
+ echo -n "$1 "
+ # If it's null then display the 'other' information
+ if [ -z "$goose" -a ! -z "$3" ]; then
+ echo "$3"
+ else
+ echo "$goose"
+ fi
+}
+
+# Function to check whether groups exist in the /etc/group file
+function check_group () {
+ local got_error group
+ if [ ! -z "$@" ]; then
+ for group in $@ ; do
+ local uid_not_named="" uid_not_num=""
+ grep -v "$^" $gfile | awk -F: '{print $1}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_named=yes
+ grep -v "$^" $gfile | awk -F: '{print $3}' | grep "^${group}$" >/dev/null 2>&1 || uid_not_num=yes
+ if [ ! -z "$uid_not_named" -a ! -z "$uid_not_num" ]; then
+ echo "- Group '$group' does not exist"
+ got_error=yes
+ fi
+ done
+ fi
+ # Return exit code of 1 if at least one of the groups didn't exist
+ if [ ! -z "$got_error" ]; then
+ return 1
+ fi
+}
+
+#: Read the login name for the new user :#
+#
+# Remember that most Mail Transfer Agents are case independant, so having
+# 'uSer' and 'user' may cause confusion/things to break. Because of this,
+# useradd from shadow-4.0.3 no longer accepts usernames containing uppercase,
+# and we must reject them, too.
+
+# Set the login variable to the command line param
+echo
+LOGIN="$1"
+needinput=yes
+while [ ! -z $needinput ]; do
+ if [ -z "$LOGIN" ]; then
+ while [ -z "$LOGIN" ]; do LOGIN="$(get_input "Login name for new user []:")" ; done
+ fi
+ grep "^${LOGIN}:" $pfile >/dev/null 2>&1 # ensure it's not already used
+ if [ $? -eq 0 ]; then
+ echo "- User '$LOGIN' already exists; please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep "^[0-9]" )" ]; then
+ echo "- User names cannot begin with a number; please choose another"
+ unset LOGIN
+ elif [ ! "$LOGIN" = "`echo $LOGIN | tr A-Z a-z`" ]; then # useradd does not allow uppercase
+ echo "- User '$LOGIN' contains illegal characters (uppercase); please choose another"
+ unset LOGIN
+ elif [ ! -z "$( echo $LOGIN | grep '\.' )" ]; then
+ echo "- User '$LOGIN' contains illegal characters (period/dot); please choose another"
+ unset LOGIN
+ else
+ unset needinput
+ fi
+done
+
+# Display the user name passed from the shell if it hasn't changed
+if [ "$1" = "$LOGIN" ]; then
+ echo "Login name for new user: $LOGIN"
+fi
+
+#: Get the UID for the user & ensure it's not already in use :#
+#
+# Whilst we _can_ allow users with identical UIDs, it's not a 'good thing' because
+# when you change password for the uid, it finds the first match in /etc/passwd
+# which isn't necessarily the correct user
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ _UID="$(get_input "User ID ('UID') [ defaults to next available ]:")"
+ egrep -v "^$|^\+" $pfile | awk -F: '{print $3}' | grep "^${_UID}$" >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "- That UID is already in use; please choose another"
+ elif [ ! -z "$(echo $_UID | egrep '[A-Za-z]')" ]; then
+ echo "- UIDs are numerics only"
+ else
+ unset needinput
+ fi
+done
+# If we were given a UID, then syntax up the variable to pass to useradd
+if [ ! -z "$_UID" ]; then
+ U_ID="-u ${_UID}"
+else
+ # Will we be recycling UIDs?
+ if [ "$recycleuids" = "yes" ]; then
+ U_ID="-u $(awk -F: '{uid[$3]=1} END { for (i=ENVIRON["recycleUIDMIN"];i in uid;i++);print i}' $pfile)"
+ fi
+fi
+
+#: Get the initial group for the user & ensure it exists :#
+#
+# We check /etc/group for both the text version and the group ID number
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ GID="$(get_input "Initial group [ ${defgroup} ]:")"
+ check_group "$GID"
+ if [ $? -gt 0 ]; then
+ echo "- Please choose another"
+ else
+ unset needinput
+ fi
+done
+# Syntax the variable ready for useradd
+if [ -z "$GID" ]; then
+ GID="-g ${defgroup}"
+else
+ GID="-g ${GID}"
+fi
+
+#: Get additional groups for the user :#
+#
+echo "Additional UNIX groups:"
+echo
+echo "Users can belong to additional UNIX groups on the system."
+echo "For local users using graphical desktop login managers such"
+echo "as XDM/KDM, users may need to be members of additional groups"
+echo "to access the full functionality of removable media devices."
+echo
+echo "* Security implications *"
+echo "Please be aware that by adding users to additional groups may"
+echo "potentially give access to the removable media of other users."
+echo
+echo "If you are creating a new user for remote shell access only,"
+echo "users do not need to belong to any additional groups as standard,"
+echo "so you may press ENTER at the next prompt."
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ history -c
+ history -s "$AGID"
+ echo "Press ENTER to continue without adding any additional groups"
+ echo "Or press the UP arrow to add/select/edit additional groups"
+ AGID="$(get_input ": " | tr -d '[:punct:]' | tr -s ' ' | sed 's?^ $??g' )"
+ if [ ! -z "$AGID" ]; then
+ check_group "$AGID" # check all groups at once (treated as N # of params)
+ if [ $? -gt 0 ]; then
+ echo "- Please re-enter the group(s)"
+ echo
+ else
+ unset needinput # we found all groups specified
+ AGID="-G $(echo $AGID | tr ' ' ,)" # useradd takes comma delimited groups
+ fi
+ else
+ unset needinput # we don't *have* to have additional groups
+ fi
+done
+
+#: Get the new user's home dir :#
+#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ HME="$(get_input "Home directory [ ${defhome}/${LOGIN} ]")"
+ if [ -z "$HME" ]; then
+ HME="${defhome}/${LOGIN}"
+ fi
+ # Warn the user if the home dir already exists
+ if [ -d "$HME" ]; then
+ echo "- Warning: '$HME' already exists !"
+ getyn="$(get_input " Do you wish to change the home directory path ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ # You're most likely going to only do this if you have the dir *mounted* for this user's $HOME
+ getyn="$(get_input " Do you want to chown $LOGIN.$( echo $GID | awk '{print $2}') $HME ? (y/N) ")"
+ if [ "$(echo $getyn | grep -i "y")" ]; then
+ CHOWNHOMEDIR=$HME # set this to the home directory
+ fi
+ fi
+ else
+ unset needinput
+ fi
+done
+HME="-d ${HME}"
+
+#: Get the new user's shell :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ unset got_error
+ SHL="$(get_input "Shell [ ${defshell} ]")"
+ if [ -z "$SHL" ]; then
+ SHL="${defshell}"
+ fi
+ # Warn the user if the shell doesn't exist in /etc/shells or as a file
+ if [ -z "$(grep "^${SHL}$" $sfile)" ]; then
+ echo "- Warning: ${SHL} is not in ${sfile} (potential problem using FTP)"
+ got_error=yes
+ fi
+ if [ ! -f "$SHL" ]; then
+ echo "- Warning: ${SHL} does not exist as a file"
+ got_error=yes
+ fi
+ if [ ! -z "$got_error" ]; then
+ getyn="$(get_input " Do you wish to change the shell ? (Y/n) ")"
+ if [ "$(echo $getyn | grep -i "n")" ]; then
+ unset needinput
+ fi
+ else
+ unset needinput
+ fi
+done
+SHL="-s ${SHL}"
+
+#: Get the expiry date :#
+echo
+needinput=yes
+while [ ! -z "$needinput" ]; do
+ EXP="$(get_input "Expiry date (YYYY-MM-DD) []:")"
+ if [ ! -z "$EXP" ]; then
+ # Check to see whether the expiry date is in the valid format
+ if [ -z "$(echo "$EXP" | grep "^[[:digit:]]\{4\}[-]\?[[:digit:]]\{2\}[-]\?[[:digit:]]\{2\}$")" ]; then
+ echo "- That is not a valid expiration date"
+ else
+ unset needinput
+ EXP="-e ${EXP}"
+ fi
+ else
+ unset needinput
+ fi
+done
+
+# Display the info about the new impending account
+echo
+echo "New account will be created as follows:"
+echo
+echo "---------------------------------------"
+display "Login name.......: " "$LOGIN"
+display "UID..............: " "$_UID" "[ Next available ]"
+display "Initial group....: " "$GID"
+display "Additional groups: " "$AGID" "[ None ]"
+display "Home directory...: " "$HME"
+display "Shell............: " "$SHL"
+display "Expiry date......: " "$EXP" "[ Never ]"
+echo
+
+echo "This is it... if you want to bail out, hit Control-C. Otherwise, press"
+echo "ENTER to go ahead and make the account."
+read junk
+
+echo
+echo "Creating new account..."
+echo
+echo
+
+# Add the account to the system
+CMD="$useradd "$HME" -m "$EXP" "$U_ID" "$GID" "$AGID" "$SHL" "$LOGIN""
+$CMD
+
+if [ $? -gt 0 ]; then
+ echo "- Error running useradd command -- account not created!"
+ echo "(cmd: $CMD)"
+ exit 1
+fi
+
+# chown the home dir ? We can only do this once the useradd has
+# completed otherwise the user name doesn't exist.
+if [ ! -z "${CHOWNHOMEDIR}" ]; then
+ chown "$LOGIN"."$( echo $GID | awk '{print $2}')" "${CHOWNHOMEDIR}"
+fi
+
+# Set the finger information
+$chfn "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "- Warning: an error occurred while setting finger information"
+fi
+
+# Set a password
+$passwd "$LOGIN"
+if [ $? -gt 0 ]; then
+ echo "* WARNING: An error occured while setting the password for"
+ echo " this account. Please manually investigate this *"
+ exit 1
+fi
+
+# If it was created (it should have been!), set the permissions for that user's dir
+HME="$(echo "$HME" | awk '{print $2}')" # We have to remove the -g prefix
+if [ -d "$HME" ]; then
+ $chmod $defchmod "$HME"
+fi
+
+echo
+echo
+echo "Account setup complete."
+exit 0
diff --git a/source/a/shadow/shadow-4.0.3.x86_64.diff b/source/a/shadow/shadow-4.0.3.x86_64.diff
new file mode 100644
index 000000000..15d16c7c8
--- /dev/null
+++ b/source/a/shadow/shadow-4.0.3.x86_64.diff
@@ -0,0 +1,166 @@
+--- shadow-4.0.3/libmisc/failure.h.orig 2004-01-02 18:47:01.000000000 -0800
++++ shadow-4.0.3/libmisc/failure.h 2004-01-02 18:52:38.000000000 -0800
+@@ -4,7 +4,12 @@
+
+ #include "defines.h"
+ #include "faillog.h"
++
++#if HAVE_UTMPX_H
++#include <utmpx.h>
++#else
+ #include <utmp.h>
++#endif
+
+ /*
+ * failure - make failure entry
+@@ -38,7 +43,11 @@
+ * failtmp updates the (struct utmp) formatted failure log which
+ * maintains a record of all login failures.
+ */
++#if HAVE_UTMPX_H
++extern void failtmp(const struct utmpx *);
++#else
+ extern void failtmp(const struct utmp *);
++#endif
+
+ #endif
+
+--- shadow-4.0.3/libmisc/failure.c.orig 2004-01-02 18:47:06.000000000 -0800
++++ shadow-4.0.3/libmisc/failure.c 2004-01-02 18:53:37.000000000 -0800
+@@ -39,7 +39,11 @@
+ #include "getdef.h"
+ #include "failure.h"
+
++#if HAVE_UTMPX_H
++#include <utmpx.h>
++#else
+ #include <utmp.h>
++#endif
+
+ #define YEAR (365L*DAY)
+
+@@ -248,7 +252,11 @@
+ */
+
+ void
++#if HAVE_UTMPX_H
++failtmp(const struct utmpx *failent)
++#else
+ failtmp(const struct utmp *failent)
++#endif
+ {
+ char *ftmp;
+ int fd;
+--- shadow-4.0.3/libmisc/log.c.orig 2004-01-02 18:58:04.000000000 -0800
++++ shadow-4.0.3/libmisc/log.c 2004-01-02 18:58:51.000000000 -0800
+@@ -57,6 +57,7 @@
+ int fd;
+ off_t offset;
+ struct lastlog newlog;
++ time_t ll_time;
+
+ /*
+ * If the file does not exist, don't create it.
+@@ -88,7 +89,8 @@
+ if (ll)
+ *ll = newlog;
+
+- time(&newlog.ll_time);
++ ll_time = newlog.ll_time;
++ time(&ll_time);
+ strncpy(newlog.ll_line, line, sizeof newlog.ll_line);
+ #if HAVE_LL_HOST
+ strncpy(newlog.ll_host, host, sizeof newlog.ll_host);
+--- shadow-4.0.3/libmisc/utmp.c.orig 2004-01-02 18:59:04.000000000 -0800
++++ shadow-4.0.3/libmisc/utmp.c 2004-01-02 19:05:34.000000000 -0800
+@@ -79,6 +79,8 @@
+ {
+ char *line;
+ struct utmp *ut;
++ time_t uttime;
++
+ pid_t pid = getpid();
+
+ setutent();
+@@ -111,7 +113,8 @@
+ /* XXX - assumes /dev/tty?? */
+ strncpy(utent.ut_id, utent.ut_line + 3, sizeof utent.ut_id);
+ strcpy(utent.ut_user, "LOGIN");
+- time(&utent.ut_time);
++ time(&uttime);
++ utent.ut_time = uttime;
+ }
+ }
+
+@@ -284,9 +287,14 @@
+ void
+ setutmp(const char *name, const char *line, const char *host)
+ {
++ time_t uttime;
++
+ utent.ut_type = USER_PROCESS;
+ strncpy(utent.ut_user, name, sizeof utent.ut_user);
+- time(&utent.ut_time);
++
++ time(&uttime);
++ utent.ut_time = uttime;
++
+ /* other fields already filled in by checkutmp above */
+ setutent();
+ pututline(&utent);
+--- shadow-4.0.3/src/lastlog.c.orig 2004-01-02 18:06:09.000000000 -0800
++++ shadow-4.0.3/src/lastlog.c 2004-01-02 18:29:57.000000000 -0800
+@@ -167,6 +167,7 @@
+ static int once;
+ char *cp;
+ struct tm *tm;
++ time_t ll_time;
+
+ #ifdef HAVE_STRFTIME
+ char ptime[80];
+@@ -184,7 +185,9 @@
+ #endif
+ once++;
+ }
+- tm = localtime (&lastlog.ll_time);
++ ll_time = lastlog.ll_time;
++ tm = localtime (&ll_time);
++
+ #ifdef HAVE_STRFTIME
+ strftime (ptime, sizeof (ptime), "%a %b %e %H:%M:%S %z %Y", tm);
+ cp = ptime;
+--- shadow-4.0.3/src/login.c.orig 2004-01-02 18:33:13.000000000 -0800
++++ shadow-4.0.3/src/login.c 2004-01-02 18:40:17.000000000 -0800
+@@ -1019,8 +1019,12 @@
+ const char *failent_user;
+
+ #if HAVE_UTMPX_H
++ struct timeval ut_tv;
++ ut_tv.tv_sec = failent.ut_tv.tv_sec;
++ ut_tv.tv_usec = failent.ut_tv.tv_usec;
++
+ failent = utxent;
+- gettimeofday (&(failent.ut_tv), NULL);
++ gettimeofday (&ut_tv, NULL);
+ #else
+ failent = utent;
+ time (&failent.ut_time);
+@@ -1271,15 +1275,16 @@
+ }
+ if (getdef_bool ("LASTLOG_ENAB")
+ && lastlog.ll_time != 0) {
++ time_t ll_time= lastlog.ll_time;
+ #ifdef HAVE_STRFTIME
+ strftime (ptime, sizeof (ptime),
+ "%a %b %e %H:%M:%S %z %Y",
+- localtime (&lastlog.ll_time));
++ localtime (&ll_time));
+ printf (_("Last login: %s on %s"),
+ ptime, lastlog.ll_line);
+ #else
+ printf (_("Last login: %.19s on %s"),
+- ctime (&lastlog.ll_time),
++ ctime (&ll_time),
+ lastlog.ll_line);
+ #endif
+ #ifdef HAVE_LL_HOST /* SVR4 || __linux__ || SUN4 */
diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild
new file mode 100755
index 000000000..2f0e11786
--- /dev/null
+++ b/source/a/shadow/shadow.SlackBuild
@@ -0,0 +1,156 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=4.0.3
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-18}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-shadow
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_shadow.tar.gz
+
+cd $TMP
+rm -rf shadow-$VERSION
+tar xjvf $CWD/shadow-$VERSION.tar.bz2
+cd shadow-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/shadow.shadowconfig.diff.gz | patch -p1 --verbose --backup || exit 1
+zcat $CWD/shadow.newgrp.nopam.gz | patch -p0 --verbose --backup || exit 1
+zcat $CWD/shadow.login.defs.diff.gz | patch -p0 --verbose --backup || exit 1
+zcat $CWD/shadow.newgrp.getlogin.gz | patch -p1 --verbose --backup || exit 1
+zcat $CWD/shadow.gcc34.diff.gz | patch -p1 --verbose --backup || exit 1
+zcat $CWD/shadow.remove.obsolete.options.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+if [ "$ARCH" = "x86_64" ]; then
+ zcat $CWD/shadow-4.0.3.x86_64.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
+fi
+
+./configure \
+ --prefix=/usr \
+ --disable-shared \
+ --disable-desrpc \
+ --build=$ARCH-slackware-linux
+
+make -j6 || exit 1
+cat etc/login.defs.linux > $PKG/etc/login.defs.new
+cat etc/login.access > $PKG/etc/login.access.new
+cat $CWD/adduser > $PKG/usr/sbin/adduser
+
+# These things aren't needed when using glibc, as it
+# supplies its own shadow functions:
+#cat lib/libshadow.a > $PKG/usr/lib/libshadow.a
+#cp -a lib/pwauth.h $PKG/usr/include/shadow/pwauth.h
+#cp -a lib/shadow_.h $PKG/usr/include/shadow/shadow.h
+#chmod 644 $PKG/usr/include/shadow/*
+#chown root.root $PKG/usr/include/shadow/*
+
+cd po
+for file in *.gmo ; do
+ mkdir -p $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES
+ cat $file > $PKG/usr/share/locale/$(basename $file .gmo)/LC_MESSAGES/shadow.mo
+done
+cd ../src
+cat login > $PKG/bin/login
+cat su > $PKG/bin/su
+cat sulogin > $PKG/sbin/sulogin
+cat ../debian/shadowconfig.sh > $PKG/usr/sbin/shadowconfig
+for file in chpasswd dpasswd faillog groupadd groupdel groupmod grpck \
+lastlog logoutd mkpasswd newusers pwck useradd userdel usermod \
+pwconv pwunconv grpconv grpunconv vipw ; do
+ cat $file > $PKG/usr/sbin/$file
+done
+for file in chage chfn chsh expiry gpasswd newgrp passwd ; do
+ cat $file > $PKG/usr/bin/$file
+done
+cd ..
+cp contrib/adduser.sh /sbin/adduser
+mkdir -p $PKG/usr/doc/shadow-$VERSION
+cp -a \
+ ABOUT-NLS ChangeLog NEWS README TODO doc/* \
+ $PKG/usr/doc/shadow-$VERSION
+chmod 644 $PKG/usr/doc/shadow-$VERSION/*
+
+install_man_pages() {
+for file in chage.1 chfn.1 chsh.1 gpasswd.1 groups.1 login.1 newgrp.1 \
+passwd.1 su.1 ; do
+ if [ -r $file ]; then
+ mkdir -p $1/man1
+ gzip -9c $file > $1/man1/$file.gz
+ fi
+done
+for file in pw_auth.3 shadow.3 ; do
+ if [ -r $file ]; then
+ mkdir -p $1/man3
+ gzip -9c $file > $1/man3/$file.gz
+ fi
+done
+for file in faillog.5 limits.5 login.access.5 login.defs.5 passwd.5 \
+porttime.5 shadow.5 suauth.5 ; do
+ if [ -r $file ]; then
+ mkdir -p $1/man5
+ gzip -9c $file > $1/man5/$file.gz
+ fi
+done
+for file in chpasswd.8 dpasswd.8 faillog.8 groupadd.8 groupdel.8 groupmod.8 \
+grpck.8 lastlog.8 logoutd.8 mkpasswd.8 newusers.8 pwauth.8 pwck.8 pwconv.8 \
+shadowconfig.8 sulogin.8 useradd.8 userdel.8 usermod.8 vipw.8 ; do
+ if [ -r $file ]; then
+ mkdir -p $1/man8
+ gzip -9c $file > $1/man8/$file.gz
+ fi
+done
+}
+
+cd man
+ install_man_pages $PKG/usr/man
+ for dir in * ; do
+ if [ -d $dir ] ; then
+ ( cd $dir ; install_man_pages $PKG/usr/man/$dir )
+ fi
+ done
+cd ..
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/shadow-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/shadow-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/shadow/shadow.gcc34.diff b/source/a/shadow/shadow.gcc34.diff
new file mode 100644
index 000000000..71dff4c85
--- /dev/null
+++ b/source/a/shadow/shadow.gcc34.diff
@@ -0,0 +1,11 @@
+--- ./libmisc/xmalloc.c.orig 1998-12-28 14:34:56.000000000 -0600
++++ ./libmisc/xmalloc.c 2006-08-12 19:02:51.000000000 -0500
+@@ -16,8 +16,6 @@
+
+ #include "defines.h"
+
+-extern char *malloc();
+-
+ char *
+ xmalloc(size_t size)
+ {
diff --git a/source/a/shadow/shadow.login.defs.diff b/source/a/shadow/shadow.login.defs.diff
new file mode 100644
index 000000000..bfed463ae
--- /dev/null
+++ b/source/a/shadow/shadow.login.defs.diff
@@ -0,0 +1,67 @@
+--- ./etc/login.defs.linux.orig 2000-08-26 13:27:10.000000000 -0500
++++ ./etc/login.defs.linux 2008-03-24 15:10:09.000000000 -0500
+@@ -170,8 +170,8 @@
+ # *REQUIRED* The default PATH settings, for superuser and normal users.
+ #
+ # (they are minimal, add the rest in the shell startup files)
+-ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
+-ENV_PATH PATH=/bin:/usr/bin
++ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin
++ENV_PATH PATH=/usr/local/bin:/bin:/usr/bin
+
+ #
+ # Terminal permissions
+@@ -185,7 +185,7 @@
+ # TTYPERM to either 622 or 600.
+ #
+ TTYGROUP tty
+-TTYPERM 0600
++TTYPERM 0620
+
+ #
+ # Login configuration initializations:
+@@ -230,7 +230,7 @@
+ #
+ # If compiled with cracklib support, where are the dictionaries
+ #
+-CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict
++#CRACKLIB_DICTPATH /var/cache/cracklib/cracklib_dict
+
+ #
+ # Min/max values for automatic uid selection in useradd
+@@ -282,7 +282,7 @@
+ # phone, home phone). If not defined, no changes are allowed.
+ # For backward compatibility, "yes" = "rwh" and "no" = "frwh".
+ #
+-CHFN_RESTRICT rwh
++CHFN_RESTRICT frwh
+
+ #
+ # Password prompt (%s will be replaced by user name).
+@@ -299,7 +299,7 @@
+ # Set to "no" if you need to copy encrypted passwords to other systems
+ # which don't understand the new algorithm. Default is "no".
+ #
+-#MD5_CRYPT_ENAB no
++MD5_CRYPT_ENAB yes
+
+ #
+ # List of groups to add to the user's supplementary group set
+@@ -310,7 +310,16 @@
+ # access to these groups, even when not logged in on the console.
+ # How to do it is left as an exercise for the reader...
+ #
+-#CONSOLE_GROUPS floppy:audio:cdrom
++# Most of these groups are self-explanatory.
++#
++# Note that users are added to these default groups only when
++# logging into a shell with /bin/login, not when using a login
++# manager such as kdm. In that case, users who should have
++# hardware access must be added to the appropriate groups
++# when the user is added with adduser or useradd, or by editing
++# /etc/group directly.
++#
++CONSOLE_GROUPS floppy:audio:cdrom:video
+
+ #
+ # Should login be allowed if we can't cd to the home directory?
diff --git a/source/a/shadow/shadow.newgrp.getlogin b/source/a/shadow/shadow.newgrp.getlogin
new file mode 100644
index 000000000..5d032f15c
--- /dev/null
+++ b/source/a/shadow/shadow.newgrp.getlogin
@@ -0,0 +1,21 @@
+--- ./src/newgrp.c.orig 2003-05-31 21:19:39.000000000 -0700
++++ ./src/newgrp.c 2003-05-31 21:21:32.000000000 -0700
+@@ -76,6 +76,7 @@
+ gid_t gid;
+ char *cp;
+ const char *cpasswd, *name, *prog;
++ char *loginname = NULL;
+ char *group = NULL;
+ char *command = NULL;
+ char **envp = environ;
+@@ -386,7 +387,9 @@
+ SYSLOG ((LOG_INFO, "user `%s' switched to group `%s'",
+ name, group));
+ if (getdef_bool ("SYSLOG_SG_ENAB")) {
+- char *loginname = xstrdup (getlogin ());
++ char *user = getlogin ();
++ if (user != NULL)
++ loginname = xstrdup (user);
+ char *tty = xstrdup (ttyname (0));
+
+ if (loginname == NULL)
diff --git a/source/a/shadow/shadow.newgrp.nopam b/source/a/shadow/shadow.newgrp.nopam
new file mode 100644
index 000000000..7920dde00
--- /dev/null
+++ b/source/a/shadow/shadow.newgrp.nopam
@@ -0,0 +1,18 @@
+--- src/newgrp.c.orig 2002-10-12 14:15:34.000000000 +0100
++++ src/newgrp.c 2002-10-12 14:15:42.000000000 +0100
+@@ -398,6 +398,7 @@
+ SYSLOG ((LOG_INFO,
+ "user `%s' (login `%s' on %s) switched to group `%s'",
+ name, loginname, tty, group));
++#ifdef USE_PAM
+ if (getdef_bool ("CLOSE_SESSIONS")) {
+ /*
+ * We want to fork and exec the new shell in the child, leaving the
+@@ -450,6 +451,7 @@
+ signal (SIGTTIN, SIG_DFL);
+ signal (SIGTTOU, SIG_DFL);
+ }
++#endif // USE_PAM
+ }
+ #endif /* USE_SYSLOG */
+
diff --git a/source/a/shadow/shadow.remove.obsolete.options.diff b/source/a/shadow/shadow.remove.obsolete.options.diff
new file mode 100644
index 000000000..100fe2a88
--- /dev/null
+++ b/source/a/shadow/shadow.remove.obsolete.options.diff
@@ -0,0 +1,78 @@
+--- ./man/passwd.1.orig 2002-03-13 11:52:15.000000000 -0600
++++ ./man/passwd.1 2006-08-20 18:29:58.000000000 -0500
+@@ -29,26 +29,17 @@
+ .SH NAME
+ passwd \- change user password
+ .SH SYNOPSIS
+-\fBpasswd\fR [\fB-f\fR|\fB-s\fR] [\fIname\fR]
+-.br
+-\fBpasswd\fR [\fB-g\fR] [\fB-r\fR|\fB-R\fR] \fIgroup\fR
++\fBpasswd\fR [\fIname\fR]
+ .br
+ \fBpasswd\fR [\fB-x \fImax\fR] [\fB-n \fImin\fR]
+ [\fB-w \fIwarn\fR] [\fB-i \fIinact\fR] \fIlogin\fR
+ .br
+ \fBpasswd\fR {\fB-l\fR|\fB-u\fR|\fB-d\fR|\fB-S\fR|\fB-e\fR} \fIlogin\fR
+ .SH DESCRIPTION
+-\fBpasswd\fR changes passwords for user and group accounts.
++\fBpasswd\fR changes passwords for user accounts.
+ A normal user may only change the password for his/her own account,
+ the super user may change the password for any account.
+-The administrator of a group may change the password for the group.
+-\fBpasswd\fR also changes account information, such as the full name
+-of the user, user's login shell, or password expiry date and interval.
+-.PP
+-The \fB-s\fR option makes passwd call chsh to change the user's shell. The
+-\fB-f\fR option makes passwd call chfn to change the user's gecos
+-information. These two options are only meant for compatiblity, since the
+-other programs can be called directly.
++.PP
+ .SS Password Changes
+ The user is first prompted for his/her old password, if one is present.
+ This password is then encrypted and compared against the
+@@ -86,17 +77,6 @@
+ against the first.
+ Both entries are required to match in order for the password
+ to be changed.
+-.SS Group passwords
+-When the \fB-g\fR option is used, the password for the named
+-group is changed.
+-The user must either be the super user, or a group administrator
+-for the named group.
+-The current group password is not prompted for.
+-The \fB-r\fR option is used with the \fB-g\fR option to remove
+-the current password from the named group.
+-This allows group access to all members.
+-The \fB-R\fR option is used with the \fB-g\fR option to restrict
+-the named group for all users.
+ .SS Password expiry information
+ The password aging information may be changed by the super
+ user with the \fB-x\fR, \fB-n\fR, \fB-w\fR, and \fB-i\fR options.
+@@ -191,6 +171,9 @@
+ .br
+ /etc/shadow \- encrypted user passwords
+ .SH "SEE ALSO"
++.BR chfn (1),
++.BR chsh (1),
++.BR gpasswd (1),
+ .BR group (5),
+ .BR passwd (5)
+ .SH AUTHOR
+--- ./src/passwd.c.orig 2002-01-05 09:41:43.000000000 -0600
++++ ./src/passwd.c 2006-08-20 18:31:50.000000000 -0500
+@@ -955,6 +955,7 @@
+ * Please run these programs directly. --marekm
+ */
+
++#ifdef I_LIKE_OBSOLETE_OPTIONS
+ if (argc > 1 && argv[1][0] == '-' && strchr ("gfs", argv[1][1])) {
+ char buf[200];
+
+@@ -980,6 +981,7 @@
+ closelog ();
+ exit (E_FAILURE);
+ }
++#endif
+
+ /*
+ * The remaining arguments will be processed one by one and executed
diff --git a/source/a/shadow/shadow.shadowconfig.diff b/source/a/shadow/shadow.shadowconfig.diff
new file mode 100644
index 000000000..7dc9286e7
--- /dev/null
+++ b/source/a/shadow/shadow.shadowconfig.diff
@@ -0,0 +1,49 @@
+--- ./debian/shadowconfig.sh.orig 2001-05-29 23:20:22.000000000 -0700
++++ ./debian/shadowconfig.sh 2003-06-23 16:35:38.000000000 -0700
+@@ -1,23 +1,28 @@
+ #!/bin/bash
+-# turn shadow passwords on or off on a Debian system
++#
++# 'shadowconfig on' will turn shadow passwords on;
++# 'shadowconfig off' will turn shadow passwords off.
++#
++# shadowconfig will print an error message and exit with
++# a nonzero code if it finds anything awry. If that happens,
++# you should correct the error and run it again.
++#
++# Turning shadow passwords on when they are already on, or
++# off when they are already off, is harmless.
++#
++# Be aware that account expiration dates are only supported
++# by shadow passwords -- these dates will be lost when converting
++# from shadow to non-shadow passwords. If you need to save this
++# information, back up your /etc/shadow before turning off
++# shadow passwords.
++#
+
+-set -e
+
+-permfix () {
+- [ -f $1 ] || return 0
+- chown root:shadow $1
+- chmod 2755 $1
+-}
+-export -f permfix
++set -e
+
+ shadowon () {
+ bash<<- EOF
+ set -e
+-
+- permfix /usr/X11R6/bin/xlock
+- permfix /usr/X11R6/bin/xtrlock
+- permfix /bin/vlock
+-
+ pwck -q
+ grpck
+ pwconv
+@@ -65,3 +70,4 @@
+ echo Usage: $0 on \| off
+ ;;
+ esac
++
diff --git a/source/a/shadow/slack-desc b/source/a/shadow/slack-desc
new file mode 100644
index 000000000..57749146e
--- /dev/null
+++ b/source/a/shadow/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+shadow: shadow (shadow password suite)
+shadow:
+shadow: This set of login related programs utilizes an alternate, non-readable
+shadow: file to contain the actual encrypted passwords. This is presumed to
+shadow: increase system security by increasing the difficulty with which
+shadow: system crackers obtain encrypted passwords. It was written by
+shadow: Julianne Frances Haugh and the Linux port is maintained by Tomasz
+shadow: Kloczko.
+shadow:
+shadow: This package provides 'login', which is needed to log into the system.
+shadow:
diff --git a/source/a/sharutils/sharutils.SlackBuild b/source/a/sharutils/sharutils.SlackBuild
new file mode 100755
index 000000000..0d8bd6f07
--- /dev/null
+++ b/source/a/sharutils/sharutils.SlackBuild
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=4.7
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sharutils
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf sharutils-$VERSION
+tar xjvf $CWD/sharutils-$VERSION.tar.bz2
+cd sharutils-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ $ARCH-slackware-linux
+make -j3
+make install DESTDIR=$PKG
+make install-man DESTDIR=$PKG
+
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/* $PKG/usr/man/man?/*.?
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/sharutils-$VERSION
+cp -a \
+ AUTHORS COPYING INSTALL NEWS README README-alpha THANKS TODO \
+ $PKG/usr/doc/sharutils-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/sharutils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sharutils/slack-desc b/source/a/sharutils/slack-desc
new file mode 100644
index 000000000..fbc490fad
--- /dev/null
+++ b/source/a/sharutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sharutils: sharutils (GNU shell archive packing utilities)
+sharutils:
+sharutils: `shar' makes so-called shell archives out of many files, preparing
+sharutils: them for transmission by electronic mail services. `unshar' helps
+sharutils: unpacking shell archives after reception. `uuencode' prepares a file
+sharutils: for transmission over an electronic channel which ignores or otherwise
+sharutils: mangles the eight bit (high order bit) of bytes. `uudecode' does the
+sharutils: converse transformation. `remsync' allows for remote synchronization
+sharutils: of directory trees using electronic mail.
+sharutils:
+sharutils:
diff --git a/source/a/slocate/slack-desc b/source/a/slocate/slack-desc
new file mode 100644
index 000000000..22ec56cc8
--- /dev/null
+++ b/source/a/slocate/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+slocate: slocate (Secure Locate)
+slocate:
+slocate: Slocate is an enhanced version of locate, a command to help you locate
+slocate: files on the system. Like the original version of locate, Slocate
+slocate: maintains a database of files on the system, updating it nightly.
+slocate: Unlike the original, Slocate indexes every file on the machine rather
+slocate: than only the ones that can be seen by everyone. The "secure" part of
+slocate: slocate is that it will only return matches if the user is allowed to
+slocate: see the files.
+slocate:
+slocate:
diff --git a/source/a/slocate/slocate-3.1.tar.gz.sign b/source/a/slocate/slocate-3.1.tar.gz.sign
new file mode 100644
index 000000000..91b982425
--- /dev/null
+++ b/source/a/slocate/slocate-3.1.tar.gz.sign
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2 (GNU/Linux)
+
+iD8DBQBEDmWkUZpV8HRsUfQRAnLeAJ0cBuIYvy+3GSTdm+sfQ7XYbNWuwgCgj+pZ
+RKdGZfMmcuFGoBO39sCX/64=
+=K/rW
+-----END PGP SIGNATURE-----
diff --git a/source/a/slocate/slocate.SlackBuild b/source/a/slocate/slocate.SlackBuild
new file mode 100755
index 000000000..3fec40f26
--- /dev/null
+++ b/source/a/slocate/slocate.SlackBuild
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=3.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-slocate
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_slocate.tar.gz
+
+cd $TMP
+rm -rf slocate-$VERSION
+tar xzvf $CWD/slocate-$VERSION.tar.gz
+cd slocate-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 2750 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+cd src
+make CFLAGS="$SLKCFLAGS"
+cd ..
+strip --strip-unneeded src/slocate
+mkdir -p $PKG/usr/bin
+cat src/slocate > $PKG/usr/bin/slocate
+mkdir -p $PKG/usr/man/man1
+cat doc/slocate.1 | gzip -9c > $PKG/usr/man/man1/slocate.1.gz
+cat doc/updatedb.1 | gzip -9c > $PKG/usr/man/man1/updatedb.1.gz
+mkdir -p $PKG/usr/doc/slocate-$VERSION
+cp -a \
+ Changelog LICENSE README WISHLIST \
+ $PKG/usr/doc/slocate-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/slocate-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/smartmontools/doinst.sh b/source/a/smartmontools/doinst.sh
new file mode 100644
index 000000000..82f0ac136
--- /dev/null
+++ b/source/a/smartmontools/doinst.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+config etc/smartd.conf.new
diff --git a/source/a/smartmontools/slack-desc b/source/a/smartmontools/slack-desc
new file mode 100644
index 000000000..ce462947f
--- /dev/null
+++ b/source/a/smartmontools/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+smartmontools: smartmontools (hard drive monitoring utilities)
+smartmontools:
+smartmontools: SMARTMONTOOLS contains utilities that control and monitor storage
+smartmontools: devices using the Self-Monitoring, Analysis and Reporting Technology
+smartmontools: (S.M.A.R.T.) system build into ATA and SCSI Hard Drives. This is used
+smartmontools: to check the reliability of the hard drive and to predict drive
+smartmontools: failures. SMARTMONTOOLS Version 5.x is designed to comply to the
+smartmontools: ATA/ATAPI-5 specification (Revision 1). Future releases of
+smartmontools: SMARTMONTOOLS (Versions 6.x and 7.x) will comply with the ATA/ATAPI-6
+smartmontools: and ATA/ATAPI-7 specifications.
+smartmontools:
diff --git a/source/a/smartmontools/smartmontools.SlackBuild b/source/a/smartmontools/smartmontools.SlackBuild
new file mode 100755
index 000000000..fd4fcf35b
--- /dev/null
+++ b/source/a/smartmontools/smartmontools.SlackBuild
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=5.38
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=/tmp/package-smartmontools
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf smartmontools-$VERSION
+tar xvf $CWD/smartmontools-$VERSION.tar.*
+cd smartmontools-$VERSION
+chown -R root:root .
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --sysconfdir=/etc \
+ $ARCH-slackware-linux
+make
+make install DESTDIR=$PKG
+# Not used on Slackware:
+rm -rf $PKG/etc/rc.d
+mv $PKG/etc/smartd.conf $PKG/etc/smartd.conf.new
+gzip -9 $PKG/usr/man/man?/*.?
+mv $PKG/usr/share/doc $PKG/usr
+rmdir $PKG/usr/share
+rm -f $PKG/usr/doc/smartmontools-$VERSION/CHANGELOG \
+ $PKG/usr/doc/smartmontools-$VERSION/smartd.conf
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/smartmontools-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/smartmontools-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/splitvt/slack-desc b/source/a/splitvt/slack-desc
new file mode 100644
index 000000000..0aa6ab24d
--- /dev/null
+++ b/source/a/splitvt/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+splitvt: splitvt (run multiple shells in a single window)
+splitvt:
+splitvt: This program splits the screen into two windows, one above the other,
+splitvt: and runs a shell in each one.
+splitvt:
+splitvt: Splitvt was written by Sam Lantinga.
+splitvt:
+splitvt:
+splitvt:
+splitvt:
+splitvt:
diff --git a/source/a/splitvt/splitvt.SlackBuild b/source/a/splitvt/splitvt.SlackBuild
new file mode 100755
index 000000000..f643a825c
--- /dev/null
+++ b/source/a/splitvt/splitvt.SlackBuild
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.6.5
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-splitvt
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf splitvt-1.6.5
+tar xzvf $CWD/splitvt-1.6.5.tar.gz
+cd splitvt-1.6.5
+zcat $CWD/splitvt_1.6.5-9.diff.gz | patch -p1 --verbose || exit 1
+chown -R root:root .
+./configure
+make || exit 1
+mkdir -p $PKG/usr/bin
+cat splitvt > $PKG/usr/bin/splitvt
+chmod 755 $PKG/usr/bin/splitvt
+mkdir -p $PKG/usr/man/man1
+cat splitvt.1 | gzip -9c > $PKG/usr/man/man1/splitvt.1.gz
+mkdir -p $PKG/usr/doc/splitvt-1.6.5
+cp -a examples ANNOUNCE CHANGES NOTES README TODO \
+ $PKG/usr/doc/splitvt-1.6.5
+( cd $PKG/usr/doc/splitvt-1.6.5
+ find . -type d | xargs chmod 755
+ find . -type f | xargs chmod 644 )
+
+# Strip everything for good measure:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/splitvt-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/splitvt/splitvt_1.6.5-9.diff b/source/a/splitvt/splitvt_1.6.5-9.diff
new file mode 100644
index 000000000..47d560377
--- /dev/null
+++ b/source/a/splitvt/splitvt_1.6.5-9.diff
@@ -0,0 +1,1073 @@
+--- splitvt-1.6.5.orig/debian/changelog
++++ splitvt-1.6.5/debian/changelog
+@@ -0,0 +1,147 @@
++splitvt (1.6.5-9) unstable; urgency=low
++
++ * Ensure that -upper and -lower have arguemnts. Closes: #319091
++
++ -- Joey Hess <joeyh@debian.org> Tue, 19 Jul 2005 17:50:32 -0400
++
++splitvt (1.6.5-8) unstable; urgency=low
++
++ * Patch from Andreas Jochens to fix building with gcc 4.0. Closes: #294620
++
++ -- Joey Hess <joeyh@debian.org> Fri, 15 Jul 2005 17:38:09 +0300
++
++splitvt (1.6.5-7) unstable; urgency=low
++
++ * Many changes to make it build cleanly with -Wall. This included some
++ missing headers that probably caused it to crash on amd64.
++ * Disabled vttest, since its read from the console to try to detect a vt100
++ terminal was responsible for startup hang on sparc. Closes: #273330
++
++ -- Joey Hess <joeyh@debian.org> Wed, 26 Jan 2005 20:32:34 -0500
++
++splitvt (1.6.5-6) unstable; urgency=low
++
++ * Rebuilt to update to current policy on /usr/doc links &etc.
++
++ -- Joey Hess <joeyh@debian.org> Sat, 8 Feb 2003 12:32:25 -0500
++
++splitvt (1.6.5-5) unstable; urgency=low
++
++ * Updated to debhelper v4.
++
++ -- Joey Hess <joeyh@debian.org> Thu, 13 Jun 2002 16:30:04 -0400
++
++splitvt (1.6.5-4) unstable; urgency=low
++
++ * Updated patch to not break resizing.
++
++ -- Joey Hess <joeyh@debian.org> Fri, 5 Oct 2001 20:09:25 -0400
++
++splitvt (1.6.5-3) unstable; urgency=low
++
++ * Patch from Robert de Bath <robert$@mayday.cix.co.uk> that has a doc fix
++ and also fixes a splitvt segfault when one uses the CSI ? 3 h to got o
++ 132 column mode. Closes: #113868 (also sent upstream)
++
++ -- Joey Hess <joeyh@debian.org> Sat, 29 Sep 2001 16:44:25 -0400
++
++splitvt (1.6.5-2) unstable; urgency=HIGH
++
++ * New upstream version, with a format string hole fixed, and several
++ possible buffer overfllows fixed.
++ - Of those, only (I think) the format string attack and two of the
++ buffer overflows can affect the debian package.
++ - Luckily, my last release of the package back in June 2000 made
++ it only need to be sgid tty.
++ - Total possible impact: attacker could possibly crack the tty group.
++ * Goofed up version number because this source is already in the
++ archives.
++
++ -- Joey Hess <joeyh@debian.org> Wed, 17 Jan 2001 23:39:09 -0800
++
++splitvt (1.6.4-4) unstable; urgency=low
++
++ * Drop setgid first. Very doubtful this effects anything, but it's the
++ right way to do things.
++
++ -- Joey Hess <joeyh@debian.org> Thu, 15 Jun 2000 11:37:48 -0700
++
++splitvt (1.6.4-3) unstable; urgency=low
++
++ * Modified to use glibc's sys4-ish pty routines; devpts, grantpt, etc.
++ * Modified to drop sgid bit properly.
++ * Now I can make it just sgid utmp, rather than suid root, and it
++ continues to work just as before. Beaujolais! Closes: #65227
++ * Removed no-longer-needed glibc stdion/stdout fix patch.
++
++ -- Joey Hess <joeyh@debian.org> Wed, 14 Jun 2000 14:13:30 -0700
++
++splitvt (1.6.4-2) unstable; urgency=low
++
++ * Corrected build-depends, Closes: #65584
++
++ -- Joey Hess <joeyh@debian.org> Tue, 13 Jun 2000 11:42:02 -0700
++
++splitvt (1.6.4-1) unstable; urgency=high
++
++ * New upstream release with security fix (already applied in the previous
++ version, I'm just syncing up with upstream).
++ * Added homepage to copyright file.
++ * Added some more files to docs.
++ * Now under the GPL explicitly, some updates to the copyright file.
++
++ -- Joey Hess <joeyh@debian.org> Sun, 11 Jun 2000 21:42:41 -0700
++
++splitvt (1.6.3-7.0slink1) stable; urgency=high
++
++ * Security fix.
++
++ -- Daniel Jacobowitz <dan@debian.org> Sat, 3 Jun 2000 17:56:33 -0400
++
++splitvt (1.6.3-7) unstable; urgency=low
++
++ * Build dep.
++
++ -- Joey Hess <joeyh@debian.org> Sat, 4 Dec 1999 16:21:35 -0800
++
++splitvt (1.6.3-6) unstable; urgency=low
++
++ * FHS
++
++ -- Joey Hess <joeyh@debian.org> Sat, 11 Sep 1999 01:27:49 -0700
++
++splitvt (1.6.3-5) unstable; urgency=low
++
++ * vtmouse.c: Don't use stdin/stdout as initializers. Instead, in
++ event_getc(), set xt_input and xt_output to stdin and stdout if
++ they are not yet set. This is for the ports to other architectures.
++ (#29597)
++
++ -- Joey Hess <joeyh@debian.org> Tue, 17 Nov 1998 15:50:53 -0800
++
++splitvt (1.6.3-4) unstable; urgency=low
++
++ * Built with newest debhelper to change how the suid binary is registered.
++
++ -- Joey Hess <joeyh@debian.org> Tue, 27 Oct 1998 21:59:05 -0800
++
++splitvt (1.6.3-3) unstable; urgency=low
++
++ * Hacked in a -f flag, that allows you to resize one of the splitvt
++ windows down to 1 line tall. This is particularly useful for ticker.
++
++ -- Joey Hess <joeyh@debian.org> Mon, 7 Sep 1998 19:56:53 -0700
++
++splitvt (1.6.3-2) unstable; urgency=low
++
++ * Fixed package description spelling (#18990).
++
++ -- Joey Hess <joeyh@debian.org> Thu, 5 Mar 1998 17:00:19 -0800
++
++splitvt (1.6.3-1) unstable; urgency=low
++
++ * First release.
++ * Write to author and clarified copyright.
++ * Change /etc/utmp to /var/run/utmp
++
++ -- Joey Hess <joeyh@debian.org> Wed, 1 Oct 1997 16:19:01 -0400
+--- splitvt-1.6.5.orig/debian/control
++++ splitvt-1.6.5/debian/control
+@@ -0,0 +1,14 @@
++Source: splitvt
++Section: utils
++Priority: optional
++Build-Depends: debhelper (>= 4), libncurses5-dev, dpkg-dev (>= 1.9.0)
++Maintainer: Joey Hess <joeyh@debian.org>
++Standards-Version: 3.5.8.0
++
++Package: splitvt
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}
++Description: run two programs in a split screen
++ A utility to split a vt100 compatible screen into two halves,
++ upper and lower, and run a different program simultaneously
++ in each half.
+--- splitvt-1.6.5.orig/debian/compat
++++ splitvt-1.6.5/debian/compat
+@@ -0,0 +1 @@
++4
+--- splitvt-1.6.5.orig/debian/watch
++++ splitvt-1.6.5/debian/watch
+@@ -0,0 +1,2 @@
++version=2
++http://www.devolution.com/~slouken/projects/splitvt/ splitvt-(.*).tar.gz
+--- splitvt-1.6.5.orig/debian/copyright
++++ splitvt-1.6.5/debian/copyright
+@@ -0,0 +1,45 @@
++This is a Debian prepackaged version of the splitvt utility.
++
++This package was put together by Joey Hess <joeyh@debian.org>, using
++sources from:
++ http://www.devolution.com/~slouken/projects/splitvt/
++
++The following copyright notices can still be found in the source code:
++
++ /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */
++
++That is a historical relic, though. The current copyright of splitvt is the
++GPL; the text to which can be found in /usr/share/common-licenses/GPL on a
++Debian system.
++
++Before the copyright was expressly changed to the GPL, I wrote and asked the
++author about copyright. He replied:
++
++ Date: Wed, 1 Oct 1997 13:39:18 -0700
++ From: Sam Lantinga <slouken@domo.ccnet.com>
++ To: Joey Hess <joey@kite.ml.org>
++ Cc: slouken@mongoloid.devolution.com
++ Subject: Re: splitvt copyright
++ X-Mailer: My Mailer 1.5 <slouken@devolution.com>
++
++ > I've never heard of no fee shareware before. What restrictions does that
++ > place on the software? Can it be put on a cd with other software (such as a
++ > linux distribution) and sold for profit? Can it be used by anyone, for any
++ > purpose? If so, why don't you just place it under the GPL?
++
++ Consider it GPL'd. I wrote it before I was aware of the GPL, and haven't
++ done much work on it in quite a while.
++
++ > At this point, I'm not sure if splitvt's copyright will let it go in our
++ > main distribution, that is sold on cd, or not. Awaiting your clarification..
++
++ You are more than welcome to put splitvt in the Debian distribution.
++ It is already in Slackware and S.u.S.E.
++
++ See ya!
++ -Sam Lantinga (slouken@devolution.com)
++
++ --
++ Author of Linux Maelstrom -
++ http://www.devolution.com/~slouken/Maelstrom/
++ --
+--- splitvt-1.6.5.orig/debian/rules
++++ splitvt-1.6.5/debian/rules
+@@ -0,0 +1,43 @@
++#!/usr/bin/make -f
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++ rm -f Makefile
++ ./configure
++ $(MAKE)
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++ dh_clean
++ if [ ! -f Makefile ]; then ./configure ; fi
++ -$(MAKE) distclean
++
++binary-indep: build
++
++binary-arch: build
++ dh_testdir
++ dh_testroot
++ dh_clean
++ dh_install splitvt usr/bin
++ dh_installdocs README TODO ANNOUNCE BLURB
++ dh_installexamples examples/*
++ dh_installmenu
++ dh_installcron
++ dh_installman splitvt.1
++ dh_installchangelogs CHANGES
++ dh_strip
++ dh_compress
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_fixperms
++ chgrp utmp debian/splitvt/usr/bin/splitvt
++ chmod g+s debian/splitvt/usr/bin/splitvt
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary
+--- splitvt-1.6.5.orig/splitvt.man
++++ splitvt-1.6.5/splitvt.man
+@@ -176,7 +176,7 @@
+ replace it with entries for the two windows. This allows
+ you to use programs such as 'talk' within the splitvt win-
+ dows. If you do not have write permission to the
+- /etc/utmp file, you will not be able to modify the utmp
++ /etc/utmp file, you will not be able to modify the utmp
+ entries.
+
+ splitvt can be made set-uid root. splitvt will reset its
+--- splitvt-1.6.5.orig/parserc.c
++++ splitvt-1.6.5/parserc.c
+@@ -1,6 +1,8 @@
+
+ /* Routines to parse the ~/.splitvtrc file and set default options */
+
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <string.h>
+@@ -213,7 +215,7 @@
+ char line[BUFSIZ], newline[BUFSIZ*2], *parsed[256];
+ char *head, *tail, *ptr, *subptr;
+ char *envptr, envbuf[128];
+- int i, n, quoted=0;
++ int i, n;
+ int ignoring=0, ifs=0;
+
+ /* Get our home directory */
+--- splitvt-1.6.5.orig/splitvt.c
++++ splitvt-1.6.5/splitvt.c
+@@ -13,6 +13,9 @@
+ static char *version=
+ "@(#)Splitvt 1.6.5 1/12/2001 -Sam Lantinga (slouken@devolution.com)\n";
+
++#include <string.h>
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <sys/wait.h>
+@@ -79,6 +82,8 @@
+ char *upper_args[MAX_ARGS+1]={NULL}, *lower_args[MAX_ARGS+1]={NULL};
+ int upper_empty=1, lower_empty=1;
+
++int force_height=0;
++
+ void print_usage(argv)
+ char *argv;
+ {
+@@ -95,13 +100,14 @@
+ fprintf(stderr, "\t-nologin\t\tOverrides \"set login on\" in startup file\n");
+ fprintf(stderr, "\t-rcfile file\t\tLoads 'file' at startup instead of ~/.splitvtrc\n");
+ fprintf(stderr, "\t-norc\t\t\tSuppresses loading your startup file\n");
++ fprintf(stderr, "\t-f\t\t\tAllow setting screen size of less than 3 lines\n");
+ fprintf(stderr, "\t-v\t\t\tPrint out the version number\n");
+ fprintf(stderr, "\n");
+ exit(1);
+ }
+
+
+-main(argc, argv)
++int main(argc, argv)
+ int argc;
+ char *argv[];
+ {
+@@ -111,7 +117,10 @@
+ int i, len, maxfds, numready;
+ char buffer[BUFSIZ], *ptr;
+ char *xterm_title=NULL;
+- struct timeval tv, *tvptr;
++#ifdef NEED_INET_H
++ struct timeval tv;
++#endif
++ struct timeval *tvptr;
+ fd_set read_mask;
+ static struct passwd pwdata; /* Our passwd entry */
+
+@@ -151,7 +160,7 @@
+ splitvtrc();
+
+ /* Parse command line options */
+- while ( (i=getopt(argc, argv, "n:u:l:r:s:t:vh")) != EOF )
++ while ( (i=getopt(argc, argv, "fn:u:l:r:s:t:vh")) != EOF )
+ {
+ switch (i)
+ {
+@@ -163,11 +172,19 @@
+ break;
+ case 'u': if ( strcmp(optarg, "pper") != 0 )
+ print_usage(argv[0]);
++ if (optind >= argc) {
++ fprintf(stderr, "-upper requires an argument\n");
++ print_usage(argv[0]);
++ }
+ tokenize(upper_args, MAX_ARGS+1,
+ argv[optind++], " ");
+ upper_empty=0;
+ break;
+ case 'l': if ( strcmp(optarg, "ower") == 0 ) {
++ if (optind >= argc) {
++ fprintf(stderr, "-lower requires an argument\n");
++ print_usage(argv[0]);
++ }
+ tokenize(lower_args, MAX_ARGS+1,
+ argv[optind++], " ");
+ lower_empty=0;
+@@ -188,7 +205,9 @@
+ case 'v': printf("%s", version+4);
+ exit(0);
+ break;
+- case 'h':
++ case 'f': force_height=1;
++ break;
++ case 'h':
+ default: print_usage(argv[0]);
+ break;
+ }
+@@ -212,7 +231,7 @@
+ }
+ (void) tty_raw(0); /* Set the tty raw here to prevent lost input */
+
+- if ( (ptr=init_vt100()) != NULL )
++ if ( (ptr=init_vt100(1)) != NULL )
+ {
+ if ( tty_reset(0) < 0 )
+ (void) tty_sane(0);
+@@ -473,6 +492,7 @@
+ }
+ }
+ finish(0);
++ exit(0);
+ }
+
+ void reset_bar(sleeptime)
+@@ -496,6 +516,7 @@
+ " 'x' Lock the screen",
+ " 'h' Show this help screen",
+ " 'q' Quickly quit splitvt",
++" '0-9' Line count for + or -",
+ NULL
+ };
+ vt_showscreen("Splitvt HELP screen:", help);
+@@ -700,7 +721,7 @@
+ tmp_uulines=UU_lines;
+ UU_lines=WU_lines;
+ UU_lines += howfar; /* Positive to go down, negative to go up */
+- init_vt100(); /* Reset the windows to the new size */
++ init_vt100(0); /* Reset the windows to the new size */
+
+ /* Tell the running processes about the size change */
+ if ( topok )
+@@ -722,7 +743,7 @@
+
+ signal(sig, winch);
+
+- if ( (ptr=init_vt100()) != NULL ) {
++ if ( (ptr=init_vt100(1)) != NULL ) {
+ fprintf(stderr, "Can't resize window: %s. (exiting)\n", ptr);
+ finish(0);
+ } else
+--- splitvt-1.6.5.orig/config.c
++++ splitvt-1.6.5/config.c
+@@ -169,7 +169,7 @@
+ strcat(ldflags, " -lsun");
+
+ /* Tell the user what kind of configuration to do */
+- if ( (access("/etc/utmp", (R_OK|W_OK)) == 0) && getuid() )
++ if ( (access("/var/run/utmp", (R_OK|W_OK)) == 0) && getuid() )
+ write_utmp=1;
+ else
+ write_utmp=0;
+@@ -180,14 +180,14 @@
+ VERBOSE_PRINT(
+ "This program doesn't need to be installed set-uid root.\n");
+ VERBOSE_PRINT(
+- "\nThis program will put entries for its windows in /etc/utmp.\n");
++ "\nThis program will put entries for its windows in /var/run/utmp.\n");
+ } else {
+ VERBOSE_PRINT(
+- "If installed set-uid root, this program will put entries for its windows\nin /etc/utmp.\n");
++ "If installed set-uid root, this program will put entries for its windows\nin /var/run/utmp.\n");
+ }
+ } else if ( write_utmp ) {
+ VERBOSE_PRINT(
+- "This program will put entries for its windows in /etc/utmp.\n");
++ "This program will put entries for its windows in /var/run/utmp.\n");
+ VERBOSE_PRINT(
+ "\nIf installed set-uid root, this program will change ownership of the\n");
+ VERBOSE_PRINT(
+@@ -196,7 +196,7 @@
+ VERBOSE_PRINT(
+ "If installed set-uid root, this program will put entries for its windows\n");
+ VERBOSE_PRINT(
+- "in /etc/utmp, and will also change ownership of the ttys it acquires to the\n");
++ "in /var/run/utmp, and will also change ownership of the ttys it acquires to the\n");
+ VERBOSE_PRINT(
+ "user running this program.\n");
+ }
+@@ -225,7 +225,7 @@
+ }
+ fprintf(makefile,
+ "PTYOPTS = -DPTYCHAR=$(PTYCHAR) -DHEXDIGIT=$(HEXDIGIT)\n");
+- sprintf(line, "\nCFLAGS = %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags);
++ sprintf(line, "\nCFLAGS = -Wall %s $(PTYOPTS)\nLIBS = %s\n", cflags, ldflags);
+ fprintf(makefile, "%s", line);
+ fprintf(makefile, "OBJS = splitvt.o misc.o utmp.o vt100.o videomem.o terminal.o vttest.o vtmouse.o \\\n");
+ fprintf(makefile, " parserc.o lock.o cut-paste.o\n\n");
+--- splitvt-1.6.5.orig/cut-paste.c
++++ splitvt-1.6.5/cut-paste.c
+@@ -2,8 +2,12 @@
+ /* The cut-paste module for splitvt */
+
+ #include <stdio.h>
++#include <string.h>
++#include <unistd.h>
+ #include "vt100.h"
+ #include "video.h"
++#include "splitvt.h"
++#include "terminal.h"
+
+ #define RIGHT 0x01
+ #define LEFT 0x02
+@@ -41,7 +45,7 @@
+ } else
+ c ^= (SELECTED<<8);
+
+- (*oldattr)=check_attr(c, *oldattr, on);
++ (*oldattr)=check_attr(c, *oldattr, (int)on);
+ put_video(c, win, x, y);
+
+ if ( c&0xFF )
+@@ -86,7 +90,6 @@
+ int len;
+ position *mark1, *mark2;
+ {
+- int selection=0;
+ position startsel, endsel;
+
+ if ( mark1->x == mark2->x )
+@@ -200,9 +203,9 @@
+ void vt_initsel()
+ {
+ extern char *pathsearch(); /* From misc.c */
+- char *display;
+
+ #ifdef USE_XCB
++ char *display;
+ /* Use xcb if we have both an X display and the command. */
+ /* xcb needs to support my hacked '-R' option. */
+ if ( (display=(char *)getenv("DISPLAY")) && pathsearch("xcb", 1) )
+@@ -254,7 +257,7 @@
+ char *buf;
+ int len;
+ {
+- int c, state=NORMAL;
++ int c;
+ position here, cursor, mark1, mark2;
+ window *thiswin;
+
+@@ -311,7 +314,7 @@
+ default: break;
+ }
+ }
+- return; /* Hopefully, we never reach here */
++ return NULL; /* Hopefully, we never reach here */
+ }
+
+
+--- splitvt-1.6.5.orig/vt100.c
++++ splitvt-1.6.5/vt100.c
+@@ -8,6 +8,9 @@
+ Many thanks to Matt Ostanik who wrote the ANSI Handbook.
+ */
+
++#include <unistd.h>
++#include <string.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #ifdef HAVE_TERMIO_H
+ #include <termio.h> /* Used only for TIOCGWINSZ */
+@@ -20,6 +23,7 @@
+ #include "vt100.h"
+ #include "video.h"
+ #include "terminal.h"
++#include "splitvt.h"
+
+ #define SEP_CHAR ' ' /* Separator bar character */
+
+@@ -135,7 +139,7 @@
+ unsigned char on=NORMAL;
+
+ vt_resetattr();
+- (void) check_attr(0, win->textattr, &on);
++ (void) check_attr(0, win->textattr, (int)&on);
+ }
+
+ /* Process the ^[[X;Xm escape. Made into a separate routine to support
+@@ -683,10 +687,9 @@
+ break;
+ case 3: /* 132 char/row */
+ if ( physical.cols != 132 ) {
+- upper.cols=132;
+- lower.cols=132;
+ physical.cols=132;
+ vt_widemode(1);
++ init_vt100(0);
+ }
+ break;
+ case 4: /* Set jump scroll */
+@@ -726,11 +729,9 @@
+ break;
+ case 3: /* 80 char/row */
+ if ( physical.cols == 132 ) {
+- vt_rows_cols(terminal_type,
+- NULL, &physical.cols);
+- upper.cols=physical.cols;
+- lower.cols=physical.cols;
++ physical.cols = 80;
+ vt_widemode(0);
++ init_vt100(0);
+ }
+ break;
+ case 4: /* Set smooth scroll */
+@@ -843,7 +844,8 @@
+
+ static int setup_vt100 = 0; /* Have we initialized the vt100 system? */
+
+-char *init_vt100()
++char *init_vt100(reread_tsize)
++int reread_tsize;
+ {
+ #ifdef TIOCGWINSZ
+ struct /* winsize */ {
+@@ -853,7 +855,7 @@
+ unsigned short ws_ypixel; /* vertical size - not used */
+ } mywinz;
+ #endif
+- int i, **videomem, oldrows, newrows, newcols;
++ int i, **videomem, oldrows = 0, newrows, newcols;
+ position newpos;
+ char *ptr, *errmesg;
+
+@@ -869,18 +871,22 @@
+ vt_initsel();
+ }
+
++ if (reread_tsize)
++ {
+ #ifdef TIOCGWINSZ
+- if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) {
+- if ( mywinz.ws_row )
+- physical.rows=mywinz.ws_row;
+- if ( mywinz.ws_col )
+- physical.cols=mywinz.ws_col;
+- }
++ if ( ioctl(0, TIOCGWINSZ, &mywinz) == 0 ) {
++ if ( mywinz.ws_row )
++ physical.rows=mywinz.ws_row;
++ if ( mywinz.ws_col )
++ physical.cols=mywinz.ws_col;
++ }
+ #endif
+- if ( (ptr=(char *)getenv("LINES")) != NULL )
+- physical.rows=atoi(ptr);
+- if ( (ptr=(char *)getenv("COLUMNS")) != NULL )
+- physical.cols=atoi(ptr);
++
++ if ( (ptr=(char *)getenv("LINES")) != NULL )
++ physical.rows=atoi(ptr);
++ if ( (ptr=(char *)getenv("COLUMNS")) != NULL )
++ physical.cols=atoi(ptr);
++ }
+
+ /* Now set defaults if we can't find the window size */
+ if ( ! physical.rows ) physical.rows=24;
+@@ -892,19 +898,21 @@
+ if ( physical.rows < 7 )
+ return("Screen is not tall enough to split.");
+
+- /* If physical.cols has been set to 132, assume we are on a
+- vt100 wide terminal, and set 132 column mode. Note that
+- setting COLUMNS in the environment will override termcap */
+- if ( physical.cols == 132 )
+- vt_widemode(1);
++ if ( ! setup_vt100 ) {
++ /* If physical.cols has been set to 132, assume we are on a
++ vt100 wide terminal, and set 132 column mode. Note that
++ setting COLUMNS in the environment will override termcap */
++ if ( physical.cols == 132 )
++ vt_widemode(1);
++ }
+
+ /* Set the exportable variables */
+ if ( UU_lines ) {
+ /* Check the user set # of lines */
+- if ( UU_lines > (physical.rows-1-3) )
+- LU_lines=(physical.rows-1-3);
+- else if ( UU_lines < 3 )
+- LU_lines=3;
++ if ( UU_lines > (physical.rows-1-3+(2*force_height)) )
++ LU_lines=(physical.rows-1-3+(2*force_height));
++ else if ( UU_lines < 3 - (2*force_height))
++ LU_lines=3 - (2*force_height);
+ else
+ LU_lines=UU_lines;
+
+--- splitvt-1.6.5.orig/splitvt.h
++++ splitvt-1.6.5/splitvt.h
+@@ -34,3 +34,25 @@
+
+ /* Functions exported from splitvt.c */
+ extern void reset_bar();
++
++/* If set, allow resizing to less than 3 lines */
++extern int force_height;
++
++void tokenize(char *array[], int size, char *line, char *tokens);
++void d_copy(register char *src, register char *dst, register int len);
++int tty_getmode(int fd);
++int tty_raw(int fd);
++int tty_reset(int fd);
++int tty_sane(int fd);
++int remove_me(void);
++int pty_open(char *argv[], int *childpid, int win);
++int addutmp(char *user, int uid, char *tty);
++char *vt_setsel(char *buf, int len, int startx, int endx, int starty, int endy);
++int delutmp(char *user, char *tty);
++int replace_me(void);
++void pty_setwin(int fd, int win);
++int check_attr(int pixel, int lastattr, int currattr);
++void d_zero(register char *dst, register int len);
++void vt_initsel(void);
++int vttest(void);
++int safe_pclose(FILE *pipefp);
+--- splitvt-1.6.5.orig/splitvt.1
++++ splitvt-1.6.5/splitvt.1
+@@ -47,6 +47,11 @@
+ Suppresses loading your ~/.splitvtrc
+ .TP
+ .TB
++.I -f
++Allow setting the height of either the top or the bottom window to less than
++3 lines.
++.TP
++.TB
+ .I -v
+ Print out the version number of splitvt
+ .LP
+@@ -173,7 +178,7 @@
+ splitvt will attempt to erase the current utmp entry, and replace it
+ with entries for the two windows. This allows you to use programs
+ such as 'talk' within the splitvt windows. If you do not have write
+-permission to the /etc/utmp file, you will not be able to modify the
++permission to the /var/run/utmp file, you will not be able to modify the
+ utmp entries.
+
+ splitvt can be made set-uid root. splitvt will reset its user id to
+--- splitvt-1.6.5.orig/splitvt-1.6.4.lsm
++++ splitvt-1.6.5/splitvt-1.6.4.lsm
+@@ -0,0 +1,15 @@
++Begin3
++Title: Splitvt - a split windows utility
++Version: 1.6.4
++Entered-date: 03JUN2000
++Description: A utility to split a vt100 compatible screen into two halfs,
++ upper and lower, and run a different program simultaneously
++ in each half.
++Keywords: screen vt100 emulator
++Author: slouken@devolution.com (Sam Lantinga)
++Maintained-by: slouken@devolution.com (Sam Lantinga)
++Primary-site: http://www.devolution.com/~slouken/projects/splitvt/
++Alternate-site: sunsite.unc.edu /pub/Linux/utils/terminal
++Platform: UNIX
++Copying-policy: GPL
++End
+--- splitvt-1.6.5.orig/utmp.c
++++ splitvt-1.6.5/utmp.c
+@@ -1,21 +1,27 @@
+
+ /* utmp.c Shareware Copyright by Sam Lantinga 10/6/93 */
+
++#include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <utmp.h>
+ #include <stdio.h>
++#include <string.h>
++#include <time.h>
++#include "splitvt.h"
+
+ #ifdef DEBUG_UTMP
+ #undef UTMP_FILE
+ #define UTMP_FILE "/tmp/utmp"
+ #else
+ #ifndef UTMP_FILE
+-#define UTMP_FILE "/etc/utmp"
++#define UTMP_FILE "/var/run/utmp"
+ #endif /* UTMP_FILE */
+ #endif /* DEBUG_UTMP */
+
++int get_utmp(char *tty, struct utmp *save);
++int set_utmp(char *tty, struct utmp *save);
+
+ /* Remove us from the utmp file, saving our entry to replace later */
+
+@@ -94,7 +100,7 @@
+ if (strncmp(ttyptr, ut.ut_line, sizeof(ut.ut_line)) == 0) {
+ /* Break out; we've found our entry! */
+ if ( save )
+- d_copy((char *)&ut, save, sizeof(ut));
++ d_copy((char *)&ut, (char *)&save, sizeof(ut));
+ close(fd);
+ return(0);
+ }
+@@ -158,7 +164,9 @@
+ int uid; /* The uid corresponding to user */
+ char *tty; /* /dev/ttyxx */
+ {
++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__)
+ struct stat sb;
++#endif
+ struct utmp ut;
+ char *ttyptr;
+
+@@ -195,12 +203,13 @@
+ #endif
+ (void) time(&ut.ut_time);
+
+-#if !defined(SOLARIS) && !defined(IRIX)
+- /* Solaris and Irix machines do this automatically */
++#if !defined(SOLARIS) && !defined(IRIX) && !defined(__GLIBC__)
++ /* Solaris and Irix and GLIBC machines do this automatically */
+ /* Change the ownership and mode of the tty */
+ if ( stat(tty, &sb) == 0 ) {
+ (void) chmod(tty, 0620); /* crw--w---- */
+ (void) chown(tty, uid, sb.st_gid);
++
+ }
+ #endif
+ return(set_utmp(tty, &ut));
+--- splitvt-1.6.5.orig/lock.c
++++ splitvt-1.6.5/lock.c
+@@ -1,9 +1,13 @@
+
+ /* The screen locking module for splitvt */
+
++#include <unistd.h>
++#include <sys/types.h>
++#include <string.h>
+ #include <stdio.h>
+ #include <pwd.h>
+ #include "vt100.h"
++#include "splitvt.h"
+
+ #define UNLOCKED 0
+ #define ENTERED1 1
+--- splitvt-1.6.5.orig/vttest.c
++++ splitvt-1.6.5/vttest.c
+@@ -12,6 +12,7 @@
+ -Sam Lantinga (slouken@toadflax.cs.ucdavis.edu)
+ */
+
++#include <unistd.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <fcntl.h>
+@@ -48,9 +49,12 @@
+ int vttest()
+ {
+ char buff[512];
+- int x=0, w, rc=0, fd;
++ int x=0, rc=0, fd;
+ struct termio ttold, ttraw;
+
++ /* Disabled since at least on sparc it causes a hang. */
++ return 1;
++
+ /* Set the terminal in a raw mode */
+ if ( (fd=open("/dev/tty", O_RDWR, 0666)) < 0 )
+ return(0);
+--- splitvt-1.6.5.orig/vtmouse.c
++++ splitvt-1.6.5/vtmouse.c
+@@ -7,8 +7,11 @@
+
+ #define SPLITVT_SOURCE
+
++#include <string.h>
++#include <stdlib.h>
+ #include <stdio.h>
+ #include "vtmouse.h"
++#include "splitvt.h"
+
+ extern FILE *safe_popen(); /* From misc.c */
+
+--- splitvt-1.6.5.orig/videomem.c
++++ splitvt-1.6.5/videomem.c
+@@ -1,6 +1,7 @@
+
+ /* This file holds the functions for manipulating video memory */
+
++#include <stdlib.h>
+ #include <stdio.h>
+ #include "video.h"
+ #include "terminal.h"
+@@ -113,7 +114,7 @@
+ int x1, x2;
+ int y1, y2;
+ {
+- int l=0, i, j, eol, eos;
++ int l=0, i, j, eol, eos=0;
+
+ --maxlen; /* Account for trailing null */
+ for ( i=(x1-1); (i<x2 && l<maxlen); ++i ) {
+@@ -319,7 +320,7 @@
+ void paint_video(win)
+ window *win;
+ {
+- unsigned char change, on=NORMAL;
++ unsigned char on=NORMAL;
+ int i, j, oldattr=0;
+
+ vt_setscroll(0,0);
+--- splitvt-1.6.5.orig/vtmouse.h
++++ splitvt-1.6.5/vtmouse.h
+@@ -39,5 +39,7 @@
+ extern int event_getc();
+ extern void event_quit();
+
++#if 0
++/* this is broken for gcc 4.0, so comment it out */
+ extern FILE *xt_input, *xt_output; /* Usually untouched */
+-
++#endif
+--- splitvt-1.6.5.orig/terminal.c
++++ splitvt-1.6.5/terminal.c
+@@ -4,8 +4,11 @@
+ actually write to the terminal.
+ */
+
+-
++#include <curses.h>
++#include <term.h>
+ #include <stdio.h>
++#include <string.h>
++#include "splitvt.h"
+ #include "video.h"
+ #include "terminal.h"
+
+@@ -125,7 +128,7 @@
+ }
+ return(NULL);
+ }
+-void outc(c) int c; { putchar(c); }
++int outc(c) int c; { return putchar(c); }
+
+ void vt_rows_cols(termtype, rows, cols)
+ char *termtype;
+--- splitvt-1.6.5.orig/misc.c
++++ splitvt-1.6.5/misc.c
+@@ -1,10 +1,17 @@
+ /* Miscellaneous system dependent routines for splitsh */
+
++#define _GNU_SOURCE /* for getpt and other gnu extensions to libc */
++
+ #include <sys/types.h>
++#include <sys/wait.h>
++#include <unistd.h>
++#include <stdlib.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <signal.h>
++#include <utime.h>
++#include <string.h>
+
+
+ #ifdef HAVE_TERMIO_H
+@@ -24,6 +31,8 @@
+ /*#define STTY_HACK*/
+ #endif
+
++int tty_reset(int fd);
++
+ /*
+ * Initialize a pty, fork a command running under it, and then
+ * return the master file descriptor
+@@ -44,7 +53,10 @@
+ int get_master_pty(), get_slave_pty();
+ char *get_ttyname(), *myputenv();
+
+- char LINES[12], COLUMNS[12], SPLITVT[24];
++#ifndef TIOCGWINSZ
++ char LINES[12], COLUMNS[12];
++#endif
++ char SPLITVT[24];
+ int returnfd, slave_fd;
+
+ /* Get the master pty file descriptor */
+@@ -106,6 +118,8 @@
+ /* "touch" the tty so 'w' reports proper idle times */
+ (void) utime(get_ttyname(), NULL);
+
++ /* Set our gid to our real gid if necessary */
++ (void) setgid(getgid());
+ /* Set our uid to our real uid if necessary */
+ (void) setuid(getuid());
+
+@@ -182,12 +196,18 @@
+ #else /* ! IRIX */
+
+
+-#ifdef SOLARIS /* System V.4 pty routines from W. Richard Stevens */
++#if defined(SOLARIS) || defined(__GLIBC__)
++/* System V.4 pty routines from W. Richard Stevens */
++/* GLIBC is very similar, so this will handle it too. */
++
++#ifdef SOLARIS
+
+ #include <stropts.h>
+
+ #define DEV_CLONE "/dev/ptmx"
+
++#endif
++
+ extern char *ptsname();
+
+ int get_master_pty()
+@@ -195,9 +215,14 @@
+
+ char *ttyptr;
+
++#ifdef SOLARIS
+ if ( (master_fd=open(DEV_CLONE, O_RDWR)) < 0 )
+ return(-1);
+-
++#else /* GLIBC */
++ if ( (master_fd=getpt()) == -1 )
++ return (-1);
++#endif
++
+ if ( grantpt(master_fd) < 0 ) /* grant access to slave */
+ {
+ close(master_fd);
+@@ -242,6 +267,7 @@
+ return(-1);
+ }
+
++#ifdef SOLARIS
+ if ( ioctl(slave_fd, I_PUSH, "ptem") < 0 )
+ {
+ close(master_fd);
+@@ -262,7 +288,8 @@
+ close(slave_fd);
+ return(-1);
+ }
+-
++#endif
++
+ return(slave_fd);
+ }
+
+@@ -393,8 +420,10 @@
+
+ void dropctty()
+ {
++#ifndef CIBAUD
+ int fd;
+-
++#endif
++
+ #if defined(_POSIX_SOURCE) || defined(SOLARIS) || \
+ defined(__386BSD__) || defined(__FreeBSD__)
+ setsid(); /* The POSIX solution is simple. :) */
+@@ -708,7 +737,6 @@
+ extern char **environ; /* The process environment strings */
+
+ char *newptr, **envptr;
+- char *tmptr, temp[BUFSIZ];
+ int distance, n=0;
+
+ for ( distance=0; ((*(string+distance)) &&
+@@ -759,7 +787,7 @@
+ char *line;
+ char *tokens;
+ {
+- char *head, *ptr;
++ char *head;
+ int i=0;
+
+ for ( head=line; *line && i < size-2; ) {
+@@ -847,7 +875,7 @@
+ {
+ char *argv[4];
+ int pipe_fds[2];
+- int rw, child;
++ int rw;
+
+ if ( strcmp(type, "r") == 0 )
+ rw=0; /* READ access for parent */
diff --git a/source/a/sysfsutils/slack-desc b/source/a/sysfsutils/slack-desc
new file mode 100644
index 000000000..b7b470925
--- /dev/null
+++ b/source/a/sysfsutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysfsutils: sysfsutils (Utilities for the sysfs filesystem)
+sysfsutils:
+sysfsutils: The purpose of this package is to provide a set of utilities for
+sysfsutils: interfacing with sysfs, a virtual filesystem in Linux kernel versions
+sysfsutils: 2.6+ that provides a tree of system devices. While a filesystem is a
+sysfsutils: very useful interface, a library (libsysfs) is also included that
+sysfsutils: will hopefully make it easier for applications to query system
+sysfsutils: devices and their attributes.
+sysfsutils:
+sysfsutils:
+sysfsutils:
diff --git a/source/a/sysfsutils/sysfsutils.SlackBuild b/source/a/sysfsutils/sysfsutils.SlackBuild
new file mode 100755
index 000000000..0534b3e29
--- /dev/null
+++ b/source/a/sysfsutils/sysfsutils.SlackBuild
@@ -0,0 +1,104 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.1.0
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysfsutils
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf sysfsutils-$VERSION
+tar xjvf $CWD/sysfsutils-$VERSION.tar.bz2
+cd sysfsutils-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+./configure \
+ --prefix=/usr \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --enable-static=no \
+ $ARCH-slackware-linux
+make
+make install DESTDIR=$PKG
+
+# Unless things start whining later that this libtool junk is
+# required for some reason, out it goes. Especially in /lib,
+# where probably nothing would find it anyway.
+rm -f $PKG/lib${LIBDIRSUFFIX}/*.la
+
+# .so links should really go in /usr/lib:
+rm $PKG/lib${LIBDIRSUFFIX}/*.so
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+# sanity check
+if [ ! -L $PKG/lib${LIBDIRSUFFIX}/libsysfs.so.2 ]; then
+ exit 1
+fi
+( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf /lib${LIBDIRSUFFIX}/libsysfs.so.2 libsysfs.so )
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/usr/doc/sysfsutils-$VERSION
+cp -a \
+ AUTHORS COPYING CREDITS NEWS README TODO \
+ docs/* \
+ $PKG/usr/doc/sysfsutils-$VERSION
+
+# Compress and/or relink manpages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+makepkg -l y -c n $TMP/sysfsutils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sysklogd/slack-desc b/source/a/sysklogd/slack-desc
new file mode 100644
index 000000000..883782ccf
--- /dev/null
+++ b/source/a/sysklogd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysklogd: sysklogd (Linux system logging utilities)
+sysklogd:
+sysklogd: Dr. Greg Wettstein and Stephen Tweedie's syslogd/klogd.
+sysklogd:
+sysklogd: This package contains a modified version of syslogd for the Linux
+sysklogd: environment. An additional utility, klogd, is included which allows
+sysklogd: kernel logging to be directed through the syslogd facility.
+sysklogd: Syslogd and klogd are started when your system boots.
+sysklogd:
+sysklogd:
+sysklogd:
diff --git a/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
new file mode 100644
index 000000000..268309297
--- /dev/null
+++ b/source/a/sysklogd/sysklogd-1.4.1-owl-syslogd-crunch_list.diff
@@ -0,0 +1,90 @@
+--- ./syslogd.c.orig 2007-04-09 18:17:05.000000000 -0500
++++ ./syslogd.c 2007-04-09 18:25:22.000000000 -0500
+@@ -1273,61 +1273,55 @@
+ crunch_list(list)
+ char *list;
+ {
+- int count, i;
++ int i, m, n;
+ char *p, *q;
+ char **result = NULL;
+
+ p = list;
+
+ /* strip off trailing delimiters */
+- while (p[strlen(p)-1] == LIST_DELIMITER) {
+- count--;
++ while (*p && p[strlen(p)-1] == LIST_DELIMITER)
+ p[strlen(p)-1] = '\0';
+- }
+ /* cut off leading delimiters */
+- while (p[0] == LIST_DELIMITER) {
+- count--;
+- p++;
+- }
+-
+- /* count delimiters to calculate elements */
+- for (count=i=0; p[i]; i++)
+- if (p[i] == LIST_DELIMITER) count++;
+-
+- if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) {
++ while (p[0] == LIST_DELIMITER)
++ p++;
++
++ /* count delimiters to calculate the number of elements */
++ for (n = i = 0; p[i]; i++)
++ if (p[i] == LIST_DELIMITER) n++;
++
++ if ((result = (char **)malloc(sizeof(char *) * (n + 2))) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+-
++
+ /*
+ * We now can assume that the first and last
+ * characters are different from any delimiters,
+ * so we don't have to care about this.
+ */
+- count = 0;
+- while ((q=strchr(p, LIST_DELIMITER))) {
+- result[count] = (char *) malloc((q - p + 1) * sizeof(char));
+- if (result[count] == NULL) {
++ m = 0;
++ while ((q = strchr(p, LIST_DELIMITER)) && m < n) {
++ result[m] = (char *) malloc((q - p + 1) * sizeof(char));
++ if (result[m] == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+- strncpy(result[count], p, q - p);
+- result[count][q - p] = '\0';
++ memcpy(result[m], p, q - p);
++ result[m][q - p] = '\0';
+ p = q; p++;
+- count++;
++ m++;
+ }
+- if ((result[count] = \
+- (char *)malloc(sizeof(char) * strlen(p) + 1)) == NULL) {
++ if ((result[m] = strdup(p)) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+- exit(0);
++ exit(1);
+ }
+- strcpy(result[count],p);
+- result[++count] = NULL;
++ result[++m] = NULL;
+
+ #if 0
+- count=0;
+- while (result[count])
+- dprintf ("#%d: %s\n", count, StripDomains[count++]);
++ m = 0;
++ while (result[m])
++ dprintf ("#%d: %s\n", m, result[m++]);
+ #endif
+ return result;
+ }
diff --git a/source/a/sysklogd/sysklogd-1.4.1.lsm b/source/a/sysklogd/sysklogd-1.4.1.lsm
new file mode 100644
index 000000000..0c3b75f8f
--- /dev/null
+++ b/source/a/sysklogd/sysklogd-1.4.1.lsm
@@ -0,0 +1,23 @@
+Begin3
+Title: sysklogd
+Version: 1.4.1
+Entered-date: 2001-03-11
+Description: The sysklogd package implements two system log daemons. The
+ syslogd daemon is the general system logging daemon which
+ is responsible for handling requests for syslog services.
+ This version of syslogd is similar to the standard Berkeley
+ product but with a number of compatible extensions. The
+ klogd daemon runs either standalone or as a client of syslogd.
+ Klogd 'listens' to kernel log messages, prioritizes them and
+ routes them to either output files or to syslogd. This
+ version of klogd will optionally translate kernel addresses
+ to their symbolic equivalents if provided with a system map.
+Keywords: logging, remote, kernel, syslogd, proc, daemon, klogd
+Author: greg@wind.enjellic.com (Dr. G.W. Wettstein)
+Maintained-by: joey@infodrom.ffis.de (Martin Schulze)
+Primary-site: www.infodrom.ffis.de /projects/sysklogd
+ 82kB sysklogd-1.4.1.tar.gz
+ 1kB sysklogd-1.4.1.lsm
+Alternate-site: metalab.unc.edu /pub/Linux/system/daemons
+Copying-policy: syslogd is under Berkeley copyright, klogd is under GPL.
+End
diff --git a/source/a/sysklogd/sysklogd.SlackBuild b/source/a/sysklogd/sysklogd.SlackBuild
new file mode 100755
index 000000000..110659e4c
--- /dev/null
+++ b/source/a/sysklogd/sysklogd.SlackBuild
@@ -0,0 +1,80 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.4.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-10}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysklogd
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Explode the package framework:
+cd $PKG
+explodepkg $CWD/_sysklogd.tar.gz
+
+cd $TMP
+rm -rf sysklogd-$VERSION
+tar xzvf $CWD/sysklogd-$VERSION.tar.gz || exit 1
+cd sysklogd-$VERSION
+zcat $CWD/sysklogd_1.4.1-20.diff.gz | patch -p1 --verbose || exit 1
+#zcat $CWD/sysklogd-1.4.1-owl-syslogd-crunch_list.diff.gz | patch -p1 --verbose || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make -j4 || exit 1
+make syslog_tst || exit 1
+cat klogd > $PKG/usr/sbin/klogd
+cat syslog_tst > $PKG/usr/sbin/syslog_tst
+cat syslogd > $PKG/usr/sbin/syslogd
+for page in klogd.8 sysklogd.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+cat syslog.conf.5 | gzip -9c > $PKG/usr/man/man5/syslog.conf.5.gz
+mkdir -p $PKG/usr/doc/sysklogd-$VERSION
+cp -a ANNOUNCE CHANGES COPYING INSTALL MANIFEST NEWS README.1st \
+ README.linux $PKG/usr/doc/sysklogd-$VERSION
+chmod 644 $PKG/usr/doc/sysklogd-$VERSION/*
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/sysklogd-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/sysklogd-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/sysklogd/sysklogd_1.4.1-20.diff b/source/a/sysklogd/sysklogd_1.4.1-20.diff
new file mode 100644
index 000000000..9bb27bbb6
--- /dev/null
+++ b/source/a/sysklogd/sysklogd_1.4.1-20.diff
@@ -0,0 +1,2555 @@
+--- sysklogd-1.4.1.orig/CHANGES
++++ sysklogd-1.4.1/CHANGES
+@@ -30,3 +30,4 @@
+ . Olaf Kirch <okir@caldera.de>
+ - Remove Unix Domain Sockets and switch to Datagram Unix Sockets
+ . Several bugfixes and improvements, please refer to the .c files
++
+--- sysklogd-1.4.1.orig/README.linux
++++ sysklogd-1.4.1/README.linux
+@@ -44,8 +44,8 @@
+ mail to Majordomo@Infodrom.North.DE with a line "subscribe sysklogd"
+ in the message body.
+
+-New versions of this package will be available at Joey's ftp server.
+-ftp://ftp.infodrom.north.de/pub/people/joey/sysklogd/
++New versions of this package will be available at Joey's server.
++ http://www.infodrom.org/projects/sysklogd/
+
+ Best regards,
+
+@@ -67,6 +67,6 @@
+
+ Martin Schulze
+ Infodrom Oldenburg
+-joey@linux.de
++joey@infodrom.org
+
+ And a host of bug reporters whose contributions cannot be underestimated.
+--- sysklogd-1.4.1.orig/klogd.8
++++ sysklogd-1.4.1/klogd.8
+@@ -321,7 +321,7 @@
+ .B klogd
+ to reload the module symbol information whenever a protection fault
+ is detected. Caution should be used before invoking the program in
+-\'paranoid\' mode. The stability of the kernel and the operating
++\&'paranoid\&' mode. The stability of the kernel and the operating
+ environment is always under question when a protection fault occurs.
+ Since the klogd daemon must execute system calls in order to read the
+ module symbol information there is the possibility that the system may
+--- sysklogd-1.4.1.orig/ksym_mod.c
++++ sysklogd-1.4.1/ksym_mod.c
+@@ -78,6 +78,11 @@
+ *
+ * Tue Sep 12 23:11:13 CEST 2000: Martin Schulze <joey@infodrom.ffis.de>
+ * Changed llseek() to lseek64() in order to skip a libc warning.
++ *
++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org>
++ * Removed references to <linux/module.h> since it doesn't work
++ * anymore with its recent content from Linux 2.4/2.6, created
++ * module.h locally instead.
+ */
+
+
+@@ -89,11 +94,12 @@
+ #include <errno.h>
+ #include <sys/fcntl.h>
+ #include <sys/stat.h>
++#include "module.h"
+ #if !defined(__GLIBC__)
+ #include <linux/time.h>
+-#include <linux/module.h>
++#include <linux/linkage.h>
+ #else /* __GLIBC__ */
+-#include <linux/module.h>
++#include <linux/linkage.h>
+ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
+ extern int get_kernel_syms __P ((struct kernel_sym *__table));
+ #endif /* __GLIBC__ */
+--- sysklogd-1.4.1.orig/module.h
++++ sysklogd-1.4.1/module.h
+@@ -0,0 +1,90 @@
++/*
++ module.h - Miscellaneous module definitions
++ Copyright (c) 1996 Richard Henderson <rth@tamu.edu>
++ Copyright (c) 2004 Martin Schulze <joey@infodrom.org>
++
++ This file is part of the sysklogd package.
++
++ 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 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, write to the Free Software
++ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++*/
++
++/* ChangeLog:
++ *
++ * Wed Mar 31 17:35:01 CEST 2004: Martin Schulze <joey@infodrom.org>
++ * Created local copy of module.h based on the content of Linux
++ * 2.2 since <linux/module.h> doesn't work anymore with its
++ * recent content from Linux 2.4/2.6.
++ * Thu May 25 09:14:33 CEST 2006: Martin Schulze <joey@infodrom.org>
++ * Removed asm/atomic.h since it is not needed anymore.
++ */
++
++#define MODULE_NAME_LEN 60
++
++struct kernel_sym
++{
++ unsigned long value;
++ char name[MODULE_NAME_LEN];
++};
++
++
++struct list_head {
++ struct list_head *next, *prev;
++};
++
++
++struct module_info
++{
++ unsigned long addr;
++ unsigned long size;
++ unsigned long flags;
++ long usecount;
++};
++
++
++struct module
++{
++ unsigned long size_of_struct; /* == sizeof(module) */
++ struct module *next;
++ const char *name;
++ unsigned long size;
++
++ union
++ {
++ int usecount;
++ long pad;
++ } uc; /* Needs to keep its size - so says rth */
++
++ unsigned long flags; /* AUTOCLEAN et al */
++
++ unsigned nsyms;
++ unsigned ndeps;
++
++ struct module_symbol *syms;
++ struct module_ref *deps;
++ struct module_ref *refs;
++ int (*init)(void);
++ void (*cleanup)(void);
++ const struct exception_table_entry *ex_table_start;
++ const struct exception_table_entry *ex_table_end;
++#ifdef __alpha__
++ unsigned long gp;
++#endif
++ /* Members past this point are extensions to the basic
++ module support and are optional. Use mod_opt_member()
++ to examine them. */
++ const struct module_persist *persist_start;
++ const struct module_persist *persist_end;
++ int (*can_unload)(void);
++};
+--- sysklogd-1.4.1.orig/pidfile.c
++++ sysklogd-1.4.1/pidfile.c
+@@ -87,7 +87,7 @@
+ int fd;
+ int pid;
+
+- if ( ((fd = open(pidfile, O_RDWR|O_CREAT, 0644)) == -1)
++ if ( ((fd = open(pidfile, O_RDWR|O_CREAT|O_TRUNC, 0644)) == -1)
+ || ((f = fdopen(fd, "r+")) == NULL) ) {
+ fprintf(stderr, "Can't open or create %s.\n", pidfile);
+ return 0;
+--- sysklogd-1.4.1.orig/syslog.conf.5
++++ sysklogd-1.4.1/syslog.conf.5
+@@ -64,7 +64,7 @@
+ The
+ .I facility
+ is one of the following keywords:
+-.BR auth ", " authpriv ", " cron ", " daemon ", " kern ", " lpr ", "
++.BR auth ", " authpriv ", " cron ", " daemon ", " ftp ", " kern ", " lpr ", "
+ .BR mail ", " mark ", " news ", " security " (same as " auth "), "
+ .BR syslog ", " user ", " uucp " and " local0 " through " local7 .
+ The keyword
+@@ -122,7 +122,7 @@
+ This
+ .BR syslogd (8)
+ has a syntax extension to the original BSD source, that makes its use
+-more intuitively. You may precede every priority with an equation sign
++more intuitive. You may precede every priority with an equation sign
+ (``='') to specify only this single priority and not any of the
+ above. You may also (both is valid, too) precede the priority with an
+ exclamation mark (``!'') to ignore all that priorities, either exact
+@@ -300,7 +300,7 @@
+ .B syslogd
+ log all messages that come with either the
+ .BR info " or the " notice
+-facility into the file
++priority into the file
+ .IR /var/log/messages ,
+ except for all messages that use the
+ .B mail
+--- sysklogd-1.4.1.orig/syslogd.c
++++ sysklogd-1.4.1/syslogd.c
+@@ -890,11 +890,11 @@
+ dprintf("Checking pidfile.\n");
+ if (!check_pid(PidFile))
+ {
++ signal (SIGTERM, doexit);
+ if (fork()) {
+ /*
+ * Parent process
+ */
+- signal (SIGTERM, doexit);
+ sleep(300);
+ /*
+ * Not reached unless something major went wrong. 5
+@@ -1074,9 +1074,9 @@
+ (fd_set *) NULL, (struct timeval *) NULL);
+ if ( restart )
+ {
++ restart = 0;
+ dprintf("\nReceived SIGHUP, reloading syslogd.\n");
+ init();
+- restart = 0;
+ continue;
+ }
+ if (nfds == 0) {
+@@ -1141,13 +1141,13 @@
+ */
+ printchopped(from, line, \
+ i + 2, finet);
+- } else if (i < 0 && errno != EINTR) {
++ } else if (i < 0 && errno != EINTR && errno != EAGAIN) {
+ dprintf("INET socket error: %d = %s.\n", \
+ errno, strerror(errno));
+ logerror("recvfrom inet");
+ /* should be harmless now that we set
+ * BSDCOMPAT on the socket */
+- sleep(10);
++ sleep(1);
+ }
+ }
+ #endif
+@@ -1216,6 +1216,7 @@
+ {
+ int fd, on = 1;
+ struct sockaddr_in sin;
++ int sockflags;
+
+ fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (fd < 0) {
+@@ -1241,6 +1242,24 @@
+ close(fd);
+ return -1;
+ }
++ /* We must not block on the network socket, in case a packet
++ * gets lost between select and recv, otherise the process
++ * will stall until the timeout, and other processes trying to
++ * log will also stall.
++ */
++ if ((sockflags = fcntl(fd, F_GETFL)) != -1) {
++ sockflags |= O_NONBLOCK;
++ /*
++ * SETFL could fail too, so get it caught by the subsequent
++ * error check.
++ */
++ sockflags = fcntl(fd, F_SETFL, sockflags);
++ }
++ if (sockflags == -1) {
++ logerror("fcntl(O_NONBLOCK), suspending inet");
++ close(fd);
++ return -1;
++ }
+ if (bind(fd, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
+ logerror("bind, suspending inet");
+ close(fd);
+@@ -1275,7 +1294,7 @@
+ for (count=i=0; p[i]; i++)
+ if (p[i] == LIST_DELIMITER) count++;
+
+- if ((result = (char **)malloc(sizeof(char *) * count+2)) == NULL) {
++ if ((result = (char **)malloc(sizeof(char *) * (count+2))) == NULL) {
+ printf ("Sorry, can't get enough memory, exiting.\n");
+ exit(0);
+ }
+@@ -1539,20 +1558,37 @@
+ int fac, prilev, lognum;
+ int msglen;
+ char *timestamp;
++#ifdef __gnu_linux__
++ sigset_t mask;
++#else
++#ifndef SYSV
++ sigset_t omask;
++#endif
++#endif
+
+ dprintf("logmsg: %s, flags %x, from %s, msg %s\n", textpri(pri), flags, from, msg);
+
++#ifdef __gnu_linux__
++ sigemptyset(&mask);
++ sigaddset(&mask, SIGHUP);
++ sigaddset(&mask, SIGALRM);
++ sigprocmask(SIG_BLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ omask = sigblock(sigmask(SIGHUP)|sigmask(SIGALRM));
+ #endif
++#endif
+
+ /*
+ * Check to see if msg looks non-standard.
+ */
+ msglen = strlen(msg);
+- if (msglen < 16 || msg[3] != ' ' || msg[6] != ' ' ||
+- msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')
+- flags |= ADDDATE;
++ flags |= ADDDATE;
++ if ( !(msglen < 16 || msg[3] != ' ' || msg[6] != ' ' ||
++ msg[9] != ':' || msg[12] != ':' || msg[15] != ' ')) {
++ msg += 16;
++ msglen -= 16;
++ }
+
+ (void) time(&now);
+ if (flags & ADDDATE)
+@@ -1581,9 +1617,13 @@
+ (void) close(f->f_file);
+ f->f_file = -1;
+ }
++#ifdef __gnu_linux__
++ sigprocmask(SIG_UNBLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ (void) sigsetmask(omask);
+ #endif
++#endif
+ return;
+ }
+ #ifdef SYSV
+@@ -1646,9 +1686,13 @@
+ }
+ }
+ }
++#ifdef __gnu_linux__
++ sigprocmask(SIG_UNBLOCK, &mask, NULL);
++#else
+ #ifndef SYSV
+ (void) sigsetmask(omask);
+ #endif
++#endif
+ }
+ #if FALSE
+ } /* balance parentheses for emacs */
+@@ -1839,7 +1883,7 @@
+ #else
+ && e == EBADF) {
+ #endif
+- f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY);
++ f->f_file = open(f->f_un.f_fname, O_WRONLY|O_APPEND|O_NOCTTY|O_NONBLOCK);
+ if (f->f_file < 0) {
+ f->f_type = F_UNUSED;
+ logerror(f->f_un.f_fname);
+@@ -2640,7 +2684,7 @@
+ f->f_file = open(++p, O_RDWR|O_NONBLOCK);
+ f->f_type = F_PIPE;
+ } else {
+- f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY,
++ f->f_file = open(p, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY|O_NONBLOCK,
+ 0644);
+ f->f_type = F_FILE;
+ }
+--- sysklogd-1.4.1.orig/debian/NMU-Disclaimer
++++ sysklogd-1.4.1/debian/NMU-Disclaimer
+@@ -0,0 +1,45 @@
++Non Maintainer Upload of this Package
++-------------------------------------
++
++If you plan to work on an NMU for this package, read the following
++closely. It can save you and me some grief.
++
++ 1. At first, contact the maintainer (i.e. send a mail to
++ joey@debian.org, do not cc or bounce a mail, send a plain mail,
++ not copied to any mailing list or the BTS) and ask about the
++ status of the bug you are considering to work on.
++
++ 2. In this mail include all information relevant for this problem,
++ i.e. include a description of the bug and not only its bug
++ number.
++
++ 3. If the maintainer is not able or willing to fix the problem or
++ does not respond within four days, continue with step 4.
++
++ 4. Work on the bug and prepare a patch. Do not upload into the
++ Debian archive.
++
++ 5. Send the entire patch, together with enough explanations, to the
++ maintainer for reviewing and ask him for permission of an NMU
++ using this patch.
++
++ 6. IF AND ONLY IF the maintainer approves the patch (or doesn't
++ respond within four days), upload the NMU to the incoming
++ directory and send the patch to the BTS. If the NMU is not
++ approved, go back to 4. or add the NMU to your homepage, but do
++ not upload it to the Debian archive.
++
++ 7. Properly sized and well-written patches sent to the BTS are always
++ appreciated, even if they are rejected later. They demonstrate a
++ potential solution which could probably improved into a real
++ solution.
++
++ 8. NEVER change the way a package is maintained in an NMU, i.e. don't
++ remove dh_* stuff or switch to dh_* respectively. This rule
++ applies to all NMU's, not only to an NMU for this package.
++
++These rules always apply. They even apply if somebody declares NMUs
++as ok and reduces regular NMU rules to a delay of zero days. Unless
++I'm on vacation or on a show I am reachable via mail, so there is
++hardly a reason not to contact me.
++
+--- sysklogd-1.4.1.orig/debian/changelog
++++ sysklogd-1.4.1/debian/changelog
+@@ -0,0 +1,694 @@
++sysklogd (1.4.1-20) unstable; urgency=low
++
++ * Added a missing whitespace to the rc file (Closes: Bug#388787,
++ Bug#388378, Bug#388260)
++ * Corrected typo in syslog.conf(5) (Closes: Bug#327200)
++
++ -- Martin Schulze <joey@infodrom.org> Thu, 28 Sep 2006 20:46:41 +0200
++
++sysklogd (1.4.1-19) unstable; urgency=high
++
++ * Converted init.d scripts to LSB style
++ - accidently closes: Bug#211858
++ * Removed code that's not required anymore in cron.daily/sysklogd
++ * Fix initial permission (closes: Bug#285500)
++ * Added a special exception for when /var/log/news is a file (closes:
++ Bug#266555)
++ * Tidy up the postinst script
++ * Added devfs awarenes for /dev/xconsole creation (closes: Bug#206066)
++ * Move daemon stop logic into klogd's postinst
++ * Removed both preinst scripts from the distribution
++
++ -- Martin Schulze <joey@infodrom.org> Mon, 18 Sep 2006 13:15:59 +0200
++
++sysklogd (1.4.1-18) unstable; urgency=medium
++
++ * Removed asm/atomic.h since it is not needed anymore. (closes:
++ Bug#350764)
++ * Fixed typo in NMU-Disclaimer (closes: Bug#225895)
++ * Corrected getconf call in debian/rules to fix lagefile support
++ (closes: Bug#320119)
++ * Applied patch by Joey Hess to prevent klogd to be stopped/started too
++ fast (closes: Bug#284914)
++ * Finish /usr/share/doc transition with patch by Julien Cristau (closes:
++ Bug#337712, Bug#322769, Bug#255590)
++ * Reset the 'restart' flag immediately after entering the restart code.
++ Thanks to Dean Gaudet (closes: Bug#154805)
++ * Added support for /etc/default/{syslogd,klogd} files to contain
++ commandline arguments for syslogd and klogd (closes: Bug#98631,
++ Bug#127579, Bug#241350, Bug#266985)
++ * Added a description of system log level and link to sysctl(8) (closes:
++ Bug#164153)
++ * Acknowledging Joey's NMUs (closes: Bug#347333)
++
++ -- Martin Schulze <joey@infodrom.org> Thu, 25 May 2006 11:07:52 +0200
++
++sysklogd (1.4.1-17) unstable; urgency=high
++
++ * Use $(getconf LFS_CFLAGS) for large file support
++ * Applied adjusted patch by Miquel van Smoorenburg to fix spurious
++ hanging syslogd in connection with futex and NPTL introduced in recent
++ glibc versions and Linux 2.6 (closes: Bug#301511)
++
++ -- Martin Schulze <joey@infodrom.org> Wed, 25 May 2005 20:10:31 +0200
++
++sysklogd (1.4.1-16) unstable; urgency=medium
++
++ * applied patch by cph
++ * Applied patch by Colin Phipps so that syslogd doesn't block on the
++ network socket, in case a packet gets lost between select and
++ recv. (closes: Bug#275578)
++ * Applied patch by Anders Henke so that syslog calculates the time for
++ each message (closes: Bug#207619)
++ * Don't create /var/log/news if it's not needed (closes: Bug#266555)
++
++ -- Martin Schulze <joey@infodrom.org> Sun, 7 Nov 2004 13:10:03 +0100
++
++sysklogd (1.4.1-15) unstable; urgency=low
++
++ * Applied patch by Steve Grubb <linux_4ever@yahoo.com> to adjust memory
++ calculation in crunch_list().
++ * Removed atomic_t in the usecount field of the module struct for
++ compatibility reasons (closes: Bug#245513)
++
++ -- Martin Schulze <joey@infodrom.org> Tue, 27 Jul 2004 17:28:49 +0200
++
++sysklogd (1.4.1-14) unstable; urgency=medium
++
++ * Added more trailing newlines to init.d programs (closes: Bug#216110)
++ * Adjusted the use of head to the new behaviour for GNU coreutils
++ (closes: Bug#205535, Bug#172655)
++ * Install /usr/share/sysklogd/dummy to replace /usr/share/doc/sysklogd,
++ since /usr/share/doc should be removable by an admin (Policy 12.3).
++ (closes: Bug#237724)
++ * Added a private module.h with extracted data from Linux 2.2 to replace
++ <linux/module.h> which creates a number parse errors. (closes: Bug#223210)
++ * Added support for invoke-rc.d as written in policy 9.3.3 (closes:
++ Bug#213211, Bug#213585, Bug#216858, Bug#214912)
++
++ -- Martin Schulze <joey@debian.org> Wed, 31 Mar 2004 18:18:54 +0200
++
++sysklogd (1.4.1-13) unstable; urgency=medium
++
++ * Updated some text in the cronjobs
++ * Direct output of reloading to /dev/null so that no cron log mails will
++ be created defaultly (closes: Bug#213717, Bug#213646)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 2 Oct 2003 19:51:34 +0200
++
++sysklogd (1.4.1-12) unstable; urgency=low
++
++ * On heavily loaded system syslog will not spit out error messages
++ anymore when recvfrom() results in EAGAIN (closes: Bug#188194)
++ * Applied patch by Ryan Murray to make this package build on mipsel
++ again (closes: Bug#191969)
++ * Added O_NONBLOCK to two more locations, since Andreas Barth
++ <aba@not.so.argh.org> believes that it fixes this bug. However,
++ according to the note in open(2) this does not have to have any effect
++ on files other than pipes... (closes: Bug#45245)
++ * Permissions on empty files should also be corrected (closes: Bug#135485)
++ * Corrected the number of bytes denoting 1GB for large logfiles (closes: Bug#138234)
++ * Corrected the handling of the skip pattern (closes: Bug#152247)
++ * Don't cut non-newline trailing characters from the last line anymore
++ (closes: Bug#152248)
++ * Improved init.d scripts so non-existing pid directories are not
++ touched anymore (see Bug#165472)
++ * Whoops, looks like O_TRUNC was missing when opening the pidfile for writing,
++ increasing the chance of left-overs from older pid contents in the
++ file. (closes: Bug#165472)
++ * Don't send SIGHUP to klogd anymore. Only restart it in case the old
++ process got lost somehow. (closes: Bug#168851)
++ * Improved init.d script output (closes: Bug#190328)
++ * Adjusted the use of chown to the new behaviour for GNU coreutils
++ (closes: Bug#205364)
++ * Adjusted the use of head to the new behaviour for GNU coreutils
++ (closes: Bug#205535)
++ * Moved the installation of the signal handler up a little bit so it
++ guaranteed to be available when the child is forked, hence, fixing a
++ race condition. This used to create problems with UML and fast
++ machines. Thanks to Jon Burgess <Jon_Burgess@eur.3com.com> (closes:
++ Bug#211993)
++
++ -- Martin Schulze <joey@kyllikki.infodrom.north.de> Sun, 28 Sep 2003 12:34:31 +0200
++
++sysklogd (1.4.1-11) unstable; urgency=low
++
++ * Added a disclaimer for those people who plan to NMU this package
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 17 Oct 2002 08:26:04 +0200
++
++sysklogd (1.4.1-10) unstable; urgency=low
++
++ * Removed bashism from rc files (closes: Bug#127406, Bug#127407,
++ Bug#127578, Bug#127372)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 3 Jan 2002 18:22:13 +0100
++
++sysklogd (1.4.1-9) unstable; urgency=low
++
++ * Use a newer Standards-Version
++ * Corrected dependency of sysklogd (closes: Bug#123908)
++ * Transfer section/priority into .deb (closes: Bug#123908)
++ * Fix typo in syslog.conf(5) (closes: Bug#126899)
++ * Added ``-e'' to weekly and daily cron scripts. Beware, from now on
++ they will fail if an error occurs and leave /var/log in an undefined
++ state, not signalling syslogd to reopen files as well. (closes: Bug#123281)
++ * Added some intelligence into /etc/init.d/sysklogd and klogd so the
++ daemons will be restarted when they should only be reloaded but are
++ not running. This could be helpful if after an OOM situation syslogd
++ or klogd were killed by init but cron wasn't. (closes: Bug#126749, Bug#126750)
++ * Create /dev/xconsole in init.d script if it doesn't exist. Hence
++ removing this out of the postinst script. This should help situations
++ when devfs is installed and /dev/ get's removed on system boot, thus
++ /dev/xconsole gets removed as well. (closes: Bug#106535)
++ * Added ftp facility (closes: Bug#100437)
++ * Added missing documentation to syslogd-listfiles(8) (fixes: Bug#48326)
++ * Added a PATH= statement to all init.d files (closes: Bug#47901)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 1 Jan 2002 13:44:42 +0100
++
++sysklogd (1.4.1-8) unstable; urgency=low
++
++ * Added special code to find out if a logfile was rotated within the
++ last 5 hours already, hence should not be rotated again. Hope this
++ satisfies Craig Sanders' request properly. (closes: Bug#39198)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 6 Dec 2001 11:06:53 +0100
++
++sysklogd (1.4.1-7) unstable; urgency=low
++
++ * Fixed override disparity
++ * Added more defines so files larger than 2GB can be created, approved
++ by the glibc maintainer (closes: Bug#120574)
++ * Closing old bug reports (closes: Bug#95230, Bug#34391, Bug#72892)
++ * Added `--large nnn' as argument to syslogd-listfiles so people can
++ decide on their own what a large file is (closes: Bug#39198)
++ * Increased the default definition for large files
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 5 Dec 2001 22:01:23 +0100
++
++sysklogd (1.4.1-6) unstable; urgency=low
++
++ * Corrected path for syslogd in cron scripts (closes: Bug#122261,
++ Bug#121680, Bug#120809)
++ * Already fixed bugs (closes: Bug#121784)
++ * Improved package description (closes: Bug#120755)
++ * Added an improved pattern for news.*, thanks Takuo (closes: Bug#103999)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 4 Dec 2001 09:46:46 +0100
++
++sysklogd (1.4.1-5) unstable; urgency=low
++
++ * Fix the override disparity
++ * Removed superflous Priority
++ * Removed =VER= string from syslogd-listfiles (closes: Bug#102998)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 23:00:29 +0100
++
++sysklogd (1.4.1-4) unstable; urgency=low
++
++ * Added convenience code to support $DEB_BUILD_OPTIONS
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 21 Nov 2001 18:41:23 +0100
++
++sysklogd (1.4.1-3) unstable; urgency=medium
++
++ * Be more anal about whether sysklogd is installed or not in our cron
++ scripts (closes: Bug#100319)
++ * Added missing newline in init.d script upon restart (closes: Bug#95554)
++ * Moved stop code to prerm (closes: Bug#120249, Bug#96355, Bug#105441,
++ Bug#105442, Bug#109470)
++ * Corrected broken character in klogd.8 (closes: Bug#75932) [repeat, due
++ to typo]
++ * Added dependency to klogd so people who upgrade their sysklogd package
++ won't lose it anymore (closes: Bug#93729) [repeat, another bug#]
++ * auth.* files are only rotated daily (closes: Bug#102138)
++ * Changed -p to -s in documentation (closes: Bug#108473)
++ * Updated documentation to reflect the current location of the mailing
++ list
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 20 Nov 2001 20:48:32 +0100
++
++sysklogd (1.4.1-2) unstable; urgency=low
++
++ * Corrected location of GPL (closes: Bug#90582)
++ * Added section and priority for binary packages
++ * Added dependency to klogd so people who upgrade their sysklogd package
++ won't lose it anymore (closes: Bug#93922)
++ * Added code snipped to stop klogd/syslogd upon removal (closes:
++ Bug#90534, Bug#90970)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 21 Apr 2001 15:06:02 +0200
++
++sysklogd (1.4.1-1) unstable; urgency=low
++
++ * New upstream source (closes: Bug#87819, Bug#70790, Bug#32580,
++ Bug#62358, Bug#71631)
++ * Upstream: Doesn't re-set log-level if not requested (closes:
++ Bug#76170, Bug#76170, Bug#85289)
++ * Upstream: Ignore zero bytes (closes: Bug#85478, Bug#85478, Bug#41068)
++ * Upstream: Corrected documentation for `-s' (closes: Bug#87020)
++ * Upstream: test for existence of syslogd-listfiles before calling
++ them. This got lost due to 1.4.0 brokennes which was packaged and
++ removed some hours later (closes: Bug#84872, Bug#66712)
++ * Applied patch by Tommi Virtanen <tv@debian.org> splitting the package
++ into `sysklogd' and `klogd' (closes:Bug#35586, Bug#72043, Bug#74864,
++ Bug#72122)
++ * Provide / depend on virtual packages system-log-daemon
++ and linux-kernel-log-daemon (closes: Bug#67604)
++ * Applied patch from Tim Janik <timj@gtk.org> to support `-s pattern' in
++ syslogd-listfiles
++ * Transition to FHS, i.e. /usr/share/doc instead of /usr/doc and
++ /usr/share/man instead of /usr/man (closes: Bug#79250, Bug#80771)
++ * Use --exec for stopping services (closes: Bug#76757)
++ * Corrected broken character in klogd.8 (cloes: Bug#75932)
++ * Only rotate logfiles with size greater than zero. This got lost due
++ to 1.4.0 brokennes which was packaged and removed some hours later
++ (closes: Bug#74993, Bug#49824)
++ * Added another note about modificability of cronjobs (closes:
++ Bug#88741)
++ * Since klogd replaces parts of sysklogd a proper Replaces line is there
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 11 Mar 2001 22:30:53 +0100
++
++sysklogd (1.4-1) stable unstable; urgency=medium, closes=70790 32580 49824 62358 66712 71631
++
++ * Added paragraph to binary target
++ * New upstream version (closes: Bug#70790, Bug#32580, Bug#62358,
++ Bug#71631)
++ * Only rotate logfiles that have a size greater than zero (closes:
++ Bug#49824)
++ * Test for existence of syslogd-listfiles before calling it (closes:
++ Bug#66712)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 18 Sep 2000 16:02:05 +0200
++
++sysklogd (1.3-33) unstable; urgency=medium, closes=38977
++
++ * chmod 0640 /dev/xconsole regardless of its existence (closes: Bug#38977)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 12 Sep 1999 20:47:53 +0200
++
++sysklogd (1.3-32) unstable; urgency=low, closes=35408 34733 36198
++
++ * Fixed typo in syslogd-listfiles (closes: Bug#35408)
++ * Removed superflous call to utmpname() (closes: Bug#34733)
++ * Added --ignore-size and limit for rotating log files at 2MB to
++ syslogd-listfiles (closes: Bug#36198)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 23 May 1999 10:40:33 +0200
++
++sysklogd (1.3-31) frozen unstable; urgency=low, closes=28629 30093 31494 30462
++
++ * ``-m 0'' turns off -- MARK -- now. (closes: Bug#28629, Bug#31494)
++ * Changed Greg's e-mail address to represent his current one.
++ * Shortened line length for kernel logging slightly.
++ * Corrected return value of AddModule (closes: Bug#30093)
++ * Finally fixed an error with `-a' processing, thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#30462)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 19 Jan 1999 23:56:07 +0100
++
++sysklogd (1.3-30) unstable; urgency=low, closes=28128 28122 24893
++
++ * Contains more patches from Topi Miettinen.
++ * Fixed two mistakes from the most recent version
++ * Fixed fd leak problem. Thanks to Topi for detecting it
++ * Ouch! Looks like the released package again is broken. It worked
++ locally.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 18 Oct 1998 20:38:22 +0200
++
++sysklogd (1.3-29) unstable; urgency=low, closes=24893
++
++ * Re-Applied patch provided vom Topi Miettinen with regard to the people
++ from OpenBSD. This provides the additional '-a' argument used for
++ specifying additional UNIX domain sockets to listen to. This is been
++ used with chroot()'ed named's for example. An example is described at
++ http://www.psionic.com/papers/dns.html. This time the patch doesn't
++ stall syslogd. Thanks to Topi Miettinen <tom@medialab.sonera.net>
++ (closes: Bug#24893)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sat, 17 Oct 1998 20:23:00 +0200
++
++sysklogd (1.3-28) unstable; urgency=low
++
++ * Added manpage for syslog-facility, also written by Raphal Hertzog
++ * Reverted support for multiple Unix domain sockets since it caused
++ syslogd to not accept more sockets after a certain (undefinitve)
++ time. (opens: Bug#24893)
++ * The complete code is still present, search for `Bug#24893'
++ * Commented out `-a' in the syslogd.8 manpage
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Oct 1998 19:35:26 +0200
++
++sysklogd (1.3-27) frozen unstable; urgency=low, closes=21212 11917 21606 24609 25835 26015 24648 20135 23502 24893 24894
++
++ * Postinst will create files with correct file modes (closes: Bug#21212)
++ * Made /dev/xconsole mode 0640 and root.adm (closes: Bug#11917)
++ * Changed priority of exit message from LOG_ERR to LOG_INFO (closes
++ Bug#21606)
++ * The code now is compilable without SYSLOG_INET again. Thanks to
++ Enrik Berkhan <enrik@rzstud1.akk.org>.
++ * Added support for TESTING define which will turn syslogd into
++ stdio-mode used for debugging.
++ * Reworked the initialization/fork code. Now the parent
++ process activates a signal handler which the daughter process will
++ raise if it is initialized. Only after that one the parent process
++ may exit. Otherwise klogd might try to flush its log cache while
++ syslogd can't receive the messages yet. (closes: Bug#24609)
++ * Fixed typo in /etc/syslog.conf (closes: Bug#25835)
++ * Modified pre- and postinst scripts to set +e before executing external
++ scripts. This is a workaround against a bug in bash (Bug#23857).
++ Bash exports the errexit (-e) flag if allexport (-a) has been set. The
++ bug occurs even if allexport is being _re_set. (closes: Bug#26015)
++ * Modified ksym::CheckVersion()
++ . Use shift to decode the kernel version
++ . Compare integers of kernel version
++ . extract major.minor.patch from utsname.release via sscanf()
++ The reason lays in possible use of kernel flavours which modify
++ utsname.release but no the Version_ symbol. (closes: Bug#20135)
++ * Corrected klogd.c in order to support the new address space for late
++ 2.1 kernels. Some support for unsigned long in contrary to int was
++ missing. (closes: Bug#23502)
++ * Applied patch provided vom Topi Miettinen with regard to the people
++ from OpenBSD. This provides the additional '-a' argument used for
++ specifying additional UNIX domain sockets to listen to. This is been
++ used with chroot()'ed named's for example. An example is described at
++ http://www.psionic.com/papers/dns.html. Thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#24893)
++ * Added support for `ftp' log facility which was introduced by glibc
++ version 2. Thanks to netgod and Flood from #Debian.
++ * Code cleanups with regard to bsd -> posix transition and stronger
++ security (buffer length checking). Thanks to Topi Miettinen
++ <tom@medialab.sonera.net> (closes: Bug#24894)
++ . index() --> strchr()
++ . sprintf() --> snprintf()
++ . bcopy() --> memcpy()
++ . bzero() --> memset()
++ . UNAMESZ --> UT_NAMESIZE
++ . sys_errlist --> strerror()
++ * Added support for setutent()/getutent()/endutend() instead of binary
++ reading the UTMP file. This is the the most portable way. Thanks to
++ Topi Miettinen <tom@medialab.sonera.net>.
++ * Avoid logging of SIGCHLD when syslogd is in the process of exiting and
++ closing its files. Again thanks to Topi.
++ * Added /usr/sbin/syslog-facility, written by Raphal Hertzog
++ <hertzog@debian.org>. It opens a way for other packages to add and
++ remove logfiles/facilities.
++ * Modified printline() to support 8bit characters - such as russion
++ letters. Thanks to Vladas Lapinskas <lapinskas@mail.iae.lt>.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Mon, 12 Oct 1998 22:24:04 +0200
++
++sysklogd (1.3-26) frozen unstable; urgency=low, closes=20903 20765 20556 20507 20647 20220
++
++ * Fixed typos in syslogd-listfiles(1), thanks to Francesco Potorti`
++ <F.Potorti@cnuce.cnr.it> (closes: Bug#20903)
++ * Corrected email address for Shane Alderton (closes: Bug#20765)
++ * Fixed manpage to not reflect reverse implementated SIGALRM signal
++ handler (closes: Bug#20647)
++ * Modified behaviour with including <sys/module.h> (closes: Bug#20556)
++ * Added correct prototype for llseek() (closes: Bug#20507, Bug#20220)
++ * Added more log information if problems occurr while reading a system
++ map file.
++ * Modified System.map read function to try all possible map files until
++ a file with matching version is found.
++ * Added Debian release to klogd
++ * Switched to fgets() as gets() is not buffer overrun secure.
++ * Modified loop for detecting the correct system map.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 16 Apr 1998 19:28:05 +0200
++
++sysklogd (1.3-25) unstable; urgency=low, closes=19454 19145 1914
++
++ * Corrected permissions on packaging control files (closes: Bug#19414)
++ * Removed kill statements from rc file (closes: Bug#19454, Bug#19145)
++ * Applied patch from Pedro Manuel Rodrigues <pmanuel@cindy.fe.up.pt> to
++ let klogd work togther with >2GB address space.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 19 Mar 1998 23:56:09 +0100
++
++sysklogd (1.3-24) unstable; urgency=low, closes=18124
++
++ * Fixed tiny mistake which refused the MARK facility to work properly
++ (closes: Bug#18124)
++ * Corrected Topi's patch as it prevented forwarding during startup due
++ to an unknown LogPort.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Feb 1998 13:19:27 +0100
++
++sysklogd (1.3-23) unstable; urgency=low
++
++ * Corrected FSF's address (lintian)
++ * Implemented force-reload (lintian)
++ * Standards-Version: 2.4.0.0
++ * Applied patch from Topi Miettinen <Topi.Miettinen@ml.tele.fi> to open
++ the UDP socket only if it is really needed.
++ * Updated sysklogd(8) manpage
++ * Added notes to mailing list
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 24 Feb 1998 00:39:10 +0100
++
++sysklogd (1.3-22) unstable; urgency=low, closes=17192 17385 17601
++
++ * Included a real fix to the %'s problem (fixes: Bug#17192)
++ * Another patch for Linux/alpha by Christopher C Chimelis
++ <chris@classnet.med.miami.edu> (fixes: Bug#17385)
++ * Removed killall-statement from postinst. Thanks to James Troup for
++ reporting it.
++ * Added chdir("/") to both daemons (fixes: Bug#17601)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 29 Jan 1998 21:56:40 +0100
++
++sysklogd (1.3-21) unstable; urgency=low, closes=17159
++
++ * Fixed small typo in syslogd-listfiles (Bug#17159)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 15 Jan 1998 23:22:57 +0100
++
++sysklogd (1.3-20) unstable; urgency=low, closes=17000
++
++ * Corrected some code that caused klogd to dump core when receiving some
++ special messages from 2.1.78. Thanks to Chu-yeon Park
++ <kokids@doit.ajou.ac.kr> for informing me.
++ * Fixed bug that caused klogd to die if there is no System.map
++ available.
++ * Added -x switch to omit EIP translation and System.map evaluation.
++ Thanks to Florian La Roche <florian@knorke.saar.de>
++ * Fixed small bugs in F_FORW_UNKN meachanism. Thanks to Torsten Neumann
++ <torsten@londo.rhein-main.de> for pointing me to it.
++ * Fixed problem with klogd not being able to be built on a kernel newer
++ than 2.1.18. Worked in a patch from Alessandro Suardi <asuardi@uninetcom.it>
++ * Fixed small typo in syslogd-listfiles
++ * Corrected debug output concerning remote receiption
++ * Removed race condition in syslogd-listfiles
++ * Modified logfile detection routine to take care of double listed
++ logfiles. Thanks to Roman Hodek <roman@debian.org> for providing an
++ appropriate patch. (Bug#17000)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Tue, 13 Jan 1998 01:59:56 +0100
++
++sysklogd (1.3-19) unstable; urgency=low, closes=16643 16769 16796 16828 16148 14776
++
++ * Used better regexp for detecting sensitive data. Thanks a lot to
++ Susanne Schmidt <banshee@linux.de> for providing it.
++ * Fixed ownership of /usr/doc/sysklogd/copyright and readme (Bug#16643)
++ * Corrected Standards-Version to 2.3.0.1 (Bug#16769)
++ * Reworked one line of an older patch because it prevented syslogd from
++ binding the socket with the result that no messages were forwarded to
++ other hosts.
++ * Changed the behaviour of klogd when receiving a terminate signal. Now
++ the program terminates immediately instead of completing the receipt of
++ a kernel message. (Bug#16796, Bug#16828, Bug#16148)
++ * Noticed a bug which was closed by 1.3-18 (Bug#14776)
++ * Changed Maintainer address to joey@debian.org
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 9 Jan 1998 00:58:36 +0100
++
++sysklogd (1.3-18) unstable; urgency=low, closes=11731 12009 13506 14329 14521 14610 15840 15336
++
++ * Added test in postinst if user and group exist. Christoph Lameter run
++ into trouble upgrading a RedHat system.
++ * Fixed little mistake which prevented klogd from accepting a console
++ log level of 8 to get <7> alias KERN_DEBUG displayed.
++ * Linked against libc6 (Bug#11731)
++ * Added SHELL=/bin/bash to rules as Herbert Xu suggested
++ * Corrected syslog.conf(5) manpage
++ * syslogd resets the ignore priority flag now. Thanks to Herbert
++ Thielen. (Bug#12009)
++ * Fixed bug that caused syslogd to write into wrong files under some
++ race conditions. Thanks to Herbet Xu. (Bug#13506)
++ * /var/log/auth.log will only be touch if needed (Bug#14329)
++ * debian/conffiles is treated like a document (Bug#14521)
++ * Added script for generic logfile detection and rotation and included
++ that in cron scripts, included also its manpage (Bug#14610)
++ * Modified restart messages in /etc/init.d/sysklogd (Bug#15840)
++ * klogd will first try to load /boot/System.map-$ver, then
++ /boot/System.map, then /System.map-$ver and after that /System.map
++ * Modified ExpandKadds() because there were some problems accessing
++ memory r/w. (Bug#15336)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Fri, 2 Jan 1998 03:31:09 +0100
++
++sysklogd (1.3-17) unstable; urgency=low
++
++ * Fixed stupid bug which caused klogd to eat up 90% cpu time.
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Wed, 25 Jun 1997 15:22:29 +0200
++
++sysklogd (1.3-16) unstable; urgency=low
++
++ * Included Miquel's patches which allows continuation line support
++ for syslogd. Corrected syslog.conf(5) manpage. Improved
++ syslog.conf file. Thanks to Miquel van Smoorenburg
++ <miquels@cistron.nl> for dropping in these patches.
++ * Added /var/log/syslog as a daily rotated logfile which contains
++ everything except auth.*
++ * ksym.c: Added #1 and #2 to some error messages in order to being able
++ to divide them (ulmo@Q.Net)
++ * Improved postinst script (Thanks to Miquel van Smorrenborg for ideas)
++ * klogd now also reads /System.map-<version> and
++ /boot/System.map-<version> (Bug#7210)
++ * syslogd,klogd: made DEBRELEASE optional to support a non-Debian
++ release as well.
++ * Corrected freeing of logfiles.
++ * Removed delay of 10 seconds. (Bug#8104, Bug#8400)
++ * Modified permissions of logfiles from 644 to 640 and 640 to 600 for
++ security aspects.
++ * Corrected syslog.conf(5) manpage (Bug#9779)
++ * Found upstream patches for 1.3.1 to 1.3.3 which are now included.
++ These also include some patches for glibc and Alpha.
++ * Included patch to modules package to support better debugging
++ * Added patch from Leland Olds which fixes a buffer overrun and improved
++ symbol lookup. (Bug#4875)
++ * Some more glibc patches made by Michael Alan Dorman
++ <mdorman@debian.org>. (Bug#8362, Bug#8763)
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Sun, 15 Jun 1997 19:37:13 +0200
++
++sysklogd (1.3-15) unstable; urgency=low
++
++ * Added /var/log/mail.log as a logfile
++ * Corrected Description field (Bug#7624)
++ * Added read statement in postinst script (Bug#8243)
++
++ -- Martin Schulze <joey@infodrom.north.de> Wed, 26 Mar 1997 13:32:24 +0100
++
++sysklogd (1.3-14) unstable; urgency=low
++
++ * Debugging syslogd now shows facility.priority
++ * Minor fixes
++ * Modified syslogd.c to not kill itself which confuses bash 2.0
++
++ -- Martin Schulze <joey@infodrom.north.de> Sun, 23 Feb 1997 12:23:55 +0100
++
++sysklogd (1.3-13) stable; urgency=low
++
++ * Made /etc/init.d/sysklogd more verbose
++ * Minor fixes
++ * Uncompressed copyright, but compressed /usr/doc/sysklogd-1.3.16/readme
++
++ -- Martin Schulze <joey@debian.org> Sat, 8 Feb 1997 14:12:29 +0100
++
++sysklogd (1.3-12) stable; urgency=HIGH
++
++ * Converted to Standards-Version 2.1.1.2
++ * init.d/sysklogd: added "sleep 1"
++ * syslogd won't hassle anymore if it can't access logfils. Patched by
++ me. This adresses Bug#5865.
++ * /etc/init.d/sysklogd: Modified so that one can use commandline
++ arguments for both syslogd and klogd.
++ * debian.rules: Installed ChangeLog
++
++ -- Martin Schulze <joey@finlandia.infodrom.north.de> Thu, 30 Jan 1997 22:48:59 +0100
++
++Mon Now 25 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * modified preinst to work if /etc/init.d/sysklogd doesn't exist
++ because of a failure
++
++Mon Sep 10 10:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * ksyms.c: klogd will first look at /System.map (Bug#4403, #4459)
++
++Fri Aug 16 21:36:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * debian.rules: Changed permissions for syslogd and klogd to 755
++ (Bug#4049)
++
++Mon Aug 12 10:40:05 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Corrected permissions of documentation. Thanks to Dan
++ Quinlan. (Bug#4090)
++
++Mon Aug 5 22:47:40 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * syslogd.c: If you haven't set your domainname, syslogd will dump
++ core upon startup. Fixed. Thanks to Leeland Lucius
++ <llucius@millcomm.com> for reporting and patching it. (Bug#3526)
++
++ * /etc/init.d/sysklogd, /etc/cron.weekly/sysklogd: slight
++ improvements. Thanks to Bernd Eckenfels <ecki@tapac.inka.de>.
++
++Fri Aug 2 11:03:30 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * modified weekly cron script, thanks to Todd Tyrone Fries <todd@miango.com>
++
++Fri Jun 14 10:42:26 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * ksyms.c: increased the size of vstring, because since Linux
++ major versions are decoded with n * 65536 and we now have 2.0, the
++ field was too short.
++
++Tue May 28 01:02:01 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * syslogd.c: Corrected behaviour of blocking pipes - i.e. the
++ whole system hung. Michael Nonweiler <mrn20@hermes.cam.ac.uk> has
++ sent us a patch to correct this. A new logfile type F_PIPE has
++ been introduced.
++
++Thu May 23 08:39:54 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * postinst: Corrected killall-statement, Thanks to Miquel van
++ Smoorenborg for the hint
++
++Mon May 20 00:14:35 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * postinst: added a killall to remove an existing syslogd. It
++ could exist because of Bug#2836.
++
++Sun May 12 13:36:55 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * removed auth.* from /dev/xconsole
++
++ * klogd won't log old messages anymore (Bug#2337)
++ I have applied the patch from Chris Hanson.
++
++ * I have put another start-stop-daemon call in the startup script
++ so the configs are reloaded on startup. This should
++ help. (Bug#2552)
++
++ * Sysklogd takes care of this and createst /dev/xconsole if it
++ doesn't exist during installation. (Bug#2683)
++
++ * I have corrected permissions of /dev/xconsole. (Bug#2837)
++
++ * defined /etc/cron.weekly/sysklogd as a conffile (Bug#2950, Bug#2960)
++
++ * introduced two binary packages: syslogd and sysklogd which
++ exclude each other
++
++Sun Apr 21 17:56:03 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Corrected preinst (Bug#2722, Bug#2725, Bug#2726)
++
++ * Linked against libc 5.2.18 (Bug#2723, Bug#2725)
++
++ * Corrected control file to fit with newer dpkgs
++
++Wed Apr 17 21:40:56 1996 Martin Schulze <joey@finlandia.infodrom.north.de>
++
++ * Added Debian packaging information
++
++
+--- sysklogd-1.4.1.orig/debian/conffiles
++++ sysklogd-1.4.1/debian/conffiles
+@@ -0,0 +1,5 @@
++/etc/default/syslogd
++/etc/syslog.conf
++/etc/init.d/sysklogd
++/etc/cron.daily/sysklogd
++/etc/cron.weekly/sysklogd
+--- sysklogd-1.4.1.orig/debian/conffiles.klogd
++++ sysklogd-1.4.1/debian/conffiles.klogd
+@@ -0,0 +1,2 @@
++/etc/default/klogd
++/etc/init.d/klogd
+--- sysklogd-1.4.1.orig/debian/control
++++ sysklogd-1.4.1/debian/control
+@@ -0,0 +1,32 @@
++Source: sysklogd
++Section: admin
++Priority: important
++Maintainer: Martin Schulze <joey@debian.org>
++Standards-Version: 3.5.6.0
++
++Package: sysklogd
++Architecture: any
++Section: admin
++Depends: ${shlibs:Depends}, klogd | linux-kernel-log-daemon
++Conflicts: syslogd
++Provides: syslogd, system-log-daemon
++Replaces: syslogd
++Description: System Logging Daemon
++ This package implements the system log daemon, which is an enhanced
++ version of the standard Berkeley utility program. It is responsible
++ for providing logging of messages received from programs and facilities
++ on the local host as well as from remote hosts.
++
++Package: klogd
++Architecture: any
++Section: admin
++Depends: ${shlibs:Depends}, sysklogd | system-log-daemon
++Conflicts: sysklogd (<= 1.3-33)
++Provides: linux-kernel-log-daemon
++Replaces: sysklogd
++Description: Kernel Logging Daemon
++ The klogd daemon listens to kernel message sources and is responsible
++ for prioritizing and processing operating system messages. The klogd
++ daemon can run as a client of syslogd or optionally as a standalone
++ program. Klogd can now be used to decode EIP addresses if it can
++ determine a System.map file.
+--- sysklogd-1.4.1.orig/debian/copyright
++++ sysklogd-1.4.1/debian/copyright
+@@ -0,0 +1,50 @@
++This is the Debian GNU/Linux prepackaged version of Linux' system and
++kernel logging daemons.
++
++This package was put together by Martin Schulze <joey@debian.org>,
++from sources obtained from:
++
++ http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.4.1.tar.gz
++
++Recent versions are Debian versions that may be also be found at
++
++ http://www.infodrom.org/projects/sysklogd/
++
++syslogd is under Berkeley copyright, klogd is under GPL.
++
++ Copyright (C) 1994-96 Greg Wettstein <greg@wind.enjellic.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; version 2 dated June, 1991.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++On Debian GNU/Linux systems, the complete text of the GNU General
++Public License can be found in `/usr/share/common-licenses/GPL'.
++
++There is a mailing list covering this package and syslog in general.
++The lists address is infodrom-sysklogd@lists.infodrom.org .
++
++To subscribe to this list,
++
++ . send a mail to infodrom-sysklogd-request@lists.infodrom.org with
++ the word "subscribe" as subject, or
++
++ . send a mail to majordomo@lists.infodrom.org with the body of
++ "subscribe infodrom-sysklogd".
++
++The list will be archived publically at
++<http://www.infodrom.org/Mail-Archive/infodrom-sysklogd>.
++
++The source of the Debian package is managed through CVS. It is publically
++available at <http://cvs.infodrom.org/sysklogd/?cvsroot=debian> or as
++<:pserver:anonymous@cvs.infodrom.org/var/cvs/debian/sysklogd/>.
++
+--- sysklogd-1.4.1.orig/debian/cron.daily
++++ sysklogd-1.4.1/debian/cron.daily
+@@ -0,0 +1,39 @@
++#! /bin/sh
++
++# sysklogd Cron script to rotate system log files daily.
++#
++# If you want to rotate other logfiles daily, edit
++# this script. An easy way is to add files manually,
++# to add -a (for all log files) to syslogd-listfiles and
++# add some grep stuff, or use the -s pattern argument to
++# specify files that must not be listed.
++#
++# This is a configration file. You are invited to edit
++# it and maintain it on your own. You'll have to do
++# that if you don't like the default policy
++# wrt. rotating logfiles (i.e. with large logfiles
++# weekly and daily rotation may interfere). If you edit
++# this file and don't let dpkg upgrade it, you have full
++# control over it. Please read the manpage to
++# syslogd-listfiles.
++#
++# Written by Martin Schulze <joey@debian.org>.
++# $Id: cron.daily,v 1.13 2006-09-18 09:42:30 joey Exp $
++
++test -x /usr/sbin/syslogd-listfiles || exit 0
++test -x /sbin/syslogd || exit 0
++test -f /usr/share/sysklogd/dummy || exit 0
++
++set -e
++
++cd /var/log
++for LOG in `syslogd-listfiles`
++do
++ if [ -s $LOG ]; then
++ savelog -g adm -m 640 -u root -c 7 $LOG >/dev/null
++ fi
++done
++
++# Restart syslogd
++#
++/etc/init.d/sysklogd reload-or-restart > /dev/null
+--- sysklogd-1.4.1.orig/debian/cron.daily.klogd
++++ sysklogd-1.4.1/debian/cron.daily.klogd
+@@ -0,0 +1,47 @@
++#! /bin/sh
++
++binpath=/sbin/klogd
++pidfile=/var/run/klogd.pid
++
++test -x $binpath || exit 0
++
++
++running()
++{
++ # No pidfile, probably no daemon present
++ #
++ if [ ! -f $pidfile ]
++ then
++ return 1
++ fi
++
++ pid=`cat $pidfile`
++
++ # No pid, probably no daemon present
++ #
++ if [ -z "$pid" ]
++ then
++ return 1
++ fi
++
++ if [ ! -d /proc/$pid ]
++ then
++ return 1
++ fi
++
++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
++
++ # No syslogd?
++ #
++ if [ "$cmd" != "$binpath" ]
++ then
++ return 1
++ fi
++
++ return 0
++}
++
++if ! running
++then
++ sh /etc/init.d/klogd start > /dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/cron.weekly
++++ sysklogd-1.4.1/debian/cron.weekly
+@@ -0,0 +1,38 @@
++#! /bin/sh
++
++# sysklogd Cron script to rotate system log files weekly.
++#
++# If you want to rotate logfiles daily, edit
++# this script and /etc/cron.daily/sysklogd to get
++# the logfiles in sync (they must not occur in both
++# files).
++#
++# This is a configration file. You are invited to edit
++# it and maintain it on your own. You'll have to do
++# that if you don't like the default policy
++# wrt. rotating logfiles (i.e. with large logfiles
++# weekly and daily rotation may interfere). If you edit
++# this file and don't let dpkg upgrade it, you have full
++# control over it. Please read the manpage to
++# syslogd-listfiles.
++#
++# Written by Ian A. Murdock <imurdock@debian.org>.
++# $Id: cron.weekly,v 1.10 2004-03-31 16:18:15 joey Exp $
++
++test -x /usr/sbin/syslogd-listfiles || exit 0
++test -x /sbin/syslogd || exit 0
++test -f /usr/share/sysklogd/dummy || exit 0
++
++set -e
++
++cd /var/log
++for LOG in `syslogd-listfiles --weekly`
++do
++ if [ -s $LOG ]; then
++ savelog -g adm -m 640 -u root -c 4 $LOG >/dev/null
++ fi
++done
++
++# Restart syslogd
++#
++/etc/init.d/sysklogd reload-or-restart > /dev/null
+--- sysklogd-1.4.1.orig/debian/default
++++ sysklogd-1.4.1/debian/default
+@@ -0,0 +1,13 @@
++#
++# Top configuration file for syslogd
++#
++
++#
++# Full documentation of possible arguments are found in the manpage
++# syslogd(8).
++#
++
++#
++# For remote UDP logging use SYSLOGD="-r"
++#
++SYSLOGD=""
+--- sysklogd-1.4.1.orig/debian/default.klogd
++++ sysklogd-1.4.1/debian/default.klogd
+@@ -0,0 +1,15 @@
++#
++# top configuration file for klogd
++#
++
++#
++# Full documentation of possible arguments are found in the manpage
++# klogd(8).
++#
++
++#
++# Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map
++# -c 4 to alter the kernel console log level (deprecated)
++# use sysctl instead
++#
++KLOGD="-x"
+--- sysklogd-1.4.1.orig/debian/dummy
++++ sysklogd-1.4.1/debian/dummy
+@@ -0,0 +1,4 @@
++Do not remove this file or your log files won't be rotated anymore.
++This is a control file to ensure that the sysklogd package is
++installed so that the cronjobs don't have to parse the dpkg database
++for each run.
+--- sysklogd-1.4.1.orig/debian/postinst
++++ sysklogd-1.4.1/debian/postinst
+@@ -0,0 +1,83 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "configure" ]
++then
++ case $2 in
++ 1.2-*)
++cat<<EOT
++The default behaviour of syslogd has altered from 1.2 to 1.3. By default
++*no* messages from the UDP port are accepted.
++
++Read the documentation in /usr/doc/sysklogd carefully. Some important
++things have been changed!
++
++Press [Enter] to continue
++EOT
++ read xyz
++ ;;
++ esac
++fi
++
++if [ "$1" = "configure" ]
++then
++
++ # Prepare for takeover of the host
++ if [ -z "$2" ]
++ then
++ if [ ! -e /var/log/news ] \
++ && grep -q '^[^#].*/var/log/news/' /etc/syslog.conf \
++ && grep -q ^news: /etc/passwd \
++ && grep -q ^news: /etc/group
++ then
++ mkdir /var/log/news
++ chmod 2755 /var/log/news
++ chown news:news /var/log/news
++ fi
++
++ # Create logfiles with correct file modes
++ if [ -z "$2" ]
++ then
++ for LOG in `syslogd-listfiles --all`
++ do
++ if [ ! -f $LOG ]
++ then
++ touch $LOG
++ fi
++ chown root:adm $LOG
++ chmod 640 $LOG
++ done
++ fi
++ fi
++
++ if [ -f /etc/init.d/sysklogd -a -n "$2" ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++ set -e
++ fi
++
++ update-rc.d sysklogd defaults 10 90 >/dev/null
++
++ # restarting daemon
++ #
++ if [ -f /etc/init.d/sysklogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd start
++ else
++ sh /etc/init.d/sysklogd start
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/postinst.klogd
++++ sysklogd-1.4.1/debian/postinst.klogd
+@@ -0,0 +1,36 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "configure" ]
++then
++ if [ -f /etc/init.d/klogd -a -n "$2" ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++ set -e
++ fi
++
++ update-rc.d klogd defaults 11 89 >/dev/null
++
++ # restarting daemon
++ #
++ if [ -f /etc/init.d/klogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd start
++ else
++ sh /etc/init.d/klogd start
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/postrm
++++ sysklogd-1.4.1/debian/postrm
+@@ -0,0 +1,8 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "purge" ]
++then
++ update-rc.d sysklogd remove >/dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/postrm.klogd
++++ sysklogd-1.4.1/debian/postrm.klogd
+@@ -0,0 +1,8 @@
++#! /bin/sh
++
++set -e
++
++if [ "$1" = "purge" ]
++then
++ update-rc.d klogd remove >/dev/null
++fi
+--- sysklogd-1.4.1.orig/debian/preinst
++++ sysklogd-1.4.1/debian/preinst
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++set -e
++
++dpkg --assert-support-predepends
++
++if [ "$1" = "upgrade" -a -f /etc/init.d/sysklogd ]; then
++ if [ -f /etc/init.d/sysklogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/preinst.klogd
++++ sysklogd-1.4.1/debian/preinst.klogd
+@@ -0,0 +1,21 @@
++#! /bin/sh
++
++set -e
++
++dpkg --assert-support-predepends
++
++if [ "$1" = "upgrade" -a -f /etc/init.d/klogd ]; then
++ if [ -f /etc/init.d/klogd ]
++ then
++ set +e
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++ set -e
++ fi
++fi
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/prerm
++++ sysklogd-1.4.1/debian/prerm
+@@ -0,0 +1,19 @@
++#! /bin/sh
++
++set -e
++
++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/sysklogd ]
++then
++ rm -f /usr/doc/sysklogd
++fi
++
++if [ "$1" = "purge" -o "$1" = "remove" ]
++then
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d sysklogd stop
++ else
++ sh /etc/init.d/sysklogd stop
++ fi
++fi
++
+--- sysklogd-1.4.1.orig/debian/prerm.klogd
++++ sysklogd-1.4.1/debian/prerm.klogd
+@@ -0,0 +1,19 @@
++#! /bin/sh
++
++set -e
++
++if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/klogd ]
++then
++ rm -f /usr/doc/klogd
++fi
++
++if [ "$1" = "purge" -o "$1" = "remove" ]
++then
++ if [ -x /usr/sbin/invoke-rc.d ]
++ then
++ invoke-rc.d klogd stop
++ else
++ sh /etc/init.d/klogd stop
++ fi
++fi
++
+--- sysklogd-1.4.1.orig/debian/rc
++++ sysklogd-1.4.1/debian/rc
+@@ -0,0 +1,112 @@
++#! /bin/sh
++# /etc/init.d/sysklogd: start the system log daemon.
++
++### BEGIN INIT INFO
++# Provides: syslog
++# Required-Start: $local_fs $network $time
++# Required-Stop: $local_fs $network $time
++# Default-Start: 2 3 4 5
++# Default-Stop: S 0 1 6
++# Short-Description: System logger
++### END INIT INFO
++
++PATH=/bin:/usr/bin:/sbin:/usr/sbin
++
++pidfile=/var/run/syslogd.pid
++binpath=/sbin/syslogd
++
++test -x $binpath || exit 0
++
++test ! -r /etc/default/syslogd || . /etc/default/syslogd
++
++. /lib/lsb/init-functions
++
++create_xconsole()
++{
++ # Only proceed if not using devfsd
++ if [ -e /dev/.devfsd ] \
++ || ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
++ then
++ return
++ fi
++
++ if [ ! -e /dev/xconsole ]; then
++ mknod -m 640 /dev/xconsole p
++ else
++ chmod 0640 /dev/xconsole
++ fi
++ chown root:adm /dev/xconsole
++}
++
++running()
++{
++ # No pidfile, probably no daemon present
++ #
++ if [ ! -f $pidfile ]
++ then
++ return 1
++ fi
++
++ pid=`cat $pidfile`
++
++ # No pid, probably no daemon present
++ #
++ if [ -z "$pid" ]
++ then
++ return 1
++ fi
++
++ if [ ! -d /proc/$pid ]
++ then
++ return 1
++ fi
++
++ cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
++
++ # No syslogd?
++ #
++ if [ "$cmd" != "$binpath" ]
++ then
++ return 1
++ fi
++
++ return 0
++}
++
++case "$1" in
++ start)
++ log_begin_msg "Starting system log daemon..."
++ create_xconsole
++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
++ log_end_msg $?
++ ;;
++ stop)
++ log_begin_msg "Stopping system log daemon..."
++ start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
++ log_end_msg $?
++ ;;
++ reload|force-reload)
++ log_begin_msg "Reloading system log daemon..."
++ start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
++ log_end_msg $?
++ ;;
++ restart)
++ log_begin_msg "Restarting system log daemon..."
++ start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
++ start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
++ log_end_msg $?
++ ;;
++ reload-or-restart)
++ if running
++ then
++ $0 reload
++ else
++ $0 start
++ fi
++ ;;
++ *)
++ echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
++ exit 1
++esac
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/rc.klogd
++++ sysklogd-1.4.1/debian/rc.klogd
+@@ -0,0 +1,46 @@
++#! /bin/sh
++# /etc/init.d/klogd: start the kernel log daemon.
++
++### BEGIN INIT INFO
++# Provides: klogd
++# Required-Start: $time syslog
++# Required-Stop: $time syslog
++# Default-Start: 2 3 4 5
++# Default-Stop: S 0 1 6
++# Short-Description: kernel logger
++### END INIT INFO
++
++PATH=/bin:/usr/bin:/sbin:/usr/sbin
++
++pidfile=/var/run/klogd.pid
++binpath=/sbin/klogd
++
++test -f $binpath || exit 0
++
++test ! -r /etc/default/klogd || . /etc/default/klogd
++
++. /lib/lsb/init-functions
++
++case "$1" in
++ start)
++ log_begin_msg "Starting kernel log daemon..."
++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD
++ log_end_msg $?
++ ;;
++ stop)
++ log_begin_msg "Stopping kernel log daemon..."
++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd
++ log_end_msg $?
++ ;;
++ restart|force-reload)
++ log_begin_msg "Reloading kernel log daemon..."
++ start-stop-daemon --stop --retry TERM/1/TERM/1/TERM/4/KILL --quiet --pidfile $pidfile --name klogd
++ start-stop-daemon --start --quiet --pidfile $pidfile --name klogd --startas $binpath -- $KLOGD
++ log_end_msg $?
++ ;;
++ *)
++ echo "Usage: /etc/init.d/klogd {start|stop|restart|force-reload}"
++ exit 1
++esac
++
++exit 0
+--- sysklogd-1.4.1.orig/debian/readme
++++ sysklogd-1.4.1/debian/readme
+@@ -0,0 +1,44 @@
++
++Additional information about system logging
++-------------------------------------------
++
++ . When logging into a fifo syslogd will stop loggin into this
++ logfile if no process is reading it and thus the buffer is filled
++ up. Buffer size can be adjusted through the kernel.
++
++ . When using the Perl5 Sys::Syslog module (use Sys::Syslog;) to
++ provide logging to your Perl programs, please notice that since it
++ will open a UDP connection to the local syslogd you'll need to have
++ remote receiption enabled.
++
++ Joey Hess teaches us how to change this behaviour and switch to
++ using the Unix domain socket. After the opening with "use" you
++ have to add "Sys::Syslog::setlogsock('unix');".
++
++ The default behaviour might change in future releases of Perl.
++
++Modifying the kernel console log level
++--------------------------------------
++
++ There are two ways to alter the kernel console log level. This
++ setting controls whether log messages from the kernel should appear
++ on the system console or not.
++
++ In the past, klogd had to do this with the -c parameter. Using '-c
++ 4' will set the log level of console messages to 4 and only display
++ warnings and errors but not regular debug or information messages.
++
++ This behaviour is deprecated and hencely not enforced anymore via
++ the RC script of klogd. Instead sysctl(8) should be used as
++ interface to various kernel variables. These can be stored
++ non-volatile in /etc/sysctl.conf.
++
++ The prevent the kernel to flood the system console and to achieve
++ the same behaviour of '-c 4' simply add the following to the
++ configuration file and let sysctl set this kernel parameter upon
++ system boot.
++
++ kernel/printk = 4 4 1 7
++
++ More information can be found in Documentation/sysctl/kernel.txt in
++ the kernel source and proc(5).
+--- sysklogd-1.4.1.orig/debian/rules
++++ sysklogd-1.4.1/debian/rules
+@@ -0,0 +1,172 @@
++#! /usr/bin/make -f
++
++# Copyright 1994-98,2001 joey@infodrom.org (Martin Schulze)
++#
++# 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; version 2 dated June, 1991.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program; if not, write to the Free Software
++# Foundation Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
++#
++SHELL=/bin/bash
++
++# The name and version of the source
++#
++source = $(shell grep "^Source: " debian/control|head -n 1|sed 's/Source: \(.*\)/\1/g')
++package = $(shell grep "^Package: " debian/control|head -n 1|sed 's/Package: \(.*\)/\1/g')
++version = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*(\(.*\)\-[^\-]*).*/\1/g')
++revision = $(shell grep "^$(source) " debian/changelog|head -n 1 |sed 's/.*([^\-]*\-\(.*\)).*/\1/g')
++
++installbin = install -g root -o root -m 755
++installdoc = install -g root -o root -m 644
++
++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
++CFLAGS = -g -O2 -Wall $(shell getconf LFS_CFLAGS)
++else
++CFLAGS = -O2 -Wall $(shell getconf LFS_CFLAGS)
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++STRIP = -s
++endif
++
++build:
++ $(MAKE) DEB="-DDEBRELEASE=\\\"$(revision)\\\"" \
++ CFLAGS="$(CFLAGS) -DSYSV -fomit-frame-pointer -fno-strength-reduce" \
++ LDFLAGS=""
++ pod2man --section=8 --lax --center="Debian GNU/Linux" \
++ --release="Debian Project" debian/syslog-facility.pod \
++ > syslog-facility.8
++ (cat README.linux; printf "\n\n"; cat README.1st; \
++ printf "\n\nThe following important changes have been reported by the developers:\n\n"; \
++ cat NEWS debian/readme) \
++ > readme.txt
++ (cat debian/copyright; \
++ printf "Syslogd stays under the following copyright:\n\n"; \
++ sed -e '/^$$/,$$d' < syslogd.c; \
++ printf "\nKlogd has the following copyright notice:\n\n"; \
++ sed -e '/^$$/,$$d' < klogd.c ) \
++ > copyright
++ touch stamp-build
++
++clean: debclean
++ rm -f stamp-build
++ $(MAKE) clobber
++ rm -rf *~ debian/*~ syslog-facility.8 readme.txt copyright
++
++debclean:
++# Cleans debian binary directories to allow binary creation
++ rm -rf debian/tmp.sysklogd debian/tmp.klogd
++ rm -f debian/{files,substvars}
++
++binary-indep:
++# Nothing to be done here
++
++binary-arch-sysklogd: debclean
++ test -f stamp-build || $(MAKE) -f debian/rules build
++ $(installbin) -d debian/tmp.sysklogd/DEBIAN
++ chown -R root:root debian/tmp.sysklogd
++ chmod -R g-ws debian/tmp.sysklogd
++ $(installbin) -d debian/tmp.sysklogd/usr/share/doc/$(package)
++ $(installbin) debian/{postinst,postrm,prerm} debian/tmp.sysklogd/DEBIAN/
++ $(installdoc) debian/conffiles debian/tmp.sysklogd/DEBIAN/
++ $(installdoc) debian/changelog debian/tmp.sysklogd/usr/share/doc/$(package)/changelog.Debian
++ #
++ $(installbin) -d debian/tmp.sysklogd/usr/share/$(package)
++ $(installdoc) debian/dummy debian/tmp.sysklogd/usr/share/$(package)
++ #
++ $(installdoc) copyright debian/tmp.sysklogd/usr/share/doc/$(package)/
++ $(installdoc) readme.txt debian/tmp.sysklogd/usr/share/doc/$(package)/
++ $(installdoc) CHANGES debian/tmp.sysklogd/usr/share/doc/$(package)/changelog
++ gzip -9f debian/tmp.sysklogd/usr/share/doc/$(package)/{changelog.Debian,changelog,readme.txt}
++ #
++ $(installbin) -d debian/tmp.sysklogd/{usr/,}sbin
++ $(installbin) $(STRIP) syslogd debian/tmp.sysklogd/sbin
++ $(installbin) debian/syslogd-listfiles debian/tmp.sysklogd/usr/sbin
++ $(installbin) debian/syslog-facility debian/tmp.sysklogd/usr/sbin
++ #
++ $(installbin) -d debian/tmp.sysklogd/etc/{init.d,cron.{daily,weekly},default}
++ $(installbin) debian/default debian/tmp.sysklogd/etc/default/syslogd
++ $(installbin) debian/rc debian/tmp.sysklogd/etc/init.d/sysklogd
++ $(installbin) debian/cron.weekly debian/tmp.sysklogd/etc/cron.weekly/sysklogd
++ $(installbin) debian/cron.daily debian/tmp.sysklogd/etc/cron.daily/sysklogd
++ $(installdoc) debian/syslog.conf debian/tmp.sysklogd/etc/syslog.conf
++ $(installbin) -d debian/tmp.sysklogd/var/log
++ #
++ $(installbin) -d debian/tmp.sysklogd/usr/share/man/man{5,8}
++ $(installdoc) syslog.conf.5 debian/tmp.sysklogd/usr/share/man/man5
++ $(installdoc) {sysklogd,syslogd,debian/syslogd-listfiles}.8 debian/tmp.sysklogd/usr/share/man/man8
++ $(installdoc) syslog-facility.8 debian/tmp.sysklogd/usr/share/man/man8
++ gzip -9 debian/tmp.sysklogd/usr/share/man/man?/*
++ #
++ dpkg-shlibdeps debian/tmp.sysklogd/sbin/syslogd
++ dpkg-gencontrol -psysklogd -Pdebian/tmp.sysklogd -isp
++ dpkg --build debian/tmp.sysklogd ..
++
++binary-arch-klogd: debclean
++ test -f stamp-build || $(MAKE) -f debian/rules build
++ $(installbin) -d debian/tmp.klogd/DEBIAN
++ chown -R root:root debian/tmp.klogd
++ chmod -R g-ws debian/tmp.klogd
++ $(installbin) -d debian/tmp.klogd/usr/share/doc/klogd
++ $(installbin) debian/postinst.klogd debian/tmp.klogd/DEBIAN/postinst
++ $(installbin) debian/postrm.klogd debian/tmp.klogd/DEBIAN/postrm
++ $(installbin) debian/prerm.klogd debian/tmp.klogd/DEBIAN/prerm
++ $(installdoc) debian/conffiles.klogd debian/tmp.klogd/DEBIAN/conffiles
++ $(installdoc) debian/changelog debian/tmp.klogd/usr/share/doc/klogd/changelog.Debian
++ #
++ $(installdoc) copyright debian/tmp.klogd/usr/share/doc/klogd/
++ $(installdoc) readme.txt debian/tmp.klogd/usr/share/doc/klogd/
++ $(installdoc) CHANGES debian/tmp.klogd/usr/share/doc/klogd/changelog
++ gzip -9f debian/tmp.klogd/usr/share/doc/klogd/{changelog.Debian,changelog,readme.txt}
++ $(installdoc) modutils.patch debian/tmp.klogd/usr/share/doc/klogd
++ #
++ $(installbin) -d debian/tmp.klogd/sbin
++ $(installbin) $(STRIP) klogd debian/tmp.klogd/sbin
++ #
++ $(installbin) -d debian/tmp.klogd/etc/{init.d,default}
++ $(installbin) debian/default.klogd debian/tmp.klogd/etc/default/klogd
++ $(installbin) debian/rc.klogd debian/tmp.klogd/etc/init.d/klogd
++ #
++ $(installbin) -d debian/tmp.klogd/usr/share/man/man8
++ $(installdoc) klogd.8 debian/tmp.klogd/usr/share/man/man8
++ gzip -9 debian/tmp.klogd/usr/share/man/man?/*
++ #
++ dpkg-shlibdeps debian/tmp.klogd/sbin/klogd
++ dpkg-gencontrol -pklogd -Pdebian/tmp.klogd -isp
++ dpkg --build debian/tmp.klogd ..
++
++binary-arch: binary-arch-sysklogd binary-arch-klogd
++
++binary: binary-indep binary-arch
++
++source diff:
++ @echo >&2 'source and diff are obsolete - use dpkg-source -b' or dsc; false
++
++dsc:
++ -test -d debian/tmp.sysklogd -o -d debian/tmp.klogd \
++ && $(MAKE) -f debian/rules clean
++ if [ ! -f ../$(source)_$(version).orig.tar.gz -a -f ../orig/$(source)_$(version).orig.tar.gz ]; \
++ then \
++ ln -s orig/$(source)_$(version).orig.tar.gz ../$(source)_$(version).orig.tar.gz; \
++ touch /tmp/stamp-$(source)-link; \
++ fi; \
++ cd .. && dpkg-source -b $(source)-$(version)
++ if [ -f /tmp/stamp-$(source)-link ]; then \
++ rm ../$(source)_$(version).orig.tar.gz /tmp/stamp-$(source)-link; \
++ fi
++
++checkroot:
++ $(checkdir)
++ test root = "`whoami`"
++
++dist: binary dsc
++
++.PHONY: binary binary-arch binary-indep clean checkroot
++
+--- sysklogd-1.4.1.orig/debian/syslog-facility
++++ sysklogd-1.4.1/debian/syslog-facility
+@@ -0,0 +1,140 @@
++#! /usr/bin/perl -w
++
++# Copyright 1998 Hertzog Raphal
++# You can use this script under the term of the GPL v2 or later.
++
++# 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 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, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++my $conf_file = '/etc/syslog.conf';
++
++## BUGS :
++# . This script doesn't know about multi-lines configuration (ie with '\')
++# . With a line like that "mail,local0.* /anything"
++# "syslog-facility remove local0" would remove the entire line
++# => should not be a problem since lines installed by this script
++# cannot use such syntax
++##
++
++## Nothing to modify after this line ##
++
++my $command = lc(shift);
++
++usage() if ($command !~ /^(?:set|remove)$/);
++usage() if (not scalar(@ARGV));
++
++if ($command eq "set")
++{
++ usage() if (int(scalar(@ARGV) / 2) != scalar(@ARGV) / 2);
++ # find a free localx facility
++ my $facility = get_first_free_facility();
++ # if none stop immediately
++ if ($facility eq "none") {
++ print "none\n";
++ exit 1;
++ }
++ # ok append the lines asked
++ open (CONF, ">>$conf_file") ||
++ die "Can't open $conf_file in write mode: $!\n";
++ my ($pri,$file,$line);
++ while (defined($pri = shift)) {
++ $file = shift;
++ $line = "";
++ foreach (split(/;/,$pri)) {
++ $_ =~ s/all/*/g;
++ $line .= ";" if ($line);
++ $line .= "$facility.$_";
++ }
++ $line .= "\t\t$file\n";
++ print CONF $line;
++ }
++ close CONF;
++ print "$facility\n";
++ exit 0;
++
++} elsif ($command eq "remove") {
++
++ my $facility = lc(shift);
++ my ($left,$file,$line);
++ open (CONF, $conf_file) || die "Can't open $conf_file: $!\n";
++ open (CONFNEW, ">$conf_file.new") ||
++ die "Can't open $conf_file.new in write mode: $!\n";
++ while (defined($_=<CONF>)) {
++ # Write all "simple" lines like empty lines and comments
++ if (/^\s*$/ or /^\s*#/ or /\\$/) {
++ print CONFNEW $_;
++ next;
++ }
++ # Otherwise look if the facility to remove appears in the line
++ if (/^\s*(\S+)\s+(\S+)\s*/) {
++ $left = $1; $file = $2; chomp $file;
++ # It doesn't appers => write
++ if ($left !~ /$facility/i) {
++ print CONFNEW $_;
++ next;
++ }
++ # It appears => write a new line without the localx facility
++ $line = "";
++ foreach (split(/;/,$left)) {
++ if (not /$facility/i) {
++ $line .= ";" if ($line);
++ $line .= $_;
++ }
++ }
++ next if ($line eq "");
++ $line .= "\t\t$file\n";
++ print CONFNEW $line;
++ }
++ }
++ close CONFNEW;
++ close CONF;
++ rename ("$conf_file.new", "$conf_file");
++}
++
++sub get_first_free_facility {
++
++ my @facility = (0) x 8;
++ my ($left,$fac);
++ open(CONF, $conf_file) || die "Can't open $conf_file: $!\n";
++ while(defined($_=<CONF>))
++ {
++ next if (/^\s*$/);
++ next if (/^\s*#/);
++ next if (/\\$/);
++ next if (not /^\s*(\S+)\s+(\S+)\s*$/);
++ $left = $1;
++ foreach $fac (split(/;/,$left)) {
++ $facility[$1]++ if ($fac =~ /local(\d)/i);
++ }
++ }
++ foreach $fac (0..7) {
++ return "local$fac" if ($facility[$fac] == 0);
++ }
++ return "none";
++}
++
++sub usage {
++
++ die "syslog-facility - Copyright (c) 1998 Hertzog Raphal\n"
++ ."Usage : $0 set <set_of_priority> <logfile> ... \n"
++ ." it returns the 'LOCALx' string you have the right to use.\n"
++ ." $0 remove <facility>\n"
++ ."Example: $0 set all /var/log/all\n"
++ ." $0 set all\\;\\!=info /var/log/all-without-info\n"
++ ." $0 set =err /var/log/errors =warning /var/log/warn\n"
++ ." $0 remove LOCAL1\n";
++}
++
++
++
+--- sysklogd-1.4.1.orig/debian/syslog-facility.pod
++++ sysklogd-1.4.1/debian/syslog-facility.pod
+@@ -0,0 +1,58 @@
++=head1 NAME
++
++syslog-facility - Setup and remove LOCALx facility for sysklogd
++
++=head1 SYNOPSIS
++
++B<syslog-facility> B<set> I<set_of_priority> I<log_file> ...
++
++B<syslog-facility> B<remove> I<facility>
++
++=head1 DESCRIPTION
++
++B<syslog-facility> can be used to setup a syslog facility and to remove
++it. The primary use of this perl script is to allow packages to
++automatically setup (and remove) a LOCALx facility. With the
++first argument beeing I<set>, it will output a string containing
++the first free LOCALx facility that has been assigned to your request :
++
++ # syslog-facility set all /var/log/sympa
++ local0
++
++This does mean that a line "local0.* /var/log/sympa" has been
++added to the syslog.conf file. If no free LOCALx facility has been
++found, then it outputs "none" (with a end of line).
++
++You can use different set of priorities (most of what syslogd supports) :
++
++ # syslog-facility set 'all;!=debug;' /var/log/sympa '=debug' /var/log/sympa-d
++ local1
++
++Pay particular attention to shell escapes since ';','!' have special
++meanings for them. The syntax is similar to syslog.conf except that
++'*' must be replaced by 'all'.
++
++In that case you will have two lines added two the syslog.conf file :
++
++ local1.*;local1.!=debug /var/log/sympa
++ local1.=debug /var/log/sympa-d
++
++If the first argument is I<remove>, then it will remove all references
++to a precise LOCALx facility. Example :
++
++ # syslog-facility remove local1
++
++It will remove all references to the local1 facility.
++
++=head1 BUGS
++
++The script doesn't know about multi-lines configuration (ie with '\').
++
++With a line like that "mail,local0.* /anything", "syslog-facility remove
++local0" would remove the entire line. It should not be a problem since
++lines installed by this script cannot use this syntax.
++
++=head1 SEE ALSO
++
++B<syslog.conf>(5), B<sysklogd>(8).
++
+--- sysklogd-1.4.1.orig/debian/syslog.conf
++++ sysklogd-1.4.1/debian/syslog.conf
+@@ -0,0 +1,71 @@
++# /etc/syslog.conf Configuration file for syslogd.
++#
++# For more information see syslog.conf(5)
++# manpage.
++
++#
++# First some standard logfiles. Log by facility.
++#
++
++auth,authpriv.* /var/log/auth.log
++*.*;auth,authpriv.none -/var/log/syslog
++#cron.* /var/log/cron.log
++daemon.* -/var/log/daemon.log
++kern.* -/var/log/kern.log
++lpr.* -/var/log/lpr.log
++mail.* -/var/log/mail.log
++user.* -/var/log/user.log
++uucp.* /var/log/uucp.log
++
++#
++# Logging for the mail system. Split it up so that
++# it is easy to write scripts to parse these files.
++#
++mail.info -/var/log/mail.info
++mail.warn -/var/log/mail.warn
++mail.err /var/log/mail.err
++
++# Logging for INN news system
++#
++news.crit /var/log/news/news.crit
++news.err /var/log/news/news.err
++news.notice -/var/log/news/news.notice
++
++#
++# Some `catch-all' logfiles.
++#
++*.=debug;\
++ auth,authpriv.none;\
++ news.none;mail.none -/var/log/debug
++*.=info;*.=notice;*.=warn;\
++ auth,authpriv.none;\
++ cron,daemon.none;\
++ mail,news.none -/var/log/messages
++
++#
++# Emergencies are sent to everybody logged in.
++#
++*.emerg *
++
++#
++# I like to have messages displayed on the console, but only on a virtual
++# console I usually leave idle.
++#
++#daemon,mail.*;\
++# news.=crit;news.=err;news.=notice;\
++# *.=debug;*.=info;\
++# *.=notice;*.=warn /dev/tty8
++
++# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
++# you must invoke `xconsole' with the `-file' option:
++#
++# $ xconsole -file /dev/xconsole [...]
++#
++# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
++# busy site..
++#
++daemon.*;mail.*;\
++ news.crit;news.err;news.notice;\
++ *.=debug;*.=info;\
++ *.=notice;*.=warn |/dev/xconsole
++
+--- sysklogd-1.4.1.orig/debian/syslogd-listfiles
++++ sysklogd-1.4.1/debian/syslogd-listfiles
+@@ -0,0 +1,146 @@
++#! /usr/bin/perl
++
++# Copyright (c) 1998,9,2001,3 by Martin Schulze <joey@infodrom.org>
++
++# 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 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, write to the Free Software
++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
++
++$conf = "/etc/syslog.conf";
++$opt_daily = 1;
++$opt_all = 0;
++$opt_auth = 0;
++$opt_ign_size = 0;
++$opt_news = 0;
++$opt_skip = '';
++$opt_large = 1024*1024;
++
++sub usage
++{
++ print STDERR
++"
++Debian GNU/Linux syslogd-listfiles. Copyright (c) 1997,2001
++Martin Schulze. This is free software; see the GNU General Public Licence
++version 2 or later for copying conditions. There is NO warranty.
++
++Usage: syslogd-listfiles <options>
++Options: -f file specifies another syslog.conf file
++ -a | --all list all files (including news)
++ --auth list all files containing auth.<some prio>
++ --ignore-size don't rotate files which got too large
++ --large nnn define what is large in bytes (default: 10MB)
++ --news include news logfiles, too
++ -w | --weekly use weekly pattern instead of daily
++ -s pattern skip files matching pattern
++";
++}
++
++# Test if the file was already rotated within the last n hours
++# with n=5
++#
++sub rotated
++{
++ my $file = shift;
++ my $nfile;
++ my $delta = 5 * 60 * 60;
++ my $now = time();
++
++ # /var/log/file -> /var/log/file.0
++ $nfile = $file . ".0";
++ if (-r $nfile) {
++ if (($now - (stat $nfile)[9]) > $delta) {
++ return 0;
++ } else {
++ return 1;
++ }
++ }
++
++ # /var/log/file -> /var/log/OLD/file.0
++ $nfile =~ s,(.*)/([^/]+),$1/OLD/$2,;
++ if (-r $nfile) {
++ if (($now - (stat $nfile)[9]) > $delta) {
++ return 0;
++ } else {
++ return 1;
++ }
++ }
++
++ return 0;
++}
++
++while (@ARGV) {
++ $_=shift(@ARGV);
++ if (m/^-f$/) {
++ $conf = shift(@ARGV);
++ } elsif (m/^-s$/) {
++ $opt_skip = shift(@ARGV);
++ } elsif (m/^--large$/) {
++ $opt_large = shift(@ARGV);
++ } elsif (m/^(--weekly|-w)$/) {
++ $opt_daily = 0;
++ } elsif (m/^(-a|--all)$/) {
++ $opt_all = 1;
++ } elsif (m/^--auth$/) {
++ $opt_auth = 1;
++ } elsif (m/^--ignore-size/) {
++ $opt_ign_size = 1;
++ } elsif (m/^--news$/) {
++ $opt_news = 1;
++ } else {
++ &usage();exit (0);
++ }
++}
++
++open (C, $conf) || die "Can't open $conf, $!";
++while (<C>) {
++ next if (/^(\#|$)/);
++ chomp;
++
++ s/\s*(\S.*)$/$1/ if ($line);
++
++ $line .= $_;
++ chop ($line) if (/\\$/);
++ if (!/\\$/) {
++ $line =~ s/\s+/\t/;
++ $line =~ s/\t-/\t/;
++ push (@lines, $line) if ($line =~ /\t\/(?!dev\/)/);
++ $line = "";
++ }
++}
++close (C);
++
++foreach $line (@lines) {
++ ($pat,$file) = split (/\t/,$line);
++
++ # These files are handled by news.daily from INN, so we ignore them
++ next if (!$opt_news && ($pat =~ /news\.(\*|crit|err|info|notice)/));
++
++ if ($opt_all) {
++ $output{$file} = 1;
++ } elsif ($opt_auth) {
++ $output{$file} = 1 if ($pat =~ /auth[^\.]*\.(?!none).*/);
++ } else {
++ $everything = ($pat =~ /\*\.\*/);
++ $output{$file} = 1 if (($everything && $opt_daily)
++ || (!$everything && !$opt_daily && !rotated ($file))
++ || (!$opt_ign_size && ((stat $file)[7] >= $opt_large) && $opt_daily)
++ );
++ }
++}
++
++foreach $file (keys (%output)) {
++ $skip = $file;
++ if (!length($opt_skip) || $skip !~ /$opt_skip/) {
++ printf "%s\n", $file;
++ }
++}
+--- sysklogd-1.4.1.orig/debian/syslogd-listfiles.8
++++ sysklogd-1.4.1/debian/syslogd-listfiles.8
+@@ -0,0 +1,95 @@
++.\" syslogd-listfiles.8 - generic routine for /etc/syslog.conf
++.\" Copyright (c) 1997,8,2001 Martin Schulze <joey@debian.org>
++.\"
++.\" 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 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, write to the Free Software
++.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++.\"
++.TH SYSLOGD-LISTFILES 8 "December 5th, 2001" "Debian Project" "Debian GNU/Linux"
++.SH NAME
++syslogd-listfiles \- list system logfiles
++.SH SYNOPSIS
++.B syslogd-listfiles
++.RB [ " \-a " | " \-\-all " ]
++.RB [ " \-\-auth " ]
++.RB [ " \-f "
++.I config file
++]
++.RB [ " \-s "
++.I pattern
++]
++.RB [ " \-\-large "
++.I nnn
++]
++.RB [ " \-\-news " ]
++.RB [ " \-w " | " \-\-weekly " ]
++.SH DESCRIPTION
++.B Sysklogd
++provides a modern mechanism to log system messages. This mechanism is
++controlled by the file
++.IR /etc/syslog.conf .
++Messages are divided into logfiles which can grow quite big.
++Therefore the logfiles need to be rotated once per day, per week or
++per month. On a Debian GNU/Linux system most of the files are rotated
++once per week.
++
++This program helps the rotation script to determine which logfiles
++need to be rotated and when. It takes care of news logfiles that are
++handled by the
++.B news.daily
++script from INN. In conjunction with the scripts in
++.IR /etc/cron.daily " and " /etc/cron.weekly
++it takes care of files with sensitive information.
++
++By default a list of files for daily rotation is generated. At the
++moment this option only reflects entries that contain "*.*" as
++facility.priority.
++
++.SH OPTIONS
++.TP
++.BR "\-a" ", " "\-\-all"
++List all logfiles and ignore all other rules.
++.TP
++.BI "\-f " "config file"
++Specify an alternative configuration file instead of
++.IR /etc/syslog.conf ","
++which is the default.
++.TP
++.BI "\-s " "pattern"
++Specify a regular expression for files that must not be listed.
++.TP
++.B "\-\-auth"
++Only list files containing sensitive information such as the one
++containing auth.*.
++.TP
++.BI "\-\-large " "nnn"
++Define the filesize for a large file. The size is provided in bytes.
++This value defaults to 1 megabyte.
++.TP
++.B \-\-ignore\-size
++Don't rotate files whose file size is larger than the regular limit
++(see above). This option is useful if you are postprocessing logfiles
++which would break if log files are rotated at a different date/time.
++.TP
++.B "\-\-news"
++Don't exclude news logfiles which are normally handled by the
++.B news.daily
++script from INN.
++.TP
++.BR "\-w" ", " "\-\-weekly"
++Generate the list for weekly rotation.
++.LP
++.SH SEE ALSO
++.BR syslog.conf (5),
++.BR syslogd (8),
++.BR savelog (8).
+--- sysklogd-1.4.1.orig/debian/technical
++++ sysklogd-1.4.1/debian/technical
+@@ -0,0 +1,10 @@
++ Some technical information - unsorted
++ -------------------------------------
++
++ 1. Logfiles in syslogd
++
++ As of version 1.3 syslogd doesn't come with a static array of
++ logfiles. Although the logfiles are still organized in an array.
++ This array is initialized when the configuration file (default is
++ /etc/syslog.conf) is read. Whenever a new line is read the
++ length of the array it prolongued.
diff --git a/source/a/syslinux/slack-desc b/source/a/syslinux/slack-desc
new file mode 100644
index 000000000..b71399209
--- /dev/null
+++ b/source/a/syslinux/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+syslinux: syslinux (SYSLINUX/PXELINUX/ISOLINUX boot loaders)
+syslinux:
+syslinux: SYSLINUX is a boot loader for the Linux operating system which
+syslinux: operates off an MS-DOS/Windows FAT filesystem. This is used by the
+syslinux: Slackware makebootdisk script to create system boot floppies.
+syslinux:
+syslinux: Also included are PXELINUX and ISOLINUX, boot loaders for booting from
+syslinux: a network server or CD-ROM.
+syslinux:
+syslinux: SYSLINUX, PXELINUX, and ISOLINUX were written by H. Peter Anvin.
+syslinux:
diff --git a/source/a/syslinux/syslinux-3.52.tar.bz2.sign b/source/a/syslinux/syslinux-3.52.tar.bz2.sign
new file mode 100644
index 000000000..1d319cd30
--- /dev/null
+++ b/source/a/syslinux/syslinux-3.52.tar.bz2.sign
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.7 (GNU/Linux)
+Comment: See http://www.kernel.org/signature.html for info
+
+iD8DBQBG+aOayGugalF9Dw4RAtvoAJ93vpkYgJsPYBI95vXW1/qLIQC2lwCcCOPf
+NhphOdhGCaUwMdqZH9tahC0=
+=OS5y
+-----END PGP SIGNATURE-----
diff --git a/source/a/syslinux/syslinux.SlackBuild b/source/a/syslinux/syslinux.SlackBuild
new file mode 100755
index 000000000..e084f96f5
--- /dev/null
+++ b/source/a/syslinux/syslinux.SlackBuild
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# Copyright 2006, 2007, 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=syslinux
+VERSION=${VERSION:-3.52}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-${PKGNAM}
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf ${PKGNAM}-${VERSION}
+tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+cd ${PKGNAM}-$VERSION
+
+# Make sure ownerships and permissions are sane:
+chown -R root:root .
+find . \
+ \( -perm 2777 -o -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Build:
+make -j4 || exit 1
+
+make install-all INSTALLROOT=/tmp/package-syslinux
+make mkdiskimage
+make libsyslinux.a
+cp -a unix/syslinux-nomtools mkdiskimage $PKG/usr/bin
+chmod 755 $PKG/usr/bin/*
+
+mkdir -p $PKG/usr/lib
+cp -a libsyslinux.a $PKG/usr/lib
+mkdir -p $PKG/usr/include
+cp -a syslinux.h $PKG/usr/include
+
+rm -rf $PKG/usr/lib/syslinux/com32
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ BUGS COPYING NEWS README* TODO \
+ distrib.doc isolinux.doc pxelinux.doc syslinux.doc \
+ com32/LICENSE \
+ memdisk/memdisk.doc \
+ menu \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $TMP/package-${PKGNAM}
+makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sysvinit-functions/README.functions b/source/a/sysvinit-functions/README.functions
new file mode 100644
index 000000000..005012f3c
--- /dev/null
+++ b/source/a/sysvinit-functions/README.functions
@@ -0,0 +1,17 @@
+
+If you're reading this in /etc/init.d/, Slackware's real init directory is
+/etc/rc.d/. Maybe you already knew this, but it never hurts to say. :-)
+
+This script was taken from Fedora (and is presumably licensed under the GPL).
+While I don't see Slackware init scripts making much use of it (but use it
+if you wish), some third party init scripts (such as for commercial software
+designed to run on Red Hat based systems) expect this script and use it in
+their own init scripts, so it's a good idea to make it available here.
+
+These functions are provided solely for commercial (or other) software that
+expects to find "Red Hat-isms". I wouldn't use them to write new init
+scripts (personally), but if you've had experience with them in the past
+and like them, by all means feel free.
+
+It's planned to continue support for them.
+
diff --git a/source/a/sysvinit-functions/doinst.sh b/source/a/sysvinit-functions/doinst.sh
new file mode 100644
index 000000000..bbeb4a57d
--- /dev/null
+++ b/source/a/sysvinit-functions/doinst.sh
@@ -0,0 +1,23 @@
+( cd etc
+ for dir in init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d ; do
+ if [ ! -L $dir -a -d $dir ]; then
+ mv ${dir} ${dir}.bak
+ fi
+ done
+)
+( cd etc ; rm -rf init.d )
+( cd etc ; ln -sf rc.d/init.d init.d )
+( cd etc ; rm -rf rc0.d )
+( cd etc ; ln -sf rc.d/rc0.d rc0.d )
+( cd etc ; rm -rf rc1.d )
+( cd etc ; ln -sf rc.d/rc1.d rc1.d )
+( cd etc ; rm -rf rc2.d )
+( cd etc ; ln -sf rc.d/rc2.d rc2.d )
+( cd etc ; rm -rf rc3.d )
+( cd etc ; ln -sf rc.d/rc3.d rc3.d )
+( cd etc ; rm -rf rc4.d )
+( cd etc ; ln -sf rc.d/rc4.d rc4.d )
+( cd etc ; rm -rf rc5.d )
+( cd etc ; ln -sf rc.d/rc5.d rc5.d )
+( cd etc ; rm -rf rc6.d )
+( cd etc ; ln -sf rc.d/rc6.d rc6.d )
diff --git a/source/a/sysvinit-functions/functions b/source/a/sysvinit-functions/functions
new file mode 100644
index 000000000..580216d1b
--- /dev/null
+++ b/source/a/sysvinit-functions/functions
@@ -0,0 +1,577 @@
+# -*-Shell-script-*-
+#
+# functions This file contains functions to be used by most or all
+# shell scripts in the /etc/init.d directory.
+#
+
+TEXTDOMAIN=initscripts
+
+# Make sure umask is sane
+umask 022
+
+# Set up a default search path.
+PATH="/sbin:/usr/sbin:/bin:/usr/bin"
+export PATH
+
+# Get a sane screen width
+[ -z "${COLUMNS:-}" ] && COLUMNS=80
+
+[ -z "${CONSOLETYPE:-}" ] && CONSOLETYPE="`/sbin/consoletype`"
+
+if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then
+ . /etc/profile.d/lang.sh
+fi
+
+# Read in our configuration
+if [ -z "${BOOTUP:-}" ]; then
+ if [ -f /etc/sysconfig/init ]; then
+ . /etc/sysconfig/init
+ else
+ # This all seem confusing? Look in /etc/sysconfig/init,
+ # or in /usr/doc/initscripts-*/sysconfig.txt
+ BOOTUP=color
+ RES_COL=60
+ MOVE_TO_COL="echo -en \\033[${RES_COL}G"
+ SETCOLOR_SUCCESS="echo -en \\033[1;32m"
+ SETCOLOR_FAILURE="echo -en \\033[1;31m"
+ SETCOLOR_WARNING="echo -en \\033[1;33m"
+ SETCOLOR_NORMAL="echo -en \\033[0;39m"
+ LOGLEVEL=1
+ fi
+ if [ "$CONSOLETYPE" = "serial" ]; then
+ BOOTUP=serial
+ MOVE_TO_COL=
+ SETCOLOR_SUCCESS=
+ SETCOLOR_FAILURE=
+ SETCOLOR_WARNING=
+ SETCOLOR_NORMAL=
+ fi
+fi
+
+if [ "${BOOTUP:-}" != "verbose" ]; then
+ INITLOG_ARGS="-q"
+else
+ INITLOG_ARGS=
+fi
+
+# Interpret escape sequences in an fstab entry
+fstab_decode_str() {
+ fstab-decode echo "$1"
+}
+
+# Check if $pid (could be plural) are running
+checkpid() {
+ local i
+
+ for i in $* ; do
+ [ -d "/proc/$i" ] && return 0
+ done
+ return 1
+}
+
+# __umount_loop awk_program fstab_file first_msg retry_msg umount_args
+# awk_program should process fstab_file and return a list of fstab-encoded
+# paths; it doesn't have to handle comments in fstab_file.
+__umount_loop() {
+ local remaining sig=
+ local retry=3
+
+ remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r)
+ while [ -n "$remaining" -a "$retry" -gt 0 ]; do
+ if [ "$retry" -eq 3 ]; then
+ action "$3" fstab-decode umount $5 $remaining
+ else
+ action "$4" fstab-decode umount $5 $remaining
+ fi
+ sleep 2
+ remaining=$(LC_ALL=C awk "/^#/ {next} $1" "$2" | sort -r)
+ [ -z "$remaining" ] && break
+ fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null
+ sleep 5
+ retry=$(($retry -1))
+ sig=-9
+ done
+}
+
+# Similar to __umount loop above, specialized for loopback devices
+__umount_loopback_loop() {
+ local remaining devremaining sig=
+ local retry=3
+
+ remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts)
+ devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts)
+ while [ -n "$remaining" -a "$retry" -gt 0 ]; do
+ if [ "$retry" -eq 3 ]; then
+ action $"Unmounting loopback filesystems: " \
+ fstab-decode umount $remaining
+ else
+ action $"Unmounting loopback filesystems (retry):" \
+ fstab-decode umount $remaining
+ fi
+ for dev in $devremaining ; do
+ losetup $dev > /dev/null 2>&1 && \
+ action $"Detaching loopback device $dev: " \
+ losetup -d $dev
+ done
+ remaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $2}' /proc/mounts)
+ devremaining=$(awk '$1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/mounts)
+ [ -z "$remaining" ] && break
+ fstab-decode /sbin/fuser -k -m $sig $remaining >/dev/null
+ sleep 5
+ retry=$(($retry -1))
+ sig=-9
+ done
+}
+
+# __proc_pids {program} [pidfile]
+# Set $pid to pids from /var/run* for {program}. $pid should be declared
+# local in the caller.
+# Returns LSB exit code for the 'status' action.
+__pids_var_run() {
+ local base=${1##*/}
+ local pid_file=${2:-/var/run/$base.pid}
+
+ pid=
+ if [ -f "$pid_file" ] ; then
+ local line p
+ read line < "$pid_file"
+ for p in $line ; do
+ [ -z "${p//[0-9]/}" -a -d "/proc/$p" ] && pid="$pid $p"
+ done
+ if [ -n "$pid" ]; then
+ return 0
+ fi
+ return 1 # "Program is dead and /var/run pid file exists"
+ fi
+ return 3 # "Program is not running"
+}
+
+# Output PIDs of matching processes, found using pidof
+__pids_pidof() {
+ pidof -c -o $$ -o $PPID -o %PPID -x "$1" || \
+ pidof -c -o $$ -o $PPID -o %PPID -x "${1##*/}"
+}
+
+
+# A function to start a program.
+daemon() {
+ # Test syntax.
+ local gotbase= force= nicelevel corelimit
+ local pid base= user= nice= bg= pid_file=
+ nicelevel=0
+ while [ "$1" != "${1##[-+]}" ]; do
+ case $1 in
+ '') echo $"$0: Usage: daemon [+/-nicelevel] {program}"
+ return 1;;
+ --check)
+ base=$2
+ gotbase="yes"
+ shift 2
+ ;;
+ --check=?*)
+ base=${1#--check=}
+ gotbase="yes"
+ shift
+ ;;
+ --user)
+ user=$2
+ shift 2
+ ;;
+ --user=?*)
+ user=${1#--user=}
+ shift
+ ;;
+ --pidfile)
+ pid_file=$2
+ shift 2
+ ;;
+ --pidfile=?*)
+ pid_file=${1#--pidfile=}
+ shift
+ ;;
+ --force)
+ force="force"
+ shift
+ ;;
+ [-+][0-9]*)
+ nice="nice -n $1"
+ shift
+ ;;
+ *) echo $"$0: Usage: daemon [+/-nicelevel] {program}"
+ return 1;;
+ esac
+ done
+
+ # Save basename.
+ [ -z "$gotbase" ] && base=${1##*/}
+
+ # See if it's already running. Look *only* at the pid file.
+ __pids_var_run "$base" "$pid_file"
+
+ [ -n "$pid" -a -z "$force" ] && return
+
+ # make sure it doesn't core dump anywhere unless requested
+ corelimit="ulimit -S -c ${DAEMON_COREFILE_LIMIT:-0}"
+
+ # if they set NICELEVEL in /etc/sysconfig/foo, honor it
+ [ -n "${NICELEVEL:-}" ] && nice="nice -n $NICELEVEL"
+
+ # Echo daemon
+ [ "${BOOTUP:-}" = "verbose" -a -z "${LSB:-}" ] && echo -n " $base"
+
+ # And start it up.
+ if [ -z "$user" ]; then
+ $nice /bin/bash -c "$corelimit >/dev/null 2>&1 ; $*"
+ else
+ $nice runuser -s /bin/bash - $user -c "$corelimit >/dev/null 2>&1 ; $*"
+ fi
+ [ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
+}
+
+# A function to stop a program.
+killproc() {
+ local RC killlevel= base pid pid_file= delay
+
+ RC=0; delay=3
+ # Test syntax.
+ if [ "$#" -eq 0 ]; then
+ echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
+ return 1
+ fi
+ if [ "$1" = "-p" ]; then
+ pid_file=$2
+ shift 2
+ fi
+ if [ "$1" = "-d" ]; then
+ delay=$2
+ shift 2
+ fi
+
+
+ # check for second arg to be kill level
+ [ -n "${2:-}" ] && killlevel=$2
+
+ # Save basename.
+ base=${1##*/}
+
+ # Find pid.
+ __pids_var_run "$1" "$pid_file"
+ if [ -z "$pid_file" -a -z "$pid" ]; then
+ pid="$(__pids_pidof "$1")"
+ fi
+
+ # Kill it.
+ if [ -n "$pid" ] ; then
+ [ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base "
+ if [ -z "$killlevel" ] ; then
+ if checkpid $pid 2>&1; then
+ # TERM first, then KILL if not dead
+ kill -TERM $pid >/dev/null 2>&1
+ usleep 100000
+ if checkpid $pid && sleep 1 &&
+ checkpid $pid && sleep $delay &&
+ checkpid $pid ; then
+ kill -KILL $pid >/dev/null 2>&1
+ usleep 100000
+ fi
+ fi
+ checkpid $pid
+ RC=$?
+ [ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
+ RC=$((! $RC))
+ # use specified level only
+ else
+ if checkpid $pid; then
+ kill $killlevel $pid >/dev/null 2>&1
+ RC=$?
+ [ "$RC" -eq 0 ] && success $"$base $killlevel" || failure $"$base $killlevel"
+ elif [ -n "${LSB:-}" ]; then
+ RC=7 # Program is not running
+ fi
+ fi
+ else
+ if [ -n "${LSB:-}" -a -n "$killlevel" ]; then
+ RC=7 # Program is not running
+ else
+ failure $"$base shutdown"
+ RC=0
+ fi
+ fi
+
+ # Remove pid file if any.
+ if [ -z "$killlevel" ]; then
+ rm -f "${pid_file:-/var/run/$base.pid}"
+ fi
+ return $RC
+}
+
+# A function to find the pid of a program. Looks *only* at the pidfile
+pidfileofproc() {
+ local pid
+
+ # Test syntax.
+ if [ "$#" = 0 ] ; then
+ echo $"Usage: pidfileofproc {program}"
+ return 1
+ fi
+
+ __pids_var_run "$1"
+ [ -n "$pid" ] && echo $pid
+ return 0
+}
+
+# A function to find the pid of a program.
+pidofproc() {
+ local RC pid pid_file=
+
+ # Test syntax.
+ if [ "$#" = 0 ]; then
+ echo $"Usage: pidofproc [-p pidfile] {program}"
+ return 1
+ fi
+ if [ "$1" = "-p" ]; then
+ pid_file=$2
+ shift 2
+ fi
+ fail_code=3 # "Program is not running"
+
+ # First try "/var/run/*.pid" files
+ __pids_var_run "$1" "$pid_file"
+ RC=$?
+ if [ -n "$pid" ]; then
+ echo $pid
+ return 0
+ fi
+
+ [ -n "$pid_file" ] && return $RC
+ __pids_pidof "$1" || return $RC
+}
+
+status() {
+ local base pid pid_file=
+
+ # Test syntax.
+ if [ "$#" = 0 ] ; then
+ echo $"Usage: status [-p pidfile] {program}"
+ return 1
+ fi
+ if [ "$1" = "-p" ]; then
+ pid_file=$2
+ shift 2
+ fi
+ base=${1##*/}
+
+ # First try "pidof"
+ pid="$(__pids_pidof "$1")"
+ if [ -n "$pid" ]; then
+ echo $"${base} (pid $pid) is running..."
+ return 0
+ fi
+
+ # Next try "/var/run/*.pid" files
+ __pids_var_run "$1" "$pid_file"
+ case "$?" in
+ 0)
+ echo $"${base} (pid $pid) is running..."
+ return 0
+ ;;
+ 1)
+ echo $"${base} dead but pid file exists"
+ return 1
+ ;;
+ esac
+ # See if /var/lock/subsys/${base} exists
+ if [ -f /var/lock/subsys/${base} ]; then
+ echo $"${base} dead but subsys locked"
+ return 2
+ fi
+ echo $"${base} is stopped"
+ return 3
+}
+
+echo_success() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
+ echo -n $" OK "
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo -n "]"
+ echo -ne "\r"
+ return 0
+}
+
+echo_failure() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
+ echo -n $"FAILED"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo -n "]"
+ echo -ne "\r"
+ return 1
+}
+
+echo_passed() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
+ echo -n $"PASSED"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo -n "]"
+ echo -ne "\r"
+ return 1
+}
+
+echo_warning() {
+ [ "$BOOTUP" = "color" ] && $MOVE_TO_COL
+ echo -n "["
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
+ echo -n $"WARNING"
+ [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
+ echo -n "]"
+ echo -ne "\r"
+ return 1
+}
+
+# Inform the graphical boot of our current state
+update_boot_stage() {
+ if [ "$GRAPHICAL" = "yes" -a -x /usr/bin/rhgb-client ]; then
+ /usr/bin/rhgb-client --update="$1"
+ fi
+ return 0
+}
+
+# Log that something succeeded
+success() {
+ #if [ -z "${IN_INITLOG:-}" ]; then
+ # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+ #fi
+ [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success
+ return 0
+}
+
+# Log that something failed
+failure() {
+ local rc=$?
+ #if [ -z "${IN_INITLOG:-}" ]; then
+ # initlog $INITLOG_ARGS -n $0 -s "$1" -e 2
+ #fi
+ [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_failure
+ [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+ return $rc
+}
+
+# Log that something passed, but may have had errors. Useful for fsck
+passed() {
+ local rc=$?
+ #if [ -z "${IN_INITLOG:-}" ]; then
+ # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+ #fi
+ [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_passed
+ return $rc
+}
+
+# Log a warning
+warning() {
+ local rc=$?
+ #if [ -z "${IN_INITLOG:-}" ]; then
+ # initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
+ #fi
+ [ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_warning
+ return $rc
+}
+
+# Run some action. Log its output.
+action() {
+ local STRING rc
+
+ STRING=$1
+ echo -n "$STRING "
+ if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then
+ echo -n "$STRING " > /etc/rhgb/temp/rhgb-console
+ fi
+ shift
+ "$@" && success $"$STRING" || failure $"$STRING"
+ rc=$?
+ echo
+ if [ "${RHGB_STARTED:-}" != "" -a -w /etc/rhgb/temp/rhgb-console ]; then
+ if [ "$rc" = "0" ]; then
+ echo_success > /etc/rhgb/temp/rhgb-console
+ else
+ echo_failure > /etc/rhgb/temp/rhgb-console
+ [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+ fi
+ echo > /etc/rhgb/temp/rhgb-console
+ fi
+ return $rc
+}
+
+# returns OK if $1 contains $2
+strstr() {
+ [ "${1#*$2*}" = "$1" ] && return 1
+ return 0
+}
+
+# Confirm whether we really want to run this service
+confirm() {
+ [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=yes
+ while : ; do
+ echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] "
+ read answer
+ if strstr $"yY" "$answer" || [ "$answer" = "" ] ; then
+ return 0
+ elif strstr $"cC" "$answer" ; then
+ rm -f /var/run/confirm
+ [ -x /usr/bin/rhgb-client ] && /usr/bin/rhgb-client --details=no
+ return 2
+ elif strstr $"nN" "$answer" ; then
+ return 1
+ fi
+ done
+}
+
+# resolve a device node to its major:minor numbers in decimal or hex
+get_numeric_dev() {
+(
+ fmt="%d:%d"
+ if [ "$1" == "hex" ]; then
+ fmt="%x:%x"
+ fi
+ ls -lH "$2" | awk '{ sub(/,/, "", $5); printf("'"$fmt"'", $5, $6); }'
+) 2>/dev/null
+}
+
+# find the working name for a running dm device with the same table as one
+# that dmraid would create
+resolve_dm_name() {
+(
+ name="$1"
+
+ line=$(/sbin/dmraid -ay -t --ignorelocking | \
+ egrep -iv "no block devices found|No RAID disks" | \
+ awk -F ':' "{ if (\$1 ~ /^$name$/) { print \$2; }}")
+ for x in $line ; do
+ if [[ "$x" =~ "^/dev/" ]] ; then
+ majmin=$(get_numeric_dev dec $x)
+ line=$(echo "$line" | sed -e "s,$x\( \|$\),$majmin\1,g")
+ fi
+ done
+ line=$(echo "$line" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' \
+ -e 's/ core [12] [[:digit:]]\+ / core [12] [[:digit:]]\\+ /')
+ /sbin/dmsetup table | \
+ sed -n -e "s/.*\(no block devices found\|No devices found\).*//" \
+ -e "s/\(^[^:]\+\): $line\( \+$\|$\)/\1/p"
+) 2>/dev/null
+}
+
+# Check whether file $1 is a backup or rpm-generated file and should be ignored
+is_ignored_file() {
+ case "$1" in
+ *~ | *.bak | *.orig | *.rpmnew | *.rpmorig | *.rpmsave)
+ return 0
+ ;;
+ esac
+ return 1
+}
+# A sed expression to filter out the files that is_ignored_file recognizes
+__sed_discard_ignored_files='/\(~\|\.bak\|\.orig\|\.rpmnew\|\.rpmorig\|\.rpmsave\)$/d'
diff --git a/source/a/sysvinit-functions/slack-desc b/source/a/sysvinit-functions/slack-desc
new file mode 100644
index 000000000..7d8e6182f
--- /dev/null
+++ b/source/a/sysvinit-functions/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysvinit-functions: sysvinit-functions (/etc/init.d/functions)
+sysvinit-functions:
+sysvinit-functions: This is the /etc/init.d/functions file, the typical sysvinit-style
+sysvinit-functions: directories, and a few supporting binaries. Using this system,
+sysvinit-functions: subdirectories of /etc/rc.d/ are searched for scripts (which are
+sysvinit-functions: usually symlinks to the script in /etc/init.d/ or /etc/rc.d/init.d/).
+sysvinit-functions: The links must start with S to start a script or K to stop (kill) it.
+sysvinit-functions:
+sysvinit-functions: For the most part, these are useful for running software developed
+sysvinit-functions: for other versions of Linux.
+sysvinit-functions:
diff --git a/source/a/sysvinit-functions/sysvinit-functions.SlackBuild b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild
new file mode 100755
index 000000000..9af7f9ec3
--- /dev/null
+++ b/source/a/sysvinit-functions/sysvinit-functions.SlackBuild
@@ -0,0 +1,79 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-8.53}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysvinit-functions
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# The functions that ship in /etc/rc.d/init.d are used mainly
+# by Red Hat (and derived) systems. Most users will not need
+# them, but since some commerical software makes the assuption
+# that /etc/rc.d/init.d/functions will exist (and uses it),
+# shipping at least it and the sysvinit runlevel directories
+# will probably make life easier for everybody. We'll maybe
+# ever consider splitting a few of the functions of the old
+# venerable BSD-style init scripts into runlevel scripts (if
+# it looks like it will make system maintainance easier).
+
+# Build supporting binaries:
+cd $TMP
+rm -rf function-src-$VERSION
+# A small patch was applied to initlog to shut it the %^@& up.
+tar xjf $CWD/function-src-$VERSION.tar.bz2 || exit 1
+cd function-src-$VERSION
+make
+find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+mkdir -p $PKG/bin $PKG/sbin $PKG/usr/man/man{1,8}
+make install DESTDIR=$PKG
+gzip -9 $PKG/usr/man/man?/*.?
+
+# The FHS/LSB is a little bit unclear as to what to do here --
+# /etc/rc.d/init.d has been declared "deprecated" for no good
+# reason at all (commercial vendors couldn't find /etc/rc.d?),
+# so we'll make both /etc/init.d and /etc/rc.d/init.d with the
+# same contents. Hopefully this will make all the programs
+# happy.
+mkdir -p $PKG/etc/rc.d/init.d
+for file in $CWD/README.functions $CWD/functions ; do
+ cat $file > $PKG/etc/rc.d/init.d/$(basename $file)
+done
+chmod 755 $PKG/etc/rc.d/init.d/functions
+
+# Make empty runlevel directories:
+mkdir -p $PKG/etc/rc.d/rc{0,1,2,3,4,5,6}.d
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/sysvinit-functions-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sysvinit-scripts/doinst.sh b/source/a/sysvinit-scripts/doinst.sh
new file mode 100644
index 000000000..ff0ffc285
--- /dev/null
+++ b/source/a/sysvinit-scripts/doinst.sh
@@ -0,0 +1,25 @@
+
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+# Slackware scripts
+config etc/inittab.new
+config etc/rc.d/rc.4.new
+config etc/rc.d/rc.6.new
+config etc/rc.d/rc.K.new
+config etc/rc.d/rc.M.new
+config etc/rc.d/rc.S.new
+config etc/rc.d/rc.local.new
+config etc/rc.d/rc.sysvinit.new
+
+( cd etc/rc.d ; rm -rf rc.0 )
+( cd etc/rc.d ; ln -sf rc.6 rc.0 )
+
diff --git a/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh
new file mode 100644
index 000000000..29dccf78a
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/fetch-rescan-scsi-bus.sh
@@ -0,0 +1 @@
+lftpget http://www.garloff.de/kurt/linux/rescan-scsi-bus.sh
diff --git a/source/a/sysvinit-scripts/scripts/inittab b/source/a/sysvinit-scripts/scripts/inittab
new file mode 100644
index 000000000..862f704c1
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/inittab
@@ -0,0 +1,74 @@
+#
+# inittab This file describes how the INIT process should set up
+# the system in a certain run-level.
+#
+# Version: @(#)inittab 2.04 17/05/93 MvS
+# 2.10 02/10/95 PV
+# 3.00 02/06/1999 PV
+# 4.00 04/10/2002 PV
+#
+# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
+# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com>
+#
+
+# These are the default runlevels in Slackware:
+# 0 = halt
+# 1 = single user mode
+# 2 = unused (but configured the same as runlevel 3)
+# 3 = multiuser mode (default Slackware runlevel)
+# 4 = X11 with KDM/GDM/XDM (session managers)
+# 5 = unused (but configured the same as runlevel 3)
+# 6 = reboot
+
+# Default runlevel. (Do not set to 0 or 6)
+id:3:initdefault:
+
+# System initialization (runs when system boots).
+si:S:sysinit:/etc/rc.d/rc.S
+
+# Script to run when going single user (runlevel 1).
+su:1S:wait:/etc/rc.d/rc.K
+
+# Script to run when going multi user.
+rc:2345:wait:/etc/rc.d/rc.M
+
+# What to do at the "Three Finger Salute".
+ca::ctrlaltdel:/sbin/shutdown -t5 -r now
+
+# Runlevel 0 halts the system.
+l0:0:wait:/etc/rc.d/rc.0
+
+# Runlevel 6 reboots the system.
+l6:6:wait:/etc/rc.d/rc.6
+
+# What to do when power fails.
+pf::powerfail:/sbin/genpowerfail start
+
+# If power is back, cancel the running shutdown.
+pg::powerokwait:/sbin/genpowerfail stop
+
+# These are the standard console login getties in multiuser mode:
+c1:1235:respawn:/sbin/agetty 38400 tty1 linux
+c2:1235:respawn:/sbin/agetty 38400 tty2 linux
+c3:1235:respawn:/sbin/agetty 38400 tty3 linux
+c4:1235:respawn:/sbin/agetty 38400 tty4 linux
+c5:1235:respawn:/sbin/agetty 38400 tty5 linux
+c6:12345:respawn:/sbin/agetty 38400 tty6 linux
+
+# Local serial lines:
+#s1:12345:respawn:/sbin/agetty -L ttyS0 9600 vt100
+#s2:12345:respawn:/sbin/agetty -L ttyS1 9600 vt100
+
+# Dialup lines:
+#d1:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS0 vt100
+#d2:12345:respawn:/sbin/agetty -mt60 38400,19200,9600,2400,1200 ttyS1 vt100
+
+# Runlevel 4 used to be for an X window only system, until we discovered
+# that it throws init into a loop that keeps your load avg at least 1 all
+# the time. Thus, there is now one getty opened on tty6. Hopefully no one
+# will notice. ;^)
+# It might not be bad to have one text console anyway, in case something
+# happens to X.
+x1:4:respawn:/etc/rc.d/rc.4
+
+# End of /etc/inittab
diff --git a/source/a/sysvinit-scripts/scripts/rc.4 b/source/a/sysvinit-scripts/scripts/rc.4
new file mode 100644
index 000000000..be8a9c746
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.4
@@ -0,0 +1,48 @@
+#! /bin/sh
+#
+# rc.4 This file is executed by init(8) when the system is being
+# initialized for run level 4 (XDM)
+#
+# Version: @(#)/etc/rc.d/rc.4 2.00 02/17/93
+#
+# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+# At least 47% rewritten by: Patrick J. Volkerding <volkerdi@slackware.com>
+#
+
+# Tell the viewers what's going to happen...
+echo "Starting up X11 session manager..."
+
+# Try to use GNOME's gdm session manager. This comes first because if
+# gdm is on the machine then the user probably installed it and wants
+# to use it by default:
+if [ -x /usr/bin/gdm ]; then
+ exec /usr/bin/gdm -nodaemon
+fi
+
+# Someone thought that gdm looked prettier in /usr/sbin,
+# so look there, too:
+if [ -x /usr/sbin/gdm ]; then
+ exec /usr/sbin/gdm -nodaemon
+fi
+
+# Not there? OK, try to use KDE's kdm session manager:
+if [ -x /opt/kde/bin/kdm ]; then
+ exec /opt/kde/bin/kdm -nodaemon
+elif [ -x /usr/bin/kdm ]; then
+ exec /usr/bin/kdm -nodaemon
+fi
+
+# If all you have is XDM, I guess it will have to do:
+if [ -x /usr/bin/xdm ]; then
+ exec /usr/bin/xdm -nodaemon
+elif [ -x /usr/X11R6/bin/xdm ]; then
+ exec /usr/X11R6/bin/xdm -nodaemon
+fi
+
+# error
+echo
+echo "Hey, you don't have KDM, GDM, or XDM. Can't use runlevel 4 without"
+echo "one of those installed."
+sleep 30
+
+# All done.
diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6
new file mode 100644
index 000000000..2d5028e35
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.6
@@ -0,0 +1,266 @@
+#! /bin/sh
+#
+# rc.6 This file is executed by init when it goes into runlevel
+# 0 (halt) or runlevel 6 (reboot). It kills all processes,
+# unmounts file systems and then either halts or reboots.
+#
+# Version: @(#)/etc/rc.d/rc.6 2.47 Sat Jan 13 13:37:26 PST 2001
+#
+# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org>
+# Modified by: Patrick J. Volkerding, <volkerdi@slackware.com>
+#
+
+# Set the path.
+PATH=/sbin:/etc:/bin:/usr/bin
+
+# If there are SystemV init scripts for this runlevel, run them.
+if [ -x /etc/rc.d/rc.sysvinit ]; then
+ . /etc/rc.d/rc.sysvinit
+fi
+
+# Set linefeed mode to avoid staircase effect.
+/bin/stty onlcr
+
+echo "Running shutdown script $0:"
+
+# Find out how we were called.
+case "$0" in
+ *0)
+ command="halt"
+ ;;
+ *6)
+ command=reboot
+ ;;
+ *)
+ echo "$0: call me as \"rc.0\" or \"rc.6\" please!"
+ exit 1
+ ;;
+esac
+
+# Save the system time to the hardware clock using hwclock --systohc.
+if [ -x /sbin/hwclock ]; then
+ # Check for a broken motherboard RTC clock (where ioports for rtc are
+ # unknown) to prevent hwclock causing a hang:
+ if ! grep -q -w rtc /proc/ioports ; then
+ CLOCK_OPT="--directisa"
+ fi
+ if grep -q "^UTC" /etc/hardwareclock 2> /dev/null ; then
+ echo "Saving system time to the hardware clock (UTC)."
+ /sbin/hwclock $CLOCK_OPT --utc --systohc
+ else
+ echo "Saving system time to the hardware clock (localtime)."
+ /sbin/hwclock $CLOCK_OPT --localtime --systohc
+ fi
+fi
+
+# Run any local shutdown scripts:
+if [ -x /etc/rc.d/rc.local_shutdown ]; then
+ /etc/rc.d/rc.local_shutdown stop
+fi
+
+# Stop the Apache web server:
+if [ -x /etc/rc.d/rc.httpd ]; then
+ /etc/rc.d/rc.httpd stop
+fi
+
+# Stop the MySQL database:
+if [ -r /var/run/mysql/mysql.pid ]; then
+ . /etc/rc.d/rc.mysqld stop
+fi
+
+# Stop the Samba server:
+if [ -x /etc/rc.d/rc.samba ]; then
+ . /etc/rc.d/rc.samba stop
+fi
+
+# Shut down the NFS server:
+if [ -x /etc/rc.d/rc.nfsd ]; then
+ /etc/rc.d/rc.nfsd stop
+fi
+
+# Shut down the SSH server:
+if [ -x /etc/rc.d/rc.sshd ]; then
+ /etc/rc.d/rc.sshd stop
+fi
+
+# Shut down the SASL authentication daemon:
+if [ -x /etc/rc.d/rc.saslauthd ]; then
+ /etc/rc.d/rc.saslauthd stop
+fi
+
+# Shut down OpenLDAP:
+if [ -x /etc/rc.d/rc.openldap ]; then
+ /etc/rc.d/rc.openldap stop
+fi
+
+# Stop D-Bus:
+if [ -x /etc/rc.d/rc.messagebus ]; then
+ sh /etc/rc.d/rc.messagebus stop
+fi
+
+# Unmount any NFS, SMB, or CIFS filesystems:
+echo "Unmounting remote filesystems."
+/bin/umount -v -a -r -t nfs,smbfs,cifs
+
+# Try to shut down pppd:
+PS="$(ps ax)"
+if echo "$PS" | /bin/grep -q -w pppd ; then
+ if [ -x /usr/sbin/ppp-off ]; then
+ /usr/sbin/ppp-off
+ fi
+fi
+
+# Bring down the networking system, but first make sure that this
+# isn't a diskless client with the / partition mounted via NFS:
+if ! /bin/mount | /bin/grep -q 'on / type nfs' ; then
+ if [ -x /etc/rc.d/rc.inet1 ]; then
+ . /etc/rc.d/rc.inet1 stop
+ fi
+fi
+
+# In case dhcpcd might have been manually started on the command line,
+# look for the .pid file, and shut dhcpcd down if it's found:
+if /bin/ls /etc/dhcpc/*.pid 1> /dev/null 2> /dev/null ; then
+ /sbin/dhcpcd -k 1> /dev/null 2> /dev/null
+ # A little time for /etc/resolv.conf and/or other files to
+ # restore themselves.
+ sleep 2
+fi
+
+# Shut down PCMCIA devices:
+if [ -x /etc/rc.d/rc.pcmcia ]; then
+ . /etc/rc.d/rc.pcmcia stop
+ # The cards might need a little extra time here to deactivate:
+ /bin/sleep 5
+fi
+
+# Turn off process accounting:
+if [ -x /sbin/accton -a -r /var/log/pacct ]; then
+ /sbin/accton off
+fi
+
+# Terminate acpid before syslog:
+if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit
+ . /etc/rc.d/rc.acpid stop
+fi
+
+# Kill all processes.
+# INIT is supposed to handle this entirely now, but this didn't always
+# work correctly without this second pass at killing off the processes.
+# Since INIT already notified the user that processes were being killed,
+# we'll avoid echoing this info this time around.
+if [ ! "$1" = "fast" ]; then # shutdown did not already kill all processes
+ /sbin/killall5 -15
+ /bin/sleep 5
+ /sbin/killall5 -9
+fi
+
+# Try to turn off quota.
+if /bin/grep -q quota /etc/fstab ; then
+ if [ -x /sbin/quotaoff ]; then
+ echo "Turning off filesystem quotas."
+ /sbin/quotaoff -a
+ fi
+fi
+
+# Carry a random seed between reboots.
+echo "Saving random seed from /dev/urandom in /etc/random-seed."
+# Use the pool size from /proc, or 512 bytes:
+if [ -r /proc/sys/kernel/random/poolsize ]; then
+ /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null
+else
+ /bin/dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
+fi
+/bin/chmod 600 /etc/random-seed
+
+# Before unmounting file systems write a reboot or halt record to wtmp.
+$command -w
+
+# Clear /var/lock/subsys.
+if [ -d /var/lock/subsys ]; then
+ rm -f /var/lock/subsys/*
+fi
+
+# Turn off swap:
+echo "Turning off swap."
+/sbin/swapoff -a
+/bin/sync
+
+# Umount any LVM volumes:
+if /bin/mount | /bin/grep -q '^/dev/mapper/' ; then
+ echo "Unmounting LVM volumes."
+ /bin/umount -v $(/bin/mount | /bin/grep '^/dev/mapper/' | /bin/cut -d ' ' -f 3 | /bin/tac)
+fi
+
+echo "Unmounting local file systems."
+/bin/umount -v -a -t no,proc,sysfs
+
+echo "Remounting root filesystem read-only."
+/bin/mount -v -n -o remount,ro /
+
+# This never hurts:
+/bin/sync
+
+# Close any volumes opened by cryptsetup:
+if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then
+ cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
+ # NOTE: we only support LUKS formatted volumes (except for swap)!
+ LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
+ DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
+ OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
+ if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then
+ echo "Locking LUKS crypt volume '${LUKS}':"
+ /sbin/cryptsetup.static luksClose ${LUKS}
+ elif echo $OPTS | grep -wq swap ; then
+ # If any of the volumes was used as encrypted swap,
+ # then run mkswap on the underlying device -
+ # in case other Linux installations on this computer should use it:
+ echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
+ /sbin/cryptsetup.static remove ${LUKS}
+ mkswap $DEV
+ fi
+ done
+fi
+
+# Deactivate LVM volume groups:
+if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
+ echo "Deactivating LVM volume groups:"
+ /sbin/vgchange -an --ignorelockingfailure
+fi
+
+# This never hurts again (especially since root-on-LVM always fails
+# to deactivate the / logical volume... but at least it was
+# remounted as read-only first)
+/bin/sync
+
+# sleep 3 fixes problems with some hard drives that don't
+# otherwise finish syncing before reboot or poweroff
+/bin/sleep 3
+
+# This is to ensure all processes have completed on SMP machines:
+wait
+
+if [ -x /sbin/genpowerd ]; then
+ # See if this is a powerfail situation:
+ if /bin/egrep -q "FAIL|SCRAM" /etc/upsstatus 2> /dev/null ; then
+ # Signal UPS to shut off the inverter:
+ /sbin/genpowerd -k
+ if [ ! $? = 0 ]; then
+ echo
+ echo "There was an error signaling the UPS."
+ echo "Perhaps you need to edit /etc/genpowerd.conf to configure"
+ echo "the serial line and UPS type."
+ # Wasting 15 seconds of precious power:
+ /bin/sleep 15
+ fi
+ fi
+fi
+
+# Now halt (poweroff with APM or ACPI enabled kernels) or reboot.
+if [ "$command" = "reboot" ]; then
+ echo "Rebooting."
+ /sbin/reboot
+else
+ /sbin/poweroff
+fi
+
diff --git a/source/a/sysvinit-scripts/scripts/rc.K b/source/a/sysvinit-scripts/scripts/rc.K
new file mode 100644
index 000000000..68609753a
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.K
@@ -0,0 +1,106 @@
+#! /bin/sh
+#
+# rc.K This file is executed by init when it goes into runlevel
+# 1, which is the administrative state. It kills all
+# daemons and then puts the system into single user mode.
+# Note that the file systems are kept mounted.
+#
+# Version: @(#)/etc/rc.d/rc.K 3.1415 Sat Jan 13 13:37:26 PST 2001
+#
+# Author: Miquel van Smoorenburg <miquels@drinkel.nl.mugnet.org>
+# Modified by: Patrick J. Volkerding <volkerdi@slackware.com>
+#
+
+# Set the path.
+PATH=/sbin:/bin:/usr/bin:/usr/sbin
+
+# Load any needed keyboard mappings:
+if [ -x /etc/rc.d/rc.keymap ]; then
+ . /etc/rc.d/rc.keymap
+fi
+
+# If there are SystemV init scripts for this runlevel, run them.
+if [ -x /etc/rc.d/rc.sysvinit ]; then
+ . /etc/rc.d/rc.sysvinit
+fi
+
+# Try to turn off quota:
+if grep -q quota /etc/fstab ; then
+ if [ -x /sbin/quotaoff ]; then
+ echo "Turning off filesystem quotas."
+ /sbin/quotaoff -a
+ fi
+fi
+
+# Try to turn off accounting:
+if [ -x /sbin/accton -a -r /var/log/pacct ]; then
+ /sbin/accton off
+fi
+
+# Run any local shutdown scripts:
+if [ -x /etc/rc.d/rc.local_shutdown ]; then
+ /etc/rc.d/rc.local_shutdown stop
+fi
+
+# Stop the Apache web server:
+if [ -x /etc/rc.d/rc.httpd ]; then
+ /etc/rc.d/rc.httpd stop
+fi
+
+# Stop the Samba server:
+if [ -x /etc/rc.d/rc.samba ]; then
+ . /etc/rc.d/rc.samba stop
+fi
+
+# Shut down the NFS server:
+if [ -x /etc/rc.d/rc.nfsd ]; then
+ /etc/rc.d/rc.nfsd stop
+fi
+
+# Unmount any NFS, SMB, or CIFS filesystems:
+echo "Unmounting remote filesystems."
+umount -a -r -t nfs,smbfs,cifs
+
+# Shut down PCMCIA devices:
+if [ -x /etc/rc.d/rc.pcmcia ] ; then
+ . /etc/rc.d/rc.pcmcia stop
+ # The cards might need a little extra time here to deactivate:
+ sleep 5
+fi
+
+# Terminate acpid before syslog:
+if [ -x /etc/rc.d/rc.acpid -a -r /var/run/acpid.pid ]; then # quit
+ . /etc/rc.d/rc.acpid stop
+fi
+
+# Kill all processes.
+echo
+echo "Sending all processes the SIGHUP signal."
+killall5 -1
+echo -n "Waiting for processes to hang up"
+for loop in 0 1 2 3 4 5 ; do
+ sleep 1
+ echo -n "."
+done
+echo
+echo "Sending all processes the SIGTERM signal."
+killall5 -15
+echo -n "Waiting for processes to terminate"
+for loop in 0 1 2 3 4 5 ; do
+ sleep 1
+ echo -n "."
+done
+echo
+echo "Sending all processes the SIGKILL signal."
+killall5 -9
+echo -n "Waiting for processes to exit"
+for loop in 0 1 2 3 4 5 ; do
+ sleep 1
+ echo -n "."
+done
+echo
+
+# Now go to the single user level
+echo "Going to single user mode..."
+telinit -t 1 1
+
diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M
new file mode 100644
index 000000000..fe2c9b6f0
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.M
@@ -0,0 +1,355 @@
+#!/bin/sh
+#
+# rc.M This file is executed by init(8) when the system is being
+# initialized for one of the "multi user" run levels (i.e.
+# levels 1 through 6). It usually does mounting of file
+# systems et al.
+#
+# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003
+#
+# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+# Heavily modified by Patrick Volkerding <volkerdi@slackware.com>
+#
+
+# Tell the viewers what's going to happen.
+echo "Going multiuser..."
+
+# Update all the shared library links:
+if [ -x /sbin/ldconfig ]; then
+ echo "Updating shared library links: /sbin/ldconfig &"
+ /sbin/ldconfig &
+fi
+
+# Screen blanks after 15 minutes idle time, and powers down in one hour
+# if the kernel supports APM or ACPI power management:
+/bin/setterm -blank 15 -powersave powerdown -powerdown 60
+
+# Set the hostname.
+if [ -r /etc/HOSTNAME ]; then
+ /bin/hostname $(cat /etc/HOSTNAME | cut -f1 -d .)
+else
+ # fall back on this old default:
+ echo "darkstar.example.net" > /etc/HOSTNAME
+ /bin/hostname darkstar
+fi
+
+# Save the contents of 'dmesg':
+/bin/dmesg -s 65536 > /var/log/dmesg
+
+# Initialize PCMCIA devices:
+#
+# NOTE: This used to be started near the top of rc.S so that PCMCIA devices
+# could be fsck'ed along with the other drives. This had some unfortunate
+# side effects, however, since root isn't yet read-write, and /var might not
+# even be mounted the .pid files can't be correctly written in /var/run and
+# the pcmcia system can't be correctly shut down. If you want some PCMCIA
+# partition to be mounted at boot (or when the card is inserted) then add
+# the appropriate lines to /etc/pcmcia/scsi.opts.
+#
+# Note that the stuff in /etc/pcmcia/ is only for 2.4.x kernels using
+# 16-bit PCMCIA cards (not 32-bit Cardbus cards!). For example, with a
+# wireless card you might need to set options in /etc/pcmcia OR in
+# /etc/rc.d/rc.wireless.conf, or even in /etc/rc.d/rc.inet1.conf (with
+# extra options if needed for the encryption key, ESSID, etc.)
+#
+# Hopefully this situation will be unified in the future, but for now
+# that's how it is...
+#
+if [ -x /etc/rc.d/rc.pcmcia ]; then
+ . /etc/rc.d/rc.pcmcia start
+ # The cards might need a little extra time here to initialize.
+ sleep 5
+fi
+
+# Start the system logger.
+if [ -x /etc/rc.d/rc.syslog -a -x /usr/sbin/syslogd -a -d /var/log ]; then
+ . /etc/rc.d/rc.syslog start
+fi
+
+# Update the X font indexes:
+if [ -x /usr/bin/fc-cache ]; then
+ echo "Updating X font indexes: /usr/bin/fc-cache -f &"
+ /usr/bin/fc-cache -f &
+fi
+
+# If we are returning from single-user mode we will need to restart
+# udevd on systems that use udev:
+if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then
+ if ! grep -wq nohotplug /proc/cmdline ; then
+ if [ -x /etc/rc.d/rc.udev ]; then
+ /bin/sh /etc/rc.d/rc.udev start
+ fi
+ fi
+fi
+
+# Initialize the networking hardware.
+if [ -x /etc/rc.d/rc.inet1 ]; then
+ . /etc/rc.d/rc.inet1
+fi
+
+# Look for additional USB/SCSI/IEEE1394/etc devices on multiple LUNs:
+if [ -x /etc/rc.d/rc.scanluns ]; then
+ . /etc/rc.d/rc.scanluns
+fi
+
+# Start networking daemons:
+if [ -x /etc/rc.d/rc.inet2 ]; then
+ . /etc/rc.d/rc.inet2
+fi
+
+# Mount any additional filesystem types that haven't already been mounted:
+mount -a -v 2> /dev/null | grep -v "already mounted"
+
+# Start the Network Time Protocol daemon:
+if [ -x /etc/rc.d/rc.ntpd ]; then
+ sh /etc/rc.d/rc.ntpd start
+fi
+
+# Remove stale locks and junk files (must be done after mount -a!)
+/bin/rm -f /var/lock/* /var/spool/uucp/LCK..* /tmp/.X*lock /tmp/core /core 2> /dev/null
+
+# Remove stale hunt sockets so the game can start.
+if [ -r /tmp/hunt -o -r /tmp/hunt.stats ]; then
+ echo "Removing your stale hunt sockets from /tmp."
+ /bin/rm -f /tmp/hunt*
+fi
+
+# Ensure basic filesystem permissions sanity.
+chmod 755 / 2> /dev/null
+chmod 1777 /tmp /var/tmp
+
+# Start APM or ACPI daemon.
+# If APM is enabled in the kernel, start apmd:
+if [ -e /proc/apm ]; then
+ if [ -x /usr/sbin/apmd ]; then
+ echo "Starting APM daemon: /usr/sbin/apmd"
+ /usr/sbin/apmd
+ fi
+elif [ -x /etc/rc.d/rc.acpid ]; then # otherwise, start acpid:
+ . /etc/rc.d/rc.acpid start
+fi
+
+# Update any existing icon cache files:
+if find /usr/share/icons 2> /dev/null | grep -q icon-theme.cache ; then
+ for theme_dir in /usr/share/icons/* ; do
+ if [ -r ${theme_dir}/icon-theme.cache ]; then
+ echo "Updating icon-theme.cache in ${theme_dir}..."
+ /usr/bin/gtk-update-icon-cache -t -f ${theme_dir} 1> /dev/null 2> /dev/null &
+ fi
+ done
+ # This would be a large file and probably shouldn't be there.
+ if [ -r /usr/share/icons/icon-theme.cache ]; then
+ echo "Deleting icon-theme.cache in /usr/share/icons..."
+ #/usr/bin/gtk-update-icon-cache -t -f /usr/share/icons 1> /dev/null 2> /dev/null &
+ rm -f /usr/share/icons/icon-theme.cache
+ fi
+fi
+
+# Update mime database:
+if [ -x /usr/bin/update-mime-database -a -d /usr/share/mime ]; then
+ echo "Updating MIME database: /usr/bin/update-mime-database /usr/share/mime &"
+ /usr/bin/update-mime-database /usr/share/mime 1> /dev/null 2> /dev/null &
+fi
+
+# Start D-Bus:
+if [ -x /etc/rc.d/rc.messagebus ]; then
+ sh /etc/rc.d/rc.messagebus start
+fi
+
+# Start HAL:
+if [ -x /etc/rc.d/rc.hald ]; then
+ sh /etc/rc.d/rc.hald start
+fi
+
+# Start Bluetooth:
+if [ -x /etc/rc.d/rc.bluetooth ]; then
+ sh /etc/rc.d/rc.bluetooth start
+fi
+
+# Start wicd:
+if [ -x /etc/rc.d/rc.wicd ]; then
+ sh /etc/rc.d/rc.wicd start
+fi
+
+# These GTK+/pango files need to be kept up to date for
+# proper input method, pixbuf loaders, and font support.
+if [ -x /usr/bin/update-gtk-immodules ]; then
+ /usr/bin/update-gtk-immodules --verbose
+fi
+if [ -x /usr/bin/update-gdk-pixbuf-loaders ]; then
+ /usr/bin/update-gdk-pixbuf-loaders --verbose
+fi
+if [ -x /usr/bin/update-pango-querymodules ]; then
+ /usr/bin/update-pango-querymodules --verbose
+fi
+
+# Start dnsmasq, a simple DHCP/DNS server:
+if [ -x /etc/rc.d/rc.dnsmasq ]; then
+ /etc/rc.d/rc.dnsmasq start
+fi
+
+# Start snmpd:
+if [ -x /etc/rc.d/rc.snmpd ]; then
+ /etc/rc.d/rc.snmpd start
+fi
+
+# Start the print spooling system. This will usually be LPRng (lpd) or CUPS.
+if [ -x /etc/rc.d/rc.cups ]; then
+ # Start CUPS:
+ /etc/rc.d/rc.cups start
+elif [ -x /etc/rc.d/rc.lprng ]; then
+ # Start LPRng (lpd):
+ . /etc/rc.d/rc.lprng start
+fi
+
+# Start netatalk. (a file/print server for Macs using Appletalk)
+if [ -x /etc/rc.d/rc.atalk ]; then
+ /etc/rc.d/rc.atalk
+fi
+
+# Start smartd, which monitors the status of S.M.A.R.T. compatible
+# hard drives and reports any problems. Note some devices (which aren't
+# smart, I guess ;) will hang if probed by smartd, so it's commented out
+# by default.
+#if [ -x /usr/sbin/smartd ]; then
+# /usr/sbin/smartd
+#fi
+
+# If we're using udev, make /dev/cdrom and any other optical drive symlinks
+# if some udev rule hasn't made them already:
+if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems; then
+ if ! grep -wq nohotplug /proc/cmdline ; then
+ if [ -x /lib/udev/rc.optical-symlinks -a -x /etc/rc.d/rc.udev ]; then
+ /bin/sh /lib/udev/rc.optical-symlinks
+ fi
+ fi
+fi
+
+# Monitor the UPS with genpowerd.
+# To use this, uncomment this section and edit your settings in
+# /etc/genpowerd.conf (serial device, UPS type, etc). For more information,
+# see "man genpowerd" or the extensive documentation in the
+# /usr/doc/genpower-*/ directory.
+# You'll also need to configure a similar block in /etc/rc.d/rc.6 if you want
+# support for stopping the UPS's inverter after the machine halts.
+#if [ -x /sbin/genpowerd ]; then
+# echo "Starting genpowerd daemon..."
+# /sbin/genpowerd
+#fi
+
+# Turn on process accounting. To enable process accounting, make sure the
+# option for BSD process accounting is enabled in your kernel, and then
+# create the file /var/log/pacct (touch /var/log/pacct). By default, process
+# accounting is not enabled (since /var/log/pacct does not exist). This is
+# because the log file can get VERY large.
+if [ -x /sbin/accton -a -r /var/log/pacct ]; then
+ chmod 640 /var/log/pacct
+ /sbin/accton /var/log/pacct
+fi
+
+# Start crond (Dillon's crond):
+# If you want cron to actually log activity to /var/log/cron, then change
+# -l10 to -l8 to increase the logging level.
+if [ -x /usr/sbin/crond ]; then
+ /usr/sbin/crond -l10 >>/var/log/cron 2>&1
+fi
+
+# Start atd (manages jobs scheduled with 'at'):
+if [ -x /usr/sbin/atd ]; then
+ /usr/sbin/atd -b 15 -l 1
+fi
+
+# Slackware-Mini-Quota-HOWTO:
+# To really activate quotas, you'll need to add 'usrquota' and/or 'grpquota' to
+# the appropriate partitions as listed in /etc/fstab. Here's an example:
+#
+# /dev/hda2 /home ext3 defaults,usrquota 1 1
+#
+# You'll then need to setup initial quota files at the top of the partitions
+# to support quota, like this:
+# touch /home/aquota.user /home/aquota.group
+# chmod 600 /home/aquota.user /home/aquota.group
+#
+# Then, reboot to activate the system.
+# To edit user quotas, use 'edquota'. See 'man edquota'. Also, the
+# official Quota Mini-HOWTO has lots of useful information. That can be found
+# here: /usr/doc/Linux-HOWTOs/Quota
+
+# Check quotas and then turn quota system on:
+if grep -q quota /etc/fstab ; then
+ for quotafs in $(awk '/quota/ {print $2}' /etc/fstab) ; do
+ /bin/rm -f $quotafs/{a,}quota.{group,user}.new
+ done
+ if [ -x /sbin/quotacheck ]; then
+ echo "Checking filesystem quotas: /sbin/quotacheck -avugm"
+ /sbin/quotacheck -avugm
+ fi
+ if [ -x /sbin/quotaon ]; then
+ echo "Activating filesystem quotas: /sbin/quotaon -avug"
+ /sbin/quotaon -avug
+ fi
+fi
+
+# Start the SASL authentication server. This provides SASL
+# authentication services for sendmail:
+if [ -x /etc/rc.d/rc.saslauthd ]; then
+ . /etc/rc.d/rc.saslauthd start
+fi
+
+# Start the sendmail daemon:
+if [ -x /etc/rc.d/rc.sendmail ]; then
+ . /etc/rc.d/rc.sendmail start
+fi
+
+# Load ALSA (sound) defaults:
+if [ -x /etc/rc.d/rc.alsa ]; then
+ . /etc/rc.d/rc.alsa
+fi
+
+# Load a custom screen font if the user has an rc.font script.
+if [ -x /etc/rc.d/rc.font ]; then
+ . /etc/rc.d/rc.font
+fi
+
+# Load a custom keymap if the user has an rc.keymap script.
+if [ -x /etc/rc.d/rc.keymap ]; then
+ . /etc/rc.d/rc.keymap
+fi
+
+# Start the MySQL database:
+if [ -x /etc/rc.d/rc.mysqld ]; then
+ . /etc/rc.d/rc.mysqld start
+fi
+
+# Start Apache web server:
+if [ -x /etc/rc.d/rc.httpd ]; then
+ . /etc/rc.d/rc.httpd start
+fi
+
+# Start OpenLDAP:
+if [ -x /etc/rc.d/rc.openldap ]; then
+ . /etc/rc.d/rc.openldap start
+fi
+
+# Start Samba (a file/print server for Win95/NT machines).
+# Samba can be started in /etc/inetd.conf instead.
+if [ -x /etc/rc.d/rc.samba ]; then
+ . /etc/rc.d/rc.samba start
+fi
+
+# Start the GPM mouse server:
+if [ -x /etc/rc.d/rc.gpm ]; then
+ . /etc/rc.d/rc.gpm start
+fi
+
+# If there are SystemV init scripts for this runlevel, run them.
+if [ -x /etc/rc.d/rc.sysvinit ]; then
+ . /etc/rc.d/rc.sysvinit
+fi
+
+# Start the local setup procedure.
+if [ -x /etc/rc.d/rc.local ]; then
+ . /etc/rc.d/rc.local
+fi
+
+# All done.
diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S
new file mode 100644
index 000000000..a0072d286
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.S
@@ -0,0 +1,382 @@
+#!/bin/sh
+#
+# /etc/rc.d/rc.S: System initialization script.
+#
+# Mostly written by: Patrick J. Volkerding, <volkerdi@slackware.com>
+#
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+# Mount /proc right away:
+/sbin/mount -v proc /proc -n -t proc
+
+# Mount sysfs next, if the kernel supports it:
+if [ -d /sys ]; then
+ if grep -wq sysfs /proc/filesystems ; then
+ if ! grep -wq sysfs /proc/mounts ; then
+ /sbin/mount -v sysfs /sys -n -t sysfs
+ fi
+ fi
+fi
+
+# Initialize udev to manage /dev entries and hotplugging for 2.6.x kernels.
+# You may turn off udev by making the /etc/rc.d/rc.udev file non-executable
+# or giving the "nohotplug" option at boot, but in the 2.6.x+ kernels udev
+# has taken over the job of hotplug (finding hardware and loading the kernel
+# modules for it, as well as creating device nodes in /dev). Realize that
+# if you turn off udev that you will have to load all the kernel modules
+# that you need yourself (possibly in /etc/rc.d/rc.modules, which does not
+# promise to list all of them), and make any additional device nodes that you
+# need in the /dev directory. Even USB and IEEE1394 devices will need to have
+# the modules loaded by hand if udev is not used with a 2.6 kernel. So use it. :-)
+if grep -wq sysfs /proc/mounts && grep -wq tmpfs /proc/filesystems ; then
+ if ! grep -wq nohotplug /proc/cmdline ; then
+ if [ -x /etc/rc.d/rc.udev ]; then
+ /bin/sh /etc/rc.d/rc.udev start
+ fi
+ fi
+fi
+
+# Initialize the Logical Volume Manager.
+# This won't start unless we find /etc/lvmtab (LVM1) or
+# /etc/lvm/backup/ (LVM2). This is created by /sbin/vgscan, so to
+# use LVM you must run /sbin/vgscan yourself the first time (and
+# create some VGs and LVs).
+if [ -r /etc/lvmtab -o -d /etc/lvm/backup ]; then
+ echo "Initializing LVM (Logical Volume Manager):"
+ # Check for device-mapper support.
+ if ! grep -wq device-mapper /proc/devices ; then
+ # Try to load a device-mapper kernel module:
+ /sbin/modprobe -q dm-mod
+ fi
+ # Scan for new volume groups:
+ /sbin/vgscan --mknodes --ignorelockingfailure 2> /dev/null
+ if [ $? = 0 ]; then
+ # Make volume groups available to the kernel.
+ # This should also make logical volumes available.
+ /sbin/vgchange -ay --ignorelockingfailure
+ fi
+fi
+
+# Open any volumes created by cryptsetup:
+if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then
+ # First, check for device-mapper support.
+ if ! grep -wq device-mapper /proc/devices ; then
+ # If device-mapper exists as a module, try to load it.
+ # Try to load a device-mapper kernel module:
+ /sbin/modprobe -q dm-mod
+ fi
+ # NOTE: we only support LUKS formatted volumes (except for swap)!
+ cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
+ eval LUKSARRAY=( $line )
+ LUKS="${LUKSARRAY[0]}"
+ DEV="${LUKSARRAY[1]}"
+ PASS="${LUKSARRAY[2]}"
+ OPTS="${LUKSARRAY[3]}"
+ LUKSOPTS=""
+ if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi
+
+ # Skip LUKS volumes that were already unlocked (in the initrd):
+ /sbin/cryptsetup.static status $LUKS 1>/dev/null 2>/dev/null && continue
+ if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then
+ echo "Unlocking LUKS crypt volume '${LUKS}' on device '$DEV':"
+ if [ -n "${PASS}" ]; then
+ if [ -f ${PASS} ]; then
+ /sbin/cryptsetup.static ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS
+ elif [ "${PASS}" != "none" ]; then
+ # A password field of 'none' indicates a line for swap:
+ echo "${PASS}" | /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS
+ fi
+ else
+ for i in seq 1 3 ; do
+ /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
+ [ $? -eq 0 ] && break
+ done
+ fi
+ elif echo $OPTS | grep -wq swap ; then
+ # If any of the volumes is to be used as encrypted swap,
+ # then encrypt it using a random key and run mkswap:
+ echo "Creating encrypted swap on device '$DEV' mapped to '${LUKS}':"
+ /sbin/cryptsetup.static --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV
+ mkswap /dev/mapper/$LUKS
+ fi
+ done
+fi
+
+# Enable swapping:
+/sbin/swapon -a
+
+# Start FUSE, if requested:
+if [ -x /etc/rc.d/rc.fuse ]; then
+ sh /etc/rc.d/rc.fuse start
+fi
+
+# Set the system time from the hardware clock using hwclock --hctosys.
+if [ -x /sbin/hwclock ]; then
+ # Check for a broken motherboard RTC clock (where ioports for rtc are
+ # unknown) to prevent hwclock causing a hang:
+ if ! grep -q -w rtc /proc/ioports ; then
+ CLOCK_OPT="--directisa"
+ fi
+ if grep -wq "^UTC" /etc/hardwareclock ; then
+ echo "Setting system time from the hardware clock (UTC)."
+ /sbin/hwclock $CLOCK_OPT --utc --hctosys
+ else
+ echo "Setting system time from the hardware clock (localtime)."
+ /sbin/hwclock $CLOCK_OPT --localtime --hctosys
+ fi
+fi
+
+# Test to see if the root partition is read-only, like it ought to be.
+READWRITE=no
+if touch /fsrwtestfile 2>/dev/null; then
+ rm -f /fsrwtestfile
+ READWRITE=yes
+else
+ echo "Testing root filesystem status: read-only filesystem"
+fi
+
+# See if a forced filesystem check was requested at shutdown:
+if [ -r /etc/forcefsck ]; then
+ FORCEFSCK="-f"
+fi
+
+# Check the root filesystem:
+if [ ! $READWRITE = yes ]; then
+ RETVAL=0
+ if [ ! -r /etc/fastboot ]; then
+ echo "Checking root filesystem:"
+ /sbin/fsck $FORCEFSCK -C -a /
+ RETVAL=$?
+ fi
+ # An error code of 2 or higher will require a reboot.
+ if [ $RETVAL -ge 2 ]; then
+ # An error code equal to or greater than 4 means that some errors
+ # could not be corrected. This requires manual attention, so we
+ # offer a chance to try to fix the problem in single-user mode:
+ if [ $RETVAL -ge 4 ]; then
+ echo
+ echo "***********************************************************"
+ echo "*** An error occurred during the root filesystem check. ***"
+ echo "*** You will now be given a chance to log into the ***"
+ echo "*** system in single-user mode to fix the problem. ***"
+ echo "*** ***"
+ echo "*** If you are using the ext2 filesystem, running ***"
+ echo "*** 'e2fsck -v -y <partition>' might help. ***"
+ echo "***********************************************************"
+ echo
+ echo "Once you exit the single-user shell, the system will reboot."
+ echo
+ PS1="(Repair filesystem) \#"; export PS1
+ sulogin
+ else # With an error code of 2 or 3, reboot the machine automatically:
+ echo
+ echo "***********************************"
+ echo "*** The filesystem was changed. ***"
+ echo "*** The system will now reboot. ***"
+ echo "***********************************"
+ echo
+ fi
+ echo "Unmounting file systems."
+ /sbin/umount -a -r
+ /sbin/mount -n -o remount,ro /
+ echo "Rebooting system."
+ sleep 2
+ reboot -f
+ fi
+ # Remount the root filesystem in read-write mode
+ echo "Remounting root device with read-write enabled."
+ /sbin/mount -w -v -n -o remount /
+ if [ $? -gt 0 ] ; then
+ echo
+ echo "Attempt to remount root device as read-write failed! This is going to"
+ echo "cause serious problems."
+ echo
+ echo "If you're using the UMSDOS filesystem, you **MUST** mount the root partition"
+ echo "read-write! You can make sure the root filesystem is getting mounted "
+ echo "read-write with the 'rw' flag to Loadlin:"
+ echo
+ echo "loadlin vmlinuz root=/dev/hda1 rw (replace /dev/hda1 with your root device)"
+ echo
+ echo "Normal bootdisks can be made to mount a system read-write with the rdev command:"
+ echo
+ echo "rdev -R /dev/fd0 0"
+ echo
+ echo "You can also get into your system by using a boot disk with a command like this"
+ echo "on the LILO prompt line: (change the root partition name as needed)"
+ echo
+ echo "LILO: mount root=/dev/hda1 rw"
+ echo
+ echo "Please press ENTER to continue, then reboot and use one of the above methods to"
+ echo -n "get into your machine and start looking for the problem. "
+ read junk;
+ fi
+else
+ echo "Testing root filesystem status: read-write filesystem"
+ echo
+ echo "*** ERROR: Root partition has already been mounted read-write. Cannot check!"
+ echo
+ echo "For filesystem checking to work properly, your system must initially mount"
+ echo "the root partition as read only. Please modify your kernel with 'rdev' so that"
+ echo "it does this. If you're booting with LILO, add a line:"
+ echo
+ echo " read-only"
+ echo
+ echo "to the Linux section in your /etc/lilo.conf and type 'lilo' to reinstall it."
+ echo
+ echo "If you boot from a kernel on a floppy disk, put it in the drive and type:"
+ echo " rdev -R /dev/fd0 1"
+ echo
+ echo "If you boot from a bootdisk, or with Loadlin, you can add the 'ro' flag."
+ echo
+ echo "This will fix the problem *AND* eliminate this annoying message. :^)"
+ echo
+ echo -n "Press ENTER to continue. "
+ read junk;
+fi # Done checking root filesystem
+
+# Any /etc/mtab that exists here is old, so we delete it to start over:
+/bin/rm -f /etc/mtab*
+# Remounting the / partition will initialize the new /etc/mtab:
+/sbin/mount -w -o remount /
+
+# Read in the correct / filesystem complete with arguments so mount will
+# show them correctly. This does not stop those arguments from functioning
+# but does prevent a small bug with /etc/mtab.
+/bin/grep ' / ' /proc/mounts | grep -v "^rootfs" > /etc/mtab
+
+# Fix /etc/mtab to list sys and proc if they were not yet entered in
+# /etc/mtab because / was still mounted read-only:
+if [ -d /proc/sys ]; then
+ /sbin/mount -f proc /proc -t proc
+fi
+if [ -d /sys/bus ]; then
+ /sbin/mount -f sysfs /sys -t sysfs
+fi
+
+# Configure ISA Plug-and-Play devices:
+if [ -r /etc/isapnp.conf ]; then
+ if [ -x /sbin/isapnp ]; then
+ /sbin/isapnp /etc/isapnp.conf
+ fi
+fi
+
+# This loads any kernel modules that are needed. These might be required to
+# use your ethernet card, sound card, or other optional hardware.
+# Priority is given first to a script named "rc.modules.local", then
+# to "rc.modules-$FULL_KERNEL_VERSION", and finally to the plain "rc.modules".
+# Note that if /etc/rc.d/rc.modules.local is found, then that will be the ONLY
+# rc.modules script the machine will run, so make sure it has everything in
+# it that you need.
+if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then
+ echo "Running /etc/rc.d/rc.modules.local:"
+ /bin/sh /etc/rc.d/rc.modules.local
+elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then
+ echo "Running /etc/rc.d/rc.modules-$(uname -r):"
+ . /etc/rc.d/rc.modules-$(uname -r)
+elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]; then
+ echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):"
+ . /etc/rc.d/rc.modules
+elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then
+ echo "Running /etc/rc.d/rc.modules:"
+ . /etc/rc.d/rc.modules
+fi
+
+# Configure runtime kernel parameters:
+if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
+ /sbin/sysctl -e -p /etc/sysctl.conf
+fi
+
+# Check all the non-root filesystems:
+if [ ! -r /etc/fastboot ]; then
+ echo "Checking non-root filesystems:"
+ /sbin/fsck $FORCEFSCK -C -R -A -a
+fi
+
+# Mount usbfs:
+if grep -wq usbfs /proc/filesystems; then
+ if ! grep -wq usbfs /proc/mounts ; then
+ if ! grep -wq usbfs /etc/fstab; then
+ /sbin/mount -v usbfs /proc/bus/usb -t usbfs
+ else
+ /sbin/mount -v /proc/bus/usb
+ fi
+ fi
+fi
+
+# Mount non-root file systems in fstab, but not NFS or SMB
+# because TCP/IP is not yet configured, and not proc or sysfs
+# because those have already been mounted. Also check that
+# devpts is not already mounted before attempting to mount
+# it. With a 2.6.x or newer kernel udev mounts devpts.
+# We also need to wait a little bit to let USB and other
+# hotplugged devices settle (sorry to slow down the boot):
+echo "Mounting non-root local filesystems:"
+sleep 3
+if /bin/grep -wq devpts /proc/mounts ; then
+ /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs,nodevpts
+else
+ /sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs
+fi
+
+# Enable swapping again. This is needed in case a swapfile is used,
+# as it can't be enabled until the filesystem it resides on has been
+# mounted read-write.
+/sbin/swapon -a
+
+# Clean up some temporary files:
+rm -f /var/run/* /var/run/*/* /var/run/*/*/* /etc/nologin \
+ /etc/dhcpc/*.pid /etc/forcefsck /etc/fastboot \
+ /var/state/saslauthd/saslauthd.pid \
+ /tmp/.Xauth* 1> /dev/null 2> /dev/null
+ ( cd /var/log/setup/tmp && rm -rf * )
+ ( cd /tmp && rm -rf kde-[a-zA-Z]* ksocket-[a-zA-Z]* hsperfdata_[a-zA-Z]* plugtmp* )
+
+# Create /tmp/{.ICE-unix,.X11-unix} if they are not present:
+if [ ! -e /tmp/.ICE-unix ]; then
+ mkdir -p /tmp/.ICE-unix
+ chmod 1777 /tmp/.ICE-unix
+fi
+if [ ! -e /tmp/.X11-unix ]; then
+ mkdir -p /tmp/.X11-unix
+ chmod 1777 /tmp/.X11-unix
+fi
+
+# Create a fresh utmp file:
+touch /var/run/utmp
+chown root:utmp /var/run/utmp
+chmod 664 /var/run/utmp
+
+# Update the current kernel level in the /etc/motd (Message Of The Day) file,
+# if the first line of that file begins with the word 'Linux'.
+# You are free to modify the rest of the file as you see fit.
+if [ -x /bin/sed ]; then
+ /bin/sed -i "{1s/^Linux.*/$(/bin/uname -sr)\./}" /etc/motd
+fi
+
+# If there are SystemV init scripts for this runlevel, run them.
+if [ -x /etc/rc.d/rc.sysvinit ]; then
+ . /etc/rc.d/rc.sysvinit
+fi
+
+# Run serial port setup script:
+# CAREFUL! This can make some systems hang if the rc.serial script isn't
+# set up correctly. If this happens, you may have to edit the file from a
+# boot disk, and/or set it as non-executable:
+if [ -x /etc/rc.d/rc.serial ]; then
+ sh /etc/rc.d/rc.serial start
+fi
+
+# Carry an entropy pool between reboots to improve randomness.
+if [ -f /etc/random-seed ]; then
+ echo "Using /etc/random-seed to initialize /dev/urandom."
+ cat /etc/random-seed > /dev/urandom
+fi
+# Use the pool size from /proc, or 512 bytes:
+if [ -r /proc/sys/kernel/random/poolsize ]; then
+ dd if=/dev/urandom of=/etc/random-seed count=1 bs=$(cat /proc/sys/kernel/random/poolsize) 2> /dev/null
+else
+ dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2> /dev/null
+fi
+chmod 600 /etc/random-seed
+
diff --git a/source/a/sysvinit-scripts/scripts/rc.local b/source/a/sysvinit-scripts/scripts/rc.local
new file mode 100644
index 000000000..65b358bbf
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.local
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# /etc/rc.d/rc.local: Local system initialization script.
+#
+# Put any local startup commands in here. Also, if you have
+# anything that needs to be run at shutdown time you can
+# make an /etc/rc.d/rc.local_shutdown script and put those
+# commands in there.
+
diff --git a/source/a/sysvinit-scripts/scripts/rc.sysvinit b/source/a/sysvinit-scripts/scripts/rc.sysvinit
new file mode 100644
index 000000000..916e59ee4
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rc.sysvinit
@@ -0,0 +1,58 @@
+#!/bin/sh
+#
+# rc.sysvinit This file provides basic compatibility with SystemV style
+# startup scripts. The SystemV style init system places
+# start/stop scripts for each runlevel into directories such as
+# /etc/rc.d/rc3.d/ (for runlevel 3) instead of starting them
+# from /etc/rc.d/rc.M. This makes for a lot more init scripts,
+# and a more complicated execution path to follow through if
+# something goes wrong. For this reason, Slackware has always
+# used the traditional BSD style init script layout.
+#
+# However, many binary packages exist that install SystemV
+# init scripts. With rc.sysvinit in place, most well-written
+# startup scripts will work. This is primarily intended to
+# support commercial software, though, and probably shouldn't
+# be considered bug free.
+#
+# Written by Patrick Volkerding <volkerdi@slackware.com>, 1999
+# from an example by Miquel van Smoorenburg <miquels@cistron.nl>.
+
+# Run an init script:
+startup() {
+ case "$1" in
+ *.sh)
+ sh "$@"
+ ;;
+ *)
+ "$@"
+ ;;
+ esac
+}
+
+# Set onlcr to avoid staircase effect.
+stty onlcr 0>&1
+
+if [ "$runlevel" = "" ]; then
+ runlevel=$RUNLEVEL
+ export runlevel
+ prevlevel=$PREVLEVEL
+ export prevlevel
+fi
+
+# Run kill scripts in the previous runlevel if not "none"
+if [ ! "$prevlevel" = "N" ]; then
+ for script in /etc/rc.d/rc$prevlevel.d/K* ; do
+ if [ -x $script ]; then
+ startup $script stop
+ fi
+ done
+fi
+
+# Now do the startup scripts:
+for script in /etc/rc.d/rc$runlevel.d/S* ; do
+ if [ -x $script ]; then
+ startup $script start
+ fi
+done
+
diff --git a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh
new file mode 100644
index 000000000..4378e208a
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh
@@ -0,0 +1,558 @@
+#!/bin/bash
+# Skript to rescan SCSI bus, using the
+# scsi add-single-device mechanism
+# (c) 1998--2008 Kurt Garloff <kurt@garloff.de>, GNU GPL v2 or later
+# (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later
+# $Id: rescan-scsi-bus.sh,v 1.29 2008/10/29 10:03:04 garloff Exp $
+
+setcolor ()
+{
+ red="\e[0;31m"
+ green="\e[0;32m"
+ yellow="\e[0;33m"
+ bold="\e[0;1m"
+ norm="\e[0;0m"
+}
+
+unsetcolor ()
+{
+ red=""; green=""
+ yellow=""; norm=""
+}
+
+# Return hosts. sysfs must be mounted
+findhosts_26 ()
+{
+ hosts=
+ if ! ls /sys/class/scsi_host/host* >/dev/null 2>&1; then
+ echo "No SCSI host adapters found in sysfs"
+ exit 1;
+ fi
+ for hostdir in /sys/class/scsi_host/host*; do
+ hostno=${hostdir#/sys/class/scsi_host/host}
+ if [ -f $hostdir/isp_name ] ; then
+ hostname="qla2xxx"
+ elif [ -f $hostdir/lpfc_drvr_version ] ; then
+ hostname="lpfc"
+ else
+ hostname=`cat $hostdir/proc_name`
+ fi
+ hosts="$hosts $hostno"
+ echo "Host adapter $hostno ($hostname) found."
+ done
+ hosts=`echo $hosts | sed 's/ /\n/g' | sort -n`
+}
+
+# Return hosts. /proc/scsi/HOSTADAPTER/? must exist
+findhosts ()
+{
+ hosts=
+ for driverdir in /proc/scsi/*; do
+ driver=${driverdir#/proc/scsi/}
+ if test $driver = scsi -o $driver = sg -o $driver = dummy -o $driver = device_info; then continue; fi
+ for hostdir in $driverdir/*; do
+ name=${hostdir#/proc/scsi/*/}
+ if test $name = add_map -o $name = map -o $name = mod_parm; then continue; fi
+ num=$name
+ driverinfo=$driver
+ if test -r $hostdir/status; then
+ num=$(printf '%d\n' `sed -n 's/SCSI host number://p' $hostdir/status`)
+ driverinfo="$driver:$name"
+ fi
+ hosts="$hosts $num"
+ echo "Host adapter $num ($driverinfo) found."
+ done
+ done
+}
+
+# Get /proc/scsi/scsi info for device $host:$channel:$id:$lun
+# Optional parameter: Number of lines after first (default = 2),
+# result in SCSISTR, return code 1 means empty.
+procscsiscsi ()
+{
+ if test -z "$1"; then LN=2; else LN=$1; fi
+ CHANNEL=`printf "%02i" $channel`
+ ID=`printf "%02i" $id`
+ LUN=`printf "%02i" $lun`
+ if [ -d /sys/class/scsi_device ]; then
+ SCSIPATH="/sys/class/scsi_device/${host}:${channel}:${id}:${lun}"
+ if [ -d "$SCSIPATH" ] ; then
+ SCSISTR="Host: scsi${host} Channel: $CHANNEL Id: $ID Lun: $LUN"
+ if [ "$LN" -gt 0 ] ; then
+ IVEND=$(cat ${SCSIPATH}/device/vendor)
+ IPROD=$(cat ${SCSIPATH}/device/model)
+ IPREV=$(cat ${SCSIPATH}/device/rev)
+ SCSIDEV=$(printf ' Vendor: %-08s Model: %-16s Rev: %-4s' "$IVEND" "$IPROD" "$IPREV")
+ SCSISTR="$SCSISTR
+$SCSIDEV"
+ fi
+ if [ "$LN" -gt 1 ] ; then
+ ILVL=$(cat ${SCSIPATH}/device/scsi_level)
+ type=$(cat ${SCSIPATH}/device/type)
+ case "$type" in
+ 0) ITYPE="Direct-Access " ;;
+ 1) ITYPE="Sequential-Access" ;;
+ 2) ITYPE="Printer " ;;
+ 3) ITYPE="Processor " ;;
+ 4) ITYPE="WORM " ;;
+ 5) ITYPE="CD-ROM " ;;
+ 6) ITYPE="Scanner " ;;
+ 7) ITYPE="Optical Device " ;;
+ 8) ITYPE="Medium Changer " ;;
+ 9) ITYPE="Communications " ;;
+ 10) ITYPE="Unknown " ;;
+ 11) ITYPE="Unknown " ;;
+ 12) ITYPE="RAID " ;;
+ 13) ITYPE="Enclosure " ;;
+ 14) ITYPE="Direct-Access-RBC" ;;
+ *) ITYPE="Unknown " ;;
+ esac
+ SCSITMP=$(printf ' Type: %-16s ANSI SCSI revision: %02d' "$ITYPE" "$((ILVL - 1))")
+ SCSISTR="$SCSISTR
+$SCSITMP"
+ fi
+
+ else
+ return 1
+ fi
+ else
+ grepstr="scsi$host Channel: $CHANNEL Id: $ID Lun: $LUN"
+ SCSISTR=`cat /proc/scsi/scsi | grep -A$LN -e"$grepstr"`
+ fi
+ if test -z "$SCSISTR"; then return 1; else return 0; fi
+}
+
+# Find sg device with 2.6 sysfs support
+sgdevice26 ()
+{
+ if test -e /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic; then
+ SGDEV=`readlink /sys/class/scsi_device/$host\:$channel\:$id\:$lun/device/generic`
+ SGDEV=`basename $SGDEV`
+ else
+ for SGDEV in /sys/class/scsi_generic/sg*; do
+ DEV=`readlink $SGDEV/device`
+ if test "${DEV##*/}" = "$host:$channel:$id:$lun"; then
+ SGDEV=`basename $SGDEV`; return
+ fi
+ done
+ SGDEV=""
+ fi
+}
+
+# Find sg device with 2.4 report-devs extensions
+sgdevice24 ()
+{
+ if procscsiscsi 3; then
+ SGDEV=`echo "$SCSISTR" | grep 'Attached drivers:' | sed 's/^ *Attached drivers: \(sg[0-9]*\).*/\1/'`
+ fi
+}
+
+# Find sg device that belongs to SCSI device $host $channel $id $lun
+sgdevice ()
+{
+ SGDEV=
+ if test -d /sys/class/scsi_device; then
+ sgdevice26
+ else
+ DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
+ repdevstat=$((1-$?))
+ if [ $repdevstat = 0 ]; then
+ echo "scsi report-devs 1" >/proc/scsi/scsi
+ DRV=`grep 'Attached drivers:' /proc/scsi/scsi 2>/dev/null`
+ if [ $? = 1 ]; then return; fi
+ fi
+ if ! `echo $DRV | grep 'drivers: sg' >/dev/null`; then
+ modprobe sg
+ fi
+ sgdevice24
+ if [ $repdevstat = 0 ]; then
+ echo "scsi report-devs 0" >/proc/scsi/scsi
+ fi
+ fi
+}
+
+# Test if SCSI device is still responding to commands
+testonline ()
+{
+ : testonline
+ if test ! -x /usr/bin/sg_turs; then return 0; fi
+ sgdevice
+ if test -z "$SGDEV"; then return 0; fi
+ sg_turs /dev/$SGDEV >/dev/null 2>&1
+ RC=$?
+ # echo -e "\e[A\e[A\e[A${yellow}Test existence of $SGDEV = $RC ${norm} \n\n\n"
+ if test $RC = 1; then return $RC; fi
+ # OK, device online, compare INQUIRY string
+ INQ=`sg_inq $sg_len_arg /dev/$SGDEV`
+ IVEND=`echo "$INQ" | grep 'Vendor identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
+ IPROD=`echo "$INQ" | grep 'Product identification:' | sed 's/^[^:]*: \(.*\)$/\1/'`
+ IPREV=`echo "$INQ" | grep 'Product revision level:' | sed 's/^[^:]*: \(.*\)$/\1/'`
+ STR=`printf " Vendor: %-08s Model: %-16s Rev: %-4s" "$IVEND" "$IPROD" "$IPREV"`
+ IPTYPE=`echo "$INQ" | sed -n 's/.* Device_type=\([0-9]*\) .*/\1/p'`
+ IPQUAL=`echo "$INQ" | sed -n 's/ *PQual=\([0-9]*\) Device.*/\1/p'`
+ if [ "$IPQUAL" != 0 ] ; then
+ echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nLU not available (PQual $IPQUAL)${norm}\n\n\n"
+ return 1
+ fi
+
+ procscsiscsi
+ TMPSTR=`echo "$SCSISTR" | grep 'Vendor:'`
+ if [ "$TMPSTR" != "$STR" ]; then
+ echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR#* } \nto: $STR ${norm}\n\n\n"
+ return 1
+ fi
+ TMPSTR=`echo "$SCSISTR" | sed -n 's/.*Type: *\(.*\) *ANSI.*/\1/p'`
+ if [ $TMPSTR != $TYPE ] ; then
+ echo -e "\e[A\e[A\e[A\e[A${red}$SGDEV changed: ${bold}\nfrom:${TMPSTR} \nto: $TYPE ${norm}\n\n\n"
+ return 1
+ fi
+ return $RC
+}
+
+# Test if SCSI device $host $channen $id $lun exists
+# Outputs description from /proc/scsi/scsi, returns SCSISTR
+testexist ()
+{
+ : testexist
+ SCSISTR=
+ if procscsiscsi; then
+ echo "$SCSISTR" | head -n1
+ echo "$SCSISTR" | tail -n2 | pr -o4 -l1
+ fi
+}
+
+# Returns the list of existing channels per host
+chanlist ()
+{
+ local hcil
+ local cil
+ local chan
+ local tmpchan
+
+ for dev in /sys/class/scsi_device/${host}:* ; do
+ hcil=${dev##*/}
+ cil=${hcil#*:}
+ chan=${cil%%:*}
+ for tmpchan in $channelsearch ; do
+ if test "$chan" -eq $tmpchan ; then
+ chan=
+ fi
+ done
+ if test -n "$chan" ; then
+ channelsearch="$channelsearch $chan"
+ fi
+ done
+}
+
+# Returns the list of existing targets per host
+idlist ()
+{
+ local hcil
+ local cil
+ local il
+ local target
+ local tmpid
+
+ for dev in /sys/class/scsi_device/${host}:${channel}:* ; do
+ hcil=${dev##*/}
+ cil=${hcil#*:}
+ il=${cil#*:}
+ target=${il%%:*}
+ for tmpid in $idsearch ; do
+ if test "$target" -eq $tmpid ; then
+ target=
+ fi
+ done
+ if test -n "$target" ; then
+ idsearch="$idsearch $target"
+ fi
+ done
+}
+
+# Returns the list of existing LUNs
+getluns ()
+{
+ if test ! -x /usr/bin/sg_luns; then return; fi
+ sgdevice
+ if test -z "$SGDEV"; then return; fi
+ sg_luns -d /dev/$SGDEV | sed -n 's/.*lun=\(.*\)/\1/p'
+}
+
+# Perform scan on a single lun
+dolunscan()
+{
+ SCSISTR=
+ devnr="$host $channel $id $lun"
+ echo "Scanning for device $devnr ..."
+ printf "${yellow}OLD: $norm"
+ testexist
+ : f $remove s $SCSISTR
+ if test "$remove" -a "$SCSISTR"; then
+ # Device exists: Test whether it's still online
+ # (testonline returns 1 if it's gone or has changed)
+ testonline
+ if test $? = 1 -o ! -z "$forceremove"; then
+ echo -en "\r\e[A\e[A\e[A${red}REM: "
+ echo "$SCSISTR" | head -n1
+ echo -e "${norm}\e[B\e[B"
+ if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
+ echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/delete
+ # Try reading, should fail if device is gone
+ echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan
+ else
+ echo "scsi remove-single-device $devnr" > /proc/scsi/scsi
+ # Try reading, should fail if device is gone
+ echo "scsi add-single-device $devnr" > /proc/scsi/scsi
+ fi
+ fi
+ if test $RC = 0 ; then
+ if test -e /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device; then
+ echo 1 > /sys/class/scsi_device/${host}:${channel}:${id}:${lun}/device/rescan
+ fi
+ fi
+
+ printf "\r\x1b[A\x1b[A\x1b[A${yellow}OLD: $norm"
+ testexist
+ if test -z "$SCSISTR"; then
+ printf "\r${red}DEL: $norm\r\n\n"
+ let rmvd+=1;
+ fi
+ fi
+ if test -z "$SCSISTR"; then
+ # Device does not exist, try to add
+ printf "\r${green}NEW: $norm"
+ if test -e /sys/class/scsi_host/host${host}/scan; then
+ echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
+ else
+ echo "scsi add-single-device $devnr" > /proc/scsi/scsi
+ fi
+ testexist
+ if test -z "$SCSISTR"; then
+ # Device not present
+ printf "\r\x1b[A";
+ # Optimization: if lun==0, stop here (only if in non-remove mode)
+ if test $lun = 0 -a -z "$remove" -a $optscan = 1; then
+ break;
+ fi
+ else
+ let found+=1;
+ fi
+ fi
+}
+
+# Perform report lun scan
+doreportlun()
+{
+ lun=0
+ SCSISTR=
+ devnr="$host $channel $id $lun"
+ echo "Scanning for device $devnr ..."
+ printf "${yellow}OLD: $norm"
+ testexist
+ if test -z "$SCSISTR"; then
+ # Device does not exist, try to add
+ printf "\r${green}NEW: $norm"
+ if test -e /sys/class/scsi_host/host${host}/scan; then
+ echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
+ else
+ echo "scsi add-single-device $devnr" > /proc/scsi/scsi
+ fi
+ testexist
+ if test -z "$SCSISTR"; then
+ # Device not present
+ printf "\r\x1b[A";
+ lunsearch=
+ return
+ fi
+ fi
+ lunsearch=`getluns`
+ lunremove=
+ # Check existing luns
+ for dev in /sys/class/scsi_device/$host\:$channel\:$id\:*; do
+ lun=${dev##*:}
+ newsearch=
+ oldsearch="$lunsearch"
+ for tmplun in $lunsearch; do
+ if test $tmplun -eq $lun ; then
+ # Optimization: don't scan lun 0 again
+ if [ $lun -ne 0 ]; then
+ dolunscan
+ fi
+ else
+ newsearch="$newsearch $tmplun"
+ fi
+ done
+ if [ "${#oldsearch}" = "${#newsearch}" ] ; then
+ # Stale lun
+ lunremove="$lunremove $lun"
+ fi
+ lunsearch="$newsearch"
+ done
+ # Add new ones and check stale ones
+ for lun in $lunsearch $lunremove; do
+ dolunscan
+ done
+}
+
+# Perform search (scan $host)
+dosearch ()
+{
+ if test -z "$channelsearch" ; then
+ chanlist
+ fi
+ for channel in $channelsearch; do
+ if test -z "$idsearch" ; then
+ idlist
+ fi
+ for id in $idsearch; do
+ if test -z "$lunsearch"; then
+ doreportlun
+ else
+ for lun in $lunsearch; do
+ dolunscan
+ done
+ fi
+ done
+ done
+}
+
+# main
+if test @$1 = @--help -o @$1 = @-h -o @$1 = @-?; then
+ echo "Usage: rescan-scsi-bus.sh [options] [host [host ...]]"
+ echo "Options:"
+ echo " -l activates scanning for LUNs 0-7 [default: 0]"
+ echo " -L NUM activates scanning for LUNs 0--NUM [default: 0]"
+ echo " -w scan for target device IDs 0 .. 15 [default: 0-7]"
+ echo " -c enables scanning of channels 0 1 [default: 0]"
+ echo " -r enables removing of devices [default: disabled]"
+ echo " -i issue a FibreChannel LIP reset [default: disabled]"
+ echo "--remove: same as -r"
+ echo "--issue-lip: same as -i"
+ echo "--forceremove: Remove and readd every device (DANGEROUS)"
+ echo "--nooptscan: don't stop looking for LUNs is 0 is not found"
+ echo "--color: use coloured prefixes OLD/NEW/DEL"
+ echo "--hosts=LIST: Scan only host(s) in LIST"
+ echo "--channels=LIST: Scan only channel(s) in LIST"
+ echo "--ids=LIST: Scan only target ID(s) in LIST"
+ echo "--luns=LIST: Scan only lun(s) in LIST"
+ echo " Host numbers may thus be specified either directly on cmd line (deprecated) or"
+ echo " or with the --hosts=LIST parameter (recommended)."
+ echo "LIST: A[-B][,C[-D]]... is a comma separated list of single values and ranges"
+ echo " (No spaces allowed.)"
+ exit 0
+fi
+
+expandlist ()
+{
+ list=$1
+ result=""
+ first=${list%%,*}
+ rest=${list#*,}
+ while test ! -z "$first"; do
+ beg=${first%%-*};
+ if test "$beg" = "$first"; then
+ result="$result $beg";
+ else
+ end=${first#*-}
+ result="$result `seq $beg $end`"
+ fi
+ test "$rest" = "$first" && rest=""
+ first=${rest%%,*}
+ rest=${rest#*,}
+ done
+ echo $result
+}
+
+if test ! -d /sys/class/scsi_host/ -a ! -d /proc/scsi/; then
+ echo "Error: SCSI subsystem not active"
+ exit 1
+fi
+
+# Make sure sg is there
+modprobe sg >/dev/null 2>&1
+
+sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3)
+sg_version=${sg_version##0.}
+if [ "$sg_version" -lt 70 ] ; then
+ sg_len_arg="-36"
+else
+ sg_len_arg="--len=36"
+fi
+
+# defaults
+unsetcolor
+lunsearch=""
+idsearch=`seq 0 7`
+channelsearch="0"
+remove=
+forceremove=
+optscan=1
+if test -d /sys/class/scsi_host; then
+ findhosts_26
+else
+ findhosts
+fi
+
+# Scan options
+opt="$1"
+while test ! -z "$opt" -a -z "${opt##-*}"; do
+ opt=${opt#-}
+ case "$opt" in
+ l) lunsearch=`seq 0 7` ;;
+ L) lunsearch=`seq 0 $2`; shift ;;
+ w) idsearch=`seq 0 15` ;;
+ c) channelsearch="0 1" ;;
+ r) remove=1 ;;
+ i) lipreset=1 ;;
+ -remove) remove=1 ;;
+ -forceremove) remove=1; forceremove=1 ;;
+ -hosts=*) arg=${opt#-hosts=}; hosts=`expandlist $arg` ;;
+ -channels=*) arg=${opt#-channels=};channelsearch=`expandlist $arg` ;;
+ -ids=*) arg=${opt#-ids=}; idsearch=`expandlist $arg` ;;
+ -luns=*) arg=${opt#-luns=}; lunsearch=`expandlist $arg` ;;
+ -color) setcolor ;;
+ -nooptscan) optscan=0 ;;
+ -issue-lip) lipreset=1 ;;
+ *) echo "Unknown option -$opt !" ;;
+ esac
+ shift
+ opt="$1"
+done
+
+# Hosts given ?
+if test "@$1" != "@"; then
+ hosts=$*;
+fi
+
+echo "Scanning SCSI subsystem for new devices"
+test -z "$remove" || echo " and remove devices that have disappeared"
+declare -i found=0
+declare -i rmvd=0
+for host in $hosts; do
+ echo -n "Scanning host $host "
+ if test -e /sys/class/fc_host/host$host ; then
+ # It's pointless to do a target scan on FC
+ if test -n "$lipreset" ; then
+ echo 1 > /sys/class/fc_host/host$host/issue_lip 2> /dev/null;
+ echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+ fi
+ channelsearch=""
+ idsearch=""
+ fi
+ [ -n "$channelsearch" ] && echo -n "channels $channelsearch "
+ echo -n "for "
+ if [ -n "$idsearch" ] ; then
+ echo -n " SCSI target IDs " $idsearch
+ else
+ echo -n " all SCSI target IDs"
+ fi
+ if [ -n "$lunsearch" ] ; then
+ echo ", LUNs " $lunsearch
+ else
+ echo ", all LUNs"
+ fi
+ dosearch;
+done
+echo "$found new device(s) found. "
+echo "$rmvd device(s) removed. "
+
diff --git a/source/a/sysvinit-scripts/slack-desc b/source/a/sysvinit-scripts/slack-desc
new file mode 100644
index 000000000..95fff611e
--- /dev/null
+++ b/source/a/sysvinit-scripts/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysvinit-scripts: sysvinit-scripts (the basic scripts used to boot your machine)
+sysvinit-scripts:
+sysvinit-scripts: These are the Slackware boot scripts, which are needed to start the
+sysvinit-scripts: machine. Sysvinit looks for these in /etc/rc.d/.
+sysvinit-scripts:
+sysvinit-scripts:
+sysvinit-scripts:
+sysvinit-scripts:
+sysvinit-scripts:
+sysvinit-scripts:
+sysvinit-scripts:
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
new file mode 100755
index 000000000..4b9eba043
--- /dev/null
+++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-1.2}
+ARCH=noarch
+BUILD=${BUILD:-30}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysvinit-scripts
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+# Install Slackware scripts and config files from $CWD/scripts/:
+mkdir -p $PKG/etc/rc.d
+for file in rc.{4,6,K,M,S} rc.local rc.sysvinit ; do
+ cp -a $CWD/scripts/$file $PKG/etc/rc.d/${file}.new
+ chmod 755 $PKG/etc/rc.d/${file}.new
+ chown root:root $PKG/etc/rc.d/${file}.new
+done
+cat $CWD/scripts/inittab > $PKG/etc/inittab.new
+chmod 644 $PKG/etc/inittab.new
+chown root:root $PKG/etc/inittab.new
+
+# Add a very handy tool for scanning new SCSI devices. Most useful for
+# finding new USB and Firewire storage devices which show up as SCSI.
+mkdir -p $PKG/sbin
+cat $CWD/scripts/rescan-scsi-bus.sh > $PKG/sbin/rescan-scsi-bus
+chmod 755 $PKG/sbin/rescan-scsi-bus
+chown root:root $PKG/sbin/rescan-scsi-bus
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/sysvinit-scripts-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/sysvinit/doinst.sh b/source/a/sysvinit/doinst.sh
new file mode 100644
index 000000000..0e476e119
--- /dev/null
+++ b/source/a/sysvinit/doinst.sh
@@ -0,0 +1,48 @@
+
+config() {
+ NEW="$1"
+ OLD="`dirname $NEW`/`basename $NEW .new`"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+# RH functions:
+#config etc/rc.d/init.d/halt.new
+#config etc/rc.d/init.d/killall.new
+#config etc/rc.d/init.d/netfs.new
+#config etc/rc.d/init.d/network.new
+#config etc/rc.d/init.d/single.new
+
+if [ -r sbin/init ]; then
+ mv sbin/init sbin/init.old
+fi
+
+mv sbin/init.new sbin/init
+
+# Add a btmp file to store login failure if one doesn't exist:
+if [ ! -r var/log/btmp ]; then
+ ( cd var/log ; umask 077 ; touch btmp )
+fi
+
+# Notice we use an absolute path below, rather than usr/bin/last. This is because
+# we're testing to see if we are on the bootdisk, which will not have /usr/bin/last.
+# If we aren't, we will signal init to restart using the new binary.
+# The presence of "/etc/slack-installer" is under consideration as a better test.
+if [ -x /usr/bin/last -a ! -r /etc/slack-installer ]; then
+ /sbin/init u
+fi
+
+( cd sbin ; rm -rf telinit )
+( cd sbin ; ln -sf init telinit )
+( cd sbin ; rm -rf reboot )
+( cd sbin ; ln -sf halt reboot )
+( cd sbin ; rm -rf pidof )
+( cd sbin ; ln -sf killall5 pidof )
+( cd sbin ; rm -rf poweroff )
+( cd sbin ; ln -sf halt poweroff )
+
+rm -f sbin/init.old
diff --git a/source/a/sysvinit/slack-desc b/source/a/sysvinit/slack-desc
new file mode 100644
index 000000000..5fc2652c1
--- /dev/null
+++ b/source/a/sysvinit/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+sysvinit: sysvinit (init, the parent of all processes)
+sysvinit:
+sysvinit: System V style init programs by Miquel van Smoorenburg that control
+sysvinit: the booting and shutdown of your system. These support a number of
+sysvinit: system runlevels, each with a specific set of utilities spawned.
+sysvinit: For example, the normal system runlevel is 3, which starts agetty
+sysvinit: on virtual consoles tty1 - tty6. Runlevel 4 starts xdm.
+sysvinit: Runlevel 0 shuts the system down.
+sysvinit:
+sysvinit:
+sysvinit:
diff --git a/source/a/sysvinit/sysvinit-2.86-timeval.patch b/source/a/sysvinit/sysvinit-2.86-timeval.patch
new file mode 100644
index 000000000..acb0d5b68
--- /dev/null
+++ b/source/a/sysvinit/sysvinit-2.86-timeval.patch
@@ -0,0 +1,42 @@
+--- sysvinit-2.86/src/utmp.c.timeval 1999-06-09 07:11:33.000000000 -0400
++++ sysvinit-2.86/src/utmp.c 2006-08-09 19:46:26.000000000 -0400
+@@ -47,7 +47,8 @@
+ int fd;
+ struct utmp utmp;
+ struct utsname uname_buf;
+-
++ struct timeval tv;
++
+ /*
+ * Try to open the wtmp file. Note that we even try
+ * this if we have updwtmp() so we can see if the
+@@ -76,7 +77,9 @@
+ */
+ memset(&utmp, 0, sizeof(utmp));
+ #if defined(__GLIBC__)
+- gettimeofday(&utmp.ut_tv, NULL);
++ gettimeofday(&tv, NULL);
++ utmp.ut_tv.tv_sec = tv.tv_sec;
++ utmp.ut_tv.tv_usec = tv.tv_usec;
+ #else
+ time(&utmp.ut_time);
+ #endif
+@@ -113,6 +116,7 @@
+ struct utmp utmp;
+ struct utmp tmp;
+ struct utmp *utmptr;
++ struct timeval tv;
+
+ /*
+ * Can't do much if UTMP_FILE is not present.
+@@ -144,7 +148,9 @@
+ utmp.ut_pid = pid;
+ strncpy(utmp.ut_id, id, sizeof(utmp.ut_id));
+ #if defined(__GLIBC__)
+- gettimeofday(&utmp.ut_tv, NULL);
++ gettimeofday(&tv, NULL);
++ utmp.ut_tv.tv_sec = tv.tv_sec;
++ utmp.ut_tv.tv_usec = tv.tv_usec;
+ #else
+ time(&utmp.ut_time);
+ #endif
diff --git a/source/a/sysvinit/sysvinit.SlackBuild b/source/a/sysvinit/sysvinit.SlackBuild
new file mode 100755
index 000000000..4916e695e
--- /dev/null
+++ b/source/a/sysvinit/sysvinit.SlackBuild
@@ -0,0 +1,115 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-2.86}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-6}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-sysvinit
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf sysvinit-$VERSION
+tar xzvf $CWD/sysvinit-$VERSION.tar.gz || exit 1
+cd sysvinit-$VERSION
+chown -R root:root .
+zcat $CWD/sysvinit.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
+zcat $CWD/sysvinit.pidof.rhforkseverything.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
+if [ "$ARCH" = "x86_64" ]; then
+ # Don't overwrite ut_addr_v6 in utmp records on 64-bit platforms
+ zcat $CWD/sysvinit-2.86-timeval.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
+fi
+
+cd doc
+mkdir -p $PKG/usr/doc/sysvinit-$VERSION
+cp -a Install Propaganda sysvinit-$VERSION.lsm \
+ $PKG/usr/doc/sysvinit-$VERSION
+chmod -R 644 $PKG/usr/doc/sysvinit-$VERSION/*
+chmod 755 $PKG/usr/doc/sysvinit-$VERSION
+
+cd ../src
+if [ "$ARCH" = "x86_64" ]; then
+ # static 'init' segfaults, so your computer never reaches command prompt:
+ sed -i -e "s/-static//" Makefile
+fi
+make clobber
+make || exit 1
+
+mkdir -p $PKG/sbin
+for program in bootlogd halt init killall5 shutdown runlevel ; do
+ strip --strip-unneeded $program
+ cat $program > $PKG/sbin/$program
+ chmod 755 $PKG/sbin/$program
+ chown root:root $PKG/sbin/$program
+done
+mkdir -p $PKG/usr/bin
+for program in last mountpoint ; do
+ strip --strip-unneeded $program
+ cat $program > $PKG/usr/bin/$program
+ chmod 755 $PKG/usr/bin/$program
+ chown root:root $PKG/usr/bin/$program
+done
+( cd $PKG/usr/bin ; ln -sf last lastb )
+mv $PKG/sbin/init $PKG/sbin/init.new
+chmod 755 $PKG/sbin/init.new
+chown root:root $PKG/sbin/init.new
+
+# This version is old. We use genpower now.
+#cat wall > $PKG/usr/bin/wall
+#strip --strip-unneeded powerd
+#cat powerd > $PKG/sbin/powerd
+#chmod 755 $PKG/usr/bin/wall $PKG/sbin/powerd
+#chown root:root $PKG/usr/bin/wall $PKG/sbin/powerd
+cp initscript.sample $PKG/sbin/initscript.sample
+
+cd ../man
+mkdir -p $PKG/usr/man/man{1,5,8}
+for page in last.1 mountpoint.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+for page in inittab.5 initscript.5 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man5/$page.gz
+done
+for page in halt.8 init.8 killall5.8 pidof.8 poweroff.8 reboot.8 runlevel.8 \
+ shutdown.8 telinit.8 bootlogd.8 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man8/$page.gz
+done
+( cd $PKG/usr/man/man1 ; ln -sf last.1.gz lastb.1.gz )
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/sysvinit-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/sysvinit-$VERSION
+ rm -rf $PKG
+fi
diff --git a/source/a/sysvinit/sysvinit.diff b/source/a/sysvinit/sysvinit.diff
new file mode 100644
index 000000000..11477be72
--- /dev/null
+++ b/source/a/sysvinit/sysvinit.diff
@@ -0,0 +1,125 @@
+diff -Naur sysvinit-2.86.orig/man/init.8 sysvinit-2.86/man/init.8
+--- sysvinit-2.86.orig/man/init.8 2004-07-29 13:21:31.000000000 +0200
++++ sysvinit-2.86/man/init.8 2007-12-23 12:22:51.000000000 +0100
+@@ -76,7 +76,7 @@
+ are processed.
+ .PP
+ When starting a new process, \fBinit\fP first checks whether the file
+-\fI/etc/initscript\fP exists. If it does, it uses this script to
++\fI/sbin/initscript\fP exists. If it does, it uses this script to
+ start the process.
+ .PP
+ Each time a child terminates, \fBinit\fP records the fact and the reason
+@@ -240,7 +240,7 @@
+ .SH FILES
+ .nf
+ /etc/inittab
+-/etc/initscript
++/sbin/initscript
+ /dev/console
+ /var/run/utmp
+ /var/log/wtmp
+diff -Naur sysvinit-2.86.orig/man/initscript.5 sysvinit-2.86/man/initscript.5
+--- sysvinit-2.86.orig/man/initscript.5 2004-06-09 14:47:45.000000000 +0200
++++ sysvinit-2.86/man/initscript.5 2007-12-23 12:22:51.000000000 +0100
+@@ -2,15 +2,15 @@
+ .SH NAME
+ initscript \- script that executes inittab commands.
+ .SH SYNOPSIS
+-/bin/sh /etc/initscript id runlevels action process
++/bin/sh /sbin/initscript id runlevels action process
+ .SH DESCRIPTION
+-When the shell script \fI/etc/initscript\fP is present, \fBinit\fP
++When the shell script \fI/sbin/initscript\fP is present, \fBinit\fP
+ will use it to execute the commands from \fIinittab\fP.
+ This script can be used to set things like \fBulimit\fP and
+ \fBumask\fP default values for every process.
+ .SH EXAMPLES
+ This is a sample initscript, which might be installed on your
+-system as \fI/etc/initscript.sample\fP.
++system as \fI/sbin/initscript.sample\fP.
+ .RS
+ .sp
+ .nf
+@@ -20,7 +20,7 @@
+ # initscript Executed by init(8) for every program it
+ # wants to spawn like this:
+ #
+-# /bin/sh /etc/initscript <id> <level> <action> <process>
++# /bin/sh /sbin/initscript <id> <level> <action> <process>
+ #
+
+ # Set umask to safe level, and enable core dumps.
+@@ -48,7 +48,7 @@
+ .RE
+ .SH FILES
+ /etc/inittab,
+-/etc/initscript.
++/sbin/initscript.
+ .SH AUTHOR
+ Miquel van Smoorenburg ,<miquels@cistron.nl>
+ .SH "SEE ALSO"
+diff -Naur sysvinit-2.86.orig/src/Makefile sysvinit-2.86/src/Makefile
+--- sysvinit-2.86.orig/src/Makefile 2004-06-09 14:47:45.000000000 +0200
++++ sysvinit-2.86/src/Makefile 2007-12-23 12:22:51.000000000 +0100
+@@ -11,7 +11,7 @@
+ CC = gcc
+ CFLAGS = -Wall -O2 -fomit-frame-pointer -D_GNU_SOURCE
+ LDFLAGS = -s
+-STATIC =
++STATIC = -static
+
+ # For some known distributions we do not build all programs, otherwise we do.
+ BIN =
+diff -Naur sysvinit-2.86.orig/src/initscript.sample sysvinit-2.86/src/initscript.sample
+--- sysvinit-2.86.orig/src/initscript.sample 1997-11-26 14:06:33.000000000 +0100
++++ sysvinit-2.86/src/initscript.sample 2007-12-23 12:22:51.000000000 +0100
+@@ -1,14 +1,14 @@
+ #
+-# initscript If this script is intalled as /etc/initscript,
++# initscript If this script is intalled as /sbin/initscript,
+ # it is executed by init(8) for every program it
+ # wants to spawn like this:
+ #
+-# /bin/sh /etc/initscript <id> <level> <action> <process>
++# /bin/sh /sbin/initscript <id> <level> <action> <process>
+ #
+ # It can be used to set the default umask and ulimit
+ # of all processes. By default this script is installed
+-# as /etc/initscript.sample, so to enable it you must
+-# rename this script first to /etc/initscript.
++# as /sbin/initscript.sample, so to enable it you must
++# rename this script first to /sbin/initscript.
+ #
+ # Version: @(#)initscript 1.10 10-Dec-1995 MvS.
+ #
+diff -Naur sysvinit-2.86.orig/src/paths.h sysvinit-2.86/src/paths.h
+--- sysvinit-2.86.orig/src/paths.h 2004-06-09 14:47:45.000000000 +0200
++++ sysvinit-2.86/src/paths.h 2007-12-23 12:23:50.000000000 +0100
+@@ -20,21 +20,21 @@
+ #define INITTAB "/etc/inittab" /* Location of inittab */
+ #define INIT "/sbin/init" /* Location of init itself. */
+ #define NOLOGIN "/etc/nologin" /* Stop user logging in. */
+-#define FASTBOOT "/fastboot" /* Enable fast boot. */
+-#define FORCEFSCK "/forcefsck" /* Force fsck on boot */
++#define FASTBOOT "/etc/fastboot" /* Enable fast boot. */
++#define FORCEFSCK "/etc/forcefsck" /* Force fsck on boot */
+ #define SDPID "/var/run/shutdown.pid" /* PID of shutdown program */
+ #define SHELL "/bin/sh" /* Default shell */
+ #define SULOGIN "/sbin/sulogin" /* Sulogin */
+-#define INITSCRIPT "/etc/initscript" /* Initscript. */
++#define INITSCRIPT "/sbin/initscript" /* Initscript. */
+ #define PWRSTAT "/etc/powerstatus" /* COMPAT: SIGPWR reason (OK/BAD) */
+
+ #if 0
+ #define INITLVL "/etc/initrunlvl" /* COMPAT: New runlevel */
+ #define INITLVL2 "/var/log/initrunlvl" /* COMPAT: New runlevel */
+ /* Note: INITLVL2 definition needs INITLVL */
+-#define HALTSCRIPT1 "/etc/init.d/halt" /* Called by "fast" shutdown */
++#define HALTSCRIPT1 "/etc/init.d/rc.halt" /* Called by "fast" shutdown */
+ #define HALTSCRIPT2 "/etc/rc.d/rc.0" /* Called by "fast" shutdown */
+-#define REBOOTSCRIPT1 "/etc/init.d/reboot" /* Ditto. */
++#define REBOOTSCRIPT1 "/etc/init.d/rc.reboot" /* Ditto. */
+ #define REBOOTSCRIPT2 "/etc/rc.d/rc.6" /* Ditto. */
+ #endif
+
diff --git a/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff
new file mode 100644
index 000000000..db94dcf19
--- /dev/null
+++ b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff
@@ -0,0 +1,81 @@
+--- sysvinit-2.86/man/pidof.8.chroot 1998-09-02 08:49:33.000000000 -0400
++++ sysvinit-2.86/man/pidof.8 2005-12-19 15:37:40.000000000 -0500
+@@ -4,6 +4,7 @@
+ .SH SYNOPSIS
+ .B pidof
+ .RB [ \-s ]
++.RB [ \-c ]
+ .RB [ \-x ]
+ .RB [ \-o
+ .IR omitpid ]
+@@ -24,6 +25,10 @@
+ .SH OPTIONS
+ .IP -s
+ Single shot - this instructs the program to only return one \fIpid\fP.
++.IP -c
++Only return process ids that are running with the same root directory.
++This option does not make sense for non-root users, as they will be
++unable to check the current root directory of processes they do not own.
+ .IP -x
+ Scripts too - this causes the program to also return process id's of
+ shells running the named scripts.
+--- sysvinit-2.86/src/killall5.c.chroot 2004-07-30 08:16:23.000000000 -0400
++++ sysvinit-2.86/src/killall5.c 2005-12-19 15:38:47.000000000 -0500
+@@ -476,16 +476,22 @@
+ int f;
+ int first = 1;
+ int i, oind, opt, flags = 0;
++ int chroot_check = 0;
++ struct stat st;
++ char tmp[512];
+
+ for (oind = PIDOF_OMITSZ-1; oind > 0; oind--)
+ opid[oind] = 0;
+ opterr = 0;
+
+- while ((opt = getopt(argc,argv,"ho:sx")) != EOF) switch (opt) {
++ while ((opt = getopt(argc,argv,"hco:sx")) != EOF) switch (opt) {
+ case '?':
+ nsyslog(LOG_ERR,"invalid options on command line!\n");
+ closelog();
+ exit(1);
++ case 'c':
++ chroot_check = 1;
++ break;
+ case 'o':
+ if (oind >= PIDOF_OMITSZ -1) {
+ nsyslog(LOG_ERR,"omit pid buffer size %d "
+@@ -518,6 +524,16 @@
+ argc -= optind;
+ argv += optind;
+
++ /* Check if we are in a chroot */
++ if (chroot_check) {
++ snprintf(tmp, 512, "/proc/%d/root", getpid());
++ if (stat(tmp, &st) < 0) {
++ nsyslog(LOG_ERR, "stat failed for %s!\n", tmp);
++ closelog();
++ exit(1);
++ }
++ }
++
+ /* Print out process-ID's one by one. */
+ readproc();
+ for(f = 0; f < argc; f++) {
+@@ -541,6 +557,16 @@
+ else
+ spid = 1;
+ }
++ if (chroot_check) {
++ struct stat st2;
++ snprintf(tmp, 512, "/proc/%d/root",
++ p->pid);
++ if (stat(tmp, &st2) < 0 ||
++ st.st_dev != st2.st_dev ||
++ st.st_ino != st2.st_ino) {
++ continue;
++ }
++ }
+ if (!first)
+ printf(" ");
+ printf("%d", p->pid);
diff --git a/source/a/tar/rmt.8 b/source/a/tar/rmt.8
new file mode 100644
index 000000000..86d2cf92f
--- /dev/null
+++ b/source/a/tar/rmt.8
@@ -0,0 +1,217 @@
+.\" Copyright (c) 1983, 1991 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)rmt.8 6.5 (Berkeley) 3/16/91
+.\"
+.Dd March 16, 1991
+.Dt RMT 8
+.Os BSD 4.2
+.Sh NAME
+.Nm rmt
+.Nd remote magtape protocol module
+.Sh SYNOPSIS
+.Nm rmt
+.Sh DESCRIPTION
+.Nm Rmt
+is a program used by the remote dump and restore programs
+in manipulating a magnetic tape drive through an interprocess
+communication connection.
+.Nm Rmt
+is normally started up with an
+.Xr rexec 3
+or
+.Xr rcmd 3
+call.
+.Pp
+The
+.Nm rmt
+program accepts requests specific to the manipulation of
+magnetic tapes, performs the commands, then responds with
+a status indication. All responses are in
+.Tn ASCII
+and in
+one of two forms.
+Successful commands have responses of:
+.Bd -filled -offset indent
+.Sm off
+.Sy A Ar number No \en
+.Sm on
+.Ed
+.Pp
+.Ar Number
+is an
+.Tn ASCII
+representation of a decimal number.
+Unsuccessful commands are responded to with:
+.Bd -filled -offset indent
+.Sm off
+.Xo Sy E Ar error-number
+.No \en Ar error-message
+.No \en
+.Xc
+.Sm on
+.Ed
+.Pp
+.Ar Error-number
+is one of the possible error
+numbers described in
+.Xr intro 2
+and
+.Ar error-message
+is the corresponding error string as printed
+from a call to
+.Xr perror 3 .
+The protocol is comprised of the
+following commands, which are sent as indicated - no spaces are supplied
+between the command and its arguments, or between its arguments, and
+.Ql \en
+indicates that a newline should be supplied:
+.Bl -tag -width Ds
+.Sm off
+.It Xo Sy \&O Ar device
+.No \en Ar mode No \en
+.Xc
+Open the specified
+.Ar device
+using the indicated
+.Ar mode .
+.Ar Device
+is a full pathname and
+.Ar mode
+is an
+.Tn ASCII
+representation of a decimal
+number suitable for passing to
+.Xr open 2 .
+If a device had already been opened, it is
+closed before a new open is performed.
+.It Xo Sy C Ar device No \en
+.Xc
+Close the currently open device. The
+.Ar device
+specified is ignored.
+.It Xo Sy L
+.Ar whence No \en
+.Ar offset No \en
+.Xc
+.Sm on
+Perform an
+.Xr lseek 2
+operation using the specified parameters.
+The response value is that returned from the
+.Xr lseek
+call.
+.Sm off
+.It Sy W Ar count No \en
+.Sm on
+Write data onto the open device.
+.Nm Rmt
+reads
+.Ar count
+bytes from the connection, aborting if
+a premature end-of-file is encountered.
+The response value is that returned from
+the
+.Xr write 2
+call.
+.Sm off
+.It Sy R Ar count No \en
+.Sm on
+Read
+.Ar count
+bytes of data from the open device.
+If
+.Ar count
+exceeds the size of the data buffer (10 kilobytes), it is
+truncated to the data buffer size.
+.Nm rmt
+then performs the requested
+.Xr read 2
+and responds with
+.Sm off
+.Sy A Ar count-read No \en
+.Sm on
+if the read was
+successful; otherwise an error in the
+standard format is returned. If the read
+was successful, the data read is then sent.
+.Sm off
+.It Xo Sy I Ar operation
+.No \en Ar count No \en
+.Xc
+.Sm on
+Perform a
+.Dv MTIOCOP
+.Xr ioctl 2
+command using the specified parameters.
+The parameters are interpreted as the
+.Tn ASCII
+representations of the decimal values
+to place in the
+.Ar mt_op
+and
+.Ar mt_count
+fields of the structure used in the
+.Xr ioctl
+call. The return value is the
+.Ar count
+parameter when the operation is successful.
+.It Sy S
+Return the status of the open device, as
+obtained with a
+.Dv MTIOCGET
+.Xr ioctl
+call. If the operation was successful,
+an ``ack'' is sent with the size of the
+status buffer, then the status buffer is
+sent (in binary).
+.El
+.Sm on
+.Pp
+Any other command causes
+.Nm rmt
+to exit.
+.Sh DIAGNOSTICS
+All responses are of the form described above.
+.Sh SEE ALSO
+.Xr rcmd 3 ,
+.Xr rexec 3 ,
+.Xr mtio 4 ,
+.Xr rdump 8 ,
+.Xr rrestore 8
+.Sh BUGS
+People tempted to use this for a remote file access protocol
+are discouraged.
+.Sh HISTORY
+The
+.Nm
+command appeared in
+.Bx 4.2 .
diff --git a/source/a/tar/slack-desc b/source/a/tar/slack-desc
new file mode 100644
index 000000000..573b89013
--- /dev/null
+++ b/source/a/tar/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+tar: tar (archiving utility)
+tar:
+tar: This is the GNU version of tar, an archiving program designed to store
+tar: and extract files from an archive file known as a tarfile. A tarfile
+tar: may be made on a tape drive, however, it is also common to write a
+tar: tarfile to a normal file.
+tar:
+tar: Slackware's package system uses tarfiles compressed with GNU gzip.
+tar:
+tar:
+tar:
diff --git a/source/a/tar/tar-1.13.bzip2.diff b/source/a/tar/tar-1.13.bzip2.diff
new file mode 100644
index 000000000..85c03368c
--- /dev/null
+++ b/source/a/tar/tar-1.13.bzip2.diff
@@ -0,0 +1,48 @@
+--- ./src/tar.c.orig Wed Jul 7 00:49:50 1999
++++ ./src/tar.c Fri Jul 30 23:00:13 1999
+@@ -16,6 +16,8 @@
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
++/* Patched to integrate bzip2 as compression filter (option -j) */
++
+ #include "system.h"
+
+ #include <getopt.h>
+@@ -164,6 +166,8 @@
+ {"block-number", no_argument, NULL, 'R'},
+ {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
+ {"blocking-factor", required_argument, NULL, 'b'},
++ {"bzip2", required_argument, NULL, 'j'},
++ {"bunzip2", required_argument, NULL, 'j'},
+ {"catenate", no_argument, NULL, 'A'},
+ {"checkpoint", no_argument, &checkpoint_option, 1},
+ {"compare", no_argument, NULL, 'd'},
+@@ -340,6 +344,7 @@
+ PATTERN at list/extract time, a globbing PATTERN\n\
+ -o, --old-archive, --portability write a V7 format archive\n\
+ --posix write a POSIX conformant archive\n\
++ -j, --bzip2, --bunzip2 filter the archive through bzip2\n\
+ -z, --gzip, --ungzip filter the archive through gzip\n\
+ -Z, --compress, --uncompress filter the archive through compress\n\
+ --use-compress-program=PROG filter through PROG (must accept -d)\n"),
+@@ -416,7 +421,7 @@
+ Y per-block gzip compression */
+
+ #define OPTION_STRING \
+- "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
++ "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hijklmoprstuvwxz"
+
+ static void
+ set_subcommand_option (enum subcommand subcommand)
+@@ -787,6 +792,10 @@
+ if (add_exclude_file (excluded, optarg, '\n') != 0)
+ FATAL_ERROR ((0, errno, "%s", optarg));
+ break;
++
++ case 'j':
++ set_use_compress_program_option ("bzip2");
++ break;
+
+ case 'z':
+ set_use_compress_program_option ("gzip");
diff --git a/source/a/tar/tar-1.22-support_txz.diff b/source/a/tar/tar-1.22-support_txz.diff
new file mode 100644
index 000000000..5104f5639
--- /dev/null
+++ b/source/a/tar/tar-1.22-support_txz.diff
@@ -0,0 +1,11 @@
+diff -Nur tar-1.22.orig/src/suffix.c tar-1.22/src/suffix.c
+--- tar-1.22.orig/src/suffix.c 2009-03-05 01:04:13.000000000 -0600
++++ tar-1.22/src/suffix.c 2009-05-06 15:59:10.695985191 -0500
+@@ -41,6 +41,7 @@
+ { S(tlz, lzma) },
+ { S(lzo, lzop) },
+ { S(xz, xz) },
++ { S(txz, xz) },
+ #undef S
+ };
+
diff --git a/source/a/tar/tar.1 b/source/a/tar/tar.1
new file mode 100644
index 000000000..1d7e02faf
--- /dev/null
+++ b/source/a/tar/tar.1
@@ -0,0 +1,368 @@
+.\" @(#)tar.1 1.11.1 93/19/22 PJV;
+.TH TAR 1 "22 September 1993"
+.SH NAME
+tar \- The GNU version of the tar archiving utility
+.SH SYNOPSIS
+.B tar
+[
+.B \-
+]
+.B A --catenate --concatenate \||\| c --create \||\| d --diff --compare \||\| r --append \||\| t --list \||\| u --update \||\| x -extract --get
+[
+.B --atime-preserve
+]
+[
+.B -b, --block-size N
+]
+[
+.B -B, --read-full-blocks
+]
+[
+.B -C, --directory DIR
+]
+[
+.B --checkpoint
+]
+[
+.B -f, --file [HOSTNAME:]F
+]
+[
+.B --force-local
+]
+[
+.B -F, --info-script F --new-volume-script F
+]
+[
+.B -G, --incremental
+]
+[
+.B -g, --listed-incremental F
+]
+[
+.B -h, --dereference
+]
+[
+.B -i, --ignore-zeros
+]
+[
+.B -j, --bzip2
+]
+[
+.B --ignore-failed-read
+]
+[
+.B -k, --keep-old-files
+]
+[
+.B -K, --starting-file F
+]
+[
+.B -l, --one-file-system
+]
+[
+.B -L, --tape-length N
+]
+[
+.B -m, --modification-time
+]
+[
+.B -M, --multi-volume
+]
+[
+.B -N, --after-date DATE, --newer DATE
+]
+[
+.B -o, --old-archive, --portability
+]
+[
+.B -O, --to-stdout
+]
+[
+.B -p, --same-permissions, --preserve-permissions
+]
+[
+.B -P, --absolute-names
+]
+[
+.B --preserve
+]
+[
+.B -R, --record-number
+]
+[
+.B --remove-files
+]
+[
+.B -s, --same-order, --preserve-order
+]
+[
+.B --same-owner
+]
+[
+.B --numeric-owner
+]
+[
+.B -S, --sparse
+]
+[
+.B -T, --files-from F
+]
+[
+.B --null
+]
+[
+.B --totals
+]
+[
+.B -v, --verbose
+]
+[
+.B -V, --label NAME
+]
+[
+.B --version
+]
+[
+.B -w, --interactive, --confirmation
+]
+[
+.B -W, --verify
+]
+[
+.B --exclude FILE
+]
+[
+.B -X, --exclude-from FILE
+]
+[
+.B -Z, --compress, --uncompress
+]
+[
+.B -z, --gzip, --ungzip
+]
+[
+.B --use-compress-program PROG
+]
+[
+.B --block-compress
+]
+[
+.B -[0-7][lmh]
+]
+.TP
+.I filename1 [ filename2, ... filenameN ]
+.TP
+.I directory1 [ directory2, ...directoryN ]
+.SH DESCRIPTION
+.LP
+This manual page documents the GNU version of
+.B tar
+, an archiving program designed to store and extract files from
+an archive file known as a
+.IR tarfile.
+A
+.IR tarfile
+may be made on a tape drive, however, it is also common
+to write a
+.IR tarfile
+to a normal file.
+The first argument to
+.B tar
+must be one of the options:
+.BR Acdrtux ,
+followed by any optional functions.
+The final arguments to
+.B tar
+are the names of the files or directories which should be archived. The use
+of a directory name always implies that the subdirectories below should be
+included in the archive.
+.SH EXAMPLES
+.TP
+.B tar -xvvf foo.tar
+extract foo.tar
+.TP
+.B tar -xvvzf foo.tar.gz
+extract gzipped foo.tar.gz
+.TP
+.B tar -cvvf foo.tar foo/
+tar contents of folder foo in foo.tar
+.SH "FUNCTION LETTERS"
+.TP
+.B One of the following options must be used:
+.TP
+.B -A, --catenate, --concatenate
+append tar files to an archive
+.TP
+.B -c, --create
+create a new archive
+.TP
+.B -d, --diff, --compare
+find differences between archive and file system
+.TP
+.B --delete
+delete from the archive (not for use on mag tapes!)
+.TP
+.B -r, --append
+append files to the end of an archive
+.TP
+.B -t, --list
+list the contents of an archive
+.TP
+.B -u, --update
+only append files that are newer than copy in archive
+.TP
+.B -x, --extract, --get
+extract files from an archive
+.SH "OTHER OPTIONS"
+.TP
+.B --atime-preserve
+don't change access times on dumped files
+.TP
+.B -b, --block-size N
+block size of Nx512 bytes (default N=20)
+.TP
+.B -B, --read-full-blocks
+reblock as we read (for reading 4.2BSD pipes)
+.TP
+.B -C, --directory DIR
+change to directory DIR
+.TP
+.B --checkpoint
+print directory names while reading the archive
+.TP
+.B -f, --file [HOSTNAME:]F
+use archive file or device F (default "-", meaning stdin/stdout)
+.TP
+.B --force-local
+archive file is local even if has a colon
+.TP
+.B -F, --info-script F --new-volume-script F
+run script at end of each tape (implies -M)
+.TP
+.B -G, --incremental
+create/list/extract old GNU-format incremental backup
+.TP
+.B -g, --listed-incremental F
+create/list/extract new GNU-format incremental backup
+.TP
+.B -h, --dereference
+don't dump symlinks; dump the files they point to
+.TP
+.B -i, --ignore-zeros
+ignore blocks of zeros in archive (normally mean EOF)
+.TP
+.B -j, --bzip2
+filter archive through bzip2, use to decompress .bz2 files
+.TP
+.B --ignore-failed-read
+don't exit with non-zero status on unreadable files
+.TP
+.B -k, --keep-old-files
+keep existing files; don't overwrite them from archive
+.TP
+.B -K, --starting-file F
+begin at file F in the archive
+.TP
+.B -l, --one-file-system
+stay in local file system when creating an archive
+.TP
+.B -L, --tape-length N
+change tapes after writing N*1024 bytes
+.TP
+.B -m, --modification-time
+don't extract file modified time
+.TP
+.B -M, --multi-volume
+create/list/extract multi-volume archive
+.TP
+.B -N, --after-date DATE, --newer DATE
+only store files newer than DATE
+.TP
+.B -o, --old-archive, --portability
+write a V7 format archive, rather than ANSI format
+.TP
+.B -O, --to-stdout
+extract files to standard output
+.TP
+.B -p, --same-permissions, --preserve-permissions
+extract all protection information
+.TP
+.B -P, --absolute-paths
+don't strip leading `/'s from file names
+.TP
+.B --preserve
+like -p -s
+.TP
+.B -R, --record-number
+show record number within archive with each message
+.TP
+.B --remove-files
+remove files after adding them to the archive
+.TP
+.B -s, --same-order, --preserve-order
+list of names to extract is sorted to match archive
+.TP
+.B --same-owner
+create extracted files with the same ownership
+.TP
+.B --numeric-owner
+always use numbers for user/group names
+.TP
+.B -S, --sparse
+handle sparse files efficiently
+.TP
+.B -T, --files-from F
+get names to extract or create from file F
+.TP
+.B --null
+-T reads null-terminated names, disable -C
+.TP
+.B --totals
+print total bytes written with --create
+.TP
+.B -v, --verbose
+verbosely list files processed
+.TP
+.B -V, --label NAME
+create archive with volume name NAME
+.TP
+.B --version
+print tar program version number
+.TP
+.B -w, --interactive, --confirmation
+ask for confirmation for every action
+.TP
+.B -W, --verify
+attempt to verify the archive after writing it
+.TP
+.B --exclude FILE
+exclude file FILE
+.TP
+.B -X, --exclude-from FILE
+exclude files listed in FILE
+.TP
+.B -Z, --compress, --uncompress
+filter the archive through compress
+.TP
+.B -z, --gzip, --ungzip
+filter the archive through gzip
+.TP
+.B --use-compress-program PROG
+filter the archive through PROG (which must accept -d)
+.TP
+.B --block-compress
+block the output of compression program for tapes
+.TP
+.B -[0-7][lmh]
+specify drive and density
+.SH BUGS
+.LP
+The GNU folks, in general, abhor man pages, and create info documents instead.
+The maintainer of tar falls into this category. This man page is neither
+complete, nor current, and was included in the Debian Linux packaging of tar
+entirely to reduce the frequency with which the lack of a man page gets
+reported as a bug in our defect tracking system.
+
+If you really want to understand tar, then you should run info and read the
+tar info pages, or use the info mode in emacs.
+
diff --git a/source/a/tar/tar.SlackBuild b/source/a/tar/tar.SlackBuild
new file mode 100755
index 000000000..43181ccbe
--- /dev/null
+++ b/source/a/tar/tar.SlackBuild
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+# Copyright 2005-2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Slackware build script for tar
+
+VERSION=1.22
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-tar
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+# This old version is the only one that won't clobber symlinks, e.g.:
+# someone moves /opt to /usr/opt and makes a symlink. With newer
+# versions of tar, installing any new package will remove the /opt
+# symlink and plop down a new directory there.
+# Well, there's a lot of other bugs (the remote stuff particularly I'm
+# told is flaky) in tar-1.13, so it'll only be here now for use by the
+# Slackware package utils. And, we'll even let people remove it and
+# the pkgutils will still try to work (but eventually they'll pay the
+# price :)
+cd $TMP
+rm -rf tar-1.13
+tar xvf $CWD/tar-1.13.tar.gz || exit 1
+cd tar-1.13 || exit 1
+zcat $CWD/tar-1.13.bzip2.diff.gz | patch -p1 --verbose || exit 1
+# The original config.{guess,sub} do not work on x86_64
+cp -p /usr/share/libtool/config.{guess,sub} .
+chown -R root:root .
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --disable-nls \
+ --build=$ARCH-slackware-linux
+make $NUMJOBS || make || exit 1
+mkdir -p $PKG/bin
+cat src/tar > $PKG/bin/tar-1.13
+chmod 0755 $PKG/bin/tar-1.13
+# End building of tar-1.13
+
+cd $TMP
+rm -rf tar-$VERSION
+tar xvf $CWD/tar-$VERSION.tar.bz2 || exit 1
+cd tar-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Don't spew "Record size = foo blocks" messages:
+zcat $CWD/tar.norecordsizespam.diff.gz | patch -p1 --verbose || exit 1
+
+# The "A lone zero block at %s" messages also cause problems:
+zcat $CWD/tar.nolonezero.diff.gz | patch -p1 --verbose || exit 1
+
+# Add support for *.txz files (our packages)
+zcat $CWD/tar-1.22-support_txz.diff.gz | patch -p1 --verbose || exit1
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/tar-$VERSION \
+ --enable-backup-scripts \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mv $PKG/usr/bin/tar $PKG/bin
+( cd $PKG/usr/bin ; ln -sf /bin/tar . )
+( cd $PKG/bin ; ln -sf tar tar-$VERSION )
+
+# Support "historic" rmt locations:
+mkdir -p $PKG/{etc,sbin}
+( cd $PKG/etc
+ ln -sf /usr/libexec/rmt .
+ cd $PKG/sbin
+ ln -sf /usr/libexec/rmt .
+)
+
+mkdir -p $PKG/usr/man/man{1,8}
+cat $CWD/tar.1.gz > $PKG/usr/man/man1/tar.1.gz
+cat $CWD/rmt.8.gz > $PKG/usr/man/man8/rmt.8.gz
+
+rm -f $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/tar-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING NEWS PORTS README THANKS TODO \
+ $PKG/usr/doc/tar-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/tar-$VERSION-$ARCH-$BUILD.tgz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/tar-$VERSION
+ rm -rf $PKG
+fi
+
diff --git a/source/a/tar/tar.nolonezero.diff b/source/a/tar/tar.nolonezero.diff
new file mode 100644
index 000000000..3c6f6f97b
--- /dev/null
+++ b/source/a/tar/tar.nolonezero.diff
@@ -0,0 +1,25 @@
+--- ./src/list.c.orig 2004-05-10 04:49:09.000000000 -0700
++++ ./src/list.c 2004-06-06 13:13:23.000000000 -0700
+@@ -138,6 +138,14 @@
+
+ if (!ignore_zeros_option)
+ {
++
++ /*
++ * According to POSIX tar specs, this is wrong, but on the web
++ * there are some tar specs that can trigger this, and some tar
++ * implementations create tars according to that spec. For now,
++ * let's not be pedantic about issuing the warning.
++ */
++#if 0
+ char buf[UINTMAX_STRSIZE_BOUND];
+
+ status = read_header (false);
+@@ -145,6 +153,7 @@
+ break;
+ WARN ((0, 0, _("A lone zero block at %s"),
+ STRINGIFY_BIGINT (current_block_ordinal (), buf)));
++#endif
+ break;
+ }
+ status = prev_status;
diff --git a/source/a/tar/tar.norecordsizespam.diff b/source/a/tar/tar.norecordsizespam.diff
new file mode 100644
index 000000000..b7d1b7a9f
--- /dev/null
+++ b/source/a/tar/tar.norecordsizespam.diff
@@ -0,0 +1,20 @@
+--- ./src/buffer.c.orig 2009-03-05 01:04:13.000000000 -0600
++++ ./src/buffer.c 2009-03-09 20:17:50.000000000 -0500
+@@ -688,7 +688,7 @@
+ more = record_start->buffer + status;
+ left = record_size - status;
+
+- if (left && left % BLOCKSIZE == 0
++ /* if (left && left % BLOCKSIZE == 0
+ && verbose_option
+ && record_start_block == 0 && status != 0)
+ {
+@@ -698,7 +698,7 @@
+ "Record size = %lu blocks",
+ rsize),
+ rsize));
+- }
++ } */
+
+ while (left % BLOCKSIZE != 0
+ || (left && status && read_full_records))
diff --git a/source/a/tcsh/doinst.sh b/source/a/tcsh/doinst.sh
new file mode 100644
index 000000000..d351e5057
--- /dev/null
+++ b/source/a/tcsh/doinst.sh
@@ -0,0 +1,8 @@
+if fgrep tcsh etc/shells 1> /dev/null 2> /dev/null ; then
+ GOOD=y
+else
+ echo "/bin/tcsh" >> etc/shells
+ echo "/bin/csh" >> etc/shells
+fi
+( cd bin ; rm -rf csh )
+( cd bin ; ln -sf tcsh csh )
diff --git a/source/a/tcsh/slack-desc b/source/a/tcsh/slack-desc
new file mode 100644
index 000000000..623ad4580
--- /dev/null
+++ b/source/a/tcsh/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+tcsh: tcsh (C shell)
+tcsh:
+tcsh: tcsh is an enhanced but completely compatible version of the Berkeley
+tcsh: UNIX C shell, csh(1). It is a command language interpreter usable both
+tcsh: as an interactive login shell and a shell script command processor. It
+tcsh: includes a command-line editor, programmable word completion, spelling
+tcsh: correction, a history mechanism, job control, and a C-like syntax.
+tcsh:
+tcsh:
+tcsh:
+tcsh:
diff --git a/source/a/tcsh/tcsh.SlackBuild b/source/a/tcsh/tcsh.SlackBuild
new file mode 100755
index 000000000..653964787
--- /dev/null
+++ b/source/a/tcsh/tcsh.SlackBuild
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=6.15.00
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-tcsh
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf tcsh-$VERSION
+tar xjvf $CWD/tcsh-$VERSION.tar.bz2 || exit 1
+cd tcsh-$VERSION
+
+# The LS_COLORS variable shared by tcsh has new options in recent
+# versions of coreutils that cause tcsh to exit, so disable the
+# built-in color ls:
+zcat $CWD/tcsh.nobuiltincolorls.diff.gz | patch -p1 --verbose || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix= \
+ $ARCH-slackware-linux
+make -j4 || exit 1
+mkdir -p $PKG/etc
+mkdir -p $PKG/bin
+cat tcsh > $PKG/bin/tcsh
+chmod 755 $PKG/bin/tcsh
+mkdir -p $PKG/usr/man/man1
+cat tcsh.man | gzip -9c > $PKG/usr/man/man1/tcsh.1.gz
+echo '.so man1/tcsh.1' | gzip -9c > $PKG/usr/man/man1/csh.1.gz
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/usr/doc/tcsh-$VERSION
+cp -a \
+ BUGS FAQ Fixes NewThings Ported README README.imake WishList Y2K \
+ $PKG/usr/doc/tcsh-$VERSION
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/tcsh-$VERSION-$ARCH-$BUILD.txz
+
+# Clean up the extra stuff:
+if [ "$1" = "--cleanup" ]; then
+ rm -rf $TMP/tcsh-${VERSION}
+ rm -rf $PKG
+fi
diff --git a/source/a/tcsh/tcsh.nobuiltincolorls.diff b/source/a/tcsh/tcsh.nobuiltincolorls.diff
new file mode 100644
index 000000000..2fd1c2896
--- /dev/null
+++ b/source/a/tcsh/tcsh.nobuiltincolorls.diff
@@ -0,0 +1,11 @@
+--- ./config_f.h.orig 2005-03-04 07:46:04.000000000 -0600
++++ ./config_f.h 2006-02-09 14:30:59.000000000 -0600
+@@ -174,7 +174,7 @@
+ * COLOR_LS_F Do you want to use builtin color ls-F ?
+ *
+ */
+-#define COLOR_LS_F
++#undef COLOR_LS_F
+
+ /*
+ * COLORCAT Do you want to colorful message ?
diff --git a/source/a/time/slack-desc b/source/a/time/slack-desc
new file mode 100644
index 000000000..633c58161
--- /dev/null
+++ b/source/a/time/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+time: time (the GNU time command for measuring program resource use)
+time:
+time: The `time' command runs another program, then displays information
+time: about the resources used by that program, collected by the system
+time: while the program was running.
+time:
+time: GNU time was originally written by David Keppel, with later versions
+time: worked on by David MacKenzie, Arne Henrik Juul, and Francois Pinard.
+time:
+time:
+time:
diff --git a/source/a/time/time.SlackBuild b/source/a/time/time.SlackBuild
new file mode 100755
index 000000000..108e7a8b6
--- /dev/null
+++ b/source/a/time/time.SlackBuild
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.7
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-time
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+cd $TMP
+rm -rf time-${VERSION}
+tar xvzf $CWD/time-${VERSION}.tar.gz
+cd time-${VERSION}
+chown -R root:root .
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ $ARCH-slackware-linux
+make || exit 1
+mkdir -p $PKG/usr/bin
+cat time > $PKG/usr/bin/time
+chmod 755 $PKG/usr/bin/time
+mkdir -p $PKG/usr/info
+cat time.info | gzip -9c > $PKG/usr/info/time.info.gz
+mkdir -p $PKG/usr/doc/time-${VERSION}
+cp -a \
+ AUTHORS COPYING NEWS README \
+ $PKG/usr/doc/time-${VERSION}
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/time-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/tree/slack-desc b/source/a/tree/slack-desc
new file mode 100644
index 000000000..4140d110e
--- /dev/null
+++ b/source/a/tree/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+tree: tree (a program to display a directory tree)
+tree:
+tree: Tree is a recursive directory listing program that produces a depth
+tree: indented listing of files, which is colorized ala dircolors if the
+tree: LS_COLORS environment variable is set and output is to tty. With no
+tree: arguments, tree lists the files in the current directory.
+tree:
+tree: The tree utility was written by Steve Baker.
+tree:
+tree:
+tree:
diff --git a/source/a/tree/tree.SlackBuild b/source/a/tree/tree.SlackBuild
new file mode 100755
index 000000000..d20c3c1eb
--- /dev/null
+++ b/source/a/tree/tree.SlackBuild
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+# Copyright 2007-2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+VERSION=1.5.2.2
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-tree
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf tree-$VERSION
+tar xvf $CWD/tree-$VERSION.tar.?z* || exit 1
+cd tree-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+make -j2 || exit 1
+mkdir -p $PKG/usr/bin
+cat tree > $PKG/usr/bin/tree
+chmod 755 $PKG/usr/bin/tree
+mkdir -p $PKG/usr/man/man1
+cat man/tree.1 | gzip -9c > $PKG/usr/man/man1/tree.1.gz
+mkdir -p $PKG/usr/doc/tree-$VERSION
+cp -a \
+ CHANGES LICENSE README \
+ $PKG/usr/doc/tree-$VERSION
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/tree-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new
new file mode 100644
index 000000000..25811703d
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/blacklist.conf.new
@@ -0,0 +1,270 @@
+#
+# Listing a module here prevents the hotplug scripts from loading it.
+# Usually that'd be so that some other driver will bind it instead,
+# no matter which driver happens to get probed first. Sometimes user
+# mode tools can also control driver binding.
+
+# PC Speaker support:
+# This one is loaded by /etc/rc.d/rc.modules. If you don't like
+# the beeps and buzz from speaker, edit /etc/rc.d/rc.modules.
+blacklist pcspkr
+
+# tulip ... de4x5, xircom_tulip_cb, dmfe (...) handle same devices
+blacklist de4x5
+
+# At least 2.4.3 and later xircom_tulip doesn't have that conflict
+# xircom_tulip_cb
+blacklist dmfe
+
+#evbug is a debug tool and should be loaded explicitly
+blacklist evbug
+
+# Alternate Intel EtherExpress Pro/100 support driver. List it
+# here so it won't conflict with an already-loaded e100 module.
+blacklist eepro100
+
+# Alternate 8139 driver. Some 8139 cards need this specific driver,
+# though...
+blacklist 8139cp
+
+# Deprecated BCM4318 driver.
+blacklist bcm43xx
+
+# Modules used to run a wireless adaptor as an access point. These
+# conflict with the normal driver for the device, and so should be
+# loaded manually.
+blacklist hostap_cs
+blacklist hostap_pci
+blacklist hostap_plx
+blacklist hostap
+
+# Ethernet over IEEE1394 module. In too many cases this will load
+# when there's no eth1394 device present (just an IEEE1394 port)
+blacklist eth1394
+
+# This module has also been known to cause crashes with some hardware.
+blacklist hw_random
+
+# The kernel lists this as "experimental", but for now it's "broken"
+blacklist via-ircc
+
+# ALSA modules to support sound modems. These should be loaded manually
+# if needed. For most people they just break sound support...
+blacklist snd-atiixp-modem
+blacklist snd-intel8x0m
+blacklist snd-via82xx-modem
+
+# OSS (Open Sound System) modules. This is the old and deprecated Linux
+# sound system. If you want to use OSS, remove the alsa-driver package
+# and cut out (or comment out) this list. With these modules
+# blacklisted ALSA will load by default.
+blacklist ac97
+blacklist ac97_codec
+blacklist aci
+blacklist ad1816
+blacklist ad1848
+blacklist ad1889
+blacklist adlib_card
+blacklist aedsp16
+blacklist ali5455
+blacklist awe_wave
+blacklist btaudio
+blacklist cmpci
+blacklist cs4232
+blacklist cs4281
+blacklist cs46xx
+blacklist emu10k1
+blacklist es1370
+blacklist es1371
+blacklist esssolo1
+blacklist forte
+blacklist gus
+blacklist i810_audio
+blacklist kahlua
+blacklist mad16
+blacklist maestro
+blacklist maestro3
+blacklist maui
+blacklist mpu401
+blacklist msnd
+blacklist msnd_classic
+blacklist msnd_pinnacle
+blacklist nm256_audio
+blacklist opl3
+blacklist opl3sa
+blacklist opl3sa2
+blacklist pas2
+blacklist pss
+blacklist rme96xx
+blacklist sb
+blacklist sb_lib
+blacklist sgalaxy
+blacklist sonicvibes
+blacklist sound
+blacklist sscape
+blacklist trident
+blacklist trix
+blacklist uart401
+blacklist uart6850
+blacklist v_midi
+blacklist via82cxxx_audio
+blacklist wavefront
+blacklist ymfpci
+
+# Hardware specific video framebuffer modules. If the user wants
+# these, they can load them manually or de-blacklist them. Having
+# them load automatically may lead to funny side effects with
+# certain revisions of video hardware.
+blacklist arcfb
+blacklist aty128fb
+blacklist atyfb
+blacklist cirrusfb
+blacklist clgenfb
+blacklist cyber2000fb
+blacklist fbcon-cfb2
+blacklist fbcon-cfb4
+blacklist fbcon-hga
+blacklist fbcon-mfb
+blacklist fbcon-vga-planes
+blacklist fbgen
+blacklist hgafb
+blacklist i2c-matroxfb
+blacklist i810fb
+blacklist intelfb
+blacklist kyrofb
+blacklist matroxfb_DAC1064
+blacklist matroxfb_Ti3026
+blacklist matroxfb_accel
+blacklist matroxfb_base
+blacklist matroxfb_crtc2
+blacklist matroxfb_g450
+blacklist matroxfb_maven
+blacklist matroxfb_misc
+blacklist neofb
+blacklist nvidiafb
+blacklist pm2fb
+blacklist pm3fb
+blacklist radeonfb
+blacklist rivafb
+blacklist savagefb
+blacklist sisfb
+blacklist sstfb
+blacklist tdfxfb
+blacklist tridentfb
+blacklist vga16fb
+
+# SCSI and SATA controller modules. Typically these are either
+# built into the kernel or loaded with an initrd already.
+blacklist 3w-xxxx
+blacklist 53c7,8xx
+blacklist AM53C974
+blacklist BusLogic
+blacklist NCR53c406a
+blacklist a100u2w
+blacklist advansys
+blacklist aha152x
+blacklist aha1542
+blacklist aha1740
+blacklist aic79xx
+blacklist aic7xxx
+blacklist aic7xxx_old
+blacklist aic94xx
+blacklist ata_piix
+blacklist atp870u
+blacklist cpqfc
+blacklist dc395x
+blacklist dmx3191d
+blacklist dpt_i2o
+blacklist dtc
+blacklist eata
+blacklist eata_dma
+blacklist eata_pio
+blacklist fdomain
+blacklist g_NCR5380
+blacklist g_NCR5380_mmio
+blacklist gdth
+blacklist ide-scsi
+blacklist imm
+blacklist in2000
+blacklist initio
+blacklist ipr
+blacklist ips
+blacklist libata
+blacklist megaraid
+blacklist ncr53c8xx
+blacklist nsp32
+blacklist osst
+blacklist pas16
+blacklist pci2000
+blacklist pci2220i
+blacklist ppa
+blacklist psi240i
+blacklist qla1280
+blacklist qla2100
+blacklist qla2200
+blacklist qla2300
+blacklist qla2322
+blacklist qla2xxx
+blacklist qla6312
+blacklist qla6322
+blacklist qlogicfas
+blacklist qlogicfas408
+blacklist qlogicfc
+blacklist qlogicisp
+blacklist seagate
+blacklist sim710
+blacklist sata_promise
+blacklist sata_sil
+blacklist sata_sis
+blacklist sata_svw
+blacklist sata_sx4
+blacklist sata_via
+blacklist sata_vsc
+blacklist scsi_debug
+blacklist scsi_transport_fc
+blacklist scsi_transport_spi
+blacklist sym53c416
+blacklist sym53c8xx
+blacklist sym53c8xx
+blacklist t128
+blacklist tmscsim
+blacklist u14-34f
+
+# Blacklist all watchdog modules. Many motherboards hangs with them and,
+# if you really need an watchdog you probably know how to load the module
+blacklist acquirewdt
+blacklist advantechwdt
+blacklist alim1535_wdt
+blacklist alim7101_wdt
+blacklist cpu5wdt
+blacklist eurotechwdt
+blacklist hpwdt
+blacklist i6300esb
+blacklist iTCO_vendor_support
+blacklist iTCO_wdt
+blacklist ib700wdt
+blacklist ibmasr
+blacklist it8712f_wdt
+blacklist machzwd
+blacklist mixcomwd
+blacklist pc87413_wdt
+blacklist pcwd
+blacklist pcwd_pci
+blacklist pcwd_usb
+blacklist sbc60xxwdt
+blacklist sbc7240_wdt
+blacklist sbc8360
+blacklist sbc_epx_c3
+blacklist sc1200wdt
+blacklist sc520_wdt
+blacklist scx200_wdt
+blacklist smsc37b787_wdt
+blacklist softdog
+blacklist w83627hf_wdt
+blacklist w83697hf_wdt
+blacklist w83877f_wdt
+blacklist w83977f_wdt
+blacklist wafer5823wdt
+blacklist wdt
+blacklist wdt_pci
+
diff --git a/source/a/udev/config/modprobe.d/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new
new file mode 100644
index 000000000..2ed9305ee
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/isapnp.conf.new
@@ -0,0 +1,15 @@
+# These aliases are here because many PnP modules do not
+# provide aliases for them.
+alias pnp:dPNP0400 parport_pc
+alias pnp:dPNP0401 parport_pc
+alias pnp:dPNP0510 irtty-sir
+alias pnp:dPNP0511 irtty-sir
+alias pnp:dPNP0700 floppy
+alias pnp:dPNP0B00 rtc
+alias acpi:PNP0B00: rtc-cmos
+alias acpi:PNP0B01: rtc-cmos
+alias acpi:PNP0B02: rtc-cmos
+alias pnp:dPNPB02F analog
+alias pnp:dPNP0F13 psmouse
+alias pnp:dPNP0800 pcspkr
+alias pnp:dPNP0303 atkbd
diff --git a/source/a/udev/config/modprobe.d/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf.new
new file mode 100644
index 000000000..70c0d8195
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/psmouse.conf.new
@@ -0,0 +1,6 @@
+# PS/2 mouse support:
+# The default options when the psmouse module can cause problems with KVM
+# switches. If you experience this, you may want to uncomment the line
+# below to use a more basic mouse protocol with the psmouse module:
+#options psmouse proto=imps
+
diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new
new file mode 100644
index 000000000..4b77fd825
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/usb-controller.conf.new
@@ -0,0 +1,4 @@
+# Make sure that ehci-hcd is always loaded before uhci-hci
+# # or ohci-hcd to prevent a kernel warning:
+install uhci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i uhci-hcd
+install ohci-hcd /sbin/modprobe ehci-hcd ; /sbin/modprobe -i ohci-hcd
diff --git a/source/a/udev/config/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new
new file mode 100644
index 000000000..8c238b0dd
--- /dev/null
+++ b/source/a/udev/config/rc.d/rc.udev.new
@@ -0,0 +1,133 @@
+#!/bin/sh
+# This is a script to initialize udev, which populates the /dev
+# directory with device nodes, scans for devices, loads the
+# appropriate kernel modules, and configures the devices.
+
+PATH="/sbin:/bin"
+OPT=""
+
+. /etc/udev/udev.conf
+
+# remove trailing slash from udev_root
+UDEV_ROOT=$(echo "${udev_root}" |sed 's/\/*$//')
+
+case "$1" in
+ start)
+ # Sanity check #1, udev requires that the kernel support tmpfs:
+ if ! grep -wq tmpfs /proc/filesystems ; then
+ echo "Sorry, but you need tmpfs support in the kernel to use udev."
+ echo
+ echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
+ exit 1
+ fi
+
+ # Sanity check #2, make sure that a 2.6.x kernel is new enough:
+ if [ "$(uname -r | cut -f 1,2 -d .)" = "2.6" ]; then
+ if [ "$(uname -r | cut -f 3 -d . | sed 's/[^[:digit:]].*//')" -lt "15" ]; then
+ echo "Sorry, but you need a 2.6.15+ kernel to use udev."
+ echo "Your kernel version is only $(uname -r)."
+ echo
+ echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
+ exit 1
+ fi
+ fi
+
+ # Sanity check #3, make sure the udev package was not removed. If udevd
+ # is not there, this will also shut off this script to prevent further
+ # problems:
+ if [ ! -x /sbin/udevd ]; then
+ chmod 644 /etc/rc.d/rc.udev
+ echo "No udevd daemon found."
+ echo "Turning off udev: chmod 644 /etc/rc.d/rc.udev"
+ echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
+ exit 1
+ fi
+
+ # Disable hotplug helper since udevd listens to netlink:
+ if [ -e /proc/sys/kernel/hotplug ]; then
+ echo "" > /proc/sys/kernel/hotplug
+ fi
+
+ # if udevd is already running, rc.udev start will try to re-run
+ # failed events. Else, it will start udevd.
+ if ps axc | grep -q udevd ; then
+ OPT="--type=failed $OPT"
+ ( cd ${UDEV_ROOT}/.udev
+ for TMPFILE in tmp-rules-*.rules ; do
+ mv $TMPFILE /etc/udev/rules.d/${TMPFILE/tmp-rules--/} 2>/dev/null
+ done
+ )
+ else
+ # Mount tmpfs on $UDEV_ROOT:
+ if ! grep -E -q "^[^[:space:]]+ $UDEV_ROOT tmpfs" /proc/mounts; then
+ # umount shm if needed
+ if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/shm tmpfs" /proc/mounts; then
+ umount -l $UDEV_ROOT/shm
+ fi
+
+ # Umount pts if needed, we will remount it later:
+ if grep -E -q "^[^[:space:]]+ $UDEV_ROOT/pts devpts" /proc/mounts; then
+ umount -l $UDEV_ROOT/pts
+ fi
+
+ # Mount tmpfs on $UDEV_ROOT:
+ # the -n is because we don't want $UDEV_ROOT umounted when
+ # someone (rc.[06]) calls umount -a
+ mount -n -o mode=0755 -t tmpfs tmpfs $UDEV_ROOT
+
+ # Remount pts:
+ mkdir $UDEV_ROOT/pts 2> /dev/null
+ mount -n -o mode=0620,gid=5 -t devpts devpts $UDEV_ROOT/pts
+ fi
+
+ # Add the static nodes to $UDEV_ROOT:
+ cp --preserve=all --recursive --remove-destination /lib/udev/devices/* $UDEV_ROOT
+
+ # Start udevd:
+ echo "Starting udevd: /sbin/udevd --daemon"
+ /sbin/udevd --daemon
+
+ # Create rootdev rules
+ DEVICENUMBER=$( /bin/stat -c %d / )
+ MAJORNUMBER=$(($DEVICENUMBER / 256))
+ MINORNUMBER=$(($DEVICENUMBER % 256))
+
+ echo 'ACTION=="add|change", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules
+
+ fi
+
+ echo "Triggering udev events: /sbin/udevadm trigger $OPT"
+ # Call udevtrigger and udevsettle to do the device configuration:
+ /sbin/udevadm trigger $OPT && /sbin/udevadm settle --timeout=120
+
+ ;;
+ stop)
+ echo "Stopping udevd"
+ if [ -e /proc/sys/kernel/hotplug ]; then
+ echo /sbin/hotplug > /proc/sys/kernel/hotplug
+ fi
+ killall udevd
+ ;;
+ restart)
+ echo "Restarting udevd"
+ killall udevd
+ sleep 5
+ udevd --daemon
+ ;;
+ reload)
+ echo "Reloading udev rules"
+ udevadm control --reload-rules
+ cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT
+ ;;
+ force-reload)
+ echo "Updating all available device nodes in $UDEV_ROOT"
+ udevadm control --reload-rules
+ rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk
+ cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT
+ ;;
+
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|force-reload}"
+ exit 1
+ ;;
+esac
diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules
new file mode 100644
index 000000000..29b6071e0
--- /dev/null
+++ b/source/a/udev/config/rules.d/40-slackware.rules
@@ -0,0 +1,16 @@
+# /lib/udev/rules.d/40-slackware.rules
+#
+# Slackware custom udev rules
+# Also see the following Slackware-provided custom rules files:
+# 65-permissions.rules and 90-network.rules
+#
+# Any change in this file will be overwritten in upgrades. Put your
+# custom rules somewhere else (90-local.rules is a good idea).
+#
+# See the udev man page to know the parameters you can use in udev
+# rules.
+#
+
+# input devices
+KERNEL=="mice", SYMLINK+="mouse"
+
diff --git a/source/a/udev/config/rules.d/65-permissions.rules b/source/a/udev/config/rules.d/65-permissions.rules
new file mode 100644
index 000000000..b0cfb2590
--- /dev/null
+++ b/source/a/udev/config/rules.d/65-permissions.rules
@@ -0,0 +1,52 @@
+# Slackware permission rules
+#
+# These rules are here instead of 40-slackware.rules because
+# many of them need to run after the block section in
+# 50-udev.default.rules
+#
+# Remember, in any upgrade, this file will be overwritten.
+# Put your custom rules somewhere else (90-local.rules is
+# a good idea).
+#
+
+# all disks with group disk
+KERNEL!="fd*", SUBSYSTEM=="block", GROUP="disk"
+
+# permissions for IDE floppy devices
+KERNEL=="hd*[!0-9]", SUBSYSTEMS=="ide", ATTRS{media}=="floppy", \
+ SYMLINK+="floppy floppy-%k", OPTIONS+="ignore_remove"
+KERNEL=="hd*[0-9]", ATTRS{media}=="floppy", ATTRS{removable}=="1", \
+ SYMLINK+="floppy-%k", OPTIONS+="ignore_remove"
+
+# put all removable devices in group "plugdev"
+KERNEL=="hd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev"
+KERNEL=="hd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev"
+KERNEL=="sd*[!0-9]", ATTR{removable}=="1", GROUP="plugdev"
+KERNEL=="sd*[0-9]", ATTRS{removable}=="1", GROUP="plugdev"
+
+# Many hot-pluggable devices (ZIP, Jazz, LS-120, etc...)
+# need to be in plugdev, too.
+KERNEL=="diskonkey*", GROUP="plugdev"
+KERNEL=="jaz*", GROUP="plugdev"
+KERNEL=="pocketzip*", GROUP="plugdev"
+KERNEL=="zip*", GROUP="plugdev"
+KERNEL=="ls120", GROUP="plugdev"
+KERNEL=="microdrive*", GROUP="plugdev"
+
+# CD group and permissions
+ENV{ID_CDROM}=="?*", GROUP="cdrom", MODE="0660"
+KERNEL=="pktcdvd", GROUP="cdrom", MODE="0660"
+KERNEL=="pktcdvd[0-9]*", GROUP="cdrom", MODE="0660"
+# permissions for SCSI sg devices
+SUBSYSTEMS=="scsi", KERNEL=="s[gt][0-9]*", ATTRS{type}=="5", \
+ GROUP="cdrom", MODE="0660"
+
+# Make DRI video devices usable by anyone in group "video":
+KERNEL=="card[0-9]*",GROUP:="video"
+
+# alsa devices
+SUBSYSTEM=="sound", GROUP="audio"
+
+# Make the real time clock readable by all, and writable by root:
+KERNEL=="rtc|rtc0", MODE="0644"
+
diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules
new file mode 100644
index 000000000..03f2ddc76
--- /dev/null
+++ b/source/a/udev/config/rules.d/90-network.rules
@@ -0,0 +1,5 @@
+# This file will be overwritten in next upgrade. Please put your
+# custom rules somewhere else (90-local.rules is a good idea)
+
+SUBSYSTEM=="net", NAME=="?*", ACTION=="add", RUN+="nethelper.sh $env{INTERFACE} start"
+SUBSYSTEM=="net", NAME=="?*", ACTION=="remove", RUN+="nethelper.sh $env{INTERFACE} stop"
diff --git a/source/a/udev/config/scripts/nethelper.sh b/source/a/udev/config/scripts/nethelper.sh
new file mode 100755
index 000000000..9e1720271
--- /dev/null
+++ b/source/a/udev/config/scripts/nethelper.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+DEVNAME="$1"
+COMMAND="$2"
+
+testwrite() {
+ if touch /var/run/checkrw 2>/dev/null ; then
+ rm -rf /var/run/checkrw
+ RW=1
+ fi
+}
+
+case $DEVNAME in
+ eth*|ath*|wlan*|ra*|sta*|ctc*|lcs*|hsi*)
+ case $COMMAND in
+ 'start')
+ testwrite
+
+ if [ $RW ]; then
+ if [ -x /etc/rc.d/rc.inet1 ]; then
+ if ! /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then
+ /etc/rc.d/rc.inet1 ${DEVNAME}_start
+ fi
+ fi
+ exit 0
+ else
+ exit 1
+ fi
+ ;;
+ 'stop')
+ if [ -x /etc/rc.d/rc.inet1 ]; then
+ if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} "; then
+ /etc/rc.d/rc.inet1 ${DEVNAME}_stop
+ fi
+ fi
+ # Does dhcpcd appear to still be running on the
+ # interface? If so, try to stop it.
+ if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid -o -r /var/run/dhcpcd-$DEVNAME.pid ]; then
+ /sbin/dhcpcd -k -d $DEVNAME
+ # Force garbage removal, if needed:
+ if [ -r /etc/dhcpc/dhcpcd-$DEVNAME.pid ]; then
+ /bin/rm -f /etc/dhcpc/dhcpcd-$DEVNAME.pid
+ elif [ -r /var/run/dhcpcd-$DEVNAME.pid ]; then
+ /bin/rm -f /var/run/dhcpcd-$DEVNAME.pid
+ fi
+ fi
+ # If the interface is now down, exit with a status of 0:
+ if /sbin/ifconfig | /bin/grep -q "^${DEVNAME} " ; then
+ exit 0
+ fi
+ ;;
+ *)
+ echo "usage $0 interface start|stop"
+ exit 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Interface $DEVNAME not supported."
+ exit 1
+ ;;
+esac
+exit 0
diff --git a/source/a/udev/config/udev.conf b/source/a/udev/config/udev.conf
new file mode 100644
index 000000000..b0421a08b
--- /dev/null
+++ b/source/a/udev/config/udev.conf
@@ -0,0 +1,14 @@
+# udev.conf
+# The main config file for udev
+#
+# This file can be used to override some of udev's default values for where it
+# looks for files, and where it places device nodes.
+
+# udev_root - where in the filesystem to place the device nodes
+udev_root="/dev/"
+
+# udev_log - The initial syslog(3) priority: "err", "info", "debug" or
+# its numerical equivalent. For runtime debugging, the daemons
+# internal state can be changed with: udevcontrol log_priority=<value>
+udev_log="err"
+
diff --git a/source/a/udev/doinst.sh b/source/a/udev/doinst.sh
new file mode 100644
index 000000000..5e737ca0c
--- /dev/null
+++ b/source/a/udev/doinst.sh
@@ -0,0 +1,39 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Keep same perms on rc.udev.new:
+if [ -e etc/rc.d/rc.udev ]; then
+ cp -a etc/rc.d/rc.udev etc/rc.d/rc.udev.new.incoming
+ cat etc/rc.d/rc.udev.new > etc/rc.d/rc.udev.new.incoming
+ mv etc/rc.d/rc.udev.new.incoming etc/rc.d/rc.udev.new
+fi
+
+# There's no reason for a user to edit rc.udev, so overwrite it:
+if [ -r etc/rc.d/rc.udev.new ]; then
+ mv etc/rc.d/rc.udev.new etc/rc.d/rc.udev
+fi
+
+# This should catch *all* files in /etc/modprobe.d/ and move them over to
+# have .conf extensions
+for modfile in $(ls etc/modprobe.d/ | grep -v "\.\(conf\|bak\|orig\|new\)"); do
+ if [ -e etc/modprobe.d/$modfile -a ! -e etc/modprobe.d/$modfile.conf ]; then
+ mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.conf
+ elif [ -e etc/modprobe.d/$modfile -a -e etc/modprobe.d/$modfile.conf ]; then
+ mv etc/modprobe.d/$modfile etc/modprobe.d/$modfile.bak
+ fi
+done
+
+config etc/modprobe.d/blacklist.conf.new
+config etc/modprobe.d/isapnp.conf.new
+config etc/modprobe.d/psmouse.conf.new
+config etc/modprobe.d/usb-controller.conf.new
+
diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff
new file mode 100644
index 000000000..0ff218a6c
--- /dev/null
+++ b/source/a/udev/rule_generator.diff
@@ -0,0 +1,80 @@
+diff -Naur udev-114/extras/rule_generator/write_cd_rules udev-114slk/extras/rule_generator/write_cd_rules
+--- udev-114/extras/rule_generator/write_cd_rules 2007-08-05 09:08:47.000000000 -0300
++++ udev-114slk/extras/rule_generator/write_cd_rules 2007-08-22 20:17:24.000000000 -0300
+@@ -3,7 +3,8 @@
+ # This script is run if an optical drive lacks a rule for persistent naming.
+ #
+ # It adds symlinks for optical drives based on the device class determined
+-# by cdrom_id and used ID_PATH to identify the device.
++# by cdrom_id and used ID_PATH or ID_SERIAL or ID_MODEL and ID_REVISION
++# to identify the device.
+ #
+ # (C) 2006 Marco d'Itri <md@Linux.IT>
+ #
+@@ -97,18 +98,59 @@
+ choose_rules_file
+
+ link_num=$(find_next_available 'cdrom[0-9]*')
++[ "$link_num" = "" ] && link_num=0
+
+ match="ENV{ID_CDROM}==\"?*\", $RULE"
+
+ comment="$ID_MODEL ($ID_PATH)"
+-
+ write_rule "$match" "cdrom$link_num" "$comment"
+-[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \
+- write_rule "$match" "cdrw$link_num"
+-[ "$ID_CDROM_DVD" ] && \
+- write_rule "$match" "dvd$link_num"
+-[ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ] && \
+- write_rule "$match" "dvdrw$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' cdrom)" = "" ]; then
++ write_rule "$match" "cdrom"
++ fi
++
++ if [ "$ID_CDROM_CD_R" ]; then
++ write_rule "$match" "cdr$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' cdr)" = "" ]; then
++ write_rule "$match" "cdr"
++ fi
++
++ write_rule "$match" "cdwriter$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' cdwriter)" = "" ]; then
++ write_rule "$match" "cdwriter"
++ fi
++
++ if [ "$ID_CDROM_CD_RW" ]; then
++ write_rule "$match" "cdrw$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' cdrw)" = "" ]; then
++ write_rule "$match" "cdrw"
++ fi
++ fi
++
++ if [ "$(find_all_rules 'SYMLINK+=' writer)" = "" ]; then
++ write_rule "$match" "writer"
++ fi
++ fi
++
++ if [ "$ID_CDROM_DVD" ]; then
++ write_rule "$match" "dvd$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' dvd)" = "" ]; then
++ write_rule "$match" "dvd"
++ fi
++
++ if [ "$ID_CDROM_DVD_R" -o "$ID_CDROM_DVD_RW" -o "$ID_CDROM_DVD_RAM" ]; then
++ write_rule "$match" "dvdrw$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' dvdrw)" = "" ]; then
++ write_rule "$match" "dvdrw"
++ fi
++
++ write_rule "$match" "dvdwriter$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then
++ write_rule "$match" "dvdwriter"
++ fi
++ fi
++ fi
++
++
+
+ unlock_rules_file
+
diff --git a/source/a/udev/slack-desc b/source/a/udev/slack-desc
new file mode 100644
index 000000000..c411756c8
--- /dev/null
+++ b/source/a/udev/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler-------------------------------------------------------|
+udev: udev (dynamic device directory system)
+udev:
+udev: udev provides a dynamic device directory containing only the files
+udev: for the devices which are actually present. It creates or removes
+udev: device node files usually located in the /dev directory.
+udev:
+udev: udev requires a 2.6 or newer kernel.
+udev:
+udev: Kay Sievers is the udev maintainer.
+udev:
+udev:
diff --git a/source/a/udev/udev-141.tar.bz2.sign b/source/a/udev/udev-141.tar.bz2.sign
new file mode 100644
index 000000000..a30826919
--- /dev/null
+++ b/source/a/udev/udev-141.tar.bz2.sign
@@ -0,0 +1,8 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.9 (GNU/Linux)
+Comment: See http://www.kernel.org/signature.html for info
+
+iD8DBQBJ3TgkyGugalF9Dw4RAtJCAJ4+ns9bz4ZIu+3ecfra/BWrn3euqwCeOFQZ
+6A7UqbHlTlD48sOk249ZATA=
+=AY1A
+-----END PGP SIGNATURE-----
diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild
new file mode 100755
index 000000000..0c6327486
--- /dev/null
+++ b/source/a/udev/udev.SlackBuild
@@ -0,0 +1,140 @@
+#!/bin/sh
+
+# Copyright 2006, 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-141}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-3}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-udev
+
+rm -rf $PKG
+mkdir -p $TMP $PKG/lib/udev
+cd $TMP
+rm -rf udev-$VERSION
+tar xvf $CWD/udev-$VERSION.tar.bz2 || exit 1
+cd udev-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/rule_generator.diff.gz | patch -p1 --verbose || exit 1
+
+./configure \
+ --prefix=/usr \
+ --exec-prefix=/ \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --with-libdir-name=lib${LIBDIRSUFFIX} \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null || true
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+)
+
+# scsi_id and vol_id are needed by multipath
+( cd $PKG/sbin
+ ln -s ../lib/udev/scsi_id scsi_id
+ ln -s ../lib/udev/vol_id vol_id
+)
+
+mkdir -p \
+ $PKG/etc/modprobe.d \
+ $PKG/etc/rc.d \
+ $PKG/etc/udev/rules.d \
+ $PKG/lib/firmware
+
+# Yes, these will clobber existing config files.
+cp -a $CWD/config/udev.conf $PKG/etc/udev/udev.conf
+# Copy Slackware custom rules
+cp -a $CWD/config/rules.d/* $PKG/lib/udev/rules.d/
+# Copy some files from upstream
+cp -a rules/packages/40-alsa.rules $PKG/lib/udev/rules.d/
+cp -a rules/packages/40-isdn.rules $PKG/lib/udev/rules.d/
+cp -a rules/packages/40-zaptel.rules $PKG/lib/udev/rules.d/
+cp -a rules/packages/40-infiniband.rules $PKG/lib/udev/rules.d/
+#cp -a rules/packages/40-pilot-links.rules $PKG/etc/udev/rules.d/
+#cp -a rules/packages/64-md-raid.rules $PKG/etc/udev/rules.d/
+# Now the init script and module-init-tools stuff
+cp -a $CWD/config/rc.d/rc.udev.new $PKG/etc/rc.d/rc.udev.new
+cp -a $CWD/config/modprobe.d/* $PKG/etc/modprobe.d
+
+chown -R root:root $PKG/etc
+find $PKG/etc -type f -exec chmod 644 {} \;
+find $PKG/etc -type d -exec chmod 755 {} \;
+chmod 755 $PKG/etc/rc.d/rc.udev.new
+
+# Add extra device nodes to the package that udev doesn't make:
+tar xvf $CWD/udev-fixed-devices.tar.gz -C $PKG
+
+# Add various helper scripts:
+for file in $CWD/config/scripts/* ; do
+ cp -a $file $PKG/lib/udev/
+done
+chown -R root:root $PKG/lib/udev
+chmod 755 $PKG/lib/udev/*
+
+mkdir -p $PKG/usr/doc/udev-$VERSION
+cp -a \
+ COPYING* FAQ README* TODO RELEASE-NOTES docs \
+ $PKG/usr/doc/udev-$VERSION
+
+# Compress and fix manpage symlinks:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c y $TMP/udev-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/unarj/Makefile b/source/a/unarj/Makefile
new file mode 100644
index 000000000..95483e751
--- /dev/null
+++ b/source/a/unarj/Makefile
@@ -0,0 +1,21 @@
+#
+# Makefile for unarj under Linux
+# by Arrigo Triulzi ({a.triulzi,agbt}@{imperial,ic}.ac.uk)
+#
+
+CC = gcc
+CFLAGS = -O2 -DUNIX
+INSTALLDIR=/usr/bin
+
+unarj: unarj.o decode.o environ.o
+ gcc $(CFLAGS) -o unarj unarj.o decode.o environ.o
+
+clean:
+ rm -f core unarj *.o *.out
+
+install:
+ cp unarj $(INSTALLDIR)
+
+unarj.o: unarj.c unarj.h Makefile
+environ.o: environ.c unarj.h Makefile
+decode.o: decode.c unarj.h Makefile
diff --git a/source/a/unarj/slack-desc b/source/a/unarj/slack-desc
new file mode 100644
index 000000000..14b080098
--- /dev/null
+++ b/source/a/unarj/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+unarj: unarj (a command-line utility for decompressing .arj archives)
+unarj:
+unarj: This is a simple command-line tool for decompressing .arj files.
+unarj: Thanks to Haruhiko Okumura and ARJ Software, Inc. for providing this
+unarj: source code free of charge.
+unarj:
+unarj: UNARJ software and manual copyright (c) 1990-2002 ARJ Software, Inc.
+unarj: All rights reserved.
+unarj:
+unarj:
+unarj:
diff --git a/source/a/unarj/unarj.SlackBuild b/source/a/unarj/unarj.SlackBuild
new file mode 100755
index 000000000..56097eb2c
--- /dev/null
+++ b/source/a/unarj/unarj.SlackBuild
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=265
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-unarj
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf unarj${VERSION}
+tar xzvf $CWD/unarj${VERSION}.tar.gz
+cd unarj${VERSION}
+chown -R root:root .
+cp -a $CWD/Makefile.gz .
+gzip --force -d Makefile.gz
+make || exit 1
+mkdir -p $PKG/usr/bin
+cat unarj > $PKG/usr/bin/unarj
+chmod 755 $PKG/usr/bin/unarj
+mkdir -p $PKG/usr/doc/unarj${VERSION}
+cp -a \
+ *.txt \
+ $PKG/usr/doc/unarj${VERSION}
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/unarj-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/usbutils/slack-desc b/source/a/usbutils/slack-desc
new file mode 100644
index 000000000..ffca25c28
--- /dev/null
+++ b/source/a/usbutils/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+usbutils: usbutils (USB utilities)
+usbutils:
+usbutils: lsusb displays detailed information about all USB buses and devices
+usbutils: in the system.
+usbutils:
+usbutils: usbmodules lists the kernel modules for a plugged in USB device.
+usbutils:
+usbutils: See the manual pages for more details.
+usbutils:
+usbutils:
+usbutils:
diff --git a/source/a/usbutils/usbutils.SlackBuild b/source/a/usbutils/usbutils.SlackBuild
new file mode 100755
index 000000000..dcb14b466
--- /dev/null
+++ b/source/a/usbutils/usbutils.SlackBuild
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=${VERSION:-0.82}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-usbutils
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf usbutils-$VERSION
+tar xvf $CWD/usbutils-$VERSION.tar.?z* || exit 1
+cd usbutils-$VERSION || exit 1
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Fetch the latest usb.ids:
+rm -f usb.ids*
+wget $(grep 'SRC=' update-usbids.sh.in | cut -d= -f2- | tr -d \")
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sbindir=/sbin \
+ --mandir=/usr/man \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Get rid of this redundant file:
+rm -f $PKG/usr/share/usb.ids.gz
+
+# The usbids are kept under /usr, so it makes no sense at all to have
+# this util in /sbin rather than /usr/sbin:
+mkdir -p $PKG/usr/sbin
+mv $PKG/sbin/update-usbids.sh $PKG/usr/sbin/update-usbids.sh
+
+# Now that they install the util as "update-usbids.sh" instead of
+# "update-usbids", we have to make a compatibility symlink in case
+# anyone is updating this with a cron job or some such:
+( cd $PKG/usr/sbin ; ln -sf update-usbids.sh update-usbids )
+
+# And, since they put the util in /sbin, we'd better at least make the
+# upstream name available there too...
+( cd $PKG/sbin ; ln -sf /usr/sbin/update-usbids.sh . )
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/usbutils-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog NEWS README \
+ $PKG/usr/doc/usbutils-$VERSION
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/usbutils-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/usbutils/usbutils.ids.dest b/source/a/usbutils/usbutils.ids.dest
new file mode 100644
index 000000000..67111881e
--- /dev/null
+++ b/source/a/usbutils/usbutils.ids.dest
@@ -0,0 +1,11 @@
+--- ./update-usbids.sh.orig 2005-01-22 17:03:47.000000000 -0600
++++ ./update-usbids.sh 2007-01-04 17:14:28.000000000 -0600
+@@ -4,7 +4,7 @@
+
+ set -e
+ SRC="http://www.linux-usb.org/usb.ids"
+-DEST=usb.ids
++DEST=/usr/share/usb.ids
+
+ if which wget >/dev/null ; then
+ DL="wget -O $DEST.new $SRC"
diff --git a/source/a/utempter/doinst.sh b/source/a/utempter/doinst.sh
new file mode 100644
index 000000000..94c6231df
--- /dev/null
+++ b/source/a/utempter/doinst.sh
@@ -0,0 +1,10 @@
+if ! grep "^utmp:" etc/group 1> /dev/null 2> /dev/null ; then
+ if ! grep ":22:" etc/group 1> /dev/null 2> /dev/null ; then
+ # we'll be adding this in the etc package anyway.
+ echo "utmp::22:" >> etc/group
+ # This should be able to handle itself...
+ #chown root:utmp usr/sbin/utempter
+ fi
+fi
+chown root:utmp var/run/utmp var/log/wtmp
+chmod 664 var/run/utmp var/log/wtmp
diff --git a/source/a/utempter/slack-desc b/source/a/utempter/slack-desc
new file mode 100644
index 000000000..ff00f66e6
--- /dev/null
+++ b/source/a/utempter/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+utempter: utempter (utmp updating library and utility)
+utempter:
+utempter: The utempter package provides a utility and shared library that
+utempter: allows terminal applications such as xterm and screen to update
+utempter: /var/run/utmp and /var/log/wtmp without requiring root privileges.
+utempter:
+utempter:
+utempter:
+utempter:
+utempter:
+utempter:
diff --git a/source/a/utempter/utempter.SlackBuild b/source/a/utempter/utempter.SlackBuild
new file mode 100755
index 000000000..7d0d24b75
--- /dev/null
+++ b/source/a/utempter/utempter.SlackBuild
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=1.1.4
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+if [ "$ARCH" = "x86_64" ]; then
+ LIBDIRSUFFIX="64"
+else
+ LIBDIRSUFFIX=""
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-utempter
+rm -rf $PKG
+mkdir -p $TMP $PKG/usr
+
+cd $TMP
+# The original package name was "utempter", but this new version
+# calls itself "libutempter". We'll keep the same old package name
+# to avoid confusing upgrades.
+rm -rf libutempter-$VERSION
+tar xjvf $CWD/libutempter-$VERSION.tar.bz2
+cd libutempter-$VERSION
+chown -R root:root .
+## I see no reason to use different paths than in utempter-0.5.2:
+#zcat $CWD/libutempter.slack.diff.gz | patch -p1 --verbose || exit 1
+find . -perm 664 -exec chmod 644 {} \;
+find . -perm 775 -exec chmod 755 {} \;
+sed -i -e "s#/usr/lib#/usr/lib${LIBDIRSUFFIX}#g" Makefile
+make
+make install DESTDIR=$PKG
+# A static libutempter seems like a bad idea, since it wouldn't work
+# without the making utempter binary. That and the shared lib are a
+# closely matched set.
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libutempter.a
+# Set proper permissions:
+chown root:utmp $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter
+chmod 2755 $PKG/usr/lib${LIBDIRSUFFIX}/utempter/utempter
+chmod 644 $PKG/usr/include/utempter.h
+mkdir -p $PKG/usr/doc/utempter-$VERSION
+cp -a \
+ COPYING README \
+ $PKG/usr/doc/utempter-$VERSION
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+makepkg -l y -c n $TMP/utempter-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/util-linux-ng/adjtimex_1.23-1.diff b/source/a/util-linux-ng/adjtimex_1.23-1.diff
new file mode 100644
index 000000000..8c250157e
--- /dev/null
+++ b/source/a/util-linux-ng/adjtimex_1.23-1.diff
@@ -0,0 +1,5456 @@
+--- adjtimex-1.23.orig/config.sub
++++ adjtimex-1.23/config.sub
+@@ -0,0 +1,1622 @@
++#! /bin/sh
++# Configuration validation subroutine script.
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
++# Inc.
++
++timestamp='2007-01-18'
++
++# This file is (in principle) common to ALL GNU software.
++# The presence of a machine in this file suggests that SOME GNU software
++# can handle that machine. It does not imply ALL GNU software can.
++#
++# This file 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 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, write to the Free Software
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
++#
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
++
++# Please send patches to <config-patches@gnu.org>. Submit a context
++# diff and a properly formatted ChangeLog entry.
++#
++# Configuration subroutine to validate and canonicalize a configuration type.
++# Supply the specified configuration type as an argument.
++# If it is invalid, we print an error message on stderr and exit with code 1.
++# Otherwise, we print the canonical config type on stdout and succeed.
++
++# This file is supposed to be the same for all GNU packages
++# and recognize all the CPU types, system types and aliases
++# that are meaningful with *any* GNU software.
++# Each package is responsible for reporting which valid configurations
++# it does not support. The user should be able to distinguish
++# a failure to support a valid configuration from a meaningless
++# configuration.
++
++# The goal of this file is to map all the various variations of a given
++# machine specification into a single specification in the form:
++# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
++# or in some cases, the newer four-part form:
++# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
++# It is wrong to echo any other type of specification.
++
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION] CPU-MFR-OPSYS
++ $0 [OPTION] ALIAS
++
++Canonicalize a configuration name.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.sub ($timestamp)
++
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
++Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit ;;
++ --version | -v )
++ echo "$version" ; exit ;;
++ --help | --h* | -h )
++ echo "$usage"; exit ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help"
++ exit 1 ;;
++
++ *local*)
++ # First pass through any local machine types.
++ echo $1
++ exit ;;
++
++ * )
++ break ;;
++ esac
++done
++
++case $# in
++ 0) echo "$me: missing argument$help" >&2
++ exit 1;;
++ 1) ;;
++ *) echo "$me: too many arguments$help" >&2
++ exit 1;;
++esac
++
++# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
++# Here we must recognize all the valid KERNEL-OS combinations.
++maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
++case $maybe_os in
++ nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
++ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
++ storm-chaos* | os2-emx* | rtmk-nova*)
++ os=-$maybe_os
++ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
++ ;;
++ *)
++ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
++ if [ $basic_machine != $1 ]
++ then os=`echo $1 | sed 's/.*-/-/'`
++ else os=; fi
++ ;;
++esac
++
++### Let's recognize common machines as not being operating systems so
++### that things like config.sub decstation-3100 work. We also
++### recognize some manufacturers as not being operating systems, so we
++### can provide default operating systems below.
++case $os in
++ -sun*os*)
++ # Prevent following clause from handling this invalid input.
++ ;;
++ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
++ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
++ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
++ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
++ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
++ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
++ -apple | -axis | -knuth | -cray)
++ os=
++ basic_machine=$1
++ ;;
++ -sim | -cisco | -oki | -wec | -winbond)
++ os=
++ basic_machine=$1
++ ;;
++ -scout)
++ ;;
++ -wrs)
++ os=-vxworks
++ basic_machine=$1
++ ;;
++ -chorusos*)
++ os=-chorusos
++ basic_machine=$1
++ ;;
++ -chorusrdb)
++ os=-chorusrdb
++ basic_machine=$1
++ ;;
++ -hiux*)
++ os=-hiuxwe2
++ ;;
++ -sco6)
++ os=-sco5v6
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco5)
++ os=-sco3.2v5
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco4)
++ os=-sco3.2v4
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco3.2.[4-9]*)
++ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco3.2v[4-9]*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco5v6*)
++ # Don't forget version if it is 3.2v4 or newer.
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -sco*)
++ os=-sco3.2v2
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -udk*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -isc)
++ os=-isc2.2
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -clix*)
++ basic_machine=clipper-intergraph
++ ;;
++ -isc*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
++ ;;
++ -lynx*)
++ os=-lynxos
++ ;;
++ -ptx*)
++ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
++ ;;
++ -windowsnt*)
++ os=`echo $os | sed -e 's/windowsnt/winnt/'`
++ ;;
++ -psos*)
++ os=-psos
++ ;;
++ -mint | -mint[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++esac
++
++# Decode aliases for certain CPU-COMPANY combinations.
++case $basic_machine in
++ # Recognize the basic CPU types without company name.
++ # Some are omitted here because they have special meanings below.
++ 1750a | 580 \
++ | a29k \
++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
++ | am33_2.0 \
++ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
++ | bfin \
++ | c4x | clipper \
++ | d10v | d30v | dlx | dsp16xx \
++ | fido | fr30 | frv \
++ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++ | i370 | i860 | i960 | ia64 \
++ | ip2k | iq2000 \
++ | m32c | m32r | m32rle | m68000 | m68k | m88k \
++ | maxq | mb | microblaze | mcore | mep \
++ | mips | mipsbe | mipseb | mipsel | mipsle \
++ | mips16 \
++ | mips64 | mips64el \
++ | mips64vr | mips64vrel \
++ | mips64orion | mips64orionel \
++ | mips64vr4100 | mips64vr4100el \
++ | mips64vr4300 | mips64vr4300el \
++ | mips64vr5000 | mips64vr5000el \
++ | mips64vr5900 | mips64vr5900el \
++ | mipsisa32 | mipsisa32el \
++ | mipsisa32r2 | mipsisa32r2el \
++ | mipsisa64 | mipsisa64el \
++ | mipsisa64r2 | mipsisa64r2el \
++ | mipsisa64sb1 | mipsisa64sb1el \
++ | mipsisa64sr71k | mipsisa64sr71kel \
++ | mipstx39 | mipstx39el \
++ | mn10200 | mn10300 \
++ | mt \
++ | msp430 \
++ | nios | nios2 \
++ | ns16k | ns32k \
++ | or32 \
++ | pdp10 | pdp11 | pj | pjl \
++ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++ | pyramid \
++ | score \
++ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
++ | sh64 | sh64le \
++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
++ | spu | strongarm \
++ | tahoe | thumb | tic4x | tic80 | tron \
++ | v850 | v850e \
++ | we32k \
++ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
++ | z8k)
++ basic_machine=$basic_machine-unknown
++ ;;
++ m6811 | m68hc11 | m6812 | m68hc12)
++ # Motorola 68HC11/12.
++ basic_machine=$basic_machine-unknown
++ os=-none
++ ;;
++ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
++ ;;
++ ms1)
++ basic_machine=mt-unknown
++ ;;
++
++ # We use `pc' rather than `unknown'
++ # because (1) that's what they normally are, and
++ # (2) the word "unknown" tends to confuse beginning users.
++ i*86 | x86_64)
++ basic_machine=$basic_machine-pc
++ ;;
++ # Object if more than one company name word.
++ *-*-*)
++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
++ exit 1
++ ;;
++ # Recognize the basic CPU types with company name.
++ 580-* \
++ | a29k-* \
++ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
++ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
++ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
++ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
++ | avr-* | avr32-* \
++ | bfin-* | bs2000-* \
++ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
++ | clipper-* | craynv-* | cydra-* \
++ | d10v-* | d30v-* | dlx-* \
++ | elxsi-* \
++ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
++ | h8300-* | h8500-* \
++ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++ | i*86-* | i860-* | i960-* | ia64-* \
++ | ip2k-* | iq2000-* \
++ | m32c-* | m32r-* | m32rle-* \
++ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* \
++ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
++ | mips16-* \
++ | mips64-* | mips64el-* \
++ | mips64vr-* | mips64vrel-* \
++ | mips64orion-* | mips64orionel-* \
++ | mips64vr4100-* | mips64vr4100el-* \
++ | mips64vr4300-* | mips64vr4300el-* \
++ | mips64vr5000-* | mips64vr5000el-* \
++ | mips64vr5900-* | mips64vr5900el-* \
++ | mipsisa32-* | mipsisa32el-* \
++ | mipsisa32r2-* | mipsisa32r2el-* \
++ | mipsisa64-* | mipsisa64el-* \
++ | mipsisa64r2-* | mipsisa64r2el-* \
++ | mipsisa64sb1-* | mipsisa64sb1el-* \
++ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
++ | mipstx39-* | mipstx39el-* \
++ | mmix-* \
++ | mt-* \
++ | msp430-* \
++ | nios-* | nios2-* \
++ | none-* | np1-* | ns16k-* | ns32k-* \
++ | orion-* \
++ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++ | pyramid-* \
++ | romp-* | rs6000-* \
++ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
++ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
++ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
++ | sparclite-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
++ | tahoe-* | thumb-* \
++ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tron-* \
++ | v850-* | v850e-* | vax-* \
++ | we32k-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
++ | xstormy16-* | xtensa-* \
++ | ymp-* \
++ | z8k-*)
++ ;;
++ # Recognize the various machine names and aliases which stand
++ # for a CPU type and a company and sometimes even an OS.
++ 386bsd)
++ basic_machine=i386-unknown
++ os=-bsd
++ ;;
++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
++ basic_machine=m68000-att
++ ;;
++ 3b*)
++ basic_machine=we32k-att
++ ;;
++ a29khif)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ abacus)
++ basic_machine=abacus-unknown
++ ;;
++ adobe68k)
++ basic_machine=m68010-adobe
++ os=-scout
++ ;;
++ alliant | fx80)
++ basic_machine=fx80-alliant
++ ;;
++ altos | altos3068)
++ basic_machine=m68k-altos
++ ;;
++ am29k)
++ basic_machine=a29k-none
++ os=-bsd
++ ;;
++ amd64)
++ basic_machine=x86_64-pc
++ ;;
++ amd64-*)
++ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ amdahl)
++ basic_machine=580-amdahl
++ os=-sysv
++ ;;
++ amiga | amiga-*)
++ basic_machine=m68k-unknown
++ ;;
++ amigaos | amigados)
++ basic_machine=m68k-unknown
++ os=-amigaos
++ ;;
++ amigaunix | amix)
++ basic_machine=m68k-unknown
++ os=-sysv4
++ ;;
++ apollo68)
++ basic_machine=m68k-apollo
++ os=-sysv
++ ;;
++ apollo68bsd)
++ basic_machine=m68k-apollo
++ os=-bsd
++ ;;
++ aux)
++ basic_machine=m68k-apple
++ os=-aux
++ ;;
++ balance)
++ basic_machine=ns32k-sequent
++ os=-dynix
++ ;;
++ c90)
++ basic_machine=c90-cray
++ os=-unicos
++ ;;
++ convex-c1)
++ basic_machine=c1-convex
++ os=-bsd
++ ;;
++ convex-c2)
++ basic_machine=c2-convex
++ os=-bsd
++ ;;
++ convex-c32)
++ basic_machine=c32-convex
++ os=-bsd
++ ;;
++ convex-c34)
++ basic_machine=c34-convex
++ os=-bsd
++ ;;
++ convex-c38)
++ basic_machine=c38-convex
++ os=-bsd
++ ;;
++ cray | j90)
++ basic_machine=j90-cray
++ os=-unicos
++ ;;
++ craynv)
++ basic_machine=craynv-cray
++ os=-unicosmp
++ ;;
++ cr16c)
++ basic_machine=cr16c-unknown
++ os=-elf
++ ;;
++ crds | unos)
++ basic_machine=m68k-crds
++ ;;
++ crisv32 | crisv32-* | etraxfs*)
++ basic_machine=crisv32-axis
++ ;;
++ cris | cris-* | etrax*)
++ basic_machine=cris-axis
++ ;;
++ crx)
++ basic_machine=crx-unknown
++ os=-elf
++ ;;
++ da30 | da30-*)
++ basic_machine=m68k-da30
++ ;;
++ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
++ basic_machine=mips-dec
++ ;;
++ decsystem10* | dec10*)
++ basic_machine=pdp10-dec
++ os=-tops10
++ ;;
++ decsystem20* | dec20*)
++ basic_machine=pdp10-dec
++ os=-tops20
++ ;;
++ delta | 3300 | motorola-3300 | motorola-delta \
++ | 3300-motorola | delta-motorola)
++ basic_machine=m68k-motorola
++ ;;
++ delta88)
++ basic_machine=m88k-motorola
++ os=-sysv3
++ ;;
++ djgpp)
++ basic_machine=i586-pc
++ os=-msdosdjgpp
++ ;;
++ dpx20 | dpx20-*)
++ basic_machine=rs6000-bull
++ os=-bosx
++ ;;
++ dpx2* | dpx2*-bull)
++ basic_machine=m68k-bull
++ os=-sysv3
++ ;;
++ ebmon29k)
++ basic_machine=a29k-amd
++ os=-ebmon
++ ;;
++ elxsi)
++ basic_machine=elxsi-elxsi
++ os=-bsd
++ ;;
++ encore | umax | mmax)
++ basic_machine=ns32k-encore
++ ;;
++ es1800 | OSE68k | ose68k | ose | OSE)
++ basic_machine=m68k-ericsson
++ os=-ose
++ ;;
++ fx2800)
++ basic_machine=i860-alliant
++ ;;
++ genix)
++ basic_machine=ns32k-ns
++ ;;
++ gmicro)
++ basic_machine=tron-gmicro
++ os=-sysv
++ ;;
++ go32)
++ basic_machine=i386-pc
++ os=-go32
++ ;;
++ h3050r* | hiux*)
++ basic_machine=hppa1.1-hitachi
++ os=-hiuxwe2
++ ;;
++ h8300hms)
++ basic_machine=h8300-hitachi
++ os=-hms
++ ;;
++ h8300xray)
++ basic_machine=h8300-hitachi
++ os=-xray
++ ;;
++ h8500hms)
++ basic_machine=h8500-hitachi
++ os=-hms
++ ;;
++ harris)
++ basic_machine=m88k-harris
++ os=-sysv3
++ ;;
++ hp300-*)
++ basic_machine=m68k-hp
++ ;;
++ hp300bsd)
++ basic_machine=m68k-hp
++ os=-bsd
++ ;;
++ hp300hpux)
++ basic_machine=m68k-hp
++ os=-hpux
++ ;;
++ hp3k9[0-9][0-9] | hp9[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hp9k2[0-9][0-9] | hp9k31[0-9])
++ basic_machine=m68000-hp
++ ;;
++ hp9k3[2-9][0-9])
++ basic_machine=m68k-hp
++ ;;
++ hp9k6[0-9][0-9] | hp6[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hp9k7[0-79][0-9] | hp7[0-79][0-9])
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k78[0-9] | hp78[0-9])
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
++ # FIXME: really hppa2.0-hp
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[0-9][13679] | hp8[0-9][13679])
++ basic_machine=hppa1.1-hp
++ ;;
++ hp9k8[0-9][0-9] | hp8[0-9][0-9])
++ basic_machine=hppa1.0-hp
++ ;;
++ hppa-next)
++ os=-nextstep3
++ ;;
++ hppaosf)
++ basic_machine=hppa1.1-hp
++ os=-osf
++ ;;
++ hppro)
++ basic_machine=hppa1.1-hp
++ os=-proelf
++ ;;
++ i370-ibm* | ibm*)
++ basic_machine=i370-ibm
++ ;;
++# I'm not sure what "Sysv32" means. Should this be sysv3.2?
++ i*86v32)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv32
++ ;;
++ i*86v4*)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv4
++ ;;
++ i*86v)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-sysv
++ ;;
++ i*86sol2)
++ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
++ os=-solaris2
++ ;;
++ i386mach)
++ basic_machine=i386-mach
++ os=-mach
++ ;;
++ i386-vsta | vsta)
++ basic_machine=i386-unknown
++ os=-vsta
++ ;;
++ iris | iris4d)
++ basic_machine=mips-sgi
++ case $os in
++ -irix*)
++ ;;
++ *)
++ os=-irix4
++ ;;
++ esac
++ ;;
++ isi68 | isi)
++ basic_machine=m68k-isi
++ os=-sysv
++ ;;
++ m88k-omron*)
++ basic_machine=m88k-omron
++ ;;
++ magnum | m3230)
++ basic_machine=mips-mips
++ os=-sysv
++ ;;
++ merlin)
++ basic_machine=ns32k-utek
++ os=-sysv
++ ;;
++ mingw32)
++ basic_machine=i386-pc
++ os=-mingw32
++ ;;
++ miniframe)
++ basic_machine=m68000-convergent
++ ;;
++ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
++ basic_machine=m68k-atari
++ os=-mint
++ ;;
++ mips3*-*)
++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
++ ;;
++ mips3*)
++ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
++ ;;
++ monitor)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ morphos)
++ basic_machine=powerpc-unknown
++ os=-morphos
++ ;;
++ msdos)
++ basic_machine=i386-pc
++ os=-msdos
++ ;;
++ ms1-*)
++ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
++ ;;
++ mvs)
++ basic_machine=i370-ibm
++ os=-mvs
++ ;;
++ ncr3000)
++ basic_machine=i486-ncr
++ os=-sysv4
++ ;;
++ netbsd386)
++ basic_machine=i386-unknown
++ os=-netbsd
++ ;;
++ netwinder)
++ basic_machine=armv4l-rebel
++ os=-linux
++ ;;
++ news | news700 | news800 | news900)
++ basic_machine=m68k-sony
++ os=-newsos
++ ;;
++ news1000)
++ basic_machine=m68030-sony
++ os=-newsos
++ ;;
++ news-3600 | risc-news)
++ basic_machine=mips-sony
++ os=-newsos
++ ;;
++ necv70)
++ basic_machine=v70-nec
++ os=-sysv
++ ;;
++ next | m*-next )
++ basic_machine=m68k-next
++ case $os in
++ -nextstep* )
++ ;;
++ -ns2*)
++ os=-nextstep2
++ ;;
++ *)
++ os=-nextstep3
++ ;;
++ esac
++ ;;
++ nh3000)
++ basic_machine=m68k-harris
++ os=-cxux
++ ;;
++ nh[45]000)
++ basic_machine=m88k-harris
++ os=-cxux
++ ;;
++ nindy960)
++ basic_machine=i960-intel
++ os=-nindy
++ ;;
++ mon960)
++ basic_machine=i960-intel
++ os=-mon960
++ ;;
++ nonstopux)
++ basic_machine=mips-compaq
++ os=-nonstopux
++ ;;
++ np1)
++ basic_machine=np1-gould
++ ;;
++ nsr-tandem)
++ basic_machine=nsr-tandem
++ ;;
++ op50n-* | op60c-*)
++ basic_machine=hppa1.1-oki
++ os=-proelf
++ ;;
++ openrisc | openrisc-*)
++ basic_machine=or32-unknown
++ ;;
++ os400)
++ basic_machine=powerpc-ibm
++ os=-os400
++ ;;
++ OSE68000 | ose68000)
++ basic_machine=m68000-ericsson
++ os=-ose
++ ;;
++ os68k)
++ basic_machine=m68k-none
++ os=-os68k
++ ;;
++ pa-hitachi)
++ basic_machine=hppa1.1-hitachi
++ os=-hiuxwe2
++ ;;
++ paragon)
++ basic_machine=i860-intel
++ os=-osf
++ ;;
++ pbd)
++ basic_machine=sparc-tti
++ ;;
++ pbb)
++ basic_machine=m68k-tti
++ ;;
++ pc532 | pc532-*)
++ basic_machine=ns32k-pc532
++ ;;
++ pc98)
++ basic_machine=i386-pc
++ ;;
++ pc98-*)
++ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentium | p5 | k5 | k6 | nexgen | viac3)
++ basic_machine=i586-pc
++ ;;
++ pentiumpro | p6 | 6x86 | athlon | athlon_*)
++ basic_machine=i686-pc
++ ;;
++ pentiumii | pentium2 | pentiumiii | pentium3)
++ basic_machine=i686-pc
++ ;;
++ pentium4)
++ basic_machine=i786-pc
++ ;;
++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
++ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentiumpro-* | p6-* | 6x86-* | athlon-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
++ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pentium4-*)
++ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ pn)
++ basic_machine=pn-gould
++ ;;
++ power) basic_machine=power-ibm
++ ;;
++ ppc) basic_machine=powerpc-unknown
++ ;;
++ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppcle | powerpclittle | ppc-le | powerpc-little)
++ basic_machine=powerpcle-unknown
++ ;;
++ ppcle-* | powerpclittle-*)
++ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppc64) basic_machine=powerpc64-unknown
++ ;;
++ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
++ basic_machine=powerpc64le-unknown
++ ;;
++ ppc64le-* | powerpc64little-*)
++ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ ps2)
++ basic_machine=i386-ibm
++ ;;
++ pw32)
++ basic_machine=i586-unknown
++ os=-pw32
++ ;;
++ rdos)
++ basic_machine=i386-pc
++ os=-rdos
++ ;;
++ rom68k)
++ basic_machine=m68k-rom68k
++ os=-coff
++ ;;
++ rm[46]00)
++ basic_machine=mips-siemens
++ ;;
++ rtpc | rtpc-*)
++ basic_machine=romp-ibm
++ ;;
++ s390 | s390-*)
++ basic_machine=s390-ibm
++ ;;
++ s390x | s390x-*)
++ basic_machine=s390x-ibm
++ ;;
++ sa29200)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ sb1)
++ basic_machine=mipsisa64sb1-unknown
++ ;;
++ sb1el)
++ basic_machine=mipsisa64sb1el-unknown
++ ;;
++ sde)
++ basic_machine=mipsisa32-sde
++ os=-elf
++ ;;
++ sei)
++ basic_machine=mips-sei
++ os=-seiux
++ ;;
++ sequent)
++ basic_machine=i386-sequent
++ ;;
++ sh)
++ basic_machine=sh-hitachi
++ os=-hms
++ ;;
++ sh5el)
++ basic_machine=sh5le-unknown
++ ;;
++ sh64)
++ basic_machine=sh64-unknown
++ ;;
++ sparclite-wrs | simso-wrs)
++ basic_machine=sparclite-wrs
++ os=-vxworks
++ ;;
++ sps7)
++ basic_machine=m68k-bull
++ os=-sysv2
++ ;;
++ spur)
++ basic_machine=spur-unknown
++ ;;
++ st2000)
++ basic_machine=m68k-tandem
++ ;;
++ stratus)
++ basic_machine=i860-stratus
++ os=-sysv4
++ ;;
++ sun2)
++ basic_machine=m68000-sun
++ ;;
++ sun2os3)
++ basic_machine=m68000-sun
++ os=-sunos3
++ ;;
++ sun2os4)
++ basic_machine=m68000-sun
++ os=-sunos4
++ ;;
++ sun3os3)
++ basic_machine=m68k-sun
++ os=-sunos3
++ ;;
++ sun3os4)
++ basic_machine=m68k-sun
++ os=-sunos4
++ ;;
++ sun4os3)
++ basic_machine=sparc-sun
++ os=-sunos3
++ ;;
++ sun4os4)
++ basic_machine=sparc-sun
++ os=-sunos4
++ ;;
++ sun4sol2)
++ basic_machine=sparc-sun
++ os=-solaris2
++ ;;
++ sun3 | sun3-*)
++ basic_machine=m68k-sun
++ ;;
++ sun4)
++ basic_machine=sparc-sun
++ ;;
++ sun386 | sun386i | roadrunner)
++ basic_machine=i386-sun
++ ;;
++ sv1)
++ basic_machine=sv1-cray
++ os=-unicos
++ ;;
++ symmetry)
++ basic_machine=i386-sequent
++ os=-dynix
++ ;;
++ t3e)
++ basic_machine=alphaev5-cray
++ os=-unicos
++ ;;
++ t90)
++ basic_machine=t90-cray
++ os=-unicos
++ ;;
++ tic54x | c54x*)
++ basic_machine=tic54x-unknown
++ os=-coff
++ ;;
++ tic55x | c55x*)
++ basic_machine=tic55x-unknown
++ os=-coff
++ ;;
++ tic6x | c6x*)
++ basic_machine=tic6x-unknown
++ os=-coff
++ ;;
++ tx39)
++ basic_machine=mipstx39-unknown
++ ;;
++ tx39el)
++ basic_machine=mipstx39el-unknown
++ ;;
++ toad1)
++ basic_machine=pdp10-xkl
++ os=-tops20
++ ;;
++ tower | tower-32)
++ basic_machine=m68k-ncr
++ ;;
++ tpf)
++ basic_machine=s390x-ibm
++ os=-tpf
++ ;;
++ udi29k)
++ basic_machine=a29k-amd
++ os=-udi
++ ;;
++ ultra3)
++ basic_machine=a29k-nyu
++ os=-sym1
++ ;;
++ v810 | necv810)
++ basic_machine=v810-nec
++ os=-none
++ ;;
++ vaxv)
++ basic_machine=vax-dec
++ os=-sysv
++ ;;
++ vms)
++ basic_machine=vax-dec
++ os=-vms
++ ;;
++ vpp*|vx|vx-*)
++ basic_machine=f301-fujitsu
++ ;;
++ vxworks960)
++ basic_machine=i960-wrs
++ os=-vxworks
++ ;;
++ vxworks68)
++ basic_machine=m68k-wrs
++ os=-vxworks
++ ;;
++ vxworks29k)
++ basic_machine=a29k-wrs
++ os=-vxworks
++ ;;
++ w65*)
++ basic_machine=w65-wdc
++ os=-none
++ ;;
++ w89k-*)
++ basic_machine=hppa1.1-winbond
++ os=-proelf
++ ;;
++ xbox)
++ basic_machine=i686-pc
++ os=-mingw32
++ ;;
++ xps | xps100)
++ basic_machine=xps100-honeywell
++ ;;
++ ymp)
++ basic_machine=ymp-cray
++ os=-unicos
++ ;;
++ z8k-*-coff)
++ basic_machine=z8k-unknown
++ os=-sim
++ ;;
++ none)
++ basic_machine=none-none
++ os=-none
++ ;;
++
++# Here we handle the default manufacturer of certain CPU types. It is in
++# some cases the only manufacturer, in others, it is the most popular.
++ w89k)
++ basic_machine=hppa1.1-winbond
++ ;;
++ op50n)
++ basic_machine=hppa1.1-oki
++ ;;
++ op60c)
++ basic_machine=hppa1.1-oki
++ ;;
++ romp)
++ basic_machine=romp-ibm
++ ;;
++ mmix)
++ basic_machine=mmix-knuth
++ ;;
++ rs6000)
++ basic_machine=rs6000-ibm
++ ;;
++ vax)
++ basic_machine=vax-dec
++ ;;
++ pdp10)
++ # there are many clones, so DEC is not a safe bet
++ basic_machine=pdp10-unknown
++ ;;
++ pdp11)
++ basic_machine=pdp11-dec
++ ;;
++ we32k)
++ basic_machine=we32k-att
++ ;;
++ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
++ basic_machine=sh-unknown
++ ;;
++ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
++ basic_machine=sparc-sun
++ ;;
++ cydra)
++ basic_machine=cydra-cydrome
++ ;;
++ orion)
++ basic_machine=orion-highlevel
++ ;;
++ orion105)
++ basic_machine=clipper-highlevel
++ ;;
++ mac | mpw | mac-mpw)
++ basic_machine=m68k-apple
++ ;;
++ pmac | pmac-mpw)
++ basic_machine=powerpc-apple
++ ;;
++ *-unknown)
++ # Make sure to match an already-canonicalized machine name.
++ ;;
++ *)
++ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++
++# Here we canonicalize certain aliases for manufacturers.
++case $basic_machine in
++ *-digital*)
++ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
++ ;;
++ *-commodore*)
++ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
++ ;;
++ *)
++ ;;
++esac
++
++# Decode manufacturer-specific aliases for certain operating systems.
++
++if [ x"$os" != x"" ]
++then
++case $os in
++ # First match some system type aliases
++ # that might get confused with valid system types.
++ # -solaris* is a basic system type, with this one exception.
++ -solaris1 | -solaris1.*)
++ os=`echo $os | sed -e 's|solaris1|sunos4|'`
++ ;;
++ -solaris)
++ os=-solaris2
++ ;;
++ -svr4*)
++ os=-sysv4
++ ;;
++ -unixware*)
++ os=-sysv4.2uw
++ ;;
++ -gnu/linux*)
++ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
++ ;;
++ # First accept the basic system types.
++ # The portable systems comes first.
++ # Each alternative MUST END IN A *, to match a version number.
++ # -sysv* is not here because it comes later, after sysvr4.
++ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
++ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
++ | -aos* \
++ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
++ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
++ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
++ | -openbsd* | -solidbsd* \
++ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
++ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
++ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
++ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
++ | -chorusos* | -chorusrdb* \
++ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
++ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -uxpv* | -beos* | -mpeix* | -udk* \
++ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
++ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
++ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
++ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
++ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
++ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
++ # Remember, each alternative MUST END IN *, to match a version number.
++ ;;
++ -qnx*)
++ case $basic_machine in
++ x86-* | i*86-*)
++ ;;
++ *)
++ os=-nto$os
++ ;;
++ esac
++ ;;
++ -nto-qnx*)
++ ;;
++ -nto*)
++ os=`echo $os | sed -e 's|nto|nto-qnx|'`
++ ;;
++ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
++ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
++ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
++ ;;
++ -mac*)
++ os=`echo $os | sed -e 's|mac|macos|'`
++ ;;
++ -linux-dietlibc)
++ os=-linux-dietlibc
++ ;;
++ -linux*)
++ os=`echo $os | sed -e 's|linux|linux-gnu|'`
++ ;;
++ -sunos5*)
++ os=`echo $os | sed -e 's|sunos5|solaris2|'`
++ ;;
++ -sunos6*)
++ os=`echo $os | sed -e 's|sunos6|solaris3|'`
++ ;;
++ -opened*)
++ os=-openedition
++ ;;
++ -os400*)
++ os=-os400
++ ;;
++ -wince*)
++ os=-wince
++ ;;
++ -osfrose*)
++ os=-osfrose
++ ;;
++ -osf*)
++ os=-osf
++ ;;
++ -utek*)
++ os=-bsd
++ ;;
++ -dynix*)
++ os=-bsd
++ ;;
++ -acis*)
++ os=-aos
++ ;;
++ -atheos*)
++ os=-atheos
++ ;;
++ -syllable*)
++ os=-syllable
++ ;;
++ -386bsd)
++ os=-bsd
++ ;;
++ -ctix* | -uts*)
++ os=-sysv
++ ;;
++ -nova*)
++ os=-rtmk-nova
++ ;;
++ -ns2 )
++ os=-nextstep2
++ ;;
++ -nsk*)
++ os=-nsk
++ ;;
++ # Preserve the version number of sinix5.
++ -sinix5.*)
++ os=`echo $os | sed -e 's|sinix|sysv|'`
++ ;;
++ -sinix*)
++ os=-sysv4
++ ;;
++ -tpf*)
++ os=-tpf
++ ;;
++ -triton*)
++ os=-sysv3
++ ;;
++ -oss*)
++ os=-sysv3
++ ;;
++ -svr4)
++ os=-sysv4
++ ;;
++ -svr3)
++ os=-sysv3
++ ;;
++ -sysvr4)
++ os=-sysv4
++ ;;
++ # This must come after -sysvr4.
++ -sysv*)
++ ;;
++ -ose*)
++ os=-ose
++ ;;
++ -es1800*)
++ os=-ose
++ ;;
++ -xenix)
++ os=-xenix
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ os=-mint
++ ;;
++ -aros*)
++ os=-aros
++ ;;
++ -kaos*)
++ os=-kaos
++ ;;
++ -zvmoe)
++ os=-zvmoe
++ ;;
++ -none)
++ ;;
++ *)
++ # Get rid of the `-' at the beginning of $os.
++ os=`echo $os | sed 's/[^-]*-//'`
++ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
++ exit 1
++ ;;
++esac
++else
++
++# Here we handle the default operating systems that come with various machines.
++# The value should be what the vendor currently ships out the door with their
++# machine or put another way, the most popular os provided with the machine.
++
++# Note that if you're going to try to match "-MANUFACTURER" here (say,
++# "-sun"), then you have to tell the case statement up towards the top
++# that MANUFACTURER isn't an operating system. Otherwise, code above
++# will signal an error saying that MANUFACTURER isn't an operating
++# system, and we'll never get to this point.
++
++case $basic_machine in
++ score-*)
++ os=-elf
++ ;;
++ spu-*)
++ os=-elf
++ ;;
++ *-acorn)
++ os=-riscix1.2
++ ;;
++ arm*-rebel)
++ os=-linux
++ ;;
++ arm*-semi)
++ os=-aout
++ ;;
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
++ # This must come before the *-dec entry.
++ pdp10-*)
++ os=-tops20
++ ;;
++ pdp11-*)
++ os=-none
++ ;;
++ *-dec | vax-*)
++ os=-ultrix4.2
++ ;;
++ m68*-apollo)
++ os=-domain
++ ;;
++ i386-sun)
++ os=-sunos4.0.2
++ ;;
++ m68000-sun)
++ os=-sunos3
++ # This also exists in the configure program, but was not the
++ # default.
++ # os=-sunos4
++ ;;
++ m68*-cisco)
++ os=-aout
++ ;;
++ mep-*)
++ os=-elf
++ ;;
++ mips*-cisco)
++ os=-elf
++ ;;
++ mips*-*)
++ os=-elf
++ ;;
++ or32-*)
++ os=-coff
++ ;;
++ *-tti) # must be before sparc entry or we get the wrong os.
++ os=-sysv3
++ ;;
++ sparc-* | *-sun)
++ os=-sunos4.1.1
++ ;;
++ *-be)
++ os=-beos
++ ;;
++ *-haiku)
++ os=-haiku
++ ;;
++ *-ibm)
++ os=-aix
++ ;;
++ *-knuth)
++ os=-mmixware
++ ;;
++ *-wec)
++ os=-proelf
++ ;;
++ *-winbond)
++ os=-proelf
++ ;;
++ *-oki)
++ os=-proelf
++ ;;
++ *-hp)
++ os=-hpux
++ ;;
++ *-hitachi)
++ os=-hiux
++ ;;
++ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
++ os=-sysv
++ ;;
++ *-cbm)
++ os=-amigaos
++ ;;
++ *-dg)
++ os=-dgux
++ ;;
++ *-dolphin)
++ os=-sysv3
++ ;;
++ m68k-ccur)
++ os=-rtu
++ ;;
++ m88k-omron*)
++ os=-luna
++ ;;
++ *-next )
++ os=-nextstep
++ ;;
++ *-sequent)
++ os=-ptx
++ ;;
++ *-crds)
++ os=-unos
++ ;;
++ *-ns)
++ os=-genix
++ ;;
++ i370-*)
++ os=-mvs
++ ;;
++ *-next)
++ os=-nextstep3
++ ;;
++ *-gould)
++ os=-sysv
++ ;;
++ *-highlevel)
++ os=-bsd
++ ;;
++ *-encore)
++ os=-bsd
++ ;;
++ *-sgi)
++ os=-irix
++ ;;
++ *-siemens)
++ os=-sysv4
++ ;;
++ *-masscomp)
++ os=-rtu
++ ;;
++ f30[01]-fujitsu | f700-fujitsu)
++ os=-uxpv
++ ;;
++ *-rom68k)
++ os=-coff
++ ;;
++ *-*bug)
++ os=-coff
++ ;;
++ *-apple)
++ os=-macos
++ ;;
++ *-atari*)
++ os=-mint
++ ;;
++ *)
++ os=-none
++ ;;
++esac
++fi
++
++# Here we handle the case where we know the os, and the CPU type, but not the
++# manufacturer. We pick the logical manufacturer.
++vendor=unknown
++case $basic_machine in
++ *-unknown)
++ case $os in
++ -riscix*)
++ vendor=acorn
++ ;;
++ -sunos*)
++ vendor=sun
++ ;;
++ -aix*)
++ vendor=ibm
++ ;;
++ -beos*)
++ vendor=be
++ ;;
++ -hpux*)
++ vendor=hp
++ ;;
++ -mpeix*)
++ vendor=hp
++ ;;
++ -hiux*)
++ vendor=hitachi
++ ;;
++ -unos*)
++ vendor=crds
++ ;;
++ -dgux*)
++ vendor=dg
++ ;;
++ -luna*)
++ vendor=omron
++ ;;
++ -genix*)
++ vendor=ns
++ ;;
++ -mvs* | -opened*)
++ vendor=ibm
++ ;;
++ -os400*)
++ vendor=ibm
++ ;;
++ -ptx*)
++ vendor=sequent
++ ;;
++ -tpf*)
++ vendor=ibm
++ ;;
++ -vxsim* | -vxworks* | -windiss*)
++ vendor=wrs
++ ;;
++ -aux*)
++ vendor=apple
++ ;;
++ -hms*)
++ vendor=hitachi
++ ;;
++ -mpw* | -macos*)
++ vendor=apple
++ ;;
++ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++ vendor=atari
++ ;;
++ -vos*)
++ vendor=stratus
++ ;;
++ esac
++ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
++ ;;
++esac
++
++echo $basic_machine$os
++exit
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+--- adjtimex-1.23.orig/config.guess
++++ adjtimex-1.23/config.guess
+@@ -0,0 +1,1516 @@
++#! /bin/sh
++# Attempt to guess a canonical system name.
++# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
++# Inc.
++
++timestamp='2007-03-06'
++
++# This file 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 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, write to the Free Software
++# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
++# 02110-1301, USA.
++#
++# As a special exception to the GNU General Public License, if you
++# distribute this file as part of a program that contains a
++# configuration script generated by Autoconf, you may include it under
++# the same distribution terms that you use for the rest of that program.
++
++
++# Originally written by Per Bothner <per@bothner.com>.
++# Please send patches to <config-patches@gnu.org>. Submit a context
++# diff and a properly formatted ChangeLog entry.
++#
++# This script attempts to guess a canonical system name similar to
++# config.sub. If it succeeds, it prints the system name on stdout, and
++# exits with 0. Otherwise, it exits with 1.
++#
++# The plan is that this can be called by configure scripts if you
++# don't specify an explicit build system type.
++
++me=`echo "$0" | sed -e 's,.*/,,'`
++
++usage="\
++Usage: $0 [OPTION]
++
++Output the configuration name of the system \`$me' is run on.
++
++Operation modes:
++ -h, --help print this help, then exit
++ -t, --time-stamp print date of last modification, then exit
++ -v, --version print version number, then exit
++
++Report bugs and patches to <config-patches@gnu.org>."
++
++version="\
++GNU config.guess ($timestamp)
++
++Originally written by Per Bothner.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
++Free Software Foundation, Inc.
++
++This is free software; see the source for copying conditions. There is NO
++warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
++
++help="
++Try \`$me --help' for more information."
++
++# Parse command line
++while test $# -gt 0 ; do
++ case $1 in
++ --time-stamp | --time* | -t )
++ echo "$timestamp" ; exit ;;
++ --version | -v )
++ echo "$version" ; exit ;;
++ --help | --h* | -h )
++ echo "$usage"; exit ;;
++ -- ) # Stop option processing
++ shift; break ;;
++ - ) # Use stdin as input.
++ break ;;
++ -* )
++ echo "$me: invalid option $1$help" >&2
++ exit 1 ;;
++ * )
++ break ;;
++ esac
++done
++
++if test $# != 0; then
++ echo "$me: too many arguments$help" >&2
++ exit 1
++fi
++
++trap 'exit 1' 1 2 15
++
++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
++# compiler to aid in system detection is discouraged as it requires
++# temporary files to be created and, as you can see below, it is a
++# headache to deal with in a portable fashion.
++
++# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
++# use `HOST_CC' if defined, but it is deprecated.
++
++# Portable tmp directory creation inspired by the Autoconf team.
++
++set_cc_for_build='
++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
++: ${TMPDIR=/tmp} ;
++ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
++ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
++dummy=$tmp/dummy ;
++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
++case $CC_FOR_BUILD,$HOST_CC,$CC in
++ ,,) echo "int x;" > $dummy.c ;
++ for c in cc gcc c89 c99 ; do
++ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
++ CC_FOR_BUILD="$c"; break ;
++ fi ;
++ done ;
++ if test x"$CC_FOR_BUILD" = x ; then
++ CC_FOR_BUILD=no_compiler_found ;
++ fi
++ ;;
++ ,,*) CC_FOR_BUILD=$CC ;;
++ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
++esac ; set_cc_for_build= ;'
++
++# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
++# (ghazi@noc.rutgers.edu 1994-08-24)
++if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
++ PATH=$PATH:/.attbin ; export PATH
++fi
++
++UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
++UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
++UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
++UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
++
++# Note: order is significant - the case branches are not exclusive.
++
++case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
++ *:NetBSD:*:*)
++ # NetBSD (nbsd) targets should (where applicable) match one or
++ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
++ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
++ # switched to ELF, *-*-netbsd* would select the old
++ # object file format. This provides both forward
++ # compatibility and a consistent mechanism for selecting the
++ # object file format.
++ #
++ # Note: NetBSD doesn't particularly care about the vendor
++ # portion of the name. We always set it to "unknown".
++ sysctl="sysctl -n hw.machine_arch"
++ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
++ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++ case "${UNAME_MACHINE_ARCH}" in
++ armeb) machine=armeb-unknown ;;
++ arm*) machine=arm-unknown ;;
++ sh3el) machine=shl-unknown ;;
++ sh3eb) machine=sh-unknown ;;
++ sh5el) machine=sh5le-unknown ;;
++ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
++ esac
++ # The Operating System including object format, if it has switched
++ # to ELF recently, or will in the future.
++ case "${UNAME_MACHINE_ARCH}" in
++ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
++ eval $set_cc_for_build
++ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep __ELF__ >/dev/null
++ then
++ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
++ # Return netbsd for either. FIX?
++ os=netbsd
++ else
++ os=netbsdelf
++ fi
++ ;;
++ *)
++ os=netbsd
++ ;;
++ esac
++ # The OS release
++ # Debian GNU/NetBSD machines have a different userland, and
++ # thus, need a distinct triplet. However, they do not need
++ # kernel version information, so it can be replaced with a
++ # suitable tag, in the style of linux-gnu.
++ case "${UNAME_VERSION}" in
++ Debian*)
++ release='-gnu'
++ ;;
++ *)
++ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++ ;;
++ esac
++ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
++ # contains redundant information, the shorter form:
++ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
++ echo "${machine}-${os}${release}"
++ exit ;;
++ *:OpenBSD:*:*)
++ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
++ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
++ exit ;;
++ *:ekkoBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
++ exit ;;
++ *:SolidBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
++ exit ;;
++ macppc:MirBSD:*:*)
++ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
++ *:MirBSD:*:*)
++ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
++ exit ;;
++ alpha:OSF1:*:*)
++ case $UNAME_RELEASE in
++ *4.0)
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
++ ;;
++ *5.*)
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ ;;
++ esac
++ # According to Compaq, /usr/sbin/psrinfo has been available on
++ # OSF/1 and Tru64 systems produced since 1995. I hope that
++ # covers most systems running today. This code pipes the CPU
++ # types through head -n 1, so we only detect the type of CPU 0.
++ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
++ case "$ALPHA_CPU_TYPE" in
++ "EV4 (21064)")
++ UNAME_MACHINE="alpha" ;;
++ "EV4.5 (21064)")
++ UNAME_MACHINE="alpha" ;;
++ "LCA4 (21066/21068)")
++ UNAME_MACHINE="alpha" ;;
++ "EV5 (21164)")
++ UNAME_MACHINE="alphaev5" ;;
++ "EV5.6 (21164A)")
++ UNAME_MACHINE="alphaev56" ;;
++ "EV5.6 (21164PC)")
++ UNAME_MACHINE="alphapca56" ;;
++ "EV5.7 (21164PC)")
++ UNAME_MACHINE="alphapca57" ;;
++ "EV6 (21264)")
++ UNAME_MACHINE="alphaev6" ;;
++ "EV6.7 (21264A)")
++ UNAME_MACHINE="alphaev67" ;;
++ "EV6.8CB (21264C)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.8AL (21264B)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.8CX (21264D)")
++ UNAME_MACHINE="alphaev68" ;;
++ "EV6.9A (21264/EV69A)")
++ UNAME_MACHINE="alphaev69" ;;
++ "EV7 (21364)")
++ UNAME_MACHINE="alphaev7" ;;
++ "EV7.9 (21364A)")
++ UNAME_MACHINE="alphaev79" ;;
++ esac
++ # A Pn.n version is a patched version.
++ # A Vn.n version is a released version.
++ # A Tn.n version is a released field test version.
++ # A Xn.n version is an unreleased experimental baselevel.
++ # 1.2 uses "1.2" for uname -r.
++ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++ exit ;;
++ Alpha\ *:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # Should we change UNAME_MACHINE based on the output of uname instead
++ # of the specific Alpha model?
++ echo alpha-pc-interix
++ exit ;;
++ 21064:Windows_NT:50:3)
++ echo alpha-dec-winnt3.5
++ exit ;;
++ Amiga*:UNIX_System_V:4.0:*)
++ echo m68k-unknown-sysv4
++ exit ;;
++ *:[Aa]miga[Oo][Ss]:*:*)
++ echo ${UNAME_MACHINE}-unknown-amigaos
++ exit ;;
++ *:[Mm]orph[Oo][Ss]:*:*)
++ echo ${UNAME_MACHINE}-unknown-morphos
++ exit ;;
++ *:OS/390:*:*)
++ echo i370-ibm-openedition
++ exit ;;
++ *:z/VM:*:*)
++ echo s390-ibm-zvmoe
++ exit ;;
++ *:OS400:*:*)
++ echo powerpc-ibm-os400
++ exit ;;
++ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
++ echo arm-acorn-riscix${UNAME_RELEASE}
++ exit ;;
++ arm:riscos:*:*|arm:RISCOS:*:*)
++ echo arm-unknown-riscos
++ exit ;;
++ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
++ echo hppa1.1-hitachi-hiuxmpp
++ exit ;;
++ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
++ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
++ if test "`(/bin/universe) 2>/dev/null`" = att ; then
++ echo pyramid-pyramid-sysv3
++ else
++ echo pyramid-pyramid-bsd
++ fi
++ exit ;;
++ NILE*:*:*:dcosx)
++ echo pyramid-pyramid-svr4
++ exit ;;
++ DRS?6000:unix:4.0:6*)
++ echo sparc-icl-nx6
++ exit ;;
++ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
++ case `/usr/bin/uname -p` in
++ sparc) echo sparc-icl-nx7; exit ;;
++ esac ;;
++ sun4H:SunOS:5.*:*)
++ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
++ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ i86pc:SunOS:5.*:*)
++ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:6*:*)
++ # According to config.sub, this is the proper way to canonicalize
++ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
++ # it's likely to be more like Solaris than SunOS4.
++ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ sun4*:SunOS:*:*)
++ case "`/usr/bin/arch -k`" in
++ Series*|S4*)
++ UNAME_RELEASE=`uname -v`
++ ;;
++ esac
++ # Japanese Language versions have a version number like `4.1.3-JL'.
++ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
++ exit ;;
++ sun3*:SunOS:*:*)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ exit ;;
++ sun*:*:4.2BSD:*)
++ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
++ case "`/bin/arch`" in
++ sun3)
++ echo m68k-sun-sunos${UNAME_RELEASE}
++ ;;
++ sun4)
++ echo sparc-sun-sunos${UNAME_RELEASE}
++ ;;
++ esac
++ exit ;;
++ aushp:SunOS:*:*)
++ echo sparc-auspex-sunos${UNAME_RELEASE}
++ exit ;;
++ # The situation for MiNT is a little confusing. The machine name
++ # can be virtually everything (everything which is not
++ # "atarist" or "atariste" at least should have a processor
++ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
++ # to the lowercase version "mint" (or "freemint"). Finally
++ # the system name "TOS" denotes a system which is actually not
++ # MiNT. But MiNT is downward compatible to TOS, so this should
++ # be no problem.
++ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
++ echo m68k-atari-mint${UNAME_RELEASE}
++ exit ;;
++ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit ;;
++ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit ;;
++ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit ;;
++ m68k:machten:*:*)
++ echo m68k-apple-machten${UNAME_RELEASE}
++ exit ;;
++ powerpc:machten:*:*)
++ echo powerpc-apple-machten${UNAME_RELEASE}
++ exit ;;
++ RISC*:Mach:*:*)
++ echo mips-dec-mach_bsd4.3
++ exit ;;
++ RISC*:ULTRIX:*:*)
++ echo mips-dec-ultrix${UNAME_RELEASE}
++ exit ;;
++ VAX*:ULTRIX*:*:*)
++ echo vax-dec-ultrix${UNAME_RELEASE}
++ exit ;;
++ 2020:CLIX:*:* | 2430:CLIX:*:*)
++ echo clipper-intergraph-clix${UNAME_RELEASE}
++ exit ;;
++ mips:*:*:UMIPS | mips:*:*:RISCos)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++#ifdef __cplusplus
++#include <stdio.h> /* for printf() prototype */
++ int main (int argc, char *argv[]) {
++#else
++ int main (argc, argv) int argc; char *argv[]; {
++#endif
++ #if defined (host_mips) && defined (MIPSEB)
++ #if defined (SYSTYPE_SYSV)
++ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
++ #endif
++ #if defined (SYSTYPE_SVR4)
++ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
++ #endif
++ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
++ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
++ #endif
++ #endif
++ exit (-1);
++ }
++EOF
++ $CC_FOR_BUILD -o $dummy $dummy.c &&
++ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
++ SYSTEM_NAME=`$dummy $dummyarg` &&
++ { echo "$SYSTEM_NAME"; exit; }
++ echo mips-mips-riscos${UNAME_RELEASE}
++ exit ;;
++ Motorola:PowerMAX_OS:*:*)
++ echo powerpc-motorola-powermax
++ exit ;;
++ Motorola:*:4.3:PL8-*)
++ echo powerpc-harris-powermax
++ exit ;;
++ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
++ echo powerpc-harris-powermax
++ exit ;;
++ Night_Hawk:Power_UNIX:*:*)
++ echo powerpc-harris-powerunix
++ exit ;;
++ m88k:CX/UX:7*:*)
++ echo m88k-harris-cxux7
++ exit ;;
++ m88k:*:4*:R4*)
++ echo m88k-motorola-sysv4
++ exit ;;
++ m88k:*:3*:R3*)
++ echo m88k-motorola-sysv3
++ exit ;;
++ AViiON:dgux:*:*)
++ # DG/UX returns AViiON for all architectures
++ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
++ then
++ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
++ [ ${TARGET_BINARY_INTERFACE}x = x ]
++ then
++ echo m88k-dg-dgux${UNAME_RELEASE}
++ else
++ echo m88k-dg-dguxbcs${UNAME_RELEASE}
++ fi
++ else
++ echo i586-dg-dgux${UNAME_RELEASE}
++ fi
++ exit ;;
++ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
++ echo m88k-dolphin-sysv3
++ exit ;;
++ M88*:*:R3*:*)
++ # Delta 88k system running SVR3
++ echo m88k-motorola-sysv3
++ exit ;;
++ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
++ echo m88k-tektronix-sysv3
++ exit ;;
++ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
++ echo m68k-tektronix-bsd
++ exit ;;
++ *:IRIX*:*:*)
++ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
++ exit ;;
++ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
++ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
++ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
++ i*86:AIX:*:*)
++ echo i386-ibm-aix
++ exit ;;
++ ia64:AIX:*:*)
++ if [ -x /usr/bin/oslevel ] ; then
++ IBM_REV=`/usr/bin/oslevel`
++ else
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
++ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
++ exit ;;
++ *:AIX:2:3)
++ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #include <sys/systemcfg.h>
++
++ main()
++ {
++ if (!__power_pc())
++ exit(1);
++ puts("powerpc-ibm-aix3.2.5");
++ exit(0);
++ }
++EOF
++ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
++ then
++ echo "$SYSTEM_NAME"
++ else
++ echo rs6000-ibm-aix3.2.5
++ fi
++ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
++ echo rs6000-ibm-aix3.2.4
++ else
++ echo rs6000-ibm-aix3.2
++ fi
++ exit ;;
++ *:AIX:*:[45])
++ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
++ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
++ IBM_ARCH=rs6000
++ else
++ IBM_ARCH=powerpc
++ fi
++ if [ -x /usr/bin/oslevel ] ; then
++ IBM_REV=`/usr/bin/oslevel`
++ else
++ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
++ fi
++ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
++ exit ;;
++ *:AIX:*:*)
++ echo rs6000-ibm-aix
++ exit ;;
++ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
++ echo romp-ibm-bsd4.4
++ exit ;;
++ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
++ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
++ exit ;; # report: romp-ibm BSD 4.3
++ *:BOSX:*:*)
++ echo rs6000-bull-bosx
++ exit ;;
++ DPX/2?00:B.O.S.:*:*)
++ echo m68k-bull-sysv3
++ exit ;;
++ 9000/[34]??:4.3bsd:1.*:*)
++ echo m68k-hp-bsd
++ exit ;;
++ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
++ echo m68k-hp-bsd4.4
++ exit ;;
++ 9000/[34678]??:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++ case "${UNAME_MACHINE}" in
++ 9000/31? ) HP_ARCH=m68000 ;;
++ 9000/[34]?? ) HP_ARCH=m68k ;;
++ 9000/[678][0-9][0-9])
++ if [ -x /usr/bin/getconf ]; then
++ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
++ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
++ case "${sc_cpu_version}" in
++ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
++ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
++ 532) # CPU_PA_RISC2_0
++ case "${sc_kernel_bits}" in
++ 32) HP_ARCH="hppa2.0n" ;;
++ 64) HP_ARCH="hppa2.0w" ;;
++ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
++ esac ;;
++ esac
++ fi
++ if [ "${HP_ARCH}" = "" ]; then
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++
++ #define _HPUX_SOURCE
++ #include <stdlib.h>
++ #include <unistd.h>
++
++ int main ()
++ {
++ #if defined(_SC_KERNEL_BITS)
++ long bits = sysconf(_SC_KERNEL_BITS);
++ #endif
++ long cpu = sysconf (_SC_CPU_VERSION);
++
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
++ case CPU_PA_RISC2_0:
++ #if defined(_SC_KERNEL_BITS)
++ switch (bits)
++ {
++ case 64: puts ("hppa2.0w"); break;
++ case 32: puts ("hppa2.0n"); break;
++ default: puts ("hppa2.0"); break;
++ } break;
++ #else /* !defined(_SC_KERNEL_BITS) */
++ puts ("hppa2.0"); break;
++ #endif
++ default: puts ("hppa1.0"); break;
++ }
++ exit (0);
++ }
++EOF
++ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++ test -z "$HP_ARCH" && HP_ARCH=hppa
++ fi ;;
++ esac
++ if [ ${HP_ARCH} = "hppa2.0w" ]
++ then
++ eval $set_cc_for_build
++
++ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
++ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
++ # generating 64-bit code. GNU and HP use different nomenclature:
++ #
++ # $ CC_FOR_BUILD=cc ./config.guess
++ # => hppa2.0w-hp-hpux11.23
++ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
++ # => hppa64-hp-hpux11.23
++
++ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
++ grep __LP64__ >/dev/null
++ then
++ HP_ARCH="hppa2.0w"
++ else
++ HP_ARCH="hppa64"
++ fi
++ fi
++ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
++ exit ;;
++ ia64:HP-UX:*:*)
++ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
++ echo ia64-hp-hpux${HPUX_REV}
++ exit ;;
++ 3050*:HI-UX:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #include <unistd.h>
++ int
++ main ()
++ {
++ long cpu = sysconf (_SC_CPU_VERSION);
++ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
++ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
++ results, however. */
++ if (CPU_IS_PA_RISC (cpu))
++ {
++ switch (cpu)
++ {
++ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
++ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
++ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
++ default: puts ("hppa-hitachi-hiuxwe2"); break;
++ }
++ }
++ else if (CPU_IS_HP_MC68K (cpu))
++ puts ("m68k-hitachi-hiuxwe2");
++ else puts ("unknown-hitachi-hiuxwe2");
++ exit (0);
++ }
++EOF
++ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
++ echo unknown-hitachi-hiuxwe2
++ exit ;;
++ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
++ echo hppa1.1-hp-bsd
++ exit ;;
++ 9000/8??:4.3bsd:*:*)
++ echo hppa1.0-hp-bsd
++ exit ;;
++ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
++ echo hppa1.0-hp-mpeix
++ exit ;;
++ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
++ echo hppa1.1-hp-osf
++ exit ;;
++ hp8??:OSF1:*:*)
++ echo hppa1.0-hp-osf
++ exit ;;
++ i*86:OSF1:*:*)
++ if [ -x /usr/sbin/sysversion ] ; then
++ echo ${UNAME_MACHINE}-unknown-osf1mk
++ else
++ echo ${UNAME_MACHINE}-unknown-osf1
++ fi
++ exit ;;
++ parisc*:Lites*:*:*)
++ echo hppa1.1-hp-lites
++ exit ;;
++ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
++ echo c1-convex-bsd
++ exit ;;
++ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
++ if getsysinfo -f scalar_acc
++ then echo c32-convex-bsd
++ else echo c2-convex-bsd
++ fi
++ exit ;;
++ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
++ echo c34-convex-bsd
++ exit ;;
++ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
++ echo c38-convex-bsd
++ exit ;;
++ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
++ echo c4-convex-bsd
++ exit ;;
++ CRAY*Y-MP:*:*:*)
++ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*[A-Z]90:*:*:*)
++ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
++ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
++ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
++ -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*TS:*:*:*)
++ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*T3E:*:*:*)
++ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ CRAY*SV1:*:*:*)
++ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ *:UNICOS/mp:*:*)
++ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
++ exit ;;
++ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
++ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
++ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
++ 5000:UNIX_System_V:4.*:*)
++ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
++ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
++ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
++ exit ;;
++ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
++ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
++ exit ;;
++ sparc*:BSD/OS:*:*)
++ echo sparc-unknown-bsdi${UNAME_RELEASE}
++ exit ;;
++ *:BSD/OS:*:*)
++ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
++ exit ;;
++ *:FreeBSD:*:*)
++ case ${UNAME_MACHINE} in
++ pc98)
++ echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ amd64)
++ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ *)
++ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
++ esac
++ exit ;;
++ i*:CYGWIN*:*)
++ echo ${UNAME_MACHINE}-pc-cygwin
++ exit ;;
++ *:MINGW*:*)
++ echo ${UNAME_MACHINE}-pc-mingw32
++ exit ;;
++ i*:windows32*:*)
++ # uname -m includes "-pc" on this system.
++ echo ${UNAME_MACHINE}-mingw32
++ exit ;;
++ i*:PW*:*)
++ echo ${UNAME_MACHINE}-pc-pw32
++ exit ;;
++ *:Interix*:[3456]*)
++ case ${UNAME_MACHINE} in
++ x86)
++ echo i586-pc-interix${UNAME_RELEASE}
++ exit ;;
++ EM64T | authenticamd)
++ echo x86_64-unknown-interix${UNAME_RELEASE}
++ exit ;;
++ esac ;;
++ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
++ echo i${UNAME_MACHINE}-pc-mks
++ exit ;;
++ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
++ # How do we know it's Interix rather than the generic POSIX subsystem?
++ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
++ # UNAME_MACHINE based on the output of uname instead of i386?
++ echo i586-pc-interix
++ exit ;;
++ i*:UWIN*:*)
++ echo ${UNAME_MACHINE}-pc-uwin
++ exit ;;
++ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
++ echo x86_64-unknown-cygwin
++ exit ;;
++ p*:CYGWIN*:*)
++ echo powerpcle-unknown-cygwin
++ exit ;;
++ prep*:SunOS:5.*:*)
++ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
++ *:GNU:*:*)
++ # the GNU system
++ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
++ exit ;;
++ *:GNU/*:*:*)
++ # other systems with GNU libc and userland
++ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
++ exit ;;
++ i*86:Minix:*:*)
++ echo ${UNAME_MACHINE}-pc-minix
++ exit ;;
++ arm*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ avr32*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ cris:Linux:*:*)
++ echo cris-axis-linux-gnu
++ exit ;;
++ crisv32:Linux:*:*)
++ echo crisv32-axis-linux-gnu
++ exit ;;
++ frv:Linux:*:*)
++ echo frv-unknown-linux-gnu
++ exit ;;
++ ia64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ m32r*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ m68*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ mips:Linux:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #undef CPU
++ #undef mips
++ #undef mipsel
++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++ CPU=mipsel
++ #else
++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++ CPU=mips
++ #else
++ CPU=
++ #endif
++ #endif
++EOF
++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
++ /^CPU/{
++ s: ::g
++ p
++ }'`"
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
++ ;;
++ mips64:Linux:*:*)
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #undef CPU
++ #undef mips64
++ #undef mips64el
++ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++ CPU=mips64el
++ #else
++ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++ CPU=mips64
++ #else
++ CPU=
++ #endif
++ #endif
++EOF
++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
++ /^CPU/{
++ s: ::g
++ p
++ }'`"
++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
++ ;;
++ or32:Linux:*:*)
++ echo or32-unknown-linux-gnu
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-gnu
++ exit ;;
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-gnu
++ exit ;;
++ alpha:Linux:*:*)
++ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++ EV5) UNAME_MACHINE=alphaev5 ;;
++ EV56) UNAME_MACHINE=alphaev56 ;;
++ PCA56) UNAME_MACHINE=alphapca56 ;;
++ PCA57) UNAME_MACHINE=alphapca56 ;;
++ EV6) UNAME_MACHINE=alphaev6 ;;
++ EV67) UNAME_MACHINE=alphaev67 ;;
++ EV68*) UNAME_MACHINE=alphaev68 ;;
++ esac
++ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ exit ;;
++ parisc:Linux:*:* | hppa:Linux:*:*)
++ # Look for CPU level
++ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
++ PA7*) echo hppa1.1-unknown-linux-gnu ;;
++ PA8*) echo hppa2.0-unknown-linux-gnu ;;
++ *) echo hppa-unknown-linux-gnu ;;
++ esac
++ exit ;;
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-gnu
++ exit ;;
++ s390:Linux:*:* | s390x:Linux:*:*)
++ echo ${UNAME_MACHINE}-ibm-linux
++ exit ;;
++ sh64*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ sh*:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ sparc:Linux:*:* | sparc64:Linux:*:*)
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ exit ;;
++ vax:Linux:*:*)
++ echo ${UNAME_MACHINE}-dec-linux-gnu
++ exit ;;
++ x86_64:Linux:*:*)
++ echo x86_64-unknown-linux-gnu
++ exit ;;
++ xtensa:Linux:*:*)
++ echo xtensa-unknown-linux-gnu
++ exit ;;
++ i*86:Linux:*:*)
++ # The BFD linker knows what the default object file format is, so
++ # first see if it will tell us. cd to the root directory to prevent
++ # problems with other programs or directories called `ld' in the path.
++ # Set LC_ALL=C to ensure ld outputs messages in English.
++ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
++ | sed -ne '/supported targets:/!d
++ s/[ ][ ]*/ /g
++ s/.*supported targets: *//
++ s/ .*//
++ p'`
++ case "$ld_supported_targets" in
++ elf32-i386)
++ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
++ ;;
++ a.out-i386-linux)
++ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
++ exit ;;
++ coff-i386)
++ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
++ exit ;;
++ "")
++ # Either a pre-BFD a.out linker (linux-gnuoldld) or
++ # one that does not give us useful --help.
++ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
++ exit ;;
++ esac
++ # Determine whether the default compiler is a.out or elf
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #include <features.h>
++ #ifdef __ELF__
++ # ifdef __GLIBC__
++ # if __GLIBC__ >= 2
++ LIBC=gnu
++ # else
++ LIBC=gnulibc1
++ # endif
++ # else
++ LIBC=gnulibc1
++ # endif
++ #else
++ #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
++ LIBC=gnu
++ #else
++ LIBC=gnuaout
++ #endif
++ #endif
++ #ifdef __dietlibc__
++ LIBC=dietlibc
++ #endif
++EOF
++ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
++ /^LIBC/{
++ s: ::g
++ p
++ }'`"
++ test x"${LIBC}" != x && {
++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
++ exit
++ }
++ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
++ ;;
++ i*86:DYNIX/ptx:4*:*)
++ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
++ # earlier versions are messed up and put the nodename in both
++ # sysname and nodename.
++ echo i386-sequent-sysv4
++ exit ;;
++ i*86:UNIX_SV:4.2MP:2.*)
++ # Unixware is an offshoot of SVR4, but it has its own version
++ # number series starting with 2...
++ # I am not positive that other SVR4 systems won't match this,
++ # I just have to hope. -- rms.
++ # Use sysv4.2uw... so that sysv4* matches it.
++ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
++ exit ;;
++ i*86:OS/2:*:*)
++ # If we were able to find `uname', then EMX Unix compatibility
++ # is probably installed.
++ echo ${UNAME_MACHINE}-pc-os2-emx
++ exit ;;
++ i*86:XTS-300:*:STOP)
++ echo ${UNAME_MACHINE}-unknown-stop
++ exit ;;
++ i*86:atheos:*:*)
++ echo ${UNAME_MACHINE}-unknown-atheos
++ exit ;;
++ i*86:syllable:*:*)
++ echo ${UNAME_MACHINE}-pc-syllable
++ exit ;;
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++ echo i386-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ i*86:*DOS:*:*)
++ echo ${UNAME_MACHINE}-pc-msdosdjgpp
++ exit ;;
++ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
++ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
++ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
++ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
++ else
++ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
++ fi
++ exit ;;
++ i*86:*:5:[678]*)
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
++ case `/bin/uname -X | grep "^Machine"` in
++ *486*) UNAME_MACHINE=i486 ;;
++ *Pentium) UNAME_MACHINE=i586 ;;
++ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
++ esac
++ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
++ exit ;;
++ i*86:*:3.2:*)
++ if test -f /usr/options/cb.name; then
++ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
++ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
++ elif /bin/uname -X 2>/dev/null >/dev/null ; then
++ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
++ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
++ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
++ && UNAME_MACHINE=i586
++ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
++ && UNAME_MACHINE=i686
++ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
++ && UNAME_MACHINE=i686
++ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
++ else
++ echo ${UNAME_MACHINE}-pc-sysv32
++ fi
++ exit ;;
++ pc:*:*:*)
++ # Left here for compatibility:
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i386.
++ echo i386-pc-msdosdjgpp
++ exit ;;
++ Intel:Mach:3*:*)
++ echo i386-pc-mach3
++ exit ;;
++ paragon:*:*:*)
++ echo i860-intel-osf1
++ exit ;;
++ i860:*:4.*:*) # i860-SVR4
++ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
++ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
++ else # Add other i860-SVR4 vendors below as they are discovered.
++ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
++ fi
++ exit ;;
++ mini*:CTIX:SYS*5:*)
++ # "miniframe"
++ echo m68010-convergent-sysv
++ exit ;;
++ mc68k:UNIX:SYSTEM5:3.51m)
++ echo m68k-convergent-sysv
++ exit ;;
++ M680?0:D-NIX:5.3:*)
++ echo m68k-diab-dnix
++ exit ;;
++ M68*:*:R3V[5678]*:*)
++ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
++ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
++ OS_REL=''
++ test -r /etc/.relid \
++ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
++ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
++ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
++ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
++ echo m68k-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ mc68030:UNIX_System_V:4.*:*)
++ echo m68k-atari-sysv4
++ exit ;;
++ TSUNAMI:LynxOS:2.*:*)
++ echo sparc-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ rs6000:LynxOS:2.*:*)
++ echo rs6000-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++ echo powerpc-unknown-lynxos${UNAME_RELEASE}
++ exit ;;
++ SM[BE]S:UNIX_SV:*:*)
++ echo mips-dde-sysv${UNAME_RELEASE}
++ exit ;;
++ RM*:ReliantUNIX-*:*:*)
++ echo mips-sni-sysv4
++ exit ;;
++ RM*:SINIX-*:*:*)
++ echo mips-sni-sysv4
++ exit ;;
++ *:SINIX-*:*:*)
++ if uname -p 2>/dev/null >/dev/null ; then
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ echo ${UNAME_MACHINE}-sni-sysv4
++ else
++ echo ns32k-sni-sysv
++ fi
++ exit ;;
++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++ # says <Richard.M.Bartel@ccMail.Census.GOV>
++ echo i586-unisys-sysv4
++ exit ;;
++ *:UNIX_System_V:4*:FTX*)
++ # From Gerald Hewes <hewes@openmarket.com>.
++ # How about differentiating between stratus architectures? -djm
++ echo hppa1.1-stratus-sysv4
++ exit ;;
++ *:*:*:FTX*)
++ # From seanf@swdc.stratus.com.
++ echo i860-stratus-sysv4
++ exit ;;
++ i*86:VOS:*:*)
++ # From Paul.Green@stratus.com.
++ echo ${UNAME_MACHINE}-stratus-vos
++ exit ;;
++ *:VOS:*:*)
++ # From Paul.Green@stratus.com.
++ echo hppa1.1-stratus-vos
++ exit ;;
++ mc68*:A/UX:*:*)
++ echo m68k-apple-aux${UNAME_RELEASE}
++ exit ;;
++ news*:NEWS-OS:6*:*)
++ echo mips-sony-newsos6
++ exit ;;
++ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
++ if [ -d /usr/nec ]; then
++ echo mips-nec-sysv${UNAME_RELEASE}
++ else
++ echo mips-unknown-sysv${UNAME_RELEASE}
++ fi
++ exit ;;
++ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
++ echo powerpc-be-beos
++ exit ;;
++ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
++ echo powerpc-apple-beos
++ exit ;;
++ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
++ echo i586-pc-beos
++ exit ;;
++ SX-4:SUPER-UX:*:*)
++ echo sx4-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-5:SUPER-UX:*:*)
++ echo sx5-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-6:SUPER-UX:*:*)
++ echo sx6-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-7:SUPER-UX:*:*)
++ echo sx7-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8:SUPER-UX:*:*)
++ echo sx8-nec-superux${UNAME_RELEASE}
++ exit ;;
++ SX-8R:SUPER-UX:*:*)
++ echo sx8r-nec-superux${UNAME_RELEASE}
++ exit ;;
++ Power*:Rhapsody:*:*)
++ echo powerpc-apple-rhapsody${UNAME_RELEASE}
++ exit ;;
++ *:Rhapsody:*:*)
++ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
++ exit ;;
++ *:Darwin:*:*)
++ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
++ case $UNAME_PROCESSOR in
++ unknown) UNAME_PROCESSOR=powerpc ;;
++ esac
++ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
++ exit ;;
++ *:procnto*:*:* | *:QNX:[0123456789]*:*)
++ UNAME_PROCESSOR=`uname -p`
++ if test "$UNAME_PROCESSOR" = "x86"; then
++ UNAME_PROCESSOR=i386
++ UNAME_MACHINE=pc
++ fi
++ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
++ exit ;;
++ *:QNX:*:4*)
++ echo i386-pc-qnx
++ exit ;;
++ NSE-?:NONSTOP_KERNEL:*:*)
++ echo nse-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ NSR-?:NONSTOP_KERNEL:*:*)
++ echo nsr-tandem-nsk${UNAME_RELEASE}
++ exit ;;
++ *:NonStop-UX:*:*)
++ echo mips-compaq-nonstopux
++ exit ;;
++ BS2000:POSIX*:*:*)
++ echo bs2000-siemens-sysv
++ exit ;;
++ DS/*:UNIX_System_V:*:*)
++ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
++ exit ;;
++ *:Plan9:*:*)
++ # "uname -m" is not consistent, so use $cputype instead. 386
++ # is converted to i386 for consistency with other x86
++ # operating systems.
++ if test "$cputype" = "386"; then
++ UNAME_MACHINE=i386
++ else
++ UNAME_MACHINE="$cputype"
++ fi
++ echo ${UNAME_MACHINE}-unknown-plan9
++ exit ;;
++ *:TOPS-10:*:*)
++ echo pdp10-unknown-tops10
++ exit ;;
++ *:TENEX:*:*)
++ echo pdp10-unknown-tenex
++ exit ;;
++ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
++ echo pdp10-dec-tops20
++ exit ;;
++ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
++ echo pdp10-xkl-tops20
++ exit ;;
++ *:TOPS-20:*:*)
++ echo pdp10-unknown-tops20
++ exit ;;
++ *:ITS:*:*)
++ echo pdp10-unknown-its
++ exit ;;
++ SEI:*:*:SEIUX)
++ echo mips-sei-seiux${UNAME_RELEASE}
++ exit ;;
++ *:DragonFly:*:*)
++ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++ exit ;;
++ *:*VMS:*:*)
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
++ case "${UNAME_MACHINE}" in
++ A*) echo alpha-dec-vms ; exit ;;
++ I*) echo ia64-dec-vms ; exit ;;
++ V*) echo vax-dec-vms ; exit ;;
++ esac ;;
++ *:XENIX:*:SysV)
++ echo i386-pc-xenix
++ exit ;;
++ i*86:skyos:*:*)
++ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
++ exit ;;
++ i*86:rdos:*:*)
++ echo ${UNAME_MACHINE}-pc-rdos
++ exit ;;
++esac
++
++#echo '(No uname command or uname output not recognized.)' 1>&2
++#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
++
++eval $set_cc_for_build
++cat >$dummy.c <<EOF
++#ifdef _SEQUENT_
++# include <sys/types.h>
++# include <sys/utsname.h>
++#endif
++main ()
++{
++#if defined (sony)
++#if defined (MIPSEB)
++ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
++ I don't know.... */
++ printf ("mips-sony-bsd\n"); exit (0);
++#else
++#include <sys/param.h>
++ printf ("m68k-sony-newsos%s\n",
++#ifdef NEWSOS4
++ "4"
++#else
++ ""
++#endif
++ ); exit (0);
++#endif
++#endif
++
++#if defined (__arm) && defined (__acorn) && defined (__unix)
++ printf ("arm-acorn-riscix\n"); exit (0);
++#endif
++
++#if defined (hp300) && !defined (hpux)
++ printf ("m68k-hp-bsd\n"); exit (0);
++#endif
++
++#if defined (NeXT)
++#if !defined (__ARCHITECTURE__)
++#define __ARCHITECTURE__ "m68k"
++#endif
++ int version;
++ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
++ if (version < 4)
++ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
++ else
++ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
++ exit (0);
++#endif
++
++#if defined (MULTIMAX) || defined (n16)
++#if defined (UMAXV)
++ printf ("ns32k-encore-sysv\n"); exit (0);
++#else
++#if defined (CMU)
++ printf ("ns32k-encore-mach\n"); exit (0);
++#else
++ printf ("ns32k-encore-bsd\n"); exit (0);
++#endif
++#endif
++#endif
++
++#if defined (__386BSD__)
++ printf ("i386-pc-bsd\n"); exit (0);
++#endif
++
++#if defined (sequent)
++#if defined (i386)
++ printf ("i386-sequent-dynix\n"); exit (0);
++#endif
++#if defined (ns32000)
++ printf ("ns32k-sequent-dynix\n"); exit (0);
++#endif
++#endif
++
++#if defined (_SEQUENT_)
++ struct utsname un;
++
++ uname(&un);
++
++ if (strncmp(un.version, "V2", 2) == 0) {
++ printf ("i386-sequent-ptx2\n"); exit (0);
++ }
++ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
++ printf ("i386-sequent-ptx1\n"); exit (0);
++ }
++ printf ("i386-sequent-ptx\n"); exit (0);
++
++#endif
++
++#if defined (vax)
++# if !defined (ultrix)
++# include <sys/param.h>
++# if defined (BSD)
++# if BSD == 43
++ printf ("vax-dec-bsd4.3\n"); exit (0);
++# else
++# if BSD == 199006
++ printf ("vax-dec-bsd4.3reno\n"); exit (0);
++# else
++ printf ("vax-dec-bsd\n"); exit (0);
++# endif
++# endif
++# else
++ printf ("vax-dec-bsd\n"); exit (0);
++# endif
++# else
++ printf ("vax-dec-ultrix\n"); exit (0);
++# endif
++#endif
++
++#if defined (alliant) && defined (i860)
++ printf ("i860-alliant-bsd\n"); exit (0);
++#endif
++
++ exit (1);
++}
++EOF
++
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
++ { echo "$SYSTEM_NAME"; exit; }
++
++# Apollos put the system type in the environment.
++
++test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
++
++# Convex versions that predate uname can use getsysinfo(1)
++
++if [ -x /usr/convex/getsysinfo ]
++then
++ case `getsysinfo -f cpu_type` in
++ c1*)
++ echo c1-convex-bsd
++ exit ;;
++ c2*)
++ if getsysinfo -f scalar_acc
++ then echo c32-convex-bsd
++ else echo c2-convex-bsd
++ fi
++ exit ;;
++ c34*)
++ echo c34-convex-bsd
++ exit ;;
++ c38*)
++ echo c38-convex-bsd
++ exit ;;
++ c4*)
++ echo c4-convex-bsd
++ exit ;;
++ esac
++fi
++
++cat >&2 <<EOF
++$0: unable to guess system type
++
++This script, last modified $timestamp, has failed to recognize
++the operating system you are using. It is advised that you
++download the most up to date version of the config scripts from
++
++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
++and
++ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
++
++If the version you run ($0) is already up to date, please
++send the following data and any information you think might be
++pertinent to <config-patches@gnu.org> in order to provide the needed
++information to handle your system.
++
++config.guess timestamp = $timestamp
++
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
++/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
++
++hostinfo = `(hostinfo) 2>/dev/null`
++/bin/universe = `(/bin/universe) 2>/dev/null`
++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
++/bin/arch = `(/bin/arch) 2>/dev/null`
++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
++
++UNAME_MACHINE = ${UNAME_MACHINE}
++UNAME_RELEASE = ${UNAME_RELEASE}
++UNAME_SYSTEM = ${UNAME_SYSTEM}
++UNAME_VERSION = ${UNAME_VERSION}
++EOF
++
++exit 1
++
++# Local variables:
++# eval: (add-hook 'write-file-hooks 'time-stamp)
++# time-stamp-start: "timestamp='"
++# time-stamp-format: "%:y-%02m-%02d"
++# time-stamp-end: "'"
++# End:
+--- adjtimex-1.23.orig/debian/control
++++ adjtimex-1.23/debian/control
+@@ -0,0 +1,20 @@
++Source: adjtimex
++Section: admin
++Priority: optional
++Maintainer: James R. Van Zandt <jrv@debian.org>
++Build-Depends: debhelper (>= 5), po-debconf
++Standards-Version: 3.7.2
++
++Package: adjtimex
++Architecture: any
++Depends: ${shlibs:Depends}, debconf | debconf-2.0
++Suggests: ntpdate
++Description: Utility to display or set the kernel time variables
++ This program gives you raw access to the kernel time variables. For
++ a machine connected to the Internet, or equipped with a precision
++ oscillator or radio clock, the best way to keep the system clock
++ correct is with ntpd. However, for a standalone or intermittently
++ connected machine, you may use adjtimex instead to at least correct
++ for systematic drift. adjtimex can optionally adjust the system
++ clock using the CMOS clock as a reference, and can log times for
++ long-term estimation of drift rates.
+--- adjtimex-1.23.orig/debian/po/POTFILES.in
++++ adjtimex-1.23/debian/po/POTFILES.in
+@@ -0,0 +1 @@
++[type: gettext/rfc822deb] templates
+--- adjtimex-1.23.orig/debian/po/templates.pot
++++ adjtimex-1.23/debian/po/templates.pot
+@@ -0,0 +1,59 @@
++# SOME DESCRIPTIVE TITLE.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=CHARSET\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
+--- adjtimex-1.23.orig/debian/po/fr.po
++++ adjtimex-1.23/debian/po/fr.po
+@@ -0,0 +1,87 @@
++# translation of fr.po to French
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++# Christian Perrier <bubulle@debian.org>, 2006.
++msgid ""
++msgstr ""
++"Project-Id-Version: fr\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2006-12-17 14:01+0100\n"
++"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
++"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: KBabel 1.11.4\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Faut-il lancer adjtimex lors de l'installation et à chaque démarrage du "
++"système ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"Adjtimex peut être lancé au démarrage du système afin de régler les "
++"paramètres d'horloge du noyau en fonction des valeurs contenues dans /etc/"
++"default/adjtimex. Ne choisissez pas cette option si vous souhaitez "
++"simplement vous servir d'adjtimex pour consulter les paramètres actuels."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Faut-il lancer adjtimexconfig lors de l'installation ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Le script adjtimexconfig utilise adjtimex afin de trouver les valeurs "
++"appropriées pour les variables du noyau concernant le battement (« tick ») "
++"et la fréquence d'horloge. Cela permettra à l'horloge du système d'être à "
++"peu près en accord avec l'horloge matérielle (parfois appelée « horloge "
++"CMOS »). Ces valeurs seront alors conservées dans le fichier de "
++"configuration /etc/default/adjtimex ce qui permettra de les restaurer à "
++"chaque démarrage quand /etc/init.d/adjtimex s'exécutera. "
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"La durée d'exécution du script est de 70 secondes. Vous pouvez également "
++"utiliser adjtimexconfig vous-même plus tard ou déterminer les valeurs des "
++"variables du noyau d'une autre manière (il en existe plusieurs : voir la "
++"page de manuel d'adjtimex). Ces valeurs devront ensuite être placées dans /"
++"etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/es.po
++++ adjtimex-1.23/debian/po/es.po
+@@ -0,0 +1,81 @@
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: Vicente H. <vherrerv@supercable.es>\n"
++"Language-Team: LANGUAGE <LL@li.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=ISO-8859-15\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Debe ejecutarse adjtimex ahora y en cada arranque?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++#, fuzzy
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"Adjtimex puede ser ejecutado en el arranque del sistema para poner los "
++"parmetros de tiempo del ncleo en /etc/default/adjtimex. Si usted solamente "
++"quiere usar adjtimex para inspeccionar los parmetros actuales, conteste \"No"
++"\"."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Debe ejecutarse adjtimexconfig ahora?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"El guin adjtimexconfig usar adjtimex para encontrar los valores para el "
++"ncleo de la seal y frecuencia que ser tomada por el reloj del sistema "
++"para estar de acuerdo con el reloj del hardware (tambin conocido como el "
++"reloj CMOS). Este guin guardar los valores en el archivo de configuracin /"
++"etc/default/adjtimex para que los ajustes sean restaurados en cada arranque "
++"del sistema, cuando /etc/init.d/adjtimex sea ejecutado."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"El guin toma 70 seg. para ser ejecutado. O bien, usted mismo puede ejecutar "
++"adjtimexconfig ms tarde, o determinar las variables del ncleo de varias "
++"formas (mire la pgina man de adjtimex) y antelos en /etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/pl.po
++++ adjtimex-1.23/debian/po/pl.po
+@@ -0,0 +1,83 @@
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: Bartosz Zapaowski <zapal@debian.linux.org.pl>\n"
++"Language-Team: Polish Debian Documentation Project <pddp@debian.linux.org."
++"pl>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=iso-8859-2\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Czy adjtimex ma by uruchomiany podczas instalacji i kadego startu systemu?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex moe by uruchamiany podczas kadego uruchomienia systemu,by "
++"ustawi parametry czasu w jdrze na wartoci znajdujce si w pliku/etc/"
++"default/adjtimex. Nie wyraaj zgody, jeli chcesz uywa adjtimextylko do "
++"sprawdzania aktualnych wartoci."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Czy adjtimexconfig ma by uruchomiony podczas instalacji?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Skrypt adjtimexconfig skorzysta z programu adjtimex do znalezienia "
++"takichwartoci parametrw jdra tick i frequency, eby zegar systemowy by "
++"zblionydo zegara sprztowego (zegara CMOS). Nastpnie zapisze ustawienia w "
++"plikukonfiguracyjnym /etc/default/adjtimex, dziki czemu wartoci te "
++"bdprzywrcane przy kadym starcie systemu w momencie wykonywania skryptu/"
++"etc/init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Skrypt bdzie dziaa przez 70 sekund. Moesz te uruchomi "
++"wasnorcznieadjtimexconfig w dowolnym czasie lub dobra paramterty jdra w "
++"innysposb (zapoznaj si ze stron manuala adjtimex) i zapisa je w pliku/"
++"etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/nl.po
++++ adjtimex-1.23/debian/po/nl.po
+@@ -0,0 +1,82 @@
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2003-10-04 16:05+0100\n"
++"Last-Translator: Michiel Sikkes <michiel@sikkes.xs4all.nl>\n"
++"Language-Team: Dutch <debian-l10n-dutch@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Wilt u dat adjtimex bij elke installatie en bij elke opstartprocedure "
++"gedraaid wordt?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex kan gedraaid worden bij het opstarten van het systeem om de "
++"kerneltijd parameters in te stellen zoals gedefinieerd in /etc/default/"
++"adjtimex. Accepteer deze optie niet als u adjtimex wilt gebruiken om de "
++"huidige parameters te bekijken."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Wilt u dat adjtimexconfig bij het installeren wordt gedraaid?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Het adjtimexconfig script zal adjtimex gebruiken om de eigenschappen voor de "
++"kernelvariablen tick en frequency te vinden. Dit zal zorgen dat de "
++"systeemklok gelijk loopt met de hardware klok (ook bekend onder de naam CMOS "
++"klok). Het slaat deze eigenschappen op in het configuratiebestand /etc/"
++"default/adjtimex, dus de instellingen worden bij elke "
++"systeemopstartprocedure hersteld als /etc/init.d/adjtimex draait."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Het script doet er 70 seconden over om te draaien. Als alternatief kunt u "
++"adjtimexconfig later handmatig draaien, of de kerneleigenschappen op een "
++"andere manier bepalen (zie de adjtimex man-pagina) en deze zelf in /etc/"
++"default/adjtimex zetten."
+--- adjtimex-1.23.orig/debian/po/da.po
++++ adjtimex-1.23/debian/po/da.po
+@@ -0,0 +1,79 @@
++# translation of adjtimex_1.16-1-da.po to Danish
++# translation of adjtimex_1.16-1_templates.po to Danish
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
++# Developers do not need to manually edit POT or PO files.
++# Claus Hindsgaul <claus_h@image.dk>, 2004.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex_1.16-1-da\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2004-03-24 17:57+0100\n"
++"Last-Translator: Claus Hindsgaul <claus_h@image.dk>\n"
++"Language-Team: Danish <dansk@klid.dk>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: KBabel 1.3.1\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Skal adjtimex køres under installation og ved hver opstart?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex kan køres under opstart af systemet for at sætte kernens "
++"tidsparametre til værdierne i /etC/default/adjtimex. Acceptér ikke dette, "
++"hvis du kun vil bruge adjtimex til at gennemse de aktuelle parametre."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Skal adjtimexconfig køres under installationen?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Skriftet adjtimexconfig vil bruge adjtimex til at finde de værdier til "
++"kernevariablene tick og frequency, der vil få systemuret til at passe med "
++"computerens indbyggede ur (CMOS-uret). Den gemmer derefter værdierne i "
++"opsætningsfilen /etc/default/edjtimex, så indstillingerne bliver sat under "
++"hver opstart, når skriptet /etC/init.d/adjtimex køres."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Det tager 70 sekunder at køre skriptet. Alternativt kan du selv køre "
++"adjtimexconfig senere, eller finde kernevariablene på en anden måde (se "
++"manualsiden adjtimex) og installere dem i /etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/ja.po
++++ adjtimex-1.23/debian/po/ja.po
+@@ -0,0 +1,78 @@
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: PACKAGE VERSION\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2003-11-21 00:02+0900\n"
++"Last-Translator: Hideki Yamane <henrich@samba.gr.jp>\n"
++"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=EUC-JP\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "adjtimex 򥤥󥹥ȡεưưޤ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex 򥷥ƥεưưƥͥλ֥ѥ᡼ /etc/"
++"default/adjtimex ͤꤹ뤳ȤǽǤ adjtimex 򸽺ߤΥѥ᡼"
++"Ĵˤ˻ȤȤư򤵤ʤǤ"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "adjtimexconfig 򥤥󥹥ȡưޤ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"adjtimexconfig ץȤ adjtimex Ѥơƥ९åϡɥ"
++"å (CMOS åȤƤΤƤޤ) Ȥ褽Ʊ褦˥"
++"ͥѿ tick frequency Ϳͤ򸫤Ĥޤơͤե"
++" /etc/default/adjtimex ¸뤳Ȥư /etc/init.d/adjtimex "
++"ưݤ꤬ޤ"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"ץȤư 70 äޤ̲ȤƤ adjtimexconfig ۤɼ¹"
++"롢ޤ¾ˡǥͥѿ (adjtimex man ڡ򻲾) /"
++"etc/default/adjtimex ؤԤʤɤǽǤ"
+--- adjtimex-1.23.orig/debian/po/pt_BR.po
++++ adjtimex-1.23/debian/po/pt_BR.po
+@@ -0,0 +1,82 @@
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++# Developers do not need to manually edit POT or PO files.
++#
++#, fuzzy
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex_1.16-1\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2004-01-17 20:55-0300\n"
++"Last-Translator: Andr Lus Lopes <andrelop@debian.org>\n"
++"Language-Team: Debian-BR Project <debian-l10n-portuguese@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=ISO-8859-1\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Executar o adjtimex durante a instalao e a cada reinicializao ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"O adjtimex pode ser executado na inicializao do sistema para definir "
++"parmetros de tempo de kernel para os valores em /etc/default/adjtimex. No "
++"aceite caso voc somente queira usar o adjtimex para inspecionar os "
++"parmetros atuais."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Executar o adjtimexconfig durante a instalao ?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"O script adjtimex ir utilizar o adjtimex para encontrar valores para "
++"variveis de kernel tick e frequency que faro com que o relgio do sistema "
++"concorde aproimadamente com o relgio de hardware (tambm conhecido como "
++"relgio CMOS). Ele ir ento gravar esses valores no arquivo de "
++"configurao /etc/default/adjtimex de modo que as configuraes sejam "
++"restauradas a cada renicializao, quando o /etc/init.d/adjtimex executado."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"O script leva cerca de 70 segundos para ser executado. Alternativamente, "
++"voc pode executar o adjtimexconfig voc mesmo posteriormente, ou ainda "
++"determinar as variveis de kernel usando uma das diversas maneiras possveis "
++"(consulte a pgina de manul adjtimex) e instalar as mesmas em /etc/default/"
++"adjtimex."
+--- adjtimex-1.23.orig/debian/po/de.po
++++ adjtimex-1.23/debian/po/de.po
+@@ -0,0 +1,83 @@
++# translation of adjtimex_1.21.1-2_de.po to German
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
++# Developers do not need to manually edit POT or PO files.
++#
++# Erik Schanze <eriks@debian.org>, 2004-2007.
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex_1.21.1-2_de\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2007-08-06 20:50+0200\n"
++"Last-Translator: Erik Schanze <eriks@debian.org>\n"
++"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: KBabel 1.11.4\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Soll Adjtimex nach der Installation und bei jedem Hochfahren gestartet "
++"werden?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"Adjtimex kann beim Hochfahren des Systems ablaufen, um die Zeitparameter im "
++"Kernel auf die Werte in /etc/defaults/adjtimex zu setzen. Stimmen Sie dem "
++"nicht zu, wenn Sie mit Adjtimex nur die aktuellen Parameter ermitteln wollen."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Soll »adjtimexconfig« zur Installation aufgerufen werden?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Das Skript »adjtimexconfig« nutzt Adjtimex, um die Werte der Kernelvariablen "
++"»tick« und »frequency« zu finden, damit die Systemuhr ungefähr mit der "
++"Rechneruhr (auch bekannt als CMOS-Uhr) übereinstimmt. Das Skript speichert "
++"diese Werte in der Konfigurationsdatei /etc/default/adjtimex, sodass die "
++"Einstellung bei jedem Systemstart wiederhergestellt wird, wenn /etc/init.d/"
++"adjtimex startet."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Das Skript benötigt 70 Sekunden, um durchzulaufen. Andererseits können Sie "
++"»adjtimexconfig« später selbst starten oder finden die Kernelvariablen auf "
++"einem anderen Weg (siehe Handbuchseite von Adjtimex) und speichern die Werte "
++"in der Datei /etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/vi.po
++++ adjtimex-1.23/debian/po/vi.po
+@@ -0,0 +1,75 @@
++# Vietnamese Translation for adjtimex.
++# Copyright © 2005 Free Software Foundation, Inc.
++# Clytie Siddall <clytie@riverland.net.au>, 2005.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-4\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2005-05-04 15:44+0930\n"
++"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
++"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=utf-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=1; plural=0\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Bạn có muốn chạy trình adjtimex khi cài đặt và mọi khi khởi động không?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"Trình adjtimex (adjust time: điều chỉnh thời gian) thì có thể chạy khi khởi "
++"động hệ thống, để lập những tham số thời gian của hạt nhân thành những giá "
++"trị trong /etc/default/adjtimex. Đừng hiệu lực tùy chọn này nếu bạn chỉ muốn "
++"sử dụng trình adjtimex để kiểm tra những tham số hiện thời."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Bạn có muốn chạy tập lệnh adjtimexconfig khi cài đặt không?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Tập lệnh adjtimexconfig (adjust time configuration: điều chỉnh cấu hình thời "
++"gian) thì sẽ dùng trinh adjtimex để tìm giá trị cho biến hạt nhân «tick» và "
++"«frequency» để khớp đồng hồ hệ thống xấp xi với đồng hồ phần cứng (cũng được "
++"biết như là đồng hồ CMOS). Như thế thì nó lưu nhưng giá trị này trong tập "
++"tin cấu hình /etc/default/adjtimex vì vậy sẽ phục hồi cách thiết lập ấy mọi "
++"khi khởi động, khi chạy /etc/init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Tập lệnh này chạy được 70 giây. Hoặc bạn có thể tự chạy tập lệnh "
++"adjtimexconfig vào lúc sau, hoặc quyết định những biến hạt nhân một của vài "
++"cách khác (hãy xem trang hướng dẫn: lệnh\n"
++"man adjtimex\n"
++"mà «man» là trình hiển thị trang hướng dẫn), và cài đặt chúng vào /etc/"
++"default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/cs.po
++++ adjtimex-1.23/debian/po/cs.po
+@@ -0,0 +1,67 @@
++# Czech translation of adjtimex templates
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-3\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2005-4-10 22:13+0200\n"
++"Last-Translator: Martin Sin <martin.sin@seznam.cz>\n"
++"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=ISO-8859-2\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "M bt adjtimex sputn pi instalaci a pi kadm sputn?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex me bet pi kadm startu systmu a nastavit parametry jdra na "
++"hodnoty z /etc/default/adjtimex. Pi nesouhlasu bude adjtimex nastaven na "
++"zjitn aktulnch parametr."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "M bt adjtimexconfig sputn pi instalaci?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Skript adjtimexconfig pouije adjtimex k nalezen hodnot pro promnn "
++"asovae a frekvence jdra tak, e nastav systmov hodiny piblin na "
++"hodnotu hardwarovch hodin (tak znmch jako CMOS hodiny). Pak ulo tyto "
++"hodnoty do konfiguranho souboru /etc/default/adjtimex aby mohlo bt "
++"nastaven obnoveno pi kadm startu, vdy pi sputn /etc/init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Sputn skriptu zabere 70 sekund. Nebo mete spustit adjtimexconfig "
++"samostatn pozdji, ppadn urit promnn jdra jednm z nkolika rznch "
++"zpsob (podvejte se na manulovou strnku adjtimex) a umstte je do /etc/"
++"default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/pt.po
++++ adjtimex-1.23/debian/po/pt.po
+@@ -0,0 +1,71 @@
++# 2005-10-27 - Marco Ferra <mferra@sdf.lonestar.org> (initial translation)
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-5\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2005-10-27 01:11+0100\n"
++"Last-Translator: Marco Ferra <mferra@sdf.lonestar.org>\n"
++"Language-Team: Portuguese <traduz@debianpt.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Deve o adjtimex correr enquanto o instala e depois sempre que o sistema "
++"inicia?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"O adjtimex pode correr quando o sistema inicia para ajustar os paramêtros "
++"temporais do kernel para os valores especificados em /etc/default/adjtimex. "
++"Por favor recuse se apenas deseja usar o adjtimex para inspecionar os "
++"paramêtros actuais."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Deve o adjtimexconfig correr enquanto o instala?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"O script adjtimexconfig irá usar o comando adjtimex para encontrar os "
++"valores para variáveis do kernel que o farão aproximar e estar de acordo com "
++"o relógio por hardware (tambem conhecido pelo CMOS clock). Este então "
++"guarda esses valores no ficheiro /etc/default/adjtimex para que estes "
++"paramêtros sejam reavidos sempre que o sistema inicia, nomeadamente quando "
++"o /etc/init.d/adjtimex corre."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Este script demora 70 segundos a correr. De forma alternativa pode correr o "
++"adjtimexconfig por si próprio numa altura mais tarde ou determinar as "
++"variáveis do kernel de outras formas (leia a página do manual do adjtimex) e "
++"instale-os em /etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/po/sv.po
++++ adjtimex-1.23/debian/po/sv.po
+@@ -0,0 +1,77 @@
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans
++# Developers do not need to manually edit POT or PO files.
++# , fuzzy
++#
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-5\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2005-10-11 16:31+0200\n"
++"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
++"Language-Team: Swedish <sv@li.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=iso-8859-1\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Ska adjtimex kras vid installation och vid varje uppstart?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex kan kra vid systemets uppstart fr att stta krntidsparametrar "
++"till vrdena i /etc/default/adjtimex. Acceptera inte om du bara vill anvnda "
++"adjtimex fr att inspektera de nuvarande parametrarna."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Ska adjtimexconfig kras vid installationstid?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Skriptet adjtimexconfig kommer att anvnda adjtimex fr att hitta vrden fr "
++"krnvariablerna tick och frequency som gr att systemklockan kommer verens "
++"med hrdvaruklockan (ocks kallad CMOS-klockan). Den sparar sedan dessa "
++"vrden i konfigurationsfilen /etc/default/adjtimex s att instllningarna "
++"kommer att anvndas vid varje uppstart, nr /etc/init.d/adjtimex krs."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Skriptet tar 70 sekunder att kras. Alternativt kan du kra adjtimexconfig "
++"sjlv vid en senare tid eller bestmma variabler fr krnan p ett eller "
++"flera stt (se adjtimes manualsida) och installera dom i /etc/default/"
++"adjtimex)."
+--- adjtimex-1.23.orig/debian/po/ru.po
++++ adjtimex-1.23/debian/po/ru.po
+@@ -0,0 +1,80 @@
++# translation of adjtimex_1.20-5_templates_ru.po to Russian
++#
++# Translators, if you are not familiar with the PO format, gettext
++# documentation is worth reading, especially sections dedicated to
++# this format, e.g. by running:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++# Some information specific to po-debconf are available at
++# /usr/share/doc/po-debconf/README-trans
++# or http://www.debian.org/intl/l10n/po-debconf/README-trans#
++# Developers do not need to manually edit POT or PO files.
++# Yuri Kozlov <kozlov.y@gmail.com>, 2005.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: template_adjtimex_1.20-5\n"
++"Report-Msgid-Bugs-To: jrv@debian.org\n"
++"POT-Creation-Date: 2007-08-06 21:41-0400\n"
++"PO-Revision-Date: 2005-11-07 19:24+0300\n"
++"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
++"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: KBabel 1.9.1\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Должен adjtimex быть запущен сейчас и каждый раз при старте системы?"
++
++#. Type: boolean
++#. Description
++#: ../templates:1001
++msgid ""
++"adjtimex can run at system startup to set the kernel time parameters to the "
++"values in /etc/default/adjtimex. Don't accept if you just want to use "
++"adjtimex to inspect the current parameters."
++msgstr ""
++"adjtimex можно запускать при старте системы для установки значений "
++"параметров времени ядра из файла /etc/default/adjtimex. Не соглашайтесь, "
++"если просто хотите использовать adjtimex для проверки текущих параметров."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimexconfig be run at installation time?"
++msgstr "Должен adjtimexconfig быть запущен сейчас?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The adjtimexconfig script will use adjtimex to find values for the kernel "
++"variables tick and frequency that will make the system clock approximately "
++"agree with the hardware clock (also known as the CMOS clock). It then saves "
++"these values in the configuration file /etc/default/adjtimex so the settings "
++"will be restored on every boot, when /etc/init.d/adjtimex runs."
++msgstr ""
++"Сценарий adjtimexconfig использует adjtimex для поиска значений переменных "
++"ядра импульса сигнала и частоты, которые помогают согласовывать системные "
++"часы с аппаратными часами (так называемые часы CMOS). Затем он сохраняет эти "
++"значения в конфигурационный файл /etc/default/adjtimex, для того чтобы "
++"восстанавливать их при каждой загрузке с помощью сценария /etc/init.d/"
++"adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"The script takes 70 sec to run. Alternatively, you can run adjtimexconfig "
++"yourself at a later time, or determine the kernel variables one of several "
++"other ways (see the adjtimex man page) and install them in /etc/default/"
++"adjtimex."
++msgstr ""
++"Длительность работы сценария -- 70 секунд. В качестве альтернативы вы можете "
++"запустить adjtimexconfig вручную позже, или определить переменные ядра одним "
++"из нескольких других способов (смотрите страницу руководства по adjtimex) и "
++"сохранить их в файл /etc/default/adjtimex."
+--- adjtimex-1.23.orig/debian/README.Debian
++++ adjtimex-1.23/debian/README.Debian
+@@ -0,0 +1,21 @@
++adjtimex for DEBIAN
++----------------------
++
++This is the Debian Linux prepackaged version of adjtimex.
++
++This package was put together by Jim Van Zandt <jrv@debian.org>,
++who also maintains the program and therefore used the master sources.
++
++further Information:
++
++* adjtimex manpage
++* copying policy
++ /usr/share/doc/adjtimex/copyright
++ (or debian/copyright in the source package)
++* changelog for debian package
++ /usr/share/doc/adjtimex/changelog.Debian
++* adjtimex's README:
++ /usr/share/doc/adjtimex/README
++
++
++James R. Van Zandt <jrv@debian.org>, Sun, 7 Mar 1999 21:58:51 -0500
+--- adjtimex-1.23.orig/debian/templates
++++ adjtimex-1.23/debian/templates
+@@ -0,0 +1,22 @@
++Template: adjtimex/run_daemon
++Type: boolean
++Default: true
++_Description: Should adjtimex be run at installation and at every startup?
++ adjtimex can run at system startup to set the kernel time parameters to
++ the values in /etc/default/adjtimex. Don't accept if you just want to
++ use adjtimex to inspect the current parameters.
++
++Template: adjtimex/compare_rtc
++Type: boolean
++Default: true
++_Description: Should adjtimexconfig be run at installation time?
++ The adjtimexconfig script will use adjtimex to find values for the kernel
++ variables tick and frequency that will make the system clock approximately
++ agree with the hardware clock (also known as the CMOS clock). It then
++ saves these values in the configuration file /etc/default/adjtimex so the
++ settings will be restored on every boot, when /etc/init.d/adjtimex runs.
++ .
++ The script takes 70 sec to run. Alternatively, you can run adjtimexconfig
++ yourself at a later time, or determine the kernel variables one of several
++ other ways (see the adjtimex man page) and install them in
++ /etc/default/adjtimex.
+--- adjtimex-1.23.orig/debian/changelog
++++ adjtimex-1.23/debian/changelog
+@@ -0,0 +1,530 @@
++adjtimex (1.23-1) unstable; urgency=low
++
++ * New upstream release
++
++ * adjtimex.c (compare): In case of absence of /etc/adjtime, do not fail,
++ and do not force users to manually create it with 0.0
++ content. Instead, proceed assuming zero values (meaning RTC does not
++ drift). Also replace redundant code by a call to
++ get_cmos_adjustment(). README: Rewrite USAGE paragraph. Remove point
++ about creating zero adjfile. Document new behaviour without
++ adjfile. Remove reference to the long outdated clock(8). Update URL
++ for hwclock(8). (Thanks to Alain Guibert <alguibert@free.fr>,
++ closes:bug#445448)
++
++ * adjtimex.c (busy_wait): timestamp more closely the RTC clock beat
++ (thanks to Alain Guibert <alguibert at free.fr>, see Debian
++ bug#443814). (usage): --directisa switch forces adjtimex to poll the
++ update-in-process (UIP) flag of the CMOS clock (thanks to Alain
++ Guibert <alguibert at free.fr>, closes:bug#443773).
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 06 Oct 2007 21:57:04 -0400
++
++adjtimex (1.22-1) unstable; urgency=low
++
++ * New upstream release: fix these bugs in ntpdate output
++ interpretation (closes:bug#438718):
++ adjtimex has a bug in evaluating the output of ntpdate, because
++ 1. it assumes ntpdate outputs "adjust time server", but ntpdate
++ may output "step time server" also
++ 2. it doesnt stop at last line but as soon as it has found "filter
++ offset:" lines, and because of this it will not find the "offset ..."
++ information in the last line.
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 23 Sep 2007 12:51:52 -0400
++
++adjtimex (1.21.1-3) unstable; urgency=low
++
++ * update German translation of debconf templates, thanks to Erik Schanze
++ <eriks@debian.org> and Helge Kreutzmann
++ <debian@helgefjell.de>(closes:#436080)
++
++ * debian/rules don't ignore failure of "make distclean"
++
++ * debian/adjtimex.init: make LSB compliant
++
++ -- James R. Van Zandt <jrv@debian.org> Mon, 06 Aug 2007 21:39:47 -0400
++
++adjtimex (1.21.1-2) unstable; urgency=low
++
++ * Update French translation of debconf templates, thanks to Christian
++ Perrier <bubulle@debian.org> (closes:Bug#403472)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Jan 2007 18:10:32 -0500
++
++adjtimex (1.21.1-1) unstable; urgency=low
++
++ * New upstream release.
++
++ * adjtimex.c: don't declare adjtimex syscall (should already be getting
++ the declaration from sys/timex.h) Thanks to Andreas Jochens
++ <aj@andaco.de> (closes:#390989)
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 Oct 2006 08:04:52 -0400
++
++adjtimex (1.21-2) unstable; urgency=low
++
++ * Makefile: correct version number to 1.21 (error in importing upstream
++ sources)
++
++ * debian/control: depend on po-debconf
++
++ -- James R. Van Zandt <jrv@debian.org> Fri, 6 Oct 2006 20:41:00 -0400
++
++adjtimex (1.21-1) unstable; urgency=low
++
++ * New upstream release. use /dev/rtc if available (closes:#196692). Use
++ heuristic to correct for DST changes or lacking --utc flag
++ (closes:#308396). check return code in probe_time() so if root
++ privileges are needed (e.g. "adjtimex -r") and lacking, command will
++ fail rather than printing bogus results. (closes:#364060)
++
++ * debian/postinst: start with invoke-rc.d if available (closes:#367746)
++
++ * debian/control: update to policy 3.7.2
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 20 May 2006 08:33:05 -0400
++
++adjtimex (1.20-7) unstable; urgency=low
++
++ * debian/README.Debian: correct references to files, which are no longer
++ in /usr/doc/adjtimex (closes:#365761)
++ * debian/rules: declare debhelper compat level 5
++ * debian/control: build-depends on debhelper ver 5
++
++ -- James R. Van Zandt <jrv@debian.org> Thu, 4 May 2006 21:54:33 -0400
++
++adjtimex (1.20-6) unstable; urgency=low
++
++ * control: depend on debconf | debconf-2.0 (closes: #331733), update to
++ policy 3.6.2
++ * debian/po/de.po: fix spelling error in German translation, thanks to
++ Philipp Meier <meier@meisterbohne.de> (closes: #279254)
++ * debian/po/sv.po: Swedish translation for debconf template, courtesy
++ of Daniel Nylander <yeager@lidkoping.net> (closes: #333124)
++ * debian/po: Add Portugese translation for debconf template, courtesy of
++ Miguel Figueiredo <elmig@debianpt.org> (closes: #336333)
++ * debian/po: Add Russian translation for debconf template, courtesy of
++ Yuri Kozlov <kozlov.y@gmail.com> (closes: #337967)
++ * debian/copyright: update FSF address.
++
++ -- James R. Van Zandt <jrv@debian.org> Fri, 25 Nov 2005 21:04:08 -0500
++
++adjtimex (1.20-5) unstable; urgency=low
++
++ * debian/po/vi.po: Vietnamese translation for debconf template, courtesy
++ of Clytie Siddall <clytie@riverland.net.au> (closes:Bug#307600)
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 7 May 2005 11:58:47 -0400
++
++adjtimex (1.20-4) unstable; urgency=low
++
++ * debian/po/cs.po: Czech translation for debconf template, courtesy of
++ Martin Šín <martin.sin@seznam.cz> (closes:Bug#304377)
++
++ -- James R. Van Zandt <jrv@debian.org> Mon, 25 Apr 2005 20:14:42 -0400
++
++adjtimex (1.20-3) unstable; urgency=low
++
++ * debian/adjtimex.init: adjust printout to conform to Debian standard,
++ output error to stderr (Thanks to Thomas Hood, closes:bug#294824)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 13 Mar 2005 17:20:28 -0500
++
++adjtimex (1.20-2) unstable; urgency=low
++
++ * debian/po/de.po: replace corrupted file (closes: #250250)
++
++ -- James R. Van Zandt <jrv@debian.org> Mon, 20 Sep 2004 20:08:47 -0400
++
++adjtimex (1.20-1) unstable; urgency=low
++
++ * New upstream release
++
++ * adjtimex.c (compare): in "compare" or "adjust", return immediately
++ after printing last result, instead of sleeping an extra $interval
++ seconds. (Thanks to Alain Guibert <derogaton at oreka.com>,
++ closes:Bug#243652)
++
++ * postinst: remove /etc/rcS.d/S20adjtimex link if configured not to run
++ at startup (thanks to Mario 'BitKoenig' Holbe, closes:Bug#267229)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 19 Sep 2004 12:41:37 -0400
++
++adjtimex (1.19-1) unstable; urgency=high
++
++ * copyright: report upstream source address (closes:Bug#269691)
++
++ * control: don't depend on either mawk or awk, since either works and
++ awk is required (closes:Bug#267228)
++
++ * New upstream release
++
++ * adjtimex.c (compare): Account for the current frequency value
++ when calculating the recommended frequency value. Simplify
++ calculation of recommended tick. (compare): print estimated system
++ error in ppm instead of obscure "second diff".
++
++ * adjtimex.8: use 2^16 instead of the more obscure 1<<16.
++
++ * adjtimex.c: revert to poll-wait instead of using /dev/rtc, because the
++ latter only provides time with one second precision and so gives
++ wildly inaccurate adjustments. (closes:Bug#269498,Bug#265839)
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 11 Sep 2004 16:01:52 -0400
++
++adjtimex (1.18-1.1) unstable; urgency=medium
++
++ * Non-maintainer upload prepared by Joshua Kwan and Ken Bloom.
++ * Applied patch from Jurij Smakov <jurij@wooyd.org> to #263401:
++ - Fixes the regular expression used to extract the baseline value
++ from the adjtimex output. Closes: #263401
++ - Replaces non-POSIX compliant calls to ('tail -1') by the
++ POSIX-compliant ones ('tail -n 1')
++ - Cosmetic changes to the adjtimexconfig output, making it
++ consistent with the general Debian style.
++ * Add German debconf template translations (closes: #250250)
++
++ -- Ken Bloom <kabloom@ucdavis.edu> Thu, 12 Aug 2004 23:34:33 -0700
++
++adjtimex (1.18-1) unstable; urgency=low
++
++ * New upstream release
++
++ * call reset_time_status() only when explicitly told to (thanks to Alain
++ Guibert <derogaton at oreka.com>, closes:bug#243031)
++
++ * Add debconf translations for Japanese (closes:bug#223462), Danish
++ (closes:bug#239865), and Brazilian Portuguese (closes:bug#228281).
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 11 Apr 2004 18:32:33 -0400
++
++adjtimex (1.17-1) unstable; urgency=low
++
++ * New upstream release
++
++ * control: compliant with Debian policy version 3.6.1
++
++ * es.po: decode "quoted-printable" encoding.
++
++ * adjtimex.c: update email
++ (main): If adjtimex() returns an error, print HZ and legal ranges
++ for tick and freq. (thanks to Sami Farin <safari at iki.fi>)
++ (review): calculate reasonable tick and frequency when HZ != 100.
++ (cmos_init): use /dev/rtc when available (thanks to Richard
++ Henderson <rth at twiddle.net>).
++
++ * adjtimex.c: --status switch sets clock status (courtesy of Alain
++ Guibert <derogaton at oreka.com>) (closes:bug#242732)
++
++ * adjtimexconfig: set reasonable tick and frequency when HZ !=
++ 100. (closes:Bug#241726)
++
++ * adjtimex.c (longopt): fix spelling to match documentation: --esterror
++ and --maxerror (thanks to Alain Guibert) (fixes:Bug#241863)
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 3 Apr 2004 21:13:09 -0500
++
++adjtimex (1.16-3) unstable; urgency=low
++
++ * Dutch translation of gettext debconf templates (courtesy of Michiel Sikkes, closes:bug#215162)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 12 Oct 2003 17:33:55 -0400
++
++adjtimex (1.16-2) unstable; urgency=low
++
++ * Polish translation of gettext debconf templates (courtesy of Bartosz
++ Zapalowski, closes:bug#208955)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 7 Sep 2003 16:26:30 -0400
++
++adjtimex (1.16-1) unstable; urgency=low
++
++ * New upstream release (closes:Bug#204382)(closes:Bug#204377)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Aug 2003 20:52:32 -0400
++
++adjtimex (1.15.1-2) unstable; urgency=low
++
++ * gettext-based debconf templates (closes:bug#205788)
++ * French translation of gettext debconf templates (closes:Bug#206430)
++ * Spanish translation of gettext debconf templates (closes:Bug#197485)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 24 Aug 2003 18:01:56 -0400
++
++adjtimex (1.15.1-1) unstable; urgency=low
++
++ * New upstream release. Add explicit newlines in multi-line help text
++ (closes:bug#194858)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 31 May 2003 20:53:14 -0400
++
++adjtimex (1.15-1) unstable; urgency=low
++
++ * New upstream release. Now compiles on ia64 (closes:bug#141655).
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 30 Apr 2003 19:38:11 -0400
++
++adjtimex (1.14-1) unstable; urgency=low
++
++ * New Upstream Release. Expanded documentation (closes:bug#142967)
++ * convert to debhelper
++ * debian/control: depend on debconf
++ * debian/postinst: configure adjtimex to run on startup, and run
++ adjtimexconfig on installation, only if asked by sysadmin (via
++ debconf) (closes:bug#158047)
++ * debian/postrm: purge debconf db entry
++ * debian/adjtimexconfig: config file is now /etc/default/adjtimex
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 27 Apr 2003 21:28:40 -0400
++
++adjtimex (1.13-1) unstable; urgency=low
++
++ * New upstream release (closes:Bug#127483)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 6 Jan 2002 21:06:23 -0500
++
++adjtimex (1.12-3) unstable; urgency=low
++
++ * New maintainer email (fix remaining references)
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 15:25:06 -0500
++
++adjtimex (1.12-2) unstable; urgency=low
++
++ * New maintainer email
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 9 Dec 2001 13:24:59 -0500
++
++adjtimex (1.12-1) unstable; urgency=low
++
++ * New upstream release
++ * debian/control: move Build-Depends entry to source section
++ (closes:bug#91928). Policy version 3.5.2
++ * debian/rules: by default, compile without -g option. Honor
++ DEB_BUILD_OPTIONS.
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Wed, 22 Nov 2000 01:37:58 -0500
++
++adjtimex (1.11-3) unstable; urgency=low
++
++ * adjtimexconfig: install new values in /etc/adjtimex.conf rather than
++ the startup script /etc/init.d/adjtimex (thanks to Zsolt Szabo
++ <szazs@mm.bme.hu>).
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Sep 2000 09:34:58 -0400
++
++adjtimex (1.11-2) unstable; urgency=low
++
++ * build-depends on debmake
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Sep 2000 13:50:02 -0400
++
++adjtimex (1.11-1) unstable; urgency=low
++
++ * /etc/init.d/adjtimex: restart|force-reload also run adjtimex
++ (closes:bug#69514), add comment explaining precedence of
++ /etc/adjtimex.conf
++
++ * New upstream release
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 28 Aug 2000 21:19:48 -0400
++
++adjtimex (1.10-1) frozen unstable; urgency=high
++
++ * New upstream release - security fix: use popen() to recover output from
++ ntpdate, instead of an unsafe temporary file (thanks to Colin Phipps
++ <crp22@cam.ac.uk>) (closes:bug#56752)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 1 Feb 2000 21:29:03 -0500
++
++adjtimex (1.9-2) unstable; urgency=low
++
++ * Suggest ntpdate (closes:bug#56751)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 31 Jan 2000 19:26:16 -0500
++
++adjtimex (1.9-1) unstable; urgency=low
++
++ * New upstream release
++ * Removed pointer to /usr/doc/copyright/GPL
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 3 Jan 2000 21:34:59 -0500
++
++adjtimex (1.8.1-1) unstable; urgency=low
++
++ * New upstream release (closes:bug#52637)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 16 Dec 1999 20:13:43 -0500
++
++adjtimex (1.8-4) unstable; urgency=low
++
++ * Change references from /usr/sbin/adjtimex to /sbin/adjtimex in
++ adjtimexconfig
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Tue, 2 Nov 1999 20:21:48 -0500
++
++adjtimex (1.8-3) unstable; urgency=low
++
++ * *Really* install binary into /sbin, so it is available
++ even if /usr is not mounted (closes:Bug#44399)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 30 Oct 1999 17:57:57 -0400
++
++adjtimex (1.8-2) unstable; urgency=low
++
++ * Install compatibility symlink /usr/doc/adjtimex.
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 24 Oct 1999 10:54:01 -0400
++
++adjtimex (1.8-1) unstable; urgency=low
++
++ * New upstream release: Install binary into /sbin, so it is available
++ even if /usr is not mounted (closes:Bug#44399)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 6 Sep 1999 13:08:15 -0400
++
++adjtimex (1.7-2) unstable; urgency=low
++
++ * Link against glibc2.1
++ * Upgrade to FHS
++ * Include full license statement in copyright file
++ * Revise GPL reference in copyright file
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 4 Sep 1999 12:04:34 -0400
++
++adjtimex (1.7-1) unstable; urgency=low
++
++ * install configuration file in /etc/init.d rather than /etc/rc.boot
++ closes: #30120, #32436.
++ * New upstream release (incorporates Paul Slootman's alpha patch)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 28 Nov 1998 20:33:38 -0500
++
++adjtimex (1.6-2) unstable; urgency=low
++
++ * corrected reference in man page: clock -> hwclock (Bug#27854)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 24 Oct 1998 14:40:45 -0400
++
++adjtimex (1.6-1.1) unstable; urgency=low
++
++ * non-maintainer (binary-only) upload for Alpha
++ * changed architecture back to 'any'. Why should it be i386 only?
++ * don't use syscall1() to declare adjtimex() for Alpha
++
++ -- Paul Slootman <paul@debian.org> Tue, 8 Sep 1998 20:42:52 +0200
++
++adjtimex (1.6-1) unstable; urgency=low
++
++ * New upstream release: Default log file is "/var/log/clocks.log".
++ Create log file if it does not exist. (Bug#25834)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 22 Aug 1998 20:33:22 -0400
++
++adjtimex (1.5-3) unstable; urgency=low
++
++ * architecture is i386 only
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 29 Jun 1998 19:35:22 -0400
++
++adjtimex (1.5-2) unstable; urgency=low
++
++ * eliminate question in postinst, by eliminating postinst entirely
++ (Bug#22288)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sun, 7 Jun 1998 20:51:42 -0400
++
++adjtimex (1.5-1) frozen unstable; urgency=low
++
++ * New upstream release. No functional changes, but adjtimex is now
++ covered by the GNU GPL. (Bug#21358)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Mon, 20 Apr 1998 21:38:53 -0400
++
++adjtimex (1.4-2) unstable; urgency=low
++
++ * Ensure that changelog is compressed *before* calculating md5sum
++ (Bug#19266)
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Sat, 14 Mar 1998 20:47:52 -0500
++
++adjtimex (1.4-1) unstable; urgency=low
++
++ * New upstream release. Log times for long-term estimation of drifts.
++
++ -- James R. Van Zandt <jrv@vanzandt.mv.com> Thu, 11 Dec 1997 21:48:01 -0500
++
++adjtimex (1.3-3) stable; urgency=medium
++
++ * Moved temporary files from /tmp to /etc, to eliminate security
++ hole (bug #11610).
++
++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sun, 3 Aug 1997 11:34:48 -0400
++
++adjtimex (1.3-2) stable; urgency=medium
++
++ * Removed conflict with xntp, since ntpdate from the xntp package
++ is still compatible with adjtimex.
++
++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Wed, 12 Mar 1997 21:01:05 -0500
++
++adjtimex (1.3-1) unstable; urgency=HIGH
++
++ * New upstream version: Previous version allows 2.0 kernel to reset
++ the CMOS clock periodically. Now using different method of
++ preventing this.
++ * New --compare switch to compare system and CMOS clocks (replacing
++ the separate program clockdiff) and suggest better values of time
++ parameters. New --adjust switch to actually install the suggested
++ values. GNU format long switches, including --help and --version.
++ * Revised conftimex to use --adjust switch instead of clockdiff.
++ * Renamed conftimex to adjtimexconfig per Debian recommendation.
++ * Added conftimex man page.
++ * Revised messages in postinst to better explain what is going on.
++ * Conflicts with xntp
++ * New maintainer
++
++ -- Jim Van Zandt <jrv@vanzandt.mv.com> Sat, 1 Mar 1997 18:03:35 -0500
++
++adjtimex (1.2-5) unstable; urgency=LOW
++
++ * New packaging format
++ * Corrected comment in /etc/rc.boot/adjtimex
++ * Corrected the installation of doc files
++
++ -- Michael Meskes <meskes@debian.org> Wed, 18 Sep 1996 09:22:51 +0200
++
++Fri May 17 12:48:07 MET DST 1996 Michael Meskes (meskes@debian.org)
++
++ adjtimex (1.2-1):
++
++ * Added Debian Linux package maintenance system files.
++
++Fri May 17 20:39:30 MET DST 1996 Michael Meskes (meskes@debian.org)
++
++ adjtimex (1.2-2):
++
++ * Corrected mode for /etc/rc.boot/adjtimex
++
++ * Added conftimex script
++
++ * Automatically configure system
++
++Sun Jun 30 13:17:53 MET DST 1996 Michael Meskes (meskes@debian.org)
++
++ adjtimex (1.2-3):
++
++ * Corrected rules file for new naming scheme
++
++ * Gzip manpage
++
++ * Strip binaries
++
++Tue Jul 2 10:01:35 MET DST 1996 Michael Meskes (meskes@debian.org)
++
++ adjtimex (1.2-4):
++
++ * Really say what we're doing in postinst (Bug#3474)
++
++
+--- adjtimex-1.23.orig/debian/dirs
++++ adjtimex-1.23/debian/dirs
+@@ -0,0 +1,4 @@
++usr/bin
++usr/sbin
++sbin
++usr/share/man/man8
+--- adjtimex-1.23.orig/debian/postrm
++++ adjtimex-1.23/debian/postrm
+@@ -0,0 +1,25 @@
++#! /bin/sh -e
++
++case "$1" in
++ purge)
++ rm -f /etc/adjtimex.conf /etc/default/adjtimex
++ update-rc.d adjtimex remove >/dev/null
++ if [ -e /usr/share/debconf/confmodule ]; then
++ # Source debconf library.
++ . /usr/share/debconf/confmodule
++ # Remove my changes to the db.
++echo "removing debconf db entries"
++ db_purge
++echo "removed debconf db entries"
++ fi
++ ;;
++ remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
++ exit 0
++ ;;
++ *)
++ echo "postrm called with unknown argument \`$1'" >&2
++ exit 0
++ ;;
++esac
++
++#DEBHELPER#
+--- adjtimex-1.23.orig/debian/copyright
++++ adjtimex-1.23/debian/copyright
+@@ -0,0 +1,28 @@
++This package was debianized by James R. Van Zandt jrv@debian.org on
++Thu, 11 Dec 1997 21:48:01 -0500.
++
++This package was put together by Jim Van Zandt <jrv@debian.org>,
++who also maintains the program and therefore used the master sources.
++
++Copyright:
++
++adjtimex is Copyright (C) 1997 Steven S. Dick and James R. Van Zandt
++
++ 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; version 2 dated June,
++ 1991, or any later version.
++
++ This program is distributed in the hope that it will be useful,
++ but WITHOUT ANY WARRANTY; without even the implied warranty of
++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ GNU General Public License for more details.
++
++ You should have received a copy of the GNU General Public License
++ along with this program; if not, write to the Free Software
++ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
++ 02110-1301, USA.
++
++On Debian GNU/Linux systems, the complete text of the GNU Public
++License can be found in `/usr/share/common-licenses/'
++
+--- adjtimex-1.23.orig/debian/rules
++++ adjtimex-1.23/debian/rules
+@@ -0,0 +1,113 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# These are used for cross-compiling and for saving the configure script
++# from having to guess our platform (since we know it already)
++DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
++DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
++
++
++package=adjtimex
++
++CFLAGS = -Wall -g
++INSTALL = install
++INSTALL_FILE = $(INSTALL) -p -o root -g root -m 644
++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755
++INSTALL_SCRIPT = $(INSTALL) -p -o root -g root -m 755
++INSTALL_DIR = $(INSTALL) -p -d -o root -g root -m 755
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++CFLAGS += -O0
++else
++CFLAGS += -O2
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++INSTALL_PROGRAM += -s
++endif
++
++
++config.status: configure
++ dh_testdir
++ # configure the package.
++ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
++
++
++build: build-stamp
++
++build-stamp: config.status
++ dh_testdir
++
++ # compile the package.
++ $(MAKE) CFLAGS="$(CFLAGS)"
++ #/usr/bin/docbook-to-man debian/adjtimex.sgml > adjtimex.1
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++
++ # clean up after the build process.
++ debconf-updatepo
++ [ ! -f Makefile ] || $(MAKE) veryclean
++ rm -rf adjtimex *.o config.*
++ -test -r /usr/share/misc/config.sub && \
++ cp -f /usr/share/misc/config.sub config.sub
++ -test -r /usr/share/misc/config.guess && \
++ cp -f /usr/share/misc/config.guess config.guess
++
++
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # install the package into debian/$(package).
++ $(INSTALL_PROGRAM) adjtimex $(CURDIR)/debian/$(package)/sbin
++ $(INSTALL_SCRIPT) debian/adjtimexconfig \
++ $(CURDIR)/debian/$(package)/usr/sbin/adjtimexconfig
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++# dh_installlogrotate
++# dh_installemacsen
++# dh_installpam
++# dh_installmime
++ dh_installinit -n
++ dh_installcron
++ dh_installman adjtimex.8 debian/adjtimexconfig.8
++ dh_installinfo
++# dh_undocumented
++ dh_installchangelogs ChangeLog
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++# dh_makeshlibs
++ dh_installdeb
++# dh_perl
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install
+--- adjtimex-1.23.orig/debian/docs
++++ adjtimex-1.23/debian/docs
+@@ -0,0 +1,2 @@
++README
++README.ru
+--- adjtimex-1.23.orig/debian/adjtimexconfig
++++ adjtimex-1.23/debian/adjtimexconfig
+@@ -0,0 +1,67 @@
++#!/bin/sh
++
++conffile=/etc/default/adjtimex
++startfile=/etc/init.d/adjtimex
++
++echo -n "Comparing clocks (this will take 70 sec)..."
++
++# Get the parameters
++
++/sbin/adjtimex --print --tick 0 >/etc/adj.adjust 2>/dev/null
++baseline=`awk '/<= tick/{print ($1+$NF)/2}' /etc/adj.adjust`
++hz=`awk '/USER_HZ/{print $3}' /etc/adj.adjust`
++/sbin/adjtimex --tick $baseline --frequency 0
++/sbin/adjtimex --adjust >/etc/adj.adjust
++echo "done."
++ticks=`tail -n 1 /etc/adj.adjust|awk '{print $6}'`
++freq=`tail -n 1 /etc/adj.adjust|awk '{print $7}'`
++# cat /etc/adj.adjust
++# echo hz=$hz baseline=$baseline ticks=$ticks freq=$freq
++rm /etc/adj.adjust
++adjt=`awk "BEGIN{print (($ticks-$baseline)*$hz + $freq/65536.)*.0864}"`
++echo -n "Adjusting system time by ${adjt} sec/day to agree with CMOS clock..."
++
++# Recreate /etc/adjtimex.conf if necessary
++
++if [ -f $conffile ]; then
++# echo "using existing $conffile";
++ true;
++else
++cat >$conffile <<EOF
++# $conffile - configuration file for adjtimex(8)
++#
++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig
++#
++# This file is sourced by $startfile
++#
++TICK=$TICK
++FREQ=$FREQ
++
++EOF
++fi
++
++# Reset values in $conffile
++
++sed -e "s/^TICK=.*/TICK=$ticks/" \
++ -e "s/^FREQ=.*/FREQ=$freq/" \
++ $conffile >$conffile.TMP && \
++ mv $conffile.TMP $conffile
++
++# grep "TICK=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.tick
++# grep "FREQ=" /etc/init.d/adjtimex | cut -d'#' -f1 > /etc/adj.freq
++#
++# TICKLINE="`echo -n "TICK="$ticks" # old: "; cat /etc/adj.tick`"
++# FREQLINE="`echo -n "FREQ="$freq" # old: "; cat /etc/adj.freq`"
++#
++# cp /etc/init.d/adjtimex /etc/init.d/adjtimex.TMP
++# sed -e "s/^TICK=.*/$TICKLINE/" -e "s/^FREQ=.*/$FREQLINE/" \
++# < /etc/init.d/adjtimex.TMP > /etc/init.d/adjtimex
++#
++# if [ -s /etc/init.d/adjtimex ]
++# then
++# rm -f /etc/init.d/adjtimex.TMP
++# fi
++# rm -f /etc/adj.tick /etc/adj.freq /etc/adj.adjust
++rm -f /etc/adj.adjust
++echo "done."
++
+--- adjtimex-1.23.orig/debian/adjtimexconfig.8
++++ adjtimex-1.23/debian/adjtimexconfig.8
+@@ -0,0 +1,41 @@
++.\"{{{ Title Emacs major mode should be: -*- nroff -*-
++.TH ADJTIMEXCONFIG 8 "April 27, 2003"
++.\"}}}
++.\"{{{ Name
++.SH NAME
++adjtimexconfig \- find kernel clock variables and save for reboots
++.\"}}}
++.\"{{{ Synopsis
++.SH SYNOPSIS
++.ad l
++.\" commands only
++.B /sbin/adjtimexconfig
++.\"}}}
++.\"{{{ Config
++.SH DESCRIPTION
++This script uses \fBadjtimex\fP(8) to find values for the kernel
++variables \fBtick\fP and \fBfrequency\fP that will make the system
++clock approximately agree with the CMOS clock. It then saves these
++values in the configuration file \fI/etc/default/adjtimex\fP so the
++settings will be restored on every boot, when
++\fI/etc/init.d/adjtimex\fP runs.
++.P
++\fPadjtimexconfig\fP uses the drift rate recorded in
++\fI/etc/adjtime\fP to adjust the times it reads from the CMOS clock.
++If you find the CMOS clock has a systematic drift, read the
++\fBclock\fP(8) or \fBhwclock\fP(8) manual page, modify
++\fI/etc/adjtime\fP as required, and run \fBadjtimexconfig\fP again.
++.SH AUTHOR
++Michael Meskes <meskes@debian.org>.
++.\"}}}
++.\"{{{
++.SH FILES
++.nf
++\fI/etc/default/adjtimex\fP
++\fI/etc/init.d/adjtimex\fP
++.fi
++.\"}}}
++.\"{{{ See also
++.SH "SEE ALSO"
++.BR adjtimex "(8), "clock "(8), "hwclock "(8), "ntpd (8)
++.\"}}}
+--- adjtimex-1.23.orig/debian/config
++++ adjtimex-1.23/debian/config
+@@ -0,0 +1,8 @@
++#! /bin/sh -e
++
++# Source debconf library.
++. /usr/share/debconf/confmodule
++
++db_input medium adjtimex/run_daemon || true
++db_input medium adjtimex/compare_rtc || true
++db_go
+--- adjtimex-1.23.orig/debian/postinst
++++ adjtimex-1.23/debian/postinst
+@@ -0,0 +1,119 @@
++#! /bin/sh
++
++set -e
++
++# Source debconf library.
++. /usr/share/debconf/confmodule
++
++# old scripts
++oldfile=/etc/adjtimex.conf
++olderfile=/etc/rc.boot/adjtimex
++# new starting script
++startfile=/etc/init.d/adjtimex
++# new configuration file
++conffile=/etc/default/adjtimex
++
++create_adjtimex_conf()
++{
++
++ TICK=10000
++ FREQ=0
++
++ if [ -f $oldfile ]; then
++ TICK=`awk '
++ BEGIN{tick=10000;}
++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ {
++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,"");
++ tick=$0+0;
++ }
++ END {print tick;}
++ ' $oldfile`
++
++ FREQ=`awk '
++ BEGIN{freq=0;}
++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ {
++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,"");
++ freq=$0+0;
++ }
++ END {print freq;}
++ ' $oldfile`
++
++# echo "parameters from $oldfile: TICK=$TICK FREQ=$FREQ";
++ else
++ if [ -f $olderfile ]; then
++ TICK=`awk '
++ BEGIN{tick=10000;}
++ /[ \t]*TICK[ \t]*=[ \t]*"?[0-9]+"?/ {
++ sub(/[ \t]*TICK[ \t]*=[ \t]*"?/,"");
++ tick=$0+0;
++ }
++ END {print tick;}
++ ' $olderfile`
++
++ FREQ=`awk '
++ BEGIN{freq=0;}
++ /[ \t]*FREQ[ \t]*=[ \t]*"?[0-9]+"?/ {
++ sub(/[ \t]*FREQ[ \t]*=[ \t]*"?/,"");
++ freq=$0+0;
++ }
++ END {print freq;}
++ ' $olderfile`
++
++# echo "parameters from $olderfile: TICK=$TICK FREQ=$FREQ";
++ fi
++ fi
++
++ if [ -f $conffile ]; then
++# echo "using existing $conffile";
++ true;
++ else
++ if [ -d /etc/default ]; then true; else mkdir /etc/default; fi
++ cat >$conffile <<EOF
++# $conffile - configuration file for adjtimex(8)
++#
++# you may adjust these values manually or by calling /usr/sbin/adjtimexconfig
++#
++# This file is sourced by $startfile
++#
++TICK=$TICK
++FREQ=$FREQ
++
++EOF
++ fi
++
++ rm -f $oldfile $olderfile
++}
++
++
++case "$1" in
++ configure)
++
++ create_adjtimex_conf
++
++ db_get adjtimex/run_daemon
++ if [ "$RET" = "true" ]; then
++ update-rc.d adjtimex start 20 S . >/dev/null
++
++ if which invoke-rc.d >/dev/null 2>&1; then
++ invoke-rc.d adjtimex start
++ else
++ /etc/init.d/adjtimex start
++ fi
++ fi
++
++ db_get adjtimex/compare_rtc
++ if [ "$RET" = "true" ]; then
++ /usr/sbin/adjtimexconfig
++ fi
++
++ ;;
++ abort-upgrade|abort-remove|abort-deconfigure)
++ exit 0
++ ;;
++ *)
++ echo "postinst called with unknown argument \`$1'" >&2
++ exit 0
++ ;;
++esac
++
++#DEBHELPER#
+--- adjtimex-1.23.orig/debian/adjtimex.init
++++ adjtimex-1.23/debian/adjtimex.init
+@@ -0,0 +1,45 @@
++#!/bin/sh
++#
++# Run ADJTIMEX at startup.
++
++### BEGIN INIT INFO
++# Provides: adjtimex
++# Required-Start:
++# Required-Stop:
++# Should-Start:
++# Should-Stop:
++# Default-Start: 2 3 4 5
++# Default-Stop: 0 1 6
++# Short-Description: set the kernel time variables
++# Description: set the kernel time variables
++### END INIT INFO
++
++test -x /sbin/adjtimex || exit 0
++
++# default values
++TICK=10000
++FREQ=0
++
++# values in $cfg take precedence over the values here
++cfg=/etc/default/adjtimex
++
++if [ -f $cfg ]; then
++ . $cfg
++fi
++
++case "$1" in
++ start|restart|force-reload)
++ echo -n "Regulating system clock..."
++ /sbin/adjtimex -tick "$TICK" -frequency "$FREQ"
++ echo "done."
++ ;;
++ stop|status)
++ ;;
++ *)
++ echo "/etc/init.d/adjtimex: unknown command $1" >&2
++ echo "Usage: /etc/init.d/adjtimex {start|stop|restart|force-reload}" >&2
++ exit 3
++ ;;
++esac
++
++exit 0
+--- adjtimex-1.23.orig/debian/adjust
++++ adjtimex-1.23/debian/adjust
+@@ -0,0 +1,15 @@
++ mode: 16384
++ offset: 0
++ frequency: 0
++ maxerror: 0
++ esterror: 0
++ status: 0
++time_constant: 0
++ precision: 0
++ tolerance: 0
++ tick: 0
++ raw time: 0s 0us = 0.000000
++for this kernel:
++ USER_HZ = 100 (nominally 100 ticks per second)
++ 9000 <= tick <= 11000
++ -33554432 <= frequency <= 33554432
+--- adjtimex-1.23.orig/debian/compat
++++ adjtimex-1.23/debian/compat
+@@ -0,0 +1 @@
++5
+--- adjtimex-1.23.orig/Makefile
++++ adjtimex-1.23/Makefile
+@@ -0,0 +1,70 @@
++# Generated automatically from Makefile.in by configure.
++#### Start of system configuration section. -*-makefile-*- ####
++ srcdir = .
++
++VERSION=1.22
++
++CFLAGS = -g -O2 -Wall
++prefix = /usr
++man1dir=${prefix}/share/man/man1
++exec_prefix = ${prefix}
++bindir=/sbin
++
++INSTALL=/usr/bin/install -c
++
++# Extension (not including `.') for the manual page filenames.
++manext = 8
++# Where to put the manual pages.
++mandir = $(prefix)/share/man/man$(manext)
++
++#### End of system configuration section. ####
++
++SHELL = /bin/sh
++
++SRC = adjtimex.c adjtimex.8 mat.c mat.h install-sh configure.in \
++ configure Makefile.in README README.ru adjtimex.lsm adjtimex.lsm.in \
++ COPYING COPYRIGHT ChangeLog
++
++all: adjtimex adjtimex.lsm
++
++adjtimex: adjtimex.c mat.o
++ $(CC) $(CFLAGS) -I. -DVERSION=\"$(VERSION)\" -o adjtimex adjtimex.c \
++ mat.o -lm
++
++adjtimex.lsm: adjtimex.lsm.in Makefile.in
++ sed -e 's/@VERSION@/$(VERSION)/' \
++ -e "s/@DATE@/`date +%d%b%y|tr [a-z] [A-Z]`/" \
++ adjtimex.lsm.in >adjtimex.lsm
++
++mat.o: mat.c
++ $(CC) $(CFLAGS) -c mat.c
++
++install: all
++ $(INSTALL) -g bin -m 755 -o root adjtimex $(bindir)/adjtimex
++ $(INSTALL) -d -g root -m 755 -o root $(mandir)
++ -$(INSTALL) -g root -m 644 -o root $(srcdir)/adjtimex.8 \
++ $(mandir)/adjtimex.$(manext)
++
++uninstall:
++ rm -f $(bindir)/adjtimex $(mandir)/adjtimex.$(manext)
++
++clean:
++ rm -f core *.o
++veryclean: clean
++ rm -f adjtimex
++
++shar: $(SRC)
++ distname=adjtimex-$(VERSION); \
++ shar $(SRC) >$$distname.shar
++
++dist: $(SRC)
++ distname=adjtimex-$(VERSION); \
++ rm -fr $$distname; \
++ mkdir $$distname; \
++ for file in $(SRC); do \
++ ln $$file $$distname/$$file \
++ || { echo copying $$file instead; cp -p $$file $$distname/$$file;}; \
++ done; \
++ chmod -R a+rX $$distname; \
++ tar -chz -f $$distname.tar.gz $$distname; \
++ rm -fr $$distname
diff --git a/source/a/util-linux-ng/doinst.sh b/source/a/util-linux-ng/doinst.sh
new file mode 100644
index 000000000..678c228f1
--- /dev/null
+++ b/source/a/util-linux-ng/doinst.sh
@@ -0,0 +1,23 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ # If there's no config file by that name, mv it over:
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+ # Otherwise, we leave the .new copy for the admin to consider...
+}
+
+# Keep same perms on rc.serial.new:
+if [ -e etc/rc.d/rc.serial ]; then
+ cp -a etc/rc.d/rc.serial etc/rc.d/rc.serial.new.incoming
+ cat etc/rc.d/rc.serial.new > etc/rc.d/rc.serial.new.incoming
+ mv etc/rc.d/rc.serial.new.incoming etc/rc.d/rc.serial.new
+fi
+
+config etc/rc.d/rc.serial.new
+config etc/serial.conf.new
+
diff --git a/source/a/util-linux-ng/net-tools.diff b/source/a/util-linux-ng/net-tools.diff
new file mode 100644
index 000000000..a19af2026
--- /dev/null
+++ b/source/a/util-linux-ng/net-tools.diff
@@ -0,0 +1,77 @@
+--- ./config.h.orig Wed Mar 21 21:23:31 2001
++++ ./config.h Wed Mar 21 21:23:12 2001
+@@ -0,0 +1,74 @@
++/*
++* config.h Automatically generated configuration includefile
++*
++* NET-TOOLS A collection of programs that form the base set of the
++* NET-3 Networking Distribution for the LINUX operating
++* system.
++*
++* DO NOT EDIT DIRECTLY
++*
++*/
++
++/*
++ *
++ * Internationalization
++ *
++ * The net-tools package has currently been translated to French,
++ * German and Brazilian Portugese. Other translations are, of
++ * course, welcome. Answer `n' here if you have no support for
++ * internationalization on your system.
++ *
++ */
++#define I18N 1
++
++/*
++ *
++ * Protocol Families.
++ *
++ */
++#define HAVE_AFUNIX 1
++#define HAVE_AFINET 1
++#define HAVE_AFINET6 1
++#define HAVE_AFIPX 1
++#define HAVE_AFATALK 1
++#define HAVE_AFAX25 1
++#define HAVE_AFNETROM 1
++#define HAVE_AFROSE 0
++#define HAVE_AFX25 1
++#define HAVE_AFECONET 0
++#define HAVE_AFDECnet 0
++#define HAVE_AFASH 0
++
++/*
++ *
++ * Device Hardware types.
++ *
++ */
++#define HAVE_HWETHER 1
++#define HAVE_HWARC 1
++#define HAVE_HWSLIP 1
++#define HAVE_HWPPP 1
++#define HAVE_HWTUNNEL 1
++#define HAVE_HWSTRIP 1
++#define HAVE_HWTR 1
++#define HAVE_HWAX25 1
++#define HAVE_HWROSE 0
++#define HAVE_HWNETROM 1
++#define HAVE_HWX25 1
++#define HAVE_HWFR 1
++#define HAVE_HWSIT 0
++#define HAVE_HWFDDI 0
++#define HAVE_HWHIPPI 0
++#define HAVE_HWASH 0
++#define HAVE_HWHDLCLAPB 0
++#define HAVE_HWIRDA 1
++#define HAVE_HWEC 0
++
++/*
++ *
++ * Other Features.
++ *
++ */
++#define HAVE_FW_MASQUERADE 1
++#define HAVE_IP_TOOLS 1
++#define HAVE_MII 1
diff --git a/source/a/util-linux-ng/net-tools_1.60-19.diff b/source/a/util-linux-ng/net-tools_1.60-19.diff
new file mode 100644
index 000000000..f754f02d5
--- /dev/null
+++ b/source/a/util-linux-ng/net-tools_1.60-19.diff
@@ -0,0 +1,29401 @@
+--- net-tools-1.60.orig/lib/ether.c
++++ net-tools-1.60/lib/ether.c
+@@ -2,7 +2,7 @@
+ * lib/ether.c This file contains an implementation of the "Ethernet"
+ * support functions.
+ *
+- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $
++ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $
+ *
+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ * Copyright 1993 MicroWalt Corporation
+@@ -39,7 +39,7 @@
+ {
+ static char buff[64];
+
+- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X",
++ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x",
+ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
+ (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
+ );
+--- net-tools-1.60.orig/lib/inet6.c
++++ net-tools-1.60/lib/inet6.c
+@@ -3,7 +3,7 @@
+ * support functions for the net-tools.
+ * (most of it copied from lib/inet.c 1.26).
+ *
+- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $
++ * Version: $Id: inet6.c,v 1.12 2002/12/10 01:03:09 ecki Exp $
+ *
+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ * Copyright 1993 MicroWalt Corporation
+@@ -44,6 +44,21 @@
+
+ extern int h_errno; /* some netdb.h versions don't export this */
+
++char * fix_v4_address(char *buf, struct in6_addr *in6)
++{
++ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) {
++ char *s =strchr(buf, '.');
++ if (s) {
++ while (s > buf && *s != ':')
++ --s;
++ if (*s == ':') ++s;
++ else s = NULL;
++ }
++ if (s) return s;
++ }
++ return buf;
++}
++
+ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
+ {
+ struct addrinfo req, *ai;
+@@ -83,14 +98,14 @@
+ return (-1);
+ }
+ if (numeric & 0x7FFF) {
+- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80);
++ inet_ntop( AF_INET6, &sin6->sin6_addr, name, 80);
+ return (0);
+ }
+ if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
+ if (numeric & 0x8000)
+ strcpy(name, "default");
+ else
+- strcpy(name, "*");
++ strcpy(name, "[::]");
+ return (0);
+ }
+
+@@ -109,13 +124,14 @@
+ }
+
+
++
+ /* Display an Internet socket address. */
+ static char *INET6_print(unsigned char *ptr)
+ {
+ static char name[80];
+
+ inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80);
+- return name;
++ return fix_v4_address(name, (struct in6_addr *)ptr);
+ }
+
+
+@@ -129,13 +145,14 @@
+ return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
+ if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0)
+ return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff));
+- return (buff);
++ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr));
+ }
+
+
+ static int INET6_getsock(char *bufp, struct sockaddr *sap)
+ {
+ struct sockaddr_in6 *sin6;
++ char *p;
+
+ sin6 = (struct sockaddr_in6 *) sap;
+ sin6->sin6_family = AF_INET6;
+@@ -143,7 +160,9 @@
+
+ if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0)
+ return (-1);
+-
++ p = fix_v4_address(bufp, &sin6->sin6_addr);
++ if (p != bufp)
++ memcpy(bufp, p, strlen(p)+1);
+ return 16; /* ?;) */
+ }
+
+--- net-tools-1.60.orig/lib/inet6_gr.c
++++ net-tools-1.60/lib/inet6_gr.c
+@@ -1,4 +1,4 @@
+-/*
++ /*
+ Modifications:
+ 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets,
+ snprintf instead of sprintf
+@@ -71,11 +71,15 @@
+ printf(_("INET6 (IPv6) not configured in this system.\n"));
+ return 1;
+ }
+- printf(_("Kernel IPv6 routing table\n"));
+
+- printf(_("Destination "
+- "Next Hop "
+- "Flags Metric Ref Use Iface\n"));
++ if (numeric & RTF_CACHE)
++ printf(_("Kernel IPv6 routing cache\n"));
++ else
++ printf(_("Kernel IPv6 routing table\n"));
++
++ printf(_("Destination "
++ "Next Hop "
++ "Flag Met Ref Use If\n"));
+
+ while (fgets(buff, 1023, fp)) {
+ num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n",
+@@ -87,13 +91,19 @@
+ &slen,
+ naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3],
+ naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7],
+- &metric, &use, &refcnt, &iflags, iface);
++ &metric, &refcnt, &use, &iflags, iface);
+ #if 0
+ if (num < 23)
+ continue;
+ #endif
+- if (!(iflags & RTF_UP))
+- continue;
++ if (iflags & RTF_CACHE) {
++ if (!(numeric & RTF_CACHE))
++ continue;
++ } else {
++ if (numeric & RTF_CACHE)
++ continue;
++ }
++
+ /* Fetch and resolve the target address. */
+ snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s",
+ addr6p[0], addr6p[1], addr6p[2], addr6p[3],
+@@ -112,7 +122,12 @@
+ inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1));
+
+ /* Decode the flags. */
+- strcpy(flags, "U");
++
++ flags[0]=0;
++ if (iflags & RTF_UP)
++ strcat(flags, "U");
++ if (iflags & RTF_REJECT)
++ strcat(flags, "!");
+ if (iflags & RTF_GATEWAY)
+ strcat(flags, "G");
+ if (iflags & RTF_HOST)
+@@ -123,9 +138,19 @@
+ strcat(flags, "A");
+ if (iflags & RTF_CACHE)
+ strcat(flags, "C");
++ if (iflags & RTF_ALLONLINK)
++ strcat(flags, "a");
++ if (iflags & RTF_EXPIRES)
++ strcat(flags, "e");
++ if (iflags & RTF_MODIFIED)
++ strcat(flags, "m");
++ if (iflags & RTF_NONEXTHOP)
++ strcat(flags, "n");
++ if (iflags & RTF_FLOW)
++ strcat(flags, "f");
+
+ /* Print the info. */
+- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n",
++ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n",
+ addr6, naddr6, flags, metric, refcnt, use, iface);
+ }
+
+@@ -144,8 +169,7 @@
+ char addr6p[8][5], haddrp[6][3];
+
+ if (!fp) {
+- ESYSNOT("nd_print", "ND Table");
+- return 1;
++ return rprint_fib6(ext, numeric | RTF_CACHE);
+ }
+ printf(_("Kernel IPv6 Neighbour Cache\n"));
+
+--- net-tools-1.60.orig/lib/ipx_gr.c
++++ net-tools-1.60/lib/ipx_gr.c
+@@ -38,21 +38,27 @@
+ char net[128], router_net[128];
+ char router_node[128];
+ int num;
+- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r");
++ FILE *fp;
+ struct aftype *ap;
+ struct sockaddr sa;
+
+- if ((ap = get_afntype(AF_IPX)) == NULL) {
+- EINTERN("lib/ipx_rt.c", "AF_IPX missing");
+- return (-1);
+- }
++ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r");
+
+ if (!fp) {
+- perror(_PATH_PROCNET_IPX_ROUTE);
+- printf(_("IPX not configured in this system.\n"));
++ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r");
++ }
++
++ if (!fp) {
++ perror(NULL);
++ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2);
+ return 1;
+ }
+
++ if ((ap = get_afntype(AF_IPX)) == NULL) {
++ EINTERN("lib/ipx_rt.c", "AF_IPX missing");
++ return (-1);
++ }
++
+ printf(_("Kernel IPX routing table\n")); /* xxx */
+ printf(_("Destination Router Net Router Node\n"));
+
+--- net-tools-1.60.orig/lib/proc.c
++++ net-tools-1.60/lib/proc.c
+@@ -1,11 +1,12 @@
+ /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */
+-/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */
++/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */
+ /* Fixme: cannot currently cope with removed fields */
+
+ #include <string.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <ctype.h>
++#include <unistd.h>
+
+ /* Caller must free return string. */
+
+@@ -72,3 +73,22 @@
+ va_end(ap);
+ return flag;
+ }
++
++
++FILE *proc_fopen(const char *name)
++{
++ static char *buffer;
++ static size_t pagesz;
++ FILE *fd = fopen(name, "r");
++
++ if (fd == NULL)
++ return NULL;
++
++ if (!buffer) {
++ pagesz = getpagesize();
++ buffer = malloc(pagesz);
++ }
++
++ setvbuf(fd, buffer, _IOFBF, pagesz);
++ return fd;
++}
+--- net-tools-1.60.orig/lib/proc.h
++++ net-tools-1.60/lib/proc.h
+@@ -1,5 +1,7 @@
+-
+-
+-/* Generate a suitable scanf format for a column title line */
++/*
++ * prototypes for proc.c
++ */
+ char *proc_gen_fmt(char *name, int more, FILE * fh,...);
+ int proc_guess_fmt(char *name, FILE* fh,...);
++FILE *proc_fopen(const char *name);
++
+--- net-tools-1.60.orig/lib/util-ank.c
++++ net-tools-1.60/lib/util-ank.c
+@@ -293,7 +293,7 @@
+ return 0;
+ }
+
+-const char *format_host(int af, void *addr, __u8 *abuf, int alen)
++const char *format_host(int af, void *addr, char *abuf, int alen)
+ {
+ #ifdef RESOLVE_HOSTNAMES
+ if (resolve_hosts) {
+--- net-tools-1.60.orig/lib/Makefile
++++ net-tools-1.60/lib/Makefile
+@@ -16,7 +16,7 @@
+ #
+
+
+-HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o
++HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o
+ AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o
+ AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o
+ AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o
+--- net-tools-1.60.orig/lib/ddp_gr.c
++++ net-tools-1.60/lib/ddp_gr.c
+@@ -1,3 +1,20 @@
++/*
++ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table
++ * used by the NET-LIB.
++ *
++ * NET-LIB
++ *
++ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $
++ *
++ * Author: Ajax <ajax@firest0rm.org>
++ *
++ * Modification:
++ * 2002-06-02 integrated into main source by Bernd Eckenfels
++ *
++ */
++
++/* TODO: name lookups (/etc/atalk.names? NBP?) */
++
+ #include "config.h"
+
+ #if HAVE_AFATALK
+@@ -16,9 +33,61 @@
+ #include "pathnames.h"
+ #include "intl.h"
+
++/* stolen from inet_gr.c */
++#define flags_decode(i,o) do { \
++ o[0] = '\0'; \
++ if (i & RTF_UP) strcat(o, "U"); \
++ if (i & RTF_GATEWAY) strcat(o, "G"); \
++ if (i & RTF_REJECT) strcat(o, "!"); \
++ if (i & RTF_HOST) strcat(o, "H"); \
++ if (i & RTF_REINSTATE) strcat(o, "R"); \
++ if (i & RTF_DYNAMIC) strcat(o, "D"); \
++ if (i & RTF_MODIFIED) strcat(o, "M"); \
++ if (i & RTF_DEFAULT) strcat(o, "d"); \
++ if (i & RTF_ALLONLINK) strcat(o, "a"); \
++ if (i & RTF_ADDRCONF) strcat(o, "c"); \
++ if (i & RTF_NONEXTHOP) strcat(o, "o"); \
++ if (i & RTF_EXPIRES) strcat(o, "e"); \
++ if (i & RTF_CACHE) strcat(o, "c"); \
++ if (i & RTF_FLOW) strcat(o, "f"); \
++ if (i & RTF_POLICY) strcat(o, "p"); \
++ if (i & RTF_LOCAL) strcat(o, "l"); \
++ if (i & RTF_MTU) strcat(o, "u"); \
++ if (i & RTF_WINDOW) strcat(o, "w"); \
++ if (i & RTF_IRTT) strcat(o, "i"); \
++ if (i & RTF_NOTCACHED) strcat(o, "n"); \
++ } while (0)
++
+ int DDP_rprint(int options)
+ {
+- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n"));
+- return (1);
++ FILE *fp;
++ char *dest, *gw, *dev, *flags;
++ char oflags[32];
++ char *hdr = "Destination Gateway Device Flags";
++
++ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r");
++
++ if (!fp) {
++ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE);
++ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n");
++ return 1;
++ }
++
++ fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev);
++ free(dest); free(gw); free(dev); free(flags);
++
++ printf("%s\n", hdr);
++
++ while (fscanf(fp, "%as %as %as %as\n", &dest, &gw, &flags, &dev) == 4) {
++ int iflags = atoi(flags);
++ flags_decode(iflags, oflags);
++ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags);
++ free(dest); free(gw); free(dev); free(flags);
++ }
++
++ fclose(fp);
++
++ return 0;
++
+ }
+ #endif
+--- net-tools-1.60.orig/lib/hw.c
++++ net-tools-1.60/lib/hw.c
+@@ -2,7 +2,7 @@
+ * lib/hw.c This file contains the top-level part of the hardware
+ * support functions module.
+ *
+- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $
++ * Version: $Id: hw.c,v 1.18 2001/11/12 02:12:05 ecki Exp $
+ *
+ * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
+ *
+@@ -73,6 +73,8 @@
+
+ extern struct hwtype ec_hwtype;
+
++extern struct hwtype eui64_hwtype;
++
+ static struct hwtype *hwtypes[] =
+ {
+
+@@ -144,6 +146,9 @@
+ #if HAVE_HWX25
+ &x25_hwtype,
+ #endif
++#if HAVE_HWEUI64
++ &eui64_hwtype,
++#endif
+ &unspec_hwtype,
+ NULL
+ };
+@@ -217,6 +222,9 @@
+ #if HAVE_HWEC
+ ec_hwtype.title = _("Econet");
+ #endif
++#if HAVE_HWEUI64
++ eui64_hwtype.title = _("Generic EUI-64");
++#endif
+ sVhwinit = 1;
+ }
+
+--- net-tools-1.60.orig/lib/inet.c
++++ net-tools-1.60/lib/inet.c
+@@ -3,7 +3,7 @@
+ * support functions for the net-tools.
+ * (NET-3 base distribution).
+ *
+- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $
++ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $
+ *
+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ * Copyright 1993 MicroWalt Corporation
+@@ -144,7 +144,7 @@
+ struct hostent *ent;
+ struct netent *np;
+ struct addr *pn;
+- unsigned long ad, host_ad;
++ u_int32_t ad, host_ad;
+ int host = 0;
+
+ /* Grmpf. -FvK */
+@@ -155,7 +155,7 @@
+ errno = EAFNOSUPPORT;
+ return (-1);
+ }
+- ad = (unsigned long) sin->sin_addr.s_addr;
++ ad = sin->sin_addr.s_addr;
+ #ifdef DEBUG
+ fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric);
+ #endif
+--- net-tools-1.60.orig/lib/inet_sr.c
++++ net-tools-1.60/lib/inet_sr.c
+@@ -3,6 +3,7 @@
+ 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
+ 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names
+ over networks (or even reject)
++ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;)
+ */
+
+ #include "config.h"
+@@ -104,7 +105,6 @@
+ isnet = 1; break;
+ case 2:
+ isnet = 0; break;
+- default:
+ }
+
+ /* Fill in the other fields. */
+--- net-tools-1.60.orig/lib/ipx.c
++++ net-tools-1.60/lib/ipx.c
+@@ -133,6 +133,9 @@
+ char *ep;
+ int nbo;
+
++ if (!sai)
++ return (-1);
++
+ sai->sipx_family = AF_IPX;
+ sai->sipx_network = htonl(0);
+ sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] =
+--- net-tools-1.60.orig/lib/interface.c
++++ net-tools-1.60/lib/interface.c
+@@ -7,7 +7,7 @@
+ 8/2000 Andi Kleen make the list operations a bit more efficient.
+ People are crazy enough to use thousands of aliases now.
+
+- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $
++ $Id: interface.c,v 1.28 2003/05/29 02:09:14 ecki Exp $
+ */
+
+ #include "config.h"
+@@ -23,6 +23,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <ctype.h>
++#include <string.h>
+
+ #if HAVE_AFIPX
+ #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
+@@ -87,14 +88,20 @@
+
+ int ife_short;
+
++int if_list_all = 0; /* do we have requested the complete proc list, yet? */
++
+ static struct interface *int_list, *int_last;
+
+ static int if_readlist_proc(char *);
+
+-static struct interface *add_interface(char *name)
++static struct interface *if_cache_add(char *name)
+ {
+ struct interface *ife, **nextp, *new;
+
++ if (!int_list)
++ int_last = NULL;
++
++ /* the cache is sorted, so if we hit a smaller if, exit */
+ for (ife = int_last; ife; ife = ife->prev) {
+ int n = nstrcmp(ife->name, name);
+ if (n == 0)
+@@ -104,7 +111,7 @@
+ }
+ new(new);
+ safe_strncpy(new->name, name, IFNAMSIZ);
+- nextp = ife ? &ife->next : &int_list;
++ nextp = ife ? &ife->next : &int_list; // keep sorting
+ new->prev = ife;
+ new->next = *nextp;
+ if (new->next)
+@@ -117,19 +124,22 @@
+
+ struct interface *lookup_interface(char *name)
+ {
+- struct interface *ife = NULL;
+-
+- if (if_readlist_proc(name) < 0)
+- return NULL;
+- ife = add_interface(name);
+- return ife;
++ /* if we have read all, use it */
++ if (if_list_all)
++ return if_cache_add(name);
++
++ /* otherwise we read a limited list */
++ if (if_readlist_proc(name) < 0)
++ return NULL;
++
++ return if_cache_add(name);
+ }
+
+ int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
+ {
+ struct interface *ife;
+
+- if (!int_list && (if_readlist() < 0))
++ if (!if_list_all && (if_readlist() < 0))
+ return -1;
+ for (ife = int_list; ife; ife = ife->next) {
+ int err = doit(ife, cookie);
+@@ -139,13 +149,15 @@
+ return 0;
+ }
+
+-int free_interface_list(void)
++int if_cache_free(void)
+ {
+ struct interface *ife;
+ while ((ife = int_list) != NULL) {
+ int_list = ife->next;
+ free(ife);
+ }
++ int_last = NULL;
++ if_list_all = 0;
+ return 0;
+ }
+
+@@ -180,7 +192,7 @@
+ }
+ if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) {
+ /* assume it overflowed and try again */
+- numreqs += 10;
++ numreqs *= 2;
+ continue;
+ }
+ break;
+@@ -188,7 +200,7 @@
+
+ ifr = ifc.ifc_req;
+ for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) {
+- add_interface(ifr->ifr_name);
++ if_cache_add(ifr->ifr_name);
+ ifr++;
+ }
+ err = 0;
+@@ -198,7 +210,7 @@
+ return err;
+ }
+
+-static char *get_name(char *name, char *p)
++char *get_name(char *name, char *p)
+ {
+ while (isspace(*p))
+ p++;
+@@ -206,16 +218,19 @@
+ if (isspace(*p))
+ break;
+ if (*p == ':') { /* could be an alias */
+- char *dot = p, *dotname = name;
+- *name++ = *p++;
+- while (isdigit(*p))
+- *name++ = *p++;
+- if (*p != ':') { /* it wasn't, backup */
+- p = dot;
+- name = dotname;
++ char *dot = p++;
++ while (*p && isdigit(*p)) p++;
++ if (*p == ':') {
++ /* Yes it is, backup and copy it. */
++ p = dot;
++ *name++ = *p++;
++ while (*p && isdigit(*p)) {
++ *name++ = *p++;
++ }
++ } else {
++ /* No, it isn't */
++ p = dot;
+ }
+- if (*p == '\0')
+- return NULL;
+ p++;
+ break;
+ }
+@@ -225,7 +240,7 @@
+ return p;
+ }
+
+-static int procnetdev_version(char *buf)
++int procnetdev_version(char *buf)
+ {
+ if (strstr(buf, "compressed"))
+ return 3;
+@@ -234,12 +249,12 @@
+ return 1;
+ }
+
+-static int get_dev_fields(char *bp, struct interface *ife)
++int get_dev_fields(char *bp, struct interface *ife)
+ {
+ switch (procnetdev_vsn) {
+ case 3:
+ sscanf(bp,
+- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu",
++ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -259,7 +274,7 @@
+ &ife->stats.tx_compressed);
+ break;
+ case 2:
+- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -277,7 +292,7 @@
+ ife->stats.rx_multicast = 0;
+ break;
+ case 1:
+- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+ &ife->stats.rx_dropped,
+@@ -300,22 +315,16 @@
+
+ static int if_readlist_proc(char *target)
+ {
+- static int proc_read;
+ FILE *fh;
+ char buf[512];
+ struct interface *ife;
+ int err;
+
+- if (proc_read)
+- return 0;
+- if (!target)
+- proc_read = 1;
+-
+ fh = fopen(_PATH_PROCNET_DEV, "r");
+ if (!fh) {
+ fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"),
+ _PATH_PROCNET_DEV, strerror(errno));
+- return if_readconf();
++ return -2;
+ }
+ fgets(buf, sizeof buf, fh); /* eat line */
+ fgets(buf, sizeof buf, fh);
+@@ -350,7 +359,7 @@
+ while (fgets(buf, sizeof buf, fh)) {
+ char *s, name[IFNAMSIZ];
+ s = get_name(name, buf);
+- ife = add_interface(name);
++ ife = if_cache_add(name);
+ get_dev_fields(s, ife);
+ ife->statistics_valid = 1;
+ if (target && !strcmp(target,name))
+@@ -359,7 +368,6 @@
+ if (ferror(fh)) {
+ perror(_PATH_PROCNET_DEV);
+ err = -1;
+- proc_read = 0;
+ }
+
+ #if 0
+@@ -371,9 +379,16 @@
+
+ int if_readlist(void)
+ {
+- int err = if_readlist_proc(NULL);
+- if (!err)
+- err = if_readconf();
++ /* caller will/should check not to call this too often
++ * (i.e. only if if_list_all == 0
++ */
++ int err = 0;
++
++ err |= if_readlist_proc(NULL);
++ err |= if_readconf();
++
++ if_list_all = 1;
++
+ return err;
+ }
+
+@@ -579,11 +594,11 @@
+
+ void ife_print_short(struct interface *ptr)
+ {
+- printf("%-5.5s ", ptr->name);
+- printf("%5d %3d", ptr->mtu, ptr->metric);
++ printf("%-9s ", ptr->name);
++ printf("%5d %-2d ", ptr->mtu, ptr->metric);
+ /* If needed, display the interface statistics. */
+ if (ptr->statistics_valid) {
+- printf("%8llu %6lu %6lu %6lu",
++ printf("%8llu %6lu %6lu %-6lu ",
+ ptr->stats.rx_packets, ptr->stats.rx_errors,
+ ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors);
+ printf("%8llu %6lu %6lu %6lu ",
+@@ -636,8 +651,8 @@
+ int hf;
+ int can_compress = 0;
+ unsigned long long rx, tx, short_rx, short_tx;
+- char Rext[5]="b";
+- char Text[5]="b";
++ const char *Rext = "B";
++ const char *Text = "B";
+
+ #if HAVE_AFIPX
+ static struct aftype *ipxtype = NULL;
+@@ -670,7 +685,7 @@
+ if (hw == NULL)
+ hw = get_hwntype(-1);
+
+- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title);
++ printf(_("%-9s Link encap:%s "), ptr->name, hw->title);
+ /* For some hardware types (eg Ash, ATM) we don't print the
+ hardware address if it's null. */
+ if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
+@@ -843,10 +858,38 @@
+ tx = ptr->stats.tx_bytes;
+ short_rx = rx * 10;
+ short_tx = tx * 10;
+- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); }
+- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); }
+- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); }
+- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); }
++ if (rx > 1125899906842624ull) {
++ short_rx /= 1125899906842624ull;
++ Rext = "PiB";
++ } else if (rx > 1099511627776ull) {
++ short_rx /= 1099511627776ull;
++ Rext = "TiB";
++ } else if (rx > 1073741824ull) {
++ short_rx /= 1073741824ull;
++ Rext = "GiB";
++ } else if (rx > 1048576) {
++ short_rx /= 1048576;
++ Rext = "MiB";
++ } else if (rx > 1024) {
++ short_rx /= 1024;
++ Rext = "KiB";
++ }
++ if (tx > 1125899906842624ull) {
++ short_tx /= 1125899906842624ull;
++ Text = "PiB";
++ } else if (tx > 1099511627776ull) {
++ short_tx /= 1099511627776ull;
++ Text = "TiB";
++ } else if (tx > 1073741824ull) {
++ short_tx /= 1073741824ull;
++ Text = "GiB";
++ } else if (tx > 1048576) {
++ short_tx /= 1048576;
++ Text = "MiB";
++ } else if (tx > 1024) {
++ short_tx /= 1024;
++ Text = "KiB";
++ }
+
+ printf(" ");
+ printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"),
+@@ -867,7 +910,7 @@
+ }
+
+ if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma ||
+- ptr->map.base_addr)) {
++ ptr->map.base_addr >= 0x100)) {
+ printf(" ");
+ if (ptr->map.irq)
+ printf(_("Interrupt:%d "), ptr->map.irq);
+--- net-tools-1.60.orig/lib/net-features.h
++++ net-tools-1.60/lib/net-features.h
+@@ -295,6 +295,13 @@
+ "-"
+ #endif
+ "HDLC/LAPB "
++
++#if HAVE_HWEUI64
++"+"
++#else
++"-"
++#endif
++"EUI64 "
+ ;
+
+
+--- net-tools-1.60.orig/lib/nstrcmp.c
++++ net-tools-1.60/lib/nstrcmp.c
+@@ -1,34 +1,157 @@
+ /* Copyright 1998 by Andi Kleen. Subject to the GPL. */
+-/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */
++/* rewritten by bernd eckenfels because of complicated alias semantic */
++/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */
+ #include <ctype.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include "util.h"
+
+-/* like strcmp(), but knows about numbers */
+-int nstrcmp(const char *astr, const char *b)
++
++/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */
++char* cutalias(char* name)
+ {
+- const char *a = astr;
++ int digit = 0;
++ int pos;
++
++ for(pos=strlen(name); pos>0; pos--)
++ {
++ if (name[pos-1]==':' && digit)
++ {
++ name[pos-1]='\0';
++ return name+pos;
++ }
++ if (!isdigit(name[pos-1]))
++ break;
++ digit = 1;
++ }
++ return NULL;
++}
+
+- while (*a == *b) {
+- if (*a == '\0')
+- return 0;
+- a++;
+- b++;
+- }
+- if (isdigit(*a)) {
+- if (!isdigit(*b))
+- return -1;
+- while (a > astr) {
+- a--;
+- if (!isdigit(*a)) {
+- a++;
+- break;
+- }
+- if (!isdigit(*b))
+- return -1;
+- b--;
++
++/* return index of last non digit or -1 if it does not end with digits */
++int rindex_nondigit(char *name)
++{
++ int pos = strlen(name);
++
++ for(pos=strlen(name); pos>0; pos--)
++ {
++ if (!isdigit(name[pos-1]))
++ return pos;
+ }
+- return atoi(a) > atoi(b) ? 1 : -1;
+- }
+- return *a - *b;
++ return 0;
++}
++
++
++/* like strcmp(), but knows about numbers and ':' alias suffix */
++int nstrcmp(const char *ap, const char *bp)
++{
++ char *a = (char*)strdup(ap);
++ char *b = (char*)strdup(bp);
++ char *an, *bn;
++ int av = 0, bv = 0;
++ char *aalias=cutalias(a);
++ char *balias=cutalias(b);
++ int aindex=rindex_nondigit(a);
++ int bindex=rindex_nondigit(b);
++ int complen=(aindex<bindex)?aindex:bindex;
++ int res = strncmp(a, b, complen);
++
++ if (res != 0)
++ { free(a); free(b); return res; }
++
++ if (aindex > bindex)
++ { free(a); free(b); return 1; }
++
++ if (aindex < bindex)
++ { free(a); free(b); return -1; }
++
++ an = a+aindex;
++ bn = b+bindex;
++
++ av = atoi(an);
++ bv = atoi(bn);
++
++ if (av < bv)
++ { free(a); free(b); return -1; }
++
++ if (av > bv)
++ { free(a); free(b); return 1; }
++
++ av = -1;
++ if (aalias != NULL)
++ av = atoi(aalias);
++
++ bv = -1;
++ if (balias != NULL)
++ bv = atoi(balias);
++
++ free(a); free(b);
++
++ if (av < bv)
++ return -1;
++
++ if (av > bv)
++ return 1;
++
++ return 0;
++}
++
++
++#ifdef NSTRCMP_TEST
++
++int cs(int s)
++{
++ if (s < 0) return -1;
++ if (s > 0) return 1;
++ return 0;
++}
++
++
++int dotest(char* a, char* b, int exp)
++{
++ int res = nstrcmp(a, b);
++ int err = (cs(res) != cs(exp));
++ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK");
++ return err;
+ }
++
++int main()
++{
++ int err = 0;
++
++ err |= dotest("eth1", "eth1", 0);
++ err |= dotest("eth0:1", "eth0:1", 0);
++ err |= dotest("lan", "lan", 0);
++ err |= dotest("100", "100", 0);
++ err |= dotest("", "", 0);
++ err |= dotest(":", ":", 0);
++ err |= dotest("a:b:c", "a:b:c", 0);
++ err |= dotest("a:", "a:", 0);
++ err |= dotest(":a", ":a", 0);
++
++ err |= dotest("a", "aa", -1);
++ err |= dotest("eth0", "eth1", -1);
++ err |= dotest("eth1", "eth20", -1);
++ err |= dotest("eth20", "eth100", -1);
++ err |= dotest("eth1", "eth13", -1);
++ err |= dotest("eth", "eth2", -1);
++ err |= dotest("eth0:1", "eth0:2", -1);
++ err |= dotest("eth1:10", "eth13:10", -1);
++ err |= dotest("eth1:1", "eth1:13", -1);
++ err |= dotest("a", "a:", -1);
++
++ err |= dotest("aa", "a", 1);
++ err |= dotest("eth2", "eth1", 1);
++ err |= dotest("eth13", "eth1", 1);
++ err |= dotest("eth2", "eth", 1);
++ err |= dotest("eth2:10", "eth2:1", 1);
++ err |= dotest("eth2:5", "eth2:4", 1);
++ err |= dotest("eth3:2", "eth2:3", 1);
++ err |= dotest("eth13:1", "eth1:0", 1);
++ err |= dotest("a:", "a", 1);
++ err |= dotest("a1b12", "a1b2", 1);
++
++ return err;
++}
++
++#endif
+--- net-tools-1.60.orig/lib/pathnames.h
++++ net-tools-1.60/lib/pathnames.h
+@@ -1,4 +1,3 @@
+-
+ /*
+ * lib/pathnames.h This file contains the definitions of the path
+ * names used by the NET-LIB.
+@@ -29,8 +28,10 @@
+ #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes"
+ #define _PATH_PROCNET_ARP "/proc/net/arp"
+ #define _PATH_PROCNET_AX25 "/proc/net/ax25"
+-#define _PATH_PROCNET_IPX "/proc/net/ipx"
+-#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route"
++#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket"
++#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx"
++#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route"
++#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route"
+ #define _PATH_PROCNET_ATALK "/proc/net/appletalk"
+ #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block"
+ #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward"
+@@ -45,6 +46,7 @@
+ #define _PATH_PROCNET_X25 "/proc/net/x25"
+ #define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes"
+ #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast"
++#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route"
+
+ /* pathname for the netlink device */
+ #define _PATH_DEV_ROUTE "/dev/route"
+--- net-tools-1.60.orig/lib/tr.c
++++ net-tools-1.60/lib/tr.c
+@@ -2,7 +2,7 @@
+ * lib/tr.c This file contains an implementation of the "Tokenring"
+ * support functions.
+ *
+- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $
++ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $
+ *
+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ * Copyright 1993 MicroWalt Corporation
+@@ -30,8 +30,14 @@
+ #include "net-support.h"
+ #include "pathnames.h"
+ #include "intl.h"
++#include "util.h"
+
++
++/* actual definition at the end of file */
+ extern struct hwtype tr_hwtype;
++#ifdef ARPHRD_IEEE802_TR
++extern struct hwtype tr_hwtype1;
++#endif
+
+ static char *pr_tr(unsigned char *ptr)
+ {
+@@ -42,7 +48,7 @@
+ (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
+ );
+ return (buff);
+-}
++ }
+
+
+ static int in_tr(char *bufp, struct sockaddr *sap)
+@@ -51,7 +57,17 @@
+ char c, *orig;
+ int i, val;
+
++#ifdef ARPHRD_IEEE802_TR
++ if (kernel_version() < KRELEASE(2,3,30)) {
++ sap->sa_family = tr_hwtype.type;
++ } else {
++ sap->sa_family = tr_hwtype1.type;
++ }
++#else
+ sap->sa_family = tr_hwtype.type;
++ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)"
++#endif
++
+ ptr = sap->sa_data;
+
+ i = 0;
+--- net-tools-1.60.orig/lib/util.h
++++ net-tools-1.60/lib/util.h
+@@ -14,3 +14,6 @@
+
+ char *safe_strncpy(char *dst, const char *src, size_t size);
+
++
++#define netmin(a,b) ((a)<(b) ? (a) : (b))
++#define netmax(a,b) ((a)>(b) ? (a) : (b))
+--- net-tools-1.60.orig/lib/irda.c
++++ net-tools-1.60/lib/irda.c
+@@ -1,13 +1,15 @@
+ /*********************************************************************
+ *
+ * Filename: irda.c
+- * Version: 0.1
+- * Description: A first attempt to make ifconfig understand IrDA
++ * Version: 0.2
++ * Description: A second attempt to make ifconfig understand IrDA
+ * Status: Experimental.
+ * Author: Dag Brattli <dagb@cs.uit.no>
+ * Created at: Wed Apr 21 09:03:09 1999
+ * Modified at: Wed Apr 21 09:17:05 1999
+ * Modified by: Dag Brattli <dagb@cs.uit.no>
++ * Modified at: Wed May 1 11:51:44 CEST 2002
++ * Modified by: Christoph Bartelmus <christoph@bartelmus.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+@@ -59,9 +61,9 @@
+ */
+ static char *irda_print(unsigned char *ptr)
+ {
+- static char buff[8];
++ static char buff[12];
+
+- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
++ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
+ ptr[1], ptr[0]);
+
+ return (buff);
+--- net-tools-1.60.orig/lib/x25_sr.c
++++ net-tools-1.60/lib/x25_sr.c
+@@ -67,7 +67,7 @@
+ strcpy(target, *args++);
+
+ /* Clean out the x25_route_struct structure. */
+- memset((char *) &rt, 0, sizeof(struct x25_route_struct));
++ memset((char *) &rt, 0, sizeof(rt));
+
+
+ if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) {
+@@ -76,8 +76,8 @@
+ }
+ rt.sigdigits=sigdigits;
+
+- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
+- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
++ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */
++ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr));
+
+ while (*args) {
+ if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
+--- net-tools-1.60.orig/lib/eui64.c
++++ net-tools-1.60/lib/eui64.c
+@@ -0,0 +1,155 @@
++/*
++ * lib/eui64.c This file contains support for generic EUI-64 hw addressing
++ *
++ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $
++ *
++ * Author: Daniel Stodden <stodden@in.tum.de>
++ * Copyright 2001 Daniel Stodden
++ *
++ * blueprinted from ether.c
++ * Copyright 1993 MicroWalt Corporation
++ *
++ * 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 of the License, or (at
++ * your option) any later version.
++ */
++#include "config.h"
++
++#if HAVE_HWEUI64
++
++#include <sys/types.h>
++#include <sys/ioctl.h>
++#include <sys/socket.h>
++#include <net/if_arp.h>
++#include <stdlib.h>
++#include <stdio.h>
++#include <ctype.h>
++#include <errno.h>
++#include <fcntl.h>
++#include <string.h>
++#include <termios.h>
++#include <unistd.h>
++#include "net-support.h"
++#include "pathnames.h"
++#include "intl.h"
++
++/*
++ * EUI-64 constants
++ */
++
++#define EUI64_ALEN 8
++
++#ifndef ARPHRD_EUI64
++#define ARPHRD_EUI64 27
++#warning "ARPHRD_EUI64 not defined in <net/if_arp.h>. Using private value 27"
++#endif
++
++struct hwtype eui64_hwtype;
++
++/* Display an EUI-64 address in readable format. */
++static char *pr_eui64( unsigned char *ptr )
++{
++ static char buff[64];
++
++ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X",
++ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377),
++ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377)
++ );
++ return (buff);
++}
++
++/* Start the PPP encapsulation on the file descriptor. */
++static int in_eui64( char *bufp, struct sockaddr *sap )
++{
++ unsigned char *ptr;
++ char c, *orig;
++ int i;
++ unsigned val;
++
++ sap->sa_family = eui64_hwtype.type;
++ ptr = sap->sa_data;
++
++ i = 0;
++ orig = bufp;
++
++ while ((*bufp != '\0') && (i < EUI64_ALEN)) {
++ val = 0;
++ c = *bufp++;
++ if (isdigit(c))
++ val = c - '0';
++ else if (c >= 'a' && c <= 'f')
++ val = c - 'a' + 10;
++ else if (c >= 'A' && c <= 'F')
++ val = c - 'A' + 10;
++ else {
++#ifdef DEBUG
++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
++ orig );
++#endif
++ errno = EINVAL;
++ return (-1);
++ }
++
++ val <<= 4;
++ c = *bufp;
++ if (isdigit(c))
++ val |= c - '0';
++ else if (c >= 'a' && c <= 'f')
++ val |= c - 'a' + 10;
++ else if (c >= 'A' && c <= 'F')
++ val |= c - 'A' + 10;
++ else if (c == ':' || c == 0)
++ val >>= 4;
++ else {
++#ifdef DEBUG
++ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
++ orig );
++#endif
++ errno = EINVAL;
++ return (-1);
++ }
++
++ if (c != 0)
++ bufp++;
++
++ *ptr++ = (unsigned char) (val & 0377);
++ i++;
++
++ /* We might get a semicolon here - not required. */
++ if (*bufp == ':') {
++ if (i == EUI64_ALEN) {
++#ifdef DEBUG
++ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"),
++ orig)
++#endif
++ ; /* nothing */
++ }
++ bufp++;
++ }
++ }
++
++ /* That's it. Any trailing junk? */
++ if ((i == EUI64_ALEN) && (*bufp != '\0')) {
++#ifdef DEBUG
++ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig);
++ errno = EINVAL;
++ return (-1);
++#endif
++ }
++#ifdef DEBUG
++ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data));
++#endif
++
++ return (0);
++}
++
++struct hwtype eui64_hwtype =
++{
++ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN,
++ pr_eui64, in_eui64, NULL, 0
++};
++
++
++#endif /* HAVE_EUI64 */
+--- net-tools-1.60.orig/rarp.c
++++ net-tools-1.60/rarp.c
+@@ -3,7 +3,7 @@
+ * that maintains the kernel's RARP cache. It is derived
+ * from Fred N. van Kempen's arp command.
+ *
+- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $
++ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $
+ *
+ * Usage: rarp -d hostname Delete entry
+ * rarp -s hostname ethernet_address Add entry
+@@ -40,6 +40,7 @@
+ #include "net-support.h"
+ #include "version.h"
+ #include "pathnames.h"
++#include "proc.h"
+
+ static char no_rarp_message[] = N_("This kernel does not support RARP.\n");
+
+@@ -154,7 +155,7 @@
+
+ static int display_cache(void)
+ {
+- FILE *fd = fopen(_PATH_PROCNET_RARP, "r");
++ FILE *fd = proc_fopen(_PATH_PROCNET_RARP);
+ char buffer[256];
+ if (fd == NULL) {
+ if (errno == ENOENT)
+--- net-tools-1.60.orig/slattach.c
++++ net-tools-1.60/slattach.c
+@@ -73,7 +73,7 @@
+
+
+ const char *Release = RELEASE,
+- *Version = "@(#) slattach 1.21 (1999-11-21)",
++ *Version = "$Id: slattach.c,v 1.11 2005/12/04 05:15:36 ecki Exp $",
+ *Signature = "net-tools, Fred N. van Kempen et al.";
+
+
+@@ -115,7 +115,7 @@
+ int opt_k = 0; /* "keepalive" value */
+ #endif
+ int opt_l = 0; /* "lock it" flag */
+-int opt_L = 0; /* clocal flag */
++int opt_L = 0; /* 3-wire mode flag */
+ int opt_m = 0; /* "set RAW mode" flag */
+ int opt_n = 0; /* "set No Mesg" flag */
+ #ifdef SIOCSOUTFILL
+@@ -342,9 +342,11 @@
+ tty->c_oflag = (0); /* output flags */
+ tty->c_lflag = (0); /* local flags */
+ speed = (tty->c_cflag & CBAUD); /* save current speed */
+- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */
++ tty->c_cflag = (HUPCL | CREAD); /* UART flags */
+ if (opt_L)
+ tty->c_cflag |= CLOCAL;
++ else
++ tty->c_cflag |= CRTSCTS;
+ tty->c_cflag |= speed; /* restore speed */
+ return(0);
+ }
+--- net-tools-1.60.orig/include/util-ank.h
++++ net-tools-1.60/include/util-ank.h
+@@ -75,6 +75,6 @@
+ extern int do_class(int argc, char **argv);
+ extern int do_filter(int argc, char **argv);
+
+-extern const char *format_host(int af, void *addr, __u8 *abuf, int alen);
++extern const char *format_host(int af, void *addr, char *abuf, int alen);
+
+ #endif /* __UTILS_H__ */
+--- net-tools-1.60.orig/include/interface.h
++++ net-tools-1.60/include/interface.h
+@@ -64,13 +64,17 @@
+ extern int if_fetch(struct interface *ife);
+
+ extern int for_all_interfaces(int (*)(struct interface *, void *), void *);
+-extern int free_interface_list(void);
++extern int if_cache_free(void);
+ extern struct interface *lookup_interface(char *name);
+ extern int if_readlist(void);
+
+ extern int do_if_fetch(struct interface *ife);
+ extern int do_if_print(struct interface *ife, void *cookie);
+
++extern int procnetdev_version(char *buf);
++extern int get_dev_fields(char *bp, struct interface *ife);
++extern char * get_name(char *name, char *p);
++
+ extern void ife_print(struct interface *ptr);
+
+ extern int ife_short;
+--- net-tools-1.60.orig/include/mii.h
++++ net-tools-1.60/include/mii.h
+@@ -6,11 +6,14 @@
+ * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
+ */
+
+-#ifndef _LINUX_MII_H
+-#define _LINUX_MII_H
++#ifndef _NETTOOL_MII_H
++#define _NETTOOLS_MII_H
++
++#include <linux/sockios.h>
+
+ /* network interface ioctl's for MII commands */
+ #ifndef SIOCGMIIPHY
++#warning "SIOCGMIIPHY is not defined by your kernel source"
+ #define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
+ #define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
+ #define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
+@@ -38,6 +41,7 @@
+ #define MII_BMCR_RESTART 0x0200
+ #define MII_BMCR_DUPLEX 0x0100
+ #define MII_BMCR_COLTEST 0x0080
++#define MII_BMCR_SPEED1000 0x0040
+
+ /* Basic Mode Status Register */
+ #define MII_BMSR 0x01
+@@ -83,4 +87,17 @@
+ #define MII_ANER_PAGE_RX 0x0002
+ #define MII_ANER_LP_AN_ABLE 0x0001
+
+-#endif /* _LINUX_MII_H */
++#define MII_CTRL1000 0x09
++#define MII_BMCR2_1000FULL 0x0200
++#define MII_BMCR2_1000HALF 0x0100
++
++#define MII_STAT1000 0x0a
++#define MII_LPA2_1000LOCALOK 0x2000
++#define MII_LPA2_1000REMRXOK 0x1000
++#define MII_LPA2_1000FULL 0x0800
++#define MII_LPA2_1000HALF 0x0400
++
++/* Last register we need for show_basic_mii() */
++#define MII_BASIC_MAX (MII_STAT1000+1)
++
++#endif /* _NETTOOLS_MII_H */
+--- net-tools-1.60.orig/man/en_US/rarp.8
++++ net-tools-1.60/man/en_US/rarp.8
+@@ -61,8 +61,8 @@
+ Create a RARP address mapping entry for host
+ .B hostname
+ with hardware address set to
+-.B hw_addr
+-. The format of the hardware address is dependent on the hardware
++.BR hw_addr .
++The format of the hardware address is dependent on the hardware
+ class, but for most classes one can assume that the usual presentation
+ can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
+ separated by colons.
+--- net-tools-1.60.orig/man/en_US/arp.8
++++ net-tools-1.60/man/en_US/arp.8
+@@ -1,56 +1,111 @@
+-.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual"
++.TH ARP 8 "2007-12-01" "net-tools" "Linux Programmer's Manual"
+ .SH NAME
+ arp \- manipulate the system ARP cache
+ .SH SYNOPSIS
+ .B arp
+ .RB [ \-vn ]
+-.RB [ "\-H type" ]
+-.RB [ "-i if" ]
+-.B -a
+-.RB [ hostname ]
++.RB [ \-H
++.IR type ]
++.RB [ \-i
++.IR if ]
++.RB [ \-a ]
++.RI [ hostname ]
+ .PP
+ .B arp
+ .RB [ \-v ]
+-.RB [ "\-i if" ]
+-.B "\-d hostname"
++.RB [ \-i
++.IR if ]
++.B \-d
++.I hostname
+ .RB [ pub ]
+ .PP
+ .B arp
+ .RB [ \-v ]
+-.RB [ "\-H type" ]
+-.RB [ "\-i if" ]
+-.B -s hostname hw_addr
++.RB [ \-H
++.IR type ]
++.RB [ \-i
++.IR if ]
++.B \-s
++.I hostname hw_addr
+ .RB [ temp ]
+ .PP
+ .B arp
+ .RB [ \-v ]
+-.RB [ "\-H type" ]
+-.RB [ "\-i if" ]
+-.B -s hostname hw_addr
+-.RB [ "netmask nm" ]
++.RB [ \-H
++.IR type ]
++.RB [ \-i
++.IR if ]
++.B \-s
++.I hostname hw_addr
++.RB [ netmask
++.IR nm ]
+ .B pub
+ .PP
+ .B arp
+ .RB [ \-v ]
+-.RB [ "\-H type" ]
+-.RB [ "\-i if" ]
+-.B -Ds hostname ifa
+-.RB [ "netmask nm" ]
++.RB [ \-H
++.IR type ]
++.RB [ \-i
++.IR if ]
++.B \-Ds
++.I hostname
++.I ifname
++.RB [ netmask
++.IR nm ]
+ .B pub
+ .PP
+ .B arp
+ .RB [ \-vnD ]
+-.RB [ "\-H type" ]
+-.RB [ "-i if" ]
+-.B -f [filename]
++.RB [ \-H
++.IR type ]
++.RB [ \-i
++.IR if ]
++.B \-f
++.RI [ filename ]
+
+ .SH DESCRIPTION
+ .B Arp
+-manipulates the kernel's ARP cache in various ways. The primary options
+-are clearing an address mapping entry and manually setting up one. For
+-debugging purposes, the
++manipulates or displays the kernel's IPv4 network neighbour cache. It can add
++entries to the table, delete one or display the current content.
++
++.B ARP
++stands for Address Resolution Protocol, which is used to find the media
++access control address of a network neighbour for a given IPv4 Address.
++.SH MODES
+ .B arp
+-program also allows a complete dump of the ARP cache.
++with no mode specifier will print the current content of the table. It is
++possible to limit the number of entries printed, by specifying an hardware
++address type, interface name or host address.
++
++.B arp -d
++.I address
++will delete a ARP table entry. Root or netadmin priveledge is required to do
++this. The entry is found by IP address. If a hostname is given, it will be
++resolved before looking up the entry in the ARP table.
++
++.B arp -s
++.I address hw_addr
++is used to set up a new table entry. The format of the
++.I hw_addr
++parameter is dependent on the hardware class, but for most classes one can
++assume that the usual presentation can be used. For the Ethernet class,
++this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp
++entries (that is those with the
++.BR pub lish
++flag set a
++.B netmask
++may be specified to proxy arp for entire subnets. This is not good
++practice, but is supported by older kernels because it can be
++useful. If the
++.B temp
++flag is not supplied entries will be permanent stored into the ARP
++cache. To simplyfy setting up entries for one of your own network interfaces, you can use the
++.B "arp \-Ds"
++.I address ifname
++form. In that case the hardware address is taken from the interface with the
++specified name.
++
++.br
+ .SH OPTIONS
+ .TP
+ .B "\-v, \-\-verbose"
+@@ -76,21 +131,13 @@
+ and
+ .RB "NET/ROM (" netrom ")."
+ .TP
+-.B "\-a [hostname], \-\-display [hostname]"
+-Shows the entries of the specified hosts. If the
+-.B hostname
+-parameter is not used,
+-.B all
+-entries will be displayed.
+-.TP
+-.B "\-d hostname, \-\-delete hostname"
+-Remove any entry for the specified host. This can be used if the
+-indicated host is brought down, for example.
++.B \-a
++Use alternate BSD style output format (with no fixed columns).
+ .TP
+ .B "\-D, \-\-use-device"
+-Use the interface
+-.BR ifa "'s"
+-hardware address.
++Instead of a hw_addr, the given argument is the name of an interface.
++.B arp
++will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself.
+ .TP
+ .B "\-i If, \-\-device If"
+ Select an interface. When dumping the ARP cache only entries matching
+@@ -106,33 +153,15 @@
+ .B NOTE:
+ This has to be different from the interface to which the IP
+ datagrams will be routed.
+-.TP
+-.B "\-s hostname hw_addr, \-\-set hostname"
+-Manually create an ARP address mapping entry for host
+-.B hostname
+-with hardware address set to
+-.B hw_addr
+-. The format of the hardware address is dependent on the hardware
+-class, but for most classes one can assume that the usual presentation
+-can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
+-separated by colons. When adding proxy arp entries (that is those with
+-the
+-.BR pub lish
+-flag set a
+-.B netmask
+-may be specified to proxy arp for entire subnets. This is not good
+-practice, but is supported by older kernels because it can be
+-useful. If the
+-.B temp
+-flag is not supplied entries will be permanent stored into the ARP
+-cache.
+-.br
+ .B NOTE:
+ As of kernel 2.2.0 it is no longer possible to set an ARP entry for an
+ entire subnet. Linux instead does automagic proxy arp when a route
+ exists and it is forwarding. See
+ .BR arp (7)
+-for details.
++for details. Also the
++.B dontpub
++option which is available for delete and set operations cannot be
++used with 2.4 and newer kernels.
+ .TP
+ .B "\-f filename, \-\-file filename"
+ Similar to the
+@@ -167,8 +196,18 @@
+ and published entries have the
+ .B P
+ flag.
++.SH EXSAMPLES
++.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
++
++This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for
++eth1.
++
++.B /usr/sbin/arp -i eth1 -d 10.0.0.1
++
++Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match
++published proxy ARP entries and permanent entries.
+ .SH FILES
+-.I /proc/net/arp,
++.I /proc/net/arp
+ .br
+ .I /etc/networks
+ .br
+@@ -178,5 +217,4 @@
+ .SH SEE ALSO
+ rarp(8), route(8), ifconfig(8), netstat(8)
+ .SH AUTHORS
+-Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> with a lot of improvements
+-from net-tools Maintainer Bernd Eckenfels <net-tools@lina.inka.de>.
++Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net-tools@lina.inka.de>.
+--- net-tools-1.60.orig/man/en_US/ethers.5
++++ net-tools-1.60/man/en_US/ethers.5
+@@ -1,4 +1,4 @@
+-.TH ETHERS 5 "April 26th, 1996" "" "File formats"
++.TH ETHERS 5 "May 15th, 2005" "" "File formats"
+ .SH NAME \"{{{roff}}}\"{{{
+ ethers \- Ethernet address to IP number database
+ .\"}}}
+@@ -10,8 +10,8 @@
+ \fIEthernet-address\fP \fIIP-number\fP
+ .RE
+ .sp
+-The two items are separated by any number of SPACE and/or TAB char
+-acters. A \fB#\fP at the beginning of a line starts a comment
++The two items are separated by any number of SPACE and/or TAB characters.
++A \fB#\fP at the beginning of a line starts a comment
+ which extends to the end of the line. The \fIEthernet-address\fP is
+ written as
+ .IR x : x : x : x : x : x ,
+--- net-tools-1.60.orig/man/en_US/ifconfig.8
++++ net-tools-1.60/man/en_US/ifconfig.8
+@@ -1,10 +1,10 @@
+-.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual"
++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+ .SH NAME
+ ifconfig \- configure a network interface
+ .SH SYNOPSIS
+-.B "ifconfig [interface]"
++.B "ifconfig [-v] [-a] [-s] [interface]"
+ .br
+-.B "ifconfig interface [aftype] options | address ..."
++.B "ifconfig [-v] interface [aftype] options | address ..."
+ .SH DESCRIPTION
+ .B Ifconfig
+ is used to configure the kernel-resident network interfaces. It is
+@@ -41,11 +41,27 @@
+ (AMPR Packet radio).
+ .SH OPTIONS
+ .TP
++.B -a
++display all interfaces which are currently available, even if down
++.TP
++.B -s
++display a short list (like netstat -i)
++.TP
++.B -v
++be more verbose for some error conditions
++.TP
+ .B interface
+ The name of the interface. This is usually a driver name followed by
+ a unit number, for example
+ .B eth0
+-for the first Ethernet interface.
++for the first Ethernet interface. If your kernel supports alias interfaces,
++you can specify them with
++.B eth0:0
++for the first alias of eth0. You can use them to assign a second address. To
++delete an alias interface use
++.BR "ifconfig eth0:0 down" .
++Note: for every scope (i.e. same net with address/netmask combination) all
++aliases are deleted, if you delete the first (primary).
+ .TP
+ .B up
+ This flag causes the interface to be activated. It is implicitly
+@@ -173,11 +189,20 @@
+ are shared with all alias addresses on the same device. If you want per-address
+ statistics you should add explicit accounting
+ rules for the address using the
+-.BR ipchains(8)
++.BR ipchains (8)
++or
++.BR iptables (8)
+ command.
+ .LP
+-Interrupt problems with Ethernet device drivers fail with EAGAIN. See
+-.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html
++Since net-tools 1.60-4 ifconfig is printing byte counters and human readable
++counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers
++are truncated to one decimal (which can by quite a large error if you
++consider 0.1 PiB is 112.589.990.684.262 bytes :)
++.LP
++Interrupt problems with Ethernet device drivers fail with EAGAIN
++.I (SIOCSIIFLAGS: Resource temporarily unavailable)
++it is most likely a interrupt conflict. See
++.I http://www.scyld.com/expert/irq-conflict.html
+ for more information.
+ .SH FILES
+ .I /proc/net/socket
+@@ -189,7 +214,9 @@
+ While appletalk DDP and IPX addresses will be displayed they cannot be
+ altered by this command.
+ .SH SEE ALSO
+-route(8), netstat(8), arp(8), rarp(8), ipchains(8)
++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5).
++.br
++http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples
+ .SH AUTHORS
+ Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ .br
+@@ -198,3 +225,5 @@
+ Phil Blundell, <Philip.Blundell@pobox.com>
+ .br
+ Andi Kleen
++.br
++Bernd Eckenfels, <net-tools@lina.inka.de>
+--- net-tools-1.60.orig/man/en_US/netstat.8
++++ net-tools-1.60/man/en_US/netstat.8
+@@ -8,7 +8,7 @@
+ .\" Modified: Tuan Hoang tqhoang@bigfoot.com
+ .\"
+ .\"
+-.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual"
++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+
+ .SH NAME
+ netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
+@@ -23,7 +23,7 @@
+ .RB [ \-\-listening | \-l ]
+ .RB [ \-\-all | \-a ]
+ .RB [ \-\-numeric | \-n ]
+-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+ .RB [ \-\-symbolic | \-N ]
+ .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
+ .RB [ \-\-timers | \-o ]
+@@ -37,31 +37,30 @@
+ .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
+ .RB [ \-\-verbose | \-v ]
+ .RB [ \-\-numeric | \-n ]
+-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+ .RB [ \-\-continuous | \-c]
+ .P
+ .B netstat
+ .RB { \-\-interfaces | \-i }
+-.RI [ iface ]
+ .RB [ \-\-all | \-a ]
+ .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
+ .RB [ \-\-verbose | \-v ]
+ .RB [ \-\-program | \-p ]
+ .RB [ \-\-numeric | \-n ]
+-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+ .RB [ \-\-continuous | \-c]
+ .P
+ .B netstat
+ .RB { \-\-groups | \-g }
+ .RB [ \-\-numeric | \-n ]
+-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+ .RB [ \-\-continuous | \-c]
+ .P
+ .B netstat
+ .RB { \-\-masquerade | \-M }
+ .RB [ \-\-extend | \-e ]
+ .RB [ \-\-numeric | \-n ]
+-.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
++.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
+ .RB [ \-\-continuous | \-c]
+ .P
+ .B netstat
+@@ -78,6 +77,8 @@
+ .P
+ .IR address_family_options :
+ .PP
++.RB [ -4 ]
++.RB [ -6 ]
+ .RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ]
+ .RB [ \-\-unix | \-x ]
+ .RB [ \-\-inet | \-\-ip ]
+@@ -98,12 +99,17 @@
+ address families, then the active sockets of all configured address
+ families will be printed.
+ .SS "\-\-route , \-r"
+-Display the kernel routing tables.
++Display the kernel routing tables. See the description in
++.BR route (8)
++for details.
++.B netstat -r
++and
++.B route -e
++produce the same output.
+ .SS "\-\-groups , \-g"
+ Display multicast group membership information for IPv4 and IPv6.
+-.SS "\-\-interface=\fIiface \fR, \fB\-i"
+-Display a table of all network interfaces, or the specified
+-.IR iface ) .
++.SS "\-\-interfaces, \-i"
++Display a table of all network interfaces.
+ .SS "\-\-masquerade , \-M"
+ Display a list of masqueraded connections.
+ .SS "\-\-statistics , \-s"
+@@ -165,12 +171,11 @@
+ .SS "\-a, \-\-all"
+ Show both listening and non-listening sockets. With the
+ .B --interfaces
+-option, show interfaces that are not marked
++option, show interfaces that are not up
+ .SS "\-F"
+ Print routing information from the FIB. (This is the default.)
+ .SS "\-C"
+ Print routing information from the route cache.
+-.IR UP .
+ .P
+ .SH OUTPUT
+ .P
+@@ -221,7 +226,7 @@
+ The socket is waiting after close to handle packets still in the network.
+ .TP
+ .I
+-CLOSED
++CLOSE
+ The socket is not being used.
+ .TP
+ .I
+@@ -438,7 +443,7 @@
+ .P
+ .SH AUTHORS
+ The netstat user interface was written by Fred Baumgarten
+-<dc6iq@insu1.etec.uni-karlsruhe.de> the man page basically
++<dc6iq@insu1.etec.uni-karlsruhe.de>, the man page basically
+ by Matt Welsh <mdw@tc.cornell.edu>. It was updated by
+ Alan Cox <Alan.Cox@linux.org> but could do with a bit more
+ work. It was updated again by Tuan Hoang
+--- net-tools-1.60.orig/man/en_US/route.8
++++ net-tools-1.60/man/en_US/route.8
+@@ -1,4 +1,4 @@
+-.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual"
++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+ .SH NAME
+ route \- show / manipulate the IP routing table
+ .SH SYNOPSIS
+@@ -141,7 +141,7 @@
+ set the TCP Maximum Segment Size (MSS) for connections over this route
+ to M bytes.
+ The default is the device MTU minus headers, or a lower MTU when path mtu
+-discovery occured. This setting can be used to force smaller TCP packets on the
++discovery occurred. This setting can be used to force smaller TCP packets on the
+ other end when path mtu discovery does not work (usually because of
+ misconfigured firewalls that block ICMP Fragmentation Needed)
+ .TP
+@@ -179,17 +179,20 @@
+
+ .SH EXAMPLES
+ .TP
+-.B route add -net 127.0.0.0
+-adds the normal loopback entry, using netmask 255.0.0.0 (class A net,
+-determined from the destination address) and associated with the
+-"lo" device (assuming this device was prviously set up correctly with
++.B route add -net 127.0.0.0 netmask 255.0.0.0 dev lo
++adds the normal loopback entry, using netmask 255.0.0.0 and associated with the
++"lo" device (assuming this device was previously set up correctly with
+ .BR ifconfig (8)).
+
+ .TP
+ .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
+-adds a route to the network 192.56.76.x via
+-"eth0". The Class C netmask modifier is not really necessary here because
+-192.* is a Class C IP address. The word "dev" can be omitted here.
++adds a route to the local network 192.56.76.x via
++"eth0". The word "dev" can be omitted here.
++
++.TP
++.B route del default
++deletes the current default route, which is labeled "default" or 0.0.0.0
++in the destination field of the current routing table.
+
+ .TP
+ .B route add default gw mango-gw
+@@ -289,7 +292,7 @@
+ Interface to which packets for this route will be sent.
+ .TP
+ .B MSS
+-Default maximum segement size for TCP connections over this route.
++Default maximum segment size for TCP connections over this route.
+ .TP
+ .B Window
+ Default window size for TCP connections over this route.
+@@ -323,4 +326,4 @@
+ Linus Torvalds for pl15. Alan Cox added the mss and window options for
+ Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.
+ .SH AUTHOR
+-Currently maintained by Phil Blundell <Philip.Blundell@pobox.com>.
++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>.
+--- net-tools-1.60.orig/man/en_US/slattach.8
++++ net-tools-1.60/man/en_US/slattach.8
+@@ -1,4 +1,4 @@
+-.TH SLATTACH 8 "12 Feb 1994" "" ""
++.TH SLATTACH 8 "10 Oct 2006" "" ""
+ .SH NAME
+ slattach \- attach a network interface to a serial line
+ .SH SYNOPSIS
+@@ -24,6 +24,7 @@
+ .B "[-h]"
+ Exit when the carrier is lost. This works on both /dev/tty and /dev/cua
+ devices by directly monitoring the carrier status every 15 seconds.
++.TP
+ .B "[-v]"
+ Enable verbose output. Useful in shell scripts.
+ .TP
+@@ -41,7 +42,7 @@
+ .TP
+ .B "[-e]"
+ Exit right after initializing device, instead of waiting for the
+-line to hangup.
++line to hang up.
+ .TP
+ .B "[-L]"
+ Enable 3 wire operation. The terminal is moved into CLOCAL mode,
+@@ -50,8 +51,8 @@
+ .B "[-p proto]"
+ Set a specific kind of protocol to use on the line. The default
+ is set to
+-.B "cslip"
+-, i.e. compressed SLIP. Other possible values are
++.BR "cslip" ,
++i.e. compressed SLIP. Other possible values are
+ .B "slip"
+ (normal SLIP),
+ .B "adaptive"
+--- net-tools-1.60.orig/man/en_US/mii-tool.8
++++ net-tools-1.60/man/en_US/mii-tool.8
+@@ -1,7 +1,7 @@
+ .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
+ .\" mii-tool.8 1.5 2000/04/25 22:58:19
+ .\"
+-.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools"
++.TH MII-TOOL 8 "2004/03/28 23:30:00" "net-tools"
+
+ .SH NAME
+ mii-tool \- view, manipulate media-independent interface status
+@@ -72,7 +72,24 @@
+ commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR,
+ \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR.
+
++.SH DIAGNOSTICS
++.TP
++SIOCGMIIPHY on 'eth?' failed: Invalid argument
++If the interface is not running (up), kernel will refuse to report its link state.
++.TP
++SIOCGMIIPHY on 'eth?' failed: Operation not permitted
++Most kernels restrict access to root.
++.TP
++SIOCGMIIPHY on 'eth?' failed: No such device
++This error is shown, if the kernel does not know about the named device.
++.TP
++SIOCGMIIPHY on 'eth?' failed: Operation not supported
++The interface in question does not support MII queries. Most likely, it does not have
++MII transceivers, at all.
++
+ .SH AUTHORS
+ David Hinds \- dhinds@pcmcia.sourceforge.org
+ .br
+ Donald Becker \- becker@scyld.com
++.br
++Bernd Eckenfels \- ecki@debian.org
+--- net-tools-1.60.orig/man/fr_FR/arp.8
++++ net-tools-1.60/man/fr_FR/arp.8
+@@ -140,8 +140,8 @@
+ Similaire l'option
+ .B \-s
+ , mais cette fois les informations d'adresses sont prises dans le fichier
+-.B nom_de_fichier
+-. Ceci peut tre utilis si les entres ARP configurer sont
++.BR nom_de_fichier .
++Ceci peut tre utilis si les entres ARP configurer sont
+ nombreuses. Le nom du fichier de donnes est trs souvent nomm
+ .B /etc/ethers
+ , mais ce n'est pas officiel.
+@@ -160,8 +160,8 @@
+ .LP
+ Chaque entre complte se trouvant dans le cache ARP est marque de
+ l'indicateur
+-.B C
+-. Les entres permanentes sont marques de l'indicateur
++.BR C .
++Les entres permanentes sont marques de l'indicateur
+ .B M
+ et les entres 'pub' ont l'indicateur
+ .B P
+--- net-tools-1.60.orig/man/fr_FR/hostname.1
++++ net-tools-1.60/man/fr_FR/hostname.1
+@@ -84,8 +84,8 @@
+ .LP
+ .B hostname
+ fournit le nom du systme tel qu'il est retourn par la fonction
+-.BR getdomainname (2)
+-. Ceci est connu comme nom de domaine YP/NIS du systme.
++.BR getdomainname (2).
++Ceci est connu comme nom de domaine YP/NIS du systme.
+
+
+ .LP
+@@ -145,8 +145,8 @@
+ .LP
+ La faon dont vous pouvez le changer dpend de la configuration
+ (habituellement dans
+-.IR /etc/host.conf )
+-. Si le fichier 'hosts' est analys avant d'interroger le DNS ou
++.IR /etc/host.conf ).
++Si le fichier 'hosts' est analys avant d'interroger le DNS ou
+ NIS) vous pouvez le changer dans le fichier
+ .IR /etc/hosts .
+
+--- net-tools-1.60.orig/man/fr_FR/ifconfig.8
++++ net-tools-1.60/man/fr_FR/ifconfig.8
+@@ -1,4 +1,4 @@
+-.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual"
++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+ .SH NOM
+ ifconfig \- configure une interface rseau
+ .SH SYNOPSIS
+@@ -60,14 +60,14 @@
+ .TP
+ .B "[\-]promisc"
+ Valide ou invalide le mode
+-.B promiscuous
+-. S'il est valid, tous les paquets circulant sur le rseau
++.BR promiscuous .
++S'il est valid, tous les paquets circulant sur le rseau
+ seront reus sur cette interface.
+ .TP
+ .B "[\-]allmulti"
+ Valide ou invalide le fonctionnement de l'interface en mode
+-.B all-multicast
+-. S'il est valid, tous les paquets multicast circulant sur le rseau
++.BR all-multicast .
++S'il est valid, tous les paquets multicast circulant sur le rseau
+ seront reus sur cette interface.
+ .TP
+ .B "metric N"
+@@ -196,7 +196,7 @@
+ Mme si les adresses appletalk DDP et IPX peuvent tre affiches,
+ elles ne peuvent tre modifies avec cette commande.
+ .SH VOIR AUSSI
+-route(8), netstat(8), arp(8), rarp(8), ipchains(8)
++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5).
+ .SH AUTHORS
+ Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ .br
+--- net-tools-1.60.orig/man/fr_FR/netstat.8
++++ net-tools-1.60/man/fr_FR/netstat.8
+@@ -8,7 +8,7 @@
+ .\" Modified: Tuan Hoang tuan@optimus.mitre.org
+ .\"
+ .\"
+-.TH NETSTAT 8 "25 Fv 1999" "net-tools" "Linux Programmer's Manual"
++.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+
+ .SH NAME
+ netstat \- Affiche les connexions rseau, les tables de routage, les
+@@ -106,7 +106,7 @@
+ .BR route (8)
+ pour plus de dtails.
+
+-.SS "\-i, \-\-interface \fIiface\fI"
++.SS "\-i, \-\-interfaces \fIiface\fI"
+ Si vous utilisez l'option
+ .BR -i ", " --interfaces
+ , une table de toutes (ou de l'interface
+@@ -118,8 +118,8 @@
+ .BR ifconfig (8).
+ .B "netstat -ei"
+ affiche une table ou une seule entre d'interface comme la commande
+-.B ifconfig
+-. Avec le paramtre
++.BR ifconfig .
++Avec le paramtre
+ .B -a
+ , vous pouvez inclure les interfaces qui ne sont pas configures (c.a.d qui
+ n'ont pas l'indicateur
+@@ -249,7 +249,7 @@
+ avant d'entreprendre la fermeture.
+ .TP
+ .I
+-CLOSED
++CLOSE
+ La socket n'est pas utilise.
+ .TP
+ .I
+@@ -409,8 +409,7 @@
+ Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques
+ des interfaces alias. Pour obtenir les compteurs par interface alias, vous
+ devez dfinir des rgles spcifiques l'aide de la commande
+-.BR ipchains(8)
+-.
++.BR ipchains (8).
+
+ .SH FICHIERS
+ .ta
+--- net-tools-1.60.orig/man/fr_FR/rarp.8
++++ net-tools-1.60/man/fr_FR/rarp.8
+@@ -55,8 +55,8 @@
+ Cre manuellement une correspondance d'adresses RARP pour l'hte
+ .B nom_d_hte
+ avec l'adresse matrielle
+-.B adr_materielle
+-. Le format de l'adresse matrielle est dpendant du matriel,
++.BR adr_materielle .
++Le format de l'adresse matrielle est dpendant du matriel,
+ mais pour la plupart on peut considrer que la prsentation classique
+ peut tre utilise. Pour la classe Ethernet, c'est 6 octets en hexadcimal,
+ spars par des double-points.
+--- net-tools-1.60.orig/man/fr_FR/route.8
++++ net-tools-1.60/man/fr_FR/route.8
+@@ -1,4 +1,4 @@
+-.TH ROUTE 8 "8 Aot 1997" "net-tools" "Linux Programmer's Manual"
++.TH ROUTE 8 "2007-12-02" "net-tools" "Linux Programmer's Manual"
+ .SH NAME
+ route \- affiche / manipule la table de routage IP
+ .SH SYNOPSIS
+@@ -330,6 +330,6 @@
+ la gestion des fentres et MSS pour Linux 1.1.22. Le support de irtt
+ et la fusion avec netstat ont t raliss par Bernd Eckenfels.
+ .SH AUTEUR
+-Maintenu par Phil Blundell <Philip.Blundell@pobox.com>.
++Maintenu par Phil Blundell <Philip.Blundell@pobox.com> et Bernd Eckenfels <net-tools@lina.inka.de>.
+ .SH TRADUCTION
+-Jean-Michel VANSTEENE (vanstee@worldnet.fr)
++Jean-Michel VANSTEENE <vanstee@worldnet.fr>
+--- net-tools-1.60.orig/man/pt_BR/ifconfig.8
++++ net-tools-1.60/man/pt_BR/ifconfig.8
+@@ -1,4 +1,4 @@
+-.TH IFCONFIG 8 "10 de fevereiro de 1996" "net-tools" "Manual do Programador Linux"
++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Manual do Programador Linux"
+ .SH NOME
+ ifconfig \- configura uma interface de rede
+ .SH SINOPSE
+@@ -169,7 +169,7 @@
+ Os endereos appletalk DDP e IPX sero mostrados, mas no podem ser alterados
+ com este comando.
+ .SH VEJA TAMBM
+-route(8), netstat(8), arp(8), rarp(8), ipchains(8)
++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5).
+ .SH AUTORES
+ Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ Alan Cox, <Alan.Cox@linux.org>
+--- net-tools-1.60.orig/man/pt_BR/netstat.8
++++ net-tools-1.60/man/pt_BR/netstat.8
+@@ -8,7 +8,7 @@
+ .\" Traduzido para portugus por Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ .\" Revisado por Jorge Luiz Godoy Filho <jorge@bestway.com.br>
+ .\"
+-.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux"
++.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux"
+
+ .SH NOME
+ netstat \- Mostra conexes de rede, tabelas de roteamento, estatsticas de interface e conexes
+@@ -97,7 +97,7 @@
+ .BR route (8)
+ para maiores detalhes.
+
+-.SS "\-i, \-\-interface \fIiface\fI"
++.SS "\-i, \-\-interfaces \fIiface\fI"
+ Se voc usar a opo
+ .BR -i ", " --interfaces
+ , uma tabela de todas (ou da
+--- net-tools-1.60.orig/man/pt_BR/rarp.8
++++ net-tools-1.60/man/pt_BR/rarp.8
+@@ -50,8 +50,8 @@
+ Cria um mapeamento de endereos RARP para a mquina
+ .B mquina
+ com endereo de hardware configurado para
+-.B endereo_hardware
+-. O formato do endereo de hardware depende da classe do hardware, mas
++.B endereo_hardware.
++O formato do endereo de hardware depende da classe do hardware, mas
+ para a maioria das classes voc pode assumir que a apresentao usual pode
+ ser usada. Para a classe Ethernet, so 6 bytes em hexadecimal, separados
+ por dois pontos (:).
+--- net-tools-1.60.orig/man/pt_BR/route.8
++++ net-tools-1.60/man/pt_BR/route.8
+@@ -1,4 +1,4 @@
+-.TH ROUTE 8 "27 Jan 1996" "net-tools" "Manual do Programador Linux"
++.TH ROUTE 8 "2007-12-02" "net-tools" "Manual do Programador Linux"
+ .SH NOME
+ route \- mostra / manipula a tabela de roteamento IP
+ .SH SINOPSE
+@@ -321,7 +321,7 @@
+ Linus Torvalds para a verso pl15. Alan Cox adicionou as opes para
+ mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o
+ netstat) foi feito por Bernd Eckenfels.
++.SH AUTHOR
++Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>.
+ .SH TRADUO
+ Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998
+-.SH BUGS
+-nenhum :)
+--- net-tools-1.60.orig/man/de_DE/ifconfig.8
++++ net-tools-1.60/man/de_DE/ifconfig.8
+@@ -1,4 +1,4 @@
+-.TH IFCONFIG 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
++.TH IFCONFIG 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
+ .SH NAME
+ ifconfig \- Konfiguration einer Netzwerkskarte
+ .SH SYNOPSIS
+@@ -193,7 +193,7 @@
+ W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit
+ diesem Kommando nicht ge\(:andert werden.
+ .SH SIEHE AUCH
+-route(8), netstat(8), arp(8), rarp(8), ipchains(8)
++route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5).
+ .SH AUTOREN
+ Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ .br
+--- net-tools-1.60.orig/man/de_DE/route.8
++++ net-tools-1.60/man/de_DE/route.8
+@@ -1,4 +1,4 @@
+-.TH ROUTE 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
++.TH ROUTE 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
+ .SH NAME
+ route \- Anzeigen der IP-Routen-Tabelle
+ .SH SYNOPSIS
+@@ -345,6 +345,6 @@
+ irtt beigesteuert und den Code mit dem von Netstat vereinigt.
+ .SH AUTOREN
+ .B Route
+-wird zur Zeit von Phil Blundel (Philip.Blundell@pobox.com) gewartet.
++wird zur Zeit von Phil Blundel <Philip.Blundell@pobox.com> und Bernd Eckenfels <net-tools@lina.inka.de> gewartet.
+ .SH \(:Ubersetzung
+ Ralf B\(:achle <ralf@gnu.org>
+--- net-tools-1.60.orig/man/de_DE/netstat.8
++++ net-tools-1.60/man/de_DE/netstat.8
+@@ -9,7 +9,7 @@
+ .\" Modified: Tuan Hoang tuan@optimus.mitre.org
+ .\"
+ .\"
+-.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
++.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
+
+ .SH NAME
+ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen
+@@ -44,7 +44,6 @@
+ .B netstat
+ .RB [ \-veenpac ]
+ .RB { \-\-interfaces | \-i }
+-.RI [ Schnittstelle ]
+
+ .PP
+
+@@ -68,6 +67,8 @@
+ .SH BESCHREIBUNG
+ .B Netstat
+ zeigt Informationen des Linux Netzwerkssystems an.
++.PP
++.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment.
+
+ .SS "(no option)"
+ Ohne Optionen zeigt
+@@ -103,18 +104,17 @@
+ Wegen Details siehe
+ .BR route (8).
+
+-.SS "\-i, \-\-interface \fISchnittstelle\fI"
++.SS "\-i, \-\-interfaces"
+ Wird die
+ .BR -i ", " --interfaces
+-Option verwendet, so wird eine Tabelle aller (oder der angegebenen
+-.IR Schnittstellen )
++Option verwendet, so wird eine Tabelle aller Schnittstellen
+ ausgedruckt. Die Ausgabe ist im Format von
+ .B "ifconfig -e"
+ und wird in
+ .BR ifconfig (8)
+ beschrieben.
+ .B "netstat -ei"
+-druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie
++druckt eine Tabelle f\(:ur Interfaces wie
+ .BR ifconfig .
+ Die
+ .B -a
+@@ -182,7 +182,7 @@
+ und
+ .BR \-\-ddp.
+
+-.SS "\-c, \-\-continous"
++.SS "\-c, \-\-continuous"
+ Mit dieser Option wiederholt
+ .B netstat
+ im Sekundenabstand die Ausgabe, bis es abgebrochen wird.
+--- net-tools-1.60.orig/po/pt_BR.po
++++ net-tools-1.60/po/pt_BR.po
+@@ -10,275 +10,287 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: net-tools 1.54\n"
+-"POT-Creation-Date: 2000-02-14 02:31+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
+ "PO-Revision-Date: 1999-03-01 02:38+0100\n"
+ "Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=ISO8859-9\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:110 ../arp.c:269
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+ msgstr "arp: preciso do nome da mquina\n"
+
+-#: ../arp.c:207 ../arp.c:221
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+ msgstr "Nenhuma entrada ARP para %s\n"
+
+-#: ../arp.c:239
++#: ../arp.c:248
+ #, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr "arp: no foi possvel obter o endereo de hardware para `%s': %s.\n"
+
+-#: ../arp.c:243
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr "arp: erro no tipo do protocolo.\n"
+
+-#: ../arp.c:252
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+ msgstr "arp: o dispositivo `%s' tem endereo de hardware %s `%s'.\n"
+
+-#: ../arp.c:282
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+ msgstr "arp: preciso do endereo de hardware\n"
+
+-#: ../arp.c:290
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr "arp: endereo invlido de hardware\n"
+
+-#: ../arp.c:387
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr "arp: no foi possvel abrir o arquivo etherfile %s!\n"
+
+-#: ../arp.c:403
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr "arp: erro de formato na linha %u do arquivo etherfile %s!\n"
+
+-#: ../arp.c:416
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr "arp: no foi possvel configurar a linha %u do arquivo etherfile %s!\n"
+
+-#: ../arp.c:437
+-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
++#: ../arp.c:448
++#, fuzzy, c-format
++msgid ""
++"Address HWtype HWaddress Flags Mask "
++"Iface\n"
+ msgstr "Endereo\t\tTipoHW\tEndereoHW\t Flags Mascara\t\t Iface\n"
+
+-#: ../arp.c:467
++#: ../arp.c:476
++#, fuzzy
++msgid "<from_interface>"
++msgstr "%s: interface desconhecida.\n"
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+ msgstr "(incompleto)"
+
+-#: ../arp.c:484
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr "%s (%s) em "
+
+-#: ../arp.c:490
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr "<incompleto> "
+
+-#: ../arp.c:496
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr "mascara %s "
+
+-#: ../arp.c:513
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr "em %s\n"
+
+-#: ../arp.c:592
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr "Entradas: %d\tIgnorada: %d\tEncontrada: %d\n"
+
+-#: ../arp.c:596
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr "%s (%s) -- nenhuma entrada\n"
+
+-#: ../arp.c:598
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+ msgstr "arp: em %d entradas no foi encontrado.\n"
+
+-#: ../arp.c:613
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+ "cache\n"
+ msgstr ""
+ "Uso:\n"
+-" arp [-vn] [<HW>] [-i <if>] [-a] [<mquina>] <-Mostra cache "
+-"ARP\n"
++" arp [-vn] [<HW>] [-i <if>] [-a] [<mquina>] <-Mostra cache ARP\n"
+
+-#: ../arp.c:614
++#: ../arp.c:627
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+-msgstr ""
+-" arp [-v] [-i <if>] -d <mquina> [pub][nopub] <-Remove entrada "
+-"ARP\n"
++msgstr " arp [-v] [-i <if>] -d <mquina> [pub][nopub] <-Remove entrada ARP\n"
+
+-#: ../arp.c:615
++#: ../arp.c:628
++#, fuzzy, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+ msgstr ""
+ " arp [-vnD] [<HW>] [-i <if>] -f [<arquivo>] <-Inclui entrada de "
+ "arquivo\n"
+
+-#: ../arp.c:616
++#: ../arp.c:629
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -s <mquina> <end_hw> [temp][nopub] <-Inc. "
+-"Entrada\n"
+-
+-#: ../arp.c:617
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -s <mquina> <end_hw> [netmask <nm>] pub "
+-"<-''-\n"
++msgstr " arp [-v] [<HW>] [-i <if>] -s <mquina> <end_hw> [temp][nopub] <-Inc. Entrada\n"
+
+-#: ../arp.c:618
++#: ../arp.c:630
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <mquina> <if> [netmask <nm>] pub "
+-"<-''-\n"
++msgstr " arp [-v] [<HW>] [-i <if>] -Ds <mquina> <if> [netmask <nm>] pub <-''-\n"
+
+-#: ../arp.c:620
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+-msgstr ""
+-" -a mostra (todas as) mquinas no estilo alternativo "
+-"(BSD)\n"
++msgstr " -a mostra (todas as) mquinas no estilo alternativo (BSD)\n"
+
+-#: ../arp.c:621
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr " -s, --set define uma nova entrada ARP\n"
+
+-#: ../arp.c:622
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr " -d, --delete remove a entrada especificada\n"
+
+-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr " -v, --verbose listagem detalhada\n"
+
+-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
+-msgid " -n, --numeric dont resolve names\n"
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, fuzzy, c-format
++msgid " -n, --numeric don't resolve names\n"
+ msgstr " -n, --numeric no resolve nomes\n"
+
+-#: ../arp.c:625
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+ msgstr ""
+ " -i, --device especifica a interface de rede (ex: eth0)\n"
+
+-#: ../arp.c:626
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+ msgstr " -D, --use-device leia <hwaddr> de um dispositivo\n"
+
+-#: ../arp.c:627
++#: ../arp.c:639
++#, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr " -A, -p, --protocol especifica a famlia de protocolos\n"
+
+-#: ../arp.c:628
++#: ../arp.c:640
++#, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+-" -f, --file leia novas entradas de arquivo ou de "
+-"/etc/ethers\n"
++" -f, --file leia novas entradas de arquivo ou de /etc/"
++"ethers\n"
+ "\n"
+
+-#: ../arp.c:630 ../rarp.c:181
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+-msgstr ""
+-" <HW>=Use '-H <hw>' para especificar o tipo de endereo de hw. Default: %s\n"
++msgstr " <HW>=Use '-H <hw>' para especificar o tipo de endereo de hw. Default: %s\n"
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr " Lista dos tipos de hardware possveis (que suportam ARP):\n"
+
+-#: ../arp.c:664
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr "%s: tipo de hardware no suportado!\n"
+
+-#: ../arp.c:668
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr "%s: famlia de endereos no suportada!\n"
+
+-#: ../arp.c:703
++#: ../arp.c:716
++#, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr "arp: -N ainda no suportada.\n"
+
+-#: ../arp.c:713
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr "arp: %s: famlia de endereos desconhecida.\n"
+
+-#: ../arp.c:722
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr "arp: %s: tipo de hardware desconhecido.\n"
+
+-#: ../arp.c:741
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+ msgstr "arp: %s: kernel somente suporta net'.\n"
+
+-#: ../arp.c:746
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr "arp: %s: tipo de hardware sem suporte a ARP.\n"
+
+-#: ../hostname.c:69
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+ msgstr "Configurando nome do n como `%s'\n"
+
+-#: ../hostname.c:74
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr "%s: voc deve ser root para mudar o nome do n\n"
+
+-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr "%s: nome muito longo\n"
+
+-#: ../hostname.c:89
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+ msgstr "Configurando nome da mquina para `%s'\n"
+
+-#: ../hostname.c:94
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+ msgstr "%s: voc deve ser root para mudar o nome da mquina\n"
+
+-#: ../hostname.c:108
++#: ../hostname.c:109
+ #, c-format
+ msgid "Setting domainname to `%s'\n"
+ msgstr "Configurando nome do domnio para `%s'\n"
+
+-#: ../hostname.c:113
++#: ../hostname.c:114
+ #, c-format
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr "%s: voc deve ser root para mudar o nome do domnio\n"
+@@ -303,37 +315,38 @@
+ msgid "Result: h_addr_list=`%s'\n"
+ msgstr "Resultado: h_addr_list=`%s'\n"
+
+-#: ../hostname.c:209
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+ msgstr "%s: no foi possvel abrir `%s'\n"
+
+-#: ../hostname.c:223
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+-msgstr ""
+-"Uso: hostname [-v] {mquina|-F arquivo} configura nome da mquina (de "
+-"arquivo)\n"
++msgstr "Uso: hostname [-v] {mquina|-F arquivo} configura nome da mquina (de arquivo)\n"
+
+-#: ../hostname.c:224
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+ msgstr ""
+ " domainname [-v] {domnio_nis|-F file} configura nome do domnio NIS\n"
+ " (a partir de arquivo)\n"
+
+-#: ../hostname.c:226
++#: ../hostname.c:225
++#, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+-msgstr ""
+-"Uso: hostname [-v] {mquina|-F arquivo} configura o nome do n DECnet (de "
+-"arquivo)\n"
++msgstr "Uso: hostname [-v] {mquina|-F arquivo} configura o nome do n DECnet (de arquivo)\n"
+
+-#: ../hostname.c:228
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] mostra nome formatado\n"
+
+-#: ../hostname.c:229
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+@@ -341,7 +354,8 @@
+ " hostname [-v] mostra nome da mquina\n"
+ "\n"
+
+-#: ../hostname.c:230
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+@@ -349,7 +363,8 @@
+ " hostname -V|--version|-h|--help mostra informaes e termina\n"
+ "\n"
+
+-#: ../hostname.c:231
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+@@ -357,35 +372,43 @@
+ " dnsdomainname=mquina -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+
+-#: ../hostname.c:232
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr " -s, --short nome curto da mquina\n"
+
+-#: ../hostname.c:233
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr " -a, --alias aliases para a mquina\n"
+
+-#: ../hostname.c:234
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr " -i, --ip-address endereos da mquina\n"
+
+-#: ../hostname.c:235
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr " -f, --fqdn, --long nome longo da mquina (FQDN)\n"
+
+-#: ../hostname.c:236
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+ msgstr " -d, --domain nome do domnio DNS\n"
+
+-#: ../hostname.c:237
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+ msgstr " -y, --yp, --nis nome do domnio NIS/YP\n"
+
+-#: ../hostname.c:239
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+ msgstr " -n, --node nome do n DECnet\n"
+
+-#: ../hostname.c:241
++#: ../hostname.c:240
++#, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+@@ -393,7 +416,8 @@
+ " -F, --file leia o nome da mquina ou domnio NIS do arquivo\n"
+ "\n"
+
+-#: ../hostname.c:243
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -413,15 +437,16 @@
+ msgstr "%s: Voc no pode mudar o nome do domnio DNS com este comando\n"
+
+ #: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+ msgstr ""
+ "\n"
+-"A menos que esteja usando bind ou NIS para resoluo de nomes voc pode "
+-"mudar\n"
++"A menos que esteja usando bind ou NIS para resoluo de nomes voc pode mudar\n"
+
+ #: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+ msgstr "o nome do domnio DNS (que parte do FQDN) no arquivo /etc/hosts.\n"
+
+@@ -440,552 +465,453 @@
+ msgid "getnodename()=`%s'\n"
+ msgstr "getnodename()=`%s'\n"
+
+-#: ../ifconfig.c:159
+-#, c-format
+-msgid "%-9.9s Link encap:%s "
+-msgstr "%-9.9s Encapsulamento do Link: %s "
++#: ../ifconfig.c:107
++#, fuzzy, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opes\n"
+
+-#: ../ifconfig.c:164
+-#, c-format
+-msgid "HWaddr %s "
+-msgstr "Endereo de HW %s "
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, fuzzy, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr ""
++"%s: erro obtendo informaes da interface: %s\n"
++"\n"
+
+-#: ../ifconfig.c:167
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
+ #, c-format
+-msgid "Media:%s"
+-msgstr "Mdia:%s"
++msgid "No support for INET on this system.\n"
++msgstr "Este sistema no tem suporte a INET.\n"
+
+-#: ../ifconfig.c:169
+-msgid "(auto)"
+-msgstr "(auto)"
++#: ../ifconfig.c:193
++#, fuzzy, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr ""
++"%s: erro obtendo informaes da interface: %s\n"
++"\n"
+
+-#: ../ifconfig.c:176
+-#, c-format
+-msgid " %s addr:%s "
+-msgstr " %s end.: %s "
++#: ../ifconfig.c:202
++#, fuzzy, c-format
++msgid ""
++"Usage:\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
++msgstr ""
++"Uso:\n"
++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereo>]\n"
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:204
+ #, c-format
+-msgid " P-t-P:%s "
+-msgstr " P-a-P:%s "
++msgid " [add <address>[/<prefixlen>]]\n"
++msgstr " [add <endereo>[/<tam_prefixo>]]\n"
+
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:205
+ #, c-format
+-msgid " Bcast:%s "
+-msgstr " Bcast:%s "
++msgid " [del <address>[/<prefixlen>]]\n"
++msgstr " [del <endereo>[/<tam_prefixo>]]\n"
+
+-#: ../ifconfig.c:184
++#: ../ifconfig.c:206
+ #, c-format
+-msgid " Mask:%s\n"
+-msgstr " Masc:%s\n"
++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
++msgstr " [[-]broadcast [<endereo>]] [[-]pointopoint [<endereo>]]\n"
+
+-#: ../ifconfig.c:201
++#: ../ifconfig.c:207
+ #, c-format
+-msgid " inet6 addr: %s/%d"
+-msgstr " endereo inet6: %s/%d"
+-
+-#: ../ifconfig.c:203
+-msgid " Scope:"
+-msgstr " Escopo:"
+-
+-#: ../ifconfig.c:206
+-msgid "Global"
+-msgstr "Global"
++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
++msgstr " [netmask <endereo>] [dstaddr <endereo>] [tunnel <endereo>]\n"
+
+-#: ../ifconfig.c:209
+-msgid "Link"
+-msgstr "Link"
++#: ../ifconfig.c:210
++#, c-format
++msgid " [outfill <NN>] [keepalive <NN>]\n"
++msgstr " [outfill <NN>] [keepalive <NN>]\n"
+
+ #: ../ifconfig.c:212
+-msgid "Site"
+-msgstr "Site"
+-
+-#: ../ifconfig.c:215
+-msgid "Compat"
+-msgstr "Compat"
+-
+-#: ../ifconfig.c:218
+-msgid "Host"
+-msgstr "Mquina"
+-
+-#: ../ifconfig.c:221
+-msgid "Unknown"
+-msgstr "Desconhecido"
+-
+-#: ../ifconfig.c:236
+ #, c-format
+-msgid " IPX/Ethernet II addr:%s\n"
+-msgstr " Endereo IPX/Ethernet II:%s\n"
++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
++msgstr " [hw <HW> <endereo>] [metric <NN>] [mtu <NN>]\n"
+
+-#: ../ifconfig.c:239
++#: ../ifconfig.c:213
+ #, c-format
+-msgid " IPX/Ethernet SNAP addr:%s\n"
+-msgstr " Endereo IPX/Ethernet SNAP:%s\n"
++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+
+-#: ../ifconfig.c:242
++#: ../ifconfig.c:214
+ #, c-format
+-msgid " IPX/Ethernet 802.2 addr:%s\n"
+-msgstr " Endereo IPX/Ethernet 802.2:%s\n"
++msgid " [multicast] [[-]promisc]\n"
++msgstr " [multicast] [[-]promisc]\n"
+
+-#: ../ifconfig.c:245
++#: ../ifconfig.c:215
+ #, c-format
+-msgid " IPX/Ethernet 802.3 addr:%s\n"
+-msgstr " Endereo IPX/Ethernet 802.3:%s\n"
++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n"
+
+-#: ../ifconfig.c:255
++#: ../ifconfig.c:217
+ #, c-format
+-msgid " EtherTalk Phase 2 addr:%s\n"
+-msgstr " Endereo EtherTalk fase 2:%s\n"
++msgid " [txqueuelen <NN>]\n"
++msgstr " [txqueuelen <NN>]\n"
+
+-#: ../ifconfig.c:264
++#: ../ifconfig.c:220
+ #, c-format
+-msgid " econet addr:%s\n"
+-msgstr " Endereo econet:%s\n"
+-
+-#: ../ifconfig.c:270
+-msgid "[NO FLAGS] "
+-msgstr "[NENHUMA FLAG] "
+-
+-#: ../ifconfig.c:272
+-msgid "UP "
+-msgstr "UP "
+-
+-#: ../ifconfig.c:274
+-msgid "BROADCAST "
+-msgstr "BROADCAST"
+-
+-#: ../ifconfig.c:276
+-msgid "DEBUG "
+-msgstr "DEBUG "
+-
+-#: ../ifconfig.c:278
+-msgid "LOOPBACK "
+-msgstr "LOOPBACK"
+-
+-#: ../ifconfig.c:280
+-msgid "POINTOPOINT "
+-msgstr "POINTOPOINT "
+-
+-#: ../ifconfig.c:282
+-msgid "NOTRAILERS "
+-msgstr "NOTRAILERS "
+-
+-#: ../ifconfig.c:284
+-msgid "RUNNING "
+-msgstr "RUNNING "
++msgid " [[-]dynamic]\n"
++msgstr " [[-]dynamic]\n"
+
+-#: ../ifconfig.c:286
+-msgid "NOARP "
+-msgstr "NOARP "
++#: ../ifconfig.c:222
++#, c-format
++msgid ""
++" [up|down] ...\n"
++"\n"
++msgstr ""
++" [up|down] ...\n"
++"\n"
+
+-#: ../ifconfig.c:288
+-msgid "PROMISC "
+-msgstr "PROMISC "
++#: ../ifconfig.c:224
++#, c-format
++msgid " <HW>=Hardware Type.\n"
++msgstr " <HW>=Tipo de Hardware.\n"
+
+-#: ../ifconfig.c:290
+-msgid "ALLMULTI "
+-msgstr "ALLMULTI "
++#: ../ifconfig.c:225
++#, c-format
++msgid " List of possible hardware types:\n"
++msgstr " Lista dos tipos possveis de hardware:\n"
+
+-#: ../ifconfig.c:292
+-msgid "SLAVE "
+-msgstr "SLAVE "
++#. 1 = ARPable
++#: ../ifconfig.c:227
++#, c-format
++msgid " <AF>=Address family. Default: %s\n"
++msgstr " <AF>=Famlia de endereos. Default: %s\n"
+
+-#: ../ifconfig.c:294
+-msgid "MASTER "
+-msgstr "MASTER "
++#: ../ifconfig.c:228
++#, c-format
++msgid " List of possible address families:\n"
++msgstr " Lista de famlias de endereos possveis:\n"
+
+-#: ../ifconfig.c:296
+-msgid "MULTICAST "
+-msgstr "MULTICAST "
++#: ../ifconfig.c:303
++#, c-format
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr ""
+
+-#: ../ifconfig.c:299
+-msgid "DYNAMIC "
+-msgstr "DYNAMIC "
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr ""
+
+-#: ../ifconfig.c:302
++#: ../ifconfig.c:380
+ #, c-format
+-msgid " MTU:%d Metric:%d"
+-msgstr " MTU:%d Mtrica:%d"
++msgid "Unknown media type.\n"
++msgstr "Tipo desconhecido de mdia.\n"
+
+-#: ../ifconfig.c:306
++#: ../ifconfig.c:417
+ #, c-format
+-msgid " Outfill:%d Keepalive:%d"
+-msgstr " Outfill:%d Keepalive:%d"
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
+
+-#: ../ifconfig.c:320
++#: ../ifconfig.c:429
+ #, c-format
+-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
+-msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposies:%lu frame:%lu\n"
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:325
++#: ../ifconfig.c:441
+ #, c-format
+-msgid " compressed:%lu\n"
+-msgstr " compactados:%lu\n"
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:329
++#: ../ifconfig.c:465
+ #, c-format
+-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
+ msgstr ""
+-"Pacotes TX:%lu erros:%lu descartados:%lu sobreposies:%lu portadora:%lu\n"
+
+-#: ../ifconfig.c:333
++#: ../ifconfig.c:523
+ #, c-format
+-msgid " collisions:%lu "
+-msgstr " colises:%lu "
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:335
++#: ../ifconfig.c:652
+ #, c-format
+-msgid "compressed:%lu "
+-msgstr "compactados:%lu "
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:337
++#: ../ifconfig.c:684
+ #, c-format
+-msgid "txqueuelen:%d "
+-msgstr "txqueuelen:%d "
+-
+-#: ../ifconfig.c:345
+-#, c-format
+-msgid "Interrupt:%d "
+-msgstr "IRQ:%d "
+-
+-#. Only print devices using it for
+-#. I/O maps
+-#: ../ifconfig.c:348
+-#, c-format
+-msgid "Base address:0x%x "
+-msgstr "Endereo de E/S:0x%x "
++msgid "hw address type `%s' has no handler to set address. failed.\n"
++msgstr ""
+
+-#: ../ifconfig.c:350
++#: ../ifconfig.c:693
+ #, c-format
+-msgid "Memory:%lx-%lx "
+-msgstr "Memria:%lx-%lx "
++msgid "%s: invalid %s address.\n"
++msgstr "%s: endereo %s invlido.\n"
+
+-#: ../ifconfig.c:353
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
+ #, c-format
+-msgid "DMA chan:%x "
+-msgstr "Canal DMA:%x "
++msgid "No support for INET6 on this system.\n"
++msgstr "Este sistema no tem suporte a INET6.\n"
+
+-#: ../ifconfig.c:384 ../ifconfig.c:405
++#: ../ifconfig.c:780 ../ifconfig.c:871
+ #, c-format
+-msgid "%s: unknown interface: %s\n"
+-msgstr "%s: interface desconhecida: %s\n"
+-
+-#: ../ifconfig.c:421
+-msgid ""
+-"Usage:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
+-msgstr ""
+-"Uso:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <endereo>]\n"
+-
+-#: ../ifconfig.c:425
+-msgid " [add <address>[/<prefixlen>]]\n"
+-msgstr " [add <endereo>[/<tam_prefixo>]]\n"
+-
+-#: ../ifconfig.c:427
+-msgid " [del <address>[/<prefixlen>]]\n"
+-msgstr " [del <endereo>[/<tam_prefixo>]]\n"
+-
+-#: ../ifconfig.c:432
+-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+-msgstr " [[-]broadcast [<endereo>]] [[-]pointopoint [<endereo>]]\n"
+-
+-#: ../ifconfig.c:433
+-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+-msgstr " [netmask <endereo>] [dstaddr <endereo>] [tunnel <endereo>]\n"
+-
+-#: ../ifconfig.c:436
+-msgid " [outfill <NN>] [keepalive <NN>]\n"
+-msgstr " [outfill <NN>] [keepalive <NN>]\n"
+-
+-#: ../ifconfig.c:438
+-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+-msgstr " [hw <HW> <endereo>] [metric <NN>] [mtu <NN>]\n"
+-
+-#: ../ifconfig.c:439
+-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-
+-#: ../ifconfig.c:440
+-msgid " [multicast] [[-]promisc]\n"
+-msgstr " [multicast] [[-]promisc]\n"
+-
+-#: ../ifconfig.c:441
+-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tipo>]\n"
+-
+-#: ../ifconfig.c:443
+-msgid " [txqueuelen <NN>]\n"
+-msgstr " [txqueuelen <NN>]\n"
+-
+-#: ../ifconfig.c:446
+-msgid " [[-]dynamic]\n"
+-msgstr " [[-]dynamic]\n"
+-
+-#: ../ifconfig.c:448
+-msgid ""
+-" [up|down] ...\n"
+-"\n"
++msgid "Interface %s not initialized\n"
+ msgstr ""
+-" [up|down] ...\n"
+-"\n"
+-
+-#: ../ifconfig.c:450
+-msgid " <HW>=Hardware Type.\n"
+-msgstr " <HW>=Tipo de Hardware.\n"
+-
+-#: ../ifconfig.c:451
+-msgid " List of possible hardware types:\n"
+-msgstr " Lista dos tipos possveis de hardware:\n"
+-
+-#. 1 = ARPable
+-#: ../ifconfig.c:453
+-#, c-format
+-msgid " <AF>=Address family. Default: %s\n"
+-msgstr " <AF>=Famlia de endereos. Default: %s\n"
+-
+-#: ../ifconfig.c:454
+-msgid " List of possible address families:\n"
+-msgstr " Lista de famlias de endereos possveis:\n"
+-
+-#: ../ifconfig.c:593
+-msgid "Unknown media type.\n"
+-msgstr "Tipo desconhecido de mdia.\n"
+
+-#: ../ifconfig.c:881
+-#, c-format
+-msgid "%s: invalid %s address.\n"
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, fuzzy, c-format
++msgid "Bad address.\n"
+ msgstr "%s: endereo %s invlido.\n"
+
+-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
+-msgid "No support for INET6 on this system.\n"
+-msgstr "Este sistema no tem suporte a INET6.\n"
+-
+-#: ../ifconfig.c:983
++#: ../ifconfig.c:885
++#, c-format
+ msgid "Address deletion not supported on this system.\n"
+ msgstr "Remoo de endereo no suportada neste sistema.\n"
+
+-#: ../ifconfig.c:1066
+-msgid "No support for INET on this system.\n"
+-msgstr "Este sistema no tem suporte a INET.\n"
++#: ../ifconfig.c:957
++#, fuzzy, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "No sei como configurar endereos para a famlia %d.\n"
+
+-#: ../ifconfig.c:1076
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr "Este sistema no tem suporte a ECONET.\n"
+
+-#: ../ifconfig.c:1084
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr "No sei como configurar endereos para a famlia %d.\n"
+
+-#: ../netstat.c:383
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+-msgstr ""
+-"(No foi possvel ler informaes para \"-p\": geteuid()=%d mas voc deve "
+-"ser root.)\n"
++msgstr "(No foi possvel ler informaes para \"-p\": geteuid()=%d mas voc deve ser root.)\n"
+
+-#: ../netstat.c:387
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+ msgstr ""
+-"(Nem todos os processos puderam ser identificados, informaes sobre "
+-"processos\n"
++"(Nem todos os processos puderam ser identificados, informaes sobre processos\n"
+ " de outrem no sero mostrados, voc deve ser root para v-los todos.)\n"
+
+-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr "OUVINDO"
+
+-#: ../netstat.c:395
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr "CONN ENVIADO"
+
+-#: ../netstat.c:396 ../netstat.c:1168
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr "DISC ENVIADO"
+
+-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr "ESTABELECIDA"
+
+-#: ../netstat.c:419
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr "Ative sockets NET/ROM\n"
+
+-#: ../netstat.c:420
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
+-msgstr ""
+-"Usurio Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Usurio Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n"
+
+-#: ../netstat.c:430 ../netstat.c:1208
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr "Problemas lendo dados de %s\n"
+
+-#: ../netstat.c:465
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr "SYN_ENVIADO"
+
+-#: ../netstat.c:466
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr "SYN_RECEBIDO"
+
+-#: ../netstat.c:467
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr "ESPERA_FIN1"
+
+-#: ../netstat.c:468
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr "ESPERA_FIN2"
+
+-#: ../netstat.c:469
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr "TIME_WAIT"
+
+-#: ../netstat.c:470
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr "FECHAR"
+
+-#: ../netstat.c:471
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr "ESPERANDO_FECHAR"
+
+-#: ../netstat.c:472
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr "LTIMO_ACK"
+
+-#: ../netstat.c:473
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr "OUA"
+
+-#: ../netstat.c:474
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr "FECHANDO"
+
+-#: ../netstat.c:544
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr "ateno, recebi linha igmp6 invlida %d.\n"
+
+-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
+-#: ../netstat.c:935 ../netstat.c:940
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr "netstat: famlia de protocolos %d no suportada!\n"
+
+-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr "ateno, recebi linha igmp invlida %d.\n"
+
+-#: ../netstat.c:666
++#: ../netstat.c:677
++#, fuzzy, c-format
++msgid "Active X.25 sockets\n"
++msgstr "Ativar sockets AX.25\n"
++
++#. IMHO, Vr/Vs is not very usefull --SF
++#: ../netstat.c:679
++#, fuzzy, c-format
++msgid ""
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n"
++
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr "ateno, recebi linha tcp invlida.\n"
+
+-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr "desligado (0.00/%ld/%ld)"
+
+-#: ../netstat.c:708
++#: ../netstat.c:804
+ #, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr "em (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:713
++#: ../netstat.c:809
+ #, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr "keepalive (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:718
++#: ../netstat.c:814
+ #, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr "timewait (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr "desconh.-%d (%2.2f/%ld)"
+
+-#: ../netstat.c:799
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr "ateno, recebi linha udp invlida.\n"
+
+-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr "DESCONHECIDA"
+
+-#: ../netstat.c:860 ../netstat.c:980
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr "ligado %d (%2.2f/%ld)"
+
+-#: ../netstat.c:949
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr "ateno, recebi linha raw invlida.\n"
+
+-#: ../netstat.c:1028
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr "ateno, recebi linha unix invlida.\n"
+
+-#: ../netstat.c:1055
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr "STREAM"
+
+-#: ../netstat.c:1059
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr "DGRAM"
+
+-#: ../netstat.c:1063
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr "RAW"
+
+-#: ../netstat.c:1067
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr "RDM"
+
+-#: ../netstat.c:1071
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+ msgstr "SEQPACKET"
+
+-#: ../netstat.c:1080
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr "LIVRE"
+
+-#: ../netstat.c:1096
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr "CONECTANDO"
+
+-#: ../netstat.c:1100
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr "CONECTADO"
+
+-#: ../netstat.c:1104
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr "DESCONECTANDO"
+
+-#: ../netstat.c:1135
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+ msgstr "Domain sockets UNIX ativos "
+
+-#: ../netstat.c:1137 ../netstat.c:1666
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr "(servidores e estabelecidas)"
+
+-#: ../netstat.c:1140 ../netstat.c:1669
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr "(sem os servidores)"
+
+-#: ../netstat.c:1142 ../netstat.c:1671
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr "(sem os servidores)"
+
+-#: ../netstat.c:1145
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+@@ -993,114 +919,118 @@
+ "\n"
+ "Proto CntRef Flags Tipo Estado I-Node Rota"
+
+-#: ../netstat.c:1147
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr " Caminho\n"
+
+-#: ../netstat.c:1167
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr "SABM ENVIADO"
+
+-#: ../netstat.c:1170
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr "RECUPERAO"
+
+-#: ../netstat.c:1184
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr "Ativar sockets AX.25\n"
+
+-#: ../netstat.c:1185
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr "Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n"
+
+-#: ../netstat.c:1228
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr "problemas lendo dados de %s\n"
+
+-#: ../netstat.c:1279
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+ "State"
+ msgstr ""
+ "Sockets IPX ativos\n"
+-"Proto Recv-Q Send-Q Endereo Local Endereo Remoto "
+-"Estado"
++"Proto Recv-Q Send-Q Endereo Local Endereo Remoto Estado"
+
+-#: ../netstat.c:1281
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr " Usurio"
+
+-#: ../netstat.c:1315
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr "ESTAB"
+
+-#: ../netstat.c:1323
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr "DESC."
+
+-#: ../netstat.c:1367
+-msgid " - no statistics available -"
+-msgstr " - estatsticas no disponveis -"
+-
+-#: ../netstat.c:1370
+-msgid "[NO FLAGS]"
+-msgstr "[SEM FLAGS]"
+-
+-#: ../netstat.c:1400
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+ msgstr "Tabela de Interfaces do Kernel\n"
+
+-#: ../netstat.c:1401
++#: ../netstat.c:1465
++#, fuzzy, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+-msgstr ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV "
+-"Opes\n"
++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opes\n"
+
+-#: ../netstat.c:1404
++#: ../netstat.c:1469
+ msgid "missing interface information"
+ msgstr "falta informao da interface"
+
+-#: ../netstat.c:1425
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+ "uso: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"
+
+-#: ../netstat.c:1426
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr " netstat [-vnNcaeo] [<Socket>]\n"
+
+-#: ../netstat.c:1427
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+ msgstr " netstat [-vnNcaeo] [<Socket>]\n"
+
+-#: ../netstat.c:1429
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr " -r, --route mostra tabela de roteamento\n"
+
+-#: ../netstat.c:1430
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr " -i, --interfaces mostra tabela de interfaces\n"
+
+-#: ../netstat.c:1431
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr ""
+ " -o, --timers mostra temporizadores\n"
+ "\n"
+
+-#: ../netstat.c:1432
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+ msgstr " -i, --interfaces mostra tabela de interfaces\n"
+
+-#: ../netstat.c:1434
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+@@ -1108,19 +1038,38 @@
+ " -M, --masquerade mostra conexes mascaradas\n"
+ "\n"
+
+-#: ../netstat.c:1438 ../route.c:87
++#: ../netstat.c:1505
++#, fuzzy, c-format
++msgid " --numeric-hosts don't resolve host names\n"
++msgstr " -n, --numeric no resolve nomes\n"
++
++#: ../netstat.c:1506
++#, fuzzy, c-format
++msgid " --numeric-ports don't resolve port names\n"
++msgstr " -n, --numeric no resolve nomes\n"
++
++#: ../netstat.c:1507
++#, fuzzy, c-format
++msgid " --numeric-users don't resolve user names\n"
++msgstr " -n, --numeric no resolve nomes\n"
++
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr " -n, --numeric no resolve nomes\n"
+
+-#: ../netstat.c:1439 ../route.c:88
++#: ../netstat.c:1509 ../route.c:88
++#, c-format
+ msgid " -e, --extend display other/more information\n"
+ msgstr " -e, --extend mostra outras/mais informaes\n"
+
+-#: ../netstat.c:1440
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+ msgstr " -r, --route mostra tabela de roteamento\n"
+
+-#: ../netstat.c:1441
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+@@ -1128,30 +1077,33 @@
+ " -c, --continuous listagem contnua\n"
+ "\n"
+
+-#: ../netstat.c:1442
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+ msgstr " -L, --netlink mostra mensagens netlink do kernel\n"
+
+-#: ../netstat.c:1443
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+ msgstr " -a, --all, --listening mostra tudo\n"
+
+-#: ../netstat.c:1444
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr ""
+ " -o, --timers mostra temporizadores\n"
+ "\n"
+
+-#: ../netstat.c:1445 ../route.c:89
++#: ../netstat.c:1515 ../route.c:89
++#, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+-msgstr ""
+-" -F, --fib mostra a Base de Informaes de Repasse "
+-"(default)\n"
++msgstr " -F, --fib mostra a Base de Informaes de Repasse (default)\n"
+
+-#: ../netstat.c:1446 ../route.c:90
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+@@ -1159,136 +1111,145 @@
+ " -C, --cache mostra cache de roteamento no lugar da FIB\n"
+ "\n"
+
+-#: ../netstat.c:1448
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+
+-#: ../netstat.c:1449 ../route.c:92
+-#, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
++#: ../netstat.c:1519
++#, fuzzy, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n"
+
+-#: ../netstat.c:1450 ../route.c:93
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+-msgstr ""
+-" Lista das famlias de endereos possveis (que suportam roteamento):\n"
++msgstr " Lista das famlias de endereos possveis (que suportam roteamento):\n"
+
+-#: ../netstat.c:1663
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr "Conexes Internet Ativas "
+
+-#: ../netstat.c:1673
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+ "\n"
+-"Proto Recv-Q Send-Q Endereo Local Endereo Remoto Estado "
+-" "
++"Proto Recv-Q Send-Q Endereo Local Endereo Remoto Estado "
+
+-#: ../netstat.c:1675
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr " Usurio "
+
+-#: ../netstat.c:1678
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr " Temporizador"
+
+-#: ../netstat.c:1708
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+ msgstr "IPv4 Group Memberships\n"
+
+-#: ../netstat.c:1709
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr "Interface CntRef Grupo\n"
+
+-#: ../rarp.c:43
++#: ../rarp.c:44
+ msgid "This kernel does not support RARP.\n"
+ msgstr "Este kernel no tem suporte a RARP.\n"
+
+-#: ../rarp.c:82
++#: ../rarp.c:83
+ #, c-format
+ msgid "no RARP entry for %s.\n"
+ msgstr "Sem entrada RARP para %s.\n"
+
+-#: ../rarp.c:95
++#: ../rarp.c:96
+ #, c-format
+ msgid "%s: bad hardware address\n"
+ msgstr "%s: endereo de hardware invlido\n"
+
+-#: ../rarp.c:127
++#: ../rarp.c:128
+ #, c-format
+ msgid "rarp: cannot open file %s:%s.\n"
+ msgstr "rarp: no foi possvel abrir o arquivo %s:%s.\n"
+
+-#: ../rarp.c:139
++#: ../rarp.c:140
+ #, c-format
+ msgid "rarp: format error at %s:%u\n"
+ msgstr "rarp: erro de formato em %s:%u\n"
+
+-#: ../rarp.c:143 ../rarp.c:287
++#: ../rarp.c:144 ../rarp.c:289
+ #, c-format
+ msgid "rarp: %s: unknown host\n"
+ msgstr "rarp: %s: mquina desconhecida\n"
+
+-#: ../rarp.c:146
++#: ../rarp.c:147
+ #, c-format
+ msgid "rarp: cannot set entry from %s:%u\n"
+ msgstr "rarp: no possvel incluir uma entrada para %s:%u\n"
+
+-#: ../rarp.c:175
++#: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+ msgstr ""
+ "Uso: rarp -a lista entradas no cache\n"
+
+-#: ../rarp.c:176
++#: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+-msgstr ""
+-" rarp -d mquina remove entrada do cache\n"
++msgstr " rarp -d mquina remove entrada do cache\n"
+
+-#: ../rarp.c:177
++#: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+-msgstr ""
+-" rarp [-t tipo-hw] -s mquina endereo-hw adiciona entrada ao cache\n"
++msgstr " rarp [-t tipo-hw] -s mquina endereo-hw adiciona entrada ao cache\n"
+
+-#: ../rarp.c:178
++#: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+ msgstr ""
+ " rarp -f adiciona entradas a partir do\n"
+ " arquivo ethers.\n"
+
+-#: ../rarp.c:179
++#: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+-msgstr ""
+-" rarp -V mostra verso do programa\n"
++msgstr " rarp -V mostra verso do programa\n"
+
+-#: ../rarp.c:236
++#: ../rarp.c:238
+ #, c-format
+ msgid "%s: illegal option mix.\n"
+ msgstr "%s: mistura ilegal de opes.\n"
+
+-#: ../rarp.c:267
++#: ../rarp.c:269
+ #, c-format
+ msgid "rarp: %s: unknown hardware type.\n"
+ msgstr "rarp: %s: tipo desconhecido de hardware.\n"
+
+-#: ../route.c:79
++#: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+-"Uso: route [-nNvee] [-FC] [famlias_de_endereos] Lista as tabelas de "
+-"rotea-\n"
++"Uso: route [-nNvee] [-FC] [famlias_de_endereos] Lista as tabelas de rotea-\n"
+ " mento do kernel\n"
+
+-#: ../route.c:80
++#: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+@@ -1298,35 +1259,42 @@
+ " mento da famlia.\n"
+ "\n"
+
+-#: ../route.c:82
++#: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+ msgstr ""
+-" route {-h|--help} [famlia_de_endereos] Sintaxe para a AF "
+-"(Famlia\n"
+-" de endereos) "
+-"espeficicada.\n"
++" route {-h|--help} [famlia_de_endereos] Sintaxe para a AF (Famlia\n"
++" de endereos) espeficicada.\n"
+
+-#: ../route.c:83
++#: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+ "\n"
+ msgstr ""
+-" route {-V|--version} Mostra a verso do "
+-"comando\n"
++" route {-V|--version} Mostra a verso do comando\n"
+ " e sai.\n"
+
++#: ../route.c:92
++#, fuzzy, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>=Use '-A <af>' ou [--<af>' Default: %s\n"
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr "Uso: ifconfig [-a] [-i] [-v] interface\n"
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr " [[famlia] endereo]\n"
+
+ #: ../plipconfig.c:68
++#, c-format
+ msgid " plipconfig -V | --version\n"
+ msgstr " plipconfig -V | --version\n"
+
+@@ -1335,25 +1303,29 @@
+ msgid "%s\tnibble %lu trigger %lu\n"
+ msgstr "%s\tnibble %lu trigger %lu\n"
+
+-#: ../iptunnel.c:79
++#: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr "Uso: iptunnel { add | change | del | show } [ NOME ]\n"
+
+-#: ../iptunnel.c:80
++#: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+-msgstr ""
+-" [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n"
++msgstr " [ mode { ipip | gre | sit } ] [ remote END ] [ local END ]\n"
+
+-#: ../iptunnel.c:81
++#: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+
+-#: ../iptunnel.c:82
++#: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+ msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev DISP_FSICO ]\n"
+
+-#: ../iptunnel.c:83
++#: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+@@ -1361,451 +1333,734 @@
+ " iptunnel -V | --version\n"
+ "\n"
+
+-#: ../iptunnel.c:84
++#: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr "Onde: NAME := STRING\n"
+
+-#: ../iptunnel.c:85
++#: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr " END := { ENDEREO_IP | any }\n"
+
+-#: ../iptunnel.c:86
++#: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr " TOS := { NMERO | inherit }\n"
+
+-#: ../iptunnel.c:87
++#: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr " TTL := { 1..255 | inherit }\n"
+
+-#: ../iptunnel.c:88
++#: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr " KEY := { QUATRO_NMEROS_SEPARADOS_POR_PONTOS | NMERO }\n"
+
+-#: ../iptunnel.c:326
++#: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr "Chaves no so permitidas com ipip e sit.\n"
+
+-#: ../iptunnel.c:346
++#: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr "Um tnel de broadcast precisa de um endereo de origem.\n"
+
+-#: ../iptunnel.c:361
++#: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr "ttl != 0 e noptmudisc so incompatveis\n"
+
+-#: ../iptunnel.c:373
++#: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr "no foi possvel determinar o modo do tnel (ip, gre ou sit)\n"
+
+-#: ../iptunnel.c:411
++#: ../iptunnel.c:417
+ #, c-format
+ msgid "%s: %s/ip remote %s local %s "
+ msgstr "%s: %s/ip remoto %s local %s "
+
+-#: ../iptunnel.c:415
++#: ../iptunnel.c:421
+ msgid "unknown"
+ msgstr "Desconhecido"
+
+-#: ../iptunnel.c:447
++#: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr " Descarte pacotes fora de seqncia.\n"
+
+-#: ../iptunnel.c:449
++#: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr " necessrio checksum nos pacotes recebidos.\n"
+
+-#: ../iptunnel.c:451
++#: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr " Seqencie pacotes na sada.\n"
+
+-#: ../iptunnel.c:453
++#: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr " Calcule o checksum para pacotes de sada.\n"
+
+-#: ../iptunnel.c:481
++#: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+ msgstr "Formato errado de /proc/net/dev. Desculpe.\n"
+
+-#: ../iptunnel.c:494
++#: ../iptunnel.c:500
+ #, c-format
+ msgid "Failed to get type of [%s]\n"
+ msgstr "No foi possvel obter o tipo de [%s]\n"
+
+-#: ../iptunnel.c:510
++#: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr "RX: Pacotes Bytes Erros CsunErrs ForaSeq Mcasts\n"
+
+-#: ../iptunnel.c:513
++#: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr "TX: Pacotes Bytes Erros DeadLoop SemRota SemBufs\n"
+
+-#: ../statistics.c:45
++#: ../statistics.c:47
+ msgid "ICMP input histogram:"
+ msgstr "Histograma de entrada ICMP:"
+
+-#: ../statistics.c:46
++#: ../statistics.c:48
+ msgid "ICMP output histogram:"
+ msgstr "Histograma de sada ICMP"
+
+-#: ../statistics.c:63
++#: ../statistics.c:65
+ #, c-format
+ msgid "Forwarding is %s"
+ msgstr "Repassagem est %s"
+
+-#: ../statistics.c:64
+-#, c-format
+-msgid "Default TTL is %d"
++#: ../statistics.c:66
++#, fuzzy, c-format
++msgid "Default TTL is %u"
+ msgstr "Default TTL %d"
+
+-#: ../statistics.c:65
+-#, c-format
+-msgid "%d total packets received"
++#: ../statistics.c:67
++#, fuzzy, c-format
++msgid "%u total packets received"
+ msgstr "%d total de pacotes recebidos"
+
+-#: ../statistics.c:66
+-#, c-format
+-msgid "%d with invalid headers"
++#: ../statistics.c:68
++#, fuzzy, c-format
++msgid "%u with invalid headers"
+ msgstr "%d com cabealhos invlidos"
+
+-#: ../statistics.c:67
+-#, c-format
+-msgid "%d with invalid addresses"
++#: ../statistics.c:69
++#, fuzzy, c-format
++msgid "%u with invalid addresses"
+ msgstr "%d com endereos invlidos"
+
+-#: ../statistics.c:68
+-#, c-format
+-msgid "%d forwarded"
++#: ../statistics.c:70
++#, fuzzy, c-format
++msgid "%u forwarded"
+ msgstr "%d repassados"
+
+-#: ../statistics.c:69
+-#, c-format
+-msgid "%d with unknown protocol"
++#: ../statistics.c:71
++#, fuzzy, c-format
++msgid "%u with unknown protocol"
+ msgstr "%d com protocolo desconhecido"
+
+-#: ../statistics.c:70
+-#, c-format
+-msgid "%d incoming packets discarded"
++#: ../statistics.c:72
++#, fuzzy, c-format
++msgid "%u incoming packets discarded"
+ msgstr "%d pacotes entrantes descartados"
+
+-#: ../statistics.c:71
+-#, c-format
+-msgid "%d incoming packets delivered"
++#: ../statistics.c:73
++#, fuzzy, c-format
++msgid "%u incoming packets delivered"
+ msgstr "%d pacotes entrantes despachados"
+
+-#: ../statistics.c:72
+-#, c-format
+-msgid "%d requests sent out"
++#: ../statistics.c:74
++#, fuzzy, c-format
++msgid "%u requests sent out"
+ msgstr "%d requisies enviadas"
+
+ #. ?
+-#: ../statistics.c:73
+-#, c-format
+-msgid "%d outgoing packets dropped"
++#: ../statistics.c:75
++#, fuzzy, c-format
++msgid "%u outgoing packets dropped"
+ msgstr "%d pacotes saintes descartados"
+
+-#: ../statistics.c:74
+-#, c-format
+-msgid "%d dropped because of missing route"
++#: ../statistics.c:76
++#, fuzzy, c-format
++msgid "%u dropped because of missing route"
+ msgstr "%d descartados devido a falta de rota"
+
+-#: ../statistics.c:75
+-#, c-format
+-msgid "%d fragments dropped after timeout"
++#: ../statistics.c:77
++#, fuzzy, c-format
++msgid "%u fragments dropped after timeout"
+ msgstr "%d fragmentos descartados aps estouro de tempo"
+
+-#: ../statistics.c:76
+-#, c-format
+-msgid "%d reassemblies required"
++#: ../statistics.c:78
++#, fuzzy, c-format
++msgid "%u reassemblies required"
+ msgstr "%d remontagens requeridas"
+
+ #. ?
+-#: ../statistics.c:77
+-#, c-format
+-msgid "%d packets reassembled ok"
++#: ../statistics.c:79
++#, fuzzy, c-format
++msgid "%u packets reassembled ok"
+ msgstr "%d pacotes remontados sem problemas"
+
+-#: ../statistics.c:78
+-#, c-format
+-msgid "%d packet reassembles failed"
++#: ../statistics.c:80
++#, fuzzy, c-format
++msgid "%u packet reassembles failed"
+ msgstr "%d remontagens de pacotes falharam"
+
+-#: ../statistics.c:79
+-#, c-format
+-msgid "%d fragments received ok"
++#: ../statistics.c:81
++#, fuzzy, c-format
++msgid "%u fragments received ok"
+ msgstr "%d fragmentos recebidos sem problemas"
+
+-#: ../statistics.c:80
+-#, c-format
+-msgid "%d fragments failed"
++#: ../statistics.c:82
++#, fuzzy, c-format
++msgid "%u fragments failed"
+ msgstr "%d fragmentos falharam"
+
+-#: ../statistics.c:81
+-#, c-format
+-msgid "%d fragments created"
++#: ../statistics.c:83
++#, fuzzy, c-format
++msgid "%u fragments created"
+ msgstr "%d fragmentos criados"
+
+-#: ../statistics.c:86
+-#, c-format
+-msgid "%d ICMP messages received"
++#: ../statistics.c:88
++#, fuzzy, c-format
++msgid "%u ICMP messages received"
+ msgstr "%d mensagens ICMP recebidas"
+
+-#: ../statistics.c:87
+-#, c-format
+-msgid "%d input ICMP message failed."
++#: ../statistics.c:89
++#, fuzzy, c-format
++msgid "%u input ICMP message failed."
+ msgstr "%d mensagens ICMP entrantes falharam."
+
+-#: ../statistics.c:88 ../statistics.c:101
+-#, c-format
+-msgid "destination unreachable: %d"
++#: ../statistics.c:90 ../statistics.c:103
++#, fuzzy, c-format
++msgid "destination unreachable: %u"
+ msgstr "destino no alcanvel: %d"
+
+-#: ../statistics.c:89
+-#, c-format
+-msgid "timeout in transit: %d"
++#: ../statistics.c:91
++#, fuzzy, c-format
++msgid "timeout in transit: %u"
+ msgstr "estouro de tempo em trnsito: %d"
+
+-#: ../statistics.c:90 ../statistics.c:103
+-#, c-format
+-msgid "wrong parameters: %d"
++#: ../statistics.c:92 ../statistics.c:105
++#, fuzzy, c-format
++msgid "wrong parameters: %u"
+ msgstr "parmetros errados: %d"
+
+ #. ?
+-#: ../statistics.c:91
+-#, c-format
+-msgid "source quenchs: %d"
++#: ../statistics.c:93
++#, fuzzy, c-format
++msgid "source quenches: %u"
+ msgstr "source quenchs: %d"
+
+-#: ../statistics.c:92
+-#, c-format
+-msgid "redirects: %d"
++#: ../statistics.c:94
++#, fuzzy, c-format
++msgid "redirects: %u"
+ msgstr "redirees: %d"
+
+-#: ../statistics.c:93
+-#, c-format
+-msgid "echo requests: %d"
++#: ../statistics.c:95
++#, fuzzy, c-format
++msgid "echo requests: %u"
+ msgstr "requisies de eco: %d"
+
+-#: ../statistics.c:94 ../statistics.c:107
+-#, c-format
+-msgid "echo replies: %d"
++#: ../statistics.c:96 ../statistics.c:109
++#, fuzzy, c-format
++msgid "echo replies: %u"
+ msgstr "respostas de eco: %d"
+
+-#: ../statistics.c:95
+-#, c-format
+-msgid "timestamp request: %d"
++#: ../statistics.c:97
++#, fuzzy, c-format
++msgid "timestamp request: %u"
+ msgstr "requisies de timestamp: %d"
+
+-#: ../statistics.c:96
+-#, c-format
+-msgid "timestamp reply: %d"
++#: ../statistics.c:98
++#, fuzzy, c-format
++msgid "timestamp reply: %u"
+ msgstr "respostas a timestamps: %d"
+
+-#: ../statistics.c:97
+-#, c-format
+-msgid "address mask request: %d"
++#: ../statistics.c:99
++#, fuzzy, c-format
++msgid "address mask request: %u"
+ msgstr "requisies de mascara de endereo: %d"
+
+ #. ?
+-#: ../statistics.c:98
+-msgid "address mask replies"
+-msgstr "resposta a mascara de endereo"
++#: ../statistics.c:100 ../statistics.c:113
++#, fuzzy, c-format
++msgid "address mask replies: %u"
++msgstr "respostas a mscara de endereo: %d"
+
+ #. ?
+-#: ../statistics.c:99
+-#, c-format
+-msgid "%d ICMP messages sent"
++#: ../statistics.c:101
++#, fuzzy, c-format
++msgid "%u ICMP messages sent"
+ msgstr "%d mensagens ICMP enviadas"
+
+-#: ../statistics.c:100
+-#, c-format
+-msgid "%d ICMP messages failed"
++#: ../statistics.c:102
++#, fuzzy, c-format
++msgid "%u ICMP messages failed"
+ msgstr "%d mensagens ICMP falharam"
+
+-#: ../statistics.c:102
+-#, c-format
+-msgid "time exceeded: %d"
++#: ../statistics.c:104
++#, fuzzy, c-format
++msgid "time exceeded: %u"
+ msgstr "tempo excedido: %d"
+
+ #. ?
+-#: ../statistics.c:104
+-#, c-format
+-msgid "source quench: %d"
++#: ../statistics.c:106
++#, fuzzy, c-format
++msgid "source quench: %u"
+ msgstr "source quench: %d"
+
+-#: ../statistics.c:105
+-#, c-format
+-msgid "redirect: %d"
++#: ../statistics.c:107
++#, fuzzy, c-format
++msgid "redirect: %u"
+ msgstr "redirees: %d"
+
+-#: ../statistics.c:106
+-#, c-format
+-msgid "echo request: %d"
++#: ../statistics.c:108
++#, fuzzy, c-format
++msgid "echo request: %u"
+ msgstr "requisies de eco: %d"
+
+-#: ../statistics.c:108
+-#, c-format
+-msgid "timestamp requests: %d"
++#: ../statistics.c:110
++#, fuzzy, c-format
++msgid "timestamp requests: %u"
+ msgstr "requisies de timestamp: %d"
+
+-#: ../statistics.c:109
+-#, c-format
+-msgid "timestamp replies: %d"
++#: ../statistics.c:111
++#, fuzzy, c-format
++msgid "timestamp replies: %u"
+ msgstr "respostas a timestamp: %d"
+
+-#: ../statistics.c:110
+-#, c-format
+-msgid "address mask requests: %d"
++#: ../statistics.c:112
++#, fuzzy, c-format
++msgid "address mask requests: %u"
+ msgstr "requisies de mscara de endereo: %d"
+
+-#: ../statistics.c:111
+-#, c-format
+-msgid "address mask replies: %d"
+-msgstr "respostas a mscara de endereo: %d"
+-
+-#: ../statistics.c:116
++#: ../statistics.c:118
+ #, c-format
+ msgid "RTO algorithm is %s"
+ msgstr "Algortmo RTO %s"
+
+-#: ../statistics.c:120
+-#, c-format
+-msgid "%d active connections openings"
++#: ../statistics.c:122
++#, fuzzy, c-format
++msgid "%u active connections openings"
+ msgstr "%d tentativas de conexo falharam"
+
+-#: ../statistics.c:121
+-#, c-format
+-msgid "%d passive connection openings"
++#: ../statistics.c:123
++#, fuzzy, c-format
++msgid "%u passive connection openings"
+ msgstr "%d opens passivos"
+
+-#: ../statistics.c:122
+-#, c-format
+-msgid "%d failed connection attempts"
++#: ../statistics.c:124
++#, fuzzy, c-format
++msgid "%u failed connection attempts"
+ msgstr "%d tentativas de conexo falharam"
+
+-#: ../statistics.c:123
+-#, c-format
+-msgid "%d connection resets received"
++#: ../statistics.c:125
++#, fuzzy, c-format
++msgid "%u connection resets received"
+ msgstr "%d resets de conexo recebidas"
+
+-#: ../statistics.c:124
+-#, c-format
+-msgid "%d connections established"
++#: ../statistics.c:126
++#, fuzzy, c-format
++msgid "%u connections established"
+ msgstr "%d conexes estabelecidas"
+
+-#: ../statistics.c:125
+-#, c-format
+-msgid "%d segments received"
++#: ../statistics.c:127
++#, fuzzy, c-format
++msgid "%u segments received"
+ msgstr "%d segmentos recebidos"
+
+-#: ../statistics.c:126
+-#, c-format
+-msgid "%d segments send out"
++#: ../statistics.c:128
++#, fuzzy, c-format
++msgid "%u segments send out"
+ msgstr "%d segmentos enviados"
+
+-#: ../statistics.c:127
+-#, c-format
+-msgid "%d segments retransmited"
++#: ../statistics.c:129
++#, fuzzy, c-format
++msgid "%u segments retransmited"
+ msgstr "%d segmentos retransmitidos"
+
+-#: ../statistics.c:128
+-#, c-format
+-msgid "%d bad segments received."
++#: ../statistics.c:130
++#, fuzzy, c-format
++msgid "%u bad segments received."
+ msgstr "%d segmentos ruins recebidos."
+
+-#: ../statistics.c:129
+-#, c-format
+-msgid "%d resets sent"
++#: ../statistics.c:131
++#, fuzzy, c-format
++msgid "%u resets sent"
+ msgstr "%d resets enviados"
+
+-#: ../statistics.c:134
+-#, c-format
+-msgid "%d packets received"
++#: ../statistics.c:136
++#, fuzzy, c-format
++msgid "%u packets received"
+ msgstr "%d pacotes recebidos"
+
+-#: ../statistics.c:135
+-#, c-format
+-msgid "%d packets to unknown port received."
++#: ../statistics.c:137
++#, fuzzy, c-format
++msgid "%u packets to unknown port received."
+ msgstr "%d pacotes para portas desconhecidas recebidos."
+
+-#: ../statistics.c:136
+-#, c-format
+-msgid "%d packet receive errors"
++#: ../statistics.c:138
++#, fuzzy, c-format
++msgid "%u packet receive errors"
+ msgstr "%d erros de recepo de pacotes"
+
+-#: ../statistics.c:137
+-#, c-format
+-msgid "%d packets sent"
++#: ../statistics.c:139
++#, fuzzy, c-format
++msgid "%u packets sent"
+ msgstr "%d pacotes enviados"
+
+-#: ../statistics.c:142
++#: ../statistics.c:144
++#, fuzzy, c-format
++msgid "%u SYN cookies sent"
++msgstr "%d pacotes enviados"
++
++#: ../statistics.c:145
++#, fuzzy, c-format
++msgid "%u SYN cookies received"
++msgstr "%d pacotes recebidos"
++
++#: ../statistics.c:146
++#, fuzzy, c-format
++msgid "%u invalid SYN cookies received"
++msgstr "%d pacotes recebidos"
++
++#: ../statistics.c:148
++#, fuzzy, c-format
++msgid "%u resets received for embryonic SYN_RECV sockets"
++msgstr "%d resets recebidos para sockets embrinicos SYN_RECV"
++
++#: ../statistics.c:150
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue because of socket buffer overrun"
++msgstr "%d pacotes retirados da fila de recepo devido a sobreposio de buffers de sockets"
++
++#. obsolete: 2.2.0 doesn't do that anymore
++#: ../statistics.c:153
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue"
++msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)"
++
++#: ../statistics.c:154
++#, fuzzy, c-format
++msgid ""
++"%u packets dropped from out-of-order queue because of socket buffer overrun"
++msgstr "%d pacotes descartados da fila de fora de ordem devido a sobreposio de buffers de sockets"
++
++#: ../statistics.c:156
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because they were out-of-window"
++msgstr "%d pacotes ICMP descartados porque estavam fora da janela"
++
++#: ../statistics.c:158
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because socket was locked"
++msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado"
++
++#: ../statistics.c:160
++#, c-format
++msgid "%u TCP sockets finished time wait in fast timer"
++msgstr ""
++
++#: ../statistics.c:161
++#, c-format
++msgid "%u time wait sockets recycled by time stamp"
++msgstr ""
++
++#: ../statistics.c:162
++#, c-format
++msgid "%u TCP sockets finished time wait in slow timer"
++msgstr ""
++
++#: ../statistics.c:163
++#, c-format
++msgid "%u passive connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:165
++#, c-format
++msgid "%u active connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:167
+ #, c-format
+-msgid "%d SYN cookies sent"
++msgid "%u packets rejects in established connections because of timestamp"
++msgstr ""
++
++#: ../statistics.c:169
++#, fuzzy, c-format
++msgid "%u delayed acks sent"
+ msgstr "%d pacotes enviados"
+
+-#: ../statistics.c:143
++#: ../statistics.c:170
+ #, c-format
+-msgid "%d SYN cookies received"
+-msgstr "%d pacotes recebidos"
++msgid "%u delayed acks further delayed because of locked socket"
++msgstr ""
+
+-#: ../statistics.c:144
++#: ../statistics.c:172
+ #, c-format
+-msgid "%d invalid SYN cookies received"
+-msgstr "%d pacotes recebidos"
++msgid "Quick ack mode was activated %u times"
++msgstr ""
+
+-#: ../statistics.c:146
++#: ../statistics.c:173
+ #, c-format
+-msgid "%d resets received for embryonic SYN_RECV sockets"
+-msgstr "%d resets recebidos para sockets embrinicos SYN_RECV"
++msgid "%u times the listen queue of a socket overflowed"
++msgstr ""
+
+-#: ../statistics.c:148
++#: ../statistics.c:175
+ #, c-format
+-msgid "%d packets pruned from receive queue because of socket buffer overrun"
++msgid "%u SYNs to LISTEN sockets ignored"
+ msgstr ""
+-"%d pacotes retirados da fila de recepo devido a sobreposio de buffers de "
+-"sockets"
+
+-#. obsolete: 2.2.0 doesn't do that anymore
+-#: ../statistics.c:151
++#: ../statistics.c:176
++#, c-format
++msgid "%u packets directly queued to recvmsg prequeue."
++msgstr ""
++
++#: ../statistics.c:178
+ #, c-format
+-msgid "%d packets pruned from out-of-order queue"
++msgid "%u of bytes directly received from backlog"
++msgstr ""
++
++#: ../statistics.c:180
++#, c-format
++msgid "%u of bytes directly received from prequeue"
++msgstr ""
++
++#: ../statistics.c:182
++#, fuzzy, c-format
++msgid "%u packets dropped from prequeue"
+ msgstr "%d pacotes retirados da fila de fora de ordem (out-of-order)"
+
+-#: ../statistics.c:152
++#: ../statistics.c:183
++#, fuzzy, c-format
++msgid "%u packet headers predicted"
++msgstr "%d pacotes recebidos"
++
++#: ../statistics.c:184
+ #, c-format
+-msgid ""
+-"%d packets dropped from out-of-order queue because of socket buffer overrun"
++msgid "%u packets header predicted and directly queued to user"
+ msgstr ""
+-"%d pacotes descartados da fila de fora de ordem devido a sobreposio de "
+-"buffers de sockets"
+
+-#: ../statistics.c:154
++#: ../statistics.c:186
+ #, c-format
+-msgid "%d ICMP packets dropped because they were out-of-window"
+-msgstr "%d pacotes ICMP descartados porque estavam fora da janela"
++msgid "Ran %u times out of system memory during packet sending"
++msgstr ""
+
+-#: ../statistics.c:156
++#: ../statistics.c:188
++#, fuzzy, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr "%d pacotes para portas desconhecidas recebidos."
++
++#: ../statistics.c:189
+ #, c-format
+-msgid "%d ICMP packets dropped because socket was locked"
+-msgstr "%d pacotes ICMP descartadas porque o socket estava bloqueado"
++msgid "%u predicted acknowledgments"
++msgstr ""
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
++
++#: ../statistics.c:192
++#, fuzzy, c-format
++msgid "%u bad SACKs received"
++msgstr "%d segmentos ruins recebidos."
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr ""
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr ""
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
++
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:197
++#, c-format
++msgid "%u congestion windows fully recovered"
++msgstr ""
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr ""
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, fuzzy, c-format
++msgid "%u retransmits lost"
++msgstr "%d resets enviados"
++
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, fuzzy, c-format
++msgid "%u fast retransmits"
++msgstr "%d segmentos retransmitidos"
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr ""
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, fuzzy, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "%d segmentos retransmitidos"
++
++#: ../statistics.c:210
++#, fuzzy, c-format
++msgid "%u sack retransmits failed"
++msgstr "%d remontagens de pacotes falharam"
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, fuzzy, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr "%d pacotes retirados da fila de recepo devido a sobreposio de buffers de sockets"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, fuzzy, c-format
++msgid "%u DSACKs received"
++msgstr "%d pacotes recebidos"
++
++#: ../statistics.c:216
++#, fuzzy, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "%d total de pacotes recebidos"
++
++#: ../statistics.c:217
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "%d resets de conexo recebidas"
++
++#: ../statistics.c:218
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "%d resets de conexo recebidas"
++
++#: ../statistics.c:219
++#, fuzzy, c-format
++msgid "%u connections reset due to early user close"
++msgstr "%d resets de conexo recebidas"
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, fuzzy, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "%d resets de conexo recebidas"
+
+ #: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr "habilitado"
+
+-#: ../statistics.c:222
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr "desabilitado"
+
+-#: ../statistics.c:272
+-#, c-format
+-msgid "unknown title %s\n"
+-msgstr "ttulo %s desconhecido\n"
+-
+-#: ../statistics.c:298
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr "erro lendo /proc/net/snmp"
+
+-#: ../statistics.c:311
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr "no foi possvel abrir /proc/net/snmp"
+
+@@ -1819,89 +2074,95 @@
+ msgid "Cannot change line discipline to `%s'.\n"
+ msgstr "No foi possvel mudar a disciplina da linha para `%s'.\n"
+
+-#: ../lib/af.c:145 ../lib/hw.c:148
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr "No Especificado"
+
+-#: ../lib/af.c:147
++#: ../lib/af.c:155
+ msgid "UNIX Domain"
+ msgstr "UNIX Domain"
+
+-#: ../lib/af.c:150
++#: ../lib/af.c:158
+ msgid "DARPA Internet"
+ msgstr "DARPA Internet"
+
+-#: ../lib/af.c:153
++#: ../lib/af.c:161
+ msgid "IPv6"
+ msgstr "IPv6"
+
+-#: ../lib/af.c:156 ../lib/hw.c:169
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr "AX.25 AMPR"
+
+-#: ../lib/af.c:159 ../lib/hw.c:175
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr "NET/ROM AMPR"
+
+-#: ../lib/af.c:162
++#: ../lib/af.c:170
+ msgid "Novell IPX"
+ msgstr "Novell IPX"
+
+-#: ../lib/af.c:165
++#: ../lib/af.c:173
+ msgid "Appletalk DDP"
+ msgstr "Appletalk DDP"
+
+-#: ../lib/af.c:168 ../lib/hw.c:207
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr "Econet"
+
+-#: ../lib/af.c:171 ../lib/hw.c:172
++#: ../lib/af.c:179
++msgid "CCITT X.25"
++msgstr ""
++
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr "AMPR ROSE"
+
+-#: ../lib/af.c:174 ../lib/hw.c:160
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr "Ash"
+
+-#: ../lib/af.c:232
++#: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr "Por favor no especifique mais que uma famlia de endereos.\n"
+
+-#: ../lib/af.c:293
++#: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr "Excesso no nmero de famlias de endereos.\n"
+
+-#: ../lib/af.c:304
++#: ../lib/af.c:315
+ #, c-format
+ msgid "Unknown address family `%s'.\n"
+ msgstr "Famlia de endereos `%s' desconhecida.\n"
+
+-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
+-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
+-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
+-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
+-msgid "[NONE SET]"
+-msgstr "[Nenhum configurado]"
+-
+-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
+ #, c-format
+ msgid "in_arcnet(%s): invalid arcnet address!\n"
+ msgstr "in_arcnet(%s): endereo arcnet invlido!\n"
+
+-#: ../lib/arcnet.c:108
++#: ../lib/arcnet.c:97
+ #, c-format
+ msgid "in_arcnet(%s): trailing : ignored!\n"
+ msgstr "in_arcnet(%s): trailing : ignorado!\n"
+
+-#: ../lib/arcnet.c:120
++#: ../lib/arcnet.c:109
+ #, c-format
+ msgid "in_arcnet(%s): trailing junk!\n"
+ msgstr "in_arcnet(%s): lixo no trailing!\n"
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+ msgstr "Endereo Ash mal formado"
+
++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
++msgid "[NONE SET]"
++msgstr "[Nenhum configurado]"
++
+ #: ../lib/ax25.c:97 ../lib/netrom.c:100
+ msgid "Invalid callsign"
+ msgstr "Callsign invlido"
+@@ -1911,22 +2172,21 @@
+ msgstr "Callsign muito longo"
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr "O AX.25 no foi configurado neste sistema.\n"
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr "Tabela de roteamento AX.25 do kernel\n"
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr "Destino Iface Uso\n"
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr "Tabela de roteamento para `ddp' ainda no suportada.\n"
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1942,253 +2202,268 @@
+ msgid "in_ether(%s): trailing junk!\n"
+ msgstr "in_ether(%s): lixo no trailing!\n"
+
+-#: ../lib/fddi.c:95 ../lib/fddi.c:110
++#: ../lib/fddi.c:84 ../lib/fddi.c:99
+ #, c-format
+ msgid "in_fddi(%s): invalid fddi address!\n"
+ msgstr "in_fddi(%S): endereo fddi invlido!\n"
+
+-#: ../lib/fddi.c:122
++#: ../lib/fddi.c:111
+ #, c-format
+ msgid "in_fddi(%s): trailing : ignored!\n"
+ msgstr "in_fddi(%s): trailing : ignorado!\n"
+
+-#: ../lib/fddi.c:134
++#: ../lib/fddi.c:123
+ #, c-format
+ msgid "in_fddi(%s): trailing junk!\n"
+ msgstr "in_fddi(%s): lixo no trailing!\n"
+
+-#: ../lib/getroute.c:97 ../lib/setroute.c:76
++#: ../lib/getroute.c:101 ../lib/setroute.c:80
+ #, c-format
+ msgid "Address family `%s' not supported.\n"
+ msgstr "Famlia de endereos `%s' no suportada.\n"
+
+-#: ../lib/getroute.c:103 ../lib/setroute.c:80
++#: ../lib/getroute.c:107 ../lib/setroute.c:84
+ #, c-format
+ msgid "No routing for address family `%s'.\n"
+ msgstr "Nenhum roteamento para a famlia `%s'\n"
+
+-#: ../lib/hippi.c:96 ../lib/hippi.c:111
++#: ../lib/hippi.c:84 ../lib/hippi.c:99
+ #, c-format
+ msgid "in_hippi(%s): invalid hippi address!\n"
+ msgstr "in_fddi(%S): endereo fddi invlido!\n"
+
+-#: ../lib/hippi.c:123
++#: ../lib/hippi.c:111
+ #, c-format
+ msgid "in_hippi(%s): trailing : ignored!\n"
+ msgstr "in_fddi(%s): trailing : ignorado!\n"
+
+-#: ../lib/hippi.c:134
++#: ../lib/hippi.c:122
+ #, c-format
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr "in_fddi(%s): lixo no trailing!\n"
+
+-#: ../lib/hw.c:147
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr "Loopback Local"
+
+-#: ../lib/hw.c:150
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr "SLIP"
+
+-#: ../lib/hw.c:151
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr "SLIP VJ"
+
+-#: ../lib/hw.c:152
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr "SLIP 6 bits"
+
+-#: ../lib/hw.c:153
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr "SLIP VJ 6 bits"
+
+-#: ../lib/hw.c:154
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr "SLIP Adaptativo"
+
+-#: ../lib/hw.c:157
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr "Ethernet"
+
+-#: ../lib/hw.c:163
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr "FDDI - Fibra tica"
+
+-#: ../lib/hw.c:166
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr "HIPPI"
+
+-#: ../lib/hw.c:178
++#: ../lib/hw.c:191
++msgid "generic X.25"
++msgstr ""
++
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr "Tnel IPIP"
+
+-#: ../lib/hw.c:181
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+ msgstr "Protocolo Ponto-a-Ponto"
+
+-#: ../lib/hw.c:184
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr "(Cisco)-HDLC"
+
+-#: ../lib/hw.c:185
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:188
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr "ARCnet"
+
+-#: ../lib/hw.c:191
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr "Frame Relay DLCI"
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr "FRAD - Dispositivo de Acesso a Frame Relay"
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr "IPv6 sobre IPv4"
+
+-#: ../lib/hw.c:198
++#: ../lib/hw.c:214
+ msgid "IrLAP"
+ msgstr "IrLAP"
+
+-#: ../lib/hw.c:201
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr "16/4 Mbps Token Ring"
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:219
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr "16/4 Mbps Token Ring (Novo)"
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+ msgstr "rresolve: famlia de endereos %d no suportada!\n"
+
+-#: ../lib/inet6_gr.c:79
++#: ../lib/inet6.c:131
++#, fuzzy
++msgid "[UNKNOWN]"
++msgstr "DESCONHECIDA"
++
++#: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr "NET/ROM no configurado neste sistema.\n"
+
+-#: ../lib/inet6_gr.c:82
++#: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+ msgstr "Tabela de Roteamento IPv6 do Kernel\n"
+
+-#: ../lib/inet6_gr.c:84
++#: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
+-msgstr ""
+-"Destino Prximo \"Hop\" "
+-" Opes Mtrica Ref Uso Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
++msgstr "Destino Prximo \"Hop\" Opes Mtrica Ref Uso Iface\n"
+
+-#: ../lib/inet6_gr.c:158
++#: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr "Cache de Vizinhos IPv6 do Kernel\n"
+
+-#: ../lib/inet6_gr.c:161
++#: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+-msgstr ""
+-"Vizinho Endereo HW Iface Opes "
+-"Estado Ref\n"
++msgstr "Vizinho Endereo HW Iface Opes Estado Ref\n"
+
+-#: ../lib/inet6_gr.c:165
++#: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+ msgstr ""
+-"Vizinho Endereo HW Iface Opes "
+-"Estado Ref\n"
++"Vizinho Endereo HW Iface Opes Estado Ref\n"
+ " Parado(seg) Remover(seg)\n"
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr "Uso: inet6_route [-vF] del Destino\n"
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr " inet6_route [-vF] add Destino [gw Gw] [metric M] [[dev] If]\n"
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr " inet6_route [-FC] flush NO suportado\n"
+
+-#: ../lib/inet6_sr.c:182
++#: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+ msgstr "Limpeza da tabela de roteamento `inet6' no suportada\n"
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr "NET/ROM no configurado neste sistema.\n"
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+ msgstr "Tabela de Roteamento IP do Kernel\n"
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+-msgstr ""
+-"Destino Roteador MscaraGen. Opes Mtrica Ref Uso "
+-"Iface\n"
++msgstr "Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface\n"
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+-msgstr ""
+-"Destino Roteador MscaraGen. Opes MSS Janela irtt "
+-"Iface\n"
++msgstr "Destino Roteador MscaraGen. Opes MSS Janela irtt Iface\n"
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+-msgstr ""
+-"Destino Roteador MscaraGen Opes Mtrica Ref Uso "
+-"Iface MSS Janela irtt\n"
++msgstr "Destino Roteador MscaraGen Opes Mtrica Ref Uso Iface MSS Janela irtt\n"
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+ msgstr "Tabela de Roteamento IP do Kernel\n"
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+-msgstr ""
+-"Destino Roteador MscaraGen. Opes Mtrica Ref Uso "
+-"Iface\n"
++msgstr "Destino Roteador MscaraGen. Opes Mtrica Ref Uso Iface\n"
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+-msgstr ""
+-"Destino Roteador MscaraGen. Opes MSS Janela irtt "
+-"Iface\n"
++msgstr "Destino Roteador MscaraGen. Opes MSS Janela irtt Iface\n"
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+-msgstr ""
+-"Destino Roteador Origem Opes Mtrica Ref Uso "
+-"Iface MSS Janela irtt HH Arp\n"
++msgstr "Destino Roteador Origem Opes Mtrica Ref Uso Iface MSS Janela irtt HH Arp\n"
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+-msgstr ""
+-"Destino Roteador Origem Opes Mtrica Ref Uso "
+-"Iface MSS Janela irtt HH Arp\n"
++msgstr "Destino Roteador Origem Opes Mtrica Ref Uso Iface MSS Janela irtt HH Arp\n"
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+@@ -2196,31 +2471,36 @@
+ "Uso: inet_route [-vF] del {-host|-net} Destino[/prefixo] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Destino[/prefixo] [gw Gw] [metric "
+ "M]\n"
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Destino[/prefixo] [metric M] "
+ "reject\n"
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr " inet_route [-FC] flush NO suportado\n"
+
+@@ -2230,14 +2510,17 @@
+ msgstr "route: %s: no possvel usar uma REDE como roteador!\n"
+
+ #: ../lib/inet_sr.c:174
++#, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr "route: MSS invlido.\n"
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr "route: janela invlida.\n"
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr "route: rtt inicial invlido.\n"
+
+@@ -2252,75 +2535,92 @@
+ msgstr "route: netmask %s invlida\n"
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr "route: a netmask no casa com o endereo de rede\n"
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+ msgstr "No suportado limpar a tabela de roteamento `inet'\n"
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+ msgstr "No suportado modificar o cache de roteamento `inet'\n"
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr "O AX.25 no foi configurado neste sistema.\n"
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+ msgstr "Tabela de roteamento IPX do kernel\n"
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+ msgstr "Destino Rede Roteadora N Roteador\n"
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+ msgstr "NET/ROM: isto precisa ser escrito\n"
+
+-#: ../lib/masq_info.c:197
++#: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr "Entradas de IP mascarado\n"
+
+-#: ../lib/masq_info.c:200
++#: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr "prot expira origem destino portas\n"
+
+-#: ../lib/masq_info.c:203
++#: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+-"prot expira initseq delta prevd origem destino "
+-" portas\n"
++"prot expira initseq delta prevd origem "
++"destino portas\n"
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr "NET/ROM no configurado neste sistema.\n"
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+ msgstr "Tabela de roteamento NET/ROM do kernel\n"
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr "Destino Mnemnico Qualidade Vizinho Iface\n"
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+ msgstr "uso de netrom\n"
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+ msgstr "NET/ROM: isto precisa ser escrito\n"
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr "Voc no pode iniciar o PPP com este programa.\n"
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+ msgstr "Desculpe, use o pppd!\n"
+
+@@ -2329,51 +2629,314 @@
+ msgstr "Endereo do n deve ter dez dgitos"
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr "ROSE no configurada neste sistema.\n"
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+ msgstr "Tabela de roteamento ROSE do kernel\n"
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr "in_tr(%s): endereo token ring invlido!\n"
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr "in_tr(%s): trailing : ignorado!\n"
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr "in_tr(%s): lixo no trailing!\n"
+
+-#: ../lib/interface.c:124
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+ msgstr "ateno: nenhum socket inet disponvel: %s\n"
+
+-#: ../lib/interface.c:270
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr "Ateno: no foi possvel abrir %s (%s). Sada limitada.\n"
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:504
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr "%s: dispositivo no encontrado"
+
+-#: ../lib/interface.c:508
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
++msgstr "%s: erro obtendo informaes da interface: %s\n"
++
++#: ../lib/interface.c:608
++msgid " - no statistics available -"
++msgstr " - estatsticas no disponveis -"
++
++#: ../lib/interface.c:612
++#, c-format
++msgid "[NO FLAGS]"
++msgstr "[SEM FLAGS]"
++
++#: ../lib/interface.c:688
++#, c-format
++msgid "%-9.9s Link encap:%s "
++msgstr "%-9.9s Encapsulamento do Link: %s "
++
++#: ../lib/interface.c:693
++#, c-format
++msgid "HWaddr %s "
++msgstr "Endereo de HW %s "
++
++#: ../lib/interface.c:696
++#, c-format
++msgid "Media:%s"
++msgstr "Mdia:%s"
++
++#: ../lib/interface.c:698
++#, c-format
++msgid "(auto)"
++msgstr "(auto)"
++
++#: ../lib/interface.c:705
++#, c-format
++msgid " %s addr:%s "
++msgstr " %s end.: %s "
++
++#: ../lib/interface.c:708
++#, c-format
++msgid " P-t-P:%s "
++msgstr " P-a-P:%s "
++
++#: ../lib/interface.c:711
++#, c-format
++msgid " Bcast:%s "
++msgstr " Bcast:%s "
++
++#: ../lib/interface.c:713
++#, c-format
++msgid " Mask:%s\n"
++msgstr " Masc:%s\n"
++
++#: ../lib/interface.c:730
++#, c-format
++msgid " inet6 addr: %s/%d"
++msgstr " endereo inet6: %s/%d"
++
++#: ../lib/interface.c:732
++#, c-format
++msgid " Scope:"
++msgstr " Escopo:"
++
++#: ../lib/interface.c:735
++#, c-format
++msgid "Global"
++msgstr "Global"
++
++#: ../lib/interface.c:738
++#, c-format
++msgid "Link"
++msgstr "Link"
++
++#: ../lib/interface.c:741
++#, c-format
++msgid "Site"
++msgstr "Site"
++
++#: ../lib/interface.c:744
++#, c-format
++msgid "Compat"
++msgstr "Compat"
++
++#: ../lib/interface.c:747
++#, c-format
++msgid "Host"
++msgstr "Mquina"
++
++#: ../lib/interface.c:750
++#, c-format
++msgid "Unknown"
++msgstr "Desconhecido"
++
++#: ../lib/interface.c:765
++#, c-format
++msgid " IPX/Ethernet II addr:%s\n"
++msgstr " Endereo IPX/Ethernet II:%s\n"
++
++#: ../lib/interface.c:768
++#, c-format
++msgid " IPX/Ethernet SNAP addr:%s\n"
++msgstr " Endereo IPX/Ethernet SNAP:%s\n"
++
++#: ../lib/interface.c:771
++#, c-format
++msgid " IPX/Ethernet 802.2 addr:%s\n"
++msgstr " Endereo IPX/Ethernet 802.2:%s\n"
++
++#: ../lib/interface.c:774
++#, c-format
++msgid " IPX/Ethernet 802.3 addr:%s\n"
++msgstr " Endereo IPX/Ethernet 802.3:%s\n"
++
++#: ../lib/interface.c:784
++#, c-format
++msgid " EtherTalk Phase 2 addr:%s\n"
++msgstr " Endereo EtherTalk fase 2:%s\n"
++
++#: ../lib/interface.c:793
++#, c-format
++msgid " econet addr:%s\n"
++msgstr " Endereo econet:%s\n"
++
++#: ../lib/interface.c:800
++#, c-format
++msgid "[NO FLAGS] "
++msgstr "[NENHUMA FLAG] "
++
++#: ../lib/interface.c:802
++#, c-format
++msgid "UP "
++msgstr "UP "
++
++#: ../lib/interface.c:804
++#, c-format
++msgid "BROADCAST "
++msgstr "BROADCAST"
++
++#: ../lib/interface.c:806
++#, c-format
++msgid "DEBUG "
++msgstr "DEBUG "
++
++#: ../lib/interface.c:808
++#, c-format
++msgid "LOOPBACK "
++msgstr "LOOPBACK"
++
++#: ../lib/interface.c:810
++#, c-format
++msgid "POINTOPOINT "
++msgstr "POINTOPOINT "
++
++#: ../lib/interface.c:812
++#, c-format
++msgid "NOTRAILERS "
++msgstr "NOTRAILERS "
++
++#: ../lib/interface.c:814
++#, c-format
++msgid "RUNNING "
++msgstr "RUNNING "
++
++#: ../lib/interface.c:816
++#, c-format
++msgid "NOARP "
++msgstr "NOARP "
++
++#: ../lib/interface.c:818
++#, c-format
++msgid "PROMISC "
++msgstr "PROMISC "
++
++#: ../lib/interface.c:820
++#, c-format
++msgid "ALLMULTI "
++msgstr "ALLMULTI "
++
++#: ../lib/interface.c:822
++#, c-format
++msgid "SLAVE "
++msgstr "SLAVE "
++
++#: ../lib/interface.c:824
++#, c-format
++msgid "MASTER "
++msgstr "MASTER "
++
++#: ../lib/interface.c:826
++#, c-format
++msgid "MULTICAST "
++msgstr "MULTICAST "
++
++#: ../lib/interface.c:829
++#, c-format
++msgid "DYNAMIC "
++msgstr "DYNAMIC "
++
++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short
++#: ../lib/interface.c:832
++#, c-format
++msgid " MTU:%d Metric:%d"
++msgstr " MTU:%d Mtrica:%d"
++
++#: ../lib/interface.c:836
++#, c-format
++msgid " Outfill:%d Keepalive:%d"
++msgstr " Outfill:%d Keepalive:%d"
++
++#: ../lib/interface.c:850
++#, fuzzy, c-format
++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgstr "Pacotes RX:%lu erros:%lu descartados:%lu sobreposies:%lu frame:%lu\n"
++
++#: ../lib/interface.c:855
++#, c-format
++msgid " compressed:%lu\n"
++msgstr " compactados:%lu\n"
++
++#: ../lib/interface.c:895
++#, fuzzy, c-format
++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgstr "Pacotes TX:%lu erros:%lu descartados:%lu sobreposies:%lu portadora:%lu\n"
++
++#: ../lib/interface.c:899
++#, c-format
++msgid " collisions:%lu "
++msgstr " colises:%lu "
++
++#: ../lib/interface.c:901
++#, c-format
++msgid "compressed:%lu "
++msgstr "compactados:%lu "
++
++#: ../lib/interface.c:903
++#, c-format
++msgid "txqueuelen:%d "
++msgstr "txqueuelen:%d "
++
++#: ../lib/interface.c:905
++#, c-format
++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
+ msgstr ""
+-"%s: erro obtendo informaes da interface: %s\n"
+-"\n"
+
+-#: ../lib/sockets.c:59
++#: ../lib/interface.c:916
++#, c-format
++msgid "Interrupt:%d "
++msgstr "IRQ:%d "
++
++#. Only print devices using it for
++#. I/O maps
++#: ../lib/interface.c:919
++#, c-format
++msgid "Base address:0x%x "
++msgstr "Endereo de E/S:0x%x "
++
++#: ../lib/interface.c:921
++#, c-format
++msgid "Memory:%lx-%lx "
++msgstr "Memria:%lx-%lx "
++
++#: ../lib/interface.c:924
++#, c-format
++msgid "DMA chan:%x "
++msgstr "Canal DMA:%x "
++
++#: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr "Nenhuma famlia de endereos que possa ser usada foi encontrada.\n"
+
+@@ -2397,29 +2960,32 @@
+ msgid "ip: argument is wrong: %s\n"
+ msgstr "ip: argumento errado: %s\n"
+
+-#: ../ipmaddr.c:56
++#: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr "Uso: ipmaddr [ add | del ] ENDMULTI dev STRING\n"
+
+-#: ../ipmaddr.c:57
++#: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+
+-#: ../ipmaddr.c:58
++#: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr " ipmaddr -V | -version\n"
+
+-#: ../ipmaddr.c:258
++#: ../ipmaddr.c:263
+ #, c-format
+ msgid "family %d "
+ msgstr "famlia %d "
+
+-#: ../ipmaddr.c:267
++#: ../ipmaddr.c:272
+ #, c-format
+ msgid " users %d"
+ msgstr " usurios %d"
+
+-#: ../ipmaddr.c:353
++#: ../ipmaddr.c:358
+ msgid "Cannot create socket"
+ msgstr "No foi possvel criar o socket"
+
+@@ -2434,6 +3000,7 @@
+ msgstr "slattach: tty_lock: (%s): %s\n"
+
+ #: ../slattach.c:192
++#, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr "slattach: no foi possvel escrever o arquivo PID\n"
+
+@@ -2452,39 +3019,69 @@
+ msgid "slattach: tty_hangup(RAISE): %s\n"
+ msgstr "slattach: tty_hangup(RAISE): %s\n"
+
+-#: ../slattach.c:486
++#: ../slattach.c:468
++#, fuzzy, c-format
++msgid "slattach: tty name too long\n"
++msgstr "%s: nome muito longo\n"
++
++#: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr "slattach: tty_open: no foi possvel obter o estado corrente!\n"
+
+-#: ../slattach.c:493
++#: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+-msgstr ""
+-"slattach: tty_open: no foi possvel obter a disciplina de linha corrente!\n"
++msgstr "slattach: tty_open: no foi possvel obter a disciplina de linha corrente!\n"
+
+-#: ../slattach.c:501
++#: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr "slattach: tty_open: no foi possvel configurar o modo RAW!\n"
+
+-#: ../slattach.c:508
++#: ../slattach.c:520
+ #, c-format
+ msgid "slattach: tty_open: cannot set %s bps!\n"
+ msgstr "slattach: tty_open: no foi possvel configurar %s bps!\n"
+
+-#: ../slattach.c:518
++#: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr "slattach: tty_open: no foi possvel configurar modo 8N1!\n"
+
+-#: ../slattach.c:686
++#: ../slattach.c:672
++#, c-format
++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++msgstr ""
++
++#: ../slattach.c:704
+ #, c-format
+ msgid "%s started"
+ msgstr "%s inicializado"
+
+-#: ../slattach.c:687
++#: ../slattach.c:705
+ #, c-format
+ msgid " on %s"
+ msgstr " em %s"
+
+-#: ../slattach.c:688
++#: ../slattach.c:706
+ #, c-format
+ msgid " interface %s\n"
+ msgstr "%s: interface desconhecida.\n"
++
++#~ msgid ""
++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
++#~ "<-''-\n"
++#~ msgstr " arp [-v] [<HW>] [-i <if>] -s <mquina> <end_hw> [netmask <nm>] pub <-''-\n"
++
++#~ msgid "%s: unknown interface: %s\n"
++#~ msgstr "%s: interface desconhecida: %s\n"
++
++#~ msgid "address mask replies"
++#~ msgstr "resposta a mascara de endereo"
++
++#~ msgid "unknown title %s\n"
++#~ msgstr "ttulo %s desconhecido\n"
++
++#~ msgid "Routing table for `ddp' not yet supported.\n"
++#~ msgstr "Tabela de roteamento para `ddp' ainda no suportada.\n"
+--- net-tools-1.60.orig/po/Makefile
++++ net-tools-1.60/po/Makefile
+@@ -3,13 +3,13 @@
+ INSTALL_DATA= ${INSTALL} -m 644
+ INSTALLNLSDIR=${BASEDIR}/usr/share/locale
+
+-TUPDATE = tupdate
++TUPDATE = msgmerge
+
+ NLSPACKAGE = net-tools
+
+ -include ../config.make
+ ifeq ($(I18N),1)
+-CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo
++CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo ja.mo
+ else
+ CATALOGS =
+ endif
+@@ -49,7 +49,7 @@
+ lang=`echo $$cat | sed 's/.mo//'`; \
+ mv $$lang.po $$lang.old.po; \
+ echo "$$lang:"; \
+- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \
++ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \
+ rm -f $$lang.old.po; \
+ else \
+ echo "tupdate for $$cat failed!"; \
+--- net-tools-1.60.orig/po/et_EE.po
++++ net-tools-1.60/po/et_EE.po
+@@ -6,7 +6,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: net-tools 1.58\n"
+-"POT-Creation-Date: 2001-02-15 21:28+0200\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
+ "PO-Revision-Date: 2001-02-15 18:00+0300\n"
+ "Last-Translator: Meelis Roos <mroos@linux.ee>\n"
+ "Language-Team: Estonian <linux-ee@eenet.ee>\n"
+@@ -14,53 +15,58 @@
+ "Content-Type: text/plain; charset=iso-8859-15\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:110 ../arp.c:269
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+ msgstr "arp: puudub hosti nimi\n"
+
+-#: ../arp.c:207 ../arp.c:221
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+ msgstr "%s jaoks pole ARP kirjet\n"
+
+-#: ../arp.c:239
++#: ../arp.c:248
+ #, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n"
+
+-#: ../arp.c:243
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr "arp: vale protokolli tp\n"
+
+-#: ../arp.c:252
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+ msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n"
+
+-#: ../arp.c:282
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+ msgstr "arp: puudub riistvaraline aadress\n"
+
+-#: ../arp.c:290
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr "arp: vigane riistvaraline aadress\n"
+
+-#: ../arp.c:387
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr "arp: ei saa avada faili %s\n"
+
+-#: ../arp.c:403
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr "arp: formaadiviga real %u failis %s\n"
+
+-#: ../arp.c:416
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n"
+
+-#: ../arp.c:437
++#: ../arp.c:448
++#, c-format
+ msgid ""
+ "Address HWtype HWaddress Flags Mask "
+ "Iface\n"
+@@ -68,45 +74,52 @@
+ "Aadress HWtp HWaadress Lipud Mask "
+ "Liides\n"
+
+-#: ../arp.c:467
++#: ../arp.c:476
++#, fuzzy
++msgid "<from_interface>"
++msgstr " liides %s\n"
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+ msgstr "(mittetielik)"
+
+-#: ../arp.c:484
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr "%s (%s) aadressil "
+
+-#: ../arp.c:490
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr "<mittetielik>"
+
+-#: ../arp.c:496
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr "vrgumask %s "
+
+-#: ../arp.c:513
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr "liides %s\n"
+
+-#: ../arp.c:592
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n"
+
+-#: ../arp.c:596
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr "%s (%s) -- pole kirjet\n"
+
+-#: ../arp.c:598
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+ msgstr "arp: ei leidnud %d kirje hulgast sobivat\n"
+
+-#: ../arp.c:613
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+@@ -116,47 +129,45 @@
+ "ARP cache vaatamine:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hosti nimi>]\n"
+
+-#: ../arp.c:614
++#: ../arp.c:627
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+ msgstr ""
+ "ARP kirje kustutamine:\n"
+ " arp [-v] [-i <if>] -d <hosti nimi> [pub] [nopub]\n"
+
+-#: ../arp.c:615
++#: ../arp.c:628
++#, fuzzy, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+ msgstr ""
+ "ARP kirjete lisamine failist:\n"
+ " arp [-vnD] [<HW>] [-i <if>] -f [<failinimi>]\n"
+
+-#: ../arp.c:616
++#: ../arp.c:629
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+ msgstr ""
+ "ARP kirje lisamine:\n"
+ " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [temp] [nopub]\n"
+
+-#: ../arp.c:617
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] pub\n"
+-
+-#: ../arp.c:618
++#: ../arp.c:630
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+ msgstr ""
+ " arp [-v] [<HW>] [-i <if>] -Ds <hosti nimi> <if> [netmask <nm>] pub\n"
+ "\n"
+
+-#: ../arp.c:620
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+@@ -164,122 +175,132 @@
+ " -a nita kiki hoste alternatiivsel (BSD) "
+ "kujul\n"
+
+-#: ../arp.c:621
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr " -s, --set uue ARP kirje seadmine\n"
+
+-#: ../arp.c:622
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr " -d, --delete mratud kirje kustutamine\n"
+
+-#: ../arp.c:623 ../netstat.c:1485 ../route.c:85
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr " -v, --verbose jutukas vljund\n"
+
+-#: ../arp.c:624
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, c-format
+ msgid " -n, --numeric don't resolve names\n"
+ msgstr " -n, --numeric mitte lahendada nimesid\n"
+
+-#: ../arp.c:625
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+ msgstr ""
+ " -i, --device vrguliidese tpsustamine (niteks eth0)\n"
+
+-#: ../arp.c:626
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+ msgstr " -D, --use-device lugeda <hwaddr> vastavalt liideselt\n"
+
+-#: ../arp.c:627
++#: ../arp.c:639
++#, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr " -A, -p, --protocol protokollipere mramine\n"
+
+-#: ../arp.c:628
++#: ../arp.c:640
++#, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+-" -f, --file lugeda kirjed antud failist vi "
+-"/etc/ethers'st\n"
++" -f, --file lugeda kirjed antud failist vi /etc/"
++"ethers'st\n"
+ "\n"
+
+-#: ../arp.c:630 ../rarp.c:181
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+ msgstr ""
+ " <HW>=kasutage '-H <hw>' riistvaralise aadressi mramiseks.\n"
+ " Vaikimisi: %s\n"
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr " Vimalike ARP-i toetavate riistvara tpide nimekiri:\n"
+
+-#: ../arp.c:664 ../arp.c:749
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr "arp: riistvara tpi %s ei toetata\n"
+
+-#: ../arp.c:668
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr "arp: aadressiperekonda %s ei toetata\n"
+
+-#: ../arp.c:703
++#: ../arp.c:716
++#, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr "arp: -N toetust pole veel\n"
+
+-#: ../arp.c:713
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr "arp: tundmatu aadressiperekond %s\n"
+
+-#: ../arp.c:722
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr "arp: tundmatu riistvara tp %s\n"
+
+-#: ../arp.c:741
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+ msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n"
+
+-#: ../arp.c:754
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr "arp: riistvara tbil %s pole ARP toetust\n"
+
+-#: ../hostname.c:69
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+ msgstr "Sean slme nimeks `%s'\n"
+
+-#: ../hostname.c:74
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr "%s: ainult root saab slme nime muuta\n"
+
+-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr "%s: nimi on liiga pikk\n"
+
+-#: ../hostname.c:89
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+ msgstr "Sean hosti nimeks `%s'\n"
+
+-#: ../hostname.c:94
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+ msgstr "%s: ainult root saab hosti nime muuta\n"
+
+-#: ../hostname.c:108
++#: ../hostname.c:109
+ #, c-format
+ msgid "Setting domainname to `%s'\n"
+ msgstr "Sean domeeni nimeks `%s'\n"
+
+-#: ../hostname.c:113
++#: ../hostname.c:114
+ #, c-format
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr "%s: ainult root saab domeeni nime muuta\n"
+@@ -304,25 +325,28 @@
+ msgid "Result: h_addr_list=`%s'\n"
+ msgstr "Tulemus: h_addr_list=`%s'\n"
+
+-#: ../hostname.c:209
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+ msgstr "%s: ei saa avada faili `%s'\n"
+
+-#: ../hostname.c:223
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+ msgstr ""
+ "Kasutamine:\n"
+ " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka "
+ "failist)\n"
+
+-#: ../hostname.c:224
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+ msgstr ""
+ " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n"
+
+-#: ../hostname.c:226
++#: ../hostname.c:225
++#, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+@@ -330,18 +354,21 @@
+ " nodename [-v] {nodename|-F fail} DECneti vrguslme nime "
+ "seadmine\n"
+
+-#: ../hostname.c:228
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr ""
+ " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime nitamine antud formaadis\n"
+
+-#: ../hostname.c:229
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+ msgstr " hostname [-v] hosti nime nitamine\n"
+
+-#: ../hostname.c:230
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+@@ -350,7 +377,8 @@
+ " hostname -h|--help seesama abiinfo\n"
+ "\n"
+
+-#: ../hostname.c:231
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+@@ -358,36 +386,44 @@
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+
+-#: ../hostname.c:232
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr " -s, --short lhike hosti nimi\n"
+
+-#: ../hostname.c:233
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr " -a, --alias alias-nimed\n"
+
+-#: ../hostname.c:234
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr " -i, --ip-address hosti IP aadressid\n"
+
+-#: ../hostname.c:235
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr ""
+ " -f, --fqdn, --long pikk hosti nimi (FQDN - tielik ssteeminimi)\n"
+
+-#: ../hostname.c:236
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+ msgstr " -d, --domain DNS domeeni nimi\n"
+
+-#: ../hostname.c:237
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+ msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n"
+
+-#: ../hostname.c:239
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+ msgstr " -n, --node DECneti vrguslme nimi\n"
+
+-#: ../hostname.c:241
++#: ../hostname.c:240
++#, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+@@ -395,7 +431,8 @@
+ " -F, --file lugeda hosti vi NIS domeeni nimi failist\n"
+ "\n"
+
+-#: ../hostname.c:243
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -415,6 +452,7 @@
+ msgstr "%s: selle ksuga ei saa muuta DNS domeeni nime\n"
+
+ #: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+@@ -423,6 +461,7 @@
+ "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n"
+
+ #: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+ msgstr "(mis on tieliku nime osa) nime muuta failist /etc/hosts.\n"
+
+@@ -441,76 +480,97 @@
+ msgid "getnodename()=`%s'\n"
+ msgstr "getnodename()=`%s'\n"
+
+-#: ../ifconfig.c:110
++#: ../ifconfig.c:107
++#, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+-"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Lip\n"
+
+-#: ../ifconfig.c:132 ../ifconfig.c:164
+-#, c-format
+-msgid "%s: unknown interface: %s\n"
+-msgstr "ifconfig: tundmatu liides %s: %s\n"
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, fuzzy, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr "%s: viga liidese info ksimisel: %s\n"
+
+-#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
++#, c-format
+ msgid "No support for INET on this system.\n"
+ msgstr "Antud ssteem ei toeta INET aadressiperekonda\n"
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:193
++#, fuzzy, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr "%s: viga liidese info ksimisel: %s\n"
++
++#: ../ifconfig.c:202
++#, fuzzy, c-format
+ msgid ""
+ "Usage:\n"
+-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
+ msgstr ""
+ "Kasutamine:\n"
+ " ifconfig [-a] [-i] [-v] [-s] <liides> [[<AF>] <aadress>]\n"
+
+-#: ../ifconfig.c:181
++#: ../ifconfig.c:204
++#, c-format
+ msgid " [add <address>[/<prefixlen>]]\n"
+ msgstr " [add <aadress>[/<prefiksi pikkus>]]\n"
+
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:205
++#, c-format
+ msgid " [del <address>[/<prefixlen>]]\n"
+ msgstr " [del <aadress>[/<prefiksi pikkus>]]\n"
+
+-#: ../ifconfig.c:183
++#: ../ifconfig.c:206
++#, c-format
+ msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+ msgstr " [[-]broadcast [<aadress>]] [[-]pointopoint [<aadress>]]\n"
+
+-#: ../ifconfig.c:184
++#: ../ifconfig.c:207
++#, c-format
+ msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+ msgstr " [netmask <aadress>] [dstaddr <aadress>] [tunnel <aadress>]\n"
+
+-#: ../ifconfig.c:187
++#: ../ifconfig.c:210
++#, c-format
+ msgid " [outfill <NN>] [keepalive <NN>]\n"
+ msgstr " [outfill <NN>] [keepalive <NN>]\n"
+
+-#: ../ifconfig.c:189
++#: ../ifconfig.c:212
++#, c-format
+ msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+ msgstr " [hw <HW> <aadress>] [metric <NN>] [mtu <NN>]\n"
+
+-#: ../ifconfig.c:190
++#: ../ifconfig.c:213
++#, c-format
+ msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+ msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+
+-#: ../ifconfig.c:191
++#: ../ifconfig.c:214
++#, c-format
+ msgid " [multicast] [[-]promisc]\n"
+ msgstr " [multicast] [[-]promisc]\n"
+
+-#: ../ifconfig.c:192
++#: ../ifconfig.c:215
++#, c-format
+ msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+ msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tp>]\n"
+
+-#: ../ifconfig.c:194
++#: ../ifconfig.c:217
++#, c-format
+ msgid " [txqueuelen <NN>]\n"
+ msgstr " [txqueuelen <NN>]\n"
+
+-#: ../ifconfig.c:197
++#: ../ifconfig.c:220
++#, c-format
+ msgid " [[-]dynamic]\n"
+ msgstr " [[-]dynamic]\n"
+
+-#: ../ifconfig.c:199
++#: ../ifconfig.c:222
++#, c-format
+ msgid ""
+ " [up|down] ...\n"
+ "\n"
+@@ -518,73 +578,134 @@
+ " [up|down] ...\n"
+ "\n"
+
+-#: ../ifconfig.c:201
++#: ../ifconfig.c:224
++#, c-format
+ msgid " <HW>=Hardware Type.\n"
+ msgstr " <HW>=riistvara tp\n"
+
+-#: ../ifconfig.c:202
++#: ../ifconfig.c:225
++#, c-format
+ msgid " List of possible hardware types:\n"
+ msgstr " Vimalike riistvara tpide nimekiri:\n"
+
+ #. 1 = ARPable
+-#: ../ifconfig.c:204
++#: ../ifconfig.c:227
+ #, c-format
+ msgid " <AF>=Address family. Default: %s\n"
+ msgstr " <AF>=aadressiperekond, vaikimisi %s\n"
+
+-#: ../ifconfig.c:205
++#: ../ifconfig.c:228
++#, c-format
+ msgid " List of possible address families:\n"
+ msgstr " Vimalike aadressiperekondade nimekiri:\n"
+
+-#: ../ifconfig.c:361
++#: ../ifconfig.c:303
++#, c-format
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr ""
++
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr ""
++
++#: ../ifconfig.c:380
++#, c-format
+ msgid "Unknown media type.\n"
+ msgstr "Tundmatu meedia tp\n"
+
+-#: ../ifconfig.c:653
++#: ../ifconfig.c:417
++#, c-format
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
++
++#: ../ifconfig.c:429
++#, c-format
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:441
++#, c-format
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:465
++#, c-format
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:523
++#, c-format
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:652
++#, c-format
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:684
+ #, c-format
+ msgid "hw address type `%s' has no handler to set address. failed.\n"
+ msgstr ""
+ "riistvara aadressi tbil `%s' pole ksitlejat aadressi seadmiseks - ebann\n"
+
+-#: ../ifconfig.c:662
++#: ../ifconfig.c:693
+ #, c-format
+ msgid "%s: invalid %s address.\n"
+ msgstr "%s: vigane %s aadress\n"
+
+-#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
++#, c-format
+ msgid "No support for INET6 on this system.\n"
+ msgstr "Antud ssteem ei toeta INET6 aadressiperekonda\n"
+
+-#: ../ifconfig.c:749 ../ifconfig.c:840
++#: ../ifconfig.c:780 ../ifconfig.c:871
+ #, c-format
+ msgid "Interface %s not initialized\n"
+ msgstr "Liides %s pole initsialiseeritud\n"
+
+-#: ../ifconfig.c:761 ../ifconfig.c:851
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, c-format
+ msgid "Bad address.\n"
+ msgstr "Vigane aadress\n"
+
+-#: ../ifconfig.c:854
++#: ../ifconfig.c:885
++#, c-format
+ msgid "Address deletion not supported on this system.\n"
+ msgstr "Antud ssteem ei toeta aadresside kustutamist\n"
+
+-#: ../ifconfig.c:947
++#: ../ifconfig.c:957
++#, fuzzy, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n"
++
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr "Antud ssteem ei toeta ECONET aadressiperekonda\n"
+
+-#: ../ifconfig.c:955
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n"
+
+-#: ../netstat.c:429
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+ msgstr ""
+ "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n"
+
+-#: ../netstat.c:433
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+@@ -592,210 +713,223 @@
+ "(Mnesid protsesse ei saanud identifitseerida, teiste kasutajate\n"
+ "info lugemiseks peab olema root)\n"
+
+-#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr "LISTENING"
+
+-#: ../netstat.c:441
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr "CONN SENT"
+
+-#: ../netstat.c:442 ../netstat.c:1250
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr "DISC SENT"
+
+-#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr "ESTABLISHED"
+
+-#: ../netstat.c:465
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr "Aktiivsed NET/ROM soklid\n"
+
+-#: ../netstat.c:466
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+ "Kasutaja Sihtpunkt Lhtepunkt Liides Olek Vr/Vs SaatJrk "
+ "VvJrk\n"
+
+-#: ../netstat.c:476 ../netstat.c:1290
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr "Probleem andmete lugemisel failist %s\n"
+
+-#: ../netstat.c:511
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr "SYN_SENT"
+
+-#: ../netstat.c:512
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr "SYN_RECV"
+
+-#: ../netstat.c:513
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr "FIN_WAIT1"
+
+-#: ../netstat.c:514
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr "FIN_WAIT2"
+
+-#: ../netstat.c:515
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr "TIME_WAIT"
+
+-#: ../netstat.c:516
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr "CLOSE"
+
+-#: ../netstat.c:517
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr "CLOSE_WAIT"
+
+-#: ../netstat.c:518
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr "LAST_ACK"
+
+-#: ../netstat.c:519
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr "LISTEN"
+
+-#: ../netstat.c:520
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr "CLOSING"
+
+-#: ../netstat.c:587
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n"
+
+-#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883
+-#: ../netstat.c:1014 ../netstat.c:1019
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr "netstat: aadressiperekonda %d ei toetata\n"
+
+-#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n"
+
+-#: ../netstat.c:668
++#: ../netstat.c:677
++#, c-format
+ msgid "Active X.25 sockets\n"
+ msgstr "Aktiivsed X.25 soklid\n"
+
+ #. IMHO, Vr/Vs is not very usefull --SF
+-#: ../netstat.c:670
++#: ../netstat.c:679
++#, c-format
+ msgid ""
+-"Dest Source Device LCI State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+ "Sihtpunkt Lhtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n"
+
+-#: ../netstat.c:747
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr "Hoiatus - sain imeliku tcp rea\n"
+
+-#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr "eiki ((0.00/%ld/%d)"
+
+-#: ../netstat.c:792
++#: ../netstat.c:804
+ #, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr "kib (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:797
++#: ../netstat.c:809
+ #, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr "keepalive (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:802
++#: ../netstat.c:814
+ #, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr "timewait (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr "eitea-%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:879
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr "Hoiatus - sain imeliku udp rea\n"
+
+-#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr "TUNDMATU"
+
+-#: ../netstat.c:943 ../netstat.c:1062
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr "kib-%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:1028
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr "Hoiatus - sain imeliku raw rea\n"
+
+-#: ../netstat.c:1110
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr "Hoiatus - sain imeliku unix rea\n"
+
+-#: ../netstat.c:1137
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr "STREAM"
+
+-#: ../netstat.c:1141
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr "DGRAM"
+
+-#: ../netstat.c:1145
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr "RAW"
+
+-#: ../netstat.c:1149
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr "RDM"
+
+-#: ../netstat.c:1153
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+ msgstr "SEQPACKET"
+
+-#: ../netstat.c:1162
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr "VABA"
+
+-#: ../netstat.c:1178
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr "HENDUMAS"
+
+-#: ../netstat.c:1182
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr "HENDATUD"
+
+-#: ../netstat.c:1186
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr "LAHTIHENDUMAS"
+
+-#: ../netstat.c:1217
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+ msgstr "Aktiivsed UNIX domeeni soklid "
+
+-#: ../netstat.c:1219 ../netstat.c:1729
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr "(serverid ja hendatud)"
+
+-#: ../netstat.c:1222 ../netstat.c:1732
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr "(ainult serverid)"
+
+-#: ../netstat.c:1224 ../netstat.c:1734
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr "(ilma serveriteta)"
+
+-#: ../netstat.c:1227
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+@@ -803,32 +937,36 @@
+ "\n"
+ "Proto Mitu Lipud Tp Olek I-kirje "
+
+-#: ../netstat.c:1229
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr "Tee\n"
+
+-#: ../netstat.c:1249
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr "SABM SENT"
+
+-#: ../netstat.c:1252
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr "RECOVERY"
+
+-#: ../netstat.c:1266
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr "Aktiivsed AX.25 soklid\n"
+
+-#: ../netstat.c:1267
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr "Sihtpunkt Lhtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n"
+
+-#: ../netstat.c:1310
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr "Probleem andmete lugemisel failist %s\n"
+
+-#: ../netstat.c:1361
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+@@ -838,47 +976,53 @@
+ "Proto VvJrk SaatJrk Kohalik aadress Vline aadress "
+ "Olek "
+
+-#: ../netstat.c:1363
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr " Kasutaja"
+
+-#: ../netstat.c:1397
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr "ESTAB"
+
+-#: ../netstat.c:1405
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr "UNK."
+
+-#: ../netstat.c:1443
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+ msgstr "Tuuma liideste tabel\n"
+
+-#: ../netstat.c:1447
++#: ../netstat.c:1465
++#, fuzzy, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+-"Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Lip\n"
+
+-#: ../netstat.c:1451
++#: ../netstat.c:1469
+ msgid "missing interface information"
+ msgstr "Puudulik informatsioon liideste kohta"
+
+-#: ../netstat.c:1474
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+ "Kasutamine: netstat [-veenNcCF] [<Af>] -r\n"
+ " netstat {-V|--version|-h|--help}\n"
+
+-#: ../netstat.c:1475
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr " netstat [-vnNcaeol] [<Sokkel> ...]\n"
+
+-#: ../netstat.c:1476
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+@@ -886,25 +1030,30 @@
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+
+-#: ../netstat.c:1478
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr " -r, --route ruutingutabeli nitamine\n"
+
+-#: ../netstat.c:1479
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr " -i, --interfaces liideste tabeli nitamine\n"
+
+-#: ../netstat.c:1480
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr " -g, --groups multiedastuse gruppide nitamine\n"
+
+-#: ../netstat.c:1481
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+ msgstr ""
+ " -s, --statistics vrgu statistika nitamine (SNMP stiilis)\n"
+
+-#: ../netstat.c:1483
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+@@ -912,36 +1061,39 @@
+ " -M, --masquerade maskeeritavate henduste nitamine\n"
+ "\n"
+
+-#: ../netstat.c:1486 ../route.c:86
+-msgid " -n, --numeric dont resolve names\n"
+-msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n"
+-
+-#: ../netstat.c:1487
+-msgid " --numeric-hosts dont resolve host names\n"
++#: ../netstat.c:1505
++#, fuzzy, c-format
++msgid " --numeric-hosts don't resolve host names\n"
+ msgstr " --numeric-hosts mitte lahendada hostinimesid\n"
+
+-#: ../netstat.c:1488
+-msgid " --numeric-ports dont resolve port names\n"
++#: ../netstat.c:1506
++#, fuzzy, c-format
++msgid " --numeric-ports don't resolve port names\n"
+ msgstr " --numeric-ports mitte lahendada pordinimesid\n"
+
+-#: ../netstat.c:1489
+-msgid " --numeric-users dont resolve user names\n"
++#: ../netstat.c:1507
++#, fuzzy, c-format
++msgid " --numeric-users don't resolve user names\n"
+ msgstr " --numeric-users mitte lahendada kasutajanimesid\n"
+
+-#: ../netstat.c:1490
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr " -N, --symbolic lahendada riistvara aadressid\n"
+
+-#: ../netstat.c:1491 ../route.c:87
++#: ../netstat.c:1509 ../route.c:88
++#, c-format
+ msgid " -e, --extend display other/more information\n"
+ msgstr " -e, --extend muu info/lisainfo nitamine\n"
+
+-#: ../netstat.c:1492
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+ msgstr ""
+ " -p, --programs soklite kohta PID/protsessi nime nitamine\n"
+
+-#: ../netstat.c:1493
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+@@ -949,22 +1101,26 @@
+ " -c, --continuous pidevalt uuenev nimekiri\n"
+ "\n"
+
+-#: ../netstat.c:1494
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+ msgstr " -l, --listening kuulavate serversoklite nitamine\n"
+
+-#: ../netstat.c:1495
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+ msgstr ""
+ " -a, --all, --listening kigi soklite nitamine (vaikimisi "
+ "hendatud)\n"
+
+-#: ../netstat.c:1496
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr " -o, --timers taimerite nitamine\n"
+
+-#: ../netstat.c:1497 ../route.c:88
++#: ../netstat.c:1515 ../route.c:89
++#, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+@@ -972,7 +1128,8 @@
+ " -F, --fib ldiste ruutingutabelite nitamine "
+ "(vaikimisi)\n"
+
+-#: ../netstat.c:1498 ../route.c:89
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+@@ -981,108 +1138,121 @@
+ "nitamine\n"
+ "\n"
+
+-#: ../netstat.c:1500
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+-" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+
+-#: ../netstat.c:1501 ../route.c:91
+-#, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
++#: ../netstat.c:1519
++#, fuzzy, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr " <AF>=kasutage '-A <af>' vi '--<af>' vaikimisi: %s\n"
+
+-#: ../netstat.c:1502 ../route.c:92
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+ msgstr " Vimalike ruutingu toetavate aadressiperekondade nimekiri:\n"
+
+-#: ../netstat.c:1726
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr "Aktiivsed internetihendused "
+
+-#: ../netstat.c:1736
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+ "\n"
+-"Proto VvJrk SaatJrk Kohalik aadress Vline aadress Olek "
+-" "
++"Proto VvJrk SaatJrk Kohalik aadress Vline aadress "
++"Olek "
+
+-#: ../netstat.c:1738
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr " Kasutaja I-kirje "
+
+-#: ../netstat.c:1741
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr " Taimer"
+
+-#: ../netstat.c:1771
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+ msgstr "IPv4 grupikuuluvused\n"
+
+-#: ../netstat.c:1772
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr "Liides Mitu Grupp\n"
+
+-#: ../rarp.c:43
++#: ../rarp.c:44
+ msgid "This kernel does not support RARP.\n"
+ msgstr "rarp: tuum ei toeta RARP'i\n"
+
+-#: ../rarp.c:82
++#: ../rarp.c:83
+ #, c-format
+ msgid "no RARP entry for %s.\n"
+ msgstr "rarp: %s jaoks pole RARP kirjet\n"
+
+-#: ../rarp.c:95
++#: ../rarp.c:96
+ #, c-format
+ msgid "%s: bad hardware address\n"
+ msgstr "rarp: vigane riistvaraline aadress %s\n"
+
+-#: ../rarp.c:127
++#: ../rarp.c:128
+ #, c-format
+ msgid "rarp: cannot open file %s:%s.\n"
+ msgstr "rarp: ei saa avada faili %s:%s\n"
+
+-#: ../rarp.c:139
++#: ../rarp.c:140
+ #, c-format
+ msgid "rarp: format error at %s:%u\n"
+ msgstr "rarp: vorminguviga failis %s real %u\n"
+
+-#: ../rarp.c:143 ../rarp.c:287
++#: ../rarp.c:144 ../rarp.c:289
+ #, c-format
+ msgid "rarp: %s: unknown host\n"
+ msgstr "rarp: tundmatu host %s\n"
+
+-#: ../rarp.c:146
++#: ../rarp.c:147
+ #, c-format
+ msgid "rarp: cannot set entry from %s:%u\n"
+ msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n"
+
+-#: ../rarp.c:175
++#: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+ msgstr ""
+ "Kasutamine:\n"
+ " rarp -a puhvris olevate kirjete vaatamine\n"
+
+-#: ../rarp.c:176
++#: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+ msgstr " rarp -d <hosti nimi> kirje kustutamine puhvrist\n"
+
+-#: ../rarp.c:177
++#: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+ msgstr " rarp [<HW>] -s <hosti nimi> <hwaddr> kirje lisamine puhvrisse\n"
+
+-#: ../rarp.c:178
++#: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+ msgstr ""
+ " rarp -f kirjete lisamine failist /etc/ethers\n"
+
+-#: ../rarp.c:179
++#: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+@@ -1090,24 +1260,26 @@
+ " rarp -V programmi versiooni nitamine\n"
+ "\n"
+
+-#: ../rarp.c:236
++#: ../rarp.c:238
+ #, c-format
+ msgid "%s: illegal option mix.\n"
+ msgstr "%s: lubamatu vtmete kombinatsioon\n"
+
+-#: ../rarp.c:267
++#: ../rarp.c:269
+ #, c-format
+ msgid "rarp: %s: unknown hardware type.\n"
+ msgstr "rarp: tundmatu riistvara tp %s\n"
+
+-#: ../route.c:79
++#: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+ "Kasutamine:\n"
+ " route [-nNvee] [-FC] [<AF>] Tuuma ruutingutabeli nitamine\n"
+
+-#: ../route.c:80
++#: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+@@ -1115,7 +1287,8 @@
+ " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n"
+ "\n"
+
+-#: ../route.c:82
++#: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+@@ -1123,7 +1296,8 @@
+ " route {-h|--help} [<AF>] Detailne sntaks perekonna AF "
+ "jaoks\n"
+
+-#: ../route.c:83
++#: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+@@ -1132,15 +1306,23 @@
+ " route {-V|--version} Versiooni ja oskuste nitamine\n"
+ "\n"
+
++#: ../route.c:92
++#, fuzzy, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>=kasutage '-A <af>' vi '--<af>' vaikimisi: %s\n"
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr "Kasutamine: plipconfig [-a] [-i] [-v] liides\n"
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr " [nibble NN] [trigger NN]\n"
+
+ #: ../plipconfig.c:68
++#, c-format
+ msgid " plipconfig -V | --version\n"
+ msgstr " plipconfig -V | --version\n"
+
+@@ -1149,25 +1331,30 @@
+ msgid "%s\tnibble %lu trigger %lu\n"
+ msgstr "%s\tnibble %lu trigger %lu\n"
+
+-#: ../iptunnel.c:84
++#: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n"
+
+-#: ../iptunnel.c:85
++#: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+ msgstr ""
+ " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n"
+
+-#: ../iptunnel.c:86
++#: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+
+-#: ../iptunnel.c:87
++#: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+ msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n"
+
+-#: ../iptunnel.c:88
++#: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+@@ -1175,83 +1362,99 @@
+ " iptunnel -V | --version\n"
+ "\n"
+
+-#: ../iptunnel.c:89
++#: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr "Kus: NIMI := STRING\n"
+
+-#: ../iptunnel.c:90
++#: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr " AADR := { IP_AADRESS | any }\n"
+
+-#: ../iptunnel.c:91
++#: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr " TOS := { ARV | inherit }\n"
+
+-#: ../iptunnel.c:92
++#: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr " TTL := { 1..255 | inherit }\n"
+
+-#: ../iptunnel.c:93
++#: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr ""
+ " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n"
+ " LIIDES := FSILISE_LIIDESE_NIMI\n"
+
+-#: ../iptunnel.c:331
++#: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr "ipip ja sit juures ei ole vtmed lubatud\n"
+
+-#: ../iptunnel.c:351
++#: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr "Leviedastusega tunnel vajab lhteaadressi\n"
+
+-#: ../iptunnel.c:366
++#: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n"
+
+-#: ../iptunnel.c:378
++#: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr "Ei suuda mrata tunneli moodi (ipip, gre vi sit)\n"
+
+-#: ../iptunnel.c:416
++#: ../iptunnel.c:417
+ #, c-format
+ msgid "%s: %s/ip remote %s local %s "
+ msgstr "%s: %s/ip teises otsas %s siin %s "
+
+-#: ../iptunnel.c:420
++#: ../iptunnel.c:421
+ msgid "unknown"
+ msgstr "tundmatu"
+
+-#: ../iptunnel.c:452
++#: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr " Jrjekorravlised paketid visatakse minema\n"
+
+-#: ../iptunnel.c:454
++#: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr " Vastuvetavates pakettides on kontrollsumma kohustuslik\n"
+
+-#: ../iptunnel.c:456
++#: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr " Vljuvad paketid varustatakse jrjekorranumbritega\n"
+
+-#: ../iptunnel.c:458
++#: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr " Vljuvad paketid varustatakse kontrollsummaga\n"
+
+-#: ../iptunnel.c:486
++#: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+ msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n"
+
+-#: ../iptunnel.c:499
++#: ../iptunnel.c:500
+ #, c-format
+ msgid "Failed to get type of [%s]\n"
+ msgstr "Ei suutnud kindlaks teha liidese %s tpi\n"
+
+-#: ../iptunnel.c:515
++#: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n"
+
+-#: ../iptunnel.c:518
++#: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MluOtsas\n"
+
+@@ -1658,13 +1861,13 @@
+ msgstr "%u paketti pandi otse recvmsg eeljrjekorda"
+
+ #: ../statistics.c:178
+-#, c-format
+-msgid "%u packets directly received from backlog"
++#, fuzzy, c-format
++msgid "%u of bytes directly received from backlog"
+ msgstr "%u paketti veti vastu otse backlog-ist"
+
+ #: ../statistics.c:180
+-#, c-format
+-msgid "%u packets directly received from prequeue"
++#, fuzzy, c-format
++msgid "%u of bytes directly received from prequeue"
+ msgstr "%u paketti veti vastu otse eeljrjekorrast"
+
+ #: ../statistics.c:182
+@@ -1673,8 +1876,8 @@
+ msgstr "%u paketti kustutati eeljrjekorrast"
+
+ #: ../statistics.c:183
+-#, c-format
+-msgid "%u packets header predicted"
++#, fuzzy, c-format
++msgid "%u packet headers predicted"
+ msgstr "%u paketti pise ige ennustusega"
+
+ #: ../statistics.c:184
+@@ -1687,19 +1890,210 @@
+ msgid "Ran %u times out of system memory during packet sending"
+ msgstr "Pakettide saatmisel sai %u korda ssteemne mlu otsa"
+
+-#: ../statistics.c:253
++#: ../statistics.c:188
++#, fuzzy, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr "%u sisenevat paketti tundmatule pordile"
++
++#: ../statistics.c:189
++#, c-format
++msgid "%u predicted acknowledgments"
++msgstr ""
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
++
++#: ../statistics.c:192
++#, fuzzy, c-format
++msgid "%u bad SACKs received"
++msgstr "%u vigast segmenti veti vastu"
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr ""
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr ""
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
++
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:197
++#, fuzzy, c-format
++msgid "%u congestion windows fully recovered"
++msgstr "%u henduse katkestust saabus"
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr ""
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, fuzzy, c-format
++msgid "%u retransmits lost"
++msgstr "%u katkestust saadeti"
++
++#: ../statistics.c:202
++#, fuzzy, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr "%u segmenti saadeti uuesti"
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, fuzzy, c-format
++msgid "%u fast retransmits"
++msgstr "%u segmenti saadeti uuesti"
++
++#: ../statistics.c:206
++#, fuzzy, c-format
++msgid "%u forward retransmits"
++msgstr "%u edastati"
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, fuzzy, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "%u segmenti saadeti uuesti"
++
++#: ../statistics.c:210
++#, fuzzy, c-format
++msgid "%u sack retransmits failed"
++msgstr "%u pakettide kokkupanekut ebannestus"
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, fuzzy, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr ""
++"%u paketti kustutati vastuvtu jrjekorrast sokli puhvri letitumise tttu"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, fuzzy, c-format
++msgid "%u DSACKs received"
++msgstr "%u paketti veti vastu"
++
++#: ../statistics.c:216
++#, fuzzy, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "kokku veti vastu %u paketti"
++
++#: ../statistics.c:217
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "%u henduse katkestust saabus"
++
++#: ../statistics.c:218
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "%u henduse katkestust saabus"
++
++#: ../statistics.c:219
++#, fuzzy, c-format
++msgid "%u connections reset due to early user close"
++msgstr "%u henduse katkestust saabus"
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, fuzzy, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "%u aktiivsest hendusest keelduti ajatempli tttu"
++
++#: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr "lubatud"
+
+-#: ../statistics.c:253
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr "keelatud"
+
+-#: ../statistics.c:336
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr "Viga /proc/net/snmp analsimisel"
+
+-#: ../statistics.c:349
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr "Ei saa avada faili /proc/net/snmp"
+
+@@ -1713,7 +2107,7 @@
+ msgid "Cannot change line discipline to `%s'.\n"
+ msgstr "Ei suuda seada `%s' liiniprotokolliks\n"
+
+-#: ../lib/af.c:153 ../lib/hw.c:156
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr "UNSPEC"
+
+@@ -1729,11 +2123,11 @@
+ msgid "IPv6"
+ msgstr "IPv6"
+
+-#: ../lib/af.c:164 ../lib/hw.c:177
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr "AMPR AX.25"
+
+-#: ../lib/af.c:167 ../lib/hw.c:183
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr "AMPR NET/ROM"
+
+@@ -1745,7 +2139,7 @@
+ msgid "Appletalk DDP"
+ msgstr "Appletalk DDP"
+
+-#: ../lib/af.c:176 ../lib/hw.c:218
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr "Econet"
+
+@@ -1753,19 +2147,21 @@
+ msgid "CCITT X.25"
+ msgstr "CCITT X.25"
+
+-#: ../lib/af.c:182 ../lib/hw.c:180
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr "AMPR ROSE"
+
+-#: ../lib/af.c:185 ../lib/hw.c:168
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr "Ash"
+
+ #: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr "Meil on kombeks ks aadressiperekond korraga\n"
+
+ #: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr "Liiga palju aadressiperekonna argumente\n"
+
+@@ -1790,6 +2186,7 @@
+ msgstr "in_arcnet(%s): sodi lpus\n"
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+ msgstr "Vigane Ash aadress"
+
+@@ -1808,22 +2205,21 @@
+ msgstr "Liiga pikk kutsung"
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr "AX.25 pole antud ssteemis konfigureeritud\n"
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr "Tuuma AX.25 ruutingutabel\n"
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr "Sihtpunkt Liides Kasutus\n"
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n"
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1879,90 +2275,94 @@
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr "in_hippi(%s): sodi lpus\n"
+
+-#: ../lib/hw.c:155
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr "Kohalik loopback"
+
+-#: ../lib/hw.c:158
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr "Serial Line IP"
+
+-#: ../lib/hw.c:159
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr "VJ Serial Line IP"
+
+-#: ../lib/hw.c:160
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr "6-bitine Serial Line IP"
+
+-#: ../lib/hw.c:161
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr "VJ 6-bitine Serial Line IP"
+
+-#: ../lib/hw.c:162
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr "Adaptiivne Serial Line IP"
+
+-#: ../lib/hw.c:165
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr "Ethernet"
+
+-#: ../lib/hw.c:171
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr "Fiber Distributed Data Interface"
+
+-#: ../lib/hw.c:174
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr "HIPPI"
+
+-#: ../lib/hw.c:186
++#: ../lib/hw.c:191
+ msgid "generic X.25"
+ msgstr "ldine X.25"
+
+-#: ../lib/hw.c:189
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr "IPIP tunnel"
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+ msgstr "Kakspunktprotokoll"
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr "(Cisco-)HDLC"
+
+-#: ../lib/hw.c:196
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:199
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr "ARCnet"
+
+-#: ../lib/hw.c:202
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr "Frame Relay DLCI"
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr "Frame Relay Access Device"
+
+-#: ../lib/hw.c:206
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr "IPv6-in-IPv4"
+
+-#: ../lib/hw.c:209
++#: ../lib/hw.c:214
+ msgid "IrLAP"
+ msgstr "IrLAP"
+
+-#: ../lib/hw.c:212
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr "16/4 Mbps Token Ring"
+
+-#: ../lib/hw.c:214
++#: ../lib/hw.c:219
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr "16/4 Mbps Token Ring (New)"
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+@@ -1972,27 +2372,32 @@
+ msgid "[UNKNOWN]"
+ msgstr "[TUNDMATU]"
+
+-#: ../lib/inet6_gr.c:79
++#: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr "INET6 (IPv6) pole antud ssteemis konfigureeritud\n"
+
+-#: ../lib/inet6_gr.c:82
++#: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+ msgstr "Tuuma IPv6 ruutingutabel\n"
+
+-#: ../lib/inet6_gr.c:84
++#: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
+ msgstr ""
+-"Sihtpunkt Jrgmine samm "
+-" Lipud Meetr Mitu Kasut Liides\n"
++"Sihtpunkt Jrgmine "
++"samm Lipud Meetr Mitu Kasut Liides\n"
+
+-#: ../lib/inet6_gr.c:158
++#: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr "Tuuma IPv6 naabrite puhver\n"
+
+-#: ../lib/inet6_gr.c:161
++#: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+@@ -2000,7 +2405,8 @@
+ "Naaber HW Aadress Liides Lipud "
+ "Mitu Olek\n"
+
+-#: ../lib/inet6_gr.c:165
++#: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+@@ -2009,31 +2415,38 @@
+ "Mitu Olek Stale(sec) Delete(sec)\n"
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr "Kasutamine: route [-vF] del AADRESS\n"
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr ""
+ " route [-vF] add AADRESS [gw GW] [metric M] [[dev] LIIDES]\n"
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr " route [-FC] flush Seda EI toetata\n"
+
+ #: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+ msgstr "`inet6' ruutingutabeli thjendamist ei toetata\n"
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr "INET (IPv4) pole antud ssteemis konfigureeritud\n"
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+ msgstr "Tuuma IP ruutingutabel\n"
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+@@ -2042,6 +2455,7 @@
+ "Liides\n"
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+@@ -2050,6 +2464,7 @@
+ "Liides\n"
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+@@ -2058,10 +2473,12 @@
+ "Liides MSS Aken irtt\n"
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+ msgstr "Tuuma IP ruutingu puhver\n"
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+@@ -2070,6 +2487,7 @@
+ "Liides\n"
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+@@ -2078,6 +2496,7 @@
+ "Liides\n"
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+@@ -2086,6 +2505,7 @@
+ "Liides MSS Aken irtt HH Arp\n"
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+@@ -2093,7 +2513,8 @@
+ "Lhtepunkt Sihtpunkt Ruuter Lipud Meetr Mitu Kasut "
+ "Liides MSS Aken irtt TOS HHRef HHUptod SpecDst\n"
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+@@ -2101,31 +2522,36 @@
+ "Kasutamine: route [-vF] del {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric "
+ "M] [[dev] LIIDES]\n"
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+ msgstr ""
+ " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [gw GW] [metric "
+ "M]\n"
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+ " [netmask N] [mss MSS] [window W] [irtt I]\n"
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr " [mod] [dyn] [reinstate] [[dev] LIIDES]\n"
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+ msgstr ""
+ " route [-vF] add {-host|-net} AADRESS[/PREFIKS] [metric M] "
+ "reject\n"
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr " route [-FC] flush Seda EI toetata\n"
+
+@@ -2135,14 +2561,17 @@
+ msgstr "route: %s: vrku ei saa kasutada ruuterina\n"
+
+ #: ../lib/inet_sr.c:174
++#, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr "route: vigane MSS/MTU\n"
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr "route: Vigane akna suurus\n"
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr "route: vigane algne rtt\n"
+
+@@ -2157,75 +2586,92 @@
+ msgstr "route: vale vrgumask %s\n"
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr "route: vrgumask ei sobi ruutingu aadressiga\n"
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+ msgstr "`inet' ruutingutabeli thjendamist ei toetata\n"
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+ msgstr "`inet' ruutingu puhvri muutmist ei toetata\n"
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr "IPX pole antud ssteemis konfigureeritud\n"
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+ msgstr "Tuuma IPX ruutingutabel\n"
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+ msgstr "Sihtpunkt Ruuteri vrk Ruuter ise\n"
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+ msgstr "IPX osa vajab mbertegemist\n"
+
+ #: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr "IP maskeerimise kirjed\n"
+
+ #: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr "Proto Aegub Lhtepunkt Sihtpunkt Pordid\n"
+
+ #: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+-"Proto Aegub Initseq Delta Prevd Lhtepunkt Sihtpunkt "
+-" Pordid\n"
++"Proto Aegub Initseq Delta Prevd Lhtepunkt "
++"Sihtpunkt Pordid\n"
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr "NET/ROM pole antud ssteemis konfigureeritud\n"
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+ msgstr "Tuuma NET/ROM ruutingutabel\n"
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr "Sihtpunkt Mnemoonika Kvaliteet Naaber Liides\n"
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+ msgstr "netrom kasutus\n"
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+ msgstr "NET/ROM osa vajab mbertegemist\n"
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr "Sellest programmist ei saa PPP-d kivitada\n"
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+ msgstr "Palun kasutage pppd'd\n"
+
+@@ -2234,287 +2680,314 @@
+ msgstr "Slme aadress peab olema kmnekohaline"
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr "ROSE pole antud ssteemis konfigureeritud\n"
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+ msgstr "Tuuma ROSE ruutingutabel\n"
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr "in_tr(%s): vigane token ring-aadress\n"
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr "in_tr(%s): ignoreerin lpetavat koolonit\n"
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr "in_tr(%s): sodi lpus\n"
+
+-#: ../lib/interface.c:164
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+ msgstr "Hoiatus: `inet' sokleid ei ole: %s\n"
+
+-#: ../lib/interface.c:316
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr "Hoiatus: ei saa avada faili %s (%s). Vljund on piiratud.\n"
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:556
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr "Liidest ei leitud"
+
+-#: ../lib/interface.c:560
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
+ msgstr "%s: viga liidese info ksimisel: %s\n"
+
+-#: ../lib/interface.c:593
++#: ../lib/interface.c:608
+ msgid " - no statistics available -"
+ msgstr " - statistikat ei ole -"
+
+-#: ../lib/interface.c:597
++#: ../lib/interface.c:612
++#, c-format
+ msgid "[NO FLAGS]"
+ msgstr "[LIPPE POLE]"
+
+-#: ../lib/interface.c:673
++#: ../lib/interface.c:688
+ #, c-format
+ msgid "%-9.9s Link encap:%s "
+ msgstr "%-9.9s kapseldus:%s "
+
+-#: ../lib/interface.c:678
++#: ../lib/interface.c:693
+ #, c-format
+ msgid "HWaddr %s "
+ msgstr "HWaddr %s "
+
+-#: ../lib/interface.c:681
++#: ../lib/interface.c:696
+ #, c-format
+ msgid "Media:%s"
+ msgstr "meedia:%s"
+
+-#: ../lib/interface.c:683
++#: ../lib/interface.c:698
++#, c-format
+ msgid "(auto)"
+ msgstr "(auto)"
+
+-#: ../lib/interface.c:690
++#: ../lib/interface.c:705
+ #, c-format
+ msgid " %s addr:%s "
+ msgstr " %s aadress:%s "
+
+-#: ../lib/interface.c:693
++#: ../lib/interface.c:708
+ #, c-format
+ msgid " P-t-P:%s "
+ msgstr " P-t-P:%s "
+
+-#: ../lib/interface.c:696
++#: ../lib/interface.c:711
+ #, c-format
+ msgid " Bcast:%s "
+ msgstr " bcast:%s "
+
+-#: ../lib/interface.c:698
++#: ../lib/interface.c:713
+ #, c-format
+ msgid " Mask:%s\n"
+ msgstr " mask:%s\n"
+
+-#: ../lib/interface.c:715
++#: ../lib/interface.c:730
+ #, c-format
+ msgid " inet6 addr: %s/%d"
+ msgstr " inet6 aadr: %s/%d"
+
+-#: ../lib/interface.c:717
++#: ../lib/interface.c:732
++#, c-format
+ msgid " Scope:"
+ msgstr " skoop:"
+
+-#: ../lib/interface.c:720
++#: ../lib/interface.c:735
++#, c-format
+ msgid "Global"
+ msgstr "globaalne"
+
+-#: ../lib/interface.c:723
++#: ../lib/interface.c:738
++#, c-format
+ msgid "Link"
+ msgstr "hendus"
+
+-#: ../lib/interface.c:726
++#: ../lib/interface.c:741
++#, c-format
+ msgid "Site"
+ msgstr "site"
+
+-#: ../lib/interface.c:729
++#: ../lib/interface.c:744
++#, c-format
+ msgid "Compat"
+ msgstr "hilduvus"
+
+-#: ../lib/interface.c:732
++#: ../lib/interface.c:747
++#, c-format
+ msgid "Host"
+ msgstr "host"
+
+-#: ../lib/interface.c:735
++#: ../lib/interface.c:750
++#, c-format
+ msgid "Unknown"
+ msgstr "tundmatu"
+
+-#: ../lib/interface.c:750
++#: ../lib/interface.c:765
+ #, c-format
+ msgid " IPX/Ethernet II addr:%s\n"
+ msgstr " IPX/Ethernet II aadr:%s\n"
+
+-#: ../lib/interface.c:753
++#: ../lib/interface.c:768
+ #, c-format
+ msgid " IPX/Ethernet SNAP addr:%s\n"
+ msgstr " IPX/Ethernet SNAP aadr:%s\n"
+
+-#: ../lib/interface.c:756
++#: ../lib/interface.c:771
+ #, c-format
+ msgid " IPX/Ethernet 802.2 addr:%s\n"
+ msgstr " IPX/Ethernet 802.2 aadr:%s\n"
+
+-#: ../lib/interface.c:759
++#: ../lib/interface.c:774
+ #, c-format
+ msgid " IPX/Ethernet 802.3 addr:%s\n"
+ msgstr " IPX/Ethernet 802.3 aadr:%s\n"
+
+-#: ../lib/interface.c:769
++#: ../lib/interface.c:784
+ #, c-format
+ msgid " EtherTalk Phase 2 addr:%s\n"
+ msgstr " EtherTalk Phase 2 aadr:%s\n"
+
+-#: ../lib/interface.c:778
++#: ../lib/interface.c:793
+ #, c-format
+ msgid " econet addr:%s\n"
+ msgstr " econeti aadr:%s\n"
+
+-#: ../lib/interface.c:785
++#: ../lib/interface.c:800
++#, c-format
+ msgid "[NO FLAGS] "
+ msgstr "[LIPPE POLE]"
+
+-#: ../lib/interface.c:787
++#: ../lib/interface.c:802
++#, c-format
+ msgid "UP "
+ msgstr "UP "
+
+-#: ../lib/interface.c:789
++#: ../lib/interface.c:804
++#, c-format
+ msgid "BROADCAST "
+ msgstr "BROADCAST "
+
+-#: ../lib/interface.c:791
++#: ../lib/interface.c:806
++#, c-format
+ msgid "DEBUG "
+ msgstr "DEBUG "
+
+-#: ../lib/interface.c:793
++#: ../lib/interface.c:808
++#, c-format
+ msgid "LOOPBACK "
+ msgstr "LOOPBACK "
+
+-#: ../lib/interface.c:795
++#: ../lib/interface.c:810
++#, c-format
+ msgid "POINTOPOINT "
+ msgstr "POINTOPOINT "
+
+-#: ../lib/interface.c:797
++#: ../lib/interface.c:812
++#, c-format
+ msgid "NOTRAILERS "
+ msgstr "NOTRAILERS "
+
+-#: ../lib/interface.c:799
++#: ../lib/interface.c:814
++#, c-format
+ msgid "RUNNING "
+ msgstr "RUNNING "
+
+-#: ../lib/interface.c:801
++#: ../lib/interface.c:816
++#, c-format
+ msgid "NOARP "
+ msgstr "NOARP "
+
+-#: ../lib/interface.c:803
++#: ../lib/interface.c:818
++#, c-format
+ msgid "PROMISC "
+ msgstr "PROMISC "
+
+-#: ../lib/interface.c:805
++#: ../lib/interface.c:820
++#, c-format
+ msgid "ALLMULTI "
+ msgstr "ALLMULTI "
+
+-#: ../lib/interface.c:807
++#: ../lib/interface.c:822
++#, c-format
+ msgid "SLAVE "
+ msgstr "SLAVE "
+
+-#: ../lib/interface.c:809
++#: ../lib/interface.c:824
++#, c-format
+ msgid "MASTER "
+ msgstr "MASTER "
+
+-#: ../lib/interface.c:811
++#: ../lib/interface.c:826
++#, c-format
+ msgid "MULTICAST "
+ msgstr "MULTICAST "
+
+-#: ../lib/interface.c:814
++#: ../lib/interface.c:829
++#, c-format
+ msgid "DYNAMIC "
+ msgstr "DYNAMIC "
+
+ #. DONT FORGET TO ADD THE FLAGS IN ife_print_short
+-#: ../lib/interface.c:817
++#: ../lib/interface.c:832
+ #, c-format
+ msgid " MTU:%d Metric:%d"
+ msgstr " MTU:%d meetrika:%d"
+
+-#: ../lib/interface.c:821
++#: ../lib/interface.c:836
+ #, c-format
+ msgid " Outfill:%d Keepalive:%d"
+ msgstr " lalhoidepakettide intervall:%d lalhoidetaimaut:%d"
+
+-#: ../lib/interface.c:835
++#: ../lib/interface.c:850
+ #, c-format
+ msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
+ msgstr "RX pakette:%llu vigu:%lu ra visatud:%lu letit:%lu kaadri vigu:%lu\n"
+
+-#: ../lib/interface.c:840
++#: ../lib/interface.c:855
+ #, c-format
+ msgid " compressed:%lu\n"
+ msgstr " pakitud:%lu\n"
+
+-#: ../lib/interface.c:852
++#: ../lib/interface.c:895
+ #, c-format
+ msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
+ msgstr "TX pakette:%llu vigu:%lu ra visatud:%lu letit:%lu carrier:%lu\n"
+
+-#: ../lib/interface.c:856
++#: ../lib/interface.c:899
+ #, c-format
+ msgid " collisions:%lu "
+ msgstr " kollisioone:%lu "
+
+-#: ../lib/interface.c:858
++#: ../lib/interface.c:901
+ #, c-format
+ msgid "compressed:%lu "
+ msgstr "pakitud:%lu "
+
+-#: ../lib/interface.c:860
++#: ../lib/interface.c:903
+ #, c-format
+ msgid "txqueuelen:%d "
+ msgstr "txqueuelen:%d "
+
+-#: ../lib/interface.c:862
++#: ../lib/interface.c:905
+ #, c-format
+ msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
+ msgstr "RX baite:%llu (%lu.%lu %s) TX baite:%llu (%lu.%lu %s)\n"
+
+-#: ../lib/interface.c:873
++#: ../lib/interface.c:916
+ #, c-format
+ msgid "Interrupt:%d "
+ msgstr "katkestus:%d "
+
+ #. Only print devices using it for
+ #. I/O maps
+-#: ../lib/interface.c:876
++#: ../lib/interface.c:919
+ #, c-format
+ msgid "Base address:0x%x "
+ msgstr "baasaadress:0x%x "
+
+-#: ../lib/interface.c:878
++#: ../lib/interface.c:921
+ #, c-format
+ msgid "Memory:%lx-%lx "
+ msgstr "mlu:%lx-%lx "
+
+-#: ../lib/interface.c:881
++#: ../lib/interface.c:924
+ #, c-format
+ msgid "DMA chan:%x "
+ msgstr "DMA kanal:%x "
+
+ #: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr "Ei leidnud htegi kasutatavat aadressiperekonda\n"
+
+@@ -2538,29 +3011,32 @@
+ msgid "ip: argument is wrong: %s\n"
+ msgstr "iptunnel: vale argument %s\n"
+
+-#: ../ipmaddr.c:58
++#: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n"
+
+-#: ../ipmaddr.c:59
++#: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+
+-#: ../ipmaddr.c:60
++#: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr " ipmaddr -V | -version\n"
+
+-#: ../ipmaddr.c:260
++#: ../ipmaddr.c:263
+ #, c-format
+ msgid "family %d "
+ msgstr "perekond %d "
+
+-#: ../ipmaddr.c:269
++#: ../ipmaddr.c:272
+ #, c-format
+ msgid " users %d"
+ msgstr " kasutajaid %d"
+
+-#: ../ipmaddr.c:355
++#: ../ipmaddr.c:358
+ msgid "Cannot create socket"
+ msgstr "Ei saa avada soklit"
+
+@@ -2575,6 +3051,7 @@
+ msgstr "slattach: tty_lock: (%s): %s\n"
+
+ #: ../slattach.c:192
++#, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr "slattach: ei saa PID faili kirjutada\n"
+
+@@ -2594,18 +3071,22 @@
+ msgstr "slattach: tty_hangup(RAISE): %s\n"
+
+ #: ../slattach.c:468
++#, c-format
+ msgid "slattach: tty name too long\n"
+ msgstr "slattach: terminali nimi on liiga pikk\n"
+
+ #: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr "slattach: tty_open: ei saa lugeda jooksvat olekut\n"
+
+ #: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+ msgstr "slattach: tty_open: liiniprotokolli ksimine ebannestus\n"
+
+ #: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr "slattach: tty_open: ei saa seada RAW moodi\n"
+
+@@ -2615,6 +3096,7 @@
+ msgstr "slattach: tty_open: ei saa seada kiiruseks %s bps\n"
+
+ #: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr "slattach: tty_open: ei saa seada 8N1 moodi\n"
+
+@@ -2637,3 +3119,20 @@
+ #, c-format
+ msgid " interface %s\n"
+ msgstr " liides %s\n"
++
++#~ msgid ""
++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
++#~ "<-''-\n"
++#~ msgstr ""
++#~ " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] "
++#~ "pub\n"
++
++#~ msgid "%s: unknown interface: %s\n"
++#~ msgstr "ifconfig: tundmatu liides %s: %s\n"
++
++#~ msgid " -n, --numeric dont resolve names\n"
++#~ msgstr ""
++#~ " -n, --numeric mitte lahendada numbreid nimedeks\n"
++
++#~ msgid "Routing table for `ddp' not yet supported.\n"
++#~ msgstr "`ddp' jaoks ruutingutabelit veel ei oska\n"
+--- net-tools-1.60.orig/po/de.po
++++ net-tools-1.60/po/de.po
+@@ -1,106 +1,121 @@
+-# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $
++# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $
+ # German translation for net-tools 1.51
+ # Copyright (C) 1999 Ralf Bchle <ralf@gnu.org>
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: net-tools 1.51\n"
+-"POT-Creation-Date: 2000-02-14 02:31+0100\n"
+-"PO-Revision-Date: 1998-03-01 00:02+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
++"PO-Revision-Date: 2005-06-13 00:02+0100\n"
+ "Last-Translator: Ralf Bchle <ralf@gnu.org>\n"
+ "Language-Team:\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=iso8859-1\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:110 ../arp.c:269
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+-msgstr "arp: Hostname mu angegeben werden\n"
++msgstr "arp: Hostname muss angegeben werden\n"
+
+-#: ../arp.c:207 ../arp.c:221
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+-msgstr "Kein ARP Eintrag fr %s\n"
++msgstr "Kein ARP-Eintrag fr %s\n"
+
+-#: ../arp.c:239
++#: ../arp.c:248
+ #, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr "rarp: Kann Eintrag aus %s : %u nicht setzen.\n"
+
+-#: ../arp.c:243
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr "arp: unpassende Protokolltypen.\n"
+
+-#: ../arp.c:252
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+-msgstr "arp: Gert ,,%s'' hat HW-Adresse %s ,,%s''.\n"
++msgstr "arp: Gert %s hat HW-Adresse %s %s.\n"
+
+-#: ../arp.c:282
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+-msgstr "arp: Hardwareadresse mu angegeben werden\n"
++msgstr "arp: Hardwareadresse muss angegeben werden\n"
+
+-#: ../arp.c:290
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr "arp: ungltige Hardwareadresse\n"
+
+-#: ../arp.c:387
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr "arp: Kann %s nicht ffnen!\n"
+
+-#: ../arp.c:403
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr "arp: Formatfehler in Zeile %u von Etherfile %s.\n"
+
+-#: ../arp.c:416
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr "arp: Kann Eintrag auf Zeile %u von Etherdatei %s nicht setzen!\n"
+
+-#: ../arp.c:437
+-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
++#: ../arp.c:448
++#, fuzzy, c-format
++msgid ""
++"Address HWtype HWaddress Flags Mask "
++"Iface\n"
+ msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n"
+
+-#: ../arp.c:467
++#: ../arp.c:476
++#, fuzzy
++msgid "<from_interface>"
++msgstr " Schnittstelle: %s\n"
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+-msgstr "(unvollsndig)"
++msgstr "(unvollstndig)"
+
+-#: ../arp.c:484
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr "%s (%s) auf "
+
+-#: ../arp.c:490
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr "<unvollstndig> "
+
+-#: ../arp.c:496
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr "netzmaske %s "
+
+-#: ../arp.c:513
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr "auf %s\n"
+
+-#: ../arp.c:592
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr "Eintrge: %d Ignoriert: %d Gefunden: %d\n"
+
+-#: ../arp.c:596
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr "%s (%s) -- kein Eintrag\n"
+
+-#: ../arp.c:598
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+-msgstr "arp: In %d Eintrgen wurde kein Zutreffender gefunden.\n"
++msgstr "arp: In %d Eintrgen wurde kein zutreffender gefunden.\n"
+
+-#: ../arp.c:613
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+@@ -109,157 +124,165 @@
+ "Benutzung:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<Hostname>]\n"
+
+-#: ../arp.c:614
++#: ../arp.c:627
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+ msgstr " arp [-v] [-i <if>] -d <Hostname> [pub][nopub]\n"
+
+-#: ../arp.c:615
++#: ../arp.c:628
++#, fuzzy, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+ msgstr " arp [-vnD] [<HW>] [-i <if>] -f <Dateiname> <- Eintrag aus Datei hinzufgen\n"
+
+-#: ../arp.c:616
++#: ../arp.c:629
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+ msgstr ""
+ " arp [-v] [<HW>] [-i <if>] -s <Rechnername> <hwaddr> [temp][nopub]\n"
+
+-#: ../arp.c:617
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n"
+-
+-#: ../arp.c:618
++#: ../arp.c:630
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+ msgstr " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub\n"
+
+-#: ../arp.c:620
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+ msgstr " -a Alle Hosts im BSD-Format anzeigen\n"
+
+-#: ../arp.c:621
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr " -s, --set Neuen ARP-Eintrag setzen\n"
+
+-#: ../arp.c:622
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr " -d, --delete Einen bestimmten Eintrag lschen\n"
+
+-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr " -v, --verbose Ausfhrliche Ausgaben\n"
+
+-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
+-msgid " -n, --numeric dont resolve names\n"
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, fuzzy, c-format
++msgid " -n, --numeric don't resolve names\n"
+ msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n"
+
+-#: ../arp.c:625
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+-msgstr " -i, --device Netzwerksgert (z.B. eth0) angeben\n"
++msgstr " -i, --device Netzwerkgert (z.B. eth0) angeben\n"
+
+-#: ../arp.c:626
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+ msgstr " -D, --use-device <hwaddr> von gegebenem Gert lesen\n"
+
+-#: ../arp.c:627
++#: ../arp.c:639
++#, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr " -A, -p, --protocol Routentabelle anzeigen\n"
+
+-#: ../arp.c:628
++#: ../arp.c:640
++#, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+ " -f, --file Neue Eintrge aus Datei lesen\n"
+ "\n"
+
+-#: ../arp.c:630 ../rarp.c:181
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+ msgstr " <HW>='-H <hw>' um Hardwareadresstyp anzugeben. Standard: %s\n"
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr " Liste mglicher Hardwaretypen, die ARP untersttzen:\n"
+
+-#: ../arp.c:664
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr "%s: Hardwaretyp nicht untersttzt!\n"
+
+-#: ../arp.c:668
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr "%s: Adressfamilie nicht untersttzt!\n"
+
+-#: ../arp.c:703
++#: ../arp.c:716
++#, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr "arp: -N noch nicht untersttzt.\n"
+
+-#: ../arp.c:713
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr "arp: %s: unbekannte Adressfamilie.\n"
+
+-#: ../arp.c:722
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr "arp: %s: unbekannter Hardwaretyp.\n"
+
+-#: ../arp.c:741
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+-msgstr "arp: %s: Kernel untersttzt nur ,,inet''.\n"
++msgstr "arp: %s: Kernel untersttzt nur inet.\n"
+
+-#: ../arp.c:746
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr "arp: %s: Hardware untersttzt kein ARP.\n"
+
+-#: ../hostname.c:69
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+-msgstr "Rechnernamen auf ,,%s'' setzen\n"
++msgstr "Rechnernamen auf %s setzen\n"
+
+-#: ../hostname.c:74
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr "%s: Nur Root darf den Rechnernamen ndern\n"
+
+-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr "%s: name zu lang\n"
+
+-#: ../hostname.c:89
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+-msgstr "Setze Hostname auf ,,%s''\n"
++msgstr "Setze Hostname auf %s\n"
+
+-#: ../hostname.c:94
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+-msgstr "%s: Nur Root darf then Rechnernamen ndern\n"
++msgstr "%s: Nur Root darf den Rechnernamen ndern\n"
+
+-#: ../hostname.c:108
++#: ../hostname.c:109
+ #, c-format
+ msgid "Setting domainname to `%s'\n"
+-msgstr "Setze domainname auf ,,%s''\n"
++msgstr "Setze domainname auf %s\n"
+
+-#: ../hostname.c:113
++#: ../hostname.c:114
+ #, c-format
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr "%s: Nur Root darf den Domainnamen ndern\n"
+@@ -267,51 +290,56 @@
+ #: ../hostname.c:131
+ #, c-format
+ msgid "Resolving `%s' ...\n"
+-msgstr "Lse ,,%s'' auf ...\n"
++msgstr "Lse %s auf ...\n"
+
+ #: ../hostname.c:137
+ #, c-format
+ msgid "Result: h_name=`%s'\n"
+-msgstr "Ergebnis: h_name=,,%s''\n"
++msgstr "Ergebnis: h_name=%s\n"
+
+ #: ../hostname.c:142
+ #, c-format
+ msgid "Result: h_aliases=`%s'\n"
+-msgstr "Ergebnis: h_aliases=,,%s''\n"
++msgstr "Ergebnis: h_aliases=%s\n"
+
+ #: ../hostname.c:147
+ #, c-format
+ msgid "Result: h_addr_list=`%s'\n"
+-msgstr "Ergebnis: h_addr_list=,,%s''\n"
++msgstr "Ergebnis: h_addr_list=%s\n"
+
+-#: ../hostname.c:209
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+-msgstr "%s: Kann ,,%s'' nicht ffnen\n"
++msgstr "%s: Kann %s nicht ffnen\n"
+
+-#: ../hostname.c:223
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+ msgstr ""
+ "Benutzung: hostname [-v] {Hostname|-F Datei} Hostname (aus Datei) setzen\n"
+
+-#: ../hostname.c:224
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+ msgstr ""
+-" domainname [-v] {nisdomain|-F file} NIS Domainname (aus Datei) "
++" domainname [-v] {nisdomain|-F file} NIS-Domainname (aus Datei) "
+ "setzen.\n"
+
+-#: ../hostname.c:226
++#: ../hostname.c:225
++#, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+ msgstr " nodename [-v] {Rechnername|-F Datei}\n"
+
+-#: ../hostname.c:228
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n]\n"
+
+-#: ../hostname.c:229
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+@@ -319,7 +347,8 @@
+ " hostname [-v] Hostnamen anzeigen\n"
+ "\n"
+
+-#: ../hostname.c:230
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+@@ -328,7 +357,8 @@
+ "beenden.\n"
+ "\n"
+
+-#: ../hostname.c:231
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+@@ -336,43 +366,52 @@
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+
+-#: ../hostname.c:232
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr " -s, --short Kurzer Hostname\n"
+
+-#: ../hostname.c:233
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr " -a, --alias Namensalias\n"
+
+-#: ../hostname.c:234
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr " -i, --ip-address Adressen fr den Hostnamen\n"
+
+-#: ../hostname.c:235
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr " -f, --fqdn, --long Langer Hostname (FQDN)\n"
+
+-#: ../hostname.c:236
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+-msgstr " -d, --domain DNS Domainname\n"
++msgstr " -d, --domain DNS-Domainname\n"
+
+-#: ../hostname.c:237
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+-msgstr " -y, --yp, --nis NIS/YP Domainname\n"
++msgstr " -y, --yp, --nis NIS/YP-Domainname\n"
+
+-#: ../hostname.c:239
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+-msgstr " -n, --node DECnet Knotennamen\n"
++msgstr " -n, --node DECnet-Knotennamen\n"
+
+-#: ../hostname.c:241
++#: ../hostname.c:240
++#, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+ msgstr ""
+-" -F, --file Hostnamen oder NIS Domainnamen aus Datei lesen\n"
++" -F, --file Hostnamen oder NIS-Domainnamen aus Datei lesen\n"
+ "\n"
+
+-#: ../hostname.c:243
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -380,395 +419,268 @@
+ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
+ " part of the FQDN) in the /etc/hosts file.\n"
+ msgstr ""
+-" Dies Kommando setzt oder gibt den Hostnamen oder NIS Domainnamen aus.\n"
+-" Es ist ebenfalls mglich die DNS Domain oder den FQDN (langen Hostnamen)\n"
++" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n"
++" Es ist ebenfalls mglich die DNS-Domain oder den FQDN (langen Hostnamen)\n"
+ " ausgeben zu lassen. Auer wenn DNS oder NIS als Namensdienst verwendet\n"
+-" wird, knnen FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n"
++" wird, knnen FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n"
+ " Teil des FQDNs ist) in /etc/hosts gendert werden.\n"
+
+ #: ../hostname.c:338
+ #, c-format
+ msgid "%s: You can't change the DNS domain name with this command\n"
+-msgstr "%s: Mit diesem Program kann der DNS Domainname nicht gendert werden\n"
++msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht gendert werden\n"
+
+ #: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+ msgstr ""
+ "\n"
+-"Wenn Bind oder NIS nicht zur Hostnamensauflsung benutzt werden, kann der "
+-"DNS\n"
++"Wenn Bind oder NIS nicht zur Hostnamensauflsung benutzt werden, kann der DNS\n"
+
+ #: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+-msgstr ""
+-"Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts gendert "
+-"werden.\n"
++msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts gendert werden.\n"
+
+ #: ../hostname.c:357
+ #, c-format
+ msgid "gethostname()=`%s'\n"
+-msgstr "gethostname()=,,%s''\n"
++msgstr "gethostname()=%s\n"
+
+ #: ../hostname.c:374
+ #, c-format
+ msgid "getdomainname()=`%s'\n"
+-msgstr "getdomainname()=,,%s''\n"
++msgstr "getdomainname()=%s\n"
+
+ #: ../hostname.c:389
+ #, c-format
+ msgid "getnodename()=`%s'\n"
+-msgstr "getnodename()=,,%s''\n"
++msgstr "getnodename()=%s\n"
+
+-#: ../ifconfig.c:159
+-#, c-format
+-msgid "%-9.9s Link encap:%s "
+-msgstr "%-9.9s Protokoll:%s "
++#: ../ifconfig.c:107
++#, fuzzy, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-lf TX-OK TX-Feh TX-DRP TX-b Flg\n"
+
+-#: ../ifconfig.c:164
+-#, c-format
+-msgid "HWaddr %s "
+-msgstr "Hardware Adresse %s "
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, fuzzy, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n"
+
+-#: ../ifconfig.c:167
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
+ #, c-format
+-msgid "Media:%s"
+-msgstr "Medium:%s"
++msgid "No support for INET on this system.\n"
++msgstr "INET ist auf diesem System nicht verfgbar.\n"
+
+-#: ../ifconfig.c:169
+-msgid "(auto)"
+-msgstr "(auto)"
++#: ../ifconfig.c:193
++#, fuzzy, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n"
+
+-#: ../ifconfig.c:176
+-#, c-format
+-msgid " %s addr:%s "
+-msgstr " %s Adresse:%s "
++#: ../ifconfig.c:202
++#, fuzzy, c-format
++msgid ""
++"Usage:\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
++msgstr ""
++"Syntax:\n"
++" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n"
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:204
+ #, c-format
+-msgid " P-t-P:%s "
+-msgstr " P-z-P:%s "
++msgid " [add <address>[/<prefixlen>]]\n"
++msgstr " [add <Adresse>[/<Prfixlnge>]]\n"
+
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:205
+ #, c-format
+-msgid " Bcast:%s "
+-msgstr " Bcast:%s "
++msgid " [del <address>[/<prefixlen>]]\n"
++msgstr " [del <Adresse>[/<Prfixlnge>]]\n"
+
+-#: ../ifconfig.c:184
++#: ../ifconfig.c:206
+ #, c-format
+-msgid " Mask:%s\n"
+-msgstr " Maske:%s\n"
++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
++msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n"
+
+-#: ../ifconfig.c:201
++#: ../ifconfig.c:207
+ #, c-format
+-msgid " inet6 addr: %s/%d"
+-msgstr " inet6 Adresse: %s/%d"
+-
+-#: ../ifconfig.c:203
+-msgid " Scope:"
+-msgstr " Gltigkeitsbereich:"
+-
+-#: ../ifconfig.c:206
+-msgid "Global"
+-msgstr "Global"
++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
++msgstr " [netmask <Adresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n"
+
+-#: ../ifconfig.c:209
+-msgid "Link"
+-msgstr "Verbindung"
++#: ../ifconfig.c:210
++#, c-format
++msgid " [outfill <NN>] [keepalive <NN>]\n"
++msgstr " [outfill <NN>] [keepalive <NN>]\n"
+
+ #: ../ifconfig.c:212
+-msgid "Site"
+-msgstr "Standort"
+-
+-#: ../ifconfig.c:215
+-msgid "Compat"
+-msgstr "Kompatibilitt"
+-
+-#: ../ifconfig.c:218
+-msgid "Host"
+-msgstr "Maschine"
+-
+-#: ../ifconfig.c:221
+-msgid "Unknown"
+-msgstr "Unbekannt"
+-
+-#: ../ifconfig.c:236
+ #, c-format
+-msgid " IPX/Ethernet II addr:%s\n"
+-msgstr " IPX/Ethernet II Adresse:%s\n"
++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
++msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n"
+
+-#: ../ifconfig.c:239
++#: ../ifconfig.c:213
+ #, c-format
+-msgid " IPX/Ethernet SNAP addr:%s\n"
+-msgstr " IPX/Ethernet SNAP Adresse:%s\n"
++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+
+-#: ../ifconfig.c:242
++#: ../ifconfig.c:214
+ #, c-format
+-msgid " IPX/Ethernet 802.2 addr:%s\n"
+-msgstr " IPX/Ethernet 802.2 Adresse:%s\n"
++msgid " [multicast] [[-]promisc]\n"
++msgstr " [multicast] [[-]promisc]\n"
+
+-#: ../ifconfig.c:245
++#: ../ifconfig.c:215
+ #, c-format
+-msgid " IPX/Ethernet 802.3 addr:%s\n"
+-msgstr " IPX/Ethernet 802.3 Adresse:%s\n"
++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n"
+
+-#: ../ifconfig.c:255
++#: ../ifconfig.c:217
+ #, c-format
+-msgid " EtherTalk Phase 2 addr:%s\n"
+-msgstr " EtherTalk Phase 2 Adresse:%s\n"
++msgid " [txqueuelen <NN>]\n"
++msgstr " [txqueuelen <Lnge>]\n"
+
+-#: ../ifconfig.c:264
++#: ../ifconfig.c:220
+ #, c-format
+-msgid " econet addr:%s\n"
+-msgstr " econet Adresse:%s\n"
+-
+-#: ../ifconfig.c:270
+-msgid "[NO FLAGS] "
+-msgstr "[KEINE FLAGS] "
+-
+-#: ../ifconfig.c:272
+-msgid "UP "
+-msgstr "UP "
+-
+-#: ../ifconfig.c:274
+-msgid "BROADCAST "
+-msgstr "BROADCAST "
+-
+-#: ../ifconfig.c:276
+-msgid "DEBUG "
+-msgstr "DEBUG "
+-
+-#: ../ifconfig.c:278
+-msgid "LOOPBACK "
+-msgstr "LOOPBACK "
+-
+-#: ../ifconfig.c:280
+-msgid "POINTOPOINT "
+-msgstr "PUNKTZUPUNKT "
+-
+-#: ../ifconfig.c:282
+-msgid "NOTRAILERS "
+-msgstr "NOTRAILERS "
++msgid " [[-]dynamic]\n"
++msgstr " [[-]dynamic]\n"
+
+-#: ../ifconfig.c:284
+-msgid "RUNNING "
+-msgstr "RUNNING "
++#: ../ifconfig.c:222
++#, c-format
++msgid ""
++" [up|down] ...\n"
++"\n"
++msgstr ""
++" [up|down] ...\n"
++"\n"
+
+-#: ../ifconfig.c:286
+-msgid "NOARP "
+-msgstr "NOARP "
++#: ../ifconfig.c:224
++#, c-format
++msgid " <HW>=Hardware Type.\n"
++msgstr " <HW>=Hardwaretyp.\n"
+
+-#: ../ifconfig.c:288
+-msgid "PROMISC "
+-msgstr "PROMISC "
++#: ../ifconfig.c:225
++#, c-format
++msgid " List of possible hardware types:\n"
++msgstr " Liste mglicher Hardwaretypen:\n"
+
+-#: ../ifconfig.c:290
+-msgid "ALLMULTI "
+-msgstr "ALLMULTI "
++#. 1 = ARPable
++#: ../ifconfig.c:227
++#, c-format
++msgid " <AF>=Address family. Default: %s\n"
++msgstr " <AF>=Adressfamilie. Standardwert: %s\n"
+
+-#: ../ifconfig.c:292
+-msgid "SLAVE "
+-msgstr "SLAVE "
++#: ../ifconfig.c:228
++#, c-format
++msgid " List of possible address families:\n"
++msgstr " List der mglichen Adressfamilien:\n"
+
+-#: ../ifconfig.c:294
+-msgid "MASTER "
+-msgstr "MASTER "
++#: ../ifconfig.c:303
++#, c-format
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr ""
+
+-#: ../ifconfig.c:296
+-msgid "MULTICAST "
+-msgstr "MULTICAST "
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr ""
+
+-#: ../ifconfig.c:299
+-msgid "DYNAMIC "
+-msgstr "DYNAMIC "
++#: ../ifconfig.c:380
++#, c-format
++msgid "Unknown media type.\n"
++msgstr "Typ des Mediums unbekannt.\n"
+
+-#: ../ifconfig.c:302
++#: ../ifconfig.c:417
+ #, c-format
+-msgid " MTU:%d Metric:%d"
+-msgstr " MTU:%d Metric:%d"
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
+
+-#: ../ifconfig.c:306
++#: ../ifconfig.c:429
+ #, c-format
+-msgid " Outfill:%d Keepalive:%d"
+-msgstr " Outfill:%d Keepalive:%d"
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:320
++#: ../ifconfig.c:441
+ #, c-format
+-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
+ msgstr ""
+-"Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu berlauf:%lu Rahmen:%lu\n"
+
+-#: ../ifconfig.c:325
++#: ../ifconfig.c:465
+ #, c-format
+-msgid " compressed:%lu\n"
+-msgstr " komprimiert:%lu\n"
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:329
++#: ../ifconfig.c:523
+ #, c-format
+-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
+ msgstr ""
+-"Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu berlauf:%lu Trger:%lu\n"
+
+-#: ../ifconfig.c:333
++#: ../ifconfig.c:652
+ #, c-format
+-msgid " collisions:%lu "
+-msgstr " Kollisionen:%lu "
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:335
++#: ../ifconfig.c:684
+ #, c-format
+-msgid "compressed:%lu "
+-msgstr "Komprimiert:%lu "
++msgid "hw address type `%s' has no handler to set address. failed.\n"
++msgstr ""
+
+-#: ../ifconfig.c:337
++#: ../ifconfig.c:693
+ #, c-format
+-msgid "txqueuelen:%d "
+-msgstr "Sendewarteschlangenlnge:%d "
++msgid "%s: invalid %s address.\n"
++msgstr "%s: ungltige %s Adresse.\n"
+
+-#: ../ifconfig.c:345
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
+ #, c-format
+-msgid "Interrupt:%d "
+-msgstr "Interrupt:%d "
+-
+-#. Only print devices using it for
+-#. I/O maps
+-#: ../ifconfig.c:348
+-#, c-format
+-msgid "Base address:0x%x "
+-msgstr "Basisadresse:0x%x "
+-
+-#: ../ifconfig.c:350
+-#, c-format
+-msgid "Memory:%lx-%lx "
+-msgstr "Speicher:%lx-%lx "
+-
+-#: ../ifconfig.c:353
+-#, c-format
+-msgid "DMA chan:%x "
+-msgstr "DMA Kanal:%x "
++msgid "No support for INET6 on this system.\n"
++msgstr "INET6 ist auf diesem System nicht verfgbar.\n"
+
+-#: ../ifconfig.c:384 ../ifconfig.c:405
++#: ../ifconfig.c:780 ../ifconfig.c:871
+ #, c-format
+-msgid "%s: unknown interface: %s\n"
+-msgstr "%s: unbekannte Schnittstelle: %s\n"
+-
+-#: ../ifconfig.c:421
+-msgid ""
+-"Usage:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
+-msgstr ""
+-"Syntax:\n"
+-" ifconfig [-a] [-i] [-v] <Schnittstelle> [[<AF>] <Adresse>]\n"
+-
+-#: ../ifconfig.c:425
+-msgid " [add <address>[/<prefixlen>]]\n"
+-msgstr " [add <Adresse>[/<Prefixlnge>]]\n"
+-
+-#: ../ifconfig.c:427
+-msgid " [del <address>[/<prefixlen>]]\n"
+-msgstr " [del <Adresse>[/<Prefixlnge>]]\n"
+-
+-#: ../ifconfig.c:432
+-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+-msgstr " [[-]broadcast [<Adresse>]] [[-]pointopoint [<Adresse>]]\n"
+-
+-#: ../ifconfig.c:433
+-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+-msgstr " [netmask <Addresse>] [dstaddr <Adresse>] [tunnel <Adresse>]\n"
+-
+-#: ../ifconfig.c:436
+-msgid " [outfill <NN>] [keepalive <NN>]\n"
+-msgstr " [outfill <NN>] [keepalive <NN>]\n"
+-
+-#: ../ifconfig.c:438
+-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+-msgstr " [hw <HW> <Adresse>] [metric <NN>] [mtu <NN>]\n"
+-
+-#: ../ifconfig.c:439
+-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-
+-#: ../ifconfig.c:440
+-msgid " [multicast] [[-]promisc]\n"
+-msgstr " [multicast] [[-]promisc]\n"
+-
+-#: ../ifconfig.c:441
+-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <Typ>]\n"
+-
+-#: ../ifconfig.c:443
+-msgid " [txqueuelen <NN>]\n"
+-msgstr " [txqueuelen <Lnge>]\n"
+-
+-#: ../ifconfig.c:446
+-msgid " [[-]dynamic]\n"
+-msgstr " [[-]dynamic]\n"
+-
+-#: ../ifconfig.c:448
+-msgid ""
+-" [up|down] ...\n"
+-"\n"
++msgid "Interface %s not initialized\n"
+ msgstr ""
+-" [up|down] ...\n"
+-"\n"
+-
+-#: ../ifconfig.c:450
+-msgid " <HW>=Hardware Type.\n"
+-msgstr " <HW>=Hardwaretyp.\n"
+-
+-#: ../ifconfig.c:451
+-msgid " List of possible hardware types:\n"
+-msgstr " Liste mglicher Hardwaretypen:\n"
+-
+-#. 1 = ARPable
+-#: ../ifconfig.c:453
+-#, c-format
+-msgid " <AF>=Address family. Default: %s\n"
+-msgstr " <AF>=Adressfamilie. Standardwert: %s\n"
+-
+-#: ../ifconfig.c:454
+-msgid " List of possible address families:\n"
+-msgstr " List der mglichen Adressfamilien:\n"
+-
+-#: ../ifconfig.c:593
+-msgid "Unknown media type.\n"
+-msgstr "Typ des Mediums unbekannt.\n"
+
+-#: ../ifconfig.c:881
+-#, c-format
+-msgid "%s: invalid %s address.\n"
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, fuzzy, c-format
++msgid "Bad address.\n"
+ msgstr "%s: ungltige %s Adresse.\n"
+
+-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
+-msgid "No support for INET6 on this system.\n"
+-msgstr "INET6 ist auf diesem System nicht verfgbar.\n"
+-
+-#: ../ifconfig.c:983
++#: ../ifconfig.c:885
++#, c-format
+ msgid "Address deletion not supported on this system.\n"
+-msgstr "Das Lschen von Adressen ist auf diesem System nicht untersttzt.\n"
++msgstr "Das Lschen von Adressen wird auf diesem System nicht untersttzt.\n"
+
+-#: ../ifconfig.c:1066
+-msgid "No support for INET on this system.\n"
+-msgstr "INET ist auf diesem System nicht verfgbar.\n"
++#: ../ifconfig.c:957
++#, fuzzy, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "Kann die Adressen der Familie %d nicht setzen.\n"
+
+-#: ../ifconfig.c:1076
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr "ECONET wird auf diesem System nicht untersttzt.\n"
+
+-#: ../ifconfig.c:1084
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr "Kann die Adressen der Familie %d nicht setzen.\n"
+
+-#: ../netstat.c:383
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+-msgstr ""
+-"(Fr \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie "
+-"sollten Root sein.)\n"
++msgstr "(Fr \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie sollten Root sein.)\n"
+
+-#: ../netstat.c:387
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+@@ -776,198 +688,220 @@
+ "(Es konnten nicht alle Prozesse identifiziert werden; Informationen ber\n"
+ "nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)\n"
+
+-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr "HRT"
+
+-#: ../netstat.c:395
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr "VERBINGSAUFBAU GESCHICKT"
+
+-#: ../netstat.c:396 ../netstat.c:1168
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr "VERBINDUNGSABBAU GESCHICKT"
+
+-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr "VERBUNDEN"
+
+-#: ../netstat.c:419
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr "Aktive NET/ROM Sockets\n"
+
+-#: ../netstat.c:420
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
+-msgstr ""
+-"Benutzer Ziel Quelle Gert Zustand Vr/Vs Send-Q "
+-"Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Benutzer Ziel Quelle Gert Zustand Vr/Vs Send-Q Recv-Q\n"
+
+-#: ../netstat.c:430 ../netstat.c:1208
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr "Probleme beim Lesen von %s\n"
+
+-#: ../netstat.c:465
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr "SYN_SENT"
+
+-#: ../netstat.c:466
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr "SYN_RECV"
+
+-#: ../netstat.c:467
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr "FIN_WAIT1"
+
+-#: ../netstat.c:468
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr "FIN_WAIT2"
+
+-#: ../netstat.c:469
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr "TIME_WAIT"
+
+-#: ../netstat.c:470
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr "CLOSE"
+
+-#: ../netstat.c:471
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr "CLOSE_WAIT"
+
+-#: ../netstat.c:472
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr "LAST_ACK"
+
+-#: ../netstat.c:473
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr "LISTEN"
+
+-#: ../netstat.c:474
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr "CLOSING"
+
+-#: ../netstat.c:544
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr "Warnung, fehlerhafte igmp6 line %d.\n"
+
+-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
+-#: ../netstat.c:935 ../netstat.c:940
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr "netstat: Nicht untersttzte Adressfamilie %d!\n"
+
+-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr "Warnung, fehlerhafte igmp-Zeile %d.\n"
+
+-#: ../netstat.c:666
++#: ../netstat.c:677
++#, fuzzy, c-format
++msgid "Active X.25 sockets\n"
++msgstr "Aktive AX.25 Sockets\n"
++
++#. IMHO, Vr/Vs is not very usefull --SF
++#: ../netstat.c:679
++#, fuzzy, c-format
++msgid ""
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Ziel Quelle Gert Zustand Vr/Vs Send-Q Empf-Q\n"
++
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr "Warnung, fehlerhafte TCP Zeile.\n"
+
+-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr "aus (0.00/%ld/%d)"
+
+-#: ../netstat.c:708
++#: ../netstat.c:804
+ #, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr "ein (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:713
++#: ../netstat.c:809
+ #, fuzzy, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr "ein%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:718
++#: ../netstat.c:814
+ #, fuzzy, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr "ein%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr "unkn-%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:799
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr "Warnung, fehlerhafe UDP-Zeile.\n"
+
+-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr "UNBEKANNT"
+
+-#: ../netstat.c:860 ../netstat.c:980
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr "ein%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:949
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr "Warnung, fehlerhafte raw-Zeile.\n"
+
+-#: ../netstat.c:1028
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr "Warnung, fehlerhafte UNIX-Zeile.\n"
+
+-#: ../netstat.c:1055
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr "STREAM"
+
+-#: ../netstat.c:1059
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr "DGRAM"
+
+-#: ../netstat.c:1063
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr "RAW"
+
+-#: ../netstat.c:1067
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr "RDM"
+
+-#: ../netstat.c:1071
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+-msgstr "SEQPACKET"
++msgstr "SEQPAKET"
+
+-#: ../netstat.c:1080
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr "FREI"
+
+-#: ../netstat.c:1096
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr "VERBINDUNGSAUFBAU"
+
+-#: ../netstat.c:1100
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr "VERBUNDEN"
+
+-#: ../netstat.c:1104
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr "VERBINDUNGSABBAU"
+
+-#: ../netstat.c:1135
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+-msgstr "Aktive Sockets in der UNIX Domne "
++msgstr "Aktive Sockets in der UNIX-Domne "
+
+-#: ../netstat.c:1137 ../netstat.c:1666
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr "(Server und stehende Verbindungen)"
+
+-#: ../netstat.c:1140 ../netstat.c:1669
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr "(Nur Server)"
+
+-#: ../netstat.c:1142 ../netstat.c:1671
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr "(ohne Server)"
+
+-#: ../netstat.c:1145
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+@@ -975,90 +909,90 @@
+ "\n"
+ "Proto RefZh Flaggen Typ Zustand I-Node"
+
+-#: ../netstat.c:1147
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr " Pfad\n"
+
+-#: ../netstat.c:1167
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr "SABM GESCHICKT"
+
+-#: ../netstat.c:1170
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr "WIEDERHERSTELLUNG"
+
+-#: ../netstat.c:1184
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr "Aktive AX.25 Sockets\n"
+
+-#: ../netstat.c:1185
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr "Ziel Quelle Gert Zustand Vr/Vs Send-Q Empf-Q\n"
+
+-#: ../netstat.c:1228
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr "Problem beim Lesen von Daten von %s\n"
+
+-#: ../netstat.c:1279
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+ "State"
+ msgstr ""
+ "Aktive IPX Sockets\n"
+-"Proto Recv-Q Send-Q Lokale Adresse Gegenaddress "
++"Proto Recv-Q Send-Q Lokale Adresse Gegenadresse "
+ "Zustand"
+
+-#: ../netstat.c:1281
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr " Benutzer"
+
+-#: ../netstat.c:1315
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr "VERBUNDEN"
+
+-#: ../netstat.c:1323
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr "UNB."
+
+-#: ../netstat.c:1367
+-msgid " - no statistics available -"
+-msgstr " - keine Statistiken verfgbar -"
+-
+-#: ../netstat.c:1370
+-msgid "[NO FLAGS]"
+-msgstr "[KEINE FLAGS]"
+-
+-#: ../netstat.c:1400
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+-msgstr "Kernel Schnittstellentabelle\n"
++msgstr "Kernel-Schnittstellentabelle\n"
+
+-#: ../netstat.c:1401
++#: ../netstat.c:1465
++#, fuzzy, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+-"Flg\n"
+-msgstr ""
+-"SStelle MTU Met RX-OK RX-Feh RX-DRP RX-lf TX-OK TX-Feh TX-DRP TX-b "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
++msgstr "SStelle MTU Met RX-OK RX-Feh RX-DRP RX-lf TX-OK TX-Feh TX-DRP TX-b Flg\n"
+
+-#: ../netstat.c:1404
++#: ../netstat.c:1469
+ msgid "missing interface information"
+-msgstr "Fehlende Interfaceinformation"
++msgstr "Fehlende Interfaceinformationen"
+
+-#: ../netstat.c:1425
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+ "Benutzung: netstat [-veenNcCF] [<Af>] -r\n"
+ " netstat {-V|--version|-h|--help}\n"
+
+-#: ../netstat.c:1426
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr " netstat [-vnNcaeol] [<Socket> ...]\n"
+
+-#: ../netstat.c:1427
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+@@ -1066,27 +1000,32 @@
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+
+-#: ../netstat.c:1429
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr " -r, --route Routentabelle anzeigen\n"
+
+-#: ../netstat.c:1430
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr " -i, --interfaces Schnittstellentabelle auflisten\n"
+
+-#: ../netstat.c:1431
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr ""
+ " -g, --groups Mitgliedschaft in Multicastgruppen "
+ "anzeigen\n"
+
+-#: ../netstat.c:1432
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+ msgstr ""
+ " -s, --statistics Netzwerksstatistiken anzeigen (wie SNMP)\n"
+
+-#: ../netstat.c:1434
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+@@ -1094,23 +1033,38 @@
+ " -M, --masquerade Maskierte Verbindungen auflisten\n"
+ "\n"
+
+-#: ../netstat.c:1438 ../route.c:87
++#: ../netstat.c:1505
++#, fuzzy, c-format
++msgid " --numeric-hosts don't resolve host names\n"
++msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n"
++
++#: ../netstat.c:1506
++#, fuzzy, c-format
++msgid " --numeric-ports don't resolve port names\n"
++msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n"
++
++#: ../netstat.c:1507
++#, fuzzy, c-format
++msgid " --numeric-users don't resolve user names\n"
++msgstr " -n, --numeric Adressen nicht nach Namen auflsen\n"
++
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr " -N, --symbolic Hardwarenamen auflsen\n"
+
+-#: ../netstat.c:1439 ../route.c:88
+-#, fuzzy
++#: ../netstat.c:1509 ../route.c:88
++#, fuzzy, c-format
+ msgid " -e, --extend display other/more information\n"
+-msgstr ""
+-" -e, --extend Weitere / zustzliche Informationen "
+-"anzeigen\n"
++msgstr " -e, --extend Weitere / zustzliche Informationen anzeigen\n"
+
+-#: ../netstat.c:1440
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+-msgstr ""
+-" -p, --programs PID/Programmnamen fr Sockets anzeigen\n"
++msgstr " -p, --programs PID/Programmnamen fr Sockets anzeigen\n"
+
+-#: ../netstat.c:1441
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+@@ -1118,24 +1072,27 @@
+ " -c, --continuous Anzeige laufend aktualisieren\n"
+ "\n"
+
+-#: ../netstat.c:1442
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+ msgstr ""
+ " -l, --listening Empfangsbereite Serversockets auflisten\n"
+
+-#: ../netstat.c:1443
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+ msgstr ""
+ " -a, --all, --listening Alle Sockets anzeigen (normal: nur "
+ "verbundene)\n"
+
+-#: ../netstat.c:1444
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr " -o, --timers Timer auflisten\n"
+
+-#: ../netstat.c:1445 ../route.c:89
+-#, fuzzy
++#: ../netstat.c:1515 ../route.c:89
++#, fuzzy, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+@@ -1143,7 +1100,8 @@
+ " -F, --fib Forwarding Infomation Base anzeigen "
+ "(Standard)\n"
+
+-#: ../netstat.c:1446 ../route.c:90
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+@@ -1151,110 +1109,118 @@
+ " -C, --cache Routencache statt FIB anzeigen\n"
+ "\n"
+
+-#: ../netstat.c:1448
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+
+-#: ../netstat.c:1449 ../route.c:92
+-#, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
++#: ../netstat.c:1519
++#, fuzzy, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n"
+
+-#: ../netstat.c:1450 ../route.c:93
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+ msgstr " Liste mglicher Adressfamilien, die Routen untersttzen:\n"
+
+-#: ../netstat.c:1663
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr "Aktive Internetverbindungen "
+
+-#: ../netstat.c:1673
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+
+-#: ../netstat.c:1675
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr " Benutzer Inode "
+
+-#: ../netstat.c:1678
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr " Timer"
+
+-#: ../netstat.c:1708
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+-msgstr "IPv4 Gruppenmitgliedschaften\n"
++msgstr "IPv4-Gruppenmitgliedschaften\n"
+
+-#: ../netstat.c:1709
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr "Schnittstelle RefZh Grupp\n"
+
+-#: ../rarp.c:43
++#: ../rarp.c:44
+ msgid "This kernel does not support RARP.\n"
+ msgstr "Dieser Kernel untersttzt kein RARP.\n"
+
+-#: ../rarp.c:82
++#: ../rarp.c:83
+ #, c-format
+ msgid "no RARP entry for %s.\n"
+-msgstr "Kein RARP Eintrag fr %s.\n"
++msgstr "Kein RARP-Eintrag fr %s.\n"
+
+-#: ../rarp.c:95
++#: ../rarp.c:96
+ #, c-format
+ msgid "%s: bad hardware address\n"
+ msgstr "%s: fehlerhafte Hardwareadresse\n"
+
+-#: ../rarp.c:127
++#: ../rarp.c:128
+ #, c-format
+ msgid "rarp: cannot open file %s:%s.\n"
+ msgstr "rarp: kann Datei %s:%s nicht ffnen.\n"
+
+-#: ../rarp.c:139
++#: ../rarp.c:140
+ #, c-format
+ msgid "rarp: format error at %s:%u\n"
+ msgstr "rarp: Formatfehler bei %s:%u\n"
+
+-#: ../rarp.c:143 ../rarp.c:287
++#: ../rarp.c:144 ../rarp.c:289
+ #, c-format
+ msgid "rarp: %s: unknown host\n"
+ msgstr "rarp: %s: Unbekannter Host\n"
+
+-#: ../rarp.c:146
++#: ../rarp.c:147
+ #, c-format
+ msgid "rarp: cannot set entry from %s:%u\n"
+ msgstr "rarp: Kann Eintrag aus %s:%u nicht setzen.\n"
+
+-#: ../rarp.c:175
++#: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+-msgstr ""
+-"Benutzung: rarp -a Eintrge im Cache listen.\n"
++msgstr "Benutzung: rarp -a Eintrge im Cache listen.\n"
+
+-#: ../rarp.c:176
++#: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+-msgstr ""
+-" rarp -d <hostname> Eintrag aus dem Cache lschen.\n"
++msgstr " rarp -d <hostname> Eintrag aus dem Cache lschen.\n"
+
+-#: ../rarp.c:177
++#: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+-msgstr ""
+-" rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufgen.\n"
++msgstr " rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufgen.\n"
+
+-#: ../rarp.c:178
++#: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+-msgstr ""
+-" rarp -f Eintrge aus /etc/ethers "
+-"zufgen.\n"
++msgstr " rarp -f Eintrge aus /etc/ethers zufgen.\n"
+
+-#: ../rarp.c:179
++#: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+@@ -1262,24 +1228,26 @@
+ " rarp -V Programmversion anzeigen.\n"
+ "\n"
+
+-#: ../rarp.c:236
++#: ../rarp.c:238
+ #, c-format
+ msgid "%s: illegal option mix.\n"
+ msgstr "%s: Unerlaubte Mischung von Optionen.\n"
+
+-#: ../rarp.c:267
++#: ../rarp.c:269
+ #, c-format
+ msgid "rarp: %s: unknown hardware type.\n"
+-msgstr "rarp: %s: unknown hardware type.\n"
++msgstr "rarp: %s: unbekannter Hardwaretyp.\n"
+
+-#: ../route.c:79
++#: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+ "Benutzung: route [-nNvee] [-FC] [<AF>] Kernelroutentabelle "
+ "anzeigen\n"
+
+-#: ../route.c:80
++#: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+@@ -1287,14 +1255,15 @@
+ " route [-v] [-FC] {add|del|flush} ... Routentabelle fr AF ndern.\n"
+ "\n"
+
+-#: ../route.c:82
++#: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+-msgstr ""
+-" route {-h|--help} [<AF>] Genaue Syntax fr AF anzeigen.\n"
++msgstr " route {-h|--help} [<AF>] Genaue Syntax fr AF anzeigen.\n"
+
+-#: ../route.c:83
++#: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+@@ -1304,590 +1273,891 @@
+ "Ende.\n"
+ "\n"
+
++#: ../route.c:92
++#, fuzzy, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>=,,-A <af>'' or ,,--<af>'' benutzen. Standard: %s\n"
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr "Benutzung: plipconfig [-a] [-i] [-v] Interface\n"
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr " [nibble NN] [trigger NN]\n"
+
+ #: ../plipconfig.c:68
+-#, fuzzy
++#, c-format
+ msgid " plipconfig -V | --version\n"
+-msgstr " plipconfig -V\n"
++msgstr " plipconfig -V | --version\n"
+
+ #: ../plipconfig.c:74
+ #, c-format
+ msgid "%s\tnibble %lu trigger %lu\n"
+ msgstr "%s\tnibble %lu trigger %lu\n"
+
+-#: ../iptunnel.c:79
++#: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr "Benutzung: iptunnel { add | change | del | show } [ NAME ]\n"
+
+-#: ../iptunnel.c:80
++#: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+ msgstr " [ mode { ipip | gre | sit } ] [ remote ADR ] [ local ADR ]\n"
+
+-#: ../iptunnel.c:81
++#: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr " [ [i|o]seq ] [ [i|o]key SCHLSSEL ] [ [i|o]csum ]\n"
+
+-#: ../iptunnel.c:82
+-#, fuzzy
++#: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+-msgstr ""
+-" [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERt ]\n"
+-"\n"
++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERt ]\n"
+
+-#: ../iptunnel.c:83
++#: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+ msgstr ""
++" iptunnel -V | --version\n"
++"\n"
+
+-#: ../iptunnel.c:84
++#: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr "Wobei: NAME := ZEICHENKETTE\n"
+
+-#: ../iptunnel.c:85
++#: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr " ADR := { IP_ADRESSE | any }\n"
+
+-#: ../iptunnel.c:86
++#: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr " TOS := { NUMBER | inherit }\n"
+
+-#: ../iptunnel.c:87
++#: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr " TTL := { 1..255 | inherit }\n"
+
+-#: ../iptunnel.c:88
++#: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr " KEY := { DOTTED_QUAD | ZAHL }\n"
+
+-#: ../iptunnel.c:326
++#: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr "Schlssel sind mit ipip und sit nicht erlaubt.\n"
+
+-#: ../iptunnel.c:346
++#: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr "Ein Broadcasttunnel ist nur mit einer Quelladresse mglich\n"
+
+-#: ../iptunnel.c:361
++#: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr "ttl != 0 und noptmudisc sind inkompatibel\n"
+
+-#: ../iptunnel.c:373
++#: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr ""
+ "Die Tunnelbetriebsart (ipip, fre oder sit) kann nicht festgestellt werden\n"
+
+-#: ../iptunnel.c:411
++#: ../iptunnel.c:417
+ #, c-format
+ msgid "%s: %s/ip remote %s local %s "
+ msgstr "%s: %s/ip Gegenseite %s lokal %s "
+
+-#: ../iptunnel.c:415
++#: ../iptunnel.c:421
+ msgid "unknown"
+ msgstr "Unbekannt"
+
+-#: ../iptunnel.c:447
++#: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr " Pakete auer der Reihenfolge fallenlassen.\n"
+
+-#: ../iptunnel.c:449
++#: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr " Prfsumme im empfangenen Paket wird bentigt.\n"
+
+-#: ../iptunnel.c:451
++#: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr " Pakete in Reihenfolge ausgeben.\n"
+
+-#: ../iptunnel.c:453
++#: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr " Prfsumme fr ausgegebene Pakete berechnen.\n"
+
+-#: ../iptunnel.c:481
++#: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+-msgstr "Falsches Format von /proc/net/dev. Tut mir leid\n"
++msgstr "Falsches Format von /proc/net/dev. Tut mir leid.\n"
+
+-#: ../iptunnel.c:494
++#: ../iptunnel.c:500
+ #, c-format
+ msgid "Failed to get type of [%s]\n"
+ msgstr "Kann den Typ von [%s] nicht holen\n"
+
+-#: ../iptunnel.c:510
++#: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr "RX: Pakete Bytes Fehler CsumErrs OutOfSeq Mcasts\n"
+
+-#: ../iptunnel.c:513
++#: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr "TX: Pakete Bytes Fehler DeadLoop NoRoute NoBufs\n"
+
+-#: ../statistics.c:45
++#: ../statistics.c:47
+ msgid "ICMP input histogram:"
+-msgstr "ICMP Eingabehistogramm:"
++msgstr "ICMP-Eingabehistogramm:"
+
+-#: ../statistics.c:46
++#: ../statistics.c:48
+ msgid "ICMP output histogram:"
+-msgstr "ICMP Ausgabehistogramm:"
++msgstr "ICMP-Ausgabehistogramm:"
+
+-#: ../statistics.c:63
++#: ../statistics.c:65
+ #, c-format
+ msgid "Forwarding is %s"
+ msgstr "Weiterleitung ist %s"
+
+-#: ../statistics.c:64
+-#, c-format
+-msgid "Default TTL is %d"
++#: ../statistics.c:66
++#, fuzzy, c-format
++msgid "Default TTL is %u"
+ msgstr "Standard-TTL ist %d"
+
+-#: ../statistics.c:65
+-#, c-format
+-msgid "%d total packets received"
+-msgstr "%d Pakete insgesamt empfangen"
++#: ../statistics.c:67
++#, fuzzy, c-format
++msgid "%u total packets received"
++msgstr "%d Pakete insgesamt empfangen"
+
+-#: ../statistics.c:66
+-#, c-format
+-msgid "%d with invalid headers"
+-msgstr "%d with ungltigen Headern"
++#: ../statistics.c:68
++#, fuzzy, c-format
++msgid "%u with invalid headers"
++msgstr "%d mit ungltigen Headern"
+
+-#: ../statistics.c:67
+-#, c-format
+-msgid "%d with invalid addresses"
++#: ../statistics.c:69
++#, fuzzy, c-format
++msgid "%u with invalid addresses"
+ msgstr "%d mit ungltigen Adressen"
+
+-#: ../statistics.c:68
+-#, c-format
+-msgid "%d forwarded"
++#: ../statistics.c:70
++#, fuzzy, c-format
++msgid "%u forwarded"
+ msgstr "%d weitergeleitet"
+
+-#: ../statistics.c:69
+-#, c-format
+-msgid "%d with unknown protocol"
++#: ../statistics.c:71
++#, fuzzy, c-format
++msgid "%u with unknown protocol"
+ msgstr "%d mit unbekanntem Protokoll"
+
+-#: ../statistics.c:70
+-#, c-format
+-msgid "%d incoming packets discarded"
++#: ../statistics.c:72
++#, fuzzy, c-format
++msgid "%u incoming packets discarded"
+ msgstr "%d eingehende Pakete weggeworfen"
+
+-#: ../statistics.c:71
+-#, c-format
+-msgid "%d incoming packets delivered"
++#: ../statistics.c:73
++#, fuzzy, c-format
++msgid "%u incoming packets delivered"
+ msgstr "%d eingehende Pakete zugestellt"
+
+-#: ../statistics.c:72
+-#, c-format
+-msgid "%d requests sent out"
++#: ../statistics.c:74
++#, fuzzy, c-format
++msgid "%u requests sent out"
+ msgstr "%d Anfragen ausgesandt"
+
+ #. ?
+-#: ../statistics.c:73
+-#, c-format
+-msgid "%d outgoing packets dropped"
++#: ../statistics.c:75
++#, fuzzy, c-format
++msgid "%u outgoing packets dropped"
+ msgstr "%d ausgehende Pakete weggeworfen"
+
+-#: ../statistics.c:74
+-#, c-format
+-msgid "%d dropped because of missing route"
++#: ../statistics.c:76
++#, fuzzy, c-format
++msgid "%u dropped because of missing route"
+ msgstr "%d weggeworfen wegen fehlender Route"
+
+-#: ../statistics.c:75
+-#, c-format
+-msgid "%d fragments dropped after timeout"
++#: ../statistics.c:77
++#, fuzzy, c-format
++msgid "%u fragments dropped after timeout"
+ msgstr "%d Fragmente nach Timeout weggeworfen"
+
+-#: ../statistics.c:76
+-#, c-format
+-msgid "%d reassemblies required"
++#: ../statistics.c:78
++#, fuzzy, c-format
++msgid "%u reassemblies required"
+ msgstr "%d Wiederzusammenstellungen ntig"
+
+ #. ?
+-#: ../statistics.c:77
+-#, c-format
+-msgid "%d packets reassembled ok"
++#: ../statistics.c:79
++#, fuzzy, c-format
++msgid "%u packets reassembled ok"
+ msgstr "%d Fragmente korrekt empfangen"
+
+-#: ../statistics.c:78
+-#, c-format
+-msgid "%d packet reassembles failed"
++#: ../statistics.c:80
++#, fuzzy, c-format
++msgid "%u packet reassembles failed"
+ msgstr "%d fehlgeschlagene Paketdefragmentierungen"
+
+-#: ../statistics.c:79
+-#, c-format
+-msgid "%d fragments received ok"
++#: ../statistics.c:81
++#, fuzzy, c-format
++msgid "%u fragments received ok"
+ msgstr "%d Fragmente korrekt empfangen"
+
+-#: ../statistics.c:80
+-#, c-format
+-msgid "%d fragments failed"
+-msgstr "%d Fragmente Fehlgeschlagen"
++#: ../statistics.c:82
++#, fuzzy, c-format
++msgid "%u fragments failed"
++msgstr "%d Fragmente fehlgeschlagen"
+
+-#: ../statistics.c:81
+-#, c-format
+-msgid "%d fragments created"
++#: ../statistics.c:83
++#, fuzzy, c-format
++msgid "%u fragments created"
+ msgstr "%d Fragmente erzeugt"
+
+-#: ../statistics.c:86
+-#, c-format
+-msgid "%d ICMP messages received"
+-msgstr "%d ICMP Nachrichten empfangen"
++#: ../statistics.c:88
++#, fuzzy, c-format
++msgid "%u ICMP messages received"
++msgstr "%d ICMP-Nachrichten empfangen"
+
+-#: ../statistics.c:87
+-#, c-format
+-msgid "%d input ICMP message failed."
+-msgstr "%d eingegangene ICMP Nachrichten fehlgeschlagen"
++#: ../statistics.c:89
++#, fuzzy, c-format
++msgid "%u input ICMP message failed."
++msgstr "%d eingegangene ICMP-Nachrichten fehlgeschlagen"
+
+-#: ../statistics.c:88 ../statistics.c:101
+-#, c-format
+-msgid "destination unreachable: %d"
++#: ../statistics.c:90 ../statistics.c:103
++#, fuzzy, c-format
++msgid "destination unreachable: %u"
+ msgstr "Ziel unerreichbar: %d"
+
+-#: ../statistics.c:89
+-#, c-format
+-msgid "timeout in transit: %d"
++#: ../statistics.c:91
++#, fuzzy, c-format
++msgid "timeout in transit: %u"
+ msgstr "Timeout beim Transit: %d"
+
+-#: ../statistics.c:90 ../statistics.c:103
+-#, c-format
+-msgid "wrong parameters: %d"
++#: ../statistics.c:92 ../statistics.c:105
++#, fuzzy, c-format
++msgid "wrong parameters: %u"
+ msgstr "Fehlerhafte Parameter: %d"
+
+ #. ?
+-#: ../statistics.c:91
+-#, c-format
+-msgid "source quenchs: %d"
++#: ../statistics.c:93
++#, fuzzy, c-format
++msgid "source quenches: %u"
+ msgstr "Source Quenchs: %d"
+
+-#: ../statistics.c:92
+-#, c-format
+-msgid "redirects: %d"
++#: ../statistics.c:94
++#, fuzzy, c-format
++msgid "redirects: %u"
+ msgstr "Umleitungen: %d"
+
+-#: ../statistics.c:93
+-#, c-format
+-msgid "echo requests: %d"
+-msgstr "Echo Requests: %d"
++#: ../statistics.c:95
++#, fuzzy, c-format
++msgid "echo requests: %u"
++msgstr "Echo Anfragen: %d"
+
+-#: ../statistics.c:94 ../statistics.c:107
+-#, c-format
+-msgid "echo replies: %d"
++#: ../statistics.c:96 ../statistics.c:109
++#, fuzzy, c-format
++msgid "echo replies: %u"
+ msgstr "Echo Antworten: %d"
+
+-#: ../statistics.c:95
+-#, c-format
+-msgid "timestamp request: %d"
++#: ../statistics.c:97
++#, fuzzy, c-format
++msgid "timestamp request: %u"
+ msgstr "Zeitstempelanfragen: %d"
+
+-#: ../statistics.c:96
+-#, c-format
+-msgid "timestamp reply: %d"
++#: ../statistics.c:98
++#, fuzzy, c-format
++msgid "timestamp reply: %u"
+ msgstr "Zeitstempelantworten: %d"
+
+-#: ../statistics.c:97
+-#, c-format
+-msgid "address mask request: %d"
++#: ../statistics.c:99
++#, fuzzy, c-format
++msgid "address mask request: %u"
+ msgstr "Adressmaskenanfragen: %d"
+
+ #. ?
+-#: ../statistics.c:98
+-msgid "address mask replies"
+-msgstr "Adressmaskenantworten"
++#: ../statistics.c:100 ../statistics.c:113
++#, fuzzy, c-format
++msgid "address mask replies: %u"
++msgstr "Adressmaskenantworten: %d"
+
+ #. ?
+-#: ../statistics.c:99
+-#, c-format
+-msgid "%d ICMP messages sent"
++#: ../statistics.c:101
++#, fuzzy, c-format
++msgid "%u ICMP messages sent"
+ msgstr "%d ICMP-Nachrichten geschickt"
+
+-#: ../statistics.c:100
+-#, c-format
+-msgid "%d ICMP messages failed"
+-msgstr "%d ICMP Nachrichten fehlgeschlagen"
+-
+ #: ../statistics.c:102
+-#, c-format
+-msgid "time exceeded: %d"
++#, fuzzy, c-format
++msgid "%u ICMP messages failed"
++msgstr "%d ICMP-Nachrichten fehlgeschlagen"
++
++#: ../statistics.c:104
++#, fuzzy, c-format
++msgid "time exceeded: %u"
+ msgstr "Zeitberschreitung: %d"
+
+ #. ?
+-#: ../statistics.c:104
+-#, c-format
+-msgid "source quench: %d"
++#: ../statistics.c:106
++#, fuzzy, c-format
++msgid "source quench: %u"
+ msgstr "Source Quench: %d"
+
+-#: ../statistics.c:105
+-#, c-format
+-msgid "redirect: %d"
++#: ../statistics.c:107
++#, fuzzy, c-format
++msgid "redirect: %u"
+ msgstr "Umleitungen: %d"
+
+-#: ../statistics.c:106
+-#, c-format
+-msgid "echo request: %d"
++#: ../statistics.c:108
++#, fuzzy, c-format
++msgid "echo request: %u"
+ msgstr "Echo Anfragen: %d"
+
+-#: ../statistics.c:108
+-#, c-format
+-msgid "timestamp requests: %d"
++#: ../statistics.c:110
++#, fuzzy, c-format
++msgid "timestamp requests: %u"
+ msgstr "Zeitstempel Anfragen: %d"
+
+-#: ../statistics.c:109
+-#, c-format
+-msgid "timestamp replies: %d"
++#: ../statistics.c:111
++#, fuzzy, c-format
++msgid "timestamp replies: %u"
+ msgstr "Zeitstempel Antworten: %d"
+
+-#: ../statistics.c:110
+-#, c-format
+-msgid "address mask requests: %d"
++#: ../statistics.c:112
++#, fuzzy, c-format
++msgid "address mask requests: %u"
+ msgstr "Adressmaskenanfragen: %d"
+
+-#: ../statistics.c:111
++#: ../statistics.c:118
+ #, c-format
+-msgid "address mask replies: %d"
+-msgstr "Adressmaskenantworten: %d"
++msgid "RTO algorithm is %s"
++msgstr "RTO-Algorithmus ist %s"
++
++#: ../statistics.c:122
++#, fuzzy, c-format
++msgid "%u active connections openings"
++msgstr "%d Verbindungen aktiv geffnet"
++
++#: ../statistics.c:123
++#, fuzzy, c-format
++msgid "%u passive connection openings"
++msgstr "%d Verbindungen passiv geffnet"
++
++#: ../statistics.c:124
++#, fuzzy, c-format
++msgid "%u failed connection attempts"
++msgstr "%d fehlerhafte Verbindungsversuche"
++
++#: ../statistics.c:125
++#, fuzzy, c-format
++msgid "%u connection resets received"
++msgstr "%d Verbindungsrcksetzungen empfangen"
++
++#: ../statistics.c:126
++#, fuzzy, c-format
++msgid "%u connections established"
++msgstr "%d Verbindungen aufgebaut"
++
++#: ../statistics.c:127
++#, fuzzy, c-format
++msgid "%u segments received"
++msgstr "%d Segmente empfangen"
++
++#: ../statistics.c:128
++#, fuzzy, c-format
++msgid "%u segments send out"
++msgstr "%d Segmente abgeschickt"
++
++#: ../statistics.c:129
++#, fuzzy, c-format
++msgid "%u segments retransmited"
++msgstr "%d Segmente erneut geschickt"
++
++#: ../statistics.c:130
++#, fuzzy, c-format
++msgid "%u bad segments received."
++msgstr "%d fehlerhafte Segmente empfangen."
++
++#: ../statistics.c:131
++#, fuzzy, c-format
++msgid "%u resets sent"
++msgstr "%d Rcksetzungen geschickt"
++
++#: ../statistics.c:136
++#, fuzzy, c-format
++msgid "%u packets received"
++msgstr "%d Pakete empfangen"
++
++#: ../statistics.c:137
++#, fuzzy, c-format
++msgid "%u packets to unknown port received."
++msgstr "%d Pakete fr unbekannte Ports empfangen."
++
++#: ../statistics.c:138
++#, fuzzy, c-format
++msgid "%u packet receive errors"
++msgstr "%d Paketempfangsfehler"
++
++#: ../statistics.c:139
++#, fuzzy, c-format
++msgid "%u packets sent"
++msgstr "%d Pakete geschickt"
++
++#: ../statistics.c:144
++#, fuzzy, c-format
++msgid "%u SYN cookies sent"
++msgstr "%d SYN-Cookies verschickt"
++
++#: ../statistics.c:145
++#, fuzzy, c-format
++msgid "%u SYN cookies received"
++msgstr "%d SYN-Cookies empfangen"
+
+-#: ../statistics.c:116
++#: ../statistics.c:146
++#, fuzzy, c-format
++msgid "%u invalid SYN cookies received"
++msgstr "%d ungltige SYN-Cookies empfangen"
++
++#: ../statistics.c:148
++#, fuzzy, c-format
++msgid "%u resets received for embryonic SYN_RECV sockets"
++msgstr "%d Rcksetzungen fr embrionische SYN_RECV-Sockets"
++
++#: ../statistics.c:150
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue because of socket buffer overrun"
++msgstr "%d Pakete wegen Socketpufferberlauf aus der Empfangswarteschlange weggeworfen"
++
++#. obsolete: 2.2.0 doesn't do that anymore
++#: ../statistics.c:153
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue"
++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen"
++
++#: ../statistics.c:154
++#, fuzzy, c-format
++msgid ""
++"%u packets dropped from out-of-order queue because of socket buffer overrun"
++msgstr "%d Pakete aus der ungeordneten Warteschlange wegen Pufferberlauf weggeworfen"
++
++#: ../statistics.c:156
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because they were out-of-window"
++msgstr "%d ICMP-Pakete weggeworfen die auerhalb des Fensters waren"
++
++#: ../statistics.c:158
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because socket was locked"
++msgstr "%d ICMP-Pakete verworfen weil Socket gesperrt war"
++
++#: ../statistics.c:160
+ #, c-format
+-msgid "RTO algorithm is %s"
+-msgstr "RTO Algorithmus is %s"
++msgid "%u TCP sockets finished time wait in fast timer"
++msgstr ""
+
+-#: ../statistics.c:120
++#: ../statistics.c:161
+ #, c-format
+-msgid "%d active connections openings"
+-msgstr "%d Verbindungen aktiv geffnet"
++msgid "%u time wait sockets recycled by time stamp"
++msgstr ""
+
+-#: ../statistics.c:121
++#: ../statistics.c:162
+ #, c-format
+-msgid "%d passive connection openings"
+-msgstr "%d Verbindungen passiv geffnet"
++msgid "%u TCP sockets finished time wait in slow timer"
++msgstr ""
+
+-#: ../statistics.c:122
++#: ../statistics.c:163
+ #, c-format
+-msgid "%d failed connection attempts"
+-msgstr "%d fehlerhafte Verbindungsversuche"
++msgid "%u passive connections rejected because of time stamp"
++msgstr ""
+
+-#: ../statistics.c:123
++#: ../statistics.c:165
+ #, c-format
+-msgid "%d connection resets received"
+-msgstr "%d Verbindungsrcksetzungen empfangen"
++msgid "%u active connections rejected because of time stamp"
++msgstr ""
+
+-#: ../statistics.c:124
++#: ../statistics.c:167
+ #, c-format
+-msgid "%d connections established"
+-msgstr "%d Verbindungen aufgebaut"
++msgid "%u packets rejects in established connections because of timestamp"
++msgstr ""
+
+-#: ../statistics.c:125
++#: ../statistics.c:169
++#, fuzzy, c-format
++msgid "%u delayed acks sent"
++msgstr "%d Pakete geschickt"
++
++#: ../statistics.c:170
+ #, c-format
+-msgid "%d segments received"
+-msgstr "%d Segmente empfangen"
++msgid "%u delayed acks further delayed because of locked socket"
++msgstr ""
+
+-#: ../statistics.c:126
++#: ../statistics.c:172
+ #, c-format
+-msgid "%d segments send out"
+-msgstr "%d Segmente abgeschickt"
++msgid "Quick ack mode was activated %u times"
++msgstr ""
+
+-#: ../statistics.c:127
++#: ../statistics.c:173
+ #, c-format
+-msgid "%d segments retransmited"
+-msgstr "%d Segmente erneut geschickt"
++msgid "%u times the listen queue of a socket overflowed"
++msgstr ""
+
+-#: ../statistics.c:128
++#: ../statistics.c:175
+ #, c-format
+-msgid "%d bad segments received."
+-msgstr "%d fehlerhafte Segmente empfangen."
++msgid "%u SYNs to LISTEN sockets ignored"
++msgstr ""
+
+-#: ../statistics.c:129
++#: ../statistics.c:176
+ #, c-format
+-msgid "%d resets sent"
+-msgstr "%d Rcksetzungen geschickt"
++msgid "%u packets directly queued to recvmsg prequeue."
++msgstr ""
+
+-#: ../statistics.c:134
++#: ../statistics.c:178
+ #, c-format
+-msgid "%d packets received"
++msgid "%u of bytes directly received from backlog"
++msgstr ""
++
++#: ../statistics.c:180
++#, c-format
++msgid "%u of bytes directly received from prequeue"
++msgstr ""
++
++#: ../statistics.c:182
++#, fuzzy, c-format
++msgid "%u packets dropped from prequeue"
++msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen"
++
++#: ../statistics.c:183
++#, fuzzy, c-format
++msgid "%u packet headers predicted"
+ msgstr "%d Pakete empfangen"
+
+-#: ../statistics.c:135
++#: ../statistics.c:184
+ #, c-format
+-msgid "%d packets to unknown port received."
++msgid "%u packets header predicted and directly queued to user"
++msgstr ""
++
++#: ../statistics.c:186
++#, c-format
++msgid "Ran %u times out of system memory during packet sending"
++msgstr ""
++
++#: ../statistics.c:188
++#, fuzzy, c-format
++msgid "%u acknowledgments not containing data received"
+ msgstr "%d Pakete fr unbekannte Ports empfangen."
+
+-#: ../statistics.c:136
++#: ../statistics.c:189
+ #, c-format
+-msgid "%d packet receive errors"
+-msgstr "%d Paketempfangsfehler"
++msgid "%u predicted acknowledgments"
++msgstr ""
+
+-#: ../statistics.c:137
++#: ../statistics.c:190
+ #, c-format
+-msgid "%d packets sent"
+-msgstr "%d Pakete geschickt"
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
+
+-#: ../statistics.c:142
++#: ../statistics.c:191
+ #, c-format
+-msgid "%d SYN cookies sent"
+-msgstr "%d SYN-Cookies verschickt"
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
+
+-#: ../statistics.c:143
++#: ../statistics.c:192
++#, fuzzy, c-format
++msgid "%u bad SACKs received"
++msgstr "%d fehlerhafte Segmente empfangen."
++
++#: ../statistics.c:193
+ #, c-format
+-msgid "%d SYN cookies received"
+-msgstr "%d SYN-Cookies empfangen"
++msgid "Detected reordering %u times using FACK"
++msgstr ""
+
+-#: ../statistics.c:144
++#: ../statistics.c:194
+ #, c-format
+-msgid "%d invalid SYN cookies received"
+-msgstr "%d ungltige SYN-Cookies empfangen"
++msgid "Detected reordering %u times using SACK"
++msgstr ""
+
+-#: ../statistics.c:146
++#: ../statistics.c:195
+ #, c-format
+-msgid "%d resets received for embryonic SYN_RECV sockets"
+-msgstr "%d Rcksetzungen fuer embrionische SYN_RECV Sockets"
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
+
+-#: ../statistics.c:148
++#: ../statistics.c:196
+ #, c-format
+-msgid "%d packets pruned from receive queue because of socket buffer overrun"
++msgid "Detected reordering %u times using reno fast retransmit"
+ msgstr ""
+-"%d Pakete wegen Socketpufferberlauf aus der Empfangswarteschlange "
+-"weggeworfen"
+
+-#. obsolete: 2.2.0 doesn't do that anymore
+-#: ../statistics.c:151
++#: ../statistics.c:197
+ #, c-format
+-msgid "%d packets pruned from out-of-order queue"
+-msgstr "%d Pakete aus der ungeordneten Warteschlange weggeworfen"
++msgid "%u congestion windows fully recovered"
++msgstr ""
+
+-#: ../statistics.c:152
++#: ../statistics.c:198
+ #, c-format
+-msgid ""
+-"%d packets dropped from out-of-order queue because of socket buffer overrun"
++msgid "%u congestion windows partially recovered using Hoe heuristic"
+ msgstr ""
+-"%d Pakete aus der ungeordneten Warteschlange wegen Pufferberlauf weggeworfen"
+
+-#: ../statistics.c:154
++#: ../statistics.c:199
+ #, c-format
+-msgid "%d ICMP packets dropped because they were out-of-window"
+-msgstr "%d ICMP Pakete weggeworfen die auserhalb des Fensters waren"
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
+
+-#: ../statistics.c:156
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, fuzzy, c-format
++msgid "%u retransmits lost"
++msgstr "%d Rcksetzungen geschickt"
++
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, fuzzy, c-format
++msgid "%u fast retransmits"
++msgstr "%d Segmente erneut geschickt"
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr ""
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, fuzzy, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "%d Segmente erneut geschickt"
++
++#: ../statistics.c:210
++#, fuzzy, c-format
++msgid "%u sack retransmits failed"
++msgstr "%d fehlgeschlagene Paketdefragmentierungen"
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, fuzzy, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr "%d Pakete wegen Socketpufferberlauf aus der Empfangswarteschlange weggeworfen"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, fuzzy, c-format
++msgid "%u DSACKs received"
++msgstr "%d Pakete empfangen"
++
++#: ../statistics.c:216
++#, fuzzy, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "%d Pakete insgesamt empfangen"
++
++#: ../statistics.c:217
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "%d Verbindungsrcksetzungen empfangen"
++
++#: ../statistics.c:218
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "%d Verbindungsrcksetzungen empfangen"
++
++#: ../statistics.c:219
++#, fuzzy, c-format
++msgid "%u connections reset due to early user close"
++msgstr "%d Verbindungsrcksetzungen empfangen"
++
++#: ../statistics.c:220
+ #, c-format
+-msgid "%d ICMP packets dropped because socket was locked"
+-msgstr "%d ICMP Pakete verworfen weil Socket gesperrt war"
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, fuzzy, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "%d Verbindungsrcksetzungen empfangen"
+
+ #: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr "aktiviert"
+
+-#: ../statistics.c:222
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr "deaktiviert"
+
+-#: ../statistics.c:272
+-#, c-format
+-msgid "unknown title %s\n"
+-msgstr "Unbekannter Titel %s\n"
+-
+-#: ../statistics.c:298
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr "Fehler beim Parsen von /proc/net/snmp"
+
+-#: ../statistics.c:311
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr "Kann /proc/net/snmp nicht ffnen"
+
+ #: ../lib/activate.c:69
+ #, c-format
+ msgid "Hardware type `%s' not supported.\n"
+-msgstr "Hardwaretyp ,,%s'' nicht untersttzt.\n"
++msgstr "Hardwaretyp %s nicht untersttzt.\n"
+
+ #: ../lib/activate.c:73
+ #, c-format
+ msgid "Cannot change line discipline to `%s'.\n"
+-msgstr "Kann line discipline nicht auf ``%s'' setzen.\n"
++msgstr "Kann line discipline nicht auf %s setzen.\n"
+
+-#: ../lib/af.c:145 ../lib/hw.c:148
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr "UNSPEC"
+
+-#: ../lib/af.c:147
++#: ../lib/af.c:155
+ msgid "UNIX Domain"
+-msgstr "UNIX Domain"
++msgstr "UNIX-Domain"
+
+-#: ../lib/af.c:150
++#: ../lib/af.c:158
+ msgid "DARPA Internet"
+-msgstr "DARPA Internet"
++msgstr "DARPA-Internet"
+
+-#: ../lib/af.c:153
++#: ../lib/af.c:161
+ msgid "IPv6"
+ msgstr "IPv6"
+
+-#: ../lib/af.c:156 ../lib/hw.c:169
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr "AMPR AX.25"
+
+-#: ../lib/af.c:159 ../lib/hw.c:175
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr "AMPR NET/ROM"
+
+-#: ../lib/af.c:162
++#: ../lib/af.c:170
+ msgid "Novell IPX"
+ msgstr ""
+
+-#: ../lib/af.c:165
++#: ../lib/af.c:173
+ msgid "Appletalk DDP"
+ msgstr "Appletalk DDP"
+
+-#: ../lib/af.c:168 ../lib/hw.c:207
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr "Econet"
+
+-#: ../lib/af.c:171 ../lib/hw.c:172
++#: ../lib/af.c:179
++msgid "CCITT X.25"
++msgstr ""
++
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr "AMPR ROSE"
+
+-#: ../lib/af.c:174 ../lib/hw.c:160
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr "Ash"
+
+-#: ../lib/af.c:232
++#: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr "Bitte nur eine Adressfamilie angeben.\n"
+
+-#: ../lib/af.c:293
++#: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr "Zu viele Adressfamilien angegeben.\n"
+
+-#: ../lib/af.c:304
++#: ../lib/af.c:315
+ #, c-format
+ msgid "Unknown address family `%s'.\n"
+-msgstr "Unbekannte Adressfamilie `%s'.\n"
+-
+-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
+-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
+-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
+-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
+-msgid "[NONE SET]"
+-msgstr "[NICHT GESETZT]"
++msgstr "Unbekannte Adressfamilie %s.\n"
+
+-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
+ #, c-format
+ msgid "in_arcnet(%s): invalid arcnet address!\n"
+ msgstr "in_arcnet(%s): Ungltige ARCnet-Adresse!\n"
+
+-#: ../lib/arcnet.c:108
++#: ../lib/arcnet.c:97
+ #, c-format
+ msgid "in_arcnet(%s): trailing : ignored!\n"
+ msgstr "in_arcnet(%s): angehngt : ignoriert!\n"
+
+-#: ../lib/arcnet.c:120
++#: ../lib/arcnet.c:109
+ #, c-format
+ msgid "in_arcnet(%s): trailing junk!\n"
+ msgstr "in_arcnet(%s): Nachfolgender Mll!\n"
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+-msgstr "Fehlerhafte Ash Adresse"
++msgstr "Fehlerhafte Ash-Adresse"
++
++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
++msgid "[NONE SET]"
++msgstr "[NICHT GESETZT]"
+
+ #: ../lib/ax25.c:97 ../lib/netrom.c:100
+ msgid "Invalid callsign"
+@@ -1898,22 +2168,21 @@
+ msgstr "Rufzeichen zu lang"
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr "AX.25 ist auf diesem System nicht konfiguriert.\n"
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr "Kernel AX.25 Routentabelle\n"
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr "Ziel SStelle Benutzer\n"
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr "DDP-Routentabelle wird noch nicht untersttzt.\n"
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1929,153 +2198,168 @@
+ msgid "in_ether(%s): trailing junk!\n"
+ msgstr "in_ether(%s): Nachfolgender Mll!\n"
+
+-#: ../lib/fddi.c:95 ../lib/fddi.c:110
++#: ../lib/fddi.c:84 ../lib/fddi.c:99
+ #, c-format
+ msgid "in_fddi(%s): invalid fddi address!\n"
+ msgstr "in_fddi(%s): Ungltige FDDI-Adresse!\n"
+
+-#: ../lib/fddi.c:122
++#: ../lib/fddi.c:111
+ #, c-format
+ msgid "in_fddi(%s): trailing : ignored!\n"
+ msgstr "in_fddi(%s): nachfolgend : ignoriert!\n"
+
+-#: ../lib/fddi.c:134
++#: ../lib/fddi.c:123
+ #, c-format
+ msgid "in_fddi(%s): trailing junk!\n"
+ msgstr "in_fddi(%s): Nachfolgender Mll!\n"
+
+-#: ../lib/getroute.c:97 ../lib/setroute.c:76
++#: ../lib/getroute.c:101 ../lib/setroute.c:80
+ #, c-format
+ msgid "Address family `%s' not supported.\n"
+ msgstr "Adressfamilie `%s' wird nicht untersttzt.\n"
+
+-#: ../lib/getroute.c:103 ../lib/setroute.c:80
++#: ../lib/getroute.c:107 ../lib/setroute.c:84
+ #, c-format
+ msgid "No routing for address family `%s'.\n"
+ msgstr "Kein Routen fr Adressfamilie `%s'.\n"
+
+-#: ../lib/hippi.c:96 ../lib/hippi.c:111
++#: ../lib/hippi.c:84 ../lib/hippi.c:99
+ #, c-format
+ msgid "in_hippi(%s): invalid hippi address!\n"
+ msgstr "in_hippi(%s): Ungltige HIPPI-Adresse!\n"
+
+-#: ../lib/hippi.c:123
++#: ../lib/hippi.c:111
+ #, c-format
+ msgid "in_hippi(%s): trailing : ignored!\n"
+ msgstr "in_hippi(%s): nachfolgend : ignoriert!\n"
+
+-#: ../lib/hippi.c:134
++#: ../lib/hippi.c:122
+ #, c-format
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr "in_hippi(%s): Nachfolgender Mll!\n"
+
+-#: ../lib/hw.c:147
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr "Lokale Schleife"
+
+-#: ../lib/hw.c:150
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr "Serielle IP"
+
+-#: ../lib/hw.c:151
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr "Serielle VJ-IP"
+
+-#: ../lib/hw.c:152
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr "6-bit Serielle IP"
+
+-#: ../lib/hw.c:153
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr "VJ 6-bit Serielle IP"
+
+-#: ../lib/hw.c:154
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr "Adaptive Serielle IP"
+
+-#: ../lib/hw.c:157
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr "Ethernet"
+
+-#: ../lib/hw.c:163
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr "Fiber Distributed Data Interface"
+
+-#: ../lib/hw.c:166
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr "HIPPI"
+
+-#: ../lib/hw.c:178
++#: ../lib/hw.c:191
++msgid "generic X.25"
++msgstr ""
++
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr "IPIP Tunnel"
+
+-#: ../lib/hw.c:181
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+-msgstr "Punkt-zu-Punkt Verbindung"
++msgstr "Punkt-zu-Punkt-Verbindung"
+
+-#: ../lib/hw.c:184
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr "(Cisco)-HDLC"
+
+-#: ../lib/hw.c:185
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:188
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr "ARCnet"
+
+-#: ../lib/hw.c:191
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr "Frame Relay DLCI"
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr "Frame Relay Access Device"
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr "IPv6-nach-IPv4"
+
+-#: ../lib/hw.c:198
+-#, fuzzy
++#: ../lib/hw.c:214
+ msgid "IrLAP"
+-msgstr "LAPB"
++msgstr "IrLAP"
+
+-#: ../lib/hw.c:201
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr ""
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:219
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr ""
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+ msgstr "rresolve: nicht untersttzte Adressfamilie %d !\n"
+
+-#: ../lib/inet6_gr.c:79
++#: ../lib/inet6.c:131
++#, fuzzy
++msgid "[UNKNOWN]"
++msgstr "UNBEKANNT"
++
++#: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr "INET6 (IPv6) ist auf diesem System nicht konfiguriert.\n"
+
+-#: ../lib/inet6_gr.c:82
++#: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+-msgstr "Kernel IPv6 Routentabelle\n"
++msgstr "Kernel-IPv6-Routentabelle\n"
+
+-#: ../lib/inet6_gr.c:84
++#: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
+-msgstr ""
+-"Ziel Nchster Hop "
+-" Flags Metric Ref Benutzer Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
++msgstr "Ziel Nchster Hop Flags Metric Ref Benutzer Iface\n"
+
+-#: ../lib/inet6_gr.c:158
++#: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr "Kernel IPv6 Nachbarcache\n"
+
+-#: ../lib/inet6_gr.c:161
++#: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+@@ -2083,39 +2367,45 @@
+ "Nachbar HW-Adresse Iface Flags "
+ "Ref Zustand\n"
+
+-#: ../lib/inet6_gr.c:165
++#: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+-msgstr ""
+-"Nachbar HW-Adresse Iface Flags "
+-"Ref Zustand Stale(sec) Lschen(sec)\n"
++msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Lschen(sec)\n"
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr "Benutzung: inet6_route [-vF] del Ziel\n"
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr " inet6_route [-vF] add Ziel [gw Gateway] [metric M] [[dev] If]\n"
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr " inet6_route [-FC] flush NICHT untersttzt\n"
+
+-#: ../lib/inet6_sr.c:182
++#: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+-msgstr ",,Flush'' fr IPv6 Routentabelle nicht untersttzt\n"
++msgstr "Flush fr IPv6-Routentabelle nicht untersttzt\n"
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr "INET (IPv4) ist auf diesem System nicht konfiguriert.\n"
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+-msgstr "Kernel IP Routentabelle\n"
++msgstr "Kernel-IP-Routentabelle\n"
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+@@ -2124,6 +2414,7 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+@@ -2132,6 +2423,7 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+@@ -2140,10 +2432,12 @@
+ "Iface MSS Fenster irtt\n"
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+-msgstr "Kernel IP Routencache\n"
++msgstr "Kernel-IP-Routencache\n"
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+@@ -2152,6 +2446,7 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+@@ -2160,6 +2455,7 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+@@ -2168,6 +2464,7 @@
+ "Iface MSS Fenster irtt HH Arp\n"
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+@@ -2175,37 +2472,39 @@
+ "Quelle Ziel Gateway Flags Metrik Ref Ben "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+-msgstr ""
+-"Benutzung: inet_route [-vF] del {-host|-net} Ziel[/prefix] [gw Gw] [metric "
+-"M] [[dev] If]\n"
++msgstr "Benutzung: inet_route [-vF] del {-host|-net} Ziel[/Prfix] [gw Gw] [metric M] [[dev] If]\n"
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+-msgstr ""
+-" inet_route [-vF] add {-host|-net} Ziel[/Prefix] [gw Gw] [metric M]\n"
++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Prfix] [gw Gw] [metric M]\n"
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+-msgstr ""
+-" inet_route [-vF] add {-host|-net} Ziel[/Prfix] [metric M] reject\n"
++msgstr " inet_route [-vF] add {-host|-net} Ziel[/Prfix] [metric M] reject\n"
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr " inet_route [-FC] flush NICHT untersttzt\n"
+
+@@ -2215,15 +2514,17 @@
+ msgstr "route: %s: Netzadresse als Gateway ungltig!\n"
+
+ #: ../lib/inet_sr.c:174
+-#, fuzzy
++#, fuzzy, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr "route: Ungltige MSS.\n"
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr "route: Ungltige Fenstergre.\n"
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr "route: Ungltige Start-RTT.\n"
+
+@@ -2238,126 +2539,408 @@
+ msgstr "Route: Fehlerhafte Netzmaske %s\n"
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr "route: Netzmaske passt nicht zur Routenadresse\n"
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+-msgstr ",,Flush'' der Inet-Routentabelle nicht untersttzt\n"
++msgstr "Flush der Inet-Routentabelle nicht untersttzt\n"
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+-msgstr "nderung des ,,Inet'' Routencaches nicht untersttzt\n"
++msgstr "nderung des Inet Routencaches nicht untersttzt\n"
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr "IPX ist auf diesem System nicht konfiguriert.\n"
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+-msgstr "Kernel IPX Routentabelle\n"
++msgstr "Kernel-IPX-Routentabelle\n"
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+-msgstr "Ziel Router Netz Router Knoten\n"
++msgstr "Ziel Router-Netz Router-Knoten\n"
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+-msgstr "IPX: dies mu noch geschrieben werden\n"
++msgstr "IPX: dies muss noch geschrieben werden\n"
+
+-#: ../lib/masq_info.c:197
++#: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr "IP-Maskierungseintrge\n"
+
+-#: ../lib/masq_info.c:200
++#: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr "Prot expire Quelle Ziel Ports\n"
+
+-#: ../lib/masq_info.c:203
++#: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+-"Prot Ablauf Anf-Seq Delta Prevd Quelle Ziel "
+-" Ports\n"
++"Prot Ablauf Anf-Seq Delta Prevd Quelle "
++"Ziel Ports\n"
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr "NET/ROM ist auf diesem System nicht verfgbar.\n"
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+-msgstr "Kernel NET/ROM Routentabelle\n"
++msgstr "Kernel-NET/ROM-Routentabelle\n"
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr "Ziel Mnemonic Qualitt Nachbar Iface\n"
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+-msgstr "NET/ROM Benutzung\n"
++msgstr "NET/ROM-Benutzung\n"
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+-msgstr "NET/ROM: Dies mu noch geschrieben werden\n"
++msgstr "NET/ROM: Dies muss noch geschrieben werden\n"
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr "Mit diesem Programm kann PPP nicht gestartet werden.\n"
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+-msgstr "Bitte benutzen sie pppd.\n"
++msgstr "Bitte benutzen Sie pppd.\n"
+
+ #: ../lib/rose.c:87
+ msgid "Node address must be ten digits"
+-msgstr "Knotenadresse mu zehn Ziffern haben"
++msgstr "Knotenadresse muss zehn Ziffern haben"
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr "ROSE ist auf diesem System nicht verfgbar.\n"
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+-msgstr "ROSE Kernel Routentabelle\n"
++msgstr "ROSE-Kernel-Routentabelle\n"
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr "in_tr(%s): ungltige Tokenringadresse!\n"
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr "in_tr(%s): nachfolgend : ignoriert!\n"
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr "in_tr(%s): nachfolgender Mll!\n"
+
+-#: ../lib/interface.c:124
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+-msgstr "Warnung: Keine INET Sockets verfgbar: %s\n"
++msgstr "Warnung: Keine INET-Sockets verfgbar: %s\n"
+
+-#: ../lib/interface.c:270
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr ""
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:504
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr "Gert nicht gefunden"
+
+-#: ../lib/interface.c:508
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
+ msgstr "%s: Fehler beim Auslesen der Schnittstelleninformation: %s\n"
+
+-#: ../lib/sockets.c:59
++#: ../lib/interface.c:608
++msgid " - no statistics available -"
++msgstr " - keine Statistiken verfgbar -"
++
++#: ../lib/interface.c:612
++#, c-format
++msgid "[NO FLAGS]"
++msgstr "[KEINE FLAGS]"
++
++#: ../lib/interface.c:688
++#, c-format
++msgid "%-9.9s Link encap:%s "
++msgstr "%-9.9s Protokoll:%s "
++
++#: ../lib/interface.c:693
++#, c-format
++msgid "HWaddr %s "
++msgstr "Hardware Adresse %s "
++
++#: ../lib/interface.c:696
++#, c-format
++msgid "Media:%s"
++msgstr "Medium:%s"
++
++#: ../lib/interface.c:698
++#, c-format
++msgid "(auto)"
++msgstr "(auto)"
++
++#: ../lib/interface.c:705
++#, c-format
++msgid " %s addr:%s "
++msgstr " %s Adresse:%s "
++
++#: ../lib/interface.c:708
++#, c-format
++msgid " P-t-P:%s "
++msgstr " P-z-P:%s "
++
++#: ../lib/interface.c:711
++#, c-format
++msgid " Bcast:%s "
++msgstr " Bcast:%s "
++
++#: ../lib/interface.c:713
++#, c-format
++msgid " Mask:%s\n"
++msgstr " Maske:%s\n"
++
++#: ../lib/interface.c:730
++#, c-format
++msgid " inet6 addr: %s/%d"
++msgstr " inet6-Adresse: %s/%d"
++
++#: ../lib/interface.c:732
++#, c-format
++msgid " Scope:"
++msgstr " Gltigkeitsbereich:"
++
++#: ../lib/interface.c:735
++#, c-format
++msgid "Global"
++msgstr "Global"
++
++#: ../lib/interface.c:738
++#, c-format
++msgid "Link"
++msgstr "Verbindung"
++
++#: ../lib/interface.c:741
++#, c-format
++msgid "Site"
++msgstr "Standort"
++
++#: ../lib/interface.c:744
++#, c-format
++msgid "Compat"
++msgstr "Kompatibilitt"
++
++#: ../lib/interface.c:747
++#, c-format
++msgid "Host"
++msgstr "Maschine"
++
++#: ../lib/interface.c:750
++#, c-format
++msgid "Unknown"
++msgstr "Unbekannt"
++
++#: ../lib/interface.c:765
++#, c-format
++msgid " IPX/Ethernet II addr:%s\n"
++msgstr " IPX/Ethernet II Adresse:%s\n"
++
++#: ../lib/interface.c:768
++#, c-format
++msgid " IPX/Ethernet SNAP addr:%s\n"
++msgstr " IPX/Ethernet SNAP Adresse:%s\n"
++
++#: ../lib/interface.c:771
++#, c-format
++msgid " IPX/Ethernet 802.2 addr:%s\n"
++msgstr " IPX/Ethernet 802.2 Adresse:%s\n"
++
++#: ../lib/interface.c:774
++#, c-format
++msgid " IPX/Ethernet 802.3 addr:%s\n"
++msgstr " IPX/Ethernet 802.3 Adresse:%s\n"
++
++#: ../lib/interface.c:784
++#, c-format
++msgid " EtherTalk Phase 2 addr:%s\n"
++msgstr " EtherTalk Phase 2 Adresse:%s\n"
++
++#: ../lib/interface.c:793
++#, c-format
++msgid " econet addr:%s\n"
++msgstr " econet Adresse:%s\n"
++
++#: ../lib/interface.c:800
++#, c-format
++msgid "[NO FLAGS] "
++msgstr "[KEINE FLAGS] "
++
++#: ../lib/interface.c:802
++#, c-format
++msgid "UP "
++msgstr "UP "
++
++#: ../lib/interface.c:804
++#, c-format
++msgid "BROADCAST "
++msgstr "BROADCAST "
++
++#: ../lib/interface.c:806
++#, c-format
++msgid "DEBUG "
++msgstr "DEBUG "
++
++#: ../lib/interface.c:808
++#, c-format
++msgid "LOOPBACK "
++msgstr "LOOPBACK "
++
++#: ../lib/interface.c:810
++#, c-format
++msgid "POINTOPOINT "
++msgstr "PUNKTZUPUNKT "
++
++#: ../lib/interface.c:812
++#, c-format
++msgid "NOTRAILERS "
++msgstr "NOTRAILERS "
++
++#: ../lib/interface.c:814
++#, c-format
++msgid "RUNNING "
++msgstr "RUNNING "
++
++#: ../lib/interface.c:816
++#, c-format
++msgid "NOARP "
++msgstr "NOARP "
++
++#: ../lib/interface.c:818
++#, c-format
++msgid "PROMISC "
++msgstr "PROMISC "
++
++#: ../lib/interface.c:820
++#, c-format
++msgid "ALLMULTI "
++msgstr "ALLMULTI "
++
++#: ../lib/interface.c:822
++#, c-format
++msgid "SLAVE "
++msgstr "SLAVE "
++
++#: ../lib/interface.c:824
++#, c-format
++msgid "MASTER "
++msgstr "MASTER "
++
++#: ../lib/interface.c:826
++#, c-format
++msgid "MULTICAST "
++msgstr "MULTICAST "
++
++#: ../lib/interface.c:829
++#, c-format
++msgid "DYNAMIC "
++msgstr "DYNAMIC "
++
++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short
++#: ../lib/interface.c:832
++#, c-format
++msgid " MTU:%d Metric:%d"
++msgstr " MTU:%d Metrik:%d"
++
++#: ../lib/interface.c:836
++#, c-format
++msgid " Outfill:%d Keepalive:%d"
++msgstr " Outfill:%d Keepalive:%d"
++
++#: ../lib/interface.c:850
++#, fuzzy, c-format
++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgstr "Empfangene Pakete:%lu Fehler:%lu Weggeworfen:%lu berlauf:%lu Rahmen:%lu\n"
++
++#: ../lib/interface.c:855
++#, c-format
++msgid " compressed:%lu\n"
++msgstr " komprimiert:%lu\n"
++
++#: ../lib/interface.c:895
++#, fuzzy, c-format
++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgstr "Verschickte Pakete:%lu Fehler:%lu Weggeworfen:%lu berlauf:%lu Trger:%lu\n"
++
++#: ../lib/interface.c:899
++#, c-format
++msgid " collisions:%lu "
++msgstr " Kollisionen:%lu "
++
++#: ../lib/interface.c:901
++#, c-format
++msgid "compressed:%lu "
++msgstr "Komprimiert:%lu "
++
++#: ../lib/interface.c:903
++#, c-format
++msgid "txqueuelen:%d "
++msgstr "Sendewarteschlangenlnge:%d "
++
++#: ../lib/interface.c:905
++#, c-format
++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
++msgstr ""
++
++#: ../lib/interface.c:916
++#, c-format
++msgid "Interrupt:%d "
++msgstr "Interrupt:%d "
++
++#. Only print devices using it for
++#. I/O maps
++#: ../lib/interface.c:919
++#, c-format
++msgid "Base address:0x%x "
++msgstr "Basisadresse:0x%x "
++
++#: ../lib/interface.c:921
++#, c-format
++msgid "Memory:%lx-%lx "
++msgstr "Speicher:%lx-%lx "
++
++#: ../lib/interface.c:924
++#, c-format
++msgid "DMA chan:%x "
++msgstr "DMA Kanal:%x "
++
++#: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr "Keine benutzbaren Adressfamilien gefunden.\n"
+
+@@ -2369,41 +2952,44 @@
+ #: ../lib/util-ank.c:238
+ #, c-format
+ msgid "ip: %s is invalid inet prefix\n"
+-msgstr "ip: %s ist ein ungltiges INET-Prefix\n"
++msgstr "ip: %s ist ein ungltiges INET-Prfix\n"
+
+ #: ../lib/util-ank.c:248
+ #, c-format
+ msgid "ip: %s is invalid IPv4 address\n"
+-msgstr "ip: %s ist eine ungltige IPv4 Adresse\n"
++msgstr "ip: %s ist eine ungltige IPv4-Adresse\n"
+
+ #: ../lib/util-ank.c:256
+ #, c-format
+ msgid "ip: argument is wrong: %s\n"
+ msgstr "ip: Fehlerhaftes Argument: %s\n"
+
+-#: ../ipmaddr.c:56
++#: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr "Benutzung: ipmaddr [ add | del ] MULTIADR dev NAME\n"
+
+-#: ../ipmaddr.c:57
++#: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr " ipmaddr show [ dev NAME ] [ ipv4 | ipv6 | link | all ]\n"
+
+-#: ../ipmaddr.c:58
++#: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr ""
+
+-#: ../ipmaddr.c:258
++#: ../ipmaddr.c:263
+ #, c-format
+ msgid "family %d "
+ msgstr "familie %d "
+
+-#: ../ipmaddr.c:267
++#: ../ipmaddr.c:272
+ #, c-format
+ msgid " users %d"
+ msgstr " Benutzer %d"
+
+-#: ../ipmaddr.c:353
++#: ../ipmaddr.c:358
+ msgid "Cannot create socket"
+ msgstr "Kann Socket nicht ffnen"
+
+@@ -2418,13 +3004,14 @@
+ msgstr "slattach: tty_lock: (%s): %s\n"
+
+ #: ../slattach.c:192
++#, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr "slattach: Kann PID-Datei nicht schreiben\n"
+
+ #: ../slattach.c:202
+ #, c-format
+ msgid "slattach: tty_lock: UUCP user %s unknown!\n"
+-msgstr "slattach: tty_lock: UUCP Benutzer %s unbekannt!\n"
++msgstr "slattach: tty_lock: UUCP-Benutzer %s unbekannt!\n"
+
+ #: ../slattach.c:430
+ #, c-format
+@@ -2436,39 +3023,71 @@
+ msgid "slattach: tty_hangup(RAISE): %s\n"
+ msgstr "slattach: tty_hangup(RAISE): %s\n"
+
+-#: ../slattach.c:486
++#: ../slattach.c:468
++#, fuzzy, c-format
++msgid "slattach: tty name too long\n"
++msgstr "%s: name zu lang\n"
++
++#: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr "slattach: tty_open: kann aktuellen Zustand nicht auslesen!\n"
+
+-#: ../slattach.c:493
++#: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+ msgstr ""
+ "slattach: tty_open: Kann augenblicklichen Leitungszustand nicht auslesen!\n"
+
+-#: ../slattach.c:501
++#: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr "slattach: tty_open: Kann RAW-Modus nicht setzen!\n"
+
+-#: ../slattach.c:508
++#: ../slattach.c:520
+ #, c-format
+ msgid "slattach: tty_open: cannot set %s bps!\n"
+ msgstr "slattach: tty_open: Kann %s bps nicht setzen!\n"
+
+-#: ../slattach.c:518
++#: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr "slattach: tty_open: Kann 8N1-Modus nicht setzen!\n"
+
+-#: ../slattach.c:686
++#: ../slattach.c:672
++#, c-format
++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++msgstr ""
++
++#: ../slattach.c:704
+ #, c-format
+ msgid "%s started"
+ msgstr "%s gestartet"
+
+-#: ../slattach.c:687
++#: ../slattach.c:705
+ #, c-format
+ msgid " on %s"
+ msgstr " auf %s"
+
+-#: ../slattach.c:688
++#: ../slattach.c:706
+ #, c-format
+ msgid " interface %s\n"
+ msgstr " Schnittstelle: %s\n"
++
++msgid ""
++" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
++"<-''-\n"
++msgstr ""
++" arp [-v] [<HW>] [-i <if>] -s <Hostname> <hwaddr> [netmask <nm>] pub\n"
++
++msgid "%s: unknown interface: %s\n"
++msgstr "%s: unbekannte Schnittstelle: %s\n"
++
++msgid "address mask replies"
++msgstr "Adressmaskenantworten"
++
++msgid "unknown title %s\n"
++msgstr "Unbekannter Titel %s\n"
++
++msgid "Routing table for `ddp' not yet supported.\n"
++msgstr "DDP-Routentabelle wird noch nicht untersttzt.\n"
+--- net-tools-1.60.orig/po/fr.po
++++ net-tools-1.60/po/fr.po
+@@ -4,7 +4,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: net-tools 1.51\n"
+-"POT-Creation-Date: 2000-02-14 02:31+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
+ "PO-Revision-Date: 1998-03-01 00:02+0100\n"
+ "Last-Translator: J.M.Vansteene <vanstee@worldnet.fr>\n"
+ "Language-Team:\n"
+@@ -12,273 +13,277 @@
+ "Content-Type: text/plain; charset=iso8859-1\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:110 ../arp.c:269
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+ msgstr "arp: ncessite un nom d'hte\n"
+
+-#: ../arp.c:207 ../arp.c:221
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+ msgstr "Pas d'entre ARP pour %s\n"
+
+-#: ../arp.c:239
++#: ../arp.c:248
+ #, fuzzy, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr "rarp: ne peut dfinir l'entre depuis %s:%u\n"
+
+-#: ../arp.c:243
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr ""
+
+-#: ../arp.c:252
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+ msgstr ""
+
+-#: ../arp.c:282
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+ msgstr "arp: ncessite une adresse matriel\n"
+
+-#: ../arp.c:290
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr "arp: adresse matriel invalide\n"
+
+-#: ../arp.c:387
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr "arp: ne peut ouvrir le fichier ether %s !\n"
+
+-#: ../arp.c:403
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr "arp: erreur de format ligne %u du fichier ether %s !\n"
+
+-#: ../arp.c:416
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr "arp: ne peut dfinir l'entre en ligne %u du fichier ether %s !\n"
+
+-#: ../arp.c:437
+-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
++#: ../arp.c:448
++#, fuzzy, c-format
++msgid ""
++"Address HWtype HWaddress Flags Mask "
++"Iface\n"
+ msgstr "Adresse\t\t\tTypeMap\tAdresseMat\t Indicateurs\t\t Iface\n"
+
+-#: ../arp.c:467
++#: ../arp.c:476
++#, fuzzy
++msgid "<from_interface>"
++msgstr "%s: interface inconnue: %s\n"
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+ msgstr ""
+
+-#: ../arp.c:484
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr ""
+
+-#: ../arp.c:490
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr ""
+
+-#: ../arp.c:496
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr ""
+
+-#: ../arp.c:513
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr ""
+
+-#: ../arp.c:592
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr "Entres: %d\tIgnores: %d\tTrouves: %d\n"
+
+-#: ../arp.c:596
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr ""
+
+-#: ../arp.c:598
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+ msgstr "arp: aucune correspondance trouve dans %d entres\n"
+
+-#: ../arp.c:613
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+ "cache\n"
+ msgstr ""
+ "Syntaxe:\n"
+-" arp [-vn] [<MAT>] [-i <if>] [-a] [<hte>] <-Affiche cache "
+-"ARP\n"
++" arp [-vn] [<MAT>] [-i <if>] [-a] [<hte>] <-Affiche cache ARP\n"
+
+-#: ../arp.c:614
++#: ../arp.c:627
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+-msgstr ""
+-" arp [-v] [-i <if>] -d <hte> [pub][nopub] <-Supprime entre "
+-"ARP\n"
++msgstr " arp [-v] [-i <if>] -d <hte> [pub][nopub] <-Supprime entre ARP\n"
+
+-#: ../arp.c:615
+-#, fuzzy
++#: ../arp.c:628
++#, fuzzy, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+-msgstr ""
+-" arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entre "
+-"depuis fichier\n"
++msgstr " arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entre depuis fichier\n"
+
+-#: ../arp.c:616
++#: ../arp.c:629
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+-msgstr ""
+-" arp [-v] [<MAT>] [-i <if>] -s <hte> <adrmat> [temp][nopub] <-Ajout "
+-"entre\n"
++msgstr " arp [-v] [<MAT>] [-i <if>] -s <hte> <adrmat> [temp][nopub] <-Ajout entre\n"
+
+-#: ../arp.c:617
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-" arp [-v] [<MAT>] [-i <if>] -s <hte> <adrmat> [netmask <nm>] pub "
+-"<-''-\n"
+-
+-#: ../arp.c:618
++#: ../arp.c:630
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+ msgstr ""
+-" arp [-v] [<MAT>] [-i <if>] -Ds <hte> <if> [netmask <nm>] pub "
+-"<-''-\n"
++" arp [-v] [<MAT>] [-i <if>] -Ds <hte> <if> [netmask <nm>] pub <-''-\n"
+ "\n"
+
+-#: ../arp.c:620
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+-msgstr ""
+-" -a affiche (tous) les htes en style BSD\n"
++msgstr " -a affiche (tous) les htes en style BSD\n"
+
+-#: ../arp.c:621
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr " -s, --set dfinit une nouvelle entre ARP\n"
+
+-#: ../arp.c:622
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr " -d, --delete supprime une entre\n"
+
+-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr " -v, --verbose mode verbeux\n"
+
+-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
+-msgid " -n, --numeric dont resolve names\n"
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, fuzzy, c-format
++msgid " -n, --numeric don't resolve names\n"
+ msgstr " -n, --numeric ne rsout pas les noms\n"
+
+-#: ../arp.c:625
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+-msgstr ""
+-" -i, --device spcifie l'interface rseau (p.ex. eth0)\n"
++msgstr " -i, --device spcifie l'interface rseau (p.ex. eth0)\n"
+
+-#: ../arp.c:626
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+-msgstr ""
+-" -D, --use-device lit l'<adrmat> depuis le priphrique\n"
++msgstr " -D, --use-device lit l'<adrmat> depuis le priphrique\n"
+
+-#: ../arp.c:627
+-#, fuzzy
++#: ../arp.c:639
++#, fuzzy, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr " -r, --route affiche la table de routage\n"
+
+-#: ../arp.c:628
+-#, fuzzy
++#: ../arp.c:640
++#, fuzzy, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+ " -f, --file lit les nouvelles entres dans le fichier\n"
+ "\n"
+
+-#: ../arp.c:630 ../rarp.c:181
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+-msgstr ""
+-" <HW>=Utilisez '-H <hw>' pour spcifier le type d'adresse matriel. Dfaut: "
+-"%s\n"
++msgstr " <HW>=Utilisez '-H <hw>' pour spcifier le type d'adresse matriel. Dfaut: %s\n"
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr " Liste les types de matriels supportant ARP:\n"
+
+-#: ../arp.c:664
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr "%s: type de mattiel non support !\n"
+
+-#: ../arp.c:668
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr "%s: famille d'adresses non supporte !\n"
+
+-#: ../arp.c:703
+-#, fuzzy
++#: ../arp.c:716
++#, fuzzy, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr "Table de routage pour `ddp' pas encore support.\n"
+
+-#: ../arp.c:713
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr "arp: %s: famille d'adresses inconnue.\n"
+
+-#: ../arp.c:722
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr "arp: %s: type de matriel inconnu.\n"
+
+-#: ../arp.c:741
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+ msgstr "arp: %s: le noyau ne supporte que 'inet'.\n"
+
+-#: ../arp.c:746
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr "arp: %s: type de matriel sans support ARP.\n"
+
+-#: ../hostname.c:69
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+ msgstr "Dfinit le nom de noeud `%s'\n"
+
+-#: ../hostname.c:74
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr "%s: vous devez tre root pour changer le nom de noeud\n"
+
+-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr "%s: nom trop long\n"
+
+-#: ../hostname.c:89
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+ msgstr "Dfinit le nom d'hte `%s'\n"
+
+-#: ../hostname.c:94
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+ msgstr "%s: vous devez tre root pour changer le nom d'hte\n"
+
+-#: ../hostname.c:108
++#: ../hostname.c:109
+ #, c-format
+ msgid "Setting domainname to `%s'\n"
+ msgstr "Dfinit le nom de domaine `%s'\n"
+
+-#: ../hostname.c:113
++#: ../hostname.c:114
+ #, c-format
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr "%s: vous devez tre root pour changer le nom de domaine\n"
+@@ -303,38 +308,36 @@
+ msgid "Result: h_addr_list=`%s'\n"
+ msgstr "Rsultat : h_addr_list=`%s'\n"
+
+-#: ../hostname.c:209
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+ msgstr "%s: ne peut ouvrir `%s'\n"
+
+-#: ../hostname.c:223
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+-msgstr ""
+-"Syntaxe : hostname [-v] {hte|-F fichier} dfinit le nom d'hte (depuis "
+-"le fichier)\n"
++msgstr "Syntaxe : hostname [-v] {hte|-F fichier} dfinit le nom d'hte (depuis le fichier)\n"
+
+-#: ../hostname.c:224
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+-msgstr ""
+-" domainname [-v] {domaine_nis|-F fichier} dfinit le domaine NIS "
+-"(depuis le fichier)\n"
++msgstr " domainname [-v] {domaine_nis|-F fichier} dfinit le domaine NIS (depuis le fichier)\n"
+
+-#: ../hostname.c:226
+-#, fuzzy
++#: ../hostname.c:225
++#, fuzzy, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+-msgstr ""
+-" nodename [-v] {nom_noeud|-F fichier} Dfinit le nom de noeud "
+-"DECnet (depuis le fichier)\n"
++msgstr " nodename [-v] {nom_noeud|-F fichier} Dfinit le nom de noeud DECnet (depuis le fichier)\n"
+
+-#: ../hostname.c:228
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] affiche le nom formatt\n"
+
+-#: ../hostname.c:229
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+@@ -342,7 +345,8 @@
+ " hostname [-v] affiche le nom d'hte\n"
+ "\n"
+
+-#: ../hostname.c:230
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+@@ -350,7 +354,8 @@
+ " hostname -V|--version|-h|--help affiche des infos et termine\n"
+ "\n"
+
+-#: ../hostname.c:231
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+@@ -358,45 +363,52 @@
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+
+-#: ../hostname.c:232
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr " -s, --short nom d'hte court\n"
+
+-#: ../hostname.c:233
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr " -a, --alias noms d'alias\n"
+
+-#: ../hostname.c:234
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr " -i, --ip-address adresses de l'hte\n"
+
+-#: ../hostname.c:235
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr " -f, --fqdn, --long nom d'hte long (FQDN)\n"
+
+-#: ../hostname.c:236
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+ msgstr " -d, --domain nom de domaine DNS\n"
+
+-#: ../hostname.c:237
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+ msgstr " -y, --yp, --nis nom de domaine NIS/YP\n"
+
+-#: ../hostname.c:239
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+ msgstr " -n, --node nom de noeud DECnet\n"
+
+-#: ../hostname.c:241
+-#, fuzzy
++#: ../hostname.c:240
++#, fuzzy, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+ msgstr ""
+-" -F, --file lit le nom d'hte ou le nom de domaine NIS depuis "
+-"le fichier\n"
++" -F, --file lit le nom d'hte ou le nom de domaine NIS depuis le fichier\n"
+ "\n"
+
+-#: ../hostname.c:243
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -411,15 +423,16 @@
+ msgstr "%s: Vous ne pouvez changer le nom de domaine DNS avec cette commande\n"
+
+ #: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+ msgstr ""
+ "\n"
+-"Sauf si vous utilisez bind ou NIS pour les recherches d'htes, vous pouvez "
+-"changer le\n"
++"Sauf si vous utilisez bind ou NIS pour les recherches d'htes, vous pouvez changer le\n"
+
+ #: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+ msgstr ""
+ "nom de domaine DNS (qui fait partie du FQDN) dans le fichier /etc/hosts.\n"
+@@ -439,554 +452,453 @@
+ msgid "getnodename()=`%s'\n"
+ msgstr "getnodename()=`%s'\n"
+
+-#: ../ifconfig.c:159
+-#, c-format
+-msgid "%-9.9s Link encap:%s "
+-msgstr "%-9.9s Lien encap:%s "
++#: ../ifconfig.c:107
++#, fuzzy, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Indic\n"
+
+-#: ../ifconfig.c:164
+-#, c-format
+-msgid "HWaddr %s "
+-msgstr "HWaddr %s "
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, fuzzy, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n"
+
+-#: ../ifconfig.c:167
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
+ #, c-format
+-msgid "Media:%s"
+-msgstr "Media:%s"
++msgid "No support for INET on this system.\n"
++msgstr "Pas de support de INET sur ce systme.\n"
+
+-#: ../ifconfig.c:169
+-msgid "(auto)"
+-msgstr "(auto)"
++#: ../ifconfig.c:193
++#, fuzzy, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n"
+
+-#: ../ifconfig.c:176
+-#, c-format
+-msgid " %s addr:%s "
+-msgstr " %s adr:%s "
++#: ../ifconfig.c:202
++#, fuzzy, c-format
++msgid ""
++"Usage:\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
++msgstr ""
++"Syntaxe:\n"
++" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n"
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:204
+ #, c-format
+-msgid " P-t-P:%s "
+-msgstr " P-t-P:%s "
++msgid " [add <address>[/<prefixlen>]]\n"
++msgstr " [add <adresse>[/<lg_prefixe>]]\n"
+
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:205
+ #, c-format
+-msgid " Bcast:%s "
+-msgstr " Bcast:%s "
++msgid " [del <address>[/<prefixlen>]]\n"
++msgstr " [del <adresse>[/<lg_prefixe>]]\n"
+
+-#: ../ifconfig.c:184
++#: ../ifconfig.c:206
+ #, c-format
+-msgid " Mask:%s\n"
+-msgstr " Masque:%s\n"
++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
++msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n"
+
+-#: ../ifconfig.c:201
+-#, c-format
+-msgid " inet6 addr: %s/%d"
+-msgstr " adr inet6: %s/%d"
++#: ../ifconfig.c:207
++#, fuzzy, c-format
++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
++msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n"
+
+-#: ../ifconfig.c:203
+-msgid " Scope:"
+-msgstr " Scope:"
++#: ../ifconfig.c:210
++#, c-format
++msgid " [outfill <NN>] [keepalive <NN>]\n"
++msgstr " [outfill <NN>] [keepalive <NN>]\n"
+
+-#: ../ifconfig.c:206
+-msgid "Global"
+-msgstr "Global"
++#: ../ifconfig.c:212
++#, c-format
++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
++msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n"
+
+-#: ../ifconfig.c:209
+-msgid "Link"
+-msgstr "Lien"
++#: ../ifconfig.c:213
++#, c-format
++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+
+-#: ../ifconfig.c:212
+-msgid "Site"
+-msgstr "Site"
++#: ../ifconfig.c:214
++#, c-format
++msgid " [multicast] [[-]promisc]\n"
++msgstr " [multicast] [[-]promisc]\n"
+
+ #: ../ifconfig.c:215
+-msgid "Compat"
+-msgstr "Compat"
++#, c-format
++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+
+-#: ../ifconfig.c:218
+-msgid "Host"
+-msgstr "Hte"
++#: ../ifconfig.c:217
++#, fuzzy, c-format
++msgid " [txqueuelen <NN>]\n"
++msgstr " [txqueuelen longueur]\n"
+
+-#: ../ifconfig.c:221
+-msgid "Unknown"
+-msgstr "Inconnu"
++#: ../ifconfig.c:220
++#, c-format
++msgid " [[-]dynamic]\n"
++msgstr " [[-]dynamic]\n"
+
+-#: ../ifconfig.c:236
++#: ../ifconfig.c:222
+ #, c-format
+-msgid " IPX/Ethernet II addr:%s\n"
+-msgstr " adr IPX/Ethernet II:%s\n"
++msgid ""
++" [up|down] ...\n"
++"\n"
++msgstr ""
++" [up|down] ...\n"
++"\n"
+
+-#: ../ifconfig.c:239
++#: ../ifconfig.c:224
+ #, c-format
+-msgid " IPX/Ethernet SNAP addr:%s\n"
+-msgstr " adr IPX/Ethernet SNAP:%s\n"
++msgid " <HW>=Hardware Type.\n"
++msgstr " <HW>=Type de matriel.\n"
+
+-#: ../ifconfig.c:242
++#: ../ifconfig.c:225
+ #, c-format
+-msgid " IPX/Ethernet 802.2 addr:%s\n"
+-msgstr " adr IPX/Ethernet 802.2:%s\n"
++msgid " List of possible hardware types:\n"
++msgstr " Liste des types de matriels possibles:\n"
+
+-#: ../ifconfig.c:245
++#. 1 = ARPable
++#: ../ifconfig.c:227
+ #, c-format
+-msgid " IPX/Ethernet 802.3 addr:%s\n"
+-msgstr " adr IPX/Ethernet 802.3:%s\n"
++msgid " <AF>=Address family. Default: %s\n"
++msgstr " <AF>=famille d'Adresses. Dfaut: %s\n"
+
+-#: ../ifconfig.c:255
++#: ../ifconfig.c:228
+ #, c-format
+-msgid " EtherTalk Phase 2 addr:%s\n"
+-msgstr " adr EtherTalk Phase 2:%s\n"
++msgid " List of possible address families:\n"
++msgstr " Liste des familles d'adresses possibles:\n"
+
+-#: ../ifconfig.c:264
++#: ../ifconfig.c:303
+ #, c-format
+-msgid " econet addr:%s\n"
+-msgstr " adr econet:%s\n"
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr ""
+
+-#: ../ifconfig.c:270
+-msgid "[NO FLAGS] "
+-msgstr "[PAS INDICATEURS] "
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr ""
+
+-#: ../ifconfig.c:272
+-msgid "UP "
+-msgstr "UP "
++#: ../ifconfig.c:380
++#, c-format
++msgid "Unknown media type.\n"
++msgstr "Type de mdia inconnu.\n"
+
+-#: ../ifconfig.c:274
+-msgid "BROADCAST "
+-msgstr "BROADCAST "
++#: ../ifconfig.c:417
++#, c-format
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
+
+-#: ../ifconfig.c:276
+-msgid "DEBUG "
+-msgstr "DEBUG "
++#: ../ifconfig.c:429
++#, c-format
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:278
+-msgid "LOOPBACK "
+-msgstr "LOOPBACK "
++#: ../ifconfig.c:441
++#, c-format
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:280
+-msgid "POINTOPOINT "
+-msgstr "POINTOPOINT "
++#: ../ifconfig.c:465
++#, c-format
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:282
+-msgid "NOTRAILERS "
+-msgstr "NOTRAILERS "
++#: ../ifconfig.c:523
++#, c-format
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:284
+-msgid "RUNNING "
+-msgstr "RUNNING "
++#: ../ifconfig.c:652
++#, c-format
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:286
+-msgid "NOARP "
+-msgstr "NOARP "
++#: ../ifconfig.c:684
++#, c-format
++msgid "hw address type `%s' has no handler to set address. failed.\n"
++msgstr ""
+
+-#: ../ifconfig.c:288
+-msgid "PROMISC "
+-msgstr "PROMISC "
++#: ../ifconfig.c:693
++#, c-format
++msgid "%s: invalid %s address.\n"
++msgstr "%s: adresse %s invalide.\n"
+
+-#: ../ifconfig.c:290
+-msgid "ALLMULTI "
+-msgstr "ALLMULTI "
+-
+-#: ../ifconfig.c:292
+-msgid "SLAVE "
+-msgstr "SLAVE "
+-
+-#: ../ifconfig.c:294
+-msgid "MASTER "
+-msgstr "MASTER "
+-
+-#: ../ifconfig.c:296
+-msgid "MULTICAST "
+-msgstr "MULTICAST "
+-
+-#: ../ifconfig.c:299
+-msgid "DYNAMIC "
+-msgstr "DYNAMIC "
+-
+-#: ../ifconfig.c:302
+-#, c-format
+-msgid " MTU:%d Metric:%d"
+-msgstr " MTU:%d Metric:%d"
+-
+-#: ../ifconfig.c:306
+-#, c-format
+-msgid " Outfill:%d Keepalive:%d"
+-msgstr " Outfill:%d Keepalive:%d"
+-
+-#: ../ifconfig.c:320
+-#, c-format
+-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
+-msgstr "Paquets Reus:%lu erreurs:%lu jets:%lu dbordements:%lu trames:%lu\n"
+-
+-#: ../ifconfig.c:325
+-#, c-format
+-msgid " compressed:%lu\n"
+-msgstr " compresss:%lu\n"
+-
+-#: ../ifconfig.c:329
+-#, c-format
+-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
+-msgstr ""
+-"Paquets transmis:%lu erreurs:%lu jets:%lu dbordements:%lu carrier:%lu\n"
+-
+-#: ../ifconfig.c:333
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
+ #, c-format
+-msgid " collisions:%lu "
+-msgstr " collisions:%lu "
+-
+-#: ../ifconfig.c:335
+-#, c-format
+-msgid "compressed:%lu "
+-msgstr "compresss:%lu "
+-
+-#: ../ifconfig.c:337
+-#, c-format
+-msgid "txqueuelen:%d "
+-msgstr "lg file transmission:%d "
+-
+-#: ../ifconfig.c:345
+-#, c-format
+-msgid "Interrupt:%d "
+-msgstr "Interruption:%d "
+-
+-#. Only print devices using it for
+-#. I/O maps
+-#: ../ifconfig.c:348
+-#, c-format
+-msgid "Base address:0x%x "
+-msgstr "Adresse de base:0x%x "
+-
+-#: ../ifconfig.c:350
+-#, c-format
+-msgid "Memory:%lx-%lx "
+-msgstr "Mmoire:%lx-%lx "
+-
+-#: ../ifconfig.c:353
+-#, c-format
+-msgid "DMA chan:%x "
+-msgstr "Canal DMA:%x "
++msgid "No support for INET6 on this system.\n"
++msgstr "Pas de support de INET6 sur ce systme.\n"
+
+-#: ../ifconfig.c:384 ../ifconfig.c:405
++#: ../ifconfig.c:780 ../ifconfig.c:871
+ #, c-format
+-msgid "%s: unknown interface: %s\n"
+-msgstr "%s: interface inconnue: %s\n"
+-
+-#: ../ifconfig.c:421
+-msgid ""
+-"Usage:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
+-msgstr ""
+-"Syntaxe:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <adresse>]\n"
+-
+-#: ../ifconfig.c:425
+-msgid " [add <address>[/<prefixlen>]]\n"
+-msgstr " [add <adresse>[/<lg_prefixe>]]\n"
+-
+-#: ../ifconfig.c:427
+-msgid " [del <address>[/<prefixlen>]]\n"
+-msgstr " [del <adresse>[/<lg_prefixe>]]\n"
+-
+-#: ../ifconfig.c:432
+-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+-msgstr " [[-]broadcast [<adresse>]] [[-]pointopoint [<adresse>]]\n"
+-
+-#: ../ifconfig.c:433
+-#, fuzzy
+-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+-msgstr " [netmask <adresse>] [dstaddr <adresse>] [tunnel <adresse>]\n"
+-
+-#: ../ifconfig.c:436
+-msgid " [outfill <NN>] [keepalive <NN>]\n"
+-msgstr " [outfill <NN>] [keepalive <NN>]\n"
+-
+-#: ../ifconfig.c:438
+-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+-msgstr " [hw <HW> <adresse>] [metric <NN>] [mtu <NN>]\n"
+-
+-#: ../ifconfig.c:439
+-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-
+-#: ../ifconfig.c:440
+-msgid " [multicast] [[-]promisc]\n"
+-msgstr " [multicast] [[-]promisc]\n"
+-
+-#: ../ifconfig.c:441
+-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+-
+-#: ../ifconfig.c:443
+-#, fuzzy
+-msgid " [txqueuelen <NN>]\n"
+-msgstr " [txqueuelen longueur]\n"
+-
+-#: ../ifconfig.c:446
+-msgid " [[-]dynamic]\n"
+-msgstr " [[-]dynamic]\n"
+-
+-#: ../ifconfig.c:448
+-msgid ""
+-" [up|down] ...\n"
+-"\n"
++msgid "Interface %s not initialized\n"
+ msgstr ""
+-" [up|down] ...\n"
+-"\n"
+-
+-#: ../ifconfig.c:450
+-msgid " <HW>=Hardware Type.\n"
+-msgstr " <HW>=Type de matriel.\n"
+-
+-#: ../ifconfig.c:451
+-msgid " List of possible hardware types:\n"
+-msgstr " Liste des types de matriels possibles:\n"
+-
+-#. 1 = ARPable
+-#: ../ifconfig.c:453
+-#, c-format
+-msgid " <AF>=Address family. Default: %s\n"
+-msgstr " <AF>=famille d'Adresses. Dfaut: %s\n"
+-
+-#: ../ifconfig.c:454
+-msgid " List of possible address families:\n"
+-msgstr " Liste des familles d'adresses possibles:\n"
+-
+-#: ../ifconfig.c:593
+-msgid "Unknown media type.\n"
+-msgstr "Type de mdia inconnu.\n"
+
+-#: ../ifconfig.c:881
+-#, c-format
+-msgid "%s: invalid %s address.\n"
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, fuzzy, c-format
++msgid "Bad address.\n"
+ msgstr "%s: adresse %s invalide.\n"
+
+-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
+-msgid "No support for INET6 on this system.\n"
+-msgstr "Pas de support de INET6 sur ce systme.\n"
+-
+-#: ../ifconfig.c:983
++#: ../ifconfig.c:885
++#, c-format
+ msgid "Address deletion not supported on this system.\n"
+ msgstr "Suppression d'adresses pas support par ce systme.\n"
+
+-#: ../ifconfig.c:1066
+-msgid "No support for INET on this system.\n"
+-msgstr "Pas de support de INET sur ce systme.\n"
++#: ../ifconfig.c:957
++#, fuzzy, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "Ne sait pas comment dfinir les adresses pour la famille %d.\n"
+
+-#: ../ifconfig.c:1076
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr "Pas de support de ECONET sur ce systme.\n"
+
+-#: ../ifconfig.c:1084
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr "Ne sait pas comment dfinir les adresses pour la famille %d.\n"
+
+-#: ../netstat.c:383
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+-msgstr ""
+-"(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez tre root.)\n"
++msgstr "(Pas d'infos lues pour \"-p\": geteuid()=%d mais vous devez tre root.)\n"
+
+-#: ../netstat.c:387
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+ msgstr ""
+ "(Tous les processus ne peuvent tre identifis, les infos sur les processus\n"
+-"non possds ne seront pas affiches, vous devez tre root pour les voir "
+-"toutes.)\n"
++"non possds ne seront pas affiches, vous devez tre root pour les voir toutes.)\n"
+
+-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr "LISTENING"
+
+-#: ../netstat.c:395
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr "CONN SENT"
+
+-#: ../netstat.c:396 ../netstat.c:1168
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr "DISC SENT"
+
+-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr "ESTABLISHED"
+
+-#: ../netstat.c:419
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr "sockets NET/ROM actives\n"
+
+-#: ../netstat.c:420
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+-"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q "
+-"Recv-Q\n"
++"Utilisatr Dest Source Periph Etat Vr/Vs Send-Q Recv-"
++"Q\n"
+
+-#: ../netstat.c:430 ../netstat.c:1208
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr ""
+
+-#: ../netstat.c:465
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr "SYN_SENT"
+
+-#: ../netstat.c:466
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr "SYN_RECV"
+
+-#: ../netstat.c:467
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr "FIN_WAIT1"
+
+-#: ../netstat.c:468
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr "FIN_WAIT2"
+
+-#: ../netstat.c:469
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr "TIME_WAIT"
+
+-#: ../netstat.c:470
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr "CLOSE"
+
+-#: ../netstat.c:471
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr "CLOSE_WAIT"
+
+-#: ../netstat.c:472
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr "LAST_ACK"
+
+-#: ../netstat.c:473
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr "LISTEN"
+
+-#: ../netstat.c:474
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr "CLOSING"
+
+-#: ../netstat.c:544
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr "attention, ligne igmp6 en erreur %d.\n"
+
+-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
+-#: ../netstat.c:935 ../netstat.c:940
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr "netstat: famille d'adresses pas supporte %d !\n"
+
+-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr "attention, ligne igmp6 en erreur %d.\n"
+
+-#: ../netstat.c:666
++#: ../netstat.c:677
++#, fuzzy, c-format
++msgid "Active X.25 sockets\n"
++msgstr "Sockets AX.25 actives\n"
++
++#. IMHO, Vr/Vs is not very usefull --SF
++#: ../netstat.c:679
++#, fuzzy, c-format
++msgid ""
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n"
++
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr "attention, ligne tcp en erreur.\n"
+
+-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr "off (0.00/%ld/%d)"
+
+-#: ../netstat.c:708
++#: ../netstat.c:804
+ #, fuzzy, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr "on%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:713
++#: ../netstat.c:809
+ #, fuzzy, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr "on%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:718
++#: ../netstat.c:814
+ #, fuzzy, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr "on%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr "unkn-%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:799
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr "attention, ligne udp en erreur.\n"
+
+-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr "INCONNU"
+
+-#: ../netstat.c:860 ../netstat.c:980
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr "on%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:949
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr "attention, ligne raw en erreur.\n"
+
+-#: ../netstat.c:1028
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr "attention, ligne unix en erreur.\n"
+
+-#: ../netstat.c:1055
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr "STREAM"
+
+-#: ../netstat.c:1059
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr "DGRAM"
+
+-#: ../netstat.c:1063
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr "RAW"
+
+-#: ../netstat.c:1067
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr "RDM"
+
+-#: ../netstat.c:1071
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+ msgstr "SEQPACKET"
+
+-#: ../netstat.c:1080
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr "LIBRE"
+
+-#: ../netstat.c:1096
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr "ENCONNEXION"
+
+-#: ../netstat.c:1100
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr "CONNECTE"
+
+-#: ../netstat.c:1104
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr "ENDECONNEXION"
+
+-#: ../netstat.c:1135
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+ msgstr "Sockets du domaine UNIX actives"
+
+-#: ../netstat.c:1137 ../netstat.c:1666
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr "(serveurs et tablies)"
+
+-#: ../netstat.c:1140 ../netstat.c:1669
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr "(seulement serveurs)"
+
+-#: ../netstat.c:1142 ../netstat.c:1671
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr "(sans serveurs)"
+
+-#: ../netstat.c:1145
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+@@ -994,32 +906,36 @@
+ "\n"
+ "Proto RefCpt Indicatrs Type Etat I-Node"
+
+-#: ../netstat.c:1147
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr " Chemin\n"
+
+-#: ../netstat.c:1167
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr "SABM SENT"
+
+-#: ../netstat.c:1170
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr "RECOVERY"
+
+-#: ../netstat.c:1184
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr "Sockets AX.25 actives\n"
+
+-#: ../netstat.c:1185
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr "Dest Source Periph Etat Vr/Vs Send-Q Recv-Q\n"
+
+-#: ../netstat.c:1228
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr ""
+
+-#: ../netstat.c:1279
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+@@ -1029,55 +945,53 @@
+ "Proto Recv-Q Send-Q Adresse locale Adresse distante "
+ "Etat"
+
+-#: ../netstat.c:1281
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr "Utilisatr"
+
+-#: ../netstat.c:1315
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr "ESTAB"
+
+-#: ../netstat.c:1323
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr "UNK."
+
+-#: ../netstat.c:1367
+-msgid " - no statistics available -"
+-msgstr ""
+-
+-#: ../netstat.c:1370
+-msgid "[NO FLAGS]"
+-msgstr "[PAS INDICATEURS]"
+-
+-#: ../netstat.c:1400
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+ msgstr "Table d'interfaces noyau\n"
+
+-#: ../netstat.c:1401
++#: ../netstat.c:1465
++#, fuzzy, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+ "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Indic\n"
+
+-#: ../netstat.c:1404
++#: ../netstat.c:1469
+ msgid "missing interface information"
+ msgstr "informations d'interface manquantes"
+
+-#: ../netstat.c:1425
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+-"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"syntaxe: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+
+-#: ../netstat.c:1426
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr " netstat [-vnNcaeol] [<Socket> ...]\n"
+
+-#: ../netstat.c:1427
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+@@ -1085,27 +999,30 @@
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+
+-#: ../netstat.c:1429
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr " -r, --route affiche la table de routage\n"
+
+-#: ../netstat.c:1430
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr " -i, --interfaces affiche la table d'interfaces\n"
+
+-#: ../netstat.c:1431
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr ""
+ " -g, --groups affiche les membres d'un groupe multicast\n"
+
+-#: ../netstat.c:1432
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+-msgstr ""
+-" -s, --statistics affiche les statistiques rseau (comme "
+-"SNMP)\n"
++msgstr " -s, --statistics affiche les statistiques rseau (comme SNMP)\n"
+
+-#: ../netstat.c:1434
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+@@ -1113,23 +1030,41 @@
+ " -M, --masquerade affiche les connexions masques\n"
+ "\n"
+
+-#: ../netstat.c:1438 ../route.c:87
++#: ../netstat.c:1505
++#, fuzzy, c-format
++msgid " --numeric-hosts don't resolve host names\n"
++msgstr " -n, --numeric ne rsout pas les noms\n"
++
++#: ../netstat.c:1506
++#, fuzzy, c-format
++msgid " --numeric-ports don't resolve port names\n"
++msgstr " -n, --numeric ne rsout pas les noms\n"
++
++#: ../netstat.c:1507
++#, fuzzy, c-format
++msgid " --numeric-users don't resolve user names\n"
++msgstr " -n, --numeric ne rsout pas les noms\n"
++
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr " -N, --symbolic rsoud les noms matriels\n"
+
+-#: ../netstat.c:1439 ../route.c:88
+-#, fuzzy
++#: ../netstat.c:1509 ../route.c:88
++#, fuzzy, c-format
+ msgid " -e, --extend display other/more information\n"
+ msgstr ""
+ " -e, --extend affiche d'autres/plus d'informations\n"
+
+-#: ../netstat.c:1440
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+ msgstr ""
+ " -p, --programs affiche le nom du programme/PID des "
+ "sockets\n"
+
+-#: ../netstat.c:1441
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+@@ -1137,32 +1072,31 @@
+ " -c, --continuous listing continu\n"
+ "\n"
+
+-#: ../netstat.c:1442
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+-msgstr ""
+-" -l, --listening affiche les sockets du serveur l'coute\n"
++msgstr " -l, --listening affiche les sockets du serveur l'coute\n"
+
+-#: ../netstat.c:1443
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+-msgstr ""
+-" -a, --all, --listening affiche toutes les prises (dfaut: "
+-"connects)\n"
++msgstr " -a, --all, --listening affiche toutes les prises (dfaut: connects)\n"
+
+-#: ../netstat.c:1444
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr " -o, --timers affiche les timers\n"
+
+-#: ../netstat.c:1445 ../route.c:89
+-#, fuzzy
++#: ../netstat.c:1515 ../route.c:89
++#, fuzzy, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+-msgstr ""
+-" -F, --fib affiche la Forwarding Infomation Base "
+-"(dfaut)\n"
++msgstr " -F, --fib affiche la Forwarding Infomation Base (dfaut)\n"
+
+-#: ../netstat.c:1446 ../route.c:90
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+@@ -1170,110 +1104,118 @@
+ " -C, --cache affiche le cache de routage au lieu de FIB\n"
+ "\n"
+
+-#: ../netstat.c:1448
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+
+-#: ../netstat.c:1449 ../route.c:92
+-#, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
++#: ../netstat.c:1519
++#, fuzzy, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Dfaut: %s\n"
+
+-#: ../netstat.c:1450 ../route.c:93
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+ msgstr " Liste les familles d'adresses possibles (supportant le routage):\n"
+
+-#: ../netstat.c:1663
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr "Connexions Internet actives "
+
+-#: ../netstat.c:1673
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+ "\n"
+-"Proto Recv-Q Send-Q Adresse locale Adresse distante Etat "
+-" "
++"Proto Recv-Q Send-Q Adresse locale Adresse distante "
++"Etat "
+
+-#: ../netstat.c:1675
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr " Utilisatr Inode "
+
+-#: ../netstat.c:1678
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr " Timer"
+
+-#: ../netstat.c:1708
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+ msgstr ""
+
+-#: ../netstat.c:1709
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr ""
+
+-#: ../rarp.c:43
++#: ../rarp.c:44
+ msgid "This kernel does not support RARP.\n"
+ msgstr "Ce noyau ne supporte pas RARP.\n"
+
+-#: ../rarp.c:82
++#: ../rarp.c:83
+ #, c-format
+ msgid "no RARP entry for %s.\n"
+ msgstr "pas d'entre RARP pour %s.\n"
+
+-#: ../rarp.c:95
++#: ../rarp.c:96
+ #, c-format
+ msgid "%s: bad hardware address\n"
+ msgstr "%s: mauvaise adresse matriel\n"
+
+-#: ../rarp.c:127
++#: ../rarp.c:128
+ #, c-format
+ msgid "rarp: cannot open file %s:%s.\n"
+ msgstr "rarp: ne peut ouvrir le fichier %s:%s.\n"
+
+-#: ../rarp.c:139
++#: ../rarp.c:140
+ #, c-format
+ msgid "rarp: format error at %s:%u\n"
+ msgstr "rarp: erreur de format %s:%u\n"
+
+-#: ../rarp.c:143 ../rarp.c:287
++#: ../rarp.c:144 ../rarp.c:289
+ #, c-format
+ msgid "rarp: %s: unknown host\n"
+ msgstr "rarp: %s: hte inconnu\n"
+
+-#: ../rarp.c:146
++#: ../rarp.c:147
+ #, c-format
+ msgid "rarp: cannot set entry from %s:%u\n"
+ msgstr "rarp: ne peut dfinir l'entre depuis %s:%u\n"
+
+-#: ../rarp.c:175
++#: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+-msgstr ""
+-"Usage: rarp -a liste les entres en cache.\n"
++msgstr "Usage: rarp -a liste les entres en cache.\n"
+
+-#: ../rarp.c:176
++#: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+-msgstr ""
+-" rarp -d <hostname> supprime l'entre du cache.\n"
++msgstr " rarp -d <hostname> supprime l'entre du cache.\n"
+
+-#: ../rarp.c:177
++#: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+-msgstr ""
+-" rarp [<HW>] -s <hostname> <adrmat> ajoute l'entre au cache.\n"
++msgstr " rarp [<HW>] -s <hostname> <adrmat> ajoute l'entre au cache.\n"
+
+-#: ../rarp.c:178
++#: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+-msgstr ""
+-" rarp -f ajoute les entres depuis "
+-"/etc/ethers.\n"
++msgstr " rarp -f ajoute les entres depuis /etc/ethers.\n"
+
+-#: ../rarp.c:179
++#: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+@@ -1281,24 +1223,26 @@
+ " rarp -V affiche la version.\n"
+ "\n"
+
+-#: ../rarp.c:236
++#: ../rarp.c:238
+ #, c-format
+ msgid "%s: illegal option mix.\n"
+ msgstr "%s: combinaison d'options illgales.\n"
+
+-#: ../rarp.c:267
++#: ../rarp.c:269
+ #, c-format
+ msgid "rarp: %s: unknown hardware type.\n"
+ msgstr "rarp: %s: type de matriel inconnu.\n"
+
+-#: ../route.c:79
++#: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+ "Syntaxe: route [-nNvee] [-FC] [<AF>] Liste les tables de routage "
+ "noyau\n"
+
+-#: ../route.c:80
++#: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+@@ -1307,15 +1251,15 @@
+ "pour AF.\n"
+ "\n"
+
+-#: ../route.c:82
++#: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+-msgstr ""
+-" route {-h|--help} [<AF>] Utilisation dtaille pour l'AF "
+-"spcifi.\n"
++msgstr " route {-h|--help} [<AF>] Utilisation dtaille pour l'AF spcifi.\n"
+
+-#: ../route.c:83
++#: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+@@ -1325,16 +1269,23 @@
+ "termine.\n"
+ "\n"
+
++#: ../route.c:92
++#, fuzzy, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>=Utiliser '-A <af>' ou '--<af>' Dfaut: %s\n"
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr "Syntaxe: plipconfig [-a] [-i] [-v] interface\n"
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr " [nibble NN] [trigger NN]\n"
+
+ #: ../plipconfig.c:68
+-#, fuzzy
++#, fuzzy, c-format
+ msgid " plipconfig -V | --version\n"
+ msgstr " plipconfig -V\n"
+
+@@ -1343,474 +1294,763 @@
+ msgid "%s\tnibble %lu trigger %lu\n"
+ msgstr "%s\tnibble %lu trigger %lu\n"
+
+-#: ../iptunnel.c:79
++#: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr ""
+
+-#: ../iptunnel.c:80
++#: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+ msgstr ""
+
+-#: ../iptunnel.c:81
++#: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr ""
+
+-#: ../iptunnel.c:82
++#: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+ msgstr ""
+
+-#: ../iptunnel.c:83
++#: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+ msgstr ""
+
+-#: ../iptunnel.c:84
++#: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr ""
+
+-#: ../iptunnel.c:85
++#: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr ""
+
+-#: ../iptunnel.c:86
++#: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr ""
+
+-#: ../iptunnel.c:87
++#: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr ""
+
+-#: ../iptunnel.c:88
++#: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr ""
+
+-#: ../iptunnel.c:326
++#: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:346
++#: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:361
++#: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr ""
+
+-#: ../iptunnel.c:373
++#: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr ""
+
+-#: ../iptunnel.c:411
++#: ../iptunnel.c:417
+ #, c-format
+ msgid "%s: %s/ip remote %s local %s "
+ msgstr ""
+
+-#: ../iptunnel.c:415
++#: ../iptunnel.c:421
+ #, fuzzy
+ msgid "unknown"
+ msgstr "Inconnu"
+
+-#: ../iptunnel.c:447
++#: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:449
++#: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:451
++#: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:453
++#: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:481
++#: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+ msgstr ""
+
+-#: ../iptunnel.c:494
++#: ../iptunnel.c:500
+ #, c-format
+ msgid "Failed to get type of [%s]\n"
+ msgstr ""
+
+-#: ../iptunnel.c:510
++#: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr ""
+
+-#: ../iptunnel.c:513
++#: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr ""
+
+-#: ../statistics.c:45
++#: ../statistics.c:47
+ msgid "ICMP input histogram:"
+ msgstr "Histogramme d'entre ICMP"
+
+-#: ../statistics.c:46
++#: ../statistics.c:48
+ msgid "ICMP output histogram:"
+ msgstr "Histogramme de sortie ICMP"
+
+-#: ../statistics.c:63
++#: ../statistics.c:65
+ #, c-format
+ msgid "Forwarding is %s"
+ msgstr "Racheminement est %s"
+
+-#: ../statistics.c:64
+-#, c-format
+-msgid "Default TTL is %d"
++#: ../statistics.c:66
++#, fuzzy, c-format
++msgid "Default TTL is %u"
+ msgstr "TTL par dfaut est %d"
+
+-#: ../statistics.c:65
+-#, c-format
+-msgid "%d total packets received"
++#: ../statistics.c:67
++#, fuzzy, c-format
++msgid "%u total packets received"
+ msgstr "%d paquets totaux reus"
+
+-#: ../statistics.c:66
+-#, c-format
+-msgid "%d with invalid headers"
++#: ../statistics.c:68
++#, fuzzy, c-format
++msgid "%u with invalid headers"
+ msgstr "%d avec en-tte invalides"
+
+-#: ../statistics.c:67
+-#, c-format
+-msgid "%d with invalid addresses"
++#: ../statistics.c:69
++#, fuzzy, c-format
++msgid "%u with invalid addresses"
+ msgstr "%d avec adresses invalides"
+
+-#: ../statistics.c:68
+-#, c-format
+-msgid "%d forwarded"
++#: ../statistics.c:70
++#, fuzzy, c-format
++msgid "%u forwarded"
+ msgstr "%d rachemines"
+
+-#: ../statistics.c:69
+-#, c-format
+-msgid "%d with unknown protocol"
++#: ../statistics.c:71
++#, fuzzy, c-format
++msgid "%u with unknown protocol"
+ msgstr "%d avec protocole inconnu"
+
+-#: ../statistics.c:70
+-#, c-format
+-msgid "%d incoming packets discarded"
++#: ../statistics.c:72
++#, fuzzy, c-format
++msgid "%u incoming packets discarded"
+ msgstr "%d paquets entrant jets"
+
+-#: ../statistics.c:71
+-#, c-format
+-msgid "%d incoming packets delivered"
++#: ../statistics.c:73
++#, fuzzy, c-format
++msgid "%u incoming packets delivered"
+ msgstr "%d paquets entrant dlivrs"
+
+-#: ../statistics.c:72
+-#, c-format
+-msgid "%d requests sent out"
++#: ../statistics.c:74
++#, fuzzy, c-format
++msgid "%u requests sent out"
+ msgstr "%d requtes envoyes"
+
+ #. ?
+-#: ../statistics.c:73
+-#, c-format
+-msgid "%d outgoing packets dropped"
++#: ../statistics.c:75
++#, fuzzy, c-format
++msgid "%u outgoing packets dropped"
+ msgstr "%d paquets sortant jets"
+
+-#: ../statistics.c:74
+-#, c-format
+-msgid "%d dropped because of missing route"
++#: ../statistics.c:76
++#, fuzzy, c-format
++msgid "%u dropped because of missing route"
+ msgstr "%d jets pour cause de route manquante"
+
+-#: ../statistics.c:75
+-#, c-format
+-msgid "%d fragments dropped after timeout"
++#: ../statistics.c:77
++#, fuzzy, c-format
++msgid "%u fragments dropped after timeout"
+ msgstr "%d fragments jets aprs timeout"
+
+-#: ../statistics.c:76
+-#, c-format
+-msgid "%d reassemblies required"
++#: ../statistics.c:78
++#, fuzzy, c-format
++msgid "%u reassemblies required"
+ msgstr "%d ncessitant un rassemblage"
+
+ #. ?
+-#: ../statistics.c:77
+-#, c-format
+-msgid "%d packets reassembled ok"
++#: ../statistics.c:79
++#, fuzzy, c-format
++msgid "%u packets reassembled ok"
+ msgstr "%d paquets rassembls correctement"
+
+-#: ../statistics.c:78
+-#, c-format
+-msgid "%d packet reassembles failed"
++#: ../statistics.c:80
++#, fuzzy, c-format
++msgid "%u packet reassembles failed"
+ msgstr "%d paquets mal rassembls"
+
+-#: ../statistics.c:79
+-#, c-format
+-msgid "%d fragments received ok"
++#: ../statistics.c:81
++#, fuzzy, c-format
++msgid "%u fragments received ok"
+ msgstr "%d fragments reus correctement"
+
+-#: ../statistics.c:80
+-#, c-format
+-msgid "%d fragments failed"
++#: ../statistics.c:82
++#, fuzzy, c-format
++msgid "%u fragments failed"
+ msgstr "%d fragments en chec"
+
+-#: ../statistics.c:81
+-#, c-format
+-msgid "%d fragments created"
++#: ../statistics.c:83
++#, fuzzy, c-format
++msgid "%u fragments created"
+ msgstr "%d fragments crs"
+
+-#: ../statistics.c:86
+-#, c-format
+-msgid "%d ICMP messages received"
++#: ../statistics.c:88
++#, fuzzy, c-format
++msgid "%u ICMP messages received"
+ msgstr "%d messages ICMP reus"
+
+-#: ../statistics.c:87
+-#, c-format
+-msgid "%d input ICMP message failed."
++#: ../statistics.c:89
++#, fuzzy, c-format
++msgid "%u input ICMP message failed."
+ msgstr "%d messages d'entre ICMP en chec"
+
+-#: ../statistics.c:88 ../statistics.c:101
+-#, c-format
+-msgid "destination unreachable: %d"
++#: ../statistics.c:90 ../statistics.c:103
++#, fuzzy, c-format
++msgid "destination unreachable: %u"
+ msgstr "destination injoignable: %d"
+
+-#: ../statistics.c:89
+-#, c-format
+-msgid "timeout in transit: %d"
++#: ../statistics.c:91
++#, fuzzy, c-format
++msgid "timeout in transit: %u"
+ msgstr "timeout en transmission: %d"
+
+-#: ../statistics.c:90 ../statistics.c:103
+-#, c-format
+-msgid "wrong parameters: %d"
++#: ../statistics.c:92 ../statistics.c:105
++#, fuzzy, c-format
++msgid "wrong parameters: %u"
+ msgstr "mauvais paramtre: %d"
+
+ #. ?
+-#: ../statistics.c:91
+-#, c-format
+-msgid "source quenchs: %d"
++#: ../statistics.c:93
++#, fuzzy, c-format
++msgid "source quenches: %u"
+ msgstr "Source Quenchs: %d"
+
+-#: ../statistics.c:92
+-#, c-format
+-msgid "redirects: %d"
++#: ../statistics.c:94
++#, fuzzy, c-format
++msgid "redirects: %u"
+ msgstr "Redirections: %d"
+
+-#: ../statistics.c:93
+-#, c-format
+-msgid "echo requests: %d"
++#: ../statistics.c:95
++#, fuzzy, c-format
++msgid "echo requests: %u"
+ msgstr "requtes echo: %d"
+
+-#: ../statistics.c:94 ../statistics.c:107
+-#, c-format
+-msgid "echo replies: %d"
++#: ../statistics.c:96 ../statistics.c:109
++#, fuzzy, c-format
++msgid "echo replies: %u"
+ msgstr "rponses echo: %d"
+
+-#: ../statistics.c:95
+-#, c-format
+-msgid "timestamp request: %d"
++#: ../statistics.c:97
++#, fuzzy, c-format
++msgid "timestamp request: %u"
+ msgstr "requtes dates: %d"
+
+-#: ../statistics.c:96
+-#, c-format
+-msgid "timestamp reply: %d"
++#: ../statistics.c:98
++#, fuzzy, c-format
++msgid "timestamp reply: %u"
+ msgstr "rponses dates: %d"
+
+-#: ../statistics.c:97
+-#, c-format
+-msgid "address mask request: %d"
++#: ../statistics.c:99
++#, fuzzy, c-format
++msgid "address mask request: %u"
+ msgstr "requtes de masque d'adresse: %d"
+
+ #. ?
+-#: ../statistics.c:98
+-msgid "address mask replies"
+-msgstr "rponses de masque d'adresses"
++#: ../statistics.c:100 ../statistics.c:113
++#, fuzzy, c-format
++msgid "address mask replies: %u"
++msgstr "rponses de masque d'adresse: %d"
+
+ #. ?
+-#: ../statistics.c:99
+-#, c-format
+-msgid "%d ICMP messages sent"
++#: ../statistics.c:101
++#, fuzzy, c-format
++msgid "%u ICMP messages sent"
+ msgstr "%d messages ICMP envoys"
+
+-#: ../statistics.c:100
+-#, c-format
+-msgid "%d ICMP messages failed"
++#: ../statistics.c:102
++#, fuzzy, c-format
++msgid "%u ICMP messages failed"
+ msgstr "%d messages ICMP en chec"
+
+-#: ../statistics.c:102
+-#, c-format
+-msgid "time exceeded: %d"
++#: ../statistics.c:104
++#, fuzzy, c-format
++msgid "time exceeded: %u"
+ msgstr "temps dpass: %d"
+
+ #. ?
+-#: ../statistics.c:104
+-#, c-format
+-msgid "source quench: %d"
++#: ../statistics.c:106
++#, fuzzy, c-format
++msgid "source quench: %u"
+ msgstr "Source Quench: %d"
+
+-#: ../statistics.c:105
+-#, c-format
+-msgid "redirect: %d"
++#: ../statistics.c:107
++#, fuzzy, c-format
++msgid "redirect: %u"
+ msgstr "redirection: %d"
+
+-#: ../statistics.c:106
+-#, c-format
+-msgid "echo request: %d"
++#: ../statistics.c:108
++#, fuzzy, c-format
++msgid "echo request: %u"
+ msgstr "requte echo: %d"
+
+-#: ../statistics.c:108
+-#, c-format
+-msgid "timestamp requests: %d"
++#: ../statistics.c:110
++#, fuzzy, c-format
++msgid "timestamp requests: %u"
+ msgstr "requtes dates: %d"
+
+-#: ../statistics.c:109
+-#, c-format
+-msgid "timestamp replies: %d"
++#: ../statistics.c:111
++#, fuzzy, c-format
++msgid "timestamp replies: %u"
+ msgstr "rponses dates: %d"
+
+-#: ../statistics.c:110
+-#, c-format
+-msgid "address mask requests: %d"
++#: ../statistics.c:112
++#, fuzzy, c-format
++msgid "address mask requests: %u"
+ msgstr "requtes de masque d'adresse: %d"
+
+-#: ../statistics.c:111
+-#, c-format
+-msgid "address mask replies: %d"
+-msgstr "rponses de masque d'adresse: %d"
+-
+-#: ../statistics.c:116
++#: ../statistics.c:118
+ #, c-format
+ msgid "RTO algorithm is %s"
+ msgstr "algorithme RTO est %s"
+
+-#: ../statistics.c:120
+-#, c-format
+-msgid "%d active connections openings"
++#: ../statistics.c:122
++#, fuzzy, c-format
++msgid "%u active connections openings"
+ msgstr "%d ouvertures de connexions actives"
+
+-#: ../statistics.c:121
+-#, c-format
+-msgid "%d passive connection openings"
++#: ../statistics.c:123
++#, fuzzy, c-format
++msgid "%u passive connection openings"
+ msgstr "%d ouvertures de connexions passives"
+
+-#: ../statistics.c:122
+-#, c-format
+-msgid "%d failed connection attempts"
++#: ../statistics.c:124
++#, fuzzy, c-format
++msgid "%u failed connection attempts"
+ msgstr "%d tentatives de connexion choues"
+
+-#: ../statistics.c:123
+-#, c-format
+-msgid "%d connection resets received"
++#: ../statistics.c:125
++#, fuzzy, c-format
++msgid "%u connection resets received"
+ msgstr "%d rinitialisations de connexions reues"
+
+-#: ../statistics.c:124
+-#, c-format
+-msgid "%d connections established"
++#: ../statistics.c:126
++#, fuzzy, c-format
++msgid "%u connections established"
+ msgstr "%d connexions tablies"
+
+-#: ../statistics.c:125
+-#, c-format
+-msgid "%d segments received"
++#: ../statistics.c:127
++#, fuzzy, c-format
++msgid "%u segments received"
+ msgstr "%d segments reus"
+
+-#: ../statistics.c:126
+-#, c-format
+-msgid "%d segments send out"
++#: ../statistics.c:128
++#, fuzzy, c-format
++msgid "%u segments send out"
+ msgstr "%d segments envoys"
+
+-#: ../statistics.c:127
+-#, c-format
+-msgid "%d segments retransmited"
++#: ../statistics.c:129
++#, fuzzy, c-format
++msgid "%u segments retransmited"
+ msgstr "%d segments retransmis"
+
+-#: ../statistics.c:128
+-#, c-format
+-msgid "%d bad segments received."
++#: ../statistics.c:130
++#, fuzzy, c-format
++msgid "%u bad segments received."
+ msgstr "%d mauvais segments reus."
+
+-#: ../statistics.c:129
+-#, c-format
+-msgid "%d resets sent"
++#: ../statistics.c:131
++#, fuzzy, c-format
++msgid "%u resets sent"
+ msgstr "%d rinitialisations envoyes"
+
+-#: ../statistics.c:134
+-#, c-format
+-msgid "%d packets received"
++#: ../statistics.c:136
++#, fuzzy, c-format
++msgid "%u packets received"
+ msgstr "%d paquets reus"
+
+-#: ../statistics.c:135
+-#, c-format
+-msgid "%d packets to unknown port received."
++#: ../statistics.c:137
++#, fuzzy, c-format
++msgid "%u packets to unknown port received."
+ msgstr "%d paquets reus pour un port inconnu"
+
+-#: ../statistics.c:136
+-#, c-format
+-msgid "%d packet receive errors"
++#: ../statistics.c:138
++#, fuzzy, c-format
++msgid "%u packet receive errors"
+ msgstr "%d erreurs en rception de paquets"
+
+-#: ../statistics.c:137
++#: ../statistics.c:139
++#, fuzzy, c-format
++msgid "%u packets sent"
++msgstr "%d paquets envoys"
++
++#: ../statistics.c:144
++#, fuzzy, c-format
++msgid "%u SYN cookies sent"
++msgstr "%d SYN-Cookies reus"
++
++#: ../statistics.c:145
++#, fuzzy, c-format
++msgid "%u SYN cookies received"
++msgstr "%d SYN-Cookies reus"
++
++#: ../statistics.c:146
++#, fuzzy, c-format
++msgid "%u invalid SYN cookies received"
++msgstr "%d SYN-Cookies reus incorrects"
++
++#: ../statistics.c:148
++#, fuzzy, c-format
++msgid "%u resets received for embryonic SYN_RECV sockets"
++msgstr "%d rinitialisations reues pour sockets SYN_RECV embryonnaires"
++
++#: ../statistics.c:150
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue because of socket buffer overrun"
++msgstr "%d paquets supprims de la file de rception en raison de tampon de sockets plein"
++
++#. obsolete: 2.2.0 doesn't do that anymore
++#: ../statistics.c:153
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue"
++msgstr "%d paquets supprims de la file hors service"
++
++#: ../statistics.c:154
++#, fuzzy, c-format
++msgid ""
++"%u packets dropped from out-of-order queue because of socket buffer overrun"
++msgstr "%d paquets jets de la file hors service en raison de tampon de sockets plein"
++
++#: ../statistics.c:156
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because they were out-of-window"
++msgstr "%d ICMP paquets jets car hors de la fentre"
++
++#: ../statistics.c:158
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because socket was locked"
++msgstr "%d paquets ICMP jets car la socket a t vrouille"
++
++#: ../statistics.c:160
+ #, c-format
+-msgid "%d packets sent"
++msgid "%u TCP sockets finished time wait in fast timer"
++msgstr ""
++
++#: ../statistics.c:161
++#, c-format
++msgid "%u time wait sockets recycled by time stamp"
++msgstr ""
++
++#: ../statistics.c:162
++#, c-format
++msgid "%u TCP sockets finished time wait in slow timer"
++msgstr ""
++
++#: ../statistics.c:163
++#, c-format
++msgid "%u passive connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:165
++#, c-format
++msgid "%u active connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:167
++#, c-format
++msgid "%u packets rejects in established connections because of timestamp"
++msgstr ""
++
++#: ../statistics.c:169
++#, fuzzy, c-format
++msgid "%u delayed acks sent"
+ msgstr "%d paquets envoys"
+
+-#: ../statistics.c:142
++#: ../statistics.c:170
+ #, c-format
+-msgid "%d SYN cookies sent"
++msgid "%u delayed acks further delayed because of locked socket"
+ msgstr ""
+
+-#: ../statistics.c:143
++#: ../statistics.c:172
+ #, c-format
+-msgid "%d SYN cookies received"
+-msgstr "%d SYN-Cookies reus"
++msgid "Quick ack mode was activated %u times"
++msgstr ""
+
+-#: ../statistics.c:144
++#: ../statistics.c:173
+ #, c-format
+-msgid "%d invalid SYN cookies received"
+-msgstr "%d SYN-Cookies reus incorrects"
++msgid "%u times the listen queue of a socket overflowed"
++msgstr ""
+
+-#: ../statistics.c:146
++#: ../statistics.c:175
+ #, c-format
+-msgid "%d resets received for embryonic SYN_RECV sockets"
+-msgstr "%d rinitialisations reues pour sockets SYN_RECV embryonnaires"
++msgid "%u SYNs to LISTEN sockets ignored"
++msgstr ""
+
+-#: ../statistics.c:148
++#: ../statistics.c:176
+ #, c-format
+-msgid "%d packets pruned from receive queue because of socket buffer overrun"
++msgid "%u packets directly queued to recvmsg prequeue."
+ msgstr ""
+-"%d paquets supprims de la file de rception en raison de tampon de sockets "
+-"plein"
+
+-#. obsolete: 2.2.0 doesn't do that anymore
+-#: ../statistics.c:151
++#: ../statistics.c:178
++#, c-format
++msgid "%u of bytes directly received from backlog"
++msgstr ""
++
++#: ../statistics.c:180
+ #, c-format
+-msgid "%d packets pruned from out-of-order queue"
++msgid "%u of bytes directly received from prequeue"
++msgstr ""
++
++#: ../statistics.c:182
++#, fuzzy, c-format
++msgid "%u packets dropped from prequeue"
+ msgstr "%d paquets supprims de la file hors service"
+
+-#: ../statistics.c:152
++#: ../statistics.c:183
++#, fuzzy, c-format
++msgid "%u packet headers predicted"
++msgstr "%d paquets reus"
++
++#: ../statistics.c:184
+ #, c-format
+-msgid ""
+-"%d packets dropped from out-of-order queue because of socket buffer overrun"
++msgid "%u packets header predicted and directly queued to user"
+ msgstr ""
+-"%d paquets jets de la file hors service en raison de tampon de sockets plein"
+
+-#: ../statistics.c:154
++#: ../statistics.c:186
+ #, c-format
+-msgid "%d ICMP packets dropped because they were out-of-window"
+-msgstr "%d ICMP paquets jets car hors de la fentre"
++msgid "Ran %u times out of system memory during packet sending"
++msgstr ""
+
+-#: ../statistics.c:156
++#: ../statistics.c:188
++#, fuzzy, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr "%d paquets reus pour un port inconnu"
++
++#: ../statistics.c:189
+ #, c-format
+-msgid "%d ICMP packets dropped because socket was locked"
+-msgstr "%d paquets ICMP jets car la socket a t vrouille"
++msgid "%u predicted acknowledgments"
++msgstr ""
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
++
++#: ../statistics.c:192
++#, fuzzy, c-format
++msgid "%u bad SACKs received"
++msgstr "%d mauvais segments reus."
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr ""
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr ""
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
++
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:197
++#, c-format
++msgid "%u congestion windows fully recovered"
++msgstr ""
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr ""
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, fuzzy, c-format
++msgid "%u retransmits lost"
++msgstr "%d rinitialisations envoyes"
++
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, fuzzy, c-format
++msgid "%u fast retransmits"
++msgstr "%d segments retransmis"
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr ""
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, fuzzy, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "%d segments retransmis"
++
++#: ../statistics.c:210
++#, fuzzy, c-format
++msgid "%u sack retransmits failed"
++msgstr "%d paquets mal rassembls"
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, fuzzy, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr "%d paquets supprims de la file de rception en raison de tampon de sockets plein"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, fuzzy, c-format
++msgid "%u DSACKs received"
++msgstr "%d paquets reus"
++
++#: ../statistics.c:216
++#, fuzzy, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "%d paquets totaux reus"
++
++#: ../statistics.c:217
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "%d rinitialisations de connexions reues"
++
++#: ../statistics.c:218
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "%d rinitialisations de connexions reues"
++
++#: ../statistics.c:219
++#, fuzzy, c-format
++msgid "%u connections reset due to early user close"
++msgstr "%d rinitialisations de connexions reues"
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, fuzzy, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "%d rinitialisations de connexions reues"
+
+ #: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr "active"
+
+-#: ../statistics.c:222
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr "dsactive"
+
+-#: ../statistics.c:272
+-#, c-format
+-msgid "unknown title %s\n"
+-msgstr "titre inconnu %s\n"
+-
+-#: ../statistics.c:298
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr "erreur d'analyse de /proc/net/snmp"
+
+-#: ../statistics.c:311
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr "ne peut ouvrir /proc/net/snmp"
+
+@@ -1824,89 +2064,95 @@
+ msgid "Cannot change line discipline to `%s'.\n"
+ msgstr "Ne peut changer la discipline de ligne `%s'.\n"
+
+-#: ../lib/af.c:145 ../lib/hw.c:148
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr "UNSPEC"
+
+-#: ../lib/af.c:147
++#: ../lib/af.c:155
+ msgid "UNIX Domain"
+ msgstr "Domaine UNIX"
+
+-#: ../lib/af.c:150
++#: ../lib/af.c:158
+ msgid "DARPA Internet"
+ msgstr "DARPA Internet"
+
+-#: ../lib/af.c:153
++#: ../lib/af.c:161
+ msgid "IPv6"
+ msgstr "IPv6"
+
+-#: ../lib/af.c:156 ../lib/hw.c:169
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr "AMPR AX.25"
+
+-#: ../lib/af.c:159 ../lib/hw.c:175
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr "AMPR NET/ROM"
+
+-#: ../lib/af.c:162
++#: ../lib/af.c:170
+ msgid "Novell IPX"
+ msgstr ""
+
+-#: ../lib/af.c:165
++#: ../lib/af.c:173
+ msgid "Appletalk DDP"
+ msgstr "Appletalk DDP"
+
+-#: ../lib/af.c:168 ../lib/hw.c:207
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr "Econet"
+
+-#: ../lib/af.c:171 ../lib/hw.c:172
++#: ../lib/af.c:179
++msgid "CCITT X.25"
++msgstr ""
++
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr "AMPR ROSE"
+
+-#: ../lib/af.c:174 ../lib/hw.c:160
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr "Ash"
+
+-#: ../lib/af.c:232
++#: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr "Ne fournissez pas plus d'une famille d'adresses SVP.\n"
+
+-#: ../lib/af.c:293
++#: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr "Trop d'arguments de familles d'adresses.\n"
+
+-#: ../lib/af.c:304
++#: ../lib/af.c:315
+ #, c-format
+ msgid "Unknown address family `%s'.\n"
+ msgstr "Famille d'adresses inconnue `%s'.\n"
+
+-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
+-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
+-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
+-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
+-msgid "[NONE SET]"
+-msgstr "[INDEFINI]"
+-
+-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
+ #, c-format
+ msgid "in_arcnet(%s): invalid arcnet address!\n"
+ msgstr "in_arcnet(%s): adresse arcnet invalide !\n"
+
+-#: ../lib/arcnet.c:108
++#: ../lib/arcnet.c:97
+ #, c-format
+ msgid "in_arcnet(%s): trailing : ignored!\n"
+ msgstr "in_arcnet(%s): restant : ignor !\n"
+
+-#: ../lib/arcnet.c:120
++#: ../lib/arcnet.c:109
+ #, c-format
+ msgid "in_arcnet(%s): trailing junk!\n"
+ msgstr "in_arcnet(%s): le restant la poubelle !\n"
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+ msgstr "Adresse Ash malforme"
+
++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
++msgid "[NONE SET]"
++msgstr "[INDEFINI]"
++
+ #: ../lib/ax25.c:97 ../lib/netrom.c:100
+ msgid "Invalid callsign"
+ msgstr "Signal d'appel invalide"
+@@ -1916,22 +2162,21 @@
+ msgstr "Signal d'appel trop long"
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr "AX.25 pas configur sur ce systme.\n"
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr "Table de routage AX.25 du noyau\n"
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr "Destination Iface Utilisation\n"
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr "Table de routage pour `ddp' pas encore support.\n"
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1947,153 +2192,171 @@
+ msgid "in_ether(%s): trailing junk!\n"
+ msgstr "in_ether(%s): le restant la poubelle !\n"
+
+-#: ../lib/fddi.c:95 ../lib/fddi.c:110
++#: ../lib/fddi.c:84 ../lib/fddi.c:99
+ #, c-format
+ msgid "in_fddi(%s): invalid fddi address!\n"
+ msgstr "in_fddi(%s): adresse fddi invalide!\n"
+
+-#: ../lib/fddi.c:122
++#: ../lib/fddi.c:111
+ #, c-format
+ msgid "in_fddi(%s): trailing : ignored!\n"
+ msgstr "in_fddi(%s): restant ignor !\n"
+
+-#: ../lib/fddi.c:134
++#: ../lib/fddi.c:123
+ #, c-format
+ msgid "in_fddi(%s): trailing junk!\n"
+ msgstr "in_fddi(%s): le restant la poubelle !\n"
+
+-#: ../lib/getroute.c:97 ../lib/setroute.c:76
++#: ../lib/getroute.c:101 ../lib/setroute.c:80
+ #, c-format
+ msgid "Address family `%s' not supported.\n"
+ msgstr "Famille d'adresses `%s' non supporte.\n"
+
+-#: ../lib/getroute.c:103 ../lib/setroute.c:80
++#: ../lib/getroute.c:107 ../lib/setroute.c:84
+ #, c-format
+ msgid "No routing for address family `%s'.\n"
+ msgstr "Pas de routage pour la famille d'adresses `%s'.\n"
+
+-#: ../lib/hippi.c:96 ../lib/hippi.c:111
++#: ../lib/hippi.c:84 ../lib/hippi.c:99
+ #, c-format
+ msgid "in_hippi(%s): invalid hippi address!\n"
+ msgstr "in_hippi(%s): adresse hippi invalide!\n"
+
+-#: ../lib/hippi.c:123
++#: ../lib/hippi.c:111
+ #, c-format
+ msgid "in_hippi(%s): trailing : ignored!\n"
+ msgstr "in_hippi(%s): restant ignor !\n"
+
+-#: ../lib/hippi.c:134
++#: ../lib/hippi.c:122
+ #, c-format
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr "in_hippi(%s): le restant la poubelle !\n"
+
+-#: ../lib/hw.c:147
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr "Boucle locale"
+
+-#: ../lib/hw.c:150
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr "IP ligne srie"
+
+-#: ../lib/hw.c:151
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr "IP ligne srie - VJ "
+
+-#: ../lib/hw.c:152
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr "IP ligne srie - 6 bits"
+
+-#: ../lib/hw.c:153
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr "IP ligne srie - 6 bits VJ"
+
+-#: ../lib/hw.c:154
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr "IP ligne srie adaptative"
+
+-#: ../lib/hw.c:157
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr "Ethernet"
+
+-#: ../lib/hw.c:163
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr "Fiber Distributed Data Interface"
+
+-#: ../lib/hw.c:166
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr "HIPPI"
+
+-#: ../lib/hw.c:178
++#: ../lib/hw.c:191
++msgid "generic X.25"
++msgstr ""
++
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr "IPIP Tunnel"
+
+-#: ../lib/hw.c:181
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+ msgstr "Protocole Point--Point"
+
+-#: ../lib/hw.c:184
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr "(Cisco)-HDLC"
+
+-#: ../lib/hw.c:185
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:188
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr "ARCnet"
+
+-#: ../lib/hw.c:191
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr "Frame Relay DLCI"
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr "Priphriue d'accs Frame Relay"
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr "IPv6-dans-IPv4"
+
+-#: ../lib/hw.c:198
++#: ../lib/hw.c:214
+ #, fuzzy
+ msgid "IrLAP"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:201
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr ""
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:219
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr ""
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+ msgstr "rresolve: famille d'adresses non suporte %d !\n"
+
+-#: ../lib/inet6_gr.c:79
++#: ../lib/inet6.c:131
++#, fuzzy
++msgid "[UNKNOWN]"
++msgstr "INCONNU"
++
++#: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr "INET6 (IPv6) pas configur sur ce systme.\n"
+
+-#: ../lib/inet6_gr.c:82
++#: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+ msgstr "Table de routage IPv6 du noyau\n"
+
+-#: ../lib/inet6_gr.c:84
++#: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
+ msgstr ""
+-"Destination Prochain Hop "
+-" Indic Metric Ref Utilis. Iface\n"
++"Destination Prochain "
++"Hop Indic Metric Ref Utilis. Iface\n"
+
+-#: ../lib/inet6_gr.c:158
++#: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr "Cache voisin IPv6 du noyau\n"
+
+-#: ../lib/inet6_gr.c:161
++#: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+@@ -2101,39 +2364,45 @@
+ "Voisin Adresse MAT Iface Indic "
+ "Ref Etat\n"
+
+-#: ../lib/inet6_gr.c:165
++#: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+-msgstr ""
+-"Voisin Adresse MAT Iface Indic "
+-"Ref Etat Bloqu(sec) Dtuit(sec)\n"
++msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqu(sec) Dtuit(sec)\n"
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr "Syntaxe: inet6_route [-vF] del Cible\n"
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr " inet6_route [-vF] add Cible [gw Gw] [metric M] [[dev] If]\n"
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr " inet6_route [-FC] flush PAS support\n"
+
+-#: ../lib/inet6_sr.c:182
++#: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+ msgstr "Flush de table de routage `inet6' pas support\n"
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr "INET (IPv4) pas configur sur ce systme.\n"
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+ msgstr "Table de routage IP du noyau\n"
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+@@ -2142,26 +2411,26 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+-msgstr ""
+-"Destination Passerelle Genmask Indic MSS Fentre irtt "
+-"Iface\n"
++msgstr "Destination Passerelle Genmask Indic MSS Fentre irtt Iface\n"
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+-msgstr ""
+-"Destination Passerelle Genmask Indic Metric Ref Use "
+-"Iface MSS Fentre irtt\n"
++msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fentre irtt\n"
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+ msgstr "cache de routage IP du noyau\n"
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+@@ -2170,30 +2439,28 @@
+ "Iface\n"
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+-msgstr ""
+-"Source Destination Passerelle Indic MSS Fentre irtt "
+-"Iface\n"
++msgstr "Source Destination Passerelle Indic MSS Fentre irtt Iface\n"
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+-msgstr ""
+-"Source Destination Passerelle Indic Metric Ref Use "
+-"Iface MSS Fentre irtt HH Arp\n"
++msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fentre irtt HH Arp\n"
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+-msgstr ""
+-"Source Destination Passerelle Flags Metric Ref Use "
+-"Iface MSS Fentre irtt TOS HHRef HHUptod SpecDst\n"
++msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fentre irtt TOS HHRef HHUptod SpecDst\n"
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+@@ -2201,29 +2468,34 @@
+ "Syntaxe: inet_route [-vF] del {-host|-net} Cible[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Cible[/prefix] [gw Gw] [metric M]\n"
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Cible[/prefix] [metric M] reject\n"
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr " inet_route [-FC] flush PAS support\n"
+
+@@ -2233,15 +2505,17 @@
+ msgstr "route: %s: ne peut utiliser un RESEAU comme passerelle!\n"
+
+ #: ../lib/inet_sr.c:174
+-#, fuzzy
++#, fuzzy, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr "route: MSS invalide.\n"
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr "route: fentre invalide.\n"
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr "route: rtt initial invalide.\n"
+
+@@ -2256,75 +2530,92 @@
+ msgstr "route: netmask bogu %s\n"
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr "route: netmask ne correspond pas l'adresse de route\n"
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+ msgstr "Flush de table de routage `inet' pas support\n"
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+ msgstr "Modification de cache de routage `inet' pas support\n"
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr "IPX pas configur sur ce systme.\n"
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+ msgstr "Table de routage IPX du noyau\n"
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+ msgstr "Destination Rseau Routeur Noeud Routeur\n"
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+ msgstr "IPX: ceci doit tre crit\n"
+
+-#: ../lib/masq_info.c:197
++#: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr "Entres IP Masquerade\n"
+
+-#: ../lib/masq_info.c:200
++#: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr "prot expire source destination ports\n"
+
+-#: ../lib/masq_info.c:203
++#: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+-"prot expire initseq delta precd source destination "
+-" ports\n"
++"prot expire initseq delta precd source "
++"destination ports\n"
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr "NET/ROM pas configur sur ce systme.\n"
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+ msgstr "Table de routage NET/ROM du noyau\n"
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr "Destination Mnemoniq Qualit Voisin Iface\n"
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+ msgstr "utilisation netrom\n"
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+ msgstr "NET/ROM: ceci doit tre crit\n"
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr "Vous ne pouvez dmarrer PPP avec ce programme.\n"
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+ msgstr "Dsol, utilisez pppd !\n"
+
+@@ -2333,49 +2624,314 @@
+ msgstr "L'adresse de noeud doit avoir 10 chiffres"
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr "ROSE pas configur sur ce systme.\n"
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+ msgstr "Table de routage ROSE du noyau\n"
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr "in_tr(%s): adresse token-ring invalide !\n"
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr "in_tr(%s): restant : ignor !\n"
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr "in_tr(%s): restant la poubelle !\n"
+
+-#: ../lib/interface.c:124
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+ msgstr "attention: pas de socket inet disponible: %s\n"
+
+-#: ../lib/interface.c:270
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr ""
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:504
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr "Priphrique non trouv"
+
+-#: ../lib/interface.c:508
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
+ msgstr "%s: erreur lors de la recherche d'infos sur l'interface: %s\n"
+
+-#: ../lib/sockets.c:59
++#: ../lib/interface.c:608
++msgid " - no statistics available -"
++msgstr ""
++
++#: ../lib/interface.c:612
++#, c-format
++msgid "[NO FLAGS]"
++msgstr "[PAS INDICATEURS]"
++
++#: ../lib/interface.c:688
++#, c-format
++msgid "%-9.9s Link encap:%s "
++msgstr "%-9.9s Lien encap:%s "
++
++#: ../lib/interface.c:693
++#, c-format
++msgid "HWaddr %s "
++msgstr "HWaddr %s "
++
++#: ../lib/interface.c:696
++#, c-format
++msgid "Media:%s"
++msgstr "Media:%s"
++
++#: ../lib/interface.c:698
++#, c-format
++msgid "(auto)"
++msgstr "(auto)"
++
++#: ../lib/interface.c:705
++#, c-format
++msgid " %s addr:%s "
++msgstr " %s adr:%s "
++
++#: ../lib/interface.c:708
++#, c-format
++msgid " P-t-P:%s "
++msgstr " P-t-P:%s "
++
++#: ../lib/interface.c:711
++#, c-format
++msgid " Bcast:%s "
++msgstr " Bcast:%s "
++
++#: ../lib/interface.c:713
++#, c-format
++msgid " Mask:%s\n"
++msgstr " Masque:%s\n"
++
++#: ../lib/interface.c:730
++#, c-format
++msgid " inet6 addr: %s/%d"
++msgstr " adr inet6: %s/%d"
++
++#: ../lib/interface.c:732
++#, c-format
++msgid " Scope:"
++msgstr " Scope:"
++
++#: ../lib/interface.c:735
++#, c-format
++msgid "Global"
++msgstr "Global"
++
++#: ../lib/interface.c:738
++#, c-format
++msgid "Link"
++msgstr "Lien"
++
++#: ../lib/interface.c:741
++#, c-format
++msgid "Site"
++msgstr "Site"
++
++#: ../lib/interface.c:744
++#, c-format
++msgid "Compat"
++msgstr "Compat"
++
++#: ../lib/interface.c:747
++#, c-format
++msgid "Host"
++msgstr "Hte"
++
++#: ../lib/interface.c:750
++#, c-format
++msgid "Unknown"
++msgstr "Inconnu"
++
++#: ../lib/interface.c:765
++#, c-format
++msgid " IPX/Ethernet II addr:%s\n"
++msgstr " adr IPX/Ethernet II:%s\n"
++
++#: ../lib/interface.c:768
++#, c-format
++msgid " IPX/Ethernet SNAP addr:%s\n"
++msgstr " adr IPX/Ethernet SNAP:%s\n"
++
++#: ../lib/interface.c:771
++#, c-format
++msgid " IPX/Ethernet 802.2 addr:%s\n"
++msgstr " adr IPX/Ethernet 802.2:%s\n"
++
++#: ../lib/interface.c:774
++#, c-format
++msgid " IPX/Ethernet 802.3 addr:%s\n"
++msgstr " adr IPX/Ethernet 802.3:%s\n"
++
++#: ../lib/interface.c:784
++#, c-format
++msgid " EtherTalk Phase 2 addr:%s\n"
++msgstr " adr EtherTalk Phase 2:%s\n"
++
++#: ../lib/interface.c:793
++#, c-format
++msgid " econet addr:%s\n"
++msgstr " adr econet:%s\n"
++
++#: ../lib/interface.c:800
++#, c-format
++msgid "[NO FLAGS] "
++msgstr "[PAS INDICATEURS] "
++
++#: ../lib/interface.c:802
++#, c-format
++msgid "UP "
++msgstr "UP "
++
++#: ../lib/interface.c:804
++#, c-format
++msgid "BROADCAST "
++msgstr "BROADCAST "
++
++#: ../lib/interface.c:806
++#, c-format
++msgid "DEBUG "
++msgstr "DEBUG "
++
++#: ../lib/interface.c:808
++#, c-format
++msgid "LOOPBACK "
++msgstr "LOOPBACK "
++
++#: ../lib/interface.c:810
++#, c-format
++msgid "POINTOPOINT "
++msgstr "POINTOPOINT "
++
++#: ../lib/interface.c:812
++#, c-format
++msgid "NOTRAILERS "
++msgstr "NOTRAILERS "
++
++#: ../lib/interface.c:814
++#, c-format
++msgid "RUNNING "
++msgstr "RUNNING "
++
++#: ../lib/interface.c:816
++#, c-format
++msgid "NOARP "
++msgstr "NOARP "
++
++#: ../lib/interface.c:818
++#, c-format
++msgid "PROMISC "
++msgstr "PROMISC "
++
++#: ../lib/interface.c:820
++#, c-format
++msgid "ALLMULTI "
++msgstr "ALLMULTI "
++
++#: ../lib/interface.c:822
++#, c-format
++msgid "SLAVE "
++msgstr "SLAVE "
++
++#: ../lib/interface.c:824
++#, c-format
++msgid "MASTER "
++msgstr "MASTER "
++
++#: ../lib/interface.c:826
++#, c-format
++msgid "MULTICAST "
++msgstr "MULTICAST "
++
++#: ../lib/interface.c:829
++#, c-format
++msgid "DYNAMIC "
++msgstr "DYNAMIC "
++
++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short
++#: ../lib/interface.c:832
++#, c-format
++msgid " MTU:%d Metric:%d"
++msgstr " MTU:%d Metric:%d"
++
++#: ../lib/interface.c:836
++#, c-format
++msgid " Outfill:%d Keepalive:%d"
++msgstr " Outfill:%d Keepalive:%d"
++
++#: ../lib/interface.c:850
++#, fuzzy, c-format
++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgstr "Paquets Reus:%lu erreurs:%lu jets:%lu dbordements:%lu trames:%lu\n"
++
++#: ../lib/interface.c:855
++#, c-format
++msgid " compressed:%lu\n"
++msgstr " compresss:%lu\n"
++
++#: ../lib/interface.c:895
++#, fuzzy, c-format
++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgstr "Paquets transmis:%lu erreurs:%lu jets:%lu dbordements:%lu carrier:%lu\n"
++
++#: ../lib/interface.c:899
++#, c-format
++msgid " collisions:%lu "
++msgstr " collisions:%lu "
++
++#: ../lib/interface.c:901
++#, c-format
++msgid "compressed:%lu "
++msgstr "compresss:%lu "
++
++#: ../lib/interface.c:903
++#, c-format
++msgid "txqueuelen:%d "
++msgstr "lg file transmission:%d "
++
++#: ../lib/interface.c:905
++#, c-format
++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
++msgstr ""
++
++#: ../lib/interface.c:916
++#, c-format
++msgid "Interrupt:%d "
++msgstr "Interruption:%d "
++
++#. Only print devices using it for
++#. I/O maps
++#: ../lib/interface.c:919
++#, c-format
++msgid "Base address:0x%x "
++msgstr "Adresse de base:0x%x "
++
++#: ../lib/interface.c:921
++#, c-format
++msgid "Memory:%lx-%lx "
++msgstr "Mmoire:%lx-%lx "
++
++#: ../lib/interface.c:924
++#, c-format
++msgid "DMA chan:%x "
++msgstr "Canal DMA:%x "
++
++#: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr "Pas de famille d'adresses utilisable trouve.\n"
+
+@@ -2399,29 +2955,32 @@
+ msgid "ip: argument is wrong: %s\n"
+ msgstr "ip: argument incorrect: %s\n"
+
+-#: ../ipmaddr.c:56
++#: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr "Syntaxe: ipmaddr [ add | del ] MULTIADR dev CHAINE\n"
+
+-#: ../ipmaddr.c:57
++#: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr " ipmaddr show [ dev CHAINE ] [ ipv4 | ipv6 | link | all ]\n"
+
+-#: ../ipmaddr.c:58
++#: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr ""
+
+-#: ../ipmaddr.c:258
++#: ../ipmaddr.c:263
+ #, c-format
+ msgid "family %d "
+ msgstr ""
+
+-#: ../ipmaddr.c:267
++#: ../ipmaddr.c:272
+ #, c-format
+ msgid " users %d"
+ msgstr ""
+
+-#: ../ipmaddr.c:353
++#: ../ipmaddr.c:358
+ msgid "Cannot create socket"
+ msgstr "Ne peut crer une socket"
+
+@@ -2436,6 +2995,7 @@
+ msgstr ""
+
+ #: ../slattach.c:192
++#, fuzzy, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr "slattach: tty_lock: (%s): %s\n"
+
+@@ -2454,59 +3014,88 @@
+ msgid "slattach: tty_hangup(RAISE): %s\n"
+ msgstr "slattach: tty_hangup(RAISE): %s\n"
+
+-#: ../slattach.c:486
++#: ../slattach.c:468
++#, fuzzy, c-format
++msgid "slattach: tty name too long\n"
++msgstr "%s: nom trop long\n"
++
++#: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr "slattach: tty_open: ne peut obtenir l'tat courant !\n"
+
+-#: ../slattach.c:493
++#: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+ msgstr ""
+ "slattach: tty_open: ne peut obtenir la discipline de ligne actuelle !\n"
+
+-#: ../slattach.c:501
++#: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr "slattach: tty_open: ne peut activer le mode RAW !\n"
+
+-#: ../slattach.c:508
++#: ../slattach.c:520
+ #, c-format
+ msgid "slattach: tty_open: cannot set %s bps!\n"
+ msgstr "slattach: tty_open: ne peut passer %s bps!\n"
+
+-#: ../slattach.c:518
++#: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr "slattach: tty_open: ne peut activer le mode 8N1 !\n"
+
+-#: ../slattach.c:686
++#: ../slattach.c:672
++#, c-format
++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++msgstr ""
++
++#: ../slattach.c:704
+ #, c-format
+ msgid "%s started"
+ msgstr ""
+
+-#: ../slattach.c:687
++#: ../slattach.c:705
+ #, c-format
+ msgid " on %s"
+ msgstr ""
+
+-#: ../slattach.c:688
++#: ../slattach.c:706
+ #, fuzzy, c-format
+ msgid " interface %s\n"
+ msgstr "%s: interface inconnue: %s\n"
+
+ #~ msgid ""
+-#~ " This comand can get or set the hostname or the NIS domainname. You can\n"
+-#~ msgstr ""
+-#~ " Cette commande ne peut obtenir ou dfinir le nom d'hte ou le domaine "
+-#~ "NIS. Vous pouvez\n"
++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
++#~ "<-''-\n"
++#~ msgstr " arp [-v] [<MAT>] [-i <if>] -s <hte> <adrmat> [netmask <nm>] pub <-''-\n"
++
++#~ msgid "%s: unknown interface: %s\n"
++#~ msgstr "%s: interface inconnue: %s\n"
++
++#~ msgid "address mask replies"
++#~ msgstr "rponses de masque d'adresses"
++
++#~ msgid "unknown title %s\n"
++#~ msgstr "titre inconnu %s\n"
++
++#~ msgid "Routing table for `ddp' not yet supported.\n"
++#~ msgstr "Table de routage pour `ddp' pas encore support.\n"
++
++#~ msgid ""
++#~ " This comand can get or set the hostname or the NIS domainname. You "
++#~ "can\n"
++#~ msgstr " Cette commande ne peut obtenir ou dfinir le nom d'hte ou le domaine NIS. Vous pouvez\n"
+
+ #~ msgid ""
+ #~ " also get the DNS domain or the FQDN (fully qualified domain name).\n"
+ #~ msgstr ""
+-#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain name).\n"
++#~ " aussi obtenir le domaine DNS ou le FQDN (fully qualified domain "
++#~ "name).\n"
+
+ #~ msgid ""
+ #~ " Unless you are using bind or NIS for host lookups you can change the\n"
+-#~ msgstr ""
+-#~ " Sauf si vous utilisez bind ou NIS pour les recherches d'htes, vous "
+-#~ "pouvez changer le\n"
++#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'htes, vous pouvez changer le\n"
+
+ #~ msgid ""
+ #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
+--- net-tools-1.60.orig/po/net-tools.pot
++++ net-tools-1.60/po/net-tools.pot
+@@ -1,253 +1,275 @@
+ # SOME DESCRIPTIVE TITLE.
+-# Copyright (C) YEAR Free Software Foundation, Inc.
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+-"POT-Creation-Date: 2001-04-15 15:40+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+ "Language-Team: LANGUAGE <LL@li.org>\n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+-"Content-Transfer-Encoding: ENCODING\n"
++"Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:111 ../arp.c:270
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+ msgstr ""
+
+-#: ../arp.c:208 ../arp.c:222
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+ msgstr ""
+
+-#: ../arp.c:240
++#: ../arp.c:248
+ #, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr ""
+
+-#: ../arp.c:244
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr ""
+
+-#: ../arp.c:253
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+ msgstr ""
+
+-#: ../arp.c:283
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+ msgstr ""
+
+-#: ../arp.c:291
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr ""
+
+-#: ../arp.c:388
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr ""
+
+-#: ../arp.c:404
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr ""
+
+-#: ../arp.c:417
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr ""
+
+-#: ../arp.c:438
++#: ../arp.c:448
++#, c-format
+ msgid ""
+ "Address HWtype HWaddress Flags Mask "
+ "Iface\n"
+ msgstr ""
+
+-#: ../arp.c:468
++#: ../arp.c:476
++msgid "<from_interface>"
++msgstr ""
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+ msgstr ""
+
+-#: ../arp.c:485
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr ""
+
+-#: ../arp.c:491
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr ""
+
+-#: ../arp.c:497
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr ""
+
+-#: ../arp.c:514
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr ""
+
+-#: ../arp.c:593
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr ""
+
+-#: ../arp.c:597
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr ""
+
+-#: ../arp.c:599
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+ msgstr ""
+
+-#: ../arp.c:614
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+ "cache\n"
+ msgstr ""
+
+-#: ../arp.c:615
++#: ../arp.c:627
++#, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+ msgstr ""
+
+-#: ../arp.c:616
++#: ../arp.c:628
++#, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+ msgstr ""
+
+-#: ../arp.c:617
++#: ../arp.c:629
++#, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+ msgstr ""
+
+-#: ../arp.c:618
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-
+-#: ../arp.c:619
++#: ../arp.c:630
++#, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+ msgstr ""
+
+-#: ../arp.c:621
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+ msgstr ""
+
+-#: ../arp.c:622
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr ""
+
+-#: ../arp.c:623
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr ""
+
+-#: ../arp.c:624 ../netstat.c:1490 ../route.c:86
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr ""
+
+-#: ../arp.c:625 ../netstat.c:1491 ../route.c:87
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, c-format
+ msgid " -n, --numeric don't resolve names\n"
+ msgstr ""
+
+-#: ../arp.c:626
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+ msgstr ""
+
+-#: ../arp.c:627
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+ msgstr ""
+
+-#: ../arp.c:628
++#: ../arp.c:639
++#, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr ""
+
+-#: ../arp.c:629
++#: ../arp.c:640
++#, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+ msgstr ""
+
+-#: ../arp.c:632 ../rarp.c:183
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr ""
+
+-#: ../arp.c:666 ../arp.c:751
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr ""
+
+-#: ../arp.c:670
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr ""
+
+-#: ../arp.c:705
++#: ../arp.c:716
++#, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr ""
+
+-#: ../arp.c:715
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr ""
+
+-#: ../arp.c:724
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr ""
+
+-#: ../arp.c:743
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+ msgstr ""
+
+-#: ../arp.c:756
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr ""
+
+-#: ../hostname.c:70
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:75
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr ""
+
+-#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr ""
+
+-#: ../hostname.c:90
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:95
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+ msgstr ""
+@@ -262,103 +284,119 @@
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr ""
+
+-#: ../hostname.c:132
++#: ../hostname.c:131
+ #, c-format
+ msgid "Resolving `%s' ...\n"
+ msgstr ""
+
+-#: ../hostname.c:138
++#: ../hostname.c:137
+ #, c-format
+ msgid "Result: h_name=`%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:143
++#: ../hostname.c:142
+ #, c-format
+ msgid "Result: h_aliases=`%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:148
++#: ../hostname.c:147
+ #, c-format
+ msgid "Result: h_addr_list=`%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:210
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:224
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+ msgstr ""
+
+-#: ../hostname.c:225
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+ msgstr ""
+
+-#: ../hostname.c:227
++#: ../hostname.c:225
++#, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+ msgstr ""
+
+-#: ../hostname.c:229
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr ""
+
+-#: ../hostname.c:230
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+ msgstr ""
+
+-#: ../hostname.c:231
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+ msgstr ""
+
+-#: ../hostname.c:232
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+ msgstr ""
+
+-#: ../hostname.c:233
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr ""
+
+-#: ../hostname.c:234
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr ""
+
+-#: ../hostname.c:235
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr ""
+
+-#: ../hostname.c:236
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr ""
+
+-#: ../hostname.c:237
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+ msgstr ""
+
+-#: ../hostname.c:238
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+ msgstr ""
+
+-#: ../hostname.c:240
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+ msgstr ""
+
+-#: ../hostname.c:242
++#: ../hostname.c:240
++#, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+ msgstr ""
+
+-#: ../hostname.c:244
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -367,587 +405,706 @@
+ " part of the FQDN) in the /etc/hosts file.\n"
+ msgstr ""
+
+-#: ../hostname.c:340
++#: ../hostname.c:338
+ #, c-format
+ msgid "%s: You can't change the DNS domain name with this command\n"
+ msgstr ""
+
+-#: ../hostname.c:341
++#: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+ msgstr ""
+
+-#: ../hostname.c:342
++#: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+ msgstr ""
+
+-#: ../hostname.c:359
++#: ../hostname.c:357
+ #, c-format
+ msgid "gethostname()=`%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:376
++#: ../hostname.c:374
+ #, c-format
+ msgid "getdomainname()=`%s'\n"
+ msgstr ""
+
+-#: ../hostname.c:391
++#: ../hostname.c:389
+ #, c-format
+ msgid "getnodename()=`%s'\n"
+ msgstr ""
+
+-#: ../ifconfig.c:108
++#: ../ifconfig.c:107
++#, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+
+-#: ../ifconfig.c:130 ../ifconfig.c:162
++#: ../ifconfig.c:129 ../ifconfig.c:161
+ #, c-format
+-msgid "%s: unknown interface: %s\n"
++msgid "%s: ERROR while getting interface flags: %s\n"
+ msgstr ""
+
+-#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
++#, c-format
+ msgid "No support for INET on this system.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:177
++#: ../ifconfig.c:193
++#, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr ""
++
++#: ../ifconfig.c:202
++#, c-format
+ msgid ""
+ "Usage:\n"
+-" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:204
++#, c-format
+ msgid " [add <address>[/<prefixlen>]]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:180
++#: ../ifconfig.c:205
++#, c-format
+ msgid " [del <address>[/<prefixlen>]]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:181
++#: ../ifconfig.c:206
++#, c-format
+ msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:207
++#, c-format
+ msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:185
++#: ../ifconfig.c:210
++#, c-format
+ msgid " [outfill <NN>] [keepalive <NN>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:187
++#: ../ifconfig.c:212
++#, c-format
+ msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:188
++#: ../ifconfig.c:213
++#, c-format
+ msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:189
++#: ../ifconfig.c:214
++#, c-format
+ msgid " [multicast] [[-]promisc]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:190
++#: ../ifconfig.c:215
++#, c-format
+ msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:192
++#: ../ifconfig.c:217
++#, c-format
+ msgid " [txqueuelen <NN>]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:195
++#: ../ifconfig.c:220
++#, c-format
+ msgid " [[-]dynamic]\n"
+ msgstr ""
+
+-#: ../ifconfig.c:197
++#: ../ifconfig.c:222
++#, c-format
+ msgid ""
+ " [up|down] ...\n"
+ "\n"
+ msgstr ""
+
+-#: ../ifconfig.c:199
++#: ../ifconfig.c:224
++#, c-format
+ msgid " <HW>=Hardware Type.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:200
++#: ../ifconfig.c:225
++#, c-format
+ msgid " List of possible hardware types:\n"
+ msgstr ""
+
+ #. 1 = ARPable
+-#: ../ifconfig.c:202
++#: ../ifconfig.c:227
+ #, c-format
+ msgid " <AF>=Address family. Default: %s\n"
+ msgstr ""
+
+-#: ../ifconfig.c:203
++#: ../ifconfig.c:228
++#, c-format
+ msgid " List of possible address families:\n"
+ msgstr ""
+
+-#: ../ifconfig.c:278
++#: ../ifconfig.c:303
+ #, c-format
+ msgid "ifconfig: option `%s' not recognised.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:280 ../ifconfig.c:925
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
+ msgid "ifconfig: `--help' gives usage information.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:355
++#: ../ifconfig.c:380
++#, c-format
+ msgid "Unknown media type.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:647
++#: ../ifconfig.c:417
++#, c-format
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
++
++#: ../ifconfig.c:429
++#, c-format
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:441
++#, c-format
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:465
++#, c-format
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:523
++#, c-format
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:652
++#, c-format
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
++
++#: ../ifconfig.c:684
+ #, c-format
+ msgid "hw address type `%s' has no handler to set address. failed.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:656
++#: ../ifconfig.c:693
+ #, c-format
+ msgid "%s: invalid %s address.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
++#, c-format
+ msgid "No support for INET6 on this system.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:743 ../ifconfig.c:834
++#: ../ifconfig.c:780 ../ifconfig.c:871
+ #, c-format
+ msgid "Interface %s not initialized\n"
+ msgstr ""
+
+-#: ../ifconfig.c:755 ../ifconfig.c:845
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, c-format
+ msgid "Bad address.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:848
++#: ../ifconfig.c:885
++#, c-format
+ msgid "Address deletion not supported on this system.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:920
++#: ../ifconfig.c:957
++#, c-format
+ msgid "ifconfig: Cannot set address for this protocol family.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:946
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr ""
+
+-#: ../ifconfig.c:954
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr ""
+
+-#: ../netstat.c:430
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+ msgstr ""
+
+-#: ../netstat.c:434
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+ msgstr ""
+
+-#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr ""
+
+-#: ../netstat.c:442
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr ""
+
+-#: ../netstat.c:443 ../netstat.c:1255
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr ""
+
+-#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr ""
+
+-#: ../netstat.c:466
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr ""
+
+-#: ../netstat.c:467
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+
+-#: ../netstat.c:477 ../netstat.c:1295
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr ""
+
+-#: ../netstat.c:512
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr ""
+
+-#: ../netstat.c:513
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr ""
+
+-#: ../netstat.c:514
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr ""
+
+-#: ../netstat.c:515
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr ""
+
+-#: ../netstat.c:516
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr ""
+
+-#: ../netstat.c:517
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr ""
+
+-#: ../netstat.c:518
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr ""
+
+-#: ../netstat.c:519
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr ""
+
+-#: ../netstat.c:520
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr ""
+
+-#: ../netstat.c:521
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr ""
+
+-#: ../netstat.c:592
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr ""
+
+-#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888
+-#: ../netstat.c:1019 ../netstat.c:1024
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr ""
+
+-#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr ""
+
+-#: ../netstat.c:673
++#: ../netstat.c:677
++#, c-format
+ msgid "Active X.25 sockets\n"
+ msgstr ""
+
+ #. IMHO, Vr/Vs is not very usefull --SF
+-#: ../netstat.c:675
++#: ../netstat.c:679
++#, c-format
+ msgid ""
+-"Dest Source Device LCI State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+
+-#: ../netstat.c:752
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr ""
+
+-#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:797
++#: ../netstat.c:804
+ #, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:802
++#: ../netstat.c:809
+ #, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:807
++#: ../netstat.c:814
+ #, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:884
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr ""
+
+-#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr ""
+
+-#: ../netstat.c:948 ../netstat.c:1067
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr ""
+
+-#: ../netstat.c:1033
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr ""
+
+-#: ../netstat.c:1115
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr ""
+
+-#: ../netstat.c:1142
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr ""
+
+-#: ../netstat.c:1146
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr ""
+
+-#: ../netstat.c:1150
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr ""
+
+-#: ../netstat.c:1154
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr ""
+
+-#: ../netstat.c:1158
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+ msgstr ""
+
+-#: ../netstat.c:1167
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr ""
+
+-#: ../netstat.c:1183
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr ""
+
+-#: ../netstat.c:1187
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr ""
+
+-#: ../netstat.c:1191
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr ""
+
+-#: ../netstat.c:1222
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+ msgstr ""
+
+-#: ../netstat.c:1224 ../netstat.c:1735
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr ""
+
+-#: ../netstat.c:1227 ../netstat.c:1738
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr ""
+
+-#: ../netstat.c:1229 ../netstat.c:1740
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr ""
+
+-#: ../netstat.c:1232
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+ msgstr ""
+
+-#: ../netstat.c:1234
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr ""
+
+-#: ../netstat.c:1254
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr ""
+
+-#: ../netstat.c:1257
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr ""
+
+-#: ../netstat.c:1271
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr ""
+
+-#: ../netstat.c:1272
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr ""
+
+-#: ../netstat.c:1315
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr ""
+
+-#: ../netstat.c:1366
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+ "State"
+ msgstr ""
+
+-#: ../netstat.c:1368
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr ""
+
+-#: ../netstat.c:1402
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr ""
+
+-#: ../netstat.c:1410
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr ""
+
+-#: ../netstat.c:1448
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+ msgstr ""
+
+-#: ../netstat.c:1452
++#: ../netstat.c:1465
++#, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+
+-#: ../netstat.c:1456
++#: ../netstat.c:1469
+ msgid "missing interface information"
+ msgstr ""
+
+-#: ../netstat.c:1479
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+
+-#: ../netstat.c:1480
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr ""
+
+-#: ../netstat.c:1481
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+ msgstr ""
+
+-#: ../netstat.c:1483
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr ""
+
+-#: ../netstat.c:1484
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr ""
+
+-#: ../netstat.c:1485
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr ""
+
+-#: ../netstat.c:1486
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+ msgstr ""
+
+-#: ../netstat.c:1488
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+ msgstr ""
+
+-#: ../netstat.c:1492
++#: ../netstat.c:1505
++#, c-format
+ msgid " --numeric-hosts don't resolve host names\n"
+ msgstr ""
+
+-#: ../netstat.c:1493
++#: ../netstat.c:1506
++#, c-format
+ msgid " --numeric-ports don't resolve port names\n"
+ msgstr ""
+
+-#: ../netstat.c:1494
++#: ../netstat.c:1507
++#, c-format
+ msgid " --numeric-users don't resolve user names\n"
+ msgstr ""
+
+-#: ../netstat.c:1495
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr ""
+
+-#: ../netstat.c:1496 ../route.c:88
++#: ../netstat.c:1509 ../route.c:88
++#, c-format
+ msgid " -e, --extend display other/more information\n"
+ msgstr ""
+
+-#: ../netstat.c:1497
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+ msgstr ""
+
+-#: ../netstat.c:1498
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+ msgstr ""
+
+-#: ../netstat.c:1499
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+ msgstr ""
+
+-#: ../netstat.c:1500
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+ msgstr ""
+
+-#: ../netstat.c:1501
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr ""
+
+-#: ../netstat.c:1502 ../route.c:89
++#: ../netstat.c:1515 ../route.c:89
++#, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+ msgstr ""
+
+-#: ../netstat.c:1503 ../route.c:90
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+ msgstr ""
+
+-#: ../netstat.c:1505
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+
+-#: ../netstat.c:1506 ../route.c:92
++#: ../netstat.c:1519
+ #, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr ""
+
+-#: ../netstat.c:1507 ../route.c:93
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+ msgstr ""
+
+-#: ../netstat.c:1732
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr ""
+
+-#: ../netstat.c:1742
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+
+-#: ../netstat.c:1744
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr ""
+
+-#: ../netstat.c:1747
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr ""
+
+-#: ../netstat.c:1777
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+ msgstr ""
+
+-#: ../netstat.c:1778
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr ""
+
+@@ -986,23 +1143,28 @@
+ msgstr ""
+
+ #: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+ msgstr ""
+
+ #: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+ msgstr ""
+
+ #: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+ msgstr ""
+
+ #: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+ msgstr ""
+
+ #: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+@@ -1019,38 +1181,50 @@
+ msgstr ""
+
+ #: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+
+ #: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+ msgstr ""
+
+ #: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+ msgstr ""
+
+ #: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+ "\n"
+ msgstr ""
+
++#: ../route.c:92
++#, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr ""
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr ""
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr ""
+
+ #: ../plipconfig.c:68
++#, c-format
+ msgid " plipconfig -V | --version\n"
+ msgstr ""
+
+@@ -1060,61 +1234,75 @@
+ msgstr ""
+
+ #: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr ""
+
+ #: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+ msgstr ""
+
+ #: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr ""
+
+ #: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+ msgstr ""
+
+ #: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+ msgstr ""
+
+ #: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr ""
+
+ #: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr ""
+
+ #: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr ""
+
+ #: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr ""
+
+ #: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr ""
+
+ #: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr ""
+
+ #: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr ""
+
+@@ -1128,22 +1316,27 @@
+ msgstr ""
+
+ #: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr ""
+
+ #: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+ msgstr ""
+
+@@ -1153,10 +1346,12 @@
+ msgstr ""
+
+ #: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr ""
+
+ #: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr ""
+
+@@ -1563,12 +1758,12 @@
+
+ #: ../statistics.c:178
+ #, c-format
+-msgid "%u packets directly received from backlog"
++msgid "%u of bytes directly received from backlog"
+ msgstr ""
+
+ #: ../statistics.c:180
+ #, c-format
+-msgid "%u packets directly received from prequeue"
++msgid "%u of bytes directly received from prequeue"
+ msgstr ""
+
+ #: ../statistics.c:182
+@@ -1578,7 +1773,7 @@
+
+ #: ../statistics.c:183
+ #, c-format
+-msgid "%u packets header predicted"
++msgid "%u packet headers predicted"
+ msgstr ""
+
+ #: ../statistics.c:184
+@@ -1591,19 +1786,209 @@
+ msgid "Ran %u times out of system memory during packet sending"
+ msgstr ""
+
+-#: ../statistics.c:253
++#: ../statistics.c:188
++#, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr ""
++
++#: ../statistics.c:189
++#, c-format
++msgid "%u predicted acknowledgments"
++msgstr ""
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
++
++#: ../statistics.c:192
++#, c-format
++msgid "%u bad SACKs received"
++msgstr ""
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr ""
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr ""
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
++
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:197
++#, c-format
++msgid "%u congestion windows fully recovered"
++msgstr ""
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr ""
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, c-format
++msgid "%u retransmits lost"
++msgstr ""
++
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, c-format
++msgid "%u fast retransmits"
++msgstr ""
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr ""
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, c-format
++msgid "%u reno fast retransmits failed"
++msgstr ""
++
++#: ../statistics.c:210
++#, c-format
++msgid "%u sack retransmits failed"
++msgstr ""
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr ""
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, c-format
++msgid "%u DSACKs received"
++msgstr ""
++
++#: ../statistics.c:216
++#, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr ""
++
++#: ../statistics.c:217
++#, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr ""
++
++#: ../statistics.c:218
++#, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr ""
++
++#: ../statistics.c:219
++#, c-format
++msgid "%u connections reset due to early user close"
++msgstr ""
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, c-format
++msgid "%u connections aborted due to timeout"
++msgstr ""
++
++#: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr ""
+
+-#: ../statistics.c:253
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr ""
+
+-#: ../statistics.c:336
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr ""
+
+-#: ../statistics.c:349
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr ""
+
+@@ -1617,7 +2002,7 @@
+ msgid "Cannot change line discipline to `%s'.\n"
+ msgstr ""
+
+-#: ../lib/af.c:153 ../lib/hw.c:156
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr ""
+
+@@ -1633,11 +2018,11 @@
+ msgid "IPv6"
+ msgstr ""
+
+-#: ../lib/af.c:164 ../lib/hw.c:177
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr ""
+
+-#: ../lib/af.c:167 ../lib/hw.c:183
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr ""
+
+@@ -1649,7 +2034,7 @@
+ msgid "Appletalk DDP"
+ msgstr ""
+
+-#: ../lib/af.c:176 ../lib/hw.c:218
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr ""
+
+@@ -1657,19 +2042,21 @@
+ msgid "CCITT X.25"
+ msgstr ""
+
+-#: ../lib/af.c:182 ../lib/hw.c:180
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr ""
+
+-#: ../lib/af.c:185 ../lib/hw.c:168
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr ""
+
+ #: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr ""
+
+ #: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr ""
+
+@@ -1694,6 +2081,7 @@
+ msgstr ""
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+ msgstr ""
+
+@@ -1712,22 +2100,21 @@
+ msgstr ""
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr ""
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr ""
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr ""
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1783,90 +2170,94 @@
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr ""
+
+-#: ../lib/hw.c:155
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr ""
+
+-#: ../lib/hw.c:158
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr ""
+
+-#: ../lib/hw.c:159
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr ""
+
+-#: ../lib/hw.c:160
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr ""
+
+-#: ../lib/hw.c:161
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr ""
+
+-#: ../lib/hw.c:162
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr ""
+
+-#: ../lib/hw.c:165
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr ""
+
+-#: ../lib/hw.c:171
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr ""
+
+-#: ../lib/hw.c:174
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr ""
+
+-#: ../lib/hw.c:186
++#: ../lib/hw.c:191
+ msgid "generic X.25"
+ msgstr ""
+
+-#: ../lib/hw.c:189
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr ""
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+ msgstr ""
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr ""
+
+-#: ../lib/hw.c:196
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr ""
+
+-#: ../lib/hw.c:199
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr ""
+
+-#: ../lib/hw.c:202
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr ""
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr ""
+
+-#: ../lib/hw.c:206
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr ""
+
+-#: ../lib/hw.c:209
++#: ../lib/hw.c:214
+ msgid "IrLAP"
+ msgstr ""
+
+-#: ../lib/hw.c:212
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr ""
+
+-#: ../lib/hw.c:214
++#: ../lib/hw.c:219
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr ""
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+@@ -1877,131 +2268,157 @@
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+ msgstr ""
+
+ #: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+ msgstr ""
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr ""
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr ""
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr ""
+
+ #: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+ msgstr ""
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+ msgstr ""
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr ""
+
+@@ -2011,14 +2428,17 @@
+ msgstr ""
+
+ #: ../lib/inet_sr.c:174
++#, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr ""
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr ""
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr ""
+
+@@ -2033,73 +2453,90 @@
+ msgstr ""
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr ""
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+ msgstr ""
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+ msgstr ""
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+ msgstr ""
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+ msgstr ""
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+ msgstr ""
+
+ #: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr ""
+
+ #: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr ""
+
+ #: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+ msgstr ""
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr ""
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+ msgstr ""
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+ msgstr ""
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr ""
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+ msgstr ""
+
+@@ -2108,287 +2545,314 @@
+ msgstr ""
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr ""
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+ msgstr ""
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr ""
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr ""
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr ""
+
+-#: ../lib/interface.c:164
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:316
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr ""
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:556
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr ""
+
+-#: ../lib/interface.c:560
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:593
++#: ../lib/interface.c:608
+ msgid " - no statistics available -"
+ msgstr ""
+
+-#: ../lib/interface.c:597
++#: ../lib/interface.c:612
++#, c-format
+ msgid "[NO FLAGS]"
+ msgstr ""
+
+-#: ../lib/interface.c:673
++#: ../lib/interface.c:688
+ #, c-format
+ msgid "%-9.9s Link encap:%s "
+ msgstr ""
+
+-#: ../lib/interface.c:678
++#: ../lib/interface.c:693
+ #, c-format
+ msgid "HWaddr %s "
+ msgstr ""
+
+-#: ../lib/interface.c:681
++#: ../lib/interface.c:696
+ #, c-format
+ msgid "Media:%s"
+ msgstr ""
+
+-#: ../lib/interface.c:683
++#: ../lib/interface.c:698
++#, c-format
+ msgid "(auto)"
+ msgstr ""
+
+-#: ../lib/interface.c:690
++#: ../lib/interface.c:705
+ #, c-format
+ msgid " %s addr:%s "
+ msgstr ""
+
+-#: ../lib/interface.c:693
++#: ../lib/interface.c:708
+ #, c-format
+ msgid " P-t-P:%s "
+ msgstr ""
+
+-#: ../lib/interface.c:696
++#: ../lib/interface.c:711
+ #, c-format
+ msgid " Bcast:%s "
+ msgstr ""
+
+-#: ../lib/interface.c:698
++#: ../lib/interface.c:713
+ #, c-format
+ msgid " Mask:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:715
++#: ../lib/interface.c:730
+ #, c-format
+ msgid " inet6 addr: %s/%d"
+ msgstr ""
+
+-#: ../lib/interface.c:717
++#: ../lib/interface.c:732
++#, c-format
+ msgid " Scope:"
+ msgstr ""
+
+-#: ../lib/interface.c:720
++#: ../lib/interface.c:735
++#, c-format
+ msgid "Global"
+ msgstr ""
+
+-#: ../lib/interface.c:723
++#: ../lib/interface.c:738
++#, c-format
+ msgid "Link"
+ msgstr ""
+
+-#: ../lib/interface.c:726
++#: ../lib/interface.c:741
++#, c-format
+ msgid "Site"
+ msgstr ""
+
+-#: ../lib/interface.c:729
++#: ../lib/interface.c:744
++#, c-format
+ msgid "Compat"
+ msgstr ""
+
+-#: ../lib/interface.c:732
++#: ../lib/interface.c:747
++#, c-format
+ msgid "Host"
+ msgstr ""
+
+-#: ../lib/interface.c:735
++#: ../lib/interface.c:750
++#, c-format
+ msgid "Unknown"
+ msgstr ""
+
+-#: ../lib/interface.c:750
++#: ../lib/interface.c:765
+ #, c-format
+ msgid " IPX/Ethernet II addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:753
++#: ../lib/interface.c:768
+ #, c-format
+ msgid " IPX/Ethernet SNAP addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:756
++#: ../lib/interface.c:771
+ #, c-format
+ msgid " IPX/Ethernet 802.2 addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:759
++#: ../lib/interface.c:774
+ #, c-format
+ msgid " IPX/Ethernet 802.3 addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:769
++#: ../lib/interface.c:784
+ #, c-format
+ msgid " EtherTalk Phase 2 addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:778
++#: ../lib/interface.c:793
+ #, c-format
+ msgid " econet addr:%s\n"
+ msgstr ""
+
+-#: ../lib/interface.c:785
++#: ../lib/interface.c:800
++#, c-format
+ msgid "[NO FLAGS] "
+ msgstr ""
+
+-#: ../lib/interface.c:787
++#: ../lib/interface.c:802
++#, c-format
+ msgid "UP "
+ msgstr ""
+
+-#: ../lib/interface.c:789
++#: ../lib/interface.c:804
++#, c-format
+ msgid "BROADCAST "
+ msgstr ""
+
+-#: ../lib/interface.c:791
++#: ../lib/interface.c:806
++#, c-format
+ msgid "DEBUG "
+ msgstr ""
+
+-#: ../lib/interface.c:793
++#: ../lib/interface.c:808
++#, c-format
+ msgid "LOOPBACK "
+ msgstr ""
+
+-#: ../lib/interface.c:795
++#: ../lib/interface.c:810
++#, c-format
+ msgid "POINTOPOINT "
+ msgstr ""
+
+-#: ../lib/interface.c:797
++#: ../lib/interface.c:812
++#, c-format
+ msgid "NOTRAILERS "
+ msgstr ""
+
+-#: ../lib/interface.c:799
++#: ../lib/interface.c:814
++#, c-format
+ msgid "RUNNING "
+ msgstr ""
+
+-#: ../lib/interface.c:801
++#: ../lib/interface.c:816
++#, c-format
+ msgid "NOARP "
+ msgstr ""
+
+-#: ../lib/interface.c:803
++#: ../lib/interface.c:818
++#, c-format
+ msgid "PROMISC "
+ msgstr ""
+
+-#: ../lib/interface.c:805
++#: ../lib/interface.c:820
++#, c-format
+ msgid "ALLMULTI "
+ msgstr ""
+
+-#: ../lib/interface.c:807
++#: ../lib/interface.c:822
++#, c-format
+ msgid "SLAVE "
+ msgstr ""
+
+-#: ../lib/interface.c:809
++#: ../lib/interface.c:824
++#, c-format
+ msgid "MASTER "
+ msgstr ""
+
+-#: ../lib/interface.c:811
++#: ../lib/interface.c:826
++#, c-format
+ msgid "MULTICAST "
+ msgstr ""
+
+-#: ../lib/interface.c:814
++#: ../lib/interface.c:829
++#, c-format
+ msgid "DYNAMIC "
+ msgstr ""
+
+ #. DONT FORGET TO ADD THE FLAGS IN ife_print_short
+-#: ../lib/interface.c:817
++#: ../lib/interface.c:832
+ #, c-format
+ msgid " MTU:%d Metric:%d"
+ msgstr ""
+
+-#: ../lib/interface.c:821
++#: ../lib/interface.c:836
+ #, c-format
+ msgid " Outfill:%d Keepalive:%d"
+ msgstr ""
+
+-#: ../lib/interface.c:835
++#: ../lib/interface.c:850
+ #, c-format
+ msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
+ msgstr ""
+
+-#: ../lib/interface.c:840
++#: ../lib/interface.c:855
+ #, c-format
+ msgid " compressed:%lu\n"
+ msgstr ""
+
+-#: ../lib/interface.c:852
++#: ../lib/interface.c:895
+ #, c-format
+ msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
+ msgstr ""
+
+-#: ../lib/interface.c:856
++#: ../lib/interface.c:899
+ #, c-format
+ msgid " collisions:%lu "
+ msgstr ""
+
+-#: ../lib/interface.c:858
++#: ../lib/interface.c:901
+ #, c-format
+ msgid "compressed:%lu "
+ msgstr ""
+
+-#: ../lib/interface.c:860
++#: ../lib/interface.c:903
+ #, c-format
+ msgid "txqueuelen:%d "
+ msgstr ""
+
+-#: ../lib/interface.c:862
++#: ../lib/interface.c:905
+ #, c-format
+ msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
+ msgstr ""
+
+-#: ../lib/interface.c:873
++#: ../lib/interface.c:916
+ #, c-format
+ msgid "Interrupt:%d "
+ msgstr ""
+
+ #. Only print devices using it for
+ #. I/O maps
+-#: ../lib/interface.c:876
++#: ../lib/interface.c:919
+ #, c-format
+ msgid "Base address:0x%x "
+ msgstr ""
+
+-#: ../lib/interface.c:878
++#: ../lib/interface.c:921
+ #, c-format
+ msgid "Memory:%lx-%lx "
+ msgstr ""
+
+-#: ../lib/interface.c:881
++#: ../lib/interface.c:924
+ #, c-format
+ msgid "DMA chan:%x "
+ msgstr ""
+
+ #: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr ""
+
+@@ -2413,14 +2877,17 @@
+ msgstr ""
+
+ #: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr ""
+
+ #: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr ""
+
+ #: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr ""
+
+@@ -2449,6 +2916,7 @@
+ msgstr ""
+
+ #: ../slattach.c:192
++#, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr ""
+
+@@ -2468,18 +2936,22 @@
+ msgstr ""
+
+ #: ../slattach.c:468
++#, c-format
+ msgid "slattach: tty name too long\n"
+ msgstr ""
+
+ #: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr ""
+
+ #: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+ msgstr ""
+
+ #: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr ""
+
+@@ -2489,6 +2961,7 @@
+ msgstr ""
+
+ #: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr ""
+
+--- net-tools-1.60.orig/po/cs.po
++++ net-tools-1.60/po/cs.po
+@@ -5,7 +5,8 @@
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: net-tools-1.51\n"
+-"POT-Creation-Date: 2000-02-14 02:31+0100\n"
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
+ "PO-Revision-Date: 1999-08-29 23:20+0200\n"
+ "Last-Translator: Ji Pavlovsk <pavlovsk@ff.cuni.cz>\n"
+ "Language-Team: Czech <cs@li.org>\n"
+@@ -13,96 +14,110 @@
+ "Content-Type: text/plain; charset=iso-8859-2\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+-#: ../arp.c:110 ../arp.c:269
++#: ../arp.c:112 ../arp.c:279
++#, c-format
+ msgid "arp: need host name\n"
+ msgstr "arp: je teba jmno potae\n"
+
+-#: ../arp.c:207 ../arp.c:221
++#: ../arp.c:215 ../arp.c:230
+ #, c-format
+ msgid "No ARP entry for %s\n"
+ msgstr "Pro %s neexistuje ARP poloka\n"
+
+-#: ../arp.c:239
++#: ../arp.c:248
+ #, c-format
+ msgid "arp: cant get HW-Address for `%s': %s.\n"
+ msgstr "arp: HW adresu `%s' nelze zjistit: %s\n"
+
+-#: ../arp.c:243
++#: ../arp.c:252
++#, c-format
+ msgid "arp: protocol type mismatch.\n"
+ msgstr "arp: chybn zadan typ protokolu\n"
+
+-#: ../arp.c:252
++#: ../arp.c:261
+ #, c-format
+ msgid "arp: device `%s' has HW address %s `%s'.\n"
+ msgstr "arp: zazen `%s' m Hw adresu %s `%s'.\n"
+
+-#: ../arp.c:282
++#: ../arp.c:293
++#, c-format
+ msgid "arp: need hardware address\n"
+ msgstr "arp: je teba hardwarov adresa\n"
+
+-#: ../arp.c:290
++#: ../arp.c:301
++#, c-format
+ msgid "arp: invalid hardware address\n"
+ msgstr "arp: nesprvn hardwarov adresa\n"
+
+-#: ../arp.c:387
++#: ../arp.c:398
+ #, c-format
+ msgid "arp: cannot open etherfile %s !\n"
+ msgstr "arp: databzi ethernetovch adres %s nelze otevt!\n"
+
+-#: ../arp.c:403
++#: ../arp.c:414
+ #, c-format
+ msgid "arp: format error on line %u of etherfile %s !\n"
+ msgstr "arp: syntaktick chyba na dku %u databze ethernetovch adres %s!\n"
+
+-#: ../arp.c:416
++#: ../arp.c:427
+ #, c-format
+ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
+ msgstr ""
+ "arp: poloku na dku %u databze ethernetovch adres %s nelze nastavit!\n"
+
+-#: ../arp.c:437
+-msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
++#: ../arp.c:448
++#, fuzzy, c-format
++msgid ""
++"Address HWtype HWaddress Flags Mask "
++"Iface\n"
+ msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pz Maska\t\t Rozhran\n"
+
+-#: ../arp.c:467
++#: ../arp.c:476
++#, fuzzy
++msgid "<from_interface>"
++msgstr " rozhran %s\n"
++
++#: ../arp.c:478
+ msgid "(incomplete)"
+ msgstr "(nekompletn)"
+
+-#: ../arp.c:484
++#: ../arp.c:495
+ #, c-format
+ msgid "%s (%s) at "
+ msgstr "%s (%s) na "
+
+-#: ../arp.c:490
++#: ../arp.c:501
++#, c-format
+ msgid "<incomplete> "
+ msgstr "<nekompletn>"
+
+-#: ../arp.c:496
++#: ../arp.c:507
+ #, c-format
+ msgid "netmask %s "
+ msgstr "sov maska %s "
+
+-#: ../arp.c:513
++#: ../arp.c:524
+ #, c-format
+ msgid "on %s\n"
+ msgstr "na %s\n"
+
+-#: ../arp.c:592
++#: ../arp.c:605
+ #, c-format
+ msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
+ msgstr "Poloky: %d\tVynechno: %d\tNalezeno: %d\n"
+
+-#: ../arp.c:596
++#: ../arp.c:609
+ #, c-format
+ msgid "%s (%s) -- no entry\n"
+ msgstr "%s (%s) -- dn poloka\n"
+
+-#: ../arp.c:598
++#: ../arp.c:611
+ #, c-format
+ msgid "arp: in %d entries no match found.\n"
+ msgstr "arp: dn z poloek (%d) nevyhovuje.\n"
+
+-#: ../arp.c:613
++#: ../arp.c:626
++#, c-format
+ msgid ""
+ "Usage:\n"
+ " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
+@@ -112,49 +127,46 @@
+ " arp [-vn] [<HW>] [-i <if> [-a] [<pota>] <-Zobraz ARP "
+ "cache\n"
+
+-#: ../arp.c:614
++#: ../arp.c:627
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
+ "entry\n"
+ msgstr ""
+ " arp [-v] [-i <if>] -d <pota> [pub][nopub] <-Smae poloku "
+ "ARP\n"
+
+-#: ../arp.c:615
+-#, fuzzy
++#: ../arp.c:628
++#, fuzzy, c-format
+ msgid ""
+-" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
+ "file\n"
+ msgstr ""
+ " arp [-vnD] [<HW>] [-i <if>] -f <soubor> <-Pid poloku "
+ "ze\n"
+ " souboru\n"
+
+-#: ../arp.c:616
++#: ../arp.c:629
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
+ "entry\n"
+ msgstr ""
+ " arp [-v] [<HW> [-i <if> -s <pota> <hwadr> [temp][nopub] <-Pid "
+ "poloku\n"
+
+-#: ../arp.c:617
+-msgid ""
+-" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
+-"<-''-\n"
+-msgstr ""
+-" arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [smask <s>] <-''-\n"
+-
+-#: ../arp.c:618
++#: ../arp.c:630
++#, fuzzy, c-format
+ msgid ""
+-" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
+ "<-''-\n"
+ "\n"
+ msgstr ""
+ " arp [-v] [<HW> [-i <if> -Ds <pota> <if> [smask <s>] pub "
+ "<-''-\n"
+
+-#: ../arp.c:620
++#: ../arp.c:632
++#, c-format
+ msgid ""
+ " -a display (all) hosts in alternative (BSD) "
+ "style\n"
+@@ -162,126 +174,134 @@
+ " -a zobraz jmna vech pota alternativnm\n"
+ " (BSD) zpsobem\n"
+
+-#: ../arp.c:621
++#: ../arp.c:633
++#, c-format
+ msgid " -s, --set set a new ARP entry\n"
+ msgstr " -s, --set nastav novou ARP poloku\n"
+
+-#: ../arp.c:622
++#: ../arp.c:634
++#, c-format
+ msgid " -d, --delete delete a specified entry\n"
+ msgstr " -d, --delete smae zadanou ARP poloku\n"
+
+-#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
+ msgid " -v, --verbose be verbose\n"
+ msgstr ""
+ " -v, --verbose bude vypisovat podrobn zprvy\n"
+ " o innosti\n"
+
+-#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
+-msgid " -n, --numeric dont resolve names\n"
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, fuzzy, c-format
++msgid " -n, --numeric don't resolve names\n"
+ msgstr ""
+ " -n, --numeric nebude pevdt seln adresy\n"
+ " na kanonick jmna\n"
+
+-#: ../arp.c:625
++#: ../arp.c:637
++#, c-format
+ msgid ""
+ " -i, --device specify network interface (e.g. eth0)\n"
+ msgstr " -i, --device zadv sov rozhran (nap. eth0)\n"
+
+-#: ../arp.c:626
++#: ../arp.c:638
++#, c-format
+ msgid " -D, --use-device read <hwaddr> from given device\n"
+ msgstr " -D, --use-device te <hwadr> ze zadanho zazen\n"
+
+-#: ../arp.c:627
+-#, fuzzy
++#: ../arp.c:639
++#, fuzzy, c-format
+ msgid " -A, -p, --protocol specify protocol family\n"
+ msgstr " -r, --route vype smrovac tabulku\n"
+
+-#: ../arp.c:628
+-#, fuzzy
++#: ../arp.c:640
++#, fuzzy, c-format
+ msgid ""
+-" -f, --file read new entries from file or from "
+-"/etc/ethers\n"
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
+ "\n"
+ msgstr ""
+ " -f, --file te nov poloky ze souboru\n"
+ "\n"
+
+-#: ../arp.c:630 ../rarp.c:181
++#: ../arp.c:642 ../rarp.c:182
+ #, c-format
+ msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
+ msgstr ""
+ " <HW>=Pouijte '-H <hw> pro zadn hardwarovho typu adresy.\n"
+ " Implicitn: %s\n"
+
+-#: ../arp.c:631 ../rarp.c:182
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
+ msgid " List of possible hardware types (which support ARP):\n"
+ msgstr " Seznam monch hardwarovch typ (podporujcch ARP):\n"
+
+-#: ../arp.c:664
++#: ../arp.c:677 ../arp.c:762
+ #, c-format
+ msgid "%s: hardware type not supported!\n"
+ msgstr "hardwarov typ %s nen podporovn!\n"
+
+-#: ../arp.c:668
++#: ../arp.c:681
+ #, c-format
+ msgid "%s: address family not supported!\n"
+ msgstr "tda adres %s nen podporovna!\n"
+
+-#: ../arp.c:703
++#: ../arp.c:716
++#, c-format
+ msgid "arp: -N not yet supported.\n"
+ msgstr "arp: pepna -N nen zatm podporovn\n"
+
+-#: ../arp.c:713
++#: ../arp.c:726
+ #, c-format
+ msgid "arp: %s: unknown address family.\n"
+ msgstr "arp: neznm tda adres %s.\n"
+
+-#: ../arp.c:722
++#: ../arp.c:735
+ #, c-format
+ msgid "arp: %s: unknown hardware type.\n"
+ msgstr "arp: neznm hardwarov typ %s.\n"
+
+-#: ../arp.c:741
++#: ../arp.c:754
+ #, c-format
+ msgid "arp: %s: kernel only supports 'inet'.\n"
+ msgstr "arp: %s: jdro podporuje pouze 'inet'.\n"
+
+-#: ../arp.c:746
++#: ../arp.c:767
+ #, c-format
+ msgid "arp: %s: hardware type without ARP support.\n"
+ msgstr "arp: hardwarov typ %s nepodporuje ARP.\n"
+
+-#: ../hostname.c:69
++#: ../hostname.c:71
+ #, c-format
+ msgid "Setting nodename to `%s'\n"
+ msgstr "Nastavuji jmno uzlu na `%s'\n"
+
+-#: ../hostname.c:74
++#: ../hostname.c:76
+ #, c-format
+ msgid "%s: you must be root to change the node name\n"
+ msgstr "%s: jmno uzlu me zmnit pouze superuivatel\n"
+
+-#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
+ #, c-format
+ msgid "%s: name too long\n"
+ msgstr "jmno %s je pli dlouh\n"
+
+-#: ../hostname.c:89
++#: ../hostname.c:91
+ #, c-format
+ msgid "Setting hostname to `%s'\n"
+ msgstr "Nastavuji jmno potae na `%s'\n"
+
+-#: ../hostname.c:94
++#: ../hostname.c:96
+ #, c-format
+ msgid "%s: you must be root to change the host name\n"
+ msgstr "%s: jmno potae me zmnit pouze superuivatel\n"
+
+-#: ../hostname.c:108
++#: ../hostname.c:109
+ #, c-format
+ msgid "Setting domainname to `%s'\n"
+ msgstr "Nastavuji jmno domny na `%s'\n"
+
+-#: ../hostname.c:113
++#: ../hostname.c:114
+ #, c-format
+ msgid "%s: you must be root to change the domain name\n"
+ msgstr "%s: jmno domny me zmnit pouze superuivatel\n"
+@@ -306,26 +326,29 @@
+ msgid "Result: h_addr_list=`%s'\n"
+ msgstr "Vsledek: h_addr_list=`%s'\n"
+
+-#: ../hostname.c:209
++#: ../hostname.c:208
+ #, c-format
+ msgid "%s: can't open `%s'\n"
+ msgstr "%s: `%s' nelze otevt\n"
+
+-#: ../hostname.c:223
++#: ../hostname.c:222
++#, c-format
+ msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
+ msgstr ""
+ "Pouit:\n"
+ " hostname [-v] {jmno|-F soubor} nastav jmno potae (ze "
+ "souboru)\n"
+
+-#: ../hostname.c:224
++#: ../hostname.c:223
++#, c-format
+ msgid ""
+ " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
+ msgstr ""
+ " domainname [-v] {jmno|-F soubor} nastav jmno NIS domny (ze\n"
+ " souboru)\n"
+
+-#: ../hostname.c:226
++#: ../hostname.c:225
++#, c-format
+ msgid ""
+ " nodename [-v] {nodename|-F file} set DECnet node name (from "
+ "file)\n"
+@@ -333,11 +356,13 @@
+ " nodename [-v] {jmno|-F soubor} nastav jmno DECnet uzlu (ze\n"
+ " souboru)\n"
+
+-#: ../hostname.c:228
++#: ../hostname.c:227
++#, c-format
+ msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
+ msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vype formtovan jmno\n"
+
+-#: ../hostname.c:229
++#: ../hostname.c:228
++#, c-format
+ msgid ""
+ " hostname [-v] display hostname\n"
+ "\n"
+@@ -345,7 +370,8 @@
+ " hostname [-v] vype jmno potae\n"
+ "\n"
+
+-#: ../hostname.c:230
++#: ../hostname.c:229
++#, c-format
+ msgid ""
+ " hostname -V|--version|-h|--help print info and exit\n"
+ "\n"
+@@ -353,7 +379,8 @@
+ " hostname -V|--version|-h|--help vype informace a skon\n"
+ "\n"
+
+-#: ../hostname.c:231
++#: ../hostname.c:230
++#, c-format
+ msgid ""
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+@@ -361,35 +388,43 @@
+ " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
+ "\n"
+
+-#: ../hostname.c:232
++#: ../hostname.c:231
++#, c-format
+ msgid " -s, --short short host name\n"
+ msgstr " -s, --short krtk jmno potae\n"
+
+-#: ../hostname.c:233
++#: ../hostname.c:232
++#, c-format
+ msgid " -a, --alias alias names\n"
+ msgstr " -a, --alias pezdvky\n"
+
+-#: ../hostname.c:234
++#: ../hostname.c:233
++#, c-format
+ msgid " -i, --ip-address addresses for the hostname\n"
+ msgstr " -i, --ip-address adresy odpovdajc jmnu potae\n"
+
+-#: ../hostname.c:235
++#: ../hostname.c:234
++#, c-format
+ msgid " -f, --fqdn, --long long host name (FQDN)\n"
+ msgstr " -f, --fqdn, --long dlouh jmno potae (kanonick)\n"
+
+-#: ../hostname.c:236
++#: ../hostname.c:235
++#, c-format
+ msgid " -d, --domain DNS domain name\n"
+ msgstr " -d, --domain jmno DNS domny\n"
+
+-#: ../hostname.c:237
++#: ../hostname.c:236
++#, c-format
+ msgid " -y, --yp, --nis NIS/YP domainname\n"
+ msgstr " -y, --yp, --nis jmno NIS/YP domny\n"
+
+-#: ../hostname.c:239
++#: ../hostname.c:238
++#, c-format
+ msgid " -n, --node DECnet node name\n"
+ msgstr " -n, --node jmno DECnet uzlu\n"
+
+-#: ../hostname.c:241
++#: ../hostname.c:240
++#, c-format
+ msgid ""
+ " -F, --file read hostname or NIS domainname from given file\n"
+ "\n"
+@@ -397,7 +432,8 @@
+ " -F, --file te jmno potae i nis domny ze souboru\n"
+ "\n"
+
+-#: ../hostname.c:243
++#: ../hostname.c:242
++#, c-format
+ msgid ""
+ " This command can read or set the hostname or the NIS domainname. You can\n"
+ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
+@@ -412,6 +448,7 @@
+ msgstr "%s: Tmto pkazem nelze DNS jmno domny zmnit\n"
+
+ #: ../hostname.c:339
++#, c-format
+ msgid ""
+ "\n"
+ "Unless you are using bind or NIS for host lookups you can change the DNS\n"
+@@ -421,6 +458,7 @@
+ "zmnit\n"
+
+ #: ../hostname.c:340
++#, c-format
+ msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
+ msgstr ""
+ "DNS jmno domny (je soust kanonickho jmna potae) v souboru\n"
+@@ -441,349 +479,223 @@
+ msgid "getnodename()=`%s'\n"
+ msgstr "getnodename()=`%s'\n"
+
+-#: ../ifconfig.c:159
+-#, c-format
+-msgid "%-9.9s Link encap:%s "
+-msgstr "%-9.9s Zapouzden:%s "
++#: ../ifconfig.c:107
++#, fuzzy, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr ""
++"Rozhr MTU Met P-OK P-CHYB P-ZAH P-PT OD-OK OD-CHYB OD-ZAH OD-PT "
++"PZ\n"
+
+-#: ../ifconfig.c:164
+-#, c-format
+-msgid "HWaddr %s "
+-msgstr "HWadr %s "
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, fuzzy, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr "%s: chyba pi zskvn informac o rozhran %s\n"
+
+-#: ../ifconfig.c:167
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
+ #, c-format
+-msgid "Media:%s"
+-msgstr "Mdium:%s"
++msgid "No support for INET on this system.\n"
++msgstr "Tento systm nepodporuje INET.\n"
+
+-#: ../ifconfig.c:169
+-msgid "(auto)"
+-msgstr "(auto)"
++#: ../ifconfig.c:193
++#, fuzzy, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr "%s: chyba pi zskvn informac o rozhran %s\n"
+
+-#: ../ifconfig.c:176
+-#, c-format
+-msgid " %s addr:%s "
+-msgstr " %s adr:%s "
++#: ../ifconfig.c:202
++#, fuzzy, c-format
++msgid ""
++"Usage:\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
++msgstr ""
++"Pouit:\n"
++" ifconfig [-a] [-i] [-v] <rozhran> [[<AF>] <adresa>]\n"
+
+-#: ../ifconfig.c:179
++#: ../ifconfig.c:204
+ #, c-format
+-msgid " P-t-P:%s "
+-msgstr " P-t-P:%s "
++msgid " [add <address>[/<prefixlen>]]\n"
++msgstr " [add <adresa>[/<dlka prefixu>]]\n"
+
+-# V ostatnch katalozch se pekld Broadcast -> vesmrov vysln.
+-# Tudi bcast -> Vesmr :)
+-#: ../ifconfig.c:182
++#: ../ifconfig.c:205
+ #, c-format
+-msgid " Bcast:%s "
+-msgstr " Vesmr:%s "
++msgid " [del <address>[/<prefixlen>]]\n"
++msgstr " [del <adresa>[/<dlka prefixu>]]\n"
+
+-#: ../ifconfig.c:184
++#: ../ifconfig.c:206
+ #, c-format
+-msgid " Mask:%s\n"
+-msgstr "Maska:%s\n"
++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
++msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
+
+-#: ../ifconfig.c:201
++#: ../ifconfig.c:207
+ #, c-format
+-msgid " inet6 addr: %s/%d"
+-msgstr " inet6-adr: %s/%d"
++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
++msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
+
+-#: ../ifconfig.c:203
+-msgid " Scope:"
+-msgstr " Rozsah:"
++#: ../ifconfig.c:210
++#, c-format
++msgid " [outfill <NN>] [keepalive <NN>]\n"
++msgstr " [outfill <NN>] [keepalive <NN>]\n"
+
+-#: ../ifconfig.c:206
+-msgid "Global"
+-msgstr "Globl"
++#: ../ifconfig.c:212
++#, c-format
++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
++msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
+
+-#: ../ifconfig.c:209
+-msgid "Link"
+-msgstr "Linka"
++#: ../ifconfig.c:213
++#, c-format
++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+
+-#: ../ifconfig.c:212
+-msgid "Site"
+-msgstr "Stanovit"
++#: ../ifconfig.c:214
++#, c-format
++msgid " [multicast] [[-]promisc]\n"
++msgstr " [multicast] [[-]promisc]\n"
+
+ #: ../ifconfig.c:215
+-msgid "Compat"
+-msgstr "Kompatibilita"
++#, c-format
++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
++msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
+
+-#: ../ifconfig.c:218
+-msgid "Host"
+-msgstr "Pota"
++#: ../ifconfig.c:217
++#, c-format
++msgid " [txqueuelen <NN>]\n"
++msgstr " [txqueuelen dlka]\n"
+
+-#: ../ifconfig.c:221
+-msgid "Unknown"
+-msgstr "Neznm."
++#: ../ifconfig.c:220
++#, c-format
++msgid " [[-]dynamic]\n"
++msgstr " [[-]dynamic]\n"
+
+-#: ../ifconfig.c:236
++#: ../ifconfig.c:222
+ #, c-format
+-msgid " IPX/Ethernet II addr:%s\n"
+-msgstr " IPX/Ethernet II adr: %s\n"
++msgid ""
++" [up|down] ...\n"
++"\n"
++msgstr ""
++" [up|down] ...\n"
++"\n"
+
+-#: ../ifconfig.c:239
++#: ../ifconfig.c:224
+ #, c-format
+-msgid " IPX/Ethernet SNAP addr:%s\n"
+-msgstr " IPX/Ethernet SNAP adr:%s\n"
++msgid " <HW>=Hardware Type.\n"
++msgstr " <HW>=Hardwarov Typ.\n"
+
+-#: ../ifconfig.c:242
++#: ../ifconfig.c:225
+ #, c-format
+-msgid " IPX/Ethernet 802.2 addr:%s\n"
+-msgstr " IPX/Ethernet 802.2 adr:%s\n"
++msgid " List of possible hardware types:\n"
++msgstr " Seznam monch hardwarovch typ:\n"
+
+-#: ../ifconfig.c:245
++#. 1 = ARPable
++#: ../ifconfig.c:227
+ #, c-format
+-msgid " IPX/Ethernet 802.3 addr:%s\n"
+-msgstr " IPX/Ethernet 802.3 adr:%s\n"
++msgid " <AF>=Address family. Default: %s\n"
++msgstr " <AF>=tda adres. Implicitn: %s\n"
+
+-#: ../ifconfig.c:255
++#: ../ifconfig.c:228
+ #, c-format
+-msgid " EtherTalk Phase 2 addr:%s\n"
+-msgstr " EtherTalk Phase 2 adr:%s\n"
++msgid " List of possible address families:\n"
++msgstr " Seznam monch td adres:\n"
+
+-#: ../ifconfig.c:264
++#: ../ifconfig.c:303
+ #, c-format
+-msgid " econet addr:%s\n"
+-msgstr " econet adr:%s\n"
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr ""
+
+-# Hic sunt leones ...
+-#: ../ifconfig.c:270
+-msgid "[NO FLAGS] "
+-msgstr "[DN PZNAKY]"
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr ""
+
+-#: ../ifconfig.c:272
+-msgid "UP "
+-msgstr "AKTIVOVNO "
++#: ../ifconfig.c:380
++#, c-format
++msgid "Unknown media type.\n"
++msgstr "Neznm typ mdia.\n"
+
+-#: ../ifconfig.c:274
+-msgid "BROADCAST "
+-msgstr "VESMROV_VYSLN "
++#: ../ifconfig.c:417
++#, c-format
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr ""
+
+-#: ../ifconfig.c:276
+-msgid "DEBUG "
+-msgstr "DEBUG "
++#: ../ifconfig.c:429
++#, c-format
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:278
+-msgid "LOOPBACK "
+-msgstr "SMYKA "
++#: ../ifconfig.c:441
++#, c-format
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:280
+-msgid "POINTOPOINT "
+-msgstr "POINTOPOINT "
++#: ../ifconfig.c:465
++#, c-format
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr ""
+
+-# ??
+-#: ../ifconfig.c:282
+-msgid "NOTRAILERS "
+-msgstr "NOTRAILERS "
++#: ../ifconfig.c:523
++#, c-format
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:284
+-msgid "RUNNING "
+-msgstr "B̮ "
++#: ../ifconfig.c:652
++#, c-format
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr ""
+
+-#: ../ifconfig.c:286
+-msgid "NOARP "
+-msgstr "NEARP "
++#: ../ifconfig.c:684
++#, c-format
++msgid "hw address type `%s' has no handler to set address. failed.\n"
++msgstr ""
+
+-#: ../ifconfig.c:288
+-msgid "PROMISC "
+-msgstr "PROMISK "
++#: ../ifconfig.c:693
++#, c-format
++msgid "%s: invalid %s address.\n"
++msgstr "%s: adresa %s je nesprvn.\n"
+
+-#: ../ifconfig.c:290
+-msgid "ALLMULTI "
+-msgstr "ALLMULTI "
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
++#, c-format
++msgid "No support for INET6 on this system.\n"
++msgstr "Tento systm nepodporuje INET6.\n"
+
+-#: ../ifconfig.c:292
+-msgid "SLAVE "
+-msgstr "SLAVE "
++#: ../ifconfig.c:780 ../ifconfig.c:871
++#, c-format
++msgid "Interface %s not initialized\n"
++msgstr ""
+
+-#: ../ifconfig.c:294
+-msgid "MASTER "
+-msgstr "MASTER "
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, fuzzy, c-format
++msgid "Bad address.\n"
++msgstr "%s: adresa %s je nesprvn.\n"
+
+-#: ../ifconfig.c:296
+-msgid "MULTICAST "
+-msgstr "MULTICAST "
+-
+-#: ../ifconfig.c:299
+-msgid "DYNAMIC "
+-msgstr "DYNAMIC "
+-
+-#: ../ifconfig.c:302
+-#, c-format
+-msgid " MTU:%d Metric:%d"
+-msgstr " MTU:%d Metrika:%d"
+-
+-#: ../ifconfig.c:306
+-#, c-format
+-msgid " Outfill:%d Keepalive:%d"
+-msgstr " Outfill:%d Keepalive:%d"
+-
+-#: ../ifconfig.c:320
+-#, c-format
+-msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
+-msgstr "pijmutch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu rmc:%lu\n"
+-
+-#: ../ifconfig.c:325
+-#, c-format
+-msgid " compressed:%lu\n"
+-msgstr " komprimovno:%lu\n"
+-
+-# carrier?
+-#: ../ifconfig.c:329
+-#, c-format
+-msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
+-msgstr "odeslanch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu penos:%lu\n"
+-
+-#: ../ifconfig.c:333
+-#, c-format
+-msgid " collisions:%lu "
+-msgstr " koliz:%lu "
+-
+-#: ../ifconfig.c:335
+-#, c-format
+-msgid "compressed:%lu "
+-msgstr "komprimovno:%lu "
+-
+-#: ../ifconfig.c:337
+-#, c-format
+-msgid "txqueuelen:%d "
+-msgstr "dlka odchoz fronty:%d "
+-
+-#: ../ifconfig.c:345
+-#, c-format
+-msgid "Interrupt:%d "
+-msgstr "Peruen:%d "
+-
+-#. Only print devices using it for
+-#. I/O maps
+-#: ../ifconfig.c:348
+-#, c-format
+-msgid "Base address:0x%x "
+-msgstr "Vstupn/Vstupn port:0x%x "
+-
+-#: ../ifconfig.c:350
+-#, c-format
+-msgid "Memory:%lx-%lx "
+-msgstr "Pam:%lx-%lx "
+-
+-#: ../ifconfig.c:353
+-#, c-format
+-msgid "DMA chan:%x "
+-msgstr "Kanl DMA:%x "
+-
+-#: ../ifconfig.c:384 ../ifconfig.c:405
+-#, c-format
+-msgid "%s: unknown interface: %s\n"
+-msgstr "%s: rozhran %s nen znmo\n"
+-
+-#: ../ifconfig.c:421
+-msgid ""
+-"Usage:\n"
+-" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
+-msgstr ""
+-"Pouit:\n"
+-" ifconfig [-a] [-i] [-v] <rozhran> [[<AF>] <adresa>]\n"
+-
+-#: ../ifconfig.c:425
+-msgid " [add <address>[/<prefixlen>]]\n"
+-msgstr " [add <adresa>[/<dlka prefixu>]]\n"
+-
+-#: ../ifconfig.c:427
+-msgid " [del <address>[/<prefixlen>]]\n"
+-msgstr " [del <adresa>[/<dlka prefixu>]]\n"
+-
+-#: ../ifconfig.c:432
+-msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
+-msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
+-
+-#: ../ifconfig.c:433
+-msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
+-msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
+-
+-#: ../ifconfig.c:436
+-msgid " [outfill <NN>] [keepalive <NN>]\n"
+-msgstr " [outfill <NN>] [keepalive <NN>]\n"
+-
+-#: ../ifconfig.c:438
+-msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
+-msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
+-
+-#: ../ifconfig.c:439
+-msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
+-
+-#: ../ifconfig.c:440
+-msgid " [multicast] [[-]promisc]\n"
+-msgstr " [multicast] [[-]promisc]\n"
+-
+-#: ../ifconfig.c:441
+-msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
+-msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
+-
+-#: ../ifconfig.c:443
+-msgid " [txqueuelen <NN>]\n"
+-msgstr " [txqueuelen dlka]\n"
+-
+-#: ../ifconfig.c:446
+-msgid " [[-]dynamic]\n"
+-msgstr " [[-]dynamic]\n"
+-
+-#: ../ifconfig.c:448
+-msgid ""
+-" [up|down] ...\n"
+-"\n"
+-msgstr ""
+-" [up|down] ...\n"
+-"\n"
+-
+-#: ../ifconfig.c:450
+-msgid " <HW>=Hardware Type.\n"
+-msgstr " <HW>=Hardwarov Typ.\n"
+-
+-#: ../ifconfig.c:451
+-msgid " List of possible hardware types:\n"
+-msgstr " Seznam monch hardwarovch typ:\n"
+-
+-#. 1 = ARPable
+-#: ../ifconfig.c:453
+-#, c-format
+-msgid " <AF>=Address family. Default: %s\n"
+-msgstr " <AF>=tda adres. Implicitn: %s\n"
+-
+-#: ../ifconfig.c:454
+-msgid " List of possible address families:\n"
+-msgstr " Seznam monch td adres:\n"
+-
+-#: ../ifconfig.c:593
+-msgid "Unknown media type.\n"
+-msgstr "Neznm typ mdia.\n"
+-
+-#: ../ifconfig.c:881
++#: ../ifconfig.c:885
+ #, c-format
+-msgid "%s: invalid %s address.\n"
+-msgstr "%s: adresa %s je nesprvn.\n"
+-
+-#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
+-msgid "No support for INET6 on this system.\n"
+-msgstr "Tento systm nepodporuje INET6.\n"
+-
+-#: ../ifconfig.c:983
+ msgid "Address deletion not supported on this system.\n"
+ msgstr "Tento systm nepodporuje mazn adres.\n"
+
+-#: ../ifconfig.c:1066
+-msgid "No support for INET on this system.\n"
+-msgstr "Tento systm nepodporuje INET.\n"
++#: ../ifconfig.c:957
++#, fuzzy, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "Nevm, jak nastavit adresu tdy %d.\n"
+
+-#: ../ifconfig.c:1076
++#: ../ifconfig.c:983
++#, c-format
+ msgid "No support for ECONET on this system.\n"
+ msgstr "Tento systm nepodporuje ECONET.\n"
+
+-#: ../ifconfig.c:1084
++#: ../ifconfig.c:991
+ #, c-format
+ msgid "Don't know how to set addresses for family %d.\n"
+ msgstr "Nevm, jak nastavit adresu tdy %d.\n"
+
+-#: ../netstat.c:383
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr ""
++
++#: ../netstat.c:434
+ #, c-format
+ msgid ""
+ "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
+@@ -792,7 +704,8 @@
+ "jste\n"
+ "byl superuivatelem)\n"
+
+-#: ../netstat.c:387
++#: ../netstat.c:438
++#, c-format
+ msgid ""
+ "(Not all processes could be identified, non-owned process info\n"
+ " will not be shown, you would have to be root to see it all.)\n"
+@@ -801,199 +714,223 @@
+ "pouze o procesech, jich jste vlastnkem. Aby jste mohl vidt ve, musel\n"
+ "byste bt superuivatelem.)\n"
+
+-#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
+ msgid "LISTENING"
+ msgstr "NASLOUCH"
+
+-#: ../netstat.c:395
++#: ../netstat.c:446
+ msgid "CONN SENT"
+ msgstr "CONN ODESLN"
+
+-#: ../netstat.c:396 ../netstat.c:1168
++#: ../netstat.c:447 ../netstat.c:1268
+ msgid "DISC SENT"
+ msgstr "DISC ODESLN"
+
+-#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
+ msgid "ESTABLISHED"
+ msgstr "SPOJENO"
+
+-#: ../netstat.c:419
++#: ../netstat.c:470
++#, c-format
+ msgid "Active NET/ROM sockets\n"
+ msgstr "Aktivn NET/ROM sokety\n"
+
+-#: ../netstat.c:420
++#: ../netstat.c:471
++#, c-format
+ msgid ""
+-"User Dest Source Device State Vr/Vs Send-Q "
+-"Recv-Q\n"
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
+ msgstr ""
+-"Uivatel Cl Zdroj Zazen Stav Vr/Vs Odch-F "
+-"Pch-F\n"
++"Uivatel Cl Zdroj Zazen Stav Vr/Vs Odch-F Pch-"
++"F\n"
+
+-#: ../netstat.c:430 ../netstat.c:1208
++#: ../netstat.c:481 ../netstat.c:1308
+ #, c-format
+ msgid "Problem reading data from %s\n"
+ msgstr "Chyba pi ten dat z %s\n"
+
+ # nsledujc radji ponechat v originle ?!
+-#: ../netstat.c:465
++#: ../netstat.c:516
+ msgid "SYN_SENT"
+ msgstr "SYN_SENT"
+
+-#: ../netstat.c:466
++#: ../netstat.c:517
+ msgid "SYN_RECV"
+ msgstr "SYN_RECV"
+
+-#: ../netstat.c:467
++#: ../netstat.c:518
+ msgid "FIN_WAIT1"
+ msgstr "FIN_WAIT1"
+
+-#: ../netstat.c:468
++#: ../netstat.c:519
+ msgid "FIN_WAIT2"
+ msgstr "FIN_WAIT2"
+
+-#: ../netstat.c:469
++#: ../netstat.c:520
+ msgid "TIME_WAIT"
+ msgstr "TIME_WAIT"
+
+-#: ../netstat.c:470
++#: ../netstat.c:521
+ msgid "CLOSE"
+ msgstr "ZAVEN"
+
+-#: ../netstat.c:471
++#: ../netstat.c:522
+ msgid "CLOSE_WAIT"
+ msgstr "CLOSE_WAIT"
+
+-#: ../netstat.c:472
++#: ../netstat.c:523
+ msgid "LAST_ACK"
+ msgstr "POSLEDN ACK"
+
+-#: ../netstat.c:473
++#: ../netstat.c:524
+ msgid "LISTEN"
+ msgstr "LISTEN"
+
+-#: ../netstat.c:474
++#: ../netstat.c:525
+ msgid "CLOSING"
+ msgstr "ZAVR"
+
+-#: ../netstat.c:544
++#: ../netstat.c:596
+ #, c-format
+ msgid "warning, got bogus igmp6 line %d.\n"
+ msgstr "varovn, nesmysln igmp6 dek %d.\n"
+
+-#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
+-#: ../netstat.c:935 ../netstat.c:940
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
+ #, c-format
+ msgid "netstat: unsupported address family %d !\n"
+ msgstr "netstat: tda adres %d nen podporovna !\n"
+
+-#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
+ #, c-format
+ msgid "warning, got bogus igmp line %d.\n"
+ msgstr "varovn, nesmysln igmp dek %d.\n"
+
+-#: ../netstat.c:666
++#: ../netstat.c:677
++#, fuzzy, c-format
++msgid "Active X.25 sockets\n"
++msgstr "Aktivn AX.25 sokety\n"
++
++#. IMHO, Vr/Vs is not very usefull --SF
++#: ../netstat.c:679
++#, fuzzy, c-format
++msgid ""
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "Cl Zdroj Zaz Stav Vr/Vs Odhod-F Pch-F\n"
++
++#: ../netstat.c:759
++#, c-format
+ msgid "warning, got bogus tcp line.\n"
+ msgstr "varovn, nesmysln tcp dek.\n"
+
+-#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
+ #, c-format
+ msgid "off (0.00/%ld/%d)"
+ msgstr "vyp (0.00/%ld/%d)"
+
+-#: ../netstat.c:708
++#: ../netstat.c:804
+ #, fuzzy, c-format
+ msgid "on (%2.2f/%ld/%d)"
+ msgstr "zap%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:713
++#: ../netstat.c:809
+ #, fuzzy, c-format
+ msgid "keepalive (%2.2f/%ld/%d)"
+ msgstr "zap%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:718
++#: ../netstat.c:814
+ #, fuzzy, c-format
+ msgid "timewait (%2.2f/%ld/%d)"
+ msgstr "zap%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
+ #, c-format
+ msgid "unkn-%d (%2.2f/%ld/%d)"
+ msgstr "nezn-%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:799
++#: ../netstat.c:894
++#, c-format
+ msgid "warning, got bogus udp line.\n"
+ msgstr "varovn, nesmysln udp dek.\n"
+
+-#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
+ msgid "UNKNOWN"
+ msgstr "NEZNM"
+
+-#: ../netstat.c:860 ../netstat.c:980
++#: ../netstat.c:958 ../netstat.c:1080
+ #, c-format
+ msgid "on%d (%2.2f/%ld/%d)"
+ msgstr "zap%d (%2.2f/%ld/%d)"
+
+-#: ../netstat.c:949
++#: ../netstat.c:1046
++#, c-format
+ msgid "warning, got bogus raw line.\n"
+ msgstr "varovn, nesmysln 'raw' dek.\n"
+
+-#: ../netstat.c:1028
++#: ../netstat.c:1128
++#, c-format
+ msgid "warning, got bogus unix line.\n"
+ msgstr "varovn, netstat 'unix' dek.\n"
+
+-#: ../netstat.c:1055
++#: ../netstat.c:1155
+ msgid "STREAM"
+ msgstr "STREAM"
+
+-#: ../netstat.c:1059
++#: ../netstat.c:1159
+ msgid "DGRAM"
+ msgstr "DGRAM"
+
+-#: ../netstat.c:1063
++#: ../netstat.c:1163
+ msgid "RAW"
+ msgstr "RAW"
+
+-#: ../netstat.c:1067
++#: ../netstat.c:1167
+ msgid "RDM"
+ msgstr "RDM"
+
+-#: ../netstat.c:1071
++#: ../netstat.c:1171
+ msgid "SEQPACKET"
+ msgstr "SEQPACKET"
+
+-#: ../netstat.c:1080
++#: ../netstat.c:1180
+ msgid "FREE"
+ msgstr "NEALOKOVN"
+
+-#: ../netstat.c:1096
++#: ../netstat.c:1196
+ msgid "CONNECTING"
+ msgstr "SPOJUJE"
+
+-#: ../netstat.c:1100
++#: ../netstat.c:1200
+ msgid "CONNECTED"
+ msgstr "SPOJEN"
+
+-#: ../netstat.c:1104
++#: ../netstat.c:1204
+ msgid "DISCONNECTING"
+ msgstr "ODPOJUJE"
+
+-#: ../netstat.c:1135
++#: ../netstat.c:1235
++#, c-format
+ msgid "Active UNIX domain sockets "
+ msgstr "Aktivn sokety domny UNIX "
+
+-#: ../netstat.c:1137 ../netstat.c:1666
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
+ msgid "(servers and established)"
+ msgstr "(servery a navzan spojen)"
+
+-#: ../netstat.c:1140 ../netstat.c:1669
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
+ msgid "(only servers)"
+ msgstr "(pouze servery)"
+
+-#: ../netstat.c:1142 ../netstat.c:1671
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
+ msgid "(w/o servers)"
+ msgstr "(w/o servery)"
+
+-#: ../netstat.c:1145
++#: ../netstat.c:1245
++#, c-format
+ msgid ""
+ "\n"
+ "Proto RefCnt Flags Type State I-Node"
+@@ -1001,90 +938,92 @@
+ "\n"
+ "Proto ta Pznaky Typ Stav I-Uzel"
+
+-#: ../netstat.c:1147
++#: ../netstat.c:1247
++#, c-format
+ msgid " Path\n"
+ msgstr " Cesta\n"
+
+-#: ../netstat.c:1167
++#: ../netstat.c:1267
+ msgid "SABM SENT"
+ msgstr "SABM ODESLN"
+
+-#: ../netstat.c:1170
++#: ../netstat.c:1270
+ msgid "RECOVERY"
+ msgstr "OBNOVA"
+
+-#: ../netstat.c:1184
++#: ../netstat.c:1284
++#, c-format
+ msgid "Active AX.25 sockets\n"
+ msgstr "Aktivn AX.25 sokety\n"
+
+-#: ../netstat.c:1185
++#: ../netstat.c:1285
++#, c-format
+ msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
+ msgstr "Cl Zdroj Zaz Stav Vr/Vs Odhod-F Pch-F\n"
+
+-#: ../netstat.c:1228
++#: ../netstat.c:1328
+ #, c-format
+ msgid "problem reading data from %s\n"
+ msgstr "chyba pi ten dat z %s\n"
+
+-#: ../netstat.c:1279
++#: ../netstat.c:1379
++#, c-format
+ msgid ""
+ "Active IPX sockets\n"
+ "Proto Recv-Q Send-Q Local Address Foreign Address "
+ "State"
+ msgstr ""
+ "Aktivn IPX sokety\n"
+-"Proto Pch-F Odch-F Lokl adresa Vzdlen adresa "
+-" Stav"
++"Proto Pch-F Odch-F Lokl adresa Vzdlen "
++"adresa Stav"
+
+-#: ../netstat.c:1281
++#: ../netstat.c:1381
++#, c-format
+ msgid " User"
+ msgstr " Uivatel"
+
+-#: ../netstat.c:1315
++#: ../netstat.c:1415
+ msgid "ESTAB"
+ msgstr "SPOJEN"
+
+-#: ../netstat.c:1323
++#: ../netstat.c:1423
+ msgid "UNK."
+ msgstr "NEZ."
+
+-#: ../netstat.c:1367
+-msgid " - no statistics available -"
+-msgstr " - statistick data nejsou dostupn -"
+-
+-#: ../netstat.c:1370
+-msgid "[NO FLAGS]"
+-msgstr "[DN PZNAKY]"
+-
+-#: ../netstat.c:1400
++#: ../netstat.c:1461
++#, c-format
+ msgid "Kernel Interface table\n"
+ msgstr "Tabulka rozhran v jdru\n"
+
+-#: ../netstat.c:1401
++#: ../netstat.c:1465
++#, fuzzy, c-format
+ msgid ""
+-"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
+ "Flg\n"
+ msgstr ""
+ "Rozhr MTU Met P-OK P-CHYB P-ZAH P-PT OD-OK OD-CHYB OD-ZAH OD-PT "
+ "PZ\n"
+
+-#: ../netstat.c:1404
++#: ../netstat.c:1469
+ msgid "missing interface information"
+ msgstr "chyb informace o rozhran"
+
+-#: ../netstat.c:1425
++#: ../netstat.c:1492
++#, c-format
+ msgid ""
+-"usage: netstat [-veenNcCF] [<Af>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
+ msgstr ""
+-"Pouit: netstat [--veenNcCF] [<TA>] -r netstat "
+-"{-V|--version|-h|--help}\n"
++"Pouit: netstat [--veenNcCF] [<TA>] -r netstat {-V|--version|-h|--"
++"help}\n"
+
+-#: ../netstat.c:1426
++#: ../netstat.c:1493
++#, c-format
+ msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
+ msgstr " netstat [-vnNcaeol] [<Soket> ...]\n"
+
+-#: ../netstat.c:1427
++#: ../netstat.c:1494
++#, c-format
+ msgid ""
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+@@ -1092,27 +1031,32 @@
+ " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
+ "\n"
+
+-#: ../netstat.c:1429
++#: ../netstat.c:1496
++#, c-format
+ msgid " -r, --route display routing table\n"
+ msgstr " -r, --route vype smrovac tabulku\n"
+
+-#: ../netstat.c:1430
++#: ../netstat.c:1497
++#, c-format
+ msgid " -i, --interfaces display interface table\n"
+ msgstr " -i, --interfaces vype tabulku rozhran\n"
+
+-#: ../netstat.c:1431
++#: ../netstat.c:1498
++#, c-format
+ msgid " -g, --groups display multicast group memberships\n"
+ msgstr ""
+ " -g, --groups vype lenstv v multicast skupinch\n"
+
+-#: ../netstat.c:1432
++#: ../netstat.c:1499
++#, c-format
+ msgid ""
+ " -s, --statistics display networking statistics (like SNMP)\n"
+ msgstr ""
+ " -s, --statistics vype statistiku sov aktivity (jako "
+ "SNMP)\n"
+
+-#: ../netstat.c:1434
++#: ../netstat.c:1501
++#, c-format
+ msgid ""
+ " -M, --masquerade display masqueraded connections\n"
+ "\n"
+@@ -1120,20 +1064,45 @@
+ " -M, --masquerade vype maskovan spojen\n"
+ "\n"
+
+-#: ../netstat.c:1438 ../route.c:87
++#: ../netstat.c:1505
++#, fuzzy, c-format
++msgid " --numeric-hosts don't resolve host names\n"
++msgstr ""
++" -n, --numeric nebude pevdt seln adresy\n"
++" na kanonick jmna\n"
++
++#: ../netstat.c:1506
++#, fuzzy, c-format
++msgid " --numeric-ports don't resolve port names\n"
++msgstr ""
++" -n, --numeric nebude pevdt seln adresy\n"
++" na kanonick jmna\n"
++
++#: ../netstat.c:1507
++#, fuzzy, c-format
++msgid " --numeric-users don't resolve user names\n"
++msgstr ""
++" -n, --numeric nebude pevdt seln adresy\n"
++" na kanonick jmna\n"
++
++#: ../netstat.c:1508
++#, c-format
+ msgid " -N, --symbolic resolve hardware names\n"
+ msgstr " -N, --symbolic pevede hw jmna\n"
+
+-#: ../netstat.c:1439 ../route.c:88
++#: ../netstat.c:1509 ../route.c:88
++#, c-format
+ msgid " -e, --extend display other/more information\n"
+ msgstr " -e, --extend vype podrobnj informace\n"
+
+-#: ../netstat.c:1440
++#: ../netstat.c:1510
++#, c-format
+ msgid " -p, --programs display PID/Program name for sockets\n"
+ msgstr ""
+ " -p, --programs vype PID/jmno programu pro sokety\n"
+
+-#: ../netstat.c:1441
++#: ../netstat.c:1511
++#, c-format
+ msgid ""
+ " -c, --continuous continuous listing\n"
+ "\n"
+@@ -1141,23 +1110,27 @@
+ " -c, --continuous neperuovan vpis\n"
+ "\n"
+
+-#: ../netstat.c:1442
++#: ../netstat.c:1512
++#, c-format
+ msgid " -l, --listening display listening server sockets\n"
+ msgstr ""
+ " -l, --listening vype sokety, na nich je naslouchno\n"
+
+-#: ../netstat.c:1443
++#: ../netstat.c:1513
++#, c-format
+ msgid ""
+ " -a, --all, --listening display all sockets (default: connected)\n"
+ msgstr ""
+ " -a, --all, --listening vype vechny sokety (implicitn: "
+ "spojen)\n"
+
+-#: ../netstat.c:1444
++#: ../netstat.c:1514
++#, c-format
+ msgid " -o, --timers display timers\n"
+ msgstr " -o, --timers zobraz asovae\n"
+
+-#: ../netstat.c:1445 ../route.c:89
++#: ../netstat.c:1515 ../route.c:89
++#, c-format
+ msgid ""
+ " -F, --fib display Forwarding Information Base "
+ "(default)\n"
+@@ -1165,112 +1138,126 @@
+ " -F, --fib zobraz Forwarding Infomation Base\n"
+ " (implicitn)\n"
+
+-#: ../netstat.c:1446 ../route.c:90
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
+ msgid ""
+ " -C, --cache display routing cache instead of FIB\n"
+ "\n"
+ msgstr " -C, --cache msto FIB zobraz smrovac cache\n"
+
+-#: ../netstat.c:1448
++#: ../netstat.c:1518
++#, c-format
+ msgid ""
+-" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+ msgstr ""
+-" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
+-"--netrom\n"
++" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
+
+-#: ../netstat.c:1449 ../route.c:92
+-#, c-format
+-msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
++#: ../netstat.c:1519
++#, fuzzy, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
+ msgstr " <AF>=Pouijte '-A <af>' or '--<af>' Implicitn: %s\n"
+
+-#: ../netstat.c:1450 ../route.c:93
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
+ msgid " List of possible address families (which support routing):\n"
+ msgstr " Seznam monch td adres (podporujcch smrovn):\n"
+
+-#: ../netstat.c:1663
++#: ../netstat.c:1753
++#, c-format
+ msgid "Active Internet connections "
+ msgstr "Aktivn Internetov spojen "
+
+-#: ../netstat.c:1673
++#: ../netstat.c:1763
++#, c-format
+ msgid ""
+ "\n"
+-"Proto Recv-Q Send-Q Local Address Foreign Address State "
+-" "
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
+ msgstr ""
+ "\n"
+ "Proto Pch-F Odch-F Mstn Adresa Vzdlen Adresa Stav "
+
+-#: ../netstat.c:1675
++#: ../netstat.c:1765
++#, c-format
+ msgid " User Inode "
+ msgstr " Uivatel I-uzel "
+
+-#: ../netstat.c:1678
++#: ../netstat.c:1768
++#, c-format
+ msgid " Timer"
+ msgstr " asova"
+
+-#: ../netstat.c:1708
++#: ../netstat.c:1798
++#, c-format
+ msgid "IPv4 Group Memberships\n"
+ msgstr "lenstv v IPv4 skupinch\n"
+
+-#: ../netstat.c:1709
++#: ../netstat.c:1799
++#, c-format
+ msgid "Interface RefCnt Group\n"
+ msgstr "Rozhran ta Skupina\n"
+
+-#: ../rarp.c:43
++#: ../rarp.c:44
+ msgid "This kernel does not support RARP.\n"
+ msgstr "Toto jdro nepodporuje RARP.\n"
+
+-#: ../rarp.c:82
++#: ../rarp.c:83
+ #, c-format
+ msgid "no RARP entry for %s.\n"
+ msgstr "pro %s neexistuje RARP poloka.\n"
+
+-#: ../rarp.c:95
++#: ../rarp.c:96
+ #, c-format
+ msgid "%s: bad hardware address\n"
+ msgstr "hardwarov adresa %s je nesprvn\n"
+
+-#: ../rarp.c:127
++#: ../rarp.c:128
+ #, c-format
+ msgid "rarp: cannot open file %s:%s.\n"
+ msgstr "rarp: soubor %s:%s nelze otevt.\n"
+
+-#: ../rarp.c:139
++#: ../rarp.c:140
+ #, c-format
+ msgid "rarp: format error at %s:%u\n"
+ msgstr "rarp: syntaktick chyba na dku %2$u souboru %1$s\n"
+
+-#: ../rarp.c:143 ../rarp.c:287
++#: ../rarp.c:144 ../rarp.c:289
+ #, c-format
+ msgid "rarp: %s: unknown host\n"
+ msgstr "rarp: pota %s nen znm\n"
+
+-#: ../rarp.c:146
++#: ../rarp.c:147
+ #, c-format
+ msgid "rarp: cannot set entry from %s:%u\n"
+ msgstr "rarp: nelze nastavit poloku z dku %2$u souboru %1$s\n"
+
+-#: ../rarp.c:175
++#: ../rarp.c:176
++#, c-format
+ msgid "Usage: rarp -a list entries in cache.\n"
+ msgstr "Pouit: rarp -a vype poloky z cache.\n"
+
+-#: ../rarp.c:176
++#: ../rarp.c:177
++#, c-format
+ msgid " rarp -d <hostname> delete entry from cache.\n"
+ msgstr " rarp -d <jmno> smae poloku z cache.\n"
+
+-#: ../rarp.c:177
++#: ../rarp.c:178
++#, c-format
+ msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
+ msgstr ""
+ " rarp [<HW>] -s <jmno> <hwadr> pid poloku do cache.\n"
+
+-#: ../rarp.c:178
++#: ../rarp.c:179
++#, c-format
+ msgid ""
+ " rarp -f add entries from /etc/ethers.\n"
+ msgstr ""
+ " rarp -f pid poloky z /etc/ethers.\n"
+
+-#: ../rarp.c:179
++#: ../rarp.c:180
++#, c-format
+ msgid ""
+ " rarp -V display program version.\n"
+ "\n"
+@@ -1279,24 +1266,26 @@
+ "programu.\n"
+ "\n"
+
+-#: ../rarp.c:236
++#: ../rarp.c:238
+ #, c-format
+ msgid "%s: illegal option mix.\n"
+ msgstr "Kombinace pepna %s je nesprvn.\n"
+
+-#: ../rarp.c:267
++#: ../rarp.c:269
+ #, c-format
+ msgid "rarp: %s: unknown hardware type.\n"
+ msgstr "rarp: hardwarov typ %s nen znm.\n"
+
+-#: ../route.c:79
++#: ../route.c:80
++#, c-format
+ msgid ""
+ "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
+ msgstr ""
+ "Pouit: route [-nNvee] [-FC] [<AF>] Zobraz smrovac tabulky v "
+ "jdru\n"
+
+-#: ../route.c:80
++#: ../route.c:81
++#, c-format
+ msgid ""
+ " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
+ "\n"
+@@ -1305,14 +1294,16 @@
+ "AF.\n"
+ "\n"
+
+-#: ../route.c:82
++#: ../route.c:83
++#, c-format
+ msgid ""
+ " route {-h|--help} [<AF>] Detailed usage syntax for "
+ "specified AF.\n"
+ msgstr ""
+ " route {-h|--help [<AF>] Npovda pro pouit s AF.\n"
+
+-#: ../route.c:83
++#: ../route.c:84
++#, c-format
+ msgid ""
+ " route {-V|--version} Display version/author and "
+ "exit.\n"
+@@ -1321,15 +1312,23 @@
+ " route {-V|--version} Vype oznaen verze a autora\n"
+ " programu.\n"
+
++#: ../route.c:92
++#, fuzzy, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>=Pouijte '-A <af>' or '--<af>' Implicitn: %s\n"
++
+ #: ../plipconfig.c:66
++#, c-format
+ msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
+ msgstr "Pouit: plipconfig [-a] [-i] [-v] rozhran\n"
+
+ #: ../plipconfig.c:67
++#, c-format
+ msgid " [nibble NN] [trigger NN]\n"
+ msgstr " [nibble NN] [trigger NN]\n"
+
+ #: ../plipconfig.c:68
++#, c-format
+ msgid " plipconfig -V | --version\n"
+ msgstr " plipconfig -V | --version\n"
+
+@@ -1338,25 +1337,30 @@
+ msgid "%s\tnibble %lu trigger %lu\n"
+ msgstr "%s\tnibble %lu trigger %lu\n"
+
+-#: ../iptunnel.c:79
++#: ../iptunnel.c:85
++#, c-format
+ msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
+ msgstr "Pouit: iptunnel { add | change | del | show } [ JMNO ]\n"
+
+-#: ../iptunnel.c:80
++#: ../iptunnel.c:86
++#, c-format
+ msgid ""
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
+ msgstr ""
+ " [ mode { ipip | gre | sit } ] [ vzdlen ADR ] [ mstn ADR ]\n"
+
+-#: ../iptunnel.c:81
++#: ../iptunnel.c:87
++#, c-format
+ msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
+ msgstr " [ [i|o]seq ] [ [i|o]key KL ] [ [i|o]csum ]\n"
+
+-#: ../iptunnel.c:82
++#: ../iptunnel.c:88
++#, c-format
+ msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
+ msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAZEN ]\n"
+
+-#: ../iptunnel.c:83
++#: ../iptunnel.c:89
++#, c-format
+ msgid ""
+ " iptunnel -V | --version\n"
+ "\n"
+@@ -1364,450 +1368,737 @@
+ " iptunnel -V | --version\n"
+ "\n"
+
+-#: ../iptunnel.c:84
++#: ../iptunnel.c:90
++#, c-format
+ msgid "Where: NAME := STRING\n"
+ msgstr "Kde: JMNO := ETZEC\n"
+
+-#: ../iptunnel.c:85
++#: ../iptunnel.c:91
++#, c-format
+ msgid " ADDR := { IP_ADDRESS | any }\n"
+ msgstr " ADR := { IP-ADRESA | any }\n"
+
+-#: ../iptunnel.c:86
++#: ../iptunnel.c:92
++#, c-format
+ msgid " TOS := { NUMBER | inherit }\n"
+ msgstr " TOS := { SLO | inherit }\n"
+
+-#: ../iptunnel.c:87
++#: ../iptunnel.c:93
++#, c-format
+ msgid " TTL := { 1..255 | inherit }\n"
+ msgstr " TTL := { 1..255 | inherit }\n"
+
+-#: ../iptunnel.c:88
++#: ../iptunnel.c:94
++#, c-format
+ msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
+ msgstr " KL := { DOTTED_QUAD | SLO }\n"
+
+-#: ../iptunnel.c:326
++#: ../iptunnel.c:332
++#, c-format
+ msgid "Keys are not allowed with ipip and sit.\n"
+ msgstr "S ipip a sit nejsou kle povoleny.\n"
+
+-#: ../iptunnel.c:346
++#: ../iptunnel.c:352
++#, c-format
+ msgid "Broadcast tunnel requires a source address.\n"
+ msgstr "Tunel se vesmrovm vyslnm vyaduje zdrojovou adresu.\n"
+
+-#: ../iptunnel.c:361
++#: ../iptunnel.c:367
++#, c-format
+ msgid "ttl != 0 and noptmudisc are incompatible\n"
+ msgstr "ttl != 0 a noptmudisc se navzjem vyluuj\n"
+
+-#: ../iptunnel.c:373
++#: ../iptunnel.c:379
++#, c-format
+ msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
+ msgstr "reim tunelu (ipip, gre i sit) nelze zjistit\n"
+
+-#: ../iptunnel.c:411
++#: ../iptunnel.c:417
+ #, c-format
+ msgid "%s: %s/ip remote %s local %s "
+ msgstr "%s: %s/ip vzdlen %s mstn %s "
+
+-#: ../iptunnel.c:415
++#: ../iptunnel.c:421
+ msgid "unknown"
+ msgstr "Neznm."
+
+-#: ../iptunnel.c:447
++#: ../iptunnel.c:453
++#, c-format
+ msgid " Drop packets out of sequence.\n"
+ msgstr " Zahazuje pakety mimo poad.\n"
+
+-#: ../iptunnel.c:449
++#: ../iptunnel.c:455
++#, c-format
+ msgid " Checksum in received packet is required.\n"
+ msgstr " Pijman pakety mus mt kontroln souet.\n"
+
+ # ???
+-#: ../iptunnel.c:451
++#: ../iptunnel.c:457
++#, c-format
+ msgid " Sequence packets on output.\n"
+ msgstr " ad odchoz pakety.\n"
+
+-#: ../iptunnel.c:453
++#: ../iptunnel.c:459
++#, c-format
+ msgid " Checksum output packets.\n"
+ msgstr " Odchoz pakety budou mt kontroln souet.\n"
+
+-#: ../iptunnel.c:481
++#: ../iptunnel.c:487
++#, c-format
+ msgid "Wrong format of /proc/net/dev. Sorry.\n"
+ msgstr "Lituji, formt /proc/net/dev je chybn.\n"
+
+-#: ../iptunnel.c:494
++#: ../iptunnel.c:500
+ #, c-format
+ msgid "Failed to get type of [%s]\n"
+ msgstr "Typ [%s] se nepodailo zjistit.\n"
+
+-#: ../iptunnel.c:510
++#: ../iptunnel.c:516
++#, c-format
+ msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
+ msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPo Mcasts\n"
+
+-#: ../iptunnel.c:513
++#: ../iptunnel.c:519
++#, c-format
+ msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
+ msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n"
+
+-#: ../statistics.c:45
++#: ../statistics.c:47
+ msgid "ICMP input histogram:"
+ msgstr "histogram ICMP vstupu:"
+
+-#: ../statistics.c:46
++#: ../statistics.c:48
+ msgid "ICMP output histogram:"
+ msgstr "histogram ICMP vstupu:"
+
+-#: ../statistics.c:63
++#: ../statistics.c:65
+ #, c-format
+ msgid "Forwarding is %s"
+ msgstr "Pedvn je %s"
+
+-#: ../statistics.c:64
+-#, c-format
+-msgid "Default TTL is %d"
++#: ../statistics.c:66
++#, fuzzy, c-format
++msgid "Default TTL is %u"
+ msgstr "Implicitn TTL je %d"
+
+-#: ../statistics.c:65
+-#, c-format
+-msgid "%d total packets received"
++#: ../statistics.c:67
++#, fuzzy, c-format
++msgid "%u total packets received"
+ msgstr "celkem pijmutch paket: %d"
+
+-#: ../statistics.c:66
+-#, c-format
+-msgid "%d with invalid headers"
++#: ../statistics.c:68
++#, fuzzy, c-format
++msgid "%u with invalid headers"
+ msgstr "s nesprvnmi hlavikami: %d"
+
+-#: ../statistics.c:67
+-#, c-format
+-msgid "%d with invalid addresses"
++#: ../statistics.c:69
++#, fuzzy, c-format
++msgid "%u with invalid addresses"
+ msgstr "s nesprvnmi adresami: %d"
+
+-#: ../statistics.c:68
+-#, c-format
+-msgid "%d forwarded"
++#: ../statistics.c:70
++#, fuzzy, c-format
++msgid "%u forwarded"
+ msgstr "pedno: %d"
+
+-#: ../statistics.c:69
+-#, c-format
+-msgid "%d with unknown protocol"
++#: ../statistics.c:71
++#, fuzzy, c-format
++msgid "%u with unknown protocol"
+ msgstr "s neznmm protokolem: %d"
+
+-#: ../statistics.c:70
+-#, c-format
+-msgid "%d incoming packets discarded"
++#: ../statistics.c:72
++#, fuzzy, c-format
++msgid "%u incoming packets discarded"
+ msgstr "poet zahozench pchozch paket: %d"
+
+-#: ../statistics.c:71
+-#, c-format
+-msgid "%d incoming packets delivered"
++#: ../statistics.c:73
++#, fuzzy, c-format
++msgid "%u incoming packets delivered"
+ msgstr "poet doruench pchozch paket: %d"
+
+-#: ../statistics.c:72
+-#, c-format
+-msgid "%d requests sent out"
++#: ../statistics.c:74
++#, fuzzy, c-format
++msgid "%u requests sent out"
+ msgstr "poet odeslanch poadavk: %d"
+
+ #. ?
+-#: ../statistics.c:73
+-#, c-format
+-msgid "%d outgoing packets dropped"
++#: ../statistics.c:75
++#, fuzzy, c-format
++msgid "%u outgoing packets dropped"
+ msgstr "poet zahozench odchozch paket: %d"
+
+-#: ../statistics.c:74
+-#, c-format
+-msgid "%d dropped because of missing route"
++#: ../statistics.c:76
++#, fuzzy, c-format
++msgid "%u dropped because of missing route"
+ msgstr "zahozeno kvli chybjc cest: %d"
+
+-#: ../statistics.c:75
+-#, c-format
+-msgid "%d fragments dropped after timeout"
++#: ../statistics.c:77
++#, fuzzy, c-format
++msgid "%u fragments dropped after timeout"
+ msgstr "poet fragment zahozench po vypren asu: %d"
+
+-#: ../statistics.c:76
+-#, c-format
+-msgid "%d reassemblies required"
++#: ../statistics.c:78
++#, fuzzy, c-format
++msgid "%u reassemblies required"
+ msgstr "poet nutnch znovusestaven: %d"
+
+ #. ?
+-#: ../statistics.c:77
+-#, c-format
+-msgid "%d packets reassembled ok"
++#: ../statistics.c:79
++#, fuzzy, c-format
++msgid "%u packets reassembled ok"
+ msgstr "poet v podku znovu sestavench paket: %d"
+
+-#: ../statistics.c:78
+-#, c-format
+-msgid "%d packet reassembles failed"
++#: ../statistics.c:80
++#, fuzzy, c-format
++msgid "%u packet reassembles failed"
+ msgstr "poet paket, je se nepodailo znovu sestavit: %d"
+
+-#: ../statistics.c:79
+-#, c-format
+-msgid "%d fragments received ok"
++#: ../statistics.c:81
++#, fuzzy, c-format
++msgid "%u fragments received ok"
+ msgstr "poet v podku pijmutch fragment: %d"
+
+-#: ../statistics.c:80
+-#, c-format
+-msgid "%d fragments failed"
++#: ../statistics.c:82
++#, fuzzy, c-format
++msgid "%u fragments failed"
+ msgstr "poet chybnch fragment: %d"
+
+-#: ../statistics.c:81
+-#, c-format
+-msgid "%d fragments created"
++#: ../statistics.c:83
++#, fuzzy, c-format
++msgid "%u fragments created"
+ msgstr "poet vytvoench fragment: %d"
+
+-#: ../statistics.c:86
+-#, c-format
+-msgid "%d ICMP messages received"
++#: ../statistics.c:88
++#, fuzzy, c-format
++msgid "%u ICMP messages received"
+ msgstr "poet pijmutch ICMP zprv: %d"
+
+-#: ../statistics.c:87
+-#, c-format
+-msgid "%d input ICMP message failed."
++#: ../statistics.c:89
++#, fuzzy, c-format
++msgid "%u input ICMP message failed."
+ msgstr "poet chybnch pchozch ICMP zprv: %d"
+
+-#: ../statistics.c:88 ../statistics.c:101
+-#, c-format
+-msgid "destination unreachable: %d"
++#: ../statistics.c:90 ../statistics.c:103
++#, fuzzy, c-format
++msgid "destination unreachable: %u"
+ msgstr "adrest nedostupn: %d"
+
+-#: ../statistics.c:89
+-#, c-format
+-msgid "timeout in transit: %d"
++#: ../statistics.c:91
++#, fuzzy, c-format
++msgid "timeout in transit: %u"
+ msgstr "vyprel as pi penosu: %d"
+
+-#: ../statistics.c:90 ../statistics.c:103
+-#, c-format
+-msgid "wrong parameters: %d"
++#: ../statistics.c:92 ../statistics.c:105
++#, fuzzy, c-format
++msgid "wrong parameters: %u"
+ msgstr "chybn parametry: %d"
+
+ #. ?
+-#: ../statistics.c:91
+-#, c-format
+-msgid "source quenchs: %d"
++#: ../statistics.c:93
++#, fuzzy, c-format
++msgid "source quenches: %u"
+ msgstr "zen toku dat: %d"
+
+-#: ../statistics.c:92
+-#, c-format
+-msgid "redirects: %d"
++#: ../statistics.c:94
++#, fuzzy, c-format
++msgid "redirects: %u"
+ msgstr "zmna cesty: %d"
+
+-#: ../statistics.c:93
+-#, c-format
+-msgid "echo requests: %d"
++#: ../statistics.c:95
++#, fuzzy, c-format
++msgid "echo requests: %u"
+ msgstr "dost o echo: %d"
+
+-#: ../statistics.c:94 ../statistics.c:107
+-#, c-format
+-msgid "echo replies: %d"
++#: ../statistics.c:96 ../statistics.c:109
++#, fuzzy, c-format
++msgid "echo replies: %u"
+ msgstr "odpov na dost o echo: %d"
+
+-#: ../statistics.c:95
+-#, c-format
+-msgid "timestamp request: %d"
++#: ../statistics.c:97
++#, fuzzy, c-format
++msgid "timestamp request: %u"
+ msgstr "dost o as: %d"
+
+-#: ../statistics.c:96
+-#, c-format
+-msgid "timestamp reply: %d"
++#: ../statistics.c:98
++#, fuzzy, c-format
++msgid "timestamp reply: %u"
+ msgstr "odpov na dost o as: %d"
+
+-#: ../statistics.c:97
+-#, c-format
+-msgid "address mask request: %d"
++#: ../statistics.c:99
++#, fuzzy, c-format
++msgid "address mask request: %u"
+ msgstr "dost o masku podst: %d"
+
+ #. ?
+-#: ../statistics.c:98
+-msgid "address mask replies"
+-msgstr "odpovdi na dost o masku podst"
++#: ../statistics.c:100 ../statistics.c:113
++#, fuzzy, c-format
++msgid "address mask replies: %u"
++msgstr "odpov na dost o masku podst: %d"
+
+ #. ?
+-#: ../statistics.c:99
+-#, c-format
+-msgid "%d ICMP messages sent"
++#: ../statistics.c:101
++#, fuzzy, c-format
++msgid "%u ICMP messages sent"
+ msgstr "poet odeslanch ICMP zprv: %d"
+
+-#: ../statistics.c:100
+-#, c-format
+-msgid "%d ICMP messages failed"
++#: ../statistics.c:102
++#, fuzzy, c-format
++msgid "%u ICMP messages failed"
+ msgstr "poet chybnch ICMP zprv: %d"
+
+-#: ../statistics.c:102
+-#, c-format
+-msgid "time exceeded: %d"
++#: ../statistics.c:104
++#, fuzzy, c-format
++msgid "time exceeded: %u"
+ msgstr "vypren ivotnosti: %d"
+
+ #. ?
+-#: ../statistics.c:104
+-#, c-format
+-msgid "source quench: %d"
++#: ../statistics.c:106
++#, fuzzy, c-format
++msgid "source quench: %u"
+ msgstr "zen toku dat: %d"
+
+-#: ../statistics.c:105
+-#, c-format
+-msgid "redirect: %d"
++#: ../statistics.c:107
++#, fuzzy, c-format
++msgid "redirect: %u"
+ msgstr "zmna cesty: %d"
+
+-#: ../statistics.c:106
+-#, c-format
+-msgid "echo request: %d"
++#: ../statistics.c:108
++#, fuzzy, c-format
++msgid "echo request: %u"
+ msgstr "dost o echo: %d"
+
+-#: ../statistics.c:108
+-#, c-format
+-msgid "timestamp requests: %d"
++#: ../statistics.c:110
++#, fuzzy, c-format
++msgid "timestamp requests: %u"
+ msgstr "dost o as: %d"
+
+-#: ../statistics.c:109
+-#, c-format
+-msgid "timestamp replies: %d"
++#: ../statistics.c:111
++#, fuzzy, c-format
++msgid "timestamp replies: %u"
+ msgstr "odpov na dost o as: %d"
+
+-#: ../statistics.c:110
+-#, c-format
+-msgid "address mask requests: %d"
++#: ../statistics.c:112
++#, fuzzy, c-format
++msgid "address mask requests: %u"
+ msgstr "dost o masku podst: %d"
+
+-#: ../statistics.c:111
+-#, c-format
+-msgid "address mask replies: %d"
+-msgstr "odpov na dost o masku podst: %d"
+-
+-#: ../statistics.c:116
++#: ../statistics.c:118
+ #, c-format
+ msgid "RTO algorithm is %s"
+ msgstr "RTO algoritmus je %s"
+
+-#: ../statistics.c:120
+-#, c-format
+-msgid "%d active connections openings"
++#: ../statistics.c:122
++#, fuzzy, c-format
++msgid "%u active connections openings"
+ msgstr "poet aktivn navzanch spojen: %d"
+
+-#: ../statistics.c:121
+-#, c-format
+-msgid "%d passive connection openings"
++#: ../statistics.c:123
++#, fuzzy, c-format
++msgid "%u passive connection openings"
+ msgstr "poet pasivn navzanch spojen: %d"
+
+-#: ../statistics.c:122
+-#, c-format
+-msgid "%d failed connection attempts"
++#: ../statistics.c:124
++#, fuzzy, c-format
++msgid "%u failed connection attempts"
+ msgstr "poet nespnch pokus o spojen: %d"
+
+-#: ../statistics.c:123
+-#, c-format
+-msgid "%d connection resets received"
++#: ../statistics.c:125
++#, fuzzy, c-format
++msgid "%u connection resets received"
+ msgstr "poet pijmutch reset: %d"
+
+-#: ../statistics.c:124
+-#, c-format
+-msgid "%d connections established"
++#: ../statistics.c:126
++#, fuzzy, c-format
++msgid "%u connections established"
+ msgstr "poet navzanch spojen: %d"
+
+-#: ../statistics.c:125
+-#, c-format
+-msgid "%d segments received"
++#: ../statistics.c:127
++#, fuzzy, c-format
++msgid "%u segments received"
+ msgstr "poet pijmutch segment: %d"
+
+-#: ../statistics.c:126
+-#, c-format
+-msgid "%d segments send out"
++#: ../statistics.c:128
++#, fuzzy, c-format
++msgid "%u segments send out"
+ msgstr "poet odeslanch segment: %d"
+
+-#: ../statistics.c:127
+-#, c-format
+-msgid "%d segments retransmited"
++#: ../statistics.c:129
++#, fuzzy, c-format
++msgid "%u segments retransmited"
+ msgstr "poet penesench segment: %d"
+
+-#: ../statistics.c:128
+-#, c-format
+-msgid "%d bad segments received."
++#: ../statistics.c:130
++#, fuzzy, c-format
++msgid "%u bad segments received."
+ msgstr "poet chybnch pchozch segment: %d."
+
+-#: ../statistics.c:129
+-#, c-format
+-msgid "%d resets sent"
++#: ../statistics.c:131
++#, fuzzy, c-format
++msgid "%u resets sent"
+ msgstr "poet odeslanch reset: %d"
+
+-#: ../statistics.c:134
+-#, c-format
+-msgid "%d packets received"
++#: ../statistics.c:136
++#, fuzzy, c-format
++msgid "%u packets received"
+ msgstr "poet pijmutch paket: %d"
+
+-#: ../statistics.c:135
+-#, c-format
+-msgid "%d packets to unknown port received."
++#: ../statistics.c:137
++#, fuzzy, c-format
++msgid "%u packets to unknown port received."
+ msgstr "poet paket pijmutch pro neznm port: %d."
+
+-#: ../statistics.c:136
+-#, c-format
+-msgid "%d packet receive errors"
++#: ../statistics.c:138
++#, fuzzy, c-format
++msgid "%u packet receive errors"
+ msgstr "poet chyb pi pjmu paket: %d"
+
+-#: ../statistics.c:137
+-#, c-format
+-msgid "%d packets sent"
++#: ../statistics.c:139
++#, fuzzy, c-format
++msgid "%u packets sent"
+ msgstr "poet odeslanch paket: %d"
+
+-#: ../statistics.c:142
+-#, c-format
+-msgid "%d SYN cookies sent"
++#: ../statistics.c:144
++#, fuzzy, c-format
++msgid "%u SYN cookies sent"
+ msgstr "poet odeslanch SYN cookies: %d"
+
+-#: ../statistics.c:143
+-#, c-format
+-msgid "%d SYN cookies received"
++#: ../statistics.c:145
++#, fuzzy, c-format
++msgid "%u SYN cookies received"
+ msgstr "poet pijmutch SYN cookies: %d"
+
+-#: ../statistics.c:144
+-#, c-format
+-msgid "%d invalid SYN cookies received"
++#: ../statistics.c:146
++#, fuzzy, c-format
++msgid "%u invalid SYN cookies received"
+ msgstr "poet chybnch pchozch SYN cookies: %d"
+
+-#: ../statistics.c:146
+-#, c-format
+-msgid "%d resets received for embryonic SYN_RECV sockets"
++#: ../statistics.c:148
++#, fuzzy, c-format
++msgid "%u resets received for embryonic SYN_RECV sockets"
+ msgstr "poet reset pijmutch pro sokety ve stavu SYN_PCH: %d"
+
+-#: ../statistics.c:148
+-#, c-format
+-msgid "%d packets pruned from receive queue because of socket buffer overrun"
++#: ../statistics.c:150
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue because of socket buffer overrun"
+ msgstr "poet paket odstrannch z fronty kvli peteen bufferu soketu: %d"
+
+ #. obsolete: 2.2.0 doesn't do that anymore
+-#: ../statistics.c:151
+-#, c-format
+-msgid "%d packets pruned from out-of-order queue"
++#: ../statistics.c:153
++#, fuzzy, c-format
++msgid "%u packets pruned from receive queue"
+ msgstr "poet paket odstrannch z fronty mimo-poad: %d"
+
+-#: ../statistics.c:152
+-#, c-format
++#: ../statistics.c:154
++#, fuzzy, c-format
+ msgid ""
+-"%d packets dropped from out-of-order queue because of socket buffer overrun"
++"%u packets dropped from out-of-order queue because of socket buffer overrun"
+ msgstr ""
+ "poet paket zahozench z fronty mimo-poad kvli peteen bufferu soketu: "
+ "%d"
+
+-#: ../statistics.c:154
+-#, c-format
+-msgid "%d ICMP packets dropped because they were out-of-window"
++#: ../statistics.c:156
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because they were out-of-window"
+ msgstr "poet ICMP paket zahozench, protoe byly mimo-okno: %d"
+
+-#: ../statistics.c:156
+-#, c-format
+-msgid "%d ICMP packets dropped because socket was locked"
++#: ../statistics.c:158
++#, fuzzy, c-format
++msgid "%u ICMP packets dropped because socket was locked"
+ msgstr "poet ICMP paket zahozench kvli zamenmu soketu: %d"
+
++#: ../statistics.c:160
++#, c-format
++msgid "%u TCP sockets finished time wait in fast timer"
++msgstr ""
++
++#: ../statistics.c:161
++#, c-format
++msgid "%u time wait sockets recycled by time stamp"
++msgstr ""
++
++#: ../statistics.c:162
++#, c-format
++msgid "%u TCP sockets finished time wait in slow timer"
++msgstr ""
++
++#: ../statistics.c:163
++#, c-format
++msgid "%u passive connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:165
++#, c-format
++msgid "%u active connections rejected because of time stamp"
++msgstr ""
++
++#: ../statistics.c:167
++#, c-format
++msgid "%u packets rejects in established connections because of timestamp"
++msgstr ""
++
++#: ../statistics.c:169
++#, fuzzy, c-format
++msgid "%u delayed acks sent"
++msgstr "poet odeslanch paket: %d"
++
++#: ../statistics.c:170
++#, c-format
++msgid "%u delayed acks further delayed because of locked socket"
++msgstr ""
++
++#: ../statistics.c:172
++#, c-format
++msgid "Quick ack mode was activated %u times"
++msgstr ""
++
++#: ../statistics.c:173
++#, c-format
++msgid "%u times the listen queue of a socket overflowed"
++msgstr ""
++
++#: ../statistics.c:175
++#, c-format
++msgid "%u SYNs to LISTEN sockets ignored"
++msgstr ""
++
++#: ../statistics.c:176
++#, c-format
++msgid "%u packets directly queued to recvmsg prequeue."
++msgstr ""
++
++#: ../statistics.c:178
++#, c-format
++msgid "%u of bytes directly received from backlog"
++msgstr ""
++
++#: ../statistics.c:180
++#, c-format
++msgid "%u of bytes directly received from prequeue"
++msgstr ""
++
++#: ../statistics.c:182
++#, fuzzy, c-format
++msgid "%u packets dropped from prequeue"
++msgstr "poet paket odstrannch z fronty mimo-poad: %d"
++
++#: ../statistics.c:183
++#, fuzzy, c-format
++msgid "%u packet headers predicted"
++msgstr "poet pijmutch paket: %d"
++
++#: ../statistics.c:184
++#, c-format
++msgid "%u packets header predicted and directly queued to user"
++msgstr ""
++
++#: ../statistics.c:186
++#, c-format
++msgid "Ran %u times out of system memory during packet sending"
++msgstr ""
++
++#: ../statistics.c:188
++#, fuzzy, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr "poet paket pijmutch pro neznm port: %d."
++
++#: ../statistics.c:189
++#, c-format
++msgid "%u predicted acknowledgments"
++msgstr ""
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr ""
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr ""
++
++#: ../statistics.c:192
++#, fuzzy, c-format
++msgid "%u bad SACKs received"
++msgstr "poet chybnch pchozch segment: %d."
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr ""
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr ""
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr ""
++
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:197
++#, c-format
++msgid "%u congestion windows fully recovered"
++msgstr ""
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr ""
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr ""
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr ""
++
++#: ../statistics.c:201
++#, fuzzy, c-format
++msgid "%u retransmits lost"
++msgstr "poet odeslanch reset: %d"
++
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr ""
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr ""
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr ""
++
++#: ../statistics.c:205
++#, fuzzy, c-format
++msgid "%u fast retransmits"
++msgstr "poet penesench segment: %d"
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr ""
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr ""
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr ""
++
++#: ../statistics.c:209
++#, fuzzy, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "poet penesench segment: %d"
++
++#: ../statistics.c:210
++#, fuzzy, c-format
++msgid "%u sack retransmits failed"
++msgstr "poet paket, je se nepodailo znovu sestavit: %d"
++
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr ""
++
++#: ../statistics.c:212
++#, fuzzy, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr "poet paket odstrannch z fronty kvli peteen bufferu soketu: %d"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr ""
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr ""
++
++#: ../statistics.c:215
++#, fuzzy, c-format
++msgid "%u DSACKs received"
++msgstr "poet pijmutch paket: %d"
++
++#: ../statistics.c:216
++#, fuzzy, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "celkem pijmutch paket: %d"
++
++#: ../statistics.c:217
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "poet pijmutch reset: %d"
++
++#: ../statistics.c:218
++#, fuzzy, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "poet pijmutch reset: %d"
++
++#: ../statistics.c:219
++#, fuzzy, c-format
++msgid "%u connections reset due to early user close"
++msgstr "poet pijmutch reset: %d"
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr ""
++
++#: ../statistics.c:221
++#, fuzzy, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "poet pijmutch reset: %d"
++
+ #: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr ""
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr ""
++
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr ""
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr ""
++
++#: ../statistics.c:292
+ msgid "enabled"
+ msgstr "zapnuto"
+
+-#: ../statistics.c:222
++#: ../statistics.c:292
+ msgid "disabled"
+ msgstr "vypnuto"
+
+-#: ../statistics.c:272
+-#, c-format
+-msgid "unknown title %s\n"
+-msgstr "titulek %s je neznm\n"
+-
+-#: ../statistics.c:298
++#: ../statistics.c:375
+ msgid "error parsing /proc/net/snmp"
+ msgstr "chyba pi zpracovn /proc/net/snmp"
+
+-#: ../statistics.c:311
++#: ../statistics.c:388
+ msgid "cannot open /proc/net/snmp"
+ msgstr "/proc/net/snmp nelze otevt"
+
+@@ -1821,89 +2112,95 @@
+ msgid "Cannot change line discipline to `%s'.\n"
+ msgstr "Linkovou disciplnu nelze na `%s' zmnit.\n"
+
+-#: ../lib/af.c:145 ../lib/hw.c:148
++#: ../lib/af.c:153 ../lib/hw.c:161
+ msgid "UNSPEC"
+ msgstr "NEZNM"
+
+-#: ../lib/af.c:147
++#: ../lib/af.c:155
+ msgid "UNIX Domain"
+ msgstr "Domna UNIX"
+
+-#: ../lib/af.c:150
++#: ../lib/af.c:158
+ msgid "DARPA Internet"
+ msgstr "DARPA Internet"
+
+-#: ../lib/af.c:153
++#: ../lib/af.c:161
+ msgid "IPv6"
+ msgstr "IPv6"
+
+-#: ../lib/af.c:156 ../lib/hw.c:169
++#: ../lib/af.c:164 ../lib/hw.c:182
+ msgid "AMPR AX.25"
+ msgstr "AMPR AX.25"
+
+-#: ../lib/af.c:159 ../lib/hw.c:175
++#: ../lib/af.c:167 ../lib/hw.c:188
+ msgid "AMPR NET/ROM"
+ msgstr "AMPR NET/ROM"
+
+-#: ../lib/af.c:162
++#: ../lib/af.c:170
+ msgid "Novell IPX"
+ msgstr "Novell IPX"
+
+-#: ../lib/af.c:165
++#: ../lib/af.c:173
+ msgid "Appletalk DDP"
+ msgstr "Appletalk DDP"
+
+-#: ../lib/af.c:168 ../lib/hw.c:207
++#: ../lib/af.c:176 ../lib/hw.c:223
+ msgid "Econet"
+ msgstr "Econet"
+
+-#: ../lib/af.c:171 ../lib/hw.c:172
++#: ../lib/af.c:179
++msgid "CCITT X.25"
++msgstr ""
++
++#: ../lib/af.c:182 ../lib/hw.c:185
+ msgid "AMPR ROSE"
+ msgstr "AMPR ROSE"
+
+-#: ../lib/af.c:174 ../lib/hw.c:160
++#: ../lib/af.c:185 ../lib/hw.c:173
+ msgid "Ash"
+ msgstr "Ash"
+
+-#: ../lib/af.c:232
++#: ../lib/af.c:243
++#, c-format
+ msgid "Please don't supply more than one address family.\n"
+ msgstr "Nezadvejte vce ne jednu tdu adres.\n"
+
+-#: ../lib/af.c:293
++#: ../lib/af.c:304
++#, c-format
+ msgid "Too much address family arguments.\n"
+ msgstr "Bylo zadno pli mnoho td adres.\n"
+
+-#: ../lib/af.c:304
++#: ../lib/af.c:315
+ #, c-format
+ msgid "Unknown address family `%s'.\n"
+ msgstr "Tda adres `%s' nen znma.\n"
+
+-#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
+-#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
+-#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
+-#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
+-msgid "[NONE SET]"
+-msgstr "[NENASTAVENO]"
+-
+-#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
+ #, c-format
+ msgid "in_arcnet(%s): invalid arcnet address!\n"
+ msgstr "in_arcnet(%s): chybn arcnet adresa!\n"
+
+-#: ../lib/arcnet.c:108
++#: ../lib/arcnet.c:97
+ #, c-format
+ msgid "in_arcnet(%s): trailing : ignored!\n"
+ msgstr "in_arcnet(%s): nadbyten : ignorovno!\n"
+
+-#: ../lib/arcnet.c:120
++#: ../lib/arcnet.c:109
+ #, c-format
+ msgid "in_arcnet(%s): trailing junk!\n"
+ msgstr "in_arcnet(%s): nadbyten znaky!\n"
+
+ #: ../lib/ash.c:81
++#, c-format
+ msgid "Malformed Ash address"
+ msgstr "Chybn Ash adresa"
+
++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
++msgid "[NONE SET]"
++msgstr "[NENASTAVENO]"
++
+ #: ../lib/ax25.c:97 ../lib/netrom.c:100
+ msgid "Invalid callsign"
+ msgstr "Nesprvn volac znak"
+@@ -1913,22 +2210,21 @@
+ msgstr "Volac znak je pli dlouh."
+
+ #: ../lib/ax25_gr.c:47
++#, c-format
+ msgid "AX.25 not configured in this system.\n"
+ msgstr "AX.25 nen na tomto systmu nakonfigurovno.\n"
+
+ #: ../lib/ax25_gr.c:50
++#, c-format
+ msgid "Kernel AX.25 routing table\n"
+ msgstr "Smrovac tabulka v jdru pro AX.25\n"
+
+ #. xxx
+ #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
+ msgid "Destination Iface Use\n"
+ msgstr "Adrest Rozhran Uit\n"
+
+-#: ../lib/ddp_gr.c:21
+-msgid "Routing table for `ddp' not yet supported.\n"
+-msgstr "Smrovac tabulka pro `ddp' nen zatm podporovna.\n"
+-
+ #: ../lib/ether.c:74 ../lib/ether.c:91
+ #, c-format
+ msgid "in_ether(%s): invalid ether address!\n"
+@@ -1944,153 +2240,171 @@
+ msgid "in_ether(%s): trailing junk!\n"
+ msgstr "in_ether(%s): nadbyten znaky!\n"
+
+-#: ../lib/fddi.c:95 ../lib/fddi.c:110
++#: ../lib/fddi.c:84 ../lib/fddi.c:99
+ #, c-format
+ msgid "in_fddi(%s): invalid fddi address!\n"
+ msgstr "in_fddi(%s): chybn fddi adresa!\n"
+
+-#: ../lib/fddi.c:122
++#: ../lib/fddi.c:111
+ #, c-format
+ msgid "in_fddi(%s): trailing : ignored!\n"
+ msgstr "in_fddi(%s): nadbyten : ignorovno!\n"
+
+-#: ../lib/fddi.c:134
++#: ../lib/fddi.c:123
+ #, c-format
+ msgid "in_fddi(%s): trailing junk!\n"
+ msgstr "in_fddi(%s): nadbyten znaky!\n"
+
+-#: ../lib/getroute.c:97 ../lib/setroute.c:76
++#: ../lib/getroute.c:101 ../lib/setroute.c:80
+ #, c-format
+ msgid "Address family `%s' not supported.\n"
+ msgstr "Tda adres `%s' nen podporovna.\n"
+
+-#: ../lib/getroute.c:103 ../lib/setroute.c:80
++#: ../lib/getroute.c:107 ../lib/setroute.c:84
+ #, c-format
+ msgid "No routing for address family `%s'.\n"
+ msgstr "Pro tdu adres `%s' nen dn smrovn.\n"
+
+-#: ../lib/hippi.c:96 ../lib/hippi.c:111
++#: ../lib/hippi.c:84 ../lib/hippi.c:99
+ #, c-format
+ msgid "in_hippi(%s): invalid hippi address!\n"
+ msgstr "in_hippi(%s): chybn hippi adresa!\n"
+
+-#: ../lib/hippi.c:123
++#: ../lib/hippi.c:111
+ #, c-format
+ msgid "in_hippi(%s): trailing : ignored!\n"
+ msgstr "in_hippi(%s): nadbyten : ignorovno!\n"
+
+-#: ../lib/hippi.c:134
++#: ../lib/hippi.c:122
+ #, c-format
+ msgid "in_hippi(%s): trailing junk!\n"
+ msgstr "in_hippi(%s): nadbyten znaky!\n"
+
+-#: ../lib/hw.c:147
++#: ../lib/hw.c:160
+ msgid "Local Loopback"
+ msgstr "Mstn smyka"
+
+-#: ../lib/hw.c:150
++#: ../lib/hw.c:163
+ msgid "Serial Line IP"
+ msgstr "IP po sriov lince"
+
+-#: ../lib/hw.c:151
++#: ../lib/hw.c:164
+ msgid "VJ Serial Line IP"
+ msgstr "Vj IP po sriov lince"
+
+-#: ../lib/hw.c:152
++#: ../lib/hw.c:165
+ msgid "6-bit Serial Line IP"
+ msgstr "6bitov IP po sriov lince"
+
+-#: ../lib/hw.c:153
++#: ../lib/hw.c:166
+ msgid "VJ 6-bit Serial Line IP"
+ msgstr "6bitov VJ IP po sriov lince"
+
+-#: ../lib/hw.c:154
++#: ../lib/hw.c:167
+ msgid "Adaptive Serial Line IP"
+ msgstr "Adaptivn IP po sriov lince"
+
+-#: ../lib/hw.c:157
++#: ../lib/hw.c:170
+ msgid "Ethernet"
+ msgstr "Ethernet"
+
+-#: ../lib/hw.c:163
++#: ../lib/hw.c:176
+ msgid "Fiber Distributed Data Interface"
+ msgstr "Fiber Distributed Data Interface"
+
+-#: ../lib/hw.c:166
++#: ../lib/hw.c:179
+ msgid "HIPPI"
+ msgstr "HIPPI"
+
+-#: ../lib/hw.c:178
++#: ../lib/hw.c:191
++msgid "generic X.25"
++msgstr ""
++
++#: ../lib/hw.c:194
+ msgid "IPIP Tunnel"
+ msgstr "IPIP Tunnel"
+
+-#: ../lib/hw.c:181
++#: ../lib/hw.c:197
+ msgid "Point-to-Point Protocol"
+ msgstr "Point-to-Point Protokol"
+
+-#: ../lib/hw.c:184
++#: ../lib/hw.c:200
+ msgid "(Cisco)-HDLC"
+ msgstr "(Cisco)-HDLC"
+
+-#: ../lib/hw.c:185
++#: ../lib/hw.c:201
+ msgid "LAPB"
+ msgstr "LAPB"
+
+-#: ../lib/hw.c:188
++#: ../lib/hw.c:204
+ msgid "ARCnet"
+ msgstr "ARCnet"
+
+-#: ../lib/hw.c:191
++#: ../lib/hw.c:207
+ msgid "Frame Relay DLCI"
+ msgstr "Frame Relay DLCI"
+
+-#: ../lib/hw.c:192
++#: ../lib/hw.c:208
+ msgid "Frame Relay Access Device"
+ msgstr "Pstupov zazen Frame Relay"
+
+-#: ../lib/hw.c:195
++#: ../lib/hw.c:211
+ msgid "IPv6-in-IPv4"
+ msgstr "IPv6-in-IPv4"
+
+-#: ../lib/hw.c:198
++#: ../lib/hw.c:214
+ msgid "IrLAP"
+ msgstr "IrLAP"
+
+-#: ../lib/hw.c:201
++#: ../lib/hw.c:217
+ msgid "16/4 Mbps Token Ring"
+ msgstr "Token Ring 16/4 Mb/s"
+
+-#: ../lib/hw.c:203
++#: ../lib/hw.c:219
+ #, fuzzy
+ msgid "16/4 Mbps Token Ring (New)"
+ msgstr "Token Ring 16/4 Mb/s"
+
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr ""
++
+ #: ../lib/inet.c:153 ../lib/inet6.c:79
+ #, c-format
+ msgid "rresolve: unsupport address family %d !\n"
+ msgstr "rresolve: tda adres %d nen podporovna!\n"
+
+-#: ../lib/inet6_gr.c:79
++#: ../lib/inet6.c:131
++#, fuzzy
++msgid "[UNKNOWN]"
++msgstr "NEZNM"
++
++#: ../lib/inet6_gr.c:71
++#, c-format
+ msgid "INET6 (IPv6) not configured in this system.\n"
+ msgstr "INET6 (IPv6) nen na tomto systmu nakonfigurovno.\n"
+
+-#: ../lib/inet6_gr.c:82
++#: ../lib/inet6_gr.c:74
++#, c-format
+ msgid "Kernel IPv6 routing table\n"
+ msgstr "Smrovac tabulka v jdru pro IPv6\n"
+
+-#: ../lib/inet6_gr.c:84
++#: ../lib/inet6_gr.c:76
++#, c-format
+ msgid ""
+-"Destination Next Hop "
+-" Flags Metric Ref Use Iface\n"
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
+ msgstr ""
+-"Adrest Dal Smrova "
+-" Pzn Metrika Odkaz Uit Rozhran\n"
++"Adrest Dal "
++"Smrova Pzn Metrika Odkaz Uit Rozhran\n"
+
+-#: ../lib/inet6_gr.c:158
++#: ../lib/inet6_gr.c:150
++#, c-format
+ msgid "Kernel IPv6 Neighbour Cache\n"
+ msgstr "Cache soused v jdru pro IPv6\n"
+
+-#: ../lib/inet6_gr.c:161
++#: ../lib/inet6_gr.c:153
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State\n"
+@@ -2098,7 +2412,8 @@
+ "Soused HW Adresa Rozhran Pzn "
+ "Odkazy Stav\n"
+
+-#: ../lib/inet6_gr.c:165
++#: ../lib/inet6_gr.c:157
++#, c-format
+ msgid ""
+ "Neighbour HW Address Iface Flags "
+ "Ref State Stale(sec) Delete(sec)\n"
+@@ -2107,30 +2422,37 @@
+ "Pznaky Odkazy Stav Prol(sec) Smazat(sec)\n"
+
+ #: ../lib/inet6_sr.c:46
++#, c-format
+ msgid "Usage: inet6_route [-vF] del Target\n"
+ msgstr "Pouit: inet6_route [-vF] del Cl\n"
+
+ #: ../lib/inet6_sr.c:47
++#, c-format
+ msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
+ msgstr " inet6_route [-vF] add Cl [gw Gw] [metrika M] [[dev] If]\n"
+
+ #: ../lib/inet6_sr.c:48
++#, c-format
+ msgid " inet6_route [-FC] flush NOT supported\n"
+ msgstr " inet6_route [-FC] flush NEN podporovno\n"
+
+-#: ../lib/inet6_sr.c:182
++#: ../lib/inet6_sr.c:188
++#, c-format
+ msgid "Flushing `inet6' routing table not supported\n"
+ msgstr "Smrovac tabulku `inet6' nelze vyprazdovat\n"
+
+ #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
+ msgid "INET (IPv4) not configured in this system.\n"
+ msgstr "INET (IPv4) nen na tomto systmu nakonfigurovno.\n"
+
+ #: ../lib/inet_gr.c:53
++#, c-format
+ msgid "Kernel IP routing table\n"
+ msgstr "Smrovac tabulka v jdru pro IP\n"
+
+ #: ../lib/inet_gr.c:56
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface\n"
+@@ -2139,6 +2461,7 @@
+ "Rozhran\n"
+
+ #: ../lib/inet_gr.c:59
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags MSS Window irtt "
+ "Iface\n"
+@@ -2147,6 +2470,7 @@
+ "Rozhran\n"
+
+ #: ../lib/inet_gr.c:62
++#, c-format
+ msgid ""
+ "Destination Gateway Genmask Flags Metric Ref Use "
+ "Iface MSS Window irtt\n"
+@@ -2155,10 +2479,12 @@
+ "Rozhran MSS Okno irtt\n"
+
+ #: ../lib/inet_gr.c:237
++#, c-format
+ msgid "Kernel IP routing cache\n"
+ msgstr "Smrovac cache v jdru pro IP\n"
+
+ #: ../lib/inet_gr.c:258
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface\n"
+@@ -2167,6 +2493,7 @@
+ "Rozhran\n"
+
+ #: ../lib/inet_gr.c:261
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags MSS Window irtt "
+ "Iface\n"
+@@ -2175,6 +2502,7 @@
+ "Rozhran\n"
+
+ #: ../lib/inet_gr.c:266
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt HH Arp\n"
+@@ -2183,6 +2511,7 @@
+ "Rozhran MSS Okno irtt HH Arp\n"
+
+ #: ../lib/inet_gr.c:290
++#, c-format
+ msgid ""
+ "Source Destination Gateway Flags Metric Ref Use "
+ "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
+@@ -2190,7 +2519,8 @@
+ "Odeslatel Adrest Maska Pzn Metrik Odkazy Ut "
+ "Rozhran MSS Okno irtt TOS HHOdk HHAktul ZvltCl\n"
+
+-#: ../lib/inet_sr.c:50
++#: ../lib/inet_sr.c:51
++#, c-format
+ msgid ""
+ "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
+ "[[dev] If]\n"
+@@ -2198,29 +2528,34 @@
+ "Pouit: inet_route [-vF] del {-host|-net} Cl[/prefix] [gw Gw] [metrika M] "
+ "[[dev] If]\n"
+
+-#: ../lib/inet_sr.c:51
++#: ../lib/inet_sr.c:52
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Cl[/prefix] [gw Gw] [metrika M]\n"
+
+-#: ../lib/inet_sr.c:52
++#: ../lib/inet_sr.c:53
++#, c-format
+ msgid ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+ msgstr ""
+ " [netmask N] [mss Mss] [window W] [irtt I]\n"
+
+-#: ../lib/inet_sr.c:53
++#: ../lib/inet_sr.c:54
++#, c-format
+ msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
+ msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
+
+-#: ../lib/inet_sr.c:54
++#: ../lib/inet_sr.c:55
++#, c-format
+ msgid ""
+ " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
+ msgstr ""
+ " inet_route [-vF] add {-host|-net} Cl/[prefix] [metrika M] reject\n"
+
+-#: ../lib/inet_sr.c:55
++#: ../lib/inet_sr.c:56
++#, c-format
+ msgid " inet_route [-FC] flush NOT supported\n"
+ msgstr " inet_route [-FC] flush NEN podporovno\n"
+
+@@ -2230,15 +2565,17 @@
+ msgstr "route: %s: s nelze pout jako brnu!\n"
+
+ #: ../lib/inet_sr.c:174
+-#, fuzzy
++#, fuzzy, c-format
+ msgid "route: Invalid MSS/MTU.\n"
+ msgstr "route: Nesprvn NSS.\n"
+
+ #: ../lib/inet_sr.c:187
++#, c-format
+ msgid "route: Invalid window.\n"
+ msgstr "route: Nesprvn okno.\n"
+
+ #: ../lib/inet_sr.c:203
++#, c-format
+ msgid "route: Invalid initial rtt.\n"
+ msgstr "route: Nesprvn zahajovac rtt.\n"
+
+@@ -2253,75 +2590,92 @@
+ msgstr "route: sov maska %s je nesprvn\n"
+
+ #: ../lib/inet_sr.c:270
++#, c-format
+ msgid "route: netmask doesn't match route address\n"
+ msgstr "route: sov maska nevyhovuje adrese cesty\n"
+
+ #: ../lib/inet_sr.c:306
++#, c-format
+ msgid "Flushing `inet' routing table not supported\n"
+ msgstr "Smrovac cache `inet' nelze vyprazdovat\n"
+
+ #: ../lib/inet_sr.c:310
++#, c-format
+ msgid "Modifying `inet' routing cache not supported\n"
+ msgstr "Smrovac cache `inet' nelze mnit\n"
+
+ #: ../lib/ipx_gr.c:52
++#, c-format
+ msgid "IPX not configured in this system.\n"
+ msgstr "IPX nen na tomto systmu nakonfigurovno.\n"
+
+ #: ../lib/ipx_gr.c:56
++#, c-format
+ msgid "Kernel IPX routing table\n"
+ msgstr "Smrovac tabulka v jdru pro IPX\n"
+
+ #. xxx
+ #: ../lib/ipx_gr.c:57
++#, c-format
+ msgid "Destination Router Net Router Node\n"
+ msgstr "Cl Smrova S Smrova Uzel\n"
+
+ #: ../lib/ipx_sr.c:33
++#, c-format
+ msgid "IPX: this needs to be written\n"
+ msgstr "IPX: toto je teba uloit\n"
+
+-#: ../lib/masq_info.c:197
++#: ../lib/masq_info.c:198
++#, c-format
+ msgid "IP masquerading entries\n"
+ msgstr "IP maskovac poloky\n"
+
+-#: ../lib/masq_info.c:200
++#: ../lib/masq_info.c:201
++#, c-format
+ msgid "prot expire source destination ports\n"
+ msgstr "prot ivot zdroj cl porty\n"
+
+-#: ../lib/masq_info.c:203
++#: ../lib/masq_info.c:204
++#, c-format
+ msgid ""
+-"prot expire initseq delta prevd source destination "
+-" ports\n"
++"prot expire initseq delta prevd source "
++"destination ports\n"
+ msgstr ""
+-"prot ivot zahajsek delta pedchd zdroj cl "
+-" porty\n"
++"prot ivot zahajsek delta pedchd zdroj "
++"cl porty\n"
+
+ #: ../lib/netrom_gr.c:48
++#, c-format
+ msgid "NET/ROM not configured in this system.\n"
+ msgstr "NET/ROM nen na tomto systmu nakonfigurovno.\n"
+
+ #: ../lib/netrom_gr.c:51
++#, c-format
+ msgid "Kernel NET/ROM routing table\n"
+ msgstr "Smrovac tabulka v jdru pro NET/ROM\n"
+
+ #: ../lib/netrom_gr.c:52
++#, c-format
+ msgid "Destination Mnemonic Quality Neighbour Iface\n"
+ msgstr "Cl Mnemonika Kvalita Soused Rozhran\n"
+
+ #: ../lib/netrom_sr.c:34
++#, c-format
+ msgid "netrom usage\n"
+ msgstr "pouit netrom\n"
+
+ #: ../lib/netrom_sr.c:44
++#, c-format
+ msgid "NET/ROM: this needs to be written\n"
+ msgstr "NET/ROM: toto je poteba uloit\n"
+
+ #: ../lib/ppp.c:44
++#, c-format
+ msgid "You cannot start PPP with this program.\n"
+ msgstr "Tmto programem nelze PPP spustit.\n"
+
+ #: ../lib/ppp_ac.c:38
++#, c-format
+ msgid "Sorry, use pppd!\n"
+ msgstr "Lituji, pouijte pppd!\n"
+
+@@ -2330,49 +2684,319 @@
+ msgstr "Adresa uzlu mus mt 10 slic"
+
+ #: ../lib/rose_gr.c:51
++#, c-format
+ msgid "ROSE not configured in this system.\n"
+ msgstr "ROSE nen na tomto systmu nakonfigurovno.\n"
+
+ #: ../lib/rose_gr.c:54
++#, c-format
+ msgid "Kernel ROSE routing table\n"
+ msgstr "Smrovac tabulka v jdru pro ROSE\n"
+
+-#: ../lib/tr.c:70 ../lib/tr.c:85
++#: ../lib/tr.c:86 ../lib/tr.c:101
+ #, c-format
+ msgid "in_tr(%s): invalid token ring address!\n"
+ msgstr "in_tr(%s): nesprvn token ring adresa!\n"
+
+-#: ../lib/tr.c:97
++#: ../lib/tr.c:113
+ #, c-format
+ msgid "in_tr(%s): trailing : ignored!\n"
+ msgstr "in_tr(%s): nadbyten: ignorovno!\n"
+
+-#: ../lib/tr.c:109
++#: ../lib/tr.c:125
+ #, c-format
+ msgid "in_tr(%s): trailing junk!\n"
+ msgstr "in_tr(%s): nadbyten znaky!\n"
+
+-#: ../lib/interface.c:124
++#: ../lib/interface.c:176
+ #, c-format
+ msgid "warning: no inet socket available: %s\n"
+ msgstr "varovn: nen dostupn dn inet soket: %s\n"
+
+-#: ../lib/interface.c:270
++#: ../lib/interface.c:325
+ #, c-format
+ msgid "Warning: cannot open %s (%s). Limited output.\n"
+ msgstr ""
+
+ #. Give better error message for this case.
+-#: ../lib/interface.c:504
++#: ../lib/interface.c:571
+ msgid "Device not found"
+ msgstr "Zazen nebylo nalezeno"
+
+-#: ../lib/interface.c:508
++#: ../lib/interface.c:575
+ #, c-format
+ msgid "%s: error fetching interface information: %s\n"
+ msgstr "%s: chyba pi zskvn informac o rozhran %s\n"
+
+-#: ../lib/sockets.c:59
++#: ../lib/interface.c:608
++msgid " - no statistics available -"
++msgstr " - statistick data nejsou dostupn -"
++
++#: ../lib/interface.c:612
++#, c-format
++msgid "[NO FLAGS]"
++msgstr "[DN PZNAKY]"
++
++#: ../lib/interface.c:688
++#, c-format
++msgid "%-9.9s Link encap:%s "
++msgstr "%-9.9s Zapouzden:%s "
++
++#: ../lib/interface.c:693
++#, c-format
++msgid "HWaddr %s "
++msgstr "HWadr %s "
++
++#: ../lib/interface.c:696
++#, c-format
++msgid "Media:%s"
++msgstr "Mdium:%s"
++
++#: ../lib/interface.c:698
++#, c-format
++msgid "(auto)"
++msgstr "(auto)"
++
++#: ../lib/interface.c:705
++#, c-format
++msgid " %s addr:%s "
++msgstr " %s adr:%s "
++
++#: ../lib/interface.c:708
++#, c-format
++msgid " P-t-P:%s "
++msgstr " P-t-P:%s "
++
++# V ostatnch katalozch se pekld Broadcast -> vesmrov vysln.
++# Tudi bcast -> Vesmr :)
++#: ../lib/interface.c:711
++#, c-format
++msgid " Bcast:%s "
++msgstr " Vesmr:%s "
++
++#: ../lib/interface.c:713
++#, c-format
++msgid " Mask:%s\n"
++msgstr "Maska:%s\n"
++
++#: ../lib/interface.c:730
++#, c-format
++msgid " inet6 addr: %s/%d"
++msgstr " inet6-adr: %s/%d"
++
++#: ../lib/interface.c:732
++#, c-format
++msgid " Scope:"
++msgstr " Rozsah:"
++
++#: ../lib/interface.c:735
++#, c-format
++msgid "Global"
++msgstr "Globl"
++
++#: ../lib/interface.c:738
++#, c-format
++msgid "Link"
++msgstr "Linka"
++
++#: ../lib/interface.c:741
++#, c-format
++msgid "Site"
++msgstr "Stanovit"
++
++#: ../lib/interface.c:744
++#, c-format
++msgid "Compat"
++msgstr "Kompatibilita"
++
++#: ../lib/interface.c:747
++#, c-format
++msgid "Host"
++msgstr "Pota"
++
++#: ../lib/interface.c:750
++#, c-format
++msgid "Unknown"
++msgstr "Neznm."
++
++#: ../lib/interface.c:765
++#, c-format
++msgid " IPX/Ethernet II addr:%s\n"
++msgstr " IPX/Ethernet II adr: %s\n"
++
++#: ../lib/interface.c:768
++#, c-format
++msgid " IPX/Ethernet SNAP addr:%s\n"
++msgstr " IPX/Ethernet SNAP adr:%s\n"
++
++#: ../lib/interface.c:771
++#, c-format
++msgid " IPX/Ethernet 802.2 addr:%s\n"
++msgstr " IPX/Ethernet 802.2 adr:%s\n"
++
++#: ../lib/interface.c:774
++#, c-format
++msgid " IPX/Ethernet 802.3 addr:%s\n"
++msgstr " IPX/Ethernet 802.3 adr:%s\n"
++
++#: ../lib/interface.c:784
++#, c-format
++msgid " EtherTalk Phase 2 addr:%s\n"
++msgstr " EtherTalk Phase 2 adr:%s\n"
++
++#: ../lib/interface.c:793
++#, c-format
++msgid " econet addr:%s\n"
++msgstr " econet adr:%s\n"
++
++# Hic sunt leones ...
++#: ../lib/interface.c:800
++#, c-format
++msgid "[NO FLAGS] "
++msgstr "[DN PZNAKY]"
++
++#: ../lib/interface.c:802
++#, c-format
++msgid "UP "
++msgstr "AKTIVOVNO "
++
++#: ../lib/interface.c:804
++#, c-format
++msgid "BROADCAST "
++msgstr "VESMROV_VYSLN "
++
++#: ../lib/interface.c:806
++#, c-format
++msgid "DEBUG "
++msgstr "DEBUG "
++
++#: ../lib/interface.c:808
++#, c-format
++msgid "LOOPBACK "
++msgstr "SMYKA "
++
++#: ../lib/interface.c:810
++#, c-format
++msgid "POINTOPOINT "
++msgstr "POINTOPOINT "
++
++# ??
++#: ../lib/interface.c:812
++#, c-format
++msgid "NOTRAILERS "
++msgstr "NOTRAILERS "
++
++#: ../lib/interface.c:814
++#, c-format
++msgid "RUNNING "
++msgstr "B̮ "
++
++#: ../lib/interface.c:816
++#, c-format
++msgid "NOARP "
++msgstr "NEARP "
++
++#: ../lib/interface.c:818
++#, c-format
++msgid "PROMISC "
++msgstr "PROMISK "
++
++#: ../lib/interface.c:820
++#, c-format
++msgid "ALLMULTI "
++msgstr "ALLMULTI "
++
++#: ../lib/interface.c:822
++#, c-format
++msgid "SLAVE "
++msgstr "SLAVE "
++
++#: ../lib/interface.c:824
++#, c-format
++msgid "MASTER "
++msgstr "MASTER "
++
++#: ../lib/interface.c:826
++#, c-format
++msgid "MULTICAST "
++msgstr "MULTICAST "
++
++#: ../lib/interface.c:829
++#, c-format
++msgid "DYNAMIC "
++msgstr "DYNAMIC "
++
++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short
++#: ../lib/interface.c:832
++#, c-format
++msgid " MTU:%d Metric:%d"
++msgstr " MTU:%d Metrika:%d"
++
++#: ../lib/interface.c:836
++#, c-format
++msgid " Outfill:%d Keepalive:%d"
++msgstr " Outfill:%d Keepalive:%d"
++
++#: ../lib/interface.c:850
++#, fuzzy, c-format
++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgstr "pijmutch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu rmc:%lu\n"
++
++#: ../lib/interface.c:855
++#, c-format
++msgid " compressed:%lu\n"
++msgstr " komprimovno:%lu\n"
++
++# carrier?
++#: ../lib/interface.c:895
++#, fuzzy, c-format
++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgstr "odeslanch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu penos:%lu\n"
++
++#: ../lib/interface.c:899
++#, c-format
++msgid " collisions:%lu "
++msgstr " koliz:%lu "
++
++#: ../lib/interface.c:901
++#, c-format
++msgid "compressed:%lu "
++msgstr "komprimovno:%lu "
++
++#: ../lib/interface.c:903
++#, c-format
++msgid "txqueuelen:%d "
++msgstr "dlka odchoz fronty:%d "
++
++#: ../lib/interface.c:905
++#, c-format
++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
++msgstr ""
++
++#: ../lib/interface.c:916
++#, c-format
++msgid "Interrupt:%d "
++msgstr "Peruen:%d "
++
++#. Only print devices using it for
++#. I/O maps
++#: ../lib/interface.c:919
++#, c-format
++msgid "Base address:0x%x "
++msgstr "Vstupn/Vstupn port:0x%x "
++
++#: ../lib/interface.c:921
++#, c-format
++msgid "Memory:%lx-%lx "
++msgstr "Pam:%lx-%lx "
++
++#: ../lib/interface.c:924
++#, c-format
++msgid "DMA chan:%x "
++msgstr "Kanl DMA:%x "
++
++#: ../lib/sockets.c:63
++#, c-format
+ msgid "No usable address families found.\n"
+ msgstr "Nebyla nalezena dn pouiteln tda adres.\n"
+
+@@ -2396,29 +3020,32 @@
+ msgid "ip: argument is wrong: %s\n"
+ msgstr "ip: argument %s je nesprvn\n"
+
+-#: ../ipmaddr.c:56
++#: ../ipmaddr.c:61
++#, c-format
+ msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
+ msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ETZEC\n"
+
+-#: ../ipmaddr.c:57
++#: ../ipmaddr.c:62
++#, c-format
+ msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
+ msgstr " ipmaddr show [ dev ETZEC ] [ ipv4 | ipv6 | link | all ]\n"
+
+-#: ../ipmaddr.c:58
++#: ../ipmaddr.c:63
++#, c-format
+ msgid " ipmaddr -V | -version\n"
+ msgstr " ipmaddr -V | -version\n"
+
+-#: ../ipmaddr.c:258
++#: ../ipmaddr.c:263
+ #, c-format
+ msgid "family %d "
+ msgstr "tda %d "
+
+-#: ../ipmaddr.c:267
++#: ../ipmaddr.c:272
+ #, c-format
+ msgid " users %d"
+ msgstr " uivatel %d"
+
+-#: ../ipmaddr.c:353
++#: ../ipmaddr.c:358
+ msgid "Cannot create socket"
+ msgstr "Soket nelze vytvoit"
+
+@@ -2433,6 +3060,7 @@
+ msgstr "slattach: tty_lock: (%s): %s\n"
+
+ #: ../slattach.c:192
++#, c-format
+ msgid "slattach: cannot write PID file\n"
+ msgstr "slattach: do PID souboru nelze zapisovat\n"
+
+@@ -2451,44 +3079,77 @@
+ msgid "slattach: tty_hangup(RAISE): %s\n"
+ msgstr "slattach: tty_hangup(RAISE): %s\n"
+
+-#: ../slattach.c:486
++#: ../slattach.c:468
++#, fuzzy, c-format
++msgid "slattach: tty name too long\n"
++msgstr "jmno %s je pli dlouh\n"
++
++#: ../slattach.c:498
++#, c-format
+ msgid "slattach: tty_open: cannot get current state!\n"
+ msgstr "slattach: tty_open: aktuln stav nelze zjistit!\n"
+
+-#: ../slattach.c:493
++#: ../slattach.c:505
++#, c-format
+ msgid "slattach: tty_open: cannot get current line disc!\n"
+ msgstr "slattach: tty_open: aktuln linkovou disciplnu nelze zjistit!\n"
+
+-#: ../slattach.c:501
++#: ../slattach.c:513
++#, c-format
+ msgid "slattach: tty_open: cannot set RAW mode!\n"
+ msgstr "slattach: tty_open: reim RAW nelze nastavit!\n"
+
+-#: ../slattach.c:508
++#: ../slattach.c:520
+ #, c-format
+ msgid "slattach: tty_open: cannot set %s bps!\n"
+ msgstr "slattach: tty_open: %s bps nelze nastavit!\n"
+
+-#: ../slattach.c:518
++#: ../slattach.c:530
++#, c-format
+ msgid "slattach: tty_open: cannot set 8N1 mode!\n"
+ msgstr "slattach: tty_open: reim 8N1 nelze nastavit!\n"
+
+-#: ../slattach.c:686
++#: ../slattach.c:672
++#, c-format
++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++msgstr ""
++
++#: ../slattach.c:704
+ #, c-format
+ msgid "%s started"
+ msgstr "protokol %s sputn"
+
+-#: ../slattach.c:687
++#: ../slattach.c:705
+ #, c-format
+ msgid " on %s"
+ msgstr " na %s"
+
+-#: ../slattach.c:688
++#: ../slattach.c:706
+ #, c-format
+ msgid " interface %s\n"
+ msgstr " rozhran %s\n"
+
+ #~ msgid ""
+-#~ " This comand can read or set the hostname or the NIS domainname. You can\n"
++#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
++#~ "<-''-\n"
++#~ msgstr ""
++#~ " arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [smask <s>] <-''-\n"
++
++#~ msgid "%s: unknown interface: %s\n"
++#~ msgstr "%s: rozhran %s nen znmo\n"
++
++#~ msgid "address mask replies"
++#~ msgstr "odpovdi na dost o masku podst"
++
++#~ msgid "unknown title %s\n"
++#~ msgstr "titulek %s je neznm\n"
++
++#~ msgid "Routing table for `ddp' not yet supported.\n"
++#~ msgstr "Smrovac tabulka pro `ddp' nen zatm podporovna.\n"
++
++#~ msgid ""
++#~ " This comand can read or set the hostname or the NIS domainname. You "
++#~ "can\n"
+ #~ msgstr ""
+ #~ " Tento program zjiuje a nastavuje jmno potae i NIS domny. Me "
+ #~ "tak\n"
+@@ -2500,7 +3161,8 @@
+ #~ msgid ""
+ #~ " Unless you are using bind or NIS for host lookups you can change the\n"
+ #~ msgstr ""
+-#~ " Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak mete\n"
++#~ " Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak "
++#~ "mete\n"
+
+ #~ msgid ""
+ #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
+--- net-tools-1.60.orig/po/ja.po
++++ net-tools-1.60/po/ja.po
+@@ -0,0 +1,3133 @@
++# Net-tool Japanese locale data
++# Kenshi Muto <kmuto@debian.org>, 2007.
++# Yasuyuki Furukawa <yasu@on.cs.keio.ac.jp>, 1999.
++#
++msgid ""
++msgstr ""
++"Report-Msgid-Bugs-To: \n"
++"POT-Creation-Date: 2007-06-30 12:28+0900\n"
++"PO-Revision-Date: 2007-07-04 20:47+0900\n"
++"Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
++"Language-Team: Japanese\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8-bit\n"
++
++#: ../arp.c:112 ../arp.c:279
++#, c-format
++msgid "arp: need host name\n"
++msgstr "arp: ホスト名が必要です\n"
++
++#: ../arp.c:215 ../arp.c:230
++#, c-format
++msgid "No ARP entry for %s\n"
++msgstr "%sのARPエントリがありません\n"
++
++#: ../arp.c:248
++#, c-format
++msgid "arp: cant get HW-Address for `%s': %s.\n"
++msgstr "arp: '%s'のハードウェアアドレスを取得できません: %s.\n"
++
++#: ../arp.c:252
++#, c-format
++msgid "arp: protocol type mismatch.\n"
++msgstr "arp: プロトコルタイプが適合しません.\n"
++
++#: ../arp.c:261
++#, c-format
++msgid "arp: device `%s' has HW address %s `%s'.\n"
++msgstr "arp: デバイス`%s'はハードウェアアドレス%s `%s'です.\n"
++
++#: ../arp.c:293
++#, c-format
++msgid "arp: need hardware address\n"
++msgstr "arp: ハードウェアアドレスが必要です\n"
++
++#: ../arp.c:301
++#, c-format
++msgid "arp: invalid hardware address\n"
++msgstr "arp: ハードウェアアドレスが不適当です\n"
++
++#: ../arp.c:398
++#, c-format
++msgid "arp: cannot open etherfile %s !\n"
++msgstr "arp: etherファイル%sが開けません!\n"
++
++#: ../arp.c:414
++#, c-format
++msgid "arp: format error on line %u of etherfile %s !\n"
++msgstr "arp: %u行(ファイル%s)にフォーマットエラーがあります!\n"
++
++#: ../arp.c:427
++#, c-format
++msgid "arp: cannot set entry on line %u of etherfile %s !\n"
++msgstr "arp: etherファイル%u行(%s)のエントリを設定できません!\n"
++
++#: ../arp.c:448
++#, c-format
++msgid ""
++"Address HWtype HWaddress Flags Mask "
++"Iface\n"
++msgstr "アドレス HWタイプ HWアドレス フラグ マスク インタフェース\n"
++
++#: ../arp.c:476
++msgid "<from_interface>"
++msgstr "<起点インタフェース>"
++
++#: ../arp.c:478
++msgid "(incomplete)"
++msgstr "(不完全)"
++
++# translatable?
++#: ../arp.c:495
++#, c-format
++msgid "%s (%s) at "
++msgstr "%s (%s) at "
++
++#: ../arp.c:501
++#, c-format
++msgid "<incomplete> "
++msgstr "<不完全> "
++
++#: ../arp.c:507
++#, c-format
++msgid "netmask %s "
++msgstr "ネットマスク %s "
++
++# translatable?
++#: ../arp.c:524
++#, c-format
++msgid "on %s\n"
++msgstr "on %s\n"
++
++#: ../arp.c:605
++#, c-format
++msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
++msgstr "エントリ: %d\tスキップ: %d\t発見: %d\n"
++
++#: ../arp.c:609
++#, c-format
++msgid "%s (%s) -- no entry\n"
++msgstr "%s (%s) -- エントリなし\n"
++
++#: ../arp.c:611
++#, c-format
++msgid "arp: in %d entries no match found.\n"
++msgstr "arp: %dのエントリ中, 一致するものが見つかりません.\n"
++
++#: ../arp.c:626
++#, c-format
++msgid ""
++"Usage:\n"
++" arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
++"cache\n"
++msgstr ""
++"使用法:\n"
++" arp [-vn] [<HW>] [-i <インタフェース>]\n"
++" [-a] [<ホスト名>] ‥‥ ARPキャッシュの表"
++"示\n"
++
++#: ../arp.c:627
++#, c-format
++msgid ""
++" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
++"entry\n"
++msgstr " arp [-v] [-i <インタフェース>] -d <ホスト名> [pub] ‥‥ARPエントリを削除\n"
++
++#: ../arp.c:628
++#, c-format
++msgid ""
++" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
++"file\n"
++msgstr ""
++" arp [-vnD] [<HW>] [-i <インタフェース>] \n"
++" -f <ファイル名> ‥‥ファイルからエントリを追加\n"
++
++#: ../arp.c:629
++#, c-format
++msgid ""
++" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
++"entry\n"
++msgstr ""
++" arp [-v] [<HW>] [-i <インタフェース>]\n"
++" -s <ホスト名> <ハードウェアアドレス> [temp] ‥‥エントリを追加\n"
++
++# FIXME:What does '' mean?
++#: ../arp.c:630
++#, c-format
++msgid ""
++" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
++"<-''-\n"
++"\n"
++msgstr ""
++" arp [-v] [<HW>] [-i <インタフェース>] -Ds <ホスト名>\n"
++" <インタフェース> [netmask <ネットマスク>] pub ‥‥ 〃\n"
++
++#: ../arp.c:632
++#, c-format
++msgid ""
++" -a display (all) hosts in alternative (BSD) "
++"style\n"
++msgstr ""
++" -a 新しい(BSD)スタイルでエントリされた全ホストを表示"
++"する\n"
++
++#: ../arp.c:633
++#, c-format
++msgid " -s, --set set a new ARP entry\n"
++msgstr " -s, --set 新規ARPエントリを設定する\n"
++
++#: ../arp.c:634
++#, c-format
++msgid " -d, --delete delete a specified entry\n"
++msgstr " -d, --delete 指定エントリを削除する\n"
++
++#: ../arp.c:635 ../netstat.c:1503 ../route.c:86
++#, c-format
++msgid " -v, --verbose be verbose\n"
++msgstr " -v, --verbose 詳細表示を行なう\n"
++
++#: ../arp.c:636 ../netstat.c:1504 ../route.c:87
++#, c-format
++msgid " -n, --numeric don't resolve names\n"
++msgstr " -n, --numeric 名前のレゾルブをしない\n"
++
++#: ../arp.c:637
++#, c-format
++msgid ""
++" -i, --device specify network interface (e.g. eth0)\n"
++msgstr " -i, --device ネットワークインタフェースの指定(例 eth0)\n"
++
++#: ../arp.c:638
++#, c-format
++msgid " -D, --use-device read <hwaddr> from given device\n"
++msgstr ""
++" -D, --use-device 与えられたデバイスから\n"
++" <HWアドレス>を読み込む\n"
++
++#: ../arp.c:639
++#, c-format
++msgid " -A, -p, --protocol specify protocol family\n"
++msgstr " -A, -p, --protocol プロトコルファミリを指定する\n"
++
++#: ../arp.c:640
++#, c-format
++msgid ""
++" -f, --file read new entries from file or from /etc/"
++"ethers\n"
++"\n"
++msgstr " -f, --file /etc/ethersファイルから新規エントリを読み込む\n\n"
++
++#: ../arp.c:642 ../rarp.c:182
++#, c-format
++msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
++msgstr " <HW>=ハードウェアアドレスタイプを指定するには'-H <hw>'を使って下さい。標準: %s\n"
++
++#: ../arp.c:643 ../rarp.c:183
++#, c-format
++msgid " List of possible hardware types (which support ARP):\n"
++msgstr " (ARPをサポートした)指定可能なハードウェアタイプのリスト:\n"
++
++#: ../arp.c:677 ../arp.c:762
++#, c-format
++msgid "%s: hardware type not supported!\n"
++msgstr "%s: ハードウェアタイプがサポートされていません!\n"
++
++#: ../arp.c:681
++#, c-format
++msgid "%s: address family not supported!\n"
++msgstr "%s: アドレスファミリがサポートされていません!\n"
++
++#: ../arp.c:716
++#, c-format
++msgid "arp: -N not yet supported.\n"
++msgstr "arp: -Nはまだサポートしていません.\n"
++
++#: ../arp.c:726
++#, c-format
++msgid "arp: %s: unknown address family.\n"
++msgstr "arp: %s: 不明なアドレスファミリです.\n"
++
++#: ../arp.c:735
++#, c-format
++msgid "arp: %s: unknown hardware type.\n"
++msgstr "arp: %s: 不明なハードウェアタイプです.\n"
++
++#: ../arp.c:754
++#, c-format
++msgid "arp: %s: kernel only supports 'inet'.\n"
++msgstr "arp: %s: カーネルは'inet'以外はサポートしていません.\n"
++
++#: ../arp.c:767
++#, c-format
++msgid "arp: %s: hardware type without ARP support.\n"
++msgstr "arp: %s: ARPサポートのないハードウェアタイプです.\n"
++
++#: ../hostname.c:71
++#, c-format
++msgid "Setting nodename to `%s'\n"
++msgstr "ノード名を`%s'へ設定しました\n"
++
++#: ../hostname.c:76
++#, c-format
++msgid "%s: you must be root to change the node name\n"
++msgstr "%s: ノード名の変更はルートでなければなりません\n"
++
++#: ../hostname.c:79 ../hostname.c:99 ../hostname.c:117
++#, c-format
++msgid "%s: name too long\n"
++msgstr "%s: 名前が長すぎます\n"
++
++#: ../hostname.c:91
++#, c-format
++msgid "Setting hostname to `%s'\n"
++msgstr "ホスト名を`%s'へ設定しました\n"
++
++#: ../hostname.c:96
++#, c-format
++msgid "%s: you must be root to change the host name\n"
++msgstr "%s: ホスト名の変更はルートでなければなりません\n"
++
++#: ../hostname.c:109
++#, c-format
++msgid "Setting domainname to `%s'\n"
++msgstr "ドメインを`%s'へ設定しました\n"
++
++#: ../hostname.c:114
++#, c-format
++msgid "%s: you must be root to change the domain name\n"
++msgstr "%s: ドメイン名の変更はルートでなければなりません\n"
++
++#: ../hostname.c:131
++#, c-format
++msgid "Resolving `%s' ...\n"
++msgstr "`%s'をレゾルブ中 ...\n"
++
++#: ../hostname.c:137
++#, c-format
++msgid "Result: h_name=`%s'\n"
++msgstr "結果: h_name=`%s'\n"
++
++#: ../hostname.c:142
++#, c-format
++msgid "Result: h_aliases=`%s'\n"
++msgstr "結果: h_aliases=`%s'\n"
++
++#: ../hostname.c:147
++#, c-format
++msgid "Result: h_addr_list=`%s'\n"
++msgstr "結果: h_addr_list=`%s'\n"
++
++#: ../hostname.c:208
++#, c-format
++msgid "%s: can't open `%s'\n"
++msgstr "%s: `%s'を開けません\n"
++
++#: ../hostname.c:222
++#, c-format
++msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
++msgstr "使用法: hostname [-v] {ホスト名|-F ファイル} (ファイルによる)ホスト名の設定\n"
++
++#: ../hostname.c:223
++#, c-format
++msgid ""
++" domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
++msgstr " domainname [-v] {NISドメイン|-F ファイル} (ファイルによる)NISドメイン名の設定\n"
++
++#: ../hostname.c:225
++#, c-format
++msgid ""
++" nodename [-v] {nodename|-F file} set DECnet node name (from "
++"file)\n"
++msgstr ""
++"nodename [-v] {ノード名|-F ファイル} (ファイルによる)DECnetノード名の設定\n"
++
++#: ../hostname.c:227
++#, c-format
++msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
++msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y] 形式を指定して表示\n"
++
++#: ../hostname.c:228
++#, c-format
++msgid ""
++" hostname [-v] display hostname\n"
++"\n"
++msgstr ""
++" hostname [-v] ホスト名の出力\n"
++"\n"
++
++#: ../hostname.c:229
++#, c-format
++msgid ""
++" hostname -V|--version|-h|--help print info and exit\n"
++"\n"
++msgstr ""
++" hostname -V|--version|-h|--help 諸情報を出力して終了\n"
++"\n"
++"\n"
++
++#: ../hostname.c:230
++#, c-format
++msgid ""
++" dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
++"\n"
++msgstr " dnsdomainname=ホスト名 -d, {yp,nis,}domainname=ホスト名 -y\n\n"
++
++#: ../hostname.c:231
++#, c-format
++msgid " -s, --short short host name\n"
++msgstr " -s, --short 短縮ホスト名\n"
++
++#: ../hostname.c:232
++#, c-format
++msgid " -a, --alias alias names\n"
++msgstr " -a, --alias エイリアス名\n"
++
++#: ../hostname.c:233
++#, c-format
++msgid " -i, --ip-address addresses for the hostname\n"
++msgstr " -i, --ip-address ホスト名に対するアドレス\n"
++
++#: ../hostname.c:234
++#, c-format
++msgid " -f, --fqdn, --long long host name (FQDN)\n"
++msgstr " -f, --fqdn, --long ロングホスト名(FQDN)\n"
++
++#: ../hostname.c:235
++#, c-format
++msgid " -d, --domain DNS domain name\n"
++msgstr " -d, --domain DNSドメイン名\n"
++
++#: ../hostname.c:236
++#, c-format
++msgid " -y, --yp, --nis NIS/YP domainname\n"
++msgstr " -y, --yp, --nis NIS/YPドメイン名\n"
++
++#: ../hostname.c:238
++#, c-format
++msgid " -n, --node DECnet node name\n"
++msgstr " -n, --node DECnetノード名\n"
++
++#: ../hostname.c:240
++#, c-format
++msgid ""
++" -F, --file read hostname or NIS domainname from given file\n"
++"\n"
++msgstr " -F, --file 指定のファイルからホスト名かNISドメイン名を読み込む\n\n"
++
++#: ../hostname.c:242
++#, c-format
++msgid ""
++" This command can read or set the hostname or the NIS domainname. You can\n"
++" also read the DNS domain or the FQDN (fully qualified domain name).\n"
++" Unless you are using bind or NIS for host lookups you can change the\n"
++" FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
++" part of the FQDN) in the /etc/hosts file.\n"
++msgstr ""
++" このコマンドでは、ホスト名またはNISドメイン名を読み込みまたは設定できます。\n"
++" DNSドメインまたはFDN(完全修飾ドメイン名)を読み込むこともできます。\n"
++" ホスト名の参照にBindおよび, NISも使わない場合, /etc/hostsファイルにある\n"
++" FQDNや, (FQDNの一部分の)ドメイン名を変更できます.\n"
++
++#: ../hostname.c:338
++#, c-format
++msgid "%s: You can't change the DNS domain name with this command\n"
++msgstr "%s: このコマンドではDNSドメイン名は変更できません.\n"
++
++#: ../hostname.c:339
++#, c-format
++msgid ""
++"\n"
++"Unless you are using bind or NIS for host lookups you can change the DNS\n"
++msgstr ""
++"\n"
++"ホスト名の参照にBindおよび, NISも使わない場合、/etc/hostsファイル\n"
++
++#: ../hostname.c:340
++#, c-format
++msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
++msgstr "にあるFQDNや, (FQDNの一部分の)ドメイン名を変更できます.\n"
++
++#: ../hostname.c:357
++#, c-format
++msgid "gethostname()=`%s'\n"
++msgstr "gethostname()=`%s'\n"
++
++#: ../hostname.c:374
++#, c-format
++msgid "getdomainname()=`%s'\n"
++msgstr "getdomainname()=`%s'\n"
++
++#: ../hostname.c:389
++#, c-format
++msgid "getnodename()=`%s'\n"
++msgstr "getnodename()=`%s'\n"
++
++#: ../ifconfig.c:107
++#, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n"
++
++#: ../ifconfig.c:129 ../ifconfig.c:161
++#, c-format
++msgid "%s: ERROR while getting interface flags: %s\n"
++msgstr "%s: インタフェースフラグの取得中にエラーが発生しました:%s\n"
++
++#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:771 ../ifconfig.c:862
++#: ../ifconfig.c:973
++#, c-format
++msgid "No support for INET on this system.\n"
++msgstr "INETはこのシステムではサポートされていません.\n"
++
++#: ../ifconfig.c:193
++#, c-format
++msgid "%s: ERROR while testing interface flags: %s\n"
++msgstr "%s: インタフェースフラグのテスト中にエラーが発生しました: %s\n"
++
++#: ../ifconfig.c:202
++#, c-format
++msgid ""
++"Usage:\n"
++" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
++msgstr ""
++"使用法:\n"
++" ifconfig [-a] [-v] [-s] <インタフェース> [[<AF>] <アドレス>]\n"
++
++#: ../ifconfig.c:204
++#, c-format
++msgid " [add <address>[/<prefixlen>]]\n"
++msgstr " [add <アドレス>[/<プレフィックス長>]]\n"
++
++#: ../ifconfig.c:205
++#, c-format
++msgid " [del <address>[/<prefixlen>]]\n"
++msgstr " [del <アドレス>[/<プレフィックス長>]]\n"
++
++#: ../ifconfig.c:206
++#, c-format
++msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
++msgstr " [[-]broadcast [<アドレス>]] [[-]pointopoint [<アドレス>]]\n"
++
++#: ../ifconfig.c:207
++#, c-format
++msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
++msgstr " [netmask <アドレス>] [dstaddr <アドレス>] [tunnel <アドレス>]\n"
++
++#: ../ifconfig.c:210
++#, c-format
++msgid " [outfill <NN>] [keepalive <NN>]\n"
++msgstr " [outfill <数値>] [keepalive <数値>]\n"
++
++#: ../ifconfig.c:212
++#, c-format
++msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
++msgstr " [hw <HW> <アドレス>] [metric <数値>] [mtu <数値>]\n"
++
++#: ../ifconfig.c:213
++#, c-format
++msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
++
++#: ../ifconfig.c:214
++#, c-format
++msgid " [multicast] [[-]promisc]\n"
++msgstr " [multicast] [[-]promisc]\n"
++
++#: ../ifconfig.c:215
++#, c-format
++msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
++msgstr " [mem_start <開始アドレス>] [io_addr <IOアドレス>] [irq <番号>] [media <タイプ>]\n"
++
++#: ../ifconfig.c:217
++#, c-format
++msgid " [txqueuelen <NN>]\n"
++msgstr " [txqueuelen <TXキュー長>]\n"
++
++#: ../ifconfig.c:220
++#, c-format
++msgid " [[-]dynamic]\n"
++msgstr " [[-]dynamic]\n"
++
++#: ../ifconfig.c:222
++#, c-format
++msgid ""
++" [up|down] ...\n"
++"\n"
++msgstr " [up|down] ...\n\n"
++
++#: ../ifconfig.c:224
++#, c-format
++msgid " <HW>=Hardware Type.\n"
++msgstr " <HW>=ハードウェアタイプ.\n"
++
++#: ../ifconfig.c:225
++#, c-format
++msgid " List of possible hardware types:\n"
++msgstr " 利用可能なハードウェアタイプのリスト:\n"
++
++#. 1 = ARPable
++#: ../ifconfig.c:227
++#, c-format
++msgid " <AF>=Address family. Default: %s\n"
++msgstr " <AF>=アドレスファミリ. 標準: %s\n"
++
++#: ../ifconfig.c:228
++#, c-format
++msgid " List of possible address families:\n"
++msgstr " 利用可能なアドレスファミリのリスト:\n"
++
++#: ../ifconfig.c:303
++#, c-format
++msgid "ifconfig: option `%s' not recognised.\n"
++msgstr "ifconfig: オプション`%s'を解釈できません.\n"
++
++#: ../ifconfig.c:305 ../ifconfig.c:962
++#, c-format
++msgid "ifconfig: `--help' gives usage information.\n"
++msgstr "ifconfig: `--help'で使用法を見られます.\n"
++
++#: ../ifconfig.c:380
++#, c-format
++msgid "Unknown media type.\n"
++msgstr "不明なメディアタイプです.\n"
++
++#: ../ifconfig.c:417
++#, c-format
++msgid ""
++"Warning: Interface %s still in promisc mode... maybe other application is "
++"running?\n"
++msgstr "警告: インタフェース%sはまだpromiscモードです...恐らく他のアプリケーションが実行中ではありませんか?\n"
++
++#: ../ifconfig.c:429
++#, c-format
++msgid "Warning: Interface %s still in MULTICAST mode.\n"
++msgstr "警告: インタフェース%sはまだMULTICASTモードです.\n"
++
++#: ../ifconfig.c:441
++#, c-format
++msgid "Warning: Interface %s still in ALLMULTI mode.\n"
++msgstr "警告: インタフェース%sはまだALLMULTIモードです.\n"
++
++#: ../ifconfig.c:465
++#, c-format
++msgid "Warning: Interface %s still in DYNAMIC mode.\n"
++msgstr "警告: インタフェース%sはまだDYNAMICモードです.\n"
++
++#: ../ifconfig.c:523
++#, c-format
++msgid "Warning: Interface %s still in BROADCAST mode.\n"
++msgstr "警告: インタフェース%sはまだBROADCASTモードです.\n"
++
++#: ../ifconfig.c:652
++#, c-format
++msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
++msgstr "警告: インタフェース%sはまだPOINTOPOINTモードです.\n"
++
++#: ../ifconfig.c:684
++#, c-format
++msgid "hw address type `%s' has no handler to set address. failed.\n"
++msgstr "ハードウェアアドレスタイプ`%s'はアドレスを設定するハンドラを持っていません. 失敗しました.\n"
++
++#: ../ifconfig.c:693
++#, c-format
++msgid "%s: invalid %s address.\n"
++msgstr "%s: 不適切なアドレスです(%s).\n"
++
++#: ../ifconfig.c:737 ../ifconfig.c:827 ../ifconfig.c:913
++#, c-format
++msgid "No support for INET6 on this system.\n"
++msgstr "INET6はこのシステムではサポートされていません.\n"
++
++#: ../ifconfig.c:780 ../ifconfig.c:871
++#, c-format
++msgid "Interface %s not initialized\n"
++msgstr "インタフェース%sは初期化されていません.\n"
++
++#: ../ifconfig.c:792 ../ifconfig.c:882
++#, c-format
++msgid "Bad address.\n"
++msgstr "不適切なアドレスです.\n"
++
++#: ../ifconfig.c:885
++#, c-format
++msgid "Address deletion not supported on this system.\n"
++msgstr "アドレス削除はこのシステムではサポートされていません.\n"
++
++#: ../ifconfig.c:957
++#, c-format
++msgid "ifconfig: Cannot set address for this protocol family.\n"
++msgstr "ifconfig:このプロトコルファミリにアドレスを設定できません.\n"
++
++#: ../ifconfig.c:983
++#, c-format
++msgid "No support for ECONET on this system.\n"
++msgstr "ECONETはこのシステムではサポートされていません.\n"
++
++#: ../ifconfig.c:991
++#, c-format
++msgid "Don't know how to set addresses for family %d.\n"
++msgstr "ファミリ%dのアドレスの設定方法が不明です.\n"
++
++#: ../ifconfig.c:1021
++#, c-format
++msgid "WARNING: at least one error occured. (%d)\n"
++msgstr "警告: 少なくとも1つのエラーが発生しました. (%d)\n"
++
++#: ../netstat.c:434
++#, c-format
++msgid ""
++"(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
++msgstr "(\"-p\"の情報を読み込めませんでした: geteuid()=%d しかしルートであるべきです.)\n"
++
++#: ../netstat.c:438
++#, c-format
++msgid ""
++"(Not all processes could be identified, non-owned process info\n"
++" will not be shown, you would have to be root to see it all.)\n"
++msgstr ""
++"(一部のプロセスが識別されますが, 所有していないプロセスの情報は\n"
++"表示されません。それら全てを見るにはルートになる必要があります.)\n"
++
++# translatable?
++#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
++msgid "LISTENING"
++msgstr "LISTENING"
++
++# translatable?
++#: ../netstat.c:446
++msgid "CONN SENT"
++msgstr "CONN SENT"
++
++# translatable?
++#: ../netstat.c:447 ../netstat.c:1268
++msgid "DISC SENT"
++msgstr "DISC SENT"
++
++# translatable?
++#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
++msgid "ESTABLISHED"
++msgstr "ESTABLISHED"
++
++#: ../netstat.c:470
++#, c-format
++msgid "Active NET/ROM sockets\n"
++msgstr "稼働中のNET/ROMソケット\n"
++
++#: ../netstat.c:471
++#, c-format
++msgid ""
++"User Dest Source Device State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "ユーザ 受信先 発信元 デバイス 状態 Vr/Vs 送信-Q 受信-Q\n"
++
++#: ../netstat.c:481 ../netstat.c:1308
++#, c-format
++msgid "Problem reading data from %s\n"
++msgstr "%sからのデータの読み込みに問題\n"
++
++# translatable?
++#: ../netstat.c:516
++msgid "SYN_SENT"
++msgstr "SYN_SENT"
++
++# translatable?
++#: ../netstat.c:517
++msgid "SYN_RECV"
++msgstr "SYN_RECV"
++
++# translatable?
++#: ../netstat.c:518
++msgid "FIN_WAIT1"
++msgstr "FIN_WAIT1"
++
++# translatable?
++#: ../netstat.c:519
++msgid "FIN_WAIT2"
++msgstr "FIN_WAIT2"
++
++# translatable?
++#: ../netstat.c:520
++msgid "TIME_WAIT"
++msgstr "TIME_WAIT"
++
++# translatable?
++#: ../netstat.c:521
++msgid "CLOSE"
++msgstr "CLOSE"
++
++# translatable?
++#: ../netstat.c:522
++msgid "CLOSE_WAIT"
++msgstr "CLOSE_WAIT"
++
++# translatable?
++#: ../netstat.c:523
++msgid "LAST_ACK"
++msgstr "LAST_ACK"
++
++# translatable?
++#: ../netstat.c:524
++msgid "LISTEN"
++msgstr "LISTEN"
++
++# translatable?
++#: ../netstat.c:525
++msgid "CLOSING"
++msgstr "CLOSING"
++
++#: ../netstat.c:596
++#, c-format
++msgid "warning, got bogus igmp6 line %d.\n"
++msgstr "警告, 偽のigmp6ライン%dを得ました.\n"
++
++#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
++#: ../netstat.c:1032 ../netstat.c:1037
++#, c-format
++msgid "netstat: unsupported address family %d !\n"
++msgstr "netstat: サポートしてないアドレスファミリ%dです!\n"
++
++# c-format
++#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
++#, c-format
++msgid "warning, got bogus igmp line %d.\n"
++msgstr "警告, 偽のigmpライン%dを得ました.\n"
++
++#: ../netstat.c:677
++#, c-format
++msgid "Active X.25 sockets\n"
++msgstr "稼働中のX.25ソケット\n"
++
++#. IMHO, Vr/Vs is not very usefull --SF
++#: ../netstat.c:679
++#, c-format
++msgid ""
++"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
++"Q\n"
++msgstr "受信先 発信元 デバイス LCI 状態 Vr/Vs 送信-Q 受信-Q\n"
++
++#: ../netstat.c:759
++#, c-format
++msgid "warning, got bogus tcp line.\n"
++msgstr "警告, 偽のTCPラインを得ました.\n"
++
++#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
++#, c-format
++msgid "off (0.00/%ld/%d)"
++msgstr "オフ (0.00/%ld/%d)"
++
++#: ../netstat.c:804
++#, c-format
++msgid "on (%2.2f/%ld/%d)"
++msgstr "オン (%2.2f/%ld/%d)"
++
++#: ../netstat.c:809
++#, c-format
++msgid "keepalive (%2.2f/%ld/%d)"
++msgstr "キープアライブ (%2.2f/%ld/%d)"
++
++#: ../netstat.c:814
++#, c-format
++msgid "timewait (%2.2f/%ld/%d)"
++msgstr "時間待ち (%2.2f/%ld/%d)"
++
++#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
++#, c-format
++msgid "unkn-%d (%2.2f/%ld/%d)"
++msgstr "不明-%d (%2.2f/%ld/%d)"
++
++#: ../netstat.c:894
++#, c-format
++msgid "warning, got bogus udp line.\n"
++msgstr "警告, 偽のUDPラインを得ました.\n"
++
++#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
++msgid "UNKNOWN"
++msgstr "不明"
++
++#: ../netstat.c:958 ../netstat.c:1080
++#, c-format
++msgid "on%d (%2.2f/%ld/%d)"
++msgstr "オン%d (%2.2f/%ld/%d)"
++
++#: ../netstat.c:1046
++#, c-format
++msgid "warning, got bogus raw line.\n"
++msgstr "警告, 偽のRawラインを得ました.\n"
++
++#: ../netstat.c:1128
++#, c-format
++msgid "warning, got bogus unix line.\n"
++msgstr "警告, 偽のunixラインを得ました.\n"
++
++# translatable?
++#: ../netstat.c:1155
++msgid "STREAM"
++msgstr "STREAM"
++
++# translatable?
++#: ../netstat.c:1159
++msgid "DGRAM"
++msgstr "DGRAM"
++
++# translatable?
++#: ../netstat.c:1163
++msgid "RAW"
++msgstr "RAW"
++
++# translatable?
++#: ../netstat.c:1167
++msgid "RDM"
++msgstr "RDM"
++
++# translatable?
++#: ../netstat.c:1171
++msgid "SEQPACKET"
++msgstr "SEQPACKET"
++
++# translatable?
++#: ../netstat.c:1180
++msgid "FREE"
++msgstr "FREE"
++
++# translatable?
++#: ../netstat.c:1196
++msgid "CONNECTING"
++msgstr "CONNECTING"
++
++# translatable?
++#: ../netstat.c:1200
++msgid "CONNECTED"
++msgstr "CONNECTED"
++
++# translatable?
++#: ../netstat.c:1204
++msgid "DISCONNECTING"
++msgstr "DISCONNECTING"
++
++#: ../netstat.c:1235
++#, c-format
++msgid "Active UNIX domain sockets "
++msgstr "稼働中のUNIXドメインソケット "
++
++#: ../netstat.c:1237 ../netstat.c:1756
++#, c-format
++msgid "(servers and established)"
++msgstr "(サーバと確立)"
++
++#: ../netstat.c:1240 ../netstat.c:1759
++#, c-format
++msgid "(only servers)"
++msgstr "(サーバのみ)"
++
++#: ../netstat.c:1242 ../netstat.c:1761
++#, c-format
++msgid "(w/o servers)"
++msgstr "(w/oサーバ)"
++
++#: ../netstat.c:1245
++#, c-format
++msgid ""
++"\n"
++"Proto RefCnt Flags Type State I-Node"
++msgstr ""
++"\n"
++"Proto RefCnt フラグ タイプ 状態 Iノード"
++
++#: ../netstat.c:1247
++#, c-format
++msgid " Path\n"
++msgstr " パス\n"
++
++# translatable?
++#: ../netstat.c:1267
++msgid "SABM SENT"
++msgstr "SABM SENT"
++
++# translatable?
++#: ../netstat.c:1270
++msgid "RECOVERY"
++msgstr "RECOVERY"
++
++#: ../netstat.c:1284
++#, c-format
++msgid "Active AX.25 sockets\n"
++msgstr "稼働中のAX.25ソケット\n"
++
++#: ../netstat.c:1285
++#, c-format
++msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
++msgstr "受信先 発信元 デバイス 状態 Vr/Vs 送信-Q 受信-Q\n"
++
++#: ../netstat.c:1328
++#, c-format
++msgid "problem reading data from %s\n"
++msgstr "%sからのデータ読み込み中に問題\n"
++
++#: ../netstat.c:1379
++#, c-format
++msgid ""
++"Active IPX sockets\n"
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State"
++msgstr ""
++"稼働中のIPXソケット\n"
++"Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状"
++"態"
++
++#: ../netstat.c:1381
++#, c-format
++msgid " User"
++msgstr " ユーザ"
++
++# translatable?
++#: ../netstat.c:1415
++msgid "ESTAB"
++msgstr "ESTAB"
++
++# translatable?
++#: ../netstat.c:1423
++msgid "UNK."
++msgstr "UNK."
++
++#: ../netstat.c:1461
++#, c-format
++msgid "Kernel Interface table\n"
++msgstr "カーネルインタフェーステーブル\n"
++
++#: ../netstat.c:1465
++#, c-format
++msgid ""
++"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
++"Flg\n"
++msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR フラグ\n"
++
++#: ../netstat.c:1469
++msgid "missing interface information"
++msgstr "インタフェース情報が足りません"
++
++#: ../netstat.c:1492
++#, c-format
++msgid ""
++"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
++"help}\n"
++msgstr ""
++"使用法: netstat [-veenNcCF] [<アドレスファミリ>] -r\n"
++" netstat {-V|--version|-h|--help}\n"
++
++#: ../netstat.c:1493
++#, c-format
++msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
++msgstr " netstat [-vnNcaeol] [<ソケット> ...]\n"
++
++#: ../netstat.c:1494
++#, c-format
++msgid ""
++" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
++"\n"
++msgstr " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n"
++
++#: ../netstat.c:1496
++#, c-format
++msgid " -r, --route display routing table\n"
++msgstr " -r, --routing 経路テーブルの表示\n"
++
++#: ../netstat.c:1497
++#, c-format
++msgid " -i, --interfaces display interface table\n"
++msgstr " -i, --interfaces インタフェーステーブルの表示\n"
++
++#: ../netstat.c:1498
++#, c-format
++msgid " -g, --groups display multicast group memberships\n"
++msgstr " -g, --groups マルチキャスト・グループメンバシップの表示\n"
++
++#: ../netstat.c:1499
++#, c-format
++msgid ""
++" -s, --statistics display networking statistics (like SNMP)\n"
++msgstr ""
++" -s, --statistics (SNMPのように)ネットワーク統計を表示\n"
++
++#: ../netstat.c:1501
++#, c-format
++msgid ""
++" -M, --masquerade display masqueraded connections\n"
++"\n"
++msgstr ""
++" -M, --masquerade マスカレード接続の表示\n"
++"\n"
++
++#: ../netstat.c:1505
++#, c-format
++msgid " --numeric-hosts don't resolve host names\n"
++msgstr " --numeric-hosts ホスト名をレゾルブしない\n"
++
++#: ../netstat.c:1506
++#, c-format
++msgid " --numeric-ports don't resolve port names\n"
++msgstr " --numeric-ports ポート名をレゾルブしない\n"
++
++#: ../netstat.c:1507
++#, c-format
++msgid " --numeric-users don't resolve user names\n"
++msgstr " --numeric-users ユーザ名をレゾルブしない\n"
++
++#: ../netstat.c:1508
++#, c-format
++msgid " -N, --symbolic resolve hardware names\n"
++msgstr " -N, --symbolic ハードウェア名をレゾルブする\n"
++
++#: ../netstat.c:1509 ../route.c:88
++#, c-format
++msgid " -e, --extend display other/more information\n"
++msgstr " -e, --extend 他の情報や多くの情報を表示する\n"
++
++#: ../netstat.c:1510
++#, c-format
++msgid " -p, --programs display PID/Program name for sockets\n"
++msgstr " -p, --programs ソケットのPID/プログラム名を表示する\n"
++
++#: ../netstat.c:1511
++#, c-format
++msgid ""
++" -c, --continuous continuous listing\n"
++"\n"
++msgstr ""
++" -c, --continous 継続的な表示\n"
++"\n"
++
++#: ../netstat.c:1512
++#, c-format
++msgid " -l, --listening display listening server sockets\n"
++msgstr " -l, --listening サーバのlistenソケットの表示\n"
++
++#: ../netstat.c:1513
++#, c-format
++msgid ""
++" -a, --all, --listening display all sockets (default: connected)\n"
++msgstr " -a, --all, --listening 全ての情報を表示 (標準: connected)\n"
++
++#: ../netstat.c:1514
++#, c-format
++msgid " -o, --timers display timers\n"
++msgstr " -o, --timers タイマの表示\n"
++
++#: ../netstat.c:1515 ../route.c:89
++#, c-format
++msgid ""
++" -F, --fib display Forwarding Information Base "
++"(default)\n"
++msgstr " -F, --fib フォワード情報ベースを表示する(標準)\n"
++
++#: ../netstat.c:1516 ../route.c:90
++#, c-format
++msgid ""
++" -C, --cache display routing cache instead of FIB\n"
++"\n"
++msgstr " -C, --cache FIBのかわりに経路キャッシュを表示する\n\n"
++
++#: ../netstat.c:1518
++#, c-format
++msgid ""
++" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
++msgstr ""
++" <ソケット>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
++"netrom\n"
++
++#: ../netstat.c:1519
++#, c-format
++msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>='-6|-4'または'-A <af>'または'--<af>'を利用; 標準: %s\n"
++
++#: ../netstat.c:1520 ../route.c:93
++#, c-format
++msgid " List of possible address families (which support routing):\n"
++msgstr " (ルーティングをサポートした)利用可能なアドレスファミリのリスト:\n"
++
++#: ../netstat.c:1753
++#, c-format
++msgid "Active Internet connections "
++msgstr "稼働中のインターネット接続 "
++
++#: ../netstat.c:1763
++#, c-format
++msgid ""
++"\n"
++"Proto Recv-Q Send-Q Local Address Foreign Address "
++"State "
++msgstr ""
++"\n"
++"Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状"
++"態 "
++
++#: ../netstat.c:1765
++#, c-format
++msgid " User Inode "
++msgstr " ユーザ Iノード "
++
++#: ../netstat.c:1768
++#, c-format
++msgid " Timer"
++msgstr "タイマ"
++
++#: ../netstat.c:1798
++#, c-format
++msgid "IPv4 Group Memberships\n"
++msgstr "IPv4グループメンバシップ\n"
++
++#: ../netstat.c:1799
++#, c-format
++msgid "Interface RefCnt Group\n"
++msgstr "インタフェース 参照Cnt グループ\n"
++
++#: ../rarp.c:44
++msgid "This kernel does not support RARP.\n"
++msgstr "このカーネルはRARPをサポートしていません.\n"
++
++#: ../rarp.c:83
++#, c-format
++msgid "no RARP entry for %s.\n"
++msgstr "%sのRARPエントリがありません.\n"
++
++#: ../rarp.c:96
++#, c-format
++msgid "%s: bad hardware address\n"
++msgstr "%s: 不正なハードウェアアドレスです\n"
++
++#: ../rarp.c:128
++#, c-format
++msgid "rarp: cannot open file %s:%s.\n"
++msgstr "rarp: ファイル%sを開けません:%s.\n"
++
++#: ../rarp.c:140
++#, c-format
++msgid "rarp: format error at %s:%u\n"
++msgstr "rarp: %s:%u行にフォーマットエラーがあります\n"
++
++#: ../rarp.c:144 ../rarp.c:289
++#, c-format
++msgid "rarp: %s: unknown host\n"
++msgstr "rarp: %s: 不明なホストです\n"
++
++#: ../rarp.c:147
++#, c-format
++msgid "rarp: cannot set entry from %s:%u\n"
++msgstr "rarp: %s:%u行からエントリを設定できません\n"
++
++#: ../rarp.c:176
++#, c-format
++msgid "Usage: rarp -a list entries in cache.\n"
++msgstr ""
++"使用法: rarp -a キャッシュエントリの表示.\n"
++
++#: ../rarp.c:177
++#, c-format
++msgid " rarp -d <hostname> delete entry from cache.\n"
++msgstr ""
++" rarp -d <ホスト名> キャッシュからエントリを削除す"
++"る.\n"
++
++#: ../rarp.c:178
++#, c-format
++msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
++msgstr ""
++" rarp [<HW>] -s <ホスト名> <ハードウェアアドレス>\n"
++" キャッシュへエントリを追加.\n"
++
++#: ../rarp.c:179
++#, c-format
++msgid ""
++" rarp -f add entries from /etc/ethers.\n"
++msgstr ""
++" rarp -f /etc/ethersからエントリ追加.\n"
++
++#: ../rarp.c:180
++#, c-format
++msgid ""
++" rarp -V display program version.\n"
++"\n"
++msgstr " rarp -V バージョン情報の出力.\n"
++
++#: ../rarp.c:238
++#, c-format
++msgid "%s: illegal option mix.\n"
++msgstr "%s: オプションの組合せが間違っています.\n"
++
++#: ../rarp.c:269
++#, c-format
++msgid "rarp: %s: unknown hardware type.\n"
++msgstr "rarp: %s: ハードウェアタイプが不明です.\n"
++
++#: ../route.c:80
++#, c-format
++msgid ""
++"Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
++msgstr "使用法:route [-nNvee] [-FC] [アドレスファミリ] カーネル経路テーブルの表示.\n"
++
++#: ../route.c:81
++#, c-format
++msgid ""
++" route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
++"\n"
++msgstr ""
++" route [-v] [-FC] {add|del|flush}‥‥\n"
++"\t\t\t\t アドレスファミリの経路テーブルの設定.\n"
++"\n"
++
++#: ../route.c:83
++#, c-format
++msgid ""
++" route {-h|--help} [<AF>] Detailed usage syntax for "
++"specified AF.\n"
++msgstr ""
++" route {-h|--help} [アドレスファミリ]\n"
++" アドレスファミリ特定の文法の説明.\n"
++
++#: ../route.c:84
++#, c-format
++msgid ""
++" route {-V|--version} Display version/author and "
++"exit.\n"
++"\n"
++msgstr " route {-V|--version} バージョン/作者情報の出力と終了.\n\n"
++
++#: ../route.c:92
++#, c-format
++msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
++msgstr " <AF>='-A <af>'または'--<af>'を利用; 標準: %s\n"
++
++#: ../plipconfig.c:66
++#, c-format
++msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
++msgstr "使用法: plipconfig [-a] [-i] [-v] インタフェース\n"
++
++#: ../plipconfig.c:67
++#, c-format
++msgid " [nibble NN] [trigger NN]\n"
++msgstr " [nibble 数値] [trigger 数値]\n"
++
++#: ../plipconfig.c:68
++#, c-format
++msgid " plipconfig -V | --version\n"
++msgstr " plipconfig -V | --version\n"
++
++# translatable?
++#: ../plipconfig.c:74
++#, c-format
++msgid "%s\tnibble %lu trigger %lu\n"
++msgstr "%s\tnibble %lu trigger %lu\n"
++
++#: ../iptunnel.c:85
++#, c-format
++msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
++msgstr "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
++
++#: ../iptunnel.c:86
++#, c-format
++msgid ""
++" [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
++msgstr " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
++
++#: ../iptunnel.c:87
++#, c-format
++msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
++msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
++
++#: ../iptunnel.c:88
++#, c-format
++msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
++msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
++
++#: ../iptunnel.c:89
++#, c-format
++msgid ""
++" iptunnel -V | --version\n"
++"\n"
++msgstr " iptunnel -V | --version\n\n"
++
++#: ../iptunnel.c:90
++#, c-format
++msgid "Where: NAME := STRING\n"
++msgstr "意味: NAME := STRING\n"
++
++#: ../iptunnel.c:91
++#, c-format
++msgid " ADDR := { IP_ADDRESS | any }\n"
++msgstr " ADDR := { IP_ADDRESS | any }\n"
++
++#: ../iptunnel.c:92
++#, c-format
++msgid " TOS := { NUMBER | inherit }\n"
++msgstr " TOS := { NUMBER | inherit }\n"
++
++#: ../iptunnel.c:93
++#, c-format
++msgid " TTL := { 1..255 | inherit }\n"
++msgstr " TTL := { 1..255 | inherit }\n"
++
++#: ../iptunnel.c:94
++#, c-format
++msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
++msgstr " KEY := { DOTTED_QUAD | NUMBER }\n"
++
++#: ../iptunnel.c:332
++#, c-format
++msgid "Keys are not allowed with ipip and sit.\n"
++msgstr "キーはipipおよびsitでは許可されません.\n"
++
++#: ../iptunnel.c:352
++#, c-format
++msgid "Broadcast tunnel requires a source address.\n"
++msgstr "ブロードキャストトンネルは発信元アドレスが必要です.\n"
++
++#: ../iptunnel.c:367
++#, c-format
++msgid "ttl != 0 and noptmudisc are incompatible\n"
++msgstr "ttl != 0およびnoptmudiscは矛盾します\n"
++
++#: ../iptunnel.c:379
++#, c-format
++msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
++msgstr "トンネルモードを決定できません(ipip, greまたはsit)\n"
++
++#: ../iptunnel.c:417
++#, c-format
++msgid "%s: %s/ip remote %s local %s "
++msgstr "%s: %s/ip リモート%s ローカル%s "
++
++#: ../iptunnel.c:421
++msgid "unknown"
++msgstr "不明"
++
++# FIXME: what does it mean?
++#: ../iptunnel.c:453
++#, c-format
++msgid " Drop packets out of sequence.\n"
++msgstr " シーケンスから外れたパケットをドロップ.\n"
++
++#: ../iptunnel.c:455
++#, c-format
++msgid " Checksum in received packet is required.\n"
++msgstr " 受信パケットのチェックサムは必須です.\n"
++
++# FIXME: what does it mean?
++#: ../iptunnel.c:457
++#, c-format
++msgid " Sequence packets on output.\n"
++msgstr " 送信のシーケンスパケット.\n"
++
++# FIXME: what does it mean?
++#: ../iptunnel.c:459
++#, c-format
++msgid " Checksum output packets.\n"
++msgstr " 送信パケットのチェックサム.\n"
++
++#: ../iptunnel.c:487
++#, c-format
++msgid "Wrong format of /proc/net/dev. Sorry.\n"
++msgstr "/proc/net/devが不正なフォーマットです. すみません.\n"
++
++#: ../iptunnel.c:500
++#, c-format
++msgid "Failed to get type of [%s]\n"
++msgstr "[%s]のタイプの取得に失敗\n"
++
++#: ../iptunnel.c:516
++#, c-format
++msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
++msgstr "RX: パケット バイト エラー CsumErrs outOfSeq マルチキャスト\n"
++
++#: ../iptunnel.c:519
++#, c-format
++msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
++msgstr "TX: パケット バイト エラー DeadLoop NoRoute バッファなし\n"
++
++#: ../statistics.c:47
++msgid "ICMP input histogram:"
++msgstr "ICMP入力ヒストグラム:"
++
++#: ../statistics.c:48
++msgid "ICMP output histogram:"
++msgstr "ICMP出力ヒストグラム:"
++
++#: ../statistics.c:65
++#, c-format
++msgid "Forwarding is %s"
++msgstr "フォワードは%sです"
++
++#: ../statistics.c:66
++#, c-format
++msgid "Default TTL is %u"
++msgstr "標準TTLは%uです"
++
++#: ../statistics.c:67
++#, c-format
++msgid "%u total packets received"
++msgstr "合計%uパケットを受信"
++
++#: ../statistics.c:68
++#, c-format
++msgid "%u with invalid headers"
++msgstr "不適当なヘッダが%u"
++
++#: ../statistics.c:69
++#, c-format
++msgid "%u with invalid addresses"
++msgstr "不適当なアドレスが%u"
++
++#: ../statistics.c:70
++#, c-format
++msgid "%u forwarded"
++msgstr "%uの転送"
++
++#: ../statistics.c:71
++#, c-format
++msgid "%u with unknown protocol"
++msgstr "%uの不明なプロトコル"
++
++#: ../statistics.c:72
++#, c-format
++msgid "%u incoming packets discarded"
++msgstr "%uの受信パケットを破棄"
++
++#: ../statistics.c:73
++#, c-format
++msgid "%u incoming packets delivered"
++msgstr "%uの受信パケットを配送"
++
++#: ../statistics.c:74
++#, c-format
++msgid "%u requests sent out"
++msgstr "%uの要求を送信"
++
++#. ?
++#: ../statistics.c:75
++#, c-format
++msgid "%u outgoing packets dropped"
++msgstr "%uの送信パケットをドロップ"
++
++#: ../statistics.c:76
++#, c-format
++msgid "%u dropped because of missing route"
++msgstr "不明な経路で%uをドロップ"
++
++#: ../statistics.c:77
++#, c-format
++msgid "%u fragments dropped after timeout"
++msgstr "タイムアウト後に%uのフラグメントをドロップ"
++
++#: ../statistics.c:78
++#, c-format
++msgid "%u reassemblies required"
++msgstr "%uの再構築が必要"
++
++#. ?
++#: ../statistics.c:79
++#, c-format
++msgid "%u packets reassembled ok"
++msgstr "%uパケットの再構築に成功"
++
++#: ../statistics.c:80
++#, c-format
++msgid "%u packet reassembles failed"
++msgstr "%uパケットの再構築に失敗"
++
++#: ../statistics.c:81
++#, c-format
++msgid "%u fragments received ok"
++msgstr "%uフラグメントの受信に成功"
++
++#: ../statistics.c:82
++#, c-format
++msgid "%u fragments failed"
++msgstr "%uフラグメントで失敗"
++
++#: ../statistics.c:83
++#, c-format
++msgid "%u fragments created"
++msgstr "%uフラグメントを生成"
++
++#: ../statistics.c:88
++#, c-format
++msgid "%u ICMP messages received"
++msgstr "%uのICMPメッセージ受信"
++
++#: ../statistics.c:89
++#, c-format
++msgid "%u input ICMP message failed."
++msgstr "%uのICMPメッセージ入力失敗."
++
++#: ../statistics.c:90 ../statistics.c:103
++#, c-format
++msgid "destination unreachable: %u"
++msgstr "送信先到達不可: %u"
++
++#: ../statistics.c:91
++#, c-format
++msgid "timeout in transit: %u"
++msgstr "送信時間オーバ: %u"
++
++#: ../statistics.c:92 ../statistics.c:105
++#, c-format
++msgid "wrong parameters: %u"
++msgstr "謝ったパラメータ: %u"
++
++#. ?
++#: ../statistics.c:93
++#, c-format
++msgid "source quenches: %u"
++msgstr "発信元消滅: %u"
++
++#: ../statistics.c:94
++#, c-format
++msgid "redirects: %u"
++msgstr "リダイレクト: %u"
++
++#: ../statistics.c:95
++#, c-format
++msgid "echo requests: %u"
++msgstr "エコー要求: %u"
++
++#: ../statistics.c:96 ../statistics.c:109
++#, c-format
++msgid "echo replies: %u"
++msgstr "エコー応答: %u"
++
++#: ../statistics.c:97
++#, c-format
++msgid "timestamp request: %u"
++msgstr "タイムスタンプ要求: %u"
++
++#: ../statistics.c:98
++#, c-format
++msgid "timestamp reply: %u"
++msgstr "タイムスタンプ応答: %u"
++
++#: ../statistics.c:99
++#, c-format
++msgid "address mask request: %u"
++msgstr "アドレスマスク要求: %u"
++
++#. ?
++#: ../statistics.c:100 ../statistics.c:113
++#, c-format
++msgid "address mask replies: %u"
++msgstr "アドレスマスク応答: %u"
++
++#. ?
++#: ../statistics.c:101
++#, c-format
++msgid "%u ICMP messages sent"
++msgstr "%uのICMPメッセージ送信"
++
++#: ../statistics.c:102
++#, c-format
++msgid "%u ICMP messages failed"
++msgstr "%uのICMPメッセージ失敗"
++
++#: ../statistics.c:104
++#, c-format
++msgid "time exceeded: %u"
++msgstr "時間切れ: %u"
++
++#. ?
++#: ../statistics.c:106
++#, c-format
++msgid "source quench: %u"
++msgstr "発信元消滅: %u"
++
++#: ../statistics.c:107
++#, c-format
++msgid "redirect: %u"
++msgstr "リダイレクト: %u"
++
++#: ../statistics.c:108
++#, c-format
++msgid "echo request: %u"
++msgstr "エコー要求: %u"
++
++#: ../statistics.c:110
++#, c-format
++msgid "timestamp requests: %u"
++msgstr "タイムスタンプ要求: %u"
++
++#: ../statistics.c:111
++#, c-format
++msgid "timestamp replies: %u"
++msgstr "タイムスタンプ応答: %u"
++
++#: ../statistics.c:112
++#, c-format
++msgid "address mask requests: %u"
++msgstr "アドレスマスク要求: %u"
++
++#: ../statistics.c:118
++#, c-format
++msgid "RTO algorithm is %s"
++msgstr "RTOアルゴリズムは%sです"
++
++#: ../statistics.c:122
++#, c-format
++msgid "%u active connections openings"
++msgstr "%uの能動接続開始"
++
++#: ../statistics.c:123
++#, c-format
++msgid "%u passive connection openings"
++msgstr "%uの受動接続開始"
++
++#: ../statistics.c:124
++#, c-format
++msgid "%u failed connection attempts"
++msgstr "%uの接続試行失敗"
++
++#: ../statistics.c:125
++#, c-format
++msgid "%u connection resets received"
++msgstr "%uの接続リセット受信"
++
++#: ../statistics.c:126
++#, c-format
++msgid "%u connections established"
++msgstr "%uの接続確立"
++
++#: ../statistics.c:127
++#, c-format
++msgid "%u segments received"
++msgstr "%uセグメントの受信"
++
++#: ../statistics.c:128
++#, c-format
++msgid "%u segments send out"
++msgstr "%uセグメントの送信"
++
++#: ../statistics.c:129
++#, c-format
++msgid "%u segments retransmited"
++msgstr "%uセグメントの再転送"
++
++#: ../statistics.c:130
++#, c-format
++msgid "%u bad segments received."
++msgstr "%uの不正セグメント受信."
++
++#: ../statistics.c:131
++#, c-format
++msgid "%u resets sent"
++msgstr "%uのリセット送信"
++
++#: ../statistics.c:136
++#, c-format
++msgid "%u packets received"
++msgstr "%uパケット受信"
++
++#: ../statistics.c:137
++#, c-format
++msgid "%u packets to unknown port received."
++msgstr "不明なポートからの%uパケットの受信."
++
++#: ../statistics.c:138
++#, c-format
++msgid "%u packet receive errors"
++msgstr "%uのパケット受信エラー"
++
++#: ../statistics.c:139
++#, c-format
++msgid "%u packets sent"
++msgstr "%uのパケットを送信"
++
++#: ../statistics.c:144
++#, c-format
++msgid "%u SYN cookies sent"
++msgstr "%uのSYNクッキーを送信"
++
++#: ../statistics.c:145
++#, c-format
++msgid "%u SYN cookies received"
++msgstr "%uのSYNクッキーを受信"
++
++#: ../statistics.c:146
++#, c-format
++msgid "%u invalid SYN cookies received"
++msgstr "%uの不適当なSYNクッキーを受信"
++
++#: ../statistics.c:148
++#, c-format
++msgid "%u resets received for embryonic SYN_RECV sockets"
++msgstr "%uの未完成のSYN_RECVソケットに対するリセットを受信"
++
++#: ../statistics.c:150
++#, c-format
++msgid "%u packets pruned from receive queue because of socket buffer overrun"
++msgstr "%uのパケットをソケットバッファオーバランのため受信キューから除外"
++
++#. obsolete: 2.2.0 doesn't do that anymore
++#: ../statistics.c:153
++#, c-format
++msgid "%u packets pruned from receive queue"
++msgstr "%uのパケットを受信キューから除外"
++
++#: ../statistics.c:154
++#, c-format
++msgid ""
++"%u packets dropped from out-of-order queue because of socket buffer overrun"
++msgstr "%uのパケットがソケットバッファオーバーランのためout-of-orderキューからドロップ"
++
++#: ../statistics.c:156
++#, c-format
++msgid "%u ICMP packets dropped because they were out-of-window"
++msgstr "%uのICMPパケットがout-of-windowのためドロップ"
++
++#: ../statistics.c:158
++#, c-format
++msgid "%u ICMP packets dropped because socket was locked"
++msgstr "%uのICMPパケットをソケットのロックによってドロップ"
++
++# FIXME: what does it mean?
++#: ../statistics.c:160
++#, c-format
++msgid "%u TCP sockets finished time wait in fast timer"
++msgstr "%uのTCPソケットがファーストタイマでの時間待ちを完了"
++
++# FIXME
++#: ../statistics.c:161
++#, c-format
++msgid "%u time wait sockets recycled by time stamp"
++msgstr "%uの時間待ちソケットがタイムスタンプで再利用"
++
++# FIXME
++#: ../statistics.c:162
++#, c-format
++msgid "%u TCP sockets finished time wait in slow timer"
++msgstr "%uのTCPソケットがスロータイマでの時間待ちを完了"
++
++#: ../statistics.c:163
++#, c-format
++msgid "%u passive connections rejected because of time stamp"
++msgstr "%uの受動的接続がタイムスタンプのために拒否"
++
++#: ../statistics.c:165
++#, c-format
++msgid "%u active connections rejected because of time stamp"
++msgstr "%uの能動的接続がタイムスタンプのために拒否"
++
++#: ../statistics.c:167
++#, c-format
++msgid "%u packets rejects in established connections because of timestamp"
++msgstr "%uのパケットがタイムスタンプのために接続確立を拒否"
++
++#: ../statistics.c:169
++#, c-format
++msgid "%u delayed acks sent"
++msgstr "%uの遅延ackを送信"
++
++# FIXME
++#: ../statistics.c:170
++#, c-format
++msgid "%u delayed acks further delayed because of locked socket"
++msgstr "%uの遅延ackがロックされたソケットのためにさらに遅延"
++
++#: ../statistics.c:172
++#, c-format
++msgid "Quick ack mode was activated %u times"
++msgstr "クイックackモードが%u回稼働"
++
++# FIXME
++#: ../statistics.c:173
++#, c-format
++msgid "%u times the listen queue of a socket overflowed"
++msgstr "ソケットのリスンキューが%u回オーバフロー"
++
++# FIXME
++#: ../statistics.c:175
++#, c-format
++msgid "%u SYNs to LISTEN sockets ignored"
++msgstr "%uのソケットリスンSYNが無視"
++
++#: ../statistics.c:176
++#, c-format
++msgid "%u packets directly queued to recvmsg prequeue."
++msgstr "%uパケットをrecvmsgプレキューに直接キュー."
++
++#: ../statistics.c:178
++#, c-format
++msgid "%u of bytes directly received from backlog"
++msgstr "%uバイトをバックログから直接受信"
++
++#: ../statistics.c:180
++#, c-format
++msgid "%u of bytes directly received from prequeue"
++msgstr "%uバイトをプレキューから直接受信"
++
++#: ../statistics.c:182
++#, c-format
++msgid "%u packets dropped from prequeue"
++msgstr "%uのパケットをプレキューからドロップ"
++
++#: ../statistics.c:183
++#, c-format
++msgid "%u packet headers predicted"
++msgstr "%uのパケットヘッダを予測"
++
++#: ../statistics.c:184
++#, c-format
++msgid "%u packets header predicted and directly queued to user"
++msgstr "%uのパケットヘッダを予測してユーザに直接キュー"
++
++#: ../statistics.c:186
++#, c-format
++msgid "Ran %u times out of system memory during packet sending"
++msgstr "%u回のパケット送信中のシステムメモリあふれ"
++
++#: ../statistics.c:188
++#, c-format
++msgid "%u acknowledgments not containing data received"
++msgstr "データを含まない%uの承認の受信"
++
++#: ../statistics.c:189
++#, c-format
++msgid "%u predicted acknowledgments"
++msgstr "%uの予測承認"
++
++#: ../statistics.c:190
++#, c-format
++msgid "%u times recovered from packet loss due to fast retransmit"
++msgstr "高速な再送によるパケットロスの%u回の回復"
++
++#: ../statistics.c:191
++#, c-format
++msgid "%u times recovered from packet loss due to SACK data"
++msgstr "SACKデータによるパケットロスの%u回の回復"
++
++#: ../statistics.c:192
++#, c-format
++msgid "%u bad SACKs received"
++msgstr "%uの不正なSACKを受信"
++
++#: ../statistics.c:193
++#, c-format
++msgid "Detected reordering %u times using FACK"
++msgstr "FACKを使った%u回の検出された並べ替え"
++
++#: ../statistics.c:194
++#, c-format
++msgid "Detected reordering %u times using SACK"
++msgstr "SACKを使った%u回の検出された並べ替え"
++
++#: ../statistics.c:195
++#, c-format
++msgid "Detected reordering %u times using time stamp"
++msgstr "タイムスタンプを使った%u回の検出された並べ替え"
++
++# FIXME:what does it mean?
++#: ../statistics.c:196
++#, c-format
++msgid "Detected reordering %u times using reno fast retransmit"
++msgstr "高速再送を使った%u回の検出された並べ替え"
++
++#: ../statistics.c:197
++#, c-format
++msgid "%u congestion windows fully recovered"
++msgstr "%uの輻輳ウィンドウを完全に回復"
++
++#: ../statistics.c:198
++#, c-format
++msgid "%u congestion windows partially recovered using Hoe heuristic"
++msgstr "Hoeヒューリスティックを使って%uの輻輳ウィンドウを部分的に回復"
++
++#: ../statistics.c:199
++#, c-format
++msgid "%u congestion window recovered using DSACK"
++msgstr "DSACKを使って%uの輻輳ウィンドウを回復"
++
++#: ../statistics.c:200
++#, c-format
++msgid "%u congestion windows recovered after partial ack"
++msgstr "部分ack後に%uの輻輳ウィンドウを回復"
++
++#: ../statistics.c:201
++#, c-format
++msgid "%u retransmits lost"
++msgstr "%uの再送ロスト"
++
++# FIXME
++#: ../statistics.c:202
++#, c-format
++msgid "%u timeouts after reno fast retransmit"
++msgstr "高速再送後の%uのタイムアウト"
++
++#: ../statistics.c:203
++#, c-format
++msgid "%u timeouts after SACK recovery"
++msgstr "SACK復元後の%uのタイムアウト"
++
++#: ../statistics.c:204
++#, c-format
++msgid "%u timeouts in loss state"
++msgstr "状態ロスでの%uのタイムアウト"
++
++#: ../statistics.c:205
++#, c-format
++msgid "%u fast retransmits"
++msgstr "%uの高速再送"
++
++#: ../statistics.c:206
++#, c-format
++msgid "%u forward retransmits"
++msgstr "%uの転送再送"
++
++#: ../statistics.c:207
++#, c-format
++msgid "%u retransmits in slow start"
++msgstr "スロースタートでの%uの再送"
++
++#: ../statistics.c:208
++#, c-format
++msgid "%u other TCP timeouts"
++msgstr "%uのその他のTCPタイムアウト"
++
++# FIXME
++#: ../statistics.c:209
++#, c-format
++msgid "%u reno fast retransmits failed"
++msgstr "%dの高速再送失敗"
++
++#: ../statistics.c:210
++#, c-format
++msgid "%u sack retransmits failed"
++msgstr "%uのsack再送失敗"
++
++# FIXME
++#: ../statistics.c:211
++#, c-format
++msgid "%u times receiver scheduled too late for direct processing"
++msgstr "直接処理には遅すぎるとスケジュールされた%u回のレシーバ"
++
++# FIXME
++#: ../statistics.c:212
++#, c-format
++msgid "%u packets collapsed in receive queue due to low socket buffer"
++msgstr "%uのパケットを低ソケットバッファのために受信キューから除外"
++
++#: ../statistics.c:213
++#, c-format
++msgid "%u DSACKs sent for old packets"
++msgstr "%uのDSACKを古いパケットとして送信"
++
++#: ../statistics.c:214
++#, c-format
++msgid "%u DSACKs sent for out of order packets"
++msgstr "%uのDSACKを順序外パケットとして送信"
++
++#: ../statistics.c:215
++#, c-format
++msgid "%u DSACKs received"
++msgstr "%uのDSACKを受信"
++
++#: ../statistics.c:216
++#, c-format
++msgid "%u DSACKs for out of order packets received"
++msgstr "%uのDSACKを順序外パケットとして受信"
++
++#: ../statistics.c:217
++#, c-format
++msgid "%u connections reset due to unexpected SYN"
++msgstr "予期せぬSYNのために%uの接続をリセット"
++
++#: ../statistics.c:218
++#, c-format
++msgid "%u connections reset due to unexpected data"
++msgstr "予期せぬデータのために%uの接続をリセット"
++
++#: ../statistics.c:219
++#, c-format
++msgid "%u connections reset due to early user close"
++msgstr "早期のユーザのクローズのために%uの接続をリセット"
++
++#: ../statistics.c:220
++#, c-format
++msgid "%u connections aborted due to memory pressure"
++msgstr "メモリの制約のために%uの接続を中止"
++
++#: ../statistics.c:221
++#, c-format
++msgid "%u connections aborted due to timeout"
++msgstr "タイムアウトのために%uの接続を中止"
++
++# FIXME
++#: ../statistics.c:222
++#, c-format
++msgid "%u connections aborted after user close in linger timeout"
++msgstr "ユーザの長期タイムアウトでのクローズ後に%uの接続が中止"
++
++#: ../statistics.c:223
++#, c-format
++msgid "%u times unabled to send RST due to no memory"
++msgstr "メモリ不足のためにRSTの送信が%u回不能"
++
++# FIXME
++#: ../statistics.c:224
++#, c-format
++msgid "TCP ran low on memory %u times"
++msgstr "TCPが少ないメモリで%u回実行"
++
++#: ../statistics.c:225
++#, c-format
++msgid "%u TCP data loss events"
++msgstr "%uのTCPデータがイベントをロス"
++
++#: ../statistics.c:292
++msgid "enabled"
++msgstr "有効"
++
++#: ../statistics.c:292
++msgid "disabled"
++msgstr "無効"
++
++#: ../statistics.c:375
++msgid "error parsing /proc/net/snmp"
++msgstr "/proc/net/snmpの処理中にエラーが発生しました"
++
++#: ../statistics.c:388
++msgid "cannot open /proc/net/snmp"
++msgstr "/proc/net/snmpを開けません"
++
++#: ../lib/activate.c:69
++#, c-format
++msgid "Hardware type `%s' not supported.\n"
++msgstr "ハードウェアタイプ`%s'はサポートされていません.\n"
++
++#: ../lib/activate.c:73
++#, c-format
++msgid "Cannot change line discipline to `%s'.\n"
++msgstr "`%s'のline disciplineを変更できません.\n"
++
++#: ../lib/af.c:153 ../lib/hw.c:161
++msgid "UNSPEC"
++msgstr "不明なネット"
++
++#: ../lib/af.c:155
++msgid "UNIX Domain"
++msgstr "UNIXドメイン"
++
++#: ../lib/af.c:158
++msgid "DARPA Internet"
++msgstr "DARPAインターネット"
++
++#: ../lib/af.c:161
++msgid "IPv6"
++msgstr "IPv6"
++
++#: ../lib/af.c:164 ../lib/hw.c:182
++msgid "AMPR AX.25"
++msgstr "AMPR AX.25"
++
++#: ../lib/af.c:167 ../lib/hw.c:188
++msgid "AMPR NET/ROM"
++msgstr "AMPR NET/ROM"
++
++#: ../lib/af.c:170
++msgid "Novell IPX"
++msgstr "Novell IPX"
++
++#: ../lib/af.c:173
++msgid "Appletalk DDP"
++msgstr "アップルトークDDP"
++
++#: ../lib/af.c:176 ../lib/hw.c:223
++msgid "Econet"
++msgstr "エコネット"
++
++#: ../lib/af.c:179
++msgid "CCITT X.25"
++msgstr "CCITT X.25"
++
++#: ../lib/af.c:182 ../lib/hw.c:185
++msgid "AMPR ROSE"
++msgstr "AMPR ROSE"
++
++#: ../lib/af.c:185 ../lib/hw.c:173
++msgid "Ash"
++msgstr "Ash"
++
++#: ../lib/af.c:243
++#, c-format
++msgid "Please don't supply more than one address family.\n"
++msgstr "複数のアドレスファミリをしないで下さい.\n"
++
++#: ../lib/af.c:304
++#, c-format
++msgid "Too much address family arguments.\n"
++msgstr "アドレスファミリの引数が多すぎます.\n"
++
++#: ../lib/af.c:315
++#, c-format
++msgid "Unknown address family `%s'.\n"
++msgstr "不明なアドレスファミリです `%s'.\n"
++
++#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
++#, c-format
++msgid "in_arcnet(%s): invalid arcnet address!\n"
++msgstr "in_arcnet(%s): 不適当なARCNETアドレスです!\n"
++
++#: ../lib/arcnet.c:97
++#, c-format
++msgid "in_arcnet(%s): trailing : ignored!\n"
++msgstr "in_arcnet(%s): trailing : 無効!\n"
++
++# translatable?
++#: ../lib/arcnet.c:109
++#, c-format
++msgid "in_arcnet(%s): trailing junk!\n"
++msgstr "in_arcnet(%s): trailing junk!\n"
++
++#: ../lib/ash.c:81
++#, c-format
++msgid "Malformed Ash address"
++msgstr "異常なAshアドレスです"
++
++#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
++#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
++#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
++msgid "[NONE SET]"
++msgstr "[設定なし]"
++
++#: ../lib/ax25.c:97 ../lib/netrom.c:100
++msgid "Invalid callsign"
++msgstr "不適当なコールサインです"
++
++#: ../lib/ax25.c:110 ../lib/netrom.c:113
++msgid "Callsign too long"
++msgstr "コールサインが長すぎます"
++
++#: ../lib/ax25_gr.c:47
++#, c-format
++msgid "AX.25 not configured in this system.\n"
++msgstr "AX.25はこのシステムでは設定されていません.\n"
++
++#: ../lib/ax25_gr.c:50
++#, c-format
++msgid "Kernel AX.25 routing table\n"
++msgstr "カーネル AX.25経路テーブル\n"
++
++#. xxx
++#: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
++#, c-format
++msgid "Destination Iface Use\n"
++msgstr "送信先サイト Iface 使用数\n"
++
++#: ../lib/ether.c:74 ../lib/ether.c:91
++#, c-format
++msgid "in_ether(%s): invalid ether address!\n"
++msgstr "in_ether(%s): 不適当なイーサアドレス!\n"
++
++#: ../lib/ether.c:105
++#, c-format
++msgid "in_ether(%s): trailing : ignored!\n"
++msgstr "in_ether(%s): trailing : 無効!\n"
++
++# translatable?
++#: ../lib/ether.c:117
++#, c-format
++msgid "in_ether(%s): trailing junk!\n"
++msgstr "in_ether(%s): trailing junk!\n"
++
++#: ../lib/fddi.c:84 ../lib/fddi.c:99
++#, c-format
++msgid "in_fddi(%s): invalid fddi address!\n"
++msgstr "in_fddi(%s): 不適当なfddiアドレス!\n"
++
++#: ../lib/fddi.c:111
++#, c-format
++msgid "in_fddi(%s): trailing : ignored!\n"
++msgstr "in_fddi(%s): trailing : 無効!\n"
++
++# translatable?
++#: ../lib/fddi.c:123
++#, c-format
++msgid "in_fddi(%s): trailing junk!\n"
++msgstr "in_fddi(%s): trailing junk!\n"
++
++#: ../lib/getroute.c:101 ../lib/setroute.c:80
++#, c-format
++msgid "Address family `%s' not supported.\n"
++msgstr "アドレスファミリ`%s'はサポートされていません.\n"
++
++#: ../lib/getroute.c:107 ../lib/setroute.c:84
++#, c-format
++msgid "No routing for address family `%s'.\n"
++msgstr "アドレスファミリ`%s'への経路が見つかりません.\n"
++
++#: ../lib/hippi.c:84 ../lib/hippi.c:99
++#, c-format
++msgid "in_hippi(%s): invalid hippi address!\n"
++msgstr "in_hippi(%s): 不適当なhippiアドレスです!\n"
++
++#: ../lib/hippi.c:111
++#, c-format
++msgid "in_hippi(%s): trailing : ignored!\n"
++msgstr "in_hippi(%s): trailing : 無効!\n"
++
++# translatable?
++#: ../lib/hippi.c:122
++#, c-format
++msgid "in_hippi(%s): trailing junk!\n"
++msgstr "in_hippi(%s): trailing junk!\n"
++
++#: ../lib/hw.c:160
++msgid "Local Loopback"
++msgstr "ローカルループバック"
++
++#: ../lib/hw.c:163
++msgid "Serial Line IP"
++msgstr "シリアルラインIP"
++
++#: ../lib/hw.c:164
++msgid "VJ Serial Line IP"
++msgstr "VJシリアルラインIP"
++
++#: ../lib/hw.c:165
++msgid "6-bit Serial Line IP"
++msgstr "6ビットシリアルラインIP"
++
++#: ../lib/hw.c:166
++msgid "VJ 6-bit Serial Line IP"
++msgstr "VJ 6ビットシリアルラインIP"
++
++#: ../lib/hw.c:167
++msgid "Adaptive Serial Line IP"
++msgstr "AdaptiveシリアルラインIP"
++
++#: ../lib/hw.c:170
++msgid "Ethernet"
++msgstr "イーサネット"
++
++# translatable?
++#: ../lib/hw.c:176
++msgid "Fiber Distributed Data Interface"
++msgstr "Fiber Distributed Data Interface"
++
++#: ../lib/hw.c:179
++msgid "HIPPI"
++msgstr "HIPPI"
++
++#: ../lib/hw.c:191
++msgid "generic X.25"
++msgstr "ジェネリックX.25"
++
++#: ../lib/hw.c:194
++msgid "IPIP Tunnel"
++msgstr "IPIPトンネル"
++
++#: ../lib/hw.c:197
++msgid "Point-to-Point Protocol"
++msgstr "Point-to-Pointプロトコル"
++
++#: ../lib/hw.c:200
++msgid "(Cisco)-HDLC"
++msgstr "(Cisco)-HDLC"
++
++#: ../lib/hw.c:201
++msgid "LAPB"
++msgstr "LAPB"
++
++#: ../lib/hw.c:204
++msgid "ARCnet"
++msgstr "ARCネット"
++
++#: ../lib/hw.c:207
++msgid "Frame Relay DLCI"
++msgstr "フレームリレーDLCI"
++
++#: ../lib/hw.c:208
++msgid "Frame Relay Access Device"
++msgstr "フレームリレーアクセスデバイス"
++
++#: ../lib/hw.c:211
++msgid "IPv6-in-IPv4"
++msgstr "IPv6-in-IPv4"
++
++#: ../lib/hw.c:214
++msgid "IrLAP"
++msgstr "IrLAP"
++
++#: ../lib/hw.c:217
++msgid "16/4 Mbps Token Ring"
++msgstr "16/4 Mbpsトークンリング"
++
++#: ../lib/hw.c:219
++msgid "16/4 Mbps Token Ring (New)"
++msgstr "16/4 Mbpsトークンリング(新)"
++
++#: ../lib/hw.c:226
++msgid "Generic EUI-64"
++msgstr "ジェネリックEUI-64"
++
++#: ../lib/inet.c:153 ../lib/inet6.c:79
++#, c-format
++msgid "rresolve: unsupport address family %d !\n"
++msgstr "rresolve: アドレスファミリ%dをサポートしていません!\n"
++
++#: ../lib/inet6.c:131
++msgid "[UNKNOWN]"
++msgstr "[不明]"
++
++#: ../lib/inet6_gr.c:71
++#, c-format
++msgid "INET6 (IPv6) not configured in this system.\n"
++msgstr "INET6(IPv6)はこのシステムでは利用できるよう設定されていません.\n"
++
++#: ../lib/inet6_gr.c:74
++#, c-format
++msgid "Kernel IPv6 routing table\n"
++msgstr "カーネルIPv6 経路テーブル\n"
++
++#: ../lib/inet6_gr.c:76
++#, c-format
++msgid ""
++"Destination Next "
++"Hop Flags Metric Ref Use Iface\n"
++msgstr "送信先サイト 次回ホップ フラグ Metric Ref 使用数 インタフェース\n"
++
++#: ../lib/inet6_gr.c:150
++#, c-format
++msgid "Kernel IPv6 Neighbour Cache\n"
++msgstr "カーネルIPv6 近隣ネットワークのキャッシュ\n"
++
++#: ../lib/inet6_gr.c:153
++#, c-format
++msgid ""
++"Neighbour HW Address Iface Flags "
++"Ref State\n"
++msgstr ""
++"近隣サイト ハードウェアアドレス Iface フラグ "
++"Ref 状態\n"
++
++#: ../lib/inet6_gr.c:157
++#, c-format
++msgid ""
++"Neighbour HW Address Iface Flags "
++"Ref State Stale(sec) Delete(sec)\n"
++msgstr ""
++"近隣サイト ハードウェアアドレス Iface フラグ "
++"Ref 状態 Stale[秒] Delete[秒]\n"
++
++#: ../lib/inet6_sr.c:46
++#, c-format
++msgid "Usage: inet6_route [-vF] del Target\n"
++msgstr "使用法: inet6_route [-vF] del ターゲット\n"
++
++#: ../lib/inet6_sr.c:47
++#, c-format
++msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
++msgstr ""
++" inet6_route [-vF] add ターゲット \n"
++" [gw ゲートウェイ] [metric メトリック]\n"
++" [[dev] インタフェース]\n"
++
++#: ../lib/inet6_sr.c:48
++#, c-format
++msgid " inet6_route [-FC] flush NOT supported\n"
++msgstr " inet6_route [-FC] flush サポートしていません\n"
++
++#: ../lib/inet6_sr.c:188
++#, c-format
++msgid "Flushing `inet6' routing table not supported\n"
++msgstr "`inet6'経路テーブルのフラッシュはサポートしていません\n"
++
++#: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
++#, c-format
++msgid "INET (IPv4) not configured in this system.\n"
++msgstr "INET(IPv4)はこのシステムでは利用できるように設定されていません.\n"
++
++#: ../lib/inet_gr.c:53
++#, c-format
++msgid "Kernel IP routing table\n"
++msgstr "カーネルIP経路テーブル\n"
++
++#: ../lib/inet_gr.c:56
++#, c-format
++msgid ""
++"Destination Gateway Genmask Flags Metric Ref Use "
++"Iface\n"
++msgstr "受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 インタフェース\n"
++
++#: ../lib/inet_gr.c:59
++#, c-format
++msgid ""
++"Destination Gateway Genmask Flags MSS Window irtt "
++"Iface\n"
++msgstr "受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インタフェース\n"
++
++#: ../lib/inet_gr.c:62
++#, c-format
++msgid ""
++"Destination Gateway Genmask Flags Metric Ref Use "
++"Iface MSS Window irtt\n"
++msgstr ""
++"受信先サイト ゲートウェイ ネットマスク フラグ Metric Ref 使用数 "
++"Iface MSS Window irtt\n"
++
++#: ../lib/inet_gr.c:237
++#, c-format
++msgid "Kernel IP routing cache\n"
++msgstr "カーネルIP経路キャッシュ\n"
++
++#: ../lib/inet_gr.c:258
++#, c-format
++msgid ""
++"Source Destination Gateway Flags Metric Ref Use "
++"Iface\n"
++msgstr "発信元サイト 受信先サイト ゲートウェイ フラグ Metric Ref 使用数 インタフェース\n"
++
++#: ../lib/inet_gr.c:261
++#, c-format
++msgid ""
++"Source Destination Gateway Flags MSS Window irtt "
++"Iface\n"
++msgstr "発信元サイト 受信先サイト ゲートウェイ フラグ MSS Window irtt インタフェース\n"
++
++#: ../lib/inet_gr.c:266
++#, c-format
++msgid ""
++"Source Destination Gateway Flags Metric Ref Use "
++"Iface MSS Window irtt HH Arp\n"
++msgstr ""
++"発信元サイト 受信先サイト ゲートウェイ フラグ Metric Ref 使用数 "
++"Iface MSS Window irtt HH Arp\n"
++
++#: ../lib/inet_gr.c:290
++#, c-format
++msgid ""
++"Source Destination Gateway Flags Metric Ref Use "
++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
++msgstr ""
++"発信元サイト 受信先サイト ゲートウェイ フラグ Metric Ref 使用数 "
++"Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
++
++#: ../lib/inet_sr.c:51
++#, c-format
++msgid ""
++"Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
++"[[dev] If]\n"
++msgstr ""
++"使用法:inet_route [-vF] del {-host|-net} 受信先[/プレフィックス]\n"
++" [gw ゲートウェイ] [metric メトリック]\n"
++" [[dev] インタフェース]\n"
++
++#: ../lib/inet_sr.c:52
++#, c-format
++msgid ""
++" inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
++msgstr ""
++" inet_route [-vF] add {-host|-net} 受信先[/プレフィックス]\n"
++" [gw ゲートウェイ] [metric メトリック]\n"
++
++#: ../lib/inet_sr.c:53
++#, c-format
++msgid ""
++" [netmask N] [mss Mss] [window W] [irtt I]\n"
++msgstr " [netmask ネットマスク] [mss Mss] [window W] [irtt I]\n"
++
++#: ../lib/inet_sr.c:54
++#, c-format
++msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
++msgstr " [mod] [dyn] [reinstate] [[dev] インタフェース]\n"
++
++#: ../lib/inet_sr.c:55
++#, c-format
++msgid ""
++" inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
++msgstr ""
++" inet_route [-vF] add {-host|-net} 受信先[/プレフィックス]\n"
++" [metric メトリック] reject\n"
++
++#: ../lib/inet_sr.c:56
++#, c-format
++msgid " inet_route [-FC] flush NOT supported\n"
++msgstr " inet_route [-FC] flush サポートしていません\n"
++
++#: ../lib/inet_sr.c:158
++#, c-format
++msgid "route: %s: cannot use a NETWORK as gateway!\n"
++msgstr "route: %s: NETWORKをゲートウェイとして使えません!\n"
++
++#: ../lib/inet_sr.c:174
++#, c-format
++msgid "route: Invalid MSS/MTU.\n"
++msgstr "route: MSS/MTUが不適当です.\n"
++
++#: ../lib/inet_sr.c:187
++#, c-format
++msgid "route: Invalid window.\n"
++msgstr "route: windowが不適当です.\n"
++
++#: ../lib/inet_sr.c:203
++#, c-format
++msgid "route: Invalid initial rtt.\n"
++msgstr "route: 初期rttが不適当です.\n"
++
++#: ../lib/inet_sr.c:261
++#, c-format
++msgid "route: netmask %.8x doesn't make sense with host route\n"
++msgstr "route: ネットマスク%.8xがホスト経路を検出しません\n"
++
++#: ../lib/inet_sr.c:265
++#, c-format
++msgid "route: bogus netmask %s\n"
++msgstr "route: 偽のネットマスク`%s'です\n"
++
++#: ../lib/inet_sr.c:270
++#, c-format
++msgid "route: netmask doesn't match route address\n"
++msgstr "route: ネットマスクが経路アドレスと一致しません\n"
++
++#: ../lib/inet_sr.c:306
++#, c-format
++msgid "Flushing `inet' routing table not supported\n"
++msgstr "`inet'経路テーブルのフラッシュはサポートしていません\n"
++
++#: ../lib/inet_sr.c:310
++#, c-format
++msgid "Modifying `inet' routing cache not supported\n"
++msgstr "`inet'経路テーブルの変更はサポートしていません\n"
++
++#: ../lib/ipx_gr.c:52
++#, c-format
++msgid "IPX not configured in this system.\n"
++msgstr "IPXはこのシステムでは設定されていません.\n"
++
++#: ../lib/ipx_gr.c:56
++#, c-format
++msgid "Kernel IPX routing table\n"
++msgstr "カーネルIPX経路テーブル\n"
++
++#. xxx
++#: ../lib/ipx_gr.c:57
++#, c-format
++msgid "Destination Router Net Router Node\n"
++msgstr "送信先サイト ルータ ネット ルータノード\n"
++
++#: ../lib/ipx_sr.c:33
++#, c-format
++msgid "IPX: this needs to be written\n"
++msgstr "IPX: これは書き込みが必要です\n"
++
++#: ../lib/masq_info.c:198
++#, c-format
++msgid "IP masquerading entries\n"
++msgstr "IPマスカレード エントリ\n"
++
++#: ../lib/masq_info.c:201
++#, c-format
++msgid "prot expire source destination ports\n"
++msgstr "プロト expire 発信元サイト 送信先サイト ポート\n"
++
++#: ../lib/masq_info.c:204
++#, c-format
++msgid ""
++"prot expire initseq delta prevd source "
++"destination ports\n"
++msgstr ""
++"プロト expire 初期seq delta prevd 発信元サイト 受信先サイ"
++"ト ポート\n"
++
++#: ../lib/netrom_gr.c:48
++#, c-format
++msgid "NET/ROM not configured in this system.\n"
++msgstr "NET/ROMはこのシステムでは利用可能なように設定されていません.\n"
++
++#: ../lib/netrom_gr.c:51
++#, c-format
++msgid "Kernel NET/ROM routing table\n"
++msgstr "カーネルNET/ROM経路テーブル\n"
++
++#: ../lib/netrom_gr.c:52
++#, c-format
++msgid "Destination Mnemonic Quality Neighbour Iface\n"
++msgstr "受信先サイト ニーモニック 品質 近隣サイト インタフェース\n"
++
++#: ../lib/netrom_sr.c:34
++#, c-format
++msgid "netrom usage\n"
++msgstr "netrom使用法\n"
++
++#: ../lib/netrom_sr.c:44
++#, c-format
++msgid "NET/ROM: this needs to be written\n"
++msgstr "NET/ROM: これは書き込みが必要です\n"
++
++#: ../lib/ppp.c:44
++#, c-format
++msgid "You cannot start PPP with this program.\n"
++msgstr "このプログラムではPPPを開始できません. \n"
++
++#: ../lib/ppp_ac.c:38
++#, c-format
++msgid "Sorry, use pppd!\n"
++msgstr "申し訳ありませんが, pppdを使って下さい!\n"
++
++#: ../lib/rose.c:87
++msgid "Node address must be ten digits"
++msgstr "ノードアドレスは10進数でなければなりません"
++
++#: ../lib/rose_gr.c:51
++#, c-format
++msgid "ROSE not configured in this system.\n"
++msgstr "ROSEはこのシステムでは利用可能なように設定されていません\n"
++
++#: ../lib/rose_gr.c:54
++#, c-format
++msgid "Kernel ROSE routing table\n"
++msgstr "カーネルROSE経路テーブル\n"
++
++#: ../lib/tr.c:86 ../lib/tr.c:101
++#, c-format
++msgid "in_tr(%s): invalid token ring address!\n"
++msgstr "in_tr(%s): 不適当なトークンリングアドレスです!\n"
++
++#: ../lib/tr.c:113
++#, c-format
++msgid "in_tr(%s): trailing : ignored!\n"
++msgstr "in_tr(%s): trailing : 無効!\n"
++
++# translatable?
++#: ../lib/tr.c:125
++#, c-format
++msgid "in_tr(%s): trailing junk!\n"
++msgstr "in_tr(%s): trailing junk!\n"
++
++#: ../lib/interface.c:176
++#, c-format
++msgid "warning: no inet socket available: %s\n"
++msgstr "警告: Inetソケットは利用できません: %s\n"
++
++#: ../lib/interface.c:325
++#, c-format
++msgid "Warning: cannot open %s (%s). Limited output.\n"
++msgstr "警告: %sを開けません(%s). 限定された出力です.\n"
++
++#. Give better error message for this case.
++#: ../lib/interface.c:571
++msgid "Device not found"
++msgstr "デバイスが見つかりません"
++
++#: ../lib/interface.c:575
++#, c-format
++msgid "%s: error fetching interface information: %s\n"
++msgstr "%s: インタフェース情報を取得中にエラーが発生しました: %s\n"
++
++#: ../lib/interface.c:608
++msgid " - no statistics available -"
++msgstr " - 統計情報を利用できません -"
++
++#: ../lib/interface.c:612
++#, c-format
++msgid "[NO FLAGS]"
++msgstr "[フラグなし]"
++
++#: ../lib/interface.c:688
++#, c-format
++msgid "%-9.9s Link encap:%s "
++msgstr "%-9.9s リンク方法:%s "
++
++#: ../lib/interface.c:693
++#, c-format
++msgid "HWaddr %s "
++msgstr "ハードウェアアドレス %s "
++
++#: ../lib/interface.c:696
++#, c-format
++msgid "Media:%s"
++msgstr "メディア:%s"
++
++#: ../lib/interface.c:698
++#, c-format
++msgid "(auto)"
++msgstr "(自動)"
++
++#: ../lib/interface.c:705
++#, c-format
++msgid " %s addr:%s "
++msgstr " %sアドレス:%s"
++
++#: ../lib/interface.c:708
++#, c-format
++msgid " P-t-P:%s "
++msgstr " P-t-P:%s "
++
++#: ../lib/interface.c:711
++#, c-format
++msgid " Bcast:%s "
++msgstr " ブロードキャスト:%s "
++
++#: ../lib/interface.c:713
++#, c-format
++msgid " Mask:%s\n"
++msgstr " マスク:%s\n"
++
++#: ../lib/interface.c:730
++#, c-format
++msgid " inet6 addr: %s/%d"
++msgstr " inet6アドレス: %s/%d"
++
++#: ../lib/interface.c:732
++#, c-format
++msgid " Scope:"
++msgstr " 範囲:"
++
++#: ../lib/interface.c:735
++#, c-format
++msgid "Global"
++msgstr "グローバル"
++
++#: ../lib/interface.c:738
++#, c-format
++msgid "Link"
++msgstr "リンク"
++
++#: ../lib/interface.c:741
++#, c-format
++msgid "Site"
++msgstr "サイト"
++
++# translatable?
++#: ../lib/interface.c:744
++#, c-format
++msgid "Compat"
++msgstr "Compat"
++
++#: ../lib/interface.c:747
++#, c-format
++msgid "Host"
++msgstr "ホスト"
++
++#: ../lib/interface.c:750
++#, c-format
++msgid "Unknown"
++msgstr "不明"
++
++#: ../lib/interface.c:765
++#, c-format
++msgid " IPX/Ethernet II addr:%s\n"
++msgstr " IPX/イーサネットIIアドレス:%s\n"
++
++#: ../lib/interface.c:768
++#, c-format
++msgid " IPX/Ethernet SNAP addr:%s\n"
++msgstr " IPX/イーサネットSNAPアドレス:%s\n"
++
++#: ../lib/interface.c:771
++#, c-format
++msgid " IPX/Ethernet 802.2 addr:%s\n"
++msgstr " IPX/イーサネット802.2アドレス:%s\n"
++
++#: ../lib/interface.c:774
++#, c-format
++msgid " IPX/Ethernet 802.3 addr:%s\n"
++msgstr " IPX/イーサネット802.3アドレス:%s\n"
++
++#: ../lib/interface.c:784
++#, c-format
++msgid " EtherTalk Phase 2 addr:%s\n"
++msgstr " イーサトーク フェーズ2アドレス:%s\n"
++
++#: ../lib/interface.c:793
++#, c-format
++msgid " econet addr:%s\n"
++msgstr " エコネットアドレス:%s\n"
++
++#: ../lib/interface.c:800
++#, c-format
++msgid "[NO FLAGS] "
++msgstr "[フラグなし]"
++
++# translatable?
++#: ../lib/interface.c:802
++#, c-format
++msgid "UP "
++msgstr "UP "
++
++# translatable?
++#: ../lib/interface.c:804
++#, c-format
++msgid "BROADCAST "
++msgstr "BROADCAST "
++
++# translatable?
++#: ../lib/interface.c:806
++#, c-format
++msgid "DEBUG "
++msgstr "DEBUG "
++
++# translatable?
++#: ../lib/interface.c:808
++#, c-format
++msgid "LOOPBACK "
++msgstr "LOOPBACK "
++
++# translatable?
++#: ../lib/interface.c:810
++#, c-format
++msgid "POINTOPOINT "
++msgstr "POINTOPOINT "
++
++# translatable?
++#: ../lib/interface.c:812
++#, c-format
++msgid "NOTRAILERS "
++msgstr "NOTRAILERS "
++
++# translatable?
++#: ../lib/interface.c:814
++#, c-format
++msgid "RUNNING "
++msgstr "RUNNING "
++
++# translatable?
++#: ../lib/interface.c:816
++#, c-format
++msgid "NOARP "
++msgstr "NOARP "
++
++# translatable?
++#: ../lib/interface.c:818
++#, c-format
++msgid "PROMISC "
++msgstr "PROMISC "
++
++# translatable?
++#: ../lib/interface.c:820
++#, c-format
++msgid "ALLMULTI "
++msgstr "ALLMULTI "
++
++# translatable?
++#: ../lib/interface.c:822
++#, c-format
++msgid "SLAVE "
++msgstr "SLAVE "
++
++# translatable?
++#: ../lib/interface.c:824
++#, c-format
++msgid "MASTER "
++msgstr "MASTER "
++
++# translatable?
++#: ../lib/interface.c:826
++#, c-format
++msgid "MULTICAST "
++msgstr "MULTICAST "
++
++# translatable?
++#: ../lib/interface.c:829
++#, c-format
++msgid "DYNAMIC "
++msgstr "DYNAMIC "
++
++#. DONT FORGET TO ADD THE FLAGS IN ife_print_short
++#: ../lib/interface.c:832
++#, c-format
++msgid " MTU:%d Metric:%d"
++msgstr " MTU:%d メトリック:%d"
++
++# translatable?
++#: ../lib/interface.c:836
++#, c-format
++msgid " Outfill:%d Keepalive:%d"
++msgstr " Outfill:%d キープアライブ:%d"
++
++#: ../lib/interface.c:850
++#, c-format
++msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
++msgstr "RXパケット:%llu エラー:%lu 損失:%lu オーバラン:%lu フレーム:%lu\n"
++
++#: ../lib/interface.c:855
++#, c-format
++msgid " compressed:%lu\n"
++msgstr " 圧縮:%lu\n"
++
++#: ../lib/interface.c:895
++#, c-format
++msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
++msgstr "TXパケット:%llu エラー:%lu 損失:%lu オーバラン:%lu キャリア:%lu\n"
++
++#: ../lib/interface.c:899
++#, c-format
++msgid " collisions:%lu "
++msgstr " 衝突(Collisions):%lu "
++
++#: ../lib/interface.c:901
++#, c-format
++msgid "compressed:%lu "
++msgstr "圧縮:%lu "
++
++#: ../lib/interface.c:903
++#, c-format
++msgid "txqueuelen:%d "
++msgstr "TXキュー長:%d "
++
++#: ../lib/interface.c:905
++#, c-format
++msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
++msgstr "RXバイト:%llu (%lu.%lu %s) TXバイト:%llu (%lu.%lu %s)\n"
++
++#: ../lib/interface.c:916
++#, c-format
++msgid "Interrupt:%d "
++msgstr "割り込み:%d "
++
++#. Only print devices using it for
++#. I/O maps
++#: ../lib/interface.c:919
++#, c-format
++msgid "Base address:0x%x "
++msgstr "ベースアドレス:0x%x "
++
++#: ../lib/interface.c:921
++#, c-format
++msgid "Memory:%lx-%lx "
++msgstr "メモリ:%lx-%lx "
++
++#: ../lib/interface.c:924
++#, c-format
++msgid "DMA chan:%x "
++msgstr "DMAチェイン:%x "
++
++#: ../lib/sockets.c:63
++#, c-format
++msgid "No usable address families found.\n"
++msgstr "利用可能なアドレスファミリが見つかりません.\n"
++
++#: ../lib/util-ank.c:229
++#, c-format
++msgid "ip: %s is invalid inet address\n"
++msgstr "ip: %sは不適切なInetアドレスです.\n"
++
++#: ../lib/util-ank.c:238
++#, c-format
++msgid "ip: %s is invalid inet prefix\n"
++msgstr "ip: %sは不適切なInetプレフィックスです\n"
++
++#: ../lib/util-ank.c:248
++#, c-format
++msgid "ip: %s is invalid IPv4 address\n"
++msgstr "ip: %sは不適切なIPv4アドレスです.\n"
++
++#: ../lib/util-ank.c:256
++#, c-format
++msgid "ip: argument is wrong: %s\n"
++msgstr "ip: 引数が間違っています: %s\n"
++
++#: ../ipmaddr.c:61
++#, c-format
++msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
++msgstr "使用法: ipmaddr [ add | del ] マルチキャストアドレス dev 文字列\n"
++
++#: ../ipmaddr.c:62
++#, c-format
++msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
++msgstr " ipmaddr show [ dev 文字列 ] [ ipv4 | ipv6 | link | all ]\n"
++
++#: ../ipmaddr.c:63
++#, c-format
++msgid " ipmaddr -V | -version\n"
++msgstr " ipmaddr -V | -version\n"
++
++#: ../ipmaddr.c:263
++#, c-format
++msgid "family %d "
++msgstr "ファミリ %d "
++
++#: ../ipmaddr.c:272
++#, c-format
++msgid " users %d"
++msgstr " ユーザ %d"
++
++#: ../ipmaddr.c:358
++msgid "Cannot create socket"
++msgstr "ソケットを作成できません"
++
++#: ../slattach.c:180
++#, c-format
++msgid "slattach: /dev/%s already locked!\n"
++msgstr "slattach: /dev/%s はすでにロックされています!\n"
++
++#: ../slattach.c:186
++#, c-format
++msgid "slattach: tty_lock: (%s): %s\n"
++msgstr "slattach: tty_lock: (%s): %s\n"
++
++#: ../slattach.c:192
++#, c-format
++msgid "slattach: cannot write PID file\n"
++msgstr "slattach: PIDファイルを書き込めません\n"
++
++#: ../slattach.c:202
++#, c-format
++msgid "slattach: tty_lock: UUCP user %s unknown!\n"
++msgstr "slattach: tty_lock: UUCPユーザ%sは不明です!\n"
++
++#: ../slattach.c:430
++#, c-format
++msgid "slattach: tty_hangup(DROP): %s\n"
++msgstr "slattach: tty_hangup(DROP): %s\n"
++
++#: ../slattach.c:437
++#, c-format
++msgid "slattach: tty_hangup(RAISE): %s\n"
++msgstr "slattach: tty_hangup(RAISE): %s\n"
++
++#: ../slattach.c:468
++#, c-format
++msgid "slattach: tty name too long\n"
++msgstr "slattach: tty名が長すぎます\n"
++
++#: ../slattach.c:498
++#, c-format
++msgid "slattach: tty_open: cannot get current state!\n"
++msgstr "slattach: tty_open: 現在の状態を得られません!\n"
++
++#: ../slattach.c:505
++#, c-format
++msgid "slattach: tty_open: cannot get current line disc!\n"
++msgstr "slattach: tty_open: 現在のライン・ディスクを得られません!\n"
++
++#: ../slattach.c:513
++#, c-format
++msgid "slattach: tty_open: cannot set RAW mode!\n"
++msgstr "slattach: tty_open: RAWモードを設定できません!\n"
++
++#: ../slattach.c:520
++#, c-format
++msgid "slattach: tty_open: cannot set %s bps!\n"
++msgstr "slattach: tty_open: %s bpsを設定できません!\n"
++
++#: ../slattach.c:530
++#, c-format
++msgid "slattach: tty_open: cannot set 8N1 mode!\n"
++msgstr "slattach: tty_open: 8N1モードへ設定できません!\n"
++
++#: ../slattach.c:672
++#, c-format
++msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++msgstr "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
++
++#: ../slattach.c:704
++#, c-format
++msgid "%s started"
++msgstr "%sを開始しました"
++
++#: ../slattach.c:705
++#, c-format
++msgid " on %s"
++msgstr "(%s上)"
++
++#: ../slattach.c:706
++#, c-format
++msgid " interface %s\n"
++msgstr " インタフェース %s\n"
+--- net-tools-1.60.orig/ipmaddr.c
++++ net-tools-1.60/ipmaddr.c
+@@ -291,13 +291,15 @@
+ static int multiaddr_list(int argc, char **argv)
+ {
+ struct ma_info *list = NULL;
++ size_t l;
+
+ while (argc > 0) {
+ if (strcmp(*argv, "dev") == 0) {
+ NEXT_ARG();
+- if (filter_dev[0])
++ l = strlen(*argv);
++ if (l <= 0 || l >= sizeof(filter_dev))
+ usage();
+- strcpy(filter_dev, *argv);
++ strncpy(filter_dev, *argv, sizeof (filter_dev));
+ } else if (strcmp(*argv, "all") == 0) {
+ filter_family = AF_UNSPEC;
+ } else if (strcmp(*argv, "ipv4") == 0) {
+@@ -307,9 +309,10 @@
+ } else if (strcmp(*argv, "link") == 0) {
+ filter_family = AF_PACKET;
+ } else {
+- if (filter_dev[0])
++ l = strlen(*argv);
++ if (l <= 0 || l >= sizeof(filter_dev))
+ usage();
+- strcpy(filter_dev, *argv);
++ strncpy(filter_dev, *argv, sizeof (filter_dev));
+ }
+ argv++; argc--;
+ }
+--- net-tools-1.60.orig/Makefile
++++ net-tools-1.60/Makefile
+@@ -76,7 +76,7 @@
+ NET_LIB_PATH = lib
+ NET_LIB_NAME = net-tools
+
+-PROGS := ifconfig hostname arp netstat route rarp slattach plipconfig nameif
++PROGS := ifconfig arp netstat route rarp slattach plipconfig nameif # hostname
+
+ -include config.make
+ ifeq ($(HAVE_IP_TOOLS),1)
+@@ -88,7 +88,7 @@
+
+ # Compiler and Linker Options
+ # You may need to uncomment and edit these if you are using libc5 and IPv6.
+-COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include
++COPTS = -D_GNU_SOURCE -O2 -Wall # -g -I/usr/inet6/include
+ ifeq ($(origin LOPTS), undefined)
+ LOPTS =
+ endif
+@@ -116,6 +116,18 @@
+ CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH)
+ LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH)
+
++INSTALL = install
++INSTALL_PROGRAM = $(INSTALL) -p -o root -g root -m 755
++
++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
++CFLAGS += -g
++endif
++
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++INSTALL_PROGRAM += -s
++endif
++
++
+ SUBDIRS = man/ $(NET_LIB_PATH)/
+
+ ifeq ($(origin CC), undefined)
+@@ -223,29 +235,29 @@
+ installbin:
+ install -m 0755 -d ${BASEDIR}/sbin
+ install -m 0755 -d ${BASEDIR}/bin
+- install -m 0755 arp ${BASEDIR}/sbin
+- install -m 0755 hostname ${BASEDIR}/bin
+- install -m 0755 ifconfig ${BASEDIR}/sbin
+- install -m 0755 nameif ${BASEDIR}/sbin
+- install -m 0755 netstat ${BASEDIR}/bin
+- install -m 0755 plipconfig $(BASEDIR)/sbin
+- install -m 0755 rarp ${BASEDIR}/sbin
+- install -m 0755 route ${BASEDIR}/sbin
+- install -m 0755 slattach $(BASEDIR)/sbin
++ $(INSTALL_PROGRAM) arp ${BASEDIR}/sbin
++# $(INSTALL_PROGRAM) hostname ${BASEDIR}/bin
++ $(INSTALL_PROGRAM) ifconfig ${BASEDIR}/sbin
++ $(INSTALL_PROGRAM) nameif ${BASEDIR}/sbin
++ $(INSTALL_PROGRAM) netstat ${BASEDIR}/bin
++ $(INSTALL_PROGRAM) plipconfig $(BASEDIR)/sbin
++ $(INSTALL_PROGRAM) rarp ${BASEDIR}/sbin
++ $(INSTALL_PROGRAM) route ${BASEDIR}/sbin
++ $(INSTALL_PROGRAM) slattach $(BASEDIR)/sbin
+ ifeq ($(HAVE_IP_TOOLS),1)
+- install -m 0755 ipmaddr $(BASEDIR)/sbin
+- install -m 0755 iptunnel $(BASEDIR)/sbin
++ $(INSTALL_PROGRAM) ipmaddr $(BASEDIR)/sbin
++ $(INSTALL_PROGRAM) iptunnel $(BASEDIR)/sbin
+ endif
+ ifeq ($(HAVE_MII),1)
+- install -m 0755 mii-tool $(BASEDIR)/sbin
+-endif
+- ln -fs hostname $(BASEDIR)/bin/dnsdomainname
+- ln -fs hostname $(BASEDIR)/bin/ypdomainname
+- ln -fs hostname $(BASEDIR)/bin/nisdomainname
+- ln -fs hostname $(BASEDIR)/bin/domainname
+-ifeq ($(HAVE_AFDECnet),1)
+- ln -fs hostname $(BASEDIR)/bin/nodename
++ $(INSTALL_PROGRAM) mii-tool $(BASEDIR)/sbin
+ endif
++# ln -fs hostname $(BASEDIR)/bin/dnsdomainname
++# ln -fs hostname $(BASEDIR)/bin/ypdomainname
++# ln -fs hostname $(BASEDIR)/bin/nisdomainname
++# ln -fs hostname $(BASEDIR)/bin/domainname
++#ifeq ($(HAVE_AFDECnet),1)
++# ln -fs hostname $(BASEDIR)/bin/nodename
++#endif
+
+ savebin:
+ @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \
+--- net-tools-1.60.orig/README
++++ net-tools-1.60/README
+@@ -10,7 +10,7 @@
+ subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
+ netstat, rarp and route. Additionally, this package contains
+ utilities relating to particular network hardware types (plipconfig,
+-slattach) and advanced aspects of IP configuration (iptunnel,
++slattach, mii-tool) and advanced aspects of IP configuration (iptunnel,
+ ipmaddr).
+
+ Please include the output of "program --version" when reporting bugs.
+@@ -24,10 +24,14 @@
+
+ INSTALLING Installation instructions.
+
+- COPYING Your free copy of the GNU Public License.
+-
+ TODO Some things that need to be done.
+
++The Homepage (including CVS repository, release downloads and a form to
++request enhancements) is hosted by BerliOS Developer. Please consider to
++join the project if you want to contribute:
++
++ http://net-tools.berlios.de/
++
+
+ Notes
+ -----
+--- net-tools-1.60.orig/arp.c
++++ net-tools-1.60/arp.c
+@@ -8,7 +8,7 @@
+ * NET-3 Networking Distribution for the LINUX operating
+ * system.
+ *
+- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $
++ * Version: $Id: arp.c,v 1.25 2005/12/04 02:57:15 ecki Exp $
+ *
+ * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
+ *
+@@ -100,9 +100,10 @@
+ {
+ char host[128];
+ struct arpreq req;
+- struct sockaddr sa;
++ struct sockaddr_storage ss;
++ struct sockaddr *sa;
+ int flags = 0;
+- int err;
++ int deleted = 0;
+
+ memset((char *) &req, 0, sizeof(req));
+
+@@ -112,12 +113,13 @@
+ return (-1);
+ }
+ safe_strncpy(host, *args, (sizeof host));
+- if (ap->input(0, host, &sa) < 0) {
++ sa = (struct sockaddr *)&ss;
++ if (ap->input(0, host, sa) < 0) {
+ ap->herror(host);
+ return (-1);
+ }
+ /* If a host has more than one address, use the correct one! */
+- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
+
+ if (hw_set)
+ req.arp_ha.sa_family = hw->type;
+@@ -148,7 +150,7 @@
+ continue;
+ }
+ if (!strcmp(*args, "dontpub")) {
+-#ifdef HAVE_ATF_DONTPUB
++#ifdef ATF_DONTPUB
+ req.arp_flags |= ATF_DONTPUB;
+ #else
+ ENOSUPP("arp", "ATF_DONTPUB");
+@@ -157,7 +159,7 @@
+ continue;
+ }
+ if (!strcmp(*args, "auto")) {
+-#ifdef HAVE_ATF_MAGIC
++#ifdef ATF_MAGIC
+ req.arp_flags |= ATF_MAGIC;
+ #else
+ ENOSUPP("arp", "ATF_MAGIC");
+@@ -177,11 +179,11 @@
+ usage();
+ if (strcmp(*args, "255.255.255.255") != 0) {
+ strcpy(host, *args);
+- if (ap->input(0, host, &sa) < 0) {
++ if (ap->input(0, host, sa) < 0) {
+ ap->herror(host);
+ return (-1);
+ }
+- memcpy((char *) &req.arp_netmask, (char *) &sa,
++ memcpy((char *) &req.arp_netmask, (char *) sa,
+ sizeof(struct sockaddr));
+ req.arp_flags |= ATF_NETMASK;
+ }
+@@ -190,35 +192,41 @@
+ }
+ usage();
+ }
++
++ // if neighter priv nor pub is given, work on both
+ if (flags == 0)
+ flags = 3;
+
+ strcpy(req.arp_dev, device);
+
+- err = -1;
++ /* unfortuatelly the kernel interface does not allow us to
++ delete private entries anlone, so we need this hack
++ to avoid "not found" errors if we try both. */
++ deleted = 0;
+
+ /* Call the kernel. */
+ if (flags & 2) {
+ if (opt_v)
+- fprintf(stderr, "arp: SIOCDARP(nopub)\n");
+- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) {
+- if (errno == ENXIO) {
++ fprintf(stderr, "arp: SIOCDARP(dontpub)\n");
++ if (ioctl(sockfd, SIOCDARP, &req) < 0) {
++ if ((errno == ENXIO) || (errno == ENOENT)) {
+ if (flags & 1)
+- goto nopub;
++ goto dontpub;
+ printf(_("No ARP entry for %s\n"), host);
+ return (-1);
+ }
+- perror("SIOCDARP(priv)");
++ perror("SIOCDARP(dontpub)");
+ return (-1);
+- }
++ } else
++ deleted = 1;
+ }
+- if ((flags & 1) && (err)) {
+- nopub:
++ if (!deleted && (flags & 1)) {
++ dontpub:
+ req.arp_flags |= ATF_PUBL;
+ if (opt_v)
+ fprintf(stderr, "arp: SIOCDARP(pub)\n");
+ if (ioctl(sockfd, SIOCDARP, &req) < 0) {
+- if (errno == ENXIO) {
++ if ((errno == ENXIO) || (errno == ENOENT)) {
+ printf(_("No ARP entry for %s\n"), host);
+ return (-1);
+ }
+@@ -260,7 +268,8 @@
+ {
+ char host[128];
+ struct arpreq req;
+- struct sockaddr sa;
++ struct sockaddr_storage ss;
++ struct sockaddr *sa;
+ int flags;
+
+ memset((char *) &req, 0, sizeof(req));
+@@ -271,12 +280,13 @@
+ return (-1);
+ }
+ safe_strncpy(host, *args++, (sizeof host));
+- if (ap->input(0, host, &sa) < 0) {
++ sa = (struct sockaddr *)&ss;
++ if (ap->input(0, host, sa) < 0) {
+ ap->herror(host);
+ return (-1);
+ }
+ /* If a host has more than one address, use the correct one! */
+- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
++ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
+
+ /* Fetch the hardware address. */
+ if (*args == NULL) {
+@@ -317,7 +327,7 @@
+ continue;
+ }
+ if (!strcmp(*args, "dontpub")) {
+-#ifdef HAVE_ATF_DONTPUB
++#ifdef ATF_DONTPUB
+ flags |= ATF_DONTPUB;
+ #else
+ ENOSUPP("arp", "ATF_DONTPUB");
+@@ -326,7 +336,7 @@
+ continue;
+ }
+ if (!strcmp(*args, "auto")) {
+-#ifdef HAVE_ATF_MAGIC
++#ifdef ATF_MAGIC
+ flags |= ATF_MAGIC;
+ #else
+ ENOSUPP("arp", "ATF_MAGIC");
+@@ -346,11 +356,11 @@
+ usage();
+ if (strcmp(*args, "255.255.255.255") != 0) {
+ strcpy(host, *args);
+- if (ap->input(0, host, &sa) < 0) {
++ if (ap->input(0, host, sa) < 0) {
+ ap->herror(host);
+ return (-1);
+ }
+- memcpy((char *) &req.arp_netmask, (char *) &sa,
++ memcpy((char *) &req.arp_netmask, (char *) sa,
+ sizeof(struct sockaddr));
+ flags |= ATF_NETMASK;
+ }
+@@ -445,11 +455,11 @@
+ strcat(flags, "M");
+ if (arp_flags & ATF_PUBL)
+ strcat(flags, "P");
+-#ifdef HAVE_ATF_MAGIC
++#ifdef ATF_MAGIC
+ if (arp_flags & ATF_MAGIC)
+ strcat(flags, "A");
+ #endif
+-#ifdef HAVE_ATF_DONTPUB
++#ifdef ATF_DONTPUB
+ if (arp_flags & ATF_DONTPUB)
+ strcat(flags, "!");
+ #endif
+@@ -463,7 +473,7 @@
+
+ if (!(arp_flags & ATF_COM)) {
+ if (arp_flags & ATF_PUBL)
+- printf("%-8.8s%-20.20s", "*", "*");
++ printf("%-8.8s%-20.20s", "*", _("<from_interface>"));
+ else
+ printf("%-8.8s%-20.20s", "", _("(incomplete)"));
+ } else {
+@@ -486,7 +496,7 @@
+
+ if (!(arp_flags & ATF_COM)) {
+ if (arp_flags & ATF_PUBL)
+- printf("* ");
++ printf("<from_interface> ");
+ else
+ printf(_("<incomplete> "));
+ } else {
+@@ -499,12 +509,12 @@
+ if (arp_flags & ATF_PERM)
+ printf("PERM ");
+ if (arp_flags & ATF_PUBL)
+- printf("PUP ");
+-#ifdef HAVE_ATF_MAGIC
++ printf("PUB ");
++#ifdef ATF_MAGIC
+ if (arp_flags & ATF_MAGIC)
+ printf("AUTO ");
+ #endif
+-#ifdef HAVE_ATF_DONTPUB
++#ifdef ATF_DONTPUB
+ if (arp_flags & ATF_DONTPUB)
+ printf("DONTPUB ");
+ #endif
+@@ -519,7 +529,8 @@
+ static int arp_show(char *name)
+ {
+ char host[100];
+- struct sockaddr sa;
++ struct sockaddr_storage ss;
++ struct sockaddr *sa;
+ char ip[100];
+ char hwa[100];
+ char mask[100];
+@@ -532,14 +543,15 @@
+
+ host[0] = '\0';
+
++ sa = (struct sockaddr *)&ss;
+ if (name != NULL) {
+ /* Resolve the host name. */
+ safe_strncpy(host, name, (sizeof host));
+- if (ap->input(0, host, &sa) < 0) {
++ if (ap->input(0, host, sa) < 0) {
+ ap->herror(host);
+ return (-1);
+ }
+- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host));
++ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host));
+ }
+ /* Open the PROCps kernel table. */
+ if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) {
+@@ -575,10 +587,10 @@
+ if (opt_n)
+ hostname = "?";
+ else {
+- if (ap->input(0, ip, &sa) < 0)
++ if (ap->input(0, ip, sa) < 0)
+ hostname = ip;
+ else
+- hostname = ap->sprint(&sa, opt_n | 0x8000);
++ hostname = ap->sprint(sa, opt_n | 0x8000);
+ if (strcmp(hostname, ip) == 0)
+ hostname = "?";
+ }
+@@ -612,11 +624,10 @@
+ static void usage(void)
+ {
+ fprintf(stderr, _("Usage:\n arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache\n"));
+- fprintf(stderr, _(" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP entry\n"));
+- fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
+- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add entry\n"));
+- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub <-''-\n"));
+- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n"));
++ fprintf(stderr, _(" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry\n"));
++ fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry\n"));
++ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-''-\n\n"));
+
+ fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n"));
+ fprintf(stderr, _(" -s, --set set a new ARP entry\n"));
+--- net-tools-1.60.orig/config.in
++++ net-tools-1.60/config.in
+@@ -49,16 +49,16 @@
+ *
+ bool 'UNIX protocol family' HAVE_AFUNIX y
+ bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
+-bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
++bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
+ bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
+ bool 'Appletalk DDP protocol family' HAVE_AFATALK y
+ bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
+ bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y
+-bool 'Rose (packet radio) protocol family' HAVE_AFROSE n
++bool 'Rose (packet radio) protocol family' HAVE_AFROSE y
+ bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y
+-bool 'Econet protocol family' HAVE_AFECONET n
++bool 'Econet protocol family' HAVE_AFECONET y
+ bool 'DECnet protocol family' HAVE_AFDECnet n
+-bool 'Ash protocol family' HAVE_AFASH n
++bool 'Ash protocol family' HAVE_AFASH y
+ *
+ *
+ * Device Hardware types.
+@@ -71,21 +71,23 @@
+ bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y
+ bool 'Token ring (generic) support' HAVE_HWTR y
+ bool 'AX25 (packet radio) support' HAVE_HWAX25 y
+-bool 'Rose (packet radio) support' HAVE_HWROSE n
++bool 'Rose (packet radio) support' HAVE_HWROSE y
+ bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y
+ bool 'X.25 (generic) support' HAVE_HWX25 y
+ bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y
+-bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n
+-bool 'FDDI (generic) support' HAVE_HWFDDI n
+-bool 'HIPPI (generic) support' HAVE_HWHIPPI n
+-bool 'Ash hardware support' HAVE_HWASH n
+-bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n
++bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y
++bool 'FDDI (generic) support' HAVE_HWFDDI y
++bool 'HIPPI (generic) support' HAVE_HWHIPPI y
++bool 'Ash hardware support' HAVE_HWASH y
++bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y
+ bool 'IrDA support' HAVE_HWIRDA y
+-bool 'Econet hardware support' HAVE_HWEC n
++bool 'Econet hardware support' HAVE_HWEC y
++bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y
++
+ *
+ *
+ * Other Features.
+ *
+-bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
+-bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
+-bool 'Build mii-tool' HAVE_MII n
++bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
++bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
++bool 'Build mii-tool' HAVE_MII y
+--- net-tools-1.60.orig/hostname.c
++++ net-tools-1.60/hostname.c
+@@ -9,20 +9,19 @@
+ * dnsdmoainname
+ * nisdomainname {name|-F file}
+ *
+- * Version: hostname 1.96 (1996-02-18)
++ * Version: hostname 1.101 (2003-10-11)
+ *
+ * Author: Peter Tobias <tobias@et-inf.fho-emden.de>
+ *
+ * Changes:
+- * {1.90} Peter Tobias : Added -a and -i options.
+- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts
+- * (major rewrite), usage.
+- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/
+- * setdomainname added
+- *960218 {1.96} Bernd Eckenfels : netinet/in.h added
+- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
+- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
++ * {1.90} Peter Tobias : Added -a and -i options.
++ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage.
++ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added
++ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added
++ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
++ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
+ *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale
++ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break)
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+@@ -31,7 +30,9 @@
+ * your option) any later version.
+ */
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <unistd.h>
++#include <stdlib.h>
+ #include <getopt.h>
+ #include <string.h>
+ #include <netdb.h>
+@@ -78,6 +79,7 @@
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+ default:
++ break;
+ }
+ exit(1);
+ }
+@@ -97,7 +99,6 @@
+ case EINVAL:
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+- default:
+ }
+ exit(1);
+ };
+@@ -116,7 +117,6 @@
+ case EINVAL:
+ fprintf(stderr, _("%s: name too long\n"), program_name);
+ break;
+- default:
+ }
+ exit(1);
+ };
+@@ -173,7 +173,6 @@
+ *p = '\0';
+ printf("%s\n", hp->h_name);
+ break;
+- default:
+ }
+ }
+
+@@ -326,11 +325,12 @@
+ break;
+ case 'V':
+ version();
++ break; // not reached
+ case '?':
+ case 'h':
+ default:
+ usage();
+-
++ break; // not reached
+ };
+
+
+--- net-tools-1.60.orig/ifconfig.c
++++ net-tools-1.60/ifconfig.c
+@@ -3,7 +3,7 @@
+ * that either displays or sets the characteristics of
+ * one or more of the system's networking interfaces.
+ *
+- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $
++ * Version: $Id: ifconfig.c,v 1.57 2002/12/10 00:56:41 ecki Exp $
+ *
+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+ * and others. Copyright 1993 MicroWalt Corporation
+@@ -88,7 +88,6 @@
+ char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)";
+
+ int opt_a = 0; /* show all interfaces */
+-int opt_i = 0; /* show the statistics */
+ int opt_v = 0; /* debugging output flag */
+
+ int addr_family = 0; /* currently selected AF */
+@@ -105,7 +104,7 @@
+ int res;
+
+ if (ife_short)
+- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
+
+ if (!ifname) {
+ res = for_all_interfaces(do_if_print, &opt_a);
+@@ -127,7 +126,7 @@
+
+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+ if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
+- fprintf(stderr, _("%s: unknown interface: %s\n"),
++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
+ ifname, strerror(errno));
+ return (-1);
+ }
+@@ -159,7 +158,7 @@
+
+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
+ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
+- fprintf(stderr, _("%s: unknown interface: %s\n"),
++ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
+ ifname, strerror(errno));
+ return -1;
+ }
+@@ -172,9 +171,35 @@
+ return (0);
+ }
+
++/** test is a specified flag is set */
++static int test_flag(char *ifname, short flags)
++{
++ struct ifreq ifr;
++ int fd;
++
++ if (strchr(ifname, ':')) {
++ /* This is a v4 alias interface. Downing it via a socket for
++ another AF may have bad consequences. */
++ fd = get_socket_for_af(AF_INET);
++ if (fd < 0) {
++ fprintf(stderr, _("No support for INET on this system.\n"));
++ return -1;
++ }
++ } else
++ fd = skfd;
++
++ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
++ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
++ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"),
++ ifname, strerror(errno));
++ return -1;
++ }
++ return (ifr.ifr_flags & flags);
++}
++
+ static void usage(void)
+ {
+- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"));
++ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"));
+ #if HAVE_AFINET
+ fprintf(stderr, _(" [add <address>[/<prefixlen>]]\n"));
+ fprintf(stderr, _(" [del <address>[/<prefixlen>]]\n"));
+@@ -208,7 +233,7 @@
+ static void version(void)
+ {
+ fprintf(stderr, "%s\n%s\n", Release, Version);
+- exit(0);
++ exit(E_USAGE);
+ }
+
+ static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa)
+@@ -222,18 +247,19 @@
+ strerror(errno));
+ err = 1;
+ }
+- return 0;
++ return err;
+ }
+
+ int main(int argc, char **argv)
+ {
+ struct sockaddr sa;
++ struct sockaddr samask;
+ struct sockaddr_in sin;
+ char host[128];
+ struct aftype *ap;
+ struct hwtype *hw;
+ struct ifreq ifr;
+- int goterr = 0, didnetmask = 0;
++ int goterr = 0, didnetmask = 0, neednetmask=0;
+ char **spp;
+ int fd;
+ #if HAVE_AFINET6
+@@ -388,6 +414,8 @@
+ }
+ if (!strcmp(*spp, "-promisc")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC);
++ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name);
+ spp++;
+ continue;
+ }
+@@ -398,6 +426,8 @@
+ }
+ if (!strcmp(*spp, "-multicast")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST);
++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name);
+ spp++;
+ continue;
+ }
+@@ -408,6 +438,8 @@
+ }
+ if (!strcmp(*spp, "-allmulti")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI);
++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name);
+ spp++;
+ continue;
+ }
+@@ -430,6 +462,8 @@
+ if (!strcmp(*spp, "-dynamic")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC);
+ spp++;
++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name);
+ continue;
+ }
+ #endif
+@@ -486,6 +520,8 @@
+
+ if (!strcmp(*spp, "-broadcast")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST);
++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name);
+ spp++;
+ continue;
+ }
+@@ -493,7 +529,10 @@
+ if (*++spp != NULL) {
+ safe_strncpy(host, *spp, (sizeof host));
+ if (ap->input(0, host, &sa) < 0) {
+- ap->herror(host);
++ if (ap->herror)
++ ap->herror(host);
++ else
++ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host);
+ goterr = 1;
+ spp++;
+ continue;
+@@ -515,7 +554,10 @@
+ usage();
+ safe_strncpy(host, *spp, (sizeof host));
+ if (ap->input(0, host, &sa) < 0) {
+- ap->herror(host);
++ if (ap->herror)
++ ap->herror(host);
++ else
++ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host);
+ goterr = 1;
+ spp++;
+ continue;
+@@ -535,13 +577,16 @@
+ usage();
+ safe_strncpy(host, *spp, (sizeof host));
+ if (ap->input(0, host, &sa) < 0) {
+- ap->herror(host);
++ if (ap->herror)
++ ap->herror(host);
++ else
++ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host);
+ goterr = 1;
+ spp++;
+ continue;
+ }
+ didnetmask++;
+- goterr = set_netmask(ap->fd, &ifr, &sa);
++ goterr |= set_netmask(ap->fd, &ifr, &sa);
+ spp++;
+ continue;
+ }
+@@ -613,6 +658,8 @@
+ if (!strcmp(*spp, "-pointopoint")) {
+ goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT);
+ spp++;
++ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
++ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name);
+ continue;
+ }
+ if (!strcmp(*spp, "pointopoint")) {
+@@ -620,7 +667,10 @@
+ spp++;
+ safe_strncpy(host, *spp, (sizeof host));
+ if (ap->input(0, host, &sa)) {
+- ap->herror(host);
++ if (ap->herror)
++ ap->herror(host);
++ else
++ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host);
+ goterr = 1;
+ spp++;
+ continue;
+@@ -661,8 +711,12 @@
+ memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa,
+ sizeof(struct sockaddr));
+ if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) {
+- fprintf(stderr, "SIOCSIFHWADDR: %s\n",
+- strerror(errno));
++ if (errno == EBUSY)
++ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n",
++ strerror(errno));
++ else
++ fprintf(stderr, "SIOCSIFHWADDR: %s\n",
++ strerror(errno));
+ goterr = 1;
+ }
+ spp++;
+@@ -681,12 +735,15 @@
+ usage();
+ *cp = 0;
+ } else {
+- prefix_len = 0;
++ prefix_len = 128;
+ }
+ safe_strncpy(host, *spp, (sizeof host));
+ if (inet6_aftype.input(1, host,
+ (struct sockaddr *) &sa6) < 0) {
+- inet6_aftype.herror(host);
++ if (inet6_aftype.herror)
++ inet6_aftype.herror(host);
++ else
++ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host);
+ goterr = 1;
+ spp++;
+ continue;
+@@ -771,7 +828,7 @@
+ usage();
+ *cp = 0;
+ } else {
+- prefix_len = 0;
++ prefix_len = 128;
+ }
+ safe_strncpy(host, *spp, (sizeof host));
+ if (inet6_aftype.input(1, host,
+@@ -800,6 +857,8 @@
+ }
+ ifr6.ifr6_ifindex = ifr.ifr_ifindex;
+ ifr6.ifr6_prefixlen = prefix_len;
++ if (opt_v)
++ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len);
+ if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) {
+ fprintf(stderr, "SIOCDIFADDR: %s\n",
+ strerror(errno));
+@@ -859,7 +918,7 @@
+ usage();
+ *cp = 0;
+ } else {
+- prefix_len = 0;
++ prefix_len = 128;
+ }
+ safe_strncpy(host, *spp, (sizeof host));
+ if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) {
+@@ -903,7 +962,7 @@
+ /* FIXME: sa is too small for INET6 addresses, inet6 should use that too,
+ broadcast is unexpected */
+ if (ap->getmask) {
+- switch (ap->getmask(host, &sa, NULL)) {
++ switch (ap->getmask(host, &samask, NULL)) {
+ case -1:
+ usage();
+ break;
+@@ -911,8 +970,8 @@
+ if (didnetmask)
+ usage();
+
+- goterr = set_netmask(skfd, &ifr, &sa);
+- didnetmask++;
++ // remeber to set the netmask from samask later
++ neednetmask = 1;
+ break;
+ }
+ }
+@@ -921,9 +980,11 @@
+ exit(1);
+ }
+ if (ap->input(0, host, &sa) < 0) {
+- ap->herror(host);
+- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n"));
+- exit(1);
++ if (ap->herror)
++ ap->herror(host);
++ else
++ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr,
++ _("ifconfig: `--help' gives usage information.\n")); exit(1);
+ }
+ memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr));
+ {
+@@ -980,6 +1041,14 @@
+ spp++;
+ }
+
++ if (neednetmask) {
++ goterr |= set_netmask(skfd, &ifr, &samask);
++ didnetmask++;
++ }
++
++ if (opt_v && goterr)
++ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr);
++
+ return (goterr);
+ }
+
+--- net-tools-1.60.orig/netstat.c
++++ net-tools-1.60/netstat.c
+@@ -6,7 +6,7 @@
+ * NET-3 Networking Distribution for the LINUX operating
+ * system.
+ *
+- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $
++ * Version: $Id: netstat.c,v 1.55 2007/12/01 19:00:40 ecki Exp $
+ *
+ * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de>
+ * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
+@@ -94,6 +94,7 @@
+ #include "sockets.h"
+ #include "interface.h"
+ #include "util.h"
++#include "proc.h"
+
+ #define PROGNAME_WIDTH 20
+
+@@ -153,7 +154,7 @@
+ FILE *procinfo;
+
+ #define INFO_GUTS1(file,name,proc) \
+- procinfo = fopen((file), "r"); \
++ procinfo = proc_fopen((file)); \
+ if (procinfo == NULL) { \
+ if (errno != ENOENT) { \
+ perror((file)); \
+@@ -174,7 +175,7 @@
+ #if HAVE_AFINET6
+ #define INFO_GUTS2(file,proc) \
+ lnr = 0; \
+- procinfo = fopen((file), "r"); \
++ procinfo = proc_fopen((file)); \
+ if (procinfo != NULL) { \
+ do { \
+ if (fgets(buffer, sizeof(buffer), procinfo)) \
+@@ -216,7 +217,7 @@
+
+ static struct prg_node {
+ struct prg_node *next;
+- int inode;
++ unsigned long inode;
+ char name[PROGNAME_WIDTH];
+ } *prg_hash[PRG_HASH_SIZE];
+
+@@ -249,7 +250,7 @@
+ /* NOT working as of glibc-2.0.7: */
+ #undef DIRENT_HAVE_D_TYPE_WORKS
+
+-static void prg_cache_add(int inode, char *name)
++static void prg_cache_add(unsigned long inode, char *name)
+ {
+ unsigned hi = PRG_HASHIT(inode);
+ struct prg_node **pnp,*pn;
+@@ -272,7 +273,7 @@
+ strcpy(pn->name,name);
+ }
+
+-static const char *prg_cache_get(int inode)
++static const char *prg_cache_get(unsigned long inode)
+ {
+ unsigned hi=PRG_HASHIT(inode);
+ struct prg_node *pn;
+@@ -295,16 +296,18 @@
+ prg_cache_loaded=0;
+ }
+
+-static void extract_type_1_socket_inode(const char lname[], long * inode_p) {
++static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) {
+
+ /* If lname is of the form "socket:[12345]", extract the "12345"
+ as *inode_p. Otherwise, return -1 as *inode_p.
+ */
+
+- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1;
+- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1;
+- else if (lname[strlen(lname)-1] != ']') *inode_p = -1;
+- else {
++ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1);
++
++ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1);
++ if (lname[strlen(lname)-1] != ']') return(-1);
++
++ {
+ char inode_str[strlen(lname + 1)]; /* e.g. "12345" */
+ const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1;
+ char *serr;
+@@ -313,37 +316,41 @@
+ inode_str[inode_str_len] = '\0';
+ *inode_p = strtol(inode_str,&serr,0);
+ if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
+- *inode_p = -1;
++ return(-1);
+ }
++ return(0);
+ }
+
+
+
+-static void extract_type_2_socket_inode(const char lname[], long * inode_p) {
++static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) {
+
+ /* If lname is of the form "[0000]:12345", extract the "12345"
+ as *inode_p. Otherwise, return -1 as *inode_p.
+ */
+
+- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1;
+- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1;
+- else {
++ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1);
++ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1);
++
++ {
+ char *serr;
+
+ *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0);
+ if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
+- *inode_p = -1;
++ return(-1);
+ }
++ return(0);
+ }
+
+
+
++
+ static void prg_cache_load(void)
+ {
+ char line[LINE_MAX],eacces=0;
+ int procfdlen,fd,cmdllen,lnamelen;
+ char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH];
+- long inode;
++ unsigned long inode;
+ const char *cs,*cmdlp;
+ DIR *dirproc=NULL,*dirfd=NULL;
+ struct dirent *direproc,*direfd;
+@@ -386,11 +393,9 @@
+ lnamelen=readlink(line,lname,sizeof(lname)-1);
+ lname[lnamelen] = '\0'; /*make it a null-terminated string*/
+
+- extract_type_1_socket_inode(lname, &inode);
+-
+- if (inode < 0) extract_type_2_socket_inode(lname, &inode);
+-
+- if (inode < 0) continue;
++ if (extract_type_1_socket_inode(lname, &inode) < 0)
++ if (extract_type_2_socket_inode(lname, &inode) < 0)
++ continue;
+
+ if (!cmdlp) {
+ if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >=
+@@ -450,7 +455,7 @@
+ char buffer[256], dev[16];
+ int st, vs, vr, sendq, recvq, ret;
+
+- f = fopen(_PATH_PROCNET_NR, "r");
++ f = proc_fopen(_PATH_PROCNET_NR);
+ if (f == NULL) {
+ if (errno != ENOENT) {
+ perror(_PATH_PROCNET_NR);
+@@ -527,15 +532,15 @@
+
+ if (flag_exp > 1) {
+ if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL))
+- printf("%-10s ", pw->pw_name);
++ printf(" %-10s ", pw->pw_name);
+ else
+- printf("%-10d ", uid);
+- printf("%-10ld ",inode);
++ printf(" %-10d ", uid);
++ printf("%-10lu ",inode);
+ }
+ if (flag_prg)
+- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode));
++ printf(" %-16s",prg_cache_get(inode));
+ if (flag_opt)
+- printf("%s", timers);
++ printf(" %s", timers);
+ putchar('\n');
+ }
+
+@@ -646,7 +651,7 @@
+ #if HAVE_AFX25
+ static int x25_info(void)
+ {
+- FILE *f=fopen(_PATH_PROCNET_X25, "r");
++ FILE *f=proc_fopen(_PATH_PROCNET_X25);
+ char buffer[256],dev[16];
+ int st,vs,vr,sendq,recvq,lci;
+ static char *x25_state[5]=
+@@ -657,7 +662,7 @@
+ "ESTABLISHED",
+ "RECOVERY"
+ };
+- if(!(f=fopen(_PATH_PROCNET_X25, "r")))
++ if(!(f=proc_fopen(_PATH_PROCNET_X25)))
+ {
+ if (errno != ENOENT) {
+ perror(_PATH_PROCNET_X25);
+@@ -705,6 +710,7 @@
+ unsigned long rxq, txq, time_len, retr, inode;
+ int num, local_port, rem_port, d, state, uid, timer_run, timeout;
+ char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512];
++ char *protname;
+ struct aftype *ap;
+ #if HAVE_AFINET6
+ struct sockaddr_in6 localaddr, remaddr;
+@@ -719,12 +725,13 @@
+ return;
+
+ num = sscanf(line,
+- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n",
+ &d, local_addr, &local_port, rem_addr, &rem_port, &state,
+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
+
+ if (strlen(local_addr) > 8) {
+ #if HAVE_AFINET6
++ protname = "tcp6";
+ /* Demangle what the kernel gives us */
+ sscanf(local_addr, "%08X%08X%08X%08X",
+ &in6.s6_addr32[0], &in6.s6_addr32[1],
+@@ -740,6 +747,7 @@
+ remaddr.sin6_family = AF_INET6;
+ #endif
+ } else {
++ protname = "tcp";
+ sscanf(local_addr, "%X",
+ &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr);
+ sscanf(rem_addr, "%X",
+@@ -813,8 +821,8 @@
+ timer_run, (double) time_len / HZ, retr, timeout);
+ break;
+ }
+- printf("tcp %6ld %6ld %-23s %-23s %-12s",
+- rxq, txq, local_addr, rem_addr, _(tcp_state[state]));
++ printf("%-4s %6ld %6ld %-*s %-*s %-11s",
++ protname, rxq, txq, netmax(23,strlen(local_addr)), local_addr, netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state]));
+
+ finish_this_one(uid,inode,timers);
+ }
+@@ -831,6 +839,7 @@
+ char buffer[8192], local_addr[64], rem_addr[64];
+ char *udp_state, timers[64], more[512];
+ int num, local_port, rem_port, d, state, timer_run, uid, timeout;
++ char *protname;
+ #if HAVE_AFINET6
+ struct sockaddr_in6 localaddr, remaddr;
+ char addr6[INET6_ADDRSTRLEN];
+@@ -847,13 +856,14 @@
+
+ more[0] = '\0';
+ num = sscanf(line,
+- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n",
+ &d, local_addr, &local_port,
+ rem_addr, &rem_port, &state,
+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
+
+ if (strlen(local_addr) > 8) {
+ #if HAVE_AFINET6
++ protname="udp6";
+ sscanf(local_addr, "%08X%08X%08X%08X",
+ &in6.s6_addr32[0], &in6.s6_addr32[1],
+ &in6.s6_addr32[2], &in6.s6_addr32[3]);
+@@ -868,6 +878,7 @@
+ remaddr.sin6_family = AF_INET6;
+ #endif
+ } else {
++ protname="udp";
+ sscanf(local_addr, "%X",
+ &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr);
+ sscanf(rem_addr, "%X",
+@@ -953,8 +964,8 @@
+ retr, timeout);
+ break;
+ }
+- printf("udp %6ld %6ld %-23s %-23s %-12s",
+- rxq, txq, local_addr, rem_addr, udp_state);
++ printf("%-4s %6ld %6ld %-23s %-23s %-11s",
++ protname, rxq, txq, local_addr, rem_addr, udp_state);
+
+ finish_this_one(uid,inode,timers);
+ }
+@@ -971,6 +982,7 @@
+ char buffer[8192], local_addr[64], rem_addr[64];
+ char timers[64], more[512];
+ int num, local_port, rem_port, d, state, timer_run, uid, timeout;
++ char *protname;
+ #if HAVE_AFINET6
+ struct sockaddr_in6 localaddr, remaddr;
+ char addr6[INET6_ADDRSTRLEN];
+@@ -987,12 +999,13 @@
+
+ more[0] = '\0';
+ num = sscanf(line,
+- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
++ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n",
+ &d, local_addr, &local_port, rem_addr, &rem_port, &state,
+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
+
+ if (strlen(local_addr) > 8) {
+ #if HAVE_AFINET6
++ protname = "raw6";
+ sscanf(local_addr, "%08X%08X%08X%08X",
+ &in6.s6_addr32[0], &in6.s6_addr32[1],
+ &in6.s6_addr32[2], &in6.s6_addr32[3]);
+@@ -1007,6 +1020,7 @@
+ remaddr.sin6_family = AF_INET6;
+ #endif
+ } else {
++ protname = "raw";
+ sscanf(local_addr, "%X",
+ &((struct sockaddr_in *) &localaddr)->sin_addr.s_addr);
+ sscanf(rem_addr, "%X",
+@@ -1074,8 +1088,8 @@
+ retr, timeout);
+ break;
+ }
+- printf("raw %6ld %6ld %-23s %-23s %-12d",
+- rxq, txq, local_addr, rem_addr, state);
++ printf("%-4s %6ld %6ld %-23s %-23s %-11d",
++ protname, rxq, txq, local_addr, rem_addr, state);
+
+ finish_this_one(uid,inode,timers);
+ }
+@@ -1099,9 +1113,9 @@
+ static int has = 0;
+ char path[MAXPATHLEN], ss_flags[32];
+ char *ss_proto, *ss_state, *ss_type;
+- int num, state, type, inode;
++ int num, state, type;
+ void *d;
+- unsigned long refcnt, proto, flags;
++ unsigned long refcnt, proto, flags, inode;
+
+ if (nr == 0) {
+ if (strstr(line, "Inode"))
+@@ -1109,14 +1123,14 @@
+ return;
+ }
+ path[0] = '\0';
+- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s",
++ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s",
+ &d, &refcnt, &proto, &flags, &type, &state, &inode, path);
+ if (num < 6) {
+ fprintf(stderr, _("warning, got bogus unix line.\n"));
+ return;
+ }
+ if (!(has & HAS_INODE))
+- snprintf(path,sizeof(path),"%d",inode);
++ snprintf(path,sizeof(path),"%lu",inode);
+
+ if (!flag_all) {
+ if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) {
+@@ -1208,9 +1222,9 @@
+ printf("%-5s %-6ld %-11s %-10s %-13s ",
+ ss_proto, refcnt, ss_flags, ss_type, ss_state);
+ if (has & HAS_INODE)
+- printf("%-6d ",inode);
++ printf("%-8lu ",inode);
+ else
+- printf("- ");
++ printf("- ");
+ if (flag_prg)
+ printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
+ puts(path);
+@@ -1229,7 +1243,7 @@
+ printf(_("(w/o servers)"));
+ }
+
+- printf(_("\nProto RefCnt Flags Type State I-Node"));
++ printf(_("\nProto RefCnt Flags Type State I-Node "));
+ print_progname_banner();
+ printf(_(" Path\n")); /* xxx */
+
+@@ -1256,7 +1270,7 @@
+ N_("ESTABLISHED"),
+ N_("RECOVERY")
+ };
+- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) {
++ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) {
+ if (errno != ENOENT) {
+ perror(_PATH_PROCNET_AX25);
+ return (-1);
+@@ -1350,18 +1364,37 @@
+ char sad[50], dad[50];
+ struct sockaddr sa;
+ unsigned sport = 0, dport = 0;
+-
+- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) {
+- if (errno != ENOENT) {
+- perror(_PATH_PROCNET_IPX);
+- return (-1);
+- }
+- if (flag_arg || flag_ver)
+- ESYSNOT("netstat", "AF IPX");
+- if (flag_arg)
+- return (1);
+- else
+- return (0);
++ struct stat s;
++
++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1);
++ if (!f) {
++ if (errno != ENOENT) {
++ perror(_PATH_PROCNET_IPX_SOCKET1);
++ return (-1);
++ }
++ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2);
++
++ /* We need to check for directory */
++ if (f) {
++ fstat(fileno(f), &s);
++ if (!S_ISREG(s.st_mode)) {
++ fclose(f);
++ f=NULL;
++ }
++ }
++
++ if (!f) {
++ if (errno != ENOENT) {
++ perror(_PATH_PROCNET_IPX_SOCKET2);
++ return (-1);
++ }
++ if (flag_arg || flag_ver)
++ ESYSNOT("netstat", "AF IPX");
++ if (flag_arg)
++ return (1);
++ else
++ return (0);
++ }
+ }
+ printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */
+ if (flag_exp > 1)
+@@ -1381,7 +1414,7 @@
+ sscanf(st, "%X", &sport); /* net byt order */
+ sport = ntohs(sport);
+ } else {
+- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error");
++ EINTERN("netstat.c", "ipx socket format error in source port");
+ return (-1);
+ }
+ nc = 0;
+@@ -1391,7 +1424,7 @@
+ sscanf(st, "%X", &dport); /* net byt order */
+ dport = ntohs(dport);
+ } else {
+- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error");
++ EINTERN("netstat.c", "ipx soket format error in destination port");
+ return (-1);
+ }
+ } else
+@@ -1449,7 +1482,7 @@
+ }
+ if (flag_exp < 2) {
+ ife_short = 1;
+- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
++ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
+ }
+
+ if (for_all_interfaces(do_if_print, &flag_all) < 0) {
+@@ -1457,7 +1490,7 @@
+ exit(1);
+ }
+ if (flag_cnt)
+- free_interface_list();
++ if_cache_free();
+ else {
+ close(skfd);
+ skfd = -1;
+@@ -1503,7 +1536,7 @@
+ fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
+
+ fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
+- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
++ fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
+ fprintf(stderr, _(" List of possible address families (which support routing):\n"));
+ print_aflist(1); /* 1 = routeable */
+ exit(E_USAGE);
+@@ -1514,7 +1547,7 @@
+ (int argc, char *argv[]) {
+ int i;
+ int lop;
+- struct option longopts[] =
++ static struct option longopts[] =
+ {
+ AFTRANS_OPTS,
+ {"version", 0, 0, 'V'},
+@@ -1556,7 +1589,7 @@
+ getroute_init(); /* Set up AF routing support */
+
+ afname[0] = '\0';
+- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF)
++ while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl64", longopts, &lop)) != EOF)
+ switch (i) {
+ case -1:
+ break;
+@@ -1624,6 +1657,14 @@
+ case 'o':
+ flag_opt++;
+ break;
++ case '6':
++ if (aftrans_opt("inet6"))
++ exit(1);
++ break;
++ case '4':
++ if (aftrans_opt("inet"))
++ exit(1);
++ break;
+ case 'V':
+ version();
+ /*NOTREACHED */
+@@ -1741,10 +1782,11 @@
+ }
+ printf(_("\nProto Recv-Q Send-Q Local Address Foreign Address State ")); /* xxx */
+ if (flag_exp > 1)
+- printf(_(" User Inode "));
+- print_progname_banner();
++ printf(_(" User Inode "));
++ if (flag_prg)
++ printf(_(" PID/Program name"));
+ if (flag_opt)
+- printf(_(" Timer")); /* xxx */
++ printf(_(" Timer"));
+ printf("\n");
+ #else
+ if (flag_arg) {
+@@ -1845,6 +1887,7 @@
+ }
+ #endif
+ }
++
+ if (!flag_cnt || i)
+ break;
+ sleep(1);
+--- net-tools-1.60.orig/route.c
++++ net-tools-1.60/route.c
+@@ -2,7 +2,7 @@
+ * route This file contains an implementation of the command
+ * that manages the IP routing table in the kernel.
+ *
+- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $
++ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $
+ *
+ * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
+ *
+@@ -142,7 +142,7 @@
+ }
+
+ /* Fetch the command-line arguments. */
+- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF)
++ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF)
+ switch (i) {
+ case -1:
+ break;
+@@ -176,6 +176,14 @@
+ if ((i = aftrans_opt(optarg)))
+ exit(i);
+ break;
++ case '6':
++ if ((i = aftrans_opt("inet6")))
++ exit(i);
++ break;
++ case '4':
++ if ((i = aftrans_opt("inet")))
++ exit(i);
++ break;
+ case 'V':
+ version();
+ case 'h':
+--- net-tools-1.60.orig/statistics.c
++++ net-tools-1.60/statistics.c
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL.
+- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $
++ * $Id: statistics.c,v 1.20 2007/12/01 18:44:56 ecki Exp $
+ * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
+ * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels
+@@ -11,6 +11,7 @@
+ #include <string.h>
+ #include "config.h"
+ #include "intl.h"
++#include "proc.h"
+
+ /* #define WARN 1 */
+
+@@ -172,19 +173,59 @@
+ { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number },
+ { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"),
+ opt_number },
+- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number },
++ { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number },
+ { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."),
+ opt_number },
+- { "TCPDirectCopyFromBacklog", N_("%u packets directly received"
+- " from backlog"), opt_number },
+- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received"
+- " from prequeue"), opt_number },
++ { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number },
++ { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"),
++ opt_number },
+ { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number },
+- { "TCPHPHits", N_("%u packets header predicted"), number },
++ { "TCPHPHits", N_("%u packet headers predicted"), number },
+ { "TCPHPHitsToUser", N_("%u packets header predicted and "
+ "directly queued to user"), opt_number },
+ { "SockMallocOOM", N_("Ran %u times out of system memory during "
+ "packet sending"), opt_number },
++ { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number },
++ { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number },
++ { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number },
++ { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number },
++ { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number },
++ { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number },
++ { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number },
++ { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number },
++ { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number },
++ { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number },
++ { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number },
++ { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number },
++ { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number },
++ { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number },
++ { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number },
++ { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number },
++ { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number },
++ { "TCPFastRetrans", N_("%u fast retransmits"), opt_number },
++ { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number },
++ { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number },
++ { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number },
++ { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number },
++ { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number },
++ { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number },
++ { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number },
++ { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number },
++ { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number },
++ { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number },
++ { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number },
++ { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number },
++ { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number },
++ { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number },
++ { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number },
++ { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number },
++ { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number },
++ { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number },
++ { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number },
++ { "TCPLoss", N_("%u TCP data loss events"), opt_number },
++ { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"),
++ opt_number },
++ { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number },
+ };
+
+ struct tabtab {
+@@ -222,7 +263,8 @@
+ ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry),
+ sizeof(struct entry), cmpentries);
+ if (!ent) { /* try our best */
+- printf("%*s%s: %d\n", states[state].indent, "", title, val);
++ if (val)
++ printf("%*s%s: %d\n", states[state].indent, "", title, val);
+ return;
+ }
+ type = ent->type;
+@@ -289,14 +331,17 @@
+ return &dummytab;
+ }
+
+-void process_fd(FILE *f)
++int process_fd(FILE *f)
+ {
+- char buf1[1024], buf2[1024];
++ char buf1[2048], buf2[2048];
+ char *sp, *np, *p;
+ while (fgets(buf1, sizeof buf1, f)) {
+ int endflag;
+ struct tabtab *tab;
+
++ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels
++ continue;
++
+ if (!fgets(buf2, sizeof buf2, f))
+ break;
+ sp = strchr(buf1, ':');
+@@ -330,11 +375,10 @@
+ sp = p + 1;
+ }
+ }
+- return;
++ return 0;
+
+ formaterr:
+- perror(_("error parsing /proc/net/snmp"));
+- return;
++ return -1;
+ }
+
+
+@@ -344,22 +388,25 @@
+
+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
+
+- f = fopen("/proc/net/snmp", "r");
++ f = proc_fopen("/proc/net/snmp");
+ if (!f) {
+ perror(_("cannot open /proc/net/snmp"));
+ return;
+ }
+- process_fd(f);
++
++ if (process_fd(f) < 0)
++ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n"));
+
+ if (ferror(f))
+ perror("/proc/net/snmp");
+
+ fclose(f);
+
+- f = fopen("/proc/net/netstat", "r");
++ f = proc_fopen("/proc/net/netstat");
+
+ if (f) {
+- process_fd(f);
++ if (process_fd(f) <0)
++ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n"));
+
+ if (ferror(f))
+ perror("/proc/net/netstat");
+--- net-tools-1.60.orig/nameif.c
++++ net-tools-1.60/nameif.c
+@@ -3,7 +3,7 @@
+ * Writen 2000 by Andi Kleen.
+ * Subject to the Gnu Public License, version 2.
+ * TODO: make it support token ring etc.
+- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $
++ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $
+ */
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+@@ -117,7 +117,8 @@
+ }
+
+ struct change {
+- struct change *next,**pprev;
++ struct change *next;
++ int found;
+ char ifname[IFNAMSIZ+1];
+ unsigned char mac[6];
+ };
+@@ -139,10 +140,7 @@
+ ch->ifname, pos);
+ if (parsemac(p,ch->mac) < 0)
+ complain(_("cannot parse MAC `%s' at %s"), p, pos);
+- if (clist)
+- clist->pprev = &ch->next;
+ ch->next = clist;
+- ch->pprev = &clist;
+ clist = ch;
+ return 0;
+ }
+@@ -177,7 +175,7 @@
+ if (*p == '\0')
+ continue;
+ n = strcspn(p, " \t");
+- if (n > IFNAMSIZ)
++ if (n > IFNAMSIZ-1)
+ complain(_("interface name too long at line %d"), line);
+ memcpy(ch->ifname, p, n);
+ ch->ifname[n] = 0;
+@@ -200,7 +198,7 @@
+
+ void usage(void)
+ {
+- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
++ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
+ exit(1);
+ }
+
+@@ -277,21 +275,21 @@
+ ch = lookupmac(mac);
+ if (!ch)
+ continue;
+-
+- *ch->pprev = ch->next;
++
++ ch->found = 1;
+ if (strcmp(p, ch->ifname)) {
+ if (setname(p, ch->ifname) < 0)
+ complain(_("cannot change name of %s to %s: %s"),
+ p, ch->ifname, strerror(errno));
+ }
+- free(ch);
+ }
+ fclose(ifh);
+
+ while (clist) {
+ struct change *ch = clist;
+ clist = clist->next;
+- warning(_("interface '%s' not found"), ch->ifname);
++ if (!ch->found)
++ warning(_("interface '%s' not found"), ch->ifname);
+ free(ch);
+ }
+
+--- net-tools-1.60.orig/mii-tool.c
++++ net-tools-1.60/mii-tool.c
+@@ -29,8 +29,7 @@
+ http://www.national.com/pf/DP/DP83840.html
+ */
+
+-static char version[] =
+-"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n";
++static char Version[] = "$Id: mii-tool.c,v 1.9 2006/09/27 20:59:18 ecki Exp $\n(Author: David Hinds based on Donald Becker's mii-diag)";
+
+ #include <unistd.h>
+ #include <stdlib.h>
+@@ -46,16 +45,19 @@
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <net/if.h>
++#include <linux/sockios.h>
++
+ #ifndef __GLIBC__
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #endif
+ #include "mii.h"
++#include "version.h"
+
+ #define MAX_ETH 8 /* Maximum # of interfaces */
+
+ /* Table of known MII's */
+-static struct {
++static const struct {
+ u_short id1, id2;
+ char *name;
+ } mii_id[] = {
+@@ -74,6 +76,9 @@
+ { 0x0181, 0x4410, "Quality QS6612" },
+ { 0x0282, 0x1c50, "SMSC 83C180" },
+ { 0x0300, 0xe540, "TDK 78Q2120" },
++ { 0x0141, 0x0c20, "Yukon 88E1011" },
++ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" },
++ { 0x0141, 0x0c90, "Yukon-2 88E1112" },
+ };
+ #define NMII (sizeof(mii_id)/sizeof(mii_id[0]))
+
+@@ -137,40 +142,48 @@
+
+ const struct {
+ char *name;
+- u_short value;
++ u_short value[2];
+ } media[] = {
+ /* The order through 100baseT4 matches bits in the BMSR */
+- { "10baseT-HD", MII_AN_10BASET_HD },
+- { "10baseT-FD", MII_AN_10BASET_FD },
+- { "100baseTx-HD", MII_AN_100BASETX_HD },
+- { "100baseTx-FD", MII_AN_100BASETX_FD },
+- { "100baseT4", MII_AN_100BASET4 },
+- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD },
+- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD },
++ { "10baseT-HD", {MII_AN_10BASET_HD} },
++ { "10baseT-FD", {MII_AN_10BASET_FD} },
++ { "100baseTx-HD", {MII_AN_100BASETX_HD} },
++ { "100baseTx-FD", {MII_AN_100BASETX_FD} },
++ { "100baseT4", {MII_AN_100BASET4} },
++ { "100baseTx", {MII_AN_100BASETX_FD | MII_AN_100BASETX_HD} },
++ { "10baseT", {MII_AN_10BASET_FD | MII_AN_10BASET_HD} },
++
++ { "1000baseT-HD", {0, MII_BMCR2_1000HALF} },
++ { "1000baseT-FD", {0, MII_BMCR2_1000FULL} },
++ { "1000baseT", {0, MII_BMCR2_1000HALF|MII_BMCR2_1000FULL} },
+ };
+ #define NMEDIA (sizeof(media)/sizeof(media[0]))
+
+ /* Parse an argument list of media types */
+-static int parse_media(char *arg)
++static int parse_media(char *arg, unsigned *bmcr2)
+ {
+ int mask, i;
+ char *s;
+ mask = strtoul(arg, &s, 16);
+ if ((*arg != '\0') && (*s == '\0')) {
+ if ((mask & MII_AN_ABILITY_MASK) &&
+- !(mask & ~MII_AN_ABILITY_MASK))
+- return mask;
++ !(mask & ~MII_AN_ABILITY_MASK)) {
++ *bmcr2 = 0;
++ return mask;
++ }
+ goto failed;
+- } else {
+- mask = 0;
+- s = strtok(arg, ", ");
+- do {
++ }
++ mask = 0;
++ *bmcr2 = 0;
++ s = strtok(arg, ", ");
++ do {
+ for (i = 0; i < NMEDIA; i++)
+- if (strcasecmp(media[i].name, s) == 0) break;
++ if (s && strcasecmp(media[i].name, s) == 0) break;
+ if (i == NMEDIA) goto failed;
+- mask |= media[i].value;
+- } while ((s = strtok(NULL, ", ")) != NULL);
+- }
++ mask |= media[i].value[0];
++ *bmcr2 |= media[i].value[1];
++ } while ((s = strtok(NULL, ", ")) != NULL);
++
+ return mask;
+ failed:
+ fprintf(stderr, "Invalid media specification '%s'.\n", arg);
+@@ -179,11 +192,24 @@
+
+ /*--------------------------------------------------------------------*/
+
+-static char *media_list(int mask, int best)
++static const char *media_list(unsigned mask, unsigned mask2, int best)
+ {
+ static char buf[100];
+ int i;
+ *buf = '\0';
++
++ if (mask & MII_BMCR_SPEED1000) {
++ if (mask2 & MII_BMCR2_1000HALF) {
++ strcat(buf, " ");
++ strcat(buf, "1000baseT-HD");
++ if (best) goto out;
++ }
++ if (mask2 & MII_BMCR2_1000FULL) {
++ strcat(buf, " ");
++ strcat(buf, "1000baseT-FD");
++ if (best) goto out;
++ }
++ }
+ mask >>= 5;
+ for (i = 4; i >= 0; i--) {
+ if (mask & (1<<i)) {
+@@ -192,6 +218,7 @@
+ if (best) break;
+ }
+ }
++ out:
+ if (mask & (1<<5))
+ strcat(buf, " flow-control");
+ return buf;
+@@ -201,15 +228,15 @@
+ {
+ char buf[100];
+ int i, mii_val[32];
+- int bmcr, bmsr, advert, lkpar;
++ unsigned bmcr, bmsr, advert, lkpar, bmcr2, lpa2;
+
+ /* Some bits in the BMSR are latched, but we can't rely on being
+ the only reader, so only the current values are meaningful */
+ mdio_read(sock, MII_BMSR);
+- for (i = 0; i < ((verbose > 1) ? 32 : 8); i++)
++ for (i = 0; i < ((verbose > 1) ? 32 : MII_BASIC_MAX); i++)
+ mii_val[i] = mdio_read(sock, i);
+
+- if (mii_val[MII_BMCR] == 0xffff) {
++ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) {
+ fprintf(stderr, " No MII transceiver present!.\n");
+ return -1;
+ }
+@@ -217,6 +244,7 @@
+ /* Descriptive rename. */
+ bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR];
+ advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR];
++ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000];
+
+ sprintf(buf, "%s: ", ifr.ifr_name);
+ if (bmcr & MII_BMCR_AN_ENA) {
+@@ -224,7 +252,7 @@
+ if (advert & lkpar) {
+ strcat(buf, (lkpar & MII_AN_ACK) ?
+ "negotiated" : "no autonegotiation,");
+- strcat(buf, media_list(advert & lkpar, 1));
++ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1));
+ strcat(buf, ", ");
+ } else {
+ strcat(buf, "autonegotiation failed, ");
+@@ -234,8 +262,10 @@
+ }
+ } else {
+ sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ",
+- (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
+- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
++ ((bmcr2 & (MII_BMCR2_1000HALF | MII_BMCR2_1000FULL)) & lpa2 >> 2)
++ ? "1000"
++ : (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
++ (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
+ }
+ strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
+
+@@ -296,12 +326,13 @@
+ if (bmsr & MII_BMSR_REMOTE_FAULT)
+ printf("remote fault, ");
+ printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
+- printf("\n capabilities:%s", media_list(bmsr >> 6, 0));
+- printf("\n advertising: %s", media_list(advert, 0));
++ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0));
++ printf("\n advertising: %s", media_list(advert, lpa2 >> 2, 0));
+ if (lkpar & MII_AN_ABILITY_MASK)
+- printf("\n link partner:%s", media_list(lkpar, 0));
++ printf("\n link partner:%s", media_list(lkpar, bmcr2, 0));
+ printf("\n");
+ }
++ fflush(stdout);
+ return 0;
+ }
+
+@@ -329,7 +360,7 @@
+ printf("resetting the transceiver...\n");
+ mdio_write(skfd, MII_BMCR, MII_BMCR_RESET);
+ }
+- if (nway_advertise) {
++ if (nway_advertise > 0) {
+ mdio_write(skfd, MII_ANAR, nway_advertise | 1);
+ opt_restart = 1;
+ }
+@@ -379,27 +410,38 @@
+ /*--------------------------------------------------------------------*/
+
+ const char *usage =
+-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
+- -V, --version display version information
+- -v, --verbose more verbose output
+- -R, --reset reset MII to poweron state
+- -r, --restart restart autonegotiation
+- -w, --watch monitor for link status changes
+- -l, --log with -w, write events to syslog
+- -A, --advertise=media,... advertise only specified media
+- -F, --force=media force specified media technology
+-media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
+- (to advertise both HD and FD) 100baseTx, 10baseT\n";
++"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n"
++" -V, --version display version information\n"
++" -v, --verbose more verbose output\n"
++" -R, --reset reset MII to poweron state\n"
++" -r, --restart restart autonegotiation\n"
++" -w, --watch monitor for link status changes\n"
++" -l, --log with -w, write events to syslog\n"
++" -A, --advertise=media,... advertise only specified media\n"
++" -F, --force=media force specified media technology\n"
++"media: 1000baseTx-HD, 1000baseTx-FD,\n"
++" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n"
++" 10baseT-FD, 10baseT-HD,\n"
++" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n";
++
++
++static void version(void)
++{
++ fprintf(stderr, "%s\n%s\n", Version, RELEASE);
++ exit(5); /* E_VERSION */
++}
++
+
+ int main(int argc, char **argv)
+ {
+ int i, c, ret, errflag = 0;
+ char s[6];
++ unsigned ctrl1000 = 0;
+
+ while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF)
+ switch (c) {
+- case 'A': nway_advertise = parse_media(optarg); break;
+- case 'F': fixed_speed = parse_media(optarg); break;
++ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break;
++ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break;
+ case 'p': override_phy = atoi(optarg); break;
+ case 'r': opt_restart++; break;
+ case 'R': opt_reset++; break;
+@@ -411,6 +453,10 @@
+ }
+ /* Check for a few inappropriate option combinations */
+ if (opt_watch) verbose = 0;
++
++ if ((nway_advertise < 0) || (fixed_speed < 0))
++ return 2;
++
+ if (errflag || (fixed_speed & (fixed_speed-1)) ||
+ (fixed_speed && (opt_restart || nway_advertise))) {
+ fprintf(stderr, usage, argv[0]);
+@@ -418,7 +464,7 @@
+ }
+
+ if (opt_version)
+- printf(version);
++ version();
+
+ /* Open a basic socket. */
+ if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) {
+@@ -426,6 +472,9 @@
+ exit(-1);
+ }
+
++ if (verbose > 1)
++ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY);
++
+ /* No remaining args means show all interfaces. */
+ if (optind == argc) {
+ ret = 1;
+--- net-tools-1.60.orig/debian/changelog
++++ net-tools-1.60/debian/changelog
+@@ -0,0 +1,277 @@
++net-tools (1.60-19) unstable; urgency=low
++
++ * fixed netstat(8) (interfaceS) reported by Liu Xing. (Closes Bug #435690)
++ * fixed interface name truncation (Closes Bug #405521)
++ Thank you Csaba Szep.
++ * fixed pt error string (Closes: Bug#403033)
++ * fixed route samples (Closes: Bug#400844, #368697) Thanks Danny Rathjens.
++ * fixed ifconfig(8) see also section (Closes: Bug#365916) Dan Jacobs.
++
++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 06:27:41 +0100
++
++net-tools (1.60-18) unstable; urgency=low
++
++ * Thanks for the l10n NMU to Kenshi Muto
++ * fixed hostname compile problems
++ * better error handling and speedup for proc file reading
++ * improved mii-tool (more media types)
++ * fixed string length contraint in ipmaddr
++ * fixed ipx /proc/net (alternate naming)
++ * smaller fixed to netstat(8) (de) 2002-02-20 - still incomplete
++ * expanded arp(8) (en) 2007-12-01
++ * added -4 and -6 to netstat(8) 02 October 2003
++ * formatting fixed rarp(8)+slattach(8) [en]
++ * formatting fixed arp(8), rarp(8), ifconfig(8), hostname(1) [fr]
++ * fixed slattach -L to not require HW handshake anymore
++ * netstat -n: show v4inv6 mapped addressses as v4
++
++ -- Bernd Eckenfels <ecki@debian.org> Sun, 02 Dec 2007 03:28:17 +0100
++
++net-tools (1.60-17.2) unstable; urgency=low
++
++ * l10n NMU
++ * Set conflict against ja-trans which has obsolete Japanese
++ translations only for net-tools. (closes: #447327)
++
++ -- Kenshi Muto <kmuto@debian.org> Sat, 20 Oct 2007 18:00:34 +0900
++
++net-tools (1.60-17.1) unstable; urgency=low
++
++ * l10n NMU
++ * Updated net-tools.pot.
++ * Updated Japanese translation (closes: Bug#432338)
++ * Updated German translation (closes: #313808)
++
++ -- Kenshi Muto <kmuto@debian.org> Thu, 11 Oct 2007 19:44:26 +0900
++
++net-tools (1.60-17) unstable; urgency=medium
++
++ * arp.c: bus error on sparc64 with latest gcc fixed. (Closes: Bug#340384)
++
++ -- Bernd Eckenfels <ecki@debian.org> Sun, 04 Dec 2005 05:47:05 +0100
++
++net-tools (1.60-16) unstable; urgency=low
++
++ * spelling fix to slattach(8) (Closes: Bug#326124 (patch by A.Costa)
++ * inet.c: portability fix for 64bit.
++ * comment cleanups to aliagn with 1.65 cvs
++ * net-support.h, inet_sr.c, nstrcmp.c, arp.c, ether.h
++
++ -- Bernd Eckenfels <ecki@debian.org> Mon, 24 Oct 2005 22:05:38 +0200
++
++net-tools (1.60-15) unstable; urgency=low
++
++ * minor formating fix to ifconfig(8)
++
++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 21:49:52 +0200
++
++net-tools (1.60-14) unstable; urgency=low
++
++ * added iptables(8) in ifconfig(8) (thanks Toralf Förster)
++ * more usage updates in ifconfig.8 (used upstream HEAD=1.11)
++
++ -- Bernd Eckenfels <ecki@debian.org> Thu, 30 Jun 2005 20:51:18 +0200
++
++net-tools (1.60-13) unstable; urgency=low Thu, 30 Jun 2005 20:49:57 +0200
++
++ * X25 code compiles with 2.4 and 2.6 kernel headers (Closes: Bug#271678)
++ * IMPORTANT: make ifconfig show alias interfaces in 2.6 again.
++ * resort media type array to match kernel (Closes: Bug#199920)
++
++ -- Bernd Eckenfels <ecki@debian.org> Tue, 17 May 2005 01:28:51 +0200
++
++net-tools (1.60-12) unstable; urgency=low
++
++ * make TR hw address type work for new kernel (Closes: Bug #79462, #203400)
++ * update-po uses msgmerge, new net-tools.pot (Closes: Bug: 271426)
++ * de-support dontpub option in arp -? und arp.8 (Closes: Bug #203396)
++
++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 May 2005 06:33:48 +0200
++
++net-tools (1.60-11) unstable; urgency=low
++
++ * spelling fixes (Closes: Bug #305640, #305638, 305637)
++ * nameif.c avoid overflow by malicious kernel
++ * avoid overflow of the TX-OK Column (Closes: Bug #308922)
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 14 May 2005 01:48:45 +0200
++
++net-tools (1.60-10) unstable; urgency=low
++
++ * typo fix in po/de.po for german arp command output (Closes: Bug #176151)
++ * added diagnostics messages to mii-tool.8 (Closes: Bug #239229)
++ * new version of nstrcmp (Closes: Bug #226503)
++ * enable EUI64 support
++ * stadanrds version 3.6.1 (no changes)
++
++ -- Bernd Eckenfels <ecki@debian.org> Fri, 23 Apr 2004 00:57:20 +0200
++
++net-tools (1.60-9) unstable; urgency=medium
++
++ * debian/changelog: fixed in last entry fixed bug from 197925 to 197924
++ * include linux/sockios.h for SIOCGMIIPHY definition (new style)
++ which will fix MII reporting on 2.4 kernels. (Closes: Bug #133648)
++ NOTE: this will now require root to work, it will also not work on
++ older kernels.
++ * Rene Engelhard's patch to make AF X25 compile with 2.6 headers (Closes: Bug #223091)
++
++ -- Bernd Eckenfels <ecki@debian.org> Mon, 29 Dec 2003 13:42:20 +0100
++
++net-tools (1.60-8) unstable; urgency=medium
++
++ * lib/interface.c: backed off change which skipped reading ioctl
++ interfacelist, if _proc interfacelist was ok, which does not work,
++ because alias interfaces are only in ioctl list available. It is
++ also falling back to the original lib/nstrcml.c because the
++ comparision if : is present does not work.
++ (Closes: bug #197924, #197582, #197269)
++ * bumped standards version (no changes)
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 28 Jun 2003 02:56:38 +0200
++
++net-tools (1.60-7) unstable; urgency=low
++
++ * interfaces.c: cvs version fixes Connectiva Bug #5711 (Closes: #149576)
++ from Eduardo Pereira Habkost
++ * netstat.c: cvs version adds support for tcp6,udp6,icmp6 protocols
++ * netstat.c: cvs version adds support for -4 or -6 cmd line shortcut
++ * netstat.c: cvs version adds fix for inode
++ signedness (Closes: #134600, #78932)
++ * ifconfig: removed -i from usage (Closes: #181528)
++ * make gcc 3.3 happy: added ull unsigned long long prefix to constant
++ * lib/ddp_gr.c+pathnames.h: first support for appletalk routing from cvs
++ * lib/eui64.c+hw.c+Makefile: forst support for new hw type from cvs
++ * lib/interface.c: cvs fix for column run-into (Closes: #161080)
++ * lib/irda.c,lib/ipx.c: cvs update
++ * lib/nstrcmp.c: new, faster version, fixes b-lookups for ifconfig
++ * hostanme.c: gcc 3.3 fix from cvs (not compiled in net-tools.deb)
++ * lib/interface: fixed memory globbering
++ (Closes: #135744, #149579, #185187)
++
++ -- Bernd Eckenfels <ecki@debian.org> Thu, 12 Jun 2003 05:44:38 +0200
++
++net-tools (1.60-6) unstable; urgency=low
++
++ * took route.c from upstream cvs: allow -6 and -4 option
++ * took statistics.c from upstream cvs: more complete netstat -S
++ * took README from upstream cvs: fix COPYING file title and removed
++ the line (Closes: #102139)
++ * took arp.c from upstream: fixed name "PUB", better not found handling,
++ implicite proxy arp mac changed from '*' to '<from_interface>',
++ usage line made shorter
++ * added mii-tool in control file (Closes: #172473)
++ * fixed description of binary multiple in man page (Closes: #182487)
++ * fixed interpunctation in netstat(8) (Closes: #191660)
++ * fixed compile warning in inet_sr.c by removing empty default: label in
++ switch
++
++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:35:12 +0200
++
++net-tools (1.60-5) unstable; urgency=low
++
++ * thanks Andrew for the 4.1 NMU
++ * NMU: Apply nameif patch from Matt Domsch. (Closes: #178209)
++ * Fix FTB bug (string concatenation in gcc 3.3) (Closes: #194995)
++ * Fix segfault in mii-tool by using cvs version (Closes: #139027)
++ * fixed plural of authors to make lintian happy (I JOIN YOU :)
++
++ -- Bernd Eckenfels <ecki@debian.org> Wed, 28 May 2003 22:04:14 +0200
++
++net-tools (1.60-4.1) unstable; urgency=low
++
++ * NMU
++ * Apply nameif patch from Matt Domsch. (Closes: #178209)
++
++ -- Andrew Suffield <asuffield@debian.org> Wed, 9 Apr 2003 21:44:09 +0100
++
++net-tools (1.60-4) unstable; urgency=medium
++
++ * fixed (upstream) spurious newline in ifconfig
++ Thanks Jonathen, Closes: Bug #109379
++ * fixed SI-Units printout in ifconfig (Closes: Bug #110629, #97029, #100167)
++ * this is done by including lib/interfaces.c from upstream cvs
++ * also added ifconfig man page from upstream cvs
++ * fixed (upstream) man page about netstat's --interface opt. (Closes: Bug#120475)
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 24 Nov 2001 06:26:37 +0100
++
++net-tools (1.60-3) unstable; urgency=medium
++
++ * fixed upstream error where counters in ifconfig/netstat -i are 0
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Nov 2001 18:12:13 +0100
++
++net-tools (1.60-2) unstable; urgency=low
++
++ * Fixed the following bug: (Closes: #117837)
++ * inserted ifconfig.c from upstream cvs to do this
++ * bumped debian Standard 3.1.1 -> 3.5.6 and removed -g from linking
++
++ -- Bernd Eckenfels <ecki@debian.org> Thu, 1 Nov 2001 02:51:33 +0100
++
++net-tools (1.60-1) unstable; urgency=low
++
++ * New upstream
++ * Phil fixed the following Bugs upstream: (Closes: #91919, #93048, #90282)
++
++ -- Bernd Eckenfels <ecki@debian.org> Mon, 16 Apr 2001 02:28:12 +0200
++
++net-tools (1.59-1) unstable; urgency=low
++
++ * added Build Dependencies (closes bug: #89083)
++ * new upstream version
++ * removed dh_suidregister and a few comments from rules file
++
++ -- Bernd Eckenfels <ecki@debian.org> Sun, 18 Mar 2001 03:00:33 +0100
++
++net-tools (1.58-2) unstable; urgency=low
++
++ * backported ifconfig change from 1.59 to avoid closing socket too early
++ on some systems (depending on the protocols installed).
++ Closes Bug: #85688, #85743
++
++ -- Bernd Eckenfels <ecki@debian.org> Tue, 13 Feb 2001 01:39:59 +0100
++
++net-tools (1.58-1) unstable; urgency=low
++
++ * new upstream version
++ * removed local man pages for now (Closes: bug #83894)
++ * install nameif in /sbin
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 10 Feb 2001 21:50:30 +0100
++
++net-tools (1.57-2) unstable; urgency=high
++
++ * rebuild, this is believed to closes: #75825
++
++ -- Bernd Eckenfels <ecki@debian.org> Sat, 30 Dec 2000 22:43:01 +0100
++
++net-tools (1.57-1) unstable; urgency=low
++
++ * new debian maintainer (thanks Anthony for the Work!)
++ * new upstream version
++
++ -- Bernd Eckenfels <ecki@debian.org> Mon, 14 Aug 2000 02:40:13 +0200
++
++net-tools (1.54-3) unstable; urgency=low
++
++ * Argggh. Don't use that horrible dh_installmanpages hack. (Closes:
++ Bug#68925, Bug#68879)
++
++ -- Anthony Towns <ajt@debian.org> Sun, 13 Aug 2000 00:12:05 +1000
++
++net-tools (1.54-2) unstable; urgency=low
++
++ * Reapply slattach patch from netbase 3.16-3.
++
++ -- Anthony Towns <ajt@debian.org> Thu, 10 Aug 2000 11:32:58 +1000
++
++net-tools (1.54-1) unstable; urgency=low
++
++ * Split from netbase.
++
++ -- Anthony Towns <ajt@debian.org> Mon, 17 Jul 2000 07:34:12 +1000
++
++Local variables:
++mode: debian-changelog
++End:
+--- net-tools-1.60.orig/debian/copyright
++++ net-tools-1.60/debian/copyright
+@@ -0,0 +1,18 @@
++This debian package is maintained by Bernd Eckenfels <ecki@debian.org> since
++Mon, 14 Aug 2000 02:42:13 +0200. Debian Informations will be uploaded
++upstream, too.
++
++This package was debianized by Anthony Towns <ajt@debian.org> on
++Mon, 17 Jul 2000 07:34:12 +1000. It was originally part of the netbase
++package.
++
++It was downloaded from http://www.tazenda.demon.co.uk/phil/net-tools/
++
++Upstream Authors: Phil Blundell <philb@gnu.org>,
++ Bernd Eckenfels <net-tools@lina.inka.de>
++
++Copyright:
++
++Distributed under the terms of the GNU General Public License version 2,
++as published by the Free Software Foundation. On Debian systems you can
++find a copy of this license in /usr/share/common-licenses/GPL.
+--- net-tools-1.60.orig/debian/dirs
++++ net-tools-1.60/debian/dirs
+@@ -0,0 +1 @@
++usr/sbin
+--- net-tools-1.60.orig/debian/config.make
++++ net-tools-1.60/debian/config.make
+@@ -0,0 +1,36 @@
++I18N=1
++HAVE_AFUNIX=1
++HAVE_AFINET=1
++HAVE_AFINET6=1
++HAVE_AFIPX=1
++HAVE_AFATALK=1
++HAVE_AFAX25=1
++HAVE_AFNETROM=1
++HAVE_AFROSE=1
++HAVE_AFX25=1
++HAVE_AFECONET=1
++HAVE_AFDECnet=1
++HAVE_AFASH=1
++HAVE_HWETHER=1
++HAVE_HWARC=1
++HAVE_HWSLIP=1
++HAVE_HWPPP=1
++HAVE_HWTUNNEL=1
++HAVE_HWSTRIP=1
++HAVE_HWTR=1
++HAVE_HWAX25=1
++HAVE_HWROSE=1
++HAVE_HWNETROM=1
++HAVE_HWX25=1
++HAVE_HWFR=1
++HAVE_HWSIT=1
++HAVE_HWFDDI=1
++HAVE_HWHIPPI=1
++HAVE_HWASH=1
++HAVE_HWHDLCLAPB=1
++HAVE_HWIRDA=1
++HAVE_HWEC=1
++HAVE_EUI64=1
++HAVE_FW_MASQUERADE=1
++HAVE_IP_TOOLS=1
++HAVE_MII=1
+--- net-tools-1.60.orig/debian/control
++++ net-tools-1.60/debian/control
+@@ -0,0 +1,21 @@
++Source: net-tools
++Section: net
++Priority: important
++Build-Depends: debhelper, gettext
++Maintainer: Bernd Eckenfels <ecki@debian.org>
++Standards-Version: 3.6.1
++
++Package: net-tools
++Architecture: any
++Depends: ${shlibs:Depends}
++Replaces: netbase (<< 4.00), ja-trans (<= 0.8-2)
++Conflicts: ja-trans (<= 0.8-2)
++Description: The NET-3 networking toolkit
++ This package includes the important tools for controlling the network
++ subsystem of the Linux kernel. This includes arp, ifconfig, netstat,
++ rarp, nameif and route. Additionally, this package contains utilities
++ relating to particular network hardware types (plipconfig, slattach,
++ mii-tool) and advanced aspects of IP configuration (iptunnel, ipmaddr).
++ .
++ In the upstream package 'hostname' and friends are included. Those are
++ not installed by this package, since there is a special "hostname*.deb".
+--- net-tools-1.60.orig/debian/rules
++++ net-tools-1.60/debian/rules
+@@ -0,0 +1,74 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatability version to use.
++export DH_COMPAT=1
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++ touch configure-stamp
++
++build: configure-stamp build-stamp
++build-stamp:
++ dh_testdir
++ cp debian/config.h config.h
++ cp debian/config.make config.make
++ $(MAKE)
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp configure-stamp
++ -$(MAKE) clobber
++ dh_clean
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++ $(MAKE) update BASEDIR=`pwd`/debian/tmp
++ mv debian/tmp/sbin/arp debian/tmp/usr/sbin/arp
++ # we don't want man pages for domainname and friends... (yet)
++ rm -rf debian/tmp/usr/share/man/*/man1/ debian/tmp/usr/share/man/man1/
++ # we don't install local manpages until policy is clear
++ rm -rf debian/tmp/usr/share/man/*_*/
++
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++# dh_testversion
++ dh_testdir
++ dh_testroot
++# dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ dh_installmenu
++ dh_installcron
++# dh_installmanpages
++ dh_installinfo
++# dh_undocumented
++ dh_installchangelogs
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++# dh_makeshlibs
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol -- -isp
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install
+--- net-tools-1.60.orig/debian/config.h
++++ net-tools-1.60/debian/config.h
+@@ -0,0 +1,75 @@
++/*
++* config.h Automatically generated configuration includefile
++*
++* NET-TOOLS A collection of programs that form the base set of the
++* NET-3 Networking Distribution for the LINUX operating
++* system.
++*
++* DO NOT EDIT DIRECTLY
++*
++*/
++
++/*
++ *
++ * Internationalization
++ *
++ * The net-tools package has currently been translated to French,
++ * German and Brazilian Portugese. Other translations are, of
++ * course, welcome. Answer `n' here if you have no support for
++ * internationalization on your system.
++ *
++ */
++#define I18N 1
++
++/*
++ *
++ * Protocol Families.
++ *
++ */
++#define HAVE_AFUNIX 1
++#define HAVE_AFINET 1
++#define HAVE_AFINET6 1
++#define HAVE_AFIPX 1
++#define HAVE_AFATALK 1
++#define HAVE_AFAX25 1
++#define HAVE_AFNETROM 1
++#define HAVE_AFROSE 1
++#define HAVE_AFX25 1
++#define HAVE_AFECONET 1
++#define HAVE_AFDECnet 1
++#define HAVE_AFASH 1
++
++/*
++ *
++ * Device Hardware types.
++ *
++ */
++#define HAVE_HWETHER 1
++#define HAVE_HWARC 1
++#define HAVE_HWSLIP 1
++#define HAVE_HWPPP 1
++#define HAVE_HWTUNNEL 1
++#define HAVE_HWSTRIP 1
++#define HAVE_HWTR 1
++#define HAVE_HWAX25 1
++#define HAVE_HWROSE 1
++#define HAVE_HWNETROM 1
++#define HAVE_HWX25 1
++#define HAVE_HWFR 1
++#define HAVE_HWSIT 1
++#define HAVE_HWFDDI 1
++#define HAVE_HWHIPPI 1
++#define HAVE_HWASH 1
++#define HAVE_HWHDLCLAPB 1
++#define HAVE_HWIRDA 1
++#define HAVE_HWEC 1
++#define HAVE_HWEUI64 1
++
++/*
++ *
++ * Other Features.
++ *
++ */
++#define HAVE_FW_MASQUERADE 1
++#define HAVE_IP_TOOLS 1
++#define HAVE_MII 1
+--- net-tools-1.60.orig/debian/docs
++++ net-tools-1.60/debian/docs
+@@ -0,0 +1,3 @@
++README
++README.ipv6
++TODO
diff --git a/source/a/util-linux-ng/scsi_ioctl.h b/source/a/util-linux-ng/scsi_ioctl.h
new file mode 100644
index 000000000..edb952538
--- /dev/null
+++ b/source/a/util-linux-ng/scsi_ioctl.h
@@ -0,0 +1,48 @@
+#ifndef _SCSI_IOCTL_H
+#define _SCSI_IOCTL_H
+
+#define SCSI_IOCTL_SEND_COMMAND 1
+#define SCSI_IOCTL_TEST_UNIT_READY 2
+#define SCSI_IOCTL_BENCHMARK_COMMAND 3
+#define SCSI_IOCTL_SYNC 4 /* Request synchronous parameters */
+#define SCSI_IOCTL_START_UNIT 5
+#define SCSI_IOCTL_STOP_UNIT 6
+/* The door lock/unlock constants are compatible with Sun constants for
+ the cdrom */
+#define SCSI_IOCTL_DOORLOCK 0x5380 /* lock the eject mechanism */
+#define SCSI_IOCTL_DOORUNLOCK 0x5381 /* unlock the mechanism */
+
+#define SCSI_REMOVAL_PREVENT 1
+#define SCSI_REMOVAL_ALLOW 0
+
+#ifdef __KERNEL__
+
+struct scsi_device;
+
+/*
+ * Structures used for scsi_ioctl et al.
+ */
+
+typedef struct scsi_ioctl_command {
+ unsigned int inlen;
+ unsigned int outlen;
+ unsigned char data[0];
+} Scsi_Ioctl_Command;
+
+typedef struct scsi_idlun {
+ __u32 dev_id;
+ __u32 host_unique_id;
+} Scsi_Idlun;
+
+/* Fibre Channel WWN, port_id struct */
+typedef struct scsi_fctargaddress {
+ __u32 host_port_id;
+ unsigned char host_wwn[8]; // include NULL term.
+} Scsi_FCTargAddress;
+
+extern int scsi_ioctl(struct scsi_device *, int, void __user *);
+extern int scsi_nonblockable_ioctl(struct scsi_device *sdev, int cmd,
+ void __user *arg, struct file *filp);
+
+#endif /* __KERNEL__ */
+#endif /* _SCSI_IOCTL_H */
diff --git a/source/a/util-linux-ng/setserial-rc.serial.diff b/source/a/util-linux-ng/setserial-rc.serial.diff
new file mode 100644
index 000000000..248d253bd
--- /dev/null
+++ b/source/a/util-linux-ng/setserial-rc.serial.diff
@@ -0,0 +1,49 @@
+--- ./rc.serial.orig Thu Jan 27 07:47:30 2000
++++ ./rc.serial Sun May 13 13:27:57 2001
+@@ -14,8 +14,6 @@
+ # XXXX For now, the autosave feature doesn't work if you are
+ # using the multiport feature; it doesn't save the multiport configuration
+ # (for now). Autosave also doesn't work for the hayes devices.
+-# Will fix later...
+-#
+ #
+
+ RCLOCKFILE=/var/lock/subsys/serial
+@@ -87,7 +85,7 @@
+ mv /etc/.serial.conf.new /etc/serial.conf
+ echo "done."
+ fi
+- if test -n $MODULE ; then
++ if test -n "$MODULE" ; then
+ module=`grep $MODULE_REGEXP /proc/modules | awk '{print $1}'`
+ if test -z "$module" ; then
+ echo "The $DRIVER_NAME driver is not loaded."
+@@ -108,22 +106,22 @@
+ # If not stop, it must be a start....
+ #
+
+-if test -n $MODULE -a "$LOADED" != "yes" ; then
+- if insmod -fm $MODULE $DRIVER_ARG \
+- > /tmp/$DRIVER.map 2> /tmp/$DRIVER.$$; then :;
++if test -n "$MODULE" -a "$LOADED" != "yes" ; then
++ if insmod -f $MODULE $DRIVER_ARG ; then
++ true
+ else
+ echo "Couldn't load $DRIVER_NAME driver."
+- echo "See error logs in /tmp/$DRIVER.$$"
+ exit 1
+ fi
+- /bin/rm -f /tmp/$DRIVER.$$
+ fi
+
+ if test -f /etc/serial.conf ; then
+ if test -n ${SETSERIAL} ; then
+ grep -v ^# < /etc/serial.conf | while read device args
+ do
+- ${SETSERIAL} -z $device $args
++ if [ ! "$device" = "" -a ! "$args" = "" ]; then
++ ${SETSERIAL} -z $device $args
++ fi
+ done
+ fi
+ else
diff --git a/source/a/util-linux-ng/slack-desc b/source/a/util-linux-ng/slack-desc
new file mode 100644
index 000000000..e149d7b84
--- /dev/null
+++ b/source/a/util-linux-ng/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------|
+util-linux-ng: util-linux-ng (a huge collection of essential utilities)
+util-linux-ng:
+util-linux-ng: The util-linux package is a huge collection of random utilities
+util-linux-ng: that are essential to run a Linux system. This is a fork of
+util-linux-ng: the original util-linux, based on version 2.13-pre7.
+util-linux-ng:
+util-linux-ng: http://kernel.org/~kzak/util-linux-ng/
+util-linux-ng:
+util-linux-ng:
+util-linux-ng:
+util-linux-ng:
diff --git a/source/a/util-linux-ng/util-linux-ng.SlackBuild b/source/a/util-linux-ng/util-linux-ng.SlackBuild
new file mode 100755
index 000000000..2c2ea55e5
--- /dev/null
+++ b/source/a/util-linux-ng/util-linux-ng.SlackBuild
@@ -0,0 +1,284 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Slackware build script for util-linux-ng
+
+VERSION=${VERSION:-2.14.2}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-2}
+
+ADJTIMEXVERS=1.23
+SETSERIALVERS=2.17
+ZIPTOOLVERS=1.4.0
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-util-linux-ng
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP || exit 1
+rm -rf util-linux-ng-$VERSION
+tar xvf $CWD/util-linux-ng-$VERSION.tar.bz2 || exit 1
+cd util-linux-ng-$VERSION || exit 1
+chown -R root.root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Disabled login and init stuff from being built, as this is provided by
+# shadow and sysvinit
+#
+# /sbin/elvtune is not built, as configure says it only works with 2.2 and
+# 2.4 kernels
+
+# This block is handled near the bottom of the script in symlink creation
+# /bin/setterm -- now located in /usr/bin/setterm
+# /bin/getopt -- same as setterm
+# /usr/bin/readprofile -- now in /usr/sbin
+# /usr/bin/tunelp -- same as readprofile
+
+# Changing the fdisk -l output (this was done prior to util-linux-ng) broke
+# our installation scripts, so we have changed the name of partition type
+# 83 back to "Linux swap":
+zcat $CWD/util-linux-ng.fdisk-no-solaris.diff.gz | patch -p1 || exit 1
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/util-linux-ng-$VERSION \
+ --enable-arch \
+ --enable-agetty \
+ --disable-init \
+ --enable-kill \
+ --enable-rdev \
+ --disable-last \
+ --enable-mesg \
+ --enable-raw \
+ --enable-rename \
+ --enable-reset \
+ --disable-login-utils \
+ --enable-schedutils \
+ --enable-wall \
+ --enable-write \
+ --enable-use-tty-group \
+ --build=$ARCH-slackware-linux \
+ --host=$ARCH-slackware-linux \
+ || exit 1
+
+make || exit 1
+make install DESTDIR=$PKG
+
+# Moving things around that have been in the same place
+# for 15 years is, IMHO, not a wise idea AT ALL.
+# If this had to be moved, some place out of /usr might
+# have shown a grain of insight...
+if [ -r $PKG/usr/sbin/fdformat ]; then
+ mkdir -p $PKG/usr/bin
+ mv $PKG/usr/sbin/fdformat $PKG/usr/bin/fdformat
+ # Now since stuff will start looking in this new place,
+ # we have no choice but to link these:
+ ( cd $PKG/usr/sbin
+ ln -sf ../bin/fdformat .
+ )
+fi
+
+# Install (probably obsolete) rdev manually:
+cat ./sys-utils/rdev > $PKG/sbin/rdev
+chown root:root $PKG/sbin/rdev
+chmod 755 $PKG/sbin/rdev
+#cat ./sys-utils/rdev.8 | gzip -9c > $PKG/usr/man/man8/rdev.8.gz
+
+# Build ziptool
+cd $TMP || exit 1
+rm -rf ziptool-$ZIPTOOLVERS
+tar xvf $CWD/ziptool-$ZIPTOOLVERS.tar.bz2 || exit 1
+cd ziptool-$ZIPTOOLVERS || exit 1
+zcat $CWD/ziptool-fix_build.patch.gz | patch -p1 || exit 1
+mkdir scsi
+cat $CWD/scsi_ioctl.h > scsi/scsi_ioctl.h
+chown -R root:root .
+make || exit 1
+strip ziptool
+cat ziptool > $PKG/sbin/ziptool
+chmod 0755 $PKG/sbin/ziptool
+mkdir -p $PKG/usr/doc/ziptool-$ZIPTOOLVERS
+cp -a README $PKG/usr/doc/ziptool-$ZIPTOOLVERS
+chmod 644 $PKG/usr/doc/ziptool-$ZIPTOOLVERS/*
+cat ziptool.1.gz > $PKG/usr/man/man1/ziptool.1.gz
+
+# Build bsdstrings
+cd $TMP || exit 1
+rm -rf bsdstrings
+tar xvf $CWD/bsdstrings.tar.gz || exit 1
+cd bsdstrings || exit 1
+make || exit 1
+strip strings
+cat strings > $PKG/usr/bin/strings
+chmod 0755 $PKG/usr/bin/strings
+cat strings.1 | gzip -9c > $PKG/usr/man/man1/strings.1.gz
+
+# Add just the hostname utilities from net-tools, so that anyone
+# installing just the A series will not have a hostname (null):
+cd $TMP || exit 1
+rm -rf net-tools-1.60
+tar xvf $CWD/net-tools-1.60.tar.bz2
+cd net-tools-1.60
+zcat $CWD/net-tools_1.60-19.diff.gz | patch -p1 || exit
+zcat $CWD/net-tools.diff.gz | patch -p1 || exit
+make
+make hostname
+strip hostname
+cat hostname > $PKG/bin/hostname
+chmod 755 $PKG/bin/hostname
+chown root:root $PKG/bin/hostname
+( cd $PKG/bin
+ ln -sf hostname dnsdomainname
+ ln -sf hostname nisdomainname
+ ln -sf hostname ypdomainname
+ ln -sf hostname domainname
+)
+cd man/en_US
+for page in hostname.1 dnsdomainname.1 nisdomainname.1 ypdomainname.1 \
+domainname.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+
+# Build adjtimex
+cd $TMP || exit 1
+rm -rf adjtimex-$ADJTIMEXVERS
+tar xvf $CWD/adjtimex_${ADJTIMEXVERS}.orig.tar.gz || exit 1
+cd adjtimex-$ADJTIMEXVERS || exit 1
+chown -R root:root .
+zcat $CWD/adjtimex_1.23-1.diff.gz | patch -p1 || exit 1
+CFLAGS=-O2 ./configure --prefix=/usr || exit 1
+make || exit 1
+strip adjtimex
+cat adjtimex > $PKG/sbin/adjtimex
+chmod 0755 $PKG/sbin/adjtimex
+cat adjtimex.8 | gzip -9c > $PKG/usr/man/man8/adjtimex.8.gz
+mkdir -p $PKG/usr/doc/adjtimex-$ADJTIMEXVERS
+cp -a COPYING COPYRIGHT README README.ru adjtimex.lsm \
+ $PKG/usr/doc/adjtimex-$ADJTIMEXVERS
+
+# Build setserial
+cd $TMP || exit 1
+rm -rf setserial-$SETSERIALVERS
+tar xvf $CWD/setserial-$SETSERIALVERS.tar.gz || exit 1
+cd setserial-$SETSERIALVERS || exit 1
+chown -R root:root .
+zcat $CWD/setserial-rc.serial.diff.gz | patch -E -p1 --verbose || exit 1
+# The original config.{guess,sub} do not work on x86_64
+cp -p /usr/share/libtool/config.{guess,sub} .
+./configure --prefix=/usr || exit 1
+make || exit 1
+strip setserial
+cat setserial > $PKG/sbin/setserial
+chmod 0755 $PKG/sbin/setserial
+mkdir -p $PKG/etc/rc.d
+cat rc.serial > $PKG/etc/rc.d/rc.serial.new
+cat serial.conf > $PKG/etc/serial.conf.new
+cat setserial.8 | gzip -9c > $PKG/usr/man/man8/setserial.8.gz
+
+# These have always traditionally been available before /usr
+# might be mounted:
+( cd $PKG/usr/bin
+ mv getopt setterm $PKG/bin
+ cd $PKG/usr/bin
+ ln -s ../../bin/getopt .
+ ln -s ../../bin/setterm .
+)
+
+cd $TMP/util-linux-ng-$VERSION # Go back home :)
+
+# Now let's add some important symlinks :)
+( cd $PKG/sbin
+ ln -s ../bin/mount .
+ ln -s ../bin/umount .
+ ln -s ziptool jaztool
+ ln -s hwclock clock
+ cd $PKG/usr/sbin
+ ln -s ../../sbin/cfdisk .
+ ln -s ../../sbin/ctrlaltdel .
+ ln -s ../../sbin/sfdisk .
+ cd $PKG/usr/bin
+ ln -s ../sbin/readprofile .
+ ln -s ../sbin/tunelp .
+ ln -s ../../bin/more .
+ ln -s ../../sbin/raw .
+ cd $PKG/usr/man/man1
+ ln -s ziptool.1 jaztool.1
+ cd $PKG/usr/man/man8
+ ln -s hwclock.8 clock.8
+)
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info page and remove dir file
+rm $PKG/usr/info/dir
+gzip -9 $PKG/usr/info/*
+
+mkdir -p $PKG/usr/doc/util-linux-ng-$VERSION
+cp ABOUT-NLS AUTHORS COPYING DEPRECATED NEWS README* TODO docs/* \
+ $PKG/usr/doc/util-linux-ng-$VERSION
+
+mkdir $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/util-linux-ng-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff
new file mode 100644
index 000000000..a3aa100e9
--- /dev/null
+++ b/source/a/util-linux-ng/util-linux-ng.fdisk-no-solaris.diff
@@ -0,0 +1,11 @@
+--- ./fdisk/i386_sys_types.c.orig 2007-04-25 07:43:38.000000000 -0500
++++ ./fdisk/i386_sys_types.c 2008-03-31 14:53:52.000000000 -0500
+@@ -53,7 +53,7 @@
+ {0x75, N_("PC/IX")},
+ {0x80, N_("Old Minix")}, /* Minix 1.4a and earlier */
+ {0x81, N_("Minix / old Linux")},/* Minix 1.4b and later */
+- {0x82, N_("Linux swap / Solaris")},
++ {0x82, N_("Linux swap")},
+ {0x83, N_("Linux")},
+ {0x84, N_("OS/2 hidden C: drive")},
+ {0x85, N_("Linux extended")},
diff --git a/source/a/util-linux-ng/ziptool-fix_build.patch b/source/a/util-linux-ng/ziptool-fix_build.patch
new file mode 100644
index 000000000..a2d3d5157
--- /dev/null
+++ b/source/a/util-linux-ng/ziptool-fix_build.patch
@@ -0,0 +1,24 @@
+diff -Nur ziptool-1.4.0.orig/Makefile ziptool-1.4.0/Makefile
+--- ziptool-1.4.0.orig/Makefile 2002-08-23 17:13:48.000000000 -0500
++++ ziptool-1.4.0/Makefile 2009-02-09 16:33:12.913637302 -0600
+@@ -5,10 +5,6 @@
+ #
+ CFLAGS = -O2 -g -Wall
+
+-# Path to linux kernel sources.
+-#
+-LINUX_SRC_DIR = /usr/src/linux
+-
+ # Installation directories
+ #
+ INSTALL_BIN_DIR = /usr/bin
+@@ -30,7 +26,7 @@
+ cd $(INSTALL_MAN_DIR)/man1; ln -sf ziptool.1.gz jaztool.1.gz
+
+ ziptool: ziptool.c
+- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o ziptool ziptool.c
++ cc $(CFLAGS) -I. -o ziptool ziptool.c
+
+ jaztool: ziptool.c
+- cc $(CFLAGS) -I$(LINUX_SRC_DIR)/include -o jaztool ziptool.c
++ cc $(CFLAGS) -I. -o jaztool ziptool.c
diff --git a/source/a/which/slack-desc b/source/a/which/slack-desc
new file mode 100644
index 000000000..75085fe10
--- /dev/null
+++ b/source/a/which/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+which: which (shows the full path to shell commands)
+which:
+which: GNU 'which' takes one or more arguments. For each of its arguments it
+which: prints to stdout the full path of the executables that would have been
+which: executed when this argument had been entered at the shell prompt. It
+which: does this by searching for an executable or script in the directories
+which: listed in the environment variable PATH using the same algorithm as
+which: bash(1). 'Which' is a built-in function in many shells.
+which:
+which: The GNU version of which was written by Carlo Wood.
+which:
diff --git a/source/a/which/which.SlackBuild b/source/a/which/which.SlackBuild
new file mode 100755
index 000000000..f86fd1da8
--- /dev/null
+++ b/source/a/which/which.SlackBuild
@@ -0,0 +1,99 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.20
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-which
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf which-$VERSION
+tar xvf $CWD/which-$VERSION.tar.gz || exit 1
+cd which-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS=-O2 \
+./configure \
+ --prefix=/usr \
+ --infodir=/usr/info \
+ --mandir=/usr/man \
+ --build=$ARCH-slackware-linux
+
+make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+mkdir $PKG/bin
+mv $PKG/usr/bin/which $PKG/bin
+( cd $PKG/usr/bin ; ln -sf ../../bin/which which )
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+mkdir -p $PKG/usr/doc/which-$VERSION
+cp -a \
+ AUTHORS COPYING EXAMPLES NEWS README README.alias \
+ $PKG/usr/doc/which-$VERSION
+
+# Strip everything for good measure:
+find $PKG | xargs file | grep -e "executable" -e "shared object" \
+ | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/which-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/xfsprogs/slack-desc b/source/a/xfsprogs/slack-desc
new file mode 100644
index 000000000..25f37656e
--- /dev/null
+++ b/source/a/xfsprogs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xfsprogs: xfsprogs (tools to use the XFS filesystem)
+xfsprogs:
+xfsprogs: XFS is a high performance journaling filesystem which originated
+xfsprogs: on the SGI IRIX platform. It is completely multi-threaded, can
+xfsprogs: support large files and large filesystems, extended attributes,
+xfsprogs: variable block sizes, is extent based, and makes extensive use of
+xfsprogs: Btrees (directories, extents, free space) to aid both performance
+xfsprogs: and scalability.
+xfsprogs:
+xfsprogs:
+xfsprogs:
diff --git a/source/a/xfsprogs/xfsprogs.SlackBuild b/source/a/xfsprogs/xfsprogs.SlackBuild
new file mode 100755
index 000000000..7ef1c07c6
--- /dev/null
+++ b/source/a/xfsprogs/xfsprogs.SlackBuild
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=3.0.1
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-xfsprogs
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf xfsprogs-$VERSION
+tar xvf $CWD/xfsprogs-$VERSION.tar.?z* || exit 1
+cd xfsprogs-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Make sure you have the same version of autoconf as the
+# developers did... ;-)
+autoconf
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --libexecdir=/usr/lib${LIBDIRSUFFIX} \
+ --sbindir=/sbin \
+ --bindir=/usr/sbin \
+ --datadir=/usr/share \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/xfsprogs-$VERSION \
+ --enable-shared=yes \
+ --enable-gettext=yes \
+ --build=$ARCH-slackware-linux
+
+make $NUMJOBS || make || exit 1
+make install DIST_ROOT=$PKG
+make install-dev DIST_ROOT=$PKG
+
+mv $PKG/usr/share/doc $PKG/usr
+mv $PKG/usr/doc/xfsprogs $PKG/usr/doc/xfsprogs-$VERSION
+#It would be nice to keep the same timestamps that the files have in the source:
+cp -a README doc/COPYING doc/CREDITS doc/PORTING \
+ $PKG/usr/doc/xfsprogs-$VERSION
+
+# Remove bogus files:
+rm -f $PKG/lib${LIBDIRSUFFIX}/*.a $PKG/lib${LIBDIRSUFFIX}/*.so \
+ $PKG/lib${LIBDIRSUFFIX}/*.la $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+# Make /usr/lib/libhandle.so a symlink to /lib/libhandle.so.1:
+if [ -f $PKG/lib${LIBDIRSUFFIX}/libhandle.so.1 ]; then
+ ( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ rm -f libhandle.so
+ ln -sf /lib${LIBDIRSUFFIX}/libhandle.so.1 libhandle.so
+ )
+else
+ exit 1
+ # and fix your script! ;-)
+fi
+# Fix shared library perms:
+chmod 755 $PKG/lib${LIBDIRSUFFIX}/*
+
+# Strip libraries:
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+strip -g $PKG/usr/lib${LIBDIRSUFFIX}/*.a
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/xfsprogs-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/xz/slack-desc b/source/a/xz/slack-desc
new file mode 100644
index 000000000..af549b358
--- /dev/null
+++ b/source/a/xz/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xz: xz (compression utility based on the LZMA algorithm)
+xz:
+xz: LZMA is a general purporse compression algorithm designed by Igor
+xz: Pavlov as part of 7-Zip. It provides high compression ratio while
+xz: keeping the decompression speed fast. XZ Utils are an attempt to make
+xz: LZMA compression easy to use on free (as in freedom) operating
+xz: systems.
+xz:
+xz: The people most responsible for xz are Igor Pavlov, Ville Koskinen,
+xz: and Lasse Collin. For more info: http://tukaani.org/xz/
+xz:
diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild
new file mode 100755
index 000000000..240334178
--- /dev/null
+++ b/source/a/xz/xz.SlackBuild
@@ -0,0 +1,137 @@
+#!/bin/sh
+
+# Copyright 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# All rights reserved.
+
+# Permission to use, copy, modify, and distribute this software for
+# any purpose with or without fee is hereby granted, provided that
+# the above copyright notice and this permission notice appear in all
+# copies.
+#
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+PRGNAM=xz
+VERSION=${VERSION:-4.999.8beta}
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+case "$ARCH" in
+ i486) SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ;;
+ s390) SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ ;;
+ powerpc) SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ ;;
+ x86_64) SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ ;;
+ athlon-xp) SLKCFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
+ LIBDIRSUFFIX=""
+ ;;
+ arm) SLKCFLAGS="-O2 -march=armv4 -mtune=xscale"
+ LIBDIRSUFFIX=""
+ ;;
+ armel) SLKCFLAGS="-O2 -march=armv4t"
+ LIBDIRSUFFIX=""
+ ;;
+
+esac
+
+CWD=$(pwd)
+# Temporary build location. This should *NOT* be a directory
+# path a non-root user could create later...
+TMP=${TMP:-/xz-tmp-$(mcookie)}
+PKG=$TMP/package-$PRGNAM
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.bz2 || exit 1
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --enable-shared \
+ --disable-static \
+ --disable-rpath \
+ --program-prefix= \
+ --program-suffix= \
+ --build=$ARCH-slackware-linux
+
+make || exit 1
+make DESTDIR=$PKG install
+
+# It might be advisable to have the libraries in /lib${LIBDIRSUFFIX}:
+mkdir -p $PKG/lib${LIBDIRSUFFIX}
+mv $PKG/usr/lib${LIBDIRSUFFIX}/liblzma.so.* $PKG/lib${LIBDIRSUFFIX}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ rm -f liblzma.so
+ ln -sf ../../lib${LIBDIRSUFFIX}/liblzma.so.? liblzma.so
+)
+
+# At least the xz binary should also be in /bin:
+mkdir -p $PKG/bin
+mv $PKG/usr/bin/xz $PKG/bin
+( cd $PKG/usr/bin
+ ln -sf ../../bin/xz .
+)
+
+# Strip binaries:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-debug 2> /dev/null
+)
+
+# Compress and link manpages, if any:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a \
+ ABOUT-NLS AUTHORS COPYING* ChangeLog INSTALL NEWS README* THANKS doc/* \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+find $PKG/usr/doc -type f -exec chmod 644 {} \;
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz
+
diff --git a/source/a/zoo/slack-desc b/source/a/zoo/slack-desc
new file mode 100644
index 000000000..f517e17a2
--- /dev/null
+++ b/source/a/zoo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+zoo: zoo (archiving and compressing utility)
+zoo:
+zoo: Zoo is used to create and maintain collections of files in compressed
+zoo: form. It uses a Lempel-Ziv compression algorithm that gives space
+zoo: savings in the range of 20% to 80% depending on the type of file data.
+zoo: Zoo can store and selectively extract multiple generations of the same
+zoo: file. Data can be recovered from damaged archives by skipping the
+zoo: damaged portion and locating undamaged data with the help of fiz(1).
+zoo:
+zoo: Zoo was written by Rahul Dhesi.
+zoo:
diff --git a/source/a/zoo/zoo.SlackBuild b/source/a/zoo/zoo.SlackBuild
new file mode 100755
index 000000000..c667b076e
--- /dev/null
+++ b/source/a/zoo/zoo.SlackBuild
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+VERSION=2.10
+DEBPATCH=18
+ARCH=${ARCH:-x86_64}
+BUILD=${BUILD:-1}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-zoo
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+
+cd $TMP
+rm -rf zoo-$VERSION
+tar xzvf $CWD/zoo-$VERSION.tar.gz
+cd zoo-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/zoo_${VERSION}-${DEBPATCH}.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
+for diff in debian/patches/*.dpatch ; do
+ cat $diff | patch -p1 --verbose --backup --suffix=.orig || exit 1
+done
+make linux || exit 1
+mkdir -p $PKG/usr/bin
+cat fiz > $PKG/usr/bin/fiz
+cat zoo > $PKG/usr/bin/zoo
+chmod 755 $PKG/usr/bin/*
+mkdir -p $PKG/usr/man/man1
+for page in fiz.1 zoo.1 ; do
+ cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
+done
+mkdir -p $PKG/usr/doc/zoo-${VERSION}
+cp -a \
+ Copyright Install \
+ $PKG/usr/doc/zoo-${VERSION}
+
+# Strip everything for good measure:
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+)
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -l y -c n $TMP/zoo-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/zoo/zoo_2.10-18.diff b/source/a/zoo/zoo_2.10-18.diff
new file mode 100644
index 000000000..b0c741347
--- /dev/null
+++ b/source/a/zoo/zoo_2.10-18.diff
@@ -0,0 +1,1285 @@
+--- zoo-2.10.orig/debian/patches/01_old_fixes.dpatch
++++ zoo-2.10/debian/patches/01_old_fixes.dpatch
+@@ -0,0 +1,597 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 01_old_fixes.dpatch by Jose Carlos Medeiros <debian@psabs.com.br>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Old fixes, that were made before this package has changed to use dpatch.
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
++
++if [ $# -lt 1 ]; then
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "$1" in
++ -patch) patch $patch_opts -p1 < $0;;
++ -unpatch) patch $patch_opts -p1 -R < $0;;
++ *)
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++diff -urNad zoo-2.10~/ar.h zoo-2.10/ar.h
++--- zoo-2.10~/ar.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/ar.h 2005-11-16 17:28:23.308950960 -0200
++@@ -7,6 +7,7 @@
++ ***********************************************************/
++
++ #include <stdio.h>
+++#include <sys/types.h>
++
++ #ifdef ANSI_HDRS
++ # include <limits.h>
++@@ -15,9 +16,11 @@
++ /* uchar should be 8 bits or more */
++ /* typedef unsigned char uchar; -- already in zoo.h */
++
+++#ifndef _SYS_TYPES_H
++ typedef unsigned int uint; /* 16 bits or more */
++ typedef unsigned short ushort; /* 16 bits or more */
++ typedef unsigned long ulong; /* 32 bits or more */
+++#endif
++
++ /* T_UINT16 must be #defined in options.h to be
++ a 16-bit unsigned integer type */
++diff -urNad zoo-2.10~/basename.c zoo-2.10/basename.c
++--- zoo-2.10~/basename.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/basename.c 2005-11-16 17:28:23.308950960 -0200
++@@ -18,7 +18,7 @@
++
++ /* This function strips device/directory information from
++ a pathname and returns just the plain filename */
++-void basename (pathname, fname)
+++void zoo_basename (pathname, fname)
++ char *pathname;
++ char fname[];
++ {
++diff -urNad zoo-2.10~/fiz.1 zoo-2.10/fiz.1
++--- zoo-2.10~/fiz.1 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/fiz.1 2005-11-16 17:28:23.309950808 -0200
++@@ -5,7 +5,7 @@
++ .\"
++ .TH FIZ 1 "Jan 31, 1988"
++ .SH NAME
++-fiz \- analyze damaged zoo archive for data revovery
+++fiz \- analyze damaged zoo archive for data recovery
++ .SH SYNOPSIS
++ .I fiz
++ .RB archive[ .zoo ]
++diff -urNad zoo-2.10~/linux.c zoo-2.10/linux.c
++--- zoo-2.10~/linux.c 1969-12-31 21:00:00.000000000 -0300
+++++ zoo-2.10/linux.c 2005-11-16 17:28:23.310950656 -0200
++@@ -0,0 +1,73 @@
+++/* machine.c for Linux. */
+++
+++/* Basically code stolen from bsd.c, and adjusted for Linux. */
+++
+++#include <sys/stat.h>
+++#include <sys/time.h>
+++#include <unistd.h>
+++
+++/* Function isadir() returns 1 if the supplied handle is a directory,
+++ * else it returns 0. */
+++
+++int isadir (ZOOFILE f)
+++{
+++ struct stat buffer; /* buffer to hold file information */
+++
+++ if (fstat (fileno (f), &buffer) == -1)
+++ return (0); /* inaccessible -- assume not dir */
+++ else
+++ {
+++ if (buffer.st_mode & S_IFDIR)
+++ return (1);
+++ else
+++ return (0);
+++ }
+++}
+++
+++
+++/* Standard UNIX-compatible time routines */
+++#include "nixtime.i"
+++
+++/* Standard UNIX-specific file attribute routines */
+++#include "nixmode.i"
+++
+++/* Function gettz() returns the offset from GMT in seconds */
+++long gettz()
+++{
+++#define SEC_IN_DAY (24L * 60L * 60L)
+++#define INV_VALUE (SEC_IN_DAY + 1L)
+++
+++ static long retval = INV_VALUE; /* cache, init to impossible value */
+++ struct timeval tp;
+++ struct timezone tzp;
+++
+++ if (retval != INV_VALUE) /* if have cached value, return it */
+++ return retval;
+++
+++ gettimeofday (&tp, &tzp);
+++
+++ retval = tzp.tz_minuteswest * 60 - tzp.tz_dsttime * 3600L;
+++ return retval;
+++}
+++
+++/* Function fixfname() converts the supplied filename to a syntax
+++ * legal for the host system. It is used during extraction.
+++ * Undocumented */
+++
+++char *fixfname(char *fname)
+++{
+++ return fname; /* default is no-op */
+++}
+++
+++/* Function zootrunc() truncates the file passed to it.
+++ * Undocumented. */
+++
+++int zootrunc(FILE *f)
+++{
+++ long seekpos;
+++ int fd = fileno(f);
+++
+++ seekpos = lseek(fd, 0L, SEEK_CUR);
+++ if (seekpos >= 0)
+++ return ftruncate(fd, seekpos);
+++}
++diff -urNad zoo-2.10~/machine.c zoo-2.10/machine.c
++--- zoo-2.10~/machine.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/machine.c 2005-11-16 17:28:23.310950656 -0200
++@@ -48,6 +48,10 @@
++ /* PART 2. FOR EACH SPECIFIC SYSTEM, INCLUDE A C FILE HERE. */
++ /***********************************************************************/
++
+++#ifdef LINUX
+++#include "linux.c"
+++#endif
+++
++ #ifdef SYS_V
++ #include "sysv.c"
++ #endif
++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile
++--- zoo-2.10~/makefile 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/makefile 2005-11-16 17:28:23.311950504 -0200
++@@ -23,7 +23,7 @@
++ MODEL =
++ EXTRA = -DBIG_MEM -DNDEBUG
++ LINTFLAGS = -DLINT
++-OPTIM = -O
+++OPTIM = -O -Wall
++ DESTDIR = /usr/local/bin
++
++ #List of all object files created for Zoo
++@@ -53,6 +53,7 @@
++ @echo "ultrix: ULTRIX 4.1"
++ @echo "convex: Convex C200 series"
++ @echo "sysv: System V Release 2 or 3; or SCO Xenix"
+++ @echo "linux: Linux"
++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS"
++ @echo "xenix286: Older Xenix/286 (not tested)"
++ @echo "xenix68k: Xenix/68000 (not tested)"
++@@ -94,6 +95,10 @@
++ bsd:
++ $(MAKE) CFLAGS="-c $(OPTIM) -DBSD4_3" $(TARGETS)
++
+++# Linux
+++linux:
+++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS)
+++
++ # ULTRIX 4.1
++ ultrix:
++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS)
++@@ -235,7 +240,11 @@
++ parse.o: zoofns.h zooio.h
++ portable.o: /usr/include/stdio.h assert.h debug.h machine.h options.h
++ portable.o: portable.h various.h zoo.h zoofns.h zooio.h
++-prterror.o: /usr/include/stdio.h /usr/include/varargs.h options.h various.h
+++
+++# I deleted varags.h dependancy from prterror.o since that is a
+++# dependancy covered by a #ifdef, and in Debian's case #undef'ed
+++
+++prterror.o: /usr/include/stdio.h options.h various.h
++ prterror.o: zoofns.h zooio.h
++ sysv.o: /usr/include/sys/stat.h /usr/include/sys/types.h /usr/include/time.h
++ sysv.o: nixmode.i nixtime.i
++diff -urNad zoo-2.10~/makelist.c zoo-2.10/makelist.c
++--- zoo-2.10~/makelist.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/makelist.c 2005-11-16 17:28:23.311950504 -0200
++@@ -21,6 +21,8 @@
++
++ char *nameptr PARMS((char *));
++ void modpath PARMS((char *));
+++int isadir PARMS((ZOOFILE));
+++int isfdir PARMS((char *));
++
++ /*******************/
++ /*
++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c
++--- zoo-2.10~/misc.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/misc.c 2005-11-16 17:28:23.313950200 -0200
++@@ -8,6 +8,7 @@
++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ */
+++#include <signal.h>
++ #include "options.h"
++ /* Miscellaneous functions needed by Zoo but not by Ooz */
++
++@@ -201,7 +202,7 @@
++ ZOOFILE zoo_file;
++ {
++ #ifndef NOSIGNAL
++- T_SIGNAL (*oldsignal)();
+++ T_SIGNAL (*oldsignal)(int);
++ oldsignal = signal (SIGINT, SIG_IGN);
++ #endif
++ if (fwr_dir (direntry, zoo_file) == -1)
++diff -urNad zoo-2.10~/misc2.c zoo-2.10/misc2.c
++--- zoo-2.10~/misc2.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/misc2.c 2005-11-16 17:28:23.312950352 -0200
++@@ -7,6 +7,10 @@
++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ */
+++#include <sys/stat.h>
+++#include <sys/types.h>
+++#include <fcntl.h>
+++#include <unistd.h>
++ #include "options.h"
++ /* Miscellaneous routines */
++ #include "portable.h"
++diff -urNad zoo-2.10~/nixtime.i zoo-2.10/nixtime.i
++--- zoo-2.10~/nixtime.i 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/nixtime.i 2005-11-16 17:28:23.313950200 -0200
++@@ -10,6 +10,9 @@
++
++ -- Rahul Dhesi 1986/12/31
++ */
+++#include <sys/types.h>
+++#include <time.h>
+++#include <utime.h>
++
++ struct tm *localtime();
++
++@@ -51,9 +54,10 @@
++ {
++ long mstonix();
++ long gettz();
++- long utimbuf[2];
++- utimbuf[0] = utimbuf[1] = gettz() + mstonix (date, time);
++- return (utime (path, utimbuf));
+++ struct utimbuf utbf;
+++
+++ utbf.actime = utbf.modtime = gettz() + mstonix (date, time);
+++ return (utime (path, &utbf));
++ }
++
++ /****************
++diff -urNad zoo-2.10~/options.h zoo-2.10/options.h
++--- zoo-2.10~/options.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/options.h 2005-11-16 17:28:23.314950048 -0200
++@@ -13,6 +13,32 @@
++
++
++ /***********************************************************************/
+++/* Linux */
+++/***********************************************************************/
+++
+++#ifdef LINUX
+++#define FILTER
+++#define IO_MACROS
+++#define EXISTS(f) (access(f, 00) == 0)
+++#define FNLIMIT 1023
+++#define CHEKDIR
+++#define NIXTIME
+++#define NIXFNAME
+++#define NEEDCTYP
+++#define NOENUM
+++#define REN_STDC
+++#define SETBUF
+++#define GETTZ
+++#define FATTR
+++#define T_SIGNAL void
+++#define STDARG
+++#define HAVE_ISATTY /* undocumented #define option */
+++#define ANSI_PROTO
+++#define VOIDPTR void *
+++#define NO_STDIO_FN /* Do we need this? RUARI QUINN */
+++#endif /* Linux */
+++
+++/***********************************************************************/
++ /* SYSTEM V (should be compatible with most releases) */
++ /***********************************************************************/
++
++diff -urNad zoo-2.10~/portable.h zoo-2.10/portable.h
++--- zoo-2.10~/portable.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/portable.h 2005-11-16 17:28:23.314950048 -0200
++@@ -90,6 +90,12 @@
++ #define MKDIR(x) mkdir(x, 0777)
++ #endif
++
+++/* Linux */
+++#ifdef LINUX
+++#define NIX_IO /* standard **IX I/O */
+++#define MKDIR(x) mkdir(x, 0777)
+++#endif
+++
++ /* Amiga */
++ #ifdef MCH_AMIGA
++ # include "MCH_AMIGA NEEDS REVISION"
++diff -urNad zoo-2.10~/zoo.1 zoo-2.10/zoo.1
++--- zoo-2.10~/zoo.1 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoo.1 2005-11-16 17:33:56.112357152 -0200
++@@ -955,7 +955,7 @@
++ 2526: DIR [changes] ==> 95
++ 2587: DATA
++ ****************
++- 3909: DIR [copyrite] ==> 1478
+++ 3909: DIR [copyright] ==> 1478
++ 3970: DATA
++ 4769: DATA
++ ****************
++@@ -1041,7 +1041,7 @@
++ Matches any sequence of zero or more characters.
++ .PP
++ .TP
++-.B \?
+++.B ?
++ Matches any single character.
++ .sp 1
++ Arbitrary combinations of
++@@ -1466,23 +1466,12 @@
++ .I zoo
++ on all systems. So far as I can tell, this
++ upward compatibility (all manipulations) and downward
++-compatiblity (ability to extract and list)
+++compatibility (ability to extract and list)
++ is maintained by
++ .I zoo
++ versions up to 2.01. Version 2.1 adds the incompatibility
++ that if high-performance compression is used, earlier
++ versions cannot extract files compressed with version 2.1.
++-This is the only incompatibility that is permissible.
++-You are forbidden, with the force of
++-copyright law, to create from the
++-.I zoo
++-source code any derivative work
++-that violates this compatibility goal,
++-whether knowingly or through negligence.
++-If any violation of this
++-compatibility goal is observed,
++-this should be
++-considered a serious problem and reported to me.
++ .SH CHANGES
++ Here is a list of changes occurring from version 1.50 to
++ version 2.01. In parentheses is given the version in which each
++@@ -1581,7 +1570,7 @@
++ .TP
++ \-
++ (2.01) Blanks around equal signs in commands given to "make"
++-were removed from the mk* scripts for better compatiblity
+++were removed from the mk* scripts for better compatibility
++ with more **IX implementations including Sun's.
++ .TP
++ \-
++diff -urNad zoo-2.10~/zoo.c zoo-2.10/zoo.c
++--- zoo-2.10~/zoo.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoo.c 2005-11-16 17:28:23.319949288 -0200
++@@ -15,6 +15,7 @@
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved
++ */
+++#include <unistd.h>
++ #include "options.h"
++ #include "zooio.h"
++ #include "various.h"
++diff -urNad zoo-2.10~/zoo.h zoo-2.10/zoo.h
++--- zoo-2.10~/zoo.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoo.h 2005-11-16 17:28:23.321948984 -0200
++@@ -1,5 +1,6 @@
++ /* derived from: zoo.h 2.16 88/01/27 23:21:36 */
++-
+++#ifndef ZOO_H
+++#define ZOO_H
++ /*
++ The contents of this file are hereby released to the public domain.
++
++@@ -240,3 +241,4 @@
++ #define MAXGEN 0x0f
++ /* version mask to prune down to correct size on large-word machines */
++ #define VER_MASK 0xffff
+++#endif
++diff -urNad zoo-2.10~/zooadd.c zoo-2.10/zooadd.c
++--- zoo-2.10~/zooadd.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zooadd.c 2005-11-16 17:28:23.318949440 -0200
++@@ -9,11 +9,13 @@
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1991 Rahul Dhesi -- All rights reserved
++ */
+++#include <unistd.h>
++ #include "options.h"
++ /* Adds files specified in parameter-list to archive zoo_path. */
++
++ #define LONGEST 20 /* assumed length of longest filename */
++ #include "zoomem.h" /* to define MAXADD */
+++#undef PORTABLE
++ #include "zoo.h"
++ #include "zooio.h"
++ #include "various.h"
++@@ -37,6 +39,7 @@
++ void copyfields PARMS ((struct direntry *, struct tiny_header *));
++ void storefname PARMS ((struct direntry *, char *, int));
++ char *choosefname PARMS ((struct direntry *));
+++int isadir PARMS((ZOOFILE));
++
++ extern struct zoo_header zoo_header;
++
++@@ -132,7 +135,7 @@
++
++ if (zoo_file == NOFILE)
++ prterror ('f', could_not_open, zoo_path);
++-basename(zoo_path, zoo_fname); /* get basename of archive */
+++zoo_basename(zoo_path, zoo_fname); /* get basename of archive */
++ rootname (zoo_path, zoo_bak); /* name without extension */
++ strcat (zoo_bak, BACKUP_EXT); /* name of backup of this archive */
++
++@@ -222,7 +225,7 @@
++ break;
++ }
++
++- basename (this_path, this_fname); /* get just filename for later */
+++ zoo_basename (this_path, this_fname); /* get just filename for later */
++
++ this_file = zooopen(this_path, Z_READ);
++ if (this_file == NOFILE) {
++diff -urNad zoo-2.10~/zooadd2.c zoo-2.10/zooadd2.c
++--- zoo-2.10~/zooadd2.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zooadd2.c 2005-11-16 17:28:23.317949592 -0200
++@@ -7,7 +7,9 @@
++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ */
+++#include <unistd.h>
++ #include "options.h"
+++#undef PORTABLE
++ #include "zoo.h"
++ #ifndef OK_STDIO
++ #include <stdio.h>
++@@ -20,7 +22,7 @@
++ #include "assert.h"
++ #include "debug.h"
++ #include "parse.h"
++-
+++int isfdir PARMS((char *));
++ /*
++ Miscellaneous routines to support zooadd().
++ */
++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c
++--- zoo-2.10~/zooext.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zooext.c 2005-11-16 17:28:23.320949136 -0200
++@@ -14,7 +14,8 @@
++ /* Extract file from archive. Extracts files specified in parameter-list
++ from archive zoo_path. If none specified, extracts all files from
++ archive. */
++-
+++#include <unistd.h>
+++#include <signal.h>
++ #include "options.h"
++ #include "zoo.h"
++ #include "parse.h" /* defines struct for parse() */
++@@ -62,7 +63,7 @@
++ char *whichname; /* which name to extract */
++ char matchname[PATHSIZE]; /* for pattern matching only */
++ #ifndef NOSIGNAL
++-T_SIGNAL (*oldsignal)(); /* to save previous SIGINT handler */
+++T_SIGNAL (*oldsignal)(int); /* to save previous SIGINT handler */
++ #endif
++ ZOOFILE zoo_file; /* open archive */
++ long next_ptr; /* pointer to within archive */
++@@ -626,7 +627,7 @@
++
++ /* Ctrl_c() is called if ^C is hit while a file is being extracted.
++ It closes the files, deletes it, and exits. */
++-T_SIGNAL ctrl_c()
+++T_SIGNAL ctrl_c(int dummy)
++ {
++ #ifndef NOSIGNAL
++ signal (SIGINT, SIG_IGN); /* ignore any more */
++diff -urNad zoo-2.10~/zoofns.h zoo-2.10/zoofns.h
++--- zoo-2.10~/zoofns.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoofns.h 2005-11-16 17:28:23.320949136 -0200
++@@ -42,12 +42,12 @@
++ int cfactor PARMS ((long, long));
++ int chname PARMS ((char *, char *));
++ int cmpnum PARMS ((unsigned int, unsigned int, unsigned int, unsigned int));
++-T_SIGNAL ctrl_c PARMS ((void));
+++T_SIGNAL ctrl_c PARMS ((int));
++ int exists PARMS ((char *));
++ int getfile PARMS ((ZOOFILE, ZOOFILE, long, int));
++ int getutime PARMS ((char *, unsigned *, unsigned *));
++ int gettime PARMS ((ZOOFILE, unsigned *, unsigned *));
++-T_SIGNAL handle_break PARMS ((void));
+++T_SIGNAL handle_break PARMS ((int));
++
++ #ifdef USE_ASCII
++ int isupper PARMS ((int));
++@@ -85,7 +85,7 @@
++ void addfname PARMS ((char *, long, unsigned int, unsigned int,
++ unsigned, unsigned));
++ void add_version PARMS ((char *, struct direntry *));
++-void basename PARMS ((char *, char []));
+++void zoo_basename PARMS ((char *, char []));
++ void break_off PARMS ((void));
++ void close_file PARMS ((ZOOFILE));
++ void comment PARMS ((char *, char *));
++diff -urNad zoo-2.10~/zooio.h zoo-2.10/zooio.h
++--- zoo-2.10~/zooio.h 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zooio.h 2005-11-16 17:28:23.321948984 -0200
++@@ -7,6 +7,7 @@
++
++ -- Rahul Dhesi 1988/01/24
++ */
+++#include "zoo.h"
++ #ifndef OK_STDIO
++ #include <stdio.h>
++ #define OK_STDIO
++diff -urNad zoo-2.10~/zoolist.c zoo-2.10/zoolist.c
++--- zoo-2.10~/zoolist.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoolist.c 2005-11-16 17:28:23.322948832 -0200
++@@ -47,6 +47,7 @@
++ int ver_too_high PARMS((struct zoo_header *));
++ int needed PARMS((char *, struct direntry *, struct zoo_header *));
++ void printtz PARMS((int));
+++int fputchar PARMS ((int));
++
++ void zoolist (argv, option, argc)
++ char **argv, *option;
++@@ -414,7 +415,7 @@
++ if (direntry.fattr == 0)
++ printf ("--- ");
++ else if ((direntry.fattr >> 22) == 1)
++- printf ("%03o ", direntry.fattr & 0x1ff);
+++ printf ("%03lo ", direntry.fattr & 0x1ff);
++ else
++ printf ("??? ");
++ }
++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c
++--- zoo-2.10~/zoopack.c 2005-11-16 17:11:21.000000000 -0200
+++++ zoo-2.10/zoopack.c 2005-11-16 17:28:23.323948680 -0200
++@@ -10,6 +10,7 @@
++ Copyright (C) 1986, 1987 Rahul Dhesi -- All rights reserved
++ (C) Copyright 1988 Rahul Dhesi -- All rights reserved
++ */
+++#include <unistd.h>
++ #include "options.h"
++ /* Packs an archive. The sequence is:
++ 1. Copy all files from current archive to new one.
++@@ -171,7 +172,7 @@
++ } else {
++ strcpy (temp_file, xes);
++ }
++-mktemp (temp_file); /* ... and make unique */
+++mkstemp (temp_file); /* ... and make unique */
++ new_file = zoocreate (temp_file);
++ if (new_file == NOFILE)
++ prterror ('f', "Could not create temporary file %s.\n", temp_file);
++@@ -388,7 +389,7 @@
++
++ /* handle_break() */
++ /* Sets break_hit to 1 when called */
++-T_SIGNAL handle_break()
+++T_SIGNAL handle_break(int dummy)
++ {
++ #ifndef NOSIGNAL
++ signal (SIGINT, SIG_IGN); /* ignore future control ^Cs for now */
+--- zoo-2.10.orig/debian/patches/00options
++++ zoo-2.10/debian/patches/00options
+@@ -0,0 +1 @@
++DPEP_OPTION_EXEC_TEMPLATE=1
+--- zoo-2.10.orig/debian/patches/00list
++++ zoo-2.10/debian/patches/00list
+@@ -0,0 +1,5 @@
++01_old_fixes
++02_traversal_directory
++03_fix_manage_archive_under_AMD64
++04_fix_fullpath_buffer_overflow
++05_CVE-2006-1269.dpatch
+--- zoo-2.10.orig/debian/patches/00template
++++ zoo-2.10/debian/patches/00template
+@@ -0,0 +1,43 @@
++#!/bin/sh
++# Sample debian/patches/00template script
++# era Thu May 15 23:24:07 2003
++
++# This simply creates the equivalent of the hard-coded template.
++# Adapt and hack to suit your needs.
++
++file="$1"
++shift
++description="$@"
++
++fullnameguess="$(getent passwd $(id -un) | cut -f5 -d: | cut -f1 -d,)"
++domainguess=$([ -f /etc/mailname ] && cat /etc/mailname || hostname -f)
++emailguess="${DEBEMAIL:-${EMAIL:-$(logname)@${domainguess}}}"
++
++cat <<EOF
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## ${file} by ${DEBFULLNAME:-$fullnameguess} <$emailguess>
++##
++## All lines beginning with \`## DP:' are a description of the patch.
++## DP: ${description:-No description}
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="\${patch_opts:--f --no-backup-if-mismatch \${2:+-d \$2}}"
++
++if [ \$# -lt 1 ]; then
++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "\$1" in
++ -patch) patch \$patch_opts -p1 < \$0;;
++ -unpatch) patch \$patch_opts -p1 -R < \$0;;
++ *)
++ echo >&2 "\`basename \$0\`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++EOF
++
+--- zoo-2.10.orig/debian/patches/02_traversal_directory.dpatch
++++ zoo-2.10/debian/patches/02_traversal_directory.dpatch
+@@ -0,0 +1,70 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 02_traversal_directory.dpatch by Jose Carlos Medeiros <debian@psabs.com.br>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: patch to solve problem with "directory traversal bug" CVE id CAN-2005-2349
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
++
++if [ $# -lt 1 ]; then
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "$1" in
++ -patch) patch $patch_opts -p1 < $0;;
++ -unpatch) patch $patch_opts -p1 -R < $0;;
++ *)
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++diff -urNad zoo-2.10/portable.c /tmp/dpep.W7Aoaj/zoo-2.10/portable.c
++--- zoo-2.10/portable.c 2005-07-22 15:34:22.000000000 -0300
+++++ /tmp/dpep.W7Aoaj/zoo-2.10/portable.c 2005-07-25 14:43:57.757855384 -0300
++@@ -364,6 +364,41 @@
++ show_dir(direntry);
++ }
++ #endif
+++ /* #########################################################################
+++ *
+++ * THIS CODE WAS WRITTEN TO SOLVE PROBLEM WITH DIRECTORY TRAVERSAL SECURITY
+++ * BUG (CVE id CAN-2005-2349).
+++ *
+++ * ########################################################################
+++ */
+++ char *p;
+++ /* take off '../' */
+++ while ((p = strstr( direntry->dirname, "../" )) != NULL) {
+++ while (*(p+3) != '\0') {
+++ *p = *(p + 3);
+++ p++;
+++ }
+++ *p = *(p+3); /* move last null */
+++ //printf("zoo: skipped \"../\" path component in '%s'\n", direntry->dirname);
+++ }
+++ /* take off '/' */
+++ if ( direntry->dirname[0] == '/' ) {
+++ p = direntry->dirname;
+++ while (*p != '\0') {
+++ *p = *(p + 1);
+++ p++;
+++ }
+++ *p = *(p+1); /* move last null */
+++ //printf("zoo: skipped \"/\" path component in '%s'\n", direntry->dirname);
+++ }
+++ /* direntry->dirlen = strlen(direntry->dirname); */
+++
+++ /* ##################################################################
+++ *
+++ * END
+++ *
+++ * ###################################################################
+++ */
++ return (0);
++ }
++
+--- zoo-2.10.orig/debian/patches/03_fix_manage_archive_under_AMD64.dpatch
++++ zoo-2.10/debian/patches/03_fix_manage_archive_under_AMD64.dpatch
+@@ -0,0 +1,107 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 03_fix_manage_archive_under_AMD64.dpatch by Jose Carlos Medeiros <debian@psabs.com.br>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: patch to solve problems managing files under AMD64 and maybe under others 64 archs.
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
++
++if [ $# -lt 1 ]; then
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "$1" in
++ -patch) patch $patch_opts -p1 < $0;;
++ -unpatch) patch $patch_opts -p1 -R < $0;;
++ *)
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++diff -urNad zoo-2.10~/makefile zoo-2.10/makefile
++--- zoo-2.10~/makefile 2005-11-16 12:10:06.773065688 -0200
+++++ zoo-2.10/makefile 2005-11-16 12:12:50.816127352 -0200
++@@ -54,6 +54,7 @@
++ @echo "convex: Convex C200 series"
++ @echo "sysv: System V Release 2 or 3; or SCO Xenix"
++ @echo "linux: Linux"
+++ @echo "linux64: Linux with 64 bit long"
++ @echo "scodos: Cross-compiler under SCO Xenix/UNIX for MS-DOS"
++ @echo "xenix286: Older Xenix/286 (not tested)"
++ @echo "xenix68k: Xenix/68000 (not tested)"
++@@ -99,6 +100,10 @@
++ linux:
++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DANSI_HDRS" $(TARGETS)
++
+++# Linux64
+++linux64:
+++ $(MAKE) CC="gcc" CFLAGS="-c $(OPTIM) $(LINTFLAGS) -DLINUX -DLONG64 -DANSI_HDRS" $(TARGETS)
+++
++ # ULTRIX 4.1
++ ultrix:
++ $(MAKE) CFLAGS="-c $(OPTIM) -DULTRIX" $(TARGETS)
++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c
++--- zoo-2.10~/misc.c 2005-11-16 12:10:06.775065384 -0200
+++++ zoo-2.10/misc.c 2005-11-16 12:20:48.366528656 -0200
++@@ -173,7 +173,11 @@
++
++ frd_zooh (header, zoo_file);
++
+++#ifdef LONG64
+++ if ((int)(header->zoo_start = header->zoo_minus) != 0)
+++#else
++ if ((header->zoo_start + header->zoo_minus) != 0L)
+++#endif
++ prterror ('f', failed_consistency);
++ if (ver_too_high (header))
++ prterror ('f', wrong_version, header->major_ver, header->minor_ver);
++diff -urNad zoo-2.10~/zoodel.c zoo-2.10/zoodel.c
++--- zoo-2.10~/zoodel.c 1991-07-05 13:00:00.000000000 -0300
+++++ zoo-2.10/zoodel.c 2005-11-16 12:20:19.776874944 -0200
++@@ -138,7 +138,11 @@
++
++ /* read archive header */
++ frd_zooh (&zoo_header, zoo_file);
+++#ifdef LONG64
+++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0)
+++#else
++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L)
+++#endif
++ prterror ('f', failed_consistency);
++ if (ver_too_high (&zoo_header))
++ prterror ('f', wrong_version, zoo_header.major_ver, zoo_header.minor_ver);
++diff -urNad zoo-2.10~/zooext.c zoo-2.10/zooext.c
++--- zoo-2.10~/zooext.c 2005-11-16 12:10:06.783064168 -0200
+++++ zoo-2.10/zooext.c 2005-11-16 12:22:08.373365768 -0200
++@@ -164,7 +164,11 @@
++ } else {
++ /* read header */
++ frd_zooh (&zoo_header, zoo_file);
+++#ifdef LONG64
+++ if ((int)(zoo_header.zoo_start + zoo_header.zoo_minus) != 0) {
+++#else
++ if ((zoo_header.zoo_start + zoo_header.zoo_minus) != 0L) {
+++#endif
++ prterror ('w', failed_consistency);
++ bad_header++;
++ exit_status = 1;
++diff -urNad zoo-2.10~/zoopack.c zoo-2.10/zoopack.c
++--- zoo-2.10~/zoopack.c 2005-11-16 12:10:06.786063712 -0200
+++++ zoo-2.10/zoopack.c 2005-11-16 12:23:01.145343208 -0200
++@@ -140,7 +140,11 @@
++ /* Read the header of the old archive. */
++ frd_zooh(&old_zoo_header, zoo_file);
++
+++#ifdef LONG64
+++if ((int)(old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0) {
+++#else
++ if ((old_zoo_header.zoo_start + old_zoo_header.zoo_minus) != 0L) {
+++#endif
++ prterror ('w', failed_consistency);
++ ++bad_header; /* remember for future error message */
++ }
+--- zoo-2.10.orig/debian/patches/04_fix_fullpath_buffer_overflow.dpatch
++++ zoo-2.10/debian/patches/04_fix_fullpath_buffer_overflow.dpatch
+@@ -0,0 +1,44 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 04_fix_fullpath_buffer_overflow.dpatch by Jose Carlos Medeiros <debian@psabs.com.br>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Fix "fullpath()" File Name Handling Buffer Overflow, CAN-2006-0855
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
++
++if [ $# -lt 1 ]; then
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "$1" in
++ -patch) patch $patch_opts -p1 < $0;;
++ -unpatch) patch $patch_opts -p1 -R < $0;;
++ *)
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++diff -urNad zoo-2.10~/misc.c zoo-2.10/misc.c
++--- zoo-2.10~/misc.c 2006-03-03 18:51:31.000000000 -0300
+++++ zoo-2.10/misc.c 2006-03-03 18:54:29.000000000 -0300
++@@ -136,11 +136,14 @@
++ char *fullpath (direntry)
++ struct direntry *direntry;
++ {
++- static char result[PATHSIZE];
+++ static char result[PATHSIZE+PATHSIZE+12]; // Room for enough space
++ combine (result,
++ direntry->dirlen != 0 ? direntry->dirname : "",
++ (direntry->namlen != 0) ? direntry->lfname : direntry->fname
++ );
+++ if (strlen (result) >= PATHSIZE) {
+++ prterror ('f', "Combined dirname and filename too long\n");
+++ }
++ return (result);
++ }
++
+--- zoo-2.10.orig/debian/patches/05_CVE-2006-1269.dpatch
++++ zoo-2.10/debian/patches/05_CVE-2006-1269.dpatch
+@@ -0,0 +1,37 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 05_CVE-2006-1269.dpatch by Alec Berryman <alec@thened.net>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=183426
++
++[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
++patch_opts="${patch_opts:--f --no-backup-if-mismatch ${2:+-d $2}}"
++
++if [ $# -lt 1 ]; then
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1
++fi
++
++case "$1" in
++ -patch) patch $patch_opts -p1 < $0;;
++ -unpatch) patch $patch_opts -p1 -R < $0;;
++ *)
++ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
++ exit 1;;
++esac
++
++exit 0
++
++@DPATCH@
++diff -urNad zoo-2.10~/parse.c zoo-2.10/parse.c
++--- zoo-2.10~/parse.c 1991-07-05 17:00:00.000000000 +0100
+++++ zoo-2.10/parse.c 2006-05-18 14:16:32.000000000 +0100
++@@ -39,7 +39,7 @@
++ char *namep; /* points to relevant part of tempname */
++
++ char *p;
++- strcpy (tempname, fname);
+++ strncpy (tempname, fname, LFNAMESIZE);
++
++ #ifdef DEBUG
++ printf ("parse: supplied name is [%s].\n", tempname);
+--- zoo-2.10.orig/debian/compat
++++ zoo-2.10/debian/compat
+@@ -0,0 +1 @@
++5
+--- zoo-2.10.orig/debian/changelog
++++ zoo-2.10/debian/changelog
+@@ -0,0 +1,139 @@
++zoo (2.10-18) unstable; urgency=low
++
++ * Added patch to solve "CVE-2006-1269: local arbitrary code execution",
++ thanks to Alec Berryman <alec@thened.net> (closes: #367858)
++ * Updated to DH_COMPAT 5
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 19 May 2006 19:23:24 -0300
++
++zoo (2.10-17) unstable; urgency=low
++
++ * Added 04_fix_fullpath_buffer_overflow patch to fix a Buffer Overflow,
++ CAN-2006-0855. Thanks to Jean-SébastienGuay-Leroux
++ <jean-sebastien_at_guay-leroux.com>, (closes: #354461)
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 3 Mar 2006 18:56:02 -0300
++
++zoo (2.10-16) unstable; urgency=low
++
++ * Added 03_fix_manage_archive_under_AMD64 patch, thanks to carlj
++ <Carl.Johnson.carlj@peak.org>. (closes: #335114)
++ * Updated debian/rules to test and compile to AMD64.
++ * Updated to Standards-Version 3.6.2.
++ * Changed 01_old_fixes dpatch to solve problem "missing \?" in zoo.1.
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Wed, 16 Nov 2005 16:48:24 -0200
++
++zoo (2.10-15) unstable; urgency=low
++
++ * Added dpatch as Build-Depends in debian/control.
++ * Added debian/watch file. (closes: #322246)
++ * Updated linux.c in 01_old_fixes. (closes: #322194)
++ Thanks to Robert Millan <rmh@aybabtu.com>
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 9 Aug 2005 15:07:48 -0300
++
++zoo (2.10-14) unstable; urgency=low
++
++ * Changed call from "mktemp" to "mkstemp" in zoopack.c file.
++ * Added debian/patches/00options, debian/patches/00list and
++ debian/patches/00template files.
++ * Updated rules and control to use dpatch.
++ * Added 01_old_fixes.dpatch file with old changes.
++ * Added 02_traversal_directory.dpatch to solve problem with "directory
++ traversal security bug - CVE id CAN-2005-2349". Thanks to
++ Jorge Ventura <jorge.ventura@fusemail.com> (closes: #309594)
++ * Changed upstream source link in copyright file.
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Fri, 22 Jul 2005 12:59:07 -0300
++
++zoo (2.10-13) unstable; urgency=low
++
++ * Updated zoo.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #302817)
++ * Changed email of Mantainer in control file.
++ * Updated fiz.1 file (thanks to A Costa <agcosta@gis.net>). (closes: #309874)
++
++ -- Jose Carlos Medeiros <debian@psabs.com.br> Tue, 7 Jun 2005 20:47:51 -0300
++
++zoo (2.10-12) unstable; urgency=low
++
++ * New maintainer (closes: #302895)
++ * Created compat file.
++ * Deleted debian/docs unused file.
++ * Changed rules to complain debhelper > 4.0.
++ * Changed README.compilers to README.debian.
++
++ -- Jose Carlos Medeiros <jose@psabs.com.br> Wed, 13 Apr 2005 18:39:14 -0300
++
++zoo (2.10-11) unstable; urgency=low
++
++ * New maintainer (closes: #258470)
++ * Move to main from non-free (zoo is now in public domain).
++ * Updated copyright file
++ * Updated zoo.1 file
++ * Removed unnecessary, compile related files from the binary package.
++ * Standards-Version: 3.6.1.0
++
++ -- Niklas Vainio <nvainio+deb@iki.fi> Sat, 10 Jul 2004 21:29:26 +0300
++
++zoo (2.10-10) unstable; urgency=low
++
++ * Recompile to allow prelinking (closes: #231547).
++
++ -- Petr Cech <cech@debian.org> Mon, 9 Feb 2004 12:02:32 +0100
++
++zoo (2.10-9) unstable; urgency=low
++
++ * Fix build with new glibc-2.2 (closes: #94865)
++
++ -- Petr Cech <cech@debian.org> Sun, 22 Apr 2001 22:17:14 +0200
++
++zoo (2.10-8) unstable; urgency=low
++
++ * Added README.compilers.
++ * Standards-version: 3.2.1.
++ * Glibc-2.2 build.
++ * Fix long utibuf[2] to struct utimbuf.
++
++ -- Petr Cech <cech@debian.org> Tue, 17 Oct 2000 15:07:50 +0200
++
++zoo (2.10-7) unstable; urgency=low
++
++ * Don't know how, but the copyright was gone
++ * Added documentation from source package
++
++ -- Petr Cech <cech@debian.org> Sat, 16 May 1998 11:32:30 +0200
++
++zoo (2.10-6) frozen unstable; urgency=low
++
++ * Use debhelper.
++ * Added some includes and prototypes to have less warnings
++ * New maintainer.
++ * updated to 2.4.1
++
++ -- Petr CECH <Petr.Cech@st.mff.cuni.cz> Fri, 8 May 1998 01:06:39 +0200
++
++zoo (2.10-5) unstable; urgency=low
++
++ * Orphaned the package.
++ * debian/control (Standards-Version): updated to 2.4.0.0 [#16772].
++ * debian/control (Section): changed to non-free/utils [fails #3 of DFSG].
++ * debian/control (Maintainer): set to debian-qa list.
++ * debian/rules: rewritten.
++
++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 4 Mar 1998 02:17:57 +0000
++
++zoo (2.10-4) unstable; urgency=low
++
++ * Rebuilt for libc6.
++
++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 25 Jun 1997 17:04:23 +0000
++
++zoo (2.10-3) unstable; urgency=low
++
++ * New maintainer.
++ * Updated package to standards version 2.1.1.2.
++ * Removed executables from source package.
++ * Added better linux support, fixes bug #3961 and #4904.
++
++ -- James Troup <jjtroup@comp.brad.ac.uk> Wed, 22 Jan 1997 02:18:51 +0000
+--- zoo-2.10.orig/debian/watch
++++ zoo-2.10/debian/watch
+@@ -0,0 +1,3 @@
++version=3
++opts=dversionmangle=s/\.// \
++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo(.*)\.tar\.gz
+--- zoo-2.10.orig/debian/control
++++ zoo-2.10/debian/control
+@@ -0,0 +1,20 @@
++Source: zoo
++Section: utils
++Priority: optional
++Build-Depends: debhelper (>= 5.0.0), dpatch (>= 2.0.10)
++Maintainer: Jose Carlos Medeiros <debian@psabs.com.br>
++Uploaders: Ola Lundqvist <opal@debian.org>
++Standards-Version: 3.6.2
++
++Package: zoo
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: manipulate zoo archives
++ Zoo is used to create and maintain collections of files in compressed
++ form. It uses a Lempel-Ziv compression algorithm that gives space
++ savings in the range of 20% to 80% depending on the type of file data.
++ Zoo can store and selectively extract multiple generations of the same
++ file.
++ .
++ This package exists for its historical value. If you are looking for
++ a compression tool for serious use, check tar and gzip.
+--- zoo-2.10.orig/debian/rules
++++ zoo-2.10/debian/rules
+@@ -0,0 +1,94 @@
++#!/usr/bin/make -f
++# debian/rules file - for zoo (2.1).
++# Based on sample debian.rules file - for GNU Hello (1.3).
++# Copyright 1994,1995 by Ian Jackson.
++# Copyright 1997,1998 by James Troup.
++# Copyright 1998,1999,2000 by Petr ech.
++# Copyright 2005 by Jose Carlos N. Medeiros.
++# I hereby give you perpetual unlimited permission to copy,
++# modify and relicense this file, provided that you do not remove
++# my name from the file itself. (I assert my moral right of
++# paternity under the Copyright, Designs and Patents Act 1988.)
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This has to be exported to make some magic below work.
++#export DH_OPTIONS
++
++CFLAGS = -Wall
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++ CFLAGS += -O0
++else
++ CFLAGS += -O2
++endif
++ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
++ CFLAGS += -g
++endif
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ INSTALL += -s
++endif
++
++DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
++PACKAGE = zoo
++
++# Include dpatch stuff.
++include /usr/share/dpatch/dpatch.make
++
++configure: configure-stamp
++configure-stamp:
++ dh_testdir
++ touch configure-stamp
++
++build: build-stamp
++
++build-stamp: configure-stamp patch
++ dh_testdir
++
++ echo $(DEB_HOST_ARCH)
++ifeq ($(DEB_HOST_ARCH),amd64)
++ $(MAKE) OPTIM="$(CFLAGS)" linux64
++else
++ $(MAKE) OPTIM="$(CFLAGS)" linux
++endif
++ touch build-stamp
++
++clean: unpatch
++ dh_testdir
++ dh_testroot
++ -$(MAKE) -i clean
++ dh_clean build-stamp configure-stamp zoo fiz
++
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ # Add here commands to install the package into debian/zoo.
++ install -m 755 -s zoo fiz debian/zoo/usr/bin
++
++# Build architecture-independent files here.
++binary-indep: build install
++# We have nothing to do by default.
++
++# Build architecture-dependent files here.
++binary-arch: build install
++ dh_testdir
++ dh_testroot
++ dh_installchangelogs
++ dh_installdocs
++ dh_installman fiz.1 zoo.1
++ dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install configure
++
+--- zoo-2.10.orig/debian/copyright
++++ zoo-2.10/debian/copyright
+@@ -0,0 +1,64 @@
++This is Debian GNU/Linux's prepackaged version of the zoo archiver.
++
++This package was put together by James Troup from the original
++source obtained from:
++ http://www.ibiblio.org/pub/packages/ccic/software/unix/utils/zoo210.tar.gz
++
++From May 1998 to July 2004 it was maintained by Petr ech and
++currently it is maintained by Niklas Vainio <nvainio+deb@iki.fi>
++
++Copyright and license:
++
++Zoo was written by Rahul Dhesi. He has now released it into the public
++domain:
++
++
++Return-Path: <dhesi@rahul.net>
++Date: Sat, 19 Jun 2004 13:50:26 -0700 (PDT)
++From: dhesi@rahul.net
++To: Niklas Vainio <nvainio@iki.fi>
++Subject: Re: License of Zoo
++
++Hi, the last release of the zoo archive program was marked entirely
++public domain, with no restrictions. I'm sure this statement will be
++found somewhere in the files in the sources. If not, I hope this email
++will suffice: everything in the zoo package is entirely public domain,
++with no restrictions whatsoever.
++
++Rahul
++
++
++On Sat, 19 Jun 2004, Niklas Vainio wrote:
++
++> Dear Rahul Dhesi,
++>
++> The Zoo archiving program you wrote,is part of the Debian GNU/Linux system,
++> in its unofficial section called "non-free". I'm asking you to relax licence
++> conditions of Zoo a bit to make it free software and allow it to move into
++> the official Debian distribution.
++>
++> Zoo licensing conditions have two clauses that make it non-free software.
++> Those clauses are the following:
++>
++> "(b) do not create, whether deliberately or through negligence, any
++> derivative work that violates the compatibility goals describe in the
++> reference manual for zoo 2.1,"
++>
++> "(d) make the fully commented source code of the derivative work available
++> to me at no cost if I so request, and make no attempt to restrict the
++> distribution or use of this source code."
++>
++> Of course this is more of historical interest than any actual need, but
++> would you please consider licensing Zoo under a free license?
++>
++> Best regards,
++> - Nikke, a Debian volunteer
++>
++> --
++> Niklas Vainio <niklas.vainio@iki.fi>
++>
++
++
++
++
++
+--- zoo-2.10.orig/debian/dirs
++++ zoo-2.10/debian/dirs
+@@ -0,0 +1 @@
++usr/bin
+--- zoo-2.10.orig/debian/README.debian
++++ zoo-2.10/debian/README.debian
+@@ -0,0 +1,11 @@
++The linux target I created was based on the bsd 4.3 target, with the
++following differences :-
++
++ Linux has strchr().
++ Linux signal handler returns void data type.
++ (Debian GNU/)Linux uses stdarg.h in preference to varags.h.
++ Linux has memmove().
++ (Debian GNU/)Linux uses ansi C compilers (required for stdarg.h).
++ Linux malloc() returns a void pointer.
++ Linux has vprintf().
++