summaryrefslogtreecommitdiffstats
path: root/source/a
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsource/a/aaa_base/aaa_base.SlackBuild10
-rw-r--r--source/a/aaa_base/os-release10
-rw-r--r--source/a/aaa_base/slackware-version2
-rwxr-xr-xsource/a/aaa_elflibs/aaa_elflibs.SlackBuild6
-rw-r--r--source/a/aaa_elflibs/symlinks-to-tracked-libs8
-rwxr-xr-xsource/a/acl/acl.SlackBuild6
-rwxr-xr-xsource/a/acpid/acpid.SlackBuild55
-rwxr-xr-xsource/a/attr/attr.SlackBuild6
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00148
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00265
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00348
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00447
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00556
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00676
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00747
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00849
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-00948
-rw-r--r--source/a/bash/bash-4.1-patches/bash41-01068
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00178
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00260
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-003318
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00453
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-005131
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00646
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00746
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00874
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-00982
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01061
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01146
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-012151
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01352
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01447
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01581
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01646
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01747
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01874
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-01947
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02060
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02161
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02261
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02362
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02445
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-025143
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02658
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02747
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-02852
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-029524
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-030178
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03180
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03275
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03357
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03446
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03566
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-03692
-rw-r--r--source/a/bash/bash-4.2-patches/bash42-037112
-rwxr-xr-xsource/a/bash/bash.SlackBuild30
-rwxr-xr-xsource/a/btrfs-progs/btrfs-progs.SlackBuild17
-rw-r--r--source/a/btrfs-progs/slack-desc6
-rwxr-xr-xsource/a/coreutils/coreutils.SlackBuild23
-rw-r--r--source/a/cpio/cpio.32bit.crc.diff111
-rwxr-xr-xsource/a/cpio/cpio.SlackBuild6
-rwxr-xr-xsource/a/cryptsetup/cryptsetup.SlackBuild17
-rwxr-xr-xsource/a/cups/cups.SlackBuild30
-rw-r--r--source/a/cups/cups.fix_broken_locking.diff256
-rw-r--r--source/a/cups/cups.url1
-rw-r--r--source/a/cups/usb-backend-both-usblp-and-libusb.dpatch574
-rw-r--r--source/a/cups/usb-backend-reset-after-job-only-for-specific-devices.patch74
-rwxr-xr-xsource/a/cxxlibs/cxxlibs.SlackBuild4
-rw-r--r--source/a/cxxlibs/symlinks-to-tracked-libs5
-rwxr-xr-xsource/a/dbus/dbus.SlackBuild31
-rw-r--r--source/a/dbus/dbus.set.home.diff22
-rw-r--r--source/a/dbus/rc.messagebus10
-rw-r--r--source/a/dcron/crontab.c.O_EXCL.diff5
-rw-r--r--source/a/dcron/crontab.root4
-rwxr-xr-xsource/a/dcron/dcron.SlackBuild9
-rw-r--r--source/a/dcron/dcron.manpage.paths.diff65
-rw-r--r--source/a/dcron/defs.h.TMPDIR.diff5
-rw-r--r--source/a/dcron/run-parts5
-rw-r--r--source/a/e2fsprogs/e2fsprogs-1.42.6.tar.signbin0 -> 543 bytes
-rwxr-xr-xsource/a/e2fsprogs/e2fsprogs.SlackBuild24
-rwxr-xr-xsource/a/eject/eject.SlackBuild7
-rw-r--r--source/a/eject/eject_for_mac.patch12
-rwxr-xr-xsource/a/etc/etc.SlackBuild4
-rw-r--r--source/a/file/file.short.diff20
-rw-r--r--source/a/file/slack-desc2
-rwxr-xr-xsource/a/gettext/gettext-tools.SlackBuild2
-rwxr-xr-xsource/a/gettext/gettext.SlackBuild2
-rwxr-xr-xsource/a/gptfdisk/gptfdisk.SlackBuild (renamed from source/a/gdisk/gdisk.SlackBuild)17
-rw-r--r--source/a/gptfdisk/gptfdisk.remove.icu4c.dep.diff36
-rw-r--r--source/a/gptfdisk/slack-desc19
-rwxr-xr-xsource/a/grep/grep.SlackBuild22
-rwxr-xr-xsource/a/gzip/gzip.SlackBuild4
-rw-r--r--source/a/isapnptools/isapnptools-1.26.lsm25
-rwxr-xr-xsource/a/isapnptools/isapnptools.SlackBuild88
-rw-r--r--source/a/isapnptools/isapnptools.url1
-rw-r--r--source/a/isapnptools/isapnptools_1.26-5.diff597
-rw-r--r--source/a/isapnptools/slack-desc (renamed from source/x/x11/slack-desc/rstart)22
-rwxr-xr-xsource/a/kbd/kbd.SlackBuild47
-rw-r--r--source/a/kbd/sources/kbd-1.15.2.tar.bz2.sign8
-rw-r--r--source/a/kbd/sources/kbd-1.15.3-fix-es-translation.patch12
-rwxr-xr-xsource/a/kernel-firmware/kernel-firmware.SlackBuild (renamed from source/k/kernel-firmware/kernel-firmware.SlackBuild)33
-rw-r--r--source/a/kernel-firmware/slack-desc (renamed from source/x/x11/slack-desc/xf86-input-ur98)22
-rwxr-xr-xsource/a/kmod/kmod.SlackBuild147
-rw-r--r--source/a/kmod/slack-desc19
-rwxr-xr-xsource/a/lilo/lilo.SlackBuild24
-rw-r--r--source/a/lilo/liloconfig14
-rw-r--r--source/a/lilo/slack14.0.2012.bmpbin0 -> 118256 bytes
-rwxr-xr-xsource/a/logrotate/logrotate.SlackBuild17
-rw-r--r--source/a/logrotate/logrotate.cron4
-rw-r--r--source/a/logrotate/logrotate.slackware.diff65
-rw-r--r--source/a/lvm2/build_with_udev_165_and_later.diff21
-rw-r--r--source/a/lvm2/fix-build-with-udev-183.patch44
-rwxr-xr-xsource/a/lvm2/lvm2.SlackBuild52
-rwxr-xr-xsource/a/mdadm/mdadm.SlackBuild76
-rw-r--r--source/a/mdadm/mdadm.static.diff11
-rwxr-xr-xsource/a/minicom/minicom.SlackBuild13
-rw-r--r--source/a/mkinitrd/README.initrd28
l---------[-rw-r--r--]source/a/mkinitrd/busybox-dot-config991
-rw-r--r--source/a/mkinitrd/busybox-dot-config.1.18.x990
-rw-r--r--source/a/mkinitrd/busybox-dot-config.1.19.x1013
-rw-r--r--source/a/mkinitrd/busybox-dot-config.1.20.x1024
-rw-r--r--source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ash.patch12
-rw-r--r--source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ifupdown.patch75
-rw-r--r--source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-man.patch34
-rw-r--r--source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-tar.patch11
-rwxr-xr-xsource/a/mkinitrd/init49
-rw-r--r--source/a/mkinitrd/mkinitrd74
-rw-r--r--source/a/mkinitrd/mkinitrd.88
-rwxr-xr-xsource/a/mkinitrd/mkinitrd.SlackBuild45
-rw-r--r--source/a/module-init-tools/doinst.sh7
-rw-r--r--source/a/module-init-tools/modprobe.ignore_some_suffixes.diff41
-rw-r--r--source/a/module-init-tools/slack-desc19
-rw-r--r--source/a/ntfs-3g/99-ntfs-3g.rules2
-rwxr-xr-xsource/a/ntfs-3g/ntfs-3g.SlackBuild44
-rw-r--r--source/a/patch/patch.281537bcd92515ae3b9f154acd579ce97260f99b.diff78
-rw-r--r--source/a/patch/patch.99f2638763845d8173a0c9f9209ac2b4be947165.diff88
-rwxr-xr-xsource/a/patch/patch.SlackBuild12
-rwxr-xr-xsource/a/pciutils/pciutils.SlackBuild60
-rw-r--r--source/a/pciutils/pciutils.dontcompress.diff11
-rw-r--r--source/a/pciutils/pciutils.ids.dest.diff14
-rw-r--r--source/a/pciutils/pciutils.update.pci.ids.url.diff11
-rw-r--r--source/a/pciutils/pciutils.url5
-rwxr-xr-xsource/a/pkgtools/pkgtools.SlackBuild6
-rw-r--r--source/a/pkgtools/scripts/pkgtool2
-rw-r--r--source/a/pkgtools/scripts/setup.services2
-rw-r--r--source/a/shadow/adduser9
-rw-r--r--source/a/shadow/login.defs8
-rw-r--r--source/a/shadow/patches/README_PATCHES1
-rw-r--r--source/a/shadow/patches/r3090.diff11
-rw-r--r--source/a/shadow/patches/unused/r3299.diff (renamed from source/a/shadow/patches/r3299.diff)0
-rwxr-xr-xsource/a/shadow/shadow.SlackBuild10
-rw-r--r--source/a/shadow/shadow.man.nodups.diff11
-rw-r--r--source/a/slocate/slocate.CVE-2007-0277.diff42
-rwxr-xr-xsource/a/slocate/slocate.SlackBuild14
-rw-r--r--source/a/slocate/slocate.bigfile.diff33
-rw-r--r--source/a/syslinux/syslinux-3.84.tar.bz2.sign8
-rw-r--r--source/a/syslinux/syslinux-4.05.tar.sign17
-rwxr-xr-xsource/a/syslinux/syslinux.SlackBuild8
-rw-r--r--source/a/syslinux/syslinux.altmbr.diff11
-rw-r--r--source/a/sysvinit-scripts/scripts/inittab2
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.622
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.M13
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.S50
-rw-r--r--source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh96
-rw-r--r--source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh.diff18
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild6
-rw-r--r--source/a/sysvinit/sysvinit-2.86-timeval.patch42
-rwxr-xr-xsource/a/sysvinit/sysvinit.SlackBuild26
-rw-r--r--source/a/sysvinit/sysvinit.diff125
-rw-r--r--source/a/sysvinit/sysvinit.paths.diff13
-rw-r--r--source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff81
-rwxr-xr-xsource/a/tcsh/tcsh.SlackBuild4
-rwxr-xr-xsource/a/tree/tree.SlackBuild10
-rw-r--r--source/a/udev/config/modprobe.d/8139cp.conf7
-rw-r--r--source/a/udev/config/modprobe.d/README11
-rw-r--r--source/a/udev/config/modprobe.d/bcm43xx.conf7
-rw-r--r--source/a/udev/config/modprobe.d/blacklist.conf.new270
-rw-r--r--source/a/udev/config/modprobe.d/eepro100.conf8
-rw-r--r--source/a/udev/config/modprobe.d/eth1394.conf8
-rw-r--r--source/a/udev/config/modprobe.d/evbug.conf7
-rw-r--r--source/a/udev/config/modprobe.d/framebuffers.conf48
-rw-r--r--source/a/udev/config/modprobe.d/hostap.conf12
-rw-r--r--source/a/udev/config/modprobe.d/hw_random.conf7
-rw-r--r--source/a/udev/config/modprobe.d/isapnp.conf24
-rw-r--r--source/a/udev/config/modprobe.d/isapnp.conf.new15
-rw-r--r--source/a/udev/config/modprobe.d/isdn.conf11
-rw-r--r--source/a/udev/config/modprobe.d/oss.conf61
-rw-r--r--source/a/udev/config/modprobe.d/pcspkr.conf9
-rw-r--r--source/a/udev/config/modprobe.d/psmouse.conf (renamed from source/a/udev/config/modprobe.d/psmouse.conf.new)4
-rw-r--r--source/a/udev/config/modprobe.d/scsi-sata-controllers.conf81
-rw-r--r--source/a/udev/config/modprobe.d/sound-modems.conf10
-rw-r--r--source/a/udev/config/modprobe.d/tulip.conf11
-rw-r--r--source/a/udev/config/modprobe.d/usb-controller.conf9
-rw-r--r--source/a/udev/config/modprobe.d/usb-controller.conf.new4
-rw-r--r--source/a/udev/config/modprobe.d/via-ircc.conf7
-rw-r--r--source/a/udev/config/modprobe.d/watchdog.conf43
-rw-r--r--source/a/udev/config/rc.d/rc.udev.new92
-rw-r--r--source/a/udev/config/rules.d/40-slackware.rules3
-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/doinst.sh11
-rw-r--r--source/a/udev/fix-42-usb-hid-pm.rules.diff18
-rw-r--r--source/a/udev/rule_generator.diff90
-rw-r--r--source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch27
-rwxr-xr-xsource/a/udev/udev.SlackBuild62
-rw-r--r--source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch305
-rw-r--r--source/a/udisks/slack-desc19
-rwxr-xr-xsource/a/udisks/udisks.SlackBuild119
-rw-r--r--source/a/udisks/udisks.url1
-rw-r--r--source/a/udisks2/doinst.sh12
-rw-r--r--source/a/udisks2/slack-desc (renamed from source/x/x11/slack-desc/scripts)22
-rwxr-xr-xsource/a/udisks2/udisks2.SlackBuild139
-rw-r--r--source/a/upower/doinst.sh (renamed from extra/source/GConf/doinst.sh)3
-rw-r--r--source/a/upower/slack-desc19
-rwxr-xr-xsource/a/upower/upower.SlackBuild121
-rw-r--r--source/a/upower/upower.url1
-rw-r--r--source/a/usb_modeswitch/device_reference.txt2809
-rwxr-xr-xsource/a/usb_modeswitch/usb_modeswitch.SlackBuild45
-rw-r--r--source/a/usbutils/usbutils-002.tar.bz2.sign8
-rwxr-xr-xsource/a/usbutils/usbutils.SlackBuild18
-rw-r--r--source/a/usbutils/usbutils.ids.dest11
-rw-r--r--source/a/usbutils/usbutils.url1
-rw-r--r--source/a/util-linux/0001-mount-old-fix-encryption-usage.patch88
-rw-r--r--source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch31
-rw-r--r--source/a/util-linux/adjtimex_1.29-2.2.diff (renamed from source/a/util-linux/adjtimex_1.23-1.diff)4560
-rw-r--r--source/a/util-linux/column-fix_long_opts.diff15
-rw-r--r--source/a/util-linux/net-tools.config.h78
-rw-r--r--source/a/util-linux/net-tools.diff77
-rw-r--r--source/a/util-linux/net-tools_1.60-19.diff29401
-rwxr-xr-xsource/a/util-linux/util-linux.SlackBuild38
-rwxr-xr-xsource/a/xfsprogs/xfsprogs.SlackBuild2
-rw-r--r--source/a/xz/slack-desc2
-rwxr-xr-xsource/a/xz/xz.SlackBuild9
-rwxr-xr-xsource/ap/alsa-utils/alsa-utils.SlackBuild3
-rw-r--r--source/ap/cdrdao/cdrdao-1.2.3-stat.patch13
-rwxr-xr-xsource/ap/cdrdao/cdrdao.SlackBuild7
-rwxr-xr-xsource/ap/diffutils/diffutils.SlackBuild2
-rw-r--r--source/ap/dmapi/slack-desc2
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild29
-rw-r--r--source/ap/ghostscript/ghostscript.rev11948.diff13
-rwxr-xr-xsource/ap/htop/htop.SlackBuild (renamed from extra/source/fvwm-2.6.1/fvwm.SlackBuild)19
-rw-r--r--source/ap/htop/slack-desc19
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt25
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build4
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build47
-rw-r--r--source/ap/linuxdoc-tools/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff80
-rw-r--r--source/ap/linuxdoc-tools/sources/gtk-doc.patch25
-rw-r--r--source/ap/linuxdoc-tools/sources/openjade-1.3-getopts.pl65
-rw-r--r--source/ap/linuxdoc-tools/sources/openjade-1.3.2-gcc46.patch82
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download36
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools4
-rwxr-xr-xsource/ap/lm_sensors/lm_sensors.SlackBuild4
-rwxr-xr-xsource/ap/lsscsi/lsscsi.SlackBuild10
-rwxr-xr-xsource/ap/lxc/lxc.SlackBuild4
-rwxr-xr-xsource/ap/man-pages/man-pages.SlackBuild4
-rwxr-xr-xsource/ap/mc/mc.SlackBuild24
-rw-r--r--source/ap/mc/mc.ext.in.geeqie.diff11
-rw-r--r--source/ap/mc/mc.image.sh.geeqie.diff11
-rw-r--r--source/ap/mc/mc.save.file.diff37
-rwxr-xr-xsource/ap/moc/moc.SlackBuild2
-rw-r--r--source/ap/mysql/README.mysql-embedded7
-rw-r--r--source/ap/mysql/doinst.sh1
-rw-r--r--source/ap/mysql/mirror-url1
-rwxr-xr-xsource/ap/mysql/mysql-embedded.SlackBuild221
-rwxr-xr-xsource/ap/mysql/mysql-embedded.build63
-rwxr-xr-xsource/ap/mysql/mysql.SlackBuild122
-rw-r--r--source/ap/nano/doinst.sh (renamed from extra/source/fvwm-2.6.1/doinst.sh)3
-rwxr-xr-xsource/ap/nano/nano.SlackBuild28
-rw-r--r--source/ap/ntfsprogs/slack-desc19
-rwxr-xr-xsource/ap/powertop/powertop.SlackBuild44
-rwxr-xr-xsource/ap/rpm/rpm.SlackBuild11
-rwxr-xr-xsource/ap/screen/screen.SlackBuild11
-rw-r--r--source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff22
-rw-r--r--source/ap/soma/slack-desc (renamed from source/x/x11/slack-desc/xfwp)22
-rwxr-xr-xsource/ap/soma/soma.SlackBuild (renamed from source/l/hal-info/hal-info.SlackBuild)44
-rw-r--r--source/ap/soma/soma.info10
-rw-r--r--source/ap/soma/soma.pngbin0 -> 229691 bytes
-rw-r--r--source/ap/soma/stations.conf38
-rwxr-xr-xsource/ap/sqlite/sqlite.SlackBuild6
-rwxr-xr-xsource/ap/sudo/sudo.SlackBuild10
-rw-r--r--source/ap/vbetool/slack-desc2
-rw-r--r--source/ap/vim/patches/7.3.155286
-rw-r--r--source/ap/vim/patches/7.3.15689
-rw-r--r--source/ap/vim/patches/7.3.15752
-rw-r--r--source/ap/vim/patches/7.3.15848
-rw-r--r--source/ap/vim/patches/7.3.15954
-rw-r--r--source/ap/vim/patches/7.3.160482
-rw-r--r--source/ap/vim/patches/7.3.1611645
-rw-r--r--source/ap/vim/patches/7.3.16283
-rw-r--r--source/ap/vim/patches/7.3.16359
-rw-r--r--source/ap/vim/patches/7.3.164181
-rw-r--r--source/ap/vim/patches/7.3.16547
-rw-r--r--source/ap/vim/patches/7.3.16670
-rw-r--r--source/ap/vim/patches/7.3.16796
-rw-r--r--source/ap/vim/patches/7.3.16882
-rw-r--r--source/ap/vim/patches/7.3.169130
-rw-r--r--source/ap/vim/patches/7.3.17070
-rw-r--r--source/ap/vim/patches/7.3.171142
-rw-r--r--source/ap/vim/patches/7.3.172268
-rw-r--r--source/ap/vim/patches/7.3.17379
-rw-r--r--source/ap/vim/patches/7.3.174109
-rw-r--r--source/ap/vim/patches/7.3.17550
-rw-r--r--source/ap/vim/patches/7.3.176165
-rw-r--r--source/ap/vim/patches/7.3.17797
-rw-r--r--source/ap/vim/patches/7.3.178163
-rw-r--r--source/ap/vim/patches/7.3.17995
-rw-r--r--source/ap/vim/patches/7.3.180295
-rw-r--r--source/ap/vim/patches/7.3.181171
-rw-r--r--source/ap/vim/patches/7.3.18253
-rw-r--r--source/ap/vim/patches/7.3.18387
-rw-r--r--source/ap/vim/patches/7.3.18486
-rw-r--r--source/ap/vim/patches/7.3.18577
-rw-r--r--source/ap/vim/patches/7.3.18659
-rw-r--r--source/ap/vim/patches/7.3.1876621
-rw-r--r--source/ap/vim/patches/7.3.188184
-rw-r--r--source/ap/vim/patches/7.3.18949
-rw-r--r--source/ap/vim/patches/7.3.19048
-rw-r--r--source/ap/vim/patches/7.3.191526
-rw-r--r--source/ap/vim/patches/7.3.19261
-rw-r--r--source/ap/vim/patches/7.3.19370
-rw-r--r--source/ap/vim/patches/7.3.19448
-rw-r--r--source/ap/vim/patches/7.3.195199
-rw-r--r--source/ap/vim/patches/7.3.196224
-rw-r--r--source/ap/vim/patches/7.3.19778
-rw-r--r--source/ap/vim/patches/7.3.198403
-rw-r--r--source/ap/vim/patches/7.3.19957
-rw-r--r--source/ap/vim/patches/7.3.20075
-rw-r--r--source/ap/vim/patches/7.3.201124
-rw-r--r--source/ap/vim/patches/7.3.202868
-rw-r--r--source/ap/vim/patches/7.3.203102
-rw-r--r--source/ap/vim/patches/7.3.20451
-rw-r--r--source/ap/vim/patches/7.3.20593
-rw-r--r--source/ap/vim/patches/7.3.20654
-rw-r--r--source/ap/vim/patches/7.3.20754
-rw-r--r--source/ap/vim/patches/7.3.20851
-rw-r--r--source/ap/vim/patches/7.3.20995
-rw-r--r--source/ap/vim/patches/7.3.210182
-rw-r--r--source/ap/vim/patches/7.3.21151
-rw-r--r--source/ap/vim/patches/7.3.212243
-rw-r--r--source/ap/vim/patches/7.3.213142
-rw-r--r--source/ap/vim/patches/7.3.21455
-rw-r--r--source/ap/vim/patches/7.3.21563
-rw-r--r--source/ap/vim/patches/7.3.216263
-rw-r--r--source/ap/vim/patches/7.3.21763
-rw-r--r--source/ap/vim/patches/7.3.21891
-rw-r--r--source/ap/vim/patches/7.3.21992
-rw-r--r--source/ap/vim/patches/7.3.2201230
-rw-r--r--source/ap/vim/patches/7.3.221287
-rw-r--r--source/ap/vim/patches/7.3.22271
-rw-r--r--source/ap/vim/patches/7.3.223387
-rw-r--r--source/ap/vim/patches/7.3.224162
-rw-r--r--source/ap/vim/patches/7.3.225bin0 -> 18841 bytes
-rw-r--r--source/ap/vim/patches/7.3.22658
-rw-r--r--source/ap/vim/patches/7.3.227109
-rw-r--r--source/ap/vim/patches/7.3.22845
-rw-r--r--source/ap/vim/patches/7.3.22955
-rw-r--r--source/ap/vim/patches/7.3.23070
-rw-r--r--source/ap/vim/patches/7.3.231128
-rw-r--r--source/ap/vim/patches/7.3.23284
-rw-r--r--source/ap/vim/patches/7.3.23381
-rw-r--r--source/ap/vim/patches/7.3.234178
-rw-r--r--source/ap/vim/patches/7.3.235360
-rw-r--r--source/ap/vim/patches/7.3.23687
-rw-r--r--source/ap/vim/patches/7.3.237222
-rw-r--r--source/ap/vim/patches/7.3.23853
-rw-r--r--source/ap/vim/patches/7.3.239321
-rw-r--r--source/ap/vim/patches/7.3.240795
-rw-r--r--source/ap/vim/patches/7.3.24171
-rw-r--r--source/ap/vim/patches/7.3.24271
-rw-r--r--source/ap/vim/patches/7.3.24352
-rw-r--r--source/ap/vim/patches/7.3.24448
-rw-r--r--source/ap/vim/patches/7.3.24581
-rw-r--r--source/ap/vim/patches/7.3.24655
-rw-r--r--source/ap/vim/patches/7.3.24795
-rw-r--r--source/ap/vim/patches/7.3.248129
-rw-r--r--source/ap/vim/patches/7.3.249134
-rw-r--r--source/ap/vim/patches/7.3.250104
-rw-r--r--source/ap/vim/patches/7.3.251184
-rw-r--r--source/ap/vim/patches/7.3.25243
-rw-r--r--source/ap/vim/patches/7.3.253539
-rw-r--r--source/ap/vim/patches/7.3.25447
-rw-r--r--source/ap/vim/patches/7.3.25581
-rw-r--r--source/ap/vim/patches/7.3.256322
-rw-r--r--source/ap/vim/patches/7.3.25797
-rw-r--r--source/ap/vim/patches/7.3.25870
-rw-r--r--source/ap/vim/patches/7.3.259503
-rw-r--r--source/ap/vim/patches/7.3.26069
-rw-r--r--source/ap/vim/patches/7.3.26153
-rw-r--r--source/ap/vim/patches/7.3.2621356
-rw-r--r--source/ap/vim/patches/7.3.263162
-rw-r--r--source/ap/vim/patches/7.3.264159
-rw-r--r--source/ap/vim/patches/7.3.265145
-rw-r--r--source/ap/vim/patches/7.3.26654
-rw-r--r--source/ap/vim/patches/7.3.26767
-rw-r--r--source/ap/vim/patches/7.3.26869
-rw-r--r--source/ap/vim/patches/7.3.269112
-rw-r--r--source/ap/vim/patches/7.3.27052
-rw-r--r--source/ap/vim/patches/7.3.271504
-rw-r--r--source/ap/vim/patches/7.3.27251
-rw-r--r--source/ap/vim/patches/7.3.273124
-rw-r--r--source/ap/vim/patches/7.3.27455
-rw-r--r--source/ap/vim/patches/7.3.27577
-rw-r--r--source/ap/vim/patches/7.3.276130
-rw-r--r--source/ap/vim/patches/7.3.277348
-rw-r--r--source/ap/vim/patches/7.3.27873
-rw-r--r--source/ap/vim/patches/7.3.279118
-rw-r--r--source/ap/vim/patches/7.3.280181
-rw-r--r--source/ap/vim/patches/7.3.281134
-rw-r--r--source/ap/vim/patches/7.3.28260
-rw-r--r--source/ap/vim/patches/7.3.283114
-rw-r--r--source/ap/vim/patches/7.3.284211
-rw-r--r--source/ap/vim/patches/7.3.285144
-rw-r--r--source/ap/vim/patches/7.3.28684
-rw-r--r--source/ap/vim/patches/7.3.287100
-rw-r--r--source/ap/vim/patches/7.3.28876
-rw-r--r--source/ap/vim/patches/7.3.28956
-rw-r--r--source/ap/vim/patches/7.3.29075
-rw-r--r--source/ap/vim/patches/7.3.291125
-rw-r--r--source/ap/vim/patches/7.3.29255
-rw-r--r--source/ap/vim/patches/7.3.29374
-rw-r--r--source/ap/vim/patches/7.3.29458
-rw-r--r--source/ap/vim/patches/7.3.295109
-rw-r--r--source/ap/vim/patches/7.3.296222
-rw-r--r--source/ap/vim/patches/7.3.297130
-rw-r--r--source/ap/vim/patches/7.3.298167
-rw-r--r--source/ap/vim/patches/7.3.299516
-rw-r--r--source/ap/vim/patches/7.3.30074
-rw-r--r--source/ap/vim/patches/7.3.30197
-rw-r--r--source/ap/vim/patches/7.3.30268
-rw-r--r--source/ap/vim/patches/7.3.30355
-rw-r--r--source/ap/vim/patches/7.3.304103
-rw-r--r--source/ap/vim/patches/7.3.30558
-rw-r--r--source/ap/vim/patches/7.3.306244
-rw-r--r--source/ap/vim/patches/7.3.307180
-rw-r--r--source/ap/vim/patches/7.3.308260
-rw-r--r--source/ap/vim/patches/7.3.309105
-rw-r--r--source/ap/vim/patches/7.3.3103524
-rw-r--r--source/ap/vim/patches/7.3.311351
-rw-r--r--source/ap/vim/patches/7.3.31258
-rw-r--r--source/ap/vim/patches/7.3.31353
-rw-r--r--source/ap/vim/patches/7.3.31454
-rw-r--r--source/ap/vim/patches/7.3.315475
-rw-r--r--source/ap/vim/patches/7.3.31648
-rw-r--r--source/ap/vim/patches/7.3.317116
-rw-r--r--source/ap/vim/patches/7.3.31890
-rw-r--r--source/ap/vim/patches/7.3.319154
-rw-r--r--source/ap/vim/patches/7.3.320130
-rw-r--r--source/ap/vim/patches/7.3.321304
-rw-r--r--source/ap/vim/patches/7.3.32252
-rw-r--r--source/ap/vim/patches/7.3.32352
-rw-r--r--source/ap/vim/patches/7.3.32453
-rw-r--r--source/ap/vim/patches/7.3.32564
-rw-r--r--source/ap/vim/patches/7.3.326285
-rw-r--r--source/ap/vim/patches/7.3.32764
-rw-r--r--source/ap/vim/patches/7.3.32845
-rw-r--r--source/ap/vim/patches/7.3.32972
-rw-r--r--source/ap/vim/patches/7.3.33045
-rw-r--r--source/ap/vim/patches/7.3.33153
-rw-r--r--source/ap/vim/patches/7.3.332206
-rw-r--r--source/ap/vim/patches/7.3.333245
-rw-r--r--source/ap/vim/patches/7.3.33458
-rw-r--r--source/ap/vim/patches/7.3.33548
-rw-r--r--source/ap/vim/patches/7.3.3361100
-rw-r--r--source/ap/vim/patches/7.3.33758
-rw-r--r--source/ap/vim/patches/7.3.338100
-rw-r--r--source/ap/vim/patches/7.3.33957
-rw-r--r--source/ap/vim/patches/7.3.34062
-rw-r--r--source/ap/vim/patches/7.3.341360
-rw-r--r--source/ap/vim/patches/7.3.34293
-rw-r--r--source/ap/vim/patches/7.3.343252
-rw-r--r--source/ap/vim/patches/7.3.344121
-rw-r--r--source/ap/vim/patches/7.3.34548
-rw-r--r--source/ap/vim/patches/7.3.346143
-rw-r--r--source/ap/vim/patches/7.3.34754
-rw-r--r--source/ap/vim/patches/7.3.34857
-rw-r--r--source/ap/vim/patches/7.3.34988
-rw-r--r--source/ap/vim/patches/7.3.35046
-rw-r--r--source/ap/vim/patches/7.3.35146
-rw-r--r--source/ap/vim/patches/7.3.352108
-rw-r--r--source/ap/vim/patches/7.3.353155
-rw-r--r--source/ap/vim/patches/7.3.35471
-rw-r--r--source/ap/vim/patches/7.3.35556
-rw-r--r--source/ap/vim/patches/7.3.35679
-rw-r--r--source/ap/vim/patches/7.3.35752
-rw-r--r--source/ap/vim/patches/7.3.35874
-rw-r--r--source/ap/vim/patches/7.3.35964
-rw-r--r--source/ap/vim/patches/7.3.36061
-rw-r--r--source/ap/vim/patches/7.3.36155
-rw-r--r--source/ap/vim/patches/7.3.36259
-rw-r--r--source/ap/vim/patches/7.3.363110
-rw-r--r--source/ap/vim/patches/7.3.36457
-rw-r--r--source/ap/vim/patches/7.3.365131
-rw-r--r--source/ap/vim/patches/7.3.36676
-rw-r--r--source/ap/vim/patches/7.3.36753
-rw-r--r--source/ap/vim/patches/7.3.368103
-rw-r--r--source/ap/vim/patches/7.3.36948
-rw-r--r--source/ap/vim/patches/7.3.37063
-rw-r--r--source/ap/vim/patches/7.3.37175
-rw-r--r--source/ap/vim/patches/7.3.37252
-rw-r--r--source/ap/vim/patches/7.3.37378
-rw-r--r--source/ap/vim/patches/7.3.37459
-rw-r--r--source/ap/vim/patches/7.3.37564
-rw-r--r--source/ap/vim/patches/7.3.37657
-rw-r--r--source/ap/vim/patches/7.3.377406
-rw-r--r--source/ap/vim/patches/7.3.37871
-rw-r--r--source/ap/vim/patches/7.3.379112
-rw-r--r--source/ap/vim/patches/7.3.380318
-rw-r--r--source/ap/vim/patches/7.3.381260
-rw-r--r--source/ap/vim/patches/7.3.382173
-rw-r--r--source/ap/vim/patches/7.3.38351
-rw-r--r--source/ap/vim/patches/7.3.38453
-rw-r--r--source/ap/vim/patches/7.3.38569
-rw-r--r--source/ap/vim/patches/7.3.38655
-rw-r--r--source/ap/vim/patches/7.3.38761
-rw-r--r--source/ap/vim/patches/7.3.38845
-rw-r--r--source/ap/vim/patches/7.3.38961
-rw-r--r--source/ap/vim/patches/7.3.390155
-rw-r--r--source/ap/vim/patches/7.3.39151
-rw-r--r--source/ap/vim/patches/7.3.392115
-rw-r--r--source/ap/vim/patches/7.3.393130
-rw-r--r--source/ap/vim/patches/7.3.39462
-rw-r--r--source/ap/vim/patches/7.3.395115
-rw-r--r--source/ap/vim/patches/7.3.39649
-rw-r--r--source/ap/vim/patches/7.3.397224
-rw-r--r--source/ap/vim/patches/7.3.39865
-rw-r--r--source/ap/vim/patches/7.3.399137
-rw-r--r--source/ap/vim/patches/7.3.4001762
-rw-r--r--source/ap/vim/patches/7.3.401191
-rw-r--r--source/ap/vim/patches/7.3.40259
-rw-r--r--source/ap/vim/patches/7.3.403108
-rw-r--r--source/ap/vim/patches/7.3.40485
-rw-r--r--source/ap/vim/patches/7.3.405101
-rw-r--r--source/ap/vim/patches/7.3.406103
-rw-r--r--source/ap/vim/patches/7.3.407270
-rw-r--r--source/ap/vim/patches/7.3.40848
-rw-r--r--source/ap/vim/patches/7.3.40948
-rw-r--r--source/ap/vim/patches/7.3.41054
-rw-r--r--source/ap/vim/patches/7.3.41155
-rw-r--r--source/ap/vim/patches/7.3.41251
-rw-r--r--source/ap/vim/patches/7.3.41390
-rw-r--r--source/ap/vim/patches/7.3.41490
-rw-r--r--source/ap/vim/patches/7.3.41554
-rw-r--r--source/ap/vim/patches/7.3.41654
-rw-r--r--source/ap/vim/patches/7.3.41747
-rw-r--r--source/ap/vim/patches/7.3.41853
-rw-r--r--source/ap/vim/patches/7.3.41985
-rw-r--r--source/ap/vim/patches/7.3.42070
-rw-r--r--source/ap/vim/patches/7.3.42160
-rw-r--r--source/ap/vim/patches/7.3.42294
-rw-r--r--source/ap/vim/patches/7.3.423130
-rw-r--r--source/ap/vim/patches/7.3.42462
-rw-r--r--source/ap/vim/patches/7.3.42578
-rw-r--r--source/ap/vim/patches/7.3.426279
-rw-r--r--source/ap/vim/patches/7.3.427378
-rw-r--r--source/ap/vim/patches/7.3.428113
-rw-r--r--source/ap/vim/patches/7.3.429192
-rw-r--r--source/ap/vim/patches/7.3.43080
-rw-r--r--source/ap/vim/patches/7.3.431280
-rw-r--r--source/ap/vim/patches/7.3.432228
-rw-r--r--source/ap/vim/patches/7.3.43392
-rw-r--r--source/ap/vim/patches/7.3.434233
-rw-r--r--source/ap/vim/patches/7.3.43563
-rw-r--r--source/ap/vim/patches/7.3.436111
-rw-r--r--source/ap/vim/patches/7.3.43773
-rw-r--r--source/ap/vim/patches/7.3.438126
-rw-r--r--source/ap/vim/patches/7.3.43987
-rw-r--r--source/ap/vim/patches/7.3.440211
-rw-r--r--source/ap/vim/patches/7.3.441341
-rw-r--r--source/ap/vim/patches/7.3.442186
-rw-r--r--source/ap/vim/patches/7.3.443206
-rw-r--r--source/ap/vim/patches/7.3.44496
-rw-r--r--source/ap/vim/patches/7.3.445199
-rw-r--r--source/ap/vim/patches/7.3.446164
-rw-r--r--source/ap/vim/patches/7.3.447377
-rw-r--r--source/ap/vim/patches/7.3.448180
-rw-r--r--source/ap/vim/patches/7.3.449455
-rw-r--r--source/ap/vim/patches/7.3.45081
-rw-r--r--source/ap/vim/patches/7.3.451363
-rw-r--r--source/ap/vim/patches/7.3.45270
-rw-r--r--source/ap/vim/patches/7.3.45358
-rw-r--r--source/ap/vim/patches/7.3.45484
-rw-r--r--source/ap/vim/patches/7.3.45570
-rw-r--r--source/ap/vim/patches/7.3.456376
-rw-r--r--source/ap/vim/patches/7.3.45781
-rw-r--r--source/ap/vim/patches/7.3.45852
-rw-r--r--source/ap/vim/patches/7.3.45971
-rw-r--r--source/ap/vim/patches/7.3.46089
-rw-r--r--source/ap/vim/patches/7.3.461243
-rw-r--r--source/ap/vim/patches/7.3.462191
-rw-r--r--source/ap/vim/patches/7.3.46363
-rw-r--r--source/ap/vim/patches/7.3.46460
-rw-r--r--source/ap/vim/patches/7.3.465398
-rw-r--r--source/ap/vim/patches/7.3.46649
-rw-r--r--source/ap/vim/patches/7.3.46754
-rw-r--r--source/ap/vim/patches/7.3.468144
-rw-r--r--source/ap/vim/patches/7.3.46953
-rw-r--r--source/ap/vim/patches/7.3.47067
-rw-r--r--source/ap/vim/patches/7.3.47192
-rw-r--r--source/ap/vim/patches/7.3.47288
-rw-r--r--source/ap/vim/patches/7.3.47368
-rw-r--r--source/ap/vim/patches/7.3.47462
-rw-r--r--source/ap/vim/patches/7.3.47598
-rw-r--r--source/ap/vim/patches/7.3.47656
-rw-r--r--source/ap/vim/patches/7.3.47752
-rw-r--r--source/ap/vim/patches/7.3.47846
-rw-r--r--source/ap/vim/patches/7.3.479134
-rw-r--r--source/ap/vim/patches/7.3.480237
-rw-r--r--source/ap/vim/patches/7.3.48165
-rw-r--r--source/ap/vim/patches/7.3.48257
-rw-r--r--source/ap/vim/patches/7.3.48397
-rw-r--r--source/ap/vim/patches/7.3.48462
-rw-r--r--source/ap/vim/patches/7.3.48552
-rw-r--r--source/ap/vim/patches/7.3.48658
-rw-r--r--source/ap/vim/patches/7.3.487572
-rw-r--r--source/ap/vim/patches/7.3.48852
-rw-r--r--source/ap/vim/patches/7.3.48989
-rw-r--r--source/ap/vim/patches/7.3.4902517
-rw-r--r--source/ap/vim/patches/7.3.491235
-rw-r--r--source/ap/vim/patches/7.3.492718
-rw-r--r--source/ap/vim/patches/7.3.49354
-rw-r--r--source/ap/vim/patches/7.3.494186
-rw-r--r--source/ap/vim/patches/7.3.495124
-rw-r--r--source/ap/vim/patches/7.3.49669
-rw-r--r--source/ap/vim/patches/7.3.49750
-rw-r--r--source/ap/vim/patches/7.3.49863
-rw-r--r--source/ap/vim/patches/7.3.49984
-rw-r--r--source/ap/vim/patches/7.3.50046
-rw-r--r--source/ap/vim/patches/7.3.50163
-rw-r--r--source/ap/vim/patches/7.3.50267
-rw-r--r--source/ap/vim/patches/7.3.50351
-rw-r--r--source/ap/vim/patches/7.3.50487
-rw-r--r--source/ap/vim/patches/7.3.505116
-rw-r--r--source/ap/vim/patches/7.3.506100
-rw-r--r--source/ap/vim/patches/7.3.507149
-rw-r--r--source/ap/vim/patches/7.3.50885
-rw-r--r--source/ap/vim/patches/7.3.509304
-rw-r--r--source/ap/vim/patches/7.3.51053
-rw-r--r--source/ap/vim/patches/7.3.51149
-rw-r--r--source/ap/vim/patches/7.3.51270
-rw-r--r--source/ap/vim/patches/7.3.513129
-rw-r--r--source/ap/vim/patches/7.3.514232
-rw-r--r--source/ap/vim/patches/7.3.51568
-rw-r--r--source/ap/vim/patches/7.3.51694
-rw-r--r--source/ap/vim/patches/7.3.51760
-rw-r--r--source/ap/vim/patches/7.3.51857
-rw-r--r--source/ap/vim/patches/7.3.51964
-rw-r--r--source/ap/vim/patches/7.3.520140
-rw-r--r--source/ap/vim/patches/7.3.521129
-rw-r--r--source/ap/vim/patches/7.3.52256
-rw-r--r--source/ap/vim/patches/7.3.523103
-rw-r--r--source/ap/vim/patches/7.3.52446
-rw-r--r--source/ap/vim/patches/7.3.52555
-rw-r--r--source/ap/vim/patches/7.3.52659
-rw-r--r--source/ap/vim/patches/7.3.52759
-rw-r--r--source/ap/vim/patches/7.3.528171
-rw-r--r--source/ap/vim/patches/7.3.52981
-rw-r--r--source/ap/vim/patches/7.3.53050
-rw-r--r--source/ap/vim/patches/7.3.53152
-rw-r--r--source/ap/vim/patches/7.3.53253
-rw-r--r--source/ap/vim/patches/7.3.53346
-rw-r--r--source/ap/vim/patches/7.3.534101
-rw-r--r--source/ap/vim/patches/7.3.535356
-rw-r--r--source/ap/vim/patches/7.3.53673
-rw-r--r--source/ap/vim/patches/7.3.53747
-rw-r--r--source/ap/vim/patches/7.3.538321
-rw-r--r--source/ap/vim/patches/7.3.53951
-rw-r--r--source/ap/vim/patches/7.3.54055
-rw-r--r--source/ap/vim/patches/7.3.5411090
-rw-r--r--source/ap/vim/patches/7.3.54273
-rw-r--r--source/ap/vim/patches/7.3.54355
-rw-r--r--source/ap/vim/patches/7.3.54481
-rw-r--r--source/ap/vim/patches/7.3.545359
-rw-r--r--source/ap/vim/patches/7.3.54654
-rw-r--r--source/ap/vim/patches/7.3.54752
-rw-r--r--source/ap/vim/patches/7.3.54853
-rw-r--r--source/ap/vim/patches/7.3.549125
-rw-r--r--source/ap/vim/patches/7.3.550160
-rw-r--r--source/ap/vim/patches/7.3.551494
-rw-r--r--source/ap/vim/patches/7.3.552582
-rw-r--r--source/ap/vim/patches/7.3.55385
-rw-r--r--source/ap/vim/patches/7.3.55452
-rw-r--r--source/ap/vim/patches/7.3.555232
-rw-r--r--source/ap/vim/patches/7.3.55670
-rw-r--r--source/ap/vim/patches/7.3.55799
-rw-r--r--source/ap/vim/patches/7.3.55890
-rw-r--r--source/ap/vim/patches/7.3.559131
-rw-r--r--source/ap/vim/patches/7.3.56049
-rw-r--r--source/ap/vim/patches/7.3.56152
-rw-r--r--source/ap/vim/patches/7.3.56263
-rw-r--r--source/ap/vim/patches/7.3.56397
-rw-r--r--source/ap/vim/patches/7.3.56453
-rw-r--r--source/ap/vim/patches/7.3.56552
-rw-r--r--source/ap/vim/patches/7.3.56683
-rw-r--r--source/ap/vim/patches/7.3.56756
-rw-r--r--source/ap/vim/patches/7.3.568138
-rw-r--r--source/ap/vim/patches/7.3.5694762
-rw-r--r--source/ap/vim/patches/7.3.570145
-rw-r--r--source/ap/vim/patches/7.3.571117
-rw-r--r--source/ap/vim/patches/7.3.57259
-rw-r--r--source/ap/vim/patches/7.3.57352
-rw-r--r--source/ap/vim/patches/7.3.57488
-rw-r--r--source/ap/vim/patches/7.3.57560
-rw-r--r--source/ap/vim/patches/7.3.576255
-rw-r--r--source/ap/vim/patches/7.3.577273
-rw-r--r--source/ap/vim/patches/7.3.57880
-rw-r--r--source/ap/vim/patches/7.3.579232
-rw-r--r--source/ap/vim/patches/7.3.58052
-rw-r--r--source/ap/vim/patches/7.3.581117
-rw-r--r--source/ap/vim/patches/7.3.58261
-rw-r--r--source/ap/vim/patches/7.3.58379
-rw-r--r--source/ap/vim/patches/7.3.584134
-rw-r--r--source/ap/vim/patches/7.3.58556
-rw-r--r--source/ap/vim/patches/7.3.586103
-rw-r--r--source/ap/vim/patches/7.3.58784
-rw-r--r--source/ap/vim/patches/7.3.58885
-rw-r--r--source/ap/vim/patches/7.3.58969
-rw-r--r--source/ap/vim/patches/7.3.59061
-rw-r--r--source/ap/vim/patches/7.3.591208
-rw-r--r--source/ap/vim/patches/7.3.592126
-rw-r--r--source/ap/vim/patches/7.3.59381
-rw-r--r--source/ap/vim/patches/7.3.594171
-rw-r--r--source/ap/vim/patches/7.3.595154
-rw-r--r--source/ap/vim/patches/7.3.596171
-rw-r--r--source/ap/vim/patches/7.3.597720
-rw-r--r--source/ap/vim/patches/7.3.59873
-rw-r--r--source/ap/vim/patches/7.3.599107
-rw-r--r--source/ap/vim/patches/7.3.60068
-rw-r--r--source/ap/vim/patches/7.3.60151
-rw-r--r--source/ap/vim/patches/7.3.60255
-rw-r--r--source/ap/vim/patches/7.3.603370
-rw-r--r--source/ap/vim/patches/7.3.60460
-rw-r--r--source/ap/vim/patches/7.3.60586
-rw-r--r--source/ap/vim/patches/7.3.60676
-rw-r--r--source/ap/vim/patches/7.3.60756
-rw-r--r--source/ap/vim/patches/7.3.608119
-rw-r--r--source/ap/vim/patches/7.3.609251
-rw-r--r--source/ap/vim/patches/7.3.610400
-rw-r--r--source/ap/vim/patches/7.3.61158
-rw-r--r--source/ap/vim/patches/7.3.61283
-rw-r--r--source/ap/vim/patches/7.3.613149
-rw-r--r--source/ap/vim/patches/7.3.614176
-rw-r--r--source/ap/vim/patches/7.3.615107
-rw-r--r--source/ap/vim/patches/7.3.61646
-rw-r--r--source/ap/vim/patches/7.3.61765
-rw-r--r--source/ap/vim/patches/7.3.618367
-rw-r--r--source/ap/vim/patches/7.3.61950
-rw-r--r--source/ap/vim/patches/7.3.620163
-rw-r--r--source/ap/vim/patches/7.3.62172
-rw-r--r--source/ap/vim/patches/7.3.62256
-rw-r--r--source/ap/vim/patches/7.3.62392
-rw-r--r--source/ap/vim/patches/7.3.62452
-rw-r--r--source/ap/vim/patches/7.3.625140
-rw-r--r--source/ap/vim/patches/7.3.62649
-rw-r--r--source/ap/vim/patches/7.3.627102
-rw-r--r--source/ap/vim/patches/7.3.62854
-rw-r--r--source/ap/vim/patches/7.3.629437
-rw-r--r--source/ap/vim/patches/7.3.63048
-rw-r--r--source/ap/vim/patches/7.3.631322
-rw-r--r--source/ap/vim/patches/7.3.632537
-rw-r--r--source/ap/vim/patches/7.3.63381
-rw-r--r--source/ap/vim/patches/7.3.63457
-rw-r--r--source/ap/vim/patches/7.3.63550
-rw-r--r--source/ap/vim/patches/7.3.636148
-rw-r--r--source/ap/vim/patches/7.3.63794
-rw-r--r--source/ap/vim/patches/7.3.63855
-rw-r--r--source/ap/vim/patches/7.3.639846
-rw-r--r--source/ap/vim/patches/7.3.640bin0 -> 455297 bytes
-rw-r--r--source/ap/vim/patches/7.3.64168
-rw-r--r--source/ap/vim/patches/7.3.64255
-rw-r--r--source/ap/vim/patches/7.3.64373
-rw-r--r--source/ap/vim/patches/7.3.64472
-rw-r--r--source/ap/vim/patches/7.3.645118
-rwxr-xr-xsource/ap/zsh/zsh.SlackBuild5
-rw-r--r--source/ap/zsh/zsh.regex.oh.bah.diff12
-rwxr-xr-xsource/l/js185/js185.SlackBuild (renamed from source/a/module-init-tools/module-init-tools.SlackBuild)103
-rw-r--r--source/l/js185/slack-desc (renamed from source/a/gdisk/slack-desc)22
-rw-r--r--source/l/libcap/libcap-2.22.tar.bz2.sign (renamed from source/a/mdadm/mdadm-3.1.5.tar.bz2.sign)6
-rwxr-xr-xsource/n/iftop/iftop.SlackBuild (renamed from source/ap/ntfsprogs/ntfsprogs.SlackBuild)66
778 files changed, 103770 insertions, 36670 deletions
diff --git a/source/a/aaa_base/aaa_base.SlackBuild b/source/a/aaa_base/aaa_base.SlackBuild
index 297591448..b41e95454 100755
--- a/source/a/aaa_base/aaa_base.SlackBuild
+++ b/source/a/aaa_base/aaa_base.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,8 +20,8 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=13.37
-BUILD=${BUILD:-3}
+VERSION=14.0
+BUILD=${BUILD:-5}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -37,6 +37,7 @@ CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-aaa_base
+rm -rf $PKG
mkdir -p $TMP $PKG
# Explode the package framework:
@@ -51,6 +52,9 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cp -a $CWD/slackware-version $PKG/etc/slackware-version
chown root:root $PKG/etc/slackware-version
chmod 644 $PKG/etc/slackware-version
+cp -a $CWD/os-release $PKG/etc/os-release
+chown root:root $PKG/etc/os-release
+chmod 644 $PKG/etc/os-release
# Add lib64 directories on x86_64:
if [ "$ARCH" = "x86_64" ]; then
diff --git a/source/a/aaa_base/os-release b/source/a/aaa_base/os-release
new file mode 100644
index 000000000..717dbbf8c
--- /dev/null
+++ b/source/a/aaa_base/os-release
@@ -0,0 +1,10 @@
+NAME=Slackware
+VERSION="14.0"
+ID=slackware
+VERSION_ID=14.0
+PRETTY_NAME="Slackware 14.0"
+ANSI_COLOR="0;34"
+CPE_NAME="cpe:/o:slackware:slackware_linux:14.0"
+HOME_URL="http://slackware.com/"
+SUPPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
+BUG_REPORT_URL="http://www.linuxquestions.org/questions/slackware-14/"
diff --git a/source/a/aaa_base/slackware-version b/source/a/aaa_base/slackware-version
index 9f526a9a3..bd93610e1 100644
--- a/source/a/aaa_base/slackware-version
+++ b/source/a/aaa_base/slackware-version
@@ -1 +1 @@
-Slackware 13.37.0
+Slackware 14.0
diff --git a/source/a/aaa_elflibs/aaa_elflibs.SlackBuild b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild
index 09c181ef2..20a343d2d 100755
--- a/source/a/aaa_elflibs/aaa_elflibs.SlackBuild
+++ b/source/a/aaa_elflibs/aaa_elflibs.SlackBuild
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
PKGNAM=aaa_elflibs
-VERSION=${VERSION:-13.37}
-BUILD=${BUILD:-7}
+VERSION=${VERSION:-14.0}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/aaa_elflibs/symlinks-to-tracked-libs b/source/a/aaa_elflibs/symlinks-to-tracked-libs
index ab5ec3d7a..38a44e9e9 100644
--- a/source/a/aaa_elflibs/symlinks-to-tracked-libs
+++ b/source/a/aaa_elflibs/symlinks-to-tracked-libs
@@ -6,12 +6,13 @@
/lib/libdm.so.0
/lib/libfuse.so.2
/lib/libgpm.so.1
-/lib/liblzma.so.0
+/lib/liblzma.so.5
/lib/libncurses.so.5
/lib/libncursesw.so.5
/lib/libpopt.so.0
/lib/libsysfs.so.2
/lib/libtermcap.so.2
+/lib/libz.so.1
/usr/lib/libasound.so.2
/usr/lib/libcurl.so.2
/usr/lib/libcurl.so.3
@@ -32,14 +33,11 @@
/usr/lib/libgmpxx.so.4
/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/libjpeg.so.8
-/usr/lib/liblber-2.3.so.0
/usr/lib/liblber-2.4.so.2
-/usr/lib/libldap-2.3.so.0
/usr/lib/libldap-2.4.so.2
/usr/lib/libltdl.so.3
/usr/lib/libltdl.so.7
@@ -56,7 +54,6 @@
/usr/lib/libpng.so.14
/usr/lib/libpng12.so.0
/usr/lib/libpng14.so.14
-/usr/lib/libreadline.so.4
/usr/lib/libreadline.so.5
/usr/lib/libslang.so.1
/usr/lib/libslang.so.2
@@ -65,4 +62,3 @@
/usr/lib/libusb-1.0.so.0
/usr/lib/libvga.so.1
/usr/lib/libvgagl.so.1
-/usr/lib/libz.so.1
diff --git a/source/a/acl/acl.SlackBuild b/source/a/acl/acl.SlackBuild
index a97bf27d1..a74fb355c 100755
--- a/source/a/acl/acl.SlackBuild
+++ b/source/a/acl/acl.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=acl
-VERSION=2.2.50
+VERSION=2.2.51
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -50,7 +50,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf acl-$(echo $VERSION | cut -f 1 -d '-')
-tar xzvf $CWD/acl-$VERSION.src.tar.gz || exit 1
+tar xvf $CWD/acl-$VERSION.src.tar.?z || exit 1
cd acl-$(echo $VERSION | cut -f 1 -d '-') || exit 1
chown -R root:root .
diff --git a/source/a/acpid/acpid.SlackBuild b/source/a/acpid/acpid.SlackBuild
index bd96d8b11..0b761d78d 100755
--- a/source/a/acpid/acpid.SlackBuild
+++ b/source/a/acpid/acpid.SlackBuild
@@ -25,12 +25,14 @@ VERSION=${VERSION:-$(echo acpid-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d -
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$MARCH ;;
esac
fi
@@ -40,9 +42,22 @@ PKG=$TMP/package-acpid
NUMJOBS=${NUMJOBS:--j8}
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
rm -rf $PKG
mkdir -p $TMP $PKG
-
cd $TMP
rm -rf acpid-$VERSION
tar xvf $CWD/acpid-$VERSION.tar.?z* || exit 1
@@ -54,15 +69,29 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-make install \
- OPT="-O2" \
- PREFIX=/usr \
- MANDIR=/usr/man \
- DOCDIR=/usr/doc/acpid-$VERSION \
- DESTDIR=$PKG \
- || exit 1
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/acpid-$VERSION \
+ --build=$ARCH-slackware-linux
+
+make
+make install DESTDIR=$PKG
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-strip --strip-unneeded $PKG/usr/bin/acpi_listen $PKG/usr/sbin/acpid
+# Compress manual pages:
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do
+ ln -s $( readlink $i ).gz $i.gz
+ rm $i
+done
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
diff --git a/source/a/attr/attr.SlackBuild b/source/a/attr/attr.SlackBuild
index 1b6fe70b4..892961cff 100755
--- a/source/a/attr/attr.SlackBuild
+++ b/source/a/attr/attr.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=attr
-VERSION=2.4.45
+VERSION=2.4.46
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -49,7 +49,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf attr-$(echo $VERSION | cut -f 1 -d '-')
-tar xvf $CWD/attr-$VERSION.src.tar.gz || exit 1
+tar xvf $CWD/attr-$VERSION.src.tar.?z || exit 1
cd attr-$(echo $VERSION | cut -f 1 -d '-') || exit 1
chown -R root:root .
find . \
diff --git a/source/a/bash/bash-4.1-patches/bash41-001 b/source/a/bash/bash-4.1-patches/bash41-001
deleted file mode 100644
index 758e1fa40..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-001
+++ /dev/null
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-001
-
-Bug-Reported-by: Yann Rouillard <yann@pleiades.fr.eu.org>
-Bug-Reference-ID: <4B44A410.4070107@pleiades.fr.eu.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00018.html
-
-Bug-Description:
-
-A prototype for vsnprintf was incorrect, and caused compilation failures
-on systems that did not have a suitable vsnprintf, but had a declaration in
-one of the system header files.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/printf.def 2009-11-20 15:31:23.000000000 -0500
---- builtins/printf.def 2010-01-07 08:50:06.000000000 -0500
-***************
-*** 173,177 ****
-
- #if !HAVE_VSNPRINTF
-! extern int vsnprintf __P((char *, size_t, const char *, ...)) __attribute__((__format__ (printf, 3, 4)));
- #endif
-
---- 173,177 ----
-
- #if !HAVE_VSNPRINTF
-! extern int vsnprintf __P((char *, size_t, const char *, va_list)) __attribute__((__format__ (printf, 3, 0)));
- #endif
-
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-002 b/source/a/bash/bash-4.1-patches/bash41-002
deleted file mode 100644
index a1151985c..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-002
+++ /dev/null
@@ -1,65 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-002
-
-Bug-Reported-by: guillaume.outters@free.fr
-Bug-Reference-ID: <20100105230441.70D171AA7F52@asterix.local>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00017.html
-
-Bug-Description:
-
-Bash-4.1/Readline-6.1 introduced a hook function that allows applications
-to rewrite or modify filenames read from the file system before comparing
-them with a word to be completed. The converted filename, if it matches,
-needs to be inserted into the line buffer, replacing the original contents.
-
-This fixes a completion bug on Mac OS X involving filenames containing
-UTF-8 characters.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/lib/readline/complete.c 2009-11-29 18:39:30.000000000 -0500
---- lib/readline/complete.c 2010-01-06 08:30:23.000000000 -0500
-***************
-*** 2139,2143 ****
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (entry->d_name))
- continue;
-
---- 2139,2143 ----
- if (filename_len == 0)
- {
-! if (_rl_match_hidden_files == 0 && HIDDEN_FILE (convfn))
- continue;
-
-***************
-*** 2220,2224 ****
- }
-
-! strcpy (temp + dirlen, entry->d_name);
- }
- else
---- 2220,2224 ----
- }
-
-! strcpy (temp + dirlen, convfn);
- }
- else
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-003 b/source/a/bash/bash-4.1-patches/bash41-003
deleted file mode 100644
index 479fdcd9d..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-003
+++ /dev/null
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-003
-
-Bug-Reported-by: coyote@wariat.org.pl
-Bug-Reference-ID: <4b64a1f8.06e2660a.60af.4bfb@mx.google.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-01/msg00135.html
-
-Bug-Description:
-
-If command completion is attempted on a word with a quoted globbing
-character (e.g., `*' or `?'), bash can reference a NULL pointer and
-dump core.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/bashline.c 2009-10-24 14:10:19.000000000 -0400
---- bashline.c 2010-01-30 21:53:49.000000000 -0500
-***************
-*** 1681,1685 ****
- characters in the common prefix are bad) will ever be returned on
- regular completion. */
-! if (glob_pattern_p (hint))
- {
- if (state == 0)
---- 1681,1685 ----
- characters in the common prefix are bad) will ever be returned on
- regular completion. */
-! if (globpat)
- {
- if (state == 0)
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-004 b/source/a/bash/bash-4.1-patches/bash41-004
deleted file mode 100644
index 33f79bb7c..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-004
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-004
-
-Bug-Reported-by: Crestez Dan Leonard <cdleonard@gmail.com>
-Bug-Reference-ID: <1265592839.30682.21.camel@deskbox>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00034.html
-
-Bug-Description:
-
-When running in Posix mode and executing a shell function without local
-variables, bash will not propagate a variable in a special builtin's temporary
-environment to have global scope.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/variables.c 2009-11-03 14:13:58.000000000 -0500
---- variables.c 2010-02-08 17:36:18.000000000 -0500
-***************
-*** 3809,3812 ****
---- 3809,3817 ----
- if (tempvar_p (var) && (posixly_correct || (var->attributes & att_propagate)))
- {
-+ /* Make sure we have a hash table to store the variable in while it is
-+ being propagated down to the global variables table. Create one if
-+ we have to */
-+ if ((vc_isfuncenv (shell_variables) || vc_istempenv (shell_variables)) && shell_variables->table == 0)
-+ shell_variables->table = hash_create (0);
- /* XXX - should we set v->context here? */
- v = bind_variable_internal (var->name, value_cell (var), shell_variables->table, 0, 0);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-005 b/source/a/bash/bash-4.1-patches/bash41-005
deleted file mode 100644
index 8a2fec8a3..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-005
+++ /dev/null
@@ -1,56 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-005
-
-Bug-Reported-by: werner@suse.de
-Bug-Reference-ID: <201002251238.o1PCcYcg016893@boole.suse.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html
-
-Bug-Description:
-
-When the `read' builtin times out after the timeout specified with -t is
-exceeded, it does not reset the flags that tell signal handlers to process
-signals immediately instead of deferring their handling. This can result
-in unsafe functions being called from signal handlers, which can cause bash
-to hang or dump core.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/read.def 2009-10-08 11:35:46.000000000 -0400
---- builtins/read.def 2010-03-17 17:35:39.000000000 -0400
-***************
-*** 616,621 ****
- zsyncfd (fd);
-
-- interrupt_immediately--;
-- terminate_immediately--;
- discard_unwind_frame ("read_builtin");
-
---- 616,619 ----
-***************
-*** 624,627 ****
---- 622,628 ----
- assign_vars:
-
-+ interrupt_immediately--;
-+ terminate_immediately--;
-+
- #if defined (ARRAY_VARS)
- /* If -a was given, take the string read, break it into a list of words,
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-006 b/source/a/bash/bash-4.1-patches/bash41-006
deleted file mode 100644
index d6553b8bb..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-006
+++ /dev/null
@@ -1,76 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-006
-
-Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
-Bug-Reference-ID: <201003210155.56618.vapier@gentoo.org>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00063.html
-
-Bug-Description:
-
-Bash did not correctly print/reproduce here documents attached to commands
-inside compound commands such as for and while. This affected the
-execution of such commands inside a shell function when the function
-definition is saved and later restored using `.' or `eval'.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/print_cmd.c 2009-09-16 15:32:26.000000000 -0400
---- print_cmd.c 2010-03-22 21:15:30.000000000 -0400
-***************
-*** 114,117 ****
---- 114,123 ----
- #define CHECK_XTRACE_FP xtrace_fp = (xtrace_fp ? xtrace_fp : stderr)
-
-+ #define PRINT_DEFERRED_HEREDOCS(x) \
-+ do { \
-+ if (deferred_heredocs) \
-+ print_deferred_heredocs (x); \
-+ } while (0)
-+
- /* Non-zero means the stuff being printed is inside of a function def. */
- static int inside_function_def;
-***************
-*** 561,571 ****
- {
- print_for_command_head (for_command);
--
- cprintf (";");
- newline ("do\n");
- indentation += indentation_amount;
- make_command_string_internal (for_command->action);
- semicolon ();
- indentation -= indentation_amount;
- newline ("done");
- }
---- 566,578 ----
- {
- print_for_command_head (for_command);
- cprintf (";");
- newline ("do\n");
-+
- indentation += indentation_amount;
- make_command_string_internal (for_command->action);
-+ PRINT_DEFERRED_HEREDOCS ("");
- semicolon ();
- indentation -= indentation_amount;
-+
- newline ("done");
- }
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-007 b/source/a/bash/bash-4.1-patches/bash41-007
deleted file mode 100644
index 07b4796c4..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-007
+++ /dev/null
@@ -1,47 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-007
-
-Bug-Reported-by: Rob Robason <rob@robason.net>
-Bug-Reference-ID: <1269513145.22336.9.camel@home.robason.homelinux.net>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00089.html
-
-Bug-Description:
-
-A typo caused bash to not honor a precision specification in a printf
-format.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/printf.def 2010-01-18 10:50:22.000000000 -0500
---- builtins/printf.def 2010-03-25 09:40:56.000000000 -0400
-***************
-*** 118,122 ****
- nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth, func); \
- else if (have_precision) \
-! nw = vflag ? vbprintf (f, precision, func) : printf (f, fieldwidth, func); \
- else \
- nw = vflag ? vbprintf (f, func) : printf (f, func); \
---- 118,122 ----
- nw = vflag ? vbprintf (f, fieldwidth, func) : printf (f, fieldwidth, func); \
- else if (have_precision) \
-! nw = vflag ? vbprintf (f, precision, func) : printf (f, precision, func); \
- else \
- nw = vflag ? vbprintf (f, func) : printf (f, func); \
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-008 b/source/a/bash/bash-4.1-patches/bash41-008
deleted file mode 100644
index 2bec4de4f..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-008
+++ /dev/null
@@ -1,49 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-008
-
-Bug-Reported-by: Dennis van Dok <dvandok@gmail.com>
-Bug-Reference-ID: <4BBF2501.5050703@gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-04/msg00038.html
-
-Bug-Description:
-
-When declaring an associative array and implicitly assigning a value
-to element "0", bash does not correctly allocate memory, leading to
-a segmentation violation when that element or the array itself is
-unset.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/builtins/declare.def 2009-11-25 19:42:00.000000000 -0500
---- builtins/declare.def 2010-05-30 18:25:21.000000000 -0400
-***************
-*** 513,517 ****
- /* let bind_{array,assoc}_variable take care of this. */
- if (assoc_p (var))
-! bind_assoc_variable (var, name, "0", value, aflags);
- else
- bind_array_variable (name, 0, value, aflags);
---- 519,523 ----
- /* let bind_{array,assoc}_variable take care of this. */
- if (assoc_p (var))
-! bind_assoc_variable (var, name, savestring ("0"), value, aflags);
- else
- bind_array_variable (name, 0, value, aflags);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-009 b/source/a/bash/bash-4.1-patches/bash41-009
deleted file mode 100644
index ae0f1e3e0..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-009
+++ /dev/null
@@ -1,48 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-009
-
-Bug-Reported-by: Tomas Trnka <tomastrnka@gmx.com>
-Bug-Reference-ID: <201003242030.02166.tomastrnka@gmx.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-03/msg00090.html
-
-Bug-Description:
-
-An arriving SIGCHLD will interrupt `slow' system calls such as write(2) to
-or read(2) from a terminal. This results in an error message and truncated
-input or output.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/sig.c Fri Aug 14 16:31:52 2009
---- sig.c Fri Mar 26 22:34:11 2010
-***************
-*** 655,660 ****
---- 655,663 ----
- act.sa_flags |= SA_INTERRUPT; /* XXX */
- else
- act.sa_flags |= SA_RESTART; /* XXX */
-+ #else
-+ if (sig == SIGCHLD)
-+ act.sa_flags |= SA_RESTART;
- #endif
- sigemptyset (&act.sa_mask);
- sigemptyset (&oact.sa_mask);
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.1-patches/bash41-010 b/source/a/bash/bash-4.1-patches/bash41-010
deleted file mode 100644
index b5a4b615a..000000000
--- a/source/a/bash/bash-4.1-patches/bash41-010
+++ /dev/null
@@ -1,68 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 4.1
-Patch-ID: bash41-010
-
-Bug-Reported-by: Stephane Jourdois <sjourdois@gmail.com>
-Bug-Reference-ID: <AANLkTimbh1t2BmCjnCgACpEidArJMBIEtr30Vv3VzHxf@mail.gmail.com>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2010-05/msg00165.html
-
-Bug-Description:
-
-The expansion of the \W prompt string escape sequence incorrectly used
-strcpy to copy overlapping strings. Only memmove works in this case.
-
-Patch (apply with `patch -p0'):
-
-*** ../bash-4.1-patched/parse.y 2009-12-30 12:51:42.000000000 -0500
---- parse.y 2011-02-24 16:40:48.000000000 -0500
-***************
-*** 5153,5157 ****
- t = strrchr (t_string, '/');
- if (t)
-! strcpy (t_string, t + 1);
- }
- }
---- 5153,5157 ----
- t = strrchr (t_string, '/');
- if (t)
-! memmove (t_string, t + 1, strlen (t));
- }
- }
-*** ../bash-4.1-patched/y.tab.c 2009-12-30 12:52:02.000000000 -0500
---- y.tab.c 2011-02-24 16:50:27.000000000 -0500
-***************
-*** 7482,7486 ****
- t = strrchr (t_string, '/');
- if (t)
-! strcpy (t_string, t + 1);
- }
- }
---- 7482,7486 ----
- t = strrchr (t_string, '/');
- if (t)
-! memmove (t_string, t + 1, strlen (t));
- }
- }
-***************
-*** 8244,8246 ****
- }
- #endif /* HANDLE_MULTIBYTE */
--
---- 8244,8245 ----
-*** ../bash-4.1-patched/patchlevel.h 2009-10-01 16:39:22.000000000 -0400
---- patchlevel.h 2010-01-14 09:38:08.000000000 -0500
-***************
-*** 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/bash-4.2-patches/bash42-001 b/source/a/bash/bash-4.2-patches/bash42-001
new file mode 100644
index 000000000..547aaa06f
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-001
@@ -0,0 +1,78 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-001
+
+Bug-Reported-by: Juergen Daubert <jue@jue.li>
+Bug-Reference-ID: <20110214175132.GA19813@jue.netz>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00125.html
+
+Bug-Description:
+
+When running in Posix mode, bash does not correctly expand the right-hand
+side of a double-quoted word expansion containing single quotes.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
+--- subst.c 2011-02-19 00:00:00.000000000 -0500
+***************
+*** 1380,1387 ****
+
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
+! parse_matched_pair() */
+! dolbrace_state = 0;
+! if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+! dolbrace_state = (flags & SX_POSIXEXP) ? DOLBRACE_QUOTE : DOLBRACE_PARAM;
+
+ i = *sindex;
+--- 1380,1389 ----
+
+ /* The handling of dolbrace_state needs to agree with the code in parse.y:
+! parse_matched_pair(). The different initial value is to handle the
+! case where this function is called to parse the word in
+! ${param op word} (SX_WORD). */
+! dolbrace_state = (flags & SX_WORD) ? DOLBRACE_WORD : DOLBRACE_PARAM;
+! if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && (flags & SX_POSIXEXP))
+! dolbrace_state = DOLBRACE_QUOTE;
+
+ i = *sindex;
+***************
+*** 7177,7181 ****
+ /* Extract the contents of the ${ ... } expansion
+ according to the Posix.2 rules. */
+! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#') ? SX_POSIXEXP : 0);
+ if (string[sindex] == RBRACE)
+ sindex++;
+--- 7181,7185 ----
+ /* Extract the contents of the ${ ... } expansion
+ according to the Posix.2 rules. */
+! value = extract_dollar_brace_string (string, &sindex, quoted, (c == '%' || c == '#' || c =='/' || c == '^' || c == ',' || c ==':') ? SX_POSIXEXP|SX_WORD : SX_WORD);
+ if (string[sindex] == RBRACE)
+ sindex++;
+*** ../bash-4.2-patched/subst.h 2010-12-02 20:21:29.000000000 -0500
+--- subst.h 2011-02-16 21:12:09.000000000 -0500
+***************
+*** 57,60 ****
+--- 57,61 ----
+ #define SX_ARITHSUB 0x0080 /* extracting $(( ... )) (currently unused) */
+ #define SX_POSIXEXP 0x0100 /* extracting new Posix pattern removal expansions in extract_dollar_brace_string */
++ #define SX_WORD 0x0200 /* extracting word in ${param op word} */
+
+ /* Remove backslashes which are quoting backquotes from STRING. Modifies
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-002 b/source/a/bash/bash-4.2-patches/bash42-002
new file mode 100644
index 000000000..077c7e0f8
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-002
@@ -0,0 +1,60 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-002
+
+Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
+Bug-Reference-ID: <AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
+
+Bug-Description:
+
+The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
+entire line.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/readline/vi_mode.c 2010-11-20 19:51:39.000000000 -0500
+--- lib/readline/vi_mode.c 2011-02-17 20:24:25.000000000 -0500
+***************
+*** 1115,1119 ****
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (0);
+ }
+ #if defined (READLINE_CALLBACKS)
+--- 1115,1119 ----
+ _rl_vi_last_motion = c;
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
+! return (vidomove_dispatch (m));
+ }
+ #if defined (READLINE_CALLBACKS)
+*** ../bash-4.2-patched/lib/readline/callback.c 2010-06-06 12:18:58.000000000 -0400
+--- lib/readline/callback.c 2011-02-17 20:43:28.000000000 -0500
+***************
+*** 149,152 ****
+--- 149,155 ----
+ /* Should handle everything, including cleanup, numeric arguments,
+ and turning off RL_STATE_VIMOTION */
++ if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
++ _rl_internal_char_cleanup ();
++
+ return;
+ }
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-003 b/source/a/bash/bash-4.2-patches/bash42-003
new file mode 100644
index 000000000..c488e96b2
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-003
@@ -0,0 +1,318 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-003
+
+Bug-Reported-by: Clark J. Wang <dearvoid@gmail.com>
+Bug-Reference-ID: <AANLkTikZ_rVV-frR8Fh0PzhXnMKnm5XsUR-F3qtPPs5G@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00136.html
+
+Bug-Description:
+
+When using the pattern replacement and pattern removal word expansions, bash
+miscalculates the possible match length in the presence of an unescaped left
+bracket without a closing right bracket, resulting in a failure to match
+the pattern.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/glob/gmisc.c 2011-02-05 16:11:17.000000000 -0500
+--- lib/glob/gmisc.c 2011-02-18 23:53:42.000000000 -0500
+***************
+*** 78,83 ****
+ size_t wmax;
+ {
+! wchar_t wc, *wbrack;
+! int matlen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*wpat == 0)
+--- 78,83 ----
+ size_t wmax;
+ {
+! wchar_t wc;
+! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*wpat == 0)
+***************
+*** 119,123 ****
+ case L'[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! wbrack = wpat;
+ wc = *wpat++;
+ do
+--- 119,123 ----
+ case L'[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! bracklen = 1;
+ wc = *wpat++;
+ do
+***************
+*** 125,140 ****
+ if (wc == 0)
+ {
+! matlen += wpat - wbrack - 1; /* incremented below */
+! break;
+ }
+ else if (wc == L'\\')
+ {
+! wc = *wpat++;
+! if (*wpat == 0)
+! break;
+ }
+ else if (wc == L'[' && *wpat == L':') /* character class */
+ {
+ wpat++;
+ in_cclass = 1;
+ }
+--- 125,148 ----
+ if (wc == 0)
+ {
+! wpat--; /* back up to NUL */
+! matlen += bracklen;
+! goto bad_bracket;
+ }
+ else if (wc == L'\\')
+ {
+! /* *wpat == backslash-escaped character */
+! bracklen++;
+! /* If the backslash or backslash-escape ends the string,
+! bail. The ++wpat skips over the backslash escape */
+! if (*wpat == 0 || *++wpat == 0)
+! {
+! matlen += bracklen;
+! goto bad_bracket;
+! }
+ }
+ else if (wc == L'[' && *wpat == L':') /* character class */
+ {
+ wpat++;
++ bracklen++;
+ in_cclass = 1;
+ }
+***************
+*** 142,145 ****
+--- 150,154 ----
+ {
+ wpat++;
++ bracklen++;
+ in_cclass = 0;
+ }
+***************
+*** 147,152 ****
+ {
+ wpat++;
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
+! wpat++;
+ in_collsym = 1;
+ }
+--- 156,165 ----
+ {
+ wpat++;
++ bracklen++;
+ if (*wpat == L']') /* right bracket can appear as collating symbol */
+! {
+! wpat++;
+! bracklen++;
+! }
+ in_collsym = 1;
+ }
+***************
+*** 154,157 ****
+--- 167,171 ----
+ {
+ wpat++;
++ bracklen++;
+ in_collsym = 0;
+ }
+***************
+*** 159,164 ****
+ {
+ wpat++;
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
+! wpat++;
+ in_equiv = 1;
+ }
+--- 173,182 ----
+ {
+ wpat++;
++ bracklen++;
+ if (*wpat == L']') /* right bracket can appear as equivalence class */
+! {
+! wpat++;
+! bracklen++;
+! }
+ in_equiv = 1;
+ }
+***************
+*** 166,174 ****
+--- 184,196 ----
+ {
+ wpat++;
++ bracklen++;
+ in_equiv = 0;
+ }
++ else
++ bracklen++;
+ }
+ while ((wc = *wpat++) != L']');
+ matlen++; /* bracket expression can only match one char */
++ bad_bracket:
+ break;
+ }
+***************
+*** 214,219 ****
+ size_t max;
+ {
+! char c, *brack;
+! int matlen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*pat == 0)
+--- 236,241 ----
+ size_t max;
+ {
+! char c;
+! int matlen, bracklen, t, in_cclass, in_collsym, in_equiv;
+
+ if (*pat == 0)
+***************
+*** 255,259 ****
+ case '[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! brack = pat;
+ c = *pat++;
+ do
+--- 277,281 ----
+ case '[':
+ /* scan for ending `]', skipping over embedded [:...:] */
+! bracklen = 1;
+ c = *pat++;
+ do
+***************
+*** 261,276 ****
+ if (c == 0)
+ {
+! matlen += pat - brack - 1; /* incremented below */
+! break;
+ }
+ else if (c == '\\')
+ {
+! c = *pat++;
+! if (*pat == 0)
+! break;
+ }
+ else if (c == '[' && *pat == ':') /* character class */
+ {
+ pat++;
+ in_cclass = 1;
+ }
+--- 283,306 ----
+ if (c == 0)
+ {
+! pat--; /* back up to NUL */
+! matlen += bracklen;
+! goto bad_bracket;
+ }
+ else if (c == '\\')
+ {
+! /* *pat == backslash-escaped character */
+! bracklen++;
+! /* If the backslash or backslash-escape ends the string,
+! bail. The ++pat skips over the backslash escape */
+! if (*pat == 0 || *++pat == 0)
+! {
+! matlen += bracklen;
+! goto bad_bracket;
+! }
+ }
+ else if (c == '[' && *pat == ':') /* character class */
+ {
+ pat++;
++ bracklen++;
+ in_cclass = 1;
+ }
+***************
+*** 278,281 ****
+--- 308,312 ----
+ {
+ pat++;
++ bracklen++;
+ in_cclass = 0;
+ }
+***************
+*** 283,288 ****
+ {
+ pat++;
+ if (*pat == ']') /* right bracket can appear as collating symbol */
+! pat++;
+ in_collsym = 1;
+ }
+--- 314,323 ----
+ {
+ pat++;
++ bracklen++;
+ if (*pat == ']') /* right bracket can appear as collating symbol */
+! {
+! pat++;
+! bracklen++;
+! }
+ in_collsym = 1;
+ }
+***************
+*** 290,293 ****
+--- 325,329 ----
+ {
+ pat++;
++ bracklen++;
+ in_collsym = 0;
+ }
+***************
+*** 295,300 ****
+ {
+ pat++;
+ if (*pat == ']') /* right bracket can appear as equivalence class */
+! pat++;
+ in_equiv = 1;
+ }
+--- 331,340 ----
+ {
+ pat++;
++ bracklen++;
+ if (*pat == ']') /* right bracket can appear as equivalence class */
+! {
+! pat++;
+! bracklen++;
+! }
+ in_equiv = 1;
+ }
+***************
+*** 302,310 ****
+--- 342,354 ----
+ {
+ pat++;
++ bracklen++;
+ in_equiv = 0;
+ }
++ else
++ bracklen++;
+ }
+ while ((c = *pat++) != ']');
+ matlen++; /* bracket expression can only match one char */
++ bad_bracket:
+ break;
+ }
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-004 b/source/a/bash/bash-4.2-patches/bash42-004
new file mode 100644
index 000000000..fe29f82c7
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-004
@@ -0,0 +1,53 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-004
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <201102182106.17834.vapier@gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00222.html
+
+Bug-Description:
+
+When used in contexts where word splitting and quote removal were not
+performed, such as pattern removal or pattern substitution, empty strings
+(either literal or resulting from quoted variables that were unset or
+null) were not matched correctly, resulting in failure.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-01-02 16:12:51.000000000 -0500
+--- subst.c 2011-02-18 22:30:13.000000000 -0500
+***************
+*** 3373,3379 ****
+ if (string == 0 || *string == '\0')
+ return (WORD_LIST *)NULL;
+
+! td.flags = 0;
+ td.word = string;
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+ return (tresult);
+--- 3373,3379 ----
+ if (string == 0 || *string == '\0')
+ return (WORD_LIST *)NULL;
+
+! td.flags = W_NOSPLIT2; /* no splitting, remove "" and '' */
+ td.word = string;
+ tresult = call_expand_word_internal (&td, quoted, 1, dollar_at_p, has_dollar_at);
+ return (tresult);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-005 b/source/a/bash/bash-4.2-patches/bash42-005
new file mode 100644
index 000000000..3ca9fc1da
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-005
@@ -0,0 +1,131 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-005
+
+Bug-Reported-by: Dennis Williamson <dennistwilliamson@gmail.com>
+Bug-Reference-ID: <AANLkTikDbEV5rnbPc0zOfmZfBcg0xGetzLLzK+KjRiNa@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00147.html
+
+Bug-Description:
+
+Systems that use tzset() to set the local timezone require the TZ variable
+to be in the environment. Bash must make sure the environment has been
+modified with any updated value for TZ before calling tzset(). This
+affects prompt string expansions and the `%T' printf conversion specification
+on systems that do not allow bash to supply a replacement for getenv(3).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/variables.h 2010-12-02 20:22:01.000000000 -0500
+--- variables.h 2011-02-19 19:57:12.000000000 -0500
+***************
+*** 314,317 ****
+--- 314,318 ----
+ extern void sort_variables __P((SHELL_VAR **));
+
++ extern int chkexport __P((char *));
+ extern void maybe_make_export_env __P((void));
+ extern void update_export_env_inplace __P((char *, int, char *));
+*** ../bash-4.2-patched/variables.c 2011-01-24 20:07:48.000000000 -0500
+--- variables.c 2011-02-19 20:04:50.000000000 -0500
+***************
+*** 3654,3657 ****
+--- 3654,3673 ----
+ }
+
++ int
++ chkexport (name)
++ char *name;
++ {
++ SHELL_VAR *v;
++
++ v = find_variable (name);
++ if (exported_p (v))
++ {
++ array_needs_making = 1;
++ maybe_make_export_env ();
++ return 1;
++ }
++ return 0;
++ }
++
+ void
+ maybe_make_export_env ()
+***************
+*** 4215,4219 ****
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ { "TZ", sv_tz },
+ #endif
+--- 4231,4235 ----
+ { "TEXTDOMAINDIR", sv_locale },
+
+! #if defined (HAVE_TZSET)
+ { "TZ", sv_tz },
+ #endif
+***************
+*** 4559,4568 ****
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET) && defined (PROMPT_STRING_DECODE)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! tzset ();
+ }
+ #endif
+--- 4575,4585 ----
+ #endif /* HISTORY */
+
+! #if defined (HAVE_TZSET)
+ void
+ sv_tz (name)
+ char *name;
+ {
+! if (chkexport (name))
+! tzset ();
+ }
+ #endif
+*** ../bash-4.2-patched/parse.y 2011-01-02 15:48:11.000000000 -0500
+--- parse.y 2011-02-19 20:05:00.000000000 -0500
+***************
+*** 5136,5139 ****
+--- 5136,5142 ----
+ /* Make the current time/date into a string. */
+ (void) time (&the_time);
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&the_time);
+
+*** ../bash-4.2-patched/builtins/printf.def 2010-11-23 10:02:55.000000000 -0500
+--- builtins/printf.def 2011-02-19 20:05:04.000000000 -0500
+***************
+*** 466,469 ****
+--- 466,472 ----
+ else
+ secs = arg;
++ #if defined (HAVE_TZSET)
++ sv_tz ("TZ"); /* XXX -- just make sure */
++ #endif
+ tm = localtime (&secs);
+ n = strftime (timebuf, sizeof (timebuf), timefmt, tm);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-006 b/source/a/bash/bash-4.2-patches/bash42-006
new file mode 100644
index 000000000..be6e49c72
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-006
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-006
+
+Bug-Reported-by: Allan McRae <allan@archlinux.org>
+Bug-Reference-ID: <4D6D0D0B.50908@archlinux.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00001.html
+
+Bug-Description:
+
+A problem with bash42-005 caused it to dump core if TZ was unset.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/variables.c 2011-02-25 12:07:41.000000000 -0500
+--- variables.c 2011-03-01 10:13:04.000000000 -0500
+***************
+*** 3661,3665 ****
+
+ v = find_variable (name);
+! if (exported_p (v))
+ {
+ array_needs_making = 1;
+--- 3661,3665 ----
+
+ v = find_variable (name);
+! if (v && exported_p (v))
+ {
+ array_needs_making = 1;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-007 b/source/a/bash/bash-4.2-patches/bash42-007
new file mode 100644
index 000000000..d16156e27
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-007
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-007
+
+Bug-Reported-by: Matthias Klose <doko@debian.org>
+Bug-Reference-ID: <4D6FD2AC.1010500@debian.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00015.html
+
+Bug-Description:
+
+When used in contexts where word splitting and quote removal were not
+performed, such as case statement word expansion, empty strings
+(either literal or resulting from quoted variables that were unset or
+null) were not expanded correctly, resulting in failure.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-02-25 12:03:58.000000000 -0500
+--- subst.c 2011-03-03 14:08:23.000000000 -0500
+***************
+*** 4609,4614 ****
+--- 4611,4617 ----
+ if (ifs_firstc == 0)
+ #endif
+ word->flags |= W_NOSPLIT;
++ word->flags |= W_NOSPLIT2;
+ result = call_expand_word_internal (word, quoted, 0, (int *)NULL, (int *)NULL);
+ expand_no_split_dollar_star = 0;
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-008 b/source/a/bash/bash-4.2-patches/bash42-008
new file mode 100644
index 000000000..631abbdf7
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-008
@@ -0,0 +1,74 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-008
+
+Bug-Reported-by: Doug McMahon <mc2man@optonline.net>
+Bug-Reference-ID: <1299441211.2535.11.camel@doug-XPS-M1330>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00050.html
+
+Bug-Description:
+
+Bash-4.2 does not attempt to save the shell history on receipt of a
+terminating signal that is handled synchronously. Unfortunately, the
+`close' button on most X11 terminal emulators sends SIGHUP, which
+kills the shell.
+
+This is a very small patch to save the history in the case that an
+interactive shell receives a SIGHUP or SIGTERM while in readline and
+reading a command.
+
+The next version of bash will do this differently.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/sig.c Tue Nov 23 08:21:22 2010
+--- sig.c Tue Mar 8 21:28:32 2011
+***************
+*** 47,50 ****
+--- 47,51 ----
+ #if defined (READLINE)
+ # include "bashline.h"
++ # include <readline/readline.h>
+ #endif
+
+***************
+*** 63,66 ****
+--- 64,68 ----
+ extern int history_lines_this_session;
+ #endif
++ extern int no_line_editing;
+
+ extern void initialize_siglist ();
+***************
+*** 506,510 ****
+ #if defined (HISTORY)
+ /* XXX - will inhibit history file being written */
+! history_lines_this_session = 0;
+ #endif
+ terminate_immediately = 0;
+--- 508,515 ----
+ #if defined (HISTORY)
+ /* XXX - will inhibit history file being written */
+! # if defined (READLINE)
+! if (interactive_shell == 0 || interactive == 0 || (sig != SIGHUP && sig != SIGTERM) || no_line_editing || (RL_ISSTATE (RL_STATE_READCMD) == 0))
+! # endif
+! history_lines_this_session = 0;
+ #endif
+ terminate_immediately = 0;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-009 b/source/a/bash/bash-4.2-patches/bash42-009
new file mode 100644
index 000000000..83a7e2c74
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-009
@@ -0,0 +1,82 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-009
+
+Bug-Reported-by: <piuma@piumalab.org>
+Bug-Reference-ID: <4DAAC0DB.7060606@piumalab.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00075.html
+
+Bug-Description:
+
+Under certain circumstances, running `fc -l' two times in succession with a
+relative history offset at the end of the history will result in an incorrect
+calculation of the last history entry and a seg fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/fc.def 2010-05-30 18:25:38.000000000 -0400
+--- builtins/fc.def 2011-04-19 15:46:17.000000000 -0400
+***************
+*** 305,309 ****
+
+ /* XXX */
+! if (saved_command_line_count > 0 && i == last_hist && hlist[last_hist] == 0)
+ while (last_hist >= 0 && hlist[last_hist] == 0)
+ last_hist--;
+--- 305,309 ----
+
+ /* XXX */
+! if (i == last_hist && hlist[last_hist] == 0)
+ while (last_hist >= 0 && hlist[last_hist] == 0)
+ last_hist--;
+***************
+*** 476,480 ****
+ {
+ int sign, n, clen, rh;
+! register int i, j;
+ register char *s;
+
+--- 476,480 ----
+ {
+ int sign, n, clen, rh;
+! register int i, j, last_hist;
+ register char *s;
+
+***************
+*** 496,500 ****
+ calculation as if it were on. */
+ rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
+! i -= rh + hist_last_line_added;
+
+ /* No specification defaults to most recent command. */
+--- 496,508 ----
+ calculation as if it were on. */
+ rh = remember_on_history || ((subshell_environment & SUBSHELL_COMSUB) && enable_history_list);
+! last_hist = i - rh - hist_last_line_added;
+!
+! if (i == last_hist && hlist[last_hist] == 0)
+! while (last_hist >= 0 && hlist[last_hist] == 0)
+! last_hist--;
+! if (last_hist < 0)
+! return (-1);
+!
+! i = last_hist;
+
+ /* No specification defaults to most recent command. */
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-010 b/source/a/bash/bash-4.2-patches/bash42-010
new file mode 100644
index 000000000..e408abd61
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-010
@@ -0,0 +1,61 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-010
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <201104122356.20160.vapier@gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-04/msg00058.html
+
+Bug-Description:
+
+Bash did not correctly print/reproduce here documents attached to commands
+inside compound commands such as arithmetic for loops and user-specified
+subshells. This affected the execution of such commands inside a shell
+function when the function definition is saved and later restored using
+`.' or `eval'.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/print_cmd.c 2010-05-30 18:34:08.000000000 -0400
+--- print_cmd.c 2011-04-14 10:43:18.000000000 -0400
+***************
+*** 316,319 ****
+--- 317,321 ----
+ skip_this_indent++;
+ make_command_string_internal (command->value.Subshell->command);
++ PRINT_DEFERRED_HEREDOCS ("");
+ cprintf (" )");
+ break;
+***************
+*** 593,596 ****
+--- 606,610 ----
+ indentation += indentation_amount;
+ make_command_string_internal (arith_for_command->action);
++ PRINT_DEFERRED_HEREDOCS ("");
+ semicolon ();
+ indentation -= indentation_amount;
+***************
+*** 654,657 ****
+--- 668,672 ----
+
+ make_command_string_internal (group_command->command);
++ PRINT_DEFERRED_HEREDOCS ("");
+
+ if (inside_function_def)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-011 b/source/a/bash/bash-4.2-patches/bash42-011
new file mode 100644
index 000000000..26fdf65f6
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-011
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-011
+
+Bug-Reported-by: "David Parks" <davidparks21@yahoo.com>
+Bug-Reference-ID: <014101cc82c6$46ac1540$d4043fc0$@com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-10/msg00031.html
+
+Bug-Description:
+
+Overwriting a value in an associative array causes the memory allocated to
+store the key on the second and subsequent assignments to leak.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/assoc.c 2009-08-05 20:19:40.000000000 -0400
+--- assoc.c 2011-10-04 20:23:07.000000000 -0400
+***************
+*** 78,81 ****
+--- 78,86 ----
+ if (b == 0)
+ return -1;
++ /* If we are overwriting an existing element's value, we're not going to
++ use the key. Nothing in the array assignment code path frees the key
++ string, so we can free it here to avoid a memory leak. */
++ if (b->key != key)
++ free (key);
+ FREE (b->data);
+ b->data = value ? savestring (value) : (char *)0;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-012 b/source/a/bash/bash-4.2-patches/bash42-012
new file mode 100644
index 000000000..70f0a56b6
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-012
@@ -0,0 +1,151 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-012
+
+Bug-Reported-by: Rui Santos <rsantos@grupopie.com>
+Bug-Reference-ID: <4E04C6D0.2020507@grupopie.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00079.html
+
+Bug-Description:
+
+When calling the parser to recursively parse a command substitution within
+an arithmetic expansion, the shell overwrote the saved shell input line and
+associated state, resulting in a garbled command.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/parse.y 2011-02-26 19:19:05.000000000 -0500
+--- parse.y 2011-06-24 20:08:22.000000000 -0400
+***************
+*** 3843,3846 ****
+--- 3849,3853 ----
+ {
+ sh_parser_state_t ps;
++ sh_input_line_state_t ls;
+ int orig_ind, nc, sflags;
+ char *ret, *s, *ep, *ostring;
+***************
+*** 3850,3857 ****
+--- 3857,3866 ----
+ ostring = string;
+
++ /*itrace("xparse_dolparen: size = %d shell_input_line = `%s'", shell_input_line_size, shell_input_line);*/
+ sflags = SEVAL_NONINT|SEVAL_NOHIST|SEVAL_NOFREE;
+ if (flags & SX_NOLONGJMP)
+ sflags |= SEVAL_NOLONGJMP;
+ save_parser_state (&ps);
++ save_input_line_state (&ls);
+
+ /*(*/
+***************
+*** 3862,3865 ****
+--- 3871,3876 ----
+ restore_parser_state (&ps);
+ reset_parser ();
++ /* reset_parser clears shell_input_line and associated variables */
++ restore_input_line_state (&ls);
+ if (interactive)
+ token_to_read = 0;
+***************
+*** 5909,5912 ****
+--- 5920,5929 ----
+ ps->echo_input_at_read = echo_input_at_read;
+
++ ps->token = token;
++ ps->token_buffer_size = token_buffer_size;
++ /* Force reallocation on next call to read_token_word */
++ token = 0;
++ token_buffer_size = 0;
++
+ return (ps);
+ }
+***************
+*** 5950,5953 ****
+--- 5967,6006 ----
+ expand_aliases = ps->expand_aliases;
+ echo_input_at_read = ps->echo_input_at_read;
++
++ FREE (token);
++ token = ps->token;
++ token_buffer_size = ps->token_buffer_size;
++ }
++
++ sh_input_line_state_t *
++ save_input_line_state (ls)
++ sh_input_line_state_t *ls;
++ {
++ if (ls == 0)
++ ls = (sh_input_line_state_t *)xmalloc (sizeof (sh_input_line_state_t));
++ if (ls == 0)
++ return ((sh_input_line_state_t *)NULL);
++
++ ls->input_line = shell_input_line;
++ ls->input_line_size = shell_input_line_size;
++ ls->input_line_len = shell_input_line_len;
++ ls->input_line_index = shell_input_line_index;
++
++ /* force reallocation */
++ shell_input_line = 0;
++ shell_input_line_size = shell_input_line_len = shell_input_line_index = 0;
++ }
++
++ void
++ restore_input_line_state (ls)
++ sh_input_line_state_t *ls;
++ {
++ FREE (shell_input_line);
++ shell_input_line = ls->input_line;
++ shell_input_line_size = ls->input_line_size;
++ shell_input_line_len = ls->input_line_len;
++ shell_input_line_index = ls->input_line_index;
++
++ set_line_mbstate ();
+ }
+
+*** ../bash-4.2-patched/shell.h 2011-01-06 22:16:55.000000000 -0500
+--- shell.h 2011-06-24 19:12:25.000000000 -0400
+***************
+*** 137,140 ****
+--- 139,145 ----
+ int *token_state;
+
++ char *token;
++ int token_buffer_size;
++
+ /* input line state -- line number saved elsewhere */
+ int input_line_terminator;
+***************
+*** 167,171 ****
+--- 172,186 ----
+ } sh_parser_state_t;
+
++ typedef struct _sh_input_line_state_t {
++ char *input_line;
++ int input_line_index;
++ int input_line_size;
++ int input_line_len;
++ } sh_input_line_state_t;
++
+ /* Let's try declaring these here. */
+ extern sh_parser_state_t *save_parser_state __P((sh_parser_state_t *));
+ extern void restore_parser_state __P((sh_parser_state_t *));
++
++ extern sh_input_line_state_t *save_input_line_state __P((sh_input_line_state_t *));
++ extern void restore_input_line_state __P((sh_input_line_state_t *));
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-013 b/source/a/bash/bash-4.2-patches/bash42-013
new file mode 100644
index 000000000..5bb186b3a
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-013
@@ -0,0 +1,52 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-013
+
+Bug-Reported-by: Marten Wikstrom <marten.wikstrom@keystream.se>
+Bug-Reference-ID: <BANLkTikKECAh94ZEX68iQvxYuPeEM_xoSQ@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00049.html
+
+Bug-Description:
+
+An off-by-one error caused the shell to skip over CTLNUL characters,
+which are used internally to mark quoted null strings. The effect
+was to have stray 0x7f characters left after expanding words like
+""""""""aa.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-03-06 14:11:11.000000000 -0500
+--- subst.c 2011-05-11 11:23:33.000000000 -0400
+***************
+*** 3707,3711 ****
+ }
+ else if (string[i] == CTLNUL)
+! i++;
+
+ prev_i = i;
+--- 3710,3717 ----
+ }
+ else if (string[i] == CTLNUL)
+! {
+! i++;
+! continue;
+! }
+
+ prev_i = i;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-014 b/source/a/bash/bash-4.2-patches/bash42-014
new file mode 100644
index 000000000..a43271c34
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-014
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-014
+
+Bug-Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
+Bug-Reference-ID: <20110504152320.6E8F28130527@dev1.rgmadvisors.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-05/msg00018.html
+
+Bug-Description:
+
+The regular expression matching operator did not correctly match
+expressions with an embedded ^A.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/pathexp.c 2010-08-13 23:21:57.000000000 -0400
+--- pathexp.c 2011-05-05 16:40:58.000000000 -0400
+***************
+*** 197,201 ****
+ if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
+ continue;
+! if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
+ continue;
+ temp[j++] = '\\';
+--- 197,201 ----
+ if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
+ continue;
+! if (pathname[i+1] != CTLESC && (qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
+ continue;
+ temp[j++] = '\\';
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-015 b/source/a/bash/bash-4.2-patches/bash42-015
new file mode 100644
index 000000000..865587385
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-015
@@ -0,0 +1,81 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-015
+
+Bug-Reported-by: <dnade.ext@orange-ftgroup.com>
+Bug-Reference-ID: <728_1312188080_4E3666B0_728_118711_1_3B5D3E0F95CC5C478D6500CDCE8B691F7AAAA4AA3D@PUEXCB2B.nanterre.francetelecom.fr>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00000.html
+
+Bug-Description:
+
+When in a context where arithmetic evaluation is not taking place, the
+evaluator should not check for division by 0.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/expr.c 2010-12-21 11:12:13.000000000 -0500
+--- expr.c 2011-08-02 20:58:28.000000000 -0400
+***************
+*** 477,480 ****
+--- 481,492 ----
+ if (special)
+ {
++ if ((op == DIV || op == MOD) && value == 0)
++ {
++ if (noeval == 0)
++ evalerror (_("division by 0"));
++ else
++ value = 1;
++ }
++
+ switch (op)
+ {
+***************
+*** 483,493 ****
+ break;
+ case DIV:
+- if (value == 0)
+- evalerror (_("division by 0"));
+ lvalue /= value;
+ break;
+ case MOD:
+- if (value == 0)
+- evalerror (_("division by 0"));
+ lvalue %= value;
+ break;
+--- 495,501 ----
+***************
+*** 805,809 ****
+
+ if (((op == DIV) || (op == MOD)) && (val2 == 0))
+! evalerror (_("division by 0"));
+
+ if (op == MUL)
+--- 813,822 ----
+
+ if (((op == DIV) || (op == MOD)) && (val2 == 0))
+! {
+! if (noeval == 0)
+! evalerror (_("division by 0"));
+! else
+! val2 = 1;
+! }
+
+ if (op == MUL)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-016 b/source/a/bash/bash-4.2-patches/bash42-016
new file mode 100644
index 000000000..46025888b
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-016
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-016
+
+Bug-Reported-by: Martin von Gagern <Martin.vGagern@gmx.net>
+Bug-Reference-ID: <4E43AD9E.8060501@gmx.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-08/msg00141.html
+
+Bug-Description:
+
+Bash should not check for mail while executing the `eval' builtin.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/parse.y Fri Feb 25 12:07:41 2011
+--- parse.y Thu Aug 11 19:02:26 2011
+***************
+*** 2500,2504 ****
+ is the mail alarm reset; nothing takes place in check_mail ()
+ except the checking of mail. Please don't change this. */
+! if (prompt_is_ps1 && time_to_check_mail ())
+ {
+ check_mail ();
+--- 2498,2502 ----
+ is the mail alarm reset; nothing takes place in check_mail ()
+ except the checking of mail. Please don't change this. */
+! if (prompt_is_ps1 && parse_and_execute_level == 0 && time_to_check_mail ())
+ {
+ check_mail ();
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-017 b/source/a/bash/bash-4.2-patches/bash42-017
new file mode 100644
index 000000000..010ed1e50
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-017
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-017
+
+Bug-Reported-by: Curtis Doty <Curtis@GreenKey.net>
+Bug-Reference-ID: <20110621035324.A4F70849F59@mx1.iParadigms.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00053.html
+
+Bug-Description:
+
+Using `read -a foo' where foo was an already-declared associative array
+caused the shell to die with a segmentation fault.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/read.def 2011-01-04 11:43:36.000000000 -0500
+--- builtins/read.def 2011-06-21 10:31:02.000000000 -0400
+***************
+*** 643,646 ****
+--- 642,651 ----
+ return EXECUTION_FAILURE; /* readonly or noassign */
+ }
++ if (assoc_p (var))
++ {
++ builtin_error (_("%s: cannot convert associative to indexed array"), arrayname);
++ xfree (input_string);
++ return EXECUTION_FAILURE; /* existing associative array */
++ }
+ array_flush (array_cell (var));
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 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/bash-4.2-patches/bash42-018 b/source/a/bash/bash-4.2-patches/bash42-018
new file mode 100644
index 000000000..5d11dce16
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-018
@@ -0,0 +1,74 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-018
+
+Bug-Reported-by: Thomas Cort <tcort@minix3.org>
+Bug-Reference-ID: <BANLkTik-ebGGw3k_1YtB=RyfV1bsqdxC_g@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-06/msg00110.html
+
+Bug-Description:
+
+Bash fails to compile unless JOB_CONTROL is defined.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/execute_cmd.c 2011-02-09 17:32:25.000000000 -0500
+--- execute_cmd.c 2011-11-06 15:12:48.000000000 -0500
+***************
+*** 2197,2200 ****
+--- 2315,2319 ----
+ cmd->flags |= CMD_IGNORE_RETURN;
+
++ #if defined (JOB_CONTROL)
+ lastpipe_flag = 0;
+ begin_unwind_frame ("lastpipe-exec");
+***************
+*** 2216,2228 ****
+ add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
+ }
+! cmd->flags |= CMD_LASTPIPE;
+ }
+ if (prev >= 0)
+ add_unwind_protect (close, prev);
+
+ exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
+
+ if (lstdin > 0)
+ restore_stdin (lstdin);
+
+ if (prev >= 0)
+--- 2335,2351 ----
+ add_unwind_protect (lastpipe_cleanup, lastpipe_jid);
+ }
+! if (cmd)
+! cmd->flags |= CMD_LASTPIPE;
+ }
+ if (prev >= 0)
+ add_unwind_protect (close, prev);
++ #endif
+
+ exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
+
++ #if defined (JOB_CONTROL)
+ if (lstdin > 0)
+ restore_stdin (lstdin);
++ #endif
+
+ if (prev >= 0)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 17
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-019 b/source/a/bash/bash-4.2-patches/bash42-019
new file mode 100644
index 000000000..5fce40ae5
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-019
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-019
+
+Bug-Reported-by: Diego Augusto Molina <diegoaugustomolina@gmail.com>
+Bug-Reference-ID: <CAGOxLdHcSQu3ck9Qy3pRjj_NBU5tAPSAvNm-95-nLQ9Szwb6aA@mail.gmail.com>
+Bug-Reference-URL: lists.gnu.org/archive/html/bug-bash/2011-09/msg00047.html
+
+Bug-Description:
+
+Using `declare' with attributes and an invalid array variable name or
+assignment reference resulted in a segmentation fault instead of a
+declaration error.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/declare.def 2010-05-30 18:25:21.000000000 -0400
+--- builtins/declare.def 2011-09-15 15:20:20.000000000 -0400
+***************
+*** 514,517 ****
+--- 514,522 ----
+ var = assign_array_element (name, value, 0); /* XXX - not aflags */
+ *subscript_start = '\0';
++ if (var == 0) /* some kind of assignment error */
++ {
++ assign_error++;
++ NEXT_VARIABLE ();
++ }
+ }
+ else if (simple_array_assign)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 18
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-020 b/source/a/bash/bash-4.2-patches/bash42-020
new file mode 100644
index 000000000..a1dd0443e
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-020
@@ -0,0 +1,60 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-020
+
+Bug-Reported-by: Vincent Sheffer <vince.sheffer@apisphere.com>
+Bug-Reference-ID: <F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
+
+Bug-Description:
+
+The shared object helper script needs to be updated for Mac OS X 10.7
+(Lion, darwin11).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400
+--- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400
+***************
+*** 158,162 ****
+
+ # Darwin/MacOS X
+! darwin[89]*|darwin10*)
+ SHOBJ_STATUS=supported
+ SHLIB_STATUS=supported
+--- 172,176 ----
+
+ # Darwin/MacOS X
+! darwin[89]*|darwin1[012]*)
+ SHOBJ_STATUS=supported
+ SHLIB_STATUS=supported
+***************
+*** 187,191 ****
+
+ case "${host_os}" in
+! darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
+--- 201,205 ----
+
+ case "${host_os}" in
+! darwin[789]*|darwin1[012]*) SHOBJ_LDFLAGS=''
+ SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+ ;;
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 19
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-021 b/source/a/bash/bash-4.2-patches/bash42-021
new file mode 100644
index 000000000..b6153c784
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-021
@@ -0,0 +1,61 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-021
+
+Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
+Bug-Reference-ID: <4585554.nZWb4q7YoZ@smorgbox>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-12/msg00084.html
+
+Bug-Description:
+
+Using `read -N' to assign values to an array can result in NUL values being
+assigned to some array elements. These values cause seg faults when referenced
+later.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/read.def 2011-11-21 18:03:38.000000000 -0500
+--- builtins/read.def 2011-12-19 19:52:12.000000000 -0500
+***************
+*** 738,742 ****
+ }
+ else
+! var = bind_read_variable (varname, t);
+ }
+ else
+--- 775,779 ----
+ }
+ else
+! var = bind_read_variable (varname, t ? t : "");
+ }
+ else
+***************
+*** 799,803 ****
+ }
+ else
+! var = bind_read_variable (list->word->word, input_string);
+
+ if (var)
+--- 836,840 ----
+ }
+ else
+! var = bind_read_variable (list->word->word, input_string ? input_string : "");
+
+ if (var)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 20
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-022 b/source/a/bash/bash-4.2-patches/bash42-022
new file mode 100644
index 000000000..0067b1335
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-022
@@ -0,0 +1,61 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-022
+
+Bug-Reported-by: Gregory Margo <gmargo@pacbell.net>
+Bug-Reference-ID: <20110727174529.GA3333@pacbell.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-07/msg00102.html
+
+Bug-Description:
+
+The return value from lseek is `off_t'. This can cause corrupted return
+values when the file offset is greater than 2**31 - 1.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/sh/zread.c Mon Mar 2 08:54:45 2009
+--- lib/sh/zread.c Thu Jul 28 18:16:53 2011
+***************
+*** 161,166 ****
+ int fd;
+ {
+! off_t off;
+! int r;
+
+ off = lused - lind;
+--- 161,165 ----
+ int fd;
+ {
+! off_t off, r;
+
+ off = lused - lind;
+***************
+*** 169,173 ****
+ r = lseek (fd, -off, SEEK_CUR);
+
+! if (r >= 0)
+ lused = lind = 0;
+ }
+--- 168,172 ----
+ r = lseek (fd, -off, SEEK_CUR);
+
+! if (r != -1)
+ lused = lind = 0;
+ }
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 21
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-023 b/source/a/bash/bash-4.2-patches/bash42-023
new file mode 100644
index 000000000..4f204efb0
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-023
@@ -0,0 +1,62 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-023
+
+Bug-Reported-by: Ewan Mellor <Ewan.Mellor@eu.citrix.com>
+Bug-Reference-ID: <6005BE083BF501439A84DC3523BAC82DC4B964FD12@LONPMAILBOX01.citrite.net>
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under some circumstances, an exit trap triggered by a bad substitution
+error when errexit is enabled will cause the shell to exit with an
+incorrect exit status (0).
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2011-11-21 12:04:38.000000000 -0500
+--- subst.c 2012-02-08 13:36:28.000000000 -0500
+***************
+*** 7275,7278 ****
+--- 7281,7285 ----
+ case '\0':
+ bad_substitution:
++ last_command_exit_value = EXECUTION_FAILURE;
+ report_error (_("%s: bad substitution"), string ? string : "??");
+ FREE (value);
+*** ../bash-4.2-patched/error.c 2009-08-21 22:31:31.000000000 -0400
+--- error.c 2012-02-25 15:54:40.000000000 -0500
+***************
+*** 201,205 ****
+ va_end (args);
+ if (exit_immediately_on_error)
+! exit_shell (1);
+ }
+
+--- 201,209 ----
+ va_end (args);
+ if (exit_immediately_on_error)
+! {
+! if (last_command_exit_value == 0)
+! last_command_exit_value = 1;
+! exit_shell (last_command_exit_value);
+! }
+ }
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 22
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-024 b/source/a/bash/bash-4.2-patches/bash42-024
new file mode 100644
index 000000000..b7b1158b8
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-024
@@ -0,0 +1,45 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-024
+
+Bug-Reported-by: Jim Avera <james_avera@yahoo.com>
+Bug-Reference-ID: <4F29E07A.80405@yahoo.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-02/msg00001.html
+
+Bug-Description:
+
+When `printf -v' is used to set an array element, the format string contains
+`%b', and the corresponding argument is the empty string, the buffer used
+to store the value to be assigned can be NULL, which results in NUL being
+assigned to the array element. This causes a seg fault when it's used later.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/printf.def 2011-02-25 12:07:41.000000000 -0500
+--- builtins/printf.def 2012-02-02 08:37:12.000000000 -0500
+***************
+*** 256,259 ****
+--- 257,262 ----
+ {
+ vflag = 1;
++ if (vbsize == 0)
++ vbuf = xmalloc (vbsize = 16);
+ vblen = 0;
+ if (vbuf)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 23
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-025 b/source/a/bash/bash-4.2-patches/bash42-025
new file mode 100644
index 000000000..34ac34300
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-025
@@ -0,0 +1,143 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-025
+
+Bug-Reported-by: Bill Gradwohl <bill@ycc.com>
+Bug-Reference-ID: <CAFyvKis-UfuOWr5THBRKh=vYHDoKEEgdW8hN1RviTuYQ00Lu5A@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/help-bash/2012-03/msg00078.html
+
+Bug-Description:
+
+When used in a shell function, `declare -g -a array=(compound assignment)'
+creates a local variable instead of a global one.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/command.h 2010-08-02 19:36:51.000000000 -0400
+--- command.h 2012-04-01 12:38:35.000000000 -0400
+***************
+*** 98,101 ****
+--- 98,102 ----
+ #define W_ASSIGNASSOC 0x400000 /* word looks like associative array assignment */
+ #define W_ARRAYIND 0x800000 /* word is an array index being expanded */
++ #define W_ASSNGLOBAL 0x1000000 /* word is a global assignment to declare (declare/typeset -g) */
+
+ /* Possible values for subshell_environment */
+*** ../bash-4.2-patched/execute_cmd.c 2011-11-21 18:03:41.000000000 -0500
+--- execute_cmd.c 2012-04-01 12:42:03.000000000 -0400
+***************
+*** 3581,3585 ****
+ WORD_LIST *w;
+ struct builtin *b;
+! int assoc;
+
+ if (words == 0)
+--- 3581,3585 ----
+ WORD_LIST *w;
+ struct builtin *b;
+! int assoc, global;
+
+ if (words == 0)
+***************
+*** 3587,3591 ****
+
+ b = 0;
+! assoc = 0;
+
+ for (w = words; w; w = w->next)
+--- 3587,3591 ----
+
+ b = 0;
+! assoc = global = 0;
+
+ for (w = words; w; w = w->next)
+***************
+*** 3604,3607 ****
+--- 3604,3609 ----
+ if (assoc)
+ w->word->flags |= W_ASSIGNASSOC;
++ if (global)
++ w->word->flags |= W_ASSNGLOBAL;
+ #endif
+ }
+***************
+*** 3609,3613 ****
+ /* Note that we saw an associative array option to a builtin that takes
+ assignment statements. This is a bit of a kludge. */
+! else if (w->word->word[0] == '-' && strchr (w->word->word, 'A'))
+ {
+ if (b == 0)
+--- 3611,3618 ----
+ /* Note that we saw an associative array option to a builtin that takes
+ assignment statements. This is a bit of a kludge. */
+! else if (w->word->word[0] == '-' && (strchr (w->word->word+1, 'A') || strchr (w->word->word+1, 'g')))
+! #else
+! else if (w->word->word[0] == '-' && strchr (w->word->word+1, 'g'))
+! #endif
+ {
+ if (b == 0)
+***************
+*** 3619,3626 ****
+ words->word->flags |= W_ASSNBLTIN;
+ }
+! if (words->word->flags & W_ASSNBLTIN)
+ assoc = 1;
+ }
+- #endif
+ }
+
+--- 3624,3632 ----
+ words->word->flags |= W_ASSNBLTIN;
+ }
+! if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'A'))
+ assoc = 1;
++ if ((words->word->flags & W_ASSNBLTIN) && strchr (w->word->word+1, 'g'))
++ global = 1;
+ }
+ }
+
+*** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
+--- subst.c 2012-04-01 12:38:35.000000000 -0400
+***************
+*** 367,370 ****
+--- 367,375 ----
+ fprintf (stderr, "W_ASSNBLTIN%s", f ? "|" : "");
+ }
++ if (f & W_ASSNGLOBAL)
++ {
++ f &= ~W_ASSNGLOBAL;
++ fprintf (stderr, "W_ASSNGLOBAL%s", f ? "|" : "");
++ }
+ if (f & W_COMPASSIGN)
+ {
+***************
+*** 2804,2808 ****
+ else if (assign_list)
+ {
+! if (word->flags & W_ASSIGNARG)
+ aflags |= ASS_MKLOCAL;
+ if (word->flags & W_ASSIGNASSOC)
+--- 2809,2813 ----
+ else if (assign_list)
+ {
+! if ((word->flags & W_ASSIGNARG) && (word->flags & W_ASSNGLOBAL) == 0)
+ aflags |= ASS_MKLOCAL;
+ if (word->flags & W_ASSIGNASSOC)
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 24
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 25
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-026 b/source/a/bash/bash-4.2-patches/bash42-026
new file mode 100644
index 000000000..e15d74807
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-026
@@ -0,0 +1,58 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-026
+
+Bug-Reported-by: Greg Wooledge <wooledg@eeg.ccf.org>
+Bug-Reference-ID: <20120425180443.GO22241@eeg.ccf.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00172.html
+
+Bug-Description:
+
+The `lastpipe' option does not behave correctly on machines where the
+open file limit is less than 256.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/execute_cmd.c 2011-11-21 12:04:47.000000000 -0500
+--- execute_cmd.c 2012-04-26 11:09:30.000000000 -0400
+***************
+*** 2206,2210 ****
+ if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
+ {
+! lstdin = move_to_high_fd (0, 0, 255);
+ if (lstdin > 0)
+ {
+--- 2325,2329 ----
+ if (lastpipe_opt && job_control == 0 && asynchronous == 0 && pipe_out == NO_PIPE && prev > 0)
+ {
+! lstdin = move_to_high_fd (0, 1, -1);
+ if (lstdin > 0)
+ {
+***************
+*** 2252,2256 ****
+--- 2371,2377 ----
+ }
+
++ #if defined (JOB_CONTROL)
+ discard_unwind_frame ("lastpipe-exec");
++ #endif
+
+ return (exec_result);
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 25
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 26
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-027 b/source/a/bash/bash-4.2-patches/bash42-027
new file mode 100644
index 000000000..c0c5d3f80
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-027
@@ -0,0 +1,47 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-027
+
+Bug-Reported-by: Mike Frysinger <vapier@gentoo.org>
+Bug-Reference-ID: <201204211243.30163.vapier@gentoo.org>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-04/msg00134.html
+
+Bug-Description:
+
+When the `extglob' shell option is enabled, pattern substitution does not
+work correctly in the presence of multibyte characters.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2012-03-11 17:52:57.000000000 -0400
+--- subst.c 2012-04-22 16:19:10.000000000 -0400
+***************
+*** 4167,4171 ****
+ #if defined (EXTENDED_GLOB)
+ if (extended_glob)
+! simple |= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
+ #endif
+
+--- 4167,4171 ----
+ #if defined (EXTENDED_GLOB)
+ if (extended_glob)
+! simple &= (wpat[1] != L'(' || (wpat[0] != L'*' && wpat[0] != L'?' && wpat[0] != L'+' && wpat[0] != L'!' && wpat[0] != L'@')); /*)*/
+ #endif
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 26
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 27
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-028 b/source/a/bash/bash-4.2-patches/bash42-028
new file mode 100644
index 000000000..fa3be3b48
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-028
@@ -0,0 +1,52 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-028
+
+Bug-Reported-by: Mark Edgar <medgar123@gmail.com>
+Bug-Reference-ID: <CABHMh_3d+ZgO_zaEtYXPwK4P7tC0ghZ4g=Ue_TRpsEMf5YDsqw@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-03/msg00109.html
+
+Bug-Description:
+
+When using a word expansion for which the right hand side is evaluated,
+certain expansions of quoted null strings include spurious ^? characters.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2012-03-11 17:35:13.000000000 -0400
+--- subst.c 2012-03-20 19:30:13.000000000 -0400
+***************
+*** 5810,5813 ****
+--- 5810,5823 ----
+ if (qdollaratp && ((hasdol && quoted) || l->next))
+ *qdollaratp = 1;
++ /* If we have a quoted null result (QUOTED_NULL(temp)) and the word is
++ a quoted null (l->next == 0 && QUOTED_NULL(l->word->word)), the
++ flags indicate it (l->word->flags & W_HASQUOTEDNULL), and the
++ expansion is quoted (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
++ (which is more paranoia than anything else), we need to return the
++ quoted null string and set the flags to indicate it. */
++ if (l->next == 0 && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) && QUOTED_NULL(temp) && QUOTED_NULL(l->word->word) && (l->word->flags & W_HASQUOTEDNULL))
++ {
++ w->flags |= W_HASQUOTEDNULL;
++ }
+ dispose_words (l);
+ }
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 27
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 28
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-029 b/source/a/bash/bash-4.2-patches/bash42-029
new file mode 100644
index 000000000..c51704ca7
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-029
@@ -0,0 +1,524 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-029
+
+Bug-Reported-by: "Michael Kalisz" <michael@kalisz.homelinux.net>
+Bug-Reference-ID: <50241.78.69.11.112.1298585641.squirrel@kalisz.homelinux.net>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html
+
+Bug-Description:
+
+Bash-4.2 tries to leave completed directory names as the user typed them,
+without expanding them to a full pathname. One effect of this is that
+shell variables used in pathnames being completed (e.g., $HOME) are left
+unchanged, but the `$' is quoted by readline because it is a special
+character to the shell.
+
+This patch introduces two things:
+
+1. A new shell option, `direxpand', which, if set, attempts to emulate the
+ bash-4.1 behavior of expanding words to full pathnames during
+ completion;
+2. A set of heuristics that reduce the number of times special characters
+ such as `$' are quoted when the directory name is not expanded.
+
+Patch (apply with `patch -p0'):
+
+diff -NrC 2 ../bash-4.2-patched/bashline.c ./bashline.c
+*** ../bash-4.2-patched/bashline.c 2011-01-16 15:32:47.000000000 -0500
+--- ./bashline.c 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 122,125 ****
+--- 122,128 ----
+ static int bash_push_line __P((void));
+
++ static rl_icppfunc_t *save_directory_hook __P((void));
++ static void reset_directory_hook __P((rl_icppfunc_t *));
++
+ static void cleanup_expansion_error __P((void));
+ static void maybe_make_readline_line __P((char *));
+***************
+*** 244,251 ****
+--- 247,261 ----
+ int dircomplete_spelling = 0;
+
++ /* Expand directory names during word/filename completion. */
++ int dircomplete_expand = 0;
++ int dircomplete_expand_relpath = 0;
++
+ static char *bash_completer_word_break_characters = " \t\n\"'@><=;|&(:";
+ static char *bash_nohostname_word_break_characters = " \t\n\"'><=;|&(:";
+ /* )) */
+
++ static const char *default_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
++ static char *custom_filename_quote_characters = 0;
++
+ static rl_hook_func_t *old_rl_startup_hook = (rl_hook_func_t *)NULL;
+
+***************
+*** 502,506 ****
+ /* Tell the completer that we might want to follow symbolic links or
+ do other expansion on directory names. */
+! rl_directory_rewrite_hook = bash_directory_completion_hook;
+
+ rl_filename_rewrite_hook = bash_filename_rewrite_hook;
+--- 512,516 ----
+ /* Tell the completer that we might want to follow symbolic links or
+ do other expansion on directory names. */
+! set_directory_hook ();
+
+ rl_filename_rewrite_hook = bash_filename_rewrite_hook;
+***************
+*** 530,534 ****
+
+ /* characters that need to be quoted when appearing in filenames. */
+! rl_filename_quote_characters = " \t\n\\\"'@<>=;|&()#$`?*[!:{~"; /*}*/
+
+ rl_filename_quoting_function = bash_quote_filename;
+--- 540,544 ----
+
+ /* characters that need to be quoted when appearing in filenames. */
+! rl_filename_quote_characters = default_filename_quote_characters;
+
+ rl_filename_quoting_function = bash_quote_filename;
+***************
+*** 565,570 ****
+ rl_attempted_completion_function = attempt_shell_completion;
+ rl_completion_entry_function = NULL;
+- rl_directory_rewrite_hook = bash_directory_completion_hook;
+ rl_ignore_some_completions_function = filename_completion_ignore;
+ }
+
+--- 575,582 ----
+ rl_attempted_completion_function = attempt_shell_completion;
+ rl_completion_entry_function = NULL;
+ rl_ignore_some_completions_function = filename_completion_ignore;
++ rl_filename_quote_characters = default_filename_quote_characters;
++
++ set_directory_hook ();
+ }
+
+***************
+*** 1280,1283 ****
+--- 1292,1298 ----
+ rl_ignore_some_completions_function = filename_completion_ignore;
+
++ rl_filename_quote_characters = default_filename_quote_characters;
++ set_directory_hook ();
++
+ /* Determine if this could be a command word. It is if it appears at
+ the start of the line (ignoring preceding whitespace), or if it
+***************
+*** 1592,1595 ****
+--- 1607,1616 ----
+ else
+ {
++ if (dircomplete_expand && dot_or_dotdot (filename_hint))
++ {
++ dircomplete_expand = 0;
++ set_directory_hook ();
++ dircomplete_expand = 1;
++ }
+ mapping_over = 4;
+ goto inner;
+***************
+*** 1792,1795 ****
+--- 1813,1819 ----
+ inner:
+ val = rl_filename_completion_function (filename_hint, istate);
++ if (mapping_over == 4 && dircomplete_expand)
++ set_directory_hook ();
++
+ istate = 1;
+
+***************
+*** 2694,2697 ****
+--- 2718,2767 ----
+ }
+
++ /* Functions to save and restore the appropriate directory hook */
++ /* This is not static so the shopt code can call it */
++ void
++ set_directory_hook ()
++ {
++ if (dircomplete_expand)
++ {
++ rl_directory_completion_hook = bash_directory_completion_hook;
++ rl_directory_rewrite_hook = (rl_icppfunc_t *)0;
++ }
++ else
++ {
++ rl_directory_rewrite_hook = bash_directory_completion_hook;
++ rl_directory_completion_hook = (rl_icppfunc_t *)0;
++ }
++ }
++
++ static rl_icppfunc_t *
++ save_directory_hook ()
++ {
++ rl_icppfunc_t *ret;
++
++ if (dircomplete_expand)
++ {
++ ret = rl_directory_completion_hook;
++ rl_directory_completion_hook = (rl_icppfunc_t *)NULL;
++ }
++ else
++ {
++ ret = rl_directory_rewrite_hook;
++ rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
++ }
++
++ return ret;
++ }
++
++ static void
++ restore_directory_hook (hookf)
++ rl_icppfunc_t *hookf;
++ {
++ if (dircomplete_expand)
++ rl_directory_completion_hook = hookf;
++ else
++ rl_directory_rewrite_hook = hookf;
++ }
++
+ /* Handle symbolic link references and other directory name
+ expansions while hacking completion. This should return 1 if it modifies
+***************
+*** 2703,2720 ****
+ {
+ char *local_dirname, *new_dirname, *t;
+! int return_value, should_expand_dirname;
+ WORD_LIST *wl;
+ struct stat sb;
+
+! return_value = should_expand_dirname = 0;
+ local_dirname = *dirname;
+
+! if (mbschr (local_dirname, '$'))
+! should_expand_dirname = 1;
+ else
+ {
+ t = mbschr (local_dirname, '`');
+ if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
+! should_expand_dirname = 1;
+ }
+
+--- 2773,2801 ----
+ {
+ char *local_dirname, *new_dirname, *t;
+! int return_value, should_expand_dirname, nextch, closer;
+ WORD_LIST *wl;
+ struct stat sb;
+
+! return_value = should_expand_dirname = nextch = closer = 0;
+ local_dirname = *dirname;
+
+! if (t = mbschr (local_dirname, '$'))
+! {
+! should_expand_dirname = '$';
+! nextch = t[1];
+! /* Deliberately does not handle the deprecated $[...] arithmetic
+! expansion syntax */
+! if (nextch == '(')
+! closer = ')';
+! else if (nextch == '{')
+! closer = '}';
+! else
+! nextch = 0;
+! }
+ else
+ {
+ t = mbschr (local_dirname, '`');
+ if (t && unclosed_pair (local_dirname, strlen (local_dirname), "`") == 0)
+! should_expand_dirname = '`';
+ }
+
+***************
+*** 2740,2743 ****
+--- 2821,2841 ----
+ dispose_words (wl);
+ local_dirname = *dirname;
++ /* XXX - change rl_filename_quote_characters here based on
++ should_expand_dirname/nextch/closer. This is the only place
++ custom_filename_quote_characters is modified. */
++ if (rl_filename_quote_characters && *rl_filename_quote_characters)
++ {
++ int i, j, c;
++ i = strlen (default_filename_quote_characters);
++ custom_filename_quote_characters = xrealloc (custom_filename_quote_characters, i+1);
++ for (i = j = 0; c = default_filename_quote_characters[i]; i++)
++ {
++ if (c == should_expand_dirname || c == nextch || c == closer)
++ continue;
++ custom_filename_quote_characters[j++] = c;
++ }
++ custom_filename_quote_characters[j] = '\0';
++ rl_filename_quote_characters = custom_filename_quote_characters;
++ }
+ }
+ else
+***************
+*** 2759,2762 ****
+--- 2857,2871 ----
+ }
+
++ /* no_symbolic_links == 0 -> use (default) logical view of the file system.
++ local_dirname[0] == '.' && local_dirname[1] == '/' means files in the
++ current directory (./).
++ local_dirname[0] == '.' && local_dirname[1] == 0 means relative pathnames
++ in the current directory (e.g., lib/sh).
++ XXX - should we do spelling correction on these? */
++
++ /* This is test as it was in bash-4.2: skip relative pathnames in current
++ directory. Change test to
++ (local_dirname[0] != '.' || (local_dirname[1] && local_dirname[1] != '/'))
++ if we want to skip paths beginning with ./ also. */
+ if (no_symbolic_links == 0 && (local_dirname[0] != '.' || local_dirname[1]))
+ {
+***************
+*** 2764,2767 ****
+--- 2873,2885 ----
+ int len1, len2;
+
++ /* If we have a relative path
++ (local_dirname[0] != '/' && local_dirname[0] != '.')
++ that is canonical after appending it to the current directory, then
++ temp1 = temp2+'/'
++ That is,
++ strcmp (temp1, temp2) == 0
++ after adding a slash to temp2 below. It should be safe to not
++ change those.
++ */
+ t = get_working_directory ("symlink-hook");
+ temp1 = make_absolute (local_dirname, t);
+***************
+*** 2798,2802 ****
+ }
+ }
+! return_value |= STREQ (local_dirname, temp2) == 0;
+ free (local_dirname);
+ *dirname = temp2;
+--- 2916,2928 ----
+ }
+ }
+!
+! /* dircomplete_expand_relpath == 0 means we want to leave relative
+! pathnames that are unchanged by canonicalization alone.
+! *local_dirname != '/' && *local_dirname != '.' == relative pathname
+! (consistent with general.c:absolute_pathname())
+! temp1 == temp2 (after appending a slash to temp2) means the pathname
+! is not changed by canonicalization as described above. */
+! if (dircomplete_expand_relpath || ((local_dirname[0] != '/' && local_dirname[0] != '.') && STREQ (temp1, temp2) == 0))
+! return_value |= STREQ (local_dirname, temp2) == 0;
+ free (local_dirname);
+ *dirname = temp2;
+***************
+*** 3003,3012 ****
+ orig_func = rl_completion_entry_function;
+ orig_attempt_func = rl_attempted_completion_function;
+- orig_dir_func = rl_directory_rewrite_hook;
+ orig_ignore_func = rl_ignore_some_completions_function;
+ orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
+ rl_completion_entry_function = rl_filename_completion_function;
+ rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+- rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;
+ rl_ignore_some_completions_function = filename_completion_ignore;
+ rl_completer_word_break_characters = " \t\n\"\'";
+--- 3129,3139 ----
+ orig_func = rl_completion_entry_function;
+ orig_attempt_func = rl_attempted_completion_function;
+ orig_ignore_func = rl_ignore_some_completions_function;
+ orig_rl_completer_word_break_characters = rl_completer_word_break_characters;
++
++ orig_dir_func = save_directory_hook ();
++
+ rl_completion_entry_function = rl_filename_completion_function;
+ rl_attempted_completion_function = (rl_completion_func_t *)NULL;
+ rl_ignore_some_completions_function = filename_completion_ignore;
+ rl_completer_word_break_characters = " \t\n\"\'";
+***************
+*** 3016,3023 ****
+ rl_completion_entry_function = orig_func;
+ rl_attempted_completion_function = orig_attempt_func;
+- rl_directory_rewrite_hook = orig_dir_func;
+ rl_ignore_some_completions_function = orig_ignore_func;
+ rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
+
+ return r;
+ }
+--- 3143,3151 ----
+ rl_completion_entry_function = orig_func;
+ rl_attempted_completion_function = orig_attempt_func;
+ rl_ignore_some_completions_function = orig_ignore_func;
+ rl_completer_word_break_characters = orig_rl_completer_word_break_characters;
+
++ restore_directory_hook (orig_dir_func);
++
+ return r;
+ }
+diff -NrC 2 ../bash-4.2-patched/bashline.h ./bashline.h
+*** ../bash-4.2-patched/bashline.h 2009-01-04 14:32:22.000000000 -0500
+--- ./bashline.h 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 34,41 ****
+--- 34,46 ----
+ extern int bash_re_edit __P((char *));
+
++ extern void bashline_set_event_hook __P((void));
++ extern void bashline_reset_event_hook __P((void));
++
+ extern int bind_keyseq_to_unix_command __P((char *));
+
+ extern char **bash_default_completion __P((const char *, int, int, int, int));
+
++ void set_directory_hook __P((void));
++
+ /* Used by programmable completion code. */
+ extern char *command_word_completion_function __P((const char *, int));
+diff -NrC 2 ../bash-4.2-patched/builtins/shopt.def ./builtins/shopt.def
+*** ../bash-4.2-patched/builtins/shopt.def 2010-07-02 22:42:44.000000000 -0400
+--- ./builtins/shopt.def 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 62,65 ****
+--- 62,69 ----
+ #include "bashgetopt.h"
+
++ #if defined (READLINE)
++ # include "../bashline.h"
++ #endif
++
+ #if defined (HISTORY)
+ # include "../bashhist.h"
+***************
+*** 95,99 ****
+ extern int no_empty_command_completion;
+ extern int force_fignore;
+! extern int dircomplete_spelling;
+
+ extern int enable_hostname_completion __P((int));
+--- 99,103 ----
+ extern int no_empty_command_completion;
+ extern int force_fignore;
+! extern int dircomplete_spelling, dircomplete_expand;
+
+ extern int enable_hostname_completion __P((int));
+***************
+*** 122,125 ****
+--- 126,133 ----
+ #endif
+
++ #if defined (READLINE)
++ static int shopt_set_complete_direxpand __P((char *, int));
++ #endif
++
+ static int shopt_login_shell;
+ static int shopt_compat31;
+***************
+*** 151,154 ****
+--- 159,163 ----
+ { "compat41", &shopt_compat41, set_compatibility_level },
+ #if defined (READLINE)
++ { "direxpand", &dircomplete_expand, shopt_set_complete_direxpand },
+ { "dirspell", &dircomplete_spelling, (shopt_set_func_t *)NULL },
+ #endif
+***************
+*** 536,539 ****
+--- 545,559 ----
+ }
+
++ #if defined (READLINE)
++ static int
++ shopt_set_complete_direxpand (option_name, mode)
++ char *option_name;
++ int mode;
++ {
++ set_directory_hook ();
++ return 0;
++ }
++ #endif
++
+ #if defined (RESTRICTED_SHELL)
+ /* Don't allow the value of restricted_shell to be modified. */
+Binary files ../bash-4.2-patched/doc/._bashref.pdf and ./doc/._bashref.pdf differ
+diff -NrC 2 ../bash-4.2-patched/doc/bash.1 ./doc/bash.1
+*** ../bash-4.2-patched/doc/bash.1 2011-01-16 15:31:39.000000000 -0500
+--- ./doc/bash.1 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 8949,8952 ****
+--- 8949,8962 ----
+ The default bash behavior remains as in previous versions.
+ .TP 8
++ .B direxpand
++ If set,
++ .B bash
++ replaces directory names with the results of word expansion when performing
++ filename completion. This changes the contents of the readline editing
++ buffer.
++ If not set,
++ .B bash
++ attempts to preserve what the user typed.
++ .TP 8
+ .B dirspell
+ If set,
+diff -NrC 2 ../bash-4.2-patched/doc/bashref.texi ./doc/bashref.texi
+*** ../bash-4.2-patched/doc/bashref.texi 2011-01-16 15:31:57.000000000 -0500
+--- ./doc/bashref.texi 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 4536,4539 ****
+--- 4536,4546 ----
+ The default Bash behavior remains as in previous versions.
+
++ @item direxpand
++ If set, Bash
++ replaces directory names with the results of word expansion when performing
++ filename completion. This changes the contents of the readline editing
++ buffer.
++ If not set, Bash attempts to preserve what the user typed.
++
+ @item dirspell
+ If set, Bash
+diff -NrC 2 ../bash-4.2-patched/tests/shopt.right ./tests/shopt.right
+*** ../bash-4.2-patched/tests/shopt.right 2010-07-02 23:36:30.000000000 -0400
+--- ./tests/shopt.right 2012-05-07 16:27:18.000000000 -0400
+***************
+*** 13,16 ****
+--- 13,17 ----
+ shopt -u compat40
+ shopt -u compat41
++ shopt -u direxpand
+ shopt -u dirspell
+ shopt -u dotglob
+***************
+*** 69,72 ****
+--- 70,74 ----
+ shopt -u compat40
+ shopt -u compat41
++ shopt -u direxpand
+ shopt -u dirspell
+ shopt -u dotglob
+***************
+*** 102,105 ****
+--- 104,108 ----
+ compat40 off
+ compat41 off
++ direxpand off
+ dirspell off
+ dotglob off
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 28
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 29
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-030 b/source/a/bash/bash-4.2-patches/bash42-030
new file mode 100644
index 000000000..261a619bb
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-030
@@ -0,0 +1,178 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-030
+
+Bug-Reported-by: Roman Rakus <rrakus@redhat.com>
+Bug-Reference-ID: <4D7DD91E.7040808@redhat.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2011-03/msg00126.html
+
+Bug-Description:
+
+When attempting to glob strings in a multibyte locale, and those strings
+contain invalid multibyte characters that cause mbsnrtowcs to return 0,
+the globbing code loops infinitely.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/glob/xmbsrtowcs.c 2010-05-30 18:36:27.000000000 -0400
+--- lib/glob/xmbsrtowcs.c 2011-03-22 16:06:47.000000000 -0400
+***************
+*** 36,39 ****
+--- 36,41 ----
+ #if HANDLE_MULTIBYTE
+
++ #define WSBUF_INC 32
++
+ #ifndef FREE
+ # define FREE(x) do { if (x) free (x); } while (0)
+***************
+*** 149,153 ****
+ size_t wcnum; /* Number of wide characters in WSBUF */
+ mbstate_t state; /* Conversion State */
+! size_t wcslength; /* Number of wide characters produced by the conversion. */
+ const char *end_or_backslash;
+ size_t nms; /* Number of multibyte characters to convert at one time. */
+--- 151,155 ----
+ size_t wcnum; /* Number of wide characters in WSBUF */
+ mbstate_t state; /* Conversion State */
+! size_t n, wcslength; /* Number of wide characters produced by the conversion. */
+ const char *end_or_backslash;
+ size_t nms; /* Number of multibyte characters to convert at one time. */
+***************
+*** 172,176 ****
+ tmp_p = p;
+ tmp_state = state;
+! wcslength = mbsnrtowcs(NULL, &tmp_p, nms, 0, &tmp_state);
+
+ /* Conversion failed. */
+--- 174,189 ----
+ tmp_p = p;
+ tmp_state = state;
+!
+! if (nms == 0 && *p == '\\') /* special initial case */
+! nms = wcslength = 1;
+! else
+! wcslength = mbsnrtowcs (NULL, &tmp_p, nms, 0, &tmp_state);
+!
+! if (wcslength == 0)
+! {
+! tmp_p = p; /* will need below */
+! tmp_state = state;
+! wcslength = 1; /* take a single byte */
+! }
+
+ /* Conversion failed. */
+***************
+*** 187,191 ****
+ wchar_t *wstmp;
+
+! wsbuf_size = wcnum+wcslength+1; /* 1 for the L'\0' or the potential L'\\' */
+
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
+--- 200,205 ----
+ wchar_t *wstmp;
+
+! while (wsbuf_size < wcnum+wcslength+1) /* 1 for the L'\0' or the potential L'\\' */
+! wsbuf_size += WSBUF_INC;
+
+ wstmp = (wchar_t *) realloc (wsbuf, wsbuf_size * sizeof (wchar_t));
+***************
+*** 200,207 ****
+
+ /* Perform the conversion. This is assumed to return 'wcslength'.
+! * It may set 'p' to NULL. */
+! mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
+
+! wcnum += wcslength;
+
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
+--- 214,229 ----
+
+ /* Perform the conversion. This is assumed to return 'wcslength'.
+! It may set 'p' to NULL. */
+! n = mbsnrtowcs(wsbuf+wcnum, &p, nms, wsbuf_size-wcnum, &state);
+
+! /* Compensate for taking single byte on wcs conversion failure above. */
+! if (wcslength == 1 && (n == 0 || n == (size_t)-1))
+! {
+! state = tmp_state;
+! p = tmp_p;
+! wsbuf[wcnum++] = *p++;
+! }
+! else
+! wcnum += wcslength;
+
+ if (mbsinit (&state) && (p != NULL) && (*p == '\\'))
+***************
+*** 231,236 ****
+ of DESTP and INDICESP are NULL. */
+
+- #define WSBUF_INC 32
+-
+ size_t
+ xdupmbstowcs (destp, indicesp, src)
+--- 253,256 ----
+*** ../bash-4.2-patched/lib/glob/glob.c 2009-11-14 18:39:30.000000000 -0500
+--- lib/glob/glob.c 2012-07-07 12:09:56.000000000 -0400
+***************
+*** 201,206 ****
+ size_t pat_n, dn_n;
+
+ pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
+! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
+
+ ret = 0;
+--- 201,209 ----
+ size_t pat_n, dn_n;
+
++ pat_wc = dn_wc = (wchar_t *)NULL;
++
+ pat_n = xdupmbstowcs (&pat_wc, NULL, pat);
+! if (pat_n != (size_t)-1)
+! dn_n = xdupmbstowcs (&dn_wc, NULL, dname);
+
+ ret = 0;
+***************
+*** 222,225 ****
+--- 225,230 ----
+ ret = 1;
+ }
++ else
++ ret = skipname (pat, dname, flags);
+
+ FREE (pat_wc);
+***************
+*** 267,272 ****
+ n = xdupmbstowcs (&wpathname, NULL, pathname);
+ if (n == (size_t) -1)
+! /* Something wrong. */
+! return;
+ orig_wpathname = wpathname;
+
+--- 272,280 ----
+ n = xdupmbstowcs (&wpathname, NULL, pathname);
+ if (n == (size_t) -1)
+! {
+! /* Something wrong. Fall back to single-byte */
+! udequote_pathname (pathname);
+! return;
+! }
+ orig_wpathname = wpathname;
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 29
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 30
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-031 b/source/a/bash/bash-4.2-patches/bash42-031
new file mode 100644
index 000000000..419d4478e
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-031
@@ -0,0 +1,80 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-031
+
+Bug-Reported-by: Max Horn <max@quendi.de>
+Bug-Reference-ID: <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html
+
+Bug-Description:
+
+A change between bash-4.1 and bash-4.2 to prevent the readline input hook
+from being called too frequently had the side effect of causing delays
+when reading pasted input on systems such as Mac OS X. This patch fixes
+those delays while retaining the bash-4.2 behavior.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/readline/input.c 2010-05-30 18:33:01.000000000 -0400
+--- lib/readline/input.c 2012-06-25 21:08:42.000000000 -0400
+***************
+*** 410,414 ****
+ rl_read_key ()
+ {
+! int c;
+
+ rl_key_sequence_length++;
+--- 412,416 ----
+ rl_read_key ()
+ {
+! int c, r;
+
+ rl_key_sequence_length++;
+***************
+*** 430,441 ****
+ while (rl_event_hook)
+ {
+! if (rl_gather_tyi () < 0) /* XXX - EIO */
+ {
+ rl_done = 1;
+ return ('\n');
+ }
+ RL_CHECK_SIGNALS ();
+- if (rl_get_char (&c) != 0)
+- break;
+ if (rl_done) /* XXX - experimental */
+ return ('\n');
+--- 432,447 ----
+ while (rl_event_hook)
+ {
+! if (rl_get_char (&c) != 0)
+! break;
+!
+! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */
+ {
+ rl_done = 1;
+ return ('\n');
+ }
++ else if (r == 1) /* read something */
++ continue;
++
+ RL_CHECK_SIGNALS ();
+ if (rl_done) /* XXX - experimental */
+ return ('\n');
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 30
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 31
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-032 b/source/a/bash/bash-4.2-patches/bash42-032
new file mode 100644
index 000000000..d4f25ca03
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-032
@@ -0,0 +1,75 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-032
+
+Bug-Reported-by: Ruediger Kuhlmann <RKuhlmann@orga-systems.com>
+Bug-Reference-ID: <OFDE975207.0C3622E5-ONC12579F3.00361A06-C12579F3.00365E39@orga-systems.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00010.html
+
+Bug-Description:
+
+Bash-4.2 has problems with DEL characters in the expanded value of variables
+used in the same quoted string as variables that expand to nothing.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20120427/subst.c 2012-04-22 16:19:10.000000000 -0400
+--- subst.c 2012-05-07 16:06:35.000000000 -0400
+***************
+*** 8152,8155 ****
+--- 8152,8163 ----
+ dispose_word_desc (tword);
+
++ /* Kill quoted nulls; we will add them back at the end of
++ expand_word_internal if nothing else in the string */
++ if (had_quoted_null && temp && QUOTED_NULL (temp))
++ {
++ FREE (temp);
++ temp = (char *)NULL;
++ }
++
+ goto add_string;
+ break;
+***************
+*** 8556,8560 ****
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ tword->flags |= W_QUOTED;
+! if (had_quoted_null)
+ tword->flags |= W_HASQUOTEDNULL;
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+--- 8564,8568 ----
+ if (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
+ tword->flags |= W_QUOTED;
+! if (had_quoted_null && QUOTED_NULL (istring))
+ tword->flags |= W_HASQUOTEDNULL;
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+***************
+*** 8587,8591 ****
+ if (word->flags & W_NOEXPAND)
+ tword->flags |= W_NOEXPAND;
+! if (had_quoted_null)
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+--- 8595,8599 ----
+ if (word->flags & W_NOEXPAND)
+ tword->flags |= W_NOEXPAND;
+! if (had_quoted_null && QUOTED_NULL (istring))
+ tword->flags |= W_HASQUOTEDNULL; /* XXX */
+ list = make_word_list (tword, (WORD_LIST *)NULL);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 31
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-033 b/source/a/bash/bash-4.2-patches/bash42-033
new file mode 100644
index 000000000..e58d7286e
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-033
@@ -0,0 +1,57 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-033
+
+Bug-Reported-by: David Leverton <levertond@googlemail.com>
+Bug-Reference-ID: <4FCCE737.1060603@googlemail.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+Bash uses a static buffer when expanding the /dev/fd prefix for the test
+and conditional commands, among other uses, when it should use a dynamic
+buffer to avoid buffer overflow.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/sh/eaccess.c 2011-01-08 20:50:10.000000000 -0500
+--- lib/sh/eaccess.c 2012-06-04 21:06:43.000000000 -0400
+***************
+*** 83,86 ****
+--- 83,88 ----
+ struct stat *finfo;
+ {
++ static char *pbuf = 0;
++
+ if (*path == '\0')
+ {
+***************
+*** 107,111 ****
+ On most systems, with the notable exception of linux, this is
+ effectively a no-op. */
+! char pbuf[32];
+ strcpy (pbuf, DEV_FD_PREFIX);
+ strcat (pbuf, path + 8);
+--- 109,113 ----
+ On most systems, with the notable exception of linux, this is
+ effectively a no-op. */
+! pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
+ strcpy (pbuf, DEV_FD_PREFIX);
+ strcat (pbuf, path + 8);
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 32
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 33
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-034 b/source/a/bash/bash-4.2-patches/bash42-034
new file mode 100644
index 000000000..e4f05e103
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-034
@@ -0,0 +1,46 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-034
+
+Bug-Reported-by: "Davide Brini" <dave_br@gmx.com>
+Bug-Reference-ID: <20120604164154.69781EC04B@imaps.oficinas.atrapalo.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00030.html
+
+Bug-Description:
+
+In bash-4.2, the history code would inappropriately add a semicolon to
+multi-line compound array assignments when adding them to the history.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/parse.y 2011-11-21 18:03:36.000000000 -0500
+--- parse.y 2012-06-07 12:48:47.000000000 -0400
+***************
+*** 4900,4905 ****
+--- 4916,4924 ----
+ return (current_command_line_count == 2 ? "\n" : "");
+ }
+
++ if (parser_state & PST_COMPASSIGN)
++ return (" ");
++
+ /* First, handle some special cases. */
+ /*(*/
+ /* If we just read `()', assume it's a function definition, and don't
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 33
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 34
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-035 b/source/a/bash/bash-4.2-patches/bash42-035
new file mode 100644
index 000000000..6f0be6f90
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-035
@@ -0,0 +1,66 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-035
+
+Bug-Reported-by: Dan Douglas <ormaaj@gmail.com>
+Bug-Reference-ID: <2766482.Ksm3GrSoYi@smorgbox>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-06/msg00071.html
+
+Bug-Description:
+
+When given a number of lines to read, `mapfile -n lines' reads one too many.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/builtins/mapfile.def 2010-05-29 22:09:47.000000000 -0400
+--- builtins/mapfile.def 2012-06-20 09:48:33.000000000 -0400
+***************
+*** 196,206 ****
+ interrupt_immediately++;
+ for (array_index = origin, line_count = 1;
+! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
+! array_index++, line_count++)
+ {
+- /* Have we exceeded # of lines to store? */
+- if (line_count_goal != 0 && line_count > line_count_goal)
+- break;
+-
+ /* Remove trailing newlines? */
+ if (flags & MAPF_CHOP)
+--- 196,202 ----
+ interrupt_immediately++;
+ for (array_index = origin, line_count = 1;
+! zgetline (fd, &line, &line_length, unbuffered_read) != -1;
+! array_index++)
+ {
+ /* Remove trailing newlines? */
+ if (flags & MAPF_CHOP)
+***************
+*** 218,221 ****
+--- 214,222 ----
+
+ bind_array_element (entry, array_index, line, 0);
++
++ /* Have we exceeded # of lines to store? */
++ line_count++;
++ if (line_count_goal != 0 && line_count > line_count_goal)
++ break;
+ }
+
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 34
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 35
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-036 b/source/a/bash/bash-4.2-patches/bash42-036
new file mode 100644
index 000000000..73fac408a
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-036
@@ -0,0 +1,92 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-036
+
+Bug-Reported-by: gregrwm <backuppc-users@whitleymott.net>
+Bug-Reference-ID: <CAD+dB9B4JG+qUwZBQUwiQmVt0j6NDn=DDTxr9R+nkA8DL4KLJA@mail.gmail.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2012-05/msg00108.html
+
+Bug-Description:
+
+Bash-4.2 produces incorrect word splitting results when expanding
+double-quoted $@ in the same string as and adjacent to other variable
+expansions. The $@ should be split, the other expansions should not.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/subst.c 2012-05-02 12:02:33.000000000 -0400
+--- subst.c 2012-07-08 21:19:32.000000000 -0400
+***************
+*** 7923,7927 ****
+ /* State flags */
+ int had_quoted_null;
+! int has_dollar_at;
+ int tflag;
+ int pflags; /* flags passed to param_expand */
+--- 7923,7927 ----
+ /* State flags */
+ int had_quoted_null;
+! int has_dollar_at, temp_has_dollar_at;
+ int tflag;
+ int pflags; /* flags passed to param_expand */
+***************
+*** 8128,8138 ****
+ *expanded_something = 1;
+
+! has_dollar_at = 0;
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
+ if (word->flags & W_NOSPLIT2)
+ pflags |= PF_NOSPLIT2;
+ tword = param_expand (string, &sindex, quoted, expanded_something,
+! &has_dollar_at, &quoted_dollar_at,
+ &had_quoted_null, pflags);
+
+ if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
+--- 8128,8139 ----
+ *expanded_something = 1;
+
+! temp_has_dollar_at = 0;
+ pflags = (word->flags & W_NOCOMSUB) ? PF_NOCOMSUB : 0;
+ if (word->flags & W_NOSPLIT2)
+ pflags |= PF_NOSPLIT2;
+ tword = param_expand (string, &sindex, quoted, expanded_something,
+! &temp_has_dollar_at, &quoted_dollar_at,
+ &had_quoted_null, pflags);
++ has_dollar_at += temp_has_dollar_at;
+
+ if (tword == &expand_wdesc_error || tword == &expand_wdesc_fatal)
+***************
+*** 8275,8281 ****
+ temp = (char *)NULL;
+
+! has_dollar_at = 0;
+ /* Need to get W_HASQUOTEDNULL flag through this function. */
+! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &has_dollar_at, (int *)NULL);
+
+ if (list == &expand_word_error || list == &expand_word_fatal)
+--- 8276,8283 ----
+ temp = (char *)NULL;
+
+! temp_has_dollar_at = 0; /* XXX */
+ /* Need to get W_HASQUOTEDNULL flag through this function. */
+! list = expand_word_internal (tword, Q_DOUBLE_QUOTES, 0, &temp_has_dollar_at, (int *)NULL);
+! has_dollar_at += temp_has_dollar_at;
+
+ if (list == &expand_word_error || list == &expand_word_fatal)
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 35
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 36
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash-4.2-patches/bash42-037 b/source/a/bash/bash-4.2-patches/bash42-037
new file mode 100644
index 000000000..a12b8a7ee
--- /dev/null
+++ b/source/a/bash/bash-4.2-patches/bash42-037
@@ -0,0 +1,112 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 4.2
+Patch-ID: bash42-037
+
+Bug-Reported-by: Jakub Filak
+Bug-Reference-ID:
+Bug-Reference-URL: https://bugzilla.redhat.com/show_bug.cgi?id=813289
+
+Bug-Description:
+
+Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy'
+commands leads to an infinite loop.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-4.2-patched/lib/readline/vi_mode.c 2011-02-25 11:17:02.000000000 -0500
+--- lib/readline/vi_mode.c 2012-06-02 12:24:47.000000000 -0400
+***************
+*** 1235,1243 ****
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+! else if (vi_redoing)
+ {
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+ #if defined (READLINE_CALLBACKS)
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
+--- 1297,1313 ----
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+! else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
+ {
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
++ else if (vi_redoing) /* handle redoing `dd' here */
++ {
++ _rl_vimvcxt->motion = _rl_vi_last_motion;
++ rl_mark = rl_end;
++ rl_beg_of_line (1, key);
++ RL_UNSETSTATE (RL_STATE_VIMOTION);
++ r = vidomove_dispatch (_rl_vimvcxt);
++ }
+ #if defined (READLINE_CALLBACKS)
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
+***************
+*** 1317,1325 ****
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+! else if (vi_redoing)
+ {
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+ #if defined (READLINE_CALLBACKS)
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
+--- 1387,1403 ----
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
+! else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
+ {
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
++ else if (vi_redoing) /* handle redoing `cc' here */
++ {
++ _rl_vimvcxt->motion = _rl_vi_last_motion;
++ rl_mark = rl_end;
++ rl_beg_of_line (1, key);
++ RL_UNSETSTATE (RL_STATE_VIMOTION);
++ r = vidomove_dispatch (_rl_vimvcxt);
++ }
+ #if defined (READLINE_CALLBACKS)
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
+***************
+*** 1378,1381 ****
+--- 1456,1472 ----
+ r = rl_domove_motion_callback (_rl_vimvcxt);
+ }
++ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
++ {
++ _rl_vimvcxt->motion = _rl_vi_last_motion;
++ r = rl_domove_motion_callback (_rl_vimvcxt);
++ }
++ else if (vi_redoing) /* handle redoing `yy' here */
++ {
++ _rl_vimvcxt->motion = _rl_vi_last_motion;
++ rl_mark = rl_end;
++ rl_beg_of_line (1, key);
++ RL_UNSETSTATE (RL_STATE_VIMOTION);
++ r = vidomove_dispatch (_rl_vimvcxt);
++ }
+ #if defined (READLINE_CALLBACKS)
+ else if (RL_ISSTATE (RL_STATE_CALLBACK))
+*** ../bash-4.2-patched/patchlevel.h Sat Jun 12 20:14:48 2010
+--- patchlevel.h Thu Feb 24 21:41:34 2011
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 36
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 37
+
+ #endif /* _PATCHLEVEL_H_ */
diff --git a/source/a/bash/bash.SlackBuild b/source/a/bash/bash.SlackBuild
index 32ce9a40d..ecd37b3c1 100755
--- a/source/a/bash/bash.SlackBuild
+++ b/source/a/bash/bash.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,6 +20,9 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Modified 2011, 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
@@ -31,12 +34,14 @@ VERSION=${VERSION:-$(echo bash-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d -
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$MARCH ;;
esac
fi
@@ -48,10 +53,17 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
else
SLKCFLAGS="-O2"
fi
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
if [ ! -d $TMP ]; then
mkdir -p $TMP # location to build the source
fi
@@ -76,12 +88,18 @@ if [ -d $CWD/bash-${VERSION}-patches ]; then
( cd $CWD/bash-${VERSION}-patches ; cat bash4?-??? ) | patch -p0 --verbose || exit 1
fi
+# End of preparations
+if echo "$*" | grep -qw -- --prep ; then
+ exit 0
+fi
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--mandir=/usr/man \
--infodir=/usr/info \
- --build=$ARCH-slackware-linux
+ --build=$TARGET
+
make -j4 || make || exit 1
make install DESTDIR=$PKG
mv $PKG/usr/share/doc $PKG/usr
diff --git a/source/a/btrfs-progs/btrfs-progs.SlackBuild b/source/a/btrfs-progs/btrfs-progs.SlackBuild
index ebbd9a536..99dd753d8 100755
--- a/source/a/btrfs-progs/btrfs-progs.SlackBuild
+++ b/source/a/btrfs-progs/btrfs-progs.SlackBuild
@@ -27,13 +27,13 @@ BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
-# Download the btrfs-progs-unstable Git head if there's no tarball:
+# Download the btrfs-progs Git head if there's no tarball:
if ! /bin/ls $CWD/btrfs-progs*tar* 1> /dev/null 2> /dev/null ; then
- git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs-unstable.git
- rm -r btrfs-progs-unstable/.git
- tar cf btrfs-progs-$(date +%Y%m%d).tar btrfs-progs-unstable
+ git clone git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-progs.git
+ rm -r btrfs-progs/.git
+ tar cf btrfs-progs-$(date +%Y%m%d).tar btrfs-progs
xz -9 btrfs-progs-$(date +%Y%m%d).tar
- rm -r $CWD/btrfs-progs-unstable
+ rm -r $CWD/btrfs-progs
fi
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | cut -f 3 -d - | cut -f 1 -d .)}
@@ -56,9 +56,9 @@ rm -rf $PKG
mkdir -p $PKG
cd $TMP
-rm -rf btrfs-progs-unstable
+rm -rf btrfs-progs
tar xf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
-cd btrfs-progs-unstable
+cd btrfs-progs
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -77,9 +77,6 @@ find . -perm 555 -exec chmod 755 {} \;
# Build:
make $NUMJOBS || make || exit 1
-# Build ext* conversion utility:
-make $NUMJOBS convert || make convert || exit 1
-
# Install:
make install DESTDIR=$PKG || exit 1
diff --git a/source/a/btrfs-progs/slack-desc b/source/a/btrfs-progs/slack-desc
index e9088d053..d53953c80 100644
--- a/source/a/btrfs-progs/slack-desc
+++ b/source/a/btrfs-progs/slack-desc
@@ -11,9 +11,9 @@ btrfs-progs:
btrfs-progs: Btrfs is a new copy on write filesystem for Linux aimed at implementing
btrfs-progs: advanced features while focusing on fault tolerance, repair and easy
btrfs-progs: administration. Initially developed by Oracle, Btrfs is licensed under
-btrfs-progs: the GPL and open for contribution from anyone. Btrfs is under heavy
-btrfs-progs: development, and is not suitable for any uses other than benchmarking
-btrfs-progs: and review. The Btrfs disk format is not yet finalized.
+btrfs-progs: the GPL and open for contribution from anyone.
+btrfs-progs:
+btrfs-progs:
btrfs-progs:
btrfs-progs: Btrfs homepage: http://btrfs.wiki.kernel.org
btrfs-progs:
diff --git a/source/a/coreutils/coreutils.SlackBuild b/source/a/coreutils/coreutils.SlackBuild
index 860199847..3bd8e5211 100755
--- a/source/a/coreutils/coreutils.SlackBuild
+++ b/source/a/coreutils/coreutils.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -90,12 +90,13 @@ zcat $CWD/$PKGNAM.uname.diff.gz | patch -p1 --verbose --backup --suffix=.orig ||
# 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'
+# Without that 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.
+FORCE_UNSAFE_CONFIGURE=1 \
CFLAGS="$SLKCFLAGS" \
DEFAULT_POSIX2_VERSION=199209 \
./configure \
@@ -164,10 +165,20 @@ done
( 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
-)
+# 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
rm -f $PKG/usr/info/dir
gzip -9 $PKG/usr/info/*
diff --git a/source/a/cpio/cpio.32bit.crc.diff b/source/a/cpio/cpio.32bit.crc.diff
new file mode 100644
index 000000000..8ae94e983
--- /dev/null
+++ b/source/a/cpio/cpio.32bit.crc.diff
@@ -0,0 +1,111 @@
+From ccec71ec318fdf739f55858d5bffaf4fd6520036 Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <gray@gnu.org.ua>
+Date: Mon, 20 Feb 2012 17:51:27 +0000
+Subject: Always use 32 bit CRC
+
+* src/cpiohdr.h (cpio_file_stat) <c_chksum>: Change type to
+uint32_t.
+* src/extern.h (crc): Change type to uint32_t.
+* src/global.c: Likewise.
+* src/copyout.c (read_for_checksum): Return uint32_t.
+* src/copyin.c: Fix printf formats.
+---
+diff --git a/src/copyin.c b/src/copyin.c
+index 3ab5dac..3282816 100644
+--- a/src/copyin.c
++++ b/src/copyin.c
+@@ -178,7 +178,7 @@ list_file(struct cpio_file_stat* file_hdr, int in_file_des)
+ #endif
+ if (crc != file_hdr->c_chksum)
+ {
+- error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
++ error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
+ file_hdr->c_name, crc, file_hdr->c_chksum);
+ }
+ }
+@@ -525,7 +525,7 @@ copyin_regular_file (struct cpio_file_stat* file_hdr, int in_file_des)
+ if (archive_format == arf_crcascii)
+ {
+ if (crc != file_hdr->c_chksum)
+- error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
++ error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
+ file_hdr->c_name, crc, file_hdr->c_chksum);
+ }
+ tape_skip_padding (in_file_des, file_hdr->c_filesize);
+@@ -540,7 +540,7 @@ copyin_regular_file (struct cpio_file_stat* file_hdr, int in_file_des)
+ if (archive_format == arf_crcascii)
+ {
+ if (crc != file_hdr->c_chksum)
+- error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
++ error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
+ file_hdr->c_name, crc, file_hdr->c_chksum);
+ }
+
+@@ -1436,7 +1436,7 @@ process_copy_in ()
+ tape_skip_padding (in_file_des, file_hdr.c_filesize);
+ if (crc != file_hdr.c_chksum)
+ {
+- error (0, 0, _("%s: checksum error (0x%lx, should be 0x%lx)"),
++ error (0, 0, _("%s: checksum error (0x%x, should be 0x%x)"),
+ file_hdr.c_name, crc, file_hdr.c_chksum);
+ }
+ /* Debian hack: -v and -V now work with --only-verify-crc.
+diff --git a/src/copyout.c b/src/copyout.c
+index ab6a243..a5a8931 100644
+--- a/src/copyout.c
++++ b/src/copyout.c
+@@ -33,10 +33,10 @@
+ /* Read FILE_SIZE bytes of FILE_NAME from IN_FILE_DES and
+ compute and return a checksum for them. */
+
+-static unsigned long
++static uint32_t
+ read_for_checksum (int in_file_des, int file_size, char *file_name)
+ {
+- unsigned long crc;
++ uint32_t crc;
+ char buf[BUFSIZ];
+ int bytes_left;
+ int bytes_read;
+diff --git a/src/cpiohdr.h b/src/cpiohdr.h
+index 86ec988..9aa8ed9 100644
+--- a/src/cpiohdr.h
++++ b/src/cpiohdr.h
+@@ -123,7 +123,7 @@ struct cpio_file_stat /* Internal representation of a CPIO header */
+ long c_rdev_maj;
+ long c_rdev_min;
+ size_t c_namesize;
+- unsigned long c_chksum;
++ uint32_t c_chksum;
+ char *c_name;
+ char *c_tar_linkname;
+ };
+diff --git a/src/extern.h b/src/extern.h
+index be329ae..ef00242 100644
+--- a/src/extern.h
++++ b/src/extern.h
+@@ -75,7 +75,7 @@ extern char *new_media_message_after_number;
+ extern int archive_des;
+ extern char *archive_name;
+ extern char *rsh_command_option;
+-extern unsigned long crc;
++extern uint32_t crc;
+ #ifdef DEBUG_CPIO
+ extern int debug_flag;
+ #endif
+diff --git a/src/global.c b/src/global.c
+index 29e7afc..e08e188 100644
+--- a/src/global.c
++++ b/src/global.c
+@@ -144,7 +144,7 @@ char *archive_name = NULL;
+ char *rsh_command_option = NULL;
+
+ /* CRC checksum. */
+-unsigned long crc;
++uint32_t crc;
+
+ /* Input and output buffers. */
+ char *input_buffer, *output_buffer;
+--
+cgit v0.9.0.2
+
diff --git a/source/a/cpio/cpio.SlackBuild b/source/a/cpio/cpio.SlackBuild
index b078d0677..5e3eea05a 100755
--- a/source/a/cpio/cpio.SlackBuild
+++ b/source/a/cpio/cpio.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=cpio
VERSION=$(ls $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -62,7 +62,7 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1
-#zcat $CWD/cpio-2.9.gcc43.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/cpio.32bit.crc.diff.gz | patch -p1 -F 3 --verbose || exit 1
# Make sure ownerships and permissions are sane:
chown -R root:root .
diff --git a/source/a/cryptsetup/cryptsetup.SlackBuild b/source/a/cryptsetup/cryptsetup.SlackBuild
index 11370fc64..9b874e2a4 100755
--- a/source/a/cryptsetup/cryptsetup.SlackBuild
+++ b/source/a/cryptsetup/cryptsetup.SlackBuild
@@ -33,7 +33,7 @@
# -----------------------------------------------------------------------------
PKGNAM=cryptsetup
-VERSION=${VERSION:-1.2.0}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -121,7 +121,20 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
-find $PKG/usr/man -type f -name "*.?" -exec gzip -9f {} \; || true
+# 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
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/a/cups/cups.SlackBuild b/source/a/cups/cups.SlackBuild
index 7af4bd818..afac91324 100755
--- a/source/a/cups/cups.SlackBuild
+++ b/source/a/cups/cups.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,8 @@
# CUPS build script by volkerdi@slackware.com.
-VERSION=1.4.6
-BUILD=${BUILD:-1}
+VERSION=1.5.4
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -53,13 +53,11 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf cups-$VERSION
tar xvf $CWD/cups-$VERSION-source.tar.?z* || exit 1
-cd cups-$VERSION
+cd cups-$VERSION || exit 1
-# Fix the USB backend to use either usblp or libusb:
-zcat $CWD/usb-backend-both-usblp-and-libusb.dpatch.gz | patch -p1 --verbose || exit 1
-
-# Fix locking to avoid crashes with OpenSSL:
-zcat $CWD/cups.fix_broken_locking.diff.gz | patch -p1 --verbose || exit 1
+# Fix for CUPS 1.5.4. Don't reload the obsolete usblp module, as this
+# can cause partial printing with certain printers.
+zcat $CWD/usb-backend-reset-after-job-only-for-specific-devices.patch.gz | patch -p0 --verbose || exit 1
sed -i.orig -e 's#$exec_prefix/lib/cups#$libdir/cups#g' configure
./configure \
@@ -78,6 +76,9 @@ mkdir -p $PKG/etc/cups
mkdir -p $PKG/var/spool
make BUILDROOT=$PKG install || exit 1
+# Hey, what's with the gigantic test files? Bloat is bad.
+rm -f $PKG/usr/share/cups/ipptool/*.{pdf,ps,jpg}
+
# 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:
@@ -88,17 +89,6 @@ 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
-### OBSOLETE. The USB backend is patched to support usblp again. ###
-## From 1.4.x, CUPS no longer uses usblp, and having the module loaded
-## will interfere with USB printers. So, we will add a blacklist rule
-## so that the module is not loaded:
-#mkdir -p $PKG/etc/modprobe.d
-#cat << EOF > $PKG/etc/modprobe.d/cups.blacklist.usblp.conf.new
-## Do not load the kernel usblp module, since it interferes with
-## versions of CUPS 1.4.0 and newer:
-#blacklist usblp
-#EOF
-
# 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
diff --git a/source/a/cups/cups.fix_broken_locking.diff b/source/a/cups/cups.fix_broken_locking.diff
deleted file mode 100644
index 44f97533f..000000000
--- a/source/a/cups/cups.fix_broken_locking.diff
+++ /dev/null
@@ -1,256 +0,0 @@
-Submitted By: DJ Lucas <robert AT linuxfromscratch DOT org>
-Date: 2010-09-13
-Initial Package Version: 1.4.4
-Upstream Status: Unknown
-Origin: https://bugzilla.redhat.com/show_bug.cgi?id=553834
-Description: Bug fix for invalid locking with GCrypt.
-
-diff -Naurp cups-1.4.4-orig/cups/http.c cups-1.4.4/cups/http.c
---- cups-1.4.4-orig/cups/http.c 2010-06-16 00:27:41.000000000 -0500
-+++ cups-1.4.4/cups/http.c 2010-09-13 01:27:03.000000000 -0500
-@@ -83,12 +83,10 @@
- * http_debug_hex() - Do a hex dump of a buffer.
- * http_field() - Return the field index for a field name.
- * http_read_ssl() - Read from a SSL/TLS connection.
-- * http_locking_cb() - Lock/unlock a thread's mutex.
- * http_send() - Send a request with all fields and the trailing
- * blank line.
- * http_setup_ssl() - Set up SSL/TLS support on a connection.
- * http_shutdown_ssl() - Shut down SSL/TLS on a connection.
-- * http_threadid_cb() - Return the current thread ID.
- * http_upgrade() - Force upgrade to TLS encryption.
- * http_write() - Write a buffer to a HTTP connection.
- * http_write_chunk() - Write a chunked buffer.
-@@ -146,19 +144,6 @@ static int http_setup_ssl(http_t *http)
- static void http_shutdown_ssl(http_t *http);
- static int http_upgrade(http_t *http);
- static int http_write_ssl(http_t *http, const char *buf, int len);
--
--# ifdef HAVE_GNUTLS
--# ifdef HAVE_PTHREAD_H
--GCRY_THREAD_OPTION_PTHREAD_IMPL;
--# endif /* HAVE_PTHREAD_H */
--
--# elif defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H)
--static pthread_mutex_t *http_locks; /* OpenSSL lock mutexes */
--
--static void http_locking_cb(int mode, int type, const char *file,
-- int line);
--static unsigned long http_threadid_cb(void);
--# endif /* HAVE_GNUTLS */
- #endif /* HAVE_SSL */
-
-
-@@ -1188,22 +1173,21 @@ httpHead(http_t *http, /* I - Conne
- void
- httpInitialize(void)
- {
-- static int initialized = 0; /* Have we been called before? */
--#ifdef WIN32
-- WSADATA winsockdata; /* WinSock data */
--#endif /* WIN32 */
- #ifdef HAVE_LIBSSL
-- int i; /* Looping var */
-- unsigned char data[1024]; /* Seed data */
-+# ifndef WIN32
-+ struct timeval curtime; /* Current time in microseconds */
-+# endif /* !WIN32 */
-+ int i; /* Looping var */
-+ unsigned char data[1024]; /* Seed data */
- #endif /* HAVE_LIBSSL */
-
--
-- if (initialized)
-- return;
--
- #ifdef WIN32
-- WSAStartup(MAKEWORD(2,2), &winsockdata);
-+ WSADATA winsockdata; /* WinSock data */
-+
-
-+ static int initialized = 0; /* Has WinSock been initialized? */
-+ if (!initialized)
-+ WSAStartup(MAKEWORD(1,1), &winsockdata);
- #elif !defined(SO_NOSIGPIPE)
- /*
- * Ignore SIGPIPE signals...
-@@ -1226,21 +1210,15 @@ httpInitialize(void)
- #endif /* WIN32 */
-
- #ifdef HAVE_GNUTLS
-- /*
-- * Make sure we handle threading properly...
-- */
--
--# ifdef HAVE_PTHREAD_H
-- gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
--# endif /* HAVE_PTHREAD_H */
-
- /*
- * Initialize GNU TLS...
- */
-
- gnutls_global_init();
-+#endif /* HAVE_GNUTLS */
-
--#elif defined(HAVE_LIBSSL)
-+#ifdef HAVE_LIBSSL
- /*
- * Initialize OpenSSL...
- */
-@@ -1249,33 +1227,21 @@ httpInitialize(void)
- SSL_library_init();
-
- /*
-- * Set the threading callbacks...
-- */
--
--# ifdef HAVE_PTHREAD_H
-- http_locks = calloc(CRYPTO_num_locks(), sizeof(pthread_mutex_t));
--
-- for (i = 0; i < CRYPTO_num_locks(); i ++)
-- pthread_mutex_init(http_locks + i, NULL);
--
-- CRYPTO_set_id_callback(http_threadid_cb);
-- CRYPTO_set_locking_callback(http_locking_cb);
--# endif /* HAVE_PTHREAD_H */
--
-- /*
- * Using the current time is a dubious random seed, but on some systems
- * it is the best we can do (on others, this seed isn't even used...)
- */
-
-- CUPS_SRAND(time(NULL));
-+# ifdef WIN32
-+# else
-+ gettimeofday(&curtime, NULL);
-+ srand(curtime.tv_sec + curtime.tv_usec);
-+# endif /* WIN32 */
-
- for (i = 0; i < sizeof(data); i ++)
-- data[i] = CUPS_RAND();
-+ data[i] = rand();
-
- RAND_seed(data, sizeof(data));
--#endif /* HAVE_GNUTLS */
--
-- initialized = 1;
-+#endif /* HAVE_LIBSSL */
- }
-
-
-@@ -2834,25 +2800,6 @@ http_read_ssl(http_t *http, /* I - Conn
- #endif /* HAVE_SSL */
-
-
--#if defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H)
--/*
-- * 'http_locking_cb()' - Lock/unlock a thread's mutex.
-- */
--
--static void
--http_locking_cb(int mode, /* I - Lock mode */
-- int type, /* I - Lock type */
-- const char *file, /* I - Source file */
-- int line) /* I - Line number */
--{
-- if (mode & CRYPTO_LOCK)
-- pthread_mutex_lock(http_locks + type);
-- else
-- pthread_mutex_unlock(http_locks + type);
--}
--#endif /* HAVE_LIBSSL && HAVE_PTHREAD_H */
--
--
- /*
- * 'http_send()' - Send a request with all fields and the trailing blank line.
- */
-@@ -3224,19 +3171,6 @@ http_shutdown_ssl(http_t *http) /* I -
- #endif /* HAVE_SSL */
-
-
--#if defined(HAVE_LIBSSL) && defined(HAVE_PTHREAD_H)
--/*
-- * 'http_threadid_cb()' - Return the current thread ID.
-- */
--
--static unsigned long /* O - Thread ID */
--http_threadid_cb(void)
--{
-- return ((unsigned long)pthread_self());
--}
--#endif /* HAVE_LIBSSL && HAVE_PTHREAD_H */
--
--
- #ifdef HAVE_SSL
- /*
- * 'http_upgrade()' - Force upgrade to TLS encryption.
-diff -Naurp cups-1.4.4-orig/cups/http-private.h cups-1.4.4/cups/http-private.h
---- cups-1.4.4-orig/cups/http-private.h 2010-04-11 23:03:53.000000000 -0500
-+++ cups-1.4.4/cups/http-private.h 2010-09-13 01:27:24.000000000 -0500
-@@ -98,7 +98,6 @@ extern BIO_METHOD *_httpBIOMethods(void)
- * The GNU TLS library is more of a "bare metal" SSL/TLS library...
- */
- # include <gnutls/gnutls.h>
--# include <gcrypt.h>
-
- typedef struct
- {
-diff -Naurp cups-1.4.4-orig/scheduler/main.c cups-1.4.4/scheduler/main.c
---- cups-1.4.4-orig/scheduler/main.c 2010-04-23 13:56:34.000000000 -0500
-+++ cups-1.4.4/scheduler/main.c 2010-09-13 01:27:36.000000000 -0500
-@@ -549,8 +549,6 @@ main(int argc, /* I - Number of comm
- * Startup the server...
- */
-
-- httpInitialize();
--
- cupsdStartServer();
-
- /*
-diff -Naurp cups-1.4.4-orig/scheduler/server.c cups-1.4.4/scheduler/server.c
---- cups-1.4.4-orig/scheduler/server.c 2010-04-11 23:03:53.000000000 -0500
-+++ cups-1.4.4/scheduler/server.c 2010-09-13 01:27:49.000000000 -0500
-@@ -44,6 +44,42 @@ static int started = 0;
- void
- cupsdStartServer(void)
- {
-+#ifdef HAVE_LIBSSL
-+ int i; /* Looping var */
-+ struct timeval curtime; /* Current time in microseconds */
-+ unsigned char data[1024]; /* Seed data */
-+#endif /* HAVE_LIBSSL */
-+
-+
-+#ifdef HAVE_LIBSSL
-+ /*
-+ * Initialize the encryption libraries...
-+ */
-+
-+ SSL_library_init();
-+ SSL_load_error_strings();
-+
-+ /*
-+ * Using the current time is a dubious random seed, but on some systems
-+ * it is the best we can do (on others, this seed isn't even used...)
-+ */
-+
-+ gettimeofday(&curtime, NULL);
-+ srand(curtime.tv_sec + curtime.tv_usec);
-+
-+ for (i = 0; i < sizeof(data); i ++)
-+ data[i] = rand(); /* Yes, this is a poor source of random data... */
-+
-+ RAND_seed(&data, sizeof(data));
-+#elif defined(HAVE_GNUTLS)
-+ /*
-+ * Initialize the encryption libraries...
-+ */
-+
-+ gnutls_global_init();
-+#endif /* HAVE_LIBSSL */
-+
-+
- /*
- * Create the default security profile...
- */
diff --git a/source/a/cups/cups.url b/source/a/cups/cups.url
new file mode 100644
index 000000000..fc83aeb6b
--- /dev/null
+++ b/source/a/cups/cups.url
@@ -0,0 +1 @@
+http://ftp.easysw.com/pub/cups/1.5.4/cups-1.5.4-source.tar.bz2
diff --git a/source/a/cups/usb-backend-both-usblp-and-libusb.dpatch b/source/a/cups/usb-backend-both-usblp-and-libusb.dpatch
deleted file mode 100644
index 88ae9d077..000000000
--- a/source/a/cups/usb-backend-both-usblp-and-libusb.dpatch
+++ /dev/null
@@ -1,574 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## usb-backend-both-usblp-and-libusb.dpatch by <till.kamppeter@gmail.com>
-##
-## DP: http://www.cups.org/str.php?L3357
-
-@DPATCH@
-diff -urNad cups-1.4.3~/backend/Makefile cups-1.4.3/backend/Makefile
---- cups-1.4.3~/backend/Makefile 2010-04-09 15:56:03.735720821 +0200
-+++ cups-1.4.3/backend/Makefile 2010-04-09 15:56:04.335705387 +0200
-@@ -267,7 +267,7 @@
- echo Linking $@...
- $(CC) $(LDFLAGS) -o usb usb.o libbackend.a $(LIBUSB) \
- $(BACKLIBS) $(LIBS)
--usb.o: usb.c usb-darwin.c usb-libusb.c usb-unix.c
-+usb.o: usb.c usb-darwin.c usb-hybrid.c usb-libusb.c usb-unix.c
-
-
- #
-diff -urNad cups-1.4.3~/backend/ieee1284.c cups-1.4.3/backend/ieee1284.c
---- cups-1.4.3~/backend/ieee1284.c 2009-12-08 03:13:42.000000000 +0100
-+++ cups-1.4.3/backend/ieee1284.c 2010-04-09 15:56:04.335705387 +0200
-@@ -255,6 +255,7 @@
- cups_option_t *values; /* Keys and values in device ID */
- const char *mfg, /* Manufacturer */
- *mdl, /* Model */
-+ *des, /* Description */
- *sern; /* Serial number */
- char temp[256], /* Temporary manufacturer string */
- *tempptr; /* Pointer into temp string */
-@@ -285,10 +286,20 @@
- }
- else
- {
-- strlcpy(temp, make_model, sizeof(temp));
-+ /*
-+ * No manufacturer? Use the model string or description...
-+ */
-+
-+ if (mdl)
-+ _ppdNormalizeMakeAndModel(mdl, temp, sizeof(temp));
-+ else if ((des = cupsGetOption("DESCRIPTION", num_values, values)) != NULL ||
-+ (des = cupsGetOption("DES", num_values, values)) != NULL)
-+ _ppdNormalizeMakeAndModel(des, temp, sizeof(temp));
-+ else
-+ strlcpy(temp, "Unknown", sizeof(temp));
-
- if ((tempptr = strchr(temp, ' ')) != NULL)
-- *tempptr = '\0';
-+ *tempptr = '\0';
-
- mfg = temp;
- }
-diff -urNad cups-1.4.3~/backend/usb-hybrid.c cups-1.4.3/backend/usb-hybrid.c
---- cups-1.4.3~/backend/usb-hybrid.c 1970-01-01 01:00:00.000000000 +0100
-+++ cups-1.4.3/backend/usb-hybrid.c 2010-04-09 15:56:04.345707078 +0200
-@@ -0,0 +1,87 @@
-+/*
-+ * "$Id: usb-hybrid.c 8807 2009-08-31 18:45:43Z mike $"
-+ *
-+ * USB port backend for the Common UNIX Printing System (CUPS).
-+ *
-+ * This file is included from "usb.c" when compiled on Linux.
-+ *
-+ * Copyright 2007-2008 by Apple Inc.
-+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
-+ *
-+ * These coded instructions, statements, and computer programs are the
-+ * property of Apple Inc. and are protected by Federal copyright
-+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
-+ * "LICENSE" which should have been included with this file. If this
-+ * file is missing or damaged, see the license at "http://www.cups.org/".
-+ *
-+ * This file is subject to the Apple OS-Developed Software exception.
-+ *
-+ * Contents:
-+ *
-+ * print_device() - Print a file to a USB device.
-+ * list_devices() - List all USB devices.
-+ */
-+
-+/*
-+ * Include necessary headers.
-+ */
-+
-+#include <sys/select.h>
-+
-+/*
-+ * Include the two USB implementations used under Linux ...
-+ */
-+
-+#include "usb-libusb.c"
-+#include "usb-unix.c"
-+
-+/*
-+ * 'print_device()' - Print a file to a USB device.
-+ */
-+
-+int /* O - Exit status */
-+print_device(const char *uri, /* I - Device URI */
-+ const char *hostname, /* I - Hostname/manufacturer */
-+ const char *resource, /* I - Resource/modelname */
-+ char *options, /* I - Device options/serial number */
-+ int print_fd, /* I - File descriptor to print */
-+ int copies, /* I - Copies to print */
-+ int argc, /* I - Number of command-line arguments (6 or 7) */
-+ char *argv[]) /* I - Command-line arguments */
-+{
-+ int result;
-+ for(;;)
-+ {
-+ result = print_device_unix(uri, hostname, resource, options, print_fd,
-+ copies, argc, argv);
-+ if (result == -1)
-+ {
-+ result = print_device_libusb(uri, hostname, resource, options, print_fd,
-+ copies, argc, argv);
-+ if (result == -1)
-+ sleep(5);
-+ else
-+ return(result);
-+ }
-+ else
-+ return(result);
-+ }
-+}
-+
-+/*
-+ * 'list_devices()' - List all USB devices.
-+ */
-+
-+void
-+list_devices(void)
-+{
-+ /* Try both discovery methods, each device will appear only under one
-+ of them */
-+ list_devices_libusb();
-+ list_devices_unix();
-+}
-+
-+
-+/*
-+ * End of "$Id: usb-hybrid.c 8807 2009-08-31 18:45:43Z mike $".
-+ */
-diff -urNad cups-1.4.3~/backend/usb-libusb.c cups-1.4.3/backend/usb-libusb.c
---- cups-1.4.3~/backend/usb-libusb.c 2009-09-11 22:03:31.000000000 +0200
-+++ cups-1.4.3/backend/usb-libusb.c 2010-04-09 15:56:04.345707078 +0200
-@@ -13,16 +13,16 @@
- *
- * Contents:
- *
-- * list_devices() - List the available printers.
-- * print_device() - Print a file to a USB device.
-+ * list_devices_libusb() - List the available printers.
-+ * print_device_libusb() - Print a file to a USB device.
- * close_device() - Close the connection to the USB printer.
- * find_device() - Find or enumerate USB printers.
- * get_device_id() - Get the IEEE-1284 device ID for the printer.
- * list_cb() - List USB printers for discovery.
- * make_device_uri() - Create a device URI for a USB printer.
-- * open_device() - Open a connection to the USB printer.
-+ * open_device_libusb() - Open a connection to the USB printer.
- * print_cb() - Find a USB printer for printing.
-- * side_cb() - Handle side-channel requests.
-+ * side_cb_libusb() - Handle side-channel requests.
- */
-
- /*
-@@ -65,30 +65,30 @@
- static char *make_device_uri(usb_printer_t *printer,
- const char *device_id,
- char *uri, size_t uri_size);
--static int open_device(usb_printer_t *printer, int verbose);
-+static int open_device_libusb(usb_printer_t *printer, int verbose);
- static int print_cb(usb_printer_t *printer, const char *device_uri,
- const char *device_id, const void *data);
--static ssize_t side_cb(usb_printer_t *printer, int print_fd);
-+static ssize_t side_cb_libusb(usb_printer_t *printer, int print_fd);
-
-
- /*
-- * 'list_devices()' - List the available printers.
-+ * 'list_devices_libusb()' - List the available printers.
- */
-
- void
--list_devices(void)
-+list_devices_libusb(void)
- {
-- fputs("DEBUG: list_devices\n", stderr);
-+ fputs("DEBUG: list_devices_libusb\n", stderr);
- find_device(list_cb, NULL);
- }
-
-
- /*
-- * 'print_device()' - Print a file to a USB device.
-+ * 'print_device_libusb()' - Print a file to a USB device.
- */
-
- int /* O - Exit status */
--print_device(const char *uri, /* I - Device URI */
-+print_device_libusb(const char *uri, /* I - Device URI */
- const char *hostname, /* I - Hostname/manufacturer */
- const char *resource, /* I - Resource/modelname */
- char *options, /* I - Device options/serial number */
-@@ -105,19 +105,23 @@
- struct pollfd pfds[2]; /* Poll descriptors */
-
-
-- fputs("DEBUG: print_device\n", stderr);
-+ fputs("DEBUG: print_device_libusb\n", stderr);
-
- /*
- * Connect to the printer...
- */
-
-+#if defined(__linux) || defined(__sun) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
-+ if ((printer = find_device(print_cb, uri)) == NULL)
-+ return(-1);
-+#else
- while ((printer = find_device(print_cb, uri)) == NULL)
- {
- _cupsLangPuts(stderr,
- _("INFO: Waiting for printer to become available...\n"));
- sleep(5);
- }
--
-+#endif
-
- /*
- * If we are printing data from a print driver on stdin, ignore SIGTERM
-@@ -189,7 +193,7 @@
-
- if (pfds[1].revents & (POLLIN | POLLHUP))
- {
-- if ((bytes = side_cb(printer, print_fd)) < 0)
-+ if ((bytes = side_cb_libusb(printer, print_fd)) < 0)
- pfds[1].events = 0; /* Filter has gone away... */
- else
- tbytes += bytes;
-@@ -359,7 +363,7 @@
- printer.iface = iface;
- printer.handle = NULL;
-
-- if (!open_device(&printer, data != NULL))
-+ if (!open_device_libusb(&printer, data != NULL))
- {
- if (!get_device_id(&printer, device_id, sizeof(device_id)))
- {
-@@ -583,6 +587,14 @@
- mfg = tempmfg;
- }
-
-+ if (!strncasecmp(mdl, mfg, strlen(mfg)))
-+ {
-+ mdl += strlen(mfg);
-+
-+ while (isspace(*mdl & 255))
-+ mdl ++;
-+ }
-+
- /*
- * Generate the device URI from the manufacturer, model, serial number,
- * and interface number...
-@@ -611,11 +623,11 @@
-
-
- /*
-- * 'open_device()' - Open a connection to the USB printer.
-+ * 'open_device_libusb()' - Open a connection to the USB printer.
- */
-
- static int /* O - 0 on success, -1 on error */
--open_device(usb_printer_t *printer, /* I - Printer */
-+open_device_libusb(usb_printer_t *printer, /* I - Printer */
- int verbose) /* I - Update connecting-to-device state? */
- {
- int number; /* Configuration/interface/altset numbers */
-@@ -733,16 +745,73 @@
- const char *device_id, /* I - IEEE-1284 device ID */
- const void *data) /* I - User data (make, model, S/N) */
- {
-- return (!strcmp((char *)data, device_uri));
-+ char *uri = (char *)data,
-+ *str1,
-+ *str2,
-+ buf[255],
-+ requested_uri[1024];
-+
-+ /* Work on a copy of uri */
-+ strncpy(requested_uri, uri, sizeof(requested_uri));
-+ requested_uri[sizeof(requested_uri) - 1] = '\0';
-+
-+ /*
-+ * libusb-discovered URIs can have an "interface" specification and this
-+ * never happens for usblp-discovered URIs, so remove the "interface"
-+ * specification from the URI which we are checking currently. This way a
-+ * queue for a usblp-discovered printer can now be accessed via libusb
-+ */
-+ if (((str1 = strstr(requested_uri, "interface=")) == NULL) &&
-+ ((str2 = strstr(device_uri, "interface=")) != NULL))
-+ {
-+ *(str2 - 1) = '\0';
-+ }
-+
-+ /*
-+ * Old URI with "serial=?". Cut this part off and consider this as
-+ * an URI without serial number
-+ */
-+ if ((str1 = strstr(requested_uri, "serial=?")) != NULL)
-+ *(str1 - 1) = '\0';
-+
-+ /*
-+ * Old URI without serial number. Match it also with URIs with serial
-+ * number
-+ */
-+ if (((str1 = strstr(requested_uri, "serial=")) == NULL) &&
-+ ((str2 = strstr(device_uri, "serial=")) != NULL))
-+ *(str2 - 1) = '\0';
-+
-+ /*
-+ * libusb-discovered URIs can have a "serial" specification when the
-+ * usblp-discovered URI for the same printer does not have one, as
-+ * with libusb we can discover serial numbers also with other methods
-+ * than only via the device ID. Therefore we accept also a
-+ * usblp-discovered printer without serial number as a match. This we
-+ * do by removing the serial number from the queue's (libusb-discovered)
-+ * URI before comparing. Also warn the user because of the incapability
-+ * of the usblp-based access to distinguish printers by the serial
-+ * number.
-+ */
-+ if (((str1 = strstr(requested_uri, "serial=")) == NULL) &&
-+ ((str2 = strstr(device_uri, "serial=")) != NULL))
-+ {
-+ *(str2 - 1) = '\0';
-+ if (backendGetMakeModel(device_id, buf, sizeof(buf)) == 0)
-+ fprintf(stderr, "WARNING: If you have more than one %s printer connected to this machine, please make sure that the \"usblp\" kernel module is always unloaded (and blacklisted) and re-create the queues for these printers. Otherwise CUPS will not be able to distinguish them.\n",
-+ buf);
-+ }
-+
-+ return (!strcmp(requested_uri, device_uri));
- }
-
-
- /*
-- * 'side_cb()' - Handle side-channel requests.
-+ * 'side_cb_libusb()' - Handle side-channel requests.
- */
-
- static ssize_t /* O - Number of bytes written */
--side_cb(usb_printer_t *printer, /* I - Printer */
-+side_cb_libusb(usb_printer_t *printer, /* I - Printer */
- int print_fd) /* I - File to print */
- {
- ssize_t bytes, /* Bytes read/written */
-diff -urNad cups-1.4.3~/backend/usb-unix.c cups-1.4.3/backend/usb-unix.c
---- cups-1.4.3~/backend/usb-unix.c 2009-12-08 03:13:42.000000000 +0100
-+++ cups-1.4.3/backend/usb-unix.c 2010-04-09 15:56:30.799666933 +0200
-@@ -18,10 +18,10 @@
- *
- * Contents:
- *
-- * print_device() - Print a file to a USB device.
-- * list_devices() - List all USB devices.
-- * open_device() - Open a USB device...
-- * side_cb() - Handle side-channel requests...
-+ * print_device_unix() - Print a file to a USB device.
-+ * list_devices_unix() - List all USB devices.
-+ * open_device_unix() - Open a USB device...
-+ * side_cb_unix() - Handle side-channel requests...
- */
-
- /*
-@@ -35,17 +35,17 @@
- * Local functions...
- */
-
--static int open_device(const char *uri, int *use_bc);
--static int side_cb(int print_fd, int device_fd, int snmp_fd,
-+static int open_device_unix(const char *uri, int *use_bc);
-+static int side_cb_unix(int print_fd, int device_fd, int snmp_fd,
- http_addr_t *addr, int use_bc);
-
-
- /*
-- * 'print_device()' - Print a file to a USB device.
-+ * 'print_device_unix()' - Print a file to a USB device.
- */
-
- int /* O - Exit status */
--print_device(const char *uri, /* I - Device URI */
-+print_device_unix(const char *uri, /* I - Device URI */
- const char *hostname, /* I - Hostname/manufacturer */
- const char *resource, /* I - Resource/modelname */
- char *options, /* I - Device options/serial number */
-@@ -102,7 +102,7 @@
- strncasecmp(hostname, "Minolta", 7);
- #endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */
-
-- if ((device_fd = open_device(uri, &use_bc)) == -1)
-+ if ((device_fd = open_device_unix(uri, &use_bc)) == -1)
- {
- if (getenv("CLASS") != NULL)
- {
-@@ -132,6 +132,10 @@
- _("INFO: Printer busy; will retry in 10 seconds...\n"));
- sleep(10);
- }
-+#ifdef HAVE_USB_H
-+ else
-+ return (-1);
-+#else
- else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
- errno == ENODEV)
- {
-@@ -147,6 +151,7 @@
- resource, strerror(errno));
- return (CUPS_BACKEND_FAILED);
- }
-+#endif
- }
- }
- while (device_fd < 0);
-@@ -190,7 +195,7 @@
- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, NULL);
-
- #else
-- tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
-+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb_unix);
- #endif /* __sun */
-
- if (print_fd != 0 && tbytes >= 0)
-@@ -214,11 +219,11 @@
-
-
- /*
-- * 'list_devices()' - List all USB devices.
-+ * 'list_devices_unix()' - List all USB devices.
- */
-
- void
--list_devices(void)
-+list_devices_unix(void)
- {
- #ifdef __linux
- int i; /* Looping var */
-@@ -320,11 +325,11 @@
-
-
- /*
-- * 'open_device()' - Open a USB device...
-+ * 'open_device_unix()' - Open a USB device...
- */
-
- static int /* O - File descriptor or -1 on error */
--open_device(const char *uri, /* I - Device URI */
-+open_device_unix(const char *uri, /* I - Device URI */
- int *use_bc) /* O - Set to 0 for unidirectional */
- {
- int fd; /* File descriptor */
-@@ -357,9 +362,12 @@
- char device[255], /* Device filename */
- device_id[1024], /* Device ID string */
- make_model[1024], /* Make and model */
-- device_uri[1024]; /* Device URI string */
--
-+ device_uri[1024], /* Device URI string */
-+ requested_uri[1024], /* Device URI string */
-+ *str1,
-+ *str2;
-
-+
- /*
- * Find the correct USB device...
- */
-@@ -407,7 +415,55 @@
- device_uri[0] = '\0';
- }
-
-- if (!strcmp(uri, device_uri))
-+ /* Work on a copy of uri */
-+ strncpy(requested_uri, uri, sizeof(requested_uri));
-+ requested_uri[sizeof(requested_uri) - 1] = '\0';
-+
-+ /*
-+ * libusb-discovered URIs can have an "interface" specification and this
-+ * never happens for usblp-discovered URIs, so remove the "interface"
-+ * specification from the URI of the print queue. This way a queue for
-+ * a libusb-discovered printer can now be accessed via the usblip kernel
-+ * module
-+ */
-+ if ((str1 = strstr(requested_uri, "interface=")) != NULL)
-+ *(str1 - 1) = '\0';
-+
-+ /*
-+ * Old URI with "serial=?". Cut this part off and consider this as
-+ * an URI without serial number
-+ */
-+ if ((str1 = strstr(requested_uri, "serial=?")) != NULL)
-+ *(str1 - 1) = '\0';
-+
-+ /*
-+ * Old URI without serial number. Match it also with URIs with serial
-+ * number
-+ */
-+ if (((str1 = strstr(requested_uri, "serial=")) == NULL) &&
-+ ((str2 = strstr(device_uri, "serial=")) != NULL))
-+ *(str2 - 1) = '\0';
-+
-+ /*
-+ * libusb-discovered URIs can have a "serial" specification when the
-+ * usblp-discovered URI for the same printer does not have one, as
-+ * with libusb we can discover serial numbers also with other methods
-+ * than only via the device ID. Therefore we accept also a
-+ * usblp-discovered printer without serial number as a match. This we
-+ * do by removing the serial number from the queue's (libusb-discovered)
-+ * URI before comparing. Also warn the user because of the incapability
-+ * of the usblp-based access to distinguish printers by the serial
-+ * number.
-+ */
-+ if (((str1 = strstr(requested_uri, "serial=")) != NULL) &&
-+ ((str2 = strstr(device_uri, "serial=")) == NULL))
-+ {
-+ *(str1 - 1) = '\0';
-+ fprintf(stderr, "WARNING: If you have more than one %s printer connected to this machine, please unload (and blacklist) the \"usblp\" kernel module as otherwise CUPS will not be able to distinguish your printers.\n",
-+ make_model);
-+ }
-+
-+ if (!strcmp(requested_uri, device_uri))
- {
- /*
- * Yes, return this file descriptor...
-@@ -433,10 +489,14 @@
- */
-
- if (busy)
-+ {
- _cupsLangPuts(stderr,
- _("INFO: Printer busy; will retry in 5 seconds...\n"));
-
-- sleep(5);
-+ sleep(5);
-+ }
-+ else
-+ return -1;
- }
- }
- #elif defined(__sun) && defined(ECPPIOC_GETDEVID)
-@@ -557,11 +617,11 @@
-
-
- /*
-- * 'side_cb()' - Handle side-channel requests...
-+ * 'side_cb_unix()' - Handle side-channel requests...
- */
-
- static int /* O - 0 on success, -1 on error */
--side_cb(int print_fd, /* I - Print file */
-+side_cb_unix(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int snmp_fd, /* I - SNMP socket (unused) */
- http_addr_t *addr, /* I - Device address (unused) */
-diff -urNad cups-1.4.3~/backend/usb.c cups-1.4.3/backend/usb.c
---- cups-1.4.3~/backend/usb.c 2008-06-24 03:28:36.000000000 +0200
-+++ cups-1.4.3/backend/usb.c 2010-04-09 15:56:04.345707078 +0200
-@@ -56,7 +56,7 @@
- */
-
- #ifdef HAVE_USB_H
--# include "usb-libusb.c"
-+# include "usb-hybrid.c"
- #elif defined(__APPLE__)
- # include "usb-darwin.c"
- #elif defined(__linux) || defined(__sun) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
diff --git a/source/a/cups/usb-backend-reset-after-job-only-for-specific-devices.patch b/source/a/cups/usb-backend-reset-after-job-only-for-specific-devices.patch
new file mode 100644
index 000000000..dcf91c833
--- /dev/null
+++ b/source/a/cups/usb-backend-reset-after-job-only-for-specific-devices.patch
@@ -0,0 +1,74 @@
+--- backend/usb-libusb.c.orig 2012-07-16 19:10:55.000000000 +0200
++++ backend/usb-libusb.c 2012-08-06 11:01:58.034150159 +0200
+@@ -70,7 +70,7 @@
+ read_endp, /* Read endpoint */
+ protocol, /* Protocol: 1 = Uni-di, 2 = Bi-di. */
+ usblp_attached, /* "usblp" kernel module attached? */
+- opened_for_job; /* Set to 1 by print_device() */
++ reset_after_job; /* Set to 1 by print_device() */
+ unsigned int quirks; /* Quirks flags */
+ struct libusb_device_handle *handle; /* Open handle to device */
+ } usb_printer_t;
+@@ -122,6 +122,8 @@
+ #define USBLP_QUIRK_USB_INIT 0x2 /* needs vendor USB init string */
+ #define USBLP_QUIRK_BAD_CLASS 0x4 /* descriptor uses vendor-specific
+ Class or SubClass */
++#define USBLP_QUIRK_RESET 0x4000 /* After printing do a reset
++ for clean-up */
+ #define USBLP_QUIRK_NO_REATTACH 0x8000 /* After printing we cannot re-attach
+ the usblp kernel module */
+
+@@ -147,9 +149,11 @@
+ { 0x04b8, 0x0202, USBLP_QUIRK_BAD_CLASS }, /* Seiko Epson Receipt
+ Printer M129C */
+ { 0x067b, 0x2305, USBLP_QUIRK_BIDIR |
+- USBLP_QUIRK_NO_REATTACH },
++ USBLP_QUIRK_NO_REATTACH |
++ USBLP_QUIRK_RESET },
+ /* Prolific Technology, Inc. PL2305 Parallel Port
+ (USB -> Parallel adapter) */
++ { 0x04e8, 0x0000, USBLP_QUIRK_RESET }, /* All Samsung devices */
+ { 0, 0 }
+ };
+
+@@ -256,7 +260,12 @@
+ }
+
+ g.print_fd = print_fd;
+- g.printer->opened_for_job = 1;
++
++ /*
++ * Some devices need a reset after finishing a job, these devices are
++ * marked with the USBLP_QUIRK_RESET quirk.
++ */
++ g.printer->reset_after_job = (g.printer->quirks & USBLP_QUIRK_RESET ? 1 : 0);
+
+ /*
+ * If we are printing data from a print driver on stdin, ignore SIGTERM
+@@ -772,7 +781,7 @@
+ * Reset the device to clean up after the job
+ */
+
+- if (printer->opened_for_job == 1)
++ if (printer->reset_after_job == 1)
+ {
+ if ((errcode = libusb_reset_device(printer->handle)) < 0)
+ fprintf(stderr,
+@@ -1288,7 +1297,7 @@
+ }
+
+ printer->usblp_attached = 0;
+- printer->opened_for_job = 0;
++ printer->reset_after_job = 0;
+
+ if (verbose)
+ fputs("STATE: +connecting-to-device\n", stderr);
+@@ -1586,7 +1595,7 @@
+ for (i = 0; quirk_printers[i].vendorId; i++)
+ {
+ if (vendor == quirk_printers[i].vendorId &&
+- product == quirk_printers[i].productId)
++ (product == 0x0000 || product == quirk_printers[i].productId))
+ return quirk_printers[i].quirks;
+ }
+ return 0;
diff --git a/source/a/cxxlibs/cxxlibs.SlackBuild b/source/a/cxxlibs/cxxlibs.SlackBuild
index eff5d26c3..b795d2738 100755
--- a/source/a/cxxlibs/cxxlibs.SlackBuild
+++ b/source/a/cxxlibs/cxxlibs.SlackBuild
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
PKGNAM=cxxlibs
-VERSION=${VERSION:-6.0.14}
+VERSION=${VERSION:-6.0.17}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/a/cxxlibs/symlinks-to-tracked-libs b/source/a/cxxlibs/symlinks-to-tracked-libs
index e4f67cf60..39ff58e36 100644
--- a/source/a/cxxlibs/symlinks-to-tracked-libs
+++ b/source/a/cxxlibs/symlinks-to-tracked-libs
@@ -1,5 +1,2 @@
-/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.5
/usr/lib/libstdc++.so.6
diff --git a/source/a/dbus/dbus.SlackBuild b/source/a/dbus/dbus.SlackBuild
index b11340cd9..bd6acd99a 100755
--- a/source/a/dbus/dbus.SlackBuild
+++ b/source/a/dbus/dbus.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2007-2010 Robby Workman, Northport, Alabama, USA
-# Copyright 2007-2010 Patrick Volkerding, Sebeka, MN, USA
+# Copyright 2007-2012 Patrick Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=dbus
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -69,6 +69,7 @@ find . \
-exec chmod 644 {} \;
zcat $CWD/dbus-1.4.x-allow_root_globally.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/dbus.set.home.diff.gz | patch -p1 --verbose || exit 1
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -80,9 +81,11 @@ CXXFLAGS="$SLKCFLAGS" \
--mandir=/usr/man \
--infodir=/usr/info \
--docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-doxygen-docs \
--enable-shared=yes \
--enable-static=no \
--enable-inotify \
+ --enable-x11-autolaunch \
--with-system-pid-file=/var/run/dbus/dbus.pid \
--with-system-socket=/var/run/dbus/system_bus_socket \
--with-init-scripts=slackware \
@@ -94,8 +97,20 @@ 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
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; 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
# Install a custom init script for dbus - the included one is not good for us
rm $PKG/etc/rc.d/*
@@ -112,6 +127,14 @@ cp -a \
$PKG/usr/doc/$PKGNAM-$VERSION
find $PKG/usr/doc/$PKGNAM-$VERSION -type f -exec chmod 0644 {} \;
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
diff --git a/source/a/dbus/dbus.set.home.diff b/source/a/dbus/dbus.set.home.diff
new file mode 100644
index 000000000..5c0f7976a
--- /dev/null
+++ b/source/a/dbus/dbus.set.home.diff
@@ -0,0 +1,22 @@
+Set HOME environment variable when switching user.
+
+2011-08-05 Egor Y. Egorov
+
+References:
+https://bugs.freedesktop.org/show_bug.cgi?id=39857
+https://bugs.kde.org/show_bug.cgi?id=249217#c27
+
+diff --git a/bus/activation-helper.c b/bus/activation-helper.c
+index baba8f0..b75ea7c 100644
+--- a/bus/activation-helper.c
++++ b/bus/activation-helper.c
+@@ -344,6 +344,8 @@ switch_user (char *user, DBusError *error)
+ "cannot setuid user %i", pw->pw_uid);
+ return FALSE;
+ }
++
++ _dbus_setenv ("HOME", pw->pw_dir);
+ #endif
+ return TRUE;
+ }
+
diff --git a/source/a/dbus/rc.messagebus b/source/a/dbus/rc.messagebus
index 7b27eb599..fb035af54 100644
--- a/source/a/dbus/rc.messagebus
+++ b/source/a/dbus/rc.messagebus
@@ -16,7 +16,8 @@
PIDFILE=/var/run/dbus/dbus.pid
start() {
- if ! ps axc | grep -w dbus-daemon ; then
+ mkdir -p $(dirname $PIDFILE)
+ if ! ps -u messagebus -c | grep -wq 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"
@@ -48,10 +49,10 @@ reload() {
}
status() {
- if ps axc | grep -wq dbus-daemon 2>/dev/null ; then
- echo "dbus-daemon is running."
+ if ps -u messagebus -c | grep -wq dbus-daemon; then
+ echo "System dbus-daemon is running."
else
- echo "dbus is stopped."
+ echo "System dbus-daemon is stopped."
fi
}
@@ -66,6 +67,7 @@ case "$1" in
restart)
stop
start
+ echo "You may need to restart your Window Manager to reconnect to the system dbus."
;;
reload)
reload
diff --git a/source/a/dcron/crontab.c.O_EXCL.diff b/source/a/dcron/crontab.c.O_EXCL.diff
index 7acd5ce29..f705487ec 100644
--- a/source/a/dcron/crontab.c.O_EXCL.diff
+++ b/source/a/dcron/crontab.c.O_EXCL.diff
@@ -1,5 +1,6 @@
---- ./crontab.c.orig 2010-01-18 09:27:31.000000000 -0600
-+++ ./crontab.c 2010-02-11 16:38:03.000000000 -0600
+diff -Nur dcron-4.5.orig//crontab.c dcron-4.5/crontab.c
+--- dcron-4.5.orig//crontab.c 2011-05-01 07:22:09.000000000 -0500
++++ dcron-4.5/crontab.c 2011-08-22 16:26:46.778225447 -0500
@@ -199,7 +199,7 @@
* Read from repFd, write to fd for "$CDir/$USER.new"
*/
diff --git a/source/a/dcron/crontab.root b/source/a/dcron/crontab.root
index b5b425628..5b0ce8cbf 100644
--- a/source/a/dcron/crontab.root
+++ b/source/a/dcron/crontab.root
@@ -1,7 +1,7 @@
# If you don't want the output of a cron job mailed to you, you have to direct
# any output to /dev/null. We'll do this here since these jobs should run
-# properly on a newly installed system, but if they don't the average newbie
-# might get quite perplexed about getting strange mail every 5 minutes. :^)
+# properly on a newly installed system. If a script fails, run-parts will
+# mail a notice to root.
#
# Run the hourly, daily, weekly, and monthly cron jobs.
# Jobs that need different timing may be entered into the crontab as before,
diff --git a/source/a/dcron/dcron.SlackBuild b/source/a/dcron/dcron.SlackBuild
index f67f869ff..243c0cc80 100755
--- a/source/a/dcron/dcron.SlackBuild
+++ b/source/a/dcron/dcron.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=${VERSION:-$(echo dcron-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -70,10 +70,7 @@ zcat $CWD/defs.h.TMPDIR.diff.gz | patch -p1 || exit 1
# using 'crontab -', exits with control-c, and then crontab refuses to
# overwrite the junk file. It would be better if dcron would wipe
# the junk file in the event it were not closed correctly, but oh well.
-zcat $CWD/patches/crontab.c.O_EXCL.diff.gz | patch -p1 || exit 1
-
-# Get the directory names under /var/spool/ right in the manpages:
-zcat $CWD/dcron.manpage.paths.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/crontab.c.O_EXCL.diff.gz | patch -p1 || exit 1
CFLAGS+="$SLKCFLAGS" make || exit 1
strip --strip-unneeded crond crontab
diff --git a/source/a/dcron/dcron.manpage.paths.diff b/source/a/dcron/dcron.manpage.paths.diff
deleted file mode 100644
index afd9c3d16..000000000
--- a/source/a/dcron/dcron.manpage.paths.diff
+++ /dev/null
@@ -1,65 +0,0 @@
---- ./crond.8.orig 2010-01-18 09:29:25.000000000 -0600
-+++ ./crond.8 2010-02-11 17:22:36.000000000 -0600
-@@ -17,13 +17,13 @@
- .RE
- .TP
- .B -c dir
--directory of per-user crontabs (defaults to /var/spool/cron)
-+directory of per-user crontabs (defaults to /var/spool/cron/crontabs)
- .RS
- .RE
- .TP
- .B -t dir
- directory of timestamps for \@freq and FREQ=\&... jobs (defaults to
--/var/spool/cronstamps)
-+/var/spool/cron/cronstamps)
- .RS
- .RE
- .TP
-@@ -172,7 +172,7 @@
- \f[B]crontab\f[] notifies \f[B]crond\f[] that a user's crontab file
- has been modified (or created or deleted) through the
- \[lq]cron.update\[rq] file, which resides in the per-user crontabs
--directory (usually /var/spool/cron).
-+directory (usually /var/spool/cron/crontabs).
- \f[B]crontab\f[] appends the filename of the modified crontab file
- to \[lq]cron.update\[rq]; and \f[B]crond\f[] inspects this file to
- determine when to reparse or otherwise update its internal list of
-@@ -180,7 +180,7 @@
- .PP
- Whenever a \[lq]cron.update\[rq] file is seen, \f[B]crond\f[] also
- re-reads timestamp files from its timestamp directory (usually
--/var/spool/cronstamps).
-+/var/spool/cron/cronstamps).
- Normally these will just mirror \f[B]crond\f[]'s own internal
- representations, but this mechanism could be used to manually
- notify \f[B]crond\f[] that you've externally updated the
-@@ -210,7 +210,7 @@
- crontab to /etc/cron.d/foo.
- .PP
- The superuser has a per-user crontab along with other users.
--It usually resides at /var/spool/cron/root.
-+It usually resides at /var/spool/cron/crontabs/root.
- .PP
- Users can only have a crontab if they have an entry in /etc/passwd;
- however they do not need to have login shell privileges.
---- ./crontab.1.orig 2010-01-18 09:29:25.000000000 -0600
-+++ ./crontab.1 2010-02-11 17:23:13.000000000 -0600
-@@ -45,7 +45,7 @@
- different user and/or crontab directory.
- .PP
- The superuser also has his or her own per-user crontab, saved as
--/var/spool/cron/root.
-+/var/spool/cron/crontabs/root.
- .PP
- Unlike other cron daemons, this crond/crontab package doesn't try
- to do everything under the sun.
-@@ -117,7 +117,7 @@
- The formats \@hourly, \@daily, \@weekly, \@monthly, and \@yearly
- need to update timestamp files when their jobs have been run.
- The timestamp files are saved as
--/var/spool/cronstamps/user.jobname.
-+/var/spool/cron/cronstamps/user.jobname.
- So for all of these formats, the cron command needs a jobname,
- given by prefixing the command with \f[B]ID=jobname\f[].
- (This syntax was chosen to maximize the chance that our crontab
diff --git a/source/a/dcron/defs.h.TMPDIR.diff b/source/a/dcron/defs.h.TMPDIR.diff
index 6263843b2..698f4ebc0 100644
--- a/source/a/dcron/defs.h.TMPDIR.diff
+++ b/source/a/dcron/defs.h.TMPDIR.diff
@@ -1,5 +1,6 @@
---- ./defs.h.orig 2010-01-15 20:17:04.000000000 -0600
-+++ ./defs.h 2010-02-11 16:39:33.000000000 -0600
+diff -Nur dcron-4.5.orig//defs.h dcron-4.5/defs.h
+--- dcron-4.5.orig//defs.h 2011-05-01 07:22:09.000000000 -0500
++++ dcron-4.5/defs.h 2011-08-22 16:28:35.343956248 -0500
@@ -73,7 +73,7 @@
#define CRONUPDATE "cron.update"
#endif
diff --git a/source/a/dcron/run-parts b/source/a/dcron/run-parts
index 247d8c6e1..65c778f36 100644
--- a/source/a/dcron/run-parts
+++ b/source/a/dcron/run-parts
@@ -39,10 +39,7 @@ for SCRIPT in $1/* ; do
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
+ $SCRIPT || echo "$SCRIPT failed."
fi
done
diff --git a/source/a/e2fsprogs/e2fsprogs-1.42.6.tar.sign b/source/a/e2fsprogs/e2fsprogs-1.42.6.tar.sign
new file mode 100644
index 000000000..6558e77e2
--- /dev/null
+++ b/source/a/e2fsprogs/e2fsprogs-1.42.6.tar.sign
Binary files differ
diff --git a/source/a/e2fsprogs/e2fsprogs.SlackBuild b/source/a/e2fsprogs/e2fsprogs.SlackBuild
index a14d8e118..3ba78e554 100755
--- a/source/a/e2fsprogs/e2fsprogs.SlackBuild
+++ b/source/a/e2fsprogs/e2fsprogs.SlackBuild
@@ -20,18 +20,23 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Modified 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+
VERSION=${VERSION:-$(echo e2fsprogs*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) export ARCH=$MARCH ;;
esac
fi
@@ -44,11 +49,19 @@ elif [ "$ARCH" = "s390" ]; then
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-e2fsprogs
@@ -81,7 +94,7 @@ CFLAGS="$SLKCFLAGS" \
--disable-libblkid \
--disable-libuuid \
--disable-uuidd \
- --build=$ARCH-slackware-linux
+ --build=$TARGET
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
@@ -125,6 +138,7 @@ EOF
chmod 0755 fsck.ext2
# Why won't symlinks work here? --RW
# Because $0 will always be "fsck.ext2" in that case. --PJV
+ # rworkman is correct, so ignore the previous two comments :) --PJV
cp -a fsck.ext2 fsck.ext3
cp -a fsck.ext2 fsck.ext4
cp -a fsck.ext2 fsck.ext4dev
diff --git a/source/a/eject/eject.SlackBuild b/source/a/eject/eject.SlackBuild
index c637ef553..94b0ccf76 100755
--- a/source/a/eject/eject.SlackBuild
+++ b/source/a/eject/eject.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=eject
VERSION=${VERSION:-2.1.5}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -59,6 +59,9 @@ cd ${PKGNAM}
# Patch a problem with spaces in the pathname:
zcat $CWD/eject.spaces.diff.gz | patch -p0 --verbose || exit 1
+# Fix "eject -T":
+zcat $CWD/eject_for_mac.patch.gz | patch -p4 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/a/eject/eject_for_mac.patch b/source/a/eject/eject_for_mac.patch
new file mode 100644
index 000000000..c86e3c17b
--- /dev/null
+++ b/source/a/eject/eject_for_mac.patch
@@ -0,0 +1,12 @@
+diff -Nru /tmp/6rrvEn4EMT/eject-2.1.4/eject.c /tmp/Jon9ZzjSLN/eject-2.1.4/eject.c
+--- /tmp/6rrvEn4EMT/eject-2.1.4/eject.c 2007-03-12 14:15:26.000000000 +0100
++++ /tmp/Jon9ZzjSLN/eject-2.1.4/eject.c 2007-03-12 14:15:28.000000000 +0100
+@@ -552,7 +552,7 @@
+ gettimeofday(&time_start, NULL);
+
+ /* Send the CDROMEJECT command to the device. */
+- if (ioctl(fd, CDROMEJECT, 0) < 0) {
++ if (ioctl(fd, CDROMEJECT, 0) < 0 && errno != EIO) {
+ perror("ioctl");
+ exit(1);
+ }
diff --git a/source/a/etc/etc.SlackBuild b/source/a/etc/etc.SlackBuild
index d4508f2b5..5db87ea7f 100755
--- a/source/a/etc/etc.SlackBuild
+++ b/source/a/etc/etc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,7 +20,7 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=13.013
+VERSION=14.0
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/a/file/file.short.diff b/source/a/file/file.short.diff
index be47218c5..0f6a0e7b6 100644
--- a/source/a/file/file.short.diff
+++ b/source/a/file/file.short.diff
@@ -1,12 +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
+diff -Nur file-5.08.orig//src/readelf.h file-5.08/src/readelf.h
+--- file-5.08.orig//src/readelf.h 2011-08-03 09:45:16.000000000 -0500
++++ file-5.08/src/readelf.h 2011-08-23 21:10:04.228054614 -0500
+@@ -239,7 +239,7 @@
+ * word[2]: minor version
+ * word[3]: tiny version
+ */
+-#define NT_GNU_VERSION 1
++#define NT_GNU_VERSION 0
/* GNU OS tags */
- #define GNU_OS_LINUX 0
+ #define GNU_OS_LINUX 0
diff --git a/source/a/file/slack-desc b/source/a/file/slack-desc
index 96be26176..d405cb865 100644
--- a/source/a/file/slack-desc
+++ b/source/a/file/slack-desc
@@ -11,7 +11,7 @@ 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: Home FTP site: ftp://ftp.astron.com/pub/file/
file:
file:
file:
diff --git a/source/a/gettext/gettext-tools.SlackBuild b/source/a/gettext/gettext-tools.SlackBuild
index 0ed840dcc..8b3154b0c 100755
--- a/source/a/gettext/gettext-tools.SlackBuild
+++ b/source/a/gettext/gettext-tools.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=0.18.1.1
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j6 "}
diff --git a/source/a/gettext/gettext.SlackBuild b/source/a/gettext/gettext.SlackBuild
index acaf1df14..cd86bf7eb 100755
--- a/source/a/gettext/gettext.SlackBuild
+++ b/source/a/gettext/gettext.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=0.18.1.1
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-3}
NUMJOBS=${NUMJOBS:-" -j6 "}
diff --git a/source/a/gdisk/gdisk.SlackBuild b/source/a/gptfdisk/gptfdisk.SlackBuild
index 841332dd5..6c6f5fc94 100755
--- a/source/a/gdisk/gdisk.SlackBuild
+++ b/source/a/gptfdisk/gptfdisk.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
-# Copyright (c) 2011 Eric Hameleers, Eindhoven, NL
-# Copyright 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011 Eric Hameleers, Eindhoven, NL
+# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,9 +22,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=gdisk
+PKGNAM=gptfdisk
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -62,7 +62,11 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
-cd $PKGNAM-$VERSION
+cd $PKGNAM-$VERSION || exit 1
+
+# Remove dependency on icu4c by switching from the uncommented Makefile
+# lines to the commented ones:
+zcat $CWD/gptfdisk.remove.icu4c.dep.diff.gz | patch -p1 || exit 1
chown -R root:root .
find . \
@@ -77,7 +81,7 @@ export CFLAGS="$SLKCFLAGS"
make || exit 1
# Manually install the stuff:
-for FILE in gdisk sgdisk ; do
+for FILE in cgdisk fixparts gdisk sgdisk ; do
install -D $FILE $PKG/sbin/$FILE
install -D $FILE.8 $PKG/usr/man/man8/$FILE.8
done
@@ -86,6 +90,7 @@ done
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
COPYING* NEWS README* \
+ gdisk_test.sh \
$PKG/usr/doc/$PKGNAM-$VERSION
# Strip binaries:
diff --git a/source/a/gptfdisk/gptfdisk.remove.icu4c.dep.diff b/source/a/gptfdisk/gptfdisk.remove.icu4c.dep.diff
new file mode 100644
index 000000000..ce5d7a8af
--- /dev/null
+++ b/source/a/gptfdisk/gptfdisk.remove.icu4c.dep.diff
@@ -0,0 +1,36 @@
+--- ./Makefile.orig 2012-05-30 10:38:43.000000000 -0500
++++ ./Makefile 2012-08-06 16:37:17.256362865 -0500
+@@ -1,8 +1,8 @@
+ CC=gcc
+ CXX=g++
+ CFLAGS+=-D_FILE_OFFSET_BITS=64
+-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
+-#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
++#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
++CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
+ LDFLAGS+=
+ LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
+ MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
+@@ -14,16 +14,16 @@
+ all: cgdisk gdisk sgdisk fixparts
+
+ gdisk: $(LIB_OBJS) gdisk.o gpttext.o
+-# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
+- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
++ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
++# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
+
+ cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o
+-# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk
+- $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licuio -licuuc -luuid -lncurses -o cgdisk
++ $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk
++# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licuio -licuuc -luuid -lncurses -o cgdisk
+
+ sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o
+-# $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk
+- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
++ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk
++# $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
+
+ fixparts: $(MBR_LIB_OBJS) fixparts.o
+ $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
diff --git a/source/a/gptfdisk/slack-desc b/source/a/gptfdisk/slack-desc
new file mode 100644
index 000000000..913fd875b
--- /dev/null
+++ b/source/a/gptfdisk/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------------------------------------------------------|
+gptfdisk: gptfdisk (GPT fdisk utilities)
+gptfdisk:
+gptfdisk: GPT fdisk (consisting of the gdisk, cgdisk, sgdisk, and fixparts
+gptfdisk: programs) is a set of text-mode partitioning tools for using a GPT
+gptfdisk: (GUID Partition Table), rather than the traditional MBR (Master Boot
+gptfdisk: Record) partition tables. It features several partitioning tools,
+gptfdisk: recovery tools to help you deal with corrupt partition tables, and the
+gptfdisk: ability to convert MBR disks to GPT format.
+gptfdisk:
+gptfdisk: gdisk home: http://www.rodsbooks.com/gdisk/
+gptfdisk:
diff --git a/source/a/grep/grep.SlackBuild b/source/a/grep/grep.SlackBuild
index b789bc724..6bdf0d811 100755
--- a/source/a/grep/grep.SlackBuild
+++ b/source/a/grep/grep.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -60,6 +60,7 @@ cd $TMP
rm -rf grep-$VERSION
tar xvf $CWD/grep-$VERSION.tar.xz || 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 \) \
@@ -90,11 +91,20 @@ mkdir -p $PKG/usr/bin
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 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
diff --git a/source/a/gzip/gzip.SlackBuild b/source/a/gzip/gzip.SlackBuild
index d5133fd5b..19ef42fba 100755
--- a/source/a/gzip/gzip.SlackBuild
+++ b/source/a/gzip/gzip.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=gzip
-VERSION=${VERSION:-1.4}
+VERSION=${VERSION:-1.5}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j6}
@@ -166,5 +166,5 @@ 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.tgz
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/isapnptools/isapnptools-1.26.lsm b/source/a/isapnptools/isapnptools-1.26.lsm
new file mode 100644
index 000000000..f2c2af404
--- /dev/null
+++ b/source/a/isapnptools/isapnptools-1.26.lsm
@@ -0,0 +1,25 @@
+Begin3
+Title: isapnptools
+Version: 1.26
+Entered-date: 2001-05-08
+Description: ISA plug and play configuration utility
+ Two programs - one allows the dumping of resource data and generation
+ of a skeleton configuration file, the other configures ISA PnP hardware
+ using a configuration file.
+ See http://www.roestock.demon.co.uk/isapnptools/ for latest information.
+Keywords: ISA PnP Configuration Hardware
+Author: fox@roestock.demon.co.uk (Peter Fox)
+Maintained-by: fox@roestock.demon.co.uk (Peter Fox)
+Primary-site: MetaLab.unc.edu /pub/Linux/system/hardware
+ 227k isapnptools-1.26.tgz
+ 384k isapnptools-1.26.bin.tgz
+Alternate-site: tsx-11.mit.edu /pub/linux/sources/sbin
+ 227k isapnptools-1.26.src.tar.gz
+Alternate-site: tsx-11.mit.edu /pub/linux/binaries/sbin
+ 384k isapnptools-1.26.bin.tar.gz
+Alternate-site: ftp.lmh.ox.ac.uk /pub/linux/pnp
+ 227k isapnptools-1.26.tgz
+Original-site: ftp.demon.co.uk /pub/unix/linux/utils
+ 227k isapnptools-1.26.tgz
+Copying-policy: GNU
+End
diff --git a/source/a/isapnptools/isapnptools.SlackBuild b/source/a/isapnptools/isapnptools.SlackBuild
new file mode 100755
index 000000000..38362878b
--- /dev/null
+++ b/source/a/isapnptools/isapnptools.SlackBuild
@@ -0,0 +1,88 @@
+#!/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.
+
+
+CWD=`pwd`
+TMP=/tmp
+PKG=$TMP/package-isapnptools
+rm -rf $PKG
+mkdir -p $PKG
+cd $TMP
+
+# sanity check
+if [ "$( uname -m )" = "x86_64" ]; then
+ echo "isapnptools is not supported on x86_64"
+ exit 1
+fi
+
+VERSION=${VERSION:-1.26}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-2}
+
+tar xzvf $CWD/isapnptools-$VERSION.tar.gz || exit 1
+cd isapnptools-$VERSION
+
+zcat $CWD/isapnptools_1.26-5.diff.xz | patch -p1 --verbose || exit 1
+
+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 {} \;
+
+./configure --prefix=/usr
+make -j4 || exit 1
+( cd src
+ strip isapnp pnpdump
+ mkdir -p $PKG/sbin
+ cat isapnp > $PKG/sbin/isapnp
+ cat pnpdump > $PKG/sbin/pnpdump
+ chmod 755 $PKG/sbin/* )
+mkdir -p $PKG/etc
+( cd etc
+ mkdir -p $PKG/etc
+ cat isapnp.conf > $PKG/etc/isapnp.conf.sample
+ cat isapnp.gone > $PKG/etc/isapnp.gone.sample )
+( cd doc
+ mkdir -p $PKG/usr/man/man5
+ cat isapnp.conf.5 | gzip -9c > $PKG/usr/man/man5/isapnp.conf.5.gz
+ mkdir -p $PKG/usr/man/man8
+ cat isapnp.8 | gzip -9c > $PKG/usr/man/man8/isapnp.8.gz
+ cat pnpdump.8 | gzip -9c > $PKG/usr/man/man8/pnpdump.8.gz )
+mkdir -p $PKG/usr/doc/isapnptools-$VERSION
+cp -a AUTHORS CHANGES COPYING INSTALL README isapnp.lsm doc/isapnpfaq.txt doc/README.ide doc/README.initrd $PKG/usr/doc/isapnptools-$VERSION
+chown -R root:root $PKG/usr/doc/isapnptools-$VERSION
+chmod 644 $PKG/usr/doc/isapnptools-$VERSION/*
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# Build the package:
+cd $PKG
+makepkg -c n -l y $TMP/isapnptools-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/isapnptools/isapnptools.url b/source/a/isapnptools/isapnptools.url
new file mode 100644
index 000000000..e4a66ad56
--- /dev/null
+++ b/source/a/isapnptools/isapnptools.url
@@ -0,0 +1 @@
+http://www.roestock.demon.co.uk/isapnptools/
diff --git a/source/a/isapnptools/isapnptools_1.26-5.diff b/source/a/isapnptools/isapnptools_1.26-5.diff
new file mode 100644
index 000000000..73bfae9e9
--- /dev/null
+++ b/source/a/isapnptools/isapnptools_1.26-5.diff
@@ -0,0 +1,597 @@
+--- isapnptools-1.26.orig/doc/man2html
++++ isapnptools-1.26/doc/man2html
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Brute force script to convert isapnptools man pages to html.
+ #
+--- isapnptools-1.26.orig/debian/changelog
++++ isapnptools-1.26/debian/changelog
+@@ -0,0 +1,263 @@
++isapnptools (1.26-5) unstable; urgency=low
++
++ * src/isapnp_main.l: Don't declare variable serial_identifier as static
++ (thanks Andreas Jochens). Closes: #286477.
++
++ -- Steve M. Robbins <smr@debian.org> Thu, 23 Dec 2004 00:04:41 -0500
++
++isapnptools (1.26-4) unstable; urgency=low
++
++ * Add amd64 to list of supported arches. Closes: #257455.
++
++ -- Steve M. Robbins <smr@debian.org> Wed, 7 Jul 2004 21:21:29 -0400
++
++isapnptools (1.26-3) unstable; urgency=low
++
++ * Applied portability fixes from David Weinehall. Closes: #254921.
++ - debian/isapnptools.init: Replace "test EXPR1 -o EXPR2" by
++ "test EXPR1 || test EXPR2".
++ - doc/man2html: Change hash-bang line from /bin/bash to /bin/sh.
++
++ -- Steve M. Robbins <smr@debian.org> Thu, 24 Jun 2004 20:25:08 -0400
++
++isapnptools (1.26-2) unstable; urgency=low
++
++ * debian/control:
++ Standards-Version updated to 3.5.6.0; no changes required.
++ Build-depend on flex-old rather than flex.
++ Build-depend on linux-kernel-headers, for <linux/pci.h>.
++ Set -dev package section to libdevel.
++
++ * debian/rules:
++ Suppress accidental execution of auto-* tools.
++ Honour DEB_BUILD_OPTIONS policy.
++
++ * src/callbacks.c: Include stdlib.h, for declaration of exit().
++
++ * src/resource.c: Define __KERNEL__ and include <linux/mod_devicetable.h>
++ to switch on definitions of __u32 et al. Closes: #223166.
++
++ -- Steve M. Robbins <smr@debian.org> Sat, 6 Dec 2003 22:32:25 -0500
++
++isapnptools (1.26-1) unstable; urgency=low
++
++ * New upstream release.
++ * Revert to explicit list of architectures; does not
++ build on "mipsel". Closes: #97942.
++ * Do not install /etc/isapnp.conf or /etc/isapnp.gone;
++ supply them as examples, instead.
++ * Init script will exit if the kernel has an isa-pnp.o module.
++ * Install doc/README.lib in -dev package; don't install README
++ files for DOS, OS2, or borland.
++
++ -- Steve M. Robbins <smr@debian.org> Fri, 18 May 2001 20:10:02 -0400
++
++isapnptools (1.25-1) unstable; urgency=low
++
++ * New upstream release.
++ * Change to architecture "any" (Closes: #94091).
++
++ -- Steve M. Robbins <smr@debian.org> Mon, 16 Apr 2001 19:19:03 -0400
++
++isapnptools (1.24-3) unstable; urgency=low
++
++ * Fix getopt_long() call to avoid coredump (Closes: #93097).
++
++ -- Steve M. Robbins <smr@debian.org> Sat, 7 Apr 2001 12:40:52 -0400
++
++isapnptools (1.24-2) unstable; urgency=low
++
++ * In version 1.24-1, all the include files were moved to libisapnp-dev,
++ so it must conflict with older isapnptools (closes: #90373).
++ * Set section/priority to base/extra, in agreement with the archive
++ override file.
++
++ -- Steve M. Robbins <smr@debian.org> Mon, 19 Mar 2001 23:12:31 -0500
++
++isapnptools (1.24-1) unstable; urgency=low
++
++ * New Maintainer (closes: #89719).
++ * New upstream version.
++ - scanner is case insensitive (closes: #74455, #75362, #83251).
++ * Repackaged using debhelper.
++ - correctly generates /usr/doc symlink (closes: #52641)
++ * Past NMU fixes that remain fixed:
++ - ensure isapnp is in /sbin (closes: #74893, #74642, #74349, #74487)
++ - dev package installs lib and headers (closes: #64469)
++ - README.lib was missing (closes: #62343, #53259)
++ - no longer uses awk (closes: #29633, #29862)
++ - updated version long ago (closes: #27784)
++ - upstream changelog correctly named (closes: #9664)
++ * Patch previously incorporated without closing bug:
++ - exit init script if test -e /proc/isapnp (closes: #53057)
++ * Closing lots of obsolete bugs (closes: #46674).
++
++ -- Steve M. Robbins <smr@debian.org> Sun, 18 Mar 2001 20:11:10 -0500
++
++isapnptools (1.23-0.4) unstable; urgency=low
++
++ * Non-Maintainer upload.
++ * Apply patch-1.23a from
++ http://www.roestock.demon.co.uk/isapnptools/patch-1.23a.gz
++ * Created acconfig.h (build fix).
++
++ -- Ivo Timmermans <ivo@debian.org> Fri, 23 Feb 2001 19:45:39 +0100
++
++isapnptools (1.23-0.3) unstable; urgency=low
++
++ * Non-Maintainer Upload.
++ * Fixed location of isapnp binary - should have tested this with 2.2
++ kernel, not just 2.4.. (Closes: #74642, #74349, #74363, #74642)
++
++ -- Joseph Carter <knghtbrd@debian.org> Sun, 15 Oct 2000 13:20:19 -0500
++
++isapnptools (1.23-0.2) unstable; urgency=low
++
++ * Non-Maintainer Upload
++ * Fixed drain bamage in isapnp/release.h regarding config.h
++
++ -- Joseph Carter <knghtbrd@debian.org> Wed, 4 Oct 2000 14:36:03 -0500
++
++isapnptools (1.23-0.1) unstable; urgency=low
++
++ * Non-Maintainer Upload.
++ * New upstream version
++ * Modified debian/* for autosomething
++
++ -- Joseph Carter <knghtbrd@debian.org> Mon, 25 Sep 2000 01:04:14 -0500
++
++isapnptools (1.21-2.2) unstable; urgency=low
++
++ * NMU again.
++ * Put libisapnp-dev in devel, not libs.
++
++ -- Chris Lawrence <lawrencc@debian.org> Mon, 24 Jul 2000 16:38:05 -0500
++
++isapnptools (1.21-2.1) unstable; urgency=low
++
++ * NMU.
++ * Create a separate libisapnp-dev package. (Closes: #64469)
++ * Update Standards-Version in control file.
++ * Properly include section and priority fields.
++ * README.lib md5sums problem fixed. (Closes: #53259, #62343)
++
++ -- Chris Lawrence <lawrencc@debian.org> Sat, 1 Jul 2000 14:13:45 -0500
++
++isapnptools (1.21-2) unstable; urgency=low
++
++ * applied patch from Cesar Eduardo Barros to correct the behaviour
++ for IRQ 2. Closes: #50202.
++ * changed the test to not start for 2.3 kernels. Closes: #52818.
++
++ -- Frederic Lepied <Lepied@debian.org> Thu, 16 Dec 1999 05:56:59 +0100
++
++isapnptools (1.21-1) unstable; urgency=low
++
++ * new upstream version.
++
++ -- Frederic Lepied <Lepied@debian.org> Sat, 11 Dec 1999 15:52:40 +0100
++
++isapnptools (1.19-1) unstable; urgency=low
++
++ * new upstream version.
++
++ -- Frederic Lepied <Lepied@debian.org> Thu, 21 Oct 1999 05:51:00 +0200
++
++isapnptools (1.18-1) unstable; urgency=low
++
++ * new upstream version.
++ * Don't start isapnp on startup for 2.3 kernels. Closes: Bug#43634.
++
++ -- Frederic Lepied <Lepied@debian.org> Sat, 4 Sep 1999 07:06:42 +0200
++
++isapnptools (1.16-4) frozen unstable; urgency=low
++
++ * downgrade pciutils dependency from Recommend to Suggest. Closes Bug#29004.
++
++ -- Frederic Lepied <Lepied@debian.org> Mon, 9 Nov 1998 06:01:16 +0100
++
++isapnptools (1.16-3) frozen unstable; urgency=low
++
++ * oops upload to frozen too.
++
++ -- Frederic Lepied <Lepied@debian.org> Wed, 4 Nov 1998 04:06:53 +0100
++
++isapnptools (1.16-2) unstable; urgency=low
++
++ * added missing dependency fields. Closes Bug#28136
++ * (resource.c): use type instead of which to test for
++ the lspci command. Closes Bug#28728.
++
++ -- Frederic Lepied <Lepied@debian.org> Tue, 27 Oct 1998 09:32:57 +0100
++
++isapnptools (1.16-1) unstable; urgency=low
++
++ * new upstream version.
++
++ -- Frederic Lepied <Lepied@debian.org> Fri, 16 Oct 1998 08:53:06 +0200
++
++isapnptools (1.13-3.1) unstable; urgency=high
++
++ * Non-maintainer upload
++ * Fix #23770 (startup link in rcS.d)
++ * Add depend on dpkg >= 1.4.0.21 because of update-rc.d
++
++ -- Gergely Madarasz <gorgo@caesar.elte.hu> Wed, 24 Jun 1998 00:11:59 +0200
++
++isapnptools (1.13-3) unstable; urgency=low
++
++ * made architecture i386 and alpha. Fix Bug#19704.
++
++ -- Frederic Lepied <Lepied@debian.org> Sun, 15 Mar 1998 20:53:28 +0100
++
++isapnptools (1.13-2) unstable; urgency=low
++
++ * Fix Bug#19334 (reports from lintian).
++
++ -- Frederic Lepied <Lepied@debian.org> Sun, 15 Mar 1998 14:44:16 +0100
++
++isapnptools (1.13-1) unstable; urgency=low, Closes=15423
++
++ * upstream release.
++ * remade architecture 'any' as it works with the alpha architecture now.
++ * install changelog.Debian compressed. Closes Bug#15423.
++
++ -- Frederic Lepied <Lepied@debian.org> Wed, 7 Jan 1998 06:22:42 +0100
++
++isapnptools (1.11-3) unstable; urgency=low
++
++ * made architecture i386 (bug #12532).
++
++ -- Frederic Lepied <Lepied@debian.org> Wed, 8 Oct 1997 11:22:26 +0200
++
++isapnptools (1.11-2) unstable; urgency=low
++
++ * test if isapnp.conf is readable before launching isapnp (bug #13688)
++
++ -- Frederic Lepied <Lepied@debian.org> Wed, 8 Oct 1997 09:40:09 +0200
++
++isapnptools (1.11-1) unstable; urgency=low
++
++ * new upstream version.
++
++ -- Frederic Lepied <Lepied@debian.org> Sat, 26 Jul 1997 11:14:14 +0200
++
++isapnptools (1.10-2) unstable; urgency=low
++
++ * compiled with libc6.
++
++ -- Frederic Lepied <Lepied@debian.org> Sat, 12 Jul 1997 19:48:15 +0200
++
++isapnptools (1.10-1) unstable; urgency=low
++
++ * New upstream release.
++
++ -- Frederic Lepied <Lepied@debian.org> Thu, 12 Jun 1997 08:47:14 +0200
++
++isapnptools (1.9-1) unstable; urgency=low
++
++ * Initial Release.
++ * Need to be integrated with sysvinit.
++
++ -- Frederic Lepied <Lepied@debian.org> Thu, 13 Feb 1997 10:28:34 +0100
++
+--- isapnptools-1.26.orig/debian/control
++++ isapnptools-1.26/debian/control
+@@ -0,0 +1,26 @@
++Source: isapnptools
++Section: base
++Priority: extra
++Maintainer: Steve M. Robbins <smr@debian.org>
++Standards-Version: 3.5.8.0
++Build-Depends: debhelper (>> 3.0.0), flex-old, linux-kernel-headers
++
++Package: isapnptools
++Architecture: alpha amd64 arm i386
++Depends: ${shlibs:Depends}, dpkg (>= 1.4.0.21)
++Description: ISA Plug-And-Play configuration utilities.
++ This program is suitable for all systems, whether or not they
++ include a PnP BIOS. In fact, a PnP BIOS adds some complications
++ because it may already activate some cards so that the drivers
++ can find them, and these tools can unconfigure them, or change
++ their settings causing all sorts of nasty effects.
++
++Package: libisapnp-dev
++Architecture: alpha amd64 arm i386
++Conflicts: isapnptools (<< 1.24-1)
++Section: libdevel
++Priority: optional
++Description: ISA Plug-And-Play development libraries.
++ This package provides a header file and a static library for
++ development of software that detects and configures ISA Plug-And-Play
++ devices.
+--- isapnptools-1.26.orig/debian/copyright
++++ isapnptools-1.26/debian/copyright
+@@ -0,0 +1,17 @@
++This package was debianized by Frederic Lepied <Lepied@debian.org> on
++Thu, 13 Feb 1997 09:10:53 +0100.
++
++It was downloaded from http://www.roestock.demon.co.uk/isapnptools/index.html
++
++Copyright:
++
++ GNU GENERAL PUBLIC LICENSE
++ Version 2, June 1991
++
++ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
++ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
++ Everyone is permitted to copy and distribute verbatim copies
++ of this license document, but changing it is not allowed.
++
++On Debian Linux systems, the complete text of the GNU General
++Public License can be found in `/usr/share/common-licenses/GPL'.
+--- isapnptools-1.26.orig/debian/isapnptools.README.Debian
++++ isapnptools-1.26/debian/isapnptools.README.Debian
+@@ -0,0 +1,38 @@
++Starting with version 1.26-1 (2001-05-18), the sample configuration
++files are no longer installed in /etc. Look for them in
++/usr/share/doc/isapnptools/examples.
++
++The example files are not very useful, in fact. Start with
++"pnpdump >isapnp.conf" and then read "man isapnp.conf" to get started.
++
++
++The --reset option to pnpdump may be useful to reset some hardware at
++shutdown time. However, the pnpdump manpage suggests this may cause a
++lockup, so this is not done by default. Edit /etc/init.d/isapnp if
++you wish to do so. See bug report #54686.
++
++
++ Kernel ISA PnP Support
++ ----------------------
++
++The 2.4 linux kernels have built-in support for ISA PnP configuration,
++obviating the need for isapnptools. The init script will silently
++exit if the running kernel has isa-pnp support built-in or compiled as
++a module.
++
++For many, the kernel PnP configuration will be sufficient (it seems to
++be better than isapnptools). If your card does not get properly
++configured, you will have to peruse the file Documentation/isapnp.txt
++from the kernel sources and come up with the required commands
++to configure it. Put them into a file, e.g. /etc/proc-isapnp.conf,
++and arrange for this to be read during boot. If isa-pnp is compiled
++as a module, you can use a module post-install rule such as
++the following:
++
++ post-install isa-pnp cat /etc/proc-isapnp.conf > /proc/isapnp
++
++Install this line into a file in /etc/modutils of your choosing
++(e.g. /etc/modutils/local) then run "update-modules".
++
++
++ -- Steve M. Robbins <smr@debian.org>, Sat Dec 6 23:35:46 2003
+--- isapnptools-1.26.orig/debian/isapnptools.docs
++++ isapnptools-1.26/debian/isapnptools.docs
+@@ -0,0 +1,8 @@
++AUTHORS
++NEWS
++README
++doc/README.ide
++doc/README.initrd
++doc/README.modules
++doc/isapnpfaq.txt
++
+--- isapnptools-1.26.orig/debian/isapnptools.examples
++++ isapnptools-1.26/debian/isapnptools.examples
+@@ -0,0 +1,2 @@
++etc/isapnp.gone
++etc/isapnp.conf
+--- isapnptools-1.26.orig/debian/isapnptools.files
++++ isapnptools-1.26/debian/isapnptools.files
+@@ -0,0 +1,4 @@
++sbin
++usr/sbin
++usr/share/man
++
+--- isapnptools-1.26.orig/debian/isapnptools.init
++++ isapnptools-1.26/debian/isapnptools.init
+@@ -0,0 +1,29 @@
++#! /bin/sh
++
++# /etc/init.d/isapnp: configure Plug and Play boards
++
++test -x /sbin/isapnp || exit 0
++
++# kernel 2.3.x and later can handle Pnp directly
++if test -e /proc/isapnp || \
++ test -e /lib/modules/`/bin/uname -r`/kernel/drivers/pnp/isa-pnp.o
++then
++ exit 0
++fi
++
++case "$1" in
++ start)
++ if [ -r /etc/isapnp.conf ]; then
++ /sbin/isapnp /etc/isapnp.conf
++ fi
++ ;;
++
++ stop|force-reload|restart)
++ ;;
++
++ *)
++ echo "Usage: $0 {start|stop|restart|force-reload}"
++ exit 1
++esac
++
++exit 0
+--- isapnptools-1.26.orig/debian/libisapnp-dev.docs
++++ isapnptools-1.26/debian/libisapnp-dev.docs
+@@ -0,0 +1,4 @@
++AUTHORS
++NEWS
++README
++doc/README.lib
+--- isapnptools-1.26.orig/debian/libisapnp-dev.examples
++++ isapnptools-1.26/debian/libisapnp-dev.examples
+@@ -0,0 +1,2 @@
++demos/demo.c
++demos/demo2.c
+--- isapnptools-1.26.orig/debian/libisapnp-dev.files
++++ isapnptools-1.26/debian/libisapnp-dev.files
+@@ -0,0 +1,2 @@
++usr/include
++usr/lib
+--- isapnptools-1.26.orig/debian/postrm
++++ isapnptools-1.26/debian/postrm
+@@ -0,0 +1,7 @@
++#!/bin/sh -e
++
++#DEBHELPER#
++
++if [ "$1" = "purge" ] ; then
++ rm -f /etc/isapnp.conf /etc/isapnp.gone
++fi
+--- isapnptools-1.26.orig/debian/rules
++++ isapnptools-1.26/debian/rules
+@@ -0,0 +1,115 @@
++#!/usr/bin/make -f
++#
++# Adapted from /usr/share/doc/debhelper/examples/rules.multi2
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatibility version to use.
++export DH_COMPAT=3
++
++# This has to be exported to make some magic below work.
++export DH_OPTIONS
++
++# Suppress accidental execution of the auto-* tools; see
++# http://lists.debian.org/debian-devel/2001/debian-devel-200111/msg01416.html
++no_auto_tools = ACLOCAL="`pwd`/missing aclocal" \
++ AUTOCONF="`pwd`/missing autoconf" \
++ AUTOMAKE="`pwd`/missing automake" \
++ AUTOHEADER="`pwd`/missing autoheader"
++
++# Customization follows Debian policy 11.1.
++#
++# Variable DEB_BUILD_OPTIONS can have "noopt" or "nostrip"
++
++CFLAGS = -Wall -g
++export CFLAGS
++
++ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
++CFLAGS += -O0
++else
++CFLAGS += -O2
++endif
++
++ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++INSTALL_PROGRAM += -s
++endif
++
++build: build-stamp
++build-stamp:
++ dh_testdir
++
++ rm -f config.cache
++ ./configure --prefix=/usr \
++ --mandir=/usr/share/man --infodir=/usr/share/info
++ $(MAKE) $(no_auto_tools)
++
++ touch build-stamp
++
++clean:
++ dh_testdir
++ dh_testroot
++ rm -f build-stamp
++
++ -cd demos && $(MAKE) distclean
++ -$(MAKE) distclean
++
++ dh_clean
++
++install: DH_OPTIONS=
++install: build
++ dh_testdir
++ dh_testroot
++ dh_clean -k
++ dh_installdirs
++
++ $(MAKE) DESTDIR=`pwd`/debian/tmp install
++ # Move isapnp to /sbin
++ mkdir debian/tmp/sbin
++ mv debian/tmp/usr/sbin/isapnp debian/tmp/sbin
++
++ dh_movefiles
++
++# This single target is used to build all the packages, all at once, or
++# one at a time. So keep in mind: any options passed to commands here will
++# affect _all_ packages. Anything you want to only affect one package
++# should be put in another target, such as the install target.
++binary-common:
++ dh_testdir
++ dh_testroot
++# dh_installdebconf
++ dh_installdocs
++ dh_installexamples
++ # override init script name, for historical reasons
++ dh_installinit --no-restart-on-upgrade \
++ --init-script=isapnp \
++ -- start 15 S .
++# dh_installman
++ dh_installinfo
++ dh_installchangelogs ChangeLog
++# dh_link
++ dh_strip
++ dh_compress
++ dh_fixperms
++# dh_makeshlibs
++ dh_installdeb
++ dh_shlibdeps
++ dh_gencontrol
++ dh_md5sums
++ dh_builddeb
++
++# Build architecture independant packages using the common target.
++binary-indep: build install
++# (Uncomment this next line if you have such packages.)
++# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
++
++# Build architecture dependant packages using the common target.
++binary-arch: build install
++ $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common
++
++# Any other binary targets build just one binary package at a time.
++binary-%: build install
++ make -f debian/rules binary-common DH_OPTIONS=-p$*
++
++binary: binary-indep binary-arch
++.PHONY: build clean binary-indep binary-arch binary install
+--- isapnptools-1.26.orig/src/callbacks.c
++++ isapnptools-1.26/src/callbacks.c
+@@ -51,6 +51,7 @@
+ #include <stdio.h>
+ #include <errno.h>
+ #include <string.h>
++#include <stdlib.h>
+
+ /****************************************************************************/
+
+--- isapnptools-1.26.orig/src/isapnp_main.l
++++ isapnptools-1.26/src/isapnp_main.l
+@@ -363,7 +363,7 @@
+ return 0;
+ }
+
+-static unsigned char serial_identifier[NUM_CARDS+1][IDENT_LEN];
++unsigned char serial_identifier[NUM_CARDS+1][IDENT_LEN];
+ static char *boardid[NUM_CARDS+1];
+ static unsigned long serno[NUM_CARDS+1];
+
+--- isapnptools-1.26.orig/src/resource.c
++++ isapnptools-1.26/src/resource.c
+@@ -24,6 +24,9 @@
+ #include <string.h>
+
+ #ifdef ENABLE_PCI
++#define __KERNEL__
++#include <linux/mod_devicetable.h>
++#undef __KERNEL__
+ #include <linux/pci.h>
+ #endif
+
diff --git a/source/x/x11/slack-desc/rstart b/source/a/isapnptools/slack-desc
index e009e289f..8646def6e 100644
--- a/source/x/x11/slack-desc/rstart
+++ b/source/a/isapnptools/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-rstart: rstart
-rstart:
-rstart: rstart is part of X11.
-rstart:
-rstart: For more information about the X.Org Foundation (the providers of the
-rstart: X.Org implementation of the X Window System), see their website:
-rstart:
-rstart: http://www.x.org
-rstart:
-rstart:
-rstart:
+isapnptools: isapnptools (ISA Plug-And-Play tools)
+isapnptools:
+isapnptools: These programs allow ISA Plug-And-Play devices to be configured
+isapnptools: on a Linux machine.
+isapnptools:
+isapnptools:
+isapnptools:
+isapnptools:
+isapnptools:
+isapnptools:
+isapnptools:
diff --git a/source/a/kbd/kbd.SlackBuild b/source/a/kbd/kbd.SlackBuild
index ddcd96703..1b2147d0a 100755
--- a/source/a/kbd/kbd.SlackBuild
+++ b/source/a/kbd/kbd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=kbd
-VERSION=1.15.2
-BUILD=${BUILD:-1}
+VERSION=1.15.3
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -34,7 +34,7 @@ if [ -z "$ARCH" ]; then
esac
fi
-NUMJOBS=${NUMJOBS:--j4}
+NUMJOBS=${NUMJOBS:--j6}
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -49,7 +49,7 @@ cd $TMP
# Extract source:
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/sources/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION
# Make sure ownerships and permissions are sane:
@@ -69,9 +69,12 @@ find . -perm 555 -exec chmod 755 {} \;
# Apply patches:
# These are taken from Fedora's SRPM:
zcat $CWD/sources/kbd-1.15.2-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-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-keycodes-man.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-unicode_start.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/sources/kbd-1.15-resizecon-x86_64.patch.gz | patch -p1 --verbose || exit 1
+
+# This is from Mandriva's SRPM:
+zcat $CWD/sources/kbd-1.15.3-fix-es-translation.patch.gz | patch -p1 --verbose || exit 1
# This is from Fedora's spec file:
# 7-bit maps are obsolete; so are non-euro maps
@@ -114,6 +117,12 @@ make install DESTDIR=$PKG || exit 1
mv -fv usr/bin/loadkeys bin/
cd usr/bin ; ln -vsf ../../bin/loadkeys . )
+# Build/install resizecons:
+( cd src
+ make resizecons
+ cp resizecons $PKG/usr/bin
+)
+
# ro_win.map.gz is useless
rm -fv $PKG/usr/share/kbd/keymaps/i386/qwerty/ro_win.map.gz
@@ -197,10 +206,20 @@ config etc/rc.d/rc.font.new
EOF
-# Compress man pages:
-( cd $PKG/usr/man
- find . -name "*.?" -type f | xargs gzip -9
-)
+# 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
# Install package description:
install -vpm644 $CWD/slack-desc $PKG/install/
@@ -212,5 +231,5 @@ install -vpm644 $CWD/slack-desc $PKG/install/
)
cd $PKG
-makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
-#EOF
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+
diff --git a/source/a/kbd/sources/kbd-1.15.2.tar.bz2.sign b/source/a/kbd/sources/kbd-1.15.2.tar.bz2.sign
deleted file mode 100644
index 39f3c0228..000000000
--- a/source/a/kbd/sources/kbd-1.15.2.tar.bz2.sign
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.9 (GNU/Linux)
-Comment: See http://www.kernel.org/signature.html for info
-
-iD8DBQBLwPHZyGugalF9Dw4RAhiyAJ9DdLbizzsoJi87OjQ8VzyNsRnr2QCeJ9zg
-MOKY0UbkCZyUALLyzxF2bKE=
-=Ou46
------END PGP SIGNATURE-----
diff --git a/source/a/kbd/sources/kbd-1.15.3-fix-es-translation.patch b/source/a/kbd/sources/kbd-1.15.3-fix-es-translation.patch
new file mode 100644
index 000000000..2d76cd9f3
--- /dev/null
+++ b/source/a/kbd/sources/kbd-1.15.3-fix-es-translation.patch
@@ -0,0 +1,12 @@
+diff -Naur kbd-1.15.3//po/es.po kbd-1.15.3.tpg//po/es.po
+--- kbd-1.15.3//po/es.po 2011-05-14 21:12:49.000000000 +0000
++++ kbd-1.15.3.tpg//po/es.po 2011-06-19 12:29:55.000000000 +0000
+@@ -1363,7 +1363,7 @@
+ #: src/setfont.c:682
+ #, c-format
+ msgid "Saved %d-char %dx%d font file on %s\n"
+-msgstr "Se ha guardado el fichero de tipos %2$dx%3$d de %1$d caracteres en %s\n"
++msgstr "Se ha guardado el fichero de tipos %dx%d de %d caracteres en %s\n"
+
+ #: src/setkeycodes.c:21
+ #, c-format
diff --git a/source/k/kernel-firmware/kernel-firmware.SlackBuild b/source/a/kernel-firmware/kernel-firmware.SlackBuild
index f923dbbc0..66445ea83 100755
--- a/source/k/kernel-firmware/kernel-firmware.SlackBuild
+++ b/source/a/kernel-firmware/kernel-firmware.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2011 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,25 +21,34 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+PKGNAM=kernel-firmware
+VERSION=${VERSION:-$(date +%Y%m%d)git}
+ARCH=noarch
+BUILD=${BUILD:-1}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-kernel-firmware
-
-VERSION=${VERSION:-2.6.37.6}
-ARCH=${ARCH:-noarch}
-BUILD=${BUILD:-1}
+PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
-echo "Using /usr/src/linux-2.6.37.6/"
-echo "Make sure this is *ready*..."
-mkdir -p $PKG/lib/firmware
-( cd /usr/src/linux-2.6.37.6 && make firmware_install INSTALL_FW_PATH=$PKG/lib/firmware )
-cp -a /usr/src/linux-2.6.37.6/firmware/WHENCE $PKG/lib/firmware
+
+cd $PKG
+git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
+find . -name ".git*" -exec rm -rf "{}" \;
+chown -R root:root .
+mkdir -p lib
+mv linux-firmware lib/firmware
+
+# Install documentation link:
+mkdir -p $PKG/usr/doc
+( cd $PKG/usr/doc
+ ln -sf /lib/firmware kernel-firmware-$VERSION
+)
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/kernel-firmware-${VERSION}-noarch-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/x/x11/slack-desc/xf86-input-ur98 b/source/a/kernel-firmware/slack-desc
index 66680d8cd..5231a4267 100644
--- a/source/x/x11/slack-desc/xf86-input-ur98
+++ b/source/a/kernel-firmware/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-xf86-input-ur98: xf86-input-ur98
-xf86-input-ur98:
-xf86-input-ur98: xf86-input-ur98 is part of X11.
-xf86-input-ur98:
-xf86-input-ur98: For more information about the X.Org Foundation (the providers of the
-xf86-input-ur98: X.Org implementation of the X Window System), see their website:
-xf86-input-ur98:
-xf86-input-ur98: http://www.x.org
-xf86-input-ur98:
-xf86-input-ur98:
-xf86-input-ur98:
+kernel-firmware: kernel-firmware (Firmware for the kernel)
+kernel-firmware:
+kernel-firmware: These are firmware files for the Linux kernel.
+kernel-firmware:
+kernel-firmware: You'll need these to use certain hardware drivers with Linux.
+kernel-firmware:
+kernel-firmware: Upstream site:
+kernel-firmware:
+kernel-firmware: git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git
+kernel-firmware:
+kernel-firmware:
diff --git a/source/a/kmod/kmod.SlackBuild b/source/a/kmod/kmod.SlackBuild
new file mode 100755
index 000000000..0863d0e37
--- /dev/null
+++ b/source/a/kmod/kmod.SlackBuild
@@ -0,0 +1,147 @@
+#!/bin/sh
+
+# Slackware build script for kmod
+
+# Copyright 2011, 2012 Robby Workman, Northport, Alabama, 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=kmod
+VERSION=${VERSION:-9}
+BUILD=${BUILD:-3}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$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 {} \;
+
+# Fix paths in manual pages
+sed -i "s,/usr/lib,/lib,g" man/*
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/lib${LIBDIRSUFFIX} \
+ --bindir=/sbin \
+ --sbindir=/sbin \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --with-xz \
+ --with-zlib \
+ --build=$ARCH-slackware-linux || exit 1
+
+make || 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
+
+# Create symlinks for the usual module-init-tools stuff:
+( cd $PKG/sbin
+ for file in depmod insmod lsmod modinfo modprobe rmmod ; do
+ ln -sf kmod $file
+ done
+)
+
+# Link lsmod into /bin
+mkdir -p $PKG/bin
+( cd $PKG/bin ; ln -sf /sbin/lsmod . )
+
+mkdir -p $PKG/etc/modprobe.d
+mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}
+mv $PKG/lib${LIBDIRSUFFIX}/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX}
+rm -f $PKG/lib${LIBDIRSUFFIX}/{*.so,*.la}
+( cd $PKG/usr/lib${LIBDIRSUFFIX}
+ ln -sf ../../lib${LIBDIRSUFFIX}/libkmod.so.? libkmod.so
+)
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ COPYING* NEWS README* TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+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/kmod/slack-desc b/source/a/kmod/slack-desc
new file mode 100644
index 000000000..785073113
--- /dev/null
+++ b/source/a/kmod/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 ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+kmod: kmod (kernel module tools and library)
+kmod:
+kmod: kmod is a set of tools to handle common tasks with Linux kernel
+kmod: modules like insert, remove, list, check properties, resolve
+kmod: dependencies and aliases. The aim is to be compatible with the tools,
+kmod: configurations and indexes from the module-init-tools project.
+kmod:
+kmod: These tools are designed on top of libkmod, a library that is
+kmod: shipped with kmod.
+kmod:
+kmod: Project home: ftp://ftp.kernel.org/pub/linux/utils/kernel/kmod/
diff --git a/source/a/lilo/lilo.SlackBuild b/source/a/lilo/lilo.SlackBuild
index 2e7902cde..2df7618d1 100755
--- a/source/a/lilo/lilo.SlackBuild
+++ b/source/a/lilo/lilo.SlackBuild
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-22.8}
-BUILD=${BUILD:-16}
+VERSION=${VERSION:-23.2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -43,15 +43,18 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf lilo-$VERSION
-tar xvf $CWD/lilo-$VERSION.src.tar.gz || exit 1
+tar xvf $CWD/lilo-$VERSION.tar.gz || exit 1
cd lilo-$VERSION
chown -R root:root .
-# This is needed for LVM+udev+devtmpfs
-zcat $CWD/lilo.use_major_minor_instead_lvm_name.diff.gz | patch -p1 --verbose || exit 1
+# Obsolete patch?
+## This is needed for LVM+udev+devtmpfs
+#( cd src
+# zcat $CWD/lilo.use_major_minor_instead_lvm_name.diff.gz | patch -p1 --verbose || exit 1
+#)
make || exit 1
-make install ROOT=$PKG
+make -i install DESTDIR=$PKG || exit 1
# Add a Slackware logo boot menu (sorry, couldn't resist):
if [ "$ARCH" = "x86_64" -a -f $CWD/slack64.bmp ]; then
@@ -61,13 +64,18 @@ else
fi
chmod 644 $PKG/boot/slack.bmp
-# We don't need to add this empty directory:
-rmdir $PKG/etc
+# Remove non-Slackware litter:
+( cd $PKG/boot
+ rm -f coffee.bmp *debian*
+)
+rm -r $PKG/etc/{initramfs,kernel}
# Add Slackware's 'liloconfig' utility:
mkdir -p $PKG/sbin
cp -a $CWD/liloconfig $PKG/sbin/liloconfig
chmod 755 $PKG/sbin/liloconfig
+# Hey, you're stomping on our name! Plus, it doesn't work.
+rm -f $PKG/usr/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
diff --git a/source/a/lilo/liloconfig b/source/a/lilo/liloconfig
index 7dccd3d62..d8bc02dd4 100644
--- a/source/a/lilo/liloconfig
+++ b/source/a/lilo/liloconfig
@@ -53,7 +53,7 @@ if [ ! -d "$T_PX" ]; then
fi
# Determine LILO documentation directory:
-LILODOCDIR="$(ls -d /usr/doc/lilo-* | tail -n 1)"
+LILODOCDIR="$(ls -d $T_PX/usr/doc/lilo-* 2> /dev/null | tail -n 1)"
if [ ! -d "$LILODOCDIR" ]; then
LILODOCDIR="/usr/doc/lilo/"
fi
@@ -236,14 +236,12 @@ hit ENTER to continue.\n\
}
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
@@ -584,12 +582,10 @@ checkbootsplash()
cp -a $LILODOCDIR/sample/sl1337.bmp /boot/slack.bmp
fi
fi
- # Thanks to amrit@slackware.com:
- if grep -wq 13.37.0 /etc/slackware-version ; then
- if ls -l /etc/lilo.conf | grep -q 13:37 ; then
- if [ -r $LILODOCDIR/sample/sl1337.bmp ]; then
- cp -a $LILODOCDIR/sample/sl1337.bmp /boot/slack.bmp
- fi
+ # Mayan calendar easter egg
+ if [ "$(date "+%Y%m%d")" = "20121221" ]; then
+ if [ -r $LILODOCDIR/sample/slack14.0.2012.bmp ]; then
+ cp -a $LILODOCDIR/sample/slack14.0.2012.bmp /boot/slack.bmp
fi
fi
}
diff --git a/source/a/lilo/slack14.0.2012.bmp b/source/a/lilo/slack14.0.2012.bmp
new file mode 100644
index 000000000..ea2176574
--- /dev/null
+++ b/source/a/lilo/slack14.0.2012.bmp
Binary files differ
diff --git a/source/a/logrotate/logrotate.SlackBuild b/source/a/logrotate/logrotate.SlackBuild
index 76cc34abe..e38f27152 100755
--- a/source/a/logrotate/logrotate.SlackBuild
+++ b/source/a/logrotate/logrotate.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,7 +20,7 @@
# 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.8}
+VERSION=${VERSION:-3.8.2}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -68,7 +68,7 @@ find . \
zcat $CWD/logrotate.slackware.diff.gz | patch -p1 || exit 1
make clean
-make EXTRA_CFLAGS="$SLKCFLAGS" || exit 1
+make RPM_OPT_FLAGS="$SLKCFLAGS" || exit 1
strip logrotate
mkdir -p $PKG/usr/sbin
@@ -87,14 +87,19 @@ mkdir -p $PKG/etc/cron.daily
zcat $CWD/logrotate.cron.gz > $PKG/etc/cron.daily/logrotate
chmod 0755 $PKG/etc/cron.daily/logrotate
-# Create the state directory
-mkdir -p $PKG/var/lib/logrotate
-
mkdir -p $PKG/usr/doc/logrotate-$VERSION
cp -a \
CHANGES COPYING READM* \
$PKG/usr/doc/logrotate-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/a/logrotate/logrotate.cron b/source/a/logrotate/logrotate.cron
index f91b3adda..acdf65c2d 100644
--- a/source/a/logrotate/logrotate.cron
+++ b/source/a/logrotate/logrotate.cron
@@ -1,3 +1,3 @@
#!/bin/sh
-/usr/sbin/logrotate /etc/logrotate.conf
-[ $? != 0 ] && /usr/bin/logger -t logrotate "ALERT - exited abnormally."
+/usr/sbin/logrotate /etc/logrotate.conf \
+ || { /usr/bin/logger -t logrotate "ALERT - exited abnormally." && false ; }
diff --git a/source/a/logrotate/logrotate.slackware.diff b/source/a/logrotate/logrotate.slackware.diff
index e9126cee3..6fa0436dc 100644
--- a/source/a/logrotate/logrotate.slackware.diff
+++ b/source/a/logrotate/logrotate.slackware.diff
@@ -1,60 +1,25 @@
-diff -Nur logrotate-3.7.8.orig/Makefile logrotate-3.7.8/Makefile
---- logrotate-3.7.8.orig/Makefile 2008-05-19 05:25:54.000000000 -0500
-+++ logrotate-3.7.8/Makefile 2009-05-09 23:25:12.060201375 -0500
-@@ -1,7 +1,7 @@
- VERSION = $(shell awk '/Version:/ { print $$2 }' logrotate.spec)
- OS_NAME = $(shell uname -s)
- LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`)
--CFLAGS = -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
-+CFLAGS = -Wall $(EXTRA_CFLAGS) -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" $(RPM_OPT_FLAGS) $(LFS)
- PROG = logrotate
- MAN = logrotate.8
- LOADLIBES = -lpopt
-diff -Nur logrotate-3.7.8.orig/config.c logrotate-3.7.8/config.c
---- logrotate-3.7.8.orig/config.c 2008-06-02 05:26:14.000000000 -0500
-+++ logrotate-3.7.8/config.c 2009-05-09 23:53:36.748287318 -0500
-@@ -33,8 +33,9 @@
- #define isblank(c) ( (c) == ' ' || (c) == '\t' ) ? 1 : 0
- #endif
-
--static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v",
+diff -Nur logrotate-3.8.0.orig//config.c logrotate-3.8.0/config.c
+--- logrotate-3.8.0.orig//config.c 2011-06-21 03:12:02.000000000 -0500
++++ logrotate-3.8.0/config.c 2011-08-22 15:53:25.199625138 -0500
+@@ -86,7 +86,8 @@
+ static char *defTabooExts[] = { ".rpmsave", ".rpmorig", "~", ",v",
+ ".disabled", ".dpkg-old", ".dpkg-dist", ".dpkg-new", ".cfsaved",
+ ".ucf-old", ".ucf-dist", ".ucf-new",
- ".rpmnew", ".swp", ".cfsaved", ".rhn-cfg-tmp-*"
-+static char *defTabooExts[] = { ".new", ".orig", ".old", ".bak",
-+ ".rpmsave", ".rpmorig", "~", ",v", ".rpmnew", ".swp", ".cfsaved",
-+ ".rhn-cfg-tmp-*"
++ ".rpmnew", ".swp", ".cfsaved", ".rhn-cfg-tmp-*",
++ ".new", ".old", ".orig", ".bak"
};
static int defTabooCount = sizeof(defTabooExts) / sizeof(char *);
-diff -Nur logrotate-3.7.8.orig/config.h logrotate-3.7.8/config.h
---- logrotate-3.7.8.orig/config.h 2005-11-12 13:07:56.000000000 -0600
-+++ logrotate-3.7.8/config.h 2009-05-09 23:58:17.040241145 -0500
-@@ -13,7 +13,7 @@
- #define DEFAULT_MAIL_COMMAND "/usr/bin/mailx"
- #define COMPRESS_COMMAND "/usr/local/bin/gzip"
- #define UNCOMPRESS_COMMAND "/usr/local/bin/gunzip"
--#define STATEFILE "/var/log/logrotate.status"
-+#define STATEFILE "/var/lib/logrotate/status"
- #endif
-
- /*
-diff -Nur logrotate-3.7.8.orig/logrotate.8 logrotate-3.7.8/logrotate.8
---- logrotate-3.7.8.orig/logrotate.8 2008-12-06 08:05:40.000000000 -0600
-+++ logrotate-3.7.8/logrotate.8 2009-05-09 23:56:45.137687740 -0500
-@@ -442,7 +442,7 @@
+diff -Nur logrotate-3.8.0.orig//logrotate.8 logrotate-3.8.0/logrotate.8
+--- logrotate-3.8.0.orig//logrotate.8 2011-06-21 03:12:02.000000000 -0500
++++ logrotate-3.8.0/logrotate.8 2011-08-22 15:56:12.247672243 -0500
+@@ -472,7 +472,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, ~, .cfsaved and .rhn-cfg-tmp-*.
-+contains .new, .orig, .bak, .old, .rpmorig, .rpmsave, ,v, .swp, .rpmnew, ~, .cfsaved and .rhn-cfg-tmp-*.
+-contains .rpmsave, .rpmorig, ~, .disabled, .dpkg-old, .dpkg-dist, .dpkg-new, .cfsaved, .ucf-old, .ucf-dist, .ucf-new, .rpmnew, .swp, .cfsaved, .rhn-cfg-tmp-*
++contains .rpmsave, .rpmorig, ~, .disabled, .dpkg-old, .dpkg-dist, .dpkg-new, .cfsaved, .ucf-old, .ucf-dist, .ucf-new, .rpmnew, .swp, .cfsaved, .rhn-cfg-tmp-*, .new, .old, .orig, .bak
.TP
\fBweekly\fR
-@@ -459,7 +459,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/lvm2/build_with_udev_165_and_later.diff b/source/a/lvm2/build_with_udev_165_and_later.diff
deleted file mode 100644
index 800e0f9f3..000000000
--- a/source/a/lvm2/build_with_udev_165_and_later.diff
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nur LVM2.2.02.84.orig//configure LVM2.2.02.84/configure
---- LVM2.2.02.84.orig//configure 2011-02-04 16:17:54.000000000 -0600
-+++ LVM2.2.02.84/configure 2011-02-09 20:23:11.818797797 -0600
-@@ -8768,7 +8768,7 @@
- $as_echo_n "(cached) " >&6
- else
- ac_check_lib_save_LIBS=$LIBS
--LIBS="-ludev $LIBS"
-+LIBS="-ludev -lrt $LIBS"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
-@@ -8799,7 +8799,7 @@
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_udev_udev_queue_get_udev_is_active" >&5
- $as_echo "$ac_cv_lib_udev_udev_queue_get_udev_is_active" >&6; }
- if test "x$ac_cv_lib_udev_udev_queue_get_udev_is_active" = x""yes; then :
-- UDEV_PC="libudev"; UDEV_LIBS="-ludev"
-+ UDEV_PC="libudev"; UDEV_LIBS="-ludev -lrt"
- else
- as_fn_error $? "bailing out... libudev library is required" "$LINENO" 5
- fi
diff --git a/source/a/lvm2/fix-build-with-udev-183.patch b/source/a/lvm2/fix-build-with-udev-183.patch
new file mode 100644
index 000000000..747926c44
--- /dev/null
+++ b/source/a/lvm2/fix-build-with-udev-183.patch
@@ -0,0 +1,44 @@
+From 57f4ebb843195bdd29c0d58e1659eeb0e9700081 Mon Sep 17 00:00:00 2001
+From: "Wulf C. Krueger" <philantrop@exherbo.org>
+Date: Sun, 27 May 2012 00:34:55 +0200
+Subject: [PATCH] lvm2: Fix build with systemd/udev-183.
+
+---
+ lib/misc/lvm-wrappers.c | 2 +-
+ tools/dmsetup.c | 3 +--
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/lib/misc/lvm-wrappers.c b/lib/misc/lvm-wrappers.c
+index 84f61a6..d4fcea6 100644
+--- a/lib/misc/lvm-wrappers.c
++++ b/lib/misc/lvm-wrappers.c
+@@ -72,7 +72,7 @@ const char *udev_get_dev_dir(void)
+ return NULL;
+ }
+
+- return udev_get_dev_path(_udev);
++ return "/dev";
+ }
+
+ struct udev* udev_get_library_context(void)
+diff --git a/tools/dmsetup.c b/tools/dmsetup.c
+index 6934de8..e09b56c 100644
+--- a/tools/dmsetup.c
++++ b/tools/dmsetup.c
+@@ -1009,7 +1009,7 @@ static int _udevcookies(CMD_ARGS)
+ static int _set_up_udev_support(const char *dev_dir)
+ {
+ struct udev *udev;
+- const char *udev_dev_dir;
++ const char *udev_dev_dir = "/dev";
+ size_t udev_dev_dir_len;
+ int dirs_diff;
+ const char *env;
+@@ -1031,7 +1031,6 @@ static int _set_up_udev_support(const char *dev_dir)
+ _udev_cookie);
+
+ if (!(udev = udev_new()) ||
+- !(udev_dev_dir = udev_get_dev_path(udev)) ||
+ !*udev_dev_dir) {
+ log_error("Could not get udev dev path.");
+ return 0;
diff --git a/source/a/lvm2/lvm2.SlackBuild b/source/a/lvm2/lvm2.SlackBuild
index e72897d0e..349d5486f 100755
--- a/source/a/lvm2/lvm2.SlackBuild
+++ b/source/a/lvm2/lvm2.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
VERSION=$(echo LVM2.*.tar.xz | cut -f 2- -d . | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-4}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -68,8 +68,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Fix linking of librt until upstream does it correctly :)
-zcat $CWD/build_with_udev_165_and_later.diff.gz | patch -p1 --verbose || exit 1
+# Not yet.
+#zcat $CWD/fix-build-with-udev-183.patch.gz | patch -p1 --verbose || exit 1
# uid 0 = root
# gid 6 = disk
@@ -82,7 +82,6 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--with-usrlibdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
- --enable-static_link \
--enable-realtime \
--with-lvm1=internal \
--enable-pkgconfig \
@@ -92,6 +91,11 @@ CFLAGS="$SLKCFLAGS" \
--with-device-uid=0 \
--with-device-gid=6 \
--with-device-mode=0660 \
+ --with-default-locking-dir=/run/lock/lvm \
+ --with-default-run-dir=/run/lvm \
+ --with-clvmd-pidfile=/run/lvm/clvmd.pid \
+ --with-cmirrord-pidfile=/run/lvm/cmirrord.pid \
+ --with-dmeventd-pidfile=/run/lvm/dmeventd.pid \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
@@ -99,9 +103,6 @@ make install DESTDIR=$PKG || exit 1
mv $PKG/etc/lvm/lvm.conf $PKG/etc/lvm/lvm.conf.new
-# Create default rundir
-mkdir -p $PKG/var/run/lvm
-
if [ -d $PKG/usr/share/man ]; then # --mandir was ignored
mv $PKG/usr/share/man $PKG/usr
rmdir $PKG/usr/share
@@ -116,27 +117,36 @@ mkdir -p $PKG/lib${LIBDIRSUFFIX}
done
)
-# The Makefile is DIW.
-( cd $PKG/usr/lib${LIBDIRSUFFIX}
- find . -name "*.so" -type l | cut -b3- | while read file ; do
- # These two excluded files are in ./device-mapper/ subdir
- if [ "$file" != "libdevmapper-event-lvm2mirror.so" -a "$file" != "libdevmapper-event-lvm2snapshot.so" ]; then
- rm -f $file
- ln -sf $(basename ../../lib${LIBDIRSUFFIX}/${file}.?.*) $file
- fi
- done
-)
-
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
+
mkdir -p $PKG/usr/doc/LVM2.$VERSION
cp -a \
COPYING* INSTALL README* VERSION WHATS_NEW \
$PKG/usr/doc/LVM2.$VERSION
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
diff --git a/source/a/mdadm/mdadm.SlackBuild b/source/a/mdadm/mdadm.SlackBuild
index 71f7c1a31..7ede6ab77 100755
--- a/source/a/mdadm/mdadm.SlackBuild
+++ b/source/a/mdadm/mdadm.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=3.1.5
+VERSION=${VERSION:-$(echo mdadm-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -34,22 +34,33 @@ if [ -z "$ARCH" ]; then
esac
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-mdadm
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf mdadm-$VERSION
-tar xjvf $CWD/mdadm-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/mdadm-$VERSION.tar.?z || exit 1
cd mdadm-$VERSION
-# With glibc on the initrd and installer, there is no longer a
-# good reason to compile this statically. Commented out.
-## Build this static:
-##zcat $CWD/mdadm.static.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 \) \
@@ -57,28 +68,51 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Treating all warnings as errors causes the build to fail.
+sed -i "s,-Werror,," Makefile
+
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
+make CXFLAGS="$SLKCFLAGS" MANDIR=/usr/man || exit 1
+make install MANDIR=/usr/man DESTDIR=$PKG || exit 1
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | \
+ grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# 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/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 \
+ ANNOUNCE-$VERSION COPYING* 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
-)
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
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
+/sbin/makepkg -l y -c n $TMP/mdadm-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/mdadm/mdadm.static.diff b/source/a/mdadm/mdadm.static.diff
deleted file mode 100644
index ae8a46421..000000000
--- a/source/a/mdadm/mdadm.static.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./Makefile.orig 2009-03-10 01:01:17.000000000 -0500
-+++ ./Makefile 2010-05-16 20:56:33.000000000 -0500
-@@ -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/minicom/minicom.SlackBuild b/source/a/minicom/minicom.SlackBuild
index be060ec23..19ec515fa 100755
--- a/source/a/minicom/minicom.SlackBuild
+++ b/source/a/minicom/minicom.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.5
+VERSION=2.6
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j6}
@@ -56,7 +56,7 @@ mkdir -p $TMP $PKG
# minicom
cd $TMP
rm -rf minicom-$VERSION
-tar xzvf $CWD/minicom-$VERSION.tar.gz || exit 1
+tar xvf $CWD/minicom-$VERSION.tar.xz || exit 1
cd minicom-$VERSION
# The following command renames the internal implementation of getline
@@ -79,7 +79,7 @@ make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/etc
zcat $CWD/minicom.users.gz > $PKG/etc/minicom.users.new
-printf "# Machine-generated file - use "minicom -s" to change parameters.\n" \
+printf "# Machine-generated file - use \"minicom -s\" to change parameters.\n" \
> $PKG/etc/minirc.dfl.new
mkdir -p $PKG/usr/doc/minicom-$VERSION
@@ -97,8 +97,6 @@ if [ -r ChangeLog ]; then
fi
# lzrz
-# If autotools causes failure here (which it probably will), temporarily
-# move /usr/bin/auto{conf,header,make} out of the way and it should work...
cd $TMP
rm -rf lrzsz-990823
@@ -119,6 +117,9 @@ for i in debian/patches/* ; do patch -p1 < $i || exit 1 ; done
--mandir=/usr/man \
--build=$ARCH-slackware-linux
+touch stamp-h.in # to stop autoheader from running
+touch -d yesterday aclocal.m4 # to stop automake from running
+
make $NUMJOBS || make || exit 1
cp src/lrz src/lsz $PKG/usr/bin
diff --git a/source/a/mkinitrd/README.initrd b/source/a/mkinitrd/README.initrd
index ca95c3322..c10bb6306 100644
--- a/source/a/mkinitrd/README.initrd
+++ b/source/a/mkinitrd/README.initrd
@@ -1,10 +1,10 @@
Slackware initrd mini HOWTO
by Patrick Volkerding, volkerdi@slackware.com
-Thu Apr 7 06:02:26 CDT 2011
+@DATE@
This document describes how to create and install an initrd, which may be
-required to use the 2.6 kernel. Also see "man mkinitrd".
+required to use some features of the kernel. Also see "man mkinitrd".
1. What is an initrd?
2. Why to I need an initrd?
@@ -33,26 +33,26 @@ flexible to ship a generic kernel and a set of kernel modules for it.
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.37.6 Linux kernel using the packages
+upgrading to the generic @KERNEL_VERSION@ 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.37.6-i686-1.tgz
- installpkg kernel-modules-2.6.37.6-i686-1.tgz
- installpkg mkinitrd-1.1.0-i486-1.tgz
+ installpkg kernel-generic-@KERNEL_VERSION@-@ARCH@-@BUILD@.tgz
+ installpkg kernel-modules-@KERNEL_VERSION@-@ARCH@-@BUILD@.tgz
+ installpkg mkinitrd-@MKINITRD_VERSION@-@ARCH@-@BUILD@.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:
+Now you'll want to run "mkinitrd". I'm using ext4 for my root
+filesystem, and since mkinitrd should figure out any other modules
+it requires, I shouldn't need to specify any others:
- mkinitrd -c -k 2.6.37.6 -m reiserfs
+ mkinitrd -c -k @KERNEL_VERSION@ -m ext4
This should do two things. First, it will create a directory
/boot/initrd-tree containing the initrd's filesystem. Then it will
@@ -61,10 +61,10 @@ 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.37.6
+Here's another example: Build an initrd image using Linux @KERNEL_VERSION@
kernel modules for a system with an ext3 root partition on /dev/sdb3:
- mkinitrd -c -k 2.6.37.6 -m ext3 -f ext3 -r /dev/sdb3
+ mkinitrd -c -k @KERNEL_VERSION@ -m ext3 -f ext3 -r /dev/sdb3
4. Now that I've built an initrd, how do I use it?
@@ -76,10 +76,10 @@ 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.37.6
+image = /boot/vmlinuz-generic-@KERNEL_VERSION@
initrd = /boot/initrd.gz
root = /dev/sda6
- label = Lnx26376
+ label = @LILO_KERNEL_NAME@
read-only
# Linux bootable partition config ends
diff --git a/source/a/mkinitrd/busybox-dot-config b/source/a/mkinitrd/busybox-dot-config
index 35b32a4f9..09ac6817e 100644..120000
--- a/source/a/mkinitrd/busybox-dot-config
+++ b/source/a/mkinitrd/busybox-dot-config
@@ -1,990 +1 @@
-#
-# Automatically generated make config: don't edit
-# Busybox version: 1.18.4
-# Fri Mar 25 23:08:06 2011
-#
-CONFIG_HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-CONFIG_DESKTOP=y
-# CONFIG_EXTRA_COMPAT is not set
-CONFIG_INCLUDE_SUSv2=y
-# CONFIG_USE_PORTABLE_CODE is not set
-CONFIG_PLATFORM_LINUX=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_INSTALL_NO_USR=y
-CONFIG_LOCALE_SUPPORT=y
-CONFIG_UNICODE_SUPPORT=y
-# CONFIG_UNICODE_USING_LOCALE is not set
-# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
-CONFIG_SUBST_WCHAR=63
-CONFIG_LAST_SUPPORTED_WCHAR=767
-# CONFIG_UNICODE_COMBINING_WCHARS is not set
-# CONFIG_UNICODE_WIDE_WCHARS is not set
-# CONFIG_UNICODE_BIDI_SUPPORT is not set
-# CONFIG_UNICODE_NEUTRAL_TABLE is not set
-# CONFIG_UNICODE_PRESERVE_BROKEN is not set
-CONFIG_LONG_OPTS=y
-CONFIG_FEATURE_DEVPTS=y
-# CONFIG_FEATURE_CLEAN_UP is not set
-CONFIG_FEATURE_WTMP=y
-CONFIG_FEATURE_UTMP=y
-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 is not set
-# 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=""
-CONFIG_EXTRA_CFLAGS=""
-
-#
-# 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
-
-#
-# Installation Options ("make install" behavior)
-#
-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="/tmp/package-mkinitrd/usr/share/mkinitrd/initrd-tree"
-
-#
-# 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_USE_TERMIOS=y
-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_EDITING_ASK_TERMINAL=y
-# CONFIG_FEATURE_NON_POSIX_CP is not set
-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_XZ=y
-# 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_FEATURE_AR_CREATE is not set
-CONFIG_BUNZIP2=y
-CONFIG_BZIP2=y
-CONFIG_CPIO=y
-CONFIG_FEATURE_CPIO_O=y
-CONFIG_FEATURE_CPIO_P=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_FEATURE_GZIP_LONG_OPTIONS=y
-CONFIG_LZOP=y
-CONFIG_LZOP_COMPR_HIGH=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_TO_COMMAND is not set
-CONFIG_FEATURE_TAR_UNAME_GNAME=y
-CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
-# CONFIG_FEATURE_TAR_SELINUX is not set
-CONFIG_UNCOMPRESS=y
-CONFIG_UNLZMA=y
-CONFIG_FEATURE_LZMA_FAST=y
-CONFIG_LZMA=y
-CONFIG_UNXZ=y
-CONFIG_XZ=y
-CONFIG_UNZIP=y
-
-#
-# Coreutils
-#
-CONFIG_BASENAME=y
-CONFIG_CAT=y
-CONFIG_DATE=y
-CONFIG_FEATURE_DATE_ISOFMT=y
-# CONFIG_FEATURE_DATE_NANO is not set
-# CONFIG_FEATURE_DATE_COMPAT is not set
-CONFIG_TEST=y
-CONFIG_FEATURE_TEST_64=y
-CONFIG_TR=y
-CONFIG_FEATURE_TR_CLASSES=y
-CONFIG_FEATURE_TR_EQUIV=y
-CONFIG_BASE64=y
-CONFIG_CAL=y
-CONFIG_CATV=y
-CONFIG_CHGRP=y
-CONFIG_CHMOD=y
-CONFIG_CHOWN=y
-# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
-CONFIG_CHROOT=y
-CONFIG_CKSUM=y
-CONFIG_COMM=y
-CONFIG_CP=y
-CONFIG_FEATURE_CP_LONG_OPTIONS=y
-CONFIG_CUT=y
-CONFIG_DD=y
-CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
-# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
-CONFIG_FEATURE_DD_IBS_OBS=y
-CONFIG_DF=y
-CONFIG_FEATURE_DF_FANCY=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_FSYNC=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_SHA256SUM=y
-CONFIG_SHA512SUM=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_TOUCH=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, sha256sum, sha512sum
-#
-CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
-
-#
-# Console Utilities
-#
-CONFIG_CHVT=y
-CONFIG_FGCONSOLE=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_FEATURE_SETFONT_TEXTUAL_MAP=y
-CONFIG_DEFAULT_SETFONT_DIR="/usr/share/kbd/consolefonts"
-CONFIG_SETKEYCODES=y
-CONFIG_SETLOGCONS=y
-CONFIG_SHOWKEY=y
-
-#
-# Common options for loadfont and setfont
-#
-# CONFIG_FEATURE_LOADFONT_PSF2 is not set
-CONFIG_FEATURE_LOADFONT_RAW=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_PATCH=y
-CONFIG_AWK=y
-CONFIG_FEATURE_AWK_LIBM=y
-CONFIG_CMP=y
-CONFIG_DIFF=y
-# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
-CONFIG_FEATURE_DIFF_DIR=y
-CONFIG_ED=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_ASK_TERMINAL=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_FEATURE_FIND_LINKS=y
-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_BOOTCHARTD is not set
-# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
-# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
-CONFIG_HALT=y
-# CONFIG_FEATURE_CALL_TELINIT is not set
-CONFIG_TELINIT_PATH=""
-CONFIG_INIT=y
-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_INIT_TERMINAL_TYPE="linux"
-CONFIG_MESG=y
-
-#
-# Login/Password Management Utilities
-#
-CONFIG_ADD_SHELL=y
-CONFIG_REMOVE_SHELL=y
-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_USE_BB_CRYPT_SHA=y
-CONFIG_ADDUSER=y
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
-CONFIG_FEATURE_CHECK_NAMES=y
-CONFIG_FIRST_SYSTEM_ID=1000
-CONFIG_LAST_SYSTEM_ID=12000
-CONFIG_ADDGROUP=y
-CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
-CONFIG_FEATURE_ADDUSER_TO_GROUP=y
-CONFIG_DELUSER=y
-CONFIG_DELGROUP=y
-CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
-CONFIG_GETTY=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
-CONFIG_TUNE2FS=y
-
-#
-# Linux Module Utilities
-#
-CONFIG_MODINFO=y
-# 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_INSMOD=y
-CONFIG_RMMOD=y
-CONFIG_LSMOD=y
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-CONFIG_MODPROBE=y
-CONFIG_FEATURE_MODPROBE_BLACKLIST=y
-CONFIG_DEPMOD=y
-
-#
-# Options common to multiple modutils
-#
-CONFIG_FEATURE_2_4_MODULES=y
-# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
-# 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_FEATURE_CHECK_TAINTED_MODULE=y
-CONFIG_FEATURE_MODUTILS_ALIAS=y
-CONFIG_FEATURE_MODUTILS_SYMBOLS=y
-CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
-CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
-
-#
-# Linux System Utilities
-#
-CONFIG_BLOCKDEV=y
-CONFIG_REV=y
-CONFIG_ACPID=y
-CONFIG_FEATURE_ACPID_COMPAT=y
-CONFIG_BLKID=y
-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_GPT_LABEL=y
-CONFIG_FEATURE_FDISK_ADVANCED=y
-CONFIG_FINDFS=y
-# CONFIG_FLOCK is not set
-CONFIG_FREERAMDISK=y
-CONFIG_FSCK_MINIX=y
-# CONFIG_MKFS_EXT2 is not set
-CONFIG_MKFS_MINIX=y
-CONFIG_FEATURE_MINIX2=y
-# CONFIG_MKFS_REISER is not set
-CONFIG_MKFS_VFAT=y
-CONFIG_GETOPT=y
-CONFIG_FEATURE_GETOPT_LONG=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_LSPCI=y
-CONFIG_LSUSB=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_UUID=y
-CONFIG_MORE=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_SCRIPTREPLAY=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_MOUNT_LOOP_CREATE=y
-CONFIG_FEATURE_MTAB_SUPPORT=y
-CONFIG_VOLUMEID=y
-
-#
-# Filesystem/Volume identification
-#
-CONFIG_FEATURE_VOLUMEID_EXT=y
-# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
-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
-
-#
-# Miscellaneous Utilities
-#
-# CONFIG_CONSPY is not set
-# CONFIG_NANDWRITE is not set
-# CONFIG_NANDDUMP is not set
-# CONFIG_UBIATTACH is not set
-# CONFIG_UBIDETACH is not set
-CONFIG_ADJTIMEX=y
-CONFIG_BBCONFIG=y
-CONFIG_FEATURE_COMPRESS_BBCONFIG=y
-CONFIG_BEEP=y
-CONFIG_FEATURE_BEEP_FREQ=4000
-CONFIG_FEATURE_BEEP_LENGTH_MS=30
-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_FEATURE_CROND_D=y
-# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
-CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
-CONFIG_CRONTAB=y
-CONFIG_DC=y
-CONFIG_FEATURE_DC_LIBM=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_DEVMEM=y
-CONFIG_EJECT=y
-CONFIG_FEATURE_EJECT_SCSI=y
-CONFIG_FBSPLASH=y
-# CONFIG_FLASHCP is not set
-CONFIG_FLASH_LOCK=y
-CONFIG_FLASH_UNLOCK=y
-CONFIG_FLASH_ERASEALL=y
-CONFIG_IONICE=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_MARKS=y
-CONFIG_FEATURE_LESS_REGEXP=y
-CONFIG_FEATURE_LESS_WINCH=y
-CONFIG_FEATURE_LESS_DASHCMD=y
-CONFIG_FEATURE_LESS_LINENUMS=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_RFKILL is not set
-CONFIG_RUNLEVEL=y
-CONFIG_RX=y
-CONFIG_SETSID=y
-CONFIG_STRINGS=y
-CONFIG_TASKSET=y
-CONFIG_FEATURE_TASKSET_FANCY=y
-CONFIG_TIME=y
-CONFIG_TIMEOUT=y
-CONFIG_TTYSIZE=y
-CONFIG_VOLNAME=y
-# CONFIG_WALL is not set
-CONFIG_WATCHDOG=y
-
-#
-# Networking Utilities
-#
-CONFIG_NBDCLIENT=y
-CONFIG_NC=y
-CONFIG_NC_SERVER=y
-CONFIG_NC_EXTRA=y
-# CONFIG_NC_110_COMPAT is not set
-CONFIG_FEATURE_IPV6=y
-CONFIG_FEATURE_UNIX_LOCAL=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_FTPD=y
-CONFIG_FEATURE_FTP_WRITE=y
-CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=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_SETUID is not set
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 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_FEATURE_HTTPD_GZIP 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_IFPLUGD=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_NETSTAT=y
-# CONFIG_FEATURE_NETSTAT_WIDE is not set
-CONFIG_FEATURE_NETSTAT_PRG=y
-CONFIG_NSLOOKUP=y
-# CONFIG_NTPD is not set
-# CONFIG_FEATURE_NTPD_SERVER is not set
-CONFIG_PING=y
-CONFIG_PING6=y
-CONFIG_FEATURE_FANCY_PING=y
-CONFIG_PSCAN=y
-CONFIG_ROUTE=y
-CONFIG_SLATTACH=y
-CONFIG_TCPSVD=y
-CONFIG_TELNET=y
-CONFIG_FEATURE_TELNET_TTYPE=y
-CONFIG_FEATURE_TELNET_AUTOLOGIN=y
-CONFIG_TELNETD=y
-CONFIG_FEATURE_TELNETD_STANDALONE=y
-# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
-CONFIG_TFTP=y
-# CONFIG_TFTPD is not set
-
-#
-# Common options for tftp/tftpd
-#
-CONFIG_FEATURE_TFTP_GET=y
-CONFIG_FEATURE_TFTP_PUT=y
-CONFIG_FEATURE_TFTP_BLOCKSIZE=y
-CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
-CONFIG_TFTP_DEBUG=y
-CONFIG_TRACEROUTE=y
-CONFIG_TRACEROUTE6=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_TUNCTL=y
-CONFIG_FEATURE_TUNCTL_UG=y
-# CONFIG_UDHCPD is not set
-# CONFIG_DHCPRELAY is not set
-# CONFIG_DUMPLEASES is not set
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
-CONFIG_DHCPD_LEASES_FILE=""
-# CONFIG_UDHCPC is not set
-# CONFIG_FEATURE_UDHCPC_ARPING is not set
-# CONFIG_FEATURE_UDHCP_PORT is not set
-CONFIG_UDHCP_DEBUG=0
-# CONFIG_FEATURE_UDHCP_RFC3397 is not set
-CONFIG_UDHCPC_DEFAULT_SCRIPT=""
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
-CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
-CONFIG_UDPSVD=y
-CONFIG_VCONFIG=y
-CONFIG_WGET=y
-CONFIG_FEATURE_WGET_STATUSBAR=y
-CONFIG_FEATURE_WGET_AUTHENTICATION=y
-CONFIG_FEATURE_WGET_LONG_OPTIONS=y
-CONFIG_FEATURE_WGET_TIMEOUT=y
-CONFIG_ZCIP=y
-
-#
-# Print Utilities
-#
-# CONFIG_LPD is not set
-CONFIG_LPR=y
-# CONFIG_LPQ is not set
-
-#
-# Mail Utilities
-#
-CONFIG_MAKEMIME=y
-CONFIG_FEATURE_MIME_CHARSET="us-ascii"
-CONFIG_POPMAILDIR=y
-CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
-CONFIG_REFORMIME=y
-CONFIG_FEATURE_REFORMIME_COMPAT=y
-# CONFIG_SENDMAIL is not set
-
-#
-# Process Utilities
-#
-CONFIG_IOSTAT=y
-CONFIG_MPSTAT=y
-CONFIG_PMAP=y
-CONFIG_POWERTOP=y
-# CONFIG_SMEMCAP is not set
-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_ADDITIONAL_COLUMNS=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_SMP_CPU=y
-CONFIG_FEATURE_TOP_DECIMALS=y
-CONFIG_FEATURE_TOP_SMP_PROCESS=y
-CONFIG_FEATURE_TOPMEM=y
-CONFIG_FEATURE_SHOW_THREADS=y
-CONFIG_UPTIME=y
-CONFIG_WATCH=y
-
-#
-# Runit Utilities
-#
-CONFIG_RUNSV=y
-CONFIG_RUNSVDIR=y
-CONFIG_FEATURE_RUNSVDIR_LOG=y
-CONFIG_SV=y
-CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
-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
-
-#
-# Shells
-#
-CONFIG_ASH=y
-CONFIG_ASH_BASH_COMPAT=y
-CONFIG_ASH_JOB_CONTROL=y
-CONFIG_ASH_ALIAS=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_CTTYHACK=y
-# CONFIG_HUSH is not set
-# CONFIG_HUSH_BASH_COMPAT is not set
-# CONFIG_HUSH_BRACE_EXPANSION is not set
-# CONFIG_HUSH_HELP is not set
-# CONFIG_HUSH_INTERACTIVE is not set
-# CONFIG_HUSH_SAVEHISTORY 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_HUSH_FUNCTIONS is not set
-# CONFIG_HUSH_LOCAL is not set
-# CONFIG_HUSH_RANDOM_SUPPORT is not set
-# CONFIG_HUSH_EXPORT_N is not set
-# CONFIG_HUSH_MODE_X is not set
-# CONFIG_MSH is not set
-CONFIG_FEATURE_SH_IS_ASH=y
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-# CONFIG_FEATURE_SH_IS_NONE is not set
-# CONFIG_FEATURE_BASH_IS_ASH is not set
-# CONFIG_FEATURE_BASH_IS_HUSH is not set
-CONFIG_FEATURE_BASH_IS_NONE=y
-CONFIG_SH_MATH_SUPPORT=y
-CONFIG_SH_MATH_SUPPORT_64=y
-CONFIG_FEATURE_SH_EXTRA_QUIET=y
-# CONFIG_FEATURE_SH_STANDALONE is not set
-# CONFIG_FEATURE_SH_NOFORK is not set
-
-#
-# 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_SYSLOGD_READ_BUFFER_SIZE=256
-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_FEATURE_KLOGD_KLOGCTL=y
-CONFIG_LOGGER=y
+busybox-dot-config.1.20.x \ No newline at end of file
diff --git a/source/a/mkinitrd/busybox-dot-config.1.18.x b/source/a/mkinitrd/busybox-dot-config.1.18.x
new file mode 100644
index 000000000..35b32a4f9
--- /dev/null
+++ b/source/a/mkinitrd/busybox-dot-config.1.18.x
@@ -0,0 +1,990 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.18.4
+# Fri Mar 25 23:08:06 2011
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=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_INSTALL_NO_USR=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_WTMP=y
+CONFIG_FEATURE_UTMP=y
+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 is not set
+# 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=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# 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
+
+#
+# Installation Options ("make install" behavior)
+#
+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="/tmp/package-mkinitrd/usr/share/mkinitrd/initrd-tree"
+
+#
+# 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_USE_TERMIOS=y
+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_EDITING_ASK_TERMINAL=y
+# CONFIG_FEATURE_NON_POSIX_CP is not set
+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_XZ=y
+# 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_FEATURE_AR_CREATE is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=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_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_LZOP=y
+CONFIG_LZOP_COMPR_HIGH=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_TO_COMMAND is not set
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=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_FSYNC=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_SHA256SUM=y
+CONFIG_SHA512SUM=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_TOUCH=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, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=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_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR="/usr/share/kbd/consolefonts"
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+# CONFIG_FEATURE_LOADFONT_PSF2 is not set
+CONFIG_FEATURE_LOADFONT_RAW=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_PATCH=y
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=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_ASK_TERMINAL=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_FEATURE_FIND_LINKS=y
+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_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+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_INIT_TERMINAL_TYPE="linux"
+CONFIG_MESG=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
+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_USE_BB_CRYPT_SHA=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_FIRST_SYSTEM_ID=1000
+CONFIG_LAST_SYSTEM_ID=12000
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=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
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+# 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_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+CONFIG_DEPMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_2_4_MODULES=y
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# 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_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_MODUTILS_ALIAS=y
+CONFIG_FEATURE_MODUTILS_SYMBOLS=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_REV=y
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKID=y
+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_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+# CONFIG_FLOCK is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+# CONFIG_MKFS_EXT2 is not set
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=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_LSPCI=y
+CONFIG_LSUSB=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_UUID=y
+CONFIG_MORE=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_SCRIPTREPLAY=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_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+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
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+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_FEATURE_CROND_D=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+CONFIG_FEATURE_DC_LIBM=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_DEVMEM=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+# CONFIG_FLASHCP is not set
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=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_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=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_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WALL is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=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_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=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_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 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_FEATURE_HTTPD_GZIP 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_IFPLUGD=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_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_TFTP_DEBUG=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=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_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+CONFIG_MAKEMIME=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+CONFIG_REFORMIME=y
+CONFIG_FEATURE_REFORMIME_COMPAT=y
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+# CONFIG_SMEMCAP is not set
+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_ADDITIONAL_COLUMNS=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_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_FEATURE_SHOW_THREADS=y
+CONFIG_UPTIME=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_FEATURE_RUNSVDIR_LOG=y
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+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
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=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_CTTYHACK=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY 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_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+
+#
+# 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_SYSLOGD_READ_BUFFER_SIZE=256
+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_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/source/a/mkinitrd/busybox-dot-config.1.19.x b/source/a/mkinitrd/busybox-dot-config.1.19.x
new file mode 100644
index 000000000..864fed9da
--- /dev/null
+++ b/source/a/mkinitrd/busybox-dot-config.1.19.x
@@ -0,0 +1,1013 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.19.3
+# Sat Dec 10 20:40:02 2011
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=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_INSTALL_NO_USR=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+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 is not set
+# 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=""
+CONFIG_EXTRA_CFLAGS=""
+
+#
+# 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
+
+#
+# Installation Options ("make install" behavior)
+#
+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="/tmp/package-mkinitrd/usr/share/mkinitrd/initrd-tree"
+
+#
+# Busybox Library Tuning
+#
+# CONFIG_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+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_USE_TERMIOS=y
+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_REVERSE_SEARCH is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_ASK_TERMINAL=y
+# CONFIG_FEATURE_NON_POSIX_CP is not set
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_FEATURE_SKIP_ROOTFS is not set
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+# 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_FEATURE_AR_CREATE is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=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_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_LZOP=y
+CONFIG_LZOP_COMPR_HIGH=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_TO_COMMAND is not set
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_ID=y
+# CONFIG_GROUPS is not set
+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_BASE64=y
+CONFIG_WHO=y
+CONFIG_USERS=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=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_FSYNC=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_HOSTID=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=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_SHA256SUM=y
+CONFIG_SHA512SUM=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_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_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, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=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_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR="/usr/share/kbd/consolefonts"
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+# CONFIG_FEATURE_LOADFONT_PSF2 is not set
+CONFIG_FEATURE_LOADFONT_RAW=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_PATCH=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_REGEX_SEARCH is not set
+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_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_SED=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_FEATURE_FIND_LINKS=y
+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_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+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_INIT_TERMINAL_TYPE="linux"
+CONFIG_MESG=y
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
+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_USE_BB_CRYPT_SHA=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_FIRST_SYSTEM_ID=1000
+CONFIG_LAST_SYSTEM_ID=12000
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=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
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+# 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_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+CONFIG_DEPMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_2_4_MODULES=y
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# 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_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_MODUTILS_ALIAS=y
+CONFIG_FEATURE_MODUTILS_SYMBOLS=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=y
+CONFIG_REV=y
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKID=y
+CONFIG_FEATURE_BLKID_TYPE=y
+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 is not set
+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_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+# CONFIG_FLOCK is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+# CONFIG_MKFS_EXT2 is not set
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=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_LSPCI=y
+CONFIG_LSUSB=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_UUID=y
+CONFIG_MORE=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_SCRIPTREPLAY=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_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+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
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+CONFIG_SETSERIAL=y
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_UBIMKVOL is not set
+# CONFIG_UBIRMVOL is not set
+# CONFIG_UBIRSVOL is not set
+# CONFIG_UBIUPDATEVOL is not set
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+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_FEATURE_CROND_D=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+CONFIG_FEATURE_DC_LIBM=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_DEVMEM=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+# CONFIG_FLASHCP is not set
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+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_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WALL is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_WHOIS is not set
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=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_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=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_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 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_FEATURE_HTTPD_GZIP 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_IFPLUGD=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_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_TFTP_DEBUG=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=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_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+# CONFIG_FEATURE_UDHCP_8021Q is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+CONFIG_MAKEMIME=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+CONFIG_REFORMIME=y
+CONFIG_FEATURE_REFORMIME_COMPAT=y
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_MPSTAT=y
+CONFIG_NMETER=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+# CONFIG_PSTREE is not set
+# CONFIG_PWDX is not set
+# CONFIG_SMEMCAP is not set
+CONFIG_UPTIME=y
+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=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_ADDITIONAL_COLUMNS=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_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_FEATURE_SHOW_THREADS=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_FEATURE_RUNSVDIR_LOG=y
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+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
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+# CONFIG_ASH_IDLE_TIMEOUT is not set
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=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_CTTYHACK=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY 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_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_FEATURE_SH_HISTFILESIZE=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_SYSLOGD_CFG is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
+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_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/source/a/mkinitrd/busybox-dot-config.1.20.x b/source/a/mkinitrd/busybox-dot-config.1.20.x
new file mode 100644
index 000000000..3184ac281
--- /dev/null
+++ b/source/a/mkinitrd/busybox-dot-config.1.20.x
@@ -0,0 +1,1024 @@
+#
+# Automatically generated make config: don't edit
+# Busybox version: 1.20.1
+# Tue Jun 12 09:42:03 2012
+#
+CONFIG_HAVE_DOT_CONFIG=y
+
+#
+# Busybox Settings
+#
+
+#
+# General Configuration
+#
+CONFIG_DESKTOP=y
+# CONFIG_EXTRA_COMPAT is not set
+CONFIG_INCLUDE_SUSv2=y
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_PLATFORM_LINUX=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_INSTALL_NO_USR=y
+CONFIG_LOCALE_SUPPORT=y
+CONFIG_UNICODE_SUPPORT=y
+# CONFIG_UNICODE_USING_LOCALE is not set
+# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
+CONFIG_SUBST_WCHAR=63
+CONFIG_LAST_SUPPORTED_WCHAR=767
+# CONFIG_UNICODE_COMBINING_WCHARS is not set
+# CONFIG_UNICODE_WIDE_WCHARS is not set
+# CONFIG_UNICODE_BIDI_SUPPORT is not set
+# CONFIG_UNICODE_NEUTRAL_TABLE is not set
+# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+CONFIG_LONG_OPTS=y
+CONFIG_FEATURE_DEVPTS=y
+# CONFIG_FEATURE_CLEAN_UP is not set
+CONFIG_FEATURE_UTMP=y
+CONFIG_FEATURE_WTMP=y
+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 is not set
+# 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=""
+CONFIG_SYSROOT=""
+CONFIG_EXTRA_CFLAGS=""
+CONFIG_EXTRA_LDFLAGS=""
+CONFIG_EXTRA_LDLIBS=""
+
+#
+# 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
+
+#
+# Installation Options ("make install" behavior)
+#
+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="/tmp/package-mkinitrd/usr/share/mkinitrd/initrd-tree"
+
+#
+# Busybox Library Tuning
+#
+# CONFIG_FEATURE_SYSTEMD is not set
+CONFIG_FEATURE_RTMINMAX=y
+CONFIG_PASSWORD_MINLEN=6
+CONFIG_MD5_SMALL=1
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+CONFIG_FEATURE_USE_TERMIOS=y
+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_EDITING_SAVE_ON_EXIT is not set
+# CONFIG_FEATURE_REVERSE_SEARCH is not set
+CONFIG_FEATURE_TAB_COMPLETION=y
+# CONFIG_FEATURE_USERNAME_COMPLETION is not set
+CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_ASK_TERMINAL=y
+# CONFIG_FEATURE_NON_POSIX_CP is not set
+CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+# CONFIG_FEATURE_SKIP_ROOTFS is not set
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
+# CONFIG_FEATURE_HWIB is not set
+
+#
+# Applets
+#
+
+#
+# Archival Utilities
+#
+CONFIG_FEATURE_SEAMLESS_XZ=y
+# 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_FEATURE_AR_CREATE is not set
+CONFIG_BUNZIP2=y
+CONFIG_BZIP2=y
+CONFIG_CPIO=y
+CONFIG_FEATURE_CPIO_O=y
+CONFIG_FEATURE_CPIO_P=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_FEATURE_GZIP_LONG_OPTIONS=y
+CONFIG_GZIP_FAST=0
+CONFIG_LZOP=y
+CONFIG_LZOP_COMPR_HIGH=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_TO_COMMAND is not set
+CONFIG_FEATURE_TAR_UNAME_GNAME=y
+CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
+# CONFIG_FEATURE_TAR_SELINUX is not set
+CONFIG_UNCOMPRESS=y
+CONFIG_UNLZMA=y
+CONFIG_FEATURE_LZMA_FAST=y
+CONFIG_LZMA=y
+CONFIG_UNXZ=y
+CONFIG_XZ=y
+CONFIG_UNZIP=y
+
+#
+# Coreutils
+#
+CONFIG_BASENAME=y
+CONFIG_CAT=y
+CONFIG_DATE=y
+CONFIG_FEATURE_DATE_ISOFMT=y
+# CONFIG_FEATURE_DATE_NANO is not set
+# CONFIG_FEATURE_DATE_COMPAT is not set
+CONFIG_HOSTID=y
+CONFIG_ID=y
+# CONFIG_GROUPS is not set
+CONFIG_TEST=y
+CONFIG_FEATURE_TEST_64=y
+CONFIG_TOUCH=y
+CONFIG_FEATURE_TOUCH_SUSV3=y
+CONFIG_TR=y
+CONFIG_FEATURE_TR_CLASSES=y
+CONFIG_FEATURE_TR_EQUIV=y
+CONFIG_BASE64=y
+CONFIG_WHO=y
+CONFIG_USERS=y
+CONFIG_CAL=y
+CONFIG_CATV=y
+CONFIG_CHGRP=y
+CONFIG_CHMOD=y
+CONFIG_CHOWN=y
+# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
+CONFIG_CHROOT=y
+CONFIG_CKSUM=y
+CONFIG_COMM=y
+CONFIG_CP=y
+CONFIG_FEATURE_CP_LONG_OPTIONS=y
+CONFIG_CUT=y
+CONFIG_DD=y
+CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
+# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_IBS_OBS=y
+CONFIG_DF=y
+CONFIG_FEATURE_DF_FANCY=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_FSYNC=y
+CONFIG_HEAD=y
+CONFIG_FEATURE_FANCY_HEAD=y
+CONFIG_INSTALL=y
+CONFIG_FEATURE_INSTALL_LONG_OPTIONS=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_SHA256SUM=y
+CONFIG_SHA512SUM=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_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_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, sha256sum, sha512sum
+#
+CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
+
+#
+# Console Utilities
+#
+CONFIG_CHVT=y
+CONFIG_FGCONSOLE=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_FEATURE_SETFONT_TEXTUAL_MAP=y
+CONFIG_DEFAULT_SETFONT_DIR="/usr/share/kbd/consolefonts"
+CONFIG_SETKEYCODES=y
+CONFIG_SETLOGCONS=y
+CONFIG_SHOWKEY=y
+
+#
+# Common options for loadfont and setfont
+#
+# CONFIG_FEATURE_LOADFONT_PSF2 is not set
+CONFIG_FEATURE_LOADFONT_RAW=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_PATCH=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_REGEX_SEARCH is not set
+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_ASK_TERMINAL=y
+CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
+CONFIG_AWK=y
+CONFIG_FEATURE_AWK_LIBM=y
+CONFIG_CMP=y
+CONFIG_DIFF=y
+# CONFIG_FEATURE_DIFF_LONG_OPTIONS is not set
+CONFIG_FEATURE_DIFF_DIR=y
+CONFIG_ED=y
+CONFIG_SED=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_FEATURE_FIND_LINKS=y
+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_BOOTCHARTD is not set
+# CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
+# CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
+CONFIG_HALT=y
+# CONFIG_FEATURE_CALL_TELINIT is not set
+CONFIG_TELINIT_PATH=""
+CONFIG_INIT=y
+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_INIT_TERMINAL_TYPE="linux"
+CONFIG_MESG=y
+CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
+
+#
+# Login/Password Management Utilities
+#
+CONFIG_ADD_SHELL=y
+CONFIG_REMOVE_SHELL=y
+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_USE_BB_CRYPT_SHA=y
+CONFIG_ADDUSER=y
+# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
+CONFIG_FEATURE_CHECK_NAMES=y
+CONFIG_FIRST_SYSTEM_ID=1000
+CONFIG_LAST_SYSTEM_ID=12000
+CONFIG_ADDGROUP=y
+CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y
+CONFIG_FEATURE_ADDUSER_TO_GROUP=y
+CONFIG_DELUSER=y
+CONFIG_DELGROUP=y
+CONFIG_FEATURE_DEL_USER_FROM_GROUP=y
+CONFIG_GETTY=y
+CONFIG_LOGIN=y
+# CONFIG_LOGIN_SESSION_AS_CHILD is not set
+# 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_FEATURE_DEFAULT_PASSWD_ALGO="s"
+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
+CONFIG_TUNE2FS=y
+
+#
+# Linux Module Utilities
+#
+CONFIG_MODINFO=y
+# 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_INSMOD=y
+CONFIG_RMMOD=y
+CONFIG_LSMOD=y
+CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
+CONFIG_MODPROBE=y
+CONFIG_FEATURE_MODPROBE_BLACKLIST=y
+CONFIG_DEPMOD=y
+
+#
+# Options common to multiple modutils
+#
+CONFIG_FEATURE_2_4_MODULES=y
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
+# 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_FEATURE_CHECK_TAINTED_MODULE=y
+CONFIG_FEATURE_MODUTILS_ALIAS=y
+CONFIG_FEATURE_MODUTILS_SYMBOLS=y
+CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
+CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
+
+#
+# Linux System Utilities
+#
+CONFIG_BLOCKDEV=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_REV=y
+CONFIG_ACPID=y
+CONFIG_FEATURE_ACPID_COMPAT=y
+CONFIG_BLKID=y
+CONFIG_FEATURE_BLKID_TYPE=y
+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 is not set
+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_GPT_LABEL=y
+CONFIG_FEATURE_FDISK_ADVANCED=y
+CONFIG_FINDFS=y
+# CONFIG_FLOCK is not set
+CONFIG_FREERAMDISK=y
+CONFIG_FSCK_MINIX=y
+# CONFIG_MKFS_EXT2 is not set
+CONFIG_MKFS_MINIX=y
+CONFIG_FEATURE_MINIX2=y
+# CONFIG_MKFS_REISER is not set
+CONFIG_MKFS_VFAT=y
+CONFIG_GETOPT=y
+CONFIG_FEATURE_GETOPT_LONG=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_LSPCI=y
+CONFIG_LSUSB=y
+CONFIG_MKSWAP=y
+CONFIG_FEATURE_MKSWAP_UUID=y
+CONFIG_MORE=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_SCRIPTREPLAY=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_MOUNT_LOOP_CREATE=y
+CONFIG_FEATURE_MTAB_SUPPORT=y
+CONFIG_VOLUMEID=y
+
+#
+# Filesystem/Volume identification
+#
+CONFIG_FEATURE_VOLUMEID_EXT=y
+# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
+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
+
+#
+# Miscellaneous Utilities
+#
+# CONFIG_CONSPY is not set
+CONFIG_LESS=y
+CONFIG_FEATURE_LESS_MAXLINES=9999999
+CONFIG_FEATURE_LESS_BRACKETS=y
+CONFIG_FEATURE_LESS_FLAGS=y
+CONFIG_FEATURE_LESS_MARKS=y
+CONFIG_FEATURE_LESS_REGEXP=y
+CONFIG_FEATURE_LESS_WINCH=y
+CONFIG_FEATURE_LESS_ASK_TERMINAL=y
+CONFIG_FEATURE_LESS_DASHCMD=y
+CONFIG_FEATURE_LESS_LINENUMS=y
+# CONFIG_NANDWRITE is not set
+# CONFIG_NANDDUMP is not set
+CONFIG_SETSERIAL=y
+# CONFIG_UBIATTACH is not set
+# CONFIG_UBIDETACH is not set
+# CONFIG_UBIMKVOL is not set
+# CONFIG_UBIRMVOL is not set
+# CONFIG_UBIRSVOL is not set
+# CONFIG_UBIUPDATEVOL is not set
+CONFIG_ADJTIMEX=y
+CONFIG_BBCONFIG=y
+CONFIG_FEATURE_COMPRESS_BBCONFIG=y
+CONFIG_BEEP=y
+CONFIG_FEATURE_BEEP_FREQ=4000
+CONFIG_FEATURE_BEEP_LENGTH_MS=30
+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_FEATURE_CROND_D=y
+# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+CONFIG_FEATURE_CROND_DIR="/var/spool/cron"
+CONFIG_CRONTAB=y
+CONFIG_DC=y
+CONFIG_FEATURE_DC_LIBM=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_DEVMEM=y
+CONFIG_EJECT=y
+CONFIG_FEATURE_EJECT_SCSI=y
+CONFIG_FBSPLASH=y
+# CONFIG_FLASHCP is not set
+CONFIG_FLASH_LOCK=y
+CONFIG_FLASH_UNLOCK=y
+CONFIG_FLASH_ERASEALL=y
+CONFIG_IONICE=y
+CONFIG_INOTIFYD=y
+CONFIG_LAST=y
+CONFIG_FEATURE_LAST_SMALL=y
+# CONFIG_FEATURE_LAST_FANCY is not set
+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_RFKILL is not set
+CONFIG_RUNLEVEL=y
+CONFIG_RX=y
+CONFIG_SETSID=y
+CONFIG_STRINGS=y
+CONFIG_TASKSET=y
+CONFIG_FEATURE_TASKSET_FANCY=y
+CONFIG_TIME=y
+CONFIG_TIMEOUT=y
+CONFIG_TTYSIZE=y
+CONFIG_VOLNAME=y
+# CONFIG_WALL is not set
+CONFIG_WATCHDOG=y
+
+#
+# Networking Utilities
+#
+CONFIG_NAMEIF=y
+# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
+CONFIG_NBDCLIENT=y
+CONFIG_NC=y
+CONFIG_NC_SERVER=y
+CONFIG_NC_EXTRA=y
+# CONFIG_NC_110_COMPAT is not set
+CONFIG_PING=y
+CONFIG_PING6=y
+CONFIG_FEATURE_FANCY_PING=y
+# CONFIG_WHOIS is not set
+CONFIG_FEATURE_IPV6=y
+CONFIG_FEATURE_UNIX_LOCAL=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_FTPD=y
+CONFIG_FEATURE_FTP_WRITE=y
+CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=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_SETUID is not set
+# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
+# CONFIG_FEATURE_HTTPD_AUTH_MD5 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_FEATURE_HTTPD_GZIP 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_IFPLUGD=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_NETSTAT=y
+# CONFIG_FEATURE_NETSTAT_WIDE is not set
+CONFIG_FEATURE_NETSTAT_PRG=y
+CONFIG_NSLOOKUP=y
+# CONFIG_NTPD is not set
+# CONFIG_FEATURE_NTPD_SERVER is not set
+CONFIG_PSCAN=y
+CONFIG_ROUTE=y
+CONFIG_SLATTACH=y
+CONFIG_TCPSVD=y
+CONFIG_TELNET=y
+CONFIG_FEATURE_TELNET_TTYPE=y
+CONFIG_FEATURE_TELNET_AUTOLOGIN=y
+CONFIG_TELNETD=y
+CONFIG_FEATURE_TELNETD_STANDALONE=y
+# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
+CONFIG_TFTP=y
+# CONFIG_TFTPD is not set
+
+#
+# Common options for tftp/tftpd
+#
+CONFIG_FEATURE_TFTP_GET=y
+CONFIG_FEATURE_TFTP_PUT=y
+CONFIG_FEATURE_TFTP_BLOCKSIZE=y
+CONFIG_FEATURE_TFTP_PROGRESS_BAR=y
+CONFIG_TFTP_DEBUG=y
+CONFIG_TRACEROUTE=y
+CONFIG_TRACEROUTE6=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_TUNCTL=y
+CONFIG_FEATURE_TUNCTL_UG=y
+CONFIG_UDHCPC6=y
+# CONFIG_UDHCPD is not set
+# CONFIG_DHCPRELAY is not set
+# CONFIG_DUMPLEASES is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
+# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
+CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_UDHCPC is not set
+# CONFIG_FEATURE_UDHCPC_ARPING is not set
+# CONFIG_FEATURE_UDHCP_PORT is not set
+CONFIG_UDHCP_DEBUG=0
+# CONFIG_FEATURE_UDHCP_RFC3397 is not set
+# CONFIG_FEATURE_UDHCP_8021Q is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
+CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
+CONFIG_UDPSVD=y
+CONFIG_VCONFIG=y
+CONFIG_WGET=y
+CONFIG_FEATURE_WGET_STATUSBAR=y
+CONFIG_FEATURE_WGET_AUTHENTICATION=y
+CONFIG_FEATURE_WGET_LONG_OPTIONS=y
+CONFIG_FEATURE_WGET_TIMEOUT=y
+CONFIG_ZCIP=y
+
+#
+# Print Utilities
+#
+# CONFIG_LPD is not set
+CONFIG_LPR=y
+# CONFIG_LPQ is not set
+
+#
+# Mail Utilities
+#
+CONFIG_MAKEMIME=y
+CONFIG_FEATURE_MIME_CHARSET="us-ascii"
+CONFIG_POPMAILDIR=y
+CONFIG_FEATURE_POPMAILDIR_DELIVERY=y
+CONFIG_REFORMIME=y
+CONFIG_FEATURE_REFORMIME_COMPAT=y
+# CONFIG_SENDMAIL is not set
+
+#
+# Process Utilities
+#
+CONFIG_IOSTAT=y
+CONFIG_LSOF=y
+CONFIG_MPSTAT=y
+CONFIG_NMETER=y
+CONFIG_PMAP=y
+CONFIG_POWERTOP=y
+# CONFIG_PSTREE is not set
+# CONFIG_PWDX is not set
+# CONFIG_SMEMCAP is not set
+CONFIG_UPTIME=y
+# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
+CONFIG_FREE=y
+CONFIG_FUSER=y
+CONFIG_KILL=y
+CONFIG_KILLALL=y
+CONFIG_KILLALL5=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 is not set
+# CONFIG_FEATURE_PS_LONG is not set
+CONFIG_FEATURE_PS_TIME=y
+CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=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_SMP_CPU=y
+CONFIG_FEATURE_TOP_DECIMALS=y
+CONFIG_FEATURE_TOP_SMP_PROCESS=y
+CONFIG_FEATURE_TOPMEM=y
+CONFIG_FEATURE_SHOW_THREADS=y
+CONFIG_WATCH=y
+
+#
+# Runit Utilities
+#
+CONFIG_RUNSV=y
+CONFIG_RUNSVDIR=y
+CONFIG_FEATURE_RUNSVDIR_LOG=y
+CONFIG_SV=y
+CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service"
+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
+
+#
+# Shells
+#
+CONFIG_ASH=y
+CONFIG_ASH_BASH_COMPAT=y
+# CONFIG_ASH_IDLE_TIMEOUT is not set
+CONFIG_ASH_JOB_CONTROL=y
+CONFIG_ASH_ALIAS=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_CTTYHACK=y
+# CONFIG_HUSH is not set
+# CONFIG_HUSH_BASH_COMPAT is not set
+# CONFIG_HUSH_BRACE_EXPANSION is not set
+# CONFIG_HUSH_HELP is not set
+# CONFIG_HUSH_INTERACTIVE is not set
+# CONFIG_HUSH_SAVEHISTORY 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_HUSH_FUNCTIONS is not set
+# CONFIG_HUSH_LOCAL is not set
+# CONFIG_HUSH_RANDOM_SUPPORT is not set
+# CONFIG_HUSH_EXPORT_N is not set
+# CONFIG_HUSH_MODE_X is not set
+# CONFIG_MSH is not set
+CONFIG_FEATURE_SH_IS_ASH=y
+# CONFIG_FEATURE_SH_IS_HUSH is not set
+# CONFIG_FEATURE_SH_IS_NONE is not set
+# CONFIG_FEATURE_BASH_IS_ASH is not set
+# CONFIG_FEATURE_BASH_IS_HUSH is not set
+CONFIG_FEATURE_BASH_IS_NONE=y
+CONFIG_SH_MATH_SUPPORT=y
+CONFIG_SH_MATH_SUPPORT_64=y
+CONFIG_FEATURE_SH_EXTRA_QUIET=y
+# CONFIG_FEATURE_SH_STANDALONE is not set
+# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_FEATURE_SH_HISTFILESIZE=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_SYSLOGD_CFG is not set
+CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256
+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_FEATURE_KLOGD_KLOGCTL=y
+CONFIG_LOGGER=y
diff --git a/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ash.patch b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ash.patch
new file mode 100644
index 000000000..a012a7063
--- /dev/null
+++ b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ash.patch
@@ -0,0 +1,12 @@
+--- busybox-1.20.1/shell/ash.c
++++ busybox-1.20.1-ash/shell/ash.c
+@@ -6846,8 +6846,7 @@ evalvar(char *p, int flags, struct strli
+ patloc = expdest - (char *)stackblock();
+ if (NULL == subevalvar(p, /* varname: */ NULL, patloc, subtype,
+ startloc, varflags,
+-//TODO: | EXP_REDIR too? All other such places do it too
+- /* quotes: */ flags & (EXP_FULL | EXP_CASE),
++ /* quotes: */ flags & (EXP_FULL | EXP_CASE | EXP_REDIR),
+ var_str_list)
+ ) {
+ int amount = expdest - (
diff --git a/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ifupdown.patch b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ifupdown.patch
new file mode 100644
index 000000000..b2a945614
--- /dev/null
+++ b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-ifupdown.patch
@@ -0,0 +1,75 @@
+--- busybox-1.20.1/networking/ifupdown.c
++++ busybox-1.20.1-ifupdown/networking/ifupdown.c
+@@ -140,8 +140,6 @@ static const char keywords_up_down[] ALI
+ "up\0"
+ "down\0"
+ "pre-up\0"
+- "pre-down\0"
+- "post-up\0"
+ "post-down\0"
+ ;
+
+@@ -895,6 +893,11 @@ static struct interfaces_file_t *read_in
+ if (rest_of_line[0] == '\0')
+ bb_error_msg_and_die("option with empty value \"%s\"", buf);
+
++ if (strcmp(first_word, "post-up") == 0)
++ first_word += 5; /* "up" */
++ else if (strcmp(first_word, "pre-down") == 0)
++ first_word += 4; /* "down" */
++
+ /* If not one of "up", "down",... words... */
+ if (index_in_strings(keywords_up_down, first_word) < 0) {
+ int i;
+@@ -963,7 +966,7 @@ static char *setlocalenv(const char *for
+ return result;
+ }
+
+-static void set_environ(struct interface_defn_t *iface, const char *mode)
++static void set_environ(struct interface_defn_t *iface, const char *mode, const char *opt)
+ {
+ int i;
+ char **pp;
+@@ -976,7 +979,7 @@ static void set_environ(struct interface
+ }
+
+ /* note: last element will stay NULL: */
+- G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 6));
++ G.my_environ = xzalloc(sizeof(char *) * (iface->n_options + 7));
+ pp = G.my_environ;
+
+ for (i = 0; i < iface->n_options; i++) {
+@@ -990,6 +993,7 @@ static void set_environ(struct interface
+ *pp++ = setlocalenv("%s=%s", "ADDRFAM", iface->address_family->name);
+ *pp++ = setlocalenv("%s=%s", "METHOD", iface->method->name);
+ *pp++ = setlocalenv("%s=%s", "MODE", mode);
++ *pp++ = setlocalenv("%s=%s", "PHASE", opt);
+ if (G.startup_PATH)
+ *pp++ = setlocalenv("%s=%s", "PATH", G.startup_PATH);
+ }
+@@ -1044,21 +1048,21 @@ static int check(char *str)
+ static int iface_up(struct interface_defn_t *iface)
+ {
+ if (!iface->method->up(iface, check)) return -1;
+- set_environ(iface, "start");
++ set_environ(iface, "start", "pre-up");
+ if (!execute_all(iface, "pre-up")) return 0;
+ if (!iface->method->up(iface, doit)) return 0;
++ set_environ(iface, "start", "post-up");
+ if (!execute_all(iface, "up")) return 0;
+- if (!execute_all(iface, "post-up")) return 0;
+ return 1;
+ }
+
+ static int iface_down(struct interface_defn_t *iface)
+ {
+ if (!iface->method->down(iface,check)) return -1;
+- set_environ(iface, "stop");
+- if (!execute_all(iface, "pre-down")) return 0;
++ set_environ(iface, "stop", "pre-down");
+ if (!execute_all(iface, "down")) return 0;
+ if (!iface->method->down(iface, doit)) return 0;
++ set_environ(iface, "stop", "post-down");
+ if (!execute_all(iface, "post-down")) return 0;
+ return 1;
+ }
diff --git a/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-man.patch b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-man.patch
new file mode 100644
index 000000000..f382e078f
--- /dev/null
+++ b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-man.patch
@@ -0,0 +1,34 @@
+--- busybox-1.20.1/miscutils/man.c
++++ busybox-1.20.1-man/miscutils/man.c
+@@ -129,27 +129,21 @@ static int show_manpage(const char *page
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_XZ
+ strcpy(ext, "xz");
+- if (run_pipe(pager, man_filename, man, level))
++ if (run_pipe(pager, filename_with_zext, man, level))
+ return 1;
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_BZ2
+ strcpy(ext, "bz2");
+- if (run_pipe(pager, man_filename, man, level))
++ if (run_pipe(pager, filename_with_zext, man, level))
+ return 1;
+ #endif
+ #if ENABLE_FEATURE_SEAMLESS_GZ
+ strcpy(ext, "gz");
+- if (run_pipe(pager, man_filename, man, level))
++ if (run_pipe(pager, filename_with_zext, man, level))
+ return 1;
+ #endif
+
+-#if SEAMLESS_COMPRESSION
+- ext[-1] = '\0';
+-#endif
+- if (run_pipe(pager, man_filename, man, level))
+- return 1;
+-
+- return 0;
++ return run_pipe(pager, man_filename, man, level);
+ }
+
+ int man_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
diff --git a/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-tar.patch b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-tar.patch
new file mode 100644
index 000000000..4129b6517
--- /dev/null
+++ b/source/a/mkinitrd/fixes-1.20.1/busybox-1.20.1-tar.patch
@@ -0,0 +1,11 @@
+--- busybox-1.20.1/archival/libarchive/get_header_tar.c
++++ busybox-1.20.1-tar/archival/libarchive/get_header_tar.c
+@@ -84,7 +84,7 @@ static unsigned long long getOctal(char
+ first >>= 1; /* now 7th bit = 6th bit */
+ v = first; /* sign-extend 8 bits to 64 */
+ while (--len != 0)
+- v = (v << 8) + (unsigned char) *str++;
++ v = (v << 8) + (uint8_t) *++str;
+ }
+ return v;
+ }
diff --git a/source/a/mkinitrd/init b/source/a/mkinitrd/init
index 2205a5928..ae475d890 100755
--- a/source/a/mkinitrd/init
+++ b/source/a/mkinitrd/init
@@ -78,6 +78,7 @@ PATH="/sbin:/bin:/usr/sbin:/usr/bin"
# Mount /proc and /sys:
mount -n proc /proc -t proc
mount -n sysfs /sys -t sysfs
+mount -n tmpfs /run -t tmpfs -o mode=0755
if grep devtmpfs /proc/filesystems 1>/dev/null 2>/dev/null ; then
DEVTMPFS=1
@@ -123,7 +124,17 @@ for ARG in $(cat /proc/cmdline); do
esac
done
-# Load kernel modules:
+# 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 --resolve-names=never
+ /sbin/udevadm trigger --subsystem-match=block --action=add
+ /sbin/udevadm settle --timeout=10
+else
+ [ "$DEVTMPFS" != "1" ] && mdev -s
+fi
+
+# Load kernel modules (ideally this was already done by udev):
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:
@@ -143,16 +154,6 @@ fi
# A root filesystem on USB is a 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 --resolve-names=never
- /sbin/udevadm trigger --subsystem-match=block --action=add
- /sbin/udevadm settle --timeout=10
-else
- [ "$DEVTMPFS" != "1" ] && mdev -s
-fi
-
# Load a custom keyboard mapping:
if [ -n "$KEYMAP" ]; then
echo "${INITRD}: Loading '$KEYMAP' keyboard mapping:"
@@ -222,7 +223,9 @@ if [ "$RESCUE" = "" ]; then
# Initialize LVM:
if [ -x /sbin/vgchange ]; then
- /sbin/vgchange -ay --ignorelockingfailure
+ mkdir -p /var/lock/lvm # this avoids useless warnings
+ /sbin/vgchange -ay --ignorelockingfailure 2>/dev/null
+ /sbin/udevadm settle --timeout=10
fi
# Unlock any LUKS encrypted devices that were deferred above but have now
@@ -247,8 +250,14 @@ if [ "$RESCUE" = "" ]; then
echo "LUKS device '${LUKSDEV}' unavailable for unlocking!"
fi
done
+ /sbin/udevadm settle --timeout=10
fi
+ # Scan for btrfs multi-device filesystems:
+ if [ -x /sbin/btrfs ]; then
+ /sbin/btrfs device scan
+ fi
+
# Find root device if a label or UUID was given:
if echo $ROOTDEV | grep -q "LABEL=" || \
echo $ROOTDEV | grep -q "UUID=" ; then
@@ -264,14 +273,16 @@ if [ "$RESCUE" = "" ]; then
# Resume state from swap
if [ "$RESUMEDEV" != "" ]; then
if ls -l $RESUMEDEV | grep -q "^l" ; then
- RESUMEDEV=$(ls -l $RESUMEDEV | awk '{ print $NF }')
+ #RESUMEDEV=$(ls -l $RESUMEDEV | awk '{ print $NF }')
+ RESUMEDEV=$(readlink -f $RESUMEDEV)
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:
+ /sbin/udevadm settle --timeout=10
echo 0x0100 > /proc/sys/kernel/real-root-dev
mount -o ro -t $ROOTFS $ROOTDEV /mnt
@@ -296,14 +307,16 @@ else
/bin/sh
fi
-if pgrep udevd >/dev/null ; then
- /sbin/udevadm settle --timeout=30
- pkill udevd
-fi
+# Need to make sure OPTIONS+="db_persist" exists for all dm devices
+# That should be handled in /sbin/mkinitrd now
+/sbin/udevadm info --cleanup-db
+/sbin/udevadm control --exit
unset ERR
mount -o move /proc /mnt/proc
mount -o move /sys /mnt/sys
+mount -o move /run /mnt/run
+
[ "$DEVTMPFS" = "1" ] && mount -o move /dev /mnt/dev
echo "${INITRD}: exiting"
exec switch_root /mnt $INIT $RUNLEVEL
diff --git a/source/a/mkinitrd/mkinitrd b/source/a/mkinitrd/mkinitrd
index 1a5b7731f..c5e30218b 100644
--- a/source/a/mkinitrd/mkinitrd
+++ b/source/a/mkinitrd/mkinitrd
@@ -42,13 +42,15 @@
# Add lukskey option (-K). Automatically add kernel modules listed in
# load-kernel-modules if that file is executable.
# Yada yada yada.
+# Modified by Patrick Volkerding <volkerdi@slackware.com> 21 August 2012
+# Add Btrfs multi-device filesystem support option (-B).
-MKINITRD_VERSION=1.4.6
+MKINITRD_VERSION=1.4.7
# Don't include these things from /lib/udev/ in the initrd image
LIBUDEV_BLACKLIST="\
ipod-set-info \
- check-mtp-camera \
+ check-mtp-device \
check-ptp-camera \
udev-configure-printer"
@@ -97,6 +99,8 @@ initrd, and the script is easy to modify. Be creative. :-)
For example, if your USB thumb drive has a FAT partition with label
"TRAVELSTICK" and the actual keyfile is called "/keys/alien.luks",
then you need to pass: -K LABEL=TRAVELSTICK:/keys/alien.luks
+ -B Add /sbin/btrfs to enable scanning for a root filesystem that is
+ part of a Btrfs multi-device filesystem.
-M Add the files in /etc/modprobe.d/ to the initrd
-R Add support for RAID partitions
-V Display version number
@@ -234,8 +238,9 @@ copy_libs() {
}
copy_modconf() {
- mkdir -p $SOURCE_TREE/etc
+ mkdir -p $SOURCE_TREE/etc $SOURCE_TREE/lib
cp -a /etc/modprobe.d $SOURCE_TREE/etc
+ cp -a /lib/modprobe.d $SOURCE_TREE/lib/
}
# If --help is given, print_usage and exit:
@@ -255,6 +260,8 @@ fi
SOURCE_TREE=${SOURCE_TREE:-/boot/initrd-tree}
OUTPUT_IMAGE=${OUTPUT_IMAGE:-""}
KERNEL_VERSION=${KERNEL_VERSION:-"$(uname -r)"}
+# The initrd requires udev to function correctly:
+UDEV=1
# Default actions without options:
if [ -z "$1" ]; then
@@ -356,6 +363,10 @@ while [ ! -z "$1" ]; do
LVM=1
shift
;;
+ -B)
+ BTRFS=1
+ shift
+ ;;
-M)
MODCONF=1
shift
@@ -459,12 +470,28 @@ fi
# Include RAID support in initrd
if [ ! -z "$RAID" ]; then
- if [ -r /sbin/mdadm ]; then
+ if [ -r /sbin/mdadm -a -r /sbin/mdmon ]; then
mkdir -p $SOURCE_TREE/sbin
cp /sbin/mdadm $SOURCE_TREE/sbin/mdadm
+ cp /sbin/mdmon $SOURCE_TREE/sbin/mdmon
chmod 0755 $SOURCE_TREE/sbin/mdadm
+ chmod 0755 $SOURCE_TREE/sbin/mdmon
+ mkdir -p $SOURCE_TREE/lib/udev/rules.d
+ echo 'KERNEL=="dm-[0-9]*", OPTIONS+="db_persist"' > \
+ $SOURCE_TREE/lib/udev/rules.d/95-dm-initrd.rules
+ else
+ echo "ERROR: mdadm and/or mdmon binary is missing, RAID support not installed"
+ fi
+fi
+
+# Include Btrfs support in initrd
+if [ ! -z "$BTRFS" ]; then
+ if [ -r /sbin/btrfs ]; then
+ mkdir -p $SOURCE_TREE/sbin
+ cp /sbin/btrfs $SOURCE_TREE/sbin/btrfs
+ chmod 0755 $SOURCE_TREE/sbin/btrfs
else
- echo "ERROR: mdadm binary is missing, RAID support not installed"
+ echo "ERROR: btrfs binary is missing, Btrfs support not installed"
fi
fi
@@ -474,7 +501,11 @@ if [ ! -z "$UDEV" ]; then
cp -a /lib/udev $SOURCE_TREE/lib/
# But we don't want all of /lib/udev
for file in $(echo $LIBUDEV_BLACKLIST) ; do
- rm -f $SOURCE_TREE/lib/udev/$file ;
+ # Replace with a null script (avoids error spew):
+ cat << EOF > $SOURCE_TREE/lib/udev/$file
+#!/bin/ash
+# This space is intentionally left blank
+EOF
done
fi
@@ -493,6 +524,9 @@ if [ ! -z "$LVM" ]; then
elif ! echo ${MODULE_LIST} | grep -q dm-mod ; then
MODULE_LIST="$MODULE_LIST:dm-mod"
fi
+ mkdir -p $SOURCE_TREE/lib/udev/rules.d
+ echo 'KERNEL=="dm-[0-9]*", OPTIONS+="db_persist"' > \
+ $SOURCE_TREE/lib/udev/rules.d/95-dm-initrd.rules
else
echo "LVM binary is missing, LVM support isn't installed"
fi
@@ -528,6 +562,16 @@ if [ ! -d $SOURCE_TREE/lib/modules/$KERNEL_VERSION ]; then
mkdir -p $SOURCE_TREE/lib/modules/$KERNEL_VERSION
fi
+# Copy kmod/modprobe stuff to initrd:
+for i in kmod depmod insmod lsmod modinfo modprobe rmmod ; do
+ rm -f $SOURCE_TREE/sbin/$i ;
+ cp -a /sbin/$i $SOURCE_TREE/sbin ;
+done
+
+# Make sure modules.builtin and modules.order are there (for kmod):
+cp /lib/modules/$KERNEL_VERSION/modules.{builtin,order} \
+ $SOURCE_TREE/lib/modules/$KERNEL_VERSION
+
# If an executable $SOURCE_TREE/load_kernel_modules already exists, then
# we assume you will want to load the kernel modules mentioned in there.
# This means, you do not have to explicitly add those on the commandline:
@@ -589,8 +633,8 @@ if [ ! -z "$MODULE_LIST" ]; then
/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 "$(basename $SRCMOD .ko)" $SOURCE_TREE/load_kernel_modules 2>/dev/null ; then
- LINE="$(echo "modprobe -v $(basename $SRCMOD .ko)" )"
+ if ! grep -Eq " $(basename $SRCMOD .ko)(\.| |$)" $SOURCE_TREE/load_kernel_modules 2>/dev/null ; then
+ LINE="$(echo "modprobe -v $(basename ${SRCMOD%%.gz} .ko)" )"
# Test to see if arguments should be passed
# Over-ride the previously defined LINE variable if so
@@ -611,6 +655,15 @@ if [ ! -z "$MODULE_LIST" ]; then
# replacement.
if cp -a --parents $SRCMOD $SOURCE_TREE 2>/dev/null; then
echo "OK: $SRCMOD added."
+ # If a module needs firmware, copy that too
+ /sbin/modinfo -F firmware "$SRCMOD" | sed 's/^/\/lib\/firmware\//' |
+ while read SRCFW; do
+ if cp -a --parents "$SRCFW" $SOURCE_TREE 2>/dev/null; then
+ echo "OK: $SRCFW added."
+ else
+ echo "WARNING: Could not find firmware \"$SRCFW\""
+ fi
+ done
else
echo "WARNING: Could not find module \"$SRCMOD\""
fi
@@ -631,6 +684,11 @@ fi
# Copy needed libraries
copy_libs
+# Make sure all libraries have symlinks:
+/sbin/ldconfig $(readlink -f $SOURCE_TREE)/lib/ 2> /dev/null
+/sbin/ldconfig $(readlink -f $SOURCE_TREE)/lib64/ 2> /dev/null
+/sbin/ldconfig
+
# And finally, build the initrd:
build_initrd_image
diff --git a/source/a/mkinitrd/mkinitrd.8 b/source/a/mkinitrd/mkinitrd.8
index be4e9d42d..6ee25bdde 100644
--- a/source/a/mkinitrd/mkinitrd.8
+++ b/source/a/mkinitrd/mkinitrd.8
@@ -52,6 +52,9 @@ mkinitrd \- create or rebuilt an initrd (initial ramdisk) using initramfs (simpl
.B \-K luks_keyfile
]
[
+.B \-B
+]
+[
.B \-L
]
[
@@ -171,6 +174,11 @@ you need to set:
-K LABEL=TRAVELSTICK:/keys/alien.luks
.TP
+.B \-B
+This option adds the btrfs utility to the initrd so that multi-device filesystems
+will be picked up by a scan (/sbin/btrfs device scan). This is needed if the
+root filesystem is a Btrfs multi-device filesystem.
+.TP
.B \-L
This option adds LVM support to the initrd, if the tools are
available on the system.
diff --git a/source/a/mkinitrd/mkinitrd.SlackBuild b/source/a/mkinitrd/mkinitrd.SlackBuild
index 953d3cf87..322fa8c5d 100755
--- a/source/a/mkinitrd/mkinitrd.SlackBuild
+++ b/source/a/mkinitrd/mkinitrd.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-1.4.6}
-BB=1.18.4
-BUILD=${BUILD:-11}
+VERSION=${VERSION:-1.4.7}
+BB=1.20.1
+BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -54,6 +54,12 @@ rm -rf busybox-$BB
tar xvf $CWD/busybox-$BB.tar.?z* || exit 1
cd busybox-$BB
+if [ -d $CWD/fixes-$BB ]; then
+ for pfile in $CWD/fixes-$BB/*.patch ; do
+ patch -p1 < $pfile || exit 1
+ done
+fi
+
chown -R root:root .
sed -e \
's#^CONFIG_PREFIX=.*#CONFIG_PREFIX="'$PKG'/usr/share/mkinitrd/initrd-tree"#' \
@@ -105,29 +111,18 @@ chown root:root $PKG/etc/mkinitrd.conf.sample
chmod 644 $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/*
+sed $CWD/README.initrd \
+ -e "s,@DATE@,$(date),g" \
+ -e "s,@KERNEL_VERSION@,$(uname -r),g" \
+ -e "s,@PACKAGE_VERSION@,$(uname -r | tr - _),g" \
+ -e "s,@LILO_KERNEL_NAME@,$(echo $(uname -r) | tr -d . | tr -d - ),g" \
+ -e "s,@MKINITRD_VERSION@,$VERSION,g" \
+ -e "s,@ARCH@,$ARCH,g" \
+ -e "s,@BUILD@,$BUILD,g" \
+ > $PKG/usr/doc/mkinitrd-$VERSION/README.initrd
mkdir $PKG/boot
-( cd $PKG/boot
- ln -sf /usr/doc/mkinitrd-$VERSION/README.initrd .
-)
+ln -sf /usr/doc/mkinitrd-$VERSION/README.initrd $PKG/boot/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
diff --git a/source/a/module-init-tools/doinst.sh b/source/a/module-init-tools/doinst.sh
deleted file mode 100644
index f455be891..000000000
--- a/source/a/module-init-tools/doinst.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-# Remove/move obsolete configuration:
-if [ -L etc/modprobe.d/modprobe.conf ]; then
- rm -f etc/modprobe.d/modprobe.conf
-fi
-if [ -e etc/modprobe.conf ]; then
- mv etc/modprobe.conf etc/modprobe.conf.obsolete
-fi
diff --git a/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff b/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff
deleted file mode 100644
index 5517502b7..000000000
--- a/source/a/module-init-tools/modprobe.ignore_some_suffixes.diff
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -Nur module-init-tools-3.12.orig//modprobe.c module-init-tools-3.12/modprobe.c
---- module-init-tools-3.12.orig//modprobe.c 2010-05-04 00:19:27.000000000 -0500
-+++ module-init-tools-3.12/modprobe.c 2010-06-08 04:32:46.655088739 -0500
-@@ -38,6 +38,7 @@
- #include <asm/unistd.h>
- #include <sys/wait.h>
- #include <syslog.h>
-+#include <regex.h>
-
- #include "util.h"
- #include "elfops.h"
-@@ -789,6 +790,20 @@
- return strsep(string, delim);
- }
-
-+/* 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);
-+}
-+
- static int parse_config_scan(const char *filename,
- struct modprobe_conf *conf,
- int dump_only,
-@@ -1066,6 +1081,8 @@
- while ((i = readdir(dir)) != NULL) {
- size_t len;
-
-+ if (!valid_file_name(i->d_name))
-+ continue;
- if (i->d_name[0] == '.')
- continue;
- if (!config_filter(i->d_name))
diff --git a/source/a/module-init-tools/slack-desc b/source/a/module-init-tools/slack-desc
deleted file mode 100644
index 99d071b0e..000000000
--- a/source/a/module-init-tools/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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/ntfs-3g/99-ntfs-3g.rules b/source/a/ntfs-3g/99-ntfs-3g.rules
new file mode 100644
index 000000000..c27c3cbbc
--- /dev/null
+++ b/source/a/ntfs-3g/99-ntfs-3g.rules
@@ -0,0 +1,2 @@
+# Use ntfs-3g rather than regular ntfs for devices detected through udev:
+ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"
diff --git a/source/a/ntfs-3g/ntfs-3g.SlackBuild b/source/a/ntfs-3g/ntfs-3g.SlackBuild
index ab5b1f717..086cb3e87 100755
--- a/source/a/ntfs-3g/ntfs-3g.SlackBuild
+++ b/source/a/ntfs-3g/ntfs-3g.SlackBuild
@@ -3,6 +3,7 @@
# Slackware build script for ntfs-3g
# Copyright 2008 Antonio Hernandez Blas <hba.nihilismus@gmail.com>
+# Copyright 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -26,9 +27,10 @@
# Modified by Eric Hameleers <alien@slackware.com>
PKGNAM=ntfs-3g
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+VERSION=2012.1.15
+BUILD=${BUILD:-2}
+SRCNAM=ntfs-3g_ntfsprogs
NUMJOBS=${NUMJOBS:-" -j7 "}
# Automatically determine the architecture we're building on:
@@ -62,9 +64,9 @@ PKG=$TMP/package-$PKGNAM
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP || exit 1
-rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
-cd $PKGNAM-$VERSION || exit 1
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.?z* || exit 1
+cd $SRCNAM-$VERSION || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -90,17 +92,45 @@ CXXFLAGS="$SLKCFLAGS" \
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
+# I hate to do this (it worked without it before), but recently /bin/ntfs-3g
+# ceased to work for non-root users unless it is setuid root. If anyone has
+# any better ideas, I'd like to hear them.
+chmod 4711 $PKG/bin/ntfs-3g
+
# Add the HAL fdi file so that automount uses ntfs-3g for mounting
# This should work with the "volume.fstype.alternative.*" in hal-0.5.12+
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
+# Create a mount.ntfs -> mount.ntfs-3g symlink.
+# This causes ntfs-3g to always be used when mounting NTFS filesystems.
+# NOTE: This also seems to make mounting with the old ntfs filesystem
+# impossible. But does anyone care?
+( cd $PKG/sbin ; ln -s mount.ntfs-3g mount.ntfs )
+
+## Add a udev rule to use ntfs-3g instead of ntfs:
+## (This is not needed if the mount.ntfs symlink is made)
+#mkdir -p $PKG/lib/udev/rules.d
+#cat $CWD/99-ntfs-3g.rules > $PKG/lib/udev/rules.d/99-ntfs-3g.rules
+
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $(find $PKG/usr/man -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; 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
rm -rf $PKG/usr/share/doc
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
diff --git a/source/a/patch/patch.281537bcd92515ae3b9f154acd579ce97260f99b.diff b/source/a/patch/patch.281537bcd92515ae3b9f154acd579ce97260f99b.diff
new file mode 100644
index 000000000..b882b725c
--- /dev/null
+++ b/source/a/patch/patch.281537bcd92515ae3b9f154acd579ce97260f99b.diff
@@ -0,0 +1,78 @@
+From 281537bcd92515ae3b9f154acd579ce97260f99b Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruen@linbit.com>
+Date: Thu, 13 Sep 2012 14:13:08 +0000
+Subject: In a git-style diff, make sure not to unlink the original by accident
+
+* src/patch.c (main): Fail if a file is not empty as expected.
+(output_files): In a git-style diff, make sure not to unlink the original when
+making a backup of an unmodified file.
+* tests/create-delete: Fix failed-file-deletion test and add
+successful-file-deletion test.
+---
+diff --git a/src/patch.c b/src/patch.c
+index 1c6fb4b..ce81bbe 100644
+--- a/src/patch.c
++++ b/src/patch.c
+@@ -508,6 +508,7 @@ main (int argc, char **argv)
+ && ! (merge && somefailed))
+ {
+ mismatch = true;
++ somefailed = true;
+ if (verbosity != SILENT)
+ say ("File %s is not empty after patch, as expected\n",
+ quotearg (outname));
+@@ -1865,7 +1866,7 @@ output_files (struct stat const *st)
+ output_file_now (file_to_output->from, &from_needs_removal,
+ from_st, file_to_output->to,
+ file_to_output->mode, file_to_output->backup);
+- if (from_needs_removal)
++ if (file_to_output->to && from_needs_removal)
+ unlink (file_to_output->from);
+
+ if (st && st->st_dev == from_st->st_dev && st->st_ino == from_st->st_ino)
+diff --git a/tests/create-delete b/tests/create-delete
+index 9a6e1bb..7eed11f 100644
+--- a/tests/create-delete
++++ b/tests/create-delete
+@@ -176,12 +176,37 @@ EOF
+ echo data > target
+ cat > p.diff <<EOF
+ diff --git a/target b/target
+-index 1..0
++deleted file mode 100644
++index 1269488..0000000
+ EOF
+
+ check 'patch -p1 -b < p.diff || echo status: $?' <<EOF
+ patching file target
+ File target is not empty after patch, as expected
++status: 1
++EOF
++
++check 'cat target' <<EOF
++data
++EOF
++
++# Patch creates a backup file even when the original file remains unchanged:
++check 'cat target.orig' <<EOF
++data
++EOF
++
++cat > p.diff <<EOF
++diff --git a/target b/target
++deleted file mode 100644
++index 1269488..0000000
++--- a/target
+++++ /dev/null
++@@ -1 +0,0 @@
++-data
++EOF
++
++check 'patch -p1 -b -f < p.diff || echo status: $?' <<EOF
++patching file target
+ EOF
+
+ ncheck 'test ! -e target'
+--
+cgit v0.9.0.2
+
diff --git a/source/a/patch/patch.99f2638763845d8173a0c9f9209ac2b4be947165.diff b/source/a/patch/patch.99f2638763845d8173a0c9f9209ac2b4be947165.diff
new file mode 100644
index 000000000..14c342a51
--- /dev/null
+++ b/source/a/patch/patch.99f2638763845d8173a0c9f9209ac2b4be947165.diff
@@ -0,0 +1,88 @@
+From 99f2638763845d8173a0c9f9209ac2b4be947165 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruen@linbit.com>
+Date: Tue, 18 Sep 2012 10:51:17 +0000
+Subject: Fix file truncation when switching from git diff to non-git diff
+
+* src/patch.c (main): Output queued output files only when switching from a git
+diff to a non-git diff. This can modify the input file, so make sure to
+stat() it again.
+* tests/concat-git-diff: Add test case growing a file with a git diff and then
+with a non-git diff; without this fix; the result would be truncated.
+---
+diff --git a/src/patch.c b/src/patch.c
+index 0bce8fb..0b0fdd4 100644
+--- a/src/patch.c
++++ b/src/patch.c
+@@ -196,8 +196,12 @@ main (int argc, char **argv)
+
+ if (have_git_diff != pch_git_diff ())
+ {
++ if (have_git_diff)
++ {
++ output_files (NULL);
++ inerrno = -1;
++ }
+ have_git_diff = ! have_git_diff;
+- output_files (NULL);
+ }
+
+ if (TMPREJNAME_needs_removal)
+diff --git a/tests/concat-git-diff b/tests/concat-git-diff
+index 927eb5a..c78da53 100644
+--- a/tests/concat-git-diff
++++ b/tests/concat-git-diff
+@@ -56,11 +56,7 @@ check 'cat f' <<EOF
+ three
+ EOF
+
+-cat > f <<EOF
+-1
+-2
+-3
+-EOF
++seq 3 > f
+
+ cat > concat2.diff <<EOF
+ diff --git a/f b/f
+@@ -95,3 +91,38 @@ a
+ 3
+ b
+ EOF
++
++seq 3 > f
++
++cat > concat3.diff <<EOF
++diff --git a/f b/f
++index 01e79c3..0d0b976 100644
++--- a/f
+++++ b/f
++@@ -1,3 +1,4 @@
++ 1
++ 2
++ 3
+++b
++diff a/f b/f
++--- a/f
+++++ b/f
++@@ -1,3 +1,4 @@
+++a
++ 1
++ 2
++ 3
++EOF
++
++check 'patch -p1 < concat3.diff || echo "Status: $?"' <<EOF
++patching file f
++patching file f
++EOF
++
++check 'cat f' <<EOF
++a
++1
++2
++3
++b
++EOF
+--
+cgit v0.9.0.2
+
diff --git a/source/a/patch/patch.SlackBuild b/source/a/patch/patch.SlackBuild
index 1175620b6..1607b4059 100755
--- a/source/a/patch/patch.SlackBuild
+++ b/source/a/patch/patch.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,8 +20,8 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2.6.1
-BUILD=${BUILD:-1}
+VERSION=2.7
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -53,7 +53,11 @@ fi
cd $TMP
rm -rf patch-${VERSION}
tar xvf $CWD/patch-${VERSION}.tar.xz || exit 1
-cd patch-${VERSION}
+cd patch-${VERSION} || exit 1
+
+zcat $CWD/patch.281537bcd92515ae3b9f154acd579ce97260f99b.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patch.99f2638763845d8173a0c9f9209ac2b4be947165.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 \) \
diff --git a/source/a/pciutils/pciutils.SlackBuild b/source/a/pciutils/pciutils.SlackBuild
index b3425b6a9..03268420e 100755
--- a/source/a/pciutils/pciutils.SlackBuild
+++ b/source/a/pciutils/pciutils.SlackBuild
@@ -24,7 +24,7 @@
VERSION=${VERSION:-$(echo pciutils-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
-NUMJOBS=${NUMJOBS:--j6}
+NUMJOBS=${NUMJOBS:--j3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -65,21 +65,19 @@ find . \
\( -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 0755 $PKG/usr/sbin/update-pciids
+zcat $CWD/pciutils.dontcompress.diff.gz | patch -p1 || exit 1
+zcat $CWD/pciutils.update.pci.ids.url.diff.gz | patch -p1 || exit 1
+# Make and install the shared library
make \
PREFIX=/usr \
SBINDIR=/sbin \
LIBDIR=/usr/lib${LIBDIRSUFFIX} \
MANDIR=/usr/man \
+ IDSDIR=/usr/share/hwdata \
+ PCI_IDS=pci.ids \
+ PCI_COMPRESSED_IDS=0 \
+ SHARED=no \
OPT="$SLKCFLAGS" \
$NUMJOBS || exit 1
@@ -88,26 +86,52 @@ make install install-lib \
SBINDIR=/sbin \
LIBDIR=/usr/lib${LIBDIRSUFFIX} \
MANDIR=/usr/man \
+ IDSDIR=/usr/share/hwdata \
+ PCI_IDS=pci.ids \
+ PCI_COMPRESSED_IDS=0 \
+ SHARED=no \
DESTDIR=$PKG
-# Do not compress pci.ids - hal needs it uncompressed
+mkdir -p $PKG/usr/sbin
+mv $PKG/sbin/update-pciids $PKG/usr/sbin/update-pciids
+
+# Do not compress pci.ids
( 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
-)
+# Put a compat symlink in place
+ln -s hwdata/pci.ids $PKG/usr/share/pci.ids
+
+# 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
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 \
+ COPYING* README TODO \
$PKG/usr/doc/pciutils-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/a/pciutils/pciutils.dontcompress.diff b/source/a/pciutils/pciutils.dontcompress.diff
new file mode 100644
index 000000000..91089b8e3
--- /dev/null
+++ b/source/a/pciutils/pciutils.dontcompress.diff
@@ -0,0 +1,11 @@
+--- ./update-pciids.sh.orig 2012-01-14 08:29:38.000000000 -0600
++++ ./update-pciids.sh 2012-07-02 21:27:47.524912718 -0500
+@@ -5,7 +5,7 @@
+ set -e
+ SRC="http://pci-ids.ucw.cz/v2.2/pci.ids"
+ DEST=pci.ids
+-PCI_COMPRESSED_IDS=
++PCI_COMPRESSED_IDS=0
+ GREP=grep
+
+ # if pci.ids is read-only (because the filesystem is read-only),
diff --git a/source/a/pciutils/pciutils.ids.dest.diff b/source/a/pciutils/pciutils.ids.dest.diff
deleted file mode 100644
index 98d152c2b..000000000
--- a/source/a/pciutils/pciutils.ids.dest.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-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.update.pci.ids.url.diff b/source/a/pciutils/pciutils.update.pci.ids.url.diff
new file mode 100644
index 000000000..1588f729c
--- /dev/null
+++ b/source/a/pciutils/pciutils.update.pci.ids.url.diff
@@ -0,0 +1,11 @@
+--- ./update-pciids.sh.orig 2012-07-02 21:45:31.280890064 -0500
++++ ./update-pciids.sh 2012-07-02 21:46:03.875889369 -0500
+@@ -3,7 +3,7 @@
+ [ "$1" = "-q" ] && quiet=true || quiet=false
+
+ set -e
+-SRC="http://pci-ids.ucw.cz/v2.2/pci.ids"
++SRC="http://pciids.sourceforge.net/pci.ids"
+ DEST=pci.ids
+ PCI_COMPRESSED_IDS=0
+ GREP=grep
diff --git a/source/a/pciutils/pciutils.url b/source/a/pciutils/pciutils.url
index e77494b5e..66d422cea 100644
--- a/source/a/pciutils/pciutils.url
+++ b/source/a/pciutils/pciutils.url
@@ -1,2 +1,3 @@
-#ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
-ftp.kernel.org:/pub/software/utils/pciutils/
+ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/
+ftp://ftp.kernel.org/pub/software/utils/pciutils/
+ftp://metalab.unc.edu/pub/Linux/hardware/ \ No newline at end of file
diff --git a/source/a/pkgtools/pkgtools.SlackBuild b/source/a/pkgtools/pkgtools.SlackBuild
index 4d3a07bfc..c5bc2d439 100755
--- a/source/a/pkgtools/pkgtools.SlackBuild
+++ b/source/a/pkgtools/pkgtools.SlackBuild
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -27,9 +27,9 @@ fi
PKG=$TMP/package-pkgtools
# *** UPDATE THESE WITH EACH BUILD:
-VERSION=13.37
+VERSION=14.0
ARCH=${ARCH:-noarch}
-BUILD=9
+BUILD=2
if [ ! -d $TMP ]; then
mkdir -p $TMP # location to build the source
diff --git a/source/a/pkgtools/scripts/pkgtool b/source/a/pkgtools/scripts/pkgtool
index a64ef09c0..ba8ecd0ad 100644
--- a/source/a/pkgtools/scripts/pkgtool
+++ b/source/a/pkgtools/scripts/pkgtool
@@ -212,7 +212,7 @@ else # there were no arguments, so we'll get the needed information from the
CMD_START="true"
rm -f $TMP/SeT*
while [ 0 ]; do
- dialog --title "Slackware Package Tool (pkgtool version 13.37)" \
+ dialog --title "Slackware Package Tool (pkgtool version 14.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" \
diff --git a/source/a/pkgtools/scripts/setup.services b/source/a/pkgtools/scripts/setup.services
index aee2599fd..f700a8df4 100644
--- a/source/a/pkgtools/scripts/setup.services
+++ b/source/a/pkgtools/scripts/setup.services
@@ -148,7 +148,7 @@ if [ -r etc/rc.d/rc.messagebus ]; then
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." \\
+ "rc.messagebus" "D-Bus system message bus" $RC_MESSAGEBUS "Used for interprocess communication and coordination." \\
EOF
fi
diff --git a/source/a/shadow/adduser b/source/a/shadow/adduser
index 5b674a852..ce06aac54 100644
--- a/source/a/shadow/adduser
+++ b/source/a/shadow/adduser
@@ -3,6 +3,7 @@
# Copyright 1995 Hrvoje Dogan, Croatia.
# Copyright 2002-2004, 2008, 2009, 2010 Stuart Winter, Surrey, England, UK.
# Copyright 2004, 2008-2010 Slackware Linux, Inc., Concord, CA, USA
+# Copyright 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -29,12 +30,16 @@
# Author : Stuart Winter <mozes@slackware.com>
# Based on the original Slackware adduser by Hrvoje Dogan
# with modifications by Patrick Volkerding
-# Version: 1.13
+# Version: 1.15
##########################################################################
# Usage..: adduser [<new_user_name>]
##########################################################################
# History #
###########
+# v1.15 - 2012-09-13
+# * Added scanner group, which may be required by third party drivers.
+# v1.14 - 2012-08-24
+# * Added lp group, which is now required for scanning. <pjv>
# v1.13 - 13/01/10
# * Fixed bug that removed underscore characters from UNIX group names.
# Thanks to mRgOBLIN for the report and Jim Hawkins for the fix. <sw>
@@ -107,7 +112,7 @@ 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
+AGID="audio cdrom floppy plugdev video power netdev lp scanner" # 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 #))
diff --git a/source/a/shadow/login.defs b/source/a/shadow/login.defs
index dde37c97b..e52f91a53 100644
--- a/source/a/shadow/login.defs
+++ b/source/a/shadow/login.defs
@@ -300,7 +300,7 @@ CHFN_RESTRICT frwh
# If set to DES, DES-based algorithm will be used for encrypting password (default)
# Overrides the MD5_CRYPT_ENAB option
#
-ENCRYPT_METHOD MD5
+ENCRYPT_METHOD SHA256
#
# Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
@@ -327,7 +327,9 @@ ENCRYPT_METHOD MD5
# access to these groups, even when not logged in on the console.
# How to do it is left as an exercise for the reader...
#
-# Most of these groups are self-explanatory.
+# Most of these groups are self-explanatory, but in the case of
+# "lp", it is because group lp is needed to use a scanner that
+# is part of a multifunction printer.
#
# Note that users are added to these default groups only when
# logging into a shell with /bin/login, not when using a login
@@ -336,7 +338,7 @@ ENCRYPT_METHOD MD5
# when the user is added with adduser or useradd, or by editing
# /etc/group directly, preferably using "vigr"
#
-CONSOLE_GROUPS floppy:audio:cdrom:video:scanner
+CONSOLE_GROUPS floppy:audio:cdrom:video:lp:scanner
#
# Should login be allowed if we can't cd to the home directory?
diff --git a/source/a/shadow/patches/README_PATCHES b/source/a/shadow/patches/README_PATCHES
index 0c639d1a2..1d1f2173a 100644
--- a/source/a/shadow/patches/README_PATCHES
+++ b/source/a/shadow/patches/README_PATCHES
@@ -4,6 +4,7 @@ r3055.diff: Help output to stderr not stdout.
r3060.diff: Fix memory leaks
r3062.diff: Avoid memzero() on a possibly NULL pointer.
r3096.diff: Fix parsing of gshadow entries.
+r3090.diff: Fix improper sanitizing of locale variables.
r3160.diff: Fixed limits support (non PAM enabled versions only)
r3194.diff: shell's name must be -su when a su fakes a login.
r3299.diff: man/ru/Makefile.am: Remove double inclusion of $(man_nopam)
diff --git a/source/a/shadow/patches/r3090.diff b/source/a/shadow/patches/r3090.diff
new file mode 100644
index 000000000..46057673e
--- /dev/null
+++ b/source/a/shadow/patches/r3090.diff
@@ -0,0 +1,11 @@
+--- libmisc/env.c.orig 2011-02-13 11:58:11.000000000 -0600
++++ libmisc/env.c 2012-08-14 10:38:25.304917619 -0500
+@@ -251,7 +251,7 @@
+ if (strncmp (*cur, *bad, strlen (*bad)) != 0) {
+ continue;
+ }
+- if (strchr (*cur, '/') != NULL) {
++ if (strchr (*cur, '/') == NULL) {
+ continue; /* OK */
+ }
+ for (move = cur; NULL != *move; move++) {
diff --git a/source/a/shadow/patches/r3299.diff b/source/a/shadow/patches/unused/r3299.diff
index a46b18f05..a46b18f05 100644
--- a/source/a/shadow/patches/r3299.diff
+++ b/source/a/shadow/patches/unused/r3299.diff
diff --git a/source/a/shadow/shadow.SlackBuild b/source/a/shadow/shadow.SlackBuild
index c3d2e9c72..41e9353ba 100755
--- a/source/a/shadow/shadow.SlackBuild
+++ b/source/a/shadow/shadow.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=shadow
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-7}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -63,8 +63,12 @@ for patch in $CWD/patches/*.diff.gz ; do
zcat $patch | patch -p0 --verbose || exit 1
done
+# Don't duplicate Russian man page installations:
+zcat $CWD/shadow.man.nodups.diff.gz | patch -p1 --verbose || exit 1
+
# Re-run automake because of r3299 patch to man/ru/Makefile.am:
-automake -f
+# (not used because it doesn't work... above patch does the intended fix)
+#automake -f
chown -R root:root .
find . \
diff --git a/source/a/shadow/shadow.man.nodups.diff b/source/a/shadow/shadow.man.nodups.diff
new file mode 100644
index 000000000..425321b99
--- /dev/null
+++ b/source/a/shadow/shadow.man.nodups.diff
@@ -0,0 +1,11 @@
+--- ./man/ru/Makefile.in.orig 2011-02-15 16:18:21.000000000 -0600
++++ ./man/ru/Makefile.in 2012-06-26 23:21:34.866292111 -0500
+@@ -228,7 +228,7 @@
+ grpunconv.8 gshadow.5 lastlog.8 login.1 login.defs.5 logoutd.8 \
+ newgrp.1 newusers.8 nologin.8 passwd.1 passwd.5 pwck.8 \
+ pwconv.8 pwunconv.8 sg.1 shadow.3 shadow.5 su.1 suauth.5 \
+- useradd.8 userdel.8 usermod.8 vigr.8 vipw.8 $(am__append_1)
++ useradd.8 userdel.8 usermod.8 vigr.8 vipw.8
+ man_nopam = \
+ limits.5 \
+ login.access.5 \
diff --git a/source/a/slocate/slocate.CVE-2007-0277.diff b/source/a/slocate/slocate.CVE-2007-0277.diff
new file mode 100644
index 000000000..4f109922f
--- /dev/null
+++ b/source/a/slocate/slocate.CVE-2007-0277.diff
@@ -0,0 +1,42 @@
+--- slocate-3.1.orig/src/utils.c
++++ slocate-3.1/src/utils.c
+@@ -524,6 +524,7 @@
+ {
+ struct stat path_stat;
+ int ret = 0;
++ char *path_copy = NULL;
+ char *ptr = NULL;
+
+ if (lstat(path, &path_stat) == -1)
+@@ -532,15 +533,25 @@
+ if (!S_ISLNK(path_stat.st_mode)) {
+ if (access(path, F_OK) != 0)
+ goto EXIT;
+- } else if ((ptr = rindex(path, '/'))) {
+- *ptr = 0;
+- if (access(path, F_OK) == 0)
+- ret = 1;
+- *ptr = '/';
+- goto EXIT;
+ }
+
++ /* "path" is const, so we shouldn't modify it. Also, for speed,
++ * I suspect strdup/free is less expensive than the deep access
++ * checks... */
++ if (!(path_copy = strdup(path)))
++ goto EXIT;
++
+ ret = 1;
++
++ /* Each directory leading to the file (symlink or not) must be
++ * readable for us to allow it to be listed in search results. */
++ while (ret && (ptr=rindex(path_copy,'/'))) {
++ *ptr=0;
++ if (*path_copy && access(path_copy, R_OK) != 0)
++ ret = 0;
++ }
++ free(path_copy);
++
+ EXIT:
+ return ret;
+ }
diff --git a/source/a/slocate/slocate.SlackBuild b/source/a/slocate/slocate.SlackBuild
index eef2fd1f6..def08b8c8 100755
--- a/source/a/slocate/slocate.SlackBuild
+++ b/source/a/slocate/slocate.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
VERSION=3.1
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -55,8 +55,12 @@ explodepkg $CWD/_slocate.tar.gz
cd $TMP
rm -rf slocate-$VERSION
-tar xzvf $CWD/slocate-$VERSION.tar.gz
-cd slocate-$VERSION
+tar xzvf $CWD/slocate-$VERSION.tar.gz || exit 1
+cd slocate-$VERSION || exit 1
+
+zcat $CWD/slocate.bigfile.diff.gz | patch -p0 --verbose || exit 1
+zcat $CWD/slocate.CVE-2007-0277.diff.gz | patch -p1 --verbose || exit 1
+
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 \) \
@@ -65,7 +69,7 @@ find . \
-exec chmod 644 {} \;
cd src
-make CFLAGS="$SLKCFLAGS"
+make CFLAGS="$SLKCFLAGS -D_LARGEFILE64_SOURCE" || exit 1
cd ..
strip --strip-unneeded src/slocate
mkdir -p $PKG/usr/bin
diff --git a/source/a/slocate/slocate.bigfile.diff b/source/a/slocate/slocate.bigfile.diff
new file mode 100644
index 000000000..6ccd1202e
--- /dev/null
+++ b/source/a/slocate/slocate.bigfile.diff
@@ -0,0 +1,33 @@
+Fix 2GB limitation - brought to you by mancha
+
+--- src/utils.c.orig 2012-08-25
++++ src/utils.c 2012-08-25
+@@ -284,12 +284,12 @@ int
+ verify_slocate_db(struct g_data_s *g_data, char *file)
+ {
+ char ch[1];
+- struct stat tf_stat;
++ struct stat64 tf_stat;
+ int bytes = 0;
+ int fd = -1;
+
+ if (access(file, W_OK | R_OK) == 0) {
+- if (lstat(file, &tf_stat) == -1) {
++ if (lstat64(file, &tf_stat) == -1) {
+ if (!report_error(g_data, FATAL, "get_temp_file: fstat(): %s: %s\n", file, strerror(errno)))
+ goto EXIT;
+
+@@ -522,11 +522,11 @@ EXIT:
+ * to check them separately */
+ int verify_access(const char *path)
+ {
+- struct stat path_stat;
++ struct stat64 path_stat;
+ int ret = 0;
+ char *ptr = NULL;
+
+- if (lstat(path, &path_stat) == -1)
++ if (lstat64(path, &path_stat) == -1)
+ goto EXIT;
+
+ if (!S_ISLNK(path_stat.st_mode)) {
diff --git a/source/a/syslinux/syslinux-3.84.tar.bz2.sign b/source/a/syslinux/syslinux-3.84.tar.bz2.sign
deleted file mode 100644
index 987a8ed9b..000000000
--- a/source/a/syslinux/syslinux-3.84.tar.bz2.sign
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.9 (GNU/Linux)
-Comment: See http://www.kernel.org/signature.html for info
-
-iD8DBQBLLBRQyGugalF9Dw4RAmsiAJ9geAzuilvLYCEc03sP1mJLG77UaQCeJlV+
-TgEccKCkyIkwwpBYDHesUjA=
-=1AUa
------END PGP SIGNATURE-----
diff --git a/source/a/syslinux/syslinux-4.05.tar.sign b/source/a/syslinux/syslinux-4.05.tar.sign
new file mode 100644
index 000000000..892883aee
--- /dev/null
+++ b/source/a/syslinux/syslinux-4.05.tar.sign
@@ -0,0 +1,17 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+
+iQIcBAABAgAGBQJO4mUDAAoJEIiuZH1Y96v+Dg8P/1Pn+22CIUHfgPtDse6U1+Wj
+A7/c5AdtezK/UQlhCh/Po7mRdCGzm/Tb6pCnHOWvpEFMeRQARGx5ElqDUmH1Y6SW
+NGrPxwj40eTdVrA6TE9/Jj1QkKnFZGTTzsSm5njt06cJM1s0kABlyS0MEx++YGyX
+hEnO5C6oyfh30KkTsUFLljFev1wz5FdQVHtL4e0//dh5KXgulPCIDEufIdvdIM1o
+4RB2vTwpcxm1Fuqd9Th73pD1u4V9mjCwKEazKpmmCkwebn6KAzyUlcKxXMUG+Q4C
+mbqRDlNCL8ia9LajJKj00wz0428M3eIT9kVxROYWdZnQGC0gDbcD8/6AAvt06bL+
+ZrlUGl02JASMk2lO9QVp74zTdlnTKQef3V9/SIPk2zLcYuVsKni87ZnEEhDke6vn
+DF4S2OySfZjBw7ohou7fkbiw/1uJTYLbh9gXXgEi+GKRkLEmEzrjalRc5I9X+D18
+kEg2rMZS4bpTKTk9IZEsCncyaO8tGrevLiMijoRnqDqzOPGjnYLBDrm+rNNn4cQ9
+biiF19uapF97goGzC315PKHKeMohFWhk3YGIUIwFzzShC0bKAYaZmMWC5Dcj1Udw
+XOo0/CL0uRuneS5z4TfN4mh0nVZTTgUeY3n2SbIEpTPGJdT+GGGGg06uq9PpY5WS
+Jx4uX40HrNIAw2qaR+fY
+=gTaU
+-----END PGP SIGNATURE-----
diff --git a/source/a/syslinux/syslinux.SlackBuild b/source/a/syslinux/syslinux.SlackBuild
index 1e7baad75..e7ec5fbbb 100755
--- a/source/a/syslinux/syslinux.SlackBuild
+++ b/source/a/syslinux/syslinux.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=syslinux
-VERSION=${VERSION:-3.84}
+VERSION=${VERSION:-4.05}
BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
@@ -43,9 +43,11 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf ${PKGNAM}-${VERSION}
-tar xjvf $CWD/${PKGNAM}-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION
+zcat $CWD/syslinux.altmbr.diff.gz | patch -p1 --verbose || exit 1
+
# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
diff --git a/source/a/syslinux/syslinux.altmbr.diff b/source/a/syslinux/syslinux.altmbr.diff
new file mode 100644
index 000000000..ee2dfbee1
--- /dev/null
+++ b/source/a/syslinux/syslinux.altmbr.diff
@@ -0,0 +1,11 @@
+--- ./mbr/altmbr.S.orig 2011-12-09 12:28:17.000000000 -0600
++++ ./mbr/altmbr.S 2012-08-17 17:10:33.903688084 -0500
+@@ -204,7 +204,7 @@
+ 5:
+ decb (partition)
+ jz boot
+- addw $16, %bx
++ addw $16, %si
+ loopw 5b
+
+ popw %cx /* %cx <- 4 */
diff --git a/source/a/sysvinit-scripts/scripts/inittab b/source/a/sysvinit-scripts/scripts/inittab
index 9f8b422d1..ba6fe79e9 100644
--- a/source/a/sysvinit-scripts/scripts/inittab
+++ b/source/a/sysvinit-scripts/scripts/inittab
@@ -49,7 +49,7 @@ pf::powerfail:/sbin/genpowerfail start
pg::powerokwait:/sbin/genpowerfail stop
# These are the standard console login getties in multiuser mode:
-c1:12345:respawn:/sbin/agetty 38400 tty1 linux
+c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
diff --git a/source/a/sysvinit-scripts/scripts/rc.6 b/source/a/sysvinit-scripts/scripts/rc.6
index ca1b4c8eb..465a0a4a7 100644
--- a/source/a/sysvinit-scripts/scripts/rc.6
+++ b/source/a/sysvinit-scripts/scripts/rc.6
@@ -124,6 +124,13 @@ if echo "$PS" | /bin/grep -q -w pppd ; then
fi
fi
+# Shut down YP services:
+if [ -x /etc/rc.d/rc.yp ]; then
+ if grep -wq stop /etc/rc.d/rc.yp ; then
+ /etc/rc.d/rc.yp stop
+ 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
@@ -158,14 +165,17 @@ 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
+# Stop udev:
+if [ -x /etc/rc.d/rc.udev ]; then
+ sh /etc/rc.d/rc.udev force-stop
+fi
+
+# Kill all remaining processes.
+if [ ! "$1" = "fast" ]; then
+ echo "Sending all processes the SIGTERM signal."
/sbin/killall5 -15
/bin/sleep 5
+ echo "Sending all processes the SIGKILL signal."
/sbin/killall5 -9
fi
diff --git a/source/a/sysvinit-scripts/scripts/rc.M b/source/a/sysvinit-scripts/scripts/rc.M
index 8772409ed..63cb88015 100644
--- a/source/a/sysvinit-scripts/scripts/rc.M
+++ b/source/a/sysvinit-scripts/scripts/rc.M
@@ -83,8 +83,9 @@ if [ -x /usr/bin/fc-cache ]; then
/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:
+# Run rc.udev again. This will start udev if it is not already running
+# (for example, upon return from runlevel 1), otherwise it will trigger it
+# to look for device changes and to generate persistent rules if needed.
if grep -wq sysfs /proc/mounts && grep -q tmpfs /proc/filesystems ; then
if ! grep -wq nohotplug /proc/cmdline ; then
if [ -x /etc/rc.d/rc.udev ]; then
@@ -187,9 +188,11 @@ 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
+# Start wicd or networkmanager:
+if [ -x /etc/rc.d/rc.wicd -a -x /usr/sbin/wicd ]; then
sh /etc/rc.d/rc.wicd start
+elif [ -x /etc/rc.d/rc.networkmanager ]; then
+ sh /etc/rc.d/rc.networkmanager start
fi
# These GTK+/pango files need to be kept up to date for
@@ -225,7 +228,7 @@ fi
# Start netatalk. (a file/print server for Macs using Appletalk)
if [ -x /etc/rc.d/rc.atalk ]; then
- /etc/rc.d/rc.atalk
+ /etc/rc.d/rc.atalk start
fi
# Start smartd, which monitors the status of S.M.A.R.T. compatible
diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S
index c02f1e276..97ff7be4c 100644
--- a/source/a/sysvinit-scripts/scripts/rc.S
+++ b/source/a/sysvinit-scripts/scripts/rc.S
@@ -19,21 +19,27 @@ if [ -d /sys ]; then
fi
fi
+# If /run exists, mount a tmpfs on it (unless the
+# initrd has already done so):
+if [ -d /run ]; then
+ if ! grep -wq "tmpfs /run tmpfs" /proc/mounts ; then
+ /sbin/mount -v -n -t tmpfs tmpfs /run -o mode=0755
+ fi
+fi
+
# Load the loop device kernel module:
if [ -x /etc/rc.d/rc.loop ]; then
. /etc/rc.d/rc.loop start
fi
-# Initialize udev to manage /dev entries and hotplugging for 2.6.x kernels.
+# Initialize udev to manage /dev entries and hotplugging for 3.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. :-)
+# or giving the "nohotplug" option at boot, but 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. So use it. :-)
if grep -wq sysfs /proc/mounts && grep -q tmpfs /proc/filesystems ; then
if ! grep -wq nohotplug /proc/cmdline ; then
if [ -x /etc/rc.d/rc.udev ]; then
@@ -103,10 +109,7 @@ if [ -f /etc/crypttab -a -x /sbin/cryptsetup ]; then
echo "${PASS}" | /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS
fi
else
- for i in seq 1 3 ; do
- /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
- [ $? -eq 0 ] && break
- done
+ /sbin/cryptsetup ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
fi
elif echo $OPTS | grep -wq swap ; then
# If any of the volumes is to be used as encrypted swap,
@@ -134,12 +137,13 @@ if [ -x /sbin/hwclock ]; then
CLOCK_OPT="--directisa"
fi
if grep -wq "^UTC" /etc/hardwareclock ; then
- echo "Setting system time from the hardware clock (UTC)."
+ echo -n "Setting system time from the hardware clock (UTC): "
/sbin/hwclock $CLOCK_OPT --utc --hctosys
else
- echo "Setting system time from the hardware clock (localtime)."
+ echo -n "Setting system time from the hardware clock (localtime): "
/sbin/hwclock $CLOCK_OPT --localtime --hctosys
fi
+ date
fi
# Test to see if the root partition is read-only, like it ought to be.
@@ -250,18 +254,14 @@ else
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
+# Any /etc/mtab that exists here is old, so we start with a new one:
+/bin/rm -f /etc/mtab{,~,.tmp} && /bin/touch /etc/mtab
+
+# Add entry for / to /etc/mtab:
+/sbin/mount -f -w /
-# Fix /etc/mtab to list sys and proc if they were not yet entered in
-# /etc/mtab because / was still mounted read-only:
+# Add /proc and /sys mounts to /etc/mtab:
if [ -d /proc/sys ]; then
/sbin/mount -f proc /proc -t proc
fi
diff --git a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh
index 5ef34d4d8..0bfca50d1 100644
--- a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh
+++ b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh
@@ -1,9 +1,11 @@
#!/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) 1998--2010 Kurt Garloff <kurt@garloff.de>, GNU GPL v2 or v3
# (c) 2006--2008 Hannes Reinecke, GNU GPL v2 or later
-# $Id: rescan-scsi-bus.sh,v 1.48 2010/08/10 19:32:22 garloff Exp $
+# $Id: rescan-scsi-bus.sh,v 1.56 2012/01/14 22:23:53 garloff Exp $
+
+SCAN_WILD_CARD=4294967295
setcolor ()
{
@@ -47,8 +49,9 @@ white_out ()
# Return hosts. sysfs must be mounted
findhosts_26 ()
{
- hosts=
- for hostdir in /sys/class/scsi_host/host*; do
+ hosts=`find /sys/class/scsi_host/host* -maxdepth 4 -type d -o -type l 2> /dev/null | awk -F'/' '{print $5}' | sed -e 's~host~~' | sort -nu`
+ scsi_host_data=`echo "$hosts" | sed -e 's~^~/sys/class/scsi_host/host~'`
+ for hostdir in $scsi_host_data; do
hostno=${hostdir#/sys/class/scsi_host/host}
if [ -f $hostdir/isp_name ] ; then
hostname="qla2xxx"
@@ -57,14 +60,15 @@ findhosts_26 ()
else
hostname=`cat $hostdir/proc_name`
fi
- hosts="$hosts $hostno"
+ #hosts="$hosts $hostno"
echo "Host adapter $hostno ($hostname) found."
done
if [ -z "$hosts" ] ; then
echo "No SCSI host adapters found in sysfs"
exit 1;
fi
- hosts=`echo $hosts | sed 's/ /\n/g' | sort -n`
+ # Not necessary just use double quotes around variable to preserve new lines
+ #hosts=`echo $hosts | tr ' ' '\n'`
}
# Return hosts. /proc/scsi/HOSTADAPTER/? must exist
@@ -337,11 +341,22 @@ idlist ()
getluns()
{
sgdevice
- if test -z "$SGDEV"; then return; fi
- if test ! -x /usr/bin/sg_luns; then echo 0; return; fi
- LLUN=`sg_luns -d /dev/$SGDEV 2>/dev/null`
- if test $? != 0; then echo 0; return; fi
- echo "$LLUN" | sed -n 's/.*lun=\(.*\)/\1/p'
+ if test -z "$SGDEV"; then return 1; fi
+ if test ! -x /usr/bin/sg_luns; then echo 0; return 1; fi
+ LLUN=`sg_luns /dev/$SGDEV 2>/dev/null | sed -n 's/ \(.*\)/\1/p'`
+ if test $? != 0; then echo 0; return 1; fi
+ #echo "$LLUN" | sed -n 's/.*lun=\(.*\)/\1/p'
+ for lun in $LLUN ; do
+ # Swap LUN number
+ l0=$(printf '%u' 0x$lun)
+ l1=$(( ($l0 >> 48) & 0xffff ))
+ l2=$(( ($l0 >> 32) & 0xffff ))
+ l3=$(( ($l0 >> 16) & 0xffff ))
+ l4=$(( $l0 & 0xffff ))
+ l0=$(( ( ( ($l4 * 0xffff) + $l3 ) * 0xffff + $l2 ) * 0xffff + $l1 ))
+ printf "%u\n" $l0
+ done
+ return 0
}
# Wait for udev to settle (create device nodes etc.)
@@ -351,6 +366,10 @@ udevadm_settle()
print_and_scroll_back " Calling udevadm settle (can take a while) "
/sbin/udevadm settle
white_out
+ elif test -x /sbin/udevsettle; then
+ print_and_scroll_back " Calling udevsettle (can take a while) "
+ /sbin/udevsettle
+ white_out
else
usleep 20000
fi
@@ -361,7 +380,7 @@ dolunscan()
{
SCSISTR=
devnr="$host $channel $id $lun"
- echo "Scanning for device $devnr ... "
+ echo -e " Scanning for device $devnr ... "
printf "${yellow}OLD: $norm"
testexist
# Special case: lun 0 just got added (for reportlunscan),
@@ -382,10 +401,6 @@ dolunscan()
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
- if test $RC -eq 1 -o $lun -eq 0 ; then
- # Try readding, should fail if device is gone
- echo "$channel $id $lun" > /sys/class/scsi_host/host${host}/scan
- fi
# FIXME: Can we skip udevadm settle for removal?
#udevadm_settle
usleep 20000
@@ -440,7 +455,7 @@ doreportlun()
lun=0
SCSISTR=
devnr="$host $channel $id $lun"
- echo -en "Scanning for device $devnr ...\r"
+ echo -en " Scanning for device $devnr ...\r"
lun0added=
#printf "${yellow}OLD: $norm"
# Phase one: If LUN0 does not exist, try to add
@@ -470,10 +485,31 @@ doreportlun()
fi
fi
targetluns=`getluns`
+ REPLUNSTAT=$?
lunremove=
#echo "getluns reports " $targetluns
+ olddev=`find /sys/class/scsi_device/ -name $host:$channel:$id:* 2>/dev/null`
+ oldluns=`echo "$olddev" | awk -F'/' '{print $5}' | awk -F':' '{print $4}'`
+ oldtargets="$targetluns"
+ # OK -- if we don't have a LUN to send a REPORT_LUNS to, we could
+ # fall back to wildcard scanning. Same thing if the device does not
+ # support REPORT_LUNS
+ # TODO: We might be better off to ALWAYS use wildcard scanning if
+ # it works
+ if test "$REPLUNSTAT" = "1"; then
+ if test -e /sys/class/scsi_host/host${host}/scan; then
+ echo "$channel $id -" > /sys/class/scsi_host/host${host}/scan 2> /dev/null
+ udevadm_settle
+ else
+ echo "scsi add-single-device $host $channel $id $SCAN_WILD_CARD" > /proc/scsi/scsi
+ fi
+ targetluns=`find /sys/class/scsi_device/ -name $host:$channel:$id:* 2>/dev/null | awk -F'/' '{print $5}' | awk -F':' '{print $4}' | sort -n`
+ let found+=`echo "$targetluns" | wc -l`
+ let found-=`echo "$olddev" | wc -l`
+ fi
+ if test -z "$targetluns"; then targetluns="$oldtargets"; fi
# Check existing luns
- for dev in /sys/class/scsi_device/${host}:${channel}:${id}:*; do
+ for dev in $olddev; do
[ -d "$dev" ] || continue
lun=${dev##*:}
newsearch=
@@ -589,11 +625,14 @@ if test -x /usr/bin/sg_inq; then
sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3)
sg_version=${sg_version##0.}
#echo "\"$sg_version\""
- if [ -z "$sg_version" -o "$sg_version" -lt 70 ] ; then
- sg_len_arg="-36"
- else
+ #if [ -z "$sg_version" -o "$sg_version" -lt 70 ] ; then
+ #sg_len_arg="-36"
+ #else
sg_len_arg="--len=36"
- fi
+ #fi
+else
+ echo "WARN: /usr/bin/sg_inq not present -- please install sg3_utils"
+ echo " or rescan-scsi-bus.sh might not fully work."
fi
# defaults
@@ -677,12 +716,15 @@ for host in $hosts; do
# 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;
+ udevadm_settle
fi
- # Always trigger a rescan for FC to update channels and targets
- echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+ # We used to always trigger a rescan for FC to update channels and targets
+ # Commented out -- as discussed with Hannes we should rely
+ # on the main loop doing the scan, no need to do it here.
+ #echo "- - -" > /sys/class/scsi_host/host$host/scan 2> /dev/null;
+ #udevadm_settle
channelsearch=
idsearch=
- udevadm_settle
else
channelsearch=$opt_channelsearch
idsearch=$opt_idsearch
@@ -707,3 +749,7 @@ fi
echo "$found new device(s) found. "
echo "$rmvd device(s) removed. "
+# Local Variables:
+# sh-basic-offset: 2
+# End:
+
diff --git a/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh.diff b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh.diff
new file mode 100644
index 000000000..89e276935
--- /dev/null
+++ b/source/a/sysvinit-scripts/scripts/rescan-scsi-bus.sh.diff
@@ -0,0 +1,18 @@
+--- rescan-scsi-bus.sh.orig 2012-01-14 16:43:33.000000000 -0600
++++ rescan-scsi-bus.sh 2012-09-07 12:51:52.003994404 -0500
+@@ -625,11 +625,11 @@
+ sg_version=$(sg_inq -V 2>&1 | cut -d " " -f 3)
+ sg_version=${sg_version##0.}
+ #echo "\"$sg_version\""
+- if [ -z "$sg_version" -o "$sg_version" -lt 70 ] ; then
+- sg_len_arg="-36"
+- else
++ #if [ -z "$sg_version" -o "$sg_version" -lt 70 ] ; then
++ #sg_len_arg="-36"
++ #else
+ sg_len_arg="--len=36"
+- fi
++ #fi
+ else
+ echo "WARN: /usr/bin/sg_inq not present -- please install sg3_utils"
+ echo " or rescan-scsi-bus.sh might not fully work."
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
index c0b17ad83..cbc120304 100755
--- a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
+++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,9 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-1.2}
+VERSION=${VERSION:-2.0}
ARCH=noarch
-BUILD=${BUILD:-43}
+BUILD=${BUILD:-13}
CWD=$(pwd)
TMP=${TMP:-/tmp}
diff --git a/source/a/sysvinit/sysvinit-2.86-timeval.patch b/source/a/sysvinit/sysvinit-2.86-timeval.patch
deleted file mode 100644
index acb0d5b68..000000000
--- a/source/a/sysvinit/sysvinit-2.86-timeval.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- 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
index 194ebf144..2a9459c2d 100755
--- a/source/a/sysvinit/sysvinit.SlackBuild
+++ b/source/a/sysvinit/sysvinit.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2005-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-2.86}
-BUILD=${BUILD:-6}
+VERSION=${VERSION:-2.88dsf}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -43,29 +43,23 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf sysvinit-$VERSION
-tar xzvf $CWD/sysvinit-$VERSION.tar.gz || exit 1
+tar xvf $CWD/sysvinit-$VERSION.tar.xz || 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
+
+# Fix paths for /etc/forcefsck and /etc/fastboot:
+zcat $CWD/sysvinit.paths.diff.gz | patch -p1 -E --verbose --backup --suffix=.orig || exit 1
cd doc
mkdir -p $PKG/usr/doc/sysvinit-$VERSION
-cp -a Install Propaganda sysvinit-$VERSION.lsm \
+cp -a Install Propaganda sysvinit-2.86.lsm \
+ ../COPYING* ../COPYRIGHT ../README* \
$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 clobber || exit 1
make || exit 1
mkdir -p $PKG/sbin
diff --git a/source/a/sysvinit/sysvinit.diff b/source/a/sysvinit/sysvinit.diff
deleted file mode 100644
index 11477be72..000000000
--- a/source/a/sysvinit/sysvinit.diff
+++ /dev/null
@@ -1,125 +0,0 @@
-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.paths.diff b/source/a/sysvinit/sysvinit.paths.diff
new file mode 100644
index 000000000..453a677c0
--- /dev/null
+++ b/source/a/sysvinit/sysvinit.paths.diff
@@ -0,0 +1,13 @@
+--- ./src/paths.h.orig 2010-04-11 04:30:27.000000000 -0500
++++ ./src/paths.h 2012-07-31 11:43:40.646053052 -0500
+@@ -29,8 +29,8 @@
+ #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 */
diff --git a/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff b/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff
deleted file mode 100644
index db94dcf19..000000000
--- a/source/a/sysvinit/sysvinit.pidof.rhforkseverything.diff
+++ /dev/null
@@ -1,81 +0,0 @@
---- 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/tcsh/tcsh.SlackBuild b/source/a/tcsh/tcsh.SlackBuild
index 8cf4feb47..c8134a80c 100755
--- a/source/a/tcsh/tcsh.SlackBuild
+++ b/source/a/tcsh/tcsh.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=6.17.00
+VERSION=6.18.01
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/a/tree/tree.SlackBuild b/source/a/tree/tree.SlackBuild
index 540b20472..7085fc99e 100755
--- a/source/a/tree/tree.SlackBuild
+++ b/source/a/tree/tree.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2007-2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2007-2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,7 +20,7 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.5.3
+VERSION=1.6.0
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -56,10 +56,12 @@ 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
+cat doc/tree.1 | gzip -9c > $PKG/usr/man/man1/tree.1.gz
+mkdir -p $PKG/usr/man/fr/man1
+cat doc/tree.1.fr | gzip -9c > $PKG/usr/man/fr/man1/tree.1.gz
mkdir -p $PKG/usr/doc/tree-$VERSION
cp -a \
- CHANGES LICENSE README* \
+ CHANGES LICENSE README* TODO \
$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
diff --git a/source/a/udev/config/modprobe.d/8139cp.conf b/source/a/udev/config/modprobe.d/8139cp.conf
new file mode 100644
index 000000000..65f0af0d1
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/8139cp.conf
@@ -0,0 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Alternate 8139 driver. Some 8139 cards need this specific driver, though...
+blacklist 8139cp
+
diff --git a/source/a/udev/config/modprobe.d/README b/source/a/udev/config/modprobe.d/README
new file mode 100644
index 000000000..43355e826
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/README
@@ -0,0 +1,11 @@
+# /etc/modprobe.d/README
+#
+# The monolithic "blacklist" file (and others) that used to be here in this
+# directory have been split into several more fine-grained files and moved
+# to the /lib/modprobe.d/ directory. Any file in /lib/modprobe.d/ will be
+# overridden by an identically named file in this directory (/etc/modprobe.d/)
+# or /run/modprobe.d/ (but since /run is on a tmpfs, it's not persistent
+# across reboots, so you probably don't want to use it).
+#
+# See "man modprobe.d" for more information.
+#
diff --git a/source/a/udev/config/modprobe.d/bcm43xx.conf b/source/a/udev/config/modprobe.d/bcm43xx.conf
new file mode 100644
index 000000000..55b3c2abc
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/bcm43xx.conf
@@ -0,0 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Deprecated BCM4318 driver.
+blacklist bcm43xx
+
diff --git a/source/a/udev/config/modprobe.d/blacklist.conf.new b/source/a/udev/config/modprobe.d/blacklist.conf.new
deleted file mode 100644
index 25811703d..000000000
--- a/source/a/udev/config/modprobe.d/blacklist.conf.new
+++ /dev/null
@@ -1,270 +0,0 @@
-#
-# 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/eepro100.conf b/source/a/udev/config/modprobe.d/eepro100.conf
new file mode 100644
index 000000000..a7ca4aaea
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/eepro100.conf
@@ -0,0 +1,8 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Alternate Intel EtherExpress Pro/100 support driver. List it
+# here so it won't conflict with an already-loaded e100 module.
+blacklist eepro100
+
diff --git a/source/a/udev/config/modprobe.d/eth1394.conf b/source/a/udev/config/modprobe.d/eth1394.conf
new file mode 100644
index 000000000..a2f475afd
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/eth1394.conf
@@ -0,0 +1,8 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Ethernet over IEEE1394 module. In too many cases this will load
+# when there's no eth1394 device present (just an IEEE1394 port)
+blacklist eth1394
+
diff --git a/source/a/udev/config/modprobe.d/evbug.conf b/source/a/udev/config/modprobe.d/evbug.conf
new file mode 100644
index 000000000..0af0a83c6
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/evbug.conf
@@ -0,0 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+#evbug is a debug tool and should be loaded explicitly
+blacklist evbug
+
diff --git a/source/a/udev/config/modprobe.d/framebuffers.conf b/source/a/udev/config/modprobe.d/framebuffers.conf
new file mode 100644
index 000000000..770ce420a
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/framebuffers.conf
@@ -0,0 +1,48 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+blacklist viafb
+blacklist virgefb
+
diff --git a/source/a/udev/config/modprobe.d/hostap.conf b/source/a/udev/config/modprobe.d/hostap.conf
new file mode 100644
index 000000000..4254d3daa
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/hostap.conf
@@ -0,0 +1,12 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Modules used to run a wireless adapter 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
+
diff --git a/source/a/udev/config/modprobe.d/hw_random.conf b/source/a/udev/config/modprobe.d/hw_random.conf
new file mode 100644
index 000000000..b912e0125
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/hw_random.conf
@@ -0,0 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# This module has also been known to cause crashes with some hardware.
+blacklist hw_random
+
diff --git a/source/a/udev/config/modprobe.d/isapnp.conf b/source/a/udev/config/modprobe.d/isapnp.conf
new file mode 100644
index 000000000..a89ad6bb7
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/isapnp.conf
@@ -0,0 +1,24 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# These aliases are here because many PnP modules do not provide them.
+#
+# NOTE: Commented out due to noise pollution from udev.
+# In the unlikely event that your machine needs these aliases, copy this
+# file to /etc/modprobe.d/isapnp.conf and uncomment them there.
+
+#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/isapnp.conf.new b/source/a/udev/config/modprobe.d/isapnp.conf.new
deleted file mode 100644
index 2ed9305ee..000000000
--- a/source/a/udev/config/modprobe.d/isapnp.conf.new
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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/isdn.conf b/source/a/udev/config/modprobe.d/isdn.conf
new file mode 100644
index 000000000..7f7367536
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/isdn.conf
@@ -0,0 +1,11 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# These two come from the hwdata project
+# Bug numbers are Fedora/RH specific
+
+# ISDN - see bugs 154799, 159068
+blacklist hisax
+blacklist hisax_fcpcipnp
+
diff --git a/source/a/udev/config/modprobe.d/oss.conf b/source/a/udev/config/modprobe.d/oss.conf
new file mode 100644
index 000000000..52ed2f59c
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/oss.conf
@@ -0,0 +1,61 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+
diff --git a/source/a/udev/config/modprobe.d/pcspkr.conf b/source/a/udev/config/modprobe.d/pcspkr.conf
new file mode 100644
index 000000000..66de6b749
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/pcspkr.conf
@@ -0,0 +1,9 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+
diff --git a/source/a/udev/config/modprobe.d/psmouse.conf.new b/source/a/udev/config/modprobe.d/psmouse.conf
index 70c0d8195..cc414141e 100644
--- a/source/a/udev/config/modprobe.d/psmouse.conf.new
+++ b/source/a/udev/config/modprobe.d/psmouse.conf
@@ -1,3 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
# 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
diff --git a/source/a/udev/config/modprobe.d/scsi-sata-controllers.conf b/source/a/udev/config/modprobe.d/scsi-sata-controllers.conf
new file mode 100644
index 000000000..61470416d
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/scsi-sata-controllers.conf
@@ -0,0 +1,81 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+
diff --git a/source/a/udev/config/modprobe.d/sound-modems.conf b/source/a/udev/config/modprobe.d/sound-modems.conf
new file mode 100644
index 000000000..f458346de
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/sound-modems.conf
@@ -0,0 +1,10 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+
diff --git a/source/a/udev/config/modprobe.d/tulip.conf b/source/a/udev/config/modprobe.d/tulip.conf
new file mode 100644
index 000000000..64b6a5ca5
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/tulip.conf
@@ -0,0 +1,11 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# 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
+
diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf b/source/a/udev/config/modprobe.d/usb-controller.conf
new file mode 100644
index 000000000..f5e4e5025
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/usb-controller.conf
@@ -0,0 +1,9 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# The EHCI driver should be loaded before the ones for low speed controllers
+# or some devices may be confused when they are disconnected and reconnected.
+softdep uhci-hcd pre: ehci-hcd
+softdep ohci-hcd pre: ehci-hcd
+
diff --git a/source/a/udev/config/modprobe.d/usb-controller.conf.new b/source/a/udev/config/modprobe.d/usb-controller.conf.new
deleted file mode 100644
index 4b77fd825..000000000
--- a/source/a/udev/config/modprobe.d/usb-controller.conf.new
+++ /dev/null
@@ -1,4 +0,0 @@
-# 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/modprobe.d/via-ircc.conf b/source/a/udev/config/modprobe.d/via-ircc.conf
new file mode 100644
index 000000000..3dfa57315
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/via-ircc.conf
@@ -0,0 +1,7 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# The kernel lists this as "experimental", but for now it's "broken"
+blacklist via-ircc
+
diff --git a/source/a/udev/config/modprobe.d/watchdog.conf b/source/a/udev/config/modprobe.d/watchdog.conf
new file mode 100644
index 000000000..66d1f837d
--- /dev/null
+++ b/source/a/udev/config/modprobe.d/watchdog.conf
@@ -0,0 +1,43 @@
+##############################################################################
+# Do not edit this file; instead, copy it to /etc/modprobe.d/ and edit that
+##############################################################################
+
+# Blacklist all watchdog modules. Many motherboards hang with them, and
+# if you really need a 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 i8xx_tco
+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/rc.d/rc.udev.new b/source/a/udev/config/rc.d/rc.udev.new
index 6a6218f6e..2bbd9819c 100644
--- a/source/a/udev/config/rc.d/rc.udev.new
+++ b/source/a/udev/config/rc.d/rc.udev.new
@@ -4,7 +4,6 @@
# appropriate kernel modules, and configures the devices.
PATH="/sbin:/bin"
-OPT=""
. /etc/udev/udev.conf
@@ -25,26 +24,38 @@ mount_devpts() {
case "$1" in
start)
- # Sanity check #1, udev requires that the kernel support tmpfs:
+ # Sanity check #1, udev requires that the kernel support devtmpfs:
+ if ! grep -wq devtmpfs /proc/filesystems ; then
+ echo "Sorry, but you need devtmpfs support in the kernel to use udev."
+ echo "Both of these options are needed: CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y"
+ echo
+ echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
+ sleep 10
+ exit 1
+ fi
+
+ # Sanity check #2, 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."
+ sleep 10
exit 1
fi
- # Sanity check #2, make sure that a 2.6.x kernel is new enough:
+ # Sanity check #3, 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 "32" ]; then
echo "Sorry, but you need a 2.6.32+ kernel to use this udev."
echo "Your kernel version is only $(uname -r)."
echo
echo "FATAL: Refusing to run /etc/rc.d/rc.udev."
+ sleep 10
exit 1
fi
fi
- # Sanity check #3, make sure the udev package was not removed. If udevd
+ # Sanity check #4, 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
@@ -52,6 +63,7 @@ case "$1" in
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."
+ sleep 10
exit 1
fi
@@ -90,47 +102,41 @@ case "$1" in
# Mount devpts
mount_devpts
- # Start udevd.
- /sbin/udevd --daemon 2>/dev/null
-
- # If udevd was already running, then it will return !=0 exit code,
- # so we'll try to re-run failed events
- if [ $? != 0 ]; 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 # udev is just now being started, so we'll do some initial setup:
-
- # Create rootdev rules
- DEVICENUMBER=$( /bin/stat -c %d / )
- MAJORNUMBER=$(($DEVICENUMBER / 256))
- MINORNUMBER=$(($DEVICENUMBER % 256))
-
- echo 'ACTION!="remove", SUBSYSTEM=="block", ENV{MAJOR}=="'$MAJORNUMBER'", ENV{MINOR}=="'$MINORNUMBER'", SYMLINK+="root"' > /dev/.udev/rules.d/61-dev-root-link.rules
-
- # Set OPT="--action=add" to generate add events on coldplug
- OPT="--action=add"
-
- 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
-
- ;;
+ if ! /sbin/pidof udevd 1>/dev/null 2>/dev/null; then # start udevd
+ echo "Starting udevd: /sbin/udevd --daemon"
+ /sbin/udevd --daemon
+ # Since udev is just now being started we want to use add events:
+ echo "Triggering udev events: /sbin/udevadm trigger --action=add"
+ # Call udevtrigger and udevsettle to do the device configuration:
+ /sbin/udevadm trigger --type=subsystems --action=add
+ /sbin/udevadm trigger --type=devices --action=add
+ else # trigger changes for already running udevd
+ # If the persistent rules files do not exist, trigger an add event:
+ if [ ! -r /etc/udev/rules.d/70-persistent-net.rules ]; then
+ # Test that we can actually write to the directory first:
+ if touch /etc/udev/rules.d/testfile 2> /dev/null ; then
+ rm -f /etc/udev/rules.d/testfile
+ # This should add persistent net/cd rules:
+ echo "Triggering udev to write persistent rules to /etc/udev/rules.d/"
+ /sbin/udevadm trigger --type=devices --action=add
+ sleep 3
+ fi
+ fi
+ # Since udevd is running, most of the time we only need change events:
+ echo "Triggering udev events: /sbin/udevadm trigger --action=change"
+ /sbin/udevadm trigger --type=subsystems --action=change
+ /sbin/udevadm trigger --type=devices --action=change
+ fi
+ /sbin/udevadm settle --timeout=120
+ ;;
stop)
echo "Stopping udevd is STRONGLY discouraged and not supported."
echo "If you are sure you want to do this, use 'force-stop' instead."
;;
force-stop)
echo "Stopping udevd"
- if [ -e /proc/sys/kernel/hotplug ]; then
- echo /sbin/hotplug > /proc/sys/kernel/hotplug
- fi
- killall udevd
+ udevadm control --exit
+ killall udevd 2>/dev/null
;;
restart)
echo "Restarting udevd is STRONGLY discouraged and not supported."
@@ -138,18 +144,18 @@ case "$1" in
;;
force-restart)
echo "Restarting udevd"
- killall udevd
- sleep 5
+ udevadm control --exit
+ sleep 3
udevd --daemon
;;
reload)
echo "Reloading udev rules"
- udevadm control --reload-rules
+ udevadm control --reload
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
+ udevadm control --reload
rm -rf $UDEV_ROOT/.udev $UDEV_ROOT/disk
cp --preserve=all --recursive --update /lib/udev/devices/* $UDEV_ROOT
;;
diff --git a/source/a/udev/config/rules.d/40-slackware.rules b/source/a/udev/config/rules.d/40-slackware.rules
index 6883f5268..9e8c63428 100644
--- a/source/a/udev/config/rules.d/40-slackware.rules
+++ b/source/a/udev/config/rules.d/40-slackware.rules
@@ -17,3 +17,6 @@ KERNEL=="mice", SYMLINK+="mouse"
# Set rfkill device writable by netdev group
KERNEL=="rfkill", GROUP:="netdev", MODE:="0664"
+# Mount fusectl filesystem
+KERNEL=="fuse", ACTION=="add", RUN+="/bin/mount -t fusectl fusectl /sys/fs/fuse/connections"
+
diff --git a/source/a/udev/config/rules.d/90-network.rules b/source/a/udev/config/rules.d/90-network.rules
deleted file mode 100644
index 03f2ddc76..000000000
--- a/source/a/udev/config/rules.d/90-network.rules
+++ /dev/null
@@ -1,5 +0,0 @@
-# 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
deleted file mode 100755
index 9e1720271..000000000
--- a/source/a/udev/config/scripts/nethelper.sh
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/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/doinst.sh b/source/a/udev/doinst.sh
index 5b7f5f902..2912e5c86 100644
--- a/source/a/udev/doinst.sh
+++ b/source/a/udev/doinst.sh
@@ -25,17 +25,12 @@ 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
+ if [ "$modfile" = README ]; then
+ true # do nothing
+ elif [ -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
-
-/sbin/udevadm info --convert-db 1>/dev/null 2>/dev/null
-
diff --git a/source/a/udev/fix-42-usb-hid-pm.rules.diff b/source/a/udev/fix-42-usb-hid-pm.rules.diff
new file mode 100644
index 000000000..2a1d529f7
--- /dev/null
+++ b/source/a/udev/fix-42-usb-hid-pm.rules.diff
@@ -0,0 +1,18 @@
+diff -u -r --new-file udev-182.orig/rules/42-usb-hid-pm.rules udev-182/rules/42-usb-hid-pm.rules
+--- udev-182.orig/rules/42-usb-hid-pm.rules 2012-03-12 16:40:40.569534100 -0500
++++ udev-182/rules/42-usb-hid-pm.rules 2012-09-10 13:36:44.171054934 -0500
+@@ -43,7 +43,13 @@
+ ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="04b3", ATTR{idProduct}=="4012", TEST=="power/control", ATTR{power/control}="auto"
+
+ # Raritan Computer, Inc KVM.
+-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}="0002", TEST=="power/control", ATTR{power/control}="auto"
++ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="14dd", ATTR{idProduct}=="0002", TEST=="power/control", ATTR{power/control}="auto"
+
+ # USB HID devices that are internal to the machine should also be safe to autosuspend
++
++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="removable", GOTO="usb_hid_pm_end"
++ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEMS=="usb", ATTRS{removable}=="unknown", GOTO="usb_hid_pm_end"
++
+ ACTION=="add", SUBSYSTEM=="usb", ATTR{bInterfaceClass}=="03", ATTRS{removable}=="fixed", TEST=="../power/control", ATTR{../power/control}="auto"
++
++LABEL="usb_hid_pm_end"
diff --git a/source/a/udev/rule_generator.diff b/source/a/udev/rule_generator.diff
index 212c09f17..25c72b845 100644
--- a/source/a/udev/rule_generator.diff
+++ b/source/a/udev/rule_generator.diff
@@ -1,6 +1,6 @@
-diff -Nur udev-159.orig//extras/rule_generator/write_cd_rules udev-159/extras/rule_generator/write_cd_rules
---- udev-159.orig//extras/rule_generator/write_cd_rules 2010-06-25 04:37:36.000000000 -0500
-+++ udev-159/extras/rule_generator/write_cd_rules 2010-07-07 02:44:14.501947041 -0500
+diff -Nur udev-182.orig/src/rule_generator/write_cd_rules udev-182/src/rule_generator/write_cd_rules
+--- udev-182.orig/src/rule_generator/write_cd_rules 2012-03-24 22:47:53.138527732 -0500
++++ udev-182/src/rule_generator/write_cd_rules 2012-03-24 22:59:42.595889830 -0500
@@ -3,7 +3,8 @@
# This script is run if an optical drive lacks a rule for persistent naming.
#
@@ -21,58 +21,58 @@ diff -Nur udev-159.orig//extras/rule_generator/write_cd_rules udev-159/extras/ru
comment="$ID_MODEL ($ID_PATH)"
-
- write_rule "$match" "cdrom$link_num" "$comment"
+ write_rule "$match" "cdrom$link_num" "$comment"
-[ "$ID_CDROM_CD_R" -o "$ID_CDROM_CD_RW" ] && \
-- write_rule "$match" "cdrw$link_num"
+- write_rule "$match" "cdrw$link_num"
-[ "$ID_CDROM_DVD" ] && \
-- write_rule "$match" "dvd$link_num"
+- 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
+- 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
++ 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
++ 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 [ "$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 [ "$(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" ]; 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
++ 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
++ write_rule "$match" "dvdwriter$link_num"
++ if [ "$(find_all_rules 'SYMLINK+=' dvdwriter)" = "" ]; then
++ write_rule "$match" "dvdwriter"
++ fi
++ fi
++ fi
echo >> $RULES_FILE
unlock_rules_file
diff --git a/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch b/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch
new file mode 100644
index 000000000..bfa0c76ae
--- /dev/null
+++ b/source/a/udev/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch
@@ -0,0 +1,27 @@
+Adapted from the following patch (path and actual line number changes):
+
+From daa9cf546ce7265645ced9592dd54c6b2fc04302 Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay@vrfy.org>
+Date: Thu, 5 Jul 2012 16:53:08 +0200
+Subject: [PATCH] udev: ata_id - fixup all 8 not only 6 bytes of the fw_rev
+ string
+
+The last two digits are in the wrong order:
+ $ hdparm -I /dev/sda | grep Revision
+ 4PC10362
+
+ $ /lib/udev/ata_id -x /dev/sda | grep REVISION
+ 4PC10326
+
+diff -Nur udev-182.orig/src/ata_id/ata_id.c udev-182/src/ata_id/ata_id.c
+--- udev-182.orig/src/ata_id/ata_id.c 2012-03-13 19:00:51.220734316 -0500
++++ udev-182/src/ata_id/ata_id.c 2012-07-14 19:48:34.224478831 -0500
+@@ -511,7 +511,7 @@
+ * use and copy it into the hd_driveid struct for convenience
+ */
+ disk_identify_fixup_string (identify, 10, 20); /* serial */
+- disk_identify_fixup_string (identify, 23, 6); /* fwrev */
++ disk_identify_fixup_string (identify, 23, 8); /* fwrev */
+ disk_identify_fixup_string (identify, 27, 40); /* model */
+ disk_identify_fixup_uint16 (identify, 0); /* configuration */
+ disk_identify_fixup_uint16 (identify, 75); /* queue depth */
diff --git a/source/a/udev/udev.SlackBuild b/source/a/udev/udev.SlackBuild
index c6f83a0e4..183c6667e 100755
--- a/source/a/udev/udev.SlackBuild
+++ b/source/a/udev/udev.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=${VERSION:-$(echo udev-*.tar.* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-5}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -58,29 +58,35 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# So this is a major bug. At least, it triggers one in the kernel.
-# We'll revert it for now. If left in place, machines using ATA
-# (especially PATA) are liable to randomly crash on reboot.
-# The last little bit of this patch fails to reverse but it won't matter.
-if [ $VERSION = 165 ]; then
- zcat $CWD/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch.gz | patch -p1 -R
-fi
+# Fix ata_id (remove with udev-186+)
+zcat $CWD/udev-ata_id-fixup-all-8-not-only-6-bytes-of-the-fw_rev.patch.gz | patch -p1 || exit 1
+
+# Fix 42-usb-hid-pm.rules (remove with udev-187+)
+zcat $CWD/fix-42-usb-hid-pm.rules.diff.gz | patch -p1 --verbose || exit 1
# Fixup the rule generator for our use
-zcat $CWD/rule_generator.diff.gz | patch -p1 || exit 1
+zcat $CWD/rule_generator.diff.gz | patch -p1 --verbose || exit 1
# static libudev is needed for lvm2
+# --enable-udev_acl was removed (will be part of future CK release)
+# --enable-floppy support was also disabled by default in 173
+# --enable-rule_generator was disabled by default in 175
./configure \
- --enable-static \
--prefix=/usr \
- --sysconfdir=/etc \
- --sbindir=/sbin \
+ --with-rootprefix=/ \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--with-rootlibdir=/lib${LIBDIRSUFFIX} \
- --libexecdir=/lib/udev \
- --disable-introspection \
+ --with-firmware-path=/lib/firmware/updates:/lib/firmware \
+ --sysconfdir=/etc \
+ --bindir=/sbin \
+ --sbindir=/sbin \
+ --libexecdir=/lib \
+ --enable-introspection \
--mandir=/usr/man \
--docdir=/usr/doc/udev-$VERSION \
+ --enable-floppy \
+ --enable-static \
+ --enable-rule_generator \
--build=$ARCH-slackware-linux || exit 1
make $NUMJOBS || make || exit 1
@@ -92,8 +98,13 @@ find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
# scsi_id is needed by multipath
( cd $PKG/sbin ; ln -s ../lib/udev/scsi_id scsi_id )
+# Put udevd back in /sbin
+mv $PKG/lib/udev/udevd $PKG/sbin
+ln -s /sbin/udevd $PKG/lib/udev/udevd
+
mkdir -p \
- $PKG/etc/modprobe.d \
+ $PKG/run \
+ $PKG/{etc,lib}/modprobe.d \
$PKG/etc/rc.d \
$PKG/etc/udev/rules.d \
$PKG/lib/firmware
@@ -106,32 +117,23 @@ cp -a $CWD/config/rules.d/* $PKG/lib/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
+cp -a $CWD/config/modprobe.d/*.conf $PKG/lib/modprobe.d/
+cp -a $CWD/config/modprobe.d/README $PKG/etc/modprobe.d/
-chown -R root:root $PKG/etc
-find $PKG/etc -type f -exec chmod 644 {} \;
+chown -R root:root $PKG/etc $PKG/lib/modprobe.d
+find $PKG/etc $PKG/lib/modprobe.d -type f -exec chmod 644 {} \;
find $PKG/etc -type d -exec chmod 755 {} \;
chmod 0755 $PKG/etc/rc.d/rc.udev.new
# Add extra device nodes to the package that udev doesn't make:
-# As of 156, some of these aren't be needed any more:
-# removed core@ fd@ stderr@ stdin@ stdout@
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 0755 $PKG/lib/udev/*
-# Move the pkgconfig file to where we expect it
-mv $PKG/usr/share/pkgconfig/* $PKG/usr/lib${LIBDIRSUFFIX}/pkgconfig
-rmdir $PKG/usr/share/pkgconfig
-
mkdir -p $PKG/usr/doc/udev-$VERSION
cp -a \
- COPYING* README* TODO extras/keymap/README.keymap.txt \
+ COPYING* README* TODO \
$PKG/usr/doc/udev-$VERSION
# Don't package the API docs:
diff --git a/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch b/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch
deleted file mode 100644
index fc991b9af..000000000
--- a/source/a/udev/udev.git-560de575148b7efda3b34a7f7073abd483c5f08e.patch
+++ /dev/null
@@ -1,305 +0,0 @@
-From 560de575148b7efda3b34a7f7073abd483c5f08e Mon Sep 17 00:00:00 2001
-From: David Zeuthen <davidz@redhat.com>
-Date: Thu, 4 Nov 2010 08:55:58 -0400
-Subject: [PATCH 1/1] Use ata_id, not scsi_id, on ATAPI devices
-
-The major benefit here, is that we get the ATAPI device serial
-number. With SCSI ID we didn't get this since it's not part of the
-SCSI INQUIRY command. Specifically this means that we get symlinks to
-empty optical drives, e.g.
-
- /dev/disk/by-id/ata-VBOX_CD-ROM_VB2-01700376
-
-which we didn't get earlier. So this is a major win.
-
-Also make ata_id work on CD-ROM devices when using /dev/bsg nodes so
-this works on both the scsi_device as well as the block device. We do
-this, basically, by issuing the ATA IDENTIFY PACKET DEVICE command
-instead of the ATA IDENTIFY command. We also use 16-byte pass-through
-ATA passthrough instead of 12-byte passthrough to avoid clashing with
-the MMC BLANK command.
-
-This means that we get this output
-
- # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- E: UDEV_LOG=3
- E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- E: DEVTYPE=scsi_device
- E: DRIVER=sr
- E: MODALIAS=scsi:t-0x05
- E: SUBSYSTEM=scsi
- E: ID_ATA=1
- E: ID_TYPE=cd
- E: ID_BUS=ata
- E: ID_MODEL=VBOX_CD-ROM
- E: ID_MODEL_ENC=VBOX\x20CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x 20\x20\x20\x20\x20\x20\x20
- E: ID_REVISION=1.0
- E: ID_SERIAL=VBOX_CD-ROM_VB2-01700376
- E: ID_SERIAL_SHORT=VB2-01700376
-
-instead of just
-
- # udevadm info -q all -p /sys/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- P: /devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- E: UDEV_LOG=3
- E: DEVPATH=/devices/pci0000:00/0000:00:01.1/host3/target3:0:0/3:0:0:0
- E: DEVTYPE=scsi_device
- E: DRIVER=sr
- E: MODALIAS=scsi:t-0x05
- E: SUBSYSTEM=scsi
- E: ID_SCSI=1
- E: ID_VENDOR=VBOX
- E: ID_VENDOR_ENC=VBOX\x20\x20\x20\x20
- E: ID_MODEL=CD-ROM
- E: ID_MODEL_ENC=CD-ROM\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
- E: ID_REVISION=1.0
- E: ID_TYPE=cd
-
-Signed-off-by: David Zeuthen <davidz@redhat.com>
----
- extras/ata_id/ata_id.c | 122 ++++++++++++++++++++++++++---
- rules/rules.d/60-persistent-storage.rules | 4 +
- 2 files changed, 114 insertions(+), 12 deletions(-)
-
-diff --git a/extras/ata_id/ata_id.c b/extras/ata_id/ata_id.c
-index 41544e9..92387e5 100644
---- a/extras/ata_id/ata_id.c
-+++ b/extras/ata_id/ata_id.c
-@@ -202,6 +202,89 @@ static int disk_identify_command(int fd,
- return ret;
- }
-
-+static int disk_identify_packet_device_command(int fd,
-+ void *buf,
-+ size_t buf_len)
-+{
-+ struct sg_io_v4 io_v4;
-+ uint8_t cdb[16];
-+ uint8_t sense[32];
-+ uint8_t *desc = sense+8;
-+ int ret;
-+
-+ /*
-+ * ATA Pass-Through 16 byte command, as described in
-+ *
-+ * T10 04-262r8 ATA Command Pass-Through
-+ *
-+ * from http://www.t10.org/ftp/t10/document.04/04-262r8.pdf
-+ */
-+ memset(cdb, 0, sizeof(cdb));
-+ cdb[0] = 0x85; /* OPERATION CODE: 16 byte pass through */
-+ cdb[1] = 4 << 1; /* PROTOCOL: PIO Data-in */
-+ cdb[2] = 0x2e; /* OFF_LINE=0, CK_COND=1, T_DIR=1, BYT_BLOK=1, T_LENGTH=2 */
-+ cdb[3] = 0; /* FEATURES */
-+ cdb[4] = 0; /* FEATURES */
-+ cdb[5] = 0; /* SECTORS */
-+ cdb[6] = 1; /* SECTORS */
-+ cdb[7] = 0; /* LBA LOW */
-+ cdb[8] = 0; /* LBA LOW */
-+ cdb[9] = 0; /* LBA MID */
-+ cdb[10] = 0; /* LBA MID */
-+ cdb[11] = 0; /* LBA HIGH */
-+ cdb[12] = 0; /* LBA HIGH */
-+ cdb[13] = 0; /* DEVICE */
-+ cdb[14] = 0xA1; /* Command: ATA IDENTIFY PACKET DEVICE */;
-+ cdb[15] = 0; /* CONTROL */
-+ memset(sense, 0, sizeof(sense));
-+
-+ memset(&io_v4, 0, sizeof(struct sg_io_v4));
-+ io_v4.guard = 'Q';
-+ io_v4.protocol = BSG_PROTOCOL_SCSI;
-+ io_v4.subprotocol = BSG_SUB_PROTOCOL_SCSI_CMD;
-+ io_v4.request_len = sizeof (cdb);
-+ io_v4.request = (uintptr_t) cdb;
-+ io_v4.max_response_len = sizeof (sense);
-+ io_v4.response = (uintptr_t) sense;
-+ io_v4.din_xfer_len = buf_len;
-+ io_v4.din_xferp = (uintptr_t) buf;
-+ io_v4.timeout = COMMAND_TIMEOUT_MSEC;
-+
-+ ret = ioctl(fd, SG_IO, &io_v4);
-+ if (ret != 0) {
-+ /* could be that the driver doesn't do version 4, try version 3 */
-+ if (errno == EINVAL) {
-+ struct sg_io_hdr io_hdr;
-+
-+ memset(&io_hdr, 0, sizeof(struct sg_io_hdr));
-+ io_hdr.interface_id = 'S';
-+ io_hdr.cmdp = (unsigned char*) cdb;
-+ io_hdr.cmd_len = sizeof (cdb);
-+ io_hdr.dxferp = buf;
-+ io_hdr.dxfer_len = buf_len;
-+ io_hdr.sbp = sense;
-+ io_hdr.mx_sb_len = sizeof (sense);
-+ io_hdr.dxfer_direction = SG_DXFER_FROM_DEV;
-+ io_hdr.timeout = COMMAND_TIMEOUT_MSEC;
-+
-+ ret = ioctl(fd, SG_IO, &io_hdr);
-+ if (ret != 0)
-+ goto out;
-+ } else {
-+ goto out;
-+ }
-+ }
-+
-+ if (!(sense[0] == 0x72 && desc[0] == 0x9 && desc[1] == 0x0c)) {
-+ errno = EIO;
-+ ret = -1;
-+ goto out;
-+ }
-+
-+ out:
-+ return ret;
-+}
-+
- /**
- * disk_identify_get_string:
- * @identify: A block of IDENTIFY data
-@@ -256,31 +339,36 @@ static void disk_identify_fixup_uint16 (uint8_t identify[512], unsigned int offs
- * @udev: The libudev context.
- * @fd: File descriptor for the block device.
- * @out_identify: Return location for IDENTIFY data.
-+ * @out_is_packet_device: Return location for whether returned data is from a IDENTIFY PACKET DEVICE.
- *
-- * Sends the IDENTIFY DEVICE command to the device represented by
-- * @fd. If successful, then the result will be copied into
-- * @out_identify.
-+ * Sends the IDENTIFY DEVICE or IDENTIFY PACKET DEVICE command to the
-+ * device represented by @fd. If successful, then the result will be
-+ * copied into @out_identify and @out_is_packet_device.
- *
- * This routine is based on code from libatasmart, Copyright 2008
- * Lennart Poettering, LGPL v2.1.
- *
-- * Returns: 0 if the IDENTIFY data was successfully obtained,
-- * otherwise non-zero with errno set.
-+ * Returns: 0 if the data was successfully obtained, otherwise
-+ * non-zero with errno set.
- */
- static int disk_identify (struct udev *udev,
- int fd,
-- uint8_t out_identify[512])
-+ uint8_t out_identify[512],
-+ int *out_is_packet_device)
- {
- int ret;
- uint8_t inquiry_buf[36];
- int peripheral_device_type;
- int all_nul_bytes;
- int n;
-+ int is_packet_device;
-
- assert (out_identify != NULL);
-+
- /* init results */
- ret = -1;
- memset (out_identify, '\0', 512);
-+ is_packet_device = 0;
-
- /* If we were to use ATA PASS_THROUGH (12) on an ATAPI device
- * we could accidentally blank media. This is because MMC's BLANK
-@@ -309,6 +397,12 @@ static int disk_identify (struct udev *udev,
-
- /* SPC-4, section 6.4.2: Standard INQUIRY data */
- peripheral_device_type = inquiry_buf[0] & 0x1f;
-+ if (peripheral_device_type == 0x05)
-+ {
-+ is_packet_device = 1;
-+ ret = disk_identify_packet_device_command(fd, out_identify, 512);
-+ goto check_nul_bytes;
-+ }
- if (peripheral_device_type != 0x00) {
- ret = -1;
- errno = EIO;
-@@ -320,6 +414,7 @@ static int disk_identify (struct udev *udev,
- if (ret != 0)
- goto out;
-
-+ check_nul_bytes:
- /* Check if IDENTIFY data is all NUL bytes - if so, bail */
- all_nul_bytes = 1;
- for (n = 0; n < 512; n++) {
-@@ -336,6 +431,8 @@ static int disk_identify (struct udev *udev,
- }
-
- out:
-+ if (out_is_packet_device != NULL)
-+ *out_is_packet_device = is_packet_device;
- return ret;
- }
-
-@@ -350,7 +447,7 @@ int main(int argc, char *argv[])
- {
- struct udev *udev;
- struct hd_driveid id;
-- uint8_t identify[512];
-+ uint8_t identify[512];
- char model[41];
- char model_enc[256];
- char serial[21];
-@@ -358,8 +455,9 @@ int main(int argc, char *argv[])
- const char *node = NULL;
- int export = 0;
- int fd;
-- uint16_t word;
-+ uint16_t word;
- int rc = 0;
-+ int is_packet_device = 0;
- static const struct option options[] = {
- { "export", no_argument, NULL, 'x' },
- { "help", no_argument, NULL, 'h' },
-@@ -408,7 +506,7 @@ int main(int argc, char *argv[])
- goto exit;
- }
-
-- if (disk_identify(udev, fd, identify) == 0) {
-+ if (disk_identify(udev, fd, identify, &is_packet_device) == 0) {
- /*
- * fix up only the fields from the IDENTIFY data that we are going to
- * use and copy it into the hd_driveid struct for convenience
-@@ -416,7 +514,7 @@ int main(int argc, char *argv[])
- disk_identify_fixup_string (identify, 10, 20); /* serial */
- disk_identify_fixup_string (identify, 23, 6); /* fwrev */
- disk_identify_fixup_string (identify, 27, 40); /* model */
-- disk_identify_fixup_uint16 (identify, 0); /* configuration */
-+ disk_identify_fixup_uint16 (identify, 0); /* configuration */
- disk_identify_fixup_uint16 (identify, 75); /* queue depth */
- disk_identify_fixup_uint16 (identify, 75); /* SATA capabilities */
- disk_identify_fixup_uint16 (identify, 82); /* command set supported */
-@@ -457,8 +555,8 @@ int main(int argc, char *argv[])
- udev_util_replace_chars(revision, NULL);
-
- if (export) {
-- /* Set this to convey the disk speaks the ATA protocol */
-- printf("ID_ATA=1\n");
-+ /* Set this to convey the disk speaks the ATA protocol */
-+ printf("ID_ATA=1\n");
-
- if ((id.config >> 8) & 0x80) {
- /* This is an ATAPI device */
-diff --git a/rules/rules.d/60-persistent-storage.rules b/rules/rules.d/60-persistent-storage.rules
-index d3f2f73..8baabc2 100644
---- a/rules/rules.d/60-persistent-storage.rules
-+++ b/rules/rules.d/60-persistent-storage.rules
-@@ -12,6 +12,8 @@ ACTION=="remove", GOTO="persistent_storage_end"
-
- # run scsi_id and ata_id on the actual SCSI device
- SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", ATTR{vendor}=="ATA", IMPORT{program}="ata_id --export $root/bsg/$kernel"
-+# ATA/ATAPI devices is of type 0x05 and vendor is usually not ATA
-+SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", ATTR{type}=="5", IMPORT{program}="ata_id --export $root/bsg/$kernel"
- SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --whitelisted --export --device $root/bsg/$kernel"
-
- # from this point on, only care about block devices
-@@ -40,6 +42,8 @@ KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{program
- KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="ata", IMPORT{program}="ata_id --export $tempnode"
- # ATA devices using the "scsi" subsystem
- KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{vendor}=="ATA", IMPORT{program}="ata_id --export $tempnode"
-+# ATA/ATAPI devices using the "scsi" subsystem
-+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", ATTRS{type}=="5", IMPORT{program}="ata_id --export $tempnode"
- # scsi devices
- KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="scsi"
- KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --export --whitelisted -d $tempnode", ENV{ID_BUS}="cciss"
---
-1.7.3.4
-
diff --git a/source/a/udisks/slack-desc b/source/a/udisks/slack-desc
new file mode 100644
index 000000000..a85adeb4d
--- /dev/null
+++ b/source/a/udisks/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------------------------------------------------------|
+udisks: udisks (storage device daemon)
+udisks:
+udisks: The udisks project provides a storage daemon that implements D-Bus
+udisks: interfaces that can be used to query and manipulate storage devices.
+udisks:
+udisks: It also includes a command-line tool, udisks(1), that can be used to
+udisks: query and control the daemon.
+udisks:
+udisks: Homepage: http://www.freedesktop.org/wiki/Software/udisks
+udisks:
+udisks:
diff --git a/source/a/udisks/udisks.SlackBuild b/source/a/udisks/udisks.SlackBuild
new file mode 100755
index 000000000..9d12e7837
--- /dev/null
+++ b/source/a/udisks/udisks.SlackBuild
@@ -0,0 +1,119 @@
+#!/bin/sh
+
+# Slackware build script for udisks
+
+# Copyright 2010, 2011 Robby Workman, Northport, Alabama, 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 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+
+PKGNAM=udisks
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+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"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+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.xz
+cd $PKGNAM-$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 \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$TARGET
+
+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 || true
+
+# Move the bash completion file to the right place
+mkdir -p $PKG/etc/bash_completion.d
+mv $PKG/etc/profile.d/udisks-bash-completion.sh \
+ $PKG/etc/bash_completion.d/udisks
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog HACKING INSTALL NEWS README \
+ $PKG/usr/doc/$PKGNAM-$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/udisks/udisks.url b/source/a/udisks/udisks.url
new file mode 100644
index 000000000..cef0134ba
--- /dev/null
+++ b/source/a/udisks/udisks.url
@@ -0,0 +1 @@
+http://hal.freedesktop.org/releases/
diff --git a/source/a/udisks2/doinst.sh b/source/a/udisks2/doinst.sh
new file mode 100644
index 000000000..c186599af
--- /dev/null
+++ b/source/a/udisks2/doinst.sh
@@ -0,0 +1,12 @@
+# udisks2 is stupid about testing files before using them. If /etc/crypttab
+# does not exist, it will fill the log with "errors" as it tries to open the
+# nonexistent file. There's really no reason that a system without encrypted
+# volumes should require this file, but nobody upstream cares to fix the
+# problem (and the code's too messy for me to find it), so we have little
+# choice but to trowel over this. (sigh)
+
+if [ ! -r etc/crypttab ]; then
+ # echo "HEY, EVERYONE SHOULD HAVE A CRYPTTAB!!!" (just kidding)
+ touch etc/crypttab
+fi
+
diff --git a/source/x/x11/slack-desc/scripts b/source/a/udisks2/slack-desc
index 549159b27..0d6d44272 100644
--- a/source/x/x11/slack-desc/scripts
+++ b/source/a/udisks2/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-scripts: scripts
-scripts:
-scripts: scripts is part of X11.
-scripts:
-scripts: For more information about the X.Org Foundation (the providers of the
-scripts: X.Org implementation of the X Window System), see their website:
-scripts:
-scripts: http://www.x.org
-scripts:
-scripts:
-scripts:
+udisks2: udisks2 (storage device daemon v2)
+udisks2:
+udisks2: The udisks project provides a storage daemon that implements D-Bus
+udisks2: interfaces that can be used to query and manipulate storage devices.
+udisks2:
+udisks2: It also includes a command-line tool, udisks(1), that can be used to
+udisks2: query and control the daemon.
+udisks2:
+udisks2: Homepage: http://www.freedesktop.org/wiki/Software/udisks
+udisks2:
+udisks2:
diff --git a/source/a/udisks2/udisks2.SlackBuild b/source/a/udisks2/udisks2.SlackBuild
new file mode 100755
index 000000000..4316488e9
--- /dev/null
+++ b/source/a/udisks2/udisks2.SlackBuild
@@ -0,0 +1,139 @@
+#!/bin/sh
+
+# Slackware build script for udisks
+
+# Copyright 2010, 2011 Robby Workman, Northport, Alabama, 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 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+PKGNAM=udisks2
+SRCNAM=udisks
+VERSION=${VERSION:-$(echo $SRCNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+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"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.xz || exit 1
+cd $SRCNAM-$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 \
+ --disable-static \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$TARGET || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# Don't ship .la files:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.la
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+# 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/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* HACKING INSTALL NEWS README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+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 n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/extra/source/GConf/doinst.sh b/source/a/upower/doinst.sh
index e4c115f3a..46abf401c 100644
--- a/extra/source/GConf/doinst.sh
+++ b/source/a/upower/doinst.sh
@@ -11,6 +11,5 @@ config() {
# Otherwise, we leave the .new copy for the admin to consider...
}
-config etc/gconf/2/path.new
-config etc/gconf/2/evoldap.conf.new
+config etc/UPower/UPower.conf.new
diff --git a/source/a/upower/slack-desc b/source/a/upower/slack-desc
new file mode 100644
index 000000000..b4401b937
--- /dev/null
+++ b/source/a/upower/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------------------------------------------------------|
+upower: UPower (power management abstraction daemon)
+upower:
+upower: UPower is an abstraction for enumerating power devices, listening to
+upower: device events and querying history and statistics. Any application or
+upower: service on the system can access the org.freedesktop.UPower service
+upower: via the system message bus. Some operations (such as suspending the
+upower: system) are restricted using PolicyKit.
+upower:
+upower: Homepage: http://upower.freedesktop.org/
+upower:
+upower:
diff --git a/source/a/upower/upower.SlackBuild b/source/a/upower/upower.SlackBuild
new file mode 100755
index 000000000..e58319602
--- /dev/null
+++ b/source/a/upower/upower.SlackBuild
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+# Slackware build script for upower
+
+# Copyright 2010, 2011 Robby Workman, Northport, Alabama, 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 2012 by Eric Hameleers <alien at slackware.com> for ARM port.
+
+
+PKGNAM=upower
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
+BUILD=${BUILD:-1}
+
+NUMJOBS=${NUMJOBS:--j7}
+
+# Automatically determine the architecture we're building on:
+MARCH=$( uname -m )
+if [ -z "$ARCH" ]; then
+ case "$MARCH" in
+ i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=$MARCH ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$MARCH ;;
+ esac
+fi
+
+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"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+case "$ARCH" in
+ arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
+ *) TARGET=$ARCH-slackware-linux ;;
+esac
+
+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.xz
+cd $PKGNAM-$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 \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-static \
+ --enable-man-pages \
+ --build=$TARGET
+
+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 || true
+
+# Don't clobber the config file on upgrades
+mv $PKG/etc/UPower/UPower.conf $PKG/etc/UPower/UPower.conf.new
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING ChangeLog HACKING INSTALL NEWS README \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+cat $CWD/$PKGNAM.SlackBuild > $PKG/usr/doc/$PKGNAM-$VERSION/$PKGNAM.SlackBuild
+
+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/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/upower/upower.url b/source/a/upower/upower.url
new file mode 100644
index 000000000..30c25b7f4
--- /dev/null
+++ b/source/a/upower/upower.url
@@ -0,0 +1 @@
+http://upower.freedesktop.org/releases/
diff --git a/source/a/usb_modeswitch/device_reference.txt b/source/a/usb_modeswitch/device_reference.txt
index 10fb5fe85..db7ac8c05 100644
--- a/source/a/usb_modeswitch/device_reference.txt
+++ b/source/a/usb_modeswitch/device_reference.txt
@@ -1,7 +1,7 @@
#
# Device and Configuration Reference (UTF-8 encoding used)
#
-# Last modified: 2010-08-26
+# Last modified: 2012-01-20
#
# Collection of configurations for usb_modeswitch, a mode switching
# tool for controlling flip flop (multiple mode) USB devices
@@ -13,22 +13,12 @@
# http://www.draisberghof.de/usb_modeswitch/device_reference.txt
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
#
-# Important! This file is just a reference! Use the data package!
+# Don't use this file directly; for your own experiments, create a
+# config file, copy data from here, and use it with the -c parameter!
#
-# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
-
-
-# In order to activate a device included here you might remove the
-# comment signs (";") from the respective entry.
-#
-# It is rather recommended to copy device information to a different
-# file, to ease editing work and oversight and to avoid possible
-# conflicts by activating multiple entries.
-# There is no guarantee that this file is error-free!
-#
-# The actual entries are further down, after the command reference.
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# For custom settings:
@@ -43,7 +33,8 @@
# * DefaultProduct -p <hex number>
#
# This is the ID the USB device shows after having been plugged in.
-# The program needs this; if not found -> no action.
+# The program needs this, either on the command line or in the config
+# file; if not found -> no action.
#
#
# * TargetVendor -V <hex number>
@@ -67,11 +58,10 @@
#
#
# * MessageEndpoint -m <hex number>
-#
+#
# A kind of address inside the interface to which the "message"
# (the sequence that does the actual switching) is directed.
-# Starting from version 0.9.7 the MessageEndpoint is autodetected
-# if not given
+# Obsolete since version 0.9.7, only useful for testing
#
#
# * MessageContent -M <hex string>
@@ -88,6 +78,7 @@
# * ReleaseDelay -w <milliseconds>
#
# Waiting time after message transfers. Helps with some sensitive devices
+# that don't want any traffic after the mode switch initialisation
#
#
# * ResponseEndpoint -r <hex number>
@@ -101,42 +92,43 @@
#
# * DetachStorageOnly <0/1> -d
#
-# Some devices just need to be detached from the usb-storage
-# driver to initiate the mode switching. Using this feature
-# instead of removing the whole usbstorage module keeps other
-# storage devices working.
+# Some early devices just needed to be detached from the usb-storage
+# driver to initiate the mode switching. Now paractically obsolete for
+# switching, but still comes handy sometimes
#
#
# * HuaweiMode <0/1> -H
#
-# Some Huawei devices can be switched by a special control
-# message.
-#
-#
-# * SierraMode <0/1> -S
-#
-# Some Sierra devices can be switched by a special control
-# message.
+# Some early Huawei devices can be switched by a special control
+# message. Don't use with recent devices
#
#
# * SonyMode <0/1> -O
#
# Some Sony-Ericsson devices can be switched by a special control
-# message. This is experimental and might not have a stable result
+# message. May take a long time (20+ seconds).
#
-# * KobilMode <0/1> -T
#
-# Some Kobil devices can be switched by a special control
-# message.
+# * SierraMode <0/1> -S
+# * KobilMode <0/1> -T
+# * GCTMode <0/1> -G
+# * SequansMode <0/1> -N
+# * MobileActionMode <0/1> -A
+# * QisdaMode <0/1> -B
+# * CiscoMode <0/1> -B
+#
+#
+# Flags to support devices that need special control messages.
+# The names are referring to the respective manufacturers.
#
#
# * ResetUSB <0/1> -R
#
-# Some devices need a rougher treatment. If the switching seems
-# to do something (run udevmonitor), but your system does not reflect
-# it, try this somewhat brutal method to do a reset after switching.
-# Mind that if your device switched OK before, this will probably set
-# it back to storage mode ...
+# Few devices or systems need a rougher treatment. If the switching seems
+# to do something but your system does not reflect it, try this somewhat
+# brutal method to do a reset after switching.
+# Mind that if your device switched OK before, this may set it back to
+# storage mode ...
#
#
# * Interface -i <hex number>
@@ -175,16 +167,27 @@
#
# The binary tells the wrapper script NOT to check for and initiate
# binding of the serial driver after switching.
-# Mostly useful for non-modem devices
+# Mostly useful for non-modem devices.
+#
#
+# * WaitBefore <seconds> (no command line parameter)
#
-# -> All other entries are just ignored <-
+# Waiting time before taking any action. Helps with some sensitive setups.
+#
+#
+#
+# -> All other entries in config files are just ignored <-
# Additional command line flags:
-#
+#
# Verbose output -W
# No output at all -q
-# Other config file -c <file>
+# Use config file -c <file>
+# Use stdin for long config -t
+# Give long config as string -f <multiline string using config file syntax>
+# Give bus number for ID'ing -b
+# Give dev number for ID'ing -g
+
# For filling in all this information for an unknown device,
# see instructions and links on the homepage:
@@ -197,47 +200,47 @@
#######################################################
# Option GlobeSurfer Icon (aka "Vodafone EasyBox")
#
-# The message SHOULD be the same for all Option devices
+# The MessageContent is identical for all Option devices
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x0af0
-;TargetProduct= 0x6600
+TargetVendor= 0x0af0
+TargetProduct= 0x6600
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
#######################################################
-# Option GlobeSurfer Icon 7.2
+# Option GlobeSurfer Icon 7.2
#
# Contributor: The Pharscape Forum
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x0af0
-;TargetProduct= 0x6901
+TargetVendor= 0x0af0
+TargetProduct= 0x6901
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
########################################################
# Option GlobeTrotter GT MAX 3.6 (aka "T-Mobile Web'n'walk Card Compact II")
#
-# Contributor: Bernd Holzmüller
+# Contributor: Bernd Holzmüller
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x0af0
-;TargetProduct= 0x6600
+TargetVendor= 0x0af0
+TargetProduct= 0x6600
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
# ResponseEndpoint=0x84
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -245,13 +248,13 @@
#
# Contributors: Lucas Benedicic, Morgwai Kotarbinski
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x0af0
-;TargetProduct= 0x6701
+TargetVendor= 0x0af0
+TargetProduct= 0x6701
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
########################################################
@@ -259,33 +262,92 @@
#
# Contributor: Fridtjof Busse
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x0af0
-;TargetProduct= 0x6701
+TargetVendor= 0x0af0
+TargetProduct= 0x6701
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
# Response reading needed according to one (1) report
-;NeedResponse=1
+NeedResponse=1
#######################################################
# Option GlobeSurfer Icon 7.2, new firmware (HSO driver)
#
# Vendor/ProductID don't change when switching, only the device
-# class does. Most new Option devices work with this. Just adapt IDs!
-# HSO driver support is available at Pharscape (www.pharscape.org)
-#
-# Contributor: Paul Hardwick
-
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0x6911
+# class does. Most new Option devices work with this. Just adapt the IDs.
+#
+# Option's HSO driver is part of the mainstream kernel; support is
+# available at Pharscape (www.pharscape.org)
+#
+# Contributors: Paul Hardwick, Philip Aben
+
+DefaultVendor= 0x0af0
+DefaultProduct= 0x6911
+
+TargetClass= 0xff
+
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+
+# Here is a list with all currently supported Option default IDs:
+#
+# 0af0:6711
+# 0af0:6731
+# 0af0:6751
+# 0af0:6771
+# 0af0:6791
+# 0af0:6811
+# 0af0:6911
+# 0af0:6951
+# 0af0:6971
+# 0af0:7011
+# 0af0:7031
+# 0af0:7051
+# 0af0:7071
+# 0af0:7111
+# 0af0:7211
+# 0af0:7251
+# 0af0:7271
+# 0af0:7301
+# 0af0:7311
+# 0af0:7361
+# 0af0:7381
+# 0af0:7401
+# 0af0:7501
+# 0af0:7601
+# 0af0:7701
+# 0af0:7801
+# 0af0:7901
+# 0af0:7a01
+# 0af0:7a05
+# 0af0:8200
+# 0af0:8201
+# 0af0:8300
+# 0af0:8302
+# 0af0:8304
+# 0af0:8400
+# 0af0:8600
+# 0af0:8800
+# 0af0:8900
+# 0af0:9000
+# 0af0:c031
+# 0af0:c100
+# 0af0:d013
+# 0af0:d031
+# 0af0:d033
+# 0af0:d035
+# 0af0:d055
+# 0af0:d057
+# 0af0:d058
+# 0af0:d155
+# 0af0:d157
+# 0af0:d255
+# 0af0:d257
+# 0af0:d357
-;TargetClass= 0xff
-
-;MessageContent="55534243123456780000000000000601000000000000000000000000000000"
########################################################
@@ -298,75 +360,15 @@
#
# Contributor: wahlm, Peter Kraker, Pakdhetimin Sekum
-;DefaultVendor= 0x1e0e
-;DefaultProduct= 0xf000
-
-;TargetVendor= 0x1e0e
-;TargetProduct= 0x9000
-
-;MessageContent="555342431234567800000000000006bd000000020000000000000000000000"
-
-;NeedResponse=1
-
-
-#######################################################
-# Option iCON 225 HSDPA
-#
-# New Firmware. HSO driver support is available at Pharscape (www.pharscape.org)
-#
-# Contributor: Matti Viljanen
-
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0x6971
-
-;TargetClass= 0xff
-
-;MessageContent="555342431223456780100000080000601000000000000000000000000000000"
-
-
-#######################################################
-# Option GlobeTrotter HSUPA Modem (aka "T-Mobile Web'n'walk Card Compact III')
-#
-# New Firmware. HSO driver support is available at Pharscape (www.pharscape.org)
-#
-# Contributor: Gerold Gruber
-
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0x7011
-
-;TargetClass= 0xff
-
-;MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+DefaultVendor= 0x1e0e
+DefaultProduct= 0xf000
+TargetVendor= 0x1e0e
+TargetProduct= 0x9000
-######################################################
-# Option iCON 401
-#
-# HSO driver
-#
-# Contributor: Vincent Teoh
-
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0x7401
-
-;TargetClass= 0xff
-
-;MessageContent="55534243785634120100000080000601000000000000000000000000000000"
-
-;NeedResponse=1
-
+MessageContent="555342431234567800000000000006bd000000020000000000000000000000"
-########################################################
-# Vodafone K3760 (made by Option, HSO driver)
-#
-# Contributor: The Solutor
-
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0x7501
-
-;TargetClass= 0xff
-
-;MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+NeedResponse=1
########################################################
@@ -374,12 +376,12 @@
#
# Contributor: sissie from Bullteam
-;DefaultVendor= 0x0af0
-;DefaultProduct= 0xd033
+DefaultVendor= 0x0af0
+DefaultProduct= 0xd033
-;TargetClass= 0xff
+TargetClass= 0xff
-;MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+MessageContent="55534243785634120100000080000601000000000000000000000000000000"
########################################################
@@ -387,27 +389,27 @@
#
# Contributor: Hans Kurent, Denis Sutter, Vincent Teoh
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1003
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1003
-;TargetClass= 0xff
+TargetClass= 0xff
-;HuaweiMode=1
+HuaweiMode=1
########################################################
-# Huawei E169
+# Huawei E169 and others
#
# Contributor: Dale Lane
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1001
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1001
-;TargetClass= 0xff
+TargetClass= 0xff
# choose one of these:
-;DetachStorageOnly=1
-;HuaweiMode=1
+DetachStorageOnly=1
+HuaweiMode=1
########################################################
@@ -415,12 +417,12 @@
#
# Contributor: Tom Dawahare
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1414
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1414
-;TargetClass= 0xff
+TargetClass= 0xff
-;HuaweiMode=1
+HuaweiMode=1
########################################################
@@ -431,13 +433,13 @@
#
# Contributor: Joakim Wenrgren
-;DefaultVendor= 0x1033
-;DefaultProduct= 0x0035
+DefaultVendor= 0x1033
+DefaultProduct= 0x0035
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1003
+TargetVendor= 0x12d1
+TargetProduct= 0x1003
-;HuaweiMode=1
+HuaweiMode=1
########################################################
@@ -445,18 +447,18 @@
#
# Probably works with DetachStorageOnly too
#
-# Contributor: Flávio Moringa and others
+# Contributor: Flávio Moringa and others
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProductList="0001"
+TargetVendor= 0x19d2
+TargetProductList="0001"
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -464,16 +466,16 @@
#
# Contributor: andylog
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0002
+TargetVendor= 0x19d2
+TargetProduct= 0x0002
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -484,28 +486,28 @@
#
# Contributor: Alvaro Lopes <alvieboy at alvie dot com>
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
# To modem mode:
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0015
+TargetVendor= 0x19d2
+TargetProduct= 0x0015
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
# To SD slot mode:
-;TargetVendor= 0x05c6
-;TargetProduct= 0x2001
+TargetVendor= 0x05c6
+TargetProduct= 0x2001
-;MessageContent="55534243123456782000000080000a86010101180101010101000000000000"
+MessageContent="55534243123456782000000080000a86010101180101010101000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -515,19 +517,20 @@
# ZTE MF633
# ZTE MF636 (aka "Telstra / BigPond 7.2 Mobile Card")
# ZTE MF637
+# and probably others not listed here
#
# Contributor: Joakim Wennergren and others
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0031
+TargetVendor= 0x19d2
+TargetProduct= 0x0031
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -535,16 +538,16 @@
#
# Contributor: andylog
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0037
+TargetVendor= 0x19d2
+TargetProduct= 0x0037
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -557,29 +560,29 @@
#
# Contributor: Michael Khurtsiya, Amit Pundir and others
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0xfff5
+DefaultVendor= 0x19d2
+DefaultProduct= 0xfff5
-;TargetVendor= 0x19d2
-;TargetProduct= 0xffff
+TargetVendor= 0x19d2
+TargetProduct= 0xffff
# No. 2
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0xfff6
+DefaultVendor= 0x19d2
+DefaultProduct= 0xfff6
-;TargetVendor= 0x19d2
-;TargetProduct= 0xfff1
+TargetVendor= 0x19d2
+TargetProduct= 0xfff1
# No. 3
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0xfff5
+DefaultVendor= 0x19d2
+DefaultProduct= 0xfff5
-;TargetVendor= 0x19d2
-;TargetProduct= 0xfff1
+TargetVendor= 0x19d2
+TargetProduct= 0xfff1
-;MessageContent="5553424312345678c00000008000069f030000000000000000000000000000"
+MessageContent="5553424312345678c00000008000069f030000000000000000000000000000"
########################################################
@@ -587,13 +590,13 @@
#
# Contributor: Wasim Baig
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0xfff5
+DefaultVendor= 0x19d2
+DefaultProduct= 0xfff5
-;TargetVendor= 0x19d2
-;TargetProduct= 0xffff
+TargetVendor= 0x19d2
+TargetProduct= 0xffff
-;MessageContent="5553424312345678c00000008000069f010000000000000000000000000000"
+MessageContent="5553424312345678c00000008000069f010000000000000000000000000000"
# Just for information: try it with the message from the AC8710 ...
@@ -603,16 +606,16 @@
#
# Contributor: David Taillandier
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0052
+TargetVendor= 0x19d2
+TargetProduct= 0x0052
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -620,16 +623,16 @@
#
# Contributor: Lucio Asnaghi a.k.a. kRAkEn/gORe
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0002
+TargetVendor= 0x19d2
+TargetProduct= 0x0002
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -637,16 +640,16 @@
#
# Contributor: Alex Scortegagna
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0002
+TargetVendor= 0x19d2
+TargetProduct= 0x0002
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -656,14 +659,14 @@
#
# Contributor: Razvan Dragomirescu, Mike Kirk
-;DefaultVendor= 0x1410
-;DefaultProduct= 0x5010
+DefaultVendor= 0x1410
+DefaultProduct= 0x5010
-;TargetVendor= 0x1410
-;TargetProduct= 0x4400
+TargetVendor= 0x1410
+TargetProduct= 0x4400
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
########################################################
@@ -673,14 +676,14 @@
#
# Contributor: Chris Thielen
-;DefaultVendor= 0x1410
-;DefaultProduct= 0x5010
+DefaultVendor= 0x1410
+DefaultProduct= 0x5010
-;TargetVendor= 0x1410
-;TargetProduct= 0x4100
+TargetVendor= 0x1410
+TargetProduct= 0x4100
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
########################################################
@@ -688,13 +691,19 @@
#
# Contributor: Joakim Wennergren
-;DefaultVendor= 0x1410
-;DefaultProduct= 0x5020
+DefaultVendor= 0x1410
+DefaultProduct=0x5020
-;Interface= 5
+DefaultVendor= 0x1410
+TargetProductList="6000,7001"
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+# Don't use this, original report must be wrong,
+# https://bugzilla.redhat.com/show_bug.cgi?id=728318
+#
+# Interface=5
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
########################################################
@@ -702,14 +711,14 @@
#
# Contributor: Richard Laager
-;DefaultVendor= 0x1410
-;DefaultProduct= 0x5030
+DefaultVendor= 0x1410
+DefaultProduct= 0x5030
-;TargetVendor= 0x1410
-;TargetProduct= 0x6000
+TargetVendor= 0x1410
+TargetProduct= 0x6000
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
########################################################
@@ -718,25 +727,25 @@
#
# Contributor: Aleksandar Samardzic, Marcelo Fernandez
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0x1001
+DefaultVendor= 0x1c9e
+DefaultProduct= 0x1001
-;TargetVendor= 0x1c9e
-;TargetProduct= 0x6061
+TargetVendor= 0x1c9e
+TargetProduct= 0x6061
-;MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
+MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
########################################################
# Alcatel X200/X060S
-;DefaultVendor= 0x1bbb
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1bbb
+DefaultProduct= 0xf000
-;TargetVendor= 0x1bbb
-;TargetProduct= 0x0000
+TargetVendor= 0x1bbb
+TargetProduct= 0x0000
-;MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
########################################################
@@ -748,14 +757,14 @@
#
# Contributor: Vladimir Poluektov, Gabriel Smolar
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x16d5
-;TargetProduct= 0x6502
+TargetVendor= 0x16d5
+TargetProduct= 0x6502
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
########################################################
@@ -767,15 +776,15 @@
#
# Contributor: Alexander Czigler
-;DefaultVendor= 0x1a8d
-;DefaultProduct= 0x1000
+DefaultVendor= 0x1a8d
+DefaultProduct= 0x1000
-;TargetVendor= 0x1a8d
-;TargetProduct= 0x1002
+TargetVendor= 0x1a8d
+TargetProduct= 0x1002
-;MessageContent="55534243123456781200000080000603000000020000000000000000000000"
+MessageContent="55534243123456781200000080000603000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -785,15 +794,15 @@
#
# Contributor: Alexander Czigler
-;DefaultVendor= 0x1dd6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x1dd6
+DefaultProduct= 0x1000
-;TargetVendor= 0x1dd6
-;TargetProduct= 0x1002
+TargetVendor= 0x1dd6
+TargetProduct= 0x1002
-;MessageContent="55534243123456781200000080000603000000020000000000000000000000"
+MessageContent="55534243123456781200000080000603000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -804,13 +813,13 @@
#
# Contributor: Alexander Czigler
-;DefaultVendor= 0x16d8
-;DefaultProduct= 0x6803
+DefaultVendor= 0x16d8
+DefaultProduct= 0x6803
-;TargetVendor= 0x16d8
-;TargetProduct= 0x680a
+TargetVendor= 0x16d8
+TargetProduct= 0x680a
-;MessageContent="555342431234567824000000800008ff524445564348470000000000000000"
+MessageContent="555342431234567824000000800008ff524445564348470000000000000000"
########################################################
@@ -818,13 +827,13 @@
#
# Contributor: Mathias Picker
-;DefaultVendor= 0x16d8
-;DefaultProduct= 0xf000
+DefaultVendor= 0x16d8
+DefaultProduct= 0xf000
-;TargetVendor= 0x16d8
-;TargetProduct= 0x6006
+TargetVendor= 0x16d8
+TargetProduct= 0x6006
-;MessageContent="55534243d85dd88524000000800008ff524445564348470000000000000000"
+MessageContent="55534243d85dd88524000000800008ff524445564348470000000000000000"
########################################################
@@ -832,15 +841,15 @@
#
# Contributor: Mijail Anton
-;DefaultVendor= 0x0930
-;DefaultProduct= 0x0d46
+DefaultVendor= 0x0930
+DefaultProduct= 0x0d46
-;TargetVendor= 0x0930
-;TargetProduct= 0x0d45
+TargetVendor= 0x0930
+TargetProduct= 0x0d45
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -848,13 +857,13 @@
#
# Contributor: Mark A. Ziesemer
-;DefaultVendor= 0x106c
-;DefaultProduct= 0x3b03
+DefaultVendor= 0x106c
+DefaultProduct= 0x3b03
-;TargetVendor= 0x106c
-;TargetProduct= 0x3715
+TargetVendor= 0x106c
+TargetProduct= 0x3715
-;MessageContent="555342431234567824000000800008ff024445564348470000000000000000"
+MessageContent="555342431234567824000000800008ff024445564348470000000000000000"
########################################################
@@ -862,15 +871,15 @@
#
# Contributor: "paul"
-;DefaultVendor= 0x1ab7
-;DefaultProduct= 0x5700
+DefaultVendor= 0x1ab7
+DefaultProduct= 0x5700
-;TargetVendor= 0x1ab7
-;TargetProduct= 0x5731
+TargetVendor= 0x1ab7
+TargetProduct= 0x5731
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -878,15 +887,15 @@
#
# Contributor: A-Link Europe Ltd.
-;DefaultVendor= 0x1e0e
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1e0e
+DefaultProduct= 0xf000
-;TargetVendor= 0x1e0e
-;TargetProduct= 0x9200
+TargetVendor= 0x1e0e
+TargetProduct= 0x9200
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -894,13 +903,13 @@
#
# Contributor: Vincent Teoh
-;DefaultVendor= 0x1199
-;DefaultProduct= 0x0fff
+DefaultVendor= 0x1199
+DefaultProduct= 0x0fff
-;TargetVendor= 0x1199
-;TargetProduct= 0x0023
+TargetVendor= 0x1199
+TargetProduct= 0x0023
-;SierraMode=1
+SierraMode=1
########################################################
@@ -908,13 +917,13 @@
#
# Contributor: Vincent Teoh
-;DefaultVendor= 0x1199
-;DefaultProduct= 0x0fff
+DefaultVendor= 0x1199
+DefaultProduct= 0x0fff
-;TargetVendor= 0x1199
-;TargetProduct= 0x6856
+TargetVendor= 0x1199
+TargetProduct= 0x6856
-;SierraMode=1
+SierraMode=1
########################################################
@@ -922,13 +931,13 @@
#
# Special procedure, takes around 25 secs. on the whole
-;DefaultVendor= 0x0fce
-;DefaultProduct= 0xd0e1
+DefaultVendor= 0x0fce
+DefaultProduct= 0xd0e1
-;TargetClass= 0x02
+TargetClass= 0x02
-;SonyMode=1
-;Configuration=2
+SonyMode=1
+Configuration=2
########################################################
@@ -936,12 +945,12 @@
#
# Recommended init command: ATE0V1&D2&C1S0=0
#
-# Contributor: Jérôme Oufella
+# Contributor: Jérôme Oufella
-;DefaultVendor= 0x1004
-;DefaultProduct= 0x1000
+DefaultVendor= 0x1004
+DefaultProduct= 0x1000
-;MessageContent="55534243123456780000000000000aff554d53434847000000000000000000"
+MessageContent="55534243123456780000000000000aff554d53434847000000000000000000"
########################################################
@@ -954,13 +963,13 @@
#
# Contributor: A Friend
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x04e8
-;TargetProduct= 0x6601
+TargetVendor= 0x04e8
+TargetProduct= 0x6601
-;MessageContent="55534243123456780000000000000616000000000000000000000000000000"
+MessageContent="55534243123456780000000000000616000000000000000000000000000000"
########################################################
@@ -968,13 +977,13 @@
#
# Contributor: Stefan Olejnik
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1c9e
+DefaultProduct= 0xf000
-;TargetVendor= 0x1c9e
-;TargetProduct= 0x9000
+TargetVendor= 0x1c9e
+TargetProduct= 0x9000
-;MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
########################################################
@@ -984,13 +993,13 @@
#
# Contributor: Vincent Teoh
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1c9e
+DefaultProduct= 0xf000
-;TargetVendor= 0x1c9e
-;TargetProduct= 0x9063
+TargetVendor= 0x1c9e
+TargetProduct= 0x9063
-;MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
########################################################
@@ -1000,13 +1009,13 @@
#
# Contributor: Aaron Guidazzi
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0x9200
+DefaultVendor= 0x1c9e
+DefaultProduct= 0x9200
-;TargetVendor= 0x1c9e
-;TargetProduct= 0x9202
+TargetVendor= 0x1c9e
+TargetProduct= 0x9202
-;MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
+MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
########################################################
@@ -1016,13 +1025,13 @@
#
# Contributor: Jeffrey Hoogland
-;DefaultVendor= 0x1f28
-;DefaultProduct= 0x0021
+DefaultVendor= 0x1f28
+DefaultProduct= 0x0021
-;TargetVendor= 0x1f28
-;TargetProduct= 0x0020
+TargetVendor= 0x1f28
+TargetProduct= 0x0020
-;MessageContent="555342431234567824000000800108df200000000000000000000000000000"
+MessageContent="555342431234567824000000800108df200000000000000000000000000000"
# Afterwards (optional): "usb_modeswitch -v 0x1f28 -p 0x0020 -R"
@@ -1032,13 +1041,13 @@
#
# Contributor: Chris Wright
-;DefaultVendor= 0x1b7d
-;DefaultProduct= 0x0700
+DefaultVendor= 0x1b7d
+DefaultProduct= 0x0700
-;TargetVendor= 0x1b7d
-;TargetProduct= 0x0001
+TargetVendor= 0x1b7d
+TargetProduct= 0x0001
-;MessageContent="555342431234567824000000800008FF05B112AEE102000000000000000000"
+MessageContent="555342431234567824000000800008FF05B112AEE102000000000000000000"
########################################################
@@ -1048,13 +1057,13 @@
#
# Contributor: Arif Ahmed
-;DefaultVendor= 0x04e8
-;DefaultProduct= 0xf000
+DefaultVendor= 0x04e8
+DefaultProduct= 0xf000
-;TargetVendor= 0x04e8
-;TargetProduct= 0x6601
+TargetVendor= 0x04e8
+TargetProduct= 0x6601
-;MessageContent="55534243123456780000000000000616000000000000000000000000000000"
+MessageContent="55534243123456780000000000000616000000000000000000000000000000"
########################################################
@@ -1064,13 +1073,13 @@
#
# Contributor: Paranoid Paranoia
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1446
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1446
-;TargetVendor= 0x12d1
-;TargetProduct= 0x14ac
+TargetVendor= 0x12d1
+TargetProduct= 0x14ac
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
########################################################
@@ -1079,13 +1088,13 @@
#
# Contributor: Anders Blomdell, Ahmed Soliman
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1446
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1446
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1001
+TargetVendor= 0x12d1
+TargetProduct= 0x1001
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
########################################################
@@ -1093,16 +1102,16 @@
#
# Contributor: Paul McDermott
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0055
+TargetVendor= 0x19d2
+TargetProduct= 0x0055
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1111,13 +1120,13 @@
#
# Contributor: Chris
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1c9e
+DefaultProduct= 0xf000
-;TargetVendor= 0x1c9e
-;TargetProduct= 0x9603
+TargetVendor= 0x1c9e
+TargetProduct= 0x9603
-;MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
########################################################
@@ -1125,15 +1134,15 @@
#
# Contributor: Zhang Le
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x2001
+DefaultVendor= 0x05c6
+DefaultProduct= 0x2001
-;TargetVendor= 0x1e0e
-;TargetProductList="ce16,cefe"
+TargetVendor= 0x1e0e
+TargetProductList="ce16,cefe"
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1141,15 +1150,15 @@
#
# Contributor: Matt Roberds
-;DefaultVendor= 0x1410
-;DefaultProduct= 0x5031
+DefaultVendor= 0x1410
+DefaultProduct= 0x5031
-;TargetVendor= 0x1410
-;TargetProduct= 0x6002
+TargetVendor= 0x1410
+TargetProduct= 0x6002
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1157,31 +1166,31 @@
#
# Contributor: Moritz Grosse-Wentrup
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x0053
+DefaultVendor= 0x19d2
+DefaultProduct= 0x0053
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0031
+TargetVendor= 0x19d2
+TargetProduct= 0x0031
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;MessageContent2="55534243876543212000000080000c85010101180101010101000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent2="55534243876543212000000080000c85010101180101010101000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# Philips TalkTalk (NXP Semiconductors "Dragonfly")
#
-;DefaultVendor= 0x0471
-;DefaultProduct= 0x1237
+DefaultVendor= 0x0471
+DefaultProduct= 0x1237
-;TargetVendor= 0x0471
-;TargetProduct= 0x1234
+TargetVendor= 0x0471
+TargetProduct= 0x1234
-;MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1189,33 +1198,33 @@
#
# Contributor: Emfox Zhou
-;DefaultVendor= 0x0471
-;DefaultProduct= 0x1237
+DefaultVendor= 0x0471
+DefaultProduct= 0x1237
-;TargetVendor= 0x0471
-;TargetProduct= 0x1206
+TargetVendor= 0x0471
+TargetProduct= 0x1206
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
-;Configuration=2
+Configuration=2
########################################################
# ZTE K3565
#
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0063
+TargetVendor= 0x19d2
+TargetProduct= 0x0063
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1223,15 +1232,15 @@
#
# Contributor: Prashad Prashant
-;DefaultVendor= 0x148f
-;DefaultProduct= 0x2578
+DefaultVendor= 0x148f
+DefaultProduct= 0x2578
-;TargetVendor= 0x148f
-;TargetProduct= 0x9021
+TargetVendor= 0x148f
+TargetProduct= 0x9021
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1239,13 +1248,13 @@
#
# Contributor: Genar Codina
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1446
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1446
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1406
+TargetVendor= 0x12d1
+TargetProduct= 0x1406
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
########################################################
@@ -1255,25 +1264,25 @@
#
# Contributor: Carolin Latze and others
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1446
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1446
-;TargetVendor= 0x12d1
-;TargetProduct= 0x140c
+TargetVendor= 0x12d1
+TargetProduct= 0x140c
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
########################################################
# C-motech CHU-629S
#
-;DefaultVendor= 0x16d8
-;DefaultProduct= 0x700a
+DefaultVendor= 0x16d8
+DefaultProduct= 0x700a
-;TargetClass=0xff
+TargetClass=0xff
-;MessageContent="55534243123456782400000080000dfe524445564348473d4e444953000000"
+MessageContent="55534243123456782400000080000dfe524445564348473d4e444953000000"
########################################################
@@ -1281,13 +1290,13 @@
#
# Contributor: Yaroslav Levandovskiy
-;DefaultVendor= 0x1076
-;DefaultProduct= 0x7f40
+DefaultVendor= 0x1076
+DefaultProduct= 0x7f40
-;TargetVendor= 0x1076
-;TargetProduct= 0x7f00
+TargetVendor= 0x1076
+TargetProduct= 0x7f00
-;GCTMode=1
+GCTMode=1
########################################################
@@ -1295,15 +1304,13 @@
#
# Contributor: Antti Turunen
-;DefaultVendor= 0x0421
-;DefaultProduct= 0x0610
+DefaultVendor= 0x0421
+DefaultProduct= 0x0610
-;TargetVendor= 0x0421
-;TargetProduct= 0x0612
+TargetVendor= 0x0421
+TargetProduct= 0x0612
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-
-;NeedResponse=1
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
########################################################
@@ -1311,13 +1318,13 @@
#
# Contributor: Felix Schwarz
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1520
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1520
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1465
+TargetVendor= 0x12d1
+TargetProduct= 0x1465
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
########################################################
@@ -1325,13 +1332,13 @@
#
# Contributor: Nikolaos Koutsianas
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x1521
+DefaultVendor= 0x12d1
+DefaultProduct= 0x1521
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1464
+TargetVendor= 0x12d1
+TargetProduct= 0x1464
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
#########################################
@@ -1339,8 +1346,8 @@
#
# Contributor: Bob Williams
-;DefaultVendor= 0x0471
-;DefaultProduct= 0x1210
+DefaultVendor= 0x0471
+DefaultProduct= 0x1210
# The report said that giving the target IDs prevented
# the device from switching. Got to try it out ...
@@ -1348,9 +1355,9 @@
#TargetVendor= 0x1dbc
#TargetProduct= 0x0005
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1358,13 +1365,13 @@
#
# Contributor: Antti Turunen
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0xf000
+DefaultVendor= 0x05c6
+DefaultProduct= 0xf000
-;TargetVendor= 0x05c6
-;TargetProduct= 0x9000
+TargetVendor= 0x05c6
+TargetProduct= 0x9000
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
########################################################
@@ -1372,12 +1379,12 @@
#
# WLAN devices from Linux kernel
-;DefaultVendor= 0x0ace
-;DefaultProduct= 0x2011
+DefaultVendor= 0x0ace
+DefaultProduct= 0x2011
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1385,12 +1392,12 @@
#
# WLAN devices from Linux kernel
-;DefaultVendor= 0x0ace
-;DefaultProduct= 0x20ff
+DefaultVendor= 0x0ace
+DefaultProduct= 0x20ff
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1398,28 +1405,28 @@
#
# Contributor: Reinis Danne
-;DefaultVendor= 0x05c6
-;DefaultProduct= 0x1000
+DefaultVendor= 0x05c6
+DefaultProduct= 0x1000
-;TargetVendor= 0x1fe7
-;TargetProduct= 0x0100
+TargetVendor= 0x1fe7
+TargetProduct= 0x0100
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# AVM Fritz!Wlan USB Stick N
#
-;DefaultVendor= 0x057c
-;DefaultProduct= 0x84ff
+DefaultVendor= 0x057c
+DefaultProduct= 0x84ff
-;TargetVendor= 0x057c
-;TargetProduct= 0x8401
+TargetVendor= 0x057c
+TargetProduct= 0x8401
-;MessageContent="5553424312345678000000000000061b000000ff0000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000ff0000000000000000000000"
########################################################
@@ -1427,13 +1434,13 @@
#
# Contributor: Bicio
-;DefaultVendor= 0x072f
-;DefaultProduct= 0x100d
+DefaultVendor= 0x072f
+DefaultProduct= 0x100d
-;TargetVendor= 0x072f
-;TargetProduct= 0x90cc
+TargetVendor= 0x072f
+TargetProduct= 0x90cc
-;MessageContent="01b0000000000000000000000000000000000000000000000000000000000000"
+MessageContent="01b0000000000000000000000000000000000000000000000000000000000000"
########################################################
@@ -1441,13 +1448,13 @@
#
# Contributor: Jason Smith
-;DefaultVendor= 0x106c
-;DefaultProduct= 0x3b06
+DefaultVendor= 0x106c
+DefaultProduct= 0x3b06
-;TargetVendor= 0x106c
-;TargetProduct= 0x3717
+TargetVendor= 0x106c
+TargetProduct= 0x3717
-;MessageContent="555342431234567824000000800008ff020000000000000000000000000000
+MessageContent="555342431234567824000000800008ff020000000000000000000000000000
########################################################
@@ -1455,16 +1462,16 @@
#
# Contributor: Alberto Maurizi
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x0026
+DefaultVendor= 0x19d2
+DefaultProduct= 0x0026
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0094
+TargetVendor= 0x19d2
+TargetProduct= 0x0094
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1472,12 +1479,12 @@
#
# Contributor: Isaac Salgado
-;DefaultVendor= 0x12d1
-;DefaultProduct= 0x101e
+DefaultVendor= 0x12d1
+DefaultProduct= 0x101e
-;TargetClass=0xff
+TargetClass=0xff
-;MessageContent="55534243123456780600000080000601000000000000000000000000000000"
+MessageContent="55534243123456780600000080000601000000000000000000000000000000"
########################################################
@@ -1485,11 +1492,11 @@
#
# Contributor: Alexander Gordeev
-;DefaultVendor= 0x198f
-;DefaultProduct=0xbccd
+DefaultVendor= 0x198f
+DefaultProduct=0xbccd
-;TargetVendor= 0x198f
-;TargetProduct= 0x0220
+TargetVendor= 0x198f
+TargetProduct= 0x0220
MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
@@ -1497,15 +1504,15 @@ MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
########################################################
# LG HDM-2100 (EVDO Rev.A USB modem)
#
-# Contributor: Jérôme Oufella
+# Contributor: Jérôme Oufella
-;DefaultVendor= 0x1004
-;DefaultProduct=0x607f
+DefaultVendor= 0x1004
+DefaultProduct=0x607f
-;TargetVendor= 0x1004
-;TargetProduct= 0x6114
+TargetVendor= 0x1004
+TargetProduct= 0x6114
-;MessageContent="1201100102000040041014610000010200018006000100001200"
+MessageContent="1201100102000040041014610000010200018006000100001200"
########################################################
@@ -1513,10 +1520,10 @@ MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
#
# Contributor: Ying-Hung Lo
-;DefaultVendor= 0x0482
-;DefaultProduct=0x024d
+DefaultVendor= 0x0482
+DefaultProduct=0x024d
-;Configuration=2
+Configuration=2
########################################################
@@ -1524,16 +1531,16 @@ MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
#
# Contributor: Alberto Ciampini
-;DefaultVendor= 0x1266
-;DefaultProduct=0x1000
+DefaultVendor= 0x1266
+DefaultProduct=0x1000
-;TargetVendor= 0x1266
-;TargetProduct= 0x1009
+TargetVendor= 0x1266
+TargetProduct= 0x1009
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424387654321000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424387654321000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1541,13 +1548,13 @@ MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
#
# Contributor: Betavine Project
-;DefaultVendor= 0x0fce
-;DefaultProduct=0xd0cf
+DefaultVendor= 0x0fce
+DefaultProduct=0xd0cf
-;TargetClass=0x02
+TargetClass=0x02
-;DetachStorageOnly=1
-;Configuration=3
+DetachStorageOnly=1
+Configuration=3
########################################################
@@ -1576,15 +1583,13 @@ NeedResponse=1
#
# Contributor: Adam J. Porter
-;DefaultVendor= 0x1fac
-;DefaultProduct=0x0130
+DefaultVendor= 0x1fac
+DefaultProduct=0x0130
-;TargetVendor= 0x1fac
-;TargetProduct= 0x0131
+TargetVendor= 0x1fac
+TargetProduct= 0x0131
-;CheckSuccess=20
-
-;MessageContent="555342431234567824000000800108df200000000000000000000000000000"
+MessageContent="555342431234567824000000800108df200000000000000000000000000000"
########################################################
@@ -1592,13 +1597,13 @@ NeedResponse=1
#
# Contributor: John Watt
-;DefaultVendor= 0x1bbb
-;DefaultProduct= 0xf000
+DefaultVendor= 0x1bbb
+DefaultProduct= 0xf000
-;TargetVendor= 0x1bbb
-;TargetProduct= 0x0017
+TargetVendor= 0x1bbb
+TargetProduct= 0x0017
-;MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
########################################################
@@ -1606,16 +1611,16 @@ NeedResponse=1
#
# Contributors: Akos Ladanyi, John Talbut
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x0103
+DefaultVendor= 0x19d2
+DefaultProduct= 0x0103
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0031
+TargetVendor= 0x19d2
+TargetProduct= 0x0031
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;MessageContent2="55534243876543212000000080000c85010101180101010101000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent2="55534243876543212000000080000c85010101180101010101000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1623,15 +1628,15 @@ NeedResponse=1
#
# Contributor: Nils Radtke
-;DefaultVendor= 0x0b3c
-;DefaultProduct= 0xc700
+DefaultVendor= 0x0b3c
+DefaultProduct= 0xc700
-;TargetVendor= 0x0b3c
-;TargetProductList="c000,c001,c002"
+TargetVendor= 0x0b3c
+TargetProductList="c000,c001,c002"
-;MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000030000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1639,42 +1644,42 @@ NeedResponse=1
#
# Contributor: uusrlnx
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x0083
+DefaultVendor= 0x19d2
+DefaultProduct= 0x0083
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0124
+TargetVendor= 0x19d2
+TargetProduct= 0x0124
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# ZTE MU351
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x0003
+DefaultVendor= 0x19d2
+DefaultProduct= 0x0003
-;TargetClass=0xff
+TargetClass=0xff
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# LG L-05A
-;DefaultVendor= 0x1004
-;DefaultProduct= 0x613a
+DefaultVendor= 0x1004
+DefaultProduct= 0x613a
-;TargetVendor= 0x1004
-;TargetProduct= 0x6124
+TargetVendor= 0x1004
+TargetProduct= 0x6124
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1682,15 +1687,15 @@ NeedResponse=1
#
# Contributor: Chris Jager
-;DefaultVendor= 0x1004
-;DefaultProduct= 0x613f
+DefaultVendor= 0x1004
+DefaultProduct= 0x613f
-;TargetVendor= 0x1004
-;TargetProduct= 0x6141
+TargetVendor= 0x1004
+TargetProduct= 0x6141
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1698,58 +1703,47 @@ NeedResponse=1
#
# Contributor: Oliver Mattos
-;DefaultVendor= 0x1004
-;DefaultProduct=0x607f
+DefaultVendor= 0x1004
+DefaultProduct=0x607f
-;TargetVendor= 0x1004
-;TargetProduct= 0x6000
+TargetVendor= 0x1004
+TargetProduct= 0x6000
-;MessageContent="555342431234567803000000800006f1022000000000000000000000000000"
-;MessageContent2="555342438765432103000000800006f1010100000000000000000000000000"
+MessageContent="555342431234567803000000800006f1022000000000000000000000000000"
+MessageContent2="555342438765432103000000800006f1010100000000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# Royaltek Q110 - UNCONFIRMED!
-;DefaultVendor= 0x1266
-;DefaultProduct= 0x1000
-
-;TargetVendor= 0x1266
-;TargetProduct= 0x1009
-
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424387654321000000000000061b000000020000000000000000000000"
+DefaultVendor= 0x1266
+DefaultProduct=0x1000
-;NeedResponse=1
+TargetVendor= 0x1266
+TargetProduct= 0x1009
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424387654321000000000000061b000000020000000000000000000000"
-########################################################
-# Rogers Rocket Stick (a Sony Ericsson device)
-
-;DefaultVendor= 0x0fce
-;DefaultProduct= 0xd103
-
-;TargetClass= 0x02
-
-;SonyMode=1
+NeedResponse=1
########################################################
# BandRich BandLuxe C170, BandLuxe C270
-;DefaultVendor= 0x1a8d
-;DefaultProduct=0x1000
+DefaultVendor= 0x1a8d
+DefaultProduct=0x1000
-;TargetVendor= 0x1a8d
-;TargetProduct= 0x1009
+TargetVendor= 0x1a8d
+TargetProduct= 0x1009
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;ReleaseDelay=4000
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+ReleaseDelay=4000
-;NeedResponse=1
+NeedResponse=1
########################################################
@@ -1763,8 +1757,6 @@ DefaultProduct=0x14c1
TargetVendor= 0x12d1
TargetProduct= 0x14c6
-CheckSuccess=20
-
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
@@ -1779,8 +1771,6 @@ DefaultProduct=0x1523
TargetVendor= 0x12d1
TargetProduct= 0x1491
-CheckSuccess=20
-
MessageContent="55534243123456780000000000000011060000000000000000000000000000"
@@ -1795,7 +1785,6 @@ DefaultProduct=0x20ff
TargetVendor= 0x0cf3
TargetProduct= 0x7010
-CheckSuccess=10
NoDriverLoading=1
MessageContent="5553424329000000000000000000061b000000020000000000000000000000"
@@ -1813,16 +1802,14 @@ DefaultProduct=0x0013
TargetVendor= 0x1ee8
TargetProduct= 0x0012
-CheckSuccess=20
-
MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
ResponseNeeded=1
########################################################
-# Huawei U8110 / Joy, Vodafone 845 (Android smartphone)
+# Huawei U8110 / U8300 / Joy, Vodafone 845 (Android smartphone)
#
-# Contributor: David Erosa García
+# Contributor: David Erosa García
DefaultVendor= 0x12d1
DefaultProduct=0x1031
@@ -1830,8 +1817,6 @@ DefaultProduct=0x1031
TargetVendor= 0x12d1
TargetProduct= 0x1035
-CheckSuccess=20
-
MessageContent="55534243123456780600000080010a11060000000000000000000000000000"
# for Android SDK
@@ -1841,7 +1826,7 @@ NoDriverLoading=1
########################################################
# Nokia CS-10
#
-# Contributor: Wacław Sierek
+# Contributor: Wacław Sierek
DefaultVendor= 0x0421
DefaultProduct=0x060c
@@ -1849,8 +1834,6 @@ DefaultProduct=0x060c
TargetVendor= 0x0421
TargetProduct= 0x060e
-CheckSuccess=20
-
MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
@@ -1859,41 +1842,41 @@ MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
#
# Contributor: Anoop John
-;DefaultVendor= 0x19d2
-;DefaultProduct= 0x2000
+DefaultVendor= 0x19d2
+DefaultProduct= 0x2000
-;TargetVendor= 0x19d2
-;TargetProduct= 0x0108
+TargetVendor= 0x19d2
+TargetProduct= 0x0108
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NeedResponse=1
+NeedResponse=1
########################################################
# BSNL Capitel
-;DefaultVendor= 0x1c9e
-;DefaultProduct= 0x9e00
+DefaultVendor= 0x1c9e
+DefaultProduct= 0x9e00
-;TargetClass=0xff
+TargetClass=0xff
-;MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
+MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
#######################################################
# Samsung GT-B3730
#
-# Contributor: Per Øyvind Karlsen
+# Contributor: Per Øyvind Karlsen
-;DefaultVendor= 0x04e8
-;DefaultProduct=0x689a
+DefaultVendor= 0x04e8
+DefaultProduct=0x689a
-;TargetVendor= 0x04e8
-;TargetProduct= 0x6889
+TargetVendor= 0x04e8
+TargetProduct= 0x6889
-;MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+MessageContent="55534243785634120100000080000601000000000000000000000000000000"
#######################################################
# Kobil mIdentity 3G (1)
@@ -1928,14 +1911,14 @@ KobilMode=1
#
# Contributor: Enrico Mioso
-;DefaultVendor= 0x1ee8
-;DefaultProduct=0x0009
+DefaultVendor= 0x1ee8
+DefaultProduct=0x0009
-;TargetVendor= 0x1ee8
-;TargetProduct= 0x000b
+TargetVendor= 0x1ee8
+TargetProduct= 0x000b
-;MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
-;NeedResponse=1
+MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
+NeedResponse=1
########################################################
@@ -1943,28 +1926,28 @@ KobilMode=1
#
# Contributor: Pierre-Andre Cornillon
-;DefaultVendor= 0x0b3c
-;DefaultProduct=0xf000
+DefaultVendor= 0x0b3c
+DefaultProduct=0xf000
-;TargetVendor= 0x0b3c
-;TargetProduct= 0xc003
+TargetVendor= 0x0b3c
+TargetProduct= 0xc003
-;MessageContent="5553424312345678c000000080010606f50402527000000000000000000000"
-;NeedResponse=1
+MessageContent="5553424312345678c000000080010606f50402527000000000000000000000"
+NeedResponse=1
#######################################################
# Huawei EC168C (from Zantel)
#
-# Contributor: Ã…smund Hjulstad
+# Contributor: Ã…smund Hjulstad
-;DefaultVendor= 0x12d1
-;DefaultProduct=0x1446
+DefaultVendor= 0x12d1
+DefaultProduct=0x1446
-;TargetVendor= 0x12d1
-;TargetProduct= 0x1412
+TargetVendor= 0x12d1
+TargetProduct= 0x1412
-;MessageContent="55534243123456780000000000000011060000000000000000000000000000"
+MessageContent="55534243123456780000000000000011060000000000000000000000000000"
#######################################################
@@ -1972,13 +1955,13 @@ KobilMode=1
#
# Contributor: Juho Frits
-;DefaultVendor= 0x0421
-;DefaultProduct=0x0622
+DefaultVendor= 0x0421
+DefaultProduct=0x0622
-;TargetVendor= 0x0421
-;TargetProduct= 0x0623
+TargetVendor= 0x0421
+TargetProduct= 0x0623
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
#######################################################
@@ -1986,13 +1969,13 @@ KobilMode=1
#
# Contributor: Thomas Behan
-;DefaultVendor= 0x0421
-;DefaultProduct=0x0627
+DefaultVendor= 0x0421
+DefaultProduct=0x0627
-;TargetVendor= 0x0421
-;TargetProduct= 0x0612
+TargetVendor= 0x0421
+TargetProduct= 0x0612
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
#######################################################
@@ -2000,25 +1983,25 @@ KobilMode=1
#
# Contributor: Alexey Charkov
-;DefaultVendor= 0x05c7
-;DefaultProduct=0x1000
+DefaultVendor= 0x05c7
+DefaultProduct=0x1000
-;TargetVendor= 0x05c7
-;TargetProduct= 0x6000
+TargetVendor= 0x05c7
+TargetProduct= 0x6000
-;MessageContent="5553424312345678c00000008000069f140000000000000000000000000000"
+MessageContent="5553424312345678c00000008000069f140000000000000000000000000000"
#######################################################
# GW D301 (Advinne AMC)
#
-;DefaultVendor= 0x0fd1
-;DefaultProduct=0x1000
+DefaultVendor= 0x0fd1
+DefaultProduct=0x1000
-;TargetClass=0xff
+TargetClass=0xff
-;Configuration=3
+Configuration=3
#######################################################
@@ -2026,13 +2009,13 @@ KobilMode=1
#
# Contributor: Shawn J. Goff
-;DefaultVendor= 0x1004
-;DefaultProduct=0x6190
+DefaultVendor= 0x1004
+DefaultProduct=0x6190
-;TargetVendor= 0x1004
-;TargetProduct= 0x61a7
+TargetVendor= 0x1004
+TargetProduct= 0x61a7
-;MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
#######################################################
@@ -2040,25 +2023,25 @@ KobilMode=1
#
# Contributor: Noel J. Bergman, Gus Esquivel
-;DefaultVendor= 0x106c
-;DefaultProduct=0x3b05
+DefaultVendor= 0x106c
+DefaultProduct=0x3b05
-;TargetVendor= 0x106c
-;TargetProduct= 0x3716
+TargetVendor= 0x106c
+TargetProduct= 0x3716
-;MessageContent="555342431234567824000000800008ff020000000000000000000000000000"
+MessageContent="555342431234567824000000800008ff020000000000000000000000000000"
#######################################################
# AirPlus MCD-800
#
-;DefaultVendor= 0x1edf
-;DefaultProduct=0x6003
+DefaultVendor= 0x1edf
+DefaultProduct=0x6003
-;TargetClass=0xff
+TargetClass=0xff
-;Configuration=3
+Configuration=3
#######################################################
@@ -2066,37 +2049,1373 @@ KobilMode=1
#
# Contributor: Amit Mendapara
-;DefaultVendor= 0x230d
-;DefaultProduct=0x0001
+DefaultVendor= 0x230d
+DefaultProduct=0x0001
-;TargetClass=0xff
+TargetClass=0xff
-;Configuration=3
+Configuration=3
########################################################
# MediaTek Wimax USB Card
#
-;DefaultVendor= 0x0e8d
-;DefaultProduct=0x7109
+DefaultVendor= 0x0e8d
+DefaultProduct=0x7109
-;TargetVendor= 0x0e8d
-;TargetProduct= 0x7118
+TargetVendor= 0x0e8d
+TargetProduct= 0x7118
-;MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
-;MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
-;NoDriverLoading=1
+NoDriverLoading=1
########################################################
# C-motech CHU-628S
+#
+# Contributor: Jungwon Seo
+
+DefaultVendor= 0x16d8
+DefaultProduct=0x6281
+
+TargetClass=0xff
+
+MessageContent="555342431234567824000000800008ff524445564348470000000000000000"
+
+
+########################################################
+# HSDPA USB modem from dealextreme
+#
+# Contributor: Andrew 'Necromant' Andrianov
+
+DefaultVendor= 0x05c6
+DefaultProduct=0x2000
+
+TargetVendor= 0x05c6
+TargetProduct= 0x0015
+
+MessageContent="5553424368032c882400000080000612000000240000000000000000000000"
+
+NeedResponse=1
+
+# This modem doesn't react fast - it pauses for some 30-40 seconds
+CheckSuccess=40
+
+
+########################################################
+# Exiss Mobile E-190 series (made by C-motech)
+#
+# Contributor: Tri Mulya Saputra
+
+DefaultVendor= 0x8888
+DefaultProduct= 0x6500
+
+TargetVendor= 0x16d8
+TargetProduct= 0x6533
+
+MessageContent="5553424398e2c4812400000080000bff524445564348473d43440000000000"
+
+
+########################################################
+# D-Link DWM-156 HSUPA 3.75G USB Modem
+#
+# Contributor: Fuego
+
+DefaultVendor= 0x07d1
+DefaultProduct=0xa800
+
+TargetVendor= 0x07d1
+TargetProduct= 0x3e02
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Franklin Wireless U210 (Variant)
+
+DefaultVendor= 0x1fac
+DefaultProduct=0x0032
+
+Configuration=2
+
+
+########################################################
+# Haier CE 100
+
+DefaultVendor= 0x201e
+DefaultProduct=0x2009
+
+TargetClass=0xff
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+#######################################################
+# Huawei BM358 WiMAX
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x380b
+
+TargetClass=0x02
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# Huawei E352
+#
+# Contributor: Antonio Talarico
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1449
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1444
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Huawei ET8282
+#
+# Contributor: Emfox Zhou
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1da1
+
+DefaultVendor= 0x12d1
+TargetProduct= 0x1d09
+
+HuaweiMode=1
+
+
+########################################################
+# Huawei V725 Phone (aka Vodafone 725)
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1009
+
+TargetClass=0xff
+
+HuaweiMode=1
+
+
+########################################################
+# Onda MW836UP-K
+
+DefaultVendor= 0x1ee8
+DefaultProduct=0x0040
+
+TargetVendor= 0x1ee8
+TargetProduct= 0x003e
+
+MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# ZTE MF637 (Variant for Orange France)
+#
+# Contributor: David Vigier
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0110
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0121
+
+MessageContent="5553424302000000000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# Prolink P2000 CDMA
+#
+# Test string: uMa=SSE
+
+DefaultVendor= 0x05c6
+DefaultProduct=0x1000
+
+TargetVendor= 0x05c6
+TargetProduct= 0x6000
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# Vibe 3G Modem
+#
+# Contributor: Steven James Drinnan
+
+DefaultVendor= 0x1c9e
+DefaultProduct=0x6061
+
+TargetClass=0xff
+
+MessageContent="55534243123456780000000000000606f50402527000000000000000000000"
+
+
+########################################################
+# Vodafone/ZTE K3806-Z
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0013
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0015
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+########################################################
+# T-Mobile NL (Huawei E352)
+#
+# Contributor: Alex Hermann
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14fe
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1506
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Huawei U8220, T-Mobile Pulse (Android smartphone)
+#
+# Contributor: Mobile Stream Team
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1030
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1034
+
+MessageContent="55534243123456780600000080010a11060000000000000000000000000000"
+
+# for Android SDK
+NoDriverLoading=1
+
+
+########################################################
+# D-Link DWM-156 HSUPA 3.75G USB Modem
+#
+# Contributor: Ari Suutari
+
+DefaultVendor= 0x07d1
+DefaultProduct=0xa804
+
+TargetVendor= 0x07d1
+TargetProduct= 0x7e11
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Sony Ericsson MD400G (Rogers)
+#
+# Contributor: Kjartan Adolfsson
+
+DefaultVendor= 0x0fce
+DefaultProduct= 0xd103
+
+TargetClass= 0x02
+
+SonyMode=1
+
+
+########################################################
+# ZTE "ffe" devices 1 (e.g. Cricket A605)
+#
+# Contributor: Matt Eaton
+
+DefaultVendor= 0x19d2
+DefaultProduct=0xffe6
+
+TargetVendor= 0x19d2
+TargetProduct= 0xffe5
+
+MessageContent="5553424330f4cf8124000000800108df200000000000000000000000000000"
+
+
+########################################################
+# ZTE MF190
+#
+# Contributor: Eshwar Andhavarapu
+
+DefaultVendor= 0x19d2
+DefaultProduct= 0x1224
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0082
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# JOA Telecom LM-700r
+
+DefaultVendor= 0x198a
+DefaultProduct=0x0003
+
+TargetVendor= 0x198a
+TargetProduct= 0x0002
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Huawei E173 (Viettel 3G)
+
+TargetVendor= 0x12d1
+TargetProduct= 0x14a8
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14b5
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# C-motech CHU-629S (Variant)
+#
+# Contributor: "wlsloi"
+
+DefaultVendor= 0x16d8
+DefaultProduct=0x700b
+
+TargetClass=0xff
+
+MessageContent="55534243123456782400000080000dfe524445564348473d4e444953000000"
+
+
+########################################################
+# ZTE MF691 (T-Mobile Rocket 2.0)
+#
+# Contributor: Michael Fogel
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1201
+
+TargetVendor= 0x19d2
+TargetProduct= 0x1203
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# ZTE MF192
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1216
+
+TargetVendor= 0x19d2
+TargetProduct= 0x1218
+
+#MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+# Different MessageContent enables cdc_ether interface which is preferable.
+# Thanks to Alex Orlov!
+
+MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
+
+
+########################################################
+# ZTE MF190 (Variant)
+#
+# Contributor: Jean-Baptiste Dubois
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0149
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0124
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+MessageContent3="55534243123456702000000080000c85010101180101010101000000000000"
+
+NeedResponse=1
+
+
+#######################################################
+# Visiontek 82GH 3G
+
+DefaultVendor= 0x230d
+DefaultProduct=0x0007
+
+TargetClass=0xff
+
+Configuration=3
+
+
+#######################################################
+# HP LaserJet Professional P1102
+
+DefaultVendor= 0x03f0
+DefaultProduct=0x002a
+
+TargetClass=0x07
+
+MessageContent="555342431234567800000000000006d0000000000000000000000000000000"
+
+NeedResponse=1
+
+
+#######################################################
+# Mobile Action ("Smart Cable")
+#
+# No success check, device will vanish completely
+
+DefaultVendor= 0x0df7
+DefaultProduct=0x0800
+
+TargetClass=0xff
+
+MobileActionMode=1
+
+NoDriverLoading=1
+
+
+########################################################
+# Vodafone/Huawei K3770
+#
+# Contributor: Alex Chiang
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14d1
+
+TargetVendor= 0x12d1
+TargetProduct= 0x14c9
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Vodafone/Huawei K3771
+#
+# Contributor: Ben Knight
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14c4
+
+TargetVendor= 0x12d1
+TargetProduct= 0x14ca
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Option iCon 461
+#
+# Contributor: Samit Basu
+
+DefaultVendor= 0x0af0
+DefaultProduct= 0x7a05
+
+TargetClass= 0xff
+
+MessageContent="55534243123456780000000000000601000000000000000000000000000000"
+
+########################################################
+# ZTE AX226 WiMax
+#
+# may be supported by the Beceem driver
+
+DefaultVendor= 0x19d2
+DefaultProduct=0xbccd
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0172
+
+MessageContent="555342431234567824000000800006bc626563240000000000000000000000"
+
+NoDriverLoading=1
+
+
+########################################################
+# Huawei EC156
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1505
+
+TargetVendor= 0x12d1
+TargetProduct= 0x140b
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Longcheer SU9800
+
+DefaultVendor= 0x1c9e
+DefaultProduct=0x9800
+
+TargetClass=0xff
+
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# SpeedUp SU-8000U
+
+DefaultVendor= 0x2020
+DefaultProduct=0xf00e
+
+TargetVendor= 0x2020
+TargetProduct= 0x1005
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
-;DefaultVendor= 0x16d8
-;DefaultProduct=0x6281
+########################################################
+# Cisco AM10 "Valet Connector"
+#
+# Contributor: David S.
+
+DefaultVendor= 0x1307
+DefaultProduct=0x1169
+
+TargetVendor= 0x13b1
+TargetProduct= 0x0031
+
+CiscoMode=1
+
+
+########################################################
+# Alcatel OT X220L
+#
+# Contributor: Sylvain Gros-Desormeaux
+
+DefaultVendor= 0x1bbb
+DefaultProduct=0xf052
+
+TargetVendor= 0x1bbb
+TargetProduct= 0x0052
+
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# Nokia CS-19
+#
+# Contributor: ThatGuy
+
+DefaultVendor= 0x0421
+DefaultProduct=0x062c
+
+TargetVendor= 0x0421
+TargetProduct= 0x062d
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Huawei ET302
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1d50
+
+Configuration=2
+
+
+########################################################
+# 3GO 3GO11 HSUPA
+
+DefaultVendor= 0x1e89
+DefaultProduct=0xf000
+
+TargetVendor= 0x1e89
+TargetProduct= 0x1a20
+
+MessageContent="5553424312345678800000008000060619181a207000000000000000000000"
+
+
+########################################################
+# Novatel Wireless MC545 HSPA
+
+DefaultVendor= 0x1410
+DefaultProduct=0x5059
+
+TargetVendor= 0x1410
+TargetProduct= 0x7042
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# ZTE AC682 (a.k.a. SmartFren Connex)
+
+DefaultVendor= 0x19d2
+DefaultProduct=0xffde
+
+TargetVendor= 0x19d2
+TargetProduct= 0xffdd
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# ZTE MF820 4G LTE
+#
+# Contributor: Kenny Lam
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0166
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0167
+
+MessageContent="55534243123456782400000080000685000000240000000000000000000000"
+
+
+########################################################
+# Philips PicoPix 1020 Projector
+#
+# No known driver or application yet
+
+DefaultVendor= 0x1de1
+DefaultProduct=0x1101
+
+TargetVendor= 0x21e7
+TargetProduct= 0x000e
+
+MessageContent="55534243123456780000000000000cff020000000000000000000000000000"
+
+
+########################################################
+# AnyDATA APE-540H
+#
+# Contributor: Robert Gabriel
+
+DefaultVendor= 0x05c6
+DefaultProduct=0x6503
+
+TargetVendor= 0x16d5
+TargetProduct= 0x6502
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# ZTE MF192 (Variant)
+#
+# Contributor: C!chy
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1517
+
+TargetVendor= 0x19d2
+TargetProduct= 0x1519
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# Qisda H21 Flying Beetle
+#
+# Contributor: Chi-Hang Long
+
+DefaultVendor= 0x1da5
+DefaultProduct=0xf000
+
+TargetVendor= 0x1da5
+TargetProduct= 0x4512
+
+QisdaMode=1
+
+
+########################################################
+# C-motech CDU-685a
+#
+# Contributor: Tom Cumming
+
+DefaultVendor= 0x16d8
+DefaultProduct=0x6804
+
+TargetClass=0xff
+
+MessageContent="555342431234567824000000800008ff524445564348470000000000000000"
+
+
+########################################################
+# StrongRising (China Telcom), Air FlexiNet
+
+DefaultVendor= 0x21f5
+DefaultProduct=0x1000
+
+TargetVendor= 0x21f5
+TargetProduct= 0x2008
+
+MessageContent="5553424312345678c000000080000671010000000000000000000000000000
+
+
+########################################################
+# BandRich BandLuxe C339
+
+DefaultVendor= 0x1a8d
+DefaultProduct=0x2000
+
+TargetVendor= 0x1a8d
+TargetProduct= 0x2006
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+########################################################
+# Celot CT-680
+
+DefaultVendor= 0x05c6
+DefaultProduct=0x1000
+
+TargetVendor= 0x211f
+TargetProduct= 0x6802
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# Huawei E353 (3.se)
+#
+# Contributor: Ulf Eklund
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1f01
+
+TargetVendor= 0x12d1
+TargetProduct= 0x14db
+
+MessageContent="55534243123456780000000000000a11062000000000000100000000000000"
+
+# Driver is cdc_ether
+NoDriverLoading=1
+
+
+########################################################
+# Haier CE682 (EVDO)
+#
+# Contributor: Ebedsat
+
+DefaultVendor= 0x201e
+DefaultProduct=0x1023
+
+TargetVendor= 0x201e
+TargetProduct= 0x1022
+
+MessageContent="55534243123456780000000000000600000000000000000000000000000000"
+MessageContent2="5553424312345679c000000080000671030000000000000000000000000000"
+NeedResponse=1
+
+
+#######################################################
+# LG L-02C LTE
+#
+# Contributor: Yoshiaki Katsumata
+
+DefaultVendor= 0x1004
+DefaultProduct=0x61dd
+
+TargetVendor= 0x1004
+TargetProduct= 0x618f
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+#######################################################
+# LG SD711
+#
+# Contributor: Ryan Jenkins
+
+DefaultVendor= 0x1004
+DefaultProduct=0x61e7
+
+TargetVendor= 0x1004
+TargetProduct= 0x61e6
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# LG L-08C (NTT docomo)
+#
+# Contributor: Shlomi Cohen
+
+DefaultVendor= 0x1004
+DefaultProduct=0x61eb
+
+TargetVendor= 0x1004
+TargetProduct= 0x61ea
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# I-O Data WMX2-U Wimax
+#
+# Contributor: Shlomi Cohen
+
+DefaultVendor= 0x04bb
+DefaultProduct=0xbccd
+
+TargetVendor= 0x04bb
+TargetProduct= 0x0949
+
+MessageContent="55534243f0298d8124000000800006bc626563240000000000000000000000"
+
+
+########################################################
+# Option GlobeTrotter GI1515
+
+DefaultVendor= 0x0af0
+DefaultProduct=0xd001
+
+TargetVendor= 0x0af0
+TargetProduct= 0xd157
+
+MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+
+
+#######################################################
+# LG L-07A
+#
+# Contributor: Shin Sterneck
+
+DefaultVendor= 0x1004
+DefaultProduct=0x614e
+
+TargetVendor= 0x1004
+TargetProduct= 0x6135
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# ZTE A371B
+#
+# Contributor: Wang Lei
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0169
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0170
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# ZTE MF652
+#
+# Contributor: Björn Andreas Höfer
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1520
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0142
+
+MessageContent="5553424312345679000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# ZTE MF652 (Variant)
+#
+# Contributor: Jackzy
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0146
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0143
+
+MessageContent="5553424312345679000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# Telenet 3G dongle (T&W WU160)
+#
+# Contributor: Ben Van Mechelen
+
+DefaultVendor= 0x2077
+DefaultProduct=0xf000
+
+TargetVendor= 0x2077
+TargetProduct= 0x9000
+
+MessageContent="5553424308902082000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Nokia CS-21M-02
+#
+# Contributor: Wojciech Wiercho.a, Tore Anderson
+
+DefaultVendor= 0x0421
+DefaultProduct=0x0637
+
+TargetVendor= 0x0421
+TargetProduct= 0x0638
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Telewell TW-3G HSPA+
+#
+# Contributor: Teemu Merikumpu
-;TargetClass=0xff
+DefaultVendor= 0x1c9e
+DefaultProduct=0x98ff
-;MessageContent="555342431234567824000000800008ff524445564348470000000000000000"
+TargetVendor= 0x1c9e
+TargetProduct= 0x9801
+MessageContent="55534243123456780000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# ZTE MF637
+#
+# Contributor: Johannes Hubertz
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0031
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0094
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+########################################################
+# TW-3G HSPA+
+#
+# Contributor: Nordic Nurse
+
+DefaultVendor= 0x1c9e
+DefaultProduct=0x98ff
+
+TargetVendor= 0x1c9e
+TargetProduct= 0x9801
+
+MessageContent="55534243123456780000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# Samsung GT-B1110
+#
+# Contributor: Spelroth
+
+DefaultVendor= 0x04e8
+DefaultProduct=0x680c
+
+TargetVendor= 0x04e8
+TargetProduct= 0x6792
+
+MessageContent="0902200001010080fa0904000002080650000705010200020007058102000200"
+
+
+########################################################
+# ZTE MF192 (yet annother variant)
+#
+# Contributor: Paul Hedderly
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1514
+
+TargetVendor= 0x19d2
+TargetProduct= 0x1515
+
+MessageContent="5553424348c4758600000000000010ff000000000000000000000000000000"
+
+
+########################################################
+# MediaTek MT6276M
+#
+# Contributor: Meng Zhang
+
+DefaultVendor= 0x0e8d
+DefaultProduct=0x0002
+
+TargetVendor= 0x0e8d
+TargetProductList="00a1,00a2"
+
+MessageContent="555342431234567800000000000006f0010300000000000000000000000000"
+
+
+########################################################
+# Tata Photon+
+#
+# Contributor: Nirbheek Chauhan
+
+DefaultVendor= 0x22f4
+DefaultProduct=0x0021
+
+TargetClass=0xff
+
+MessageContent="555342439f000000000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Option Globetrotter (Variant)
+#
+# Contributor: Roman Samarev
+
+DefaultVendor= 0x0af0
+DefaultProduct= 0x8006
+
+TargetVendor= 0x0af0
+TargetProduct= 0x9100
+
+MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+
+
+#######################################################
+# Option iCon 711
+#
+# Contributor: Rene Falcon
+
+DefaultVendor= 0x0af0
+DefaultProduct=0x4007
+
+TargetVendor= 0x0af0
+TargetProduct= 0x4005
+
+SierraMode=1
+
+
+#######################################################
+# Celot K-300
+#
+# Contributor: Jan Vecek
+
+DefaultVendor= 0x05c6
+DefaultProduct=0x1000
+
+TargetVendor= 0x211f
+TargetProduct= 0x6801
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# Hisense E910 EVDO Phone
+#
+# Contributor: Zang MingJie
+
+DefaultVendor= 0x109b
+DefaultProduct=0xf009
+
+TargetVendor= 0x109b
+TargetProduct= 0x9114
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+NeedResponse=1
+
+
+#############################################################################
+# Yota Router (Quanta 1QDLZZZ0ST2)
+#
+# Contributor: Ilya Voronin
+
+DefaultVendor= 0x0408
+DefaultProduct=0xf000
+
+TargetVendor= 0x0408
+TargetProduct= 0xd009
+
+MessageContent="5553424312345678000000000000061b004600000000000000000000000000"
+
+
+#############################################################################
+# K5005 Vodafone/Huawei
+#
+# Contributor: Thomas Schaefer
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14c3
+
+TargetVendor= 0x12d1
+TargetProduct= 0x14c8
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+
+#############################################################################
+# D-Link DWM-156 (Variant)
+#
+# Contributor: ZML
+
+DefaultVendor= 0x2001
+DefaultProduct=0xa80b
+
+TargetVendor= 0x2001
+TargetProduct= 0x7d00
+
+MessageContent="555342431234567800000000000003f0010100000000000000000000000000"
+
+
+########################################################
+# Huawei E173 (Moviestar)
+#
+# Contributor: Molipha
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x1c24
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1c12
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+########################################################
+# Onda MSA 14.4 (TIM Brasil)
+#
+# Contributor: Rafael Pagliuca
+
+DefaultVendor= 0x1ee8
+DefaultProduct=0x0060
+
+TargetVendor= 0x1ee8
+TargetProduct= 0x005f
+
+MessageContent="555342431234567800000000000008ff000000000000030000000000000000"
+
+
+########################################################
+# Alcatel OT-X220D
+#
+# Contributor: Javier Llorente
+
+DefaultVendor= 0x1bbb
+DefaultProduct=0xf017
+
+TargetVendor= 0x1bbb
+TargetProduct= 0x0017
+
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# Alcatel OT-X080C
+#
+# Contributor: Hicham Haouari
+
+DefaultVendor= 0x1bbb
+DefaultProduct=0x00ca
+
+TargetClass=0xff
+
+MessageContent="55534243123456788000000080000606f50402527000000000000000000000"
+
+
+########################################################
+# TP-Link MA180
+#
+# Contributor: complexgeek
+
+DefaultVendor= 0x2357
+DefaultProduct=0x0200
+
+TargetVendor= 0x2357
+TargetProduct= 0x0201
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# ZTE MF821D
+#
+# Contributor: Thomas Schäfer
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0325
+
+TargetVendor= 0x12d1
+TargetProduct= 0x0326
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+########################################################
+# Dymo LabelManager PnP
+#
+# Contributor: Kjell M. Myksvoll
+
+DefaultVendor= 0x0922
+DefaultProduct=0x1001
+
+TargetVendor= 0x0922
+TargetProduct= 0x1002
+
+MessageEndpoint= 0x01
+ResponseEndpoint=0x01
+
+MessageContent="1b5a01"
+NoDriverLoading=1
+
+
+########################################################
+# Onda MDC655 HSDPA 900/2100 MHz 14.4 Mbps
+#
+# Contributor: lmctv
+
+DefaultVendor = 0x1ee8
+DefaultProduct =0x004a
+
+TargetVendor = 0x1ee8
+TargetProduct = 0x0049
+
+MessageContent="555342431234567800000000000010ff000000000000000000000000000000"
+
+
+########################################################
+# Vodafone K5006Z (MF821)
+#
+# Contributor: Thomas Schäfer
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x1017
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1018
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# Option GI0643 (aka XYFI)
+#
+# Contributor: Amish Chana
+
+DefaultVendor= 0x0af0
+DefaultProduct=0x8700
+
+TargetClass=0xff
+
+MessageContent="55534243785634120100000080000601000000000000000000000000000000"
+NoDriverLoading=1
+
+
+#######################################################
+# WeTelecom WM-D300
+#
+# Contributor: Viktor Remennik
+
+DefaultVendor= 0x22de
+DefaultProduct=0x6803
+
+TargetVendor= 0x22de
+TargetProduct= 0x6801
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# China TeleCom CBP7.0
+#
+# Contributor: tricky
+
+DefaultVendor= 0x15eb
+DefaultProduct=0x7153
+
+TargetVendor= 0x15eb
+TargetProduct= 0x7152
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# Linktop LW272/LW273 (BSNL Teracom)
+#
+# Contributor: Jigish Gohil
+
+DefaultVendor= 0x230d
+DefaultProduct=0x0101
+
+TargetClass=0xff
+
+Configuration=2
+
+
+#######################################################
+# Nokia CS-11
+#
+# Contributor: Alessandro Martins
+
+DefaultVendor= 0x0421
+DefaultProduct=0x061d
+
+TargetVendor= 0x0421
+TargetProduct= 0x061e
+
+MessageContent="5553424312345678000000000000061b000000020000000000000000000000"
+
+
+#######################################################
+# ZTE MF190 (Variant)
+#
+# Contributor: Radu C
+
+DefaultVendor= 0x19d2
+DefaultProduct=0x0154
+
+TargetVendor= 0x19d2
+TargetProduct= 0x0117
+
+MessageContent="5553424312345678000000000000061e000000000000000000000000000000"
+MessageContent2="5553424312345679000000000000061b000000020000000000000000000000"
+
+NeedResponse=1
+
+
+#######################################################
+# Huawei E535
+#
+# Contributor: Andres Septer
+
+DefaultVendor= 0x12d1
+DefaultProduct=0x14fe
+
+TargetVendor= 0x12d1
+TargetProduct= 0x1506
+
+MessageContent="55534243123456780000000000000011062000000100000000000000000000"
+
+
+#######################################################
diff --git a/source/a/usb_modeswitch/usb_modeswitch.SlackBuild b/source/a/usb_modeswitch/usb_modeswitch.SlackBuild
index 67b2070ab..e71d68761 100755
--- a/source/a/usb_modeswitch/usb_modeswitch.SlackBuild
+++ b/source/a/usb_modeswitch/usb_modeswitch.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for usb_modeswitch.
-# Copyright 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# Copyright 2010 David Somero, Athens, TN, USA
# All rights reserved.
#
@@ -24,9 +24,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=usb_modeswitch
-VERSION=${VERSION:-1.1.6}
-DATAVER=${DATAVER:-20101222}
-BUILD=${BUILD:-1}
+VERSION=${VERSION:-1.2.4}
+DATAVER=${DATAVER:-20120812}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -73,11 +73,30 @@ find . \
-exec chmod 644 {} \;
make clean
-gcc $SLKCFLAGS $LDFLAGS -lusb -Wall -o usb_modeswitch usb_modeswitch.c || exit 1
-
-install -D -s -m 0755 usb_modeswitch $PKG/usr/sbin/usb_modeswitch
-install -D -m 0755 usb_modeswitch.tcl $PKG/lib/udev/usb_modeswitch
-install -D -m 0644 usb_modeswitch.conf $PKG/etc/usb_modeswitch.conf.new
+# "make static" uses the embedded "jim" Tcl interpreter
+make static
+
+install -D -s --mode=755 usb_modeswitch $PKG/usr/sbin/usb_modeswitch
+install -D --mode=755 usb_modeswitch.sh $PKG/lib/udev/usb_modeswitch
+install -D --mode=644 usb_modeswitch.conf $PKG/etc/usb_modeswitch.conf.new
+install -D --mode=644 usb_modeswitch.1 $PKG/usr/man/man1/usb_modeswitch.1
+install -d $PKG/var/lib/usb_modeswitch
+install -D -s --mode=755 usb_modeswitch_dispatcher $PKG/usr/sbin/usb_modeswitch_dispatcher
+
+# 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/$PKGNAM-$VERSION
cp -a \
@@ -85,6 +104,10 @@ cp -a \
$PKG/usr/doc/$PKGNAM-$VERSION
# http://www.draisberghof.de/usb_modeswitch/device_reference.txt.gz
cat $CWD/device_reference.txt.gz > $PKG/usr/doc/$PKGNAM-$VERSION/device_reference.txt
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION/jim
+cp -a \
+ jim/{AUTHORS,LICENSE,README*} \
+ $PKG/usr/doc/$PKGNAM-$VERSION/jim
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
@@ -105,9 +128,7 @@ find . \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-install -D -m 0644 40-usb_modeswitch.rules $PKG/lib/udev/rules.d/40-usb_modeswitch.rules
-mkdir -p $PKG/etc
-cp -a usb_modeswitch.d $PKG/etc
+make install DESTDIR=$PKG || exit 1
mkdir -p $PKG/usr/doc/usb-modeswitch-data-${DATAVER}
cat ChangeLog | head -n 1000 > $PKG/usr/doc/usb-modeswitch-data-${DATAVER}/ChangeLog
touch -r ChangeLog $PKG/usr/doc/usb-modeswitch-data-${DATAVER}/ChangeLog
diff --git a/source/a/usbutils/usbutils-002.tar.bz2.sign b/source/a/usbutils/usbutils-002.tar.bz2.sign
deleted file mode 100644
index 9d96e9bef..000000000
--- a/source/a/usbutils/usbutils-002.tar.bz2.sign
+++ /dev/null
@@ -1,8 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: See http://www.kernel.org/signature.html for info
-
-iD8DBQBNgpmUyGugalF9Dw4RAkkCAJ9AOpNKjFebxdbPfj3LYK+roL7UaACgiKtR
-7L3j4M7iAo15yh6B4WP6uCI=
-=fb1T
------END PGP SIGNATURE-----
diff --git a/source/a/usbutils/usbutils.SlackBuild b/source/a/usbutils/usbutils.SlackBuild
index 163b53783..15694392b 100755
--- a/source/a/usbutils/usbutils.SlackBuild
+++ b/source/a/usbutils/usbutils.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=${VERSION:-$(echo usbutils-*.tar.bz2 | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo usbutils-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:--j7}
@@ -58,7 +58,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf usbutils-$VERSION
-tar xvf $CWD/usbutils-$VERSION.tar.bz2 || exit 1
+tar xvf $CWD/usbutils-$VERSION.tar.xz || exit 1
cd usbutils-$VERSION || exit 1
chown -R root:root .
@@ -72,19 +72,27 @@ find . \
rm -f usb.ids*
wget $(grep 'SRC=' update-usbids.sh.in | cut -d= -f2- | tr -d \")
+# Use --datadir=/usr/share/hwdata so usb.ids is expected to be there
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sbindir=/sbin \
--mandir=/usr/man \
+ --datadir=/usr/share/hwdata \
--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
+rm -f $PKG/usr/share/hwdata/usb.ids.gz
+
+## Use the usb.ids file shipped with the hwdata package
+#rm -f $PKG/usr/share/hwdata/usb.ids*
+
+# Put a compat symlink in place for stuff that doesn't know about pkgconfig
+ln -s hwdata/usb.ids $PKG/usr/share/usb.ids
# The usbids are kept under /usr, so it makes no sense at all to have
# this util in /sbin rather than /usr/sbin:
@@ -100,10 +108,6 @@ mv $PKG/sbin/update-usbids.sh $PKG/usr/sbin/update-usbids.sh
# upstream name available there too...
( cd $PKG/sbin ; ln -sf /usr/sbin/update-usbids.sh . )
-# Move the pkgconfig directory to @libdir@ instead of @datadir@
-mkdir $PKG/usr/lib${LIBDIRSUFFIX}
-mv $PKG/usr/share/pkgconfig $PKG/usr/lib${LIBDIRSUFFIX}
-
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
diff --git a/source/a/usbutils/usbutils.ids.dest b/source/a/usbutils/usbutils.ids.dest
deleted file mode 100644
index 67111881e..000000000
--- a/source/a/usbutils/usbutils.ids.dest
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./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/usbutils/usbutils.url b/source/a/usbutils/usbutils.url
new file mode 100644
index 000000000..57e0013b2
--- /dev/null
+++ b/source/a/usbutils/usbutils.url
@@ -0,0 +1 @@
+http://www.kernel.org/pub/linux/utils/usb/usbutils/
diff --git a/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch b/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch
new file mode 100644
index 000000000..afe6e5c91
--- /dev/null
+++ b/source/a/util-linux/0001-mount-old-fix-encryption-usage.patch
@@ -0,0 +1,88 @@
+--- ./mount/mount.c.orig 2012-05-25 04:44:58.993195438 -0500
++++ ./mount/mount.c 2012-08-02 12:04:52.455435631 -0500
+@@ -41,6 +41,7 @@
+ #include "nls.h"
+ #include "blkdev.h"
+ #include "strutils.h"
++#include "xgetpass.h"
+
+ #define DO_PS_FIDDLING
+
+@@ -1238,6 +1239,8 @@
+ int looptype;
+ uintmax_t offset = 0, sizelimit = 0;
+ struct loopdev_cxt lc;
++ char *pwd = NULL;
++ int ret = EX_FAIL;
+
+ /*
+ * In the case of a loop mount, either type is of the form lo@/dev/loop5
+@@ -1317,8 +1320,18 @@
+ return EX_FAIL;
+ }
+
++ if (opt_encryption) {
++#ifdef MCL_FUTURE
++ if (mlockall(MCL_CURRENT | MCL_FUTURE)) {
++ error(_("mount: couldn't lock into memory"));
++ return EX_FAIL;
++ }
++#endif
++ pwd = xgetpass(pfd, _("Password: "));
++ }
++
+ loopcxt_init(&lc, 0);
+- /* loopcxt_enable_debug(&lc, 1); */
++ /*loopcxt_enable_debug(&lc, 1);*/
+
+ if (*loopdev && **loopdev)
+ loopcxt_set_device(&lc, *loopdev); /* use loop=<devname> */
+@@ -1343,6 +1356,8 @@
+ rc = loopcxt_set_offset(&lc, offset);
+ if (!rc && sizelimit)
+ rc = loopcxt_set_sizelimit(&lc, sizelimit);
++ if (!rc && opt_encryption && pwd)
++ loopcxt_set_encryption(&lc, opt_encryption, pwd);
+ if (!rc)
+ loopcxt_set_flags(&lc, loop_opts);
+
+@@ -1358,8 +1373,7 @@
+ break; /* success */
+
+ if (rc != -EBUSY) {
+- if (verbose)
+- printf(_("mount: failed setting up loop device\n"));
++ error(_("mount: %s: failed setting up loop device: %m"), *loopfile);
+ if (!opt_loopdev) {
+ my_free(*loopdev);
+ *loopdev = NULL;
+@@ -1399,9 +1413,15 @@
+ }
+ }
+
+- return 0;
++ ret = 0;
+ err:
+- return EX_FAIL;
++ if (pwd) {
++ char *p = pwd;
++ while (*p)
++ *p++ = '\0';
++ free(pwd);
++ }
++ return ret;
+ }
+
+
+--- ./mount/Makefile.am.orig 2012-05-25 04:44:58.000000000 -0500
++++ ./mount/Makefile.am 2012-08-02 12:04:14.958439138 -0500
+@@ -23,7 +23,8 @@
+ $(top_srcdir)/lib/at.c \
+ $(top_srcdir)/lib/sysfs.c \
+ $(top_srcdir)/lib/loopdev.c \
+- $(top_srcdir)/lib/strutils.c
++ $(top_srcdir)/lib/strutils.c \
++ $(top_srcdir)/lib/xgetpass.c
+
+ # generic flags for all programs
+ # -- note that pkg-config autoconf macros (pkg.m4) does not differentiate
diff --git a/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch b/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch
new file mode 100644
index 000000000..4d3622c32
--- /dev/null
+++ b/source/a/util-linux/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch
@@ -0,0 +1,31 @@
+--- ./fdisk/fdisk.c.orig 2012-05-25 04:44:58.977195366 -0500
++++ ./fdisk/fdisk.c 2012-08-02 12:00:59.692457377 -0500
+@@ -569,6 +569,19 @@
+ lba_is_aligned(unsigned long long lba)
+ {
+ unsigned int granularity = max(phy_sector_size, min_io_size);
++ unsigned long long offset;
++
++ if (grain > granularity)
++ granularity = grain;
++ offset = (lba * sector_size) & (granularity - 1);
++
++ return !((granularity + alignment_offset - offset) & (granularity - 1));
++}
++
++static int
++lba_is_phy_aligned(unsigned long long lba)
++{
++ unsigned int granularity = max(phy_sector_size, min_io_size);
+ unsigned long long offset = (lba * sector_size) & (granularity - 1);
+
+ return !((granularity + alignment_offset - offset) & (granularity - 1));
+@@ -1808,7 +1821,7 @@
+ static void
+ check_alignment(unsigned long long lba, int partition)
+ {
+- if (!lba_is_aligned(lba))
++ if (!lba_is_phy_aligned(lba))
+ printf(_("Partition %i does not start on physical sector boundary.\n"),
+ partition + 1);
+ }
diff --git a/source/a/util-linux/adjtimex_1.23-1.diff b/source/a/util-linux/adjtimex_1.29-2.2.diff
index 8c250157e..62ac1db34 100644
--- a/source/a/util-linux/adjtimex_1.23-1.diff
+++ b/source/a/util-linux/adjtimex_1.29-2.2.diff
@@ -1,13 +1,107 @@
---- adjtimex-1.23.orig/config.sub
-+++ adjtimex-1.23/config.sub
-@@ -0,0 +1,1622 @@
+--- adjtimex-1.29.orig/adjtimex.lsm
++++ adjtimex-1.29/adjtimex.lsm
+@@ -1,7 +1,7 @@
+ Begin4
+ Title: adjtimex - display or set the kernel time variables
+ Version: 1.29
+-Entered-date: 2010-04-16
++Entered-date: 2010-05-26
+ Description: 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
+--- adjtimex-1.29.orig/config.h
++++ adjtimex-1.29/config.h
+@@ -0,0 +1,80 @@
++/* config.h. Generated from config.h.in by configure. */
++/* config.h.in. Generated from configure.in by autoheader. */
++
++/* Define to 1 if you have the `gettimeofday' function. */
++#define HAVE_GETTIMEOFDAY 1
++
++/* Define to 1 if you have the <inttypes.h> header file. */
++#define HAVE_INTTYPES_H 1
++
++/* Define to 1 if you have the <linux/rtc.h> header file. */
++#define HAVE_LINUX_RTC_H 1
++
++/* Define to 1 if you have the <memory.h> header file. */
++#define HAVE_MEMORY_H 1
++
++/* Define to 1 if you have the `mktime' function. */
++#define HAVE_MKTIME 1
++
++/* Define to 1 if you have the `putenv' function. */
++#define HAVE_PUTENV 1
++
++/* Define to 1 if you have the `select' function. */
++#define HAVE_SELECT 1
++
++/* Define to 1 if you have the <stdint.h> header file. */
++#define HAVE_STDINT_H 1
++
++/* Define to 1 if you have the <stdlib.h> header file. */
++#define HAVE_STDLIB_H 1
++
++/* Define to 1 if you have the <strings.h> header file. */
++#define HAVE_STRINGS_H 1
++
++/* Define to 1 if you have the <string.h> header file. */
++#define HAVE_STRING_H 1
++
++/* Define to 1 if you have the <sys/stat.h> header file. */
++#define HAVE_SYS_STAT_H 1
++
++/* Define to 1 if you have the <sys/time.h> header file. */
++#define HAVE_SYS_TIME_H 1
++
++/* Define to 1 if you have the <sys/types.h> header file. */
++#define HAVE_SYS_TYPES_H 1
++
++/* Define to 1 if you have the <unistd.h> header file. */
++#define HAVE_UNISTD_H 1
++
++/* Define to the address where bug reports for this package should be sent. */
++#define PACKAGE_BUGREPORT ""
++
++/* Define to the full name of this package. */
++#define PACKAGE_NAME ""
++
++/* Define to the full name and version of this package. */
++#define PACKAGE_STRING ""
++
++/* Define to the one symbol short name of this package. */
++#define PACKAGE_TARNAME ""
++
++/* Define to the version of this package. */
++#define PACKAGE_VERSION ""
++
++/* Define to 1 if you have the ANSI C header files. */
++#define STDC_HEADERS 1
++
++/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
++#define TIME_WITH_SYS_TIME 1
++
++/* Define to 1 if your <sys/time.h> declares `struct tm'. */
++/* #undef TM_IN_SYS_TIME */
++
++/* Define to empty if `const' does not conform to ANSI C. */
++/* #undef const */
++
++/* Define to `__inline__' or `__inline' if that's what the C compiler
++ calls it, or to nothing if 'inline' is not supported under any name. */
++#ifndef __cplusplus
++/* #undef inline */
++#endif
+--- adjtimex-1.29.orig/config.sub
++++ adjtimex-1.29/config.sub
+@@ -0,0 +1,1760 @@
+#! /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.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
++# 2011 Free Software Foundation, Inc.
+
-+timestamp='2007-01-18'
++timestamp='2011-03-23'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
@@ -35,13 +129,16 @@
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
-+# diff and a properly formatted ChangeLog entry.
++# diff and a properly formatted GNU 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.
+
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
++
+# 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.
@@ -75,8 +172,9 @@
+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.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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."
@@ -123,8 +221,10 @@
+# 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* | \
++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
++ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
++ knetbsd*-gnu* | netbsd*-gnu* | \
++ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -151,10 +251,13 @@
+ -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)
++ -apple | -axis | -knuth | -cray | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
++ -bluegene*)
++ os=-cnk
++ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
@@ -169,10 +272,10 @@
+ os=-chorusos
+ basic_machine=$1
+ ;;
-+ -chorusrdb)
-+ os=-chorusrdb
++ -chorusrdb)
++ os=-chorusrdb
+ basic_machine=$1
-+ ;;
++ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
@@ -252,13 +355,16 @@
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
++ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
-+ | maxq | mb | microblaze | mcore | mep \
++ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
-+ | mips64vr | mips64vrel \
++ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
++ | mips64r5900 | mips64r5900el \
++ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
@@ -271,28 +377,42 @@
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
++ | moxie \
+ | mt \
+ | msp430 \
++ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
++ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
-+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
++ | rx \
+ | score \
-+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
++ | sh | sh[1234] | sh[24]a | sh[24]aeb | 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 \
++ | spu \
++ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
++ | ubicom32 \
+ | v850 | v850e \
+ | we32k \
-+ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-+ | z8k)
++ | x86 | xc16x | xstormy16 | xtensa \
++ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
-+ m6811 | m68hc11 | m6812 | m68hc12)
++ c54x)
++ basic_machine=tic54x-unknown
++ ;;
++ c55x)
++ basic_machine=tic55x-unknown
++ ;;
++ c6x)
++ basic_machine=tic6x-unknown
++ ;;
++ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
@@ -303,6 +423,18 @@
+ basic_machine=mt-unknown
+ ;;
+
++ strongarm | thumb | xscale)
++ basic_machine=arm-unknown
++ ;;
++
++ xscaleeb)
++ basic_machine=armeb-unknown
++ ;;
++
++ xscaleel)
++ basic_machine=armel-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.
@@ -323,7 +455,7 @@
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | bfin-* | bs2000-* \
-+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
++ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
@@ -332,14 +464,17 @@
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
++ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-+ | m88110-* | m88k-* | maxq-* | mcore-* \
++ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
-+ | mips64vr-* | mips64vrel-* \
++ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
++ | mips64r5900-* | mips64r5900el-* \
++ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
@@ -354,27 +489,35 @@
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
++ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
++ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
-+ | romp-* | rs6000-* \
-+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
++ | romp-* | rs6000-* | rx-* \
++ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | 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-* \
++ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
++ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++ | tile-* | tilegx-* \
+ | tron-* \
++ | ubicom32-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
-+ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-+ | xstormy16-* | xtensa-* \
++ | x86-* | x86_64-* | xc16x-* | xps100-* \
++ | xstormy16-* | xtensa*-* \
+ | ymp-* \
-+ | z8k-*)
++ | z8k-* | z80-*)
++ ;;
++ # Recognize the basic CPU types without company name, with glob match.
++ xtensa*)
++ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
@@ -392,7 +535,7 @@
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
-+ abacus)
++ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
@@ -438,6 +581,10 @@
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
++ aros)
++ basic_machine=i386-pc
++ os=-aros
++ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
@@ -446,10 +593,35 @@
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
++ blackfin)
++ basic_machine=bfin-unknown
++ os=-linux
++ ;;
++ blackfin-*)
++ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
++ bluegene*)
++ basic_machine=powerpc-ibm
++ os=-cnk
++ ;;
++ c54x-*)
++ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c55x-*)
++ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
++ c6x-*)
++ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
++ cegcc)
++ basic_machine=arm-unknown
++ os=-cegcc
++ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
@@ -478,8 +650,8 @@
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
-+ cr16c)
-+ basic_machine=cr16c-unknown
++ cr16 | cr16-*)
++ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
@@ -517,6 +689,10 @@
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
++ dicos)
++ basic_machine=i686-pc
++ os=-dicos
++ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
@@ -671,6 +847,14 @@
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
++ m68knommu)
++ basic_machine=m68k-unknown
++ os=-linux
++ ;;
++ m68knommu-*)
++ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
@@ -682,10 +866,17 @@
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
++ microblaze)
++ basic_machine=microblaze-xilinx
++ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
++ mingw32ce)
++ basic_machine=arm-unknown
++ os=-mingw32ce
++ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
@@ -782,6 +973,12 @@
+ np1)
+ basic_machine=np1-gould
+ ;;
++ neo-tandem)
++ basic_machine=neo-tandem
++ ;;
++ nse-tandem)
++ basic_machine=nse-tandem
++ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
@@ -812,6 +1009,14 @@
+ basic_machine=i860-intel
+ os=-osf
+ ;;
++ parisc)
++ basic_machine=hppa-unknown
++ os=-linux
++ ;;
++ parisc-*)
++ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
++ os=-linux
++ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
@@ -856,9 +1061,10 @@
+ ;;
+ power) basic_machine=power-ibm
+ ;;
-+ ppc) basic_machine=powerpc-unknown
++ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
-+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ppc-* | ppcbe-*)
++ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
@@ -952,6 +1158,9 @@
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
++ strongarm-* | thumb-*)
++ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
++ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
@@ -1008,17 +1217,14 @@
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
-+ tic54x | c54x*)
-+ basic_machine=tic54x-unknown
-+ os=-coff
-+ ;;
-+ tic55x | c55x*)
-+ basic_machine=tic55x-unknown
-+ os=-coff
++ # This must be matched before tile*.
++ tilegx*)
++ basic_machine=tilegx-unknown
++ os=-linux-gnu
+ ;;
-+ tic6x | c6x*)
-+ basic_machine=tic6x-unknown
-+ os=-coff
++ tile*)
++ basic_machine=tile-unknown
++ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
@@ -1087,6 +1293,9 @@
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
++ xscale-* | xscalee[bl]-*)
++ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
++ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
@@ -1095,6 +1304,10 @@
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
++ z80-*-coff)
++ basic_machine=z80-unknown
++ os=-sim
++ ;;
+ none)
+ basic_machine=none-none
+ os=-none
@@ -1133,7 +1346,7 @@
+ we32k)
+ basic_machine=we32k-att
+ ;;
-+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
++ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1180,9 +1393,12 @@
+if [ x"$os" != x"" ]
+then
+case $os in
-+ # First match some system type aliases
-+ # that might get confused with valid system types.
++ # First match some system type aliases
++ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
++ -auroraux)
++ os=-auroraux
++ ;;
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
@@ -1203,10 +1419,11 @@
+ # 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* \
++ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
++ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
++ | -sym* | -kopensolaris* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-+ | -aos* \
++ | -aos* | -aros* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1215,9 +1432,10 @@
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-+ | -chorusos* | -chorusrdb* \
++ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-+ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
++ | -mingw32* | -linux-gnu* | -linux-android* \
++ | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1225,7 +1443,7 @@
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
++ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
@@ -1264,7 +1482,7 @@
+ -opened*)
+ os=-openedition
+ ;;
-+ -os400*)
++ -os400*)
+ os=-os400
+ ;;
+ -wince*)
@@ -1313,7 +1531,7 @@
+ -sinix*)
+ os=-sysv4
+ ;;
-+ -tpf*)
++ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
@@ -1355,6 +1573,11 @@
+ -zvmoe)
+ os=-zvmoe
+ ;;
++ -dicos*)
++ os=-dicos
++ ;;
++ -nacl*)
++ ;;
+ -none)
+ ;;
+ *)
@@ -1377,10 +1600,10 @@
+# system, and we'll never get to this point.
+
+case $basic_machine in
-+ score-*)
++ score-*)
+ os=-elf
+ ;;
-+ spu-*)
++ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
@@ -1392,8 +1615,17 @@
+ arm*-semi)
+ os=-aout
+ ;;
-+ c4x-* | tic4x-*)
-+ os=-coff
++ c4x-* | tic4x-*)
++ os=-coff
++ ;;
++ tic54x-*)
++ os=-coff
++ ;;
++ tic55x-*)
++ os=-coff
++ ;;
++ tic6x-*)
++ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
@@ -1420,7 +1652,7 @@
+ m68*-cisco)
+ os=-aout
+ ;;
-+ mep-*)
++ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
@@ -1447,7 +1679,7 @@
+ *-ibm)
+ os=-aix
+ ;;
-+ *-knuth)
++ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
@@ -1552,7 +1784,7 @@
+ -sunos*)
+ vendor=sun
+ ;;
-+ -aix*)
++ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
@@ -1623,16 +1855,97 @@
+# 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 @@
+--- adjtimex-1.29.orig/Makefile
++++ adjtimex-1.29/Makefile
+@@ -0,0 +1,78 @@
++#### Start of system configuration section. -*-makefile-*- ####
++ srcdir = .
++VPATH = .
++
++VERSION=1.29
++
++CFLAGS = -Wall -g -O2 -Wall
++prefix = /usr
++man1dir=${prefix}/share/man/man1
++exec_prefix = ${prefix}
++bindir=/sbin
++datadir = ${datarootdir}
++datarootdir = ${prefix}/share
++
++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. ####
++
++SRC = adjtimex.c adjtimex.8 mat.c mat.h install-sh configure.in \
++ configure Makefile.in config.h.in README README.ru adjtimex.lsm \
++ adjtimex.lsm.in COPYING COPYRIGHT ChangeLog
++
++all: adjtimex adjtimex.lsm Makefile
++
++configure config.h.in: configure.in
++ autoconf
++ autoheader
++Makefile config.h: Makefile.in config.h.in
++ ./configure
++
++adjtimex: adjtimex.c mat.o config.h Makefile
++ $(CC) $(CFLAGS) -I. -DVERSION=\"$(VERSION)\" -o adjtimex \
++ adjtimex.c mat.o -lm
++
++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
++
++adjtimex.lsm: adjtimex.lsm.in Makefile
++ sed -e 's/@VERSION@/$(VERSION)/' \
++ -e "s/@DATE@/`date +%Y-%m-%d`/" \
++ adjtimex.lsm.in >adjtimex.lsm
++
++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
++
+--- adjtimex-1.29.orig/config.guess
++++ adjtimex-1.29/config.guess
+@@ -0,0 +1,1517 @@
+#! /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.
++# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
++# 2011 Free Software Foundation, Inc.
+
-+timestamp='2007-03-06'
++timestamp='2011-05-11'
+
+# 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
@@ -1655,16 +1968,16 @@
+# 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.
++# Originally written by Per Bothner. Please send patches (context
++# diff format) to <config-patches@gnu.org> and include a 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.
++# You can get the latest version of this script from:
++# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
@@ -1684,8 +1997,9 @@
+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.
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
++2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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."
@@ -1798,7 +2112,7 @@
+ 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
++ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
@@ -1808,7 +2122,7 @@
+ fi
+ ;;
+ *)
-+ os=netbsd
++ os=netbsd
+ ;;
+ esac
+ # The OS release
@@ -1851,7 +2165,7 @@
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
-+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
++ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
@@ -1897,7 +2211,10 @@
+ # 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 ;;
++ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
++ exitcode=$?
++ trap '' 0
++ exit $exitcode ;;
+ 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
@@ -1923,7 +2240,7 @@
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
-+ echo powerpc-ibm-os400
++ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
@@ -1952,14 +2269,33 @@
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
++ s390x:SunOS:*:*)
++ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
++ exit ;;
+ 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/[^.]*//'`
++ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
++ echo i386-pc-auroraux${UNAME_RELEASE}
++ exit ;;
++ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
++ eval $set_cc_for_build
++ SUN_ARCH="i386"
++ # If there is a compiler, see if it is configured for 64-bit objects.
++ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
++ # This test works for both compilers.
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ SUN_ARCH="x86_64"
++ fi
++ fi
++ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
@@ -2003,23 +2339,23 @@
+ # 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}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
-+ exit ;;
++ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-+ echo m68k-atari-mint${UNAME_RELEASE}
++ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-+ echo m68k-milan-mint${UNAME_RELEASE}
-+ exit ;;
++ echo m68k-milan-mint${UNAME_RELEASE}
++ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-+ echo m68k-hades-mint${UNAME_RELEASE}
-+ exit ;;
++ echo m68k-hades-mint${UNAME_RELEASE}
++ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-+ echo m68k-unknown-mint${UNAME_RELEASE}
-+ exit ;;
++ echo m68k-unknown-mint${UNAME_RELEASE}
++ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
@@ -2089,8 +2425,8 @@
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
-+ # DG/UX returns AViiON for all architectures
-+ UNAME_PROCESSOR=`/usr/bin/uname -p`
++ # 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 ] || \
@@ -2103,7 +2439,7 @@
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
-+ exit ;;
++ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
@@ -2160,7 +2496,7 @@
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
-+ *:AIX:*:[45])
++ *:AIX:*:[4567])
+ 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
@@ -2203,52 +2539,52 @@
+ 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" ;;
++ 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
++ 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);
-+ }
++ 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
@@ -2268,7 +2604,7 @@
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-+ grep __LP64__ >/dev/null
++ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
@@ -2339,22 +2675,22 @@
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
-+ exit ;;
++ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
-+ exit ;;
++ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
-+ exit ;;
++ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
-+ exit ;;
++ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
-+ exit ;;
++ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
@@ -2378,14 +2714,14 @@
+ 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 ;;
++ 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}"
++ 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}
@@ -2413,24 +2749,30 @@
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:windows32*:*)
-+ # uname -m includes "-pc" on this system.
-+ echo ${UNAME_MACHINE}-mingw32
++ # 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)
++ *:Interix*:*)
++ case ${UNAME_MACHINE} in
++ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
-+ EM64T | authenticamd)
++ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
++ IA64)
++ echo ia64-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 ;;
++ 8664:Windows_NT:*)
++ echo x86_64-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
@@ -2460,8 +2802,35 @@
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ 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 -q ld.so.1
++ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
++ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
++ exit ;;
+ arm*:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ eval $set_cc_for_build
++ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_EABI__
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ else
++ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
++ | grep -q __ARM_PCS_VFP
++ then
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
++ else
++ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
++ fi
++ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -2473,7 +2842,18 @@
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
-+ echo frv-unknown-linux-gnu
++ echo frv-unknown-linux-gnu
++ exit ;;
++ i*86:Linux:*:*)
++ LIBC=gnu
++ eval $set_cc_for_build
++ sed 's/^ //' << EOF >$dummy.c
++ #ifdef __dietlibc__
++ LIBC=dietlibc
++ #endif
++EOF
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -2484,74 +2864,33 @@
+ 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:*:*)
++ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
-+ #undef mips64
-+ #undef mips64el
++ #undef ${UNAME_MACHINE}
++ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-+ CPU=mips64el
++ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-+ CPU=mips64
++ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
-+ eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-+ /^CPU/{
-+ s: ::g
-+ p
-+ }'`"
++ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ 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
++ padre:Linux:*:*)
++ echo sparc-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}
++ parisc64:Linux:*:* | hppa64:Linux:*:*)
++ echo hppa64-unknown-linux-gnu
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
@@ -2561,14 +2900,17 @@
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
-+ parisc64:Linux:*:* | hppa64:Linux:*:*)
-+ echo hppa64-unknown-linux-gnu
++ ppc64:Linux:*:*)
++ echo powerpc64-unknown-linux-gnu
++ exit ;;
++ ppc:Linux:*:*)
++ echo powerpc-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
-+ echo ${UNAME_MACHINE}-unknown-linux-gnu
++ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -2576,78 +2918,18 @@
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
++ tile*:Linux:*:*)
++ echo ${UNAME_MACHINE}-tilera-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
++ xtensa*:Linux:*:*)
++ echo ${UNAME_MACHINE}-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
@@ -2655,11 +2937,11 @@
+ 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,
++ # 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.
++ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
@@ -2676,7 +2958,7 @@
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
-+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
@@ -2691,7 +2973,7 @@
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
-+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
++ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
@@ -2719,10 +3001,13 @@
+ 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 ;;
++ # uname -m prints for DJGPP always 'pc', but it prints nothing about
++ # the processor, so we play safe by assuming i586.
++ # Note: whatever this is, it MUST be the same as what config.sub
++ # prints for the "djgpp" host, or else GDB configury will decide that
++ # this is a cross-build.
++ echo i586-pc-msdosdjgpp
++ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
@@ -2757,8 +3042,18 @@
+ /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; } ;;
++ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
++ && { echo i486-ncr-sysv4; exit; } ;;
++ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
++ OS_REL='.3'
++ 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; }
++ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
++ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
@@ -2771,7 +3066,7 @@
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
-+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
++ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
@@ -2791,10 +3086,10 @@
+ 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 ;;
++ 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
@@ -2820,11 +3115,11 @@
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
-+ echo mips-nec-sysv${UNAME_RELEASE}
++ echo mips-nec-sysv${UNAME_RELEASE}
+ else
-+ echo mips-unknown-sysv${UNAME_RELEASE}
++ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
-+ exit ;;
++ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
@@ -2834,6 +3129,9 @@
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
++ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
++ echo i586-pc-haiku
++ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
@@ -2861,6 +3159,16 @@
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
++ i386)
++ eval $set_cc_for_build
++ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
++ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
++ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
++ grep IS_64BIT_ARCH >/dev/null
++ then
++ UNAME_PROCESSOR="x86_64"
++ fi
++ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -2876,6 +3184,9 @@
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
++ NEO-?:NONSTOP_KERNEL:*:*)
++ echo neo-tandem-nsk${UNAME_RELEASE}
++ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
@@ -2921,13 +3232,13 @@
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
-+ echo mips-sei-seiux${UNAME_RELEASE}
++ 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`
++ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
@@ -2942,6 +3253,9 @@
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
++ i*86:AROS:*:*)
++ echo ${UNAME_MACHINE}-pc-aros
++ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -2964,11 +3278,11 @@
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
-+ "4"
++ "4"
+#else
-+ ""
++ ""
+#endif
-+ ); exit (0);
++ ); exit (0);
+#endif
+#endif
+
@@ -3102,9 +3416,9 @@
+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
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
-+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
++ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
@@ -3142,1211 +3456,236 @@
+# 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
+--- adjtimex-1.29.orig/debian/compat
++++ adjtimex-1.29/debian/compat
@@ -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 "
-+"parámetros de tiempo del núcleo en /etc/default/adjtimex. Si usted solamente "
-+"quiere usar adjtimex para inspeccionar los parámetros 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 guión adjtimexconfig usará adjtimex para encontrar los valores para el "
-+"núcleo de la señal y frecuencia que será tomada por el reloj del sistema "
-+"para estar de acuerdo con el reloj del hardware (también conocido como el "
-+"reloj CMOS). Este guión guardará los valores en el archivo de configuración /"
-+"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 guión toma 70 seg. para ser ejecutado. O bien, usted mismo puede ejecutar "
-+"adjtimexconfig más tarde, o determinar las variables del núcleo de varias "
-+"formas (mire la página man de adjtimex) y anótelos 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 Zapa³owski <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 ka¿dego 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 mo¿e byæ uruchamiany podczas ka¿dego uruchomienia systemu,by "
-+"ustawiæ parametry czasu w j±drze na warto¶ci znajduj±ce siê w pliku/etc/"
-+"default/adjtimex. Nie wyra¿aj zgody, je¶li chcesz u¿ywaæ adjtimextylko do "
-+"sprawdzania aktualnych warto¶ci."
-+
-+#. 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 "
-+"takichwarto¶ci parametrów j±dra tick i frequency, ¿eby zegar systemowy by³ "
-+"zbli¿onydo zegara sprzêtowego (zegara CMOS). Nastêpnie zapisze ustawienia w "
-+"plikukonfiguracyjnym /etc/default/adjtimex, dziêki czemu warto¶ci te "
-+"bêd±przywrócane przy ka¿dym 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 bêdzie dzia³a³ przez 70 sekund. Mo¿esz te¿ uruchomiæ "
-+"w³asnorêcznieadjtimexconfig w dowolnym czasie lub dobraæ paramterty j±dra w "
-+"innysposób (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"
++5
+--- adjtimex-1.29.orig/debian/changelog
++++ adjtimex-1.29/debian/changelog
+@@ -0,0 +1,753 @@
++adjtimex (1.29-2.2) unstable; urgency=low
+
-+#. 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?"
++ * Non-maintainer upload.
++ * Make the package multiarch-ready: add build-arch and build-indep
++ build targets
++ * Fix pending l10n issues. Debconf translations:
++ - Vietnamese (Clytie Siddall). Closes: #601529
++ - Brazilian Portuguese (Flamarion Jorge). Closes: #610409
++ - Dutch (Michiel Sikkes). Closes: #625744
+
-+#. 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."
++ -- Christian Perrier <bubulle@debian.org> Mon, 04 Jul 2011 07:06:43 +0200
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Wilt u dat adjtimexconfig bij het installeren wordt gedraaid?"
++adjtimex (1.29-2.1) unstable; urgency=low
+
-+#. 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."
++ * Non-maintainer upload.
++ * Fix pending l10n issues. Debconf translations:
++ - Czech (Martin Sin). Closes: #589289
++ - Bokmål, Norwegian (Bjørn Steensrud). Closes: #600279
+
-+#. 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"
++ -- Christian Perrier <bubulle@debian.org> Tue, 19 Oct 2010 07:14:50 +0200
+
-+#. 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?"
++adjtimex (1.29-2) unstable; urgency=low
+
-+#. 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."
++ * debian/postinst: check conffile for corruption (Closes:Bug#571633,
++ thanks to Savvas Radevic <vicedar@gmail.com> for the idea, though I
++ chose a different implementation.)
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Skal adjtimexconfig køres under installationen?"
++ -- James R. Van Zandt <jrv@debian.org> Tue, 25 May 2010 20:49:21 -0400
+
-+#. 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."
++adjtimex (1.29-1) unstable; urgency=low
+
-+#. 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"
++ * New upstream release: Document the --force-adjust
++ option. --force-adjust suppresses warning printouts. Relax sanity
++ check to +- 1 percent.
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:1001
-+msgid "Should adjtimex be run at installation and at every startup?"
-+msgstr "adjtimex ¤ò¥¤¥ó¥¹¥È¡¼¥ë»þ¤ª¤è¤ÓËè²ó¤Îµ¯Æ°»þ¤ËÆ°ºî¤µ¤»¤Þ¤¹¤«?"
++ * debian/adjtimexconfig: Use --force-adjust option, so adjustment is
++ applied even if system clock is way off. (Thanks to Santiago Vila
++ <sanvila@unex.es> for helping to diagnose the problem.
++ Closes:Bug#557949, #559882)
++
++ * debian/adjtimex.init: fix LSB comment header: require $local_fs, start
++ in S
+
-+#. 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 ¤ò¸½ºß¤Î¥Ñ¥é¥á¡¼¥¿¤Î"
-+"Ä´ºº¤Ë¤À¤±¤Ë»È¤¤¤¿¤¤¤È¤¤¤¦¾ì¹ç¤ÏÆ°ºî¤ò¤µ¤»¤Ê¤¤¤Ç¤¯¤À¤µ¤¤¡£"
++ -- James R. Van Zandt <jrv@debian.org> Fri, 16 Apr 2010 20:08:49 -0400
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "adjtimexconfig ¤ò¥¤¥ó¥¹¥È¡¼¥ë»þ¤ËÆ°ºî¤µ¤»¤Þ¤¹¤«?"
++adjtimex (1.28-4) unstable; urgency=low
+
-+#. 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 ¤¬"
-+"Æ°ºî¤¹¤ëºÝ¤ËÀßÄ꤬Éü¸µ¤µ¤ì¤Þ¤¹¡£"
++ * Update debconf template translations:
++ Swedish (Thanks to Martin Bagge <brother@bsnet.se>, Closes:Bug#572579)
+
-+#. 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é Luís 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"
++ -- James R. Van Zandt <jrv@debian.org> Wed, 17 Mar 2010 19:51:06 -0400
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:1001
-+msgid "Should adjtimex be run at installation and at every startup?"
-+msgstr "Executar o adjtimex durante a instalação e a cada reinicialização ?"
++adjtimex (1.28-3) unstable; urgency=low
+
-+#. 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 inicialização do sistema para definir "
-+"parâmetros de tempo de kernel para os valores em /etc/default/adjtimex. Não "
-+"aceite caso você somente queira usar o adjtimex para inspecionar os "
-+"parâmetros atuais."
++ * Update debconf template translations:
++ Swedish (Thanks to Martin Bagge <brother@bsnet.se>, Closes:Bug#562932)
++ Russian (thanks to Yuri Kozlov <yuray@komyakino.ru>, Closes:Bug#563347)
++ Finnish (thanks to Esko =?UTF-8?Q?Araj=C3=A4rvi?= <edu@iki.fi>,
++ Closes:Bug#564508)
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Executar o adjtimexconfig durante a instalação ?"
++ * debian/control: bump standards version to 3.8.4 (no changes needed)
+
-+#. 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 "
-+"variáveis de kernel tick e frequency que farão com que o relógio do sistema "
-+"concorde aproimadamente com o relógio de hardware (também conhecido como "
-+"relógio CMOS). Ele irá então gravar esses valores no arquivo de "
-+"configuração /etc/default/adjtimex de modo que as configurações sejam "
-+"restauradas a cada renicialização, quando o /etc/init.d/adjtimex é executado."
++ -- James R. Van Zandt <jrv@debian.org> Mon, 08 Feb 2010 20:19:44 -0500
+
-+#. 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 variáveis de kernel usando uma das diversas maneiras possíveis "
-+"(consulte a página 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"
++adjtimex (1.28-2) unstable; urgency=low
+
-+#. 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?"
++ * Move Swedish and Russian template translations to the correct directory
++ (thanks to Martin Bagge <brother@bsnet.se> for pointing out the
++ problem).
+
-+#. 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."
++ * debian/control: bump standards version to 3.8.3 (no changes needed)
++
++ -- James R. Van Zandt <jrv@debian.org> Fri, 05 Feb 2010 21:42:54 -0500
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Soll »adjtimexconfig« zur Installation aufgerufen werden?"
++adjtimex (1.28-1) unstable; urgency=low
+
-+#. 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."
++ * New upstream release: (compare): Correctly apply +-500 ppm sanity
++ check (Thanks to Jacques luder <j.luder@laposte.net>)
+
-+#. 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"
++ * Update debconf template translations:
++ Swedish (thanks to: Martin Bagge <brother@bsnet.se>,
++ Closes:Bug#533567)
++ Russian (thanks to: Yuri Kozlov <yuray@komyakino.ru>,
++ Closes:Bug#532068)
+
-+#. 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?"
++ -- James R. Van Zandt <jrv@debian.org> Sat, 07 Nov 2009 11:59:29 -0500
+
-+#. 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."
++adjtimex (1.27.1-4) unstable; urgency=low
+
-+#. 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?"
++ * Update translations:
++ Japanese (thanks to: Hideki Yamane, henrich @ debian.or.jp.
++ Closes:Bug#538242)
++ Spanish (Thanks to Francisco Javier Cuadrado <fcocuadrado@gmail.com>,
++ Closes:Bug#538425)
+
-+#. 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."
++ -- James R. Van Zandt <jrv@debian.org> Sun, 26 Jul 2009 17:36:16 -0400
+
-+#. 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"
++adjtimex (1.27.1-3) unstable; urgency=low
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:1001
-+msgid "Should adjtimex be run at installation and at every startup?"
-+msgstr "Má být adjtimex spu¹tìn pøi instalaci a pøi ka¾dém spu¹tìní?"
++ * Update translations:
++ Japanese (thanks to: Hideki Yamane, henrich @ debian.or.jp.
++ Closes:Bug#525233)
++ Swedish (thanks to: Martin Bagge <brother@bsnet.se>. Closes:Bug#525924)
++ Spanish (thanks to: Francisco Javier Cuadrado <fcocuadrado@gmail.com>,
++ Closes:Bug#528621)
++ Russian (thanks to: Yuri Kozlov <yuray@komyakino.ru>, Closes:Bug#529047)
++ Czech (thanks to: Martin Sin <martin.sin@zshk.cz>, Closes:Bug#529652)
+
-+#. 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 mù¾e bì¾et pøi ka¾dém startu systému a nastavit parametry jádra na "
-+"hodnoty z /etc/default/adjtimex. Pøi nesouhlasu bude adjtimex nastaven na "
-+"zji¹tìní aktuálních parametrù."
++ -- James R. Van Zandt <jrv@debian.org> Tue, 26 May 2009 20:47:42 -0400
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Má být adjtimexconfig spu¹tìn pøi instalaci?"
++adjtimex (1.27.1-2) unstable; urgency=low
+
-+#. 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 pou¾ije adjtimex k nalezení hodnot pro promìnné "
-+"èasovaèe a frekvence jádra tak, ¾e nastaví systémové hodiny pøibli¾nì na "
-+"hodnotu hardwarových hodin (také známých jako CMOS hodiny). Pak ulo¾í tyto "
-+"hodnoty do konfiguraèního souboru /etc/default/adjtimex aby mohlo být "
-+"nastavení obnoveno pøi ka¾dém startu, v¾dy pøi spu¹tìní /etc/init.d/adjtimex."
++ * Debconf templates and debian/control reviewed by the debian-l10n-
++ english team as part of the Smith review project. Closes: #519431
++ * Update translation:
++ French (Closes:Bug#520986)
+
-+#. 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 ""
-+"Spu¹tìní skriptu zabere 70 sekund. Nebo mù¾ete spustit adjtimexconfig "
-+"samostatnì pozdìji, pøípadnì urèit promìnné jádra jedním z nìkolika rùzných "
-+"zpùsobù (podívejte se na manuálovou stránku adjtimex) a umístìte 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"
++ -- James R. Van Zandt <jrv@debian.org> Wed, 20 May 2009 22:03:38 -0400
+
-+#. 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?"
++adjtimex (1.27.1-1) unstable; urgency=low
+
-+#. 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."
++ * New upstream release. Provide workaround if linux/rtc.h
++ is missing (Closes:#308864)
++
++ * debian/rules: delete config temporaries, but not config.h.in
++ * debian/control: bump version to 3.8.1 (no changes needed)
++
++ * Update translations:
++ Japanese (Thanks to: henrich@debian.or.jp [188] Closes:Bug#522188)
++ Czech (Thanks to: martin.sin@zshk.cz [219] Closes:Bug#522193)
++ Swedish (Thanks to: brother@bsnet.se [194] Closes:Bug#522979)
++ Basque (Thanks to: pi+debian@beobide.net [207] Closes:Bug#523079)
++ Italian (Thanks to: vinz65@gmail.com [197] Closes:Bug#523419)
++ Spanish (Thanks to: fcocuadrado@gmail.com [193] Closes:Bug#523915)
++ Russian (Thanks to: yuray@komyakino.ru [223] Closes:Bug#524069)
++ German (Thanks to: schanzi_@gmx.de [226] Closes:Bug#524224)
++ Portuguese (Thanks to: carloslisboa@gmail.com [170] Closes:Bug#524283)
++ Danish (Thanks to: debian@overbygaard.dk [209] Closes:Bug#524368)
++ Galician (Thanks to: mvillarino@gmail.com [216] Closes:Bug#524397)
++
++ -- James R. Van Zandt <jrv@debian.org> Sat, 18 Apr 2009 16:35:22 -0400
++
++adjtimex (1.27-1) unstable; urgency=low
++
++ * New upstream release. If using update interrupt, sanity check the
++ delay. Sometimes the status includes an update complete flag, but it
++ actually didn't wait. Fall back to another method of reading RTC
++ (closes:Bug#517732) Calculate RTC correction as PPM of RTC time
++ (Thanks to Alain Guibert, closes:Bug#308863).
++
++ * debian/control: add ${misc:Depends} per lintian warning.
++
++ -- James R. Van Zandt <jrv@debian.org> Sun, 22 Mar 2009 21:54:51 -0400
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Deve o adjtimexconfig correr enquanto o instala?"
++adjtimex (1.26-2) unstable; urgency=low
+
-+#. 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."
++ * debian/templates: Clarify wording: ask about running "when installed
++ or upgraded" not just "at installation time" (thanks to Uwe Storbeck
++ <uwe@ibr.ch> and Michael Meskes <meskes@debian.org>,
++ Closes:Bug#514987)
++
++ * debian/postinst: don't prepend path to command running adjtimexconfig
++ to silence lintian complaint. (The package management system already
++ puts /usr/sbin in path, because that's where install-info is.)
+
-+#. 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"
++ -- James R. Van Zandt <jrv@debian.org> Sat, 14 Feb 2009 11:46:24 -0500
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:1001
-+msgid "Should adjtimex be run at installation and at every startup?"
-+msgstr "Ska adjtimex köras vid installation och vid varje uppstart?"
++adjtimex (1.26-1) unstable; urgency=low
+
-+#. 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öra vid systemets uppstart för att sätta kärntidsparametrar "
-+"till värdena i /etc/default/adjtimex. Acceptera inte om du bara vill använda "
-+"adjtimex för att inspektera de nuvarande parametrarna."
++ * New upstream release. Fix a possible hang with the Intersil ISL1208,
++ one of those new non-PC-compatible RTCs. Cleanly exits with an error
++ message, instead of either hang or returning garbage. (Thanks to Alain
++ Guibert).
++
++ * debian/control: bump Debian policy version to 3.8.0 (no changes needed)
++
++ * debian/rules: use "filter" instead of "findstring" to parse
++ DEB_BUILD_OPTIONS.
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Ska adjtimexconfig köras vid installationstid?"
++ -- James R. Van Zandt <jrv@debian.org> Sun, 17 Aug 2008 17:52:14 -0400
+
-+#. 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 använda adjtimex för att hitta värden för "
-+"kärnvariablerna tick och frequency som gör att systemklockan kommer överens "
-+"med hårdvaruklockan (också kallad CMOS-klockan). Den sparar sedan dessa "
-+"värden i konfigurationsfilen /etc/default/adjtimex så att inställningarna "
-+"kommer att användas vid varje uppstart, när /etc/init.d/adjtimex körs."
++adjtimex (1.25-1) unstable; urgency=low
+
-+#. 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 köras. Alternativt kan du köra adjtimexconfig "
-+"själv vid en senare tid eller bestämma variabler för kärnan på ett eller "
-+"flera sätt (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"
++ * New upstream release. Set an alarm to avoid blocking even if /dev/rtc
++ never becomes readable, then fall back to busywait. New --nointerrupt
++ option to force busywait without first waiting for the interrupt
++ timeout (thanks to Alain Guibert). (closes:Bug#477637,Bug#474337).
++ Update man page (closes:Bug#435956).
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:1001
-+msgid "Should adjtimex be run at installation and at every startup?"
-+msgstr "Должен adjtimex быть запущен ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ каждый раз при Ñтарте ÑиÑтемы?"
++ -- James R. Van Zandt <jrv@debian.org> Fri, 08 Aug 2008 19:43:38 -0400
+
-+#. 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 Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ текущих параметров."
++adjtimex (1.24-1) unstable; urgency=low
+
-+#. Type: boolean
-+#. Description
-+#: ../templates:2001
-+msgid "Should adjtimexconfig be run at installation time?"
-+msgstr "Должен adjtimexconfig быть запущен ÑейчаÑ?"
++ * New upstream release
+
-+#. 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."
++ * adjtimex.c: Reorganize cmos_read_time() to properly integrate the
++ fallback case for when /dev/rtc has no interrupts. Make this fallback
++ actually work. fixes partially(?) Debian bug #460065 (Thanks to Alain
++ Guibert <alguibert@free.fr>) (closes:Bug#471203)
+
-+#. 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
-+----------------------
++ * (cmos_read_time): Fix Y2K bug: read century from byte 50, instead of
++ assuming we're in the range 1969-2068.
+
-+This is the Debian Linux prepackaged version of adjtimex.
++ * Implement second kind of busywait (busywait_second_change): when
++ /dev/rtc interrupt is not available, fallbacks to loops around
++ ioctl(RTC_RD_TIME) until the RTC second changes. Patch applies to
++ adjtimex 1.23 above first no-interrupt-fallback.patch fixes
++ partially(?) Debian bug #460065 (Thanks to: Alain Guibert
++ <alguibert@free.fr>)
+
-+This package was put together by Jim Van Zandt <jrv@debian.org>,
-+who also maintains the program and therefore used the master sources.
++ * (cmos_read_time) If /dev/rtc does not exist then automatically
++ fallback to /dev/rtc0, so it works even without symlink. (Thanks to:
++ Alain Guibert <alguibert@free.fr>)
+
-+further Information:
++ * adjtimex.c (main): fix typo in options handling (thanks to Miroslav
++ Lichvar <mlichvar@redhat.com>)
+
-+* 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
++ * debian/control: bump Debian policy version to 3.7.3 (no changes needed)
+
++ * debian/dirs: don't install empty directory /usr/bin
+
-+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.
++ -- James R. Van Zandt <jrv@debian.org> Fri, 04 Apr 2008 22:05:01 -0400
+
-+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
@@ -4877,15 +4216,146 @@
+ * 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
+--- adjtimex-1.29.orig/debian/adjtimexconfig.8
++++ adjtimex-1.29/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.29.orig/debian/adjust
++++ adjtimex-1.29/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.29.orig/debian/dirs
++++ adjtimex-1.29/debian/dirs
+@@ -0,0 +1,3 @@
+usr/sbin
+sbin
+usr/share/man/man8
---- adjtimex-1.23.orig/debian/postrm
-+++ adjtimex-1.23/debian/postrm
+--- adjtimex-1.29.orig/debian/adjtimexconfig
++++ adjtimex-1.29/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 --force-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.29.orig/debian/postrm
++++ adjtimex-1.29/debian/postrm
@@ -0,0 +1,25 @@
+#! /bin/sh -e
+
@@ -4912,8 +4382,79 @@
+esac
+
+#DEBHELPER#
---- adjtimex-1.23.orig/debian/copyright
-+++ adjtimex-1.23/debian/copyright
+--- adjtimex-1.29.orig/debian/control
++++ adjtimex-1.29/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.8.4
++
++Package: adjtimex
++Architecture: any
++Depends: ${misc:Depends}, ${shlibs:Depends}, debconf | debconf-2.0
++Suggests: ntpdate
++Description: kernel time variables configuration utility
++ This package provides a utility to manipulate 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 accurate is using NTP (Network Time Protocol). However,
++ for a standalone or intermittently connected machine, you may use
++ adjtimex instead to at least correct for systematic drift. It 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.29.orig/debian/adjtimex.init
++++ adjtimex-1.29/debian/adjtimex.init
+@@ -0,0 +1,45 @@
++#!/bin/sh
++#
++# Run ADJTIMEX at startup.
++
++### BEGIN INIT INFO
++# Provides: adjtimex
++# Required-Start: $local_fs
++# Required-Stop:
++# Should-Start:
++# Should-Stop:
++# Default-Start: S
++# Default-Stop:
++# 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.29.orig/debian/copyright
++++ adjtimex-1.29/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.
@@ -4943,9 +4484,63 @@
+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 @@
+--- adjtimex-1.29.orig/debian/templates
++++ adjtimex-1.29/debian/templates
+@@ -0,0 +1,35 @@
++# These templates have been reviewed by the debian-l10n-english
++# team
++#
++# If modifications/additions/rewording are needed, please ask
++# debian-l10n-english@lists.debian.org for advice.
++#
++# Even minor modifications require translation updates and such
++# changes should be coordinated with translators and reviewers.
++
++Template: adjtimex/run_daemon
++Type: boolean
++Default: true
++_Description: Should adjtimex be run at installation and at every startup?
++ Running adjtimex at system startup will set the kernel time parameters to
++ the values in /etc/default/adjtimex.
++ .
++ You should not choose this option if you just want to
++ use adjtimex to inspect the current parameters.
++
++Template: adjtimex/compare_rtc
++Type: boolean
++Default: true
++#flag:comment:2
++# Translators: do not translate "tick" and "frequency"
++_Description: Run adjtimexconfig when adjtimex is installed or upgraded?
++ 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 seconds to run, so running it for every upgrade
++ may be a waste of time. Alternatively, you can run adjtimexconfig
++ manually when needed, or determine the kernel variables by using other
++ methods and set them manually in /etc/default/adjtimex.
+--- adjtimex-1.29.orig/debian/docs
++++ adjtimex-1.29/debian/docs
+@@ -0,0 +1,2 @@
++README
++README.ru
+--- adjtimex-1.29.orig/debian/config
++++ adjtimex-1.29/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.29.orig/debian/rules
++++ adjtimex-1.29/debian/rules
+@@ -0,0 +1,117 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
@@ -4968,23 +4563,27 @@
+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)))
++ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -O0
+else
+CFLAGS += -O2
+endif
-+ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
+INSTALL_PROGRAM += -s
+endif
-+
++# parallel build isn't worth while
+
+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
++ touch config.h
+
++build: build-arch build-indep
+
-+build: build-stamp
++build-arch: build-stamp
++
++build-indep: build-stamp
+
+build-stamp: config.status
+ dh_testdir
@@ -5003,7 +4602,7 @@
+ # clean up after the build process.
+ debconf-updatepo
+ [ ! -f Makefile ] || $(MAKE) veryclean
-+ rm -rf adjtimex *.o config.*
++ rm -rf adjtimex *.o config.cache config.log config.status
+ -test -r /usr/share/misc/config.sub && \
+ cp -f /usr/share/misc/config.sub config.sub
+ -test -r /usr/share/misc/config.guess && \
@@ -5059,139 +4658,9 @@
+
+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 @@
+--- adjtimex-1.29.orig/debian/postinst
++++ adjtimex-1.29/debian/postinst
+@@ -0,0 +1,123 @@
+#! /bin/sh
+
+set -e
@@ -5282,6 +4751,10 @@
+case "$1" in
+ configure)
+
++# A previous installation may have left a corrupt conffile.
++# The regexp matches only blank lines, comments, and integer assignments:
++ egrep -qv '^([:space:]*(#.*)?|[:space:]*[a-zA-Z][a-zA-Z0-9]*[:space:]*=[:space:]*[0-9]+[:space:]*)$' $conffile && rm -f $conffile
++
+ create_adjtimex_conf
+
+ db_get adjtimex/run_daemon
@@ -5297,7 +4770,7 @@
+
+ db_get adjtimex/compare_rtc
+ if [ "$RET" = "true" ]; then
-+ /usr/sbin/adjtimexconfig
++ adjtimexconfig
+ fi
+
+ ;;
@@ -5311,146 +4784,1781 @@
+esac
+
+#DEBHELPER#
---- adjtimex-1.23.orig/debian/adjtimex.init
-+++ adjtimex-1.23/debian/adjtimex.init
-@@ -0,0 +1,45 @@
-+#!/bin/sh
+--- adjtimex-1.29.orig/debian/README.Debian
++++ adjtimex-1.29/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.29.orig/debian/po/fr.po
++++ adjtimex-1.29/debian/po/fr.po
+@@ -0,0 +1,90 @@
++# Translation of adjtimex debconf screen to French
++# Copyright (C) 2005-2009 Debian French l10n team <debian-l10n-french@lists.debian.org>
++# This file is distributed under the same license as the adjtimex package.
+#
-+# Run ADJTIMEX at startup.
++# Christian Perrier <bubulle@debian.org>, 2006, 2009.
++# Translators:
++msgid ""
++msgstr ""
++"Project-Id-Version: fr\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-03-17 07:45+0100\n"
++"Last-Translator: Christian Perrier <bubulle@debian.org>\n"
++"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
++"Language: fr\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"
+
-+### 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
++#. Type: boolean
++#. Description
++#: ../templates:2001
++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 ?"
+
-+test -x /sbin/adjtimex || exit 0
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++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."
+
-+# default values
-+TICK=10000
-+FREQ=0
-+
-+# values in $cfg take precedence over the values here
-+cfg=/etc/default/adjtimex
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Vous ne devriez pas choisir cette option si vous souhaitez simplement vous "
++"servir d'adjtimex pour consulter les paramètres actuels."
+
-+if [ -f $cfg ]; then
-+ . $cfg
-+fi
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"Faut-il lancer adjtimexconfig lors de l'installation ou de la mise à jour ?"
+
-+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
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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. "
+
-+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
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"La durée d'exécution du script est de 70 secondes, ce qui peut être vu comme "
++"une perte de temps au démarrage. Vous pouvez également utiliser "
++"adjtimexconfig vous-même plus tard ou déterminer les valeurs des variables "
++"du noyau d'une autre manière. Ces valeurs devront ensuite être placées dans /"
++"etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/it.po
++++ adjtimex-1.29/debian/po/it.po
+@@ -0,0 +1,85 @@
++# ITALIAN TRANSLATION OF ADJTIMEX'S.PO-DEBCONF FILE
++# COPYRIGHT (C) 2009 THE ADJTIMEX'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the adjtimex package.
++#
++# Vincenzo Campanella <vinz65@gmail.com>, 2009.
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.26-3\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-01 14:15+0200\n"
++"Last-Translator: Vincenzo Campanella <vinz65@gmail.com>\n"
++"Language-Team: Italian <tp@lists.linux.it>\n"
++"Language: it\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:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Eseguire adjtimex all'installazione e con ogni avvio del sistema?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"L'esecuzione di adjtimex all'avvio del sistema imposterà i parametri di "
++"tempo del kernel ai valori contenuti in «/etc/default/adjtimex»."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Non si dovrebbe scegliere questa opzione se si prevede di usare adjtimex "
++"solo per verificare i parametri attuali."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Eseguire adjtimexconfig quando adjtimex viene installato o aggiornato?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 ""
++"Lo script adjtimexconfig userà adjtimex per trovare i valori delle variabili "
++"del kernel «tick» e «frequency» per fare in modo che l'orario del sistema "
++"coincida approssimativamente a quello dell'orologio dell'hardware (anche "
++"conosciuto come orologio CMOS). Questi valori vengono poi salvati nel file "
++"di configurazione «/etc/default/adjtimex», in modo che le impostazioni "
++"vengano ripristinate a ogni avvio, quando «/etc/init.d/adjtimex» viene "
++"eseguito."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Lo script necessita di 70 secondi per essere eseguito, per cui lanciarlo a "
++"ogni aggiornamento potrebbe essere uno spreco di tempo. In alternativa è "
++"possibile eseguire manualmente adjtimexconfig quando è necessario, oppure "
++"determinare le variabili del kernel usando altri metodi e impostandole "
++"manualmente in «/etc/default/adjtimex»."
+--- adjtimex-1.29.orig/debian/po/pt_BR.po
++++ adjtimex-1.29/debian/po/pt_BR.po
+@@ -0,0 +1,96 @@
++#
++# 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.
++# André Luís Lopes <andrelop@debian.org>, 2010.
++# Flamarion Jorge <jorge.flamarion@gmail.com>, 2010.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.29-2.1\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-11-11 22:16-0200\n"
++"Last-Translator: Flamarion Jorge <jorge.flamarion@gmail.com>\n"
++"Language-Team: Brazilian Portuguese <debian-l10n-portuguese@lists.debian."
++"org>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"Plural-Forms: nplurals=2; plural=(n > 1);\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "O adjtimex deve ser executado na instalação e em cada inicialização?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Executar o adjtimex na inicialização do sistema configurará os parâmetros de "
++"tempo do kernel para os valores em /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Você não deve escolher esta opção se você apenas quer usar o adjtimex para "
++"inspecionar os parâmetros atuais."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"Executar o adjtimexconfig quando o adjtimex for instalado ou atualizado?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 usará o adjtimex para encontrar valores para as "
++"variáveis \"tick\" e \"frequency\" do kernel, que farão o relógio do sistema "
++"o mais próximo do relógio do hardware (também conhecido como o relógio da "
++"CMOS). Ele então salva estes valores no arquivo de configuração /etc/default/"
++"adjtimex, assim as configurações serão restauradas a cada inicialização, "
++"quando o /etc/init.d/adjtimex executar."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"O script leva 70 segundos para rodar, portanto rodá-lo a cada atualização "
++"pode ser um desperdício de tempo. Alternativamente, você pode executar o "
++"adjtimexconfig manualmente quando necessário, ou determinar as variáveis de "
++"kernel usando outros métodos e configurá-las manualmente em /etc/default/"
++"adjtimex."
+--- adjtimex-1.29.orig/debian/po/templates.pot
++++ adjtimex-1.29/debian/po/templates.pot
+@@ -0,0 +1,68 @@
++# 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: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\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:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
+--- adjtimex-1.29.orig/debian/po/gl.po
++++ adjtimex-1.29/debian/po/gl.po
+@@ -0,0 +1,85 @@
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# marce villarino <mvillarino@users.sourceforge.net>, 2009.
++msgid ""
++msgstr ""
++"Project-Id-Version: templates_[OK3397]\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-16 22:09+0200\n"
++"Last-Translator: marce villarino <mvillarino@users.sourceforge.net>\n"
++"Language-Team: Galician <proxecto@trasno.ent>\n"
++"Language: gl\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: Lokalize 0.2\n"
++"Plural-Forms: nplurals=2; plural=n != 1;\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Debe executarse adjtimex durante a instalación e con cada inicio do sistema?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Se executa adjtimex durante o inicio do sistema axustará os parámetros de "
++"hora do núcleo cos valores que haxa en /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Non debería escoller esta opción se só desexa empregar adjtimex para "
++"inspeccionar os parámetros actuais."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Desexa executar adjtimexconfig se instala ou actualiza?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 empregará adjtimex para achar valores paras as "
++"variábeis do núcleo «tick» e «frequency» que fagan que o reloxo do sistema "
++"se corresponda aproximadamente co do hardware (o chamado reloxo da BIOS). "
++"Logo garda eses valores no ficheiro de configuración /etc/default/adjtimex "
++"de xeito que os valores se restauren en cada arranque, cando se executa /etc/"
++"init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"O script tarda 70 segundos en executarse, pode que executalo cada vez que se "
++"actualice pode ser un desperdicio de tempo. En alternativa, pode executar "
++"adjtimexconfig manualmente cando o precise, ou determinar as variábeis do "
++"núcleo empregando outros métodos e axustalas manualmente en /etc/default/"
++"adjtimex."
+--- adjtimex-1.29.orig/debian/po/vi.po
++++ adjtimex-1.29/debian/po/vi.po
+@@ -0,0 +1,82 @@
++# Vietnamese Translation for adjtimex.
++# Copyright © 2010 Free Software Foundation, Inc.
++# Clytie Siddall <clytie@riverland.net.au>, 2005-2010.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.29-2.1\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-10-27 14:39+1030\n"
++"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
++"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
++"Language: vi\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"
++"X-Generator: LocFactoryEditor 1.8\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "adjtimex có nên chạy vào lúc cài đặt và khi nào khởi động không?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Chạy adjtimex vào lúc khởi chạy hệ thống thì lập các tham số thá»i gian của "
++"hạt nhân thành những giá trị trong tập tin « /etc/default/adjtimex »."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Không nên bật tuỳ chá»n này nếu bạn chỉ muốn sá»­ dụng adjtimex để kiểm tra "
++"những tham số hiện thá»i."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Chạy adjtimexconfig khi adjtimex được cài đặt hay nâng cấp ?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 ""
++"Văn lệnh cấu hình adjtimexconfig thì sử dụng adjtimex để tìm giá trị cho hai "
++"biến hạt nhân « tick » và « frequency », để làm cho đồng hồ hệ thống tương "
++"ứng xấp xỉ vá»›i đồng hồ phần cứng (cÅ©ng được gá»i nhÆ° là đồng hồ CMOS). Văn "
++"lệnh này lưu các giá trị đó vào tập tin cấu hình « /etc/default/adjtimex », "
++"để phục hồi thiết lập khi nào việc khởi động chạy « /etc/init.d/adjtimex »."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Văn lệnh này chạy trong khoảng 70 giây thì có thể là bạn không muốn chạy nó "
++"vào mỗi lúc nâng cấp. Bạn cũng có thể chạy adjtimexconfig bằng tay khi cần "
++"thiết, hoặc quyết định những biến hạt nhân bằng phương pháp khác và lập bằng "
++"tay trong tập tin « /etc/default/adjtimex »."
+--- adjtimex-1.29.orig/debian/po/fi.po
++++ adjtimex-1.29/debian/po/fi.po
+@@ -0,0 +1,84 @@
++# Copyright (C) 2009
++# This file is distributed under the same license as the adjtimex package.
++#
++# Esko Arajärvi <edu@iki.fi>, 2010.
++msgid ""
++msgstr ""
++"Project-Id-Version: \n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-01-09 22:59+0200\n"
++"Last-Translator: Esko Arajärvi <edu@iki.fi>\n"
++"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
++"Language: fi\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: Lokalize 1.0\n"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Tulisiko adjtimex ajaa asennuksen yhteydessä ja aina kun järjestelmä "
++"käynnistetään?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Jos adjtimex ajetaan käynnistettäessä järjestelmä, ytimen aikaparametrit "
++"asetetaan tiedostossa /etc/default/adjtimex annettuihin arvoihin."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Älä valitse tätä vaihtoehtoa, jos haluat käyttää adjtimexiä vain nykyisten "
++"parametriarvojen tarkasteluun."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Tulisiko adjtimexconfig ajaa, kun adjtimex asennetaan tai päivitetään?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 ""
++"Komentosarja adjtimexconfig etsii ohjelman adjtimex avulla ytimen "
++"muuttujille â€tick†ja â€frequency†arvot, joilla järjestelmän kello näyttää "
++"suunnilleen samaa kuin laitteiston kello (CMOS-kello). Se tallentaa nämä "
++"arvot asetustiedostoon /etc/default/adjtimex, jolloin ne palautetaan "
++"järjestelmän käynnistyessä, kun /etc/init.d/adjtimex ajetaan."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Komentosarjan ajaminen kestää 70 sekuntia, joten sen ajaminen jokaisen "
++"päivityksen yhteydessä saattaa olla ajanhukkaa. Voit vaihtoehtoisesti ajaa "
++"adjtimexconfigin käsin tarvittaessa tai määrittää ytimen muuttujien arvot "
++"muilla keinoin ja asettaa ne käsin tiedostoon /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/pl.po
++++ adjtimex-1.29/debian/po/pl.po
+@@ -0,0 +1,123 @@
++#
++# 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: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
++"Last-Translator: Bartosz Zapa³owski <zapal@debian.linux.org.pl>\n"
++"Language-Team: Polish Debian Documentation Project <pddp@debian.linux.org."
++"pl>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=iso-8859-2\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Czy adjtimex ma byæ uruchomiany podczas instalacji i ka¿dego startu systemu?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++#, 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."
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"adjtimex mo¿e byæ uruchamiany podczas ka¿dego uruchomienia systemu,by "
++"ustawiæ parametry czasu w j±drze na warto¶ci znajduj±ce siê w pliku/etc/"
++"default/adjtimex. Nie wyra¿aj zgody, je¶li chcesz u¿ywaæ adjtimextylko do "
++"sprawdzania aktualnych warto¶ci."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++#, 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."
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"adjtimex mo¿e byæ uruchamiany podczas ka¿dego uruchomienia systemu,by "
++"ustawiæ parametry czasu w j±drze na warto¶ci znajduj±ce siê w pliku/etc/"
++"default/adjtimex. Nie wyra¿aj zgody, je¶li chcesz u¿ywaæ adjtimextylko do "
++"sprawdzania aktualnych warto¶ci."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++#, fuzzy
++#| msgid "Should adjtimexconfig be run at installation time?"
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Czy adjtimexconfig ma byæ uruchomiony podczas instalacji?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++#, fuzzy
++#| 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."
++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 "
++"takichwarto¶ci parametrów j±dra tick i frequency, ¿eby zegar systemowy by³ "
++"zbli¿onydo zegara sprzêtowego (zegara CMOS). Nastêpnie zapisze ustawienia w "
++"plikukonfiguracyjnym /etc/default/adjtimex, dziêki czemu warto¶ci te "
++"bêd±przywrócane przy ka¿dym starcie systemu w momencie wykonywania skryptu/"
++"etc/init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++#, fuzzy
++#| 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."
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Skrypt bêdzie dzia³a³ przez 70 sekund. Mo¿esz te¿ uruchomiæ "
++"w³asnorêcznieadjtimexconfig w dowolnym czasie lub dobraæ paramterty j±dra w "
++"innysposób (zapoznaj siê ze stron± manuala adjtimex) i zapisaæ je w pliku/"
++"etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/ru.po
++++ adjtimex-1.29/debian/po/ru.po
+@@ -0,0 +1,95 @@
++# translation of adjtimex_1.28-1_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.
++# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2010.
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.28-1\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-01-02 09:43+0300\n"
++"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
++"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
++"Language: ru\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
++"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "ЗапуÑтить adjtimex ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ каждый раз при Ñтарте ÑиÑтемы?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"ЗапуÑк adjtimex при включении компьютера выполнит наÑтройку значений "
++"параметров времени Ñдра из файла /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Ответьте отрицательно, еÑли проÑто хотите иÑпользовать adjtimex Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ "
++"текущих параметров."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "ЗапуÑкать adjtimexconfig при уÑтановке или обновлении adjtimex?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 при поиÑке значений переменных "
++"Ñдра \"tick\" и \"frequency\", которые помогают ÑоглаÑовывать ÑиÑтемные чаÑÑ‹ "
++"Ñ Ð°Ð¿Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ чаÑами (так называемые чаÑÑ‹ CMOS). Затем он ÑохранÑет Ñти "
++"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð² файл наÑтройки /etc/default/adjtimex Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, чтобы "
++"воÑÑтанавливать их Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ /etc/init.d/adjtimex при каждом "
++"запуÑке ÑиÑтемы."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"ДлительноÑÑ‚ÑŒ работы ÑÑ†ÐµÐ½Ð°Ñ€Ð¸Ñ -- 70 Ñекунд, поÑтому при каждом обновлении "
++"будет Ñ‚Ð°ÐºÐ°Ñ Ð·Ð°Ð´ÐµÑ€Ð¶ÐºÐ° в работе. Ð’ качеÑтве альтернативы вы можете запуÑтить "
++"adjtimexconfig вручную позже, или определить переменные Ñдра одним из "
++"неÑкольких других ÑпоÑобов (Ñмотрите Ñправочную Ñтраницу по adjtimex) и "
++"Ñохранить их в файл /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/ja.po
++++ adjtimex-1.29/debian/po/ja.po
+@@ -0,0 +1,91 @@
++#
++# 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 1.27.1-3\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-07-24 18:05+0900\n"
++"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
++"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
++"Language: ja\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "adjtimex をインストール時ãŠã‚ˆã³æ¯Žå›žã®èµ·å‹•æ™‚ã«å‹•ä½œã•ã›ã¾ã™ã‹?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"システムã®èµ·å‹•æ™‚ã«ã‚«ãƒ¼ãƒãƒ«ã§ã®æ™‚é–“ã®ãƒ‘ラメータを /etc/default/adjtimex ã®å€¤ã«"
++"設定ã™ã‚‹ã‚ˆã†ã« adjtimex を動作ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"システムã®èµ·å‹•æ™‚ã«ã‚«ãƒ¼ãƒãƒ«ã§ã®æ™‚é–“ã®ãƒ‘ラメータを /etc/default/adjtimex ã®å€¤ã«"
++"設定ã™ã‚‹ã‚ˆã†ã« adjtimex を動作ã•ã›ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"adjtimexconfig ã‚’ adjtimex をインストールã€ã‚ã‚‹ã„ã¯ã‚¢ãƒƒãƒ—グレードã—ãŸæ™‚ã«å®Ÿè¡Œ"
++"ã—ã¾ã™ã‹?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"スクリプトã¯å‹•ä½œã« 70 秒もã‹ã‹ã‚‹ã®ã§ã‚¢ãƒƒãƒ—グレードã®åº¦ã«æ¯Žå›žå®Ÿè¡Œã™ã‚‹ã®ã¯æ™‚é–“"
++"ã®ç„¡é§„ã§ã™ã€‚別解ã¨ã—ã¦ã¯ adjtimexconfig を後ã»ã©å®Ÿè¡Œã™ã‚‹ã€ã¾ãŸã¯ä»–ã®æ–¹æ³•ã§"
++"カーãƒãƒ«å¤‰æ•°ã‚’決ã‚ã¦ã€æ‰‹å‹•ã§ /etc/default/adjtimex ã¸ã®è¨­å®šã‚’è¡Œã†ã€ãªã©ãŒå¯èƒ½"
++"ã§ã™ã€‚"
+--- adjtimex-1.29.orig/debian/po/nb.po
++++ adjtimex-1.29/debian/po/nb.po
+@@ -0,0 +1,82 @@
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Bjørn Steensrud <bjornst@skogkatt.homelinux.org>, 2010.
++msgid ""
++msgstr ""
++"Project-Id-Version: \n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-10-15 14:50+0200\n"
++"Last-Translator: Bjørn Steensrud <bjornst@skogkatt.homelinux.org>\n"
++"Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Generator: Lokalize 1.0\n"
++"Plural-Forms: nplurals=2; plural=n != 1;\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Skal adjtimex kjøres ved installasjon og hver gang systemet startes?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Om adjtimex kjøres ved oppstart blir kjernens tidsparametre satt til "
++"verdiene i /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Du bør ikke velge dette hvis du bare vil bruke adjtimex til å se hva de "
++"gjeldende parametrene er."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Skal adjtimexconfig kjøres når adjtimex installeres eller oppgraderes?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 vil bruke adjtimex til å finne verdier for kjerne- "
++"variablene «tick» og «frequency» som vil få systemklokka til å gå omtrent "
++"lik maskinklokka (også kalt CMOS-klokka). Deretter lagres disse verdiene i "
++"oppsettsfila /etc/default/adjtimex, slik at de blir tilbakestilt ved hver "
++"oppstart nåt /etc/init.d/adjtimex kjører."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Skriptet tar 70 sekunder å kjøre, så det kan være bortkastet tid å kjøre det "
++"ved hver oppgradering. Du kan ellers kjøre adjtimexconfig manuelt når det "
++"trengs, eller bestemme kjernevariablene på annen måte og sette dem inn "
++"manuelt i /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/sv.po
++++ adjtimex-1.29/debian/po/sv.po
+@@ -0,0 +1,85 @@
++# Translation of adjtimex debconf template to Swedish
++# Copyright (C) 2009 Martin Bagge <brother@bsnet.se>
++# This file is distributed under the same license as the adjtimex package.
++#
++# Martin Bagge <brother@bsnet.se>, 2009
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-5\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-03-17 19:49-0400\n"
++"Last-Translator: Martin Bagge <brother@bsnet.se>\n"
++"Language-Team: Swedish <debian-l10n-swedish@lists.debian.org>\n"
++"Language: sv\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=utf-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++"X-Poedit-Language: Swedish\n"
++"X-Poedit-Country: Sweden\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Ska adjtimex köras vid installation och vid varje uppstart?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"adjtimex kan köra vid systemets uppstart för att sätta kärntidsparametrar "
++"till värdena i /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Aktivera inte denna funktion om du endast vill använda adjtime för att "
++"inspektera aktuella parameterar."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"Ska adjtimexconfig köras efter installation eller uppgradering av adjtimex?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 använda adjtimex för att hitta värden för "
++"kärnvariablerna \"tick\" och \"frequency\" som gör att systemklockan kommer "
++"överens med hårdvaruklockan (också kallad CMOS-klockan). Den sparar sedan "
++"dessa värden i konfigurationsfilen /etc/default/adjtimex så att "
++"inställningarna kommer att användas vid varje uppstart, när /etc/init.d/"
++"adjtimex körs."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Skriptet tar 70 sekunder att köra vilket innebär att det kan vara slöseri "
++"med tid att köra vid varje uppgradering. Alternativt kan du köra "
++"adjtimexconfig själv när det behövs eller bestämma variabler för kärnan på "
++"andra sätt och ange dessa i /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/POTFILES.in
++++ adjtimex-1.29/debian/po/POTFILES.in
@@ -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 = .
++[type: gettext/rfc822deb] templates
+--- adjtimex-1.29.orig/debian/po/pt.po
++++ adjtimex-1.29/debian/po/pt.po
+@@ -0,0 +1,83 @@
++# 2005-10-27 - Marco Ferra <mferra@sdf.lonestar.org> (initial translation)
++# 2009, Carlos Lisboa <carloslisboa@gmail.com>
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.20-5\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-15 22:00+0100\n"
++"Last-Translator: Carlos Lisboa <carloslisboa@gmail.com>\n"
++"Language-Team: Portuguese <traduz@debianpt.org>\n"
++"Language: pt\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
+
-+VERSION=1.22
++#. Type: boolean
++#. Description
++#: ../templates:2001
++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?"
+
-+CFLAGS = -g -O2 -Wall
-+prefix = /usr
-+man1dir=${prefix}/share/man/man1
-+exec_prefix = ${prefix}
-+bindir=/sbin
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Correr o adjtimex no arranque do sistema irá colocar os parâmetros de tempo "
++"do kernel para os valores em /etc/default/adjtimex."
+
-+INSTALL=/usr/bin/install -c
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Não deve escolher esta opção se apenas deseja usar o adjtimex para verificar "
++"os parâmetros actuais."
+
-+# Extension (not including `.') for the manual page filenames.
-+manext = 8
-+# Where to put the manual pages.
-+mandir = $(prefix)/share/man/man$(manext)
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Correr o adjtimexconfig quando o adjtimex é instalado ou actualizado?"
+
-+#### End of system configuration section. ####
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 adjtimex para encontrar valores para as "
++"variáveis do kernel \"tick\" e \"frequency\" que irão tornar o relógio do "
++"sistema em concordância com o relógio de hardware (também conhecido por "
++"relógio CMOS). Irá então guardar os valores no ficheiro de configuração /etc/"
++"default/adjtimex para que as configurações sejam restauradas em cada "
++"arranque, quando o /etc/init.d/adjtimex é corrido."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Este script demora 70 segundos a correr, podendo ser um desperdício de tempo "
++"corrê-lo em cada actualização. Como alternativa, pode correr o "
++"adjtimexconfig manualmente quando necessário, ou determine as variáveis do "
++"kernel usando outro método e configure-as manualmente em /etc/default/"
++"adjtimex."
+--- adjtimex-1.29.orig/debian/po/de.po
++++ adjtimex-1.29/debian/po/de.po
+@@ -0,0 +1,96 @@
++# translation of adjtimex_1.26-3_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-2009.
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex_1.26-3_de\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-15 18:02+0200\n"
++"Last-Translator: Erik Schanze <eriks@debian.org>\n"
++"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
++"Language: de\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"
+
-+SHELL = /bin/sh
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Soll Adjtimex nach der Installation und bei jedem Hochfahren gestartet "
++"werden?"
+
-+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
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Wird Adjtimex beim Hochfahren des Systems gestartet, werden die "
++"Zeitparameter im Kernel auf die Werte in /etc/defaults/adjtimex gesetzt."
+
-+all: adjtimex adjtimex.lsm
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Stimmen Sie nicht zu, wenn Sie mit Adjtimex nur die aktuellen Parameter "
++"ermitteln wollen."
+
-+adjtimex: adjtimex.c mat.o
-+ $(CC) $(CFLAGS) -I. -DVERSION=\"$(VERSION)\" -o adjtimex adjtimex.c \
-+ mat.o -lm
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"Adjtimexconfig zur Installation oder Aktualisierung von Adjtimex aufrufen?"
+
-+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
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 ausgeführt wird."
+
-+mat.o: mat.c
-+ $(CC) $(CFLAGS) -c mat.c
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Das Skript benötigt 70 Sekunden, um durchzulaufen, es bei jeder "
++"Aktualisierung laufen zu lassen, dürfte Zeitverschwendung sein. Andererseits "
++"können Sie »adjtimexconfig« selbst bei Bedarf starten oder Sie finden die "
++"Kernelvariablen auf einem anderen Weg heraus (siehe Handbuchseite von "
++"Adjtimex) und speichern die Werte in der Datei /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/eu.po
++++ adjtimex-1.29/debian/po/eu.po
+@@ -0,0 +1,84 @@
++# translation of adjtimex-eu.po to Euskara
++# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the PACKAGE package.
++#
++# Piarres Beobide <pi@beobide.net>, 2009.
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex-eu\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-08 12:49+0200\n"
++"Last-Translator: Piarres Beobide <pi@beobide.net>\n"
++"Language-Team: Euskara <debian-l10n-basque@lists.debian.org>\n"
++"Language: \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"
+
-+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)
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Adjtimex instalazio eta abiarazte bakoitzean exekutatu behar al da?"
+
-+uninstall:
-+ rm -f $(bindir)/adjtimex $(mandir)/adjtimex.$(manext)
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Adjtimex sistema abiaraztean exekutatzean kernelaren denbora parametroak /"
++"etc/default/adjtimex-eko balioetara ezarriko dira."
+
-+clean:
-+ rm -f core *.o
-+veryclean: clean
-+ rm -f adjtimex
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Ez zenuke aukera hau aukeratu beharko adjtimex uneko parametroak begiratzeko "
++"bakarrik erabili nahi baduzu."
+
-+shar: $(SRC)
-+ distname=adjtimex-$(VERSION); \
-+ shar $(SRC) >$$distname.shar
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Adjtimexconfig exekutatu adjtimex instalatu edo bertsio-berritzean?"
+
-+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
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 script-ak adjtimex erabiliko du kerneleko \"tick\" eta "
++"\"frequency\" aldagaien balioa aurkitzeko honekin sistema erlojuak hardware "
++"erlojuarekin (CMOS ordularia bezala ere ezagutua) bat egingo du. Orduan "
++"balio hauek /etc/default/adjtimex konfigurazio fitxategian gordeko ditu Abio "
++"bakoitzean balio horiek berrezarri daitezen /etc/init.d/adjtimex "
++"exekutatzean."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Script-ak 70 segundu behar ditu exekutatzeko, beraz berau bertsio-berritze "
++"bakoitzean exekutatzea denbora galtze bat izan daiteke. Bestela behar "
++"duzunean adjtimexconfig eskuz konfiguratu dezakezu edo kernel aldagaiak "
++"beste metodo batez atzeman eta /etc/default/adjtimex fitxategian eskuz ipini "
++"ditzakezu."
+--- adjtimex-1.29.orig/debian/po/da.po
++++ adjtimex-1.29/debian/po/da.po
+@@ -0,0 +1,92 @@
++# 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: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-04-16 16:56+0200\n"
++"Last-Translator: Frank Damgaard <debian@overbygaard.dk>\n"
++"Language-Team: Danish\n"
++"Language: \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"
++"Plural-Forms: nplurals=2; plural=(n != 1);\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++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:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Køres adjtimex under opstart af systemet, sættes kernens tidsparametre til "
++"værdierne i /etc/default/adjtimex. "
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Vælg ikke dette hvis du ønsker at bruge adjtimex til at gemmense de aktuelle "
++"parametre."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Skal adjtimexconfig køres ved installation eller opgradering?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 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:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Det tager 70 sekunder at køre skriptet, så at køre skriptet ved hver "
++"opgradering kan være spild af tid. Alternativt kan du selv køre "
++"adjtimexconfig når der er behov, eller finde kernevariablene på en anden "
++"måde og sætte dem manuelt i /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/nl.po
++++ adjtimex-1.29/debian/po/nl.po
+@@ -0,0 +1,86 @@
++# Dutch translation of adjtimex debconf templates.
++# Copyright (C) 2003-2011 THE PACKAGE'S COPYRIGHT HOLDER
++# This file is distributed under the same license as the adjtimex package.
++# Michiel Sikkes <michiel@sikkes.xs4all.nl>, 2003.
++# Jeroen Schot <schot@a-eskwadraat.nl>, 2011.
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex_1.29-2.1\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2011-05-05 17:49+0200\n"
++"Last-Translator: Michiel Sikkes <michiel@sikkes.xs4all.nl>\n"
++"Language-Team: Debian l10n Dutch <debian-l10n-dutch@lists.debian.org>\n"
++"Language: nl\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr ""
++"Wilt u dat adjtimex bij de installatie en bij elke opstartprocedure gedraaid "
++"wordt?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Het draaien van adjtimex bij het opstarten van het systeem zal "
++"tijdparameters van de kernel instellen zoals gedefinieerd in /etc/default/"
++"adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Accepteer deze optie niet als u adjtimex alleen wilt gebruiken om de huidige "
++"parameters te bekijken."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr ""
++"Wilt u dat adjtimexconfig bij het installeren en opwaarderen wordt gedraaid?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 "
++"kernelvariabelen \"tick\" en \"frequency\" te vinden. Dit zal er voor zorgen "
++"dat de systeemklok gelijk loopt met de hardware-klok (ook bekend onder de "
++"naam CMOS-klok). Deze eigenschappen worden opgeslagen in het "
++"configuratiebestand /etc/default/adjtimex, dus de instellingen worden bij "
++"elke systeemopstartprocedure hersteld als /etc/init.d/adjtimex draait."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually 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 kernelvariabelen op een andere "
++"manier bepalen en deze zelf in /etc/default/adjtimex zetten."
+--- adjtimex-1.29.orig/debian/po/cs.po
++++ adjtimex-1.29/debian/po/cs.po
+@@ -0,0 +1,78 @@
++# Czech translation of adjtimex templates
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.29-2\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2010-07-16 14:53+0200\n"
++"Last-Translator: Martin Sin <martin.sin@zshk.cz>\n"
++"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
++"Language: cs\n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=utf-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "Má být adjtimex spuÅ¡tÄ›n po instalaci a pÅ™i každém spuÅ¡tÄ›ní poÄítaÄe?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"SpuÅ¡tÄ›ní adjtimex pÅ™i startu poÄítaÄe nastaví Äasové parametry jádra na "
++"hodnoty uložené v /etc/default/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"Pokud chcete používat adjtimex pouze ke zjištění aktuálních hodnot, pak tuto "
++"možnost nemusíte používat."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "Spustit adjtimexconfig po instalaci nebo aktualizaci adjtimex?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 použije adjtimex k nalezení hodnot „tick“ a "
++"„frequency“ jádra tak, že nastaví systémové hodiny přibližně na hodnoty těch "
++"hardwarových (také známých jako CMOS hodiny). Tyto hodnoty pak uloží do "
++"konfiguraÄního souboru /etc/default/adjtimex, aby mohlo být nastavení "
++"obnoveno při každém startu, vždy při spuštění /etc/init.d/adjtimex."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"Spuštění skriptu zabere 70 sekund, takže jeho spuštění při každé aktualizaci "
++"může být ztrátou Äasu. VolitelnÄ› můžete adjtimexconfig spustit podle potÅ™eby "
++"také ruÄnÄ› nebo urÄit promÄ›nné jádra jinými způsoby a nastavit je ruÄnÄ› v "
++"souboru /etc/default/adjtimex."
+--- adjtimex-1.29.orig/debian/po/es.po
++++ adjtimex-1.29/debian/po/es.po
+@@ -0,0 +1,108 @@
++# adjtimex po-debconf translation to Spanish
++# Copyright (C) 2009 Software in the Public Interest
++# This file is distributed under the same license as the adjtimex package.
++#
++# Changes:
++# - Initial translation
++# Vicente H. <vherrerv@supercable.es>
++#
++# - Updates
++# Francisco Javier Cuadrado <fcocuadrado@gmail.com>, 2009
++#
++# Traductores, si no conocen el formato PO, merece la pena leer la
++# documentación de gettext, especialmente las secciones dedicadas a este
++# formato, por ejemplo ejecutando:
++# info -n '(gettext)PO Files'
++# info -n '(gettext)Header Entry'
++#
++# Equipo de traducción al español, por favor lean antes de traducir
++# los siguientes documentos:
++#
++# - El proyecto de traducción de Debian al español
++# http://www.debian.org/intl/spanish/coordinacion
++# especialmente las notas de traducción en
++# http://www.debian.org/intl/spanish/notas
++#
++# - La guía de traducción de po's de debconf:
++# /usr/share/doc/po-debconf/README-trans
++# o http://www.debian.org/intl/l10n/po-debconf/README-trans
++#
++msgid ""
++msgstr ""
++"Project-Id-Version: adjtimex 1.27.1-3\n"
++"Report-Msgid-Bugs-To: adjtimex@packages.debian.org\n"
++"POT-Creation-Date: 2009-03-17 07:38+0100\n"
++"PO-Revision-Date: 2009-07-25 20:18+0100\n"
++"Last-Translator: Francisco Javier Cuadrado <fcocuadrado@gmail.com>\n"
++"Language-Team: Debian l10n Spanish <debian-l10n-spanish@lists.debian.org>\n"
++"Language: \n"
++"MIME-Version: 1.0\n"
++"Content-Type: text/plain; charset=UTF-8\n"
++"Content-Transfer-Encoding: 8bit\n"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid "Should adjtimex be run at installation and at every startup?"
++msgstr "¿Se debe ejecutar adjtimex ahora y en cada arranque?"
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"Running adjtimex at system startup will set the kernel time parameters to "
++"the values in /etc/default/adjtimex."
++msgstr ""
++"Ejecutar adjtimex al inicio del sistema configurará los parámetros de tiempo "
++"del núcleo a los valores del archivo «/etc/default/adjtimex»."
++
++#. Type: boolean
++#. Description
++#: ../templates:2001
++msgid ""
++"You should not choose this option if you just want to use adjtimex to "
++"inspect the current parameters."
++msgstr ""
++"No debería escoger esta opción si sólo quiere utilizar adjtimex para "
++"inspeccionar los parámetros actuales."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid "Run adjtimexconfig when adjtimex is installed or upgraded?"
++msgstr "¿Desea ejecutar adjtimexconfig cuando adjtimex se instale o actualice?"
++
++#. Type: boolean
++#. Description
++#. Translators: do not translate "tick" and "frequency"
++#: ../templates:3001
++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 script adjtimexconfig utilizará adjtimex para encontrar los valores de "
++"las variables «tick» y «frecuency» del núcleo que harán que el reloj del "
++"sistema concuerde aproximadamente con el reloj del hardware (también "
++"conocido como reloj CMOS). Entonces, se guardan estos valores en el archivo "
++"de configuración «/etc/default/adjtimex» de modo que los valores se "
++"restaurarán en cada arranque, cuando el script «/etc/init.d/adjtimex» se "
++"ejecute."
++
++#. Type: boolean
++#. Description
++#: ../templates:3001
++msgid ""
++"The script takes 70 seconds to run, so running it for every upgrade may be a "
++"waste of time. Alternatively, you can run adjtimexconfig manually when "
++"needed, or determine the kernel variables by using other methods and set "
++"them manually in /etc/default/adjtimex."
++msgstr ""
++"El script tarda 70 segundos para ejecutarse, por lo que ejecutarlo en cada "
++"actualización puede ser una pérdida de tiempo. De forma alternativa, puede "
++"ejecutar manualmente ajdtimexconfig cuando lo necesite, o determinar las "
++"variables del núcleo utilizando otros métodos e configurándolas en el "
++"archivo «/etc/default/adjtimex»."
diff --git a/source/a/util-linux/column-fix_long_opts.diff b/source/a/util-linux/column-fix_long_opts.diff
new file mode 100644
index 000000000..e5215db7b
--- /dev/null
+++ b/source/a/util-linux/column-fix_long_opts.diff
@@ -0,0 +1,15 @@
+diff -Naur util-linux-2.21.2/text-utils/column.c util-linux-2.21.2.patched//text-utils/column.c
+--- util-linux-2.21.2/text-utils/column.c 2012-05-25 05:44:59.000000000 -0400
++++ util-linux-2.21.2.patched//text-utils/column.c 2012-08-14 05:22:17.000000000 -0400
+@@ -121,9 +121,9 @@
+ {
+ { "help", 0, 0, 'h' },
+ { "version", 0, 0, 'V' },
+- { "columns", 0, 0, 'c' },
++ { "columns", 1, 0, 'c' },
+ { "table", 0, 0, 't' },
+- { "separator", 0, 0, 's' },
++ { "separator", 1, 0, 's' },
+ { "fillrows", 0, 0, 'x' },
+ { NULL, 0, 0, 0 },
+ };
diff --git a/source/a/util-linux/net-tools.config.h b/source/a/util-linux/net-tools.config.h
new file mode 100644
index 000000000..e271f863f
--- /dev/null
+++ b/source/a/util-linux/net-tools.config.h
@@ -0,0 +1,78 @@
+/*
+* 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
+#define HAVE_AFBLUETOOTH 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 0
+#define HAVE_HWNETROM 1
+#define HAVE_HWX25 1
+#define HAVE_HWFR 1
+#define HAVE_HWSIT 0
+#define HAVE_HWFDDI 1
+#define HAVE_HWHIPPI 1
+#define HAVE_HWASH 0
+#define HAVE_HWHDLCLAPB 0
+#define HAVE_HWIRDA 1
+#define HAVE_HWEC 0
+#define HAVE_HWEUI64 1
+#define HAVE_HWIB 1
+
+/*
+ *
+ * Other Features.
+ *
+ */
+#define HAVE_FW_MASQUERADE 1
+#define HAVE_IP_TOOLS 1
+#define HAVE_MII 1
+#define HAVE_SELINUX 0
diff --git a/source/a/util-linux/net-tools.diff b/source/a/util-linux/net-tools.diff
deleted file mode 100644
index a19af2026..000000000
--- a/source/a/util-linux/net-tools.diff
+++ /dev/null
@@ -1,77 +0,0 @@
---- ./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/net-tools_1.60-19.diff b/source/a/util-linux/net-tools_1.60-19.diff
deleted file mode 100644
index f754f02d5..000000000
--- a/source/a/util-linux/net-tools_1.60-19.diff
+++ /dev/null
@@ -1,29401 +0,0 @@
---- 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 entrées ARP à configurer sont
-+.BR nom_de_fichier .
-+Ceci peut être utilisé si les entrées ARP à configurer sont
- nombreuses. Le nom du fichier de données est très souvent nommé
- .B /etc/ethers
- , mais ce n'est pas officiel.
-@@ -160,8 +160,8 @@
- .LP
- Chaque entrée complète se trouvant dans le cache ARP est marquée de
- l'indicateur
--.B C
--. Les entrées permanentes sont marquées de l'indicateur
-+.BR C .
-+Les entrées permanentes sont marquées de l'indicateur
- .B M
- et les entrées '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 système tel qu'il est retourné par la fonction
--.BR getdomainname (2)
--. Ceci est connu comme nom de domaine YP/NIS du système.
-+.BR getdomainname (2).
-+Ceci est connu comme nom de domaine YP/NIS du système.
-
-
- .LP
-@@ -145,8 +145,8 @@
- .LP
- La façon dont vous pouvez le changer dépend 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 réseau
- .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 réseau
-+.BR promiscuous .
-+S'il est validé, tous les paquets circulant sur le réseau
- seront reçus 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 réseau
-+.BR all-multicast .
-+S'il est validé, tous les paquets multicast circulant sur le réseau
- seront reçus sur cette interface.
- .TP
- .B "metric N"
-@@ -196,7 +196,7 @@
- Même si les adresses appletalk DDP et IPX peuvent être affichées,
- elles ne peuvent être modifiées 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 Fév 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 réseau, les tables de routage, les
-@@ -106,7 +106,7 @@
- .BR route (8)
- pour plus de détails.
-
--.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 entrée d'interface comme la commande
--.B ifconfig
--. Avec le paramètre
-+.BR ifconfig .
-+Avec le paramètre
- .B -a
- , vous pouvez inclure les interfaces qui ne sont pas configurées (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 utilisée.
- .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 définir des règles spécifiques à 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 @@
- Crée manuellement une correspondance d'adresses RARP pour l'hôte
- .B nom_d_hôte
- avec l'adresse matérielle
--.B adr_materielle
--. Le format de l'adresse matérielle est dépendant du matériel,
-+.BR adr_materielle .
-+Le format de l'adresse matérielle est dépendant du matériel,
- mais pour la plupart on peut considérer que la présentation classique
- peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
- séparés 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 Août 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 fenêtres et MSS pour Linux 1.1.22. Le support de irtt
- et la fusion avec netstat ont été réalisés 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 endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados
- com este comando.
- .SH VEJA TAMBÉM
--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 português 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 conexões de rede, tabelas de roteamento, estatísticas de interface e conexões
-@@ -97,7 +97,7 @@
- .BR route (8)
- para maiores detalhes.
-
--.SS "\-i, \-\-interface \fIiface\fI"
-+.SS "\-i, \-\-interfaces \fIiface\fI"
- Se você usar a opção
- .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 endereços RARP para a máquina
- .B máquina
- com endereço de hardware configurado para
--.B endereço_hardware
--. O formato do endereço de hardware depende da classe do hardware, mas
-+.B endereço_hardware.
-+O formato do endereço de hardware depende da classe do hardware, mas
- para a maioria das classes você pode assumir que a apresentação usual pode
- ser usada. Para a classe Ethernet, são 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 versão pl15. Alan Cox adicionou as opções 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 TRADUÇÃO
- 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 máquina\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: não foi possível obter o endereço 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 endereço de hardware %s `%s'.\n"
-
--#: ../arp.c:282
-+#: ../arp.c:293
-+#, c-format
- msgid "arp: need hardware address\n"
- msgstr "arp: preciso do endereço de hardware\n"
-
--#: ../arp.c:290
-+#: ../arp.c:301
-+#, c-format
- msgid "arp: invalid hardware address\n"
- msgstr "arp: endereço inválido de hardware\n"
-
--#: ../arp.c:387
-+#: ../arp.c:398
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr "arp: não foi possível 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: não foi possível 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 "Endereço\t\tTipoHW\tEndereçoHW\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 não 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] [<máquina>] <-Mostra cache "
--"ARP\n"
-+" arp [-vn] [<HW>] [-i <if>] [-a] [<máquina>] <-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 <máquina> [pub][nopub] <-Remove entrada "
--"ARP\n"
-+msgstr " arp [-v] [-i <if>] -d <máquina> [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 <máquina> <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 <máquina> <end_hw> [netmask <nm>] pub "
--"<-''-\n"
-+msgstr " arp [-v] [<HW>] [-i <if>] -s <máquina> <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 <máquina> <if> [netmask <nm>] pub "
--"<-''-\n"
-+msgstr " arp [-v] [<HW>] [-i <if>] -Ds <máquina> <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) máquinas no estilo alternativo "
--"(BSD)\n"
-+msgstr " -a mostra (todas as) máquinas 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 não 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 família 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 endereço de hw. Default: %s\n"
-+msgstr " <HW>=Use '-H <hw>' para especificar o tipo de endereço 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 possíveis (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 não suportado!\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "%s: família de endereços não suportada!\n"
-
--#: ../arp.c:703
-+#: ../arp.c:716
-+#, c-format
- msgid "arp: -N not yet supported.\n"
- msgstr "arp: -N ainda não suportada.\n"
-
--#: ../arp.c:713
-+#: ../arp.c:726
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr "arp: %s: família de endereços 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 máquina 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 máquina\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:109
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr "Configurando nome do domínio 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 domínio\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: não foi possível 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] {máquina|-F arquivo} configura nome da máquina (de "
--"arquivo)\n"
-+msgstr "Uso: hostname [-v] {máquina|-F arquivo} configura nome da máquina (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] {domínio_nis|-F file} configura nome do domínio 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] {máquina|-F arquivo} configura o nome do nó DECnet (de "
--"arquivo)\n"
-+msgstr "Uso: hostname [-v] {máquina|-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 máquina\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 informações 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=máquina -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 máquina\n"
-
--#: ../hostname.c:233
-+#: ../hostname.c:232
-+#, c-format
- msgid " -a, --alias alias names\n"
- msgstr " -a, --alias aliases para a máquina\n"
-
--#: ../hostname.c:234
-+#: ../hostname.c:233
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr " -i, --ip-address endereços da máquina\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 máquina (FQDN)\n"
-
--#: ../hostname.c:236
-+#: ../hostname.c:235
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
- msgstr " -d, --domain nome do domínio DNS\n"
-
--#: ../hostname.c:237
-+#: ../hostname.c:236
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr " -y, --yp, --nis nome do domínio 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 máquina ou domínio 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ê não pode mudar o nome do domínio 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 resolução de nomes você pode "
--"mudar\n"
-+"A menos que esteja usando bind ou NIS para resolução 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 domínio 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 Opções\n"
-
--#: ../ifconfig.c:164
--#, c-format
--msgid "HWaddr %s "
--msgstr "Endereço 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 informações 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 "Mídia:%s"
-+msgid "No support for INET on this system.\n"
-+msgstr "Este sistema não 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 informações 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>] <endereço>]\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 <endereço>[/<tam_prefixo>]]\n"
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:205
- #, c-format
--msgid " Bcast:%s "
--msgstr " Bcast:%s "
-+msgid " [del <address>[/<prefixlen>]]\n"
-+msgstr " [del <endereço>[/<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 [<endereço>]] [[-]pointopoint [<endereço>]]\n"
-
--#: ../ifconfig.c:201
-+#: ../ifconfig.c:207
- #, c-format
--msgid " inet6 addr: %s/%d"
--msgstr " endereço 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 <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\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 "Máquina"
--
--#: ../ifconfig.c:221
--msgid "Unknown"
--msgstr "Desconhecido"
--
--#: ../ifconfig.c:236
- #, c-format
--msgid " IPX/Ethernet II addr:%s\n"
--msgstr " Endereço IPX/Ethernet II:%s\n"
-+msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
-+msgstr " [hw <HW> <endereço>] [metric <NN>] [mtu <NN>]\n"
-
--#: ../ifconfig.c:239
-+#: ../ifconfig.c:213
- #, c-format
--msgid " IPX/Ethernet SNAP addr:%s\n"
--msgstr " Endereço 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 " Endereço 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 " Endereço 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 " Endereço 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 " Endereço 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 possíveis 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>=Família de endereços. 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 famílias de endereços possíveis:\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 Métrica:%d"
-+msgid "Unknown media type.\n"
-+msgstr "Tipo desconhecido de mídia.\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 sobreposições:%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 sobreposições:%lu portadora:%lu\n"
-
--#: ../ifconfig.c:333
-+#: ../ifconfig.c:523
- #, c-format
--msgid " collisions:%lu "
--msgstr " colisões:%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 "Endereço 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 "Memória:%lx-%lx "
-+msgid "%s: invalid %s address.\n"
-+msgstr "%s: endereço %s inválido.\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 não 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>] <endereço>]\n"
--
--#: ../ifconfig.c:425
--msgid " [add <address>[/<prefixlen>]]\n"
--msgstr " [add <endereço>[/<tam_prefixo>]]\n"
--
--#: ../ifconfig.c:427
--msgid " [del <address>[/<prefixlen>]]\n"
--msgstr " [del <endereço>[/<tam_prefixo>]]\n"
--
--#: ../ifconfig.c:432
--msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
--msgstr " [[-]broadcast [<endereço>]] [[-]pointopoint [<endereço>]]\n"
--
--#: ../ifconfig.c:433
--msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
--msgstr " [netmask <endereço>] [dstaddr <endereço>] [tunnel <endereço>]\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> <endereço>] [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 possíveis de hardware:\n"
--
--#. 1 = ARPable
--#: ../ifconfig.c:453
--#, c-format
--msgid " <AF>=Address family. Default: %s\n"
--msgstr " <AF>=Família de endereços. Default: %s\n"
--
--#: ../ifconfig.c:454
--msgid " List of possible address families:\n"
--msgstr " Lista de famílias de endereços possíveis:\n"
--
--#: ../ifconfig.c:593
--msgid "Unknown media type.\n"
--msgstr "Tipo desconhecido de mídia.\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: endereço %s inválido.\n"
-
--#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
--msgid "No support for INET6 on this system.\n"
--msgstr "Este sistema não tem suporte a INET6.\n"
--
--#: ../ifconfig.c:983
-+#: ../ifconfig.c:885
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
- msgstr "Remoção de endereço não suportada neste sistema.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "Este sistema não tem suporte a INET.\n"
-+#: ../ifconfig.c:957
-+#, fuzzy, c-format
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "Não sei como configurar endereços para a família %d.\n"
-
--#: ../ifconfig.c:1076
-+#: ../ifconfig.c:983
-+#, c-format
- msgid "No support for ECONET on this system.\n"
- msgstr "Este sistema não 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 "Não sei como configurar endereços para a família %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 ""
--"(Não foi possível ler informações para \"-p\": geteuid()=%d mas você deve "
--"ser root.)\n"
-+msgstr "(Não foi possível ler informações 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, informações sobre "
--"processos\n"
-+"(Nem todos os processos puderam ser identificados, informações sobre processos\n"
- " de outrem não serão 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 ""
--"Usuário Destino Origem Dispositivo Estado Vr/Vs Send-Q Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
-+msgstr "Usuário 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 "OUÇA"
-
--#: ../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 "atenção, recebi linha igmp6 inválida %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: família de protocolos %d não 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 "atenção, recebi linha igmp inválida %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 "atenção, recebi linha tcp inválida.\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 "atenção, recebi linha udp inválida.\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 "atenção, recebi linha raw inválida.\n"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1128
-+#, c-format
- msgid "warning, got bogus unix line.\n"
- msgstr "atenção, recebi linha unix inválida.\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 "RECUPERAÇÃO"
-
--#: ../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 Endereço Local Endereço Remoto "
--"Estado"
-+"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado"
-
--#: ../netstat.c:1281
-+#: ../netstat.c:1381
-+#, c-format
- msgid " User"
- msgstr " Usuário"
-
--#: ../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 " - estatísticas não disponíveis -"
--
--#: ../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 "
--"Opções\n"
-+msgstr "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OV Opções\n"
-
--#: ../netstat.c:1404
-+#: ../netstat.c:1469
- msgid "missing interface information"
- msgstr "falta informação 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 conexões 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 não resolve nomes\n"
-+
-+#: ../netstat.c:1506
-+#, fuzzy, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr " -n, --numeric não resolve nomes\n"
-+
-+#: ../netstat.c:1507
-+#, fuzzy, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr " -n, --numeric não resolve nomes\n"
-+
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -n, --numeric não 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 informações\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 contínua\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 Informações de Repasse "
--"(default)\n"
-+msgstr " -F, --fib mostra a Base de Informações 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 famílias de endereços possíveis (que suportam roteamento):\n"
-+msgstr " Lista das famílias de endereços possíveis (que suportam roteamento):\n"
-
--#: ../netstat.c:1663
-+#: ../netstat.c:1753
-+#, c-format
- msgid "Active Internet connections "
- msgstr "Conexões 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 Endereço Local Endereço Remoto Estado "
--" "
-+"Proto Recv-Q Send-Q Endereço Local Endereço Remoto Estado "
-
--#: ../netstat.c:1675
-+#: ../netstat.c:1765
-+#, c-format
- msgid " User Inode "
- msgstr " Usuário "
-
--#: ../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 não 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: endereço de hardware inválido\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:128
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
- msgstr "rarp: não foi possível 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: máquina desconhecida\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:147
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
- msgstr "rarp: não é possível 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 máquina remove entrada do cache\n"
-+msgstr " rarp -d máquina 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 máquina endereço-hw adiciona entrada ao cache\n"
-+msgstr " rarp [-t tipo-hw] -s máquina endereço-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 versão do programa\n"
-+msgstr " rarp -V mostra versão do programa\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:238
- #, c-format
- msgid "%s: illegal option mix.\n"
- msgstr "%s: mistura ilegal de opções.\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] [famílias_de_endereços] Lista as tabelas de "
--"rotea-\n"
-+"Uso: route [-nNvee] [-FC] [famílias_de_endereços] 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 família.\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} [família_de_endereços] Sintaxe para a AF "
--"(Família\n"
--" de endereços) "
--"espeficicada.\n"
-+" route {-h|--help} [família_de_endereços] Sintaxe para a AF (Família\n"
-+" de endereços) 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 versão do "
--"comando\n"
-+" route {-V|--version} Mostra a versão 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 " [[família] endereço]\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_FÍSICO ]\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 := { ENDEREÇO_IP | any }\n"
-
--#: ../iptunnel.c:86
-+#: ../iptunnel.c:92
-+#, c-format
- msgid " TOS := { NUMBER | inherit }\n"
- msgstr " TOS := { NÚMERO | 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_NÚMEROS_SEPARADOS_POR_PONTOS | NÚMERO }\n"
-
--#: ../iptunnel.c:326
-+#: ../iptunnel.c:332
-+#, c-format
- msgid "Keys are not allowed with ipip and sit.\n"
- msgstr "Chaves não são permitidas com ipip e sit.\n"
-
--#: ../iptunnel.c:346
-+#: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr "Um túnel de broadcast precisa de um endereço de origem.\n"
-
--#: ../iptunnel.c:361
-+#: ../iptunnel.c:367
-+#, c-format
- msgid "ttl != 0 and noptmudisc are incompatible\n"
- msgstr "ttl != 0 e noptmudisc são incompatíveis\n"
-
--#: ../iptunnel.c:373
-+#: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr "não foi possível determinar o modo do túnel (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 seqüência.\n"
-
--#: ../iptunnel.c:449
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr " É necessário checksum nos pacotes recebidos.\n"
-
--#: ../iptunnel.c:451
-+#: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
- msgstr " Seqüencie pacotes na saída.\n"
-
--#: ../iptunnel.c:453
-+#: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
- msgstr " Calcule o checksum para pacotes de saída.\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 "Não foi possível 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 saída 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 cabeçalhos inválidos"
-
--#: ../statistics.c:67
--#, c-format
--msgid "%d with invalid addresses"
-+#: ../statistics.c:69
-+#, fuzzy, c-format
-+msgid "%u with invalid addresses"
- msgstr "%d com endereços inválidos"
-
--#: ../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 requisições 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 após 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 não alcançável: %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 trânsito: %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 "parâmetros 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 "redireções: %d"
-
--#: ../statistics.c:93
--#, c-format
--msgid "echo requests: %d"
-+#: ../statistics.c:95
-+#, fuzzy, c-format
-+msgid "echo requests: %u"
- msgstr "requisições 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 "requisições 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 "requisições de mascara de endereço: %d"
-
- #. ?
--#: ../statistics.c:98
--msgid "address mask replies"
--msgstr "resposta a mascara de endereço"
-+#: ../statistics.c:100 ../statistics.c:113
-+#, fuzzy, c-format
-+msgid "address mask replies: %u"
-+msgstr "respostas a máscara de endereço: %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 "redireções: %d"
-
--#: ../statistics.c:106
--#, c-format
--msgid "echo request: %d"
-+#: ../statistics.c:108
-+#, fuzzy, c-format
-+msgid "echo request: %u"
- msgstr "requisições de eco: %d"
-
--#: ../statistics.c:108
--#, c-format
--msgid "timestamp requests: %d"
-+#: ../statistics.c:110
-+#, fuzzy, c-format
-+msgid "timestamp requests: %u"
- msgstr "requisições 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 "requisições de máscara de endereço: %d"
-
--#: ../statistics.c:111
--#, c-format
--msgid "address mask replies: %d"
--msgstr "respostas a máscara de endereço: %d"
--
--#: ../statistics.c:116
-+#: ../statistics.c:118
- #, c-format
- msgid "RTO algorithm is %s"
- msgstr "Algorítmo 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 conexão 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 conexão 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 conexão recebidas"
-
--#: ../statistics.c:124
--#, c-format
--msgid "%d connections established"
-+#: ../statistics.c:126
-+#, fuzzy, c-format
-+msgid "%u connections established"
- msgstr "%d conexões 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 recepção 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 embriônicos 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 recepção devido a sobreposição 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 sobreposição 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 embriônicos 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 recepção devido a sobreposição 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 sobreposição 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 recepção devido a sobreposição 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 conexão recebidas"
-+
-+#: ../statistics.c:218
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected data"
-+msgstr "%d resets de conexão recebidas"
-+
-+#: ../statistics.c:219
-+#, fuzzy, c-format
-+msgid "%u connections reset due to early user close"
-+msgstr "%d resets de conexão 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 conexão 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 "título %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 "não foi possível abrir /proc/net/snmp"
-
-@@ -1819,89 +2074,95 @@
- msgid "Cannot change line discipline to `%s'.\n"
- msgstr "Não foi possível 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 "Não 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 não especifique mais que uma família de endereços.\n"
-
--#: ../lib/af.c:293
-+#: ../lib/af.c:304
-+#, c-format
- msgid "Too much address family arguments.\n"
- msgstr "Excesso no número de famílias de endereços.\n"
-
--#: ../lib/af.c:304
-+#: ../lib/af.c:315
- #, c-format
- msgid "Unknown address family `%s'.\n"
- msgstr "Família de endereços `%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): endereço arcnet inválido!\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 "Endereço 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 inválido"
-@@ -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 não 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 não 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): endereço fddi inválido!\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 "Família de endereços `%s' não 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 família `%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): endereço fddi inválido!\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 "Túnel 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: família de endereços %d não 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 não 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 Próximo \"Hop\" "
--" Opções Métrica Ref Uso Iface\n"
-+"Destination Next "
-+"Hop Flags Metric Ref Use Iface\n"
-+msgstr "Destino Próximo \"Hop\" Opções Métrica 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 Endereço HW Iface Opções "
--"Estado Ref\n"
-+msgstr "Vizinho Endereço HW Iface Opções 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 Endereço HW Iface Opções "
--"Estado Ref\n"
-+"Vizinho Endereço HW Iface Opções 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 NÃO 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' não é 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 não 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 MáscaraGen. Opções Métrica Ref Uso "
--"Iface\n"
-+msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n"
-
- #: ../lib/inet_gr.c:59
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags MSS Window irtt "
- "Iface\n"
--msgstr ""
--"Destino Roteador MáscaraGen. Opções MSS Janela irtt "
--"Iface\n"
-+msgstr "Destino Roteador MáscaraGen. Opções 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 MáscaraGen Opções Métrica Ref Uso "
--"Iface MSS Janela irtt\n"
-+msgstr "Destino Roteador MáscaraGen Opções Métrica 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 MáscaraGen. Opções Métrica Ref Uso "
--"Iface\n"
-+msgstr "Destino Roteador MáscaraGen. Opções Métrica Ref Uso Iface\n"
-
- #: ../lib/inet_gr.c:261
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags MSS Window irtt "
- "Iface\n"
--msgstr ""
--"Destino Roteador MáscaraGen. Opções MSS Janela irtt "
--"Iface\n"
-+msgstr "Destino Roteador MáscaraGen. Opções 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 Opções Métrica Ref Uso "
--"Iface MSS Janela irtt HH Arp\n"
-+msgstr "Destino Roteador Origem Opções Métrica 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 Opções Métrica Ref Uso "
--"Iface MSS Janela irtt HH Arp\n"
-+msgstr "Destino Roteador Origem Opções Métrica 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 NÃO suportado\n"
-
-@@ -2230,14 +2510,17 @@
- msgstr "route: %s: não é possível usar uma REDE como roteador!\n"
-
- #: ../lib/inet_sr.c:174
-+#, c-format
- msgid "route: Invalid MSS/MTU.\n"
- msgstr "route: MSS inválido.\n"
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
- msgstr "route: janela inválida.\n"
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
- msgstr "route: rtt inicial inválido.\n"
-
-@@ -2252,75 +2535,92 @@
- msgstr "route: netmask %s inválida\n"
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
- msgstr "route: a netmask não casa com o endereço de rede\n"
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
- msgstr "Não é suportado limpar a tabela de roteamento `inet'\n"
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
- msgstr "Não é 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 não 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 não 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 Mnemônico 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ê não 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 "Endereço do nó deve ter dez dígitos"
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
- msgstr "ROSE não 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): endereço token ring inválido!\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 "atenção: nenhum socket inet disponível: %s\n"
-
--#: ../lib/interface.c:270
-+#: ../lib/interface.c:325
- #, c-format
- msgid "Warning: cannot open %s (%s). Limited output.\n"
- msgstr "Atenção: não foi possível abrir %s (%s). Saída limitada.\n"
-
- #. Give better error message for this case.
--#: ../lib/interface.c:504
-+#: ../lib/interface.c:571
- msgid "Device not found"
- msgstr "%s: dispositivo não encontrado"
-
--#: ../lib/interface.c:508
-+#: ../lib/interface.c:575
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
-+msgstr "%s: erro obtendo informações da interface: %s\n"
-+
-+#: ../lib/interface.c:608
-+msgid " - no statistics available -"
-+msgstr " - estatísticas não disponíveis -"
-+
-+#: ../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 "Endereço de HW %s "
-+
-+#: ../lib/interface.c:696
-+#, c-format
-+msgid "Media:%s"
-+msgstr "Mídia:%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 " endereço 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 "Máquina"
-+
-+#: ../lib/interface.c:750
-+#, c-format
-+msgid "Unknown"
-+msgstr "Desconhecido"
-+
-+#: ../lib/interface.c:765
-+#, c-format
-+msgid " IPX/Ethernet II addr:%s\n"
-+msgstr " Endereço IPX/Ethernet II:%s\n"
-+
-+#: ../lib/interface.c:768
-+#, c-format
-+msgid " IPX/Ethernet SNAP addr:%s\n"
-+msgstr " Endereço IPX/Ethernet SNAP:%s\n"
-+
-+#: ../lib/interface.c:771
-+#, c-format
-+msgid " IPX/Ethernet 802.2 addr:%s\n"
-+msgstr " Endereço IPX/Ethernet 802.2:%s\n"
-+
-+#: ../lib/interface.c:774
-+#, c-format
-+msgid " IPX/Ethernet 802.3 addr:%s\n"
-+msgstr " Endereço IPX/Ethernet 802.3:%s\n"
-+
-+#: ../lib/interface.c:784
-+#, c-format
-+msgid " EtherTalk Phase 2 addr:%s\n"
-+msgstr " Endereço EtherTalk fase 2:%s\n"
-+
-+#: ../lib/interface.c:793
-+#, c-format
-+msgid " econet addr:%s\n"
-+msgstr " Endereço 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 Métrica:%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 sobreposições:%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 sobreposições:%lu portadora:%lu\n"
-+
-+#: ../lib/interface.c:899
-+#, c-format
-+msgid " collisions:%lu "
-+msgstr " colisões:%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 informações 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 "Endereço de E/S:0x%x "
-+
-+#: ../lib/interface.c:921
-+#, c-format
-+msgid "Memory:%lx-%lx "
-+msgstr "Memória:%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 família de endereços 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 "família %d "
-
--#: ../ipmaddr.c:267
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
- msgstr " usuários %d"
-
--#: ../ipmaddr.c:353
-+#: ../ipmaddr.c:358
- msgid "Cannot create socket"
- msgstr "Não foi possível 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: não foi possível 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: não foi possível 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: não foi possível obter a disciplina de linha corrente!\n"
-+msgstr "slattach: tty_open: não foi possível 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: não foi possível 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: não foi possível 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: não foi possível 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 <máquina> <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 endereço"
-+
-+#~ msgid "unknown title %s\n"
-+#~ msgstr "título %s desconhecido\n"
-+
-+#~ msgid "Routing table for `ddp' not yet supported.\n"
-+#~ msgstr "Tabela de roteamento para `ddp' ainda não 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 tüüp\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 HWtüüp 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 "(mittetäielik)"
-
--#: ../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 "<mittetäielik>"
-
--#: ../arp.c:496
-+#: ../arp.c:507
- #, c-format
- msgid "netmask %s "
- msgstr "võrgumask %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 näita kõiki 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 määratud 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 väljund\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 võrguliidese täpsustamine (näiteks 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 määramine\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 või "
--"/etc/ethers'st\n"
-+" -f, --file lugeda kirjed antud failist või /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 määramiseks.\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 " Võimalike ARP-i toetavate riistvara tüüpide 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 tüüpi %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 tüüp %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 tüübil %s pole ARP toetust\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr "Sean sõlme 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 sõlme 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 võrgusõlme 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 näitamine antud formaadis\n"
-
--#: ../hostname.c:229
-+#: ../hostname.c:228
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr " hostname [-v] hosti nime näitamine\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 lühike 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 - täielik süsteeminimi)\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 võrgusõlme 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 või 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 käsuga 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 täieliku 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 küsimisel: %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 süsteem 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 küsimisel: %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 <tüüp>]\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 tüüp\n"
-
--#: ../ifconfig.c:202
-+#: ../ifconfig.c:225
-+#, c-format
- msgid " List of possible hardware types:\n"
- msgstr " Võimalike riistvara tüüpide 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 " Võimalike 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 tüüp\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 tüübil `%s' pole käsitlejat aadressi seadmiseks - ebaõnn\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 süsteem 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 süsteem 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 süsteem 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 @@
- "(Mõnesid 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 Lähtepunkt 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 Lähtepunkt 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 "eikäi ((0.00/%ld/%d)"
-
--#: ../netstat.c:792
-+#: ../netstat.c:804
- #, c-format
- msgid "on (%2.2f/%ld/%d)"
- msgstr "käib (%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 "käib-%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 "LAHTIÜHENDUMAS"
-
--#: ../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 Tüüp 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 Lähtepunkt 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 Väline 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 näitamine\n"
-
--#: ../netstat.c:1479
-+#: ../netstat.c:1497
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
- msgstr " -i, --interfaces liideste tabeli näitamine\n"
-
--#: ../netstat.c:1480
-+#: ../netstat.c:1498
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr " -g, --groups multiedastuse gruppide näitamine\n"
-
--#: ../netstat.c:1481
-+#: ../netstat.c:1499
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
- " -s, --statistics võrgu statistika näitamine (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 näitamine\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 näitamine\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 näitamine\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 näitamine\n"
-
--#: ../netstat.c:1495
-+#: ../netstat.c:1513
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
- " -a, --all, --listening kõigi soklite näitamine (vaikimisi "
- "ühendatud)\n"
-
--#: ../netstat.c:1496
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -o, --timers display timers\n"
- msgstr " -o, --timers taimerite näitamine\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 näitamine "
- "(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 @@
- "näitamine\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>' või '--<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 " Võimalike ruutingu toetavate aadressiperekondade nimekiri:\n"
-
--#: ../netstat.c:1726
-+#: ../netstat.c:1753
-+#, c-format
- msgid "Active Internet connections "
- msgstr "Aktiivsed internetiühendused "
-
--#: ../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 Väline aadress Olek "
--" "
-+"Proto VvJrk SaatJrk Kohalik aadress Väline 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 näitamine\n"
- "\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:238
- #, c-format
- msgid "%s: illegal option mix.\n"
- msgstr "%s: lubamatu võtmete kombinatsioon\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:269
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
- msgstr "rarp: tundmatu riistvara tüüp %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 näitamine\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 süntaks 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 näitamine\n"
- "\n"
-
-+#: ../route.c:92
-+#, fuzzy, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=kasutage '-A <af>' või '--<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 := FÜÜSILISE_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 võtmed lubatud\n"
-
--#: ../iptunnel.c:351
-+#: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr "Leviedastusega tunnel vajab lähteaadressi\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 määrata tunneli moodi (ipip, gre või 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 " Järjekorravälised paketid visatakse minema\n"
-
--#: ../iptunnel.c:454
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr " Vastuvõetavates pakettides on kontrollsumma kohustuslik\n"
-
--#: ../iptunnel.c:456
-+#: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
- msgstr " Väljuvad paketid varustatakse järjekorranumbritega\n"
-
--#: ../iptunnel.c:458
-+#: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
- msgstr " Väljuvad 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 tüüpi\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 MäluOtsas\n"
-
-@@ -1658,13 +1861,13 @@
- msgstr "%u paketti pandi otse recvmsg eeljärjekorda"
-
- #: ../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 võeti 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 võeti vastu otse eeljärjekorrast"
-
- #: ../statistics.c:182
-@@ -1673,8 +1876,8 @@
- msgstr "%u paketti kustutati eeljärjekorrast"
-
- #: ../statistics.c:183
--#, c-format
--msgid "%u packets header predicted"
-+#, fuzzy, c-format
-+msgid "%u packet headers predicted"
- msgstr "%u paketti päise õ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 süsteemne mälu 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 võeti 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 ebaõnnestus"
-+
-+#: ../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 vastuvõtu järjekorrast sokli puhvri ületäitumise tõttu"
-+
-+#: ../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 võeti vastu"
-+
-+#: ../statistics.c:216
-+#, fuzzy, c-format
-+msgid "%u DSACKs for out of order packets received"
-+msgstr "kokku võeti 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 tõttu"
-+
-+#: ../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 analüüsimisel"
-
--#: ../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 lõpus\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 süsteemis 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 lõpus\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 süsteemis 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 Järgmine samm "
--" Lipud Meetr Mitu Kasut Liides\n"
-+"Sihtpunkt Järgmine "
-+"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 tühjendamist 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 süsteemis 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 @@
- "Lähtepunkt 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: võrku 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 võrgumask %s\n"
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
- msgstr "route: võrgumask ei sobi ruutingu aadressiga\n"
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
- msgstr "`inet' ruutingutabeli tühjendamist 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 süsteemis 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 võrk 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 Lähtepunkt 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 Lähtepunkt Sihtpunkt "
--" Pordid\n"
-+"Proto Aegub Initseq Delta Prevd Lähtepunkt "
-+"Sihtpunkt Pordid\n"
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
- msgstr "NET/ROM pole antud süsteemis 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 käivitada\n"
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
- msgstr "Palun kasutage pppd'd\n"
-
-@@ -2234,287 +2680,314 @@
- msgstr "Sõlme aadress peab olema kümnekohaline"
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
- msgstr "ROSE pole antud süsteemis 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 lõpetavat koolonit\n"
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
- msgstr "in_tr(%s): sodi lõpus\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). Väljund 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 küsimisel: %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 ületäit:%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 ületäit:%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 "mälu:%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 küsimine ebaõnnestus\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 Bächle <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 Bächle <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 für %s\n"
-+msgstr "Kein ARP-Eintrag für %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: Gerät ,,%s'' hat HW-Adresse %s ,,%s''.\n"
-+msgstr "arp: Gerät »%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: ungültige 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 "(unvollsändig)"
-+msgstr "(unvollständig)"
-
--#: ../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 "<unvollständig> "
-
--#: ../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 "Einträge: %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 Einträgen wurde kein Zutreffender gefunden.\n"
-+msgstr "arp: In %d Einträgen 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 hinzufügen\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 löschen\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 Ausführliche 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 auflösen\n"
-
--#: ../arp.c:625
-+#: ../arp.c:637
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
--msgstr " -i, --device Netzwerksgerät (z.B. eth0) angeben\n"
-+msgstr " -i, --device Netzwerkgerät (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 Gerät 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 Einträge 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 möglicher Hardwaretypen, die ARP unterstützen:\n"
-
--#: ../arp.c:664
-+#: ../arp.c:677 ../arp.c:762
- #, c-format
- msgid "%s: hardware type not supported!\n"
- msgstr "%s: Hardwaretyp nicht unterstützt!\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "%s: Adressfamilie nicht unterstützt!\n"
-
--#: ../arp.c:703
-+#: ../arp.c:716
-+#, c-format
- msgid "arp: -N not yet supported.\n"
- msgstr "arp: -N noch nicht unterstützt.\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 unterstützt nur ,,inet''.\n"
-+msgstr "arp: %s: Kernel unterstützt nur »inet«.\n"
-
--#: ../arp.c:746
-+#: ../arp.c:767
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
- msgstr "arp: %s: Hardware unterstützt 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 "Löse ,,%s'' auf ...\n"
-+msgstr "Löse »%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 für 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 möglich die DNS Domain oder den FQDN (langen Hostnamen)\n"
-+" Dies Kommando setzt oder gibt den Hostnamen oder NIS-Domainnamen aus.\n"
-+" Es ist ebenfalls möglich die DNS-Domain oder den FQDN (langen Hostnamen)\n"
- " ausgeben zu lassen. Außer wenn DNS oder NIS als Namensdienst verwendet\n"
--" wird, können FQDN (Fully Qualified Domain Name) und DNS Domainname (welcher\n"
-+" wird, können FQDN (Fully Qualified Domain Name) und DNS-Domainname (welcher\n"
- " Teil des FQDNs ist) in /etc/hosts geändert 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 geändert werden\n"
-+msgstr "%s: Mit diesem Programm kann der DNS-Domainname nicht geändert 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 Hostnamensauflösung benutzt werden, kann der "
--"DNS\n"
-+"Wenn Bind oder NIS nicht zur Hostnamensauflösung 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 geändert "
--"werden.\n"
-+msgstr "Domainname (welcher Teil des FQDN ist) in der Datei /etc/hosts geändert 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 verfügbar.\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>[/<Präfixlänge>]]\n"
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:205
- #, c-format
--msgid " Bcast:%s "
--msgstr " Bcast:%s "
-+msgid " [del <address>[/<prefixlen>]]\n"
-+msgstr " [del <Adresse>[/<Präfixlänge>]]\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 " Gültigkeitsbereich:"
--
--#: ../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 "Kompatibilität"
--
--#: ../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 <Länge>]\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 möglicher 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 möglichen 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 Träger:%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 "Sendewarteschlangenlänge:%d "
-+msgid "%s: invalid %s address.\n"
-+msgstr "%s: ungültige %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 verfügbar.\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>[/<Prefixlänge>]]\n"
--
--#: ../ifconfig.c:427
--msgid " [del <address>[/<prefixlen>]]\n"
--msgstr " [del <Adresse>[/<Prefixlänge>]]\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 <Länge>]\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 möglicher 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 möglichen 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: ungültige %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 verfügbar.\n"
--
--#: ../ifconfig.c:983
-+#: ../ifconfig.c:885
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
--msgstr "Das Löschen von Adressen ist auf diesem System nicht unterstützt.\n"
-+msgstr "Das Löschen von Adressen wird auf diesem System nicht unterstützt.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "INET ist auf diesem System nicht verfügbar.\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 unterstützt.\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 ""
--"(Für \"-p\": geteuid()=%d konnte keine Information gelesen werden; sie "
--"sollten Root sein.)\n"
-+msgstr "(Für \"-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 "HÖRT"
-
--#: ../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 Gerät Zustand Vr/Vs Send-Q "
--"Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
-+msgstr "Benutzer Ziel Quelle Gerät 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 unterstützte 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 Gerät 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 Domäne "
-+msgstr "Aktive Sockets in der UNIX-Domäne "
-
--#: ../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 RefZäh 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 Gerät 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 verfügbar -"
--
--#: ../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 auflösen\n"
-+
-+#: ../netstat.c:1506
-+#, fuzzy, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n"
-+
-+#: ../netstat.c:1507
-+#, fuzzy, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr " -n, --numeric Adressen nicht nach Namen auflösen\n"
-+
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -N, --symbolic Hardwarenamen auflösen\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 / zusätzliche Informationen "
--"anzeigen\n"
-+msgstr " -e, --extend Weitere / zusätzliche 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 für Sockets anzeigen\n"
-+msgstr " -p, --programs PID/Programmnamen für 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 möglicher Adressfamilien, die Routen unterstützen:\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 RefZäh Grupp\n"
-
--#: ../rarp.c:43
-+#: ../rarp.c:44
- msgid "This kernel does not support RARP.\n"
- msgstr "Dieser Kernel unterstützt kein RARP.\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:83
- #, c-format
- msgid "no RARP entry for %s.\n"
--msgstr "Kein RARP Eintrag für %s.\n"
-+msgstr "Kein RARP-Eintrag für %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 Einträge im Cache listen.\n"
-+msgstr "Benutzung: rarp -a Einträge 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 löschen.\n"
-+msgstr " rarp -d <hostname> Eintrag aus dem Cache löschen.\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 zufügen.\n"
-+msgstr " rarp [<HW>] -s <hostname> <hwaddr> Eintrag zum Cache zufügen.\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:179
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
--msgstr ""
--" rarp -f Einträge aus /etc/ethers "
--"zufügen.\n"
-+msgstr " rarp -f Einträge aus /etc/ethers zufügen.\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 für 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 für AF anzeigen.\n"
-+msgstr " route {-h|--help} [<AF>] Genaue Syntax für 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 SCHLÜSSEL ] [ [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_GERÄt ]\n"
--"\n"
-+msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_GERÄt ]\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 "Schlüssel 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 möglich\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 außer der Reihenfolge fallenlassen.\n"
-
--#: ../iptunnel.c:449
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr " Prüfsumme im empfangenen Paket wird benötigt.\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 " Prüfsumme für 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 ungültigen Headern"
-+#: ../statistics.c:68
-+#, fuzzy, c-format
-+msgid "%u with invalid headers"
-+msgstr "%d mit ungültigen 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 ungültigen 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 nötig"
-
- #. ?
--#: ../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 "Zeitüberschreitung: %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 geöffnet"
-+
-+#: ../statistics.c:123
-+#, fuzzy, c-format
-+msgid "%u passive connection openings"
-+msgstr "%d Verbindungen passiv geöffnet"
-+
-+#: ../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 Verbindungsrücksetzungen 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 Rücksetzungen 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 für 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 ungültige SYN-Cookies empfangen"
-+
-+#: ../statistics.c:148
-+#, fuzzy, c-format
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr "%d Rücksetzungen für 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 Socketpufferüberlauf 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 Pufferüberlauf weggeworfen"
-+
-+#: ../statistics.c:156
-+#, fuzzy, c-format
-+msgid "%u ICMP packets dropped because they were out-of-window"
-+msgstr "%d ICMP-Pakete weggeworfen die außerhalb 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 geöffnet"
-+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 geöffnet"
-+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 Verbindungsrücksetzungen 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 Rücksetzungen 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 für 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 ungültige 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 Rücksetzungen 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 Socketpufferüberlauf 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 Pufferüberlauf 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 Rücksetzungen 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 Socketpufferüberlauf 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 Verbindungsrücksetzungen empfangen"
-+
-+#: ../statistics.c:218
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected data"
-+msgstr "%d Verbindungsrücksetzungen empfangen"
-+
-+#: ../statistics.c:219
-+#, fuzzy, c-format
-+msgid "%u connections reset due to early user close"
-+msgstr "%d Verbindungsrücksetzungen 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 Verbindungsrücksetzungen 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 unterstützt.\n"
-+msgstr "Hardwaretyp »%s« nicht unterstützt.\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): Ungültige ARCnet-Adresse!\n"
-
--#: ../lib/arcnet.c:108
-+#: ../lib/arcnet.c:97
- #, c-format
- msgid "in_arcnet(%s): trailing : ignored!\n"
- msgstr "in_arcnet(%s): angehängt : ignoriert!\n"
-
--#: ../lib/arcnet.c:120
-+#: ../lib/arcnet.c:109
- #, c-format
- msgid "in_arcnet(%s): trailing junk!\n"
- msgstr "in_arcnet(%s): Nachfolgender Müll!\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 unterstützt.\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 Müll!\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): Ungültige 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 Müll!\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 unterstützt.\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 für 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): Ungültige 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 Müll!\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 unterstützte 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 Nächster Hop "
--" Flags Metric Ref Benutzer Iface\n"
-+"Destination Next "
-+"Hop Flags Metric Ref Use Iface\n"
-+msgstr "Ziel Nächster 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) Löschen(sec)\n"
-+msgstr "Nachbar HW-Adresse Iface Flags Ref Zustand Stale(sec) Löschen(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 unterstützt\n"
-
--#: ../lib/inet6_sr.c:182
-+#: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
--msgstr ",,Flush'' für IPv6 Routentabelle nicht unterstützt\n"
-+msgstr "»Flush« für IPv6-Routentabelle nicht unterstützt\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[/Präfix] [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[/Präfix] [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[/Präfix] [metric M] reject\n"
-+msgstr " inet_route [-vF] add {-host|-net} Ziel[/Präfix] [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 unterstützt\n"
-
-@@ -2215,15 +2514,17 @@
- msgstr "route: %s: Netzadresse als Gateway ungültig!\n"
-
- #: ../lib/inet_sr.c:174
--#, fuzzy
-+#, fuzzy, c-format
- msgid "route: Invalid MSS/MTU.\n"
- msgstr "route: Ungültige MSS.\n"
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
- msgstr "route: Ungültige Fenstergröße.\n"
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
- msgstr "route: Ungültige 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 unterstützt\n"
-+msgstr "»Flush« der Inet-Routentabelle nicht unterstützt\n"
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
--msgstr "Änderung des ,,Inet'' Routencaches nicht unterstützt\n"
-+msgstr "Änderung des »Inet« Routencaches nicht unterstützt\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-Maskierungseinträge\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 verfügbar.\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 Qualität 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 verfügbar.\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): ungültige 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 Müll!\n"
-
--#: ../lib/interface.c:124
-+#: ../lib/interface.c:176
- #, c-format
- msgid "warning: no inet socket available: %s\n"
--msgstr "Warnung: Keine INET Sockets verfügbar: %s\n"
-+msgstr "Warnung: Keine INET-Sockets verfügbar: %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 "Gerät 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 verfügbar -"
-+
-+#: ../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 " Gültigkeitsbereich:"
-+
-+#: ../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 "Kompatibilität"
-+
-+#: ../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 Träger:%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 "Sendewarteschlangenlänge:%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 ungültiges INET-Prefix\n"
-+msgstr "ip: %s ist ein ungültiges INET-Präfix\n"
-
- #: ../lib/util-ank.c:248
- #, c-format
- msgid "ip: %s is invalid IPv4 address\n"
--msgstr "ip: %s ist eine ungültige IPv4 Adresse\n"
-+msgstr "ip: %s ist eine ungültige 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 unterstützt.\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: nécessite un nom d'hôte\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'entrée 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 définir l'entrée 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: nécessite une adresse matériel\n"
-
--#: ../arp.c:290
-+#: ../arp.c:301
-+#, c-format
- msgid "arp: invalid hardware address\n"
- msgstr "arp: adresse matériel 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 définir l'entrée 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 "Entrées: %d\tIgnorées: %d\tTrouvées: %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 trouvée dans %d entrées\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] [<hôte>] <-Affiche cache "
--"ARP\n"
-+" arp [-vn] [<MAT>] [-i <if>] [-a] [<hôte>] <-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 <hôte> [pub][nopub] <-Supprime entrée "
--"ARP\n"
-+msgstr " arp [-v] [-i <if>] -d <hôte> [pub][nopub] <-Supprime entrée 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 entrée "
--"depuis fichier\n"
-+msgstr " arp [-vnD] [<MAT>] [-i <if>] -f <fichier> <-Ajout entrée 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 <hôte> <adrmat> [temp][nopub] <-Ajout "
--"entrée\n"
-+msgstr " arp [-v] [<MAT>] [-i <if>] -s <hôte> <adrmat> [temp][nopub] <-Ajout entrée\n"
-
--#: ../arp.c:617
--msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
--"<-''-\n"
--msgstr ""
--" arp [-v] [<MAT>] [-i <if>] -s <hôte> <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 <hôte> <if> [netmask <nm>] pub "
--"<-''-\n"
-+" arp [-v] [<MAT>] [-i <if>] -Ds <hôte> <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 hôtes en style BSD\n"
-+msgstr " -a affiche (tous) les hôtes en style BSD\n"
-
--#: ../arp.c:621
-+#: ../arp.c:633
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
- msgstr " -s, --set définit une nouvelle entrée ARP\n"
-
--#: ../arp.c:622
-+#: ../arp.c:634
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
- msgstr " -d, --delete supprime une entrée\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 résout 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 spécifie l'interface réseau (p.ex. eth0)\n"
-+msgstr " -i, --device spécifie l'interface réseau (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 périphérique\n"
-+msgstr " -D, --use-device lit l'<adrmat> depuis le périphérique\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 entrées 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 spécifier le type d'adresse matériel. Défaut: "
--"%s\n"
-+msgstr " <HW>=Utilisez '-H <hw>' pour spécifier le type d'adresse matériel. Défaut: %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 matériels 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 matétiel non supporté !\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "%s: famille d'adresses non supportée !\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 matériel 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 matériel sans support ARP.\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr "Définit 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 "Définit le nom d'hôte à `%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'hôte\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:109
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr "Définit 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 "Résultat : 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] {hôte|-F fichier} définit le nom d'hôte (depuis "
--"le fichier)\n"
-+msgstr "Syntaxe : hostname [-v] {hôte|-F fichier} définit le nom d'hôte (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} définit le domaine NIS "
--"(depuis le fichier)\n"
-+msgstr " domainname [-v] {domaine_nis|-F fichier} définit 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} Définit le nom de noeud "
--"DECnet (depuis le fichier)\n"
-+msgstr " nodename [-v] {nom_noeud|-F fichier} Définit 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'hôte\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'hôte 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'hôte\n"
-
--#: ../hostname.c:235
-+#: ../hostname.c:234
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr " -f, --fqdn, --long nom d'hôte 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'hôte ou le nom de domaine NIS depuis "
--"le fichier\n"
-+" -F, --file lit le nom d'hôte 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'hôtes, vous pouvez "
--"changer le\n"
-+"Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, 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 système.\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 "Hôte"
-+#: ../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 matériel.\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 matériels 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. Défaut: %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 média 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 Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n"
--
--#: ../ifconfig.c:325
--#, c-format
--msgid " compressed:%lu\n"
--msgstr " compressés:%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 jetés:%lu débordements:%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 "compressés:%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 "Mémoire:%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 système.\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 matériel.\n"
--
--#: ../ifconfig.c:451
--msgid " List of possible hardware types:\n"
--msgstr " Liste des types de matériels possibles:\n"
--
--#. 1 = ARPable
--#: ../ifconfig.c:453
--#, c-format
--msgid " <AF>=Address family. Default: %s\n"
--msgstr " <AF>=famille d'Adresses. Défaut: %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 média 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 système.\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 système.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "Pas de support de INET sur ce système.\n"
-+#: ../ifconfig.c:957
-+#, fuzzy, c-format
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "Ne sait pas comment définir 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 système.\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 définir 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 identifiés, les infos sur les processus\n"
--"non possédés ne seront pas affichées, vous devez être root pour les voir "
--"toutes.)\n"
-+"non possédés ne seront pas affichées, 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 supportée %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 réseau (comme "
--"SNMP)\n"
-+msgstr " -s, --statistics affiche les statistiques réseau (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 masquées\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 résout pas les noms\n"
-+
-+#: ../netstat.c:1506
-+#, fuzzy, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr " -n, --numeric ne résout pas les noms\n"
-+
-+#: ../netstat.c:1507
-+#, fuzzy, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr " -n, --numeric ne résout pas les noms\n"
-+
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -N, --symbolic résoud les noms matériels\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 (défaut: "
--"connectés)\n"
-+msgstr " -a, --all, --listening affiche toutes les prises (défaut: connectés)\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 "
--"(défaut)\n"
-+msgstr " -F, --fib affiche la Forwarding Infomation Base (défaut)\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>' Défaut: %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'entrée RARP pour %s.\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:96
- #, c-format
- msgid "%s: bad hardware address\n"
- msgstr "%s: mauvaise adresse matériel\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: hôte inconnu\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:147
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
- msgstr "rarp: ne peut définir l'entrée 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 entrées en cache.\n"
-+msgstr "Usage: rarp -a liste les entrées 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'entrée du cache.\n"
-+msgstr " rarp -d <hostname> supprime l'entrée 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'entrée au cache.\n"
-+msgstr " rarp [<HW>] -s <hostname> <adrmat> ajoute l'entrée 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 entrées depuis "
--"/etc/ethers.\n"
-+msgstr " rarp -f ajoute les entrées 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 illégales.\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:269
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
- msgstr "rarp: %s: type de matériel 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 détaillée pour l'AF "
--"spécifié.\n"
-+msgstr " route {-h|--help} [<AF>] Utilisation détaillée pour l'AF spécifié.\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>' Défaut: %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'entrée 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 "Réacheminement 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 défaut 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 reçus"
-
--#: ../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-tête 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 réacheminées"
-
--#: ../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 jetés"
-
--#: ../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 délivrés"
-
--#: ../statistics.c:72
--#, c-format
--msgid "%d requests sent out"
-+#: ../statistics.c:74
-+#, fuzzy, c-format
-+msgid "%u requests sent out"
- msgstr "%d requêtes envoyées"
-
- #. ?
--#: ../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 jetés"
-
--#: ../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 jetés 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 jetés après timeout"
-
--#: ../statistics.c:76
--#, c-format
--msgid "%d reassemblies required"
-+#: ../statistics.c:78
-+#, fuzzy, c-format
-+msgid "%u reassemblies required"
- msgstr "%d nécessitant un réassemblage"
-
- #. ?
--#: ../statistics.c:77
--#, c-format
--msgid "%d packets reassembled ok"
-+#: ../statistics.c:79
-+#, fuzzy, c-format
-+msgid "%u packets reassembled ok"
- msgstr "%d paquets réassemblés 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 réassemblés"
-
--#: ../statistics.c:79
--#, c-format
--msgid "%d fragments received ok"
-+#: ../statistics.c:81
-+#, fuzzy, c-format
-+msgid "%u fragments received ok"
- msgstr "%d fragments reçus 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 créés"
-
--#: ../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 reçus"
-
--#: ../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'entrée 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 paramètre: %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 "requêtes 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 "réponses echo: %d"
-
--#: ../statistics.c:95
--#, c-format
--msgid "timestamp request: %d"
-+#: ../statistics.c:97
-+#, fuzzy, c-format
-+msgid "timestamp request: %u"
- msgstr "requêtes datées: %d"
-
--#: ../statistics.c:96
--#, c-format
--msgid "timestamp reply: %d"
-+#: ../statistics.c:98
-+#, fuzzy, c-format
-+msgid "timestamp reply: %u"
- msgstr "réponses datées: %d"
-
--#: ../statistics.c:97
--#, c-format
--msgid "address mask request: %d"
-+#: ../statistics.c:99
-+#, fuzzy, c-format
-+msgid "address mask request: %u"
- msgstr "requêtes de masque d'adresse: %d"
-
- #. ?
--#: ../statistics.c:98
--msgid "address mask replies"
--msgstr "réponses de masque d'adresses"
-+#: ../statistics.c:100 ../statistics.c:113
-+#, fuzzy, c-format
-+msgid "address mask replies: %u"
-+msgstr "réponses 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 envoyés"
-
--#: ../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 dépassé: %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 "requête echo: %d"
-
--#: ../statistics.c:108
--#, c-format
--msgid "timestamp requests: %d"
-+#: ../statistics.c:110
-+#, fuzzy, c-format
-+msgid "timestamp requests: %u"
- msgstr "requêtes datées: %d"
-
--#: ../statistics.c:109
--#, c-format
--msgid "timestamp replies: %d"
-+#: ../statistics.c:111
-+#, fuzzy, c-format
-+msgid "timestamp replies: %u"
- msgstr "réponses datées: %d"
-
--#: ../statistics.c:110
--#, c-format
--msgid "address mask requests: %d"
-+#: ../statistics.c:112
-+#, fuzzy, c-format
-+msgid "address mask requests: %u"
- msgstr "requêtes de masque d'adresse: %d"
-
--#: ../statistics.c:111
--#, c-format
--msgid "address mask replies: %d"
--msgstr "réponses 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 échouées"
-
--#: ../statistics.c:123
--#, c-format
--msgid "%d connection resets received"
-+#: ../statistics.c:125
-+#, fuzzy, c-format
-+msgid "%u connection resets received"
- msgstr "%d réinitialisations de connexions reçues"
-
--#: ../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 reçus"
-
--#: ../statistics.c:126
--#, c-format
--msgid "%d segments send out"
-+#: ../statistics.c:128
-+#, fuzzy, c-format
-+msgid "%u segments send out"
- msgstr "%d segments envoyés"
-
--#: ../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 reçus."
-
--#: ../statistics.c:129
--#, c-format
--msgid "%d resets sent"
-+#: ../statistics.c:131
-+#, fuzzy, c-format
-+msgid "%u resets sent"
- msgstr "%d réinitialisations envoyées"
-
--#: ../statistics.c:134
--#, c-format
--msgid "%d packets received"
-+#: ../statistics.c:136
-+#, fuzzy, c-format
-+msgid "%u packets received"
- msgstr "%d paquets reçus"
-
--#: ../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 reçus 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 réception de paquets"
-
--#: ../statistics.c:137
-+#: ../statistics.c:139
-+#, fuzzy, c-format
-+msgid "%u packets sent"
-+msgstr "%d paquets envoyés"
-+
-+#: ../statistics.c:144
-+#, fuzzy, c-format
-+msgid "%u SYN cookies sent"
-+msgstr "%d SYN-Cookies reçus"
-+
-+#: ../statistics.c:145
-+#, fuzzy, c-format
-+msgid "%u SYN cookies received"
-+msgstr "%d SYN-Cookies reçus"
-+
-+#: ../statistics.c:146
-+#, fuzzy, c-format
-+msgid "%u invalid SYN cookies received"
-+msgstr "%d SYN-Cookies reçus incorrects"
-+
-+#: ../statistics.c:148
-+#, fuzzy, c-format
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr "%d réinitialisations reçues 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 supprimés de la file de réception 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 supprimés 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 jetés 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 jetés car hors de la fenêtre"
-+
-+#: ../statistics.c:158
-+#, fuzzy, c-format
-+msgid "%u ICMP packets dropped because socket was locked"
-+msgstr "%d paquets ICMP jetés car la socket a été vérouillée"
-+
-+#: ../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 envoyés"
-
--#: ../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 reçus"
-+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 reçus 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 réinitialisations reçues 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 supprimés de la file de réception 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 supprimés de la file hors service"
-
--#: ../statistics.c:152
-+#: ../statistics.c:183
-+#, fuzzy, c-format
-+msgid "%u packet headers predicted"
-+msgstr "%d paquets reçus"
-+
-+#: ../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 jetés 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 jetés car hors de la fenêtre"
-+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 reçus pour un port inconnu"
-+
-+#: ../statistics.c:189
- #, c-format
--msgid "%d ICMP packets dropped because socket was locked"
--msgstr "%d paquets ICMP jetés car la socket a été vérouillée"
-+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 reçus."
-+
-+#: ../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 réinitialisations envoyées"
-+
-+#: ../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 réassemblés"
-+
-+#: ../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 supprimés de la file de réception 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 reçus"
-+
-+#: ../statistics.c:216
-+#, fuzzy, c-format
-+msgid "%u DSACKs for out of order packets received"
-+msgstr "%d paquets totaux reçus"
-+
-+#: ../statistics.c:217
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected SYN"
-+msgstr "%d réinitialisations de connexions reçues"
-+
-+#: ../statistics.c:218
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected data"
-+msgstr "%d réinitialisations de connexions reçues"
-+
-+#: ../statistics.c:219
-+#, fuzzy, c-format
-+msgid "%u connections reset due to early user close"
-+msgstr "%d réinitialisations de connexions reçues"
-+
-+#: ../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 réinitialisations de connexions reçues"
-
- #: ../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 "activée"
-
--#: ../statistics.c:222
-+#: ../statistics.c:292
- msgid "disabled"
- msgstr "désactivée"
-
--#: ../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 malformée"
-
-+#: ../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 système.\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 supportée.\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 série"
-
--#: ../lib/hw.c:151
-+#: ../lib/hw.c:164
- msgid "VJ Serial Line IP"
- msgstr "IP ligne série - VJ "
-
--#: ../lib/hw.c:152
-+#: ../lib/hw.c:165
- msgid "6-bit Serial Line IP"
- msgstr "IP ligne série - 6 bits"
-
--#: ../lib/hw.c:153
-+#: ../lib/hw.c:166
- msgid "VJ 6-bit Serial Line IP"
- msgstr "IP ligne série - 6 bits VJ"
-
--#: ../lib/hw.c:154
-+#: ../lib/hw.c:167
- msgid "Adaptive Serial Line IP"
- msgstr "IP ligne série 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 "Périphériue d'accès 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 suportée %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 système.\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) Détuit(sec)\n"
-+msgstr "Voisin Adresse MAT Iface Indic Ref Etat Bloqué(sec) Détuit(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 système.\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 Fenêtre irtt "
--"Iface\n"
-+msgstr "Destination Passerelle Genmask Indic MSS Fenêtre 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 Fenêtre irtt\n"
-+msgstr "Destination Passerelle Genmask Indic Metric Ref Use Iface MSS Fenêtre 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 Fenêtre irtt "
--"Iface\n"
-+msgstr "Source Destination Passerelle Indic MSS Fenêtre 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 Fenêtre irtt HH Arp\n"
-+msgstr "Source Destination Passerelle Indic Metric Ref Use Iface MSS Fenêtre 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 Fenêtre irtt TOS HHRef HHUptod SpecDst\n"
-+msgstr "Source Destination Passerelle Flags Metric Ref Use Iface MSS Fenêtre 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: fenêtre 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 système.\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 Réseau 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 "Entrées 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 système.\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 démarrer PPP avec ce programme.\n"
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
- msgstr "Désolé, 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 système.\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 "Périphérique 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 "Hôte"
-+
-+#: ../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 Reçus:%lu erreurs:%lu jetés:%lu débordements:%lu trames:%lu\n"
-+
-+#: ../lib/interface.c:855
-+#, c-format
-+msgid " compressed:%lu\n"
-+msgstr " compressés:%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 jetés:%lu débordements:%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 "compressés:%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 "Mémoire:%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 trouvée.\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 créer 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 définir le nom d'hôte 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 <hôte> <adrmat> [netmask <nm>] pub <-''-\n"
-+
-+#~ msgid "%s: unknown interface: %s\n"
-+#~ msgstr "%s: interface inconnue: %s\n"
-+
-+#~ msgid "address mask replies"
-+#~ msgstr "réponses 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 définir le nom d'hôte 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'hôtes, vous "
--#~ "pouvez changer le\n"
-+#~ msgstr " Sauf si vous utilisez bind ou NIS pour les recherches d'hôtes, 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 tøeba jméno poèítaèe\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 polo¾ka\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: zaøízení `%s' má Hw adresu %s `%s'.\n"
-
--#: ../arp.c:282
-+#: ../arp.c:293
-+#, c-format
- msgid "arp: need hardware address\n"
- msgstr "arp: je tøeba hardwarová adresa\n"
-
--#: ../arp.c:290
-+#: ../arp.c:301
-+#, c-format
- msgid "arp: invalid hardware address\n"
- msgstr "arp: nesprávná hardwarová adresa\n"
-
--#: ../arp.c:387
-+#: ../arp.c:398
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr "arp: databázi ethernetových adres %s nelze otevøít!\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 databáze ethernetových 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: polo¾ku na øádku %u databáze ethernetových 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 Pøíz 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 "sí»ová 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 "Polo¾ky: %d\tVynecháno: %d\tNalezeno: %d\n"
-
--#: ../arp.c:596
-+#: ../arp.c:609
- #, c-format
- msgid "%s (%s) -- no entry\n"
- msgstr "%s (%s) -- ¾ádná polo¾ka\n"
-
--#: ../arp.c:598
-+#: ../arp.c:611
- #, c-format
- msgid "arp: in %d entries no match found.\n"
- msgstr "arp: ¾ádná z polo¾ek (%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] [<poèítaè>] <-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 <poèítaè> [pub][nopub] <-Sma¾e polo¾ku "
- "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> <-Pøidá polo¾ku "
- "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 <poèítaè> <hwadr> [temp][nopub] <-Pøidá "
- "polo¾ku\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> [sí»mask <èí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 <poèítaè> <if> [sí»mask <èí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 v¹ech poèítaèù alternativním\n"
- " (BSD) zpùsobem\n"
-
--#: ../arp.c:621
-+#: ../arp.c:633
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
- msgstr " -s, --set nastaví novou ARP polo¾ku\n"
-
--#: ../arp.c:622
-+#: ../arp.c:634
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
- msgstr " -d, --delete sma¾e zadanou ARP polo¾ku\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é zprávy\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 pøevádìt èíselné adresy\n"
- " na kanonická jména\n"
-
--#: ../arp.c:625
-+#: ../arp.c:637
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
- msgstr " -i, --device zadává sí»ové 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 zadaného zaøízení\n"
-
--#: ../arp.c:627
--#, fuzzy
-+#: ../arp.c:639
-+#, fuzzy, c-format
- msgid " -A, -p, --protocol specify protocol family\n"
- msgstr " -r, --route vypí¹e smìrovací 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é polo¾ky 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>=Pou¾ijte '-H <hw> pro zadání hardwarového 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 mo¾ných hardwarových typù (podporujících 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í podporován!\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "tøída adres %s není podporována!\n"
-
--#: ../arp.c:703
-+#: ../arp.c:716
-+#, c-format
- msgid "arp: -N not yet supported.\n"
- msgstr "arp: pøepínaè -N není zatím podporován\n"
-
--#: ../arp.c:713
-+#: ../arp.c:726
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr "arp: neznámá tøída adres %s.\n"
-
--#: ../arp.c:722
-+#: ../arp.c:735
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
- msgstr "arp: neznámý hardwarový typ %s.\n"
-
--#: ../arp.c:741
-+#: ../arp.c:754
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
- msgstr "arp: %s: jádro 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 jméno 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: jméno uzlu mù¾e zmìnit pouze superu¾ivatel\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 "jméno %s je pøíli¹ dlouhé\n"
-
--#: ../hostname.c:89
-+#: ../hostname.c:91
- #, c-format
- msgid "Setting hostname to `%s'\n"
- msgstr "Nastavuji jméno poèítaèe 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: jméno poèítaèe mù¾e zmìnit pouze superu¾ivatel\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:109
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr "Nastavuji jméno domény 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: jméno domény mù¾e zmìnit pouze superu¾ivatel\n"
-@@ -306,26 +326,29 @@
- msgid "Result: h_addr_list=`%s'\n"
- msgstr "Výsledek: h_addr_list=`%s'\n"
-
--#: ../hostname.c:209
-+#: ../hostname.c:208
- #, c-format
- msgid "%s: can't open `%s'\n"
- msgstr "%s: `%s' nelze otevøít\n"
-
--#: ../hostname.c:223
-+#: ../hostname.c:222
-+#, c-format
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
- "Pou¾ití:\n"
- " hostname [-v] {jméno|-F soubor} nastaví jméno poèítaèe (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] {jméno|-F soubor} nastaví jméno NIS domény (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] {jméno|-F soubor} nastaví jméno 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] vypí¹e formátované jméno\n"
-
--#: ../hostname.c:229
-+#: ../hostname.c:228
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
-@@ -345,7 +370,8 @@
- " hostname [-v] vypí¹e jméno poèítaèe\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 vypí¹e 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 krátké jméno poèítaèe\n"
-
--#: ../hostname.c:233
-+#: ../hostname.c:232
-+#, c-format
- msgid " -a, --alias alias names\n"
- msgstr " -a, --alias pøezdívky\n"
-
--#: ../hostname.c:234
-+#: ../hostname.c:233
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr " -i, --ip-address adresy odpovídající jménu poèítaèe\n"
-
--#: ../hostname.c:235
-+#: ../hostname.c:234
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr " -f, --fqdn, --long dlouhé jméno poèítaèe (kanonické)\n"
-
--#: ../hostname.c:236
-+#: ../hostname.c:235
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
- msgstr " -d, --domain jméno DNS domény\n"
-
--#: ../hostname.c:237
-+#: ../hostname.c:236
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr " -y, --yp, --nis jméno NIS/YP domény\n"
-
--#: ../hostname.c:239
-+#: ../hostname.c:238
-+#, c-format
- msgid " -n, --node DECnet node name\n"
- msgstr " -n, --node jméno 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 jméno poèítaèe èi nis domény 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: Tímto pøíkazem nelze DNS jméno domény zmìnit\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 @@
- "zmìnit\n"
-
- #: ../hostname.c:340
-+#, c-format
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
- "DNS jméno domény (je souèástí kanonického jména poèítaèe) 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 Zapouzdøení:%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Ø-PØT OD-OK OD-CHYB OD-ZAH OD-PØT "
-+"PØZ\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 pøi získávání 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 "Médium:%s"
-+msgid "No support for INET on this system.\n"
-+msgstr "Tento systém 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 pøi získávání 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 ""
-+"Pou¾ití:\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>[/<délka prefixu>]]\n"
-
--# V ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání.
--# Tudi¾ bcast -> V¹esmìr :)
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:205
- #, c-format
--msgid " Bcast:%s "
--msgstr " V¹esmìr:%s "
-+msgid " [del <address>[/<prefixlen>]]\n"
-+msgstr " [del <adresa>[/<délka 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 "Globál"
-+#: ../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 "Stanovi¹tì"
-+#: ../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 "Poèítaè"
-+#: ../ifconfig.c:217
-+#, c-format
-+msgid " [txqueuelen <NN>]\n"
-+msgstr " [txqueuelen délka]\n"
-
--#: ../ifconfig.c:221
--msgid "Unknown"
--msgstr "Neznám."
-+#: ../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 mo¾ných hardwarových 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>=tøída 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 mo¾ných tøíd 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É PØÍZNAKY]"
-+#: ../ifconfig.c:305 ../ifconfig.c:962
-+#, c-format
-+msgid "ifconfig: `--help' gives usage information.\n"
-+msgstr ""
-
--#: ../ifconfig.c:272
--msgid "UP "
--msgstr "AKTIVOVÁNO "
-+#: ../ifconfig.c:380
-+#, c-format
-+msgid "Unknown media type.\n"
-+msgstr "Neznámý typ média.\n"
-
--#: ../ifconfig.c:274
--msgid "BROADCAST "
--msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ "
-+#: ../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 "SMYÈKA "
-+#: ../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 nesprávná.\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 systém 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 nesprávná.\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 "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n"
--
--#: ../ifconfig.c:325
--#, c-format
--msgid " compressed:%lu\n"
--msgstr " komprimováno:%lu\n"
--
--# carrier?
--#: ../ifconfig.c:329
--#, c-format
--msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
--msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n"
--
--#: ../ifconfig.c:333
--#, c-format
--msgid " collisions:%lu "
--msgstr " kolizí:%lu "
--
--#: ../ifconfig.c:335
--#, c-format
--msgid "compressed:%lu "
--msgstr "komprimováno:%lu "
--
--#: ../ifconfig.c:337
--#, c-format
--msgid "txqueuelen:%d "
--msgstr "délka odchozí fronty:%d "
--
--#: ../ifconfig.c:345
--#, c-format
--msgid "Interrupt:%d "
--msgstr "Pøeru¹ení:%d "
--
--#. Only print devices using it for
--#. I/O maps
--#: ../ifconfig.c:348
--#, c-format
--msgid "Base address:0x%x "
--msgstr "Vstupnì/Výstupní 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 "Kanál DMA:%x "
--
--#: ../ifconfig.c:384 ../ifconfig.c:405
--#, c-format
--msgid "%s: unknown interface: %s\n"
--msgstr "%s: rozhraní %s není známo\n"
--
--#: ../ifconfig.c:421
--msgid ""
--"Usage:\n"
--" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
--msgstr ""
--"Pou¾ití:\n"
--" ifconfig [-a] [-i] [-v] <rozhraní> [[<AF>] <adresa>]\n"
--
--#: ../ifconfig.c:425
--msgid " [add <address>[/<prefixlen>]]\n"
--msgstr " [add <adresa>[/<délka prefixu>]]\n"
--
--#: ../ifconfig.c:427
--msgid " [del <address>[/<prefixlen>]]\n"
--msgstr " [del <adresa>[/<délka 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 délka]\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 mo¾ných hardwarových typù:\n"
--
--#. 1 = ARPable
--#: ../ifconfig.c:453
--#, c-format
--msgid " <AF>=Address family. Default: %s\n"
--msgstr " <AF>=tøída adres. Implicitní: %s\n"
--
--#: ../ifconfig.c:454
--msgid " List of possible address families:\n"
--msgstr " Seznam mo¾ných tøíd adres:\n"
--
--#: ../ifconfig.c:593
--msgid "Unknown media type.\n"
--msgstr "Neznámý typ média.\n"
--
--#: ../ifconfig.c:881
-+#: ../ifconfig.c:885
- #, c-format
--msgid "%s: invalid %s address.\n"
--msgstr "%s: adresa %s je nesprávná.\n"
--
--#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
--msgid "No support for INET6 on this system.\n"
--msgstr "Tento systém nepodporuje INET6.\n"
--
--#: ../ifconfig.c:983
- msgid "Address deletion not supported on this system.\n"
- msgstr "Tento systém nepodporuje mazání adres.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "Tento systém nepodporuje INET.\n"
-+#: ../ifconfig.c:957
-+#, fuzzy, c-format
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "Nevím, jak nastavit adresu tøídy %d.\n"
-
--#: ../ifconfig.c:1076
-+#: ../ifconfig.c:983
-+#, c-format
- msgid "No support for ECONET on this system.\n"
- msgstr "Tento systém nepodporuje ECONET.\n"
-
--#: ../ifconfig.c:1084
-+#: ../ifconfig.c:991
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
- msgstr "Nevím, jak nastavit adresu tøídy %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 superu¾ivatelem)\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 vlastníkem. Aby jste mohl vidìt v¹e, musel\n"
- "byste být superu¾ivatelem.)\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 ODESLÁN"
-
--#: ../netstat.c:396 ../netstat.c:1168
-+#: ../netstat.c:447 ../netstat.c:1268
- msgid "DISC SENT"
- msgstr "DISC ODESLÁN"
-
--#: ../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 ""
--"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F "
--"Pøích-F\n"
-+"U¾ivatel Cíl Zdroj Zaøízení Stav Vr/Vs Odch-F Pøích-"
-+"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 pøi ètení dat z %s\n"
-
- # následující radìji ponechat v originále ?!
--#: ../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 "ZAVØEN"
-
--#: ../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 "ZAVíRÁ"
-
--#: ../netstat.c:544
-+#: ../netstat.c:596
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
- msgstr "varování, 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: tøída adres %d není podporována !\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 "varování, 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 "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n"
-+
-+#: ../netstat.c:759
-+#, c-format
- msgid "warning, got bogus tcp line.\n"
- msgstr "varování, 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 "varování, 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 "NEZNÁM"
-
--#: ../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 "varování, nesmyslný 'raw' øádek.\n"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1128
-+#, c-format
- msgid "warning, got bogus unix line.\n"
- msgstr "varování, 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 "NEALOKOVÁN"
-
--#: ../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 domény UNIX "
-
--#: ../netstat.c:1137 ../netstat.c:1666
-+#: ../netstat.c:1237 ../netstat.c:1756
-+#, c-format
- msgid "(servers and established)"
- msgstr "(servery a navázaná 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è Pøíznaky 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 ODESLÁN"
-
--#: ../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 "Cíl Zdroj Zaøíz Stav Vr/Vs Odhod-F Pøích-F\n"
-
--#: ../netstat.c:1228
-+#: ../netstat.c:1328
- #, c-format
- msgid "problem reading data from %s\n"
- msgstr "chyba pøi è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 Pøích-F Odch-F Lokál adresa Vzdálená adresa "
--" Stav"
-+"Proto Pøích-F Odch-F Lokál adresa Vzdálená "
-+"adresa Stav"
-
--#: ../netstat.c:1281
-+#: ../netstat.c:1381
-+#, c-format
- msgid " User"
- msgstr " U¾ivatel"
-
--#: ../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É PØÍZNAKY]"
--
--#: ../netstat.c:1400
-+#: ../netstat.c:1461
-+#, c-format
- msgid "Kernel Interface table\n"
- msgstr "Tabulka rozhraní v jádru\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Ø-PØT OD-OK OD-CHYB OD-ZAH OD-PØT "
- "PØZ\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 ""
--"Pou¾ití: netstat [--veenNcCF] [<TA>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"Pou¾ití: 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 vypí¹e smìrovací tabulku\n"
-
--#: ../netstat.c:1430
-+#: ../netstat.c:1497
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
- msgstr " -i, --interfaces vypí¹e tabulku rozhraní\n"
-
--#: ../netstat.c:1431
-+#: ../netstat.c:1498
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr ""
- " -g, --groups vypí¹e èlenství v multicast skupinách\n"
-
--#: ../netstat.c:1432
-+#: ../netstat.c:1499
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
- " -s, --statistics vypí¹e statistiku sí»ové 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 vypí¹e 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 pøevádìt èíselné adresy\n"
-+" na kanonická jména\n"
-+
-+#: ../netstat.c:1506
-+#, fuzzy, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr ""
-+" -n, --numeric nebude pøevádìt èíselné adresy\n"
-+" na kanonická jména\n"
-+
-+#: ../netstat.c:1507
-+#, fuzzy, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr ""
-+" -n, --numeric nebude pøevádìt èíselné adresy\n"
-+" na kanonická jména\n"
-+
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -N, --symbolic pøevede hw jména\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 vypí¹e podrobnìj¹í informace\n"
-
--#: ../netstat.c:1440
-+#: ../netstat.c:1510
-+#, c-format
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
- " -p, --programs vypí¹e PID/jméno 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 nepøeru¹ovaný výpis\n"
- "\n"
-
--#: ../netstat.c:1442
-+#: ../netstat.c:1512
-+#, c-format
- msgid " -l, --listening display listening server sockets\n"
- msgstr ""
- " -l, --listening vypí¹e sokety, na nich¾ je nasloucháno\n"
-
--#: ../netstat.c:1443
-+#: ../netstat.c:1513
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
- " -a, --all, --listening vypí¹e v¹echny sokety (implicitnì: "
- "spojené)\n"
-
--#: ../netstat.c:1444
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -o, --timers display timers\n"
- msgstr " -o, --timers zobrazí èasovaèe\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 místo FIB zobrazí smìrovací 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>=Pou¾ijte '-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 mo¾ných tøíd adres (podporujících smìrování):\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 Pøích-F Odch-F Místní Adresa Vzdálená Adresa Stav "
-
--#: ../netstat.c:1675
-+#: ../netstat.c:1765
-+#, c-format
- msgid " User Inode "
- msgstr " U¾ivatel 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 skupinách\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 jádro nepodporuje RARP.\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:83
- #, c-format
- msgid "no RARP entry for %s.\n"
- msgstr "pro %s neexistuje RARP polo¾ka.\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:96
- #, c-format
- msgid "%s: bad hardware address\n"
- msgstr "hardwarová adresa %s je nesprávná\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:128
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
- msgstr "rarp: soubor %s:%s nelze otevøít.\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: poèítaè %s není znám\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:147
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
- msgstr "rarp: nelze nastavit polo¾ku 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 "Pou¾ití: rarp -a vypí¹e polo¾ky z cache.\n"
-
--#: ../rarp.c:176
-+#: ../rarp.c:177
-+#, c-format
- msgid " rarp -d <hostname> delete entry from cache.\n"
- msgstr " rarp -d <jméno> sma¾e polo¾ku 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 <jméno> <hwadr> pøidá polo¾ku do cache.\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:179
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
- " rarp -f pøidá polo¾ky 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 pøepínaèù %s je nesprávná.\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:269
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
- msgstr "rarp: hardwarový typ %s není znám.\n"
-
--#: ../route.c:79
-+#: ../route.c:80
-+#, c-format
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
- "Pou¾ití: route [-nNvee] [-FC] [<AF>] Zobrazí smìrovací tabulky v "
- "jádru\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>] Nápovìda pro pou¾ití 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} Vypí¹e oznaèení verze a autora\n"
- " programu.\n"
-
-+#: ../route.c:92
-+#, fuzzy, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=Pou¾ijte '-A <af>' or '--<af>' Implicitní: %s\n"
-+
- #: ../plipconfig.c:66
-+#, c-format
- msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
- msgstr "Pou¾ití: 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 "Pou¾ití: iptunnel { add | change | del | show } [ JMÉNO ]\n"
-
--#: ../iptunnel.c:80
-+#: ../iptunnel.c:86
-+#, c-format
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
- " [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní 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 ZAØÍZENÍ ]\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: JMÉNO := ØETÌZEC\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 klíèe povoleny.\n"
-
--#: ../iptunnel.c:346
-+#: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr "Tunel se v¹esmìrovým vysíláním vy¾aduje 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 navzájem vyluèují\n"
-
--#: ../iptunnel.c:373
-+#: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr "re¾im 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 vzdálený %s místní %s "
-
--#: ../iptunnel.c:415
-+#: ../iptunnel.c:421
- msgid "unknown"
- msgstr "Neznám."
-
--#: ../iptunnel.c:447
-+#: ../iptunnel.c:453
-+#, c-format
- msgid " Drop packets out of sequence.\n"
- msgstr " Zahazuje pakety mimo poøadí.\n"
-
--#: ../iptunnel.c:449
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr " Pøijímané pakety musí mít kontrolní souèet.\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 mít kontrolní souèet.\n"
-
--#: ../iptunnel.c:481
-+#: ../iptunnel.c:487
-+#, c-format
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
- msgstr "Lituji, formát /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 nepodaøilo 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 výstupu:"
-
--#: ../statistics.c:63
-+#: ../statistics.c:65
- #, c-format
- msgid "Forwarding is %s"
- msgstr "Pøedávání 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 pøijmutých 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 nesprávnými hlavièkami: %d"
-
--#: ../statistics.c:67
--#, c-format
--msgid "%d with invalid addresses"
-+#: ../statistics.c:69
-+#, fuzzy, c-format
-+msgid "%u with invalid addresses"
- msgstr "s nesprávnými adresami: %d"
-
--#: ../statistics.c:68
--#, c-format
--msgid "%d forwarded"
-+#: ../statistics.c:70
-+#, fuzzy, c-format
-+msgid "%u forwarded"
- msgstr "pøedáno: %d"
-
--#: ../statistics.c:69
--#, c-format
--msgid "%d with unknown protocol"
-+#: ../statistics.c:71
-+#, fuzzy, c-format
-+msgid "%u with unknown protocol"
- msgstr "s neznámým protokolem: %d"
-
--#: ../statistics.c:70
--#, c-format
--msgid "%d incoming packets discarded"
-+#: ../statistics.c:72
-+#, fuzzy, c-format
-+msgid "%u incoming packets discarded"
- msgstr "poèet zahozených pøíchozích paketù: %d"
-
--#: ../statistics.c:71
--#, c-format
--msgid "%d incoming packets delivered"
-+#: ../statistics.c:73
-+#, fuzzy, c-format
-+msgid "%u incoming packets delivered"
- msgstr "poèet doruèených pøíchozích paketù: %d"
-
--#: ../statistics.c:72
--#, c-format
--msgid "%d requests sent out"
-+#: ../statistics.c:74
-+#, fuzzy, c-format
-+msgid "%u requests sent out"
- msgstr "poèet odeslaných po¾adavkù: %d"
-
- #. ?
--#: ../statistics.c:73
--#, c-format
--msgid "%d outgoing packets dropped"
-+#: ../statistics.c:75
-+#, fuzzy, c-format
-+msgid "%u outgoing packets dropped"
- msgstr "poèet zahozených odchozích 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 kvùli chybìjící 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 "poèet fragmentù zahozených po vypr¹ení èasu: %d"
-
--#: ../statistics.c:76
--#, c-format
--msgid "%d reassemblies required"
-+#: ../statistics.c:78
-+#, fuzzy, c-format
-+msgid "%u reassemblies required"
- msgstr "poèet nutných znovusestavení: %d"
-
- #. ?
--#: ../statistics.c:77
--#, c-format
--msgid "%d packets reassembled ok"
-+#: ../statistics.c:79
-+#, fuzzy, c-format
-+msgid "%u packets reassembled ok"
- msgstr "poèet v poøádku znovu sestavených paketù: %d"
-
--#: ../statistics.c:78
--#, c-format
--msgid "%d packet reassembles failed"
-+#: ../statistics.c:80
-+#, fuzzy, c-format
-+msgid "%u packet reassembles failed"
- msgstr "poèet paketù, je¾ se nepodaøilo 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 "poèet v poøádku pøijmutých fragmentù: %d"
-
--#: ../statistics.c:80
--#, c-format
--msgid "%d fragments failed"
-+#: ../statistics.c:82
-+#, fuzzy, c-format
-+msgid "%u fragments failed"
- msgstr "poèet chybných fragmentù: %d"
-
--#: ../statistics.c:81
--#, c-format
--msgid "%d fragments created"
-+#: ../statistics.c:83
-+#, fuzzy, c-format
-+msgid "%u fragments created"
- msgstr "poèet vytvoøených fragmentù: %d"
-
--#: ../statistics.c:86
--#, c-format
--msgid "%d ICMP messages received"
-+#: ../statistics.c:88
-+#, fuzzy, c-format
-+msgid "%u ICMP messages received"
- msgstr "poèet pøijmutých ICMP zpráv: %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 "poèet chybných pøíchozích ICMP zpráv: %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 "adresát nedostupný: %d"
-
--#: ../statistics.c:89
--#, c-format
--msgid "timeout in transit: %d"
-+#: ../statistics.c:91
-+#, fuzzy, c-format
-+msgid "timeout in transit: %u"
- msgstr "vypr¹el èas pøi pøenosu: %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 "zmìna 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 podsítì: %d"
-
- #. ?
--#: ../statistics.c:98
--msgid "address mask replies"
--msgstr "odpovìdi na ¾ádost o masku podsítì"
-+#: ../statistics.c:100 ../statistics.c:113
-+#, fuzzy, c-format
-+msgid "address mask replies: %u"
-+msgstr "odpovìï na ¾ádost o masku podsítì: %d"
-
- #. ?
--#: ../statistics.c:99
--#, c-format
--msgid "%d ICMP messages sent"
-+#: ../statistics.c:101
-+#, fuzzy, c-format
-+msgid "%u ICMP messages sent"
- msgstr "poèet odeslaných ICMP zpráv: %d"
-
--#: ../statistics.c:100
--#, c-format
--msgid "%d ICMP messages failed"
-+#: ../statistics.c:102
-+#, fuzzy, c-format
-+msgid "%u ICMP messages failed"
- msgstr "poèet chybných ICMP zpráv: %d"
-
--#: ../statistics.c:102
--#, c-format
--msgid "time exceeded: %d"
-+#: ../statistics.c:104
-+#, fuzzy, c-format
-+msgid "time exceeded: %u"
- msgstr "vypr¹ení ¾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 "zmìna 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 podsítì: %d"
-
--#: ../statistics.c:111
--#, c-format
--msgid "address mask replies: %d"
--msgstr "odpovìï na ¾ádost o masku podsítì: %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 "poèet aktivnì navázaných spojení: %d"
-
--#: ../statistics.c:121
--#, c-format
--msgid "%d passive connection openings"
-+#: ../statistics.c:123
-+#, fuzzy, c-format
-+msgid "%u passive connection openings"
- msgstr "poèet pasivnì navázaných spojení: %d"
-
--#: ../statistics.c:122
--#, c-format
--msgid "%d failed connection attempts"
-+#: ../statistics.c:124
-+#, fuzzy, c-format
-+msgid "%u failed connection attempts"
- msgstr "poèet neúspì¹ných 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 "poèet pøijmutých resetù: %d"
-
--#: ../statistics.c:124
--#, c-format
--msgid "%d connections established"
-+#: ../statistics.c:126
-+#, fuzzy, c-format
-+msgid "%u connections established"
- msgstr "poèet navázaných spojení: %d"
-
--#: ../statistics.c:125
--#, c-format
--msgid "%d segments received"
-+#: ../statistics.c:127
-+#, fuzzy, c-format
-+msgid "%u segments received"
- msgstr "poèet pøijmutých segmentù: %d"
-
--#: ../statistics.c:126
--#, c-format
--msgid "%d segments send out"
-+#: ../statistics.c:128
-+#, fuzzy, c-format
-+msgid "%u segments send out"
- msgstr "poèet odeslaných segmentù: %d"
-
--#: ../statistics.c:127
--#, c-format
--msgid "%d segments retransmited"
-+#: ../statistics.c:129
-+#, fuzzy, c-format
-+msgid "%u segments retransmited"
- msgstr "poèet pøenesených segmentù: %d"
-
--#: ../statistics.c:128
--#, c-format
--msgid "%d bad segments received."
-+#: ../statistics.c:130
-+#, fuzzy, c-format
-+msgid "%u bad segments received."
- msgstr "poèet chybných pøíchozích segmentù: %d."
-
--#: ../statistics.c:129
--#, c-format
--msgid "%d resets sent"
-+#: ../statistics.c:131
-+#, fuzzy, c-format
-+msgid "%u resets sent"
- msgstr "poèet odeslaných resetù: %d"
-
--#: ../statistics.c:134
--#, c-format
--msgid "%d packets received"
-+#: ../statistics.c:136
-+#, fuzzy, c-format
-+msgid "%u packets received"
- msgstr "poèet pøijmutých 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 "poèet paketù pøijmutých pro neznámý port: %d."
-
--#: ../statistics.c:136
--#, c-format
--msgid "%d packet receive errors"
-+#: ../statistics.c:138
-+#, fuzzy, c-format
-+msgid "%u packet receive errors"
- msgstr "poèet chyb pøi pøíjmu paketù: %d"
-
--#: ../statistics.c:137
--#, c-format
--msgid "%d packets sent"
-+#: ../statistics.c:139
-+#, fuzzy, c-format
-+msgid "%u packets sent"
- msgstr "poèet odeslaných paketù: %d"
-
--#: ../statistics.c:142
--#, c-format
--msgid "%d SYN cookies sent"
-+#: ../statistics.c:144
-+#, fuzzy, c-format
-+msgid "%u SYN cookies sent"
- msgstr "poèet odeslaných 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 "poèet pøijmutých 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 "poèet chybných pøíchozích 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 "poèet resetù pøijmutých pro sokety ve stavu SYN_PØÍCH: %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 "poèet paketù odstranìných z fronty kvùli pøeteèení 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 "poèet paketù odstranìných z fronty mimo-poøadí: %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 ""
- "poèet paketù zahozených z fronty mimo-poøadí kvùli pøeteèení 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 "poèet ICMP paketù zahozených, proto¾e 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 "poèet ICMP paketù zahozených kvùli zamèenému 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 "poèet odeslaných 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 "poèet paketù odstranìných z fronty mimo-poøadí: %d"
-+
-+#: ../statistics.c:183
-+#, fuzzy, c-format
-+msgid "%u packet headers predicted"
-+msgstr "poèet pøijmutých 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 "poèet paketù pøijmutých pro neznámý 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 "poèet chybných pøíchozích 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 "poèet odeslaných 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 "poèet pøenesených 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 "poèet pøenesených segmentù: %d"
-+
-+#: ../statistics.c:210
-+#, fuzzy, c-format
-+msgid "%u sack retransmits failed"
-+msgstr "poèet paketù, je¾ se nepodaøilo 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 "poèet paketù odstranìných z fronty kvùli pøeteèení 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 "poèet pøijmutých paketù: %d"
-+
-+#: ../statistics.c:216
-+#, fuzzy, c-format
-+msgid "%u DSACKs for out of order packets received"
-+msgstr "celkem pøijmutých paketù: %d"
-+
-+#: ../statistics.c:217
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected SYN"
-+msgstr "poèet pøijmutých resetù: %d"
-+
-+#: ../statistics.c:218
-+#, fuzzy, c-format
-+msgid "%u connections reset due to unexpected data"
-+msgstr "poèet pøijmutých resetù: %d"
-+
-+#: ../statistics.c:219
-+#, fuzzy, c-format
-+msgid "%u connections reset due to early user close"
-+msgstr "poèet pøijmutých 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 "poèet pøijmutých 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 neznámý\n"
--
--#: ../statistics.c:298
-+#: ../statistics.c:375
- msgid "error parsing /proc/net/snmp"
- msgstr "chyba pøi zpracování /proc/net/snmp"
-
--#: ../statistics.c:311
-+#: ../statistics.c:388
- msgid "cannot open /proc/net/snmp"
- msgstr "/proc/net/snmp nelze otevøít"
-
-@@ -1821,89 +2112,95 @@
- msgid "Cannot change line discipline to `%s'.\n"
- msgstr "Linkovou disciplínu nelze na `%s' zmìnit.\n"
-
--#: ../lib/af.c:145 ../lib/hw.c:148
-+#: ../lib/af.c:153 ../lib/hw.c:161
- msgid "UNSPEC"
- msgstr "NEZNÁM"
-
--#: ../lib/af.c:147
-+#: ../lib/af.c:155
- msgid "UNIX Domain"
- msgstr "Doména 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 "Nezadávejte více ne¾ jednu tøídu adres.\n"
-
--#: ../lib/af.c:293
-+#: ../lib/af.c:304
-+#, c-format
- msgid "Too much address family arguments.\n"
- msgstr "Bylo zadáno pøíli¹ mnoho tøíd adres.\n"
-
--#: ../lib/af.c:304
-+#: ../lib/af.c:315
- #, c-format
- msgid "Unknown address family `%s'.\n"
- msgstr "Tøída adres `%s' není známa.\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): nadbyteèné : ignorováno!\n"
-
--#: ../lib/arcnet.c:120
-+#: ../lib/arcnet.c:109
- #, c-format
- msgid "in_arcnet(%s): trailing junk!\n"
- msgstr "in_arcnet(%s): nadbyteèné 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 "Nesprávný volací znak"
-@@ -1913,22 +2210,21 @@
- msgstr "Volací znak je pøíli¹ dlouhý."
-
- #: ../lib/ax25_gr.c:47
-+#, c-format
- msgid "AX.25 not configured in this system.\n"
- msgstr "AX.25 není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/ax25_gr.c:50
-+#, c-format
- msgid "Kernel AX.25 routing table\n"
- msgstr "Smìrovací tabulka v jádru pro AX.25\n"
-
- #. xxx
- #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
-+#, c-format
- msgid "Destination Iface Use\n"
- msgstr "Adresát Rozhraní U¾ití\n"
-
--#: ../lib/ddp_gr.c:21
--msgid "Routing table for `ddp' not yet supported.\n"
--msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\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): nadbyteèné 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): nadbyteèné : ignorováno!\n"
-
--#: ../lib/fddi.c:134
-+#: ../lib/fddi.c:123
- #, c-format
- msgid "in_fddi(%s): trailing junk!\n"
- msgstr "in_fddi(%s): nadbyteèné 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 "Tøída adres `%s' není podporována.\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 tøídu adres `%s' není ¾ádné smìrování.\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): nadbyteèné : ignorováno!\n"
-
--#: ../lib/hippi.c:134
-+#: ../lib/hippi.c:122
- #, c-format
- msgid "in_hippi(%s): trailing junk!\n"
- msgstr "in_hippi(%s): nadbyteèné znaky!\n"
-
--#: ../lib/hw.c:147
-+#: ../lib/hw.c:160
- msgid "Local Loopback"
- msgstr "Místní smyèka"
-
--#: ../lib/hw.c:150
-+#: ../lib/hw.c:163
- msgid "Serial Line IP"
- msgstr "IP po sériové lince"
-
--#: ../lib/hw.c:151
-+#: ../lib/hw.c:164
- msgid "VJ Serial Line IP"
- msgstr "Vj IP po sériové lince"
-
--#: ../lib/hw.c:152
-+#: ../lib/hw.c:165
- msgid "6-bit Serial Line IP"
- msgstr "6bitový IP po sériové lince"
-
--#: ../lib/hw.c:153
-+#: ../lib/hw.c:166
- msgid "VJ 6-bit Serial Line IP"
- msgstr "6bitový VJ IP po sériové lince"
-
--#: ../lib/hw.c:154
-+#: ../lib/hw.c:167
- msgid "Adaptive Serial Line IP"
- msgstr "Adaptivní IP po sériové 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 "Pøístupové zaøízení 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: tøída adres %d není podporována!\n"
-
--#: ../lib/inet6_gr.c:79
-+#: ../lib/inet6.c:131
-+#, fuzzy
-+msgid "[UNKNOWN]"
-+msgstr "NEZNÁM"
-+
-+#: ../lib/inet6_gr.c:71
-+#, c-format
- msgid "INET6 (IPv6) not configured in this system.\n"
- msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n"
-
--#: ../lib/inet6_gr.c:82
-+#: ../lib/inet6_gr.c:74
-+#, c-format
- msgid "Kernel IPv6 routing table\n"
- msgstr "Smìrovací tabulka v jádru 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 ""
--"Adresát Dal¹í Smìrovaè "
--" Pøízn Metrika Odkaz U¾it Rozhraní\n"
-+"Adresát Dal¹í "
-+"Smìrovaè Pøízn Metrika Odkaz U¾it Rozhraní\n"
-
--#: ../lib/inet6_gr.c:158
-+#: ../lib/inet6_gr.c:150
-+#, c-format
- msgid "Kernel IPv6 Neighbour Cache\n"
- msgstr "Cache sousedù v jádru 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í Pøízn "
- "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 @@
- "Pøíznaky Odkazy Stav Pro¹lý(sec) Smazat(sec)\n"
-
- #: ../lib/inet6_sr.c:46
-+#, c-format
- msgid "Usage: inet6_route [-vF] del Target\n"
- msgstr "Pou¾ití: inet6_route [-vF] del Cíl\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 Cíl [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Í podporováno\n"
-
--#: ../lib/inet6_sr.c:182
-+#: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
- msgstr "Smìrovací tabulku `inet6' nelze vyprazdòovat\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 systému nakonfigurováno.\n"
-
- #: ../lib/inet_gr.c:53
-+#, c-format
- msgid "Kernel IP routing table\n"
- msgstr "Smìrovací tabulka v jádru 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 "Smìrovací cache v jádru 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 @@
- "Odesílatel Adresát Maska Pøízn Metrik Odkazy U¾t "
- "Rozhraní MSS Okno irtt TOS HHOdk HHAktuál Zvlá¹tCíl\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 @@
- "Pou¾ití: inet_route [-vF] del {-host|-net} Cíl[/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} Cíl[/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} Cíl/[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Í podporováno\n"
-
-@@ -2230,15 +2565,17 @@
- msgstr "route: %s: sí» nelze pou¾ít jako bránu!\n"
-
- #: ../lib/inet_sr.c:174
--#, fuzzy
-+#, fuzzy, c-format
- msgid "route: Invalid MSS/MTU.\n"
- msgstr "route: Nesprávné NSS.\n"
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
- msgstr "route: Nesprávné okno.\n"
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
- msgstr "route: Nesprávné zahajovací rtt.\n"
-
-@@ -2253,75 +2590,92 @@
- msgstr "route: sí»ová maska %s je nesprávná\n"
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
- msgstr "route: sí»ová maska nevyhovuje adrese cesty\n"
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
- msgstr "Smìrovací cache `inet' nelze vyprazdòovat\n"
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
- msgstr "Smìrovací cache `inet' nelze mìnit\n"
-
- #: ../lib/ipx_gr.c:52
-+#, c-format
- msgid "IPX not configured in this system.\n"
- msgstr "IPX není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/ipx_gr.c:56
-+#, c-format
- msgid "Kernel IPX routing table\n"
- msgstr "Smìrovací tabulka v jádru pro IPX\n"
-
- #. xxx
- #: ../lib/ipx_gr.c:57
-+#, c-format
- msgid "Destination Router Net Router Node\n"
- msgstr "Cíl Smìrovaè Sí» Smìrovaè Uzel\n"
-
- #: ../lib/ipx_sr.c:33
-+#, c-format
- msgid "IPX: this needs to be written\n"
- msgstr "IPX: toto je tøeba ulo¾it\n"
-
--#: ../lib/masq_info.c:197
-+#: ../lib/masq_info.c:198
-+#, c-format
- msgid "IP masquerading entries\n"
- msgstr "IP maskovací polo¾ky\n"
-
--#: ../lib/masq_info.c:200
-+#: ../lib/masq_info.c:201
-+#, c-format
- msgid "prot expire source destination ports\n"
- msgstr "prot ¾ivot zdroj cíl 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 pøedchd zdroj cíl "
--" porty\n"
-+"prot ¾ivot zahajsek delta pøedchd zdroj "
-+"cíl porty\n"
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
- msgstr "NET/ROM není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/netrom_gr.c:51
-+#, c-format
- msgid "Kernel NET/ROM routing table\n"
- msgstr "Smìrovací tabulka v jádru pro NET/ROM\n"
-
- #: ../lib/netrom_gr.c:52
-+#, c-format
- msgid "Destination Mnemonic Quality Neighbour Iface\n"
- msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n"
-
- #: ../lib/netrom_sr.c:34
-+#, c-format
- msgid "netrom usage\n"
- msgstr "pou¾ití netrom\n"
-
- #: ../lib/netrom_sr.c:44
-+#, c-format
- msgid "NET/ROM: this needs to be written\n"
- msgstr "NET/ROM: toto je potøeba ulo¾it\n"
-
- #: ../lib/ppp.c:44
-+#, c-format
- msgid "You cannot start PPP with this program.\n"
- msgstr "Tímto programem nelze PPP spustit.\n"
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
- msgstr "Lituji, pou¾ijte pppd!\n"
-
-@@ -2330,49 +2684,319 @@
- msgstr "Adresa uzlu musí mít 10 èíslic"
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
- msgstr "ROSE není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/rose_gr.c:54
-+#, c-format
- msgid "Kernel ROSE routing table\n"
- msgstr "Smìrovací tabulka v jádru 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): nesprávná 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): nadbyteèné: ignorováno!\n"
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
- msgstr "in_tr(%s): nadbyteèné znaky!\n"
-
--#: ../lib/interface.c:124
-+#: ../lib/interface.c:176
- #, c-format
- msgid "warning: no inet socket available: %s\n"
- msgstr "varování: 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 "Zaøízení nebylo nalezeno"
-
--#: ../lib/interface.c:508
-+#: ../lib/interface.c:575
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
- msgstr "%s: chyba pøi získávání 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É PØÍZNAKY]"
-+
-+#: ../lib/interface.c:688
-+#, c-format
-+msgid "%-9.9s Link encap:%s "
-+msgstr "%-9.9s Zapouzdøení:%s "
-+
-+#: ../lib/interface.c:693
-+#, c-format
-+msgid "HWaddr %s "
-+msgstr "HWadr %s "
-+
-+#: ../lib/interface.c:696
-+#, c-format
-+msgid "Media:%s"
-+msgstr "Médium:%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 ostatních katalozích se pøekládá Broadcast -> v¹esmìrové vysílání.
-+# Tudi¾ bcast -> V¹esmìr :)
-+#: ../lib/interface.c:711
-+#, c-format
-+msgid " Bcast:%s "
-+msgstr " V¹esmìr:%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 "Globál"
-+
-+#: ../lib/interface.c:738
-+#, c-format
-+msgid "Link"
-+msgstr "Linka"
-+
-+#: ../lib/interface.c:741
-+#, c-format
-+msgid "Site"
-+msgstr "Stanovi¹tì"
-+
-+#: ../lib/interface.c:744
-+#, c-format
-+msgid "Compat"
-+msgstr "Kompatibilita"
-+
-+#: ../lib/interface.c:747
-+#, c-format
-+msgid "Host"
-+msgstr "Poèítaè"
-+
-+#: ../lib/interface.c:750
-+#, c-format
-+msgid "Unknown"
-+msgstr "Neznám."
-+
-+#: ../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É PØÍZNAKY]"
-+
-+#: ../lib/interface.c:802
-+#, c-format
-+msgid "UP "
-+msgstr "AKTIVOVÁNO "
-+
-+#: ../lib/interface.c:804
-+#, c-format
-+msgid "BROADCAST "
-+msgstr "V©ESMÌROVÉ_VYSÍLÁNÍ "
-+
-+#: ../lib/interface.c:806
-+#, c-format
-+msgid "DEBUG "
-+msgstr "DEBUG "
-+
-+#: ../lib/interface.c:808
-+#, c-format
-+msgid "LOOPBACK "
-+msgstr "SMYÈKA "
-+
-+#: ../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 "pøijmutých paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu rámcù:%lu\n"
-+
-+#: ../lib/interface.c:855
-+#, c-format
-+msgid " compressed:%lu\n"
-+msgstr " komprimováno:%lu\n"
-+
-+# carrier?
-+#: ../lib/interface.c:895
-+#, fuzzy, c-format
-+msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
-+msgstr "odeslaných paketù:%lu chyb:%lu zahozeno:%lu pøeteèení:%lu pøenos:%lu\n"
-+
-+#: ../lib/interface.c:899
-+#, c-format
-+msgid " collisions:%lu "
-+msgstr " kolizí:%lu "
-+
-+#: ../lib/interface.c:901
-+#, c-format
-+msgid "compressed:%lu "
-+msgstr "komprimováno:%lu "
-+
-+#: ../lib/interface.c:903
-+#, c-format
-+msgid "txqueuelen:%d "
-+msgstr "délka 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 "Pøeru¹ení:%d "
-+
-+#. Only print devices using it for
-+#. I/O maps
-+#: ../lib/interface.c:919
-+#, c-format
-+msgid "Base address:0x%x "
-+msgstr "Vstupnì/Výstupní 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 "Kanál DMA:%x "
-+
-+#: ../lib/sockets.c:63
-+#, c-format
- msgid "No usable address families found.\n"
- msgstr "Nebyla nalezena ¾ádná pou¾itelná tøída adres.\n"
-
-@@ -2396,29 +3020,32 @@
- msgid "ip: argument is wrong: %s\n"
- msgstr "ip: argument %s je nesprávný\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 ØETÌZEC\n"
-
--#: ../ipmaddr.c:57
-+#: ../ipmaddr.c:62
-+#, c-format
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
- msgstr " ipmaddr show [ dev ØETÌZEC ] [ 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 "tøída %d "
-
--#: ../ipmaddr.c:267
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
- msgstr " u¾ivatelé %d"
-
--#: ../ipmaddr.c:353
-+#: ../ipmaddr.c:358
- msgid "Cannot create socket"
- msgstr "Soket nelze vytvoøit"
-
-@@ -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 "jméno %s je pøíli¹ dlouhé\n"
-+
-+#: ../slattach.c:498
-+#, c-format
- msgid "slattach: tty_open: cannot get current state!\n"
- msgstr "slattach: tty_open: aktuální 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: aktuální linkovou disciplínu nelze zjistit!\n"
-
--#: ../slattach.c:501
-+#: ../slattach.c:513
-+#, c-format
- msgid "slattach: tty_open: cannot set RAW mode!\n"
- msgstr "slattach: tty_open: re¾im 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: re¾im 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 spu¹tìn"
-
--#: ../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> [sí»mask <èís>] <-''-\n"
-+
-+#~ msgid "%s: unknown interface: %s\n"
-+#~ msgstr "%s: rozhraní %s není známo\n"
-+
-+#~ msgid "address mask replies"
-+#~ msgstr "odpovìdi na ¾ádost o masku podsítì"
-+
-+#~ msgid "unknown title %s\n"
-+#~ msgstr "titulek %s je neznámý\n"
-+
-+#~ msgid "Routing table for `ddp' not yet supported.\n"
-+#~ msgstr "Smìrovací tabulka pro `ddp' není zatím podporována.\n"
-+
-+#~ msgid ""
-+#~ " This comand can read or set the hostname or the NIS domainname. You "
-+#~ "can\n"
- #~ msgstr ""
- #~ " Tento program zji¹»uje a nastavuje jméno poèítaèe èi NIS domény. Mù¾e "
- #~ "také\n"
-@@ -2500,7 +3161,8 @@
- #~ msgid ""
- #~ " Unless you are using bind or NIS for host lookups you can change the\n"
- #~ msgstr ""
--#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak mù¾ete\n"
-+#~ " Pokud nepou¾íváte bind èi NIS pro vyhledávání jmen poèítaèù, pak "
-+#~ "mù¾ete\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/util-linux.SlackBuild b/source/a/util-linux/util-linux.SlackBuild
index 424199144..1fa74c832 100755
--- a/source/a/util-linux/util-linux.SlackBuild
+++ b/source/a/util-linux/util-linux.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,9 +23,9 @@
# Slackware build script for util-linux
VERSION=${VERSION:-$(echo util-linux*.tar.?z* | cut -d - -f 3 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-5}
-ADJTIMEXVERS=1.23
+ADJTIMEXVERS=1.29
SETSERIALVERS=2.17
ZIPTOOLVERS=1.4.0
@@ -70,8 +70,7 @@ find . \
\( -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
+# Disabled login stuff from being built, as this is provided by shadow
#
# /sbin/elvtune is not built, as configure says it only works with 2.2 and
# 2.4 kernels
@@ -85,7 +84,19 @@ find . \
# 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.fdisk-no-solaris.diff.gz | patch -p1 || exit 1
+zcat $CWD/util-linux.fdisk-no-solaris.diff.gz | patch -p1 --verbose || exit 1
+
+# Fix loop encryption:
+zcat $CWD/0001-mount-old-fix-encryption-usage.patch.gz | patch -p1 --verbose || exit 1
+
+# Fix fdisk granularity on 512 byte sector size devices:
+zcat $CWD/0002-fdisk-don-t-ignore-1MiB-granularity-on-512-byte-sect.patch.gz | patch -p1 --verbose || exit 1
+
+# 20120814 bkw: fix "column --separator <anything>" segfault
+zcat $CWD/column-fix_long_opts.diff.gz | patch -p1 --verbose || exit 1
+
+# Regenerate, since patch 0001 hits mount/Makefile.am:
+./autogen.sh
CFLAGS="$SLKCFLAGS" \
./configure \
@@ -99,9 +110,9 @@ CFLAGS="$SLKCFLAGS" \
--disable-static \
--enable-arch \
--enable-agetty \
- --disable-init \
--enable-kill \
--disable-last \
+ --enable-line \
--enable-mesg \
--enable-partx \
--enable-raw \
@@ -114,8 +125,10 @@ CFLAGS="$SLKCFLAGS" \
--enable-use-tty-group \
--enable-libblkid \
--enable-libmount \
+ --enable-libmount-mount \
--enable-libuuid \
--disable-uuidd \
+ --enable-ddate \
--build=$ARCH-slackware-linux \
|| exit 1
@@ -180,11 +193,10 @@ 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.xz
-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
+rm -rf net-tools-1.60.20120726git
+tar xvf $CWD/net-tools-1.60.20120726git.tar.xz
+cd net-tools-1.60.20120726git
+zcat $CWD/net-tools.config.h.gz > config.h
make
make hostname
strip hostname
@@ -209,7 +221,7 @@ 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
+zcat $CWD/adjtimex_1.29-2.2.diff.gz | patch -p1 || exit 1
CFLAGS=-O2 ./configure --prefix=/usr || exit 1
make || exit 1
strip adjtimex
diff --git a/source/a/xfsprogs/xfsprogs.SlackBuild b/source/a/xfsprogs/xfsprogs.SlackBuild
index 27af8245e..672290d31 100755
--- a/source/a/xfsprogs/xfsprogs.SlackBuild
+++ b/source/a/xfsprogs/xfsprogs.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
diff --git a/source/a/xz/slack-desc b/source/a/xz/slack-desc
index af549b358..053792254 100644
--- a/source/a/xz/slack-desc
+++ b/source/a/xz/slack-desc
@@ -8,7 +8,7 @@
|-----handy-ruler------------------------------------------------------|
xz: xz (compression utility based on the LZMA algorithm)
xz:
-xz: LZMA is a general purporse compression algorithm designed by Igor
+xz: LZMA is a general purpose 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
diff --git a/source/a/xz/xz.SlackBuild b/source/a/xz/xz.SlackBuild
index dd996f489..7c60ce6cf 100755
--- a/source/a/xz/xz.SlackBuild
+++ b/source/a/xz/xz.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
# Permission to use, copy, modify, and distribute this software for
@@ -154,3 +154,10 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz
+# Move temporary stuff to /tmp, so that it won't get forgotten
+# in the shuffle:
+
+cp -a $TMP/${PKGNAM}-${VERSION}-${ARCH}-${BUILD}.tgz /tmp
+rm -rf /tmp/xz-tmp*
+mv /xz-tmp* /tmp
+
diff --git a/source/ap/alsa-utils/alsa-utils.SlackBuild b/source/ap/alsa-utils/alsa-utils.SlackBuild
index 77664487b..3e642d084 100755
--- a/source/ap/alsa-utils/alsa-utils.SlackBuild
+++ b/source/ap/alsa-utils/alsa-utils.SlackBuild
@@ -63,7 +63,7 @@ cd $TMP
rm -rf alsa-utils-$VERSION
tar xvf $CWD/alsa-utils-$VERSION.tar.?z* || exit 1
cd alsa-utils-$VERSION || exit 1
-zcat $CWD/alsa-utils.alsaconf.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit
+#zcat $CWD/alsa-utils.alsaconf.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit
chown -R root:root .
find . \
@@ -78,6 +78,7 @@ CFLAGS="$SLKCFLAGS" \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--sysconfdir=/etc \
+ --disable-alsaconf \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
diff --git a/source/ap/cdrdao/cdrdao-1.2.3-stat.patch b/source/ap/cdrdao/cdrdao-1.2.3-stat.patch
new file mode 100644
index 000000000..5a68e7130
--- /dev/null
+++ b/source/ap/cdrdao/cdrdao-1.2.3-stat.patch
@@ -0,0 +1,13 @@
+diff -up cdrdao-1.2.3/dao/ScsiIf-linux.cc.stat cdrdao-1.2.3/dao/ScsiIf-linux.cc
+--- cdrdao-1.2.3/dao/ScsiIf-linux.cc.stat 2010-01-20 20:11:36.000000000 +0100
++++ cdrdao-1.2.3/dao/ScsiIf-linux.cc 2010-01-20 20:14:07.000000000 +0100
+@@ -19,6 +19,9 @@
+
+ #include <config.h>
+
++#include <sys/types.h>
++#include <sys/stat.h>
++
+ #include <stdio.h>
+ #include <fcntl.h>
+ #include <unistd.h>
diff --git a/source/ap/cdrdao/cdrdao.SlackBuild b/source/ap/cdrdao/cdrdao.SlackBuild
index 95216d513..fe3c5b7d1 100755
--- a/source/ap/cdrdao/cdrdao.SlackBuild
+++ b/source/ap/cdrdao/cdrdao.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
VERSION=1.2.3
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -61,6 +61,9 @@ cd $TMP
rm -rf cdrdao-$VERSION
tar xvf $CWD/cdrdao-$VERSION.tar.?z* || exit 1
cd cdrdao-$VERSION
+
+zcat $CWD/cdrdao-1.2.3-stat.patch.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 \) \
diff --git a/source/ap/diffutils/diffutils.SlackBuild b/source/ap/diffutils/diffutils.SlackBuild
index f338b71da..2287abb2c 100755
--- a/source/ap/diffutils/diffutils.SlackBuild
+++ b/source/ap/diffutils/diffutils.SlackBuild
@@ -22,7 +22,7 @@
PKGNAM=diffutils
-VERSION=3.0
+VERSION=${VERSION:-$(echo diffutils-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/ap/dmapi/slack-desc b/source/ap/dmapi/slack-desc
index c5acf4919..9cbfcfa91 100644
--- a/source/ap/dmapi/slack-desc
+++ b/source/ap/dmapi/slack-desc
@@ -10,7 +10,7 @@ dmapi: dmapi (Data Management API library)
dmapi:
dmapi: A library required to use the Data Management API (DMAPI).
dmapi: This interface is defined in the X/Open document 'Systems Management:
-dmapi: Data Storage Managment (XDSM) API' dated February 1997.
+dmapi: Data Storage Management (XDSM) API' dated February 1997.
dmapi:
dmapi: The DMAPI library is used by the xfsdump utility.
dmapi:
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index ff9fac9ef..4afef9648 100755
--- a/source/ap/ghostscript/ghostscript.SlackBuild
+++ b/source/ap/ghostscript/ghostscript.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=ghostscript
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -60,10 +60,7 @@ rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
cd ${PKGNAM}-$VERSION
-# Bugfix:
-zcat $CWD/ghostscript.rev11948.diff.gz | patch -p1 --verbose || exit 1
-
-## Regenerate ./configure:
+## Regenerate ./configure (if patched):
#sh autogen.sh
# Make sure ownerships and permissions are sane:
@@ -104,6 +101,8 @@ CFLAGS="$SLKCFLAGS" \
--with-ijs \
--disable-compile-inits \
--enable-dynamic \
+ --enable-cups \
+ --with-install-cups \
--enable-cairo=no \
--program-prefix= \
--program-suffix= \
@@ -124,6 +123,13 @@ if [ -r $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap ]; then
zcat $CWD/cidfmap.gz > $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.new
fi
+# Many programs expect to find this filter with the old name:
+( cd $PKG/usr/lib${LIBDIRSUFFIX}/cups/filter
+ if [ ! -e pstoraster ]; then
+ ln -sf gstoraster pstoraster
+ fi
+)
+
# Strip binaries:
( cd $PKG
find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -164,6 +170,17 @@ mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
ln -sf /usr/share/ghostscript/$VERSION/doc doc
)
+# Version 9.02 fails to install History9.htm, but also the full unabridged
+# history of Ghostscript is not required here. See the source for that.
+( cd doc
+ cp -a \
+ History*.htm \
+ $PKG/usr/share/ghostscript/$VERSION/doc
+ rm -f $PKG/usr/share/ghostscript/$VERSION/doc/History{1,2,3,4,5,6,7,8}.htm
+ chown root:root $PKG/usr/share/ghostscript/$VERSION/doc/History*htm
+ chmod 644 $PKG/usr/share/ghostscript/$VERSION/doc/History*htm
+)
+
cd $TMP
cp -a ${PKGNAM}-${VERSION}/examples/cjk $PKG/usr/share/ghostscript/${VERSION}/examples/
diff --git a/source/ap/ghostscript/ghostscript.rev11948.diff b/source/ap/ghostscript/ghostscript.rev11948.diff
deleted file mode 100644
index cc45c1549..000000000
--- a/source/ap/ghostscript/ghostscript.rev11948.diff
+++ /dev/null
@@ -1,13 +0,0 @@
---- ./base/gximag3x.c.orig 2010-08-10 11:20:19.000000000 -0500
-+++ ./base/gximag3x.c 2010-12-28 13:24:54.000000000 -0600
-@@ -241,7 +241,9 @@
- const gs_image3x_mask_t *pixm =
- (i == 0 ? &pim->Opacity : &pim->Shape);
-
-- *(gs_data_image_t *)&mask[i].image = pixm->MaskDict;
-+ /* Use memcpy because direct assignment breaks ANSI aliasing */
-+ /* rules and causes SEGV with gcc 4.5.1 */
-+ memcpy(&mask[i].image, &pixm->MaskDict, sizeof(pixm->MaskDict));
- mask[i].image.type = type1;
- mask[i].image.BitsPerComponent = pixm->MaskDict.BitsPerComponent;
- }
diff --git a/extra/source/fvwm-2.6.1/fvwm.SlackBuild b/source/ap/htop/htop.SlackBuild
index e7aa4fa67..b27481e9f 100755
--- a/extra/source/fvwm-2.6.1/fvwm.SlackBuild
+++ b/source/ap/htop/htop.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=fvwm
+PKGNAM=htop
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
@@ -72,24 +72,16 @@ find . \
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
--mandir=/usr/man \
--docdir=/usr/doc/$PKGNAM-$VERSION \
- --disable-bidi \
- --program-prefix= \
- --program-suffix= \
+ --disable-static \
--build=$ARCH-slackware-linux
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Add a few more things:
-mkdir -p $PKG/etc/X11/xinit
-zcat $CWD/xinitrc.fvwm2.gz > $PKG/etc/X11/xinit/xinitrc.fvwm2
-chmod 755 $PKG/etc/X11/xinit/xinitrc.fvwm2
-#zcat $CWD/system.fvwm2rc.gz > $PKG/etc/system.fvwm2rc.new
-
find $PKG | xargs file | grep -e "executable" -e "shared object" \
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
@@ -108,10 +100,10 @@ if [ -d $PKG/usr/man ]; then
)
fi
-# Restore a few original file timestamps:
+# Install documentation:
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- AUTHORS COPYING* NEWS README* \
+ AUTHORS COPYING* NEWS README* TODO \
$PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
@@ -123,7 +115,6 @@ if [ -r ChangeLog ]; then
fi
mkdir -p $PKG/install
-zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
diff --git a/source/ap/htop/slack-desc b/source/ap/htop/slack-desc
new file mode 100644
index 000000000..039b71950
--- /dev/null
+++ b/source/ap/htop/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------------------------------------------------------|
+htop: htop (ncurses-based interactive process viewer)
+htop:
+htop: htop is a free (GPL) ncurses-based process viewer that is similar to
+htop: the well-known "top" program, but allows to scroll the list vertically
+htop: and horizontally to see all processes and their full command lines.
+htop: Tasks related to processes (killing, renicing) can be done without
+htop: entering their PIDs.
+htop:
+htop: htop is developed by Hisham Muhammad.
+htop: Homepage: http://htop.sf.net
+htop:
diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt
index 16d8783f2..0c971b356 100644
--- a/source/ap/linuxdoc-tools/ChangeLog.txt
+++ b/source/ap/linuxdoc-tools/ChangeLog.txt
@@ -1,3 +1,28 @@
+Fri Jun 29 17:34:25 BST 2012
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.67, build 2.
+ * Made a compatibility symlink between
+ /usr/share/xml/docbook/stylesheet/docbook-xsl -> /usr/share/xml/docbook/xsl-stylesheets-<ver>
+ Thanks to Patrick Verner for the suggestion.
+
+Mon May 28 21:40:41 BST 2012
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.67, build 1
+ * Removed the files that were overlapping with the 'Python' (and any other) package.
+ * Upgraded to linuxdoc-tools 0.9.67
+ * Upgraded to gnome-doc-utils 0.20.10
+ * Upgraded to xmlto-0.0.25
+ * Upgraded to gtk-doc-1.18
+ * Upgraded to AsciiDoc-8.6.7
+ * Upgraded to DocBook XSL Stylesheets 1.76.1
+ * Fix OpenJade FTBFS with Perl 5.16 installed: Copy the perl4 corelib 'getopts.pl'
+ into OpenJade's build directory as a build-time work-around.
+
+Sun May 15 03:42:16 UTC 2011
+ Patrick Volkerding <volkerdi@slackware.com>
+ linuxdoc-tools 0.9.66, build 9
+ Rebuild for perl-5.14.0.
+
Mon Mar 21 17:39:48 UTC 2011
Patrick Volkerding <volkerdi@slackware.com>
linuxdoc-tools 0.9.66, build 8
diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build
index eb4f18c83..f5a418d96 100755
--- a/source/ap/linuxdoc-tools/arm/build
+++ b/source/ap/linuxdoc-tools/arm/build
@@ -9,9 +9,9 @@ source /usr/share/slackdev/buildkit.sh
# Package metadata:
export PKGNAM=linuxdoc-tools
-export VERSION=${VERSION:-0.9.66}
+export VERSION=${VERSION:-0.9.67}
export PKGARCH=${PKGARCH:-arm}
-export BUILD=${BUILD:-4}
+export BUILD=${BUILD:-2}
export PKGSERIES=${PKGSERIES:-ap}
export SLACKPACKAGE=$PKGNAM-$VERSION-$PKGARCH-$BUILD.tgz
export PKGEXT=${PKGEXT:-tgz}
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
index fe3506cc9..27f3a53ca 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -20,21 +20,21 @@ LINUXDOCTOOLSVER=$PKGVERSION
SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
-XSLSTYLESHEETSVER=1.75.2
+XSLSTYLESHEETSVER=1.76.1
DSSSLSTYLESHEETSVER=1.79
SGMLCOMMONVER=0.6.3
OPENJADEVER=1.3.3-pre1
OPENSPVER=1.5.2
-GNOMEDOCUTILSVER=0.20.4
-GTKDOCVER=1.15
+GNOMEDOCUTILSVER=0.20.10
+GTKDOCVER=1.18
SGMLSPLVER=1.03ii
-XMLTOVER=0.0.23
-ASCIIDOCVER=8.6.2
+XMLTOVER=0.0.25
+ASCIIDOCVER=8.6.7
DOCBOOKUTILSVER=0.6.14
# Determine the general CFLAGS for the known architectures:
case $ARCH in
- arm) export SLKCFLAGS="-O2 -march=armv4t"
+ arm) export SLKCFLAGS="-O2 -march=armv5te"
export LIBDIRSUFFIX=""
export HOSTTARGET="-gnueabi"
;;
@@ -71,7 +71,7 @@ find . \
-exec chmod 644 {} \;
# Revert a change that breaks processing the git documentation:
-xz -dc $CWD/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff.xz | patch --verbose -p1 || exit 1
+# xz -dc $CWD/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff.xz | patch --verbose -p1 || exit 1
# Configure:
./configure \
@@ -356,6 +356,15 @@ find . \
# Apply patches:
sed -i "s/iostream.h/iostream/g" style/MultiLineInlineNote.cxx
+# GCC 4.6 patch:
+xz -dc $CWD/sources/openjade-1.3.2-gcc46.patch.xz | patch --verbose -p1 || exit 1
+
+# Install the old Perl 4 'getopts' function. This has been deprecated in Perl 5.16
+# and since it seems that OpenJade isn't being actively released by upstream, we'll
+# work around by supplying it to OpenJade directly. It's only a build-time fix anyway
+# so it's ok to have a dirty work-around:
+xz -dc $CWD/sources/openjade-1.3-getopts.pl.xz > getopts.pl
+
# Configure without optimisation.
# OpenSP & OpenJade are sensitive to optimisations and can result
# in segfaults with anything other than O2 - particularly on the ARM
@@ -374,8 +383,8 @@ sed -i "s/iostream.h/iostream/g" style/MultiLineInlineNote.cxx
--datadir=/usr/share/sgml/openjade-$OPENJADEVER \
|| exit 1
-# Build:
-make || exit 1
+# Build (setting the perl library to be the PWD so it finds the old 'getopts.pl'):
+make PERL5LIB=$PWD || exit 1
# Install:
mkdir -p /etc/sgml
@@ -689,6 +698,7 @@ find . \
# Apply patches:
for i in \
+ docbook-xsl-mandir.patch \
docbook-xsl-list-item-body.patch \
docbook-xsl-marginleft.patch \
docbook-xsl-newmethods.patch \
@@ -704,6 +714,12 @@ cp -fav \
htmlhelp images javahelp lib manpages params profiling \
slides template tools website wordml xhtml \
/usr/share/xml/docbook/xsl-stylesheets-$XSLSTYLESHEETSVER
+# Some Linux distributions have this here, so we install a compatibility symlink:
+# (this convoluted way of doing it is for makepkg's benefit)
+mkdir -vpm755 /usr/share/xml/docbook/stylesheet
+( cd /usr/share/xml/docbook/stylesheet
+ rm -fv docbook-xsl
+ ln -vfs ../xsl-stylesheets-$XSLSTYLESHEETSVER docbook-xsl )
# Create config files:
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi
@@ -742,9 +758,9 @@ cp -fav doc/* README* RELEASE-NOTES* NEWS* \
# Extract source:
cd $TMP
mkdir xmlto && cd xmlto
-#tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.*z*
-rpm2cpio $CWD/sources/xmlto-${XMLTOVER}*.src.rpm | cpio -div || exit 1
-tar xvvf xmlto-$XMLTOVER.tar.*z*
+tar xvf $CWD/sources/xmlto-$XMLTOVER.tar.*z*
+#rpm2cpio $CWD/sources/xmlto-${XMLTOVER}*.src.rpm | cpio -div || exit 1
+#tar xvvf xmlto-$XMLTOVER.tar.*z*
cd xmlto-$XMLTOVER || exit 1
chown -R root:root .
find . \
@@ -753,9 +769,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Apply patches:
-patch --verbose -p1 < ../xmlto-0.0.23-Lchapterpassivetex.patch || exit 1
-
# Configure:
./configure \
--prefix=/usr \
@@ -942,13 +955,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Apply patch to fix problem with vim:
-xz -dc $CWD/sources/gtk-doc.patch.xz | patch --verbose -p1 || exit 1
-
# Configure:
./configure \
--prefix=/usr \
- --enable-public-id \
--disable-scrollkeeper \
|| exit 1
diff --git a/source/ap/linuxdoc-tools/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff b/source/ap/linuxdoc-tools/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff
deleted file mode 100644
index 2bdc7de4d..000000000
--- a/source/ap/linuxdoc-tools/sources/asciidoc.asciidoc7compatible.revertbrokenchange.diff
+++ /dev/null
@@ -1,80 +0,0 @@
---- a/asciidoc.py 2010-10-17 14:01:35.000000000 +0800
-+++ b/asciidoc.py 2010-10-17 14:11:07.000000000 +0800
-@@ -4260,10 +4260,12 @@
- self.include1 = {} # Holds include1::[] files for {include1:}.
- self.dumping = False # True if asciidoc -c option specified.
-
-- def load_file(self,fname,dir=None):
-+ def load_file(self, fname, dir=None, include=[]):
- """
- Loads sections dictionary with sections from file fname.
- Existing sections are overlaid.
-+ The 'include' list contains the section names to be loaded,
-+ if 'inlude' is not specified all sections are loaded.
- Return False if no file was found in any of the locations.
- """
- if dir:
-@@ -4317,9 +4319,14 @@
- else:
- sections[section] = contents
- rdr.close()
-+ if include:
-+ for s in set(sections) - set(include):
-+ del sections[s]
- attrs = {}
- self.load_sections(sections,attrs)
-- self.loaded.append(os.path.realpath(fname))
-+ if not include:
-+ # If all sections are loaded mark this file as loaded.
-+ self.loaded.append(os.path.realpath(fname))
- document.update_attributes(attrs) # So they are available immediately.
- return True
-
-@@ -5314,13 +5321,17 @@
- if o == '-c': config.dumping = True
- if o == '-s': config.header_footer = False
- if o == '-v': config.verbose = True
-- # Check the infile exists.
-- if infile != '<stdin>' and not os.path.isfile(infile):
-- raise EAsciiDoc,'input file %s missing' % infile
-- document.infile = infile
- # Load asciidoc.conf files.
- if not config.load_from_dirs('asciidoc.conf'):
- raise EAsciiDoc,'configuration file asciidoc.conf missing'
-+ # Check the infile exists.
-+ if infile != '<stdin>':
-+ if not os.path.isfile(infile):
-+ raise EAsciiDoc,'input file %s missing' % infile
-+ indir = os.path.dirname(infile)
-+ config.load_file('asciidoc.conf', indir,
-+ ['attributes','titles','specialchars'])
-+ document.infile = infile
- AttributeList.initialize()
- # Open input file and parse document header.
- reader.tabsize = config.tabsize
-@@ -5343,10 +5354,9 @@
- document.load_lang()
- # Load local conf files (conf files in the input file directory).
- if infile != '<stdin>':
-- d =os.path.dirname(infile)
-- config.load_from_dirs('asciidoc.conf', [d])
-- config.load_backend([d])
-- config.load_filters([d])
-+ config.load_file('asciidoc.conf', indir)
-+ config.load_backend([indir])
-+ config.load_filters([indir])
- # Load document specific configuration files.
- f = os.path.splitext(infile)[0]
- config.load_file(f + '.conf')
---- a/doc/asciidoc.txt 2010-10-17 14:11:34.000000000 +0800
-+++ b/doc/asciidoc.txt 2010-10-17 14:13:21.000000000 +0800
-@@ -3632,6 +3632,8 @@
- the following order:
-
- - `asciidoc.conf` from locations 1, 2, 3.
-+- 'attributes', 'titles' and 'specialcharacters' sections from the
-+ `asciidoc.conf` in location 4.
- - The document header is parsed at this point.
- - `<backend>.conf` and `<backend>-<doctype>.conf` from locations 1,
- 2,3.
-
diff --git a/source/ap/linuxdoc-tools/sources/gtk-doc.patch b/source/ap/linuxdoc-tools/sources/gtk-doc.patch
deleted file mode 100644
index bf32d5574..000000000
--- a/source/ap/linuxdoc-tools/sources/gtk-doc.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2bffebcf9c125f5610b8fb660d42c3c5b9dfd4f0 Mon Sep 17 00:00:00 2001
-From: Stefan Kost <ensonic@users.sf.net>
-Date: Thu, 19 Aug 2010 14:45:54 +0000
-Subject: fixxref: tweak the vim invocation
-
-Use specific output-filename to ensure we get what we'll late use. Use "-u NONE"
-instead of -u /dev/null.
-Fixes #627223
----
-diff --git a/gtkdoc-fixxref.in b/gtkdoc-fixxref.in
-index 33a31b8..9f53852 100755
---- a/gtkdoc-fixxref.in
-+++ b/gtkdoc-fixxref.in
-@@ -464,7 +464,7 @@ sub HighlightSourceVim {
- close (NEWFILE);
-
- # format source
-- system "echo 'let html_number_lines=0|let html_use_css=1|let use_xhtml=1|syn on|e $temp_source_file|run! syntax/2html.vim|wa!|qa!' | @HIGHLIGHT@ -n -e -u /dev/null -T xterm >/dev/null";
-+ system "echo 'let html_number_lines=0|let html_use_css=1|let use_xhtml=1|syn on|e $temp_source_file|run! syntax/2html.vim|w! $temp_source_file.html|qa!' | @HIGHLIGHT@ -n -e -u NONE -T xterm >/dev/null";
-
- my $highlighted_source;
- {
---
-cgit v0.8.3.1
-
diff --git a/source/ap/linuxdoc-tools/sources/openjade-1.3-getopts.pl b/source/ap/linuxdoc-tools/sources/openjade-1.3-getopts.pl
new file mode 100644
index 000000000..5b18fe009
--- /dev/null
+++ b/source/ap/linuxdoc-tools/sources/openjade-1.3-getopts.pl
@@ -0,0 +1,65 @@
+;# getopts.pl - a better getopt.pl
+#
+# This library is no longer being maintained, and is included for backward
+# compatibility with Perl 4 programs which may require it.
+#
+# In particular, this should not be used as an example of modern Perl
+# programming techniques.
+#
+# Suggested alternatives: Getopt::Long or Getopt::Std
+#
+;# Usage:
+;# do Getopts('a:bc'); # -a takes arg. -b & -c not. Sets opt_* as a
+;# # side effect.
+
+sub Getopts {
+ local($argumentative) = @_;
+ local(@args,$_,$first,$rest);
+ local($errs) = 0;
+
+ @args = split( / */, $argumentative );
+ while(@ARGV && ($_ = $ARGV[0]) =~ /^-(.)(.*)/) {
+ ($first,$rest) = ($1,$2);
+ $pos = index($argumentative,$first);
+ if($pos >= 0) {
+ if($args[$pos+1] eq ':') {
+ shift(@ARGV);
+ if($rest eq '') {
+ ++$errs unless(@ARGV);
+ $rest = shift(@ARGV);
+ }
+ eval "
+ push(\@opt_$first, \$rest);
+ if (!defined \$opt_$first or \$opt_$first eq '') {
+ \$opt_$first = \$rest;
+ }
+ else {
+ \$opt_$first .= ' ' . \$rest;
+ }
+ ";
+ }
+ else {
+ eval "\$opt_$first = 1";
+ if($rest eq '') {
+ shift(@ARGV);
+ }
+ else {
+ $ARGV[0] = "-$rest";
+ }
+ }
+ }
+ else {
+ print STDERR "Unknown option: $first\n";
+ ++$errs;
+ if($rest ne '') {
+ $ARGV[0] = "-$rest";
+ }
+ else {
+ shift(@ARGV);
+ }
+ }
+ }
+ $errs == 0;
+}
+
+1;
diff --git a/source/ap/linuxdoc-tools/sources/openjade-1.3.2-gcc46.patch b/source/ap/linuxdoc-tools/sources/openjade-1.3.2-gcc46.patch
new file mode 100644
index 000000000..962ac19ff
--- /dev/null
+++ b/source/ap/linuxdoc-tools/sources/openjade-1.3.2-gcc46.patch
@@ -0,0 +1,82 @@
+If a class or struct has no user-defined default constructor, C++ doesn't
+allow you to default construct a const instance of it.
+
+https://bugs.gentoo.org/358021
+http://clang.llvm.org/compatibility.html#default_init_const
+http://gcc.gnu.org/PR44499
+
+
+--- a/jade/TeXFOTBuilder.cxx
++++ b/jade/TeXFOTBuilder.cxx
+@@ -88,6 +88,8 @@ public:
+ value.convertString(nic_.placement);
+ }
+ ExtensionFlowObj *copy() const { return new PageFloatFlowObj(*this); }
++ public:
++ PageFloatFlowObj() {}
+ private:
+ PageFloatNIC nic_;
+ StringC name_;
+@@ -101,6 +103,8 @@ public:
+ fotb.endPageFootnote();
+ }
+ ExtensionFlowObj *copy() const { return new PageFootnoteFlowObj(*this); }
++ public:
++ PageFootnoteFlowObj() {}
+ private:
+ };
+ //////////////////////////////////////////////////////////////////////
+--- a/jade/TransformFOTBuilder.cxx
++++ b/jade/TransformFOTBuilder.cxx
+@@ -41,6 +41,7 @@ public:
+ };
+ class EntityRefFlowObj : public TransformExtensionFlowObj {
+ public:
++ EntityRefFlowObj() {}
+ void atomic(TransformFOTBuilder &fotb, const NodePtr &) const {
+ fotb.entityRef(name_);
+ }
+@@ -56,6 +57,7 @@ public:
+ };
+ class ProcessingInstructionFlowObj : public TransformExtensionFlowObj {
+ public:
++ ProcessingInstructionFlowObj() {}
+ void atomic(TransformFOTBuilder &fotb, const NodePtr &) const {
+ fotb.processingInstruction(data_);
+ }
+@@ -98,6 +100,8 @@ public:
+ }
+ }
+ ExtensionFlowObj *copy() const { return new EmptyElementFlowObj(*this); }
++ public:
++ EmptyElementFlowObj() {}
+ private:
+ ElementNIC nic_;
+ };
+@@ -133,6 +137,8 @@ public:
+ }
+ }
+ ExtensionFlowObj *copy() const { return new ElementFlowObj(*this); }
++ public:
++ ElementFlowObj() {}
+ private:
+ ElementNIC nic_;
+ };
+@@ -150,6 +156,8 @@ public:
+ value.convertString(systemId_);
+ }
+ ExtensionFlowObj *copy() const { return new EntityFlowObj(*this); }
++ public:
++ EntityFlowObj() {}
+ private:
+ StringC systemId_;
+ };
+@@ -174,6 +182,8 @@ public:
+ }
+ }
+ ExtensionFlowObj *copy() const { return new DocumentTypeFlowObj(*this); }
++ public:
++ DocumentTypeFlowObj() {}
+ private:
+ DocumentTypeNIC nic_;
+ };
diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download
index 40e05d218..c9608b2b2 100755
--- a/source/ap/linuxdoc-tools/sources/source.download
+++ b/source/ap/linuxdoc-tools/sources/source.download
@@ -7,24 +7,27 @@
# linuxdoc-tools:
# This provides things such as sgml2txt.
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/linuxdoc-tools-0.9.66-6.fc14.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/l/linuxdoc-tools-0.9.67-1.fc18.src.rpm
# OpenSP:
# http://openjade.sourceforge.net/download.html
# wget -c http://kent.dl.sourceforge.net/sourceforge/openjade/OpenSP-1.5.2.tar.gz
#
-wget -c http://download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/opensp-1.5.2-12.fc12.src.rpm
-
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/o/opensp-1.5.2-14.fc17.src.rpm
# OpenJade:
# http://openjade.sourceforge.net/
+# We're using a gcc 4.6 patch from Fedora's SRPM:
+# ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/o/openjade-1.3.2-39.fc17.src.rpm
+# And we're using the old Perl 4 core libraries (as a dirty but effective build time work-around) taken from:
+# http://packages.debian.org/sid/libperl4-corelibs-perl
+# http://ftp.de.debian.org/debian/pool/main/libp/libperl4-corelibs-perl/libperl4-corelibs-perl_0.003.orig.tar.gz
wget -c http://downloads.sourceforge.net/openjade/openjade-1.3.3-pre1.tar.gz
-
# sgmltools-common.
# It's broken and needs patching so we'll use Fedora's.
#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/sgml-common-0.6.3.tgz
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/sgml-common-0.6.3-33.fc14.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/s/sgml-common-0.6.3-36.fc17.src.rpm
# DocBook docs:
@@ -34,8 +37,7 @@ wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/
#wget -c http://www.docbook.org/sgml/4.5/docbook-4.5.zip
# We use Debian's source because it's more convenient since they package all versions in one archive:
wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook/docbook_4.5.orig.tar.gz
-
-
+#
# http://www.linuxfromscratch.org/blfs/view/stable/pst/docbook-dsssl.html
# Check versions:
# http://sourceforge.net/projects/docbook/files/
@@ -43,13 +45,13 @@ wget -c ftp://ftp.linux.ee/pub/gentoo/distfiles/distfiles/docbook-dsssl-1.79.tar
wget -c http://switch.dl.sourceforge.net/sourceforge/docbook/docbook-dsssl-doc-1.79.tar.bz2
# Why don't they put the patches into the distributed source...???
#wget -c ftp://sources.redhat.com/pub/docbook-tools/new-trials/SOURCES/docbook-utils-0.6.14.tar.gz
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-utils-0.6.14-24.fc14.src.rpm
-
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook-utils-0.6.14-30.fc17.src.rpm
+#
#
wget -c http://www.docbook.org/xml/4.5/docbook-xml-4.5.zip
# https://sourceforge.net/project/showfiles.php?group_id=21935&package_id=16608
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/docbook-style-xsl-1.75.2-6.fc14.src.rpm
-
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook-style-xsl-1.76.1-5.fc17.src.rpm
+#
# We use the Fedora "docbook-style-xsl" SRPM for this rather than the original source which is why
# these "docbook-xsl*" files aren't in our sources directory.
#wget -c "http://downloads.sourceforge.net/project/docbook/docbook-xsl/1.75.2/docbook-xsl-1.75.2.tar.bz2?use_mirror=freefr"
@@ -61,13 +63,13 @@ wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/
# I guess this mirror is out of date now. It's easier to just look at Fedora's development
# directory anyway :-)
# wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gnome-doc-utils/0.20/gnome-doc-utils-0.20.0.tar.bz2
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/gnome-doc-utils-0.20.1-1.fc14.src.rpm
+wget ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/g/gnome-doc-utils-0.20.10-2.fc18.src.rpm
# gtk-doc:
# When upgrading this, it's worth checking the Fedora SRPM. For version 1.13
# we're carrying a fix for gtk-doc-fixref. Make sure newer versions don't need
# any patches!
-wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.15/gtk-doc-1.15.tar.bz2
+wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.18/gtk-doc-1.18.tar.bz2
# http://git.gnome.org/browse/gtk-doc/commit/?id=2bffebcf9c125f5610b8fb660d42c3c5b9dfd4f0
# sgmlspl
@@ -76,14 +78,12 @@ wget -c http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/1.15/gtk-doc-1.15.tar.bz2
wget -c http://ftp.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii.orig.tar.gz
wget -c http://ftp.de.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-perl_1.03ii-32.diff.gz
-
# xmlto
# https://fedorahosted.org/releases/x/m/xmlto
# wget -c --no-check-certificate https://fedorahosted.org/releases/x/m/xmlto/xmlto-0.0.23.tar.bz2
-# Fedora 14 includes a patch, so we'll take it:
-wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/source/SRPMS/xmlto-0.0.23-3.fc13.src.rpm
-
+# Fedora includes a patch, so we'll take it:
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/x/xmlto-0.0.25-2.fc17.src.rpm
# AsciiDoc
# http://www.methods.co.nz/asciidoc/
-wget -c "http://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.2/asciidoc-8.6.2.tar.gz/download"
+wget -c "http://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.7/asciidoc-8.6.7.tar.gz/download"
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index e6f230020..3ed08998d 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -31,8 +31,8 @@ if [ -z "$ARCH" ]; then
esac
fi
-export PKGVERSION=0.9.66 # use the version of linuxdoc-tools as the package version.
-BUILD=${BUILD:-8}
+export PKGVERSION=0.9.67 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-2}
PKGEXT=${PKGEXT:-txz}
export CWD=$PWD
diff --git a/source/ap/lm_sensors/lm_sensors.SlackBuild b/source/ap/lm_sensors/lm_sensors.SlackBuild
index 83785a566..cb1b26ccc 100755
--- a/source/ap/lm_sensors/lm_sensors.SlackBuild
+++ b/source/ap/lm_sensors/lm_sensors.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=lm_sensors
-VERSION=${VERSION:-3.1.2}
+VERSION=${VERSION:-3.3.2}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
diff --git a/source/ap/lsscsi/lsscsi.SlackBuild b/source/ap/lsscsi/lsscsi.SlackBuild
index e0ed72fec..3c034b824 100755
--- a/source/ap/lsscsi/lsscsi.SlackBuild
+++ b/source/ap/lsscsi/lsscsi.SlackBuild
@@ -110,9 +110,17 @@ fi
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- AUTHORS COPYING CREDITS ChangeLog INSTALL NEWS README \
+ AUTHORS COPYING CREDITS INSTALL NEWS README \
$PKG/usr/doc/${PKGNAM}-$VERSION
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
mkdir -p $PKG/install
#zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
diff --git a/source/ap/lxc/lxc.SlackBuild b/source/ap/lxc/lxc.SlackBuild
index 15df88c68..7b82f89ee 100755
--- a/source/ap/lxc/lxc.SlackBuild
+++ b/source/ap/lxc/lxc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=lxc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/man-pages/man-pages.SlackBuild b/source/ap/man-pages/man-pages.SlackBuild
index 8930798bf..85cfc0d27 100755
--- a/source/ap/man-pages/man-pages.SlackBuild
+++ b/source/ap/man-pages/man-pages.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008-2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -33,7 +33,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf man-pages-$VERSION
-tar xf $CWD/man-pages-$VERSION.tar.bz2
+tar xf $CWD/man-pages-$VERSION.tar.xz
tar xf $CWD/man-pages-posix-2003-a.tar.bz2
chown -R root:root man-pages-$VERSION man-pages-posix-2003-a
chmod -R a-s,u+rw,go+r-w man-pages-$VERSION man-pages-posix-2003-a
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild
index 87e929ac2..21d997db6 100755
--- a/source/ap/mc/mc.SlackBuild
+++ b/source/ap/mc/mc.SlackBuild
@@ -22,7 +22,7 @@
VERSION=${VERSION:-$(echo mc-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -56,6 +56,7 @@ cd $TMP
rm -rf mc-$VERSION
tar xvf $CWD/mc-$VERSION.tar.xz || exit 1
cd mc-$VERSION || exit 1
+
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -63,8 +64,11 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Fix tmp path for saving files:
+zcat $CWD/mc.save.file.diff.gz | patch -p1 --verbose || exit 1
+
# Use geeqie instead of gqview as an external image viewer:
-zcat $CWD/mc.ext.in.geeqie.diff.gz | patch -p1 --verbose || exit 1
+zcat $CWD/mc.image.sh.geeqie.diff.gz | patch -p1 --verbose || exit 1
if [ ! -x ./configure ]; then
./autogen.sh
@@ -106,8 +110,20 @@ cp -a $CWD/profile.d/mc.* $PKG/etc/profile.d
chown root:root $PKG/etc/profile.d/*
chmod 755 $PKG/etc/profile.d/*
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $(find $PKG/usr/man -type l) ; do ln -s $(readlink $i).gz $i.gz ; rm $i ; 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
mkdir -p $PKG/usr/doc/mc-$VERSION
cp -a \
diff --git a/source/ap/mc/mc.ext.in.geeqie.diff b/source/ap/mc/mc.ext.in.geeqie.diff
deleted file mode 100644
index 8cdfecca5..000000000
--- a/source/ap/mc/mc.ext.in.geeqie.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./misc/mc.ext.in.orig 2010-11-08 05:46:13.000000000 -0600
-+++ ./misc/mc.ext.in 2010-11-11 14:34:30.000000000 -0600
-@@ -391,7 +391,7 @@
- Include=image
-
- include/image
-- Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (gqview %f &); fi
-+ Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (geeqie %f &); fi
- View=%view{ascii} identify %f
- #View=%view{ascii} asciiview %f
-
diff --git a/source/ap/mc/mc.image.sh.geeqie.diff b/source/ap/mc/mc.image.sh.geeqie.diff
new file mode 100644
index 000000000..413807e92
--- /dev/null
+++ b/source/ap/mc/mc.image.sh.geeqie.diff
@@ -0,0 +1,11 @@
+--- ./misc/ext.d/image.sh.orig 2012-07-18 04:30:23.000000000 -0500
++++ ./misc/ext.d/image.sh 2012-09-08 14:39:11.998159169 -0500
+@@ -36,7 +36,7 @@
+ if [ "$DISPLAY" = "" ]; then
+ zgv "${MC_EXT_FILENAME}"
+ else
+- (gqview "${MC_EXT_FILENAME}" &)
++ (geeqie "${MC_EXT_FILENAME}" &)
+ fi
+ ;;
+ esac
diff --git a/source/ap/mc/mc.save.file.diff b/source/ap/mc/mc.save.file.diff
new file mode 100644
index 000000000..f54748c1b
--- /dev/null
+++ b/source/ap/mc/mc.save.file.diff
@@ -0,0 +1,37 @@
+diff --git a/src/editor/editcmd.c b/src/editor/editcmd.c
+index 2261aaa..536ac7e 100644
+--- a/src/editor/editcmd.c
++++ b/src/editor/editcmd.c
+@@ -222,7 +222,8 @@ edit_save_file (WEdit * edit, const vfs_path_t * filename_vpath)
+ if (savedir == NULL)
+ savedir = g_strdup (".");
+
+- saveprefix = mc_build_filename (savedir, "cooledit", NULL);
++ /* Token-related function never return leading slash, so we need add it manually */
++ saveprefix = mc_build_filename ("/", savedir, "cooledit", NULL);
+ g_free (savedir);
+ fd = mc_mkstemps (&savename_vpath, saveprefix, NULL);
+ g_free (saveprefix);
+@@ -365,13 +366,21 @@ edit_save_file (WEdit * edit, const vfs_path_t * filename_vpath)
+
+ if (this_save_mode == EDIT_DO_BACKUP)
+ {
++ char *tmp_store_filename;
++ vfs_path_element_t *last_vpath_element;
+ vfs_path_t *tmp_vpath;
+ gboolean ok;
+
+ #ifdef HAVE_ASSERT_H
+ assert (option_backup_ext != NULL);
+ #endif
+- tmp_vpath = vfs_path_append_new (real_filename_vpath, option_backup_ext, (char *) NULL);
++ /* add backup extention to the path */
++ tmp_vpath = vfs_path_clone (real_filename_vpath);
++ last_vpath_element = (vfs_path_element_t *) vfs_path_get_by_index (tmp_vpath, -1);
++ tmp_store_filename = last_vpath_element->path;
++ last_vpath_element->path = g_strdup_printf ("%s%s", tmp_store_filename, option_backup_ext);
++ g_free (tmp_store_filename);
++
+ ok = (mc_rename (real_filename_vpath, tmp_vpath) != -1);
+ vfs_path_free (tmp_vpath);
+ if (!ok)
diff --git a/source/ap/moc/moc.SlackBuild b/source/ap/moc/moc.SlackBuild
index 48ae54b90..35f6fc5f8 100755
--- a/source/ap/moc/moc.SlackBuild
+++ b/source/ap/moc/moc.SlackBuild
@@ -23,7 +23,7 @@
PKGNAM=moc
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | rev | cut -f 2- -d -)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/mysql/README.mysql-embedded b/source/ap/mysql/README.mysql-embedded
new file mode 100644
index 000000000..21b519e91
--- /dev/null
+++ b/source/ap/mysql/README.mysql-embedded
@@ -0,0 +1,7 @@
+The mysql-embedded.SlackBuild produces a package containing
+a static libmysqld.a library (and some support files) that
+is required in order to build applications that embed a
+mysql server (such as amarok). If you need to build such
+applications, first you'll need to use this SlackBuild to
+prepare a mysql package that contains embedded support and
+install it on your system.
diff --git a/source/ap/mysql/doinst.sh b/source/ap/mysql/doinst.sh
index 22f77474e..a5d835faf 100644
--- a/source/ap/mysql/doinst.sh
+++ b/source/ap/mysql/doinst.sh
@@ -19,4 +19,5 @@ if [ -e etc/rc.d/rc.mysqld ]; then
fi
config etc/rc.d/rc.mysqld.new
+config etc/mysqlaccess.conf.new
diff --git a/source/ap/mysql/mirror-url b/source/ap/mysql/mirror-url
new file mode 100644
index 000000000..33ff56b03
--- /dev/null
+++ b/source/ap/mysql/mirror-url
@@ -0,0 +1 @@
+http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.25a.tar.gz
diff --git a/source/ap/mysql/mysql-embedded.SlackBuild b/source/ap/mysql/mysql-embedded.SlackBuild
new file mode 100755
index 000000000..f5f178a9b
--- /dev/null
+++ b/source/ap/mysql/mysql-embedded.SlackBuild
@@ -0,0 +1,221 @@
+#!/bin/sh
+
+# Copyright 2008, 2009, 2010, 2012 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.
+
+# Build and install MySQL on Slackware
+# by: David Cantrell <david@slackware.com>
+# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
+
+
+VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) export ARCH=i486 ;;
+ arm*) export ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) export ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+CWD=$(pwd)
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-mysql
+
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf mysql-$VERSION
+tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1
+cd mysql-$VERSION
+
+if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then
+ for patch in $CWD/*.diff.gz ; do
+ zcat $patch | patch -p1 --verbose || exit 1
+ done
+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 {} \;
+
+mkdir build
+cd build
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \
+CXX=gcc \
+cmake \
+ -DBUILD_CONFIG=mysql_release \
+ -DFEATURE_SET="community" \
+ -DINSTALL_LAYOUT="RPM" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINSTALL_LIBDIR="lib${LIBDIRSUFFIX}" \
+ -DINSTALL_SBINDIR=libexec \
+ -DINSTALL_INCLUDEDIR=include/mysql \
+ -DINSTALL_MYSQLSHAREDIR=share/mysql \
+ -DINSTALL_SQLBENCHDIR= \
+ -DINSTALL_MYSQLTESTDIR=mysql-test \
+ -DINSTALL_INFODIR=info \
+ -DINSTALL_MANDIR=man \
+ -DINSTALL_PLUGINDIR="lib${LIBDIRSUFFIX}/mysql/plugin" \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_SUPPORTFILESDIR=share/mysql \
+ -DINSTALL_MYSQLDATADIR="/var/lib/mysql" \
+ -DMYSQL_DATADIR="/var/lib/mysql" \
+ -DMYSQL_UNIX_ADDR="/var/run/mysql/mysql.sock" \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DENABLED_LOCAL_INFILE=ON \
+ -DWITH_EMBEDDED_SERVER=ON \
+ -DWITH_READLINE=ON \
+ -DWITH_SSL=system \
+ -DWITH_ZLIB=system \
+ ..
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG
+
+# Install sample configuration files:
+mkdir -p $PKG/etc/mysql
+cp support-files/my-*.cnf $PKG/etc/mysql
+
+# Move mysqlaccess.conf to a more proper place
+mv $PKG/usr/bin/mysqlaccess.conf $PKG/etc/mysqlaccess.conf.new
+chmod 644 $PKG/etc/mysqlaccess.conf.new
+
+# Leave build directory:
+cd ..
+
+# install additional headers needed for building external engine plugins:
+mkdir -p $PKG/usr/include/mysql/private/atomic
+
+install -m 644 regex/my_regex.h $PKG/usr/include/mysql/private/
+
+for i in sql include; do
+ for j in $i/*.h; do
+ install -m 644 $j $PKG/usr/include/mysql/private/
+ done
+done
+
+for i in include/atomic/*.h; do
+ install -m 644 $i $PKG/usr/include/mysql/private/atomic/
+done
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+
+# Install docs
+mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs
+cp -a \
+ BUILD* COPYING* EXCEPTIONS* INSTALL-SOURCE README* VERSION \
+ $PKG/usr/doc/mysql-$VERSION
+( cd Docs
+ # Seems most of the Docs/* are gone, but we'll leave the cp stuff
+ # in case it returns.
+ cp -a INFO_SRC INSTALL-BINARY *.html *.txt Flags \
+ $PKG/usr/doc/mysql-$VERSION/Docs )
+## Too large to justify since the .html version is right there:
+#rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt
+find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \;
+
+# This is the directory where databases are stored:
+mkdir -p $PKG/var/lib/mysql
+chown mysql.mysql $PKG/var/lib/mysql
+chmod 0750 $PKG/var/lib/mysql
+
+# This is where the socket is stored:
+mkdir -p $PKG/var/run/mysql
+chown mysql.mysql $PKG/var/run/mysql
+chmod 0755 $PKG/var/run/mysql
+
+# Do not package the test suite:
+rm -rf $PKG/usr/mysql-test
+
+# More unpackaged things:
+rm -f $PKG/usr/info/dir
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient.a
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient_r.*
+( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf libmysqlclient.so libmysqlclient_r.so )
+
+# Add init script:
+mkdir -p $PKG/etc/rc.d
+# This is intentionally chmod 644.
+zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new
+
+# Install script:
+mkdir -p $PKG/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+# 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
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+# Build package:
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-${BUILD}_withembedded.txz
diff --git a/source/ap/mysql/mysql-embedded.build b/source/ap/mysql/mysql-embedded.build
deleted file mode 100755
index 004bb30d6..000000000
--- a/source/ap/mysql/mysql-embedded.build
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/sh
-# Build and install MySQL on Slackware
-# by: David Cantrell <david@slackware.com>
-# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
-
-VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
-
-# Automatically determine the architecture we're building on:
-if [ -z "$ARCH" ]; then
- case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
- # Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
- esac
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-mysql
-
-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"
-else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
-fi
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP
-rm -rf mysql-$VERSION
-tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1
-cd mysql-$VERSION
-
-if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then
- for patch in $CWD/*.diff.gz ; do
- zcat $patch | patch -p1 --verbose || exit 1
- done
-fi
-
-CFLAGS="$SLKCFLAGS -fPIC" CXXFLAGS="$SLKCFLAGS -fPIC" \
- ./configure --prefix=/usr --libdir=/usr/lib${LIBDIRSUFFIX} \
- --datadir=/usr/share --sysconfdir=/etc/mysql \
- --libexecdir=/usr/sbin --localstatedir=/var/lib/mysql \
- --without-docs --without-man --without-server \
- --with-embedded-server \
- --without-readline --disable-shared --with-charset=utf8 \
- --without-debug --with-pthread --without-ssl --without-query-cache \
- --without-geometry --with-pic
-
-make -j6 || make || exit 1
-
-cp libmysqld/libmysqld.a /usr/lib${LIBDIRSUFFIX}/mysql/
-
diff --git a/source/ap/mysql/mysql.SlackBuild b/source/ap/mysql/mysql.SlackBuild
index ce149a156..6690c0f5e 100755
--- a/source/ap/mysql/mysql.SlackBuild
+++ b/source/ap/mysql/mysql.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -77,82 +77,104 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+mkdir build
+cd build
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \
CXX=gcc \
-./configure \
- --prefix=/usr \
- --libdir=/usr/lib${LIBDIRSUFFIX} \
- --with-mysqld-user=mysql \
- --with-unix-socket-path=/var/run/mysql/mysql.sock \
- --localstatedir=/var/lib/mysql \
- --mandir=/usr/man \
- --infodir=/usr/info \
- --enable-assembler \
- --without-debug \
- --enable-thread-safe-client \
- --with-extra-charsets=complex \
- --with-ssl=/usr \
- --enable-largefile \
- --with-innodb \
- --with-readline \
- --build=$ARCH-slackware-linux
-#
-# --without-readline
+cmake \
+ -DBUILD_CONFIG=mysql_release \
+ -DFEATURE_SET="community" \
+ -DINSTALL_LAYOUT="RPM" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DINSTALL_LIBDIR="lib${LIBDIRSUFFIX}" \
+ -DINSTALL_SBINDIR=libexec \
+ -DINSTALL_INCLUDEDIR=include/mysql \
+ -DINSTALL_MYSQLSHAREDIR=share/mysql \
+ -DINSTALL_SQLBENCHDIR= \
+ -DINSTALL_MYSQLTESTDIR=mysql-test \
+ -DINSTALL_INFODIR=info \
+ -DINSTALL_MANDIR=man \
+ -DINSTALL_PLUGINDIR="lib${LIBDIRSUFFIX}/mysql/plugin" \
+ -DINSTALL_SCRIPTDIR=bin \
+ -DINSTALL_SUPPORTFILESDIR=share/mysql \
+ -DINSTALL_MYSQLDATADIR="/var/lib/mysql" \
+ -DMYSQL_DATADIR="/var/lib/mysql" \
+ -DMYSQL_UNIX_ADDR="/var/run/mysql/mysql.sock" \
+ -DWITH_EXTRA_CHARSETS=complex \
+ -DWITH_INNOBASE_STORAGE_ENGINE=1 \
+ -DENABLED_LOCAL_INFILE=ON \
+ -DWITH_EMBEDDED_SERVER=OFF \
+ -DWITH_READLINE=ON \
+ -DWITH_SSL=system \
+ -DWITH_ZLIB=system \
+ ..
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
-# install additional headers needed for building external engine plugins
-for i in sql include regex; do
+# Install sample configuration files:
+mkdir -p $PKG/etc/mysql
+cp support-files/my-*.cnf $PKG/etc/mysql
+
+# Move mysqlaccess.conf to a more proper place
+mv $PKG/usr/bin/mysqlaccess.conf $PKG/etc/mysqlaccess.conf.new
+chmod 644 $PKG/etc/mysqlaccess.conf.new
+
+# Leave build directory:
+cd ..
+
+# install additional headers needed for building external engine plugins:
+mkdir -p $PKG/usr/include/mysql/private/atomic
+
+install -m 644 regex/my_regex.h $PKG/usr/include/mysql/private/
+
+for i in sql include; do
for j in $i/*.h; do
- install -m 644 $j $PKG/usr/include/mysql/
+ install -m 644 $j $PKG/usr/include/mysql/private/
done
done
-mkdir -p $PKG/usr/include/mysql/atomic
for i in include/atomic/*.h; do
- install -m 644 $i $PKG/usr/include/mysql/atomic/
+ install -m 644 $i $PKG/usr/include/mysql/private/atomic/
done
-# The ./configure option to omit this has gone away, so we'll omit it
-# the old-fashioned way. It's all in the source tarball if you need it.
-rm -rf $PKG/usr/sql-bench
-
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-# Install support files
-mkdir -p $PKG/etc
-cp support-files/my-{huge,large,medium,small}.cnf $PKG/etc
-
# Install docs
mkdir -p $PKG/usr/doc/mysql-$VERSION/Docs
cp -a \
- COPYING* EXCEPTIONS* INSTALL-SOURCE README* \
+ BUILD* COPYING* EXCEPTIONS* INSTALL-SOURCE README* VERSION \
$PKG/usr/doc/mysql-$VERSION
( cd Docs
# Seems most of the Docs/* are gone, but we'll leave the cp stuff
# in case it returns.
- cp -a INSTALL-BINARY *.html *.txt Flags \
+ cp -a INFO_SRC INSTALL-BINARY *.html *.txt Flags \
$PKG/usr/doc/mysql-$VERSION/Docs )
## Too large to justify since the .html version is right there:
#rm $PKG/usr/doc/mysql-$VERSION/Docs/manual.txt
find $PKG/usr/doc/mysql-$VERSION -type f -exec chmod 0644 {} \;
-# This is the directory where databases are stored
+# This is the directory where databases are stored:
mkdir -p $PKG/var/lib/mysql
chown mysql.mysql $PKG/var/lib/mysql
chmod 0750 $PKG/var/lib/mysql
-# This is where the socket is stored
+# This is where the socket is stored:
mkdir -p $PKG/var/run/mysql
chown mysql.mysql $PKG/var/run/mysql
chmod 0755 $PKG/var/run/mysql
-# Do not include the test suite:
+# Do not package the test suite:
rm -rf $PKG/usr/mysql-test
+# More unpackaged things:
+rm -f $PKG/usr/info/dir
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient.a
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient_r.*
+( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf libmysqlclient.so libmysqlclient_r.so )
+
# Add init script:
mkdir -p $PKG/etc/rc.d
# This is intentionally chmod 644.
@@ -163,29 +185,6 @@ mkdir -p $PKG/install
zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cat $CWD/slack-desc > $PKG/install/slack-desc
-# Add some handy library symlinks:
-if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient.so.16 ]; then
- ( cd $PKG/usr/lib${LIBDIRSUFFIX}
- rm -f libmysqlclient.so libmysqlclient.so.16
- ln -sf mysql/libmysqlclient.so .
- ln -sf mysql/libmysqlclient.so.16 .
- )
-else
- exit 1
-fi
-if [ -r $PKG/usr/lib${LIBDIRSUFFIX}/mysql/libmysqlclient_r.so.16 ]; then
- ( cd $PKG/usr/lib${LIBDIRSUFFIX}
- rm -f libmysqlclient_r.so libmysqlclient_r.so.16
- ln -sf mysql/libmysqlclient_r.so .
- ln -sf mysql/libmysqlclient_r.so.16 .
- )
-else
- exit 1
-fi
-
-# Packaging standards:
-rm -f $PKG/usr/info/dir
-
# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
@@ -220,4 +219,3 @@ fi
# Build package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/extra/source/fvwm-2.6.1/doinst.sh b/source/ap/nano/doinst.sh
index 087da9e3e..3cd3405f7 100644
--- a/extra/source/fvwm-2.6.1/doinst.sh
+++ b/source/ap/nano/doinst.sh
@@ -10,5 +10,4 @@ config() {
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
-# Might need this later
-#config etc/X11/fvwm2/system.fvwm2rc.new
+config etc/nanorc.new
diff --git a/source/ap/nano/nano.SlackBuild b/source/ap/nano/nano.SlackBuild
index c6e3c3ade..0f9e114c6 100755
--- a/source/ap/nano/nano.SlackBuild
+++ b/source/ap/nano/nano.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -23,7 +23,7 @@
PKGNAM=nano
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -39,12 +39,24 @@ fi
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ ARCHQUADLET=""
+elif [ "$ARCH" = "arm" ]; then
+ SLKCFLAGS="-O2 -march=armv5te"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET="-gnueabi"
else
SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+ ARCHQUADLET=""
fi
CWD=$(pwd)
@@ -80,7 +92,8 @@ CFLAGS="$SLKCFLAGS" \
--enable-nanorc \
--enable-all \
--enable-utf8 \
- --build=$ARCH-slackware-linux
+ --disable-wrapping-as-root \
+ --build=$ARCH-slackware-linux$ARCHQUADLET || exit 1
# Build and install:
make $NUMJOBS || make || exit 1
@@ -113,6 +126,13 @@ if [ -d $PKG/usr/info ]; then
)
fi
+# Install a default /etc/nanorc file. This is the standard sample
+# file from the doc directory that loads the colour configurations
+# from /usr/share/nano.
+mkdir -vpm755 $PKG/etc
+sed 's?^# include?include?g' doc/nanorc.sample > $PKG/etc/nanorc.new
+chmod 644 $PKG/etc/nanorc.new
+
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
@@ -128,8 +148,10 @@ if [ -r ChangeLog ]; then
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
+# Place the package description and installation script:
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/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/ap/ntfsprogs/slack-desc b/source/ap/ntfsprogs/slack-desc
deleted file mode 100644
index 4ed38c92b..000000000
--- a/source/ap/ntfsprogs/slack-desc
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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------------------------------------------------------|
-ntfsprogs: ntfsprogs (utilities for working with NTFS volumes)
-ntfsprogs:
-ntfsprogs: The ntfsprogs includes utilities for doing all required tasks to NTFS
-ntfsprogs: partitions. In general, just run a utility without any command line
-ntfsprogs: options to display the version number and usage syntax. The following
-ntfsprogs: utilities are implemented (so far): ntfsfix, mkntfs, ntfslabel,
-ntfsprogs: ntfsundelete, ntfsresize, ntfsclone, ntfscluster, ntfsinfo, ntfsls,
-ntfsprogs: ntfscat, ntfscp, and ntfsmount.
-ntfsprogs:
-ntfsprogs: The Linux-NTFS home page is: http://www.linux-ntfs.org/
-ntfsprogs:
diff --git a/source/ap/powertop/powertop.SlackBuild b/source/ap/powertop/powertop.SlackBuild
index 7767580be..f4f4beaed 100755
--- a/source/ap/powertop/powertop.SlackBuild
+++ b/source/ap/powertop/powertop.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,10 +20,14 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Modified by Willy Sudiarto Raharjo
+# Changelog
+# May, 11 : Bumped to 2.0, Fix compilation process, Added patch to fix complaints about a file
+# May, 18 : Rebuilt, removed non-existence directory for man pages
PKGNAM=powertop
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -35,6 +39,8 @@ if [ -z "$ARCH" ]; then
esac
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
@@ -68,21 +74,45 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+LDFLAGS=" -lresolv -lz " \
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --build=$ARCH-slackware-linux
+
# Build and install:
-make || exit 1
+make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Move man pages:
-mv $PKG/usr/share/man $PKG/usr
-
# 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 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
+
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
- COPYING* README* \
+ COPYING* README* TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
diff --git a/source/ap/rpm/rpm.SlackBuild b/source/ap/rpm/rpm.SlackBuild
index 2f930c374..2891472b7 100755
--- a/source/ap/rpm/rpm.SlackBuild
+++ b/source/ap/rpm/rpm.SlackBuild
@@ -55,10 +55,7 @@ elif [ "$ARCH" = "armel" ]; then
LIBDIRSUFFIX=""
fi
-NSS_INC="/usr/include/seamonkey/nss"
-NSPR_INC="/usr/include/seamonkey/nspr"
-DB_INC="/usr/include/db44"
-NSS_LIBS="/usr/lib${LIBDIRSUFFIX}/seamonkey"
+DB_INC="/usr/include/db48"
CWD=$(pwd)
TMP=${TMP:-/tmp}
@@ -78,11 +75,11 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# We have to tell it where to find Seamonkey's NSS.
+# We have to tell it where to find NSS and NSPR
# Also, --enable-sqlite3 needs "-ldl" in LDFLAGS
# And --enable-broken-chown fits, as ours follows symlinks.
-CFLAGS="$SLKCFLAGS -I$NSS_INC -I$NSPR_INC -I$DB_INC" \
-LDFLAGS="-L${NSS_LIBS} -ldl" \
+CFLAGS="$SLKCFLAGS -I${DB_INC} $(pkg-config --cflags nspr nss)" \
+LDFLAGS="-ldl" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
diff --git a/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild
index 3464bc4a8..29ad8c694 100755
--- a/source/ap/screen/screen.SlackBuild
+++ b/source/ap/screen/screen.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=${VERSION:-4.0.3}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -51,10 +51,13 @@ rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
rm -rf screen-$VERSION
-tar xjvf $CWD/screen-$VERSION.tar.bz2
+tar xvf $CWD/screen-$VERSION.tar.?z* || exit 1
cd screen-$VERSION || exit 1
+# Increase the size of the termname buffer from 20 to 63:
+zcat $CWD/screen.d_termname.envterm.buffersizeincrease.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 \) \
@@ -72,7 +75,7 @@ CFLAGS="$SLKCFLAGS" \
--enable-locale \
--enable-colors256 \
--enable-rxvt_osc \
- $ARCH-slackware-linux
+ --build=$ARCH-slackware-linux
# Substitutions:
perl -pi -e 's|.*#undef HAVE_BRAILLE.*|#define HAVE_BRAILLE 1|' config.h
diff --git a/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff b/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff
new file mode 100644
index 000000000..26765d6ca
--- /dev/null
+++ b/source/ap/screen/screen.d_termname.envterm.buffersizeincrease.diff
@@ -0,0 +1,22 @@
+--- ./display.h.orig 2003-07-01 09:01:42.000000000 -0500
++++ ./display.h 2011-07-18 16:01:03.691998366 -0500
+@@ -85,7 +85,7 @@
+ struct win *d_other; /* pointer to other window */
+ int d_nonblock; /* -1 don't block if obufmax reached */
+ /* >0: block after nonblock secs */
+- char d_termname[20 + 1]; /* $TERM */
++ char d_termname[63 + 1]; /* $TERM */
+ char *d_tentry; /* buffer for tgetstr */
+ char d_tcinited; /* termcap inited flag */
+ int d_width, d_height; /* width/height of the screen */
+--- ./screen.h.orig 2003-08-22 07:28:43.000000000 -0500
++++ ./screen.h 2011-07-18 16:01:09.388004936 -0500
+@@ -202,7 +202,7 @@
+ char preselect[20];
+ int esc; /* his new escape character unless -1 */
+ int meta_esc; /* his new meta esc character unless -1 */
+- char envterm[20 + 1]; /* terminal type */
++ char envterm[63 + 1]; /* terminal type */
+ int encoding; /* encoding of display */
+ }
+ attach;
diff --git a/source/x/x11/slack-desc/xfwp b/source/ap/soma/slack-desc
index 572036c67..bc1725a6c 100644
--- a/source/x/x11/slack-desc/xfwp
+++ b/source/ap/soma/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-xfwp: xfwp
-xfwp:
-xfwp: xfwp is part of X11.
-xfwp:
-xfwp: For more information about the X.Org Foundation (the providers of the
-xfwp: X.Org implementation of the X Window System), see their website:
-xfwp:
-xfwp: http://www.x.org
-xfwp:
-xfwp:
-xfwp:
+soma: Soma - a command line/dialog internet radio player
+soma:
+soma: Soma is a frontend for mplayer to play radio playlists pls,m3u and
+soma: ram. More will be added as it progresses.
+soma:
+soma: Homepage: http://www.dawoodfall.net/slackbuilds/noversion/soma
+soma:
+soma:
+soma:
+soma:
+soma:
diff --git a/source/l/hal-info/hal-info.SlackBuild b/source/ap/soma/soma.SlackBuild
index 5f527f584..c7cc38ae6 100755
--- a/source/l/hal-info/hal-info.SlackBuild
+++ b/source/ap/soma/soma.SlackBuild
@@ -1,7 +1,8 @@
#!/bin/sh
-# Copyright 2007-2010 Robby Workman, Northport, AL, USA
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Slackware build script for soma
+# Copyright 2010-2011 David Woodfall <dave@dawoodfall.net>
+# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,22 +22,25 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-PKGNAM=hal-info
-VERSION=${VERSION:-20091130}
+PKGNAM=soma
+VERSION=${VERSION:-2.8.5}
ARCH=noarch
BUILD=${BUILD:-1}
+TAG=${TAG:-}
CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-$PKGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
rm -rf $PKG
-mkdir -p $TMP $PKG
-cd $TMP || exit 1
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
-cd $PKGNAM-$VERSION || exit 1
+tar xvf $CWD/$PKGNAM-$VERSION.tar.gz
+cd $PKGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -44,26 +48,20 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Apply a couple of patches from git
-zcat $CWD/patches/quirk-LG_X110-keyboard.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/patches/quirk-acer_aspire_hotkey.patch.gz | patch -p1 --verbose || exit 1
-
-./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- || exit 1
+mkdir -p $PKG/usr/bin $PKG/etc/soma $PKG/install $PKG/usr/doc/$PKGNAM-$VERSION
-make || exit 1
-make install DESTDIR=$PKG || exit 1
+install -m 755 soma $PKG/usr/bin/soma
+install --m 644 options.conf $PKG/etc/soma
+install --m 644 stations.conf $PKG/etc/soma
+install --m 644 dialogrc $PKG/etc/soma
-mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- AUTHORS COPYING* HACKING INSTALL NEWS README* \
+ README \
$PKG/usr/doc/$PKGNAM-$VERSION
-mkdir -p $PKG/install
+#cat $CWD/$PKGNAM.SlackBuild > $PKG/usr/doc/$PKGNAM-$VERSION/$PKGNAM.SlackBuild
cat $CWD/slack-desc > $PKG/install/slack-desc
cd $PKG
-/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $OUTPUT/$PKGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-txz}
diff --git a/source/ap/soma/soma.info b/source/ap/soma/soma.info
new file mode 100644
index 000000000..0255d3d6e
--- /dev/null
+++ b/source/ap/soma/soma.info
@@ -0,0 +1,10 @@
+PRGNAM="soma"
+VERSION="2.8.5"
+HOMEPAGE="http://www.dawoodfall.net/files/slackbuilds/noversion/soma/"
+DOWNLOAD="http://www.dawoodfall.net/files/slackbuilds/noversion/soma/soma-2.8.5.tar.gz"
+MD5SUM="193112a1dc8de8781b83d3a1bceedee6"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="David Woodfall"
+EMAIL="dave@dawoodfall.net"
+APPROVED=""
diff --git a/source/ap/soma/soma.png b/source/ap/soma/soma.png
new file mode 100644
index 000000000..1e545a938
--- /dev/null
+++ b/source/ap/soma/soma.png
Binary files differ
diff --git a/source/ap/soma/stations.conf b/source/ap/soma/stations.conf
new file mode 100644
index 000000000..4a2c43083
--- /dev/null
+++ b/source/ap/soma/stations.conf
@@ -0,0 +1,38 @@
+Groove Salad,http://somafm.com/groovesalad130.pls
+Lush,http://somafm.com/lush.pls
+Suburbs of Goa,http://somafm.com/suburbsofgoa.pls
+Drone Zone,http://somafm.com/dronezone.pls
+Indie Pop Rocks,http://somafm.com/indiepop.pls
+Digitalis,http://somafm.com/digitalis.pls
+PopTron,http://somafm.com/poptron.pls
+Covers,http://somafm.com/covers.pls
+Secret Agent,http://somafm.com/secretagent.pls
+Boot Liquor,http://somafm.com/bootliquor.pls
+Illinois Street Lounge,http://somafm.com/illstreet.pls
+Cliqhop IDM,http://somafm.com/cliqhop.pls
+Sonic Universe,http://somafm.com/sonicuniverse.pls
+Beat Blender,http://somafm.com/beatblender.pls
+Tag's Trip,http://somafm.com/tags.pls
+Space Station Soma,http://somafm.com/spacestation.pls
+Mission Control,http://somafm.com/missioncontrol.pls
+Doomed,http://somafm.com/doomed.pls
+BBC Radio 1,http://www.bbc.co.uk/radio/listen/live/r1.asx
+BBC Radio 2,http://www.bbc.co.uk/radio/listen/live/r2.asx
+BBC Radio 3,http://www.bbc.co.uk/radio/listen/live/r3.asx
+BBC Radio 4,http://www.bbc.co.uk/radio/listen/live/r4.asx
+BBC Radio 7,http://www.bbc.co.uk/radio/listen/live/r7.asx
+BBC World Service,http://www.bbc.co.uk/worldservice/meta/tx/nb/live/eneuk.asx
+BBC WS News,http://www.bbc.co.uk/worldservice/meta/tx/nb/live/ennws.asx
+Classic FM,http://mediaweb.musicradio.com/V1/Playlist.asx?StreamID=2
+InterGalacticFM1,http://radio.intergalacticfm.com/1.m3u
+InterGalacticFM2,http://radio.intergalacticfm.com/2.m3u
+InterGalacticFM3,http://radio.intergalacticfm.com/3.m3u
+InterGalacticFM4,http://radio.intergalacticfm.com/4.m3u
+DarkWave Gothic,http://yp.shoutcast.com/sbin/tunein-station.pls?id=392221
+Meridian FM,http://www.meridianfm.com/listen2meridianfm.m3uj
+kpfa,http://www.kpfa.org/streams/kpfa_64k.m3u
+wcbn,http://floyd.wcbn.org/wcbn-hi.m3u
+Pyrolitical,http://broadcast.pyrolitical.com:8000/Pyrolitical_Radio.m3u
+Dissident,http://radio.indybay.org:8000/dissidentisland.m3u
+GFMONLINE,http://www.gfmradio.com/GFMONLINE.wvx
+Celtic Music Radio,http://www.celticmusicradio.net/celtic_live.m3u
diff --git a/source/ap/sqlite/sqlite.SlackBuild b/source/ap/sqlite/sqlite.SlackBuild
index 61f259b04..bbb03bd39 100755
--- a/source/ap/sqlite/sqlite.SlackBuild
+++ b/source/ap/sqlite/sqlite.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for sqlite
# Copyright 2006 Martin Lefebvre <dadexter@gmail.com>
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -25,7 +25,7 @@
PKGNAM=sqlite
VERSION=${VERSION:-$(echo $PKGNAM-src-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-OLD_STYLE=$(echo $VERSION | tr 0 . | cut -f 1-3 -d .)
+OLD_STYLE=$(printf %d $(echo $VERSION | cut -b 1)).$(printf %d $(echo $VERSION | cut -b 2,3)).$(printf %d $(echo $VERSION | cut -b 4,5))
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -59,7 +59,7 @@ else
fi
# Enable some features:
-SLKCFLAGS="$SLKCFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_STAT2=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1"
+SLKCFLAGS="$SLKCFLAGS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_STAT2=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_SECURE_DELETE=1"
rm -rf $PKG
mkdir -p $TMP $PKG
diff --git a/source/ap/sudo/sudo.SlackBuild b/source/ap/sudo/sudo.SlackBuild
index c3b853602..8081e9171 100755
--- a/source/ap/sudo/sudo.SlackBuild
+++ b/source/ap/sudo/sudo.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,7 +22,7 @@
PKGNAM=sudo
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -56,7 +56,7 @@ fi
cd $TMP
rm -rf sudo-$VERSION
-tar xvf $CWD/sudo-$VERSION.tar.gz || exit 1
+tar xvf $CWD/sudo-$VERSION.tar.?z* || exit 1
cd sudo-$VERSION
chown -R root:root .
@@ -99,8 +99,8 @@ mv $PKG/etc/sudoers $PKG/etc/sudoers.new
rm -r $PKG/usr/doc/sudo-$VERSION
mkdir -p $PKG/usr/doc/sudo-$VERSION
cp -a \
- BUGS HISTORY INSTALL LICENSE PORTING README* \
- RUNSON TODO TROUBLESHOOTING UPGRADE WHATSNEW \
+ INSTALL NEWS README* \
+ doc/{CONTRIBUTORS,HISTORY,LICENSE,TROUBLESHOOTING,UPGRADE} \
$PKG/usr/doc/sudo-$VERSION
chmod 644 $PKG/usr/doc/sudo-$VERSION/*
diff --git a/source/ap/vbetool/slack-desc b/source/ap/vbetool/slack-desc
index c43966918..b10d5fa4e 100644
--- a/source/ap/vbetool/slack-desc
+++ b/source/ap/vbetool/slack-desc
@@ -11,7 +11,7 @@ vbetool:
vbetool: vbetool is a small application that executes code from the BIOS of
vbetool: your video card.
vbetool:
-vbetool: This is mostly useful for reinitialising the hardware, for instance
+vbetool: This is mostly useful for reinitializing the hardware, for instance
vbetool: after ACPI suspend/resuming.
vbetool:
vbetool: Homepage: http://www.codon.org.uk/~mjg59/vbetool/
diff --git a/source/ap/vim/patches/7.3.155 b/source/ap/vim/patches/7.3.155
new file mode 100644
index 000000000..806efca2b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.155
@@ -0,0 +1,286 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.155
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.155
+Problem: Crash when using map(), filter() and remove() on v:. (ZyX)
+ Also for extend(). (Yukihiro Nakadaira)
+Solution: Mark v: as locked. Also correct locking error messages.
+Files: src/eval.c
+
+
+*** ../vim-7.3.154/src/eval.c 2011-04-01 16:07:41.000000000 +0200
+--- src/eval.c 2011-04-11 13:28:34.000000000 +0200
+***************
+*** 853,858 ****
+--- 853,859 ----
+
+ init_var_dict(&globvardict, &globvars_var);
+ init_var_dict(&vimvardict, &vimvars_var);
++ vimvardict.dv_lock = VAR_FIXED;
+ hash_init(&compat_hashtab);
+ hash_init(&func_hashtab);
+
+***************
+*** 8545,8551 ****
+ if (argvars[0].v_type == VAR_LIST)
+ {
+ if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)"add()")
+ && list_append_tv(l, &argvars[1]) == OK)
+ copy_tv(&argvars[0], rettv);
+ }
+--- 8546,8552 ----
+ if (argvars[0].v_type == VAR_LIST)
+ {
+ if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)_("add() argument"))
+ && list_append_tv(l, &argvars[1]) == OK)
+ copy_tv(&argvars[0], rettv);
+ }
+***************
+*** 9946,9951 ****
+--- 9947,9954 ----
+ typval_T *argvars;
+ typval_T *rettv;
+ {
++ char *arg_errmsg = N_("extend() argument");
++
+ if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST)
+ {
+ list_T *l1, *l2;
+***************
+*** 9955,9961 ****
+
+ l1 = argvars[0].vval.v_list;
+ l2 = argvars[1].vval.v_list;
+! if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)"extend()")
+ && l2 != NULL)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+--- 9958,9964 ----
+
+ l1 = argvars[0].vval.v_list;
+ l2 = argvars[1].vval.v_list;
+! if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)_(arg_errmsg))
+ && l2 != NULL)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+***************
+*** 9994,10000 ****
+
+ d1 = argvars[0].vval.v_dict;
+ d2 = argvars[1].vval.v_dict;
+! if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)"extend()")
+ && d2 != NULL)
+ {
+ /* Check the third argument. */
+--- 9997,10003 ----
+
+ d1 = argvars[0].vval.v_dict;
+ d2 = argvars[1].vval.v_dict;
+! if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)_(arg_errmsg))
+ && d2 != NULL)
+ {
+ /* Check the third argument. */
+***************
+*** 10236,10255 ****
+ typval_T save_key;
+ int rem;
+ int todo;
+! char_u *ermsg = map ? (char_u *)"map()" : (char_u *)"filter()";
+ int save_did_emsg;
+ int idx = 0;
+
+ if (argvars[0].v_type == VAR_LIST)
+ {
+ if ((l = argvars[0].vval.v_list) == NULL
+! || (map && tv_check_lock(l->lv_lock, ermsg)))
+ return;
+ }
+ else if (argvars[0].v_type == VAR_DICT)
+ {
+ if ((d = argvars[0].vval.v_dict) == NULL
+! || (map && tv_check_lock(d->dv_lock, ermsg)))
+ return;
+ }
+ else
+--- 10239,10260 ----
+ typval_T save_key;
+ int rem;
+ int todo;
+! char_u *ermsg = (char_u *)(map ? "map()" : "filter()");
+! char *arg_errmsg = (map ? N_("map() argument")
+! : N_("filter() argument"));
+ int save_did_emsg;
+ int idx = 0;
+
+ if (argvars[0].v_type == VAR_LIST)
+ {
+ if ((l = argvars[0].vval.v_list) == NULL
+! || tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+ return;
+ }
+ else if (argvars[0].v_type == VAR_DICT)
+ {
+ if ((d = argvars[0].vval.v_dict) == NULL
+! || tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+ return;
+ }
+ else
+***************
+*** 10286,10292 ****
+ {
+ --todo;
+ di = HI2DI(hi);
+! if (tv_check_lock(di->di_tv.v_lock, ermsg))
+ break;
+ vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+ if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+--- 10291,10298 ----
+ {
+ --todo;
+ di = HI2DI(hi);
+! if (tv_check_lock(di->di_tv.v_lock,
+! (char_u *)_(arg_errmsg)))
+ break;
+ vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
+ if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
+***************
+*** 10305,10311 ****
+
+ for (li = l->lv_first; li != NULL; li = nli)
+ {
+! if (tv_check_lock(li->li_tv.v_lock, ermsg))
+ break;
+ nli = li->li_next;
+ vimvars[VV_KEY].vv_nr = idx;
+--- 10311,10317 ----
+
+ for (li = l->lv_first; li != NULL; li = nli)
+ {
+! if (tv_check_lock(li->li_tv.v_lock, (char_u *)_(arg_errmsg)))
+ break;
+ nli = li->li_next;
+ vimvars[VV_KEY].vv_nr = idx;
+***************
+*** 12910,12916 ****
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "insert()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)"insert()"))
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ before = get_tv_number_chk(&argvars[2], &error);
+--- 12916,12922 ----
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "insert()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)_("insert() argument")))
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ before = get_tv_number_chk(&argvars[2], &error);
+***************
+*** 14775,14787 ****
+ char_u *key;
+ dict_T *d;
+ dictitem_T *di;
+
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ EMSG2(_(e_toomanyarg), "remove()");
+ else if ((d = argvars[0].vval.v_dict) != NULL
+! && !tv_check_lock(d->dv_lock, (char_u *)"remove() argument"))
+ {
+ key = get_tv_string_chk(&argvars[1]);
+ if (key != NULL)
+--- 14781,14794 ----
+ char_u *key;
+ dict_T *d;
+ dictitem_T *di;
++ char *arg_errmsg = N_("remove() argument");
+
+ if (argvars[0].v_type == VAR_DICT)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+ EMSG2(_(e_toomanyarg), "remove()");
+ else if ((d = argvars[0].vval.v_dict) != NULL
+! && !tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))
+ {
+ key = get_tv_string_chk(&argvars[1]);
+ if (key != NULL)
+***************
+*** 14801,14807 ****
+ else if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listdictarg), "remove()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)"remove() argument"))
+ {
+ int error = FALSE;
+
+--- 14808,14814 ----
+ else if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listdictarg), "remove()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))
+ {
+ int error = FALSE;
+
+***************
+*** 15135,15141 ****
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "reverse()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)"reverse()"))
+ {
+ li = l->lv_last;
+ l->lv_first = l->lv_last = NULL;
+--- 15142,15148 ----
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG2(_(e_listarg), "reverse()");
+ else if ((l = argvars[0].vval.v_list) != NULL
+! && !tv_check_lock(l->lv_lock, (char_u *)_("reverse() argument")))
+ {
+ li = l->lv_last;
+ l->lv_first = l->lv_last = NULL;
+***************
+*** 16432,16438 ****
+ else
+ {
+ l = argvars[0].vval.v_list;
+! if (l == NULL || tv_check_lock(l->lv_lock, (char_u *)"sort()"))
+ return;
+ rettv->vval.v_list = l;
+ rettv->v_type = VAR_LIST;
+--- 16439,16446 ----
+ else
+ {
+ l = argvars[0].vval.v_list;
+! if (l == NULL || tv_check_lock(l->lv_lock,
+! (char_u *)_("sort() argument")))
+ return;
+ rettv->vval.v_list = l;
+ rettv->v_type = VAR_LIST;
+*** ../vim-7.3.154/src/version.c 2011-04-02 15:12:45.000000000 +0200
+--- src/version.c 2011-04-11 13:13:38.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 155,
+ /**/
+
+--
+I used to be indecisive, now I'm not sure.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.156 b/source/ap/vim/patches/7.3.156
new file mode 100644
index 000000000..ec873242e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.156
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.156
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.156
+Problem: Tty names possibly left unterminated.
+Solution: Use vim_strncpy() instead of strncpy().
+Files: src/pty.c
+
+
+*** ../vim-7.3.155/src/pty.c 2010-08-15 21:57:28.000000000 +0200
+--- src/pty.c 2011-04-11 14:02:49.000000000 +0200
+***************
+*** 209,216 ****
+ #ifdef _SEQUENT_
+ fvhangup(s);
+ #endif
+! strncpy(PtyName, m, sizeof(PtyName));
+! strncpy(TtyName, s, sizeof(TtyName));
+ initmaster(f);
+ *ttyn = TtyName;
+ return f;
+--- 209,216 ----
+ #ifdef _SEQUENT_
+ fvhangup(s);
+ #endif
+! vim_strncpy((char_u *)PtyName, (char_u *)m, sizeof(PtyName) - 1);
+! vim_strncpy((char_u *)TtyName, (char_u *)s, sizeof(TtyName) - 1);
+ initmaster(f);
+ *ttyn = TtyName;
+ return f;
+***************
+*** 301,307 ****
+ return -1;
+ }
+ signal(SIGCHLD, sigcld);
+! strncpy(TtyName, m, sizeof(TtyName));
+ initmaster(f);
+ *ttyn = TtyName;
+ return f;
+--- 301,307 ----
+ return -1;
+ }
+ signal(SIGCHLD, sigcld);
+! vim_strncpy((char_u *)TtyName, (char_u *)m, sizeof(TtyName) - 1);
+ initmaster(f);
+ *ttyn = TtyName;
+ return f;
+***************
+*** 326,332 ****
+ /* a dumb looking loop replaced by mycrofts code: */
+ if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
+ return -1;
+! strncpy(TtyName, ttyname(f), sizeof(TtyName));
+ if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
+ {
+ close(f);
+--- 326,332 ----
+ /* a dumb looking loop replaced by mycrofts code: */
+ if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0)
+ return -1;
+! vim_strncpy((char_u *)TtyName, (char_u *)ttyname(f), sizeof(TtyName) - 1);
+ if (geteuid() != ROOT_UID && mch_access(TtyName, R_OK | W_OK))
+ {
+ close(f);
+*** ../vim-7.3.155/src/version.c 2011-04-11 13:46:07.000000000 +0200
+--- src/version.c 2011-04-11 14:23:38.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 156,
+ /**/
+
+--
+I think that you'll agree that engineers are very effective in their social
+interactions. It's the "normal" people who are nuts.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.157 b/source/ap/vim/patches/7.3.157
new file mode 100644
index 000000000..403c94865
--- /dev/null
+++ b/source/ap/vim/patches/7.3.157
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.157
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.157
+Problem: Superfluous assignment.
+Solution: Remove assignment.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.156/src/misc1.c 2011-03-22 13:07:19.000000000 +0100
+--- src/misc1.c 2011-04-11 14:11:17.000000000 +0200
+***************
+*** 6773,6780 ****
+ {
+ curwin->w_cursor.lnum = our_paren_pos.lnum;
+ curwin->w_cursor.col = col;
+! if ((trypos = find_match_paren(ind_maxparen,
+! ind_maxcomment)) != NULL)
+ amount += ind_unclosed2;
+ else
+ amount += ind_unclosed;
+--- 6775,6781 ----
+ {
+ curwin->w_cursor.lnum = our_paren_pos.lnum;
+ curwin->w_cursor.col = col;
+! if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ amount += ind_unclosed2;
+ else
+ amount += ind_unclosed;
+*** ../vim-7.3.156/src/version.c 2011-04-11 14:24:33.000000000 +0200
+--- src/version.c 2011-04-11 14:25:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 157,
+ /**/
+
+--
+A radioactive cat has eighteen half-lives.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.158 b/source/ap/vim/patches/7.3.158
new file mode 100644
index 000000000..8fba3508b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.158
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.158
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.158
+Problem: Might use uninitialized memory in C indenting.
+Solution: Init arrays to empty.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.157/src/misc1.c 2011-04-11 14:26:15.000000000 +0200
+--- src/misc1.c 2011-04-11 14:11:17.000000000 +0200
+***************
+*** 6433,6438 ****
+--- 6433,6440 ----
+ /* find how indented the line beginning the comment is */
+ getvcol(curwin, trypos, &col, NULL, NULL);
+ amount = col;
++ *lead_start = NUL;
++ *lead_middle = NUL;
+
+ p = curbuf->b_p_com;
+ while (*p != NUL)
+*** ../vim-7.3.157/src/version.c 2011-04-11 14:26:15.000000000 +0200
+--- src/version.c 2011-04-11 14:27:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 158,
+ /**/
+
+--
+It's totally unfair to suggest - as many have - that engineers are socially
+inept. Engineers simply have different objectives when it comes to social
+interaction.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.159 b/source/ap/vim/patches/7.3.159
new file mode 100644
index 000000000..7029ac86c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.159
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.159
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.159
+Problem: Using uninitialized pointer when out of memory.
+Solution: Check for NULL return value.
+Files: src/mbyte.c
+
+
+*** ../vim-7.3.158/src/mbyte.c 2010-10-27 13:37:39.000000000 +0200
+--- src/mbyte.c 2011-04-11 14:17:39.000000000 +0200
+***************
+*** 4129,4135 ****
+ done = to - (char *)result;
+ }
+
+! if (resultlenp != NULL)
+ *resultlenp = (int)(to - (char *)result);
+ return result;
+ }
+--- 4129,4135 ----
+ done = to - (char *)result;
+ }
+
+! if (resultlenp != NULL && result != NULL)
+ *resultlenp = (int)(to - (char *)result);
+ return result;
+ }
+*** ../vim-7.3.158/src/version.c 2011-04-11 14:27:34.000000000 +0200
+--- src/version.c 2011-04-11 14:28:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 159,
+ /**/
+
+--
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.160 b/source/ap/vim/patches/7.3.160
new file mode 100644
index 000000000..bf3a069ff
--- /dev/null
+++ b/source/ap/vim/patches/7.3.160
@@ -0,0 +1,482 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.160
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.160
+Problem: Unsafe string copying.
+Solution: Use vim_strncpy() instead of strcpy(). Use vim_strcat() instead
+ of strcat().
+Files: src/buffer.c, src/ex_docmd.c, src/hardcopy.c, src/menu.c,
+ src/misc1.c, src/misc2.c, src/proto/misc2.pro, src/netbeans.c,
+ src/os_unix.c, src/spell.c, src/syntax.c, src/tag.c
+
+*** ../vim-7.3.159/src/buffer.c 2011-02-15 14:24:42.000000000 +0100
+--- src/buffer.c 2011-04-11 16:08:38.000000000 +0200
+***************
+*** 3176,3182 ****
+ /* format: "fname + (path) (1 of 2) - VIM" */
+
+ if (curbuf->b_fname == NULL)
+! STRCPY(buf, _("[No Name]"));
+ else
+ {
+ p = transstr(gettail(curbuf->b_fname));
+--- 3176,3182 ----
+ /* format: "fname + (path) (1 of 2) - VIM" */
+
+ if (curbuf->b_fname == NULL)
+! vim_strncpy(buf, (char_u *)_("[No Name]"), IOSIZE - 100);
+ else
+ {
+ p = transstr(gettail(curbuf->b_fname));
+***************
+*** 3232,3238 ****
+ if (serverName != NULL)
+ {
+ STRCAT(buf, " - ");
+! STRCAT(buf, serverName);
+ }
+ else
+ #endif
+--- 3232,3238 ----
+ if (serverName != NULL)
+ {
+ STRCAT(buf, " - ");
+! vim_strcat(buf, serverName, IOSIZE);
+ }
+ else
+ #endif
+*** ../vim-7.3.159/src/ex_docmd.c 2011-03-03 15:54:45.000000000 +0100
+--- src/ex_docmd.c 2011-04-11 15:43:48.000000000 +0200
+***************
+*** 5096,5102 ****
+ char_u buff[IOSIZE];
+
+ if (n == 1)
+! STRCPY(buff, _("1 more file to edit. Quit anyway?"));
+ else
+ vim_snprintf((char *)buff, IOSIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+--- 5096,5104 ----
+ char_u buff[IOSIZE];
+
+ if (n == 1)
+! vim_strncpy(buff,
+! (char_u *)_("1 more file to edit. Quit anyway?"),
+! IOSIZE - 1);
+ else
+ vim_snprintf((char *)buff, IOSIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+*** ../vim-7.3.159/src/hardcopy.c 2010-08-15 21:57:25.000000000 +0200
+--- src/hardcopy.c 2011-04-11 15:30:09.000000000 +0200
+***************
+*** 1761,1772 ****
+ {
+ char_u buffer[MAXPATHL + 1];
+
+! STRCPY(resource->name, name);
+ /* Look for named resource file in runtimepath */
+ STRCPY(buffer, "print");
+ add_pathsep(buffer);
+! STRCAT(buffer, name);
+! STRCAT(buffer, ".ps");
+ resource->filename[0] = NUL;
+ return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+--- 1761,1772 ----
+ {
+ char_u buffer[MAXPATHL + 1];
+
+! vim_strncpy(resource->name, (char_u *)name, 63);
+ /* Look for named resource file in runtimepath */
+ STRCPY(buffer, "print");
+ add_pathsep(buffer);
+! vim_strcat(buffer, (char_u *)name, MAXPATHL);
+! vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+ resource->filename[0] = NUL;
+ return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+*** ../vim-7.3.159/src/menu.c 2011-01-04 17:49:25.000000000 +0100
+--- src/menu.c 2011-04-11 15:17:21.000000000 +0200
+***************
+*** 1394,1400 ****
+ int idx;
+ {
+ static vimmenu_T *menu = NULL;
+! static char_u tbuffer[256]; /*hack*/
+ char_u *str;
+ #ifdef FEAT_MULTI_LANG
+ static int should_advance = FALSE;
+--- 1394,1401 ----
+ int idx;
+ {
+ static vimmenu_T *menu = NULL;
+! #define TBUFFER_LEN 256
+! static char_u tbuffer[TBUFFER_LEN]; /*hack*/
+ char_u *str;
+ #ifdef FEAT_MULTI_LANG
+ static int should_advance = FALSE;
+***************
+*** 1428,1438 ****
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (should_advance)
+! STRCPY(tbuffer, menu->en_dname);
+ else
+ {
+ #endif
+! STRCPY(tbuffer, menu->dname);
+ #ifdef FEAT_MULTI_LANG
+ if (menu->en_dname == NULL)
+ should_advance = TRUE;
+--- 1429,1439 ----
+ {
+ #ifdef FEAT_MULTI_LANG
+ if (should_advance)
+! vim_strncpy(tbuffer, menu->en_dname, TBUFFER_LEN - 2);
+ else
+ {
+ #endif
+! vim_strncpy(tbuffer, menu->dname, TBUFFER_LEN - 2);
+ #ifdef FEAT_MULTI_LANG
+ if (menu->en_dname == NULL)
+ should_advance = TRUE;
+*** ../vim-7.3.159/src/misc1.c 2011-04-11 14:27:34.000000000 +0200
+--- src/misc1.c 2011-04-11 16:03:22.000000000 +0200
+***************
+*** 3332,3350 ****
+ if (pn == 1)
+ {
+ if (n > 0)
+! STRCPY(msg_buf, _("1 more line"));
+ else
+! STRCPY(msg_buf, _("1 line less"));
+ }
+ else
+ {
+ if (n > 0)
+! sprintf((char *)msg_buf, _("%ld more lines"), pn);
+ else
+! sprintf((char *)msg_buf, _("%ld fewer lines"), pn);
+ }
+ if (got_int)
+! STRCAT(msg_buf, _(" (Interrupted)"));
+ if (msg(msg_buf))
+ {
+ set_keep_msg(msg_buf, 0);
+--- 3332,3354 ----
+ if (pn == 1)
+ {
+ if (n > 0)
+! vim_strncpy(msg_buf, (char_u *)_("1 more line"),
+! MSG_BUF_LEN - 1);
+ else
+! vim_strncpy(msg_buf, (char_u *)_("1 line less"),
+! MSG_BUF_LEN - 1);
+ }
+ else
+ {
+ if (n > 0)
+! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+! _("%ld more lines"), pn);
+ else
+! vim_snprintf((char *)msg_buf, MSG_BUF_LEN,
+! _("%ld fewer lines"), pn);
+ }
+ if (got_int)
+! vim_strcat(msg_buf, (char_u *)_(" (Interrupted)"), MSG_BUF_LEN);
+ if (msg(msg_buf))
+ {
+ set_keep_msg(msg_buf, 0);
+*** ../vim-7.3.159/src/misc2.c 2010-12-08 13:11:15.000000000 +0100
+--- src/misc2.c 2011-04-11 15:30:20.000000000 +0200
+***************
+*** 1647,1652 ****
+--- 1647,1674 ----
+ }
+
+ /*
++ * Like strcat(), but make sure the result fits in "tosize" bytes and is
++ * always NUL terminated.
++ */
++ void
++ vim_strcat(to, from, tosize)
++ char_u *to;
++ char_u *from;
++ size_t tosize;
++ {
++ size_t tolen = STRLEN(to);
++ size_t fromlen = STRLEN(from);
++
++ if (tolen + fromlen + 1 > tosize)
++ {
++ mch_memmove(to + tolen, from, tosize - tolen - 1);
++ to[tosize - 1] = NUL;
++ }
++ else
++ STRCPY(to + tolen, from);
++ }
++
++ /*
+ * Isolate one part of a string option where parts are separated with
+ * "sep_chars".
+ * The part is copied into "buf[maxlen]".
+*** ../vim-7.3.159/src/proto/misc2.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/misc2.pro 2011-04-11 15:29:55.000000000 +0200
+***************
+*** 40,45 ****
+--- 40,46 ----
+ void copy_chars __ARGS((char_u *ptr, size_t count, int c));
+ void del_trailing_spaces __ARGS((char_u *ptr));
+ void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len));
++ void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize));
+ int copy_option_part __ARGS((char_u **option, char_u *buf, int maxlen, char *sep_chars));
+ void vim_free __ARGS((void *x));
+ int vim_stricmp __ARGS((char *s1, char *s2));
+*** ../vim-7.3.159/src/netbeans.c 2011-04-01 15:33:54.000000000 +0200
+--- src/netbeans.c 2011-04-11 16:02:51.000000000 +0200
+***************
+*** 3914,3927 ****
+ }
+ else
+ {
+! char_u ebuf[BUFSIZ];
+
+! STRCPY(ebuf, (char_u *)_("E505: "));
+! STRCAT(ebuf, IObuff);
+! STRCAT(ebuf, (char_u *)_("is read-only (add ! to override)"));
+! STRCPY(IObuff, ebuf);
+! nbdebug((" %s\n", ebuf ));
+! emsg(IObuff);
+ }
+ }
+
+--- 3914,3925 ----
+ }
+ else
+ {
+! char_u msgbuf[IOSIZE];
+
+! vim_snprintf((char *)msgbuf, IOSIZE,
+! _("E505: %s is read-only (add ! to override)"), IObuff);
+! nbdebug((" %s\n", msgbuf));
+! emsg(msgbuf);
+ }
+ }
+
+*** ../vim-7.3.159/src/os_unix.c 2011-02-15 17:39:14.000000000 +0100
+--- src/os_unix.c 2011-04-11 16:39:11.000000000 +0200
+***************
+*** 5725,5730 ****
+--- 5725,5731 ----
+ if (shell_style == STYLE_PRINT && !did_find_nul)
+ {
+ /* If there is a NUL, set did_find_nul, else set check_spaces */
++ buffer[len] = NUL;
+ if (len && (int)STRLEN(buffer) < (int)len - 1)
+ did_find_nul = TRUE;
+ else
+***************
+*** 6594,6600 ****
+ xterm_hints.x = 2;
+ return TRUE;
+ }
+! if (mouse_code == NULL)
+ {
+ xterm_trace = 0;
+ return FALSE;
+--- 6595,6601 ----
+ xterm_hints.x = 2;
+ return TRUE;
+ }
+! if (mouse_code == NULL || STRLEN(mouse_code) > 45)
+ {
+ xterm_trace = 0;
+ return FALSE;
+*** ../vim-7.3.159/src/spell.c 2011-02-01 13:59:44.000000000 +0100
+--- src/spell.c 2011-04-11 15:50:40.000000000 +0200
+***************
+*** 6957,6963 ****
+ if (ae->ae_add == NULL)
+ *newword = NUL;
+ else
+! STRCPY(newword, ae->ae_add);
+ p = word;
+ if (ae->ae_chop != NULL)
+ {
+--- 6957,6963 ----
+ if (ae->ae_add == NULL)
+ *newword = NUL;
+ else
+! vim_strncpy(newword, ae->ae_add, MAXWLEN - 1);
+ p = word;
+ if (ae->ae_chop != NULL)
+ {
+***************
+*** 6978,6984 ****
+ else
+ {
+ /* suffix: chop/add at the end of the word */
+! STRCPY(newword, word);
+ if (ae->ae_chop != NULL)
+ {
+ /* Remove chop string. */
+--- 6978,6984 ----
+ else
+ {
+ /* suffix: chop/add at the end of the word */
+! vim_strncpy(newword, word, MAXWLEN - 1);
+ if (ae->ae_chop != NULL)
+ {
+ /* Remove chop string. */
+***************
+*** 8654,8660 ****
+ * Write the .sug file.
+ * Make the file name by changing ".spl" to ".sug".
+ */
+! STRCPY(fname, wfname);
+ len = (int)STRLEN(fname);
+ fname[len - 2] = 'u';
+ fname[len - 1] = 'g';
+--- 8654,8660 ----
+ * Write the .sug file.
+ * Make the file name by changing ".spl" to ".sug".
+ */
+! vim_strncpy(fname, wfname, MAXPATHL - 1);
+ len = (int)STRLEN(fname);
+ fname[len - 2] = 'u';
+ fname[len - 1] = 'g';
+***************
+*** 10261,10267 ****
+
+ /* The suggested word may replace only part of the bad word, add
+ * the not replaced part. */
+! STRCPY(wcopy, stp->st_word);
+ if (sug.su_badlen > stp->st_orglen)
+ vim_strncpy(wcopy + stp->st_wordlen,
+ sug.su_badptr + stp->st_orglen,
+--- 10261,10267 ----
+
+ /* The suggested word may replace only part of the bad word, add
+ * the not replaced part. */
+! vim_strncpy(wcopy, stp->st_word, MAXWLEN);
+ if (sug.su_badlen > stp->st_orglen)
+ vim_strncpy(wcopy + stp->st_wordlen,
+ sug.su_badptr + stp->st_orglen,
+***************
+*** 13162,13168 ****
+ pbad = badsound2;
+ }
+
+! if (lendiff > 0)
+ {
+ /* Add part of the bad word to the good word, so that we soundfold
+ * what replaces the bad word. */
+--- 13162,13168 ----
+ pbad = badsound2;
+ }
+
+! if (lendiff > 0 && stp->st_wordlen + lendiff < MAXWLEN)
+ {
+ /* Add part of the bad word to the good word, so that we soundfold
+ * what replaces the bad word. */
+***************
+*** 13875,13881 ****
+ for (i = gap->ga_len - 1; i >= 0; --i)
+ {
+ /* Need to append what follows to check for "the the". */
+! STRCPY(longword, stp[i].st_word);
+ len = stp[i].st_wordlen;
+ vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+ MAXWLEN - len);
+--- 13875,13881 ----
+ for (i = gap->ga_len - 1; i >= 0; --i)
+ {
+ /* Need to append what follows to check for "the the". */
+! vim_strncpy(longword, stp[i].st_word, MAXWLEN);
+ len = stp[i].st_wordlen;
+ vim_strncpy(longword + len, su->su_badptr + stp[i].st_orglen,
+ MAXWLEN - len);
+***************
+*** 14221,14227 ****
+ *t = NUL;
+ }
+ else
+! STRCPY(word, s);
+
+ smp = (salitem_T *)slang->sl_sal.ga_data;
+
+--- 14221,14227 ----
+ *t = NUL;
+ }
+ else
+! vim_strncpy(word, s, MAXWLEN - 1);
+
+ smp = (salitem_T *)slang->sl_sal.ga_data;
+
+*** ../vim-7.3.159/src/syntax.c 2011-04-02 15:12:45.000000000 +0200
+--- src/syntax.c 2011-04-11 15:44:30.000000000 +0200
+***************
+*** 8576,8583 ****
+ if (iarg & hl_attr_table[i])
+ {
+ if (buf[0] != NUL)
+! STRCAT(buf, ",");
+! STRCAT(buf, hl_name_table[i]);
+ iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
+ }
+ }
+--- 8576,8583 ----
+ if (iarg & hl_attr_table[i])
+ {
+ if (buf[0] != NUL)
+! vim_strcat(buf, (char_u *)",", 100);
+! vim_strcat(buf, (char_u *)hl_name_table[i], 100);
+ iarg &= ~hl_attr_table[i]; /* don't want "inverse" */
+ }
+ }
+*** ../vim-7.3.159/src/tag.c 2011-02-25 15:13:43.000000000 +0100
+--- src/tag.c 2011-04-11 15:34:59.000000000 +0200
+***************
+*** 806,812 ****
+ p = tag_full_fname(&tagp);
+ if (p == NULL)
+ continue;
+! STRCPY(fname, p);
+ vim_free(p);
+
+ /*
+--- 806,812 ----
+ p = tag_full_fname(&tagp);
+ if (p == NULL)
+ continue;
+! vim_strncpy(fname, p, MAXPATHL);
+ vim_free(p);
+
+ /*
+*** ../vim-7.3.159/src/version.c 2011-04-11 14:29:13.000000000 +0200
+--- src/version.c 2011-04-11 16:50:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 160,
+ /**/
+
+--
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing". Nobody is going to tell you there aren't enough of those people
+to go around.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.161 b/source/ap/vim/patches/7.3.161
new file mode 100644
index 000000000..61223ec2b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.161
@@ -0,0 +1,1645 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.161
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.161
+Problem: Items on the stack may be too big.
+Solution: Make items static or allocate them.
+Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c,
+ src/fileio.c, src/hardcopy.c, src/quickfix.c, src/main.c,
+ src/netbeans.c, src/spell.c, src/tag.c, src/vim.h, src/xxd/xxd.c
+
+
+*** ../vim-7.3.160/src/eval.c 2011-04-11 13:46:07.000000000 +0200
+--- src/eval.c 2011-04-11 21:05:50.000000000 +0200
+***************
+*** 11100,11117 ****
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+! char_u cwd[MAXPATHL];
+
+ rettv->v_type = VAR_STRING;
+! if (mch_dirname(cwd, MAXPATHL) == FAIL)
+! rettv->vval.v_string = NULL;
+! else
+ {
+! rettv->vval.v_string = vim_strsave(cwd);
+ #ifdef BACKSLASH_IN_FILENAME
+! if (rettv->vval.v_string != NULL)
+! slash_adjust(rettv->vval.v_string);
+ #endif
+ }
+ }
+
+--- 11100,11121 ----
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+! char_u *cwd;
+
+ rettv->v_type = VAR_STRING;
+! rettv->vval.v_string = NULL;
+! cwd = alloc(MAXPATHL);
+! if (cwd != NULL)
+ {
+! if (mch_dirname(cwd, MAXPATHL) != FAIL)
+! {
+! rettv->vval.v_string = vim_strsave(cwd);
+ #ifdef BACKSLASH_IN_FILENAME
+! if (rettv->vval.v_string != NULL)
+! slash_adjust(rettv->vval.v_string);
+ #endif
++ }
++ vim_free(cwd);
+ }
+ }
+
+***************
+*** 14938,14943 ****
+--- 14942,14950 ----
+ typval_T *rettv;
+ {
+ char_u *p;
++ #ifdef HAVE_READLINK
++ char_u *buf = NULL;
++ #endif
+
+ p = get_tv_string(&argvars[0]);
+ #ifdef FEAT_SHORTCUT
+***************
+*** 14953,14959 ****
+ #else
+ # ifdef HAVE_READLINK
+ {
+- char_u buf[MAXPATHL + 1];
+ char_u *cpy;
+ int len;
+ char_u *remain = NULL;
+--- 14960,14965 ----
+***************
+*** 14981,14986 ****
+--- 14987,14996 ----
+ q[-1] = NUL;
+ }
+
++ buf = alloc(MAXPATHL + 1);
++ if (buf == NULL)
++ goto fail;
++
+ for (;;)
+ {
+ for (;;)
+***************
+*** 15124,15129 ****
+--- 15134,15140 ----
+
+ #ifdef HAVE_READLINK
+ fail:
++ vim_free(buf);
+ #endif
+ rettv->v_type = VAR_STRING;
+ }
+***************
+*** 17604,17621 ****
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+! char_u fname[MAXPATHL + 1];
+ tagname_T tn;
+ int first;
+
+ if (rettv_list_alloc(rettv) == FAIL)
+ return;
+
+ for (first = TRUE; ; first = FALSE)
+ if (get_tagfname(&tn, first, fname) == FAIL
+ || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
+ break;
+ tagname_free(&tn);
+ }
+
+ /*
+--- 17615,17636 ----
+ typval_T *argvars UNUSED;
+ typval_T *rettv;
+ {
+! char_u *fname;
+ tagname_T tn;
+ int first;
+
+ if (rettv_list_alloc(rettv) == FAIL)
+ return;
++ fname = alloc(MAXPATHL);
++ if (fname == NULL)
++ return;
+
+ for (first = TRUE; ; first = FALSE)
+ if (get_tagfname(&tn, first, fname) == FAIL
+ || list_append_string(rettv->vval.v_list, fname, -1) == FAIL)
+ break;
+ tagname_free(&tn);
++ vim_free(fname);
+ }
+
+ /*
+*** ../vim-7.3.160/src/ex_cmds.c 2011-02-01 13:48:47.000000000 +0100
+--- src/ex_cmds.c 2011-04-11 20:51:34.000000000 +0200
+***************
+*** 2777,2783 ****
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if (p_confirm || cmdmod.confirm)
+ {
+! char_u buff[IOSIZE];
+
+ dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
+ if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
+--- 2777,2783 ----
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if (p_confirm || cmdmod.confirm)
+ {
+! char_u buff[DIALOG_MSG_SIZE];
+
+ dialog_msg(buff, _("Overwrite existing file \"%s\"?"), fname);
+ if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2) != VIM_YES)
+***************
+*** 2795,2801 ****
+ /* For ":w! filename" check that no swap file exists for "filename". */
+ if (other && !emsg_silent)
+ {
+! char_u dir[MAXPATHL];
+ char_u *p;
+ int r;
+ char_u *swapname;
+--- 2795,2801 ----
+ /* For ":w! filename" check that no swap file exists for "filename". */
+ if (other && !emsg_silent)
+ {
+! char_u *dir;
+ char_u *p;
+ int r;
+ char_u *swapname;
+***************
+*** 2806,2825 ****
+ * Use 'shortname' of the current buffer, since there is no buffer
+ * for the written file. */
+ if (*p_dir == NUL)
+ STRCPY(dir, ".");
+ else
+ {
+ p = p_dir;
+ copy_option_part(&p, dir, MAXPATHL, ",");
+ }
+ swapname = makeswapname(fname, ffname, curbuf, dir);
+ r = vim_fexists(swapname);
+ if (r)
+ {
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if (p_confirm || cmdmod.confirm)
+ {
+! char_u buff[IOSIZE];
+
+ dialog_msg(buff,
+ _("Swap file \"%s\" exists, overwrite anyway?"),
+--- 2806,2834 ----
+ * Use 'shortname' of the current buffer, since there is no buffer
+ * for the written file. */
+ if (*p_dir == NUL)
++ {
++ dir = alloc(5);
++ if (dir == NULL)
++ return FAIL;
+ STRCPY(dir, ".");
++ }
+ else
+ {
++ dir = alloc(MAXPATHL);
++ if (dir == NULL)
++ return FAIL;
+ p = p_dir;
+ copy_option_part(&p, dir, MAXPATHL, ",");
+ }
+ swapname = makeswapname(fname, ffname, curbuf, dir);
++ vim_free(dir);
+ r = vim_fexists(swapname);
+ if (r)
+ {
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if (p_confirm || cmdmod.confirm)
+ {
+! char_u buff[DIALOG_MSG_SIZE];
+
+ dialog_msg(buff,
+ _("Swap file \"%s\" exists, overwrite anyway?"),
+***************
+*** 2969,2975 ****
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
+ {
+! char_u buff[IOSIZE];
+
+ if (buf->b_p_ro)
+ dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
+--- 2978,2984 ----
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if ((p_confirm || cmdmod.confirm) && buf->b_fname != NULL)
+ {
+! char_u buff[DIALOG_MSG_SIZE];
+
+ if (buf->b_p_ro)
+ dialog_msg(buff, _("'readonly' option is set for \"%s\".\nDo you wish to write anyway?"),
+*** ../vim-7.3.160/src/ex_cmds2.c 2011-02-25 14:46:06.000000000 +0100
+--- src/ex_cmds2.c 2011-04-11 20:51:40.000000000 +0200
+***************
+*** 1492,1498 ****
+ buf_T *buf;
+ int checkall; /* may abandon all changed buffers */
+ {
+! char_u buff[IOSIZE];
+ int ret;
+ buf_T *buf2;
+
+--- 1492,1498 ----
+ buf_T *buf;
+ int checkall; /* may abandon all changed buffers */
+ {
+! char_u buff[DIALOG_MSG_SIZE];
+ int ret;
+ buf_T *buf2;
+
+*** ../vim-7.3.160/src/ex_docmd.c 2011-04-11 16:56:29.000000000 +0200
+--- src/ex_docmd.c 2011-04-11 21:20:35.000000000 +0200
+***************
+*** 5093,5106 ****
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
+ {
+! char_u buff[IOSIZE];
+
+ if (n == 1)
+ vim_strncpy(buff,
+ (char_u *)_("1 more file to edit. Quit anyway?"),
+! IOSIZE - 1);
+ else
+! vim_snprintf((char *)buff, IOSIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+ if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
+ return OK;
+--- 5093,5106 ----
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ if ((p_confirm || cmdmod.confirm) && curbuf->b_fname != NULL)
+ {
+! char_u buff[DIALOG_MSG_SIZE];
+
+ if (n == 1)
+ vim_strncpy(buff,
+ (char_u *)_("1 more file to edit. Quit anyway?"),
+! DIALOG_MSG_SIZE - 1);
+ else
+! vim_snprintf((char *)buff, DIALOG_MSG_SIZE,
+ _("%d more files to edit. Quit anyway?"), n);
+ if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 1) == VIM_YES)
+ return OK;
+***************
+*** 8926,8960 ****
+ failed = TRUE;
+ if (eap->cmdidx == CMD_mksession)
+ {
+! char_u dirnow[MAXPATHL]; /* current directory */
+
+! /*
+! * Change to session file's dir.
+! */
+! if (mch_dirname(dirnow, MAXPATHL) == FAIL
+! || mch_chdir((char *)dirnow) != 0)
+! *dirnow = NUL;
+! if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
+! {
+! if (vim_chdirfile(fname) == OK)
+! shorten_fnames(TRUE);
+! }
+! else if (*dirnow != NUL
+! && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
+ {
+! if (mch_chdir((char *)globaldir) == 0)
+! shorten_fnames(TRUE);
+! }
+
+! failed |= (makeopens(fd, dirnow) == FAIL);
+
+! /* restore original dir */
+! if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
+ || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+! {
+! if (mch_chdir((char *)dirnow) != 0)
+! EMSG(_(e_prev_dir));
+! shorten_fnames(TRUE);
+ }
+ }
+ else
+--- 8926,8967 ----
+ failed = TRUE;
+ if (eap->cmdidx == CMD_mksession)
+ {
+! char_u *dirnow; /* current directory */
+
+! dirnow = alloc(MAXPATHL);
+! if (dirnow == NULL)
+! failed = TRUE;
+! else
+ {
+! /*
+! * Change to session file's dir.
+! */
+! if (mch_dirname(dirnow, MAXPATHL) == FAIL
+! || mch_chdir((char *)dirnow) != 0)
+! *dirnow = NUL;
+! if (*dirnow != NUL && (ssop_flags & SSOP_SESDIR))
+! {
+! if (vim_chdirfile(fname) == OK)
+! shorten_fnames(TRUE);
+! }
+! else if (*dirnow != NUL
+! && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
+! {
+! if (mch_chdir((char *)globaldir) == 0)
+! shorten_fnames(TRUE);
+! }
+
+! failed |= (makeopens(fd, dirnow) == FAIL);
+
+! /* restore original dir */
+! if (*dirnow != NUL && ((ssop_flags & SSOP_SESDIR)
+ || ((ssop_flags & SSOP_CURDIR) && globaldir != NULL)))
+! {
+! if (mch_chdir((char *)dirnow) != 0)
+! EMSG(_(e_prev_dir));
+! shorten_fnames(TRUE);
+! }
+! vim_free(dirnow);
+ }
+ }
+ else
+***************
+*** 8985,8994 ****
+ else if (eap->cmdidx == CMD_mksession)
+ {
+ /* successful session write - set this_session var */
+! char_u tbuf[MAXPATHL];
+
+! if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
+! set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
+ }
+ #endif
+ #ifdef MKSESSION_NL
+--- 8992,9006 ----
+ else if (eap->cmdidx == CMD_mksession)
+ {
+ /* successful session write - set this_session var */
+! char_u *tbuf;
+
+! tbuf = alloc(MAXPATHL);
+! if (tbuf != NULL)
+! {
+! if (vim_FullName(fname, tbuf, MAXPATHL, FALSE) == OK)
+! set_vim_var_string(VV_THIS_SESSION, tbuf, -1);
+! vim_free(tbuf);
+! }
+ }
+ #endif
+ #ifdef MKSESSION_NL
+***************
+*** 10677,10683 ****
+ unsigned *flagp;
+ {
+ int i;
+! char_u buf[MAXPATHL];
+ char_u *s;
+
+ if (gap->ga_len == 0)
+--- 10689,10695 ----
+ unsigned *flagp;
+ {
+ int i;
+! char_u *buf = NULL;
+ char_u *s;
+
+ if (gap->ga_len == 0)
+***************
+*** 10692,10702 ****
+ {
+ if (fullname)
+ {
+! (void)vim_FullName(s, buf, MAXPATHL, FALSE);
+! s = buf;
+ }
+ if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
+ return FAIL;
+ }
+ }
+ return put_eol(fd);
+--- 10704,10722 ----
+ {
+ if (fullname)
+ {
+! buf = alloc(MAXPATHL);
+! if (buf != NULL)
+! {
+! (void)vim_FullName(s, buf, MAXPATHL, FALSE);
+! s = buf;
+! }
+ }
+ if (fputs(" ", fd) < 0 || ses_put_fname(fd, s, flagp) == FAIL)
++ {
++ vim_free(buf);
+ return FAIL;
++ }
++ vim_free(buf);
+ }
+ }
+ return put_eol(fd);
+***************
+*** 10925,10931 ****
+
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
+ /*
+! * Make a dialog message in "buff[IOSIZE]".
+ * "format" must contain "%s".
+ */
+ void
+--- 10945,10951 ----
+
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) || defined(PROTO)
+ /*
+! * Make a dialog message in "buff[DIALOG_MSG_SIZE]".
+ * "format" must contain "%s".
+ */
+ void
+***************
+*** 10936,10942 ****
+ {
+ if (fname == NULL)
+ fname = (char_u *)_("Untitled");
+! vim_snprintf((char *)buff, IOSIZE, format, fname);
+ }
+ #endif
+
+--- 10956,10962 ----
+ {
+ if (fname == NULL)
+ fname = (char_u *)_("Untitled");
+! vim_snprintf((char *)buff, DIALOG_MSG_SIZE, format, fname);
+ }
+ #endif
+
+*** ../vim-7.3.160/src/fileio.c 2011-02-25 16:52:13.000000000 +0100
+--- src/fileio.c 2011-04-11 18:35:10.000000000 +0200
+***************
+*** 6023,6037 ****
+ shorten_fname1(full_path)
+ char_u *full_path;
+ {
+! char_u dirname[MAXPATHL];
+ char_u *p = full_path;
+
+ if (mch_dirname(dirname, MAXPATHL) == OK)
+ {
+ p = shorten_fname(full_path, dirname);
+ if (p == NULL || *p == NUL)
+ p = full_path;
+ }
+ return p;
+ }
+ #endif
+--- 6023,6041 ----
+ shorten_fname1(full_path)
+ char_u *full_path;
+ {
+! char_u *dirname;
+ char_u *p = full_path;
+
++ dirname = alloc(MAXPATHL);
++ if (dirname == NULL)
++ return full_path;
+ if (mch_dirname(dirname, MAXPATHL) == OK)
+ {
+ p = shorten_fname(full_path, dirname);
+ if (p == NULL || *p == NUL)
+ p = full_path;
+ }
++ vim_free(dirname);
+ return p;
+ }
+ #endif
+*** ../vim-7.3.160/src/hardcopy.c 2011-04-11 16:56:29.000000000 +0200
+--- src/hardcopy.c 2011-04-11 18:23:38.000000000 +0200
+***************
+*** 1759,1765 ****
+ char *name;
+ struct prt_ps_resource_S *resource;
+ {
+! char_u buffer[MAXPATHL + 1];
+
+ vim_strncpy(resource->name, (char_u *)name, 63);
+ /* Look for named resource file in runtimepath */
+--- 1759,1770 ----
+ char *name;
+ struct prt_ps_resource_S *resource;
+ {
+! char_u *buffer;
+! int retval;
+!
+! buffer = alloc(MAXPATHL + 1);
+! if (buffer == NULL)
+! return FALSE;
+
+ vim_strncpy(resource->name, (char_u *)name, 63);
+ /* Look for named resource file in runtimepath */
+***************
+*** 1768,1776 ****
+ vim_strcat(buffer, (char_u *)name, MAXPATHL);
+ vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+ resource->filename[0] = NUL;
+! return (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+ && resource->filename[0] != NUL);
+ }
+
+ /* PS CR and LF characters have platform independent values */
+--- 1773,1783 ----
+ vim_strcat(buffer, (char_u *)name, MAXPATHL);
+ vim_strcat(buffer, (char_u *)".ps", MAXPATHL);
+ resource->filename[0] = NUL;
+! retval = (do_in_runtimepath(buffer, FALSE, prt_resource_name,
+ resource->filename)
+ && resource->filename[0] != NUL);
++ vim_free(buffer);
++ return retval;
+ }
+
+ /* PS CR and LF characters have platform independent values */
+***************
+*** 2848,2862 ****
+ double right;
+ double top;
+ double bottom;
+! struct prt_ps_resource_S res_prolog;
+! struct prt_ps_resource_S res_encoding;
+ char buffer[256];
+ char_u *p_encoding;
+ char_u *p;
+ #ifdef FEAT_MBYTE
+! struct prt_ps_resource_S res_cidfont;
+! struct prt_ps_resource_S res_cmap;
+ #endif
+
+ /*
+ * PS DSC Header comments - no PS code!
+--- 2855,2887 ----
+ double right;
+ double top;
+ double bottom;
+! struct prt_ps_resource_S *res_prolog;
+! struct prt_ps_resource_S *res_encoding;
+ char buffer[256];
+ char_u *p_encoding;
+ char_u *p;
+ #ifdef FEAT_MBYTE
+! struct prt_ps_resource_S *res_cidfont;
+! struct prt_ps_resource_S *res_cmap;
+ #endif
++ int retval = FALSE;
++
++ res_prolog = (struct prt_ps_resource_S *)
++ alloc(sizeof(struct prt_ps_resource_S));
++ res_encoding = (struct prt_ps_resource_S *)
++ alloc(sizeof(struct prt_ps_resource_S));
++ #ifdef FEAT_MBYTE
++ res_cidfont = (struct prt_ps_resource_S *)
++ alloc(sizeof(struct prt_ps_resource_S));
++ res_cmap = (struct prt_ps_resource_S *)
++ alloc(sizeof(struct prt_ps_resource_S));
++ #endif
++ if (res_prolog == NULL || res_encoding == NULL
++ #ifdef FEAT_MBYTE
++ || res_cidfont == NULL || res_cmap == NULL
++ #endif
++ )
++ goto theend;
+
+ /*
+ * PS DSC Header comments - no PS code!
+***************
+*** 2932,2958 ****
+ #endif
+
+ /* Search for external resources VIM supplies */
+! if (!prt_find_resource("prolog", &res_prolog))
+ {
+ EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+ return FALSE;
+ }
+! if (!prt_open_resource(&res_prolog))
+ return FALSE;
+! if (!prt_check_resource(&res_prolog, PRT_PROLOG_VERSION))
+ return FALSE;
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+ /* Look for required version of multi-byte printing procset */
+! if (!prt_find_resource("cidfont", &res_cidfont))
+ {
+ EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+ return FALSE;
+ }
+! if (!prt_open_resource(&res_cidfont))
+ return FALSE;
+! if (!prt_check_resource(&res_cidfont, PRT_CID_PROLOG_VERSION))
+ return FALSE;
+ }
+ #endif
+--- 2957,2983 ----
+ #endif
+
+ /* Search for external resources VIM supplies */
+! if (!prt_find_resource("prolog", res_prolog))
+ {
+ EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\""));
+ return FALSE;
+ }
+! if (!prt_open_resource(res_prolog))
+ return FALSE;
+! if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION))
+ return FALSE;
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+ /* Look for required version of multi-byte printing procset */
+! if (!prt_find_resource("cidfont", res_cidfont))
+ {
+ EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\""));
+ return FALSE;
+ }
+! if (!prt_open_resource(res_cidfont))
+ return FALSE;
+! if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION))
+ return FALSE;
+ }
+ #endif
+***************
+*** 2968,2974 ****
+ #endif
+ p_encoding = enc_skip(p_penc);
+ if (*p_encoding == NUL
+! || !prt_find_resource((char *)p_encoding, &res_encoding))
+ {
+ /* 'printencoding' not set or not supported - find alternate */
+ #ifdef FEAT_MBYTE
+--- 2993,2999 ----
+ #endif
+ p_encoding = enc_skip(p_penc);
+ if (*p_encoding == NUL
+! || !prt_find_resource((char *)p_encoding, res_encoding))
+ {
+ /* 'printencoding' not set or not supported - find alternate */
+ #ifdef FEAT_MBYTE
+***************
+*** 2977,2989 ****
+ p_encoding = enc_skip(p_enc);
+ props = enc_canon_props(p_encoding);
+ if (!(props & ENC_8BIT)
+! || !prt_find_resource((char *)p_encoding, &res_encoding))
+ /* 8-bit 'encoding' is not supported */
+ #endif
+ {
+ /* Use latin1 as default printing encoding */
+ p_encoding = (char_u *)"latin1";
+! if (!prt_find_resource((char *)p_encoding, &res_encoding))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ p_encoding);
+--- 3002,3014 ----
+ p_encoding = enc_skip(p_enc);
+ props = enc_canon_props(p_encoding);
+ if (!(props & ENC_8BIT)
+! || !prt_find_resource((char *)p_encoding, res_encoding))
+ /* 8-bit 'encoding' is not supported */
+ #endif
+ {
+ /* Use latin1 as default printing encoding */
+ p_encoding = (char_u *)"latin1";
+! if (!prt_find_resource((char *)p_encoding, res_encoding))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ p_encoding);
+***************
+*** 2991,2997 ****
+ }
+ }
+ }
+! if (!prt_open_resource(&res_encoding))
+ return FALSE;
+ /* For the moment there are no checks on encoding resource files to
+ * perform */
+--- 3016,3022 ----
+ }
+ }
+ }
+! if (!prt_open_resource(res_encoding))
+ return FALSE;
+ /* For the moment there are no checks on encoding resource files to
+ * perform */
+***************
+*** 3005,3017 ****
+ if (prt_use_courier)
+ {
+ /* Include ASCII range encoding vector */
+! if (!prt_find_resource(prt_ascii_encoding, &res_encoding))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_ascii_encoding);
+ return FALSE;
+ }
+! if (!prt_open_resource(&res_encoding))
+ return FALSE;
+ /* For the moment there are no checks on encoding resource files to
+ * perform */
+--- 3030,3042 ----
+ if (prt_use_courier)
+ {
+ /* Include ASCII range encoding vector */
+! if (!prt_find_resource(prt_ascii_encoding, res_encoding))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_ascii_encoding);
+ return FALSE;
+ }
+! if (!prt_open_resource(res_encoding))
+ return FALSE;
+ /* For the moment there are no checks on encoding resource files to
+ * perform */
+***************
+*** 3034,3077 ****
+ if (prt_out_mbyte && prt_custom_cmap)
+ {
+ /* Find user supplied CMap */
+! if (!prt_find_resource(prt_cmap, &res_cmap))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_cmap);
+ return FALSE;
+ }
+! if (!prt_open_resource(&res_cmap))
+ return FALSE;
+ }
+ #endif
+
+ /* List resources supplied */
+! STRCPY(buffer, res_prolog.title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_prolog.version);
+ prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+! STRCPY(buffer, res_cidfont.title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_cidfont.version);
+ prt_dsc_resources(NULL, "procset", buffer);
+
+ if (prt_custom_cmap)
+ {
+! STRCPY(buffer, res_cmap.title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_cmap.version);
+ prt_dsc_resources(NULL, "cmap", buffer);
+ }
+ }
+ if (!prt_out_mbyte || prt_use_courier)
+ #endif
+ {
+! STRCPY(buffer, res_encoding.title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_encoding.version);
+ prt_dsc_resources(NULL, "encoding", buffer);
+ }
+ prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
+--- 3059,3102 ----
+ if (prt_out_mbyte && prt_custom_cmap)
+ {
+ /* Find user supplied CMap */
+! if (!prt_find_resource(prt_cmap, res_cmap))
+ {
+ EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""),
+ prt_cmap);
+ return FALSE;
+ }
+! if (!prt_open_resource(res_cmap))
+ return FALSE;
+ }
+ #endif
+
+ /* List resources supplied */
+! STRCPY(buffer, res_prolog->title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_prolog->version);
+ prt_dsc_resources("DocumentSuppliedResources", "procset", buffer);
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+! STRCPY(buffer, res_cidfont->title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_cidfont->version);
+ prt_dsc_resources(NULL, "procset", buffer);
+
+ if (prt_custom_cmap)
+ {
+! STRCPY(buffer, res_cmap->title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_cmap->version);
+ prt_dsc_resources(NULL, "cmap", buffer);
+ }
+ }
+ if (!prt_out_mbyte || prt_use_courier)
+ #endif
+ {
+! STRCPY(buffer, res_encoding->title);
+ STRCAT(buffer, " ");
+! STRCAT(buffer, res_encoding->version);
+ prt_dsc_resources(NULL, "encoding", buffer);
+ }
+ prt_dsc_requirements(prt_duplex, prt_tumble, prt_collate,
+***************
+*** 3114,3128 ****
+ prt_dsc_noarg("BeginProlog");
+
+ /* Add required procsets - NOTE: order is important! */
+! if (!prt_add_resource(&res_prolog))
+ return FALSE;
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+ /* Add CID font procset, and any user supplied CMap */
+! if (!prt_add_resource(&res_cidfont))
+ return FALSE;
+! if (prt_custom_cmap && !prt_add_resource(&res_cmap))
+ return FALSE;
+ }
+ #endif
+--- 3139,3153 ----
+ prt_dsc_noarg("BeginProlog");
+
+ /* Add required procsets - NOTE: order is important! */
+! if (!prt_add_resource(res_prolog))
+ return FALSE;
+ #ifdef FEAT_MBYTE
+ if (prt_out_mbyte)
+ {
+ /* Add CID font procset, and any user supplied CMap */
+! if (!prt_add_resource(res_cidfont))
+ return FALSE;
+! if (prt_custom_cmap && !prt_add_resource(res_cmap))
+ return FALSE;
+ }
+ #endif
+***************
+*** 3132,3138 ****
+ #endif
+ /* There will be only one Roman font encoding to be included in the PS
+ * file. */
+! if (!prt_add_resource(&res_encoding))
+ return FALSE;
+
+ prt_dsc_noarg("EndProlog");
+--- 3157,3163 ----
+ #endif
+ /* There will be only one Roman font encoding to be included in the PS
+ * file. */
+! if (!prt_add_resource(res_encoding))
+ return FALSE;
+
+ prt_dsc_noarg("EndProlog");
+***************
+*** 3248,3254 ****
+ prt_dsc_noarg("EndSetup");
+
+ /* Fail if any problems writing out to the PS file */
+! return !prt_file_error;
+ }
+
+ void
+--- 3273,3289 ----
+ prt_dsc_noarg("EndSetup");
+
+ /* Fail if any problems writing out to the PS file */
+! retval = !prt_file_error;
+!
+! theend:
+! vim_free(res_prolog);
+! vim_free(res_encoding);
+! #ifdef FEAT_MBYTE
+! vim_free(res_cidfont);
+! vim_free(res_cmap);
+! #endif
+!
+! return retval;
+ }
+
+ void
+*** ../vim-7.3.160/src/quickfix.c 2010-12-02 15:33:10.000000000 +0100
+--- src/quickfix.c 2011-04-11 17:54:07.000000000 +0200
+***************
+*** 3049,3056 ****
+ int flags = 0;
+ colnr_T col;
+ long tomatch;
+! char_u dirname_start[MAXPATHL];
+! char_u dirname_now[MAXPATHL];
+ char_u *target_dir = NULL;
+ #ifdef FEAT_AUTOCMD
+ char_u *au_name = NULL;
+--- 3049,3056 ----
+ int flags = 0;
+ colnr_T col;
+ long tomatch;
+! char_u *dirname_start = NULL;
+! char_u *dirname_now = NULL;
+ char_u *target_dir = NULL;
+ #ifdef FEAT_AUTOCMD
+ char_u *au_name = NULL;
+***************
+*** 3128,3133 ****
+--- 3128,3138 ----
+ goto theend;
+ }
+
++ dirname_start = alloc(MAXPATHL);
++ dirname_now = alloc(MAXPATHL);
++ if (dirname_start == NULL || dirname_now == NULL)
++ goto theend;
++
+ /* Remember the current directory, because a BufRead autocommand that does
+ * ":lcd %:p:h" changes the meaning of short path names. */
+ mch_dirname(dirname_start, MAXPATHL);
+***************
+*** 3364,3369 ****
+--- 3369,3376 ----
+ }
+
+ theend:
++ vim_free(dirname_now);
++ vim_free(dirname_start);
+ vim_free(target_dir);
+ vim_free(regmatch.regprog);
+ }
+*** ../vim-7.3.160/src/main.c 2011-03-22 18:10:34.000000000 +0100
+--- src/main.c 2011-04-11 18:06:06.000000000 +0200
+***************
+*** 3814,3820 ****
+ int i;
+ char_u *inicmd = NULL;
+ char_u *p;
+! char_u cwd[MAXPATHL];
+
+ if (filec > 0 && filev[0][0] == '+')
+ {
+--- 3814,3820 ----
+ int i;
+ char_u *inicmd = NULL;
+ char_u *p;
+! char_u *cwd;
+
+ if (filec > 0 && filev[0][0] == '+')
+ {
+***************
+*** 3827,3841 ****
+ mainerr_arg_missing((char_u *)filev[-1]);
+
+ /* Temporarily cd to the current directory to handle relative file names. */
+ if (mch_dirname(cwd, MAXPATHL) != OK)
+ return NULL;
+! if ((p = vim_strsave_escaped_ext(cwd,
+ #ifdef BACKSLASH_IN_FILENAME
+ "", /* rem_backslash() will tell what chars to escape */
+ #else
+ PATH_ESC_CHARS,
+ #endif
+! '\\', TRUE)) == NULL)
+ return NULL;
+ ga_init2(&ga, 1, 100);
+ ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
+--- 3827,3849 ----
+ mainerr_arg_missing((char_u *)filev[-1]);
+
+ /* Temporarily cd to the current directory to handle relative file names. */
++ cwd = alloc(MAXPATHL);
++ if (cwd == NULL)
++ return NULL;
+ if (mch_dirname(cwd, MAXPATHL) != OK)
++ {
++ vim_free(cwd);
+ return NULL;
+! }
+! p = vim_strsave_escaped_ext(cwd,
+ #ifdef BACKSLASH_IN_FILENAME
+ "", /* rem_backslash() will tell what chars to escape */
+ #else
+ PATH_ESC_CHARS,
+ #endif
+! '\\', TRUE);
+! vim_free(cwd);
+! if (p == NULL)
+ return NULL;
+ ga_init2(&ga, 1, 100);
+ ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd ");
+*** ../vim-7.3.160/src/netbeans.c 2011-04-11 16:56:29.000000000 +0200
+--- src/netbeans.c 2011-04-11 18:27:08.000000000 +0200
+***************
+*** 2891,2897 ****
+ char_u *text;
+ linenr_T lnum;
+ int col;
+! char buf[MAXPATHL * 2 + 25];
+ char_u *p;
+
+ /* Don't do anything when 'ballooneval' is off, messages scrolled the
+--- 2891,2897 ----
+ char_u *text;
+ linenr_T lnum;
+ int col;
+! char *buf;
+ char_u *p;
+
+ /* Don't do anything when 'ballooneval' is off, messages scrolled the
+***************
+*** 2905,2919 ****
+ * length. */
+ if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
+ {
+! p = nb_quote(text);
+! if (p != NULL)
+ {
+! vim_snprintf(buf, sizeof(buf),
+! "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+! vim_free(p);
+ }
+- nbdebug(("EVT: %s", buf));
+- nb_send(buf, "netbeans_beval_cb");
+ }
+ vim_free(text);
+ }
+--- 2905,2924 ----
+ * length. */
+ if (text != NULL && text[0] != NUL && STRLEN(text) < MAXPATHL)
+ {
+! buf = (char *)alloc(MAXPATHL * 2 + 25);
+! if (buf != NULL)
+ {
+! p = nb_quote(text);
+! if (p != NULL)
+! {
+! vim_snprintf(buf, MAXPATHL * 2 + 25,
+! "0:balloonText=%d \"%s\"\n", r_cmdno, p);
+! vim_free(p);
+! }
+! nbdebug(("EVT: %s", buf));
+! nb_send(buf, "netbeans_beval_cb");
+! vim_free(buf);
+ }
+ }
+ vim_free(text);
+ }
+*** ../vim-7.3.160/src/spell.c 2011-04-11 16:56:29.000000000 +0200
+--- src/spell.c 2011-04-11 18:00:49.000000000 +0200
+***************
+*** 8590,8596 ****
+ spellinfo_T *spin;
+ char_u *wfname;
+ {
+! char_u fname[MAXPATHL];
+ int len;
+ slang_T *slang;
+ int free_slang = FALSE;
+--- 8590,8596 ----
+ spellinfo_T *spin;
+ char_u *wfname;
+ {
+! char_u *fname = NULL;
+ int len;
+ slang_T *slang;
+ int free_slang = FALSE;
+***************
+*** 8654,8659 ****
+--- 8654,8662 ----
+ * Write the .sug file.
+ * Make the file name by changing ".spl" to ".sug".
+ */
++ fname = alloc(MAXPATHL);
++ if (fname == NULL)
++ goto theend;
+ vim_strncpy(fname, wfname, MAXPATHL - 1);
+ len = (int)STRLEN(fname);
+ fname[len - 2] = 'u';
+***************
+*** 8661,8666 ****
+--- 8664,8670 ----
+ sug_write(spin, fname);
+
+ theend:
++ vim_free(fname);
+ if (free_slang)
+ slang_free(slang);
+ free_blocks(spin->si_blocks);
+***************
+*** 9106,9113 ****
+ int overwrite; /* overwrite existing output file */
+ int added_word; /* invoked through "zg" */
+ {
+! char_u fname[MAXPATHL];
+! char_u wfname[MAXPATHL];
+ char_u **innames;
+ int incount;
+ afffile_T *(afile[8]);
+--- 9110,9117 ----
+ int overwrite; /* overwrite existing output file */
+ int added_word; /* invoked through "zg" */
+ {
+! char_u *fname = NULL;
+! char_u *wfname;
+ char_u **innames;
+ int incount;
+ afffile_T *(afile[8]);
+***************
+*** 9135,9140 ****
+--- 9139,9148 ----
+ innames = &fnames[1];
+ incount = fcount - 1;
+
++ wfname = alloc(MAXPATHL);
++ if (wfname == NULL)
++ return;
++
+ if (fcount >= 1)
+ {
+ len = (int)STRLEN(fnames[0]);
+***************
+*** 9144,9167 ****
+ * "path/en.latin1.add.spl". */
+ innames = &fnames[0];
+ incount = 1;
+! vim_snprintf((char *)wfname, sizeof(wfname), "%s.spl", fnames[0]);
+ }
+ else if (fcount == 1)
+ {
+ /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
+ innames = &fnames[0];
+ incount = 1;
+! vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
+ fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+ }
+ else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
+ {
+ /* Name ends in ".spl", use as the file name. */
+! vim_strncpy(wfname, fnames[0], sizeof(wfname) - 1);
+ }
+ else
+ /* Name should be language, make the file name from it. */
+! vim_snprintf((char *)wfname, sizeof(wfname), SPL_FNAME_TMPL,
+ fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+
+ /* Check for .ascii.spl. */
+--- 9152,9175 ----
+ * "path/en.latin1.add.spl". */
+ innames = &fnames[0];
+ incount = 1;
+! vim_snprintf((char *)wfname, MAXPATHL, "%s.spl", fnames[0]);
+ }
+ else if (fcount == 1)
+ {
+ /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
+ innames = &fnames[0];
+ incount = 1;
+! vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
+ fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+ }
+ else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
+ {
+ /* Name ends in ".spl", use as the file name. */
+! vim_strncpy(wfname, fnames[0], MAXPATHL - 1);
+ }
+ else
+ /* Name should be language, make the file name from it. */
+! vim_snprintf((char *)wfname, MAXPATHL, SPL_FNAME_TMPL,
+ fnames[0], spin.si_ascii ? (char_u *)"ascii" : spell_enc());
+
+ /* Check for .ascii.spl. */
+***************
+*** 9186,9199 ****
+ if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+ {
+ EMSG(_(e_exists));
+! return;
+ }
+ if (mch_isdir(wfname))
+ {
+ EMSG2(_(e_isadir2), wfname);
+! return;
+ }
+
+ /*
+ * Init the aff and dic pointers.
+ * Get the region names if there are more than 2 arguments.
+--- 9194,9211 ----
+ if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+ {
+ EMSG(_(e_exists));
+! goto theend;
+ }
+ if (mch_isdir(wfname))
+ {
+ EMSG2(_(e_isadir2), wfname);
+! goto theend;
+ }
+
++ fname = alloc(MAXPATHL);
++ if (fname == NULL)
++ goto theend;
++
+ /*
+ * Init the aff and dic pointers.
+ * Get the region names if there are more than 2 arguments.
+***************
+*** 9209,9215 ****
+ || innames[i][len - 3] != '_')
+ {
+ EMSG2(_("E755: Invalid region in %s"), innames[i]);
+! return;
+ }
+ spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+ spin.si_region_name[i * 2 + 1] =
+--- 9221,9227 ----
+ || innames[i][len - 3] != '_')
+ {
+ EMSG2(_("E755: Invalid region in %s"), innames[i]);
+! goto theend;
+ }
+ spin.si_region_name[i * 2] = TOLOWER_ASC(innames[i][len - 2]);
+ spin.si_region_name[i * 2 + 1] =
+***************
+*** 9226,9232 ****
+ || spin.si_prefroot == NULL)
+ {
+ free_blocks(spin.si_blocks);
+! return;
+ }
+
+ /* When not producing a .add.spl file clear the character table when
+--- 9238,9244 ----
+ || spin.si_prefroot == NULL)
+ {
+ free_blocks(spin.si_blocks);
+! goto theend;
+ }
+
+ /* When not producing a .add.spl file clear the character table when
+***************
+*** 9247,9253 ****
+ spin.si_conv.vc_type = CONV_NONE;
+ spin.si_region = 1 << i;
+
+! vim_snprintf((char *)fname, sizeof(fname), "%s.aff", innames[i]);
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+ /* Read the .aff file. Will init "spin->si_conv" based on the
+--- 9259,9265 ----
+ spin.si_conv.vc_type = CONV_NONE;
+ spin.si_region = 1 << i;
+
+! vim_snprintf((char *)fname, MAXPATHL, "%s.aff", innames[i]);
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+ /* Read the .aff file. Will init "spin->si_conv" based on the
+***************
+*** 9258,9264 ****
+ else
+ {
+ /* Read the .dic file and store the words in the trees. */
+! vim_snprintf((char *)fname, sizeof(fname), "%s.dic",
+ innames[i]);
+ if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
+ error = TRUE;
+--- 9270,9276 ----
+ else
+ {
+ /* Read the .dic file and store the words in the trees. */
+! vim_snprintf((char *)fname, MAXPATHL, "%s.dic",
+ innames[i]);
+ if (spell_read_dic(&spin, fname, afile[i]) == FAIL)
+ error = TRUE;
+***************
+*** 9340,9345 ****
+--- 9352,9361 ----
+ spell_make_sugfile(&spin, wfname);
+
+ }
++
++ theend:
++ vim_free(fname);
++ vim_free(wfname);
+ }
+
+ /*
+***************
+*** 9392,9398 ****
+ buf_T *buf = NULL;
+ int new_spf = FALSE;
+ char_u *fname;
+! char_u fnamebuf[MAXPATHL];
+ char_u line[MAXWLEN * 2];
+ long fpos, fpos_next = 0;
+ int i;
+--- 9408,9414 ----
+ buf_T *buf = NULL;
+ int new_spf = FALSE;
+ char_u *fname;
+! char_u *fnamebuf = NULL;
+ char_u line[MAXWLEN * 2];
+ long fpos, fpos_next = 0;
+ int i;
+***************
+*** 9422,9427 ****
+--- 9438,9446 ----
+ EMSG2(_(e_notset), "spellfile");
+ return;
+ }
++ fnamebuf = alloc(MAXPATHL);
++ if (fnamebuf == NULL)
++ return;
+
+ for (spf = curwin->w_s->b_p_spf, i = 1; *spf != NUL; ++i)
+ {
+***************
+*** 9431,9436 ****
+--- 9450,9456 ----
+ if (*spf == NUL)
+ {
+ EMSGN(_("E765: 'spellfile' does not have %ld entries"), idx);
++ vim_free(fnamebuf);
+ return;
+ }
+ }
+***************
+*** 9442,9447 ****
+--- 9462,9468 ----
+ if (buf != NULL && bufIsChanged(buf))
+ {
+ EMSG(_(e_bufloaded));
++ vim_free(fnamebuf);
+ return;
+ }
+
+***************
+*** 9536,9541 ****
+--- 9557,9563 ----
+
+ redraw_all_later(SOME_VALID);
+ }
++ vim_free(fnamebuf);
+ }
+
+ /*
+***************
+*** 9544,9550 ****
+ static void
+ init_spellfile()
+ {
+! char_u buf[MAXPATHL];
+ int l;
+ char_u *fname;
+ char_u *rtp;
+--- 9566,9572 ----
+ static void
+ init_spellfile()
+ {
+! char_u *buf;
+ int l;
+ char_u *fname;
+ char_u *rtp;
+***************
+*** 9554,9559 ****
+--- 9576,9585 ----
+
+ if (*curwin->w_s->b_p_spl != NUL && curwin->w_s->b_langp.ga_len > 0)
+ {
++ buf = alloc(MAXPATHL);
++ if (buf == NULL)
++ return;
++
+ /* Find the end of the language name. Exclude the region. If there
+ * is a path separator remember the start of the tail. */
+ for (lend = curwin->w_s->b_p_spl; *lend != NUL
+***************
+*** 9597,9603 ****
+ "/%.*s", (int)(lend - lstart), lstart);
+ }
+ l = (int)STRLEN(buf);
+! fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)->lp_slang->sl_fname;
+ vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
+ fname != NULL
+ && strstr((char *)gettail(fname), ".ascii.") != NULL
+--- 9623,9630 ----
+ "/%.*s", (int)(lend - lstart), lstart);
+ }
+ l = (int)STRLEN(buf);
+! fname = LANGP_ENTRY(curwin->w_s->b_langp, 0)
+! ->lp_slang->sl_fname;
+ vim_snprintf((char *)buf + l, MAXPATHL - l, ".%s.add",
+ fname != NULL
+ && strstr((char *)gettail(fname), ".ascii.") != NULL
+***************
+*** 9607,9612 ****
+--- 9634,9641 ----
+ }
+ aspath = FALSE;
+ }
++
++ vim_free(buf);
+ }
+ }
+
+*** ../vim-7.3.160/src/tag.c 2011-04-11 16:56:29.000000000 +0200
+--- src/tag.c 2011-04-11 20:54:36.000000000 +0200
+***************
+*** 775,791 ****
+ {
+ list_T *list;
+ char_u tag_name[128 + 1];
+! char_u fname[MAXPATHL + 1];
+! char_u cmd[CMDBUFFSIZE + 1];
+
+ /*
+ * Add the matching tags to the location list for the current
+ * window.
+ */
+
+ list = list_alloc();
+! if (list == NULL)
+ goto end_do_tag;
+
+ for (i = 0; i < num_matches; ++i)
+ {
+--- 775,799 ----
+ {
+ list_T *list;
+ char_u tag_name[128 + 1];
+! char_u *fname;
+! char_u *cmd;
+
+ /*
+ * Add the matching tags to the location list for the current
+ * window.
+ */
+
++ fname = alloc(MAXPATHL + 1);
++ cmd = alloc(CMDBUFFSIZE + 1);
+ list = list_alloc();
+! if (list == NULL || fname == NULL || cmd == NULL)
+! {
+! vim_free(cmd);
+! vim_free(fname);
+! if (list != NULL)
+! list_free(list, TRUE);
+ goto end_do_tag;
++ }
+
+ for (i = 0; i < num_matches; ++i)
+ {
+***************
+*** 911,916 ****
+--- 919,926 ----
+ set_errorlist(curwin, list, ' ', IObuff);
+
+ list_free(list, TRUE);
++ vim_free(fname);
++ vim_free(cmd);
+
+ cur_match = 0; /* Jump to the first tag */
+ }
+***************
+*** 3777,3784 ****
+ char_u *start; /* start of the value */
+ char_u *end; /* after the value; can be NULL */
+ {
+! char_u buf[MAXPATHL];
+ int len = 0;
+
+ /* check that the field name doesn't exist yet */
+ if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+--- 3787,3795 ----
+ char_u *start; /* start of the value */
+ char_u *end; /* after the value; can be NULL */
+ {
+! char_u *buf;
+ int len = 0;
++ int retval;
+
+ /* check that the field name doesn't exist yet */
+ if (dict_find(dict, (char_u *)field_name, -1) != NULL)
+***************
+*** 3791,3796 ****
+--- 3802,3810 ----
+ }
+ return FAIL;
+ }
++ buf = alloc(MAXPATHL);
++ if (buf == NULL)
++ return FAIL;
+ if (start != NULL)
+ {
+ if (end == NULL)
+***************
+*** 3800,3811 ****
+ --end;
+ }
+ len = (int)(end - start);
+! if (len > (int)sizeof(buf) - 1)
+! len = sizeof(buf) - 1;
+ vim_strncpy(buf, start, len);
+ }
+ buf[len] = NUL;
+! return dict_add_nr_str(dict, field_name, 0L, buf);
+ }
+
+ /*
+--- 3814,3827 ----
+ --end;
+ }
+ len = (int)(end - start);
+! if (len > MAXPATHL - 1)
+! len = MAXPATHL - 1;
+ vim_strncpy(buf, start, len);
+ }
+ buf[len] = NUL;
+! retval = dict_add_nr_str(dict, field_name, 0L, buf);
+! vim_free(buf);
+! return retval;
+ }
+
+ /*
+*** ../vim-7.3.160/src/vim.h 2010-12-30 12:30:26.000000000 +0100
+--- src/vim.h 2011-04-11 20:50:54.000000000 +0200
+***************
+*** 1435,1440 ****
+--- 1435,1442 ----
+
+ #define IOSIZE (1024+1) /* file i/o and sprintf buffer size */
+
++ #define DIALOG_MSG_SIZE 1000 /* buffer size for dialog_msg() */
++
+ #ifdef FEAT_MBYTE
+ # define MSG_BUF_LEN 480 /* length of buffer for small messages */
+ # define MSG_BUF_CLEN (MSG_BUF_LEN / 6) /* cell length (worst case: utf-8
+*** ../vim-7.3.160/src/xxd/xxd.c 2011-04-02 14:44:50.000000000 +0200
+--- src/xxd/xxd.c 2011-04-11 16:40:48.000000000 +0200
+***************
+*** 476,482 ****
+ int octspergrp = -1; /* number of octets grouped in output */
+ int grplen; /* total chars per octet group */
+ long length = -1, n = 0, seekoff = 0;
+! char l[LLEN+1];
+ char *pp;
+
+ #ifdef AMIGA
+--- 476,482 ----
+ int octspergrp = -1; /* number of octets grouped in output */
+ int grplen; /* total chars per octet group */
+ long length = -1, n = 0, seekoff = 0;
+! static char l[LLEN+1]; /* static because it may be too big for stack */
+ char *pp;
+
+ #ifdef AMIGA
+*** ../vim-7.3.160/src/version.c 2011-04-11 16:56:29.000000000 +0200
+--- src/version.c 2011-04-11 21:15:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 161,
+ /**/
+
+--
+The process for understanding customers primarily involves sitting around with
+other marketing people and talking about what you would to if you were dumb
+enough to be a customer.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.162 b/source/ap/vim/patches/7.3.162
new file mode 100644
index 000000000..3f0173afb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.162
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.162
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.162
+Problem: No error message when assigning to a list with an index out of
+ range. (Yukihiro Nakadaira)
+Solution: Add the error message.
+Files: src/eval.c
+
+
+*** ../vim-7.3.161/src/eval.c 2011-04-11 21:35:03.000000000 +0200
+--- src/eval.c 2011-04-21 13:40:38.000000000 +0200
+***************
+*** 2794,2799 ****
+--- 2794,2801 ----
+ {
+ if (lp->ll_range && !lp->ll_empty2)
+ clear_tv(&var2);
++ if (!quiet)
++ EMSGN(_(e_listidx), lp->ll_n1);
+ return NULL;
+ }
+
+***************
+*** 2811,2817 ****
+--- 2813,2823 ----
+ {
+ ni = list_find(lp->ll_list, lp->ll_n2);
+ if (ni == NULL)
++ {
++ if (!quiet)
++ EMSGN(_(e_listidx), lp->ll_n2);
+ return NULL;
++ }
+ lp->ll_n2 = list_idx_of_item(lp->ll_list, ni);
+ }
+
+***************
+*** 2819,2825 ****
+--- 2825,2835 ----
+ if (lp->ll_n1 < 0)
+ lp->ll_n1 = list_idx_of_item(lp->ll_list, lp->ll_li);
+ if (lp->ll_n2 < lp->ll_n1)
++ {
++ if (!quiet)
++ EMSGN(_(e_listidx), lp->ll_n2);
+ return NULL;
++ }
+ }
+
+ lp->ll_tv = &lp->ll_li->li_tv;
+*** ../vim-7.3.161/src/version.c 2011-04-11 21:35:03.000000000 +0200
+--- src/version.c 2011-04-21 13:44:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 162,
+ /**/
+
+--
+Far back in the mists of ancient time, in the great and glorious days of the
+former Galactic Empire, life was wild, rich and largely tax free.
+Mighty starships plied their way between exotic suns, seeking adventure and
+reward among the furthest reaches of Galactic space. In those days, spirits
+were brave, the stakes were high, men were real men, women were real women
+and small furry creatures from Alpha Centauri were real small furry creatures
+from Alpha Centauri. And all dared to brave unknown terrors, to do mighty
+deeds, to boldly split infinitives that no man had split before -- and thus
+was the Empire forged.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.163 b/source/ap/vim/patches/7.3.163
new file mode 100644
index 000000000..b5f1cb4ad
--- /dev/null
+++ b/source/ap/vim/patches/7.3.163
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.163
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.163
+Problem: For the default of 'shellpipe' "mksh" and "pdksh" are not
+ recognized.
+Solution: Recognize these shell names.
+Files: src/option.c
+
+
+*** ../vim-7.3.162/src/option.c 2011-03-22 14:35:01.000000000 +0100
+--- src/option.c 2011-04-15 20:49:54.000000000 +0200
+***************
+*** 3846,3851 ****
+--- 3846,3853 ----
+ # ifndef OS2 /* Always use bourne shell style redirection if we reach this */
+ if ( fnamecmp(p, "sh") == 0
+ || fnamecmp(p, "ksh") == 0
++ || fnamecmp(p, "mksh") == 0
++ || fnamecmp(p, "pdksh") == 0
+ || fnamecmp(p, "zsh") == 0
+ || fnamecmp(p, "zsh-beta") == 0
+ || fnamecmp(p, "bash") == 0
+***************
+*** 3853,3858 ****
+--- 3855,3862 ----
+ || fnamecmp(p, "cmd") == 0
+ || fnamecmp(p, "sh.exe") == 0
+ || fnamecmp(p, "ksh.exe") == 0
++ || fnamecmp(p, "mksh.exe") == 0
++ || fnamecmp(p, "pdksh.exe") == 0
+ || fnamecmp(p, "zsh.exe") == 0
+ || fnamecmp(p, "zsh-beta.exe") == 0
+ || fnamecmp(p, "bash.exe") == 0
+*** ../vim-7.3.162/src/version.c 2011-04-21 14:27:21.000000000 +0200
+--- src/version.c 2011-04-28 12:56:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 163,
+ /**/
+
+--
+If you put 7 of the most talented OSS developers in a room for a week
+and asked them to fix a bug in a spreadsheet program, in 1 week
+you'd have 2 new mail readers and a text-based web browser.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.164 b/source/ap/vim/patches/7.3.164
new file mode 100644
index 000000000..9049f1b58
--- /dev/null
+++ b/source/ap/vim/patches/7.3.164
@@ -0,0 +1,181 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.164
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.164
+Problem: C-indenting: a preprocessor statement confuses detection of a
+ function delcaration.
+Solution: Ignore preprocessor lines. (Lech Lorens) Also recognize the style
+ to put a comma before the argument name.
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.163/src/misc1.c 2011-04-11 16:56:29.000000000 +0200
+--- src/misc1.c 2011-04-28 12:49:55.000000000 +0200
+***************
+*** 5396,5403 ****
+ cin_ispreproc(s)
+ char_u *s;
+ {
+! s = skipwhite(s);
+! if (*s == '#')
+ return TRUE;
+ return FALSE;
+ }
+--- 5396,5402 ----
+ cin_ispreproc(s)
+ char_u *s;
+ {
+! if (*skipwhite(s) == '#')
+ return TRUE;
+ return FALSE;
+ }
+***************
+*** 5513,5518 ****
+--- 5512,5521 ----
+ else
+ s = *sp;
+
++ /* Ignore line starting with #. */
++ if (cin_ispreproc(s))
++ return FALSE;
++
+ while (*s && *s != '(' && *s != ';' && *s != '\'' && *s != '"')
+ {
+ if (cin_iscomment(s)) /* ignore comments */
+***************
+*** 5538,5550 ****
+ retval = TRUE;
+ goto done;
+ }
+! if (*s == ',' && cin_nocode(s + 1))
+ {
+! /* ',' at the end: continue looking in the next line */
+ if (lnum >= curbuf->b_ml.ml_line_count)
+ break;
+!
+! s = ml_get(++lnum);
+ }
+ else if (cin_iscomment(s)) /* ignore comments */
+ s = cin_skipcomment(s);
+--- 5541,5569 ----
+ retval = TRUE;
+ goto done;
+ }
+! if ((*s == ',' && cin_nocode(s + 1)) || s[1] == NUL || cin_nocode(s))
+ {
+! int comma = (*s == ',');
+!
+! /* ',' at the end: continue looking in the next line.
+! * At the end: check for ',' in the next line, for this style:
+! * func(arg1
+! * , arg2) */
+! for (;;)
+! {
+! if (lnum >= curbuf->b_ml.ml_line_count)
+! break;
+! s = ml_get(++lnum);
+! if (!cin_ispreproc(s))
+! break;
+! }
+ if (lnum >= curbuf->b_ml.ml_line_count)
+ break;
+! /* Require a comma at end of the line or a comma or ')' at the
+! * start of next line. */
+! s = skipwhite(s);
+! if (!comma && *s != ',' && *s != ')')
+! break;
+ }
+ else if (cin_iscomment(s)) /* ignore comments */
+ s = cin_skipcomment(s);
+*** ../vim-7.3.163/src/testdir/test3.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test3.in 2011-04-28 12:15:12.000000000 +0200
+***************
+*** 1315,1320 ****
+--- 1315,1349 ----
+ }
+
+ STARTTEST
++ :set cino=(0,ts
++ 2kdd=][
++ ENDTEST
++
++ void func(int a
++ #if defined(FOO)
++ , int b
++ , int c
++ #endif
++ )
++ {
++ }
++
++ STARTTEST
++ :set cino=(0
++ 2kdd=][
++ ENDTEST
++
++ void
++ func(int a
++ #if defined(FOO)
++ , int b
++ , int c
++ #endif
++ )
++ {
++ }
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.163/src/testdir/test3.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test3.ok 2011-04-28 12:54:04.000000000 +0200
+***************
+*** 1183,1185 ****
+--- 1183,1206 ----
+ foo;
+ }
+
++
++ void func(int a
++ #if defined(FOO)
++ , int b
++ , int c
++ #endif
++ )
++ {
++ }
++
++
++ void
++ func(int a
++ #if defined(FOO)
++ , int b
++ , int c
++ #endif
++ )
++ {
++ }
++
+*** ../vim-7.3.163/src/version.c 2011-04-28 12:56:57.000000000 +0200
+--- src/version.c 2011-04-28 12:59:55.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 164,
+ /**/
+
+--
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.165 b/source/ap/vim/patches/7.3.165
new file mode 100644
index 000000000..2725259e3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.165
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.165
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.165
+Problem: ":find" completion does not escape spaces in a directory name.
+ (Isz)
+Solution: Add backslashes for EXPAND_FILES_IN_PATH. (Carlo Teubner)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.164/src/ex_getln.c 2010-12-02 16:01:23.000000000 +0100
+--- src/ex_getln.c 2011-04-28 12:52:12.000000000 +0200
+***************
+*** 3702,3707 ****
+--- 3702,3708 ----
+ if (options & WILD_ESCAPE)
+ {
+ if (xp->xp_context == EXPAND_FILES
++ || xp->xp_context == EXPAND_FILES_IN_PATH
+ || xp->xp_context == EXPAND_SHELLCMD
+ || xp->xp_context == EXPAND_BUFFERS
+ || xp->xp_context == EXPAND_DIRECTORIES)
+*** ../vim-7.3.164/src/version.c 2011-04-28 13:01:59.000000000 +0200
+--- src/version.c 2011-04-28 17:17:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 165,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+38. You wake up at 3 a.m. to go to the bathroom and stop and check your e-mail
+ on the way back to bed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.166 b/source/ap/vim/patches/7.3.166
new file mode 100644
index 000000000..93c6ed353
--- /dev/null
+++ b/source/ap/vim/patches/7.3.166
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.166
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.166
+Problem: Buffer on the stack may be too big
+Solution: Allocate the space.
+Files: src/option.c
+
+
+*** ../vim-7.3.165/src/option.c 2011-04-28 12:56:57.000000000 +0200
+--- src/option.c 2011-04-15 20:49:54.000000000 +0200
+***************
+*** 9185,9191 ****
+ int expand;
+ {
+ char_u *s;
+! char_u buf[MAXPATHL];
+
+ if (fprintf(fd, "%s %s=", cmd, name) < 0)
+ return FAIL;
+--- 9185,9191 ----
+ int expand;
+ {
+ char_u *s;
+! char_u *buf;
+
+ if (fprintf(fd, "%s %s=", cmd, name) < 0)
+ return FAIL;
+***************
+*** 9203,9211 ****
+--- 9203,9218 ----
+ }
+ else if (expand)
+ {
++ buf = alloc(MAXPATHL);
++ if (buf == NULL)
++ return FAIL;
+ home_replace(NULL, *valuep, buf, MAXPATHL, FALSE);
+ if (put_escstr(fd, buf, 2) == FAIL)
++ {
++ vim_free(buf);
+ return FAIL;
++ }
++ vim_free(buf);
+ }
+ else if (put_escstr(fd, *valuep, 2) == FAIL)
+ return FAIL;
+*** ../vim-7.3.165/src/version.c 2011-04-28 17:21:49.000000000 +0200
+--- src/version.c 2011-04-28 17:23:24.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 166,
+ /**/
+
+--
+He who laughs last, thinks slowest.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.167 b/source/ap/vim/patches/7.3.167
new file mode 100644
index 000000000..4a6de89fb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.167
@@ -0,0 +1,96 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.167
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.167
+Problem: When using the internal grep QuickFixCmdPost is not triggered.
+ (Yukihiro Nakadaira)
+Solution: Change the place where autocommands are triggered.
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.166/src/quickfix.c 2011-04-11 21:35:03.000000000 +0200
+--- src/quickfix.c 2011-04-28 13:28:03.000000000 +0200
+***************
+*** 2742,2747 ****
+--- 2742,2754 ----
+ #ifdef FEAT_AUTOCMD
+ char_u *au_name = NULL;
+
++ /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
++ if (grep_internal(eap->cmdidx))
++ {
++ ex_vimgrep(eap);
++ return;
++ }
++
+ switch (eap->cmdidx)
+ {
+ case CMD_make: au_name = (char_u *)"make"; break;
+***************
+*** 2763,2775 ****
+ }
+ #endif
+
+- /* Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal". */
+- if (grep_internal(eap->cmdidx))
+- {
+- ex_vimgrep(eap);
+- return;
+- }
+-
+ if (eap->cmdidx == CMD_lmake || eap->cmdidx == CMD_lgrep
+ || eap->cmdidx == CMD_lgrepadd)
+ wp = curwin;
+--- 2770,2775 ----
+***************
+*** 3057,3066 ****
+
+ switch (eap->cmdidx)
+ {
+! case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
+! case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
+! case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
+ case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
+ default: break;
+ }
+ if (au_name != NULL)
+--- 3057,3070 ----
+
+ switch (eap->cmdidx)
+ {
+! case CMD_vimgrep: au_name = (char_u *)"vimgrep"; break;
+! case CMD_lvimgrep: au_name = (char_u *)"lvimgrep"; break;
+! case CMD_vimgrepadd: au_name = (char_u *)"vimgrepadd"; break;
+ case CMD_lvimgrepadd: au_name = (char_u *)"lvimgrepadd"; break;
++ case CMD_grep: au_name = (char_u *)"grep"; break;
++ case CMD_lgrep: au_name = (char_u *)"lgrep"; break;
++ case CMD_grepadd: au_name = (char_u *)"grepadd"; break;
++ case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
+ default: break;
+ }
+ if (au_name != NULL)
+*** ../vim-7.3.166/src/version.c 2011-04-28 17:24:54.000000000 +0200
+--- src/version.c 2011-04-28 17:26:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 167,
+ /**/
+
+--
+Micro$oft: where do you want to go today?
+ Linux: where do you want to go tomorrow?
+ FreeBSD: are you guys coming, or what?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.168 b/source/ap/vim/patches/7.3.168
new file mode 100644
index 000000000..3d6fe9472
--- /dev/null
+++ b/source/ap/vim/patches/7.3.168
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.168
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.168
+Problem: When the second argument of input() contains a CR the text up to
+ that is used without asking the user. (Yasuhiro Matsumoto)
+Solution: Change CR, NL and ESC in the text to a space.
+Files: src/getchar.c
+
+
+*** ../vim-7.3.167/src/getchar.c 2011-03-22 13:07:19.000000000 +0100
+--- src/getchar.c 2011-04-28 14:50:26.000000000 +0200
+***************
+*** 635,645 ****
+--- 635,648 ----
+ /*
+ * Stuff "s" into the stuff buffer, leaving special key codes unmodified and
+ * escaping other K_SPECIAL and CSI bytes.
++ * Change CR, LF and ESC into a space.
+ */
+ void
+ stuffReadbuffSpec(s)
+ char_u *s;
+ {
++ int c;
++
+ while (*s != NUL)
+ {
+ if (*s == K_SPECIAL && s[1] != NUL && s[2] != NUL)
+***************
+*** 649,659 ****
+ s += 3;
+ }
+ else
+ #ifdef FEAT_MBYTE
+! stuffcharReadbuff(mb_ptr2char_adv(&s));
+ #else
+! stuffcharReadbuff(*s++);
+ #endif
+ }
+ }
+ #endif
+--- 652,667 ----
+ s += 3;
+ }
+ else
++ {
+ #ifdef FEAT_MBYTE
+! c = mb_ptr2char_adv(&s);
+ #else
+! c = *s++;
+ #endif
++ if (c == CAR || c == NL || c == ESC)
++ c = ' ';
++ stuffcharReadbuff(c);
++ }
+ }
+ }
+ #endif
+*** ../vim-7.3.167/src/version.c 2011-04-28 17:27:05.000000000 +0200
+--- src/version.c 2011-04-28 17:28:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 168,
+ /**/
+
+--
+Everyone has a photographic memory. Some don't have film.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.169 b/source/ap/vim/patches/7.3.169
new file mode 100644
index 000000000..056ca99f6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.169
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.169
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.169
+Problem: Freeing memory already freed, warning from static code analyzer.
+Solution: Initialize pointers to NULL, correct use of "mustfree". (partly by
+ Dominique Pelle)
+Files: src/mis1.c
+
+
+*** ../vim-7.3.168/src/misc1.c 2011-04-28 13:01:59.000000000 +0200
+--- src/misc1.c 2011-04-28 17:42:00.000000000 +0200
+***************
+*** 3505,3511 ****
+ if (enc_utf8 && var != NULL)
+ {
+ int len;
+! char_u *pp;
+
+ /* Convert from active codepage to UTF-8. Other conversions are
+ * not done, because they would fail for non-ASCII characters. */
+--- 3505,3511 ----
+ if (enc_utf8 && var != NULL)
+ {
+ int len;
+! char_u *pp = NULL;
+
+ /* Convert from active codepage to UTF-8. Other conversions are
+ * not done, because they would fail for non-ASCII characters. */
+***************
+*** 3872,3882 ****
+ * Vim's version of getenv().
+ * Special handling of $HOME, $VIM and $VIMRUNTIME.
+ * Also does ACP to 'enc' conversion for Win32.
+ */
+ char_u *
+ vim_getenv(name, mustfree)
+ char_u *name;
+! int *mustfree; /* set to TRUE when returned is allocated */
+ {
+ char_u *p;
+ char_u *pend;
+--- 3872,3884 ----
+ * Vim's version of getenv().
+ * Special handling of $HOME, $VIM and $VIMRUNTIME.
+ * Also does ACP to 'enc' conversion for Win32.
++ * "mustfree" is set to TRUE when returned is allocated, it must be
++ * initialized to FALSE by the caller.
+ */
+ char_u *
+ vim_getenv(name, mustfree)
+ char_u *name;
+! int *mustfree;
+ {
+ char_u *p;
+ char_u *pend;
+***************
+*** 3898,3904 ****
+ if (enc_utf8)
+ {
+ int len;
+! char_u *pp;
+
+ /* Convert from active codepage to UTF-8. Other conversions are
+ * not done, because they would fail for non-ASCII characters. */
+--- 3900,3906 ----
+ if (enc_utf8)
+ {
+ int len;
+! char_u *pp = NULL;
+
+ /* Convert from active codepage to UTF-8. Other conversions are
+ * not done, because they would fail for non-ASCII characters. */
+***************
+*** 3942,3948 ****
+ if (enc_utf8)
+ {
+ int len;
+! char_u *pp;
+
+ /* Convert from active codepage to UTF-8. Other conversions
+ * are not done, because they would fail for non-ASCII
+--- 3944,3950 ----
+ if (enc_utf8)
+ {
+ int len;
+! char_u *pp = NULL;
+
+ /* Convert from active codepage to UTF-8. Other conversions
+ * are not done, because they would fail for non-ASCII
+***************
+*** 3950,3956 ****
+ acp_to_enc(p, (int)STRLEN(p), &pp, &len);
+ if (pp != NULL)
+ {
+! if (mustfree)
+ vim_free(p);
+ p = pp;
+ *mustfree = TRUE;
+--- 3952,3958 ----
+ acp_to_enc(p, (int)STRLEN(p), &pp, &len);
+ if (pp != NULL)
+ {
+! if (*mustfree)
+ vim_free(p);
+ p = pp;
+ *mustfree = TRUE;
+*** ../vim-7.3.168/src/version.c 2011-04-28 17:30:05.000000000 +0200
+--- src/version.c 2011-04-28 17:48:04.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 169,
+ /**/
+
+--
+A day without sunshine is like, well, night.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.170 b/source/ap/vim/patches/7.3.170
new file mode 100644
index 000000000..933173ea8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.170
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.170
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.170
+Problem: VMS Makefile for testing was not updated for test77.
+Solution: Add test77 to the Makefile.
+Files: src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.169/src/testdir/Make_vms.mms 2010-11-10 16:54:16.000000000 +0100
+--- src/testdir/Make_vms.mms 2011-03-03 17:04:56.000000000 +0100
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2010 Nov 10
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Mar 03
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 74,80 ****
+ test56.out test57.out test60.out \
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+! test71.out test72.out test74.out test75.out test76.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 74,81 ----
+ test56.out test57.out test60.out \
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+! test71.out test72.out test74.out test75.out test76.out \
+! test77.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.169/src/version.c 2011-04-28 17:48:39.000000000 +0200
+--- src/version.c 2011-04-28 19:04:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 170,
+ /**/
+
+--
+The users that I support would double-click on a landmine to find out
+what happens. -- A system administrator
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.171 b/source/ap/vim/patches/7.3.171
new file mode 100644
index 000000000..f965e0a20
--- /dev/null
+++ b/source/ap/vim/patches/7.3.171
@@ -0,0 +1,142 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.171
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.171
+Problem: When the clipboard isn't supported: ":yank*" gives a confusing
+ error message.
+Solution: Specifically mention that the register name is invalid.
+ (Jean-Rene David)
+Files: runtime/doc/change.txt, src/ex_docmd.c, src/globals.h
+
+
+*** ../vim-7.3.170/runtime/doc/change.txt 2010-08-15 21:57:18.000000000 +0200
+--- runtime/doc/change.txt 2011-05-05 13:48:00.000000000 +0200
+***************
+*** 916,923 ****
+ {Visual}["x]Y Yank the highlighted lines [into register x] (for
+ {Visual} see |Visual-mode|). {not in Vi}
+
+! *:y* *:yank*
+! :[range]y[ank] [x] Yank [range] lines [into register x].
+
+ :[range]y[ank] [x] {count}
+ Yank {count} lines, starting with last line number
+--- 917,926 ----
+ {Visual}["x]Y Yank the highlighted lines [into register x] (for
+ {Visual} see |Visual-mode|). {not in Vi}
+
+! *:y* *:yank* *E850*
+! :[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
+! "* or "+ registers is possible only in GUI versions or
+! when the |+xterm_clipboard| feature is included.
+
+ :[range]y[ank] [x] {count}
+ Yank {count} lines, starting with last line number
+*** ../vim-7.3.170/src/ex_docmd.c 2011-04-11 21:35:03.000000000 +0200
+--- src/ex_docmd.c 2011-05-05 13:48:57.000000000 +0200
+***************
+*** 2424,2448 ****
+ if ( (ea.argt & REGSTR)
+ && *ea.arg != NUL
+ #ifdef FEAT_USR_CMDS
+- && valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
+- && USER_CMDIDX(ea.cmdidx)))
+ /* Do not allow register = for user commands */
+ && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
+- #else
+- && valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
+ #endif
+ && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+ {
+! ea.regname = *ea.arg++;
+! #ifdef FEAT_EVAL
+! /* for '=' register: accept the rest of the line as an expression */
+! if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
+ {
+! set_expr_line(vim_strsave(ea.arg));
+! ea.arg += STRLEN(ea.arg);
+ }
+ #endif
+! ea.arg = skipwhite(ea.arg);
+ }
+
+ /*
+--- 2424,2462 ----
+ if ( (ea.argt & REGSTR)
+ && *ea.arg != NUL
+ #ifdef FEAT_USR_CMDS
+ /* Do not allow register = for user commands */
+ && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=')
+ #endif
+ && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg)))
+ {
+! #ifndef FEAT_CLIPBOARD
+! /* check these explicitly for a more specific error message */
+! if (*ea.arg == '*' || *ea.arg == '+')
+ {
+! errormsg = (char_u *)_(e_invalidreg);
+! goto doend;
+ }
+ #endif
+! if (
+! #ifdef FEAT_USR_CMDS
+! valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put
+! && USER_CMDIDX(ea.cmdidx)))
+! #else
+! valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put)
+! #endif
+! )
+! {
+! ea.regname = *ea.arg++;
+! #ifdef FEAT_EVAL
+! /* for '=' register: accept the rest of the line as an expression */
+! if (ea.arg[-1] == '=' && ea.arg[0] != NUL)
+! {
+! set_expr_line(vim_strsave(ea.arg));
+! ea.arg += STRLEN(ea.arg);
+! }
+! #endif
+! ea.arg = skipwhite(ea.arg);
+! }
+ }
+
+ /*
+*** ../vim-7.3.170/src/globals.h 2011-02-15 17:39:14.000000000 +0100
+--- src/globals.h 2011-05-05 13:47:44.000000000 +0200
+***************
+*** 1561,1566 ****
+--- 1561,1569 ----
+ (defined(FEAT_INS_EXPAND) && defined(FEAT_COMPL_FUNC))
+ EXTERN char_u e_notset[] INIT(= N_("E764: Option '%s' is not set"));
+ #endif
++ #ifndef FEAT_CLIPBOARD
++ EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
++ #endif
+
+ #ifdef MACOS_X_UNIX
+ EXTERN short disallow_gui INIT(= FALSE);
+*** ../vim-7.3.170/src/version.c 2011-04-28 19:05:01.000000000 +0200
+--- src/version.c 2011-05-05 14:24:39.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 171,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+53. To find out what time it is, you send yourself an e-mail and check the
+ "Date:" field.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.172 b/source/ap/vim/patches/7.3.172
new file mode 100644
index 000000000..66a785217
--- /dev/null
+++ b/source/ap/vim/patches/7.3.172
@@ -0,0 +1,268 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.172
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.172
+Problem: MS-Windows: rename() might delete the file if the name differs but
+ it's actually the same file.
+Solution: Use the file handle to check if it's the same file. (Yukihiro
+ Nakadaira)
+Files: src/if_cscope.c, src/fileio.c, src/os_win32.c,
+ src/proto/os_win32.pro, src/vim.h
+
+
+*** ../vim-7.3.171/src/if_cscope.c 2011-03-03 15:01:25.000000000 +0100
+--- src/if_cscope.c 2011-05-05 16:16:38.000000000 +0200
+***************
+*** 1412,1428 ****
+ {
+ short i, j;
+ #ifndef UNIX
+- HANDLE hFile;
+ BY_HANDLE_FILE_INFORMATION bhfi;
+
+- vim_memset(&bhfi, 0, sizeof(bhfi));
+ /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
+ if (!mch_windows95())
+ {
+! hFile = CreateFile(fname, FILE_READ_ATTRIBUTES, 0, NULL, OPEN_EXISTING,
+! FILE_ATTRIBUTE_NORMAL, NULL);
+! if (hFile == INVALID_HANDLE_VALUE)
+ {
+ if (p_csverbose)
+ {
+ char *cant_msg = _("E625: cannot open cscope database: %s");
+--- 1412,1426 ----
+ {
+ short i, j;
+ #ifndef UNIX
+ BY_HANDLE_FILE_INFORMATION bhfi;
+
+ /* On windows 9x GetFileInformationByHandle doesn't work, so skip it */
+ if (!mch_windows95())
+ {
+! switch (win32_fileinfo(fname, &bhfi))
+ {
++ case FILEINFO_ENC_FAIL: /* enc_to_utf16() failed */
++ case FILEINFO_READ_FAIL: /* CreateFile() failed */
+ if (p_csverbose)
+ {
+ char *cant_msg = _("E625: cannot open cscope database: %s");
+***************
+*** 1438,1452 ****
+ (void)EMSG2(cant_msg, fname);
+ }
+ return -1;
+! }
+! if (!GetFileInformationByHandle(hFile, &bhfi))
+! {
+! CloseHandle(hFile);
+ if (p_csverbose)
+ (void)EMSG(_("E626: cannot get cscope database information"));
+ return -1;
+ }
+- CloseHandle(hFile);
+ }
+ #endif
+
+--- 1436,1447 ----
+ (void)EMSG2(cant_msg, fname);
+ }
+ return -1;
+!
+! case FILEINFO_INFO_FAIL: /* GetFileInformationByHandle() failed */
+ if (p_csverbose)
+ (void)EMSG(_("E626: cannot get cscope database information"));
+ return -1;
+ }
+ }
+ #endif
+
+*** ../vim-7.3.171/src/fileio.c 2011-04-11 21:35:03.000000000 +0200
+--- src/fileio.c 2011-05-05 16:22:22.000000000 +0200
+***************
+*** 6555,6560 ****
+--- 6555,6575 ----
+ use_tmp_file = TRUE;
+ }
+ #endif
++ #ifdef WIN3264
++ {
++ BY_HANDLE_FILE_INFORMATION info1, info2;
++
++ /* It's possible for the source and destination to be the same file.
++ * In that case go through a temp file name. This makes rename("foo",
++ * "./foo") a no-op (in a complicated way). */
++ if (win32_fileinfo(from, &info1) == FILEINFO_OK
++ && win32_fileinfo(to, &info2) == FILEINFO_OK
++ && info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber
++ && info1.nFileIndexHigh == info2.nFileIndexHigh
++ && info1.nFileIndexLow == info2.nFileIndexLow)
++ use_tmp_file = TRUE;
++ }
++ #endif
+
+ #if defined(UNIX) || defined(CASE_INSENSITIVE_FILENAME)
+ if (use_tmp_file)
+*** ../vim-7.3.171/src/os_win32.c 2011-02-01 13:48:47.000000000 +0100
+--- src/os_win32.c 2011-05-05 16:24:17.000000000 +0200
+***************
+*** 2645,2669 ****
+ int
+ mch_is_linked(char_u *fname)
+ {
+ HANDLE hFile;
+! int res = 0;
+! BY_HANDLE_FILE_INFORMATION inf;
+ #ifdef FEAT_MBYTE
+ WCHAR *wn = NULL;
+
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+ wn = enc_to_utf16(fname, NULL);
+ if (wn != NULL)
+ {
+ hFile = CreateFileW(wn, /* file name */
+ GENERIC_READ, /* access mode */
+! 0, /* share mode */
+ NULL, /* security descriptor */
+ OPEN_EXISTING, /* creation disposition */
+! 0, /* file attributes */
+ NULL); /* handle to template file */
+ if (hFile == INVALID_HANDLE_VALUE
+! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ /* Retry with non-wide function (for Windows 98). */
+ vim_free(wn);
+--- 2645,2688 ----
+ int
+ mch_is_linked(char_u *fname)
+ {
++ BY_HANDLE_FILE_INFORMATION info;
++
++ return win32_fileinfo(fname, &info) == FILEINFO_OK
++ && info.nNumberOfLinks > 1;
++ }
++
++ /*
++ * Get the by-handle-file-information for "fname".
++ * Returns FILEINFO_OK when OK.
++ * returns FILEINFO_ENC_FAIL when enc_to_utf16() failed.
++ * Returns FILEINFO_READ_FAIL when CreateFile() failed.
++ * Returns FILEINFO_INFO_FAIL when GetFileInformationByHandle() failed.
++ */
++ int
++ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
++ {
+ HANDLE hFile;
+! int res = FILEINFO_READ_FAIL;
+ #ifdef FEAT_MBYTE
+ WCHAR *wn = NULL;
+
+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++ {
+ wn = enc_to_utf16(fname, NULL);
++ if (wn == NULL)
++ res = FILEINFO_ENC_FAIL;
++ }
+ if (wn != NULL)
+ {
+ hFile = CreateFileW(wn, /* file name */
+ GENERIC_READ, /* access mode */
+! FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
+ NULL, /* security descriptor */
+ OPEN_EXISTING, /* creation disposition */
+! FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
+ NULL); /* handle to template file */
+ if (hFile == INVALID_HANDLE_VALUE
+! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+ {
+ /* Retry with non-wide function (for Windows 98). */
+ vim_free(wn);
+***************
+*** 2674,2690 ****
+ #endif
+ hFile = CreateFile(fname, /* file name */
+ GENERIC_READ, /* access mode */
+! 0, /* share mode */
+ NULL, /* security descriptor */
+ OPEN_EXISTING, /* creation disposition */
+! 0, /* file attributes */
+ NULL); /* handle to template file */
+
+ if (hFile != INVALID_HANDLE_VALUE)
+ {
+! if (GetFileInformationByHandle(hFile, &inf) != 0
+! && inf.nNumberOfLinks > 1)
+! res = 1;
+ CloseHandle(hFile);
+ }
+
+--- 2693,2710 ----
+ #endif
+ hFile = CreateFile(fname, /* file name */
+ GENERIC_READ, /* access mode */
+! FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
+ NULL, /* security descriptor */
+ OPEN_EXISTING, /* creation disposition */
+! FILE_FLAG_BACKUP_SEMANTICS, /* file attributes */
+ NULL); /* handle to template file */
+
+ if (hFile != INVALID_HANDLE_VALUE)
+ {
+! if (GetFileInformationByHandle(hFile, info) != 0)
+! res = FILEINFO_OK;
+! else
+! res = FILEINFO_INFO_FAIL;
+ CloseHandle(hFile);
+ }
+
+*** ../vim-7.3.171/src/proto/os_win32.pro 2010-10-23 14:02:48.000000000 +0200
+--- src/proto/os_win32.pro 2011-05-05 16:17:42.000000000 +0200
+***************
+*** 21,26 ****
+--- 21,27 ----
+ void mch_hide __ARGS((char_u *name));
+ int mch_isdir __ARGS((char_u *name));
+ int mch_is_linked __ARGS((char_u *fname));
++ int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
+ int mch_writable __ARGS((char_u *name));
+ int mch_can_exe __ARGS((char_u *name));
+ int mch_nodetype __ARGS((char_u *name));
+*** ../vim-7.3.171/src/vim.h 2011-04-11 21:35:03.000000000 +0200
+--- src/vim.h 2011-05-05 16:16:57.000000000 +0200
+***************
+*** 2217,2220 ****
+--- 2217,2226 ----
+ #define KEYLEN_PART_MAP -2 /* keylen value for incomplete mapping */
+ #define KEYLEN_REMOVED 9999 /* keylen value for removed sequence */
+
++ /* Return values from win32_fileinfo(). */
++ #define FILEINFO_OK 0
++ #define FILEINFO_ENC_FAIL 1 /* enc_to_utf16() failed */
++ #define FILEINFO_READ_FAIL 2 /* CreateFile() failed */
++ #define FILEINFO_INFO_FAIL 3 /* GetFileInformationByHandle() failed */
++
+ #endif /* VIM__H */
+*** ../vim-7.3.171/src/version.c 2011-05-05 14:26:37.000000000 +0200
+--- src/version.c 2011-05-05 16:39:35.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 172,
+ /**/
+
+--
+Q: What is a patch 22?
+A: A patch you need to include to make it possible to include patches.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.173 b/source/ap/vim/patches/7.3.173
new file mode 100644
index 000000000..ac8cffb93
--- /dev/null
+++ b/source/ap/vim/patches/7.3.173
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.173
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.173
+Problem: After using setqflist() to make the quickfix list empty ":cwindow"
+ may open the window anyway. Also after ":vimgrep".
+Solution: Correctly check whether the list is empty. (Ingo Karkat)
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.172/src/quickfix.c 2011-04-28 17:27:05.000000000 +0200
+--- src/quickfix.c 2011-05-05 16:55:47.000000000 +0200
+***************
+*** 1164,1170 ****
+
+ /* When no valid entries are present in the list, qf_ptr points to
+ * the first item in the list */
+! if (to_qfl->qf_nonevalid == TRUE)
+ to_qfl->qf_ptr = to_qfl->qf_start;
+ }
+
+--- 1164,1170 ----
+
+ /* When no valid entries are present in the list, qf_ptr points to
+ * the first item in the list */
+! if (to_qfl->qf_nonevalid)
+ to_qfl->qf_ptr = to_qfl->qf_start;
+ }
+
+***************
+*** 2243,2248 ****
+--- 2243,2249 ----
+ * it if we have errors; otherwise, leave it closed.
+ */
+ if (qi->qf_lists[qi->qf_curlist].qf_nonevalid
++ || qi->qf_lists[qi->qf_curlist].qf_count == 0
+ || qi->qf_curlist >= qi->qf_listcount)
+ {
+ if (win != NULL)
+***************
+*** 3711,3717 ****
+ }
+
+ if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
+! /* empty list or no valid entry */
+ qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
+ else
+ qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+--- 3712,3718 ----
+ }
+
+ if (qi->qf_lists[qi->qf_curlist].qf_index == 0)
+! /* no valid entry */
+ qi->qf_lists[qi->qf_curlist].qf_nonevalid = TRUE;
+ else
+ qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+*** ../vim-7.3.172/src/version.c 2011-05-05 16:41:19.000000000 +0200
+--- src/version.c 2011-05-05 17:11:57.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 173,
+ /**/
+
+--
+"I can't complain, but sometimes I still do." (Joe Walsh)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.174 b/source/ap/vim/patches/7.3.174
new file mode 100644
index 000000000..33d600350
--- /dev/null
+++ b/source/ap/vim/patches/7.3.174
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.174
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.174
+Problem: When Exuberant ctags binary is exctags it's not found.
+Solution: Add configure check for exctags. (Hong Xu)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.173/src/configure.in 2011-02-09 17:42:53.000000000 +0100
+--- src/configure.in 2011-05-05 17:18:21.000000000 +0200
+***************
+*** 2619,2625 ****
+ dnl On HP-UX 10.10 termcap or termlib should be used instead of
+ dnl curses, because curses is much slower.
+ dnl Newer versions of ncurses are preferred over anything, except
+! dnl when tinfo has been split off, it conains all we need.
+ dnl Older versions of ncurses have bugs, get a new one!
+ dnl Digital Unix (OSF1) should use curses (Ronald Schild).
+ dnl On SCO Openserver should prefer termlib (Roger Cornelius).
+--- 2619,2625 ----
+ dnl On HP-UX 10.10 termcap or termlib should be used instead of
+ dnl curses, because curses is much slower.
+ dnl Newer versions of ncurses are preferred over anything, except
+! dnl when tinfo has been split off, it contains all we need.
+ dnl Older versions of ncurses have bugs, get a new one!
+ dnl Digital Unix (OSF1) should use curses (Ronald Schild).
+ dnl On SCO Openserver should prefer termlib (Roger Cornelius).
+***************
+*** 3370,3376 ****
+ AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
+
+ dnl Check how we can run ctags. Default to "ctags" when nothing works.
+! dnl --version for Exuberant ctags (preferred)
+ dnl Add --fields=+S to get function signatures for omni completion.
+ dnl -t for typedefs (many ctags have this)
+ dnl -s for static functions (Elvis ctags only?)
+--- 3370,3376 ----
+ AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
+
+ dnl Check how we can run ctags. Default to "ctags" when nothing works.
+! dnl Use --version to detect Exuberant ctags (preferred)
+ dnl Add --fields=+S to get function signatures for omni completion.
+ dnl -t for typedefs (many ctags have this)
+ dnl -s for static functions (Elvis ctags only?)
+***************
+*** 3378,3384 ****
+ dnl -i+m to test for older Exuberant ctags
+ AC_MSG_CHECKING(how to create tags)
+ test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+--- 3378,3386 ----
+ dnl -i+m to test for older Exuberant ctags
+ AC_MSG_CHECKING(how to create tags)
+ test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+! TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+*** ../vim-7.3.173/src/auto/configure 2011-02-09 17:42:53.000000000 +0100
+--- src/auto/configure 2011-05-05 17:19:26.000000000 +0200
+***************
+*** 12031,12037 ****
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+ $as_echo_n "checking how to create tags... " >&6; }
+ test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+--- 12031,12039 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+ $as_echo_n "checking how to create tags... " >&6; }
+ test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+! TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+*** ../vim-7.3.173/src/version.c 2011-05-05 17:14:07.000000000 +0200
+--- src/version.c 2011-05-05 17:19:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 174,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+54. You start tilting your head sideways to smile. :-)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.175 b/source/ap/vim/patches/7.3.175
new file mode 100644
index 000000000..57fbc4a79
--- /dev/null
+++ b/source/ap/vim/patches/7.3.175
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.175
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.175
+Problem: When 'colorcolumn' is set locally to a window, ":new" opens a
+ window with the same highlighting but 'colorcolumn' is empty.
+ (Tyru)
+Solution: Call check_colorcolumn() after clearing and copying options.
+ (Christian Brabandt)
+Files: src/buffer.c
+
+
+*** ../vim-7.3.174/src/buffer.c 2011-04-11 16:56:29.000000000 +0200
+--- src/buffer.c 2011-05-05 17:28:24.000000000 +0200
+***************
+*** 2527,2532 ****
+--- 2527,2535 ----
+ if (p_fdls >= 0)
+ curwin->w_p_fdl = p_fdls;
+ #endif
++ #ifdef FEAT_SYN_HL
++ check_colorcolumn(curwin);
++ #endif
+ }
+
+ /*
+*** ../vim-7.3.174/src/version.c 2011-05-05 17:23:58.000000000 +0200
+--- src/version.c 2011-05-05 17:30:32.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 175,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+55. You ask your doctor to implant a gig in your brain.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.176 b/source/ap/vim/patches/7.3.176
new file mode 100644
index 000000000..fcf4880d2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.176
@@ -0,0 +1,165 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.176
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.176
+Problem: Ruby linking doesn't work properly on Mac OS X.
+Solution: Fix the configure check for Ruby. (Bjorn Winckler)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.175/src/configure.in 2011-05-05 17:23:58.000000000 +0200
+--- src/configure.in 2011-05-05 18:03:38.000000000 +0200
+***************
+*** 1387,1396 ****
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+ AC_MSG_CHECKING(--with-ruby-command argument)
+ AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
+! RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
+ RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+- AC_SUBST(vi_cv_path_ruby)
+ AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+--- 1387,1396 ----
+ AC_MSG_RESULT($enable_rubyinterp)
+ if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
+ AC_MSG_CHECKING(--with-ruby-command argument)
++ AC_SUBST(vi_cv_path_ruby)
+ AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
+! RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; AC_MSG_RESULT($RUBY_CMD),
+ RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
+ AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
+ if test "X$vi_cv_path_ruby" != "X"; then
+ AC_MSG_CHECKING(Ruby version)
+***************
+*** 1412,1429 ****
+ RUBY_LIBS="$rubylibs"
+ fi
+ librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
+! if test -f "$rubyhdrdir/$librubyarg"; then
+! librubyarg="$rubyhdrdir/$librubyarg"
+! else
+! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
+! if test -f "$rubylibdir/$librubyarg"; then
+! librubyarg="$rubylibdir/$librubyarg"
+! elif test "$librubyarg" = "libruby.a"; then
+! dnl required on Mac OS 10.3 where libruby.a doesn't exist
+! librubyarg="-lruby"
+! else
+! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+! fi
+ fi
+
+ if test "X$librubyarg" != "X"; then
+--- 1412,1426 ----
+ RUBY_LIBS="$rubylibs"
+ fi
+ librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
+! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBY_A"]])'`
+! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
+! if test -f "$rubylibdir/$librubya"; then
+! librubyarg="$librubyarg"
+! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+! elif test "$librubyarg" = "libruby.a"; then
+! dnl required on Mac OS 10.3 where libruby.a doesn't exist
+! librubyarg="-lruby"
+! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+ fi
+
+ if test "X$librubyarg" != "X"; then
+*** ../vim-7.3.175/src/auto/configure 2011-05-05 17:23:58.000000000 +0200
+--- src/auto/configure 2011-05-05 18:06:47.000000000 +0200
+***************
+*** 6218,6233 ****
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
+ $as_echo_n "checking --with-ruby-command argument... " >&6; }
+
+ # Check whether --with-ruby-command was given.
+ if test "${with_ruby_command+set}" = set; then :
+! withval=$with_ruby_command; RUBY_CMD="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
+ $as_echo "$RUBY_CMD" >&6; }
+ else
+ RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
+ $as_echo "defaulting to $RUBY_CMD" >&6; }
+ fi
+
+-
+ # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+ set dummy $RUBY_CMD; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+--- 6218,6233 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
+ $as_echo_n "checking --with-ruby-command argument... " >&6; }
+
++
+ # Check whether --with-ruby-command was given.
+ if test "${with_ruby_command+set}" = set; then :
+! withval=$with_ruby_command; RUBY_CMD="$withval"; vi_cv_path_ruby="$withval"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY_CMD" >&5
+ $as_echo "$RUBY_CMD" >&6; }
+ else
+ RUBY_CMD="ruby"; { $as_echo "$as_me:${as_lineno-$LINENO}: result: defaulting to $RUBY_CMD" >&5
+ $as_echo "defaulting to $RUBY_CMD" >&6; }
+ fi
+
+ # Extract the first word of "$RUBY_CMD", so it can be a program name with args.
+ set dummy $RUBY_CMD; ac_word=$2
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+***************
+*** 6292,6308 ****
+ RUBY_LIBS="$rubylibs"
+ fi
+ librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
+! if test -f "$rubyhdrdir/$librubyarg"; then
+! librubyarg="$rubyhdrdir/$librubyarg"
+! else
+! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
+! if test -f "$rubylibdir/$librubyarg"; then
+! librubyarg="$rubylibdir/$librubyarg"
+! elif test "$librubyarg" = "libruby.a"; then
+! librubyarg="-lruby"
+! else
+! librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
+! fi
+ fi
+
+ if test "X$librubyarg" != "X"; then
+--- 6292,6305 ----
+ RUBY_LIBS="$rubylibs"
+ fi
+ librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBYARG"])'`
+! librubya=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["LIBRUBY_A"])'`
+! rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG["libdir"])'`
+! if test -f "$rubylibdir/$librubya"; then
+! librubyarg="$librubyarg"
+! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+! elif test "$librubyarg" = "libruby.a"; then
+! librubyarg="-lruby"
+! RUBY_LIBS="$RUBY_LIBS -L$rubylibdir"
+ fi
+
+ if test "X$librubyarg" != "X"; then
+*** ../vim-7.3.175/src/version.c 2011-05-05 17:32:40.000000000 +0200
+--- src/version.c 2011-05-05 18:08:52.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 176,
+ /**/
+
+--
+"I simultaneously try to keep my head in the clouds and my feet on the
+ground. Sometimes it's a stretch, though." -- Larry Wall
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.177 b/source/ap/vim/patches/7.3.177
new file mode 100644
index 000000000..895b3b134
--- /dev/null
+++ b/source/ap/vim/patches/7.3.177
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.177
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.177
+Problem: MS-Windows: mkdir() doesn't work properly when 'encoding' is
+ "utf-8".
+Solution: Convert to utf-16. (Yukihiro Nakadaira)
+Files: src/os_win32.c, src/os_win32.h, src/proto/os_win32.pro
+
+
+*** ../vim-7.3.176/src/os_win32.c 2011-05-05 16:41:19.000000000 +0200
+--- src/os_win32.c 2011-05-05 18:24:36.000000000 +0200
+***************
+*** 2640,2645 ****
+--- 2640,2669 ----
+ }
+
+ /*
++ * Create directory "name".
++ * Return 0 on success, -1 on error.
++ */
++ int
++ mch_mkdir(char_u *name)
++ {
++ #ifdef FEAT_MBYTE
++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++ {
++ WCHAR *p;
++ int retval;
++
++ p = enc_to_utf16(name, NULL);
++ if (p == NULL)
++ return -1;
++ retval = _wmkdir(p);
++ vim_free(p);
++ return retval;
++ }
++ #endif
++ return _mkdir(name);
++ }
++
++ /*
+ * Return TRUE if file "fname" has more than one link.
+ */
+ int
+*** ../vim-7.3.176/src/os_win32.h 2010-08-15 21:57:30.000000000 +0200
+--- src/os_win32.h 2011-05-05 18:25:44.000000000 +0200
+***************
+*** 191,195 ****
+ #ifdef __BORLANDC__
+ # define vim_mkdir(x, y) mkdir(x)
+ #else
+! # define vim_mkdir(x, y) _mkdir(x)
+ #endif
+--- 191,195 ----
+ #ifdef __BORLANDC__
+ # define vim_mkdir(x, y) mkdir(x)
+ #else
+! # define vim_mkdir(x, y) mch_mkdir(x)
+ #endif
+*** ../vim-7.3.176/src/proto/os_win32.pro 2011-05-05 16:41:19.000000000 +0200
+--- src/proto/os_win32.pro 2011-05-05 18:26:20.000000000 +0200
+***************
+*** 20,25 ****
+--- 20,26 ----
+ int mch_setperm __ARGS((char_u *name, long perm));
+ void mch_hide __ARGS((char_u *name));
+ int mch_isdir __ARGS((char_u *name));
++ int mch_mkdir __ARGS((char_u *name));
+ int mch_is_linked __ARGS((char_u *fname));
+ int win32_fileinfo __ARGS((char_u *name, BY_HANDLE_FILE_INFORMATION *lpFileInfo));
+ int mch_writable __ARGS((char_u *name));
+*** ../vim-7.3.176/src/version.c 2011-05-05 18:10:11.000000000 +0200
+--- src/version.c 2011-05-05 18:27:56.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 177,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+56. You leave the modem speaker on after connecting because you think it
+ sounds like the ocean wind...the perfect soundtrack for "surfing the net".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.178 b/source/ap/vim/patches/7.3.178
new file mode 100644
index 000000000..9b6ca7c3a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.178
@@ -0,0 +1,163 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.178
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.178
+Problem: C-indent doesn't handle code right after { correctly.
+Solution: Fix detecting unterminated line. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.177/src/misc1.c 2011-04-28 17:48:39.000000000 +0200
+--- src/misc1.c 2011-05-10 11:35:09.000000000 +0200
+***************
+*** 4983,4989 ****
+ }
+
+ /*
+! * Return TRUE if there there is no code at *s. White space and comments are
+ * not considered code.
+ */
+ static int
+--- 4983,4989 ----
+ }
+
+ /*
+! * Return TRUE if there is no code at *s. White space and comments are
+ * not considered code.
+ */
+ static int
+***************
+*** 5458,5465 ****
+ }
+
+ /*
+! * Recognize a line that starts with '{' or '}', or ends with ';', '{' or '}'.
+ * Don't consider "} else" a terminated line.
+ * Return the character terminating the line (ending char's have precedence if
+ * both apply in order to determine initializations).
+ */
+--- 5458,5468 ----
+ }
+
+ /*
+! * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+! * '}'.
+ * Don't consider "} else" a terminated line.
++ * Don't consider a line where there are unmatched opening braces before '}',
++ * ';' or ',' a terminated line.
+ * Return the character terminating the line (ending char's have precedence if
+ * both apply in order to determine initializations).
+ */
+***************
+*** 5470,5475 ****
+--- 5473,5479 ----
+ int incl_comma; /* recognize a trailing comma */
+ {
+ char_u found_start = 0;
++ unsigned n_open = 0;
+
+ s = cin_skipcomment(s);
+
+***************
+*** 5480,5489 ****
+ {
+ /* skip over comments, "" strings and 'c'haracters */
+ s = skip_string(cin_skipcomment(s));
+! if ((*s == ';' || (incl_open && *s == '{') || *s == '}'
+! || (incl_comma && *s == ','))
+ && cin_nocode(s + 1))
+ return *s;
+
+ if (*s)
+ s++;
+--- 5484,5502 ----
+ {
+ /* skip over comments, "" strings and 'c'haracters */
+ s = skip_string(cin_skipcomment(s));
+! if (*s == '}' && n_open > 0)
+! --n_open;
+! if (n_open == 0
+! && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+ && cin_nocode(s + 1))
+ return *s;
++ else if (*s == '{')
++ {
++ if (incl_open && cin_nocode(s + 1))
++ return *s;
++ else
++ ++n_open;
++ }
+
+ if (*s)
+ s++;
+*** ../vim-7.3.177/src/testdir/test3.in 2011-04-28 13:01:59.000000000 +0200
+--- src/testdir/test3.in 2011-05-10 11:34:13.000000000 +0200
+***************
+*** 1344,1349 ****
+--- 1344,1365 ----
+ }
+
+ STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++
++ void func(void)
++ {
++ if(x==y)
++ if(y==z)
++ foo=1;
++ else { bar=1;
++ baz=2;
++ }
++ printf("Foo!\n");
++ }
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.177/src/testdir/test3.ok 2011-04-28 13:01:59.000000000 +0200
+--- src/testdir/test3.ok 2011-05-10 11:34:13.000000000 +0200
+***************
+*** 1204,1206 ****
+--- 1204,1218 ----
+ {
+ }
+
++
++ void func(void)
++ {
++ if(x==y)
++ if(y==z)
++ foo=1;
++ else { bar=1;
++ baz=2;
++ }
++ printf("Foo!\n");
++ }
++
+*** ../vim-7.3.177/src/version.c 2011-05-05 18:31:54.000000000 +0200
+--- src/version.c 2011-05-10 11:37:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 178,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+69. Yahoo welcomes you with your own start page
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.179 b/source/ap/vim/patches/7.3.179
new file mode 100644
index 000000000..f175b264e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.179
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.179
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.179
+Problem: C-indent doesn't handle colon in string correctly.
+Solution: Skip the string. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.178/src/misc1.c 2011-05-10 11:39:13.000000000 +0200
+--- src/misc1.c 2011-05-10 11:50:14.000000000 +0200
+***************
+*** 5801,5807 ****
+ continue;
+ }
+
+! if (s[0] == ':')
+ {
+ if (s[1] == ':')
+ {
+--- 5801,5809 ----
+ continue;
+ }
+
+! if (s[0] == '"')
+! s = skip_string(s) + 1;
+! else if (s[0] == ':')
+ {
+ if (s[1] == ':')
+ {
+*** ../vim-7.3.178/src/testdir/test3.in 2011-05-10 11:39:13.000000000 +0200
+--- src/testdir/test3.in 2011-05-10 11:53:02.000000000 +0200
+***************
+*** 1360,1365 ****
+--- 1360,1378 ----
+ }
+
+ STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++
++ void func(void)
++ {
++ cout << "a"
++ << "b"
++ << ") :"
++ << "c";
++ }
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.178/src/testdir/test3.ok 2011-05-10 11:39:13.000000000 +0200
+--- src/testdir/test3.ok 2011-05-10 11:50:14.000000000 +0200
+***************
+*** 1216,1218 ****
+--- 1216,1227 ----
+ printf("Foo!\n");
+ }
+
++
++ void func(void)
++ {
++ cout << "a"
++ << "b"
++ << ") :"
++ << "c";
++ }
++
+*** ../vim-7.3.178/src/version.c 2011-05-10 11:39:13.000000000 +0200
+--- src/version.c 2011-05-10 11:53:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 179,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+71. You wonder how people walk
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.180 b/source/ap/vim/patches/7.3.180
new file mode 100644
index 000000000..5997bfbe8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.180
@@ -0,0 +1,295 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.180
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.180
+Problem: When both a middle part of 'comments' matches and an end part, the
+ middle part was used errornously.
+Solution: After finding the middle part match continue looking for a better
+ end part match. (partly by Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.179/src/misc1.c 2011-05-10 11:56:26.000000000 +0200
+--- src/misc1.c 2011-05-10 13:24:38.000000000 +0200
+***************
+*** 1561,1566 ****
+--- 1561,1569 ----
+ char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
+ char_u *string; /* pointer to comment string */
+ char_u *list;
++ int middle_match_len = 0;
++ char_u *prev_list;
++ char_u *saved_flags;
+
+ i = 0;
+ while (vim_iswhite(line[i])) /* leading white space is ignored */
+***************
+*** 1569,1575 ****
+ /*
+ * Repeat to match several nested comment strings.
+ */
+! while (line[i])
+ {
+ /*
+ * scan through the 'comments' option for a match
+--- 1572,1578 ----
+ /*
+ * Repeat to match several nested comment strings.
+ */
+! while (line[i] != NUL)
+ {
+ /*
+ * scan through the 'comments' option for a match
+***************
+*** 1577,1658 ****
+ found_one = FALSE;
+ for (list = curbuf->b_p_com; *list; )
+ {
+! /*
+! * Get one option part into part_buf[]. Advance list to next one.
+! * put string at start of string.
+! */
+! if (!got_com && flags != NULL) /* remember where flags started */
+! *flags = list;
+ (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
+ string = vim_strchr(part_buf, ':');
+ if (string == NULL) /* missing ':', ignore this part */
+ continue;
+ *string++ = NUL; /* isolate flags from string */
+
+! /*
+! * When already found a nested comment, only accept further
+! * nested comments.
+! */
+ if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
+ continue;
+
+! /* When 'O' flag used don't use for "O" command */
+ if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
+ continue;
+
+! /*
+! * Line contents and string must match.
+ * When string starts with white space, must have some white space
+ * (but the amount does not need to match, there might be a mix of
+! * TABs and spaces).
+! */
+ if (vim_iswhite(string[0]))
+ {
+ if (i == 0 || !vim_iswhite(line[i - 1]))
+! continue;
+ while (vim_iswhite(string[0]))
+ ++string;
+ }
+ for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
+ ;
+ if (string[j] != NUL)
+! continue;
+
+! /*
+! * When 'b' flag used, there must be white space or an
+! * end-of-line after the string in the line.
+! */
+ if (vim_strchr(part_buf, COM_BLANK) != NULL
+ && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
+ continue;
+
+! /*
+! * We have found a match, stop searching.
+! */
+! i += j;
+! got_com = TRUE;
+ found_one = TRUE;
+ break;
+ }
+
+! /*
+! * No match found, stop scanning.
+! */
+ if (!found_one)
+ break;
+
+! /*
+! * Include any trailing white space.
+! */
+ while (vim_iswhite(line[i]))
+ ++i;
+
+! /*
+! * If this comment doesn't nest, stop here.
+! */
+ if (vim_strchr(part_buf, COM_NEST) == NULL)
+ break;
+ }
+ return (got_com ? i : 0);
+ }
+ #endif
+--- 1580,1683 ----
+ found_one = FALSE;
+ for (list = curbuf->b_p_com; *list; )
+ {
+! /* Get one option part into part_buf[]. Advance "list" to next
+! * one. Put "string" at start of string. */
+! if (!got_com && flags != NULL)
+! *flags = list; /* remember where flags started */
+! prev_list = list;
+ (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
+ string = vim_strchr(part_buf, ':');
+ if (string == NULL) /* missing ':', ignore this part */
+ continue;
+ *string++ = NUL; /* isolate flags from string */
+
+! /* If we found a middle match previously, use that match when this
+! * is not a middle or end. */
+! if (middle_match_len != 0
+! && vim_strchr(part_buf, COM_MIDDLE) == NULL
+! && vim_strchr(part_buf, COM_END) == NULL)
+! break;
+!
+! /* When we already found a nested comment, only accept further
+! * nested comments. */
+ if (got_com && vim_strchr(part_buf, COM_NEST) == NULL)
+ continue;
+
+! /* When 'O' flag present and using "O" command skip this one. */
+ if (backward && vim_strchr(part_buf, COM_NOBACK) != NULL)
+ continue;
+
+! /* Line contents and string must match.
+ * When string starts with white space, must have some white space
+ * (but the amount does not need to match, there might be a mix of
+! * TABs and spaces). */
+ if (vim_iswhite(string[0]))
+ {
+ if (i == 0 || !vim_iswhite(line[i - 1]))
+! continue; /* missing shite space */
+ while (vim_iswhite(string[0]))
+ ++string;
+ }
+ for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
+ ;
+ if (string[j] != NUL)
+! continue; /* string doesn't match */
+
+! /* When 'b' flag used, there must be white space or an
+! * end-of-line after the string in the line. */
+ if (vim_strchr(part_buf, COM_BLANK) != NULL
+ && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
+ continue;
+
+! /* We have found a match, stop searching unless this is a middle
+! * comment. The middle comment can be a substring of the end
+! * comment in which case it's better to return the length of the
+! * end comment and its flags. Thus we keep searching with middle
+! * and end matches and use an end match if it matches better. */
+! if (vim_strchr(part_buf, COM_MIDDLE) != NULL)
+! {
+! if (middle_match_len == 0)
+! {
+! middle_match_len = j;
+! saved_flags = prev_list;
+! }
+! continue;
+! }
+! if (middle_match_len != 0 && j > middle_match_len)
+! /* Use this match instead of the middle match, since it's a
+! * longer thus better match. */
+! middle_match_len = 0;
+!
+! if (middle_match_len == 0)
+! i += j;
+ found_one = TRUE;
+ break;
+ }
+
+! if (middle_match_len != 0)
+! {
+! /* Use the previously found middle match after failing to find a
+! * match with an end. */
+! if (!got_com && flags != NULL)
+! *flags = saved_flags;
+! i += middle_match_len;
+! found_one = TRUE;
+! }
+!
+! /* No match found, stop scanning. */
+ if (!found_one)
+ break;
+
+! /* Include any trailing white space. */
+ while (vim_iswhite(line[i]))
+ ++i;
+
+! /* If this comment doesn't nest, stop here. */
+! got_com = TRUE;
+ if (vim_strchr(part_buf, COM_NEST) == NULL)
+ break;
+ }
++
+ return (got_com ? i : 0);
+ }
+ #endif
+*** ../vim-7.3.179/src/testdir/test3.in 2011-05-10 11:56:26.000000000 +0200
+--- src/testdir/test3.in 2011-05-10 12:05:50.000000000 +0200
+***************
+*** 1373,1378 ****
+--- 1373,1390 ----
+ }
+
+ STARTTEST
++ :set com=s1:/*,m:*,ex:*/
++ ]]3jofoo();
++ ENDTEST
++
++ void func(void)
++ {
++ /*
++ * This is a comment.
++ */
++ }
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.179/src/testdir/test3.ok 2011-05-10 11:56:26.000000000 +0200
+--- src/testdir/test3.ok 2011-05-10 12:05:50.000000000 +0200
+***************
+*** 1225,1227 ****
+--- 1225,1236 ----
+ << "c";
+ }
+
++
++ void func(void)
++ {
++ /*
++ * This is a comment.
++ */
++ foo();
++ }
++
+*** ../vim-7.3.179/src/version.c 2011-05-10 11:56:26.000000000 +0200
+--- src/version.c 2011-05-10 13:37:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 180,
+ /**/
+
+--
+"Thou shalt not follow the Null Pointer, for at its end Chaos and
+Madness lie."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.181 b/source/ap/vim/patches/7.3.181
new file mode 100644
index 000000000..3151d4455
--- /dev/null
+++ b/source/ap/vim/patches/7.3.181
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.181
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.181
+Problem: When repeating the insert of CTRL-V or a digraph the display may
+ not be updated correctly.
+Solution: Only call edit_unputchar() after edit_putchar(). (Lech Lorens)
+Files: src/edit.c
+
+
+*** ../vim-7.3.180/src/edit.c 2010-11-10 17:11:29.000000000 +0100
+--- src/edit.c 2011-05-10 14:16:41.000000000 +0200
+***************
+*** 1553,1564 ****
+--- 1553,1568 ----
+ ins_ctrl_v()
+ {
+ int c;
++ int did_putchar = FALSE;
+
+ /* may need to redraw when no more chars available now */
+ ins_redraw(FALSE);
+
+ if (redrawing() && !char_avail())
++ {
+ edit_putchar('^', TRUE);
++ did_putchar = TRUE;
++ }
+ AppendToRedobuff((char_u *)CTRL_V_STR); /* CTRL-V */
+
+ #ifdef FEAT_CMDL_INFO
+***************
+*** 1566,1573 ****
+ #endif
+
+ c = get_literal();
+! edit_unputchar(); /* when line fits in 'columns' the '^' is at the start
+! of the next line and will not be redrawn */
+ #ifdef FEAT_CMDL_INFO
+ clear_showcmd();
+ #endif
+--- 1570,1579 ----
+ #endif
+
+ c = get_literal();
+! if (did_putchar)
+! /* when the line fits in 'columns' the '^' is at the start of the next
+! * line and will not removed by the redraw */
+! edit_unputchar();
+ #ifdef FEAT_CMDL_INFO
+ clear_showcmd();
+ #endif
+***************
+*** 9637,9642 ****
+--- 9643,9649 ----
+ {
+ int c;
+ int cc;
++ int did_putchar = FALSE;
+
+ pc_status = PC_STATUS_UNSET;
+ if (redrawing() && !char_avail())
+***************
+*** 9645,9650 ****
+--- 9652,9658 ----
+ ins_redraw(FALSE);
+
+ edit_putchar('?', TRUE);
++ did_putchar = TRUE;
+ #ifdef FEAT_CMDL_INFO
+ add_to_showcmd_c(Ctrl_K);
+ #endif
+***************
+*** 9661,9668 ****
+ c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+! edit_unputchar(); /* when line fits in 'columns' the '?' is at the start
+! of the next line and will not be redrawn */
+
+ if (IS_SPECIAL(c) || mod_mask) /* special key */
+ {
+--- 9669,9678 ----
+ c = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+! if (did_putchar)
+! /* when the line fits in 'columns' the '?' is at the start of the next
+! * line and will not be removed by the redraw */
+! edit_unputchar();
+
+ if (IS_SPECIAL(c) || mod_mask) /* special key */
+ {
+***************
+*** 9674,9679 ****
+--- 9684,9690 ----
+ }
+ if (c != ESC)
+ {
++ did_putchar = FALSE;
+ if (redrawing() && !char_avail())
+ {
+ /* may need to redraw when no more chars available now */
+***************
+*** 9681,9691 ****
+
+ if (char2cells(c) == 1)
+ {
+- /* first remove the '?', otherwise it's restored when typing
+- * an ESC next */
+- edit_unputchar();
+ ins_redraw(FALSE);
+ edit_putchar(c, TRUE);
+ }
+ #ifdef FEAT_CMDL_INFO
+ add_to_showcmd_c(c);
+--- 9692,9700 ----
+
+ if (char2cells(c) == 1)
+ {
+ ins_redraw(FALSE);
+ edit_putchar(c, TRUE);
++ did_putchar = TRUE;
+ }
+ #ifdef FEAT_CMDL_INFO
+ add_to_showcmd_c(c);
+***************
+*** 9696,9703 ****
+ cc = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+! edit_unputchar(); /* when line fits in 'columns' the '?' is at the
+! start of the next line and will not be redrawn */
+ if (cc != ESC)
+ {
+ AppendToRedobuff((char_u *)CTRL_V_STR);
+--- 9705,9714 ----
+ cc = plain_vgetc();
+ --no_mapping;
+ --allow_keys;
+! if (did_putchar)
+! /* when the line fits in 'columns' the '?' is at the start of the
+! * next line and will not be removed by a redraw */
+! edit_unputchar();
+ if (cc != ESC)
+ {
+ AppendToRedobuff((char_u *)CTRL_V_STR);
+*** ../vim-7.3.180/src/version.c 2011-05-10 13:38:23.000000000 +0200
+--- src/version.c 2011-05-10 14:20:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 181,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+74. Your most erotic dreams are about cybersex
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.182 b/source/ap/vim/patches/7.3.182
new file mode 100644
index 000000000..509b68b54
--- /dev/null
+++ b/source/ap/vim/patches/7.3.182
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.182
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.182 (after 7.3.180)
+Problem: Compiler warning for uninitialized variable.
+Solution: Add dummy initializer.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.181/src/misc1.c 2011-05-10 13:38:23.000000000 +0200
+--- src/misc1.c 2011-05-10 14:37:39.000000000 +0200
+***************
+*** 1563,1569 ****
+ char_u *list;
+ int middle_match_len = 0;
+ char_u *prev_list;
+! char_u *saved_flags;
+
+ i = 0;
+ while (vim_iswhite(line[i])) /* leading white space is ignored */
+--- 1563,1569 ----
+ char_u *list;
+ int middle_match_len = 0;
+ char_u *prev_list;
+! char_u *saved_flags = NULL;
+
+ i = 0;
+ while (vim_iswhite(line[i])) /* leading white space is ignored */
+*** ../vim-7.3.181/src/version.c 2011-05-10 14:22:10.000000000 +0200
+--- src/version.c 2011-05-10 14:38:39.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 182,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+75. You start wondering whether you could actually upgrade your brain
+ with a Pentium Pro microprocessor 80. The upgrade works just fine.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.183 b/source/ap/vim/patches/7.3.183
new file mode 100644
index 000000000..23178c0b5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.183
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.183
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.183 (after 7.3.174)
+Problem: When Exuberant ctags binary is exuberant-ctags it's not found.
+Solution: Add configure check for exuberant-ctags.
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.182/src/configure.in 2011-05-05 18:10:11.000000000 +0200
+--- src/configure.in 2011-05-10 15:39:38.000000000 +0200
+***************
+*** 3375,3384 ****
+ dnl -i+m to test for older Exuberant ctags
+ AC_MSG_CHECKING(how to create tags)
+ test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+! TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+ (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
+--- 3375,3386 ----
+ dnl -i+m to test for older Exuberant ctags
+ AC_MSG_CHECKING(how to create tags)
+ test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
++ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++ TAGPRG="exctags -I INIT+ --fields=+S"
++ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
++ TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+ (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
+*** ../vim-7.3.182/src/auto/configure 2011-05-05 18:10:11.000000000 +0200
+--- src/auto/configure 2011-05-10 15:39:41.000000000 +0200
+***************
+*** 12028,12037 ****
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+ $as_echo_n "checking how to create tags... " >&6; }
+ test -f tags && mv tags tags.save
+! if (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+! TAGPRG="exctags -I INIT+ --fields=+S"
+! elif (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+ (eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
+--- 12028,12039 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create tags" >&5
+ $as_echo_n "checking how to create tags... " >&6; }
+ test -f tags && mv tags tags.save
+! if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
+ TAGPRG="ctags -I INIT+ --fields=+S"
++ elif (eval exctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++ TAGPRG="exctags -I INIT+ --fields=+S"
++ elif (eval exuberant-ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
++ TAGPRG="exuberant-ctags -I INIT+ --fields=+S"
+ else
+ TAGPRG="ctags"
+ (eval etags /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
+*** ../vim-7.3.182/src/version.c 2011-05-10 14:44:07.000000000 +0200
+--- src/version.c 2011-05-10 15:40:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 183,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+78. You find yourself dialing IP numbers on the phone.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.184 b/source/ap/vim/patches/7.3.184
new file mode 100644
index 000000000..3b0cfc692
--- /dev/null
+++ b/source/ap/vim/patches/7.3.184
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.184
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.184
+Problem: Static code analysis errors in riscOS.
+Solution: Make buffer size bigger. (Dominique Pelle)
+Files: src/gui_riscos.c
+
+
+*** ../vim-7.3.183/src/gui_riscos.c 2010-08-15 21:57:28.000000000 +0200
+--- src/gui_riscos.c 2011-05-10 15:49:56.000000000 +0200
+***************
+*** 1756,1762 ****
+
+ if (button & 0x444)
+ {
+! int front_block[10];
+ /* Dragging with Select - bring window to front first */
+ front_block[0] = gui.window_handle;
+ swi(Wimp_GetWindowState, 0, front_block);
+--- 1756,1762 ----
+
+ if (button & 0x444)
+ {
+! int front_block[64];
+ /* Dragging with Select - bring window to front first */
+ front_block[0] = gui.window_handle;
+ swi(Wimp_GetWindowState, 0, front_block);
+***************
+*** 1874,1880 ****
+
+ if (ro_dragging == DRAG_RESIZE_WINDOW)
+ {
+! /* Resizeing the main window. */
+ block[2] = y;
+ block[3] = x;
+ ro_open_main(block);
+--- 1874,1880 ----
+
+ if (ro_dragging == DRAG_RESIZE_WINDOW)
+ {
+! /* Resizing the main window. */
+ block[2] = y;
+ block[3] = x;
+ ro_open_main(block);
+***************
+*** 2651,2657 ****
+ long_u length;
+
+ block[0] = 48; /* Size of block. */
+! block[3] = 0; /* Orinial message. */
+ block[4] = 0x10; /* Data request. */
+ block[5] = gui.window_handle;
+ block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
+--- 2651,2657 ----
+ long_u length;
+
+ block[0] = 48; /* Size of block. */
+! block[3] = 0; /* Original message. */
+ block[4] = 0x10; /* Data request. */
+ block[5] = gui.window_handle;
+ block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
+*** ../vim-7.3.183/src/version.c 2011-05-10 15:41:59.000000000 +0200
+--- src/version.c 2011-05-10 15:51:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 184,
+ /**/
+
+--
+If bankers can count, how come they have eight windows and
+only four tellers?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.185 b/source/ap/vim/patches/7.3.185
new file mode 100644
index 000000000..7b3ed1899
--- /dev/null
+++ b/source/ap/vim/patches/7.3.185
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.185
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.185
+Problem: ":windo g/pattern/q" closes windows and reports "N more lines".
+ (Tim Chase)
+Solution: Remember what buffer ":global" started in. (Jean-Rene David)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.184/src/ex_cmds.c 2011-04-11 21:35:03.000000000 +0200
+--- src/ex_cmds.c 2011-05-10 15:58:48.000000000 +0200
+***************
+*** 5365,5372 ****
+ global_exe(cmd)
+ char_u *cmd;
+ {
+! linenr_T old_lcount; /* b_ml.ml_line_count before the command */
+! linenr_T lnum; /* line number according to old situation */
+
+ /*
+ * Set current position only once for a global command.
+--- 5365,5373 ----
+ global_exe(cmd)
+ char_u *cmd;
+ {
+! linenr_T old_lcount; /* b_ml.ml_line_count before the command */
+! buf_T *old_buf = curbuf; /* remember what buffer we started in */
+! linenr_T lnum; /* line number according to old situation */
+
+ /*
+ * Set current position only once for a global command.
+***************
+*** 5410,5417 ****
+ msg_didout = FALSE;
+
+ /* If substitutes done, report number of substitutes, otherwise report
+! * number of extra or deleted lines. */
+! if (!do_sub_msg(FALSE))
+ msgmore(curbuf->b_ml.ml_line_count - old_lcount);
+ }
+
+--- 5411,5420 ----
+ msg_didout = FALSE;
+
+ /* If substitutes done, report number of substitutes, otherwise report
+! * number of extra or deleted lines.
+! * Don't report extra or deleted lines in the edge case where the buffer
+! * we are in after execution is different from the buffer we started in. */
+! if (!do_sub_msg(FALSE) && curbuf == old_buf)
+ msgmore(curbuf->b_ml.ml_line_count - old_lcount);
+ }
+
+*** ../vim-7.3.184/src/version.c 2011-05-10 15:52:10.000000000 +0200
+--- src/version.c 2011-05-10 15:57:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 185,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+79. All of your most erotic dreams have a scrollbar at the right side.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.186 b/source/ap/vim/patches/7.3.186
new file mode 100644
index 000000000..d834c370d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.186
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.186
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.186
+Problem: When 'clipboard' contains "unnamed" or "unnamedplus" the value of
+ v:register is wrong for operators without a specific register.
+Solution: Adjust the register according to 'clipboard'. (Ingo Karkat)
+Files: src/normal.c
+
+
+*** ../vim-7.3.185/src/normal.c 2010-12-17 18:52:56.000000000 +0100
+--- src/normal.c 2011-05-10 16:07:49.000000000 +0200
+***************
+*** 1202,1208 ****
+ {
+ clearop(oap);
+ #ifdef FEAT_EVAL
+! set_reg_var('"');
+ #endif
+ }
+
+--- 1202,1214 ----
+ {
+ clearop(oap);
+ #ifdef FEAT_EVAL
+! {
+! int regname = 0;
+! /* Adjust the register according to 'clipboard', so that when
+! * "unnamed" is present it becomes '*' or '+' instead of '"'. */
+! adjust_clip_reg(&regname);
+! set_reg_var(regname);
+! }
+ #endif
+ }
+
+*** ../vim-7.3.185/src/version.c 2011-05-10 16:00:43.000000000 +0200
+--- src/version.c 2011-05-10 16:10:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 186,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+80. At parties, you introduce your spouse as your "service provider."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.187 b/source/ap/vim/patches/7.3.187
new file mode 100644
index 000000000..7bf82ce4d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.187
@@ -0,0 +1,6621 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.187
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.187
+Problem: The RISC OS port has obvious errors and is not being maintained.
+Solution: Remove the RISC OS files and code.
+Files: src/ascii.h, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c,
+ src/ex_docmd.c, src/fileio.c, src/globals.h, src/gui.c, src/gui.h,
+ src/main.c, src/memfile.c, src/memline.c, src/misc1.c,
+ src/proto.h, src/quickfix.c, src/search.c, src/structs.h,
+ src/term.c, src/termlib.c, src/version.c, src/vim.h,
+ src/gui_riscos.h, src/os_riscos.h, src/gui_riscos.c,
+ src/os_riscos.c, runtime/doc/os_risc.txt
+
+
+*** ../vim-7.3.186/src/ascii.h 2010-08-15 21:57:25.000000000 +0200
+--- src/ascii.h 2011-05-10 16:22:08.000000000 +0200
+***************
+*** 183,193 ****
+ # define PATHSEP psepc
+ # define PATHSEPSTR pseps
+ #else
+! # ifdef RISCOS
+! # define PATHSEP '.'
+! # define PATHSEPSTR "."
+! # else
+! # define PATHSEP '/'
+! # define PATHSEPSTR "/"
+! # endif
+ #endif
+--- 183,188 ----
+ # define PATHSEP psepc
+ # define PATHSEPSTR pseps
+ #else
+! # define PATHSEP '/'
+! # define PATHSEPSTR "/"
+ #endif
+*** ../vim-7.3.186/src/eval.c 2011-04-21 14:27:21.000000000 +0200
+--- src/eval.c 2011-05-10 16:22:21.000000000 +0200
+***************
+*** 11818,11826 ****
+ #ifdef __QNX__
+ "qnx",
+ #endif
+- #ifdef RISCOS
+- "riscos",
+- #endif
+ #ifdef UNIX
+ "unix",
+ #endif
+--- 11818,11823 ----
+*** ../vim-7.3.186/src/ex_cmds.c 2011-05-10 16:00:43.000000000 +0200
+--- src/ex_cmds.c 2011-05-10 16:23:22.000000000 +0200
+***************
+*** 899,907 ****
+ * Handle the ":!cmd" command. Also for ":r !cmd" and ":w !cmd"
+ * Bangs in the argument are replaced with the previously entered command.
+ * Remember the argument.
+- *
+- * RISCOS: Bangs only replaced when followed by a space, since many
+- * pathnames contain one.
+ */
+ void
+ do_bang(addr_count, eap, forceit, do_in, do_out)
+--- 899,904 ----
+***************
+*** 980,990 ****
+ trailarg = NULL;
+ while (*p)
+ {
+! if (*p == '!'
+! #ifdef RISCOS
+! && (p[1] == ' ' || p[1] == NUL)
+! #endif
+! )
+ {
+ if (p > newcmd && p[-1] == '\\')
+ STRMOVE(p - 1, p);
+--- 977,983 ----
+ trailarg = NULL;
+ while (*p)
+ {
+! if (*p == '!')
+ {
+ if (p > newcmd && p[-1] == '\\')
+ STRMOVE(p - 1, p);
+***************
+*** 1578,1591 ****
+ if (p != NULL)
+ *p = NUL;
+ }
+- # ifdef RISCOS
+- STRCAT(buf, " { < "); /* Use RISC OS notation for input. */
+- STRCAT(buf, itmp);
+- STRCAT(buf, " } ");
+- # else
+ STRCAT(buf, " <"); /* " < " causes problems on Amiga */
+ STRCAT(buf, itmp);
+- # endif
+ if (*p_shq == NUL)
+ {
+ p = vim_strchr(cmd, '|');
+--- 1571,1578 ----
+***************
+*** 1634,1649 ****
+ else
+ vim_snprintf((char *)end, (size_t)(buflen - (end - buf)),
+ #ifdef FEAT_QUICKFIX
+- # ifndef RISCOS
+- opt != p_sp ? " %s%s" :
+- # endif
+ " %s %s",
+ #else
+- # ifndef RISCOS
+ " %s%s", /* " > %s" causes problems on Amiga */
+- # else
+- " %s %s", /* But is needed for 'shellpipe' and RISC OS */
+- # endif
+ #endif
+ (char *)opt, (char *)fname);
+ }
+--- 1621,1629 ----
+***************
+*** 1844,1854 ****
+ #ifdef VMS
+ (char_u *)"-tmp",
+ #else
+- # ifdef RISCOS
+- (char_u *)"/tmp",
+- # else
+ (char_u *)".tmp",
+- # endif
+ #endif
+ FALSE);
+ if (tempname == NULL) /* out of memory */
+--- 1824,1830 ----
+*** ../vim-7.3.186/src/ex_cmds2.c 2011-04-11 21:35:03.000000000 +0200
+--- src/ex_cmds2.c 2011-05-10 16:23:47.000000000 +0200
+***************
+*** 500,517 ****
+ /* Expand the file name in the same way as do_source(). This means
+ * doing it twice, so that $DIR/file gets expanded when $DIR is
+ * "~/dir". */
+- #ifdef RISCOS
+- q = mch_munge_fname(p);
+- #else
+ q = expand_env_save(p);
+- #endif
+ if (q == NULL)
+ return FAIL;
+- #ifdef RISCOS
+- p = mch_munge_fname(q);
+- #else
+ p = expand_env_save(q);
+- #endif
+ vim_free(q);
+ if (p == NULL)
+ return FAIL;
+--- 500,509 ----
+***************
+*** 2940,2950 ****
+ proftime_T wait_start;
+ #endif
+
+- #ifdef RISCOS
+- p = mch_munge_fname(fname);
+- #else
+ p = expand_env_save(fname);
+- #endif
+ if (p == NULL)
+ return retval;
+ fname_exp = fix_fname(p);
+--- 2932,2938 ----
+*** ../vim-7.3.186/src/ex_docmd.c 2011-05-05 14:26:37.000000000 +0200
+--- src/ex_docmd.c 2011-05-10 16:24:18.000000000 +0200
+***************
+*** 9702,9715 ****
+ valid = 0; /* Must have ":p:h" to be valid */
+ }
+ else
+- #ifdef RISCOS
+- /* Always use the full path for RISC OS if possible. */
+- result = curbuf->b_ffname;
+- if (result == NULL)
+- result = curbuf->b_fname;
+- #else
+ result = curbuf->b_fname;
+- #endif
+ break;
+
+ case SPEC_HASH: /* '#' or "#99": alternate file */
+--- 9702,9708 ----
+***************
+*** 9854,9864 ****
+ if (src[*usedlen] == '<') /* remove the file name extension */
+ {
+ ++*usedlen;
+- #ifdef RISCOS
+- if ((s = vim_strrchr(result, '/')) != NULL && s >= gettail(result))
+- #else
+ if ((s = vim_strrchr(result, '.')) != NULL && s >= gettail(result))
+- #endif
+ resultlen = (int)(s - result);
+ }
+ #ifdef FEAT_MODIFY_FNAME
+--- 9847,9853 ----
+***************
+*** 10875,10882 ****
+ else if (vim_ispathsep(*p))
+ {
+ *s++ = '=';
+! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(RISCOS) \
+! || defined(VMS)
+ if (*p == ':')
+ *s++ = '-';
+ else
+--- 10864,10870 ----
+ else if (vim_ispathsep(*p))
+ {
+ *s++ = '=';
+! #if defined(BACKSLASH_IN_FILENAME) || defined(AMIGA) || defined(VMS)
+ if (*p == ':')
+ *s++ = '-';
+ else
+*** ../vim-7.3.186/src/fileio.c 2011-05-05 16:41:19.000000000 +0200
+--- src/fileio.c 2011-05-10 16:26:06.000000000 +0200
+***************
+*** 504,521 ****
+
+ if (newfile && !read_stdin && !read_buffer)
+ {
+! /* Remember time of file.
+! * For RISCOS, also remember the filetype.
+! */
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+ buf_store_time(curbuf, &st, fname);
+ curbuf->b_mtime_read = curbuf->b_mtime;
+-
+- #if defined(RISCOS) && defined(FEAT_OSFILETYPE)
+- /* Read the filetype into the buffer local filetype option. */
+- mch_read_filetype(fname);
+- #endif
+ #ifdef UNIX
+ /*
+ * Use the protection bits of the original file for the swap file.
+--- 504,514 ----
+
+ if (newfile && !read_stdin && !read_buffer)
+ {
+! /* Remember time of file. */
+ if (mch_stat((char *)fname, &st) >= 0)
+ {
+ buf_store_time(curbuf, &st, fname);
+ curbuf->b_mtime_read = curbuf->b_mtime;
+ #ifdef UNIX
+ /*
+ * Use the protection bits of the original file for the swap file.
+***************
+*** 557,563 ****
+
+ /*
+ * for UNIX: check readonly with perm and mch_access()
+- * for RISCOS: same as Unix, otherwise file gets re-datestamped!
+ * for MSDOS and Amiga: check readonly by trying to open the file for writing
+ */
+ file_readonly = FALSE;
+--- 550,555 ----
+***************
+*** 3804,3816 ****
+
+ /* make sure we have a valid backup extension to use */
+ if (*p_bex == NUL)
+- {
+- #ifdef RISCOS
+- backup_ext = (char_u *)"/bak";
+- #else
+ backup_ext = (char_u *)".bak";
+- #endif
+- }
+ else
+ backup_ext = p_bex;
+
+--- 3796,3802 ----
+***************
+*** 4724,4734 ****
+ #endif
+ if (perm >= 0) /* set perm. of new file same as old file */
+ (void)mch_setperm(wfname, perm);
+- #ifdef RISCOS
+- if (!append && !filtering)
+- /* Set the filetype after writing the file. */
+- mch_set_filetype(wfname, buf->b_p_oft);
+- #endif
+ #ifdef HAVE_ACL
+ /* Probably need to set the ACL before changing the user (can't set the
+ * ACL on a file the user doesn't own). */
+--- 4710,4715 ----
+***************
+*** 6262,6280 ****
+ */
+ for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
+ {
+- #ifndef RISCOS
+ if (*ext == '.'
+! # ifdef USE_LONG_FNAME
+ && (!USE_LONG_FNAME || shortname)
+! # else
+! # ifndef SHORT_FNAME
+ && shortname
+- # endif
+ # endif
+ )
+ if (*ptr == '.') /* replace '.' by '_' */
+ *ptr = '_';
+- #endif
+ if (vim_ispathsep(*ptr))
+ {
+ ++ptr;
+--- 6243,6259 ----
+ */
+ for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr))
+ {
+ if (*ext == '.'
+! #ifdef USE_LONG_FNAME
+ && (!USE_LONG_FNAME || shortname)
+! #else
+! # ifndef SHORT_FNAME
+ && shortname
+ # endif
++ #endif
+ )
+ if (*ptr == '.') /* replace '.' by '_' */
+ *ptr = '_';
+ if (vim_ispathsep(*ptr))
+ {
+ ++ptr;
+***************
+*** 6309,6331 ****
+ if (fname == NULL || *fname == NUL
+ || vim_ispathsep(fname[STRLEN(fname) - 1]))
+ {
+- #ifdef RISCOS
+- if (*ext == '/')
+- #else
+ if (*ext == '.')
+- #endif
+ *s++ = '_';
+ }
+ /*
+ * If the extension starts with '.', truncate the base name at 8
+ * characters
+ */
+- #ifdef RISCOS
+- /* We normally use '/', but swap files are '_' */
+- else if (*ext == '/' || *ext == '_')
+- #else
+ else if (*ext == '.')
+- #endif
+ {
+ if ((size_t)(s - ptr) > (size_t)8)
+ {
+--- 6288,6301 ----
+***************
+*** 6337,6349 ****
+ * If the extension doesn't start with '.', and the file name
+ * doesn't have an extension yet, append a '.'
+ */
+- #ifdef RISCOS
+- else if ((e = vim_strchr(ptr, '/')) == NULL)
+- *s++ = '/';
+- #else
+ else if ((e = vim_strchr(ptr, '.')) == NULL)
+ *s++ = '.';
+- #endif
+ /*
+ * If the extension doesn't start with '.', and there already is an
+ * extension, it may need to be truncated
+--- 6307,6314 ----
+***************
+*** 6371,6393 ****
+ /*
+ * Prepend the dot.
+ */
+! if (prepend_dot && !shortname && *(e = gettail(retval)) !=
+! #ifdef RISCOS
+! '/'
+! #else
+! '.'
+! #endif
+ #ifdef USE_LONG_FNAME
+ && USE_LONG_FNAME
+ #endif
+ )
+ {
+ STRMOVE(e + 1, e);
+- #ifdef RISCOS
+- *e = '/';
+- #else
+ *e = '.';
+- #endif
+ }
+ #endif
+
+--- 6336,6349 ----
+ /*
+ * Prepend the dot.
+ */
+! if (prepend_dot && !shortname && *(e = gettail(retval)) != '.'
+ #ifdef USE_LONG_FNAME
+ && USE_LONG_FNAME
+ #endif
+ )
+ {
+ STRMOVE(e + 1, e);
+ *e = '.';
+ }
+ #endif
+
+***************
+*** 10205,10223 ****
+ ++p;
+ break;
+ case '.':
+- #ifdef RISCOS
+- if (allow_dirs != NULL)
+- *allow_dirs = TRUE;
+- /* FALLTHROUGH */
+- #endif
+ case '~':
+ reg_pat[i++] = '\\';
+ reg_pat[i++] = *p;
+ break;
+ case '?':
+- #ifdef RISCOS
+- case '#':
+- #endif
+ reg_pat[i++] = '.';
+ break;
+ case '\\':
+--- 10161,10171 ----
+*** ../vim-7.3.186/src/globals.h 2011-05-05 14:26:37.000000000 +0200
+--- src/globals.h 2011-05-10 16:26:13.000000000 +0200
+***************
+*** 1513,1519 ****
+ EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
+ #endif
+ EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
+! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) || defined(RISCOS) \
+ || defined(UNIX) || defined(VMS) || defined(OS2)
+ EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+ #endif
+--- 1513,1519 ----
+ EXTERN char_u e_sandbox[] INIT(= N_("E48: Not allowed in sandbox"));
+ #endif
+ EXTERN char_u e_secure[] INIT(= N_("E523: Not allowed here"));
+! #if defined(AMIGA) || defined(MACOS) || defined(MSWIN) \
+ || defined(UNIX) || defined(VMS) || defined(OS2)
+ EXTERN char_u e_screenmode[] INIT(= N_("E359: Screen mode setting not supported"));
+ #endif
+*** ../vim-7.3.186/src/gui.c 2011-01-17 20:08:03.000000000 +0100
+--- src/gui.c 2011-05-10 16:26:53.000000000 +0200
+***************
+*** 2156,2162 ****
+
+ if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
+ {
+! #if defined(AMIGA) || defined(RISCOS)
+ gui_mch_set_colors(bg_color, fg_color);
+ #else
+ gui_mch_set_fg_color(bg_color);
+--- 2156,2162 ----
+
+ if (highlight_mask & (HL_INVERSE | HL_STANDOUT))
+ {
+! #if defined(AMIGA)
+ gui_mch_set_colors(bg_color, fg_color);
+ #else
+ gui_mch_set_fg_color(bg_color);
+***************
+*** 2165,2171 ****
+ }
+ else
+ {
+! #if defined(AMIGA) || defined(RISCOS)
+ gui_mch_set_colors(fg_color, bg_color);
+ #else
+ gui_mch_set_fg_color(fg_color);
+--- 2165,2171 ----
+ }
+ else
+ {
+! #if defined(AMIGA)
+ gui_mch_set_colors(fg_color, bg_color);
+ #else
+ gui_mch_set_fg_color(fg_color);
+***************
+*** 2193,2199 ****
+ if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
+ return FAIL;
+
+! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
+ /* If there's no italic font, then fake it.
+ * For GTK2, we don't need a different font for italic style. */
+ if (hl_mask_todo & HL_ITALIC)
+--- 2193,2199 ----
+ if (back != 0 && ((draw_flags & DRAW_BOLD) || (highlight_mask & HL_ITALIC)))
+ return FAIL;
+
+! #if defined(FEAT_GUI_GTK)
+ /* If there's no italic font, then fake it.
+ * For GTK2, we don't need a different font for italic style. */
+ if (hl_mask_todo & HL_ITALIC)
+***************
+*** 2985,3010 ****
+ did_clip = TRUE;
+ }
+ /* Allow the left button to start the selection */
+- else if (button ==
+- # ifdef RISCOS
+- /* Only start a drag on a drag event. Otherwise
+- * we don't get a release event. */
+- MOUSE_DRAG
+- # else
+- MOUSE_LEFT
+- # endif
+- )
+- {
+- clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+- did_clip = TRUE;
+- }
+- # ifdef RISCOS
+ else if (button == MOUSE_LEFT)
+ {
+! clip_clear_selection();
+ did_clip = TRUE;
+ }
+- # endif
+
+ /* Always allow pasting */
+ if (button != MOUSE_MIDDLE)
+--- 2985,2995 ----
+ did_clip = TRUE;
+ }
+ /* Allow the left button to start the selection */
+ else if (button == MOUSE_LEFT)
+ {
+! clip_start_selection(X_2_COL(x), Y_2_ROW(y), repeated_click);
+ did_clip = TRUE;
+ }
+
+ /* Always allow pasting */
+ if (button != MOUSE_MIDDLE)
+*** ../vim-7.3.186/src/gui.h 2010-08-15 21:57:25.000000000 +0200
+--- src/gui.h 2011-05-10 16:27:19.000000000 +0200
+***************
+*** 52,61 ****
+ # include <SegLoad.h>*/
+ #endif
+
+- #ifdef RISCOS
+- # include "gui_riscos.h"
+- #endif
+-
+ #ifdef FEAT_GUI_PHOTON
+ # include <Ph.h>
+ # include <Pt.h>
+--- 52,57 ----
+***************
+*** 151,157 ****
+ #define DRAW_BOLD 0x02 /* draw bold text */
+ #define DRAW_UNDERL 0x04 /* draw underline text */
+ #define DRAW_UNDERC 0x08 /* draw undercurl text */
+! #if defined(RISCOS) || defined(FEAT_GUI_GTK)
+ # define DRAW_ITALIC 0x10 /* draw italic text */
+ #endif
+ #define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
+--- 147,153 ----
+ #define DRAW_BOLD 0x02 /* draw bold text */
+ #define DRAW_UNDERL 0x04 /* draw underline text */
+ #define DRAW_UNDERC 0x08 /* draw undercurl text */
+! #if defined(FEAT_GUI_GTK)
+ # define DRAW_ITALIC 0x10 /* draw italic text */
+ #endif
+ #define DRAW_CURSOR 0x20 /* drawing block cursor (win32) */
+***************
+*** 219,227 ****
+ #ifdef FEAT_GUI_MAC
+ ControlHandle id; /* A handle to the scrollbar */
+ #endif
+- #ifdef RISCOS
+- int id; /* Window handle of scrollbar window */
+- #endif
+ #ifdef FEAT_GUI_PHOTON
+ PtWidget_t *id;
+ #endif
+--- 215,220 ----
+***************
+*** 450,463 ****
+ int visibility; /* Is window partially/fully obscured? */
+ #endif
+
+- #ifdef RISCOS
+- int window_handle;
+- char_u *window_title;
+- int window_title_size;
+- int fg_colour; /* in 0xBBGGRR format */
+- int bg_colour;
+- #endif
+-
+ #ifdef FEAT_GUI_PHOTON
+ PtWidget_t *vimWindow; /* PtWindow */
+ PtWidget_t *vimTextArea; /* PtRaw */
+--- 443,448 ----
+*** ../vim-7.3.186/src/main.c 2011-04-11 21:35:03.000000000 +0200
+--- src/main.c 2011-05-10 16:27:33.000000000 +0200
+***************
+*** 3276,3286 ****
+ main_msg(_("+reverse\t\tDon't use reverse video (also: +rv)"));
+ main_msg(_("-xrm <resource>\tSet the specified resource"));
+ #endif /* FEAT_GUI_X11 */
+- #if defined(FEAT_GUI) && defined(RISCOS)
+- mch_msg(_("\nArguments recognised by gvim (RISC OS version):\n"));
+- main_msg(_("--columns <number>\tInitial width of window in columns"));
+- main_msg(_("--rows <number>\tInitial height of window in rows"));
+- #endif
+ #ifdef FEAT_GUI_GTK
+ mch_msg(_("\nArguments recognised by gvim (GTK+ version):\n"));
+ main_msg(_("-font <font>\t\tUse <font> for normal text (also: -fn)"));
+--- 3276,3281 ----
+*** ../vim-7.3.186/src/memfile.c 2011-03-22 18:10:34.000000000 +0100
+--- src/memfile.c 2011-05-10 16:27:38.000000000 +0200
+***************
+*** 1307,1313 ****
+ * fname cannot be NameBuff, because it must have been allocated.
+ */
+ mf_set_ffname(mfp);
+! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
+ /*
+ * A ":!cd e:xxx" may change the directory without us knowning, use the
+ * full pathname always. Careful: This frees fname!
+--- 1307,1313 ----
+ * fname cannot be NameBuff, because it must have been allocated.
+ */
+ mf_set_ffname(mfp);
+! #if defined(MSDOS) || defined(MSWIN)
+ /*
+ * A ":!cd e:xxx" may change the directory without us knowning, use the
+ * full pathname always. Careful: This frees fname!
+*** ../vim-7.3.186/src/memline.c 2011-02-15 11:56:56.000000000 +0100
+--- src/memline.c 2011-05-10 16:28:40.000000000 +0200
+***************
+*** 748,754 ****
+ continue;
+ if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
+ {
+! #if defined(MSDOS) || defined(MSWIN) || defined(RISCOS)
+ /*
+ * set full pathname for swap file now, because a ":!cd dir" may
+ * change directory without us knowing it.
+--- 748,754 ----
+ continue;
+ if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
+ {
+! #if defined(MSDOS) || defined(MSWIN)
+ /*
+ * set full pathname for swap file now, because a ":!cd dir" may
+ * change directory without us knowing it.
+***************
+*** 933,939 ****
+ b0p->b0_fname[0] = NUL;
+ else
+ {
+! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA) || defined(RISCOS)
+ /* Systems that cannot translate "~user" back into a path: copy the
+ * file name unmodified. Do use slashes instead of backslashes for
+ * portability. */
+--- 933,939 ----
+ b0p->b0_fname[0] = NUL;
+ else
+ {
+! #if defined(MSDOS) || defined(MSWIN) || defined(AMIGA)
+ /* Systems that cannot translate "~user" back into a path: copy the
+ * file name unmodified. Do use slashes instead of backslashes for
+ * portability. */
+***************
+*** 1103,1109 ****
+ fname = (char_u *)"";
+ len = (int)STRLEN(fname);
+ if (len >= 4 &&
+! #if defined(VMS) || defined(RISCOS)
+ STRNICMP(fname + len - 4, "_s" , 2)
+ #else
+ STRNICMP(fname + len - 4, ".s" , 2)
+--- 1103,1109 ----
+ fname = (char_u *)"";
+ len = (int)STRLEN(fname);
+ if (len >= 4 &&
+! #if defined(VMS)
+ STRNICMP(fname + len - 4, "_s" , 2)
+ #else
+ STRNICMP(fname + len - 4, ".s" , 2)
+***************
+*** 1773,1783 ****
+ #ifdef VMS
+ names[0] = vim_strsave((char_u *)"*_sw%");
+ #else
+- # ifdef RISCOS
+- names[0] = vim_strsave((char_u *)"*_sw#");
+- # else
+ names[0] = vim_strsave((char_u *)"*.sw?");
+- # endif
+ #endif
+ #if defined(UNIX) || defined(WIN3264)
+ /* For Unix names starting with a dot are special. MS-Windows
+--- 1773,1779 ----
+***************
+*** 1804,1814 ****
+ #ifdef VMS
+ names[0] = concat_fnames(dir_name, (char_u *)"*_sw%", TRUE);
+ #else
+- # ifdef RISCOS
+- names[0] = concat_fnames(dir_name, (char_u *)"*_sw#", TRUE);
+- # else
+ names[0] = concat_fnames(dir_name, (char_u *)"*.sw?", TRUE);
+- # endif
+ #endif
+ #if defined(UNIX) || defined(WIN3264)
+ /* For Unix names starting with a dot are special. MS-Windows
+--- 1800,1806 ----
+***************
+*** 1877,1883 ****
+ char_u *swapname;
+
+ swapname = modname(fname_res,
+! #if defined(VMS) || defined(RISCOS)
+ (char_u *)"_swp", FALSE
+ #else
+ (char_u *)".swp", TRUE
+--- 1869,1875 ----
+ char_u *swapname;
+
+ swapname = modname(fname_res,
+! #if defined(VMS)
+ (char_u *)"_swp", FALSE
+ #else
+ (char_u *)".swp", TRUE
+***************
+*** 2176,2186 ****
+ #ifdef VMS
+ names[num_names] = concat_fnames(path, (char_u *)"_sw%", FALSE);
+ #else
+- # ifdef RISCOS
+- names[num_names] = concat_fnames(path, (char_u *)"_sw#", FALSE);
+- # else
+ names[num_names] = concat_fnames(path, (char_u *)".sw?", FALSE);
+- # endif
+ #endif
+ if (names[num_names] == NULL)
+ goto end;
+--- 2168,2174 ----
+***************
+*** 2207,2217 ****
+ #ifdef VMS
+ names[num_names] = modname(path, (char_u *)"_sw%", FALSE);
+ #else
+- # ifdef RISCOS
+- names[num_names] = modname(path, (char_u *)"_sw#", FALSE);
+- # else
+ names[num_names] = modname(path, (char_u *)".sw?", FALSE);
+- # endif
+ #endif
+ if (names[num_names] == NULL)
+ goto end;
+--- 2195,2201 ----
+***************
+*** 3205,3211 ****
+ mf_free(mfp, hp); /* free the data block */
+ buf->b_ml.ml_locked = NULL;
+
+! for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0; --stack_idx)
+ {
+ buf->b_ml.ml_stack_top = 0; /* stack is invalid when failing */
+ ip = &(buf->b_ml.ml_stack[stack_idx]);
+--- 3189,3196 ----
+ mf_free(mfp, hp); /* free the data block */
+ buf->b_ml.ml_locked = NULL;
+
+! for (stack_idx = buf->b_ml.ml_stack_top - 1; stack_idx >= 0;
+! --stack_idx)
+ {
+ buf->b_ml.ml_stack_top = 0; /* stack is invalid when failing */
+ ip = &(buf->b_ml.ml_stack[stack_idx]);
+***************
+*** 3956,3969 ****
+ #else
+ (buf->b_p_sn || buf->b_shortname),
+ #endif
+- #ifdef RISCOS
+- /* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
+- ffname,
+- #else
+ fname_res,
+- #endif
+ (char_u *)
+! #if defined(VMS) || defined(RISCOS)
+ "_swp",
+ #else
+ ".swp",
+--- 3941,3949 ----
+ #else
+ (buf->b_p_sn || buf->b_shortname),
+ #endif
+ fname_res,
+ (char_u *)
+! #if defined(VMS)
+ "_swp",
+ #else
+ ".swp",
+***************
+*** 4427,4440 ****
+ }
+ close(fd);
+ }
+- #ifdef RISCOS
+- else
+- /* Can't open swap file, though it does exist.
+- * Assume that the user is editing two files with
+- * the same name in different directories. No error.
+- */
+- differ = TRUE;
+- #endif
+
+ /* give the ATTENTION message when there is an old swap file
+ * for the current file, and the buffer was not recovered. */
+--- 4407,4412 ----
+*** ../vim-7.3.186/src/misc1.c 2011-05-10 14:44:07.000000000 +0200
+--- src/misc1.c 2011-05-10 16:29:29.000000000 +0200
+***************
+*** 4589,4613 ****
+ vim_ispathsep(c)
+ int c;
+ {
+! #ifdef RISCOS
+! return (c == '.' || c == ':');
+! #else
+! # ifdef UNIX
+ return (c == '/'); /* UNIX has ':' inside file names */
+! # else
+! # ifdef BACKSLASH_IN_FILENAME
+ return (c == ':' || c == '/' || c == '\\');
+! # else
+! # ifdef VMS
+ /* server"user passwd"::device:[full.path.name]fname.extension;version" */
+ return (c == ':' || c == '[' || c == ']' || c == '/'
+ || c == '<' || c == '>' || c == '"' );
+! # else /* Amiga */
+ return (c == ':' || c == '/');
+! # endif /* VMS */
+! # endif
+ # endif
+! #endif /* RISC OS */
+ }
+
+ #if defined(FEAT_SEARCHPATH) || defined(PROTO)
+--- 4589,4609 ----
+ vim_ispathsep(c)
+ int c;
+ {
+! #ifdef UNIX
+ return (c == '/'); /* UNIX has ':' inside file names */
+! #else
+! # ifdef BACKSLASH_IN_FILENAME
+ return (c == ':' || c == '/' || c == '\\');
+! # else
+! # ifdef VMS
+ /* server"user passwd"::device:[full.path.name]fname.extension;version" */
+ return (c == ':' || c == '[' || c == ']' || c == '/'
+ || c == '<' || c == '>' || c == '"' );
+! # else
+ return (c == ':' || c == '/');
+! # endif /* VMS */
+ # endif
+! #endif
+ }
+
+ #if defined(FEAT_SEARCHPATH) || defined(PROTO)
+*** ../vim-7.3.186/src/proto.h 2010-08-15 21:57:29.000000000 +0200
+--- src/proto.h 2011-05-10 16:29:45.000000000 +0200
+***************
+*** 62,70 ****
+ # ifdef __BEOS__
+ # include "os_beos.pro"
+ # endif
+- # ifdef RISCOS
+- # include "os_riscos.pro"
+- # endif
+ # ifdef __QNX__
+ # include "os_qnx.pro"
+ # endif
+--- 62,67 ----
+***************
+*** 245,253 ****
+ # ifdef FEAT_GUI_X11
+ # include "gui_x11.pro"
+ # endif
+- # ifdef RISCOS
+- # include "gui_riscos.pro"
+- # endif
+ # ifdef FEAT_GUI_PHOTON
+ # include "gui_photon.pro"
+ # endif
+--- 242,247 ----
+*** ../vim-7.3.186/src/quickfix.c 2011-05-05 17:14:07.000000000 +0200
+--- src/quickfix.c 2011-05-10 16:30:18.000000000 +0200
+***************
+*** 1182,1202 ****
+ if (fname == NULL || *fname == NUL) /* no file name */
+ return 0;
+ {
+- #ifdef RISCOS
+- /* Name is reported as `main.c', but file is `c.main' */
+- return ro_buflist_add(fname);
+- #else
+ char_u *ptr;
+ int fnum;
+
+! # ifdef VMS
+ vms_remove_version(fname);
+! # endif
+! # ifdef BACKSLASH_IN_FILENAME
+ if (directory != NULL)
+ slash_adjust(directory);
+ slash_adjust(fname);
+! # endif
+ if (directory != NULL && !vim_isAbsName(fname)
+ && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
+ {
+--- 1182,1198 ----
+ if (fname == NULL || *fname == NUL) /* no file name */
+ return 0;
+ {
+ char_u *ptr;
+ int fnum;
+
+! #ifdef VMS
+ vms_remove_version(fname);
+! #endif
+! #ifdef BACKSLASH_IN_FILENAME
+ if (directory != NULL)
+ slash_adjust(directory);
+ slash_adjust(fname);
+! #endif
+ if (directory != NULL && !vim_isAbsName(fname)
+ && (ptr = concat_fnames(directory, fname, TRUE)) != NULL)
+ {
+***************
+*** 1221,1227 ****
+ return fnum;
+ }
+ return buflist_add(fname, 0);
+- #endif
+ }
+ }
+
+--- 1217,1222 ----
+*** ../vim-7.3.186/src/search.c 2011-02-25 18:38:29.000000000 +0100
+--- src/search.c 2011-05-10 16:30:38.000000000 +0200
+***************
+*** 4581,4589 ****
+ char_u *already = NULL;
+ char_u *startp = NULL;
+ char_u *inc_opt = NULL;
+- #ifdef RISCOS
+- int previous_munging = __riscosify_control;
+- #endif
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+ win_T *curwin_save = NULL;
+ #endif
+--- 4581,4586 ----
+***************
+*** 4596,4606 ****
+ if (file_line == NULL)
+ return;
+
+- #ifdef RISCOS
+- /* UnixLib knows best how to munge c file names - turn munging back on. */
+- int __riscosify_control = 0;
+- #endif
+-
+ if (type != CHECK_PATH && type != FIND_DEFINE
+ #ifdef FEAT_INS_EXPAND
+ /* when CONT_SOL is set compare "ptr" with the beginning of the line
+--- 4593,4598 ----
+***************
+*** 5228,5238 ****
+ vim_free(regmatch.regprog);
+ vim_free(incl_regmatch.regprog);
+ vim_free(def_regmatch.regprog);
+-
+- #ifdef RISCOS
+- /* Restore previous file munging state. */
+- __riscosify_control = previous_munging;
+- #endif
+ }
+
+ static void
+--- 5220,5225 ----
+*** ../vim-7.3.186/src/structs.h 2011-03-22 18:10:34.000000000 +0100
+--- src/structs.h 2011-05-10 16:30:49.000000000 +0200
+***************
+*** 2366,2376 ****
+ MenuHandle menu_handle;
+ MenuHandle submenu_handle;
+ #endif
+- #ifdef RISCOS
+- int *id; /* Not used, but gui.c needs it */
+- int greyed_out; /* Flag */
+- int hidden;
+- #endif
+ #ifdef FEAT_GUI_PHOTON
+ PtWidget_t *id;
+ PtWidget_t *submenu_id;
+--- 2366,2371 ----
+*** ../vim-7.3.186/src/term.c 2010-12-30 14:47:32.000000000 +0100
+--- src/term.c 2011-05-10 16:31:41.000000000 +0200
+***************
+*** 52,58 ****
+
+ /*
+ * Here are the builtin termcap entries. They are not stored as complete
+! * Tcarr structures, as such a structure is too big.
+ *
+ * The entries are compact, therefore they normally are included even when
+ * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
+--- 52,58 ----
+
+ /*
+ * Here are the builtin termcap entries. They are not stored as complete
+! * structures with all entries, as such a structure is too big.
+ *
+ * The entries are compact, therefore they normally are included even when
+ * HAVE_TGETENT is defined. When HAVE_TGETENT is defined, the builtin entries
+***************
+*** 199,269 ****
+ #endif
+
+ #ifndef NO_BUILTIN_TCAPS
+- # if defined(RISCOS) || defined(ALL_BUILTIN_TCAPS)
+- /*
+- * Default for the Acorn.
+- */
+- {(int)KS_NAME, "riscos"},
+- {(int)KS_CL, "\014"}, /* Cls and Home Cursor */
+- {(int)KS_CM, "\001%d\001%d\002"}, /* Position cursor */
+-
+- {(int)KS_CCO, "16"}, /* Allow 16 colors */
+-
+- {(int)KS_CAF, "\001%d\021"}, /* Set foreground colour */
+- {(int)KS_CAB, "\001%d\022"}, /* Set background colour */
+-
+-
+- {(int)KS_ME, "\004"}, /* Normal mode */
+- {(int)KS_MR, "\005"}, /* Reverse */
+-
+- {(int)KS_VI, "\016"}, /* Cursor invisible */
+- {(int)KS_VE, "\017"}, /* Cursor visible */
+- {(int)KS_VS, "\020"}, /* Cursor very visible */
+-
+- {(int)KS_CS, "\001%d\001%d\003"}, /* Set scroll region */
+- {(int)KS_SR, "\023"}, /* Scroll text down */
+- {K_UP, "\217"},
+- {K_DOWN, "\216"},
+- {K_LEFT, "\214"},
+- {K_RIGHT, "\215"},
+- {K_S_UP, "\237"},
+- {K_S_DOWN, "\236"},
+- {K_S_LEFT, "\234"},
+- {K_S_RIGHT, "\235"},
+-
+- {K_F1, "\201"},
+- {K_F2, "\202"},
+- {K_F3, "\203"},
+- {K_F4, "\204"},
+- {K_F5, "\205"},
+- {K_F6, "\206"},
+- {K_F7, "\207"},
+- {K_F8, "\210"},
+- {K_F9, "\211"},
+- {K_F10, "\312"},
+- {K_F11, "\313"},
+- {K_F12, "\314"},
+- {K_S_F1, "\221"},
+- {K_S_F2, "\222"},
+- {K_S_F3, "\223"},
+- {K_S_F4, "\224"},
+- {K_S_F5, "\225"},
+- {K_S_F6, "\226"},
+- {K_S_F7, "\227"},
+- {K_S_F8, "\230"},
+- {K_S_F9, "\231"},
+- {K_S_F10, "\332"},
+- {K_S_F11, "\333"},
+- {K_S_F12, "\334"},
+- {K_BS, "\010"},
+- {K_INS, "\315"},
+- {K_DEL, "\177"},
+- {K_HOME, "\036"},
+- {K_END, "\213"},
+- {K_PAGEUP, "\237"},
+- {K_PAGEDOWN, "\236"},
+- # endif /* Acorn terminal */
+-
+
+ # if defined(AMIGA) || defined(ALL_BUILTIN_TCAPS)
+ /*
+--- 199,204 ----
+***************
+*** 1399,1408 ****
+ /*
+ * DEFAULT_TERM is used, when no terminal is specified with -T option or $TERM.
+ */
+- #ifdef RISCOS
+- # define DEFAULT_TERM (char_u *)"riscos"
+- #endif
+-
+ #ifdef AMIGA
+ # define DEFAULT_TERM (char_u *)"amiga"
+ #endif
+--- 1334,1339 ----
+*** ../vim-7.3.186/src/termlib.c 2010-08-15 21:57:30.000000000 +0200
+--- src/termlib.c 2011-05-10 16:31:58.000000000 +0200
+***************
+*** 13,19 ****
+ #include "vim.h"
+ #include "termlib.pro"
+
+! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS) && !defined(RISCOS)
+ # include <sgtty.h>
+ #endif
+
+--- 13,19 ----
+ #include "vim.h"
+ #include "termlib.pro"
+
+! #if !defined(AMIGA) && !defined(VMS) && !defined(MACOS)
+ # include <sgtty.h>
+ #endif
+
+*** ../vim-7.3.186/src/version.c 2011-05-10 16:12:40.000000000 +0200
+--- src/version.c 2011-05-10 16:37:20.000000000 +0200
+***************
+*** 1205,1213 ****
+ # endif
+ #endif
+
+- #ifdef RISCOS
+- MSG_PUTS(_("\nRISC OS version"));
+- #endif
+ #ifdef VMS
+ MSG_PUTS(_("\nOpenVMS version"));
+ # ifdef HAVE_PATHDEF
+--- 1207,1212 ----
+*** ../vim-7.3.186/src/vim.h 2011-05-05 16:41:19.000000000 +0200
+--- src/vim.h 2011-05-10 16:32:40.000000000 +0200
+***************
+*** 184,192 ****
+ # define SIZEOF_INT 2
+ # endif
+ #endif
+- #ifdef RISCOS
+- # define SIZEOF_INT 4
+- #endif
+
+
+ #include "feature.h" /* #defines for optionals and features */
+--- 184,189 ----
+***************
+*** 340,349 ****
+ # include "os_mac.h"
+ #endif
+
+- #ifdef RISCOS
+- # include "os_riscos.h"
+- #endif
+-
+ #ifdef __QNX__
+ # include "os_qnx.h"
+ #endif
+--- 337,342 ----
+*** ../vim-7.3.186/src/gui_riscos.h 2010-08-15 21:57:28.000000000 +0200
+--- src/gui_riscos.h 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,32 ****
+- /* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved by Bram Moolenaar
+- *
+- * Do ":help uganda" in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- */
+-
+- #define FEAT_BROWSE
+-
+- #define TASK 0x4b534154
+-
+- /* Nested wimp flags: */
+- #define CHILD_FIX_TO_WORKAREA 0
+- #define CHILD_FIX_TO_LEFT 1
+- #define CHILD_FIX_TO_BOTTOM 1
+- #define CHILD_FIX_TO_RIGHT 2
+- #define CHILD_FIX_TO_TOP 2
+-
+- #define CHILD_SELF_SCROLL 0
+- #define CHILD_PARENT_SCROLL 1
+-
+- #define CHILD_LEFT 16
+- #define CHILD_BOTTOM 18
+- #define CHILD_RIGHT 20
+- #define CHILD_TOP 22
+- #define CHILD_SCROLL_X 24
+- #define CHILD_SCROLL_Y 26
+-
+- int wimp_poll(int mask, int *block);
+- int wimp_poll_idle(int mask, int *block, int end_time);
+- void ro_open_main(int *block);
+--- 0 ----
+*** ../vim-7.3.186/src/os_riscos.h 2010-08-15 21:57:30.000000000 +0200
+--- src/os_riscos.h 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,166 ****
+- /* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved by Bram Moolenaar
+- *
+- * Do ":help uganda" in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- */
+-
+- #include <sys/types.h>
+- #include <sys/stat.h>
+- #include <sys/ioctl.h>
+- #include <termios.h>
+- #include <stdlib.h>
+- #include <unixlib/local.h>
+- #include <errno.h>
+- #include <fcntl.h>
+-
+- #define CASE_INSENSITIVE_FILENAME
+- #define FEAT_MODIFY_FNAME
+- #define FEAT_OSFILETYPE
+- #define DFLT_OFT "Text"
+- #define USE_TERM_CONSOLE
+- #define HAVE_AVAIL_MEM
+-
+- /* Longer filenames now accessible to all */
+- #ifndef BASENAMELEN
+- # define BASENAMELEN 64 /* Same length as unzip */
+- #endif
+-
+- #ifndef TEMNAME
+- # define TEMPNAME "<Wimp$ScrapDir>.v?XXXXXX"
+- # define TEMPNAMELEN 25
+- #endif
+-
+- #ifndef DFLT_HELPFILE
+- # define DFLT_HELPFILE "Vim:doc.help"
+- #endif
+-
+- #ifndef DFLT_BDIR
+- # define DFLT_BDIR ".,<Wimp$ScrapDir>." /* default for 'backupdir' */
+- #endif
+-
+- /* Paths to try putting swap file in. */
+- #ifndef DFLT_DIR
+- # define DFLT_DIR "<Wimp$ScrapDir>.,." /* default for 'directory' */
+- #endif
+-
+- #ifndef DFLT_VDIR
+- # define DFLT_VDIR "Choices:Vim.view" /* default for 'viewdir' */
+- #endif
+-
+- #ifndef TERMCAPFILE
+- # define TERMCAPFILE "Vim:TermCap"
+- #endif
+- #define HAVE_TGETENT
+-
+- #ifndef SYNTAX_FNAME
+- # define SYNTAX_FNAME "Vim:Syntax.%s"
+- #endif
+-
+- #ifndef EVIM_FILE
+- # define EVIM_FILE "Vim:Evim"
+- #endif
+-
+- #define FEAT_VIMINFO
+-
+- #ifndef VIMINFO_FILE
+- # define VIMINFO_FILE "<Choices$Write>.Vim.VimInfo"
+- #endif
+- #ifndef VIMINFO_FILE2
+- # define VIMINFO_FILE2 "Choices:Vim.VimInfo"
+- #endif
+-
+- #ifndef VIMRC_FILE
+- # define VIMRC_FILE "/vimrc"
+- #endif
+- #ifndef EXRC_FILE
+- # define EXRC_FILE "/exrc"
+- #endif
+- #ifndef GVIMRC_FILE
+- # define GVIMRC_FILE "/gvimrc"
+- #endif
+- #ifndef USR_VIMRC_FILE
+- # define USR_VIMRC_FILE "Vim:Evim"
+- #endif
+- #ifndef SESSION_FILE
+- # define SESSION_FILE "/Session.vim"
+- #endif
+- #ifndef USR_VIMRC_FILE
+- # define USR_VIMRC_FILE "Choices:Vim.VimRC"
+- #endif
+- #ifndef USR_GVIMRC_FILE
+- # define USR_GVIMRC_FILE "Choices:Vim.GVimRC"
+- #endif
+- #ifndef USR_EXRC_FILE
+- # define USR_EXRC_FILE "Choices:Vim.ExRC"
+- #endif
+- #ifndef SYS_VIMRC_FILE
+- # define SYS_VIMRC_FILE "Vim:VimRC"
+- #endif
+- #ifndef SYS_GVIMRC_FILE
+- # define SYS_GVIMRC_FILE "Vim:GVimRC"
+- #endif
+- #ifndef SYS_MENU_FILE
+- # define SYS_MENU_FILE "Vim:Menu"
+- #endif
+- #ifndef SYS_OPTWIN_FILE
+- # define SYS_OPTWIN_FILE "Vim:Optwin"
+- #endif
+- #ifndef FILETYPE_FILE
+- # define FILETYPE_FILE "Vim:Filetype"
+- #endif
+- #ifndef FTPLUGIN_FILE
+- # define FTPLUGIN_FILE "Vim:Ftplugin/vim"
+- #endif
+- #ifndef INDENT_FILE
+- # define INDENT_FILE "Vim:Indent/vim"
+- #endif
+- #ifndef FTOFF_FILE
+- # define FTOFF_FILE "Vim:Ftoff"
+- #endif
+- #ifndef FTPLUGOF_FILE
+- # define FTPLUGOF_FILE "Vim:Ftplugof"
+- #endif
+- #ifndef INDOFF_FILE
+- # define INDOFF_FILE "Vim:Indoff"
+- #endif
+-
+- #define DFLT_ERRORFILE "errors/vim"
+- #define DFLT_RUNTIMEPATH "Choices:Vim,Vim:,Choices:Vim.after"
+-
+- /*
+- * RISC PCs have plenty of memory, use large buffers
+- */
+- #define CMDBUFFSIZE 1024 /* size of the command processing buffer */
+- #define MAXPATHL 256 /* paths are always quite short though */
+-
+- #ifndef DFLT_MAXMEM
+- # define DFLT_MAXMEM (5*1024) /* use up to 5 Mbyte for a buffer */
+- #endif
+-
+- #ifndef DFLT_MAXMEMTOT
+- # define DFLT_MAXMEMTOT (10*1024) /* use up to 10 Mbyte for Vim */
+- #endif
+-
+- #ifdef HAVE_SIGSET
+- # define signal sigset
+- #endif
+-
+- #define n_flag (1<<31)
+- #define z_flag (1<<30)
+- #define c_flag (1<<29)
+- #define v_flag (1<<28)
+-
+- /* These take r0-r7 as inputs, returns r0-r7 in global variables. */
+- void swi(int swinum, ...); /* Handles errors itself */
+- int xswi(int swinum, ...); /* Returns errors using v flag */
+- extern int r0, r1, r2, r3, r4, r5, r6, r7; /* For return values */
+-
+- #include <kernel.h>
+- #include <swis.h>
+-
+- #define mch_memmove(to, from, len) memmove((char *)(to), (char *)(from), len)
+- #define mch_rename(src, dst) rename(src, dst)
+- #define mch_getenv(x) (char_u *)getenv((char *)x)
+- #define mch_setenv(name, val, x) setenv(name, val, x)
+--- 0 ----
+*** ../vim-7.3.186/src/gui_riscos.c 2011-05-10 15:52:10.000000000 +0200
+--- src/gui_riscos.c 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,3558 ****
+- /* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved by Bram Moolenaar
+- *
+- * Do ":help uganda" in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- * See README.txt for an overview of the Vim source code.
+- */
+-
+- #include "vim.h"
+- #include <string.h>
+-
+- /*
+- * gui_riscos.c
+- *
+- * Thomas Leonard <tal197@ecs.soton.ac.uk>
+- * Updated by Andy Wingate <andy@sparse.net>
+- */
+-
+- extern int time_of_last_poll;
+-
+- int task_handle = 0; /* Zero means we are not yet a Wimp task */
+- int child_handle = 0; /* Task handle of our child process (zero if none). */
+- int *wimp_menu = (int *) -1; /* Pointer to a Wimp menu structure (or -1) */
+- int save_window = -1; /* Save As window handle */
+-
+- int *redraw_block = NULL; /* NULL means not in a redraw loop. */
+- int ro_return_early = FALSE; /* Break out of gui_mch_wait_for_chars() */
+-
+- int leaf_ref = 0; /* Wimp message number - send via Wimp$Scrap */
+- char_u *leaf_name = NULL; /* Leaf name from DataSave */
+-
+- int default_columns = 120; /* These values are used if the --rows and --columns */
+- int default_rows = 32; /* options aren't used on startup. */
+-
+- #define DRAG_FALSE 0
+- #define DRAG_SELECTION 1
+- #define DRAG_RESIZE_WINDOW 2
+- int ro_dragging = DRAG_FALSE;
+- int drag_button;
+- int drag_modifiers;
+- int drag_x_offset;
+- int drag_y_offset;
+-
+- int nested_wimp = FALSE; /* Bool - can we use the new wimp? */
+-
+- int changed_mode = FALSE;
+- int x_eigen_factor;
+- int y_eigen_factor;
+-
+- /* If ro_current_font is non-zero then use the outline font with that handle,
+- * otherwise, if zap_redraw is TRUE then use ZapRedraw, otherwise use the
+- * system font.
+- *
+- * If zap_redraw is TRUE then zap_file[] contains valid Zap font file
+- * pointers (or NULLs).
+- */
+- int ro_current_font = 0; /* 0 is system font, or ZapRedraw */
+- int font_x_offset = 0; /* Where to position each char in its box */
+- int font_y_offset = 0;
+-
+- int zap_redraw = FALSE;
+- int double_height = FALSE; /* Plot each line twice? */
+-
+- #define grgb(r,g,b) ((b<<16) + (g<<8) + (r))
+- #define UNUSED_COLOUR (gui.back_pixel)
+-
+- #define RO_LOAD_CLIPBOARD -2 /* Internal handle for DataSave message. */
+-
+- /* Changes by John Kortink, 22-23 July 1998
+- *
+- * Stuff to make redraw a lot faster. Almost all of it is right here below,
+- * elsewhere changes are marked with 'JK230798'. Apart from a small change in
+- * 'gui.c' all changes are limited to this file, 'gui_riscos.c'. The change in
+- * 'gui.c' is to make Vim stop being 'smart' not redrawing characters that are
+- * 'already there' (i.e. from the previous line, by coincidence). This caused a
+- * lot more calls to the redraw code, which we want to avoid because a few nice
+- * big strings at a time is a lot faster than a truckload of small ones. ('Dear
+- * Bram ...').
+- */
+-
+- /* The ZapRedraw structure */
+-
+- static struct
+- {
+- int r_flags;
+- int r_minx;
+- int r_miny;
+- int r_maxx;
+- int r_maxy;
+- int r_screen;
+- int r_bpl;
+- int r_bpp;
+- int r_charw;
+- int r_charh;
+- char *r_caddr;
+- int r_cbpl;
+- int r_cbpc;
+- int r_linesp;
+- int r_data;
+- int r_scrollx;
+- int r_scrolly;
+- int *r_palette;
+- int r_for;
+- int r_bac;
+- char *r_workarea;
+- int r_magx;
+- int r_magy;
+- int r_xsize;
+- int r_ysize;
+- int r_mode;
+- }
+- zap_redraw_block;
+-
+- /* Other globals */
+-
+- static int zap_redraw_initialised = FALSE;
+- static int zap_redraw_update_colours;
+- static int zap_redraw_colours[2];
+- static int zap_redraw_palette[16];
+-
+- /* Holds the current Zap font file(s).
+- * The font is recreated from this block on a mode change.
+- * When using zap, element ZAP_NORMAL is always valid, but
+- * the others can be NULL.
+- */
+-
+- #define ZAP_NORMAL 0
+- #define ZAP_BOLD 1
+- #define ZAP_ITALIC 2
+- #define ZAP_BITALIC 3
+- #define ZAP_STYLES 4
+-
+- /* Zap font file format data */
+- static char *zap_file[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+-
+- /* r_caddr format for current mode */
+- static char *zap_caddr[ZAP_STYLES] = {NULL, NULL, NULL, NULL};
+-
+- static void ro_remove_menu(int *menu);
+-
+- /*
+- * Initialise all the ZapRedraw stuff.
+- * Call this when changing font and after each mode change.
+- * zap_redraw_bitmap must contain a valid Zap font file (possibly
+- * created from the system font).
+- *
+- * Return FAIL to revert to system font (if we can't use ZapRedraw).
+- */
+- int
+- ro_zap_redraw_initialise()
+- {
+- int bytes_per_bitmap_char;
+- int first, last;
+- int i;
+-
+- /* Can't have initialisers for struct members :-(, ok, this way then ... */
+- if (!zap_redraw_initialised)
+- {
+- zap_redraw_block.r_workarea = NULL;
+- zap_redraw_initialised = TRUE;
+- }
+-
+- /* We redraw in DSA mode */
+- zap_redraw_block.r_flags = 0x0;
+-
+- /* Let ZapRedraw get the screen address for us */
+- zap_redraw_block.r_screen = 0;
+-
+- /* Read the font width and height from the font file header.
+- * Assume that all styles are the same size.
+- * ZAP_NORMAL is always present.
+- */
+- zap_redraw_block.r_charw = ((int *) zap_file[ZAP_NORMAL])[2];
+- zap_redraw_block.r_charh = ((int *) zap_file[ZAP_NORMAL])[3];
+-
+- /* We have no linespacing */
+- zap_redraw_block.r_linesp = 0;
+-
+- /* Fix foreground = colour 1 */
+- zap_redraw_block.r_for = 1;
+-
+- /* Fix background = colour 0 */
+- zap_redraw_block.r_bac = 0;
+-
+- /* Colour mask buffer */
+- zap_redraw_block.r_palette = zap_redraw_palette;
+-
+- /* Allocate local workspace (for the few calls following here) */
+- if (zap_redraw_block.r_workarea != NULL)
+- free(zap_redraw_block.r_workarea);
+- zap_redraw_block.r_workarea = (char*) malloc(128);
+- if (!zap_redraw_block.r_workarea)
+- return FAIL; /* Out of memory */
+-
+- /* Fill in VDU variables */
+- if (xswi(ZapRedraw_ReadVduVars, 0, &zap_redraw_block) & v_flag)
+- return FAIL; /* Can't find ZapRedraw module - use VDU instead */
+-
+- /* Determine cbpl and cbpc */
+- swi(ZapRedraw_CachedCharSize, zap_redraw_block.r_bpp, 0,
+- zap_redraw_block.r_charw, zap_redraw_block.r_charh);
+- zap_redraw_block.r_cbpl = r2;
+- zap_redraw_block.r_cbpc = r3;
+-
+- /* Allocate general workspace (for the calls outside) */
+- if (zap_redraw_block.r_workarea != NULL)
+- free(zap_redraw_block.r_workarea);
+- zap_redraw_block.r_workarea = (char*) malloc(128 + zap_redraw_block.r_cbpl);
+- if (!zap_redraw_block.r_workarea)
+- return FAIL; /* Out of memory */
+-
+- /* Now convert the 1 bpp character data ready for the current mode */
+-
+- bytes_per_bitmap_char = (zap_redraw_block.r_charw * zap_redraw_block.r_charh + 7) / 8;
+-
+- /* Convert the fonts from 1bpp to a format suitable for the
+- * current mode.
+- */
+- for (i = 0; i < ZAP_STYLES; i++)
+- {
+- first = ((int *) zap_file[i])[4];
+- last = ((int *) zap_file[i])[5];
+-
+- if (last > 255)
+- last = 255; /* Don't convert cursors (overwrites memory!) */
+-
+- /* Allocate the font cache */
+- vim_free(zap_caddr[i]);
+- if (zap_file[i])
+- zap_caddr[i] = (char*) malloc(zap_redraw_block.r_cbpc * 256);
+- else
+- zap_caddr[i] = NULL; /* No file for this style */
+-
+- if (zap_caddr[i])
+- {
+- zap_redraw_block.r_caddr = zap_caddr[i];
+-
+- swi(ZapRedraw_ConvertBitmap, 0, &zap_redraw_block,
+- first, last, /* Range of characters to convert */
+- zap_file[i] + 0x20 /* Addr of first char provided by font */
+- - first * bytes_per_bitmap_char);
+- }
+- }
+-
+- if (!zap_caddr[ZAP_NORMAL])
+- {
+- zap_redraw = FALSE; /* Out of memory */
+- return FAIL;
+- }
+-
+- /* Next time we need them, we have to update the colour masks */
+- zap_redraw_update_colours = TRUE;
+-
+- return OK;
+- }
+-
+- /*
+- * Redraw a string at OS coordinates <x,y> (top-left, x inclusive, y exclusive).
+- * Graphics clip window is window[0..3] as in R1+28..40 of Wimp_RedrawWindow.
+- * Returns (possibly modified) flags.
+- */
+- int
+- ro_zap_redraw_draw_string(x, y, string, length, flags, clip)
+- int x;
+- int y;
+- char *string;
+- int length;
+- int flags; /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL, DRAW_ITALIC */
+- int *clip;
+- {
+- char redraw_data[1024];
+- int clip_minx;
+- int clip_miny;
+- int clip_maxx;
+- int clip_maxy;
+- int os_xshift = zap_redraw_block.r_magx;
+- int os_yshift = zap_redraw_block.r_magy;
+-
+- if (flags & DRAW_TRANSP)
+- return flags; /* We don't do transparent plotting yet. */
+-
+- if (flags & DRAW_BOLD)
+- {
+- if (flags & DRAW_ITALIC && zap_caddr[ZAP_BITALIC])
+- zap_redraw_block.r_caddr = zap_caddr[ZAP_BITALIC];
+- else
+- zap_redraw_block.r_caddr = zap_caddr[ZAP_BOLD];
+- }
+- else
+- {
+- if (flags & DRAW_ITALIC)
+- zap_redraw_block.r_caddr = zap_caddr[ZAP_ITALIC];
+- else
+- zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+- }
+- if (!zap_redraw_block.r_caddr)
+- {
+- zap_redraw_block.r_caddr = zap_caddr[ZAP_NORMAL];
+- flags |= DRAW_UNDERL; /* Style missing - we can always underline */
+- }
+-
+- /* Set the vertical scaling flag */
+- if (double_height)
+- zap_redraw_block.r_flags = 1 << 1;
+- else
+- zap_redraw_block.r_flags = 0;
+-
+- /* Update the colour masks (if needed) */
+- if (zap_redraw_update_colours)
+- {
+- swi(ZapRedraw_CreatePalette, 2,
+- &zap_redraw_block,
+- zap_redraw_colours,
+- zap_redraw_block.r_palette, 2);
+- zap_redraw_update_colours = FALSE;
+- }
+-
+- /* Target rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+- zap_redraw_block.r_minx = x >> os_xshift; /* inclusive */
+- zap_redraw_block.r_miny = zap_redraw_block.r_ysize - (y >> os_yshift); /* inclusive */
+- zap_redraw_block.r_maxx = (x + length * gui.char_width) >> os_xshift; /* exclusive */
+- zap_redraw_block.r_maxy = zap_redraw_block.r_ysize - ((y - gui.char_height) >> os_yshift);
+- /* exclusive */
+-
+- /* Clip rectangle in ZapRedraw rectangle coordinates (pixels, Y-min/max reversed !!!) */
+- clip_minx = clip[0] >> os_xshift; /* inclusive */
+- clip_miny = zap_redraw_block.r_ysize - (clip[3] >> os_yshift); /* inclusive */
+- clip_maxx = clip[2] >> os_xshift; /* exclusive */
+- clip_maxy = zap_redraw_block.r_ysize - (clip[1] >> os_yshift); /* exclusive */
+-
+- /* Clip target rectangle against the current graphics window */
+- if (zap_redraw_block.r_minx < clip_minx)
+- {
+- zap_redraw_block.r_scrollx = clip_minx - zap_redraw_block.r_minx;
+- zap_redraw_block.r_minx = clip_minx;
+- }
+- else
+- zap_redraw_block.r_scrollx = 0;
+- if (zap_redraw_block.r_miny < clip_miny)
+- {
+- zap_redraw_block.r_scrolly = clip_miny - zap_redraw_block.r_miny;
+- zap_redraw_block.r_miny = clip_miny;
+- }
+- else
+- zap_redraw_block.r_scrolly = 0;
+- if (zap_redraw_block.r_maxx > clip_maxx)
+- zap_redraw_block.r_maxx = clip_maxx;
+- if (zap_redraw_block.r_maxy > clip_maxy)
+- zap_redraw_block.r_maxy = clip_maxy;
+-
+- /* Fill in the character data structure */
+- if (length > (sizeof(redraw_data) - 2 * 4 - 2))
+- length = sizeof(redraw_data) - 2 * 4 - 2;
+- ((int*) redraw_data)[0] = 2 * 4;
+- ((int*) redraw_data)[1] = 0;
+- strncpy(redraw_data + 2 * 4, string, length);
+- redraw_data[2 * 4 + length + 0] = '\0';
+- redraw_data[2 * 4 + length + 1] = '\x2';
+- zap_redraw_block.r_data = (int) redraw_data;
+-
+- /* Perform the draw */
+- swi(ZapRedraw_RedrawArea, 0, &zap_redraw_block);
+-
+- return flags;
+- }
+-
+- /*
+- * Okay that was it from me, back to Thomas ...
+- */
+-
+- /*
+- * Parse the GUI related command-line arguments. Any arguments used are
+- * deleted from argv, and *argc is decremented accordingly. This is called
+- * when vim is started, whether or not the GUI has been started.
+- */
+- void
+- gui_mch_prepare(int *argc, char **argv)
+- {
+- int arg = 1;
+-
+- while (arg < *argc - 1)
+- {
+- if (strcmp(argv[arg], "--rows") == 0 || strcmp(argv[arg], "--columns") == 0)
+- {
+- int value;
+-
+- value = atoi(argv[arg + 1]);
+-
+- if (argv[arg][2] == 'r')
+- default_rows = value;
+- else
+- default_columns = value;
+-
+- /* Delete argument from argv[]. (hope this is read/write!) */
+-
+- *argc -= 2;
+- if (*argc > arg)
+- mch_memmove(&argv[arg], &argv[arg + 2], (*argc - arg)
+- * sizeof(char *));
+- }
+- else
+- arg++;
+- }
+- }
+-
+- /* Fatal error on initialisation - report it and die. */
+- void
+- ro_die(error)
+- char_u *error; /* RISC OS error block */
+- {
+- swi(Wimp_ReportError, error, 5, "GVim");
+- exit(EXIT_FAILURE);
+- }
+-
+- /* Find the sizes of the window tools:
+- *
+- * Create a test window.
+- * Find inner and outer sizes.
+- * Find the difference.
+- * Delete window.
+- *
+- * While we're here, find the eigen values too.
+- */
+- void
+- ro_measure_tools()
+- {
+- int block[10];
+- int vdu[] = { 4, 5, -1};
+- int test_window[] =
+- {
+- -100, -100, /* Visible area : min X,Y */
+- -50, -50, /* max X,Y */
+- 0, 0, /* Scroll offsets */
+- -1, /* Window in front */
+- 0xd0800150, /* Window flags */
+- 0xff070207, /* Colours */
+- 0x000c0103, /* More colours */
+- 0, -0x4000, /* Workarea extent */
+- 0x4000, 0, /* max X,Y */
+- 0x00000000, /* No title */
+- 0 << 12, /* No workarea button type */
+- 1, /* Wimp sprite area */
+- 0x00010001, /* Minimum width, height */
+- 0, 0, 0, /* Title data (none) */
+- 0 /* No icons */
+- };
+- int inner_max_x, inner_min_y;
+-
+- swi(Wimp_CreateWindow, 0, test_window);
+-
+- block[0] = r0;
+- /* Open the window (and read state).
+- * GetWindowOutline needs it too if the wimp isn't nested.
+- */
+- swi(Wimp_OpenWindow, 0, block);
+- inner_max_x = block[3];
+- inner_min_y = block[2];
+-
+- swi(Wimp_GetWindowOutline, 0, block);
+-
+- gui.scrollbar_width = block[3] - inner_max_x;
+- gui.scrollbar_height = inner_min_y - block[2];
+-
+- swi(Wimp_DeleteWindow, 0, block);
+-
+- /* Read the size of one pixel. */
+- swi(OS_ReadVduVariables, vdu, vdu);
+- x_eigen_factor = vdu[0];
+- y_eigen_factor = vdu[1];
+- }
+-
+- /* Load a template from the current templates file.
+- * Create the window and return its handle.
+- */
+- int
+- ro_load_template(str_name, title, title_size)
+- char_u *str_name; /* Identifier of window in file (max 12 chars) */
+- char_u **title; /* If not NULL then return pointer to title here */
+- int *title_size; /* If not NULL then return the title length here */
+- {
+- int *window;
+- char *data;
+- int name[4];
+-
+- strcpy( (char *) name, str_name);
+-
+- /* Find how big we must make the buffers */
+-
+- if (xswi(Wimp_LoadTemplate, 0, 0, 0, 0, -1, name, 0) & v_flag)
+- ro_die( (char *) r0);
+-
+- window = malloc(r1); /* Don't print text messages from alloc() */
+- data = malloc(r2);
+- if (window == NULL || data == NULL)
+- ro_die("\0\0\0\0Out of memory - Can't load templates");
+-
+- /* Load the template into the buffers */
+-
+- swi(Wimp_LoadTemplate, 0,
+- window, /* Temp block */
+- data, /* Icon data */
+- data + r2 + 1, /* End of icon data */
+- -1, /* No fonts */
+- name, 0); /* First match */
+- if (r6 == 0)
+- ro_die("\0\0\0\0Can't find window in Templates file");
+-
+- /* Create the window */
+-
+- if (xswi(Wimp_CreateWindow, 0, window) & v_flag)
+- ro_die( (char *) r0);
+-
+- if (title)
+- *title = (char_u *) window[18];
+- if (title_size)
+- *title_size = window[20];
+-
+- free(window); /* Free temp block */
+- return r0; /* Return the window handle */
+- }
+-
+- /*
+- * Check if the GUI can be started. Called before gvimrc is sourced.
+- * Return OK or FAIL.
+- */
+- int
+- gui_mch_init_check()
+- {
+- return OK; /* TODO: GUI can always be started? */
+- }
+-
+- /*
+- * Initialise the RISC OS GUI.
+- * Create all the windows.
+- * Returns OK for success, FAIL when the GUI can't be started.
+- */
+- int
+- gui_mch_init()
+- {
+- int messages[] = {
+- 1, 2, 3, 4, /* DataSave, DataSaveAck, DataLoad, DataLoadAck */
+- 8, /* PreQuit */
+- 0xf, /* ClaimEntity (for clipboard) */
+- 0x10, /* DataRequest (for clipboard) */
+- 0x400c1, /* Mode change */
+- 0x400c3, /* TaskCloseDown */
+- 0x400c9, /* MenusDeleted */
+- 0x808c1, /* TW_Output */
+- 0x808c2, /* TW_Ego */
+- 0x808c3, /* TW_Morio */
+- 0x808c4, /* TW_Morite */
+- 0}; /* End-of-list. */
+-
+-
+- /* There may have been some errors reported in the
+- * command window before we get here. Wait if so.
+- */
+- swi(Wimp_ReadSysInfo, 3);
+- if (r0 == 0)
+- swi(Wimp_CommandWindow, 0); /* Window opened - close with prompt */
+-
+- if (xswi(Wimp_Initialise, 310, 0x4b534154, "GVim", messages) & v_flag)
+- return FAIL;
+- nested_wimp = r0 >= 397;
+- task_handle = r1;
+-
+- /* Load the templates. */
+-
+- if (xswi(Wimp_OpenTemplate, 0, "Vim:Templates") & v_flag)
+- ro_die( (char *) r0);
+-
+- gui.window_handle = ro_load_template("editor",
+- &gui.window_title,
+- &gui.window_title_size);
+-
+- save_window = ro_load_template("save", NULL, NULL);
+-
+- swi(Wimp_CloseTemplate);
+-
+- /* Set default foreground and background colours. */
+-
+- gui.norm_pixel = gui.def_norm_pixel;
+- gui.back_pixel = gui.def_back_pixel;
+-
+- /* Get the colours from the "Normal" and "Menu" group (set in syntax.c or
+- * in a vimrc file) */
+-
+- set_normal_colors();
+-
+- /*
+- * Check that none of the colors are the same as the background color
+- */
+-
+- gui_check_colors();
+-
+- /* Get the colours for the highlight groups (gui_check_colors() might have
+- * changed them) */
+-
+- highlight_gui_started(); /* re-init colours and fonts */
+-
+- /* Set geometry based on values read on initialisation. */
+-
+- gui.num_cols = Columns = default_columns;
+- gui.num_rows = Rows = default_rows;
+-
+- /* Get some information about our environment. */
+-
+- ro_measure_tools();
+-
+- return OK;
+- }
+-
+- /*
+- * Called when the foreground or background colour has been changed.
+- */
+- void
+- gui_mch_new_colors()
+- {
+- }
+-
+- /*
+- * Open the GUI window which was created by a call to gui_mch_init().
+- */
+- int
+- gui_mch_open(void)
+- {
+- int block[10];
+-
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- block[7] = -1; /* Open at the top of the stack */
+- swi(Wimp_OpenWindow, 0, block);
+-
+- /* Give the new window the input focus */
+- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+- if (gui_win_x != -1 && gui_win_y != -1)
+- gui_mch_set_winpos(gui_win_x, gui_win_y);
+-
+- return OK;
+- }
+-
+- void
+- gui_mch_exit(int rc)
+- {
+- int block[64];
+-
+- /* Close window. Stops us from getting troublesome events
+- * if we take a while to die.
+- */
+- block[0] = gui.window_handle;
+- swi(Wimp_CloseWindow, 0, block);
+-
+- if (child_handle)
+- {
+- /* We still have a sub-task running - kill it */
+- block[0] = 20;
+- block[3] = 0;
+- block[4] = 0; /* Quit */
+- if ((xswi(Wimp_SendMessage, 17, block, child_handle) & v_flag) == 0)
+- {
+- /* Idle until child dies. */
+- while (child_handle)
+- {
+- process_event(wimp_poll(1, block), block);
+- }
+- }
+- }
+-
+- exit(rc);
+- }
+-
+- /*
+- * Get the position of the top left corner of the window.
+- */
+- int
+- gui_mch_get_winpos(int *x, int *y)
+- {
+- /* TODO */
+- return FAIL;
+- }
+-
+- /*
+- * Set the position of the top left corner of the window to the given
+- * coordinates.
+- */
+- void
+- gui_mch_set_winpos(int x, int y)
+- {
+- /* TODO */
+- }
+-
+- void
+- gui_mch_set_shellsize(width, height, min_width, min_height, base_width, base_height, direction)
+- int width; /* In OS units */
+- int height;
+- int min_width; /* Smallest permissible window size (ignored) */
+- int min_height;
+- int base_width; /* Space for scroll bars, etc */
+- int base_height;
+- int direction;
+- {
+- int s_width, s_height;
+- int block[] = {
+- gui.window_handle,
+- 0,
+- -height + 1,
+- width,
+- 1};
+-
+- gui_mch_get_screen_dimensions(&s_width, &s_height);
+- s_width -= base_width;
+- s_height -= base_height; /* Underestimate - ignores titlebar */
+-
+- swi(Wimp_GetWindowState, 0, block);
+- block[3] = block[1] + width;
+- block[2] = block[4] - height;
+- if (block[3] > s_width)
+- {
+- block[3] = s_width;
+- block[1] = block[3] - width;
+- }
+- if (block[2] < gui.scrollbar_height)
+- {
+- block[2] = gui.scrollbar_height;
+- block[4] = block[2] + height;
+- }
+- swi(Wimp_OpenWindow, 0, block);
+- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+- }
+-
+- void
+- gui_mch_get_screen_dimensions(int *screen_w, int *screen_h)
+- {
+- int block[] = {4, 5, 11, 12, -1};
+-
+- swi(OS_ReadVduVariables, block, block);
+- *screen_w = (block[2] + 1) << block[0];
+- *screen_h = (block[3] + 1) << block[1];
+- }
+-
+- /* Take a font name with options and return a font handle, or
+- * zero for failure.
+- * Replace extension with 'Bold' or 'Italic' depending on modifiers.
+- */
+- int
+- ro_get_font(fullname, weight)
+- char_u *fullname;
+- int weight; /* Initial weights:
+- * BIT MEANING
+- * 0 bold
+- * 1 italic
+- */
+- {
+- char_u *arg;
+- char_u font[41];
+- int width = -1;
+- int height = -1;
+- int name_len;
+- int i;
+- char_u c;
+-
+- for (i = 0; i < 39;)
+- {
+- c = fullname[i];
+- if (c == ':' || c == NUL || c == '.')
+- break;
+- font[i++] = c;
+- }
+-
+- /* find the first modifier, NULL if none */
+- arg = strchr(fullname + i, ':');
+-
+- while (arg)
+- {
+- switch (*++arg)
+- {
+- case 'h':
+- height = strtol(arg + 1, (char **) &arg, 10);
+- break;
+- case 'w':
+- width = strtol(arg + 1, (char **) &arg, 10);
+- break;
+- case 'b':
+- weight |= 1;
+- break;
+- case 'i':
+- weight |= 2;
+- break;
+- default:
+- return 0;
+- }
+- arg = strchr(arg, ':');
+- }
+-
+- if ((weight & 1) && i < 35)
+- {
+- /* Bold goes instead of given suffix */
+- strncpy(font + i, ".Bold", 5);
+- i += 5;
+- }
+- else
+- {
+- /* Copy rest of name unless we are using Bold */
+- while (i < 39)
+- {
+- c = fullname[i];
+- if (c == ':' || c == NUL)
+- break;
+- font[i++] = c;
+- }
+- }
+- if ((weight & 2) && i < 32)
+- {
+- strncpy(font + i, ".Oblique", 8);
+- i += 8;
+- }
+-
+- font[i] = 0;
+-
+- if (height < 1 && width < 1)
+- height = width = 10; /* Default to 10pt */
+- else if (height < 1)
+- height = width;
+- else if (width < 1)
+- width = height;
+-
+- if (xswi(Font_FindFont, 0, font, width << 4, height << 4, 0, 0) & v_flag)
+- return NOFONT; /* Can't find font */
+-
+- return r0;
+- }
+-
+- /* Load a file into allocated memory and check it is valid.
+- * Return a pointer to the allocated block on success.
+- */
+- char *
+- zap_load_file(name, style)
+- char_u *name; /* Name of directory containing styles */
+- char_u *style; /* Name of style within directory */
+- {
+- char_u fname[256];
+- char_u *file;
+-
+- if (strlen(name) + strlen(style) > 254)
+- return NULL; /* Names too long */
+-
+- sprintf(fname, "%s.%s", name, style);
+-
+- /* Load the named font in 1bpp format. */
+- if (xswi(OS_File, 13, fname, 0, 0, "VimFonts:") & v_flag || r0 != 1)
+- return NULL; /* Error reading file info, or not a file */
+-
+- /* Allocate enough memory to load the whole file */
+- file = (char *) alloc(r4);
+- if (!file)
+- return NULL; /* Out of memory */
+-
+- if (xswi(OS_File, 12, fname, file, 0, "VimFonts:") & v_flag)
+- return NULL; /* Unable to load file */
+-
+- if (strncmp(file, "ZapFont\015", 8) == 0)
+- return file; /* Loaded OK! */
+-
+- vim_free(file);
+- return NULL; /* Not a valid font file */
+- }
+-
+- /* Load and convert the named font.
+- * If name is NULL or a null string then convert the system font.
+- * Return OK on success; FAIL and we revert to using the VDU drivers.
+- *
+- * 'name' is the name of a directory.
+- * Tries to load 'name.0', 'name.B', 'name.I' and 'name.IB'.
+- */
+- int
+- zap_load_font(name)
+- char_u *name;
+- {
+- int i;
+-
+- /* Free the existing font files, if any */
+- for (i = 0; i < ZAP_STYLES; i++)
+- {
+- vim_free(zap_file[i]);
+- zap_file[i] = NULL;
+- }
+-
+- if (name && *name == '!')
+- {
+- name++;
+- double_height = TRUE;
+- }
+- else
+- double_height = FALSE;
+-
+- if (name && *name)
+- {
+- zap_file[ZAP_NORMAL] = zap_load_file(name, "0");
+- if (!zap_file[ZAP_NORMAL])
+- return FAIL; /* Can't load the 'normal' style - error */
+-
+- zap_file[ZAP_BOLD] = zap_load_file(name, "B");
+- zap_file[ZAP_ITALIC] = zap_load_file(name, "I");
+- zap_file[ZAP_BITALIC] = zap_load_file(name, "IB");
+- }
+- else
+- {
+- int *header;
+- char workarea[16];
+- char *old_wa;
+-
+- /* Allocate memory for system font (8 x 8 x 256 bits, plus header) */
+- header = (int *) alloc(0x20 + 8 * 256);
+- if (header == NULL)
+- return FAIL;
+- zap_file[ZAP_NORMAL] = (char *) header;
+-
+- /* Store details about the system font */
+- header[2] = 8; /* Width */
+- header[3] = 8; /* Height */
+- header[4] = 0; /* First char */
+- header[5] = 255; /* Last char */
+- header[6] = header[7] = 0; /* Reserved */
+-
+- /* Get system font bitmap */
+- old_wa = zap_redraw_block.r_workarea;
+- zap_redraw_block.r_workarea = workarea;
+- swi(ZapRedraw_ReadSystemChars, zap_file[ZAP_NORMAL] + 0x20, &zap_redraw_block);
+- zap_redraw_block.r_workarea = old_wa;
+- }
+-
+- return ro_zap_redraw_initialise();
+- }
+-
+- /*
+- * Initialise vim to use the font with the given name.
+- * Return FAIL if the font could not be loaded, OK otherwise.
+- */
+- int
+- gui_mch_init_font(char_u *font_name, int fontset)
+- {
+- int new_handle = 0; /* Use the system font by default */
+-
+- if (font_name[0] == '!')
+- {
+- /* Select a ZapRedraw font */
+- if (zap_load_font(font_name + 1))
+- zap_redraw = TRUE;
+- else
+- {
+- EMSG2(_("E610: Can't load Zap font '%s'"), font_name);
+- font_name = "System"; /* Error - use system font */
+- zap_redraw = FALSE;
+- }
+- }
+- else
+- {
+- zap_redraw = FALSE;
+-
+- if (font_name)
+- {
+- /* Extract any extra details about the font */
+- new_handle = ro_get_font(font_name, 0);
+- if (!new_handle)
+- return FAIL;
+- }
+- else
+- font_name = "System";
+- }
+-
+- /* Free the previous font, if any */
+- gui_mch_free_font(gui.norm_font);
+- gui.norm_font = new_handle;
+- gui.char_ascent = 0;
+-
+- if (new_handle)
+- {
+- /* Read details about the chosen font */
+- swi(Font_ReadInfo, new_handle);
+-
+- gui.char_width = r3 - r1;
+- gui.char_height = r4 - r2;
+-
+- font_x_offset = -r1; /* Where to position each char in its box */
+- font_y_offset = -r4;
+-
+- /* Try to load other fonts for bold, italic, and bold-italic */
+- gui_mch_free_font(gui.bold_font);
+- gui.bold_font = ro_get_font(font_name, 1);
+- gui_mch_free_font(gui.ital_font);
+- gui.ital_font = ro_get_font(font_name, 2);
+- gui_mch_free_font(gui.boldital_font);
+- gui.boldital_font = ro_get_font(font_name, 3);
+- }
+- else
+- {
+- /* Use the system font or ZapRedraw. */
+- if (zap_redraw)
+- {
+- gui.char_width = zap_redraw_block.r_charw << zap_redraw_block.r_magx;
+- gui.char_height = zap_redraw_block.r_charh << zap_redraw_block.r_magy;
+- if (double_height)
+- gui.char_height <<= 1;
+- }
+- else
+- {
+- gui.char_width = 16;
+- gui.char_height = 32;
+- }
+-
+- gui_mch_free_font(gui.bold_font);
+- gui.bold_font = 0;
+- gui_mch_free_font(gui.ital_font);
+- gui.ital_font = 0;
+- gui_mch_free_font(gui.boldital_font);
+- gui.boldital_font = 0;
+- }
+- hl_set_font_name(font_name);
+-
+- must_redraw = CLEAR;
+- return OK;
+- }
+-
+- /*
+- * Adjust gui.char_height (after 'linespace' was changed).
+- */
+- int
+- gui_mch_adjust_charheight()
+- {
+- return FAIL;
+- }
+-
+- /*
+- * Get a font structure for highlighting.
+- */
+- GuiFont
+- gui_mch_get_font(name, giveErrorIfMissing)
+- char_u *name;
+- int giveErrorIfMissing;
+- {
+- int handle;
+-
+- if (!name)
+- return NOFONT; /* System font if no name */
+-
+- handle = ro_get_font(name, 0);
+- if (!handle)
+- {
+- if (giveErrorIfMissing)
+- EMSG2(_("E611: Can't use font %s"), name);
+- return NOFONT;
+- }
+-
+- return handle;
+- }
+-
+- #if defined(FEAT_EVAL) || defined(PROTO)
+- /*
+- * Return the name of font "font" in allocated memory.
+- * Don't know how to get the actual name, thus use the provided name.
+- */
+- char_u *
+- gui_mch_get_fontname(font, name)
+- GuiFont font;
+- char_u *name;
+- {
+- if (name == NULL)
+- return NULL;
+- return vim_strsave(name);
+- }
+- #endif
+-
+- /*
+- * Set the current text font.
+- */
+- void
+- gui_mch_set_font(GuiFont font)
+- {
+- ro_current_font = font;
+-
+- if (font)
+- {
+- /* Not the system font or ZapRedraw font - select it */
+- swi(Font_SetFont, font);
+- }
+- }
+-
+- /*
+- * If a font is not going to be used, free its structure.
+- */
+- void
+- gui_mch_free_font(GuiFont font)
+- {
+- if (font)
+- swi(Font_LoseFont, font);
+- }
+-
+- /*
+- * Return the Pixel value (colour) for the given colour name.
+- * Return INVALCOLOR for error.
+- * NB: I've changed Green for now, since it looked really sick
+- */
+- guicolor_T
+- gui_mch_get_color(char_u *name)
+- {
+- int i;
+- struct colour
+- {
+- char_u *name;
+- guicolor_T value;
+- } colours[] =
+- {
+- { "Red", grgb(255, 0, 0) },
+- { "LightRed", grgb(255, 0, 0) },
+- { "DarkRed", grgb(139, 0, 0) },
+-
+- { "Green", grgb(50, 200, 50) },
+- { "LightGreen", grgb(144, 238, 144) },
+- { "DarkGreen", grgb(0, 100, 0) },
+- { "SeaGreen", grgb(46, 139, 87) },
+-
+- { "Blue", grgb(0, 0, 255) },
+- { "LightBlue", grgb(173, 216, 230) },
+- { "DarkBlue", grgb(0, 0, 139) },
+- { "SlateBlue", grgb(160, 90, 205) },
+-
+- { "Cyan", grgb(0, 255, 255) },
+- { "LightCyan", grgb(224, 255, 255) },
+- { "DarkCyan", grgb(0, 139, 139) },
+-
+- { "Magenta", grgb(255, 0, 255) },
+- { "LightMagenta", grgb(255, 224, 255) },
+- { "DarkMagenta", grgb(139, 0, 139) },
+-
+- { "Yellow", grgb(255, 255, 0) },
+- { "LightYellow", grgb(255, 255, 224) },
+- { "DarkYellow", grgb(139, 139, 0) },
+- { "Brown", grgb(165, 42, 42) },
+-
+- { "Gray", grgb(190, 190, 190) },
+- { "Grey", grgb(190, 190, 190) },
+- { "LightGray", grgb(211, 211, 211) },
+- { "LightGrey", grgb(211, 211, 211) },
+- { "DarkGray", grgb(169, 169, 169) },
+- { "DarkGrey", grgb(169, 169, 169) },
+- { "Gray10", grgb(26, 26, 26) },
+- { "Grey10", grgb(26, 26, 26) },
+- { "Gray20", grgb(51, 51, 51) },
+- { "Grey20", grgb(51, 51, 51) },
+- { "Gray30", grgb(77, 77, 77) },
+- { "Grey30", grgb(77, 77, 77) },
+- { "Gray40", grgb(102, 102, 102) },
+- { "Grey40", grgb(102, 102, 102) },
+- { "Gray50", grgb(127, 127, 127) },
+- { "Grey50", grgb(127, 127, 127) },
+- { "Gray60", grgb(153, 153, 153) },
+- { "Grey60", grgb(153, 153, 153) },
+- { "Gray70", grgb(179, 179, 179) },
+- { "Grey70", grgb(179, 179, 179) },
+- { "Gray80", grgb(204, 204, 204) },
+- { "Grey80", grgb(204, 204, 204) },
+- { "Gray90", grgb(229, 229, 229) },
+- { "Grey90", grgb(229, 229, 229) },
+-
+- { "Black", grgb(0, 0, 0) },
+- { "White", grgb(255, 255, 255) },
+-
+- { "Orange", grgb(255, 165, 0) },
+- { "Purple", grgb(160, 32, 240) },
+- { "Violet", grgb(238, 130, 238) },
+- {NULL, 0}
+- };
+-
+- if (name[0] == '#')
+- {
+- char *end;
+- int c;
+-
+- c = strtol(name + 1, &end, 16);
+- return (guicolor_T) ((c >> 16) & 0xff) | (c & 0xff00) | ((c & 0xff) << 16);
+- }
+-
+- for (i = 0; colours[i].name != NULL; i++)
+- {
+- if (STRICMP(name, colours[i].name) == 0)
+- return colours[i].value;
+- }
+- if (strnicmp(name, "grey", 4) == 0 || strnicmp(name, "gray", 4) == 0)
+- {
+- int level = (255 * atoi(name + 4)) / 100;
+- return (guicolor_T) grgb(level, level, level);
+- }
+- return INVALCOLOR;
+- }
+-
+- /*
+- * Set the current text colours.
+- * If we are using fonts then set the antialiasing colours too.
+- */
+- void
+- gui_mch_set_colors(guicolor_T fg, guicolor_T bg)
+- {
+- zap_redraw_colours[0] = bg << 8; /* JK230798, register new background colour */
+- zap_redraw_colours[1] = fg << 8; /* JK230798, register new foreground colour */
+- zap_redraw_update_colours = TRUE; /* JK230798, need update of colour masks */
+-
+- swi(ColourTrans_ReturnGCOL, fg << 8);
+- gui.fg_colour = r0;
+- swi(ColourTrans_ReturnGCOL, bg << 8);
+- gui.bg_colour = r0;
+-
+- if (ro_current_font)
+- swi(ColourTrans_SetFontColours, 0, bg << 8, fg << 8, 14);
+- }
+-
+- void
+- ro_draw_string(x, y, s, len, flags, clip)
+- int x; /* Top-left coord to plot at (x incl, y excl) */
+- int y; /* (screen coords) */
+- char_u *s; /* String to plot */
+- int len; /* Length of string */
+- int flags; /* DRAW_TRANSP, DRAW_BOLD, DRAW_UNDERL */
+- int* clip; /* JK230798, added clip window */
+- {
+- if (ro_current_font)
+- {
+- int fx;
+- int flen = len; /* Preserve for underline */
+-
+- /* Use the Font manager to paint the string.
+- * Must do one char at a time to get monospacing.
+- */
+-
+- if (flags & DRAW_ITALIC && !gui.ital_font)
+- flags |= DRAW_UNDERL; /* No italic - underline instead */
+-
+- if ((flags & DRAW_TRANSP) == 0)
+- {
+- swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+- swi(OS_Plot, 4, x, y - gui.char_height);
+- swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+- }
+-
+- fx = x + font_x_offset;
+- while (flen--)
+- {
+- swi(Font_Paint, 0, s++, 0x90, fx, y + font_y_offset, 0, 0, 1);
+- fx += gui.char_width;
+- }
+- }
+- else
+- {
+- if (zap_redraw)
+- {
+- /* Using fast Zap redraw. */
+- flags = ro_zap_redraw_draw_string(x, y, s, len, flags, clip);
+- }
+- else
+- {
+- /* Using the system font */
+- if (flags & DRAW_ITALIC)
+- flags |= DRAW_UNDERL;
+-
+- if ((flags & DRAW_TRANSP) == 0)
+- {
+- swi(ColourTrans_SetColour, gui.bg_colour, 0, 0, 0, 0);
+- swi(OS_Plot, 4, x, y - gui.char_height);
+- swi(OS_Plot, 96 + 5, x + len * gui.char_width - 1, y - 1);
+- }
+- swi(OS_Plot, 4, /* Move the drawing cursor */
+- x,
+- y - 1);
+- swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+- swi(OS_WriteN, s, len);
+-
+- if (flags & DRAW_BOLD)
+- {
+- swi(OS_Plot, 4, x + (1 << x_eigen_factor), y - 1);
+- swi(OS_WriteN, s, len);
+- }
+- }
+- }
+-
+- if (flags & DRAW_UNDERL)
+- {
+- if (ro_current_font || zap_redraw)
+- swi(ColourTrans_SetColour, gui.fg_colour, 0, 0, 0, 0);
+- /* Underlined is the same with all plotting methods */
+- swi(OS_Plot, 4, x, y - gui.char_height);
+- swi(OS_Plot, 1, gui.char_width * len, 0);
+- }
+- }
+-
+- void
+- gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
+- {
+- int x, y; /* Workarea x,y */
+- x = col * gui.char_width;
+- y = -row * gui.char_height;
+-
+- if (redraw_block)
+- {
+- ro_draw_string(x + redraw_block[1], y + redraw_block[4],
+- s, len, flags, &redraw_block[7]); /* JK230798, added clip window */
+- }
+- else
+- {
+- int block[44];
+- block[0] = gui.window_handle;
+- block[1] = x;
+- block[2] = y - gui.char_height;
+- block[3] = (col + len) * gui.char_width;
+- block[4] = y;
+- swi(Wimp_UpdateWindow, 0, block);
+- while (r0)
+- {
+- ro_draw_string(x + block[1], y + block[4],
+- s, len, flags, &block[7]); /* JK230798, added clip window */
+- swi(Wimp_GetRectangle, 0, block);
+- }
+- }
+- }
+-
+- /*
+- * Return OK if the key with the termcap name "name" is supported.
+- */
+- int
+- gui_mch_haskey(char_u *name)
+- {
+- return FAIL;
+- }
+-
+- void
+- gui_mch_beep(void)
+- {
+- swi(OS_WriteI + 7);
+- }
+-
+- /*
+- * Visual bell.
+- */
+- void
+- gui_mch_flash(int msec)
+- {
+- /* TODO */
+- }
+-
+-
+- /*
+- * Plot a solid rectangle using the given plot action and colour.
+- * Coordinates are inclusive and window-relative.
+- */
+- void
+- plot_rectangle(plot, colour, minx, miny, maxx, maxy)
+- int plot; /* OS_Plot action */
+- int colour;
+- int minx;
+- int miny;
+- int maxx;
+- int maxy;
+- {
+- if (redraw_block)
+- {
+- swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+- swi(OS_Plot, 4, minx + redraw_block[1], miny + redraw_block[4]);
+- swi(OS_Plot, plot, maxx + redraw_block[1], maxy + redraw_block[4]);
+- }
+- else
+- {
+- int block[44];
+- block[0] = gui.window_handle;
+- block[1] = minx;
+- block[2] = miny;
+- block[3] = maxx + 1;
+- block[4] = maxy + 1;
+- swi(Wimp_UpdateWindow, 0, block);
+- while (r0)
+- {
+- swi(ColourTrans_SetColour, colour, 0, 0, 0, 0);
+- swi(OS_Plot, 4, minx + block[1], miny + block[4]);
+- swi(OS_Plot, plot, maxx + block[1], maxy + block[4]);
+- swi(Wimp_GetRectangle, 0, block);
+- }
+- }
+- }
+-
+- /*
+- * Invert a rectangle from row r, column c, for nr rows and nc columns.
+- */
+- void
+- gui_mch_invert_rectangle(int r, int c, int nr, int nc)
+- {
+- plot_rectangle(96 + 6, 0, FILL_X(c), -FILL_Y(r + nr), FILL_X(c + nc), -FILL_Y(r));
+- }
+-
+- /*
+- * Iconify the GUI window.
+- */
+- void
+- gui_mch_iconify(void)
+- {
+- }
+-
+- #if defined(FEAT_EVAL) || defined(PROTO)
+- /*
+- * Bring the Vim window to the foreground.
+- */
+- void
+- gui_mch_set_foreground()
+- {
+- /* TODO */
+- }
+- #endif
+-
+- /* Draw a hollow rectangle relative to the current
+- * graphics cursor position, with the given width
+- * and height. Start position is top-left.
+- */
+- void
+- draw_hollow(w, h)
+- int w;
+- int h;
+- {
+- swi(OS_Plot, 1, w - 1, 0);
+- swi(OS_Plot, 1, 0, 1 - h);
+- swi(OS_Plot, 1, 1 - w, 0);
+- swi(OS_Plot, 1, 0, h - 1);
+- }
+-
+- /*
+- * Draw a cursor without focus.
+- */
+- void
+- gui_mch_draw_hollow_cursor(guicolor_T colour)
+- {
+- int x = FILL_X(gui.cursor_col); /* Window relative, top-left */
+- int y = -FILL_Y(gui.cursor_row);
+- if (redraw_block == NULL)
+- {
+- int block[11];
+-
+- block[0] = gui.window_handle;
+- block[1] = x;
+- block[2] = y - gui.char_height;
+- block[3] = x + gui.char_width;
+- block[4] = y;
+- swi(Wimp_UpdateWindow, 0, block);
+- while (r0)
+- {
+- swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+-
+- swi(OS_Plot, 4, x + block[1], y + block[4] - 1);
+- draw_hollow(gui.char_width, gui.char_height);
+-
+- swi(Wimp_GetRectangle, 0, block);
+- }
+- }
+- else
+- {
+- swi(ColourTrans_SetGCOL, colour << 8, 0, 0, 0, 0);
+-
+- swi(OS_Plot, 4, x + redraw_block[1], y + redraw_block[4] - 1);
+- draw_hollow(gui.char_width, gui.char_height);
+- }
+- }
+-
+- /*
+- * Draw part of a cursor, "w" pixels wide, and "h" pixels high, using
+- * color "color".
+- */
+- void
+- gui_mch_draw_part_cursor(w, h, colour)
+- int w;
+- int h;
+- guicolor_T colour;
+- {
+- int x = FILL_X(gui.cursor_col);
+- int y = -FILL_Y(gui.cursor_row);
+- swi(ColourTrans_ReturnGCOL, colour << 8);
+- plot_rectangle(96 + 5, r0, x, y - h, x + w - 1, y - 1);
+- }
+-
+- /*
+- * Catch up with any queued events. This may put keyboard input into the
+- * input buffer, call resize call-backs, trigger timers etc.
+- * If there is nothing in the event queue(& no timers pending), then we return
+- * immediately (well, after a Wimp_Poll).
+- */
+- void
+- gui_mch_update(void)
+- {
+- int block[64];
+- int reason;
+-
+- swi(OS_ReadMonotonicTime);
+- if ((r0 - time_of_last_poll) < 50)
+- return; /* Don't return too often */
+-
+- reason = wimp_poll(0, block);
+- if (reason)
+- process_event(reason, block);
+- ro_return_early = FALSE; /* We're returning anyway. */
+- }
+-
+- void
+- redraw_window(block)
+- int *block;
+- {
+- int x, y; /* Vim workarea coords */
+- int width, height;
+- int blank_col;
+-
+- swi(ColourTrans_ReturnGCOL, UNUSED_COLOUR << 8, 0, 0, 1<<7, 0);
+- blank_col = r0;
+-
+- swi(Wimp_RedrawWindow, 0, block);
+- redraw_block = block;
+- while (r0)
+- {
+- x = block[7] - block[1];
+- y = block[4] - block[10];
+- width = block[9] - block[7];
+- height = block[10] - block[8];
+-
+- if (height + y > Rows * gui.char_height)
+- {
+- /* Blank everything off the bottom. */
+- plot_rectangle(96 + 5, blank_col,
+- 0, block[8] - block[4],
+- block[9] - block[1], -FILL_Y(Rows) - 1);
+- height = Rows * gui.char_height;
+- }
+- if (width + x> Columns * gui.char_width)
+- {
+- /* Blank everything off to the right. */
+- plot_rectangle(96 + 5, blank_col,
+- FILL_X(Columns), block[8] - block[4],
+- block[9] - block[1], 0);
+- width = Columns * gui.char_width;
+- }
+- gui_redraw(x , y, width, height);
+- swi(Wimp_GetRectangle, 0, block);
+- }
+- redraw_block = NULL;
+- }
+-
+- /* Check if we have modified data.
+- * If we do then ack the message to stop the shutdown.
+- * Otherwise, ignore the message.
+- */
+- void
+- ro_prequit(block)
+- int *block;
+- {
+- if (!ro_ok_to_quit())
+- {
+- /* Not OK to quit - stop shutdown */
+- block[3] = block[2];
+- swi(Wimp_SendMessage, 19, block, block[1]);
+- }
+- /* Do nothing. We may get a Message_Quit later. */
+- }
+-
+- /* If there is unsaved data then ask the user if they mind losing it.
+- * Return TRUE if we can quit without saving, FALSE to halt the
+- * shutdown.
+- */
+- int
+- ro_ok_to_quit()
+- {
+- int old_confirm = cmdmod.confirm;
+-
+- cmdmod.confirm = FALSE; /* Use our own, single tasking, box */
+-
+- if (check_changed_any(FALSE))
+- {
+- swi(Wimp_ReportError,
+- "\0\0\0\0Vim contains unsaved data - quit anyway?",
+- 0x17,
+- "Vim");
+- cmdmod.confirm = old_confirm;
+- if (r1 != 1)
+- return FALSE;
+- }
+- cmdmod.confirm = old_confirm;
+- return TRUE;
+- }
+-
+- /* Quit without checking for unsaved data. */
+- void
+- ro_quit()
+- {
+- exiting = TRUE;
+- getout(0);
+-
+- exiting = FALSE; /* probably can't get here */
+- setcursor(); /* position cursor */
+- out_flush();
+- }
+-
+- /* Insent the given vim special code into the input buffer */
+- void
+- ro_press(a, b, modifier)
+- char a;
+- char b;
+- int modifier; /* %<Ctrl><Shift> 0000 0000 */
+- {
+- char_u buf[6];
+- int vim_mod;
+- int key;
+-
+-
+- /* Convert RISC OS modifier to Vim modifier. */
+- vim_mod = ((modifier & 0x10) ? MOD_MASK_SHIFT : 0)
+- | ((modifier & 0x20) ? MOD_MASK_CTRL : 0);
+- key = simplify_key(TERMCAP2KEY(a, b), &vim_mod);
+-
+- buf[3] = CSI;
+- buf[4] = KEY2TERMCAP0(key);
+- buf[5] = KEY2TERMCAP1(key);
+- if (vim_mod)
+- {
+- buf[0] = CSI;
+- buf[1] = KS_MODIFIER;
+- buf[2] = vim_mod;
+- add_to_input_buf(buf, 6);
+- }
+- else
+- add_to_input_buf(buf + 3, 3);
+- }
+-
+- /* Take a wimp key code and insert the vim equivalent
+- * into vim's input buffer.
+- * CTRL-C also sets got_int.
+- */
+- void
+- ro_insert_key(code)
+- char_u *code; /* Wimp_ProcessKey code (4 bytes) */
+- {
+- char a = code[0];
+- char b = code[1];
+- int base, modifier;
+-
+- if (a == 3 && ctrl_c_interrupts)
+- got_int = TRUE;
+-
+- /* Is it a normal key? */
+- if (a > 31 && a < 127)
+- {
+- add_to_input_buf(code, 1);
+- return;
+- }
+-
+- /* We should pass any unrecognised keys on, but
+- * for now just pass on F12 combinations.
+- */
+- switch (b)
+- {
+- case 0:
+- /* Home and Delete are the only special cases */
+- switch (a)
+- {
+- case 0x1e:
+- ro_press('k','h', 0); /* Home */
+- return;
+- case 0x7f:
+- ro_press('k','D', 0); /* Delete */
+- return;
+- case CSI:
+- {
+- /* Turn CSI into K_CSI. Untested! */
+- char_u string[3] = {CSI, KS_EXTRA, KE_CSI};
+-
+- add_to_input_buf(string, 3);
+- return;
+- }
+- default:
+- add_to_input_buf(code, 1);
+- return;
+- }
+- case 1:
+- if ((a & 0xcf) == 0xcc)
+- {
+- /* F12 pressed - pass it on (quick hack) */
+- swi(Wimp_ProcessKey, a | 0x100);
+- return;
+- }
+- base = a & 0xcf;
+- modifier = a & 0x30;
+- switch (base)
+- {
+- case 0x8a: /* Tab */
+- add_to_input_buf("\011", 1);
+- return;
+- case 0x8b: /* Copy (End) */
+- return ro_press('@', '7', modifier);
+- case 0x8c: /* Left */
+- return ro_press('k', 'l', modifier);
+- case 0x8d: /* Right */
+- return ro_press('k', 'r', modifier);
+- case 0x8e: /* Down */
+- if (modifier & 0x10)
+- return ro_press('k', 'N', modifier ^ 0x10);
+- else
+- return ro_press('k', 'd', modifier);
+- case 0x8f: /* Up */
+- if (modifier & 0x10)
+- return ro_press('k', 'P', modifier ^ 0x10);
+- else
+- return ro_press('k', 'u', modifier);
+- case 0xca: /* F10 */
+- return ro_press('k', ';', modifier);
+- case 0xcb: /* F11 */
+- return ro_press('F', '1', modifier);
+- case 0xcd: /* Insert */
+- return ro_press('k', 'I', modifier);
+- default:
+- if (base > 0x80 && base < 0x18a)
+- {
+- /* One of the other function keys */
+- return ro_press('k', '0' + (base & 15), modifier);
+- }
+- }
+- }
+- }
+-
+- /* Process a mouse event. */
+- void
+- ro_mouse(block)
+- int *block;
+- {
+- int x, y, button, vim_button;
+- int modifiers = 0;
+- int min_x, min_y; /* Visible area of editor window */
+- int max_x, max_y;
+-
+- if (block[3] != gui.window_handle || ro_dragging)
+- return; /* Not our window or ignoring clicks*/
+-
+- x = block[0]; /* Click position - screen coords */
+- y = block[1];
+- button = block[2];
+-
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- min_x = block[1];
+- min_y = block[2];
+- max_x = block[3];
+- max_y = block[4];
+-
+- if (block[3] - x < gui.scrollbar_width)
+- {
+- /* Click in that blank area under the scrollbars */
+-
+- if (button & 0x444)
+- {
+- int front_block[64];
+- /* Dragging with Select - bring window to front first */
+- front_block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, front_block);
+- front_block[7] = -1;
+- ro_open_main(front_block);
+- }
+-
+- block[0] = gui.window_handle;
+- block[1] = 7; /* Drag point */
+- block[2] = block[4] = 0; /* Coords of point. */
+- block[3] = block[5] = 0;
+- drag_x_offset = max_x - x;
+- drag_y_offset = min_y - y;
+-
+- /* Parent box. */
+- block[6] = min_x +
+- gui.scrollbar_width * 2 +
+- MIN_COLUMNS * gui.char_width;
+- block[7] = 0;
+- gui_mch_get_screen_dimensions(&block[8], &block[9]);
+- block[9] = max_y -
+- 4 * gui.char_height -
+- gui.scrollbar_height;
+-
+- swi(Wimp_DragBox, 0, block);
+- ro_dragging = DRAG_RESIZE_WINDOW;
+- drag_button = vim_button;
+- drag_modifiers = modifiers;
+- return;
+- }
+-
+- if (button & 0x111)
+- vim_button = MOUSE_RIGHT;
+- else if (button & 0x222)
+- vim_button = MOUSE_MIDDLE;
+- else
+- vim_button = MOUSE_LEFT;
+-
+- swi(OS_Byte, 121, 0x80);
+- if (r1 == 0xff)
+- modifiers |= MOUSE_SHIFT;
+- swi(OS_Byte, 121, 0x81);
+- if (r1 == 0xff)
+- modifiers |= MOUSE_CTRL;
+- swi(OS_Byte, 121, 0x82);
+- if (r1 == 0xff)
+- modifiers |= MOUSE_ALT;
+-
+- if (button == 2)
+- {
+- /* Menu click:
+- * If shift was pressed then do the paste action.
+- * If not, then open the pop-up menu.
+- */
+- modifiers ^= MOUSE_SHIFT;
+- if (modifiers && MOUSE_SHIFT)
+- {
+- vimmenu_T main;
+- /* Shift was NOT pressed - show menu */
+- main.dname = (char_u *) "Vim";
+- main.children = root_menu;
+- gui_mch_show_popupmenu(&main);
+- return;
+- }
+- }
+-
+- /* Gain the input focus */
+- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+- if (button & 0xf0)
+- {
+- /* Drag operation:
+- *
+- * Tell the Wimp to start a drag.
+- * Monitor null events.
+- */
+- block[1] = 7; /* Drag a point. */
+- block[2] = block[4] = x; /* Coords of point. */
+- block[3] = block[5] = y;
+- block[6] = 0; /* Coords of bounding box. */
+- block[7] = 0;
+- gui_mch_get_screen_dimensions(&block[8], &block[9]);
+-
+- drag_x_offset = drag_y_offset = 0;
+-
+- swi(Wimp_DragBox, 0, block);
+- ro_dragging = DRAG_SELECTION;
+- drag_button = vim_button;
+- drag_modifiers = modifiers;
+-
+- vim_button |= MOUSE_DRAG;
+- }
+-
+- gui_send_mouse_event(
+- vim_button,
+- x - min_x,
+- max_y - y,
+- button & 0xf ? TRUE : FALSE, /* dclick */
+- modifiers);
+- }
+-
+- void
+- ro_continue_drag(block)
+- int *block; /* Just used as scrap. */
+- {
+- int x, y;
+-
+- /* Get screen coords of pointer. */
+- swi(Wimp_GetPointerInfo, 0, block);
+- x = block[0] + drag_x_offset;
+- y = block[1] + drag_y_offset;
+-
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+-
+- if (ro_dragging == DRAG_RESIZE_WINDOW)
+- {
+- /* Resizing the main window. */
+- block[2] = y;
+- block[3] = x;
+- ro_open_main(block);
+- }
+- else
+- {
+- /* Selecting some text. */
+- gui_send_mouse_event(
+- drag_button | MOUSE_DRAG, /* Always report the same button */
+- x - block[1],
+- block[4] - y,
+- FALSE, /* Not a double click. */
+- drag_modifiers);
+- }
+- }
+-
+- /* User has released all mouse buttons, marking the end of a drag. */
+- void
+- ro_drag_finished(block)
+- int *block;
+- {
+- int x;
+- int y;
+- int width, height;
+-
+- /* I don't trust the box returned by Wimp_Poll; look at the pointer
+- * ourselves.
+- */
+- swi(Wimp_GetPointerInfo, 0, block);
+- x = block[0] + drag_x_offset;
+- y = block[1] + drag_y_offset;
+-
+- if (ro_dragging == DRAG_RESIZE_WINDOW)
+- {
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- block[2] = y;
+- block[3] = x;
+- ro_open_main(block);
+-
+- width = (block[3] - block[1]);
+- height = (block[4] - block[2]);
+-
+- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+- gui_resize_shell(width, height);
+- }
+- else
+- {
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- gui_send_mouse_event(
+- MOUSE_RELEASE,
+- x - block[1],
+- block[4] - y,
+- FALSE, /* not a double click */
+- drag_modifiers);
+- }
+- ro_dragging = DRAG_FALSE;
+- }
+-
+- /* Load the file/pathname given in block into a [new] buffer.
+- *
+- * Modifier Action
+- *
+- * None :confirm e <file>
+- * Ctrl :sp <file>
+- * Shift <file>
+- *
+- * Insert into typebuf, at the start.
+- * If loading from !Scrap then use saved leafname instead, and
+- * delete the scrap file. Also, ignore shift key.
+- *
+- * NB: Doesn't send DataLoadAck (other app might delete temp file?).
+- */
+- void
+- ro_dataload(block)
+- int *block;
+- {
+- char_u new_path[MAXPATHL];
+- char_u *path = ((char_u *) block) + 44;
+- int scrap = FALSE;
+-
+- if (block[3] == leaf_ref && leaf_name)
+- scrap = TRUE;
+-
+- switch (get_real_state() & 0xff)
+- {
+- case INSERT:
+- case CMDLINE:
+- case CMDLINE+LANGMAP:
+- /* For insert mode we can only insert the pathname (currently)
+- * Make sure Shift is pressed.
+- */
+- swi(OS_Byte, 121, 0x80); /* Is Shift pressed? */
+- if (r1 == 0xff)
+- {
+- ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+- ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+- ro_return_early = TRUE; /* Return even though nothing was typed. */
+- }
+- else
+- swi(Wimp_ReportError,
+- "\0\0\0\0Sorry, you can only load text in normal mode", 5, "Vim");
+- break;
+-
+- case NORMAL:
+- ro_return_early = TRUE; /* Return even though nothing was typed. */
+-
+- if (scrap) /* Remove <Wimp$Scrap>. Later. */
+- ins_typebuf(":!~remove <Wimp$Scrap>\r", REMAP_NONE, 0, TRUE, FALSE);
+-
+- /* Insert {:sp ,:confirm e }[+f\ <leaf> ]<file><CR> */
+- ins_typebuf("\r", REMAP_NONE, 0, TRUE, FALSE);
+- ins_typebuf(path, REMAP_NONE, 0, TRUE, FALSE);
+- ins_typebuf(" ", REMAP_NONE, 0, TRUE, FALSE);
+-
+- if (scrap)
+- {
+- /* Loading via !Scrap - change pathname to stored leafname */
+- ins_typebuf(leaf_name, REMAP_NONE, 0, TRUE, FALSE);
+- ins_typebuf(" +f\\ ", REMAP_NONE, 0, TRUE, FALSE);
+- leaf_ref = 0;
+- vim_free(leaf_name);
+- leaf_name = NULL;
+- }
+-
+- swi(OS_Byte, 121, 0x81); /* Is Ctrl pressed? */
+- if (r1 == 0xff)
+- /* Yes, split window */
+- ins_typebuf(":sp", REMAP_NONE, 0, TRUE, FALSE);
+- else
+- ins_typebuf(":confirm e", REMAP_NONE, 0, TRUE, FALSE);
+- break;
+-
+- default:
+- swi(Wimp_ReportError, "\0\0\0\0You can only load text in normal mode.", 5, "Vim");
+- }
+- /* Send DataSaveAck so other program doesn't think we died
+- * and delete <Wimp$Scrap>.
+- */
+- block[3] = block[2];
+- block[4] = 4;
+- swi(Wimp_SendMessage, 17, block, block[1]);
+- }
+-
+- void
+- ro_datasave(block)
+- int *block;
+- {
+- char_u *path = ((char_u *) block) + 44;
+-
+- /* Preserve the name given so we can use it, not <Wimp$Scrap> */
+- if (leaf_name)
+- vim_free(leaf_name);
+- leaf_name = vim_strsave(path);
+-
+- block[9] = -1; /* File is unsafe. */
+- strcpy(path, "<Wimp$Scrap>");
+- block[0] = 60;
+- block[3] = block[2];
+- block[4] = 2;
+- swi(Wimp_SendMessage, 17, block, block[1]);
+-
+- leaf_ref = block[2];
+- }
+-
+- void
+- ro_message(block)
+- int *block;
+- {
+- char_u *buffer;
+- long_u len;
+-
+- if (block[1] == task_handle)
+- return; /* Don't talk to ourself! */
+- switch (block[4])
+- {
+- case 0: /* Quit. */
+- if (block[4] == 0)
+- ro_quit();
+- break;
+- case 1: /* DataSave */
+- ro_datasave(block);
+- break;
+- case 2: /* DataSaveAck. */
+- if (clip_convert_selection(&buffer, &len, &clip_star) == -1)
+- return;
+-
+- /* Save the clipboard contents to a file. */
+- swi(OS_File, 10, ((char_u *) block) + 44, 0xfff, 0, buffer, buffer + len);
+-
+- /* Ack with DataLoad message. */
+- block[3] = block[2];
+- block[4] = 3;
+- block[9] = len;
+- swi(Wimp_SendMessage, 17, block, block[1]);
+-
+- vim_free(buffer);
+- break;
+- case 3: /* DataLoad */
+- ro_dataload(block);
+- break;
+- case 8: /* PreQuit */
+- ro_prequit(block);
+- break;
+- case 0xf: /* Lose clipboard. */
+- if (block[5] & 4)
+- {
+- clip_free_selection(&clip_star);
+- clip_star.owned = FALSE;
+- }
+- break;
+- case 0x10: /* DataRequest (clip_star) */
+- if (clip_star.owned)
+- {
+- int rows;
+-
+- /* Tell other program that we have the clipboard. */
+- block[0] = 52;
+- block[3] = block[2]; /* Copy myref to yourref. */
+- block[4] = 1; /* DataSave message. */
+- /* Create an estimate for the size (larger or same as true
+- * value) */
+- rows = clip_star.end.lnum - clip_star.start.lnum;
+- if (rows < 0)
+- rows = -rows;
+- block[9] = (rows + 1) * Columns + 1; /* Add one for possible
+- final newline. */
+- block[10] = 0xfff; /* Clipboard is text. */
+- strcpy( ((char_u *) block) + 44, "VimClip");
+- swi(Wimp_SendMessage, 17, block, block[1]);
+- }
+- break;
+- case 0x400c1: /* Mode change */
+- changed_mode = TRUE; /* Flag - update on next OpenWindow */
+- if (zap_redraw)
+- {
+- /* JK230798, re-initialise ZapRedraw stuff */
+- if (ro_zap_redraw_initialise() == FAIL)
+- zap_redraw = FALSE;
+- }
+- break;
+- case 0x400c3: /* TaskCloseDown */
+- if (block[1] == child_handle)
+- child_handle = 0;
+- break;
+- }
+- }
+-
+- /*
+- * Converts a scrollbar's window handle into a scrollbar pointer.
+- * NULL on failure.
+- */
+- scrollbar_T *
+- ro_find_sbar(id)
+- int id;
+- {
+- win_T *wp;
+-
+- if (gui.bottom_sbar.id == id)
+- return &gui.bottom_sbar;
+- FOR_ALL_WINDOWS(wp)
+- {
+- if (wp->w_scrollbars[SBAR_LEFT].id == id)
+- return &wp->w_scrollbars[SBAR_LEFT];
+- if (wp->w_scrollbars[SBAR_RIGHT].id == id)
+- return &wp->w_scrollbars[SBAR_RIGHT];
+- }
+- return NULL;
+- }
+-
+- void
+- scroll_to(line, sb)
+- int sb; /* Scrollbar number */
+- int line;
+- {
+- char_u code[8];
+-
+- /* Don't put events in the input queue now. */
+- if (hold_gui_events)
+- return;
+-
+- /* Send a scroll event:
+- *
+- * A scrollbar event is CSI (NOT K_SPECIAL), KS_VER_SCROLLBAR,
+- * KE_FILLER followed by:
+- * one byte representing the scrollbar number, and then four bytes
+- * representing a long_u which is the new value of the scrollbar.
+- */
+- code[0] = CSI;
+- code[1] = KS_VER_SCROLLBAR;
+- code[2] = KE_FILLER;
+- code[3] = sb;
+- code[4] = line >> 24;
+- code[5] = line >> 16;
+- code[6] = line >> 8;
+- code[7] = line;
+- add_to_input_buf(code, 8);
+- }
+-
+- void
+- h_scroll_to(col)
+- int col;
+- {
+- char_u code[8];
+-
+- /* Don't put events in the input queue now. */
+- if (hold_gui_events)
+- return;
+-
+- /* Send a scroll event:
+- *
+- * A scrollbar event is CSI (NOT K_SPECIAL)
+- *
+- * A horizontal scrollbar event is K_SPECIAL, KS_HOR_SCROLLBAR,
+- * KE_FILLER followed by four bytes representing a long_u which is the
+- * new value of the scrollbar.
+- */
+- code[0] = CSI;
+- code[1] = KS_HOR_SCROLLBAR;
+- code[2] = KE_FILLER;
+- code[4] = col >> 24;
+- code[5] = col >> 16;
+- code[6] = col >> 8;
+- code[7] = col;
+- add_to_input_buf(code, 8);
+- }
+-
+- void
+- ro_scroll(block)
+- int *block;
+- {
+- scrollbar_T *sb;
+- int offset;
+- win_T *wp;
+-
+- /* Block is ready for Wimp_OpenWindow, and also contains:
+- *
+- * +32 = scroll X direction (-2 .. +2)
+- * +36 = scroll Y direction (-2 .. +2)
+- */
+-
+- sb = ro_find_sbar(block[0]);
+- if (!sb)
+- return; /* Window not found (error). */
+-
+- wp = sb-> wp;
+-
+- if (wp == NULL)
+- {
+- /* Horizontal bar. */
+- offset = block[8];
+- if (offset == -2)
+- offset = (block[1] - block[3]) / gui.char_width;
+- else if (offset == 2)
+- offset = (block[3] - block[1]) / gui.char_width;
+-
+- block[5] += offset * gui.char_width;
+-
+- gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+-
+- swi(Wimp_OpenWindow, 0, block);
+- }
+- else
+- {
+- offset = -block[9];
+- if (offset == -2)
+- offset = -(wp -> w_height - 1);
+- else if (offset == 2)
+- offset = wp -> w_height - 1;
+-
+- /* Possibly we should reposition the scrollbar?
+- * Vim seems to update the bar anyway...
+- */
+- gui_drag_scrollbar(sb, offset - (block[6] / gui.char_height), FALSE);
+- }
+- }
+-
+- /* Move a window by a given offset. Used to simulate the function of the
+- * nested wimp.
+- */
+- void
+- ro_move_child(window, x, y, pos_wanted, pos_got)
+- int window;
+- int x,y; /* offset to move by */
+- int pos_wanted, pos_got;
+- {
+- int block[10];
+-
+- block[0] = window;
+- swi(Wimp_GetWindowState, 0, block);
+- block[1] += x;
+- block[2] += y;
+- block[3] += x;
+- block[4] += y;
+- if (pos_wanted == -1)
+- block[7] = -1;
+- else if (pos_wanted == -2)
+- block[7] = pos_got;
+- swi(Wimp_OpenWindow, 0, block);
+- }
+-
+- /* Open the main window. Also updates scrollbars if we are not
+- * using the nested Wimp.
+- * If we have just changed mode then re-read all values.
+- */
+- void
+- ro_open_main(block)
+- int *block;
+- {
+- int toggle_size;
+-
+- /* Find out if the user clicked on the toggle size icon. */
+- block[20] = block[0];
+- swi(Wimp_GetWindowState, 0, block + 20);
+- toggle_size = block[28] & (1 << 19);
+-
+- if (nested_wimp)
+- {
+- swi(Wimp_OpenWindow, 0, block);
+- }
+- else
+- {
+- int old[10];
+- int x_offset, y_offset; /* Move children same as parent. */
+- int pos_wanted, pos_got;
+- int left_bar = gui.which_scrollbars[SBAR_LEFT];
+- int right_bar = gui.which_scrollbars[SBAR_RIGHT];
+- win_T *wp;
+-
+- /* Three cases to think about:
+- * 1) Move to top. Open each window at the top.
+- * 2) Same stack position. Open each with same position.
+- * 3) Open at bottom. Open children with parent's new position.
+- */
+-
+- old[0] = block[0];
+- swi(Wimp_GetWindowState, 0, old);
+- pos_wanted = block[7];
+- swi(Wimp_OpenWindow, 0, block);
+- /* Block updated by OpenWindow? I don't think so! */
+- swi(Wimp_GetWindowState, 0, block);
+- pos_got = block[7];
+-
+- x_offset = block[1] - old[1];
+- y_offset = block[4] - old[4];
+- if (x_offset || y_offset || pos_wanted == -1 || pos_wanted == -2)
+- {
+- /* If parent has moved, re-open all the child windows. */
+- FOR_ALL_WINDOWS(wp)
+- {
+- /* Reopen scrollbars for this window. */
+- if (left_bar)
+- ro_move_child(wp -> w_scrollbars[SBAR_LEFT].id,
+- x_offset, y_offset,
+- pos_wanted, pos_got);
+- if (right_bar)
+- ro_move_child(wp -> w_scrollbars[SBAR_RIGHT].id,
+- x_offset, y_offset,
+- pos_wanted, pos_got);
+- }
+- }
+- }
+- if (changed_mode || toggle_size)
+- {
+- int width, height;
+-
+- if (changed_mode)
+- ro_measure_tools();
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+-
+- width = block[3] - block[1];
+- height = block[4] - block[2];
+- swi(Wimp_ForceRedraw, gui.window_handle, 0, -height, width, 0);
+- gui_resize_shell(width, height);
+- changed_mode = FALSE;
+- }
+- }
+-
+- void
+- ro_open_window(block)
+- int *block;
+- {
+- int pos;
+- scrollbar_T *sb;
+-
+- if (block[0] == gui.window_handle)
+- ro_open_main(block);
+- else
+- {
+- swi(Wimp_OpenWindow, 0, block);
+- if (block[0] != gui.window_handle)
+- {
+- sb = ro_find_sbar(block[0]);
+- if (sb)
+- {
+- if (sb-> wp != NULL)
+- gui_drag_scrollbar(sb, -block[6] / gui.char_height, FALSE);
+- else
+- gui_drag_scrollbar(sb, block[5] / gui.char_width, FALSE);
+- }
+- }
+- }
+- }
+-
+- void
+- ro_menu_selection(block)
+- int *block;
+- {
+- int *item = wimp_menu + 7;
+- vimmenu_T *menu;
+- /* wimp_menu points to a wimp menu structure */
+-
+- for (;;)
+- {
+- while (block[0]--)
+- item += 6;
+- if (block[1] == -1)
+- break;
+- item = ((int *) item[1]) + 7;
+- block++;
+- }
+- /* item points to the wimp menu item structure chosen */
+- menu = (vimmenu_T *) item[5];
+-
+- swi(Wimp_GetPointerInfo, 0, block);
+- if (block[2] == 1)
+- /* Adjust used - keep menu open */
+- swi(Wimp_CreateMenu, 0, wimp_menu);
+-
+- if (menu-> cb)
+- menu-> cb(menu);
+- }
+-
+- void
+- ro_open_parent()
+- {
+- int head;
+- char_u *i = curbuf-> b_ffname;
+- char_u buffer[256];
+-
+- head = 0;
+- for (; *i; i++)
+- {
+- if (*i == '.')
+- head = i - curbuf-> b_ffname;
+- }
+-
+- /* Append head chars to buffer */
+- if (head < 240 && curbuf-> b_ffname && head)
+- {
+- strcpy(buffer, "%filer_opendir ");
+- strncpy(buffer + 15, curbuf-> b_ffname, head);
+- buffer[15 + head] = '\0';
+- swi(OS_CLI, buffer);
+- }
+- }
+-
+- void
+- process_event(event, block)
+- int event;
+- int *block;
+- {
+- switch (event)
+- {
+- case 0: /* Nothing - update drag state. */
+- if (ro_dragging)
+- ro_continue_drag(block);
+- break;
+- case 1: /* Redraw window. */
+- redraw_window(block);
+- break;
+- case 2: /* Open window. */
+- ro_open_window(block);
+- break;
+- case 3: /* Close window. */
+- swi(Wimp_GetPointerInfo, 0, block + 1);
+- if (block[3] == 1)
+- ro_open_parent();
+- else
+- if (ro_ok_to_quit())
+- ro_quit();
+- break;
+- case 6: /* Mouse click. */
+- ro_mouse(block);
+- break;
+- case 7: /* Finished drag. */
+- ro_drag_finished(block);
+- break;
+- case 8: /* Key pressed. */
+- ro_insert_key((char_u *) &block[6]);
+- break;
+- case 9:
+- ro_menu_selection(block);
+- break;
+- case 10: /* Scroll request. */
+- ro_scroll(block);
+- break;
+- case 11: /* Lose caret. */
+- if (block[0] == gui.window_handle)
+- gui_focus_change(FALSE);
+- break;
+- case 12: /* Gain caret. */
+- if (block[0] == gui.window_handle)
+- gui_focus_change(TRUE);
+- break;
+- case 17: /* User message. */
+- case 18: /* User message recorded. */
+- ro_message(block);
+- break;
+- }
+- }
+-
+- /*
+- * GUI input routine called by gui_wait_for_chars(). Waits for a character
+- * from the keyboard.
+- * wtime == -1 Wait forever.
+- * wtime == 0 This should never happen.
+- * wtime > 0 Wait wtime milliseconds for a character.
+- * Returns OK if a character was found to be available within the given time,
+- * or FAIL otherwise.
+- */
+- int
+- gui_mch_wait_for_chars(long wtime)
+- {
+- int block[64];
+- int reason;
+- int start_time = -1;
+- int ctime = wtime / 10; /* delay in cs */
+-
+- if (wtime != -1)
+- {
+- swi(OS_ReadMonotonicTime);
+- start_time = r0;
+- }
+-
+- for (;;)
+- {
+- if (ro_dragging)
+- reason = wimp_poll(0, block); /* Always return immediately */
+- else if (wtime == -1)
+- reason = wimp_poll(1, block);
+- else
+- reason = wimp_pollidle(0, block, start_time + ctime);
+-
+- process_event(reason, block);
+-
+- if (input_available() || ro_return_early)
+- {
+- ro_return_early = FALSE;
+- return OK; /* There is something to process (key / menu event) */
+- }
+-
+- if (wtime != -1)
+- {
+- swi(OS_ReadMonotonicTime);
+- if (r0 - start_time > ctime)
+- return FAIL; /* We've been waiting too long - return failure */
+- }
+- }
+- }
+-
+- /* Flush any output to the screen */
+- void
+- gui_mch_flush(void)
+- {
+- }
+-
+- /*
+- * Clear a rectangular region of the screen from text pos(row1, col1) to
+- * (row2, col2) inclusive.
+- */
+- void
+- gui_mch_clear_block(int row1, int col1, int row2, int col2)
+- {
+- swi(ColourTrans_ReturnGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+- plot_rectangle(96 + 5, r0,
+- FILL_X(col1), -FILL_Y(row2 + 1),
+- FILL_X(col2 + 1), -FILL_Y(row1));
+- }
+-
+- void
+- gui_mch_clear_all(void)
+- {
+- if (redraw_block)
+- {
+- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+- swi(OS_WriteI + 16);
+- }
+- else
+- {
+- int block[44];
+- block[0] = gui.window_handle;
+- block[1] = 0;
+- block[2] = -gui.num_rows * gui.char_height;
+- block[3] = gui.num_cols * gui.char_width;
+- block[4] = 0;
+- swi(Wimp_UpdateWindow, 0, block);
+- while (r0)
+- {
+- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 1<<7, 0);
+- swi(OS_WriteI + 16);
+- swi(Wimp_GetRectangle, 0, block);
+- }
+- }
+- }
+-
+- /*
+- * Delete the given number of lines from the given row, scrolling up any
+- * text further down within the scroll region.
+- */
+- void
+- gui_mch_delete_lines(int row, int num_lines)
+- {
+- int top_from = -row - num_lines;
+- int bot_from = -gui.scroll_region_bot - 1;
+- int bot_to = bot_from + num_lines;
+-
+- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+-
+- /* Changed without checking! */
+- swi(Wimp_BlockCopy, gui.window_handle,
+- gui.scroll_region_left * gui.char_width,
+- bot_from * gui.char_height,
+- (gui.scroll_region_right - gui.scroll_region_left
+- + 1) * gui.char_width,
+- top_from * gui.char_height,
+-
+- gui.scroll_region_left * gui.char_width,
+- bot_to * gui.char_height);
+-
+- gui_clear_block(gui.scroll_region_bot - num_lines + 1,
+- gui.scroll_region_left,
+- gui.scroll_region_bot, gui.scroll_region_right);
+- }
+-
+- /*
+- * Insert the given number of lines before the given row, scrolling down any
+- * following text within the scroll region.
+- */
+- void
+- gui_mch_insert_lines(int row, int num_lines)
+- {
+- int top_from = -row;
+- int bot_to = -gui.scroll_region_bot - 1;
+- int bot_from = bot_to + num_lines;
+-
+- swi(ColourTrans_SetGCOL, gui.back_pixel << 8, 0, 0, 0x80, 0);
+-
+- swi(Wimp_BlockCopy, gui.window_handle,
+- gui.scroll_region_left * gui.char_width,
+- bot_from * gui.char_height,
+- (gui.scroll_region_right - gui.scroll_region_left
+- + 1) * gui.char_width,
+- top_from * gui.char_height,
+-
+- gui.scroll_region_left * gui.char_width,
+- bot_to * gui.char_height);
+-
+- gui_clear_block(row, gui.scroll_region_left,
+- row + num_lines - 1, gui.scroll_region_right);
+- }
+-
+- /* Put selection in clipboard buffer.
+- * Should we become the new owner?
+- */
+- void
+- clip_mch_request_selection(VimClipboard *cbd)
+- {
+- int block[64]; /* Will be used in Wimp_Poll. */
+- int reason;
+- char_u *buffer;
+- long_u length;
+-
+- block[0] = 48; /* Size of block. */
+- block[3] = 0; /* Original message. */
+- block[4] = 0x10; /* Data request. */
+- block[5] = gui.window_handle;
+- block[6] = RO_LOAD_CLIPBOARD; /* Internal handle. */
+- block[7] = block[8] = 0; /* (x,y) not used. */
+- block[9] = 4;
+- block[10] = 0xfff; /* We want text files if possible, I think. */
+- block[11] = -1; /* End of list. */
+- swi(Wimp_SendMessage, 17, block, 0); /* Broadcast request. */
+-
+- /* OK, we've sent the request. Poll until we get a null poll (failure) or
+- * we load the clipboard.
+- * If we receive a DataSave event with icon handle = -2 then put it on the
+- * clipboard. RISC OS should ensure that key events will not be delivered
+- * until the clipboard operation completes (unless the owner starts idling
+- * - we can't wait forever!).
+- */
+- for (;;)
+- {
+- reason = wimp_poll(0, block);
+- if (reason == 0)
+- return; /* Failed to get clipboard. */
+- if ((reason == 17 || reason == 18) &&
+- block[4] == 1 && block[6] == RO_LOAD_CLIPBOARD)
+- break; /* Got it - stop waiting. */
+- process_event(reason, block);
+- if (ro_return_early)
+- return;
+- }
+- /* Tell owner to save data in <Wimp$Scrap>. */
+- block[0] = 60;
+- block[3] = block[2]; /* Copy myref -> yourref */
+- block[4] = 2; /* DataSaveAck. */
+- block[9] = -1; /* Data is unsafe. */
+- strcpy( ((char_u *) block) + 44, "<Wimp$Scrap>");
+- swi(Wimp_SendMessage, 17, block, block[1]);
+-
+- /* Wait again for reply. */
+- for (;;)
+- {
+- reason = wimp_poll(0, block);
+- if (reason == 0)
+- return; /* Other program has given up! */
+- if ((reason == 17 || reason == 18) && block[4] == 3 && block[6] == RO_LOAD_CLIPBOARD)
+- break; /* Clipboard data saved to <Wimp$Scrap> */
+- process_event(reason, block);
+- if (ro_return_early)
+- return;
+- }
+-
+- /* <Wimp$Scrap> contains clipboard - load it. */
+- if (xswi(OS_File, 17, "<Wimp$Scrap>") & v_flag)
+- return; /* Error! */
+- if (r0 != 1 && r0 != 3)
+- return;
+- length = r4;
+-
+- buffer = lalloc(length, TRUE); /* Claim memory (and report errors). */
+- if (buffer == NULL)
+- return;
+-
+- if (xswi(OS_File, 16, "<Wimp$Scrap>", buffer, 0) & v_flag)
+- return;
+-
+- clip_yank_selection(MCHAR, buffer, length, cbd);
+-
+- vim_free(buffer);
+-
+- swi(OS_FSControl, 27, "<Wimp$Scrap>", 0, 0); /* Delete temp file. */
+-
+- block[4] = 4; /* Send DataLoadAck. */
+- block[3] = block[2]; /* Copy myref -> yourref. */
+- swi(Wimp_SendMessage, 17, block, block[1]);
+- }
+-
+- /* Not sure what this means under RISC OS. */
+- void
+- clip_mch_lose_selection(VimClipboard *cbd)
+- {
+- }
+-
+- /* Tell everyone that we now own the clipboard.
+- * Return OK if our claim is accepted (always, under RISC OS)
+- */
+- int
+- clip_mch_own_selection(VimClipboard *cbd)
+- {
+- int block[6];
+- block[0] = 24; /* Length of block. */
+- block[3] = 0; /* Original message. */
+- block[4] = 0xf; /* ClaimEntity. */
+- block[5] = 0x4; /* Claim clipboard only. */
+- swi(Wimp_SendMessage, 17, block, 0);
+- return OK;
+- }
+-
+- /*
+- * Send the current selection to the clipboard. Do nothing for X because we
+- * will fill in the selection only when requested by another app. Sounds good
+- * for RISC OS too.
+- */
+- void
+- clip_mch_set_selection(VimClipboard *cbd)
+- {
+- clip_get_selection(cbd);
+- }
+-
+- /*
+- * Make a menu either grey or not grey.
+- */
+- void
+- gui_mch_menu_grey(vimmenu_T *menu, int grey)
+- {
+- menu-> greyed_out = grey;
+- }
+-
+- /*
+- * Make menu item hidden or not hidden
+- */
+- void
+- gui_mch_menu_hidden(vimmenu_T *menu, int hidden)
+- {
+- menu-> hidden = hidden;
+- }
+-
+- /*
+- * This is called after setting all the menus to grey/hidden or not.
+- */
+- void
+- gui_mch_draw_menubar(void)
+- {
+- swi(Wimp_CreateMenu, 0, -1);
+- if (wimp_menu != (int *) -1)
+- {
+- ro_remove_menu(wimp_menu);
+- wimp_menu = (int *) -1;
+- }
+- }
+-
+- /* Add or remove a scrollbar. Note that this is only called when
+- * the scrollbar state is changing.
+- * The scroll bar window has already been created.
+- * We can't do anything except remove the scroll bar
+- * until we know what size to use.
+- */
+- void
+- gui_mch_enable_scrollbar(sb, flag)
+- scrollbar_T *sb;
+- int flag;
+- {
+- if (!flag)
+- swi(Wimp_CloseWindow, 0, & (sb->id) );
+- return;
+- }
+-
+- void
+- gui_mch_set_blinking(long waittime, long on, long off)
+- {
+- }
+-
+- /*
+- * Stop the cursor blinking. Show the cursor if it wasn't shown.
+- */
+- void
+- gui_mch_stop_blink(void)
+- {
+- }
+-
+- /*
+- * Start the cursor blinking. If it was already blinking, this restarts the
+- * waiting time and shows the cursor.
+- */
+- void
+- gui_mch_start_blink(void)
+- {
+- }
+-
+- /*
+- * Return the RGB value of a pixel as a long.
+- */
+- long_u
+- gui_mch_get_rgb(guicolor_T pixel)
+- {
+- return (long_u)pixel;
+- }
+-
+- void
+- gui_mch_set_text_area_pos(int x, int y, int w, int h)
+- {
+- }
+-
+- void
+- gui_mch_enable_menu(int flag)
+- {
+- }
+-
+- void
+- gui_mch_set_menu_pos(int x, int y, int w, int h)
+- {
+- }
+-
+- void
+- gui_mch_add_menu(vimmenu_T *menu, int idx)
+- {
+- }
+-
+- void
+- gui_mch_add_menu_item(vimmenu_T *menu, int idx)
+- {
+- }
+-
+- void
+- gui_mch_new_menu_colors(void)
+- {
+- }
+-
+- void
+- gui_mch_destroy_menu(vimmenu_T *menu)
+- {
+- }
+-
+- /* Size of buffer has changed.
+- * Add one to max since gui.c subtracts one more than it should!
+- */
+- void
+- gui_mch_set_scrollbar_thumb(sb, val, size, max)
+- scrollbar_T *sb;
+- long val;
+- long size;
+- long max;
+- {
+- int block[10], width, height;
+-
+- width = (max + 1) * gui.char_width;
+- height = (max + 1 + W_STATUS_HEIGHT(sb->wp)) * gui.char_height;
+-
+- block[0] = block[3] = 0;
+- block[1] = -height + (1 << y_eigen_factor);
+- block[2] = width;
+-
+- swi(Wimp_SetExtent, sb -> id, block);
+-
+- block[0] = sb -> id;
+- swi(Wimp_GetWindowState, 0, block);
+- block[5] = val * gui.char_width;
+- block[6] = -val * gui.char_height;
+- swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+- gui.window_handle, /* Parent window handle. */
+- (CHILD_FIX_TO_RIGHT << CHILD_LEFT ) |
+- (CHILD_FIX_TO_RIGHT << CHILD_RIGHT ) |
+- (CHILD_FIX_TO_BOTTOM << CHILD_TOP ) |
+- (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM) |
+- (CHILD_SELF_SCROLL << CHILD_SCROLL_X) |
+- (CHILD_SELF_SCROLL << CHILD_SCROLL_Y)
+- );
+- }
+-
+- /* Set the position of the scrollbar within the editor
+- * window. Note that, for vertical scrollbars, x and w
+- * are ignored. For horizontal bars y and h are ignored.
+- */
+- void
+- gui_mch_set_scrollbar_pos(sb, x, y, w, h)
+- scrollbar_T *sb;
+- int x; /* Horizontal sb position */
+- int y; /* Top of scroll bar */
+- int w; /* Width */
+- int h; /* Height */
+- {
+- int block[24];
+- int px1, py1; /* Parent window min coords */
+- int px2, py2; /* Parent window max coords */
+-
+- /* Find where the parent window is. */
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- px1 = block[1];
+- py1 = block[2];
+- px2 = block[3];
+- py2 = block[4];
+-
+- block[0] = sb -> id;
+-
+- /* Find out how big the scroll window is at the moment. */
+- swi(Wimp_GetWindowInfo, 0, ((char_u *)block) + 1);
+-
+- if (block[13] < w || block[12] > -h)
+- {
+- /* Current window is too small! */
+- if (block[12] > -h)
+- block[12] = -h;
+- if (block[13] < w)
+- block[13] = w;
+- swi(Wimp_SetExtent, block[0], block + 11);
+- }
+-
+- /* This works better on the nested_wimp. */
+- if (sb-> wp)
+- {
+- /* This is a vertical scrollbar. */
+- block[1] = block[3] = px2 - gui.scrollbar_width + (1 << x_eigen_factor);
+- block[2] = 1 + py2 - (y + h) + (1 << y_eigen_factor);
+- block[4] = 1 + py2 - y;
+- }
+- else
+- {
+- /* This is a horizontal scrollbar. */
+- block[2] = block[4] = py1 + gui.scrollbar_height;
+- block[1] = px1;
+- block[3] = px2 - gui.scrollbar_width;
+- }
+-
+- block[5] = 0;
+- block[6] = 0;
+- block[7] = -1;
+-
+- swi(Wimp_OpenWindow, 0, block, 0x4b534154,
+- gui.window_handle, /* Parent window handle. */
+- (CHILD_FIX_TO_RIGHT << CHILD_LEFT ) |
+- (CHILD_FIX_TO_RIGHT << CHILD_RIGHT ) |
+- (CHILD_FIX_TO_BOTTOM << CHILD_TOP ) |
+- (CHILD_FIX_TO_BOTTOM << CHILD_BOTTOM) |
+- (CHILD_SELF_SCROLL << CHILD_SCROLL_X) |
+- (CHILD_SELF_SCROLL << CHILD_SCROLL_Y)
+- );
+- }
+-
+- /* Create a window with no workarea to place inside editor window.
+- * (what happens without the nested wimp?)
+- * Data for scrollbar is invalid.
+- */
+- void
+- gui_mch_create_scrollbar(sb, orient)
+- scrollbar_T *sb;
+- int orient; /* orient is SBAR_HORIZ or SBAR_VERT */
+- {
+- int bar[] =
+- {
+- 0, 0, /* Visible area : min X,Y */
+- 100, 100, /* max X,Y */
+- 0, 0, /* Scroll offsets */
+- -1, /* Window in front */
+- 0x80800150 | (orient == SBAR_HORIZ ? (1 << 30) : (1 << 28)),
+- 0xff070207, /* Colours */
+- 0x000c0103, /* More colours */
+- 0, -0x4000, /* Workarea extent */
+- 0x4000, 0, /* max X,Y */
+- 0x00000000, /* No title */
+- 0 << 12, /* No workarea button type */
+- 1, /* Wimp sprite area */
+- 0x00010001, /* Minimum width, height */
+- 0, 0, 0, /* Title data (none) */
+- 0 /* No icons */
+- };
+- swi(Wimp_CreateWindow, 0, bar);
+- sb -> id = r0;
+- }
+-
+- #if defined(FEAT_WINDOWS) || defined(PROTO)
+- void
+- gui_mch_destroy_scrollbar(scrollbar_T *sb)
+- {
+- swi(Wimp_DeleteWindow, 0, & (sb->id));
+- sb -> id = -1;
+- }
+- #endif
+-
+- void
+- gui_mch_set_scrollbar_colors(scrollbar_T *sb)
+- {
+- /* Always use default RO colour scheme. */
+- }
+-
+- /*
+- * Get current mouse coordinates in text window.
+- * Note: (0,0) is the bottom left corner, positive y is UP.
+- */
+- void
+- gui_mch_getmouse(x, y)
+- int *x;
+- int *y;
+- {
+- int left;
+- int top;
+- int block[10];
+-
+- block[0] = gui.window_handle;
+- swi(Wimp_GetWindowState, 0, block);
+- left = block[1];
+- top = block[4];
+-
+- swi(Wimp_GetPointerInfo, 0, block);
+- *x = block[0] - left;
+- *y = top - block[1];
+- }
+-
+- /* MouseTo(x, y) */
+- void
+- gui_mch_setmouse(x, y)
+- int x;
+- int y;
+- {
+- }
+-
+- void
+- gui_mch_toggle_tearoffs(enable)
+- int enable;
+- {
+- /* no tearoff menus */
+- }
+-
+- /* Redraw a window's title.
+- * For the nested wimp we use the new 'redraw-title-bar' reason code.
+- * For older wimps we mark the area of the screen where the title bar
+- * is as invalid.
+- */
+- void
+- ro_redraw_title(window)
+- int window;
+- {
+- if (nested_wimp)
+- {
+- swi(Wimp_ForceRedraw, window, 0x4b534154, 3);
+- }
+- else
+- {
+- int block[10];
+- int miny;
+-
+- block[0] = window;
+- swi(Wimp_GetWindowState, 0, block);
+- miny = block[4];
+- swi(Wimp_GetWindowOutline, 0, block);
+- swi(Wimp_ForceRedraw, -1,
+- block[1], miny,
+- block[3], block[4]);
+- }
+- }
+-
+- /* Turn a vimmenu_T structure into a wimp menu structure.
+- * -1 if resulting menu is empty.
+- * Only the children and dname items in the root menu are used.
+- */
+- int *
+- ro_build_menu(menu)
+- vimmenu_T *menu;
+- {
+- int *wimp_menu;
+- int width = 4;
+- int w;
+- int size = 28;
+- vimmenu_T *item;
+- int *wimp_item;
+-
+- /* Find out how big the menu is so we can allocate memory for it */
+- for (item = menu-> children; item; item = item-> next)
+- {
+- if (item-> hidden == FALSE && !menu_is_separator(item->name))
+- size += 24;
+- }
+-
+- if (size <= 28)
+- return (int *) -1; /* No children - shouldn't happen */
+-
+- wimp_menu = (int *) alloc(size);
+-
+- wimp_menu[0] = (int) menu-> dname;
+- wimp_menu[1] = -1;
+- wimp_menu[2] = 0;
+- wimp_menu[3] = 0x00070207;
+- wimp_menu[5] = 44;
+- wimp_menu[6] = 0;
+-
+- wimp_item = wimp_menu + 7;
+-
+- for (item = menu-> children; item; item = item-> next)
+- {
+- if (menu_is_separator(item-> name))
+- {
+- /* This menu entry is actually a separator. If it is not the first
+- * menu entry then mark the previous menu item as needing a dotted
+- * line after it.
+- */
+- if (wimp_item > wimp_menu + 7)
+- wimp_item[-6] |= 0x2;
+- }
+- else if (item-> hidden == FALSE)
+- {
+- wimp_item[0] = 0;
+- wimp_item[1] = item-> children ? (int) ro_build_menu(item) : -1;
+- wimp_item[2] = 0x07009131 | (item-> greyed_out << 22);
+- wimp_item[3] = (int) item-> dname;
+- wimp_item[4] = -1;
+- wimp_item[5] = (int) item; /* Stuff the menu address in this unused space */
+-
+- w = strlen(item-> dname) + 1;
+- if (w > width)
+- width = w;
+- wimp_item += 6;
+- }
+- }
+-
+- wimp_menu[4] = (width + 2) * 16;
+- wimp_menu[7] |= 0x100; /* Menu title is indirected */
+- wimp_item[-6] |= 0x080; /* Last entry in menu */
+- return wimp_menu;
+- }
+-
+- static void
+- ro_remove_menu(menu)
+- int *menu;
+- {
+- int *item = menu + 7;
+-
+- if (menu == NULL || menu == (int *) -1)
+- return;
+-
+- for (;;)
+- {
+- if (item[1] != -1)
+- ro_remove_menu((int *) item[1]); /* Remove sub-menu */
+- if (item[0] & 0x80)
+- break; /* This was the last entry */
+- item += 6;
+- }
+- vim_free(menu);
+- }
+-
+- void
+- gui_mch_show_popupmenu(menu)
+- vimmenu_T *menu;
+- {
+- int block[10];
+-
+- /* Remove the existing menu, if any */
+- if (wimp_menu != (int *) -1)
+- {
+- swi(Wimp_CreateMenu, 0, -1);
+- ro_remove_menu(wimp_menu);
+- wimp_menu = (int *) -1;
+- }
+-
+- wimp_menu = ro_build_menu(menu);
+- if (wimp_menu != (int *) -1)
+- {
+- swi(Wimp_GetPointerInfo, 0, block);
+- swi(Wimp_CreateMenu, 0, wimp_menu, block[0] - 64, block[1] + 64);
+- }
+- }
+-
+- /* Run a command using the TaskWindow module.
+- * If SHELL_FILTER is set then output is not echoed to the screen,
+- * If it is not set, then \r is not sent to the output file.
+- */
+- int
+- gui_mch_call_shell(cmd, options)
+- char_u *cmd;
+- int options; /* SHELL_FILTER if called by do_filter() */
+- /* SHELL_COOKED if term needs cooked mode */
+- {
+- char_u task_cmd[256]; /* Contains *TaskWindow command. */
+- int block[64];
+- int reason;
+- char_u *out;
+- char_u c;
+- int old_msg_col;
+- char_u *out_redir;
+- int length;
+- FILE *out_file = NULL;
+-
+- out_redir = strstr(cmd, " > ");
+- if (out_redir == NULL)
+- length = strlen(cmd); /* No redirection. */
+- else
+- {
+- length = out_redir - cmd;
+- out_file = fopen(out_redir + 3, "wb");
+- if (out_file == NULL)
+- smsg("WARNING : Can't open file %s for writing\n", out_redir + 3);
+- }
+-
+- if (length > 180)
+- {
+- if (out_file)
+- fclose(out_file);
+- return FAIL; /* Command too long. */
+- }
+-
+- strcpy(task_cmd, "TaskWindow \"");
+- strncpy(task_cmd + 12, cmd, length);
+- sprintf(task_cmd + 12 + length,
+- "\" -task &%08x -ctrl -quit -name \"Vim command\"",
+- task_handle);
+-
+- if (options & SHELL_COOKED)
+- settmode(TMODE_COOK);
+-
+- if (xswi(Wimp_StartTask, task_cmd) & v_flag)
+- {
+- /* Failed to even start a new task (out of memory?) */
+- settmode(TMODE_RAW);
+- if (out_file)
+- fclose(out_file);
+- return FAIL;
+- }
+-
+- /* Wait for the child process to initialise. */
+- child_handle = 0;
+- while (!child_handle)
+- {
+- reason = wimp_poll(0, block);
+- if ((reason == 17 || reason == 18) && block[4] == 0x808c2)
+- child_handle = block[1];
+- else
+- process_event(reason, block);
+- }
+-
+- /* Block until finished */
+- while (child_handle)
+- {
+- reason = wimp_poll(1, block);
+- if (reason == 3 || (reason == 8 && block[6] == 3))
+- {
+- /* Close window request or CTRL-C - kill child task. */
+- block[0] = 20;
+- block[3] = 0;
+- block[4] = 0x808c4; /* Morite */
+- swi(Wimp_SendMessage, 17, block, child_handle);
+- MSG_PUTS(_("\nSending message to terminate child process.\n"));
+- continue;
+- }
+- else if (reason == 8)
+- {
+- block[0] = 28;
+- block[3] = 0;
+- block[4] = 0x808c0; /* Input */
+- block[5] = 1;
+- /* Block[6] is OK as it is! */
+- swi(Wimp_SendMessage, 17, block, child_handle);
+- continue;
+- }
+- else if (reason == 17 || reason == 18)
+- {
+- if (block[4] == 0x808c1)
+- {
+- /* Ack message. */
+- block[3] = block[2];
+- swi(Wimp_SendMessage, 19, block, block[1]);
+- out = (char_u *)block + 24;
+- old_msg_col = msg_col;
+- while (block[5]--)
+- {
+- c = *out++;
+- if (out_file && (c != '\r' || (options & SHELL_FILTER)))
+- fputc(c, out_file);
+- if ((options & SHELL_FILTER) == 0)
+- {
+- if (c == 127)
+- msg_puts("\b \b");
+- else if (c > 31)
+- msg_putchar(c);
+- else if (c == 10)
+- {
+- lines_left = 8; /* Don't do More prompt! */
+- msg_putchar(10);
+- }
+- }
+- }
+- /* Flush output to the screen. */
+- windgoto(msg_row, msg_col);
+- out_flush();
+- continue;
+- }
+- }
+- process_event(reason, block);
+- }
+- msg_putchar('\n');
+- settmode(TMODE_RAW);
+- if (out_file)
+- fclose(out_file);
+- return OK;
+- }
+-
+- /* Like strsave(), but stops at any control char */
+- char_u *
+- wimp_strsave(str)
+- char *str;
+- {
+- int strlen = 0;
+- char_u *retval;
+- while (str[strlen] > 31)
+- strlen++;
+- retval = alloc(strlen + 1);
+- if (retval)
+- {
+- memcpy(retval, str, strlen);
+- retval[strlen] = '\0';
+- }
+- return retval;
+- }
+-
+- /* If we are saving then pop up a standard RISC OS save box.
+- * Otherwise, open a directory viewer on the given directory (and return NULL)
+- * The string we return will be freed later.
+- */
+- char_u *
+- gui_mch_browse(saving, title, dflt, ext, initdir, filter)
+- int saving; /* write action */
+- char_u *title; /* title for the window */
+- char_u *dflt; /* default file name */
+- char_u *ext; /* extension added */
+- char_u *initdir; /* initial directory, NULL for current dir */
+- char_u *filter; /* file name filter */
+- {
+- char command[256];
+- int length;
+-
+- if (saving)
+- {
+- int block[64];
+- int reason;
+- int done_save = FALSE;
+- char_u *retval = NULL;
+- char_u *sprname;
+- char_u *fname;
+- int dragging_icon = FALSE;
+- int filetype;
+-
+- if (!dflt)
+- dflt = "TextFile";
+-
+- block[0] = save_window;
+- block[1] = 0;
+- swi(Wimp_GetIconState, 0, block);
+- sprname = ((char_u *) block[7]);
+- block[1] = 1;
+- swi(Wimp_GetIconState, 0, block);
+- fname = ((char *) block[7]);
+- strncpy(fname, dflt, 255);
+-
+- if (xswi(OS_FSControl, 31, curbuf->b_p_oft) & v_flag)
+- {
+- filetype = 0xfff;
+- strcpy(sprname + 5, "xxx");
+- }
+- else
+- {
+- filetype = r2;
+- sprintf(sprname + 5, "%03x", filetype);
+- }
+-
+- /* Open the save box */
+-
+- swi(Wimp_GetPointerInfo, 0, block);
+- swi(Wimp_CreateMenu, 0, save_window, block[0] - 64, block[1] + 64);
+- swi(Wimp_SetCaretPosition, save_window, 1, 0, 0, -1, -1);
+-
+- while (!done_save)
+- {
+- reason = wimp_poll(1, block);
+- switch (reason)
+- {
+- case 1:
+- redraw_window(block);
+- break;
+- case 2:
+- if (block[0] == save_window)
+- swi(Wimp_OpenWindow, 0, block);
+- else
+- ro_open_window(block);
+- break;
+- case 3:
+- done_save = TRUE;
+- break;
+- case 6:
+- if (block[3] != save_window)
+- done_save = TRUE;
+- else
+- {
+- int drag_box[4];
+- int min_x, max_y;
+-
+- switch (block[4])
+- {
+- case 0: /* Start drag */
+- block[0] = save_window;
+- swi(Wimp_GetWindowState, 0, block);
+- min_x = block[1];
+- max_y = block[4];
+- block[1] = 0;
+- swi(Wimp_GetIconState, 0, block);
+- drag_box[0] = block[2] + min_x;
+- drag_box[1] = block[3] + max_y;
+- drag_box[2] = block[4] + min_x;
+- drag_box[3] = block[5] + max_y;
+-
+- swi(DragASprite_Start,
+- 0x45,
+- 1,
+- sprname,
+- drag_box);
+- dragging_icon = TRUE;
+- break;
+- case 2: /* OK */
+- retval = wimp_strsave(fname);
+- done_save = TRUE;
+- break;
+- case 3: /* Cancel */
+- done_save = TRUE;
+- break;
+- }
+- }
+- break;
+- case 7:
+- if (dragging_icon)
+- {
+- int len = 0;
+-
+- dragging_icon = FALSE;
+- swi(Wimp_GetPointerInfo, 0, block);
+- block[5] = block[3];
+- block[6] = block[4];
+- block[7] = block[0];
+- block[8] = block[1];
+- block[9] = 0; /* Don't know the size */
+- block[10] = filetype;
+-
+- while (fname[len] > 31)
+- {
+- if (fname[len] == '.')
+- {
+- fname += len + 1;
+- len = 0;
+- }
+- else
+- len++;
+- }
+- if (len > 211)
+- len = 211;
+-
+- memcpy(((char_u *) block) + 44, fname, len);
+- ((char_u *)block)[44 + len] = '\0';
+-
+- block[0] = (len + 48) & 0xfc;
+- block[3] = 0;
+- block[4] = 1; /* DataSave */
+-
+- swi(Wimp_SendMessage, 17, block, block[5], block[6]);
+- }
+- else
+- ro_drag_finished(block);
+- break;
+- case 8:
+- if (block[6] == 13)
+- {
+- retval = wimp_strsave(fname);
+- done_save = TRUE;
+- }
+- else if (block[6] == 0x1b)
+- done_save = TRUE;
+- else
+- swi(Wimp_ProcessKey, block[6]);
+- break;
+- case 17:
+- case 18:
+- if (block[4] == 2 && block[9] != -1)
+- {
+- /* DataSaveAck from dragging icon. */
+- retval = wimp_strsave(((char_u *) block) + 44);
+- done_save = TRUE;
+- }
+- else if (block[4] == 0x400c9)
+- {
+- /* MenusDeleted */
+- done_save = TRUE;
+- }
+- else
+- ro_message(block);
+- break;
+- }
+- }
+- block[0] = save_window;
+- swi(Wimp_CloseWindow, 0, block);
+- swi(Wimp_GetCaretPosition, 0, block);
+- if (block[0] == -1)
+- swi(Wimp_SetCaretPosition, gui.window_handle, -1, 0, 0, -1, -1);
+-
+- return retval;
+- }
+- else if (initdir)
+- {
+- /* Open a directory viewer */
+- length = strlen(initdir);
+-
+- if (length > 240)
+- return NULL; /* Path too long! */
+-
+- length = sprintf(command, "Filer_OpenDir %s", initdir);
+- while (command[length - 1] == '.')
+- length--;
+- command[length] = '\0';
+- swi(OS_CLI, command);
+- }
+- return NULL;
+- }
+--- 0 ----
+*** ../vim-7.3.186/src/os_riscos.c 2010-08-15 21:57:27.000000000 +0200
+--- src/os_riscos.c 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,1292 ****
+- /* vi:set ts=8 sts=4 sw=4:
+- *
+- * VIM - Vi IMproved by Bram Moolenaar
+- *
+- * Do ":help uganda" in Vim to read copying and usage conditions.
+- * Do ":help credits" in Vim to see a list of people who contributed.
+- * See README.txt for an overview of the Vim source code.
+- */
+-
+- #include "vim.h"
+-
+- /*
+- * os_riscos.c
+- *
+- * Thomas Leonard <tal197@ecs.soton.ac.uk>
+- */
+-
+- const char *__dynamic_da_name = "Vim heap"; /* Enable and name our dynamic area */
+- int ro_line_mode = TRUE; /* For Ex mode we much echo chars to the screen ourselves */
+- int windowed; /* Flag - are we running inside a text window? */
+- int WinLeft, WinTop; /* We might be started inside a text window */
+- int ScrollTop; /* Make cursor movements relative to ScrollTop. */
+-
+- int old_escape_state = -1;
+- int old_cursor_state = -1;
+-
+- #define rgb(r,g,b) ((b<<24) + (g<<16) + (r<<8))
+- #define NORMAL_FG 0x00000000
+- #define NORMAL_BG 0xffffffff
+-
+- /* Convert a DOS colour number to an RGB palette entry.
+- * Mappings from X11 rgb/txt file.
+- */
+- static int
+- map_colour(dos)
+- int dos; /* Standard DOS colour number. */
+- {
+- switch (dos)
+- {
+- case 0: return 0; /* Black */
+- case 1: return rgb(0,0,139); /* DarkBlue */
+- case 2: return rgb(0,100,0); /* DarkGreen */
+- case 3: return rgb(0,139,139); /* DarkCyan */
+- case 4: return rgb(139,0,0); /* DarkRed */
+- case 5: return rgb(139,0,139); /* DarkMagenta */
+- case 6: return rgb(165,42,42); /* Brown, DarkYellow */
+- case 7: return rgb(211,211,211); /* LightGray, LightGrey, Gray, Grey */
+- case 8: return rgb(169,169,169); /* DarkGray, DarkGrey */
+- case 9: return rgb(173,216,230); /* Blue, LightBlue */
+- case 10: return rgb(144,238,144); /* Green, LightGreen */
+- case 11: return rgb(224,255,255); /* Cyan, LightCyan */
+- case 12: return rgb(255,0,0); /* Red, LightRed */
+- case 13: return rgb(255,0,255); /* Magenta, LightMagenta */
+- case 14: return rgb(255,255,0); /* Yellow, LightYellow */
+- case 15: return rgb(255,255,255); /* White */
+- }
+- return rgb(100,100,100);
+- }
+-
+- static void
+- text_fg(fg)
+- int fg; /* Foregound colour in the form &BBGGRR00 */
+- {
+- xswi(ColourTrans_SetTextColour, fg, 0, 0, 0);
+- }
+-
+- static void
+- text_bg(bg)
+- int bg; /* Backgound colour in the form &BBGGRR00 */
+- {
+- xswi(ColourTrans_SetTextColour, bg, 0, 0, 1 << 7);
+- }
+-
+- #define OUT_NORMAL 0
+- #define OUT_NUMBER 1 /* Reading in a number */
+-
+- void
+- mch_write(s, len)
+- char_u *s;
+- int len;
+- {
+- static int mode = OUT_NORMAL;
+- static int x, y; /* For reading numbers in. */
+-
+- if (!term_console)
+- {
+- /* Maybe we are running Vim remotely - don't interpret chars */
+- while (len--)
+- {
+- char_u c = *s++;
+- swi(OS_WriteC, c);
+- /* We might need to send a CR too. This shouldn't
+- * hurt if we don't need it, should it?
+- */
+- if (c == 10)
+- swi(OS_WriteI + 13);
+- }
+- return;
+- }
+-
+- while (len--)
+- {
+- char_u c = *s++;
+- switch (mode)
+- {
+- case OUT_NUMBER:
+- if (c < '0' || c > '9')
+- {
+- mode = OUT_NORMAL;
+- }
+- else
+- {
+- x = (x * 10) + c - '0';
+- continue;
+- }
+- /* note: no break here! */
+-
+- case OUT_NORMAL:
+- switch (c)
+- {
+- case 1:
+- /* Number (in decimal) follows. */
+- mode = OUT_NUMBER;
+- y = x;
+- x = 0;
+- break;
+- case 2:
+- /* Position cursor. */
+- swi(OS_WriteI + 31);
+- swi(OS_WriteC, x);
+- swi(OS_WriteC, y - ScrollTop);
+- break;
+- case 3:
+- /* Set scroll region. */
+- if (x == Rows -1 && y == 0 && !windowed)
+- {
+- /* Whole screen - remove text window.
+- * This is MUCH faster.
+- */
+- swi(OS_WriteI + 26);
+- }
+- else
+- {
+- /* Create a text window. */
+- swi(OS_WriteI + 28);
+- swi(OS_WriteC, WinLeft);
+- swi(OS_WriteC, WinTop + x);
+- swi(OS_WriteC, WinLeft + Columns - 1);
+- swi(OS_WriteC, WinTop + y);
+- }
+- ScrollTop = y;
+- break;
+- case 4:
+- /* Normal mode. */
+- text_fg(NORMAL_FG);
+- text_bg(NORMAL_BG);
+- break;
+- case 5:
+- /* Reverse mode. */
+- text_fg(NORMAL_BG);
+- text_bg(NORMAL_FG);
+- break;
+- case 10:
+- swi(OS_NewLine);
+- break;
+- case 14:
+- /* Cursor invisible. */
+- swi(OS_WriteN,
+- "\027\001\000\000\000\000\000\000\000\000",
+- 10);
+- break;
+- case 15:
+- /* Cursor visible. */
+- swi(OS_WriteN,
+- "\027\001\002\000\000\000\000\000\000\000",
+- 10);
+- break;
+- case 16:
+- /* Cursor very visible (flash) */
+- swi(OS_WriteN,
+- "\027\001\003\000\000\000\000\000\000\000",
+- 10);
+- case 17:
+- /* Set foreground colour. */
+- text_fg(map_colour(x));
+- break;
+- case 18:
+- /* Set background colour. */
+- text_bg(map_colour(x));
+- break;
+- case 19:
+- /* Scroll text down. */
+- swi(OS_WriteN,
+- "\027\007\000\002\000\000\000\000\000\000",
+- 10);
+- break;
+- default:
+- swi(OS_WriteC, c);
+- }
+- continue;
+-
+- default:
+- printf("[output error]");
+- mode = OUT_NORMAL;
+- }
+- }
+- }
+-
+- /*
+- * mch_inchar(): low level input funcion.
+- * Get a characters from the keyboard.
+- * Return the number of characters that are available.
+- * If wtime == 0 do not wait for characters.
+- * If wtime == n wait n msecs for characters.
+- * If wtime == -1 wait forever for characters.
+- *
+- * TODO: call convert_input() for 'fileencoding' to 'encoding' conversion.
+- */
+- int
+- mch_inchar(buf, maxlen, wtime, tb_change_cnt)
+- char_u *buf;
+- int maxlen;
+- long wtime;
+- int tb_change_cnt;
+- {
+- int got=0;
+- unsigned int start_time = clock();
+-
+- if (ro_line_mode)
+- {
+- /* We're probably in Ex mode - get whole lines at a time. */
+-
+- static char_u line_buffer[256];
+- static int remaining_chars = 0;
+- static int buf_pos = 0;
+-
+- /* Do we need to fetch another line? */
+- if (remaining_chars == 0)
+- {
+- int old_esc_state;
+- swi(OS_Byte, 200, 1, 0xfe);
+- old_esc_state = r1;
+-
+- buf_pos = 0;
+- if (xswi(OS_ReadLine, line_buffer, 255, 0, 255) & (c_flag | v_flag))
+- {
+- got_int = TRUE; /* ESC pressed */
+- r1 = 0;
+- }
+- line_buffer[r1] = 13;
+- remaining_chars = r1 + 1; /* Count CR as part of input */
+-
+- swi(OS_Byte, 200, old_esc_state, 0);
+- }
+-
+- /* Can we send the rest of the buffer back in one go? */
+- if (remaining_chars <= maxlen)
+- {
+- int got = remaining_chars;
+-
+- memcpy(buf, line_buffer + buf_pos, got);
+- remaining_chars = 0;
+- return got;
+- }
+-
+- /* Send as much as we can */
+- memcpy(buf, line_buffer + buf_pos, maxlen);
+- buf_pos += maxlen;
+- remaining_chars -= maxlen;
+-
+- return maxlen;
+- }
+-
+- if (!term_console)
+- {
+- /* Use OS_ReadC for all input.
+- * Avoids problems with remote access getting interference from
+- * the keyboard.
+- */
+- if (wtime == 0)
+- return 0; /* Ignore quick key checks */
+-
+- if (xswi(OS_ReadC) & c_flag)
+- {
+- got_int = TRUE; /* ESC pressed - can this happen? */
+- swi(OS_Byte, 124); /* Clear Escape state */
+- r0 = 0x1b; /* It *might* not have been Escape! */
+- }
+- buf[0] = r0;
+- return 1;
+- }
+-
+- /*
+- * OK, here's the plan:
+- *
+- * 1) Wait until wtime expires or we get a key
+- * 2) Get keys until the keyboard buffer is empty or buf is full
+- */
+-
+- while (xswi(OS_Byte,145,0) & c_flag)
+- {
+- /* Nothing at all in the keyboard buffer.
+- * Has our time expired yet?
+- */
+- if ( (wtime != -1) && (clock() - start_time) >= wtime )
+- return 0; /* Nothing read - giving up */
+- }
+-
+- /* We've got one char (in r2) - are there any more? */
+-
+- while (got < maxlen)
+- {
+- buf[got++] = r2;
+-
+- if (xswi(OS_Byte,145,0) & c_flag)
+- return got; /* Keyboard buffer empty */
+- }
+- return got; /* buf is full */
+- }
+-
+- /*
+- * return non-zero if a character is available
+- */
+- int
+- mch_char_avail()
+- {
+- if (!term_console)
+- return 0; /* Can't tell */
+- if (xswi(OS_Byte, 152, 0) & c_flag)
+- return 0;
+- return 1;
+- }
+-
+- /* Find out how much free memory we have.
+- * I don't know how to work this out exactly but, since we can claim
+- * more memory from the OS, let's just report the free pool size.
+- * Dynamic area 6 doesn't exist pre 3.6 according to StrongHelp, so
+- * we'll use Wimp_SlotSize. If that fails (outside the desktop?)
+- * then just return a big number and hope.
+- */
+- long_u
+- mch_avail_mem(special)
+- int special;
+- {
+- if (xswi(Wimp_SlotSize, -1, -1) & v_flag)
+- return 0x7fffffff;
+- return r2;
+- }
+-
+- void
+- mch_delay(msec, ignoreinput)
+- long msec;
+- int ignoreinput;
+- {
+- int start_time, time_now;
+- int csec = msec / 10;
+-
+- swi(OS_ReadMonotonicTime);
+- start_time = r0;
+-
+- for (;;)
+- {
+- swi(OS_ReadMonotonicTime);
+- time_now = r0;
+- if (time_now - start_time > csec)
+- return;
+- #ifdef FEAT_GUI
+- /* In the GUI, allow other programs to run while waiting. */
+- if (gui.in_use)
+- gui_mch_wait_for_chars(start_time + csec);
+- #endif
+- }
+- }
+-
+- /*
+- * If the machine has job control, use it to suspend the program,
+- * otherwise fake it by starting a new shell.
+- */
+- void
+- mch_suspend()
+- {
+- suspend_shell();
+- }
+-
+- void
+- mch_init()
+- {
+- /*
+- * Read window size first. Calls to mch_get_shellsize() will
+- * simply return these values in future so that setting the
+- * text window (used for scrolling) won't give strange results.
+- */
+-
+- int buf[7] = {132, 135, 256, 257, 1, 2, -1};
+-
+- /* Command windows are no longer forced open, since if we are
+- * in the desktop then we'll use the GUI version.
+- * Opening a command window here messes up the GUI version startup
+- */
+- #ifndef FEAT_GUI
+- swi(OS_WriteI);
+- #endif
+- swi(OS_ReadVduVariables, buf, buf);
+- WinLeft = buf[0];
+- WinTop = buf[1];
+- Columns = buf[2];
+- Rows = buf[3] + 1; /* Seems to be one off (VduVars wrong?) */
+- ScrollTop = 0;
+-
+- /* Are we running in a textwindow? */
+- if (Rows == buf[5] + 1 && Columns == buf[4] + 1)
+- windowed = 0;
+- else
+- windowed = 1;
+-
+- /* Choose a nice colour scheme. */
+- text_fg(NORMAL_FG);
+- text_bg(NORMAL_BG);
+- }
+-
+- /*
+- * Check_win checks whether we have an interactive stdout.
+- */
+- /* ARGSUSED */
+- int
+- mch_check_win(argc, argv)
+- int argc;
+- char **argv;
+- {
+- return OK;
+- }
+-
+- /*
+- * Return TRUE if the input comes from a terminal, FALSE otherwise.
+- */
+- int
+- mch_input_isatty()
+- {
+- if (xswi(OS_ChangeRedirection, -1, -1) & v_flag)
+- return TRUE; /* Error - TRUE is probably correct though */
+- if (r0 == 0)
+- return TRUE;
+- return FALSE;
+- }
+-
+- #ifdef FEAT_TITLE
+- int
+- mch_can_restore_title()
+- {
+- return FALSE;
+- }
+-
+- int
+- mch_can_restore_icon()
+- {
+- return FALSE;
+- }
+-
+-
+- /*
+- * Set the window title and icon.
+- */
+- void
+- mch_settitle(title, icon)
+- char_u *title;
+- char_u *icon;
+- {
+- if (title == NULL)
+- title = (char_u *) "<untitled>";
+- #ifdef FEAT_GUI
+- if (gui.in_use && strcmp(title, gui.window_title))
+- {
+- int length;
+- length = strlen(title);
+- if (length >= gui.window_title_size)
+- length = gui.window_title_size - 1;
+- strncpy(gui.window_title, title, length);
+- gui.window_title[length] = 0;
+- ro_redraw_title(gui.window_handle);
+- }
+- #endif
+- return;
+- }
+-
+- /*
+- * Restore the window/icon title.
+- * "which" is one of:
+- * 1 only restore title
+- * 2 only restore icon
+- * 3 restore title and icon
+- */
+- void
+- mch_restore_title(which)
+- int which;
+- {
+- return;
+- }
+- #endif
+-
+- /*
+- * Insert user name in s[len].
+- * Return OK if a name found.
+- */
+- int
+- mch_get_user_name(s, len)
+- char_u *s;
+- int len;
+- {
+- /* RISC OS doesn't support user names. */
+- *s = NUL;
+- return FAIL;
+- }
+-
+- /*
+- * Insert host name in s[len].
+- */
+-
+- void
+- mch_get_host_name(s, len)
+- char_u *s;
+- int len;
+- {
+- if (xswi(OS_ReadVarVal, "Machine$Name", s, len, 0, 3) & v_flag)
+- {
+- /* Variable does not exist (normal operation) */
+- vim_strncpy(s, "(unknown)", len - 1);
+- }
+- }
+-
+- /*
+- * return process ID
+- */
+- long
+- mch_get_pid()
+- {
+- if (xswi(Wimp_ReadSysInfo, 5) & v_flag)
+- return 0;
+- return r0;
+- }
+-
+- /*
+- * Get name of current directory into buffer 'buf' of length 'len' bytes.
+- * Return OK for success, FAIL for failure.
+- */
+- int
+- mch_dirname(buf, len)
+- char_u *buf;
+- int len;
+- {
+- if (xswi(OS_FSControl, 37, "@", buf, 0, 0, len) & v_flag)
+- return FAIL;
+- return OK;
+- }
+-
+- /*
+- * Get absolute file name into buffer 'buf' of length 'len' bytes.
+- *
+- * return FAIL for failure, OK for success
+- */
+- int
+- mch_FullName(fname, buf, len, force)
+- char_u *fname, *buf;
+- int len;
+- int force; /* Also expand when already absolute path name.
+- * Not used under RISC OS.
+- */
+- {
+- if (xswi(OS_FSControl, 37, fname, buf, 0, 0, len) & v_flag)
+- return FAIL;
+- return OK;
+- }
+-
+- /*
+- * Return TRUE if "fname" does not depend on the current directory.
+- */
+- int
+- mch_isFullName(fname)
+- char_u *fname;
+- {
+- if (strstr(fname, "::") && strstr(fname,".$."))
+- return TRUE;
+- return FALSE;
+- }
+-
+- /*
+- * Get file permissions for 'name'.
+- * Returns -1 when it doesn't exist.
+- */
+- long
+- mch_getperm(name)
+- char_u *name;
+- {
+- struct stat statb;
+-
+- if (stat((char *)name, &statb))
+- return -1;
+- return statb.st_mode;
+- }
+-
+- /*
+- * set file permission for 'name' to 'perm'
+- *
+- * return FAIL for failure, OK otherwise
+- */
+- int
+- mch_setperm(name, perm)
+- char_u *name;
+- long perm;
+- {
+- return (chmod((char *)name, (mode_t)perm) == 0 ? OK : FAIL);
+- }
+-
+- /*
+- * Set hidden flag for "name".
+- */
+- /* ARGSUSED */
+- void
+- mch_hide(name)
+- char_u *name;
+- {
+- /* can't hide a file */
+- }
+-
+- /*
+- * return TRUE if "name" is a directory
+- * return FALSE if "name" is not a directory
+- * return FALSE for error
+- */
+- int
+- mch_isdir(name)
+- char_u *name;
+- {
+- if (xswi(OS_File, 17, name) & v_flag)
+- return FALSE;
+- if (r0 == 2 || r0 == 3)
+- return TRUE; /* Count image files as directories. */
+- return FALSE;
+- }
+-
+- /*
+- * Return 1 if "name" can be executed, 0 if not.
+- * Return -1 if unknown. Requires which to work.
+- */
+- int
+- mch_can_exe(name)
+- char_u *name;
+- {
+- char_u *buf;
+- char_u *p;
+- int retval;
+-
+- buf = alloc((unsigned)STRLEN(name) + 7);
+- if (buf == NULL)
+- return -1;
+- sprintf((char *)buf, "which %s", name);
+- p = get_cmd_output(buf, NULL, SHELL_SILENT);
+- vim_free(buf);
+- if (p == NULL)
+- return -1;
+- /* result can be: "name: Command not found" */
+- retval = (*p != NUL && strstr((char *)p, "not found") == NULL);
+- vim_free(p);
+- return retval;
+- }
+-
+- /*
+- * Check what "name" is:
+- * NODE_NORMAL: file or directory (or doesn't exist)
+- * NODE_WRITABLE: writable device, socket, fifo, etc.
+- * NODE_OTHER: non-writable things
+- */
+- int
+- mch_nodetype(name)
+- char_u *name;
+- {
+- /* TODO */
+- return NODE_NORMAL;
+- }
+-
+- void
+- mch_early_init()
+- {
+- /* Turn off all the horrible filename munging in UnixLib. */
+- int __riscosify_control = __RISCOSIFY_NO_PROCESS;
+- }
+-
+- void
+- mch_exit(r)
+- int r;
+- {
+- settmode(TMODE_COOK);
+- exiting = TRUE;
+- out_flush();
+- ml_close_all(TRUE); /* remove all memfiles */
+-
+- #ifdef FEAT_GUI
+- if (gui.in_use)
+- gui_exit(r);
+- #endif
+- swi(OS_NewLine);
+- if (old_escape_state != -1)
+- swi(OS_Byte, 229, old_escape_state, 0);
+- if (old_cursor_state != -1)
+- swi(OS_Byte, 4, old_cursor_state);
+- exit(r);
+- }
+-
+- void
+- mch_settmode(tmode)
+- int tmode; /* TMODE_RAW or TMODE_COOK */
+- {
+- if (tmode == TMODE_COOK)
+- {
+- ro_line_mode = TRUE;
+- return;
+- }
+-
+- ro_line_mode = FALSE;
+-
+- if (term_console)
+- {
+- /* Block cursor. */
+- swi(OS_WriteN,
+- "\027\000\012\000\000\000\000\000\000\000",
+- 10);
+-
+- /* Disable the standard cursor key actions. */
+- swi(OS_Byte, 4, 1);
+- if (old_cursor_state == -1)
+- old_cursor_state = r1;
+- }
+-
+- /* Stop Escape from quitting Vim! */
+- swi(OS_Byte, 229, 1, 0);
+- if (old_escape_state == -1)
+- old_escape_state = r1;
+- }
+-
+- /*
+- * set mouse clicks on or off (only works for xterms)
+- */
+- void
+- mch_setmouse(on)
+- int on;
+- {
+- }
+-
+- /*
+- * set screen mode, always fails.
+- */
+- /* ARGSUSED */
+- int
+- mch_screenmode(arg)
+- char_u *arg;
+- {
+- EMSG(_(e_screenmode));
+- return FAIL;
+- }
+-
+- /*
+- * Try to get the current window size.
+- * Return OK when size could be determined, FAIL otherwise.
+- * Simply return results stored by mch_init() if we are the
+- * machine's console. If not, we don't know how big the screen is.
+- */
+- int
+- mch_get_shellsize()
+- {
+- /* if size changed: screenalloc will allocate new screen buffers */
+- return term_console ? OK : FAIL;
+- }
+-
+- /*
+- * Can't change the size.
+- * Assume the user knows what he's doing and use the new values.
+- */
+- void
+- mch_set_shellsize()
+- {
+- /* Assume the user knows what he's doing and use the new values. */
+- }
+-
+- /*
+- * Rows and/or Columns has changed.
+- */
+- void
+- mch_new_shellsize()
+- {
+- /* Nothing to do. */
+- }
+-
+- int
+- mch_call_shell(cmd, options)
+- char_u *cmd;
+- int options; /* SHELL_*, see vim.h */
+- {
+- int retval;
+- int tmode = cur_tmode;
+-
+- if (cmd == NULL)
+- cmd = (char_u *) "GOS";
+-
+- #ifdef FEAT_GUI
+- if (gui.in_use)
+- return gui_mch_call_shell(cmd, options);
+- #endif
+- if (options & SHELL_COOKED)
+- settmode(TMODE_COOK); /* set to normal mode */
+- MSG_PUTS("\n");
+-
+- /* I don't even want to think about what UnixLib must
+- * be doing to allow this to work...
+- */
+- retval = system(cmd);
+- if (retval && !(options & SHELL_SILENT))
+- EMSG(strerror(EOPSYS)); /* Doesn't seem to set errno? */
+-
+- swi(OS_Byte, 229, 1, 0); /* Re-disable escape */
+- if (tmode == TMODE_RAW)
+- settmode(TMODE_RAW); /* set to raw mode */
+- return retval ? FAIL : OK;
+- }
+-
+- /*
+- * Check for Escape being pressed right now.
+- * [ different if !term_console? ]
+- */
+- void
+- mch_breakcheck()
+- {
+- if (xswi(OS_Byte, 121, 0xf0) & v_flag)
+- return;
+- if (r1 == 0xff)
+- {
+- got_int = TRUE;
+- swi(OS_Byte, 15, 1); /* Flush input buffer */
+- }
+- }
+-
+- /*
+- * Recursively expand one path component into all matching files and/or
+- * directories.
+- * "path" has backslashes before chars that are not to be expanded.
+- * Return the number of matches found.
+- */
+- int
+- mch_expandpath(gap, path, flags)
+- garray_T *gap; /* Grow array for results. */
+- char_u *path;
+- int flags; /* EW_* flags */
+- {
+- int got; /* Number of matches. */
+- char_u *pattern;
+-
+- /* Plan:
+- *
+- * 1) Get first part of path - no wildcards
+- * 2) Get next path element (wildcarded)
+- * 3) Get rest of path
+- *
+- * If (3) is nothing then only the leaf is wildcarded - add to gap
+- * Otherwise call recursively for each path in (2), passing (3)
+- *
+- * This is just the header function.
+- */
+-
+- /* We must be able to modifiy path, so make a copy */
+- pattern = vim_strsave(path);
+- if (pattern == NULL)
+- return 0;
+- got = expand_section(gap, (char_u *)"", pattern, flags);
+- vim_free(pattern);
+- return got;
+- }
+-
+- /*
+- * expand_section(gap, "$.Dir1.Dir2", "ABBA*.myleaf##")
+- *
+- * calls expand_section(gap, "$.Dir1.Dir2.ABBA_Gold", "myleaf##")
+- * and expand_section(gap, "$.Dir1.Dir2.ABBA_Live", "myleaf##")
+- *
+- * If rest is just a leaf then all matches are added to gap.
+- *
+- * Returns number of items added to gap.
+- */
+- int
+- expand_section(gap, root, rest, flags)
+- garray_T *gap;
+- char_u *root; /* Non-wildcarded path to search */
+- char_u *rest; /* Wildcarded remainder of path */
+- int flags; /* Add dirs/files/missing objects. */
+- {
+- static char_u buf[MAXPATHL]; /* Temporary buffer. */
+- char_u dir[MAXPATHL];
+- int start_element = -1; /* Start of wildcarded element */
+- char_u c;
+- int i;
+- int got, dir_pos;
+- int buflen; /* Chars used in buf[] */
+- int colon = 0; /* Dir ends in ':' */
+-
+- buflen = strlen(root);
+- STRNCPY(buf, root, buflen); /* Copy root into buffer. */
+-
+- /*
+- * Find end of nonwildcarded section.
+- * Count ':' as a path sep since Vim:Bug* is a valid pathname.
+- */
+-
+- for (i = 0; c = rest[i]; i++)
+- {
+- if (c == PATHSEP)
+- {
+- start_element = i;
+- colon = 0;
+- }
+- if (c == ':')
+- {
+- start_element = i + 1;
+- colon = 1;
+- }
+- if (c == '#' || c == '*')
+- break;
+- }
+- if (c == 0)
+- start_element = i;
+-
+- /*
+- * start_element +> terminator for non-wildcarded section.
+- * Transfer this bit into buf.
+- */
+- if (buflen + start_element + 4 >= MAXPATHL)
+- return 0; /* Buffer full */
+- if (start_element >= 0)
+- {
+- if (*root && !colon)
+- buf[buflen++] = PATHSEP;
+- strncpy(buf + buflen, rest, start_element);
+- buflen += start_element;
+- }
+- buf[buflen] = 0;
+-
+- /*
+- * Did we reach the end of the string without hitting any wildcards?
+- */
+- if (c == 0)
+- {
+- /* Yes - add combined path to grow array and return. */
+- addfile(gap, buf, flags);
+- return 1;
+- }
+-
+- if (start_element < 0 || !colon)
+- start_element++;
+- rest += start_element;
+-
+- /*
+- * rest does contain wildcards if we get here.
+- *
+- * Now : have we reached the leaf names part yet?
+- * If so, add all matches (files and dirs) to gap.
+- * If not, get next path element and scan all matching directories.
+- */
+-
+- start_element = -1;
+- for (i = 0; rest[i]; i++)
+- {
+- if (rest[i] == '.')
+- {
+- start_element = i;
+- rest[i] = 0; /* Break string here. */
+- break;
+- }
+- }
+-
+- /* If start_element is -1 then we are matching leaf names */
+-
+- r3 = 0; /* Number of objs read. */
+- dir_pos = 0; /* Position through directory. */
+- got = 0; /* Files added so far. */
+- while (dir_pos != -1)
+- {
+- buf[buflen] = 0;
+- if (xswi(OS_GBPB, 9,
+- buf, /* Directory to scan. */
+- buf + buflen + (1 - colon), /* Buffer for result. */
+- 1, /* Number of objects to read. */
+- dir_pos, /* Search position. */
+- MAXPATHL - 2 - buflen, /* Size of result buffer. */
+- rest) /* Wildcarded leafname. */
+- & v_flag)
+- {
+- EMSG(r0 + 4);
+- r4 = -1;
+- }
+- dir_pos = r4; /* r4 corrupted by addfile() */
+- if (r3 > 0)
+- {
+- char_u *path = buf;
+- if (buflen == 0)
+- path++; /* Don't do '.File' */
+- else if (!colon)
+- buf[buflen] = '.'; /* Join path and leaf */
+-
+- /* Path -> full path of object found */
+- if (start_element == -1)
+- {
+- addfile(gap, path, flags);
+- got++;
+- }
+- else
+- {
+- /* Scan into subdirectories and images; ignore files */
+- swi(OS_File, 17, path);
+- if (r0 == 2 || r0 == 3)
+- got += expand_section(gap,
+- path,
+- rest + start_element + 1,
+- flags);
+- }
+- }
+- }
+-
+- /* Restore the dot if we removed it. */
+- if (start_element >= 0)
+- rest[start_element] = '.';
+- return got;
+- }
+-
+- /*
+- * mch_expand_wildcards() - this code does wild-card pattern matching using
+- * the shell. It isn't used under RISC OS.
+- *
+- * return OK for success, FAIL for error (you may lose some memory) and put
+- * an error message in *file.
+- *
+- * num_pat is number of input patterns
+- * pat is array of pointers to input patterns
+- * num_file is pointer to number of matched file names
+- * file is pointer to array of pointers to matched file names
+- */
+- int
+- mch_expand_wildcards(num_pat, pat, num_file, file, flags)
+- int num_pat;
+- char_u **pat;
+- int *num_file;
+- char_u ***file;
+- int flags; /* EW_* flags */
+- {
+- /* This doesn't get called unless SPECIAL_WILDCHAR is defined. */
+- return FAIL;
+- }
+-
+- /*
+- * Return TRUE if "p" contains wildcards which can be expanded by
+- * mch_expandpath().
+- */
+- int
+- mch_has_exp_wildcard(p)
+- char_u *p;
+- {
+- if (vim_strpbrk((char_u *)"*#", p))
+- return TRUE;
+- return FALSE;
+- }
+-
+- /* Return TRUE if "p" contains wildcards. */
+- int
+- mch_has_wildcard(p)
+- char_u *p;
+- {
+- if (vim_strpbrk((char_u *)"*#`", p))
+- return TRUE;
+- return FALSE;
+- }
+-
+- int /* see Unix unlink(2) */
+- mch_remove(file)
+- char_u *file; /* Name of file to delete. */
+- {
+- if (xswi(OS_FSControl, 27, file, 0, 0) & v_flag)
+- return EXIT_FAILURE;
+- return EXIT_SUCCESS;
+- }
+-
+- /* Try to make existing scripts work without modification.
+- * Return a pointer to the new string (freed by caller), or NULL
+- *
+- * Two main cases:
+- * - Absolute : $VIM/syntax/help.vim
+- * - Relative : Adfs::4.$.!Vim.Resources.Syntax/help.vim
+- */
+- char_u *
+- mch_munge_fname(fname)
+- char_u *fname;
+- {
+- char_u c;
+- int len;
+- char_u *retval;
+-
+- retval = fname = vim_strsave(fname);
+- if (fname == NULL)
+- return NULL;
+-
+- if (strncmp(fname, "$VIM/", 5) == 0)
+- {
+- strncpy(fname, "Vim:", 4);
+- for (fname += 5; c = *fname; fname++)
+- {
+- if (c == '.')
+- break;
+- if (c == '/')
+- fname[-1] = '.';
+- else
+- fname[-1] = c;
+- }
+- fname[-1] = '\0';
+- }
+- else
+- {
+- /* Check to see if the file exists without modification. */
+- if (xswi(OS_File, 17, fname) & v_flag)
+- r0 == 0; /* Invalid filename? */
+- if (r0)
+- return retval;
+-
+- len = strlen(fname);
+- if (strcmp(fname + len - 4, ".vim") == 0)
+- {
+- fname[len - 4] = '\0';
+- for (; c = *fname; fname++)
+- {
+- if (c == '/')
+- *fname = '.';
+- }
+- }
+- }
+- return retval;
+- }
+-
+- /* QuickFix reads munged names from the error file.
+- * Correct them.
+- */
+- int
+- ro_buflist_add(old_name)
+- char_u *old_name; /* Name of file found by quickfix */
+- {
+- char_u *fname;
+- char_u *leaf; /* Pointer to start of leaf in old_name */
+- char_u *ptr;
+- char_u c;
+- int retval;
+-
+- if (old_name == NULL)
+- return buflist_add(NULL, 0);
+-
+- /* Copy the name so we can mess around with it. */
+- fname = vim_strsave(old_name);
+- if (fname == NULL)
+- /* Out of memory - can't modify name */
+- return buflist_add(old_name, 0);
+-
+- /* Change `dir/main.c' into `dir.c.main' */
+- leaf = fname;
+- for (ptr = fname; c = *ptr; ptr++)
+- {
+- if (c == '/')
+- {
+- leaf = ptr + 1;
+- *ptr = '.';
+- }
+- else if (c == '.')
+- break;
+- }
+- if (c == '.')
+- {
+- /* Change `main.c' into `c.main'
+- * | |
+- * leaf ptr
+- */
+- ptr += old_name - fname;
+- *ptr = '\0';
+- sprintf(leaf,
+- "%s.%s",
+- ptr + 1,
+- leaf - fname + old_name);
+- }
+-
+- retval = buflist_add(fname, 0);
+- free(fname);
+- return retval;
+- }
+-
+- /* Change the current directory.
+- * Strip trailing dots to make it easier to use with filename completion.
+- * Return 0 for success, -1 for failure.
+- */
+- int
+- mch_chdir(dir)
+- char_u *dir;
+- {
+- int length;
+- int retval;
+- char_u *new_dir;
+-
+- if (p_verbose >= 5)
+- {
+- verbose_enter();
+- smsg((char_u *)"chdir(%s)", dir);
+- verbose_leave();
+- }
+- length = strlen(dir);
+- if (dir[length - 1] != '.')
+- return chdir(dir); /* No trailing dots - nothing to do. */
+- new_dir = vim_strsave(dir);
+- if (new_dir == NULL)
+- return chdir(dir); /* Can't allocate memory. */
+-
+- while (new_dir[--length] == '.')
+- new_dir[length] = '\0';
+-
+- retval = chdir(new_dir);
+- vim_free(new_dir);
+- return retval;
+- }
+-
+- /* Examine the named file, and set the 'osfiletype' option
+- * (in curbuf) to the file's type.
+- */
+- void
+- mch_read_filetype(file)
+- char_u *file;
+- {
+- int type;
+- char_u type_string[9];
+- int i;
+-
+- if (xswi(OS_File, 23, file) & v_flag)
+- type = 0xfff; /* Default to Text */
+- else
+- type = r6;
+-
+- /* Type is the numerical value - see if we have a textual equivalent */
+- swi(OS_FSControl, 18, 0, type);
+- ((int *) type_string)[0] = r2;
+- ((int *) type_string)[1] = r3;
+- type_string[8] = 0;
+- for (i = 0; type_string[i] > ' '; i++)
+- ;
+- type_string[i] = 0;
+-
+- set_string_option_direct("osfiletype", -1, type_string, OPT_FREE, 0);
+- return;
+- }
+-
+- void
+- mch_set_filetype(file, type)
+- char_u *file;
+- char_u *type;
+- {
+- if (xswi(OS_FSControl, 31, type) & v_flag)
+- {
+- EMSG(_("E366: Invalid 'osfiletype' option - using Text"));
+- r2 = 0xfff;
+- }
+-
+- swi(OS_File, 18, file, r2);
+- }
+-
+- /* Return TRUE if the file's type matches 'type'
+- * RISC OS types always start with '&'
+- */
+- int
+- mch_check_filetype(fname, type)
+- char_u *fname;
+- char_u *type;
+- {
+- int value;
+- char *end;
+-
+- if (*type != '&')
+- return FALSE;
+-
+- value = strtol(type + 1, &end, 16);
+- if (*end)
+- return FALSE; /* Invalid type (report error?) */
+-
+- if (xswi(OS_File, 23, fname) & v_flag)
+- return FALSE; /* Invalid filename? */
+-
+- return (r0 && r6 == value);
+- }
+--- 0 ----
+*** ../vim-7.3.186/runtime/doc/os_risc.txt 2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/os_risc.txt 2011-05-10 16:19:25.000000000 +0200
+***************
+*** 1,322 ****
+! *os_risc.txt* For Vim version 7.3. Last change: 2010 Aug 07
+
+
+ VIM REFERENCE MANUAL by Thomas Leonard
+
+
+ *riscos* *RISCOS* *RISC-OS*
+! This file contains the particularities for the RISC OS version of Vim.
+
+- The RISC OS port is a completely new port and is not based on the old "archi"
+- port.
+
+- 1. File locations |riscos-locations|
+- 2. Filename munging |riscos-munging|
+- 3. Command-line use |riscos-commandline|
+- 4. Desktop (GUI) use |riscos-gui|
+- 5. Remote use (telnet) |riscos-remote|
+- 6. Temporary files |riscos-temp-files|
+- 7. Interrupting |riscos-interrupt|
+- 8. Memory usage |riscos-memory|
+- 9. Filetypes |riscos-filetypes|
+- 10. The shell |riscos-shell|
+- 11. Porting new releases |riscos-porting|
+-
+- If I've missed anything, email me and I'll try to fix it. In fact, even if I
+- haven't missed anything then email me anyway to give me some confidence that it
+- actually works!
+-
+- Thomas Leonard <tal197@ecs.soton.ac.uk>
+-
+- [these URLs no longer work...]
+- Port homepage: http://www.ecs.soton.ac.uk/~tal197/
+- or try: http://www.soton.ac.uk/~tal197/
+-
+- ==============================================================================
+- *riscos-locations*
+- 1. File locations
+-
+- The Vim executable and shared resource files are all stored inside the !Vim
+- application directory.
+-
+- When !Vim is first seen by the filer, it aliases the *vi and *ex commands to
+- run the command-line versions of Vim (see |riscos-commandline|).
+-
+- !Vim.Resources and !Vim.Resources2 contain the files from the standard Vim
+- distribution, but modified slightly to work within the limits of ADFS, plus
+- some extra files such as the window templates.
+-
+- User choices are read from "Choices:*" and are saved to "<Choices$Write>.*".
+- If you have the new !Boot structure then these should be set up already. If
+- not, set Choices$Path to a list of directories to search when looking for
+- user configuration files. Set Choices$Write to the directory you want files
+- to be saved into (so your search patterns and marks can be remembered between
+- sessions).
+-
+- ==============================================================================
+- *riscos-munging*
+- 2. Filename munging
+-
+- All pathname munging is disabled by default, so Vim should behave like a
+- normal RISC OS application now. So, if you want to edit "doc/html" then you
+- actually type "*vi doc/html".
+-
+- The only times munging is done is when:
+-
+- - Searching included files from C programs, since these are always munged.
+- See |[I|.
+- Note: make sure you are in the right directory when you use this
+- command (i.e. the one with subdirectories "c" and "h").
+-
+- - Sourcing files using |:so|.
+- Paths starting "$VIM/" are munged like this:
+-
+- $VIM/syntax/help.vim -> Vim:syntax.help
+-
+- Also, files ending in ".vim" have their extensions removed, and slashes
+- replaced with dots.
+-
+- Some tag files and script files may have to be edited to work under this port.
+-
+- ==============================================================================
+- *riscos-commandline*
+- 3. Command-line use
+-
+- To use Vim from the command-line use the "*vi" command (or "*ex" for
+- |Ex-mode|).
+-
+- Type "*vi -h" for a list of options.
+-
+- Running the command-line version of Vim in a large high-color mode may cause
+- the scrolling to be very slow. Either change to a mode with fewer colors or
+- use the GUI version.
+-
+- Also, holding down Ctrl will slow it down even more, and Ctrl-Shift will
+- freeze it, as usual for text programs.
+-
+- ==============================================================================
+- *riscos-gui*
+- 4. Desktop use
+-
+- Limitations:
+-
+- - Left scrollbars don't work properly (right and bottom are fine).
+- - Doesn't increase scroll speed if it gets behind.
+-
+- You can resize the window by dragging the lower-right corner, even though
+- there is no icon shown there.
+-
+- You can use the --rows and --columns arguments to specify the initial size of
+- the Vim window, like this: >
+-
+- *Vi -g --rows 20 --columns 80
+-
+- The global clipboard is supported, so you can select some text and then
+- paste it directly into another application (provided it supports the
+- clipboard too).
+-
+- Clicking Menu now opens a menu like a normal RISC OS program. Hold down Shift
+- when clicking Menu to paste (from the global clipboard).
+-
+- Dragging a file to the window replaces the CURRENT buffer (the one with the
+- cursor, NOT the one you dragged to) with the file.
+-
+- Dragging with Ctrl held down causes a new Vim window to be opened for the
+- file (see |:sp|).
+-
+- Dragging a file in with Shift held down in insert mode inserts the pathname of
+- the file.
+-
+- :browse :w opens a standard RISC OS save box.
+- :browse :e opens a directory viewer.
+-
+- For fonts, you have the choice of the system font, an outline font, the system
+- font via ZapRedraw and any of the Zap fonts via ZapRedraw: >
+-
+- :set guifont=
+- < To use the system font via the VDU drivers. Supports
+- bold and underline.
+- >
+- :set guifont=Corpus.Medium
+- < Use the named outline font. You can use any font, but
+- only monospaced ones like Corpus look right.
+- >
+- :set guifont=Corpus.Medium:w8:h12:b:i
+- < As before, but with size of 8 point by 12 point, and
+- in bold italic.
+- If only one of width and height is given then that
+- value is used for both. If neither is given then 10
+- point is used.
+-
+- Thanks to John Kortink, Vim can use the ZapRedraw module. Start the font name
+- with "!" (or "!!" for double height), like this: >
+-
+- :set guifont=!!
+- < Use the system font, but via ZapRedraw. This gives a
+- faster redraw on StrongARM processors, but you can't
+- get bold or italic text. Double height.
+- >
+- :set guifont=!script
+- < Uses the named Zap font (a directory in VimFont$Path).
+- The redraw is the same speed as for "!!", but you get
+- a nicer looking font.
+- Only the "man+" and "script" fonts are supplied
+- currently, but you can use any of the Zap fonts if
+- they are in VimFont$Path.
+- Vim will try to load font files "0", "B", "I" and "IB"
+- from the named directory. Only "0" (normal style) MUST
+- be present. Link files are not currently supported.
+-
+- Note that when using ZapRedraw the edit bar is drawn in front of the character
+- you are on rather than behind it. Also redraw is incorrect for screen modes
+- with eigen values of 0. If the font includes control characters then you can
+- get Vim to display them by changing the 'isprint' option.
+-
+- If you find the scrolling is too slow on your machine, try experimenting
+- with the 'scrolljump' and 'ttyscroll' options.
+-
+- In particular, StrongARM users may find that: >
+-
+- :set ttyscroll=0
+-
+- makes scrolling faster in high-color modes.
+-
+- =============================================================================
+- *riscos-remote*
+- 5. Remote use (telnet)
+-
+- I have included a built-in termcap entry, but you can edit the termcap file to
+- allow other codes to be used if you want to use Vim from a remote terminal.
+-
+- Although I do not have an internet connection to my Acorn, I have managed to
+- run Vim in a FreeTerm window using the loopback connection.
+-
+- It seems to work pretty well now, using "*vi -T ansi".
+-
+- ==============================================================================
+- *riscos-temp-files*
+- 6. Temporary files
+-
+- If Vim crashes then the swap and backup files (if any) will be in the
+- directories set with the 'directory' and 'bdir' options. By default the swap
+- files are in <Wimp$ScrapDir> (i.e. inside !Scrap) and backups are in the
+- directory you were saving to. Vim will allow you to try and recover the file
+- when you next try to edit it.
+-
+- To see a list of swap files, press <F12> and type "*vi -r".
+-
+- Vim no longer brings up ATTENTION warnings if you try to edit two files with
+- the same name in different directories.
+-
+- However, it also no longer warns if you try to edit the same file twice (with
+- two copies of Vim), though you will still be warned when you save that the
+- datestamp has changed.
+-
+- ==============================================================================
+- *riscos-interrupt*
+- 7. Interrupting
+-
+- To break out of a looping macro, or similar, hold down Escape in the
+- command-line version, or press CTRL-C in the GUI version.
+-
+- ==============================================================================
+- *riscos-memory*
+- 8. Memory usage
+-
+- Vim will use dynamic areas on RISC OS 3.5 or later. If you can use them on
+- older machines then edit the !RunTxt and GVim files. I don't know what UnixLib
+- does by default on these machines so I'm playing safe.
+-
+- It doesn't work at all well without dynamic areas, since it can't change its
+- memory allocation once running. Hence you should edit "!Vim.GVim" and
+- "!Vim.!RunTxt" to choose the best size for you. You probably need at least
+- about 1400K.
+-
+- ==============================================================================
+- *riscos-filetypes*
+- 9. Filetypes
+-
+- You can now specify that autocommands are only executed for files of certain
+- types. The filetype is given in the form &xxx, when xxx is the filetype.
+-
+- Filetypes must be specified by number (e.g. &fff for Text).
+-
+- The system has changed from version 5.3. The new sequence of events is:
+-
+- - A file is loaded. |'osfiletype'| is set to the RISC OS filetype.
+- - Based on the filetype and pathname, Vim will try to set |'filetype'| to the
+- Vim-type of the file.
+- - Setting this option may load syntax files and perform other actions.
+- - Saving the file will give it a filetype of |'osfiletype'|.
+-
+- Some examples may make this clearer:
+-
+- Kind of file loaded osfiletype filetype ~
+- C code "c.hellow" Text (&fff) C
+- LaTeX document LaTeX (&2a8) TeX
+- Draw document DrawFile (&aff) (not changed)
+-
+- ==============================================================================
+- *riscos-shell*
+- 10. The shell
+-
+- - Bangs (!s) are only replaced if they are followed by a space or end-of-line,
+- since many pathnames contain them.
+-
+- - You can prefix the command with "~", which stops any output from being
+- displayed. This also means that you don't have to press <Enter> afterwards,
+- and stops the screen from being redrawn. {only in the GUI version}
+-
+- ==============================================================================
+- *riscos-porting*
+- 11. Porting new releases to RISC OS
+-
+- Downloading everything you need:
+-
+- - Get the latest source distribution (see www.vim.org)
+- - Get the runtime environment files (e.g. these help files)
+- - Get the RISC OS binary distribution (if possible)
+-
+-
+- Unarchiving:
+-
+- - Create a raFS disk and put the archives on it
+- - Un-gzip them
+- - Un-tar them (*tar xELf 50 archive/tar)
+-
+-
+- Recompiling the sources:
+-
+- - Create c, s, and h directories.
+- - Put all the header files in "h". \
+- - Put all the C files in "c". | And lose the extensions
+- - Put the assembler file ("swis/s") in "s". /
+- - Rename all the files in "proto" to "h", like this:
+- raFS::VimSrc.source.proto.file/pro
+- becomes
+- raFS::VimSrc.source.h.file_pro
+- - In the files "h.proto" and "c.termlib", search and replace
+- .pro"
+- with
+- _pro.h"
+- - Create a simple Makefile if desired and do "*make -k".
+- Use "CC = gcc -DRISCOS -DUSE_GUI -O2 -x c" in the Makefile.
+- - Save the binary as !Vim.Vim in the binary distribution.
+-
+-
+- Updating the run-time environment:
+-
+- - Replace old or missing files inside !Vim.Resources with the
+- new files.
+- - Remove files in "doc" not ending in "/txt", except for "tags".
+- - Lose the extensions from the files in "doc".
+- - Edit the "doc.tags" file. Remove extensions from the second column: >
+- :%s/^\(.[^\t]*\t.*\)\.txt\t/\1\t/
+- - Remove extensions from the syntax files. Split them into two directories
+- to avoid the 77 entry limit on old ADFS filesystems.
+- - Edit "Vim:FileType" to match "*.c.*" as well as "*/c" and so on.
+- Add filetype checking too.
+- - Edit "Vim:Menu" and remove all the keys from the menus: >
+- :%s/<Tab>[^ \t]*//
+- <
+ vim:tw=78:ts=8:ft=help:norl:
+--- 1,12 ----
+! *os_risc.txt* For Vim version 7.3. Last change: 2011 May 10
+
+
+ VIM REFERENCE MANUAL by Thomas Leonard
+
+
+ *riscos* *RISCOS* *RISC-OS*
+! The RISC OS support has been removed from Vim with patch 7.3.187.
+! If you would like to use Vim on RISC OS get the files from before that patch.
+
+
+ vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.3.186/src/version.c 2011-05-10 16:12:40.000000000 +0200
+--- src/version.c 2011-05-10 16:37:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 187,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+81. At social functions you introduce your husband as "my domain server."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.188 b/source/ap/vim/patches/7.3.188
new file mode 100644
index 000000000..f58454304
--- /dev/null
+++ b/source/ap/vim/patches/7.3.188
@@ -0,0 +1,184 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.188
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.188
+Problem: More RISC OS files to remove.
+Solution: Remove them. Update the file list.
+Files: src/proto/gui_riscos.pro, src/proto/os_riscos.pro, Filelist
+
+
+*** ../vim-7.3.187/src/proto/gui_riscos.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_riscos.pro 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,66 ****
+- /* Prototypes for gui_riscos.c
+- * Based on gui_x11_pro.h (10 March 2002 version)
+- */
+- void gui_mch_prepare __ARGS((int *argc, char **argv));
+- int gui_mch_init_check __ARGS((void));
+- int gui_mch_init __ARGS((void));
+- void gui_mch_uninit __ARGS((void));
+- void gui_mch_new_colors __ARGS((void));
+- int gui_mch_open __ARGS((void));
+- void gui_init_tooltip_font __ARGS((void));
+- void gui_init_menu_font __ARGS((void));void gui_mch_exit __ARGS((int rc));
+- int gui_mch_get_winpos __ARGS((int *x, int *y));
+- void gui_mch_set_winpos __ARGS((int x, int y));
+- void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height));
+- void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+- int gui_mch_init_font __ARGS((char_u *font_name, int do_fontset));
+- GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
+- int gui_mch_adjust_charheight __ARGS((void));
+- void gui_mch_set_font __ARGS((GuiFont font));
+- void gui_mch_set_fontset __ARGS((GuiFontset fontset));
+- void gui_mch_free_font __ARGS((GuiFont font));
+- void gui_mch_free_fontset __ARGS((GuiFontset fontset));
+- GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int giveErrorIfMissing, int fixed_width));
+- guicolor_T gui_mch_get_color __ARGS((char_u *reqname));
+- void gui_mch_set_fg_color __ARGS((guicolor_T color));
+- void gui_mch_set_bg_color __ARGS((guicolor_T color));
+- void gui_mch_draw_string __ARGS((int row, int col, char_u *s, int len, int flags));
+- int gui_mch_haskey __ARGS((char_u *name));
+- void gui_mch_beep __ARGS((void));
+- void gui_mch_flash __ARGS((int msec));
+- void gui_mch_invert_rectangle __ARGS((int r, int c, int nr, int nc));
+- void gui_mch_iconify __ARGS((void));
+- void gui_mch_set_foreground __ARGS((void));
+- void gui_mch_draw_hollow_cursor __ARGS((guicolor_T color));
+- void gui_mch_draw_part_cursor __ARGS((int w, int h, guicolor_T color));
+- void gui_mch_update __ARGS((void));
+- int gui_mch_wait_for_chars __ARGS((long wtime));
+- void gui_mch_flush __ARGS((void));
+- void gui_mch_clear_block __ARGS((int row1, int col1, int row2, int col2));
+- void gui_mch_clear_all __ARGS((void));
+- void gui_mch_delete_lines __ARGS((int row, int num_lines));
+- void gui_mch_insert_lines __ARGS((int row, int num_lines));
+- void clip_mch_lose_selection __ARGS((VimClipboard *cbd));
+- int clip_mch_own_selection __ARGS((VimClipboard *cbd));
+- void clip_mch_request_selection __ARGS((VimClipboard *cbd));
+- void clip_mch_set_selection __ARGS((VimClipboard *cbd));
+- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
+- void gui_mch_menu_hidden __ARGS((vimmenu_T *menu, int hidden));
+- void gui_mch_draw_menubar __ARGS((void));
+- void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+- void gui_mch_stop_blink __ARGS((void));
+- void gui_mch_start_blink __ARGS((void));
+- void process_event __ARGS((int event, int *block));
+- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+- long_u gui_mch_get_rgb __ARGS((guicolor_T pixel));
+- void gui_mch_getmouse __ARGS((int *x, int *y));
+- void gui_mch_setmouse __ARGS((int x, int y));
+- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
+- void gui_mch_destroy_sign __ARGS((XImage *sign));
+- void gui_mch_mousehide __ARGS((int hide));
+- void mch_set_mouse_shape __ARGS((int shape));
+- void gui_mch_menu_set_tip __ARGS((vimmenu_T *menu));
+-
+- void ro_redraw_title __ARGS((int window));
+- int ro_ok_to_quit __ARGS((void));
+- /* vim: set ft=c : */
+--- 0 ----
+*** ../vim-7.3.187/src/proto/os_riscos.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/os_riscos.pro 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,49 ****
+- /* os_riscos.c */
+- void mch_write __ARGS((char_u *s, int len));
+- int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
+- int mch_char_avail __ARGS((void));
+- long_u mch_avail_mem __ARGS((int special));
+- void mch_delay __ARGS((long msec, int ignoreinput));
+- void mch_suspend __ARGS((void));
+- void mch_init __ARGS((void));
+- int mch_check_win __ARGS((int argc, char **argv));
+- int mch_input_isatty __ARGS((void));
+- int mch_can_restore_title __ARGS((void));
+- int mch_can_restore_icon __ARGS((void));
+- void mch_settitle __ARGS((char_u *title, char_u *icon));
+- void mch_restore_title __ARGS((int which));
+- int mch_get_user_name __ARGS((char_u *s, int len));
+- void mch_get_host_name __ARGS((char_u *s, int len));
+- long mch_get_pid __ARGS((void));
+- int mch_dirname __ARGS((char_u *buf, int len));
+- int mch_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+- int mch_isFullName __ARGS((char_u *fname));
+- long mch_getperm __ARGS((char_u *name));
+- int mch_setperm __ARGS((char_u *name, long perm));
+- void mch_hide __ARGS((char_u *name));
+- int mch_isdir __ARGS((char_u *name));
+- int mch_can_exe __ARGS((char_u *name));
+- int mch_nodetype __ARGS((char_u *name));
+- void mch_early_init __ARGS((void));
+- void mch_exit __ARGS((int r));
+- void mch_settmode __ARGS((int tmode));
+- void mch_setmouse __ARGS((int on));
+- int mch_screenmode __ARGS((char_u *arg));
+- int mch_get_shellsize __ARGS((void));
+- void mch_set_shellsize __ARGS((void));
+- void mch_new_shellsize __ARGS((void));
+- int mch_call_shell __ARGS((char_u *cmd, int options));
+- void mch_breakcheck __ARGS((void));
+- int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags));
+- int expand_section __ARGS((garray_T *gap, char_u *root, char_u *rest, int flags));
+- int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+- int mch_has_exp_wildcard __ARGS((char_u *p));
+- int mch_has_wildcard __ARGS((char_u *p));
+- int mch_remove __ARGS((char_u *file));
+- char_u *mch_munge_fname __ARGS((char_u *fname));
+- int ro_buflist_add __ARGS((char_u *old_name));
+- int mch_chdir __ARGS((char_u *dir));
+- void mch_read_filetype __ARGS((char_u *file));
+- void mch_set_filetype __ARGS((char_u *file, char_u *type));
+- int mch_check_filetype __ARGS((char_u *fname, char_u *type));
+- /* vim: set ft=c : */
+--- 0 ----
+*** ../vim-7.3.187/Filelist 2011-03-22 18:10:34.000000000 +0100
+--- Filelist 2011-05-10 17:19:21.000000000 +0200
+***************
+*** 428,435 ****
+ README_os390.txt \
+ src/Make_mint.mak \
+ src/Make_ro.mak \
+- src/gui_riscos.c \
+- src/gui_riscos.h \
+ src/if_sniff.c \
+ src/infplist.xml \
+ src/link.390 \
+--- 428,433 ----
+***************
+*** 437,446 ****
+ src/os_beos.h \
+ src/os_beos.rsrc \
+ src/os_mint.h \
+- src/os_riscos.c \
+- src/os_riscos.h \
+- src/proto/gui_riscos.pro \
+- src/proto/os_riscos.pro \
+ src/os_vms_fix.com \
+ src/toolbar.phi \
+
+--- 435,440 ----
+*** ../vim-7.3.187/src/version.c 2011-05-10 16:41:13.000000000 +0200
+--- src/version.c 2011-05-10 17:20:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 188,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+83. Batteries in the TV remote now last for months.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.189 b/source/ap/vim/patches/7.3.189
new file mode 100644
index 000000000..f7a9667c7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.189
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.189
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.189 (after 7.3.186)
+Problem: Can't build without +clipboard feature. (Christian Ebert)
+Solution: Add the missing #ifdef.
+Files: src/normal.c
+
+
+*** ../vim-7.3.188/src/normal.c 2011-05-10 16:12:40.000000000 +0200
+--- src/normal.c 2011-05-10 17:25:26.000000000 +0200
+***************
+*** 1204,1212 ****
+--- 1204,1215 ----
+ #ifdef FEAT_EVAL
+ {
+ int regname = 0;
++
+ /* Adjust the register according to 'clipboard', so that when
+ * "unnamed" is present it becomes '*' or '+' instead of '"'. */
++ # ifdef FEAT_CLIPBOARD
+ adjust_clip_reg(&regname);
++ # endif
+ set_reg_var(regname);
+ }
+ #endif
+*** ../vim-7.3.188/src/version.c 2011-05-10 17:21:34.000000000 +0200
+--- src/version.c 2011-05-10 17:29:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 189,
+ /**/
+
+--
+If your nose runs, and your feet smell, you might be upside down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.190 b/source/ap/vim/patches/7.3.190
new file mode 100644
index 000000000..4adef8ab0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.190
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.190
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.190
+Problem: When there is a "containedin" syntax argument highlighting may be
+ wrong. (Radek)
+Solution: Reset current_next_list. (Ben Schmidt)
+Files: src/syntax.c
+
+
+*** ../vim-7.3.189/src/syntax.c 2011-04-11 16:56:29.000000000 +0200
+--- src/syntax.c 2011-05-19 12:02:43.000000000 +0200
+***************
+*** 2566,2571 ****
+--- 2566,2574 ----
+ #endif
+ update_si_attr(current_state.ga_len - 1);
+
++ /* nextgroup= should not match in the end pattern */
++ current_next_list = NULL;
++
+ /* what matches next may be different now, clear it */
+ next_match_idx = 0;
+ next_match_col = MAXCOL;
+*** ../vim-7.3.189/src/version.c 2011-05-10 17:29:28.000000000 +0200
+--- src/version.c 2011-05-19 12:13:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 190,
+ /**/
+
+--
+From "know your smileys":
+ :'-D Laughing so much that they're crying
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.191 b/source/ap/vim/patches/7.3.191
new file mode 100644
index 000000000..14b63cea0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.191
@@ -0,0 +1,526 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.191
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.191
+Problem: Still some RISC OS stuff to remove.
+Solution: Remove files and lines. (Hong Xu)
+ Remove the 'osfiletype' option code.
+Files: README_extra.txt, src/Make_ro.mak, src/INSTALL, src/Makefile,
+ src/buffer.c, src/eval.c, src/feature.h, src/option.c,
+ src/option.h, src/structs.h, src/version.c, src/pty.c, Filelist
+
+
+*** ../vim-7.3.190/README_extra.txt 2010-08-15 21:57:32.000000000 +0200
+--- README_extra.txt 2011-05-19 12:35:16.000000000 +0200
+***************
+*** 13,21 ****
+
+ src/os_amiga.* Files for the Amiga port.
+
+- src/gui_riscos.*
+- src/os_riscos.* Files for the RISC OS port.
+-
+ src/gui_beos.*
+ src/os_beos.* Files for the BeOS port.
+
+--- 13,18 ----
+*** ../vim-7.3.190/src/Make_ro.mak 2010-08-15 21:57:27.000000000 +0200
+--- src/Make_ro.mak 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,135 ****
+- #
+- # Makefile for Vim on RISC OS - Andy Wingate
+- #
+-
+- GCC = gcc -mthrowback
+- CFLAGS = -DRISCOS -DFEAT_GUI
+- CC = $(GCC) $(CFLAGS) -O2
+- # -DUP_BC_PC_EXTERN for term.c needed as BC defined in termlib.c and term.c
+-
+- TERMFLAG = -DUP_BC_PC_EXTERN
+-
+- ASMFLAGS = -throwback -objasm -gcc
+-
+- OBJS = o.buffer o.charset o.diff o.digraph o.edit o.eval o.ex_cmds o.ex_cmds2 \
+- o.ex_docmd o.ex_eval o.ex_getln o.fileio o.fold o.getchar \
+- o.hardcopy o.hashtab o.main o.mark o.mbyte \
+- o.memfile o.memline o.menu o.message o.misc1 o.misc2 o.move \
+- o.normal o.ops o.option o.popupmnu o.quickfix o.regexp o.screen \
+- o.search \
+- o.spell o.syntax o.tag o.term o.termlib o.ui o.undo o.version \
+- o.window o.os_riscos o.swis o.gui o.gui_riscos
+-
+- Vim: $(OBJS)
+- $(GCC) -o Vim $(OBJS)
+-
+- install: Vim
+- squeeze -v Vim @.!Vim.Vim
+-
+- clean:
+- create o.!fake! 0
+- wipe o.* ~cf
+- remove Vim
+-
+- o.swis: s.swis
+- as $(ASMFLAGS) -o o.swis s.swis
+-
+- # Rules for object files
+-
+- o.%: c.%
+- $(CC) -c $< -o $@
+-
+- o.buffer: c.buffer
+-
+- o.charset: c.charset
+-
+- o.digraph: c.digraph
+-
+- o.diff: c.diff
+-
+- o.edit: c.edit
+-
+- o.eval: c.eval
+-
+- o.ex_cmds: c.ex_cmds
+-
+- o.ex_cmds2: c.ex_cmds2
+-
+- o.ex_docmd: c.ex_docmd
+-
+- o.ex_eval: c.ex_eval
+-
+- o.ex_getln: c.ex_getln
+-
+- o.fileio: c.fileio
+-
+- o.fold: c.fold
+-
+- o.getchar: c.getchar
+-
+- o.hardcopy: c.hardcopy
+-
+- o.hashtab: c.hashtab
+-
+- o.gui: c.gui
+-
+- o.gui_riscos: c.gui_riscos
+-
+- o.main: c.main
+-
+- o.mark: c.mark
+-
+- o.mbyte: c.mbyte
+-
+- o.memfile: c.memfile
+-
+- o.memline: c.memline
+-
+- o.menu: c.menu
+-
+- o.message: c.message
+-
+- o.misc1: c.misc1
+-
+- o.misc2: c.misc2
+-
+- o.move: c.move
+-
+- o.normal: c.normal
+-
+- o.ops: c.ops
+-
+- o.option: c.option
+-
+- o.os_riscos: c.os_riscos
+-
+- o.pty: c.pty
+-
+- o.popupmnu: c.popupmnu
+-
+- o.quickfix: c.quickfix
+-
+- o.regexp: c.regexp
+-
+- o.screen: c.screen
+-
+- o.search: c.search
+-
+- o.spell: c.spell
+-
+- o.syntax: c.syntax
+-
+- o.tag: c.tag
+-
+- o.term: c.term
+- $(CC) $(TERMFLAG) -c c.term -o o.term
+-
+- o.termlib: c.termlib
+-
+- o.ui: c.ui
+-
+- o.undo: c.undo
+-
+- o.version: c.version
+-
+- o.window: c.window
+--- 0 ----
+*** ../vim-7.3.190/src/INSTALL 2010-08-15 21:57:28.000000000 +0200
+--- src/INSTALL 2011-05-19 12:36:17.000000000 +0200
+***************
+*** 6,14 ****
+ Contents:
+ 1. Generic
+ 2. Unix
+! 3. RISC OS
+! 4. OS/2 (with EMX 0.9b)
+! 5. Atari MiNT
+
+ See INSTALLami.txt for Amiga
+ See INSTALLmac.txt for Macintosh
+--- 6,13 ----
+ Contents:
+ 1. Generic
+ 2. Unix
+! 3. OS/2 (with EMX 0.9b)
+! 4. Atari MiNT
+
+ See INSTALLami.txt for Amiga
+ See INSTALLmac.txt for Macintosh
+***************
+*** 174,198 ****
+ ./configure --without-local-dir
+
+
+! 3. RISC OS
+! =============
+!
+! Much file renaming is needed before you can compile anything.
+! You'll need UnixLib to link against, GCC and GNU make.
+!
+! I suggest you get the RISC OS binary distribution, which includes the
+! Templates file and the loader.
+!
+! Try here: http://www.ecs.soton.ac.uk/~tal197
+!
+! Do
+! :help riscos
+!
+! within the editor for more information, or read the
+! ../runtime/doc/os_risc.txt help file.
+!
+!
+! 4. OS/2
+ =======
+
+ Summary:
+--- 173,179 ----
+ ./configure --without-local-dir
+
+
+! 3. OS/2
+ =======
+
+ Summary:
+***************
+*** 237,243 ****
+ Check ../runtime/doc/os_os2.txt for additional info on running Vim.
+
+
+! 5. Atari MiNT
+ =============
+
+ [NOTE: this is quite old, it might not work anymore]
+--- 218,224 ----
+ Check ../runtime/doc/os_os2.txt for additional info on running Vim.
+
+
+! 4. Atari MiNT
+ =============
+
+ [NOTE: this is quite old, it might not work anymore]
+*** ../vim-7.3.190/src/Makefile 2011-04-01 13:05:37.000000000 +0200
+--- src/Makefile 2011-05-19 12:37:52.000000000 +0200
+***************
+*** 29,35 ****
+ # - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
+ # want to disable using X11 libraries. This speeds up starting Vim,
+ # but the window title will not be set and the X11 selection can not
+! # used.
+ # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
+ # X11 Session Management Protocol (XSMP) library (libSM) but do not
+ # want to use it.
+--- 29,35 ----
+ # - Uncomment the line "CONF_OPT_X = --without-x" if you have X11 but
+ # want to disable using X11 libraries. This speeds up starting Vim,
+ # but the window title will not be set and the X11 selection can not
+! # be used.
+ # - Uncomment the line "CONF_OPT_XSMP = --disable-xsmp" if you have the
+ # X11 Session Management Protocol (XSMP) library (libSM) but do not
+ # want to use it.
+***************
+*** 730,741 ****
+ ### USL for Unix Systems Laboratories (SYSV 4.2)
+ #EXTRA_DEFS = -DUSL
+
+- ### RISCos on MIPS without X11
+- #EXTRA_DEFS = -DMIPS
+-
+- ### RISCos on MIPS with X11
+- #EXTRA_LIBS = -lsun
+-
+ ### (6) A/UX 3.1.1 with gcc (Jim Jagielski)
+ #CC= gcc -D_POSIX_SOURCE
+ #CFLAGS= -O2
+--- 730,735 ----
+***************
+*** 1633,1639 ****
+ RSRC_DIR = os_mac_rsrc
+
+ PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
+! os_mswin.pro os_beos.pro os_vms.pro os_riscos.pro $(PERL_PRO)
+
+ # Default target is making the executable and tools
+ all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
+--- 1627,1633 ----
+ RSRC_DIR = os_mac_rsrc
+
+ PRO_MANUAL = os_amiga.pro os_msdos.pro os_win16.pro os_win32.pro \
+! os_mswin.pro os_beos.pro os_vms.pro $(PERL_PRO)
+
+ # Default target is making the executable and tools
+ all: $(VIMTARGET) $(TOOLS) languages $(GUI_BUNDLE)
+*** ../vim-7.3.190/src/buffer.c 2011-05-05 17:32:40.000000000 +0200
+--- src/buffer.c 2011-05-19 13:09:25.000000000 +0200
+***************
+*** 1808,1816 ****
+ #ifdef FEAT_AUTOCMD
+ clear_string_option(&buf->b_p_ft);
+ #endif
+- #ifdef FEAT_OSFILETYPE
+- clear_string_option(&buf->b_p_oft);
+- #endif
+ #ifdef FEAT_CINDENT
+ clear_string_option(&buf->b_p_cink);
+ clear_string_option(&buf->b_p_cino);
+--- 1808,1813 ----
+*** ../vim-7.3.190/src/eval.c 2011-05-10 16:41:13.000000000 +0200
+--- src/eval.c 2011-05-19 13:09:43.000000000 +0200
+***************
+*** 12076,12084 ****
+ #ifdef FEAT_OLE
+ "ole",
+ #endif
+- #ifdef FEAT_OSFILETYPE
+- "osfiletype",
+- #endif
+ #ifdef FEAT_PATH_EXTRA
+ "path_extra",
+ #endif
+--- 12076,12081 ----
+*** ../vim-7.3.190/src/feature.h 2010-08-15 21:57:31.000000000 +0200
+--- src/feature.h 2011-05-19 13:09:56.000000000 +0200
+***************
+*** 506,520 ****
+ #endif
+
+ /*
+- * +osfiletype filetype checking in autocommand patterns.
+- * Only on systems that support filetypes (RISC OS).
+- */
+- #if 0
+- # define FEAT_OSFILETYPE
+- # define DFLT_OFT "Text"
+- #endif
+-
+- /*
+ * +viminfo reading/writing the viminfo file. Takes about 8Kbyte
+ * of code.
+ * VIMINFO_FILE Location of user .viminfo file (should start with $).
+--- 506,511 ----
+*** ../vim-7.3.190/src/option.c 2011-04-28 17:24:54.000000000 +0200
+--- src/option.c 2011-05-19 13:11:42.000000000 +0200
+***************
+*** 140,148 ****
+ #define PV_MOD OPT_BUF(BV_MOD)
+ #define PV_MPS OPT_BUF(BV_MPS)
+ #define PV_NF OPT_BUF(BV_NF)
+- #ifdef FEAT_OSFILETYPE
+- # define PV_OFT OPT_BUF(BV_OFT)
+- #endif
+ #ifdef FEAT_COMPL_FUNC
+ # define PV_OFU OPT_BUF(BV_OFU)
+ #endif
+--- 140,145 ----
+***************
+*** 337,345 ****
+ static int p_mod;
+ static char_u *p_mps;
+ static char_u *p_nf;
+- #ifdef FEAT_OSFILETYPE
+- static char_u *p_oft;
+- #endif
+ static int p_pi;
+ #ifdef FEAT_TEXTOBJ
+ static char_u *p_qe;
+--- 334,339 ----
+***************
+*** 1901,1914 ****
+ (char_u *)NULL, PV_NONE,
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+ {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF,
+- #ifdef FEAT_OSFILETYPE
+- (char_u *)&p_oft, PV_OFT,
+- {(char_u *)DFLT_OFT, (char_u *)0L}
+- #else
+ (char_u *)NULL, PV_NONE,
+! {(char_u *)0L, (char_u *)0L}
+! #endif
+! SCRIPTID_INIT},
+ {"paragraphs", "para", P_STRING|P_VI_DEF,
+ (char_u *)&p_para, PV_NONE,
+ {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
+--- 1895,1902 ----
+ (char_u *)NULL, PV_NONE,
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+ {"osfiletype", "oft", P_STRING|P_ALLOCED|P_VI_DEF,
+ (char_u *)NULL, PV_NONE,
+! {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+ {"paragraphs", "para", P_STRING|P_VI_DEF,
+ (char_u *)&p_para, PV_NONE,
+ {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
+***************
+*** 5282,5290 ****
+ #ifdef FEAT_AUTOCMD
+ check_string_option(&buf->b_p_ft);
+ #endif
+- #ifdef FEAT_OSFILETYPE
+- check_string_option(&buf->b_p_oft);
+- #endif
+ #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+ check_string_option(&buf->b_p_cinw);
+ #endif
+--- 5270,5275 ----
+***************
+*** 9665,9673 ****
+ case PV_MA: return (char_u *)&(curbuf->b_p_ma);
+ case PV_MOD: return (char_u *)&(curbuf->b_changed);
+ case PV_NF: return (char_u *)&(curbuf->b_p_nf);
+- #ifdef FEAT_OSFILETYPE
+- case PV_OFT: return (char_u *)&(curbuf->b_p_oft);
+- #endif
+ case PV_PI: return (char_u *)&(curbuf->b_p_pi);
+ #ifdef FEAT_TEXTOBJ
+ case PV_QE: return (char_u *)&(curbuf->b_p_qe);
+--- 9650,9655 ----
+***************
+*** 10018,10026 ****
+ /* Don't copy 'filetype', it must be detected */
+ buf->b_p_ft = empty_option;
+ #endif
+- #ifdef FEAT_OSFILETYPE
+- buf->b_p_oft = vim_strsave(p_oft);
+- #endif
+ buf->b_p_pi = p_pi;
+ #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
+ buf->b_p_cinw = vim_strsave(p_cinw);
+--- 10000,10005 ----
+*** ../vim-7.3.190/src/option.h 2011-02-12 13:59:55.000000000 +0100
+--- src/option.h 2011-05-19 13:11:46.000000000 +0200
+***************
+*** 984,992 ****
+ , BV_MOD
+ , BV_MPS
+ , BV_NF
+- #ifdef FEAT_OSFILETYPE
+- , BV_OFT
+- #endif
+ #ifdef FEAT_COMPL_FUNC
+ , BV_OFU
+ #endif
+--- 984,989 ----
+*** ../vim-7.3.190/src/structs.h 2011-05-10 16:41:13.000000000 +0200
+--- src/structs.h 2011-05-19 13:11:58.000000000 +0200
+***************
+*** 1530,1538 ****
+ int b_p_ml_nobin; /* b_p_ml saved for binary mode */
+ int b_p_ma; /* 'modifiable' */
+ char_u *b_p_nf; /* 'nrformats' */
+- #ifdef FEAT_OSFILETYPE
+- char_u *b_p_oft; /* 'osfiletype' */
+- #endif
+ int b_p_pi; /* 'preserveindent' */
+ #ifdef FEAT_TEXTOBJ
+ char_u *b_p_qe; /* 'quoteescape' */
+--- 1530,1535 ----
+*** ../vim-7.3.190/src/version.c 2011-05-19 12:14:03.000000000 +0200
+--- src/version.c 2011-05-19 13:26:42.000000000 +0200
+***************
+*** 426,436 ****
+ "-ole",
+ # endif
+ #endif
+- #ifdef FEAT_OSFILETYPE
+- "+osfiletype",
+- #else
+- "-osfiletype",
+- #endif
+ #ifdef FEAT_PATH_EXTRA
+ "+path_extra",
+ #else
+--- 426,431 ----
+*** ../vim-7.3.190/src/pty.c 2011-04-11 14:24:33.000000000 +0200
+--- src/pty.c 2011-05-19 12:43:26.000000000 +0200
+***************
+*** 123,130 ****
+ static void initmaster __ARGS((int));
+
+ /*
+! * Open all ptys with O_NOCTTY, just to be on the safe side
+! * (RISCos mips breaks otherwise)
+ */
+ #ifndef O_NOCTTY
+ # define O_NOCTTY 0
+--- 123,129 ----
+ static void initmaster __ARGS((int));
+
+ /*
+! * Open all ptys with O_NOCTTY, just to be on the safe side.
+ */
+ #ifndef O_NOCTTY
+ # define O_NOCTTY 0
+*** ../vim-7.3.190/Filelist 2011-05-10 17:21:34.000000000 +0200
+--- Filelist 2011-05-19 13:37:25.000000000 +0200
+***************
+*** 427,433 ****
+ $(SRC_VMS) \
+ README_os390.txt \
+ src/Make_mint.mak \
+- src/Make_ro.mak \
+ src/if_sniff.c \
+ src/infplist.xml \
+ src/link.390 \
+--- 427,432 ----
+*** ../vim-7.3.190/src/version.c 2011-05-19 12:14:03.000000000 +0200
+--- src/version.c 2011-05-19 13:26:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 191,
+ /**/
+
+--
+From "know your smileys":
+ :-& Eating spaghetti
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.192 b/source/ap/vim/patches/7.3.192
new file mode 100644
index 000000000..5dab19b49
--- /dev/null
+++ b/source/ap/vim/patches/7.3.192
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.192
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.192
+Problem: Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
+ (Dominique Pelle)
+Solution: Advance over whole character instead of one byte.
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.191/src/ex_cmds.c 2011-05-10 16:41:13.000000000 +0200
+--- src/ex_cmds.c 2011-05-19 14:23:33.000000000 +0200
+***************
+*** 4625,4631 ****
+ * for a match in this line again. */
+ skip_match = TRUE;
+ else
+! ++matchcol; /* search for a match at next column */
+ goto skip;
+ }
+
+--- 4625,4639 ----
+ * for a match in this line again. */
+ skip_match = TRUE;
+ else
+! {
+! /* search for a match at next column */
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! matchcol += mb_ptr2len(sub_firstline + matchcol);
+! else
+! #endif
+! ++matchcol;
+! }
+ goto skip;
+ }
+
+*** ../vim-7.3.191/src/version.c 2011-05-19 13:40:47.000000000 +0200
+--- src/version.c 2011-05-19 14:28:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 192,
+ /**/
+
+--
+From "know your smileys":
+ :-F Bucktoothed vampire with one tooth missing
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.193 b/source/ap/vim/patches/7.3.193
new file mode 100644
index 000000000..acee9ec0e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.193
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.193
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.193
+Problem: In the command line window ":close" doesn't work properly. (Tony
+ Mechelynck)
+Solution: Use Ctrl_C instead of K_IGNORE for cmdwin_result. (Jean-Rene
+ David)
+Files: src/ex_docmd.c, src/ex_getln.c
+
+
+*** ../vim-7.3.192/src/ex_docmd.c 2011-05-10 16:41:13.000000000 +0200
+--- src/ex_docmd.c 2011-05-19 14:42:56.000000000 +0200
+***************
+*** 6472,6478 ****
+ {
+ # ifdef FEAT_CMDWIN
+ if (cmdwin_type != 0)
+! cmdwin_result = K_IGNORE;
+ else
+ # endif
+ if (!text_locked()
+--- 6472,6478 ----
+ {
+ # ifdef FEAT_CMDWIN
+ if (cmdwin_type != 0)
+! cmdwin_result = Ctrl_C;
+ else
+ # endif
+ if (!text_locked()
+*** ../vim-7.3.192/src/ex_getln.c 2011-04-28 17:21:49.000000000 +0200
+--- src/ex_getln.c 2011-05-19 14:42:56.000000000 +0200
+***************
+*** 6324,6329 ****
+--- 6324,6335 ----
+ ccline.cmdbuff = vim_strsave((char_u *)"qa");
+ cmdwin_result = CAR;
+ }
++ else if (cmdwin_result == Ctrl_C)
++ {
++ /* :q or :close, don't execute any command
++ * and don't modify the cmd window. */
++ ccline.cmdbuff = NULL;
++ }
+ else
+ ccline.cmdbuff = vim_strsave(ml_get_curline());
+ if (ccline.cmdbuff == NULL)
+*** ../vim-7.3.192/src/version.c 2011-05-19 14:30:07.000000000 +0200
+--- src/version.c 2011-05-19 14:48:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 193,
+ /**/
+
+--
+There's no place like $(HOME)!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.194 b/source/ap/vim/patches/7.3.194
new file mode 100644
index 000000000..5a73c0098
--- /dev/null
+++ b/source/ap/vim/patches/7.3.194
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.194
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.194
+Problem: When "b" is a symlink to directory "a", resolve("b/") doesn't
+ result in "a/". (ZyX)
+Solution: Remove the trailing slash. (Jean-Rene David)
+Files: src/eval.c
+
+
+*** ../vim-7.3.193/src/eval.c 2011-05-19 13:40:47.000000000 +0200
+--- src/eval.c 2011-05-19 14:55:27.000000000 +0200
+***************
+*** 14980,14986 ****
+--- 14980,14989 ----
+
+ len = STRLEN(p);
+ if (len > 0 && after_pathsep(p, p + len))
++ {
+ has_trailing_pathsep = TRUE;
++ p[len - 1] = NUL; /* the trailing slash breaks readlink() */
++ }
+
+ q = getnextcomp(p);
+ if (*q != NUL)
+*** ../vim-7.3.193/src/version.c 2011-05-19 14:50:49.000000000 +0200
+--- src/version.c 2011-05-19 14:54:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 194,
+ /**/
+
+--
+Momento mori, ergo carpe diem
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.195 b/source/ap/vim/patches/7.3.195
new file mode 100644
index 000000000..ba1fc2192
--- /dev/null
+++ b/source/ap/vim/patches/7.3.195
@@ -0,0 +1,199 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.195
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.195
+Problem: "} else" causes following lines to be indented too much. (Rouben
+ Rostamian)
+Solution: Better detection for the "else". (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.194/src/misc1.c 2011-05-10 16:41:13.000000000 +0200
+--- src/misc1.c 2011-05-19 16:30:28.000000000 +0200
+***************
+*** 5482,5489 ****
+ * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+ * '}'.
+ * Don't consider "} else" a terminated line.
+! * Don't consider a line where there are unmatched opening braces before '}',
+! * ';' or ',' a terminated line.
+ * Return the character terminating the line (ending char's have precedence if
+ * both apply in order to determine initializations).
+ */
+--- 5482,5489 ----
+ * Recognize a line that starts with '{' or '}', or ends with ';', ',', '{' or
+ * '}'.
+ * Don't consider "} else" a terminated line.
+! * If a line begins with an "else", only consider it terminated if no unmatched
+! * opening braces follow (handle "else { foo();" correctly).
+ * Return the character terminating the line (ending char's have precedence if
+ * both apply in order to determine initializations).
+ */
+***************
+*** 5493,5513 ****
+ int incl_open; /* include '{' at the end as terminator */
+ int incl_comma; /* recognize a trailing comma */
+ {
+! char_u found_start = 0;
+! unsigned n_open = 0;
+
+ s = cin_skipcomment(s);
+
+ if (*s == '{' || (*s == '}' && !cin_iselse(s)))
+ found_start = *s;
+
+ while (*s)
+ {
+ /* skip over comments, "" strings and 'c'haracters */
+ s = skip_string(cin_skipcomment(s));
+ if (*s == '}' && n_open > 0)
+ --n_open;
+! if (n_open == 0
+ && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+ && cin_nocode(s + 1))
+ return *s;
+--- 5493,5517 ----
+ int incl_open; /* include '{' at the end as terminator */
+ int incl_comma; /* recognize a trailing comma */
+ {
+! char_u found_start = 0;
+! unsigned n_open = 0;
+! int is_else = FALSE;
+
+ s = cin_skipcomment(s);
+
+ if (*s == '{' || (*s == '}' && !cin_iselse(s)))
+ found_start = *s;
+
++ if (!found_start)
++ is_else = cin_iselse(s);
++
+ while (*s)
+ {
+ /* skip over comments, "" strings and 'c'haracters */
+ s = skip_string(cin_skipcomment(s));
+ if (*s == '}' && n_open > 0)
+ --n_open;
+! if ((!is_else || n_open == 0)
+ && (*s == ';' || *s == '}' || (incl_comma && *s == ','))
+ && cin_nocode(s + 1))
+ return *s;
+*** ../vim-7.3.194/src/testdir/test3.in 2011-05-10 13:38:23.000000000 +0200
+--- src/testdir/test3.in 2011-05-19 16:29:01.000000000 +0200
+***************
+*** 1345,1351 ****
+
+ STARTTEST
+ :set cino&
+! 2kdd=][
+ ENDTEST
+
+ void func(void)
+--- 1345,1351 ----
+
+ STARTTEST
+ :set cino&
+! 2kdd=4][
+ ENDTEST
+
+ void func(void)
+***************
+*** 1359,1364 ****
+--- 1359,1392 ----
+ printf("Foo!\n");
+ }
+
++ void func1(void)
++ {
++ char* tab[] = {"foo", "bar",
++ "baz", "quux",
++ "this line used", "to be indented incorrectly"};
++ foo();
++ }
++
++ void func2(void)
++ {
++ int tab[] =
++ {1, 2,
++ 3, 4,
++ 5, 6};
++
++ printf("This line used to be indented incorrectly.\n");
++ }
++
++ void func3(void)
++ {
++ int tab[] = {
++ 1, 2,
++ 3, 4,
++ 5, 6};
++
++ printf("Don't you dare indent this line incorrectly!\n);
++ }
++
+ STARTTEST
+ :set cino&
+ 2kdd=][
+*** ../vim-7.3.194/src/testdir/test3.ok 2011-05-10 13:38:23.000000000 +0200
+--- src/testdir/test3.ok 2011-05-19 16:29:01.000000000 +0200
+***************
+*** 1216,1221 ****
+--- 1216,1249 ----
+ printf("Foo!\n");
+ }
+
++ void func1(void)
++ {
++ char* tab[] = {"foo", "bar",
++ "baz", "quux",
++ "this line used", "to be indented incorrectly"};
++ foo();
++ }
++
++ void func2(void)
++ {
++ int tab[] =
++ {1, 2,
++ 3, 4,
++ 5, 6};
++
++ printf("This line used to be indented incorrectly.\n");
++ }
++
++ void func3(void)
++ {
++ int tab[] = {
++ 1, 2,
++ 3, 4,
++ 5, 6};
++
++ printf("Don't you dare indent this line incorrectly!\n);
++ }
++
+
+ void func(void)
+ {
+*** ../vim-7.3.194/src/version.c 2011-05-19 14:59:07.000000000 +0200
+--- src/version.c 2011-05-19 16:34:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 195,
+ /**/
+
+--
+I AM THANKFUL...
+...for the taxes that I pay because it means that I am employed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.196 b/source/ap/vim/patches/7.3.196
new file mode 100644
index 000000000..0d6be8c9f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.196
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.196
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.196
+Problem: Can't intercept a character that is going to be inserted.
+Solution: Add the InsertCharPre autocommand event. (Jakson A. Aquino)
+Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt,
+ runtime/doc/map.txt, src/edit.c, src/eval.c, src/fileio.c,
+ src/vim.h
+
+
+*** ../mercurial/vim73/runtime/doc/autocmd.txt 2011-04-28 19:01:26.000000000 +0200
+--- runtime/doc/autocmd.txt 2011-05-19 17:12:17.000000000 +0200
+***************
+*** 299,304 ****
+--- 299,306 ----
+ |InsertEnter| starting Insert mode
+ |InsertChange| when typing <Insert> while in Insert or Replace mode
+ |InsertLeave| when leaving Insert mode
++ |InsertCharPre| when a character was typed in Insert mode, before
++ inserting it
+
+ |ColorScheme| after loading a color scheme
+
+***************
+*** 657,662 ****
+--- 659,675 ----
+ indicates the new mode.
+ Be careful not to move the cursor or do
+ anything else that the user does not expect.
++ *InsertCharPre*
++ InsertCharPre When a character is typed in Insert mode,
++ before inserting the char.
++ The |v:char| variable indicates the char typed
++ and can be changed during the event to insert
++ a different character. When |v:char| is set
++ to more than one character this text is
++ inserted literally.
++ It is not allowed to change the text |textlock|.
++ The event is not triggered when 'paste' is
++ set.
+ *InsertEnter*
+ InsertEnter Just before starting Insert mode. Also for
+ Replace mode and Virtual Replace mode. The
+*** ../mercurial/vim73/runtime/doc/eval.txt 2011-05-19 12:22:41.000000000 +0200
+--- runtime/doc/eval.txt 2011-05-19 16:55:58.000000000 +0200
+***************
+*** 1293,1298 ****
+--- 1293,1299 ----
+ *v:char* *char-variable*
+ v:char Argument for evaluating 'formatexpr' and used for the typed
+ character when using <expr> in an abbreviation |:map-<expr>|.
++ It is also used by the |InsertPreChar| event.
+
+ *v:charconvert_from* *charconvert_from-variable*
+ v:charconvert_from
+*** ../mercurial/vim73/runtime/doc/map.txt 2011-05-10 17:17:38.000000000 +0200
+--- runtime/doc/map.txt 2011-05-19 16:40:34.000000000 +0200
+***************
+*** 226,232 ****
+
+ For abbreviations |v:char| is set to the character that was typed to trigger
+ the abbreviation. You can use this to decide how to expand the {lhs}. You
+! can't change v:char and you should not insert it.
+
+ Be very careful about side effects! The expression is evaluated while
+ obtaining characters, you may very well make the command dysfunctional.
+--- 226,232 ----
+
+ For abbreviations |v:char| is set to the character that was typed to trigger
+ the abbreviation. You can use this to decide how to expand the {lhs}. You
+! you should not either insert or change the v:char.
+
+ Be very careful about side effects! The expression is evaluated while
+ obtaining characters, you may very well make the command dysfunctional.
+*** ../mercurial/vim73/src/edit.c 2011-05-10 14:22:10.000000000 +0200
+--- src/edit.c 2011-05-19 17:20:53.000000000 +0200
+***************
+*** 1381,1390 ****
+ goto do_intr;
+ #endif
+
+ /*
+ * Insert a nomal character.
+ */
+! normalchar:
+ #ifdef FEAT_SMARTINDENT
+ /* Try to perform smart-indenting. */
+ ins_try_si(c);
+--- 1381,1425 ----
+ goto do_intr;
+ #endif
+
++ normalchar:
+ /*
+ * Insert a nomal character.
+ */
+! #ifdef FEAT_AUTOCMD
+! if (!p_paste)
+! {
+! /* Trigger the InsertCharPre event. Lock the text to avoid
+! * weird things from happening. */
+! set_vim_var_char(c);
+! ++textlock;
+! if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
+! FALSE, curbuf))
+! {
+! /* Get the new value of v:char. If it is more than one
+! * character insert it literally. */
+! char_u *s = get_vim_var_str(VV_CHAR);
+! if (MB_CHARLEN(s) > 1)
+! {
+! if (stop_arrow() != FAIL)
+! {
+! ins_str(s);
+! AppendToRedobuffLit(s, -1);
+! }
+! c = NUL;
+! }
+! else
+! c = PTR2CHAR(s);
+! }
+!
+! set_vim_var_string(VV_CHAR, NULL, -1);
+! --textlock;
+!
+! /* If the new value is an empty string then don't insert a
+! * char. */
+! if (c == NUL)
+! break;
+! }
+! #endif
+ #ifdef FEAT_SMARTINDENT
+ /* Try to perform smart-indenting. */
+ ins_try_si(c);
+***************
+*** 3491,3501 ****
+ return;
+ }
+ p += len;
+! #ifdef FEAT_MBYTE
+! c = mb_ptr2char(p);
+! #else
+! c = *p;
+! #endif
+ ins_compl_addleader(c);
+ }
+
+--- 3526,3532 ----
+ return;
+ }
+ p += len;
+! c = PTR2CHAR(p);
+ ins_compl_addleader(c);
+ }
+
+*** ../mercurial/vim73/src/eval.c 2011-05-19 14:59:07.000000000 +0200
+--- src/eval.c 2011-05-19 16:40:39.000000000 +0200
+***************
+*** 352,358 ****
+ {VV_NAME("swapname", VAR_STRING), VV_RO},
+ {VV_NAME("swapchoice", VAR_STRING), 0},
+ {VV_NAME("swapcommand", VAR_STRING), VV_RO},
+! {VV_NAME("char", VAR_STRING), VV_RO},
+ {VV_NAME("mouse_win", VAR_NUMBER), 0},
+ {VV_NAME("mouse_lnum", VAR_NUMBER), 0},
+ {VV_NAME("mouse_col", VAR_NUMBER), 0},
+--- 352,358 ----
+ {VV_NAME("swapname", VAR_STRING), VV_RO},
+ {VV_NAME("swapchoice", VAR_STRING), 0},
+ {VV_NAME("swapcommand", VAR_STRING), VV_RO},
+! {VV_NAME("char", VAR_STRING), 0},
+ {VV_NAME("mouse_win", VAR_NUMBER), 0},
+ {VV_NAME("mouse_lnum", VAR_NUMBER), 0},
+ {VV_NAME("mouse_col", VAR_NUMBER), 0},
+*** ../mercurial/vim73/src/fileio.c 2011-05-10 16:41:13.000000000 +0200
+--- src/fileio.c 2011-05-19 16:40:39.000000000 +0200
+***************
+*** 7662,7667 ****
+--- 7662,7668 ----
+ {"InsertChange", EVENT_INSERTCHANGE},
+ {"InsertEnter", EVENT_INSERTENTER},
+ {"InsertLeave", EVENT_INSERTLEAVE},
++ {"InsertCharPre", EVENT_INSERTCHARPRE},
+ {"MenuPopup", EVENT_MENUPOPUP},
+ {"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
+ {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
+*** ../mercurial/vim73/src/vim.h 2011-05-10 16:41:13.000000000 +0200
+--- src/vim.h 2011-05-19 16:40:39.000000000 +0200
+***************
+*** 1274,1279 ****
+--- 1274,1280 ----
+ EVENT_WINENTER, /* after entering a window */
+ EVENT_WINLEAVE, /* before leaving a window */
+ EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */
++ EVENT_INSERTCHARPRE, /* before inserting a char */
+ EVENT_CURSORHOLD, /* cursor in same position for a while */
+ EVENT_CURSORHOLDI, /* idem, in Insert mode */
+ EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */
+*** ../vim-7.3.195/src/version.c 2011-05-19 16:35:05.000000000 +0200
+--- src/version.c 2011-05-19 17:15:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 196,
+ /**/
+
+--
+I AM THANKFUL...
+...for the mess to clean after a party because it means I have
+been surrounded by friends.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.197 b/source/ap/vim/patches/7.3.197
new file mode 100644
index 000000000..c33a2cb29
--- /dev/null
+++ b/source/ap/vim/patches/7.3.197
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.197
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.197
+Problem: When a QuickfixCmdPost event removes all errors, Vim still tries
+ to jump to the first error, resulting in E42.
+Solution: Get the number of error after the autocmd event. (Mike Lundy)
+Files: src/quickfix.c
+
+
+*** ../mercurial/vim73/src/quickfix.c 2011-05-10 16:41:13.000000000 +0200
+--- src/quickfix.c 2011-05-19 17:34:11.000000000 +0200
+***************
+*** 2813,2829 ****
+ (eap->cmdidx != CMD_grepadd
+ && eap->cmdidx != CMD_lgrepadd),
+ *eap->cmdlinep);
+ #ifdef FEAT_AUTOCMD
+ if (au_name != NULL)
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
+ curbuf->b_fname, TRUE, curbuf);
+ #endif
+ if (res > 0 && !eap->forceit)
+- {
+- if (wp != NULL)
+- qi = GET_LOC_LIST(wp);
+ qf_jump(qi, 0, 0, FALSE); /* display first error */
+- }
+
+ mch_remove(fname);
+ vim_free(fname);
+--- 2813,2833 ----
+ (eap->cmdidx != CMD_grepadd
+ && eap->cmdidx != CMD_lgrepadd),
+ *eap->cmdlinep);
++ if (wp != NULL)
++ qi = GET_LOC_LIST(wp);
+ #ifdef FEAT_AUTOCMD
+ if (au_name != NULL)
++ {
+ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
+ curbuf->b_fname, TRUE, curbuf);
++ if (qi->qf_curlist < qi->qf_listcount)
++ res = qi->qf_lists[qi->qf_curlist].qf_count;
++ else
++ res = 0;
++ }
+ #endif
+ if (res > 0 && !eap->forceit)
+ qf_jump(qi, 0, 0, FALSE); /* display first error */
+
+ mch_remove(fname);
+ vim_free(fname);
+*** ../vim-7.3.196/src/version.c 2011-05-19 17:25:36.000000000 +0200
+--- src/version.c 2011-05-19 17:41:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 197,
+ /**/
+
+--
+I AM THANKFUL...
+...for the clothes that fit a little too snug because it
+means I have more than enough to eat.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.198 b/source/ap/vim/patches/7.3.198
new file mode 100644
index 000000000..5ef4a8aad
--- /dev/null
+++ b/source/ap/vim/patches/7.3.198
@@ -0,0 +1,403 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.198
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.198
+Problem: No completion for ":lang".
+Solution: Get locales to complete from. (Dominique Pelle)
+Files: src/eval.c, src/ex_cmds2.c, src/ex_getln.c,
+ src/proto/ex_cmds2.pro, src/proto/ex_getln.pro, src/vim.h
+
+
+*** ../mercurial/vim73/src/eval.c 2011-05-19 17:25:36.000000000 +0200
+--- src/eval.c 2011-05-19 17:52:02.000000000 +0200
+***************
+*** 911,916 ****
+--- 911,917 ----
+ hash_clear(&compat_hashtab);
+
+ free_scriptnames();
++ free_locales();
+
+ /* global variables */
+ vars_clear(&globvarht);
+*** ../mercurial/vim73/src/ex_cmds2.c 2011-05-10 16:41:13.000000000 +0200
+--- src/ex_cmds2.c 2011-05-19 18:16:54.000000000 +0200
+***************
+*** 1476,1482 ****
+ #endif
+
+ /*
+! * Ask the user what to do when abondoning a changed buffer.
+ * Must check 'write' option first!
+ */
+ void
+--- 1476,1482 ----
+ #endif
+
+ /*
+! * Ask the user what to do when abandoning a changed buffer.
+ * Must check 'write' option first!
+ */
+ void
+***************
+*** 4153,4158 ****
+--- 4153,4234 ----
+ }
+
+ # if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++
++ static char_u **locales = NULL; /* Array of all available locales */
++ static int did_init_locales = FALSE;
++
++ static void init_locales __ARGS((void));
++ static char_u **find_locales __ARGS((void));
++
++ /*
++ * Lazy initialization of all available locales.
++ */
++ static void
++ init_locales()
++ {
++ if (!did_init_locales)
++ {
++ did_init_locales = TRUE;
++ locales = find_locales();
++ }
++ }
++
++ /* Return an array of strings for all available locales + NULL for the
++ * last element. Return NULL in case of error. */
++ static char_u **
++ find_locales()
++ {
++ garray_T locales_ga;
++ char_u *loc;
++
++ /* Find all available locales by running command "locale -a". If this
++ * doesn't work we won't have completion. */
++ char_u *locale_a = get_cmd_output((char_u *)"locale -a",
++ NULL, SHELL_SILENT);
++ if (locale_a == NULL)
++ return NULL;
++ ga_init2(&locales_ga, sizeof(char_u *), 20);
++
++ /* Transform locale_a string where each locale is separated by "\n"
++ * into an array of locale strings. */
++ loc = (char_u *)strtok((char *)locale_a, "\n");
++
++ while (loc != NULL)
++ {
++ if (ga_grow(&locales_ga, 1) == FAIL)
++ break;
++ loc = vim_strsave(loc);
++ if (loc == NULL)
++ break;
++
++ ((char_u **)locales_ga.ga_data)[locales_ga.ga_len++] = loc;
++ loc = (char_u *)strtok(NULL, "\n");
++ }
++ vim_free(locale_a);
++ if (ga_grow(&locales_ga, 1) == FAIL)
++ {
++ ga_clear(&locales_ga);
++ return NULL;
++ }
++ ((char_u **)locales_ga.ga_data)[locales_ga.ga_len] = NULL;
++ return (char_u **)locales_ga.ga_data;
++ }
++
++ # if defined(EXITFREE) || defined(PROTO)
++ void
++ free_locales()
++ {
++ int i;
++ if (locales != NULL)
++ {
++ for (i = 0; locales[i] != NULL; i++)
++ vim_free(locales[i]);
++ vim_free(locales);
++ locales = NULL;
++ }
++ }
++ # endif
++
+ /*
+ * Function given to ExpandGeneric() to obtain the possible arguments of the
+ * ":language" command.
+***************
+*** 4168,4174 ****
+ return (char_u *)"ctype";
+ if (idx == 2)
+ return (char_u *)"time";
+! return NULL;
+ }
+ # endif
+
+--- 4244,4268 ----
+ return (char_u *)"ctype";
+ if (idx == 2)
+ return (char_u *)"time";
+!
+! init_locales();
+! if (locales == NULL)
+! return NULL;
+! return locales[idx - 3];
+! }
+!
+! /*
+! * Function given to ExpandGeneric() to obtain the available locales.
+! */
+! char_u *
+! get_locales(xp, idx)
+! expand_T *xp UNUSED;
+! int idx;
+! {
+! init_locales();
+! if (locales == NULL)
+! return NULL;
+! return locales[idx];
+ }
+ # endif
+
+*** ../mercurial/vim73/src/ex_getln.c 2011-05-19 14:50:49.000000000 +0200
+--- src/ex_getln.c 2011-05-19 18:18:49.000000000 +0200
+***************
+*** 4571,4618 ****
+ int context;
+ char_u *((*func)__ARGS((expand_T *, int)));
+ int ic;
+ } tab[] =
+ {
+! {EXPAND_COMMANDS, get_command_name, FALSE},
+! {EXPAND_BEHAVE, get_behave_arg, TRUE},
+ #ifdef FEAT_USR_CMDS
+! {EXPAND_USER_COMMANDS, get_user_commands, FALSE},
+! {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE},
+! {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE},
+! {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE},
+ #endif
+ #ifdef FEAT_EVAL
+! {EXPAND_USER_VARS, get_user_var_name, FALSE},
+! {EXPAND_FUNCTIONS, get_function_name, FALSE},
+! {EXPAND_USER_FUNC, get_user_func_name, FALSE},
+! {EXPAND_EXPRESSION, get_expr_name, FALSE},
+ #endif
+ #ifdef FEAT_MENU
+! {EXPAND_MENUS, get_menu_name, FALSE},
+! {EXPAND_MENUNAMES, get_menu_names, FALSE},
+ #endif
+ #ifdef FEAT_SYN_HL
+! {EXPAND_SYNTAX, get_syntax_name, TRUE},
+ #endif
+! {EXPAND_HIGHLIGHT, get_highlight_name, TRUE},
+ #ifdef FEAT_AUTOCMD
+! {EXPAND_EVENTS, get_event_name, TRUE},
+! {EXPAND_AUGROUP, get_augroup_name, TRUE},
+ #endif
+ #ifdef FEAT_CSCOPE
+! {EXPAND_CSCOPE, get_cscope_name, TRUE},
+ #endif
+ #ifdef FEAT_SIGNS
+! {EXPAND_SIGN, get_sign_name, TRUE},
+ #endif
+ #ifdef FEAT_PROFILE
+! {EXPAND_PROFILE, get_profile_name, TRUE},
+ #endif
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+! {EXPAND_LANGUAGE, get_lang_arg, TRUE},
+ #endif
+! {EXPAND_ENV_VARS, get_env_name, TRUE},
+ };
+ int i;
+
+--- 4571,4620 ----
+ int context;
+ char_u *((*func)__ARGS((expand_T *, int)));
+ int ic;
++ int escaped;
+ } tab[] =
+ {
+! {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
+! {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
+ #ifdef FEAT_USR_CMDS
+! {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
+! {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
+! {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE, TRUE},
+! {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE, TRUE},
+ #endif
+ #ifdef FEAT_EVAL
+! {EXPAND_USER_VARS, get_user_var_name, FALSE, TRUE},
+! {EXPAND_FUNCTIONS, get_function_name, FALSE, TRUE},
+! {EXPAND_USER_FUNC, get_user_func_name, FALSE, TRUE},
+! {EXPAND_EXPRESSION, get_expr_name, FALSE, TRUE},
+ #endif
+ #ifdef FEAT_MENU
+! {EXPAND_MENUS, get_menu_name, FALSE, TRUE},
+! {EXPAND_MENUNAMES, get_menu_names, FALSE, TRUE},
+ #endif
+ #ifdef FEAT_SYN_HL
+! {EXPAND_SYNTAX, get_syntax_name, TRUE, TRUE},
+ #endif
+! {EXPAND_HIGHLIGHT, get_highlight_name, TRUE, TRUE},
+ #ifdef FEAT_AUTOCMD
+! {EXPAND_EVENTS, get_event_name, TRUE, TRUE},
+! {EXPAND_AUGROUP, get_augroup_name, TRUE, TRUE},
+ #endif
+ #ifdef FEAT_CSCOPE
+! {EXPAND_CSCOPE, get_cscope_name, TRUE, TRUE},
+ #endif
+ #ifdef FEAT_SIGNS
+! {EXPAND_SIGN, get_sign_name, TRUE, TRUE},
+ #endif
+ #ifdef FEAT_PROFILE
+! {EXPAND_PROFILE, get_profile_name, TRUE, TRUE},
+ #endif
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+! {EXPAND_LANGUAGE, get_lang_arg, TRUE, FALSE},
+! {EXPAND_LOCALES, get_locales, TRUE, FALSE},
+ #endif
+! {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
+ };
+ int i;
+
+***************
+*** 4626,4632 ****
+ {
+ if (tab[i].ic)
+ regmatch.rm_ic = TRUE;
+! ret = ExpandGeneric(xp, &regmatch, num_file, file, tab[i].func);
+ break;
+ }
+ }
+--- 4628,4635 ----
+ {
+ if (tab[i].ic)
+ regmatch.rm_ic = TRUE;
+! ret = ExpandGeneric(xp, &regmatch, num_file, file,
+! tab[i].func, tab[i].escaped);
+ break;
+ }
+ }
+***************
+*** 4648,4660 ****
+ * Returns OK when no problems encountered, FAIL for error (out of memory).
+ */
+ int
+! ExpandGeneric(xp, regmatch, num_file, file, func)
+ expand_T *xp;
+ regmatch_T *regmatch;
+ int *num_file;
+ char_u ***file;
+ char_u *((*func)__ARGS((expand_T *, int)));
+ /* returns a string from the list */
+ {
+ int i;
+ int count = 0;
+--- 4651,4664 ----
+ * Returns OK when no problems encountered, FAIL for error (out of memory).
+ */
+ int
+! ExpandGeneric(xp, regmatch, num_file, file, func, escaped)
+ expand_T *xp;
+ regmatch_T *regmatch;
+ int *num_file;
+ char_u ***file;
+ char_u *((*func)__ARGS((expand_T *, int)));
+ /* returns a string from the list */
++ int escaped;
+ {
+ int i;
+ int count = 0;
+***************
+*** 4679,4685 ****
+ {
+ if (round)
+ {
+! str = vim_strsave_escaped(str, (char_u *)" \t\\.");
+ (*file)[count] = str;
+ #ifdef FEAT_MENU
+ if (func == get_menu_names && str != NULL)
+--- 4683,4692 ----
+ {
+ if (round)
+ {
+! if (escaped)
+! str = vim_strsave_escaped(str, (char_u *)" \t\\.");
+! else
+! str = vim_strsave(str);
+ (*file)[count] = str;
+ #ifdef FEAT_MENU
+ if (func == get_menu_names && str != NULL)
+*** ../mercurial/vim73/src/proto/ex_cmds2.pro 2010-05-15 21:22:11.000000000 +0200
+--- src/proto/ex_cmds2.pro 2011-05-19 17:53:52.000000000 +0200
+***************
+*** 83,87 ****
+--- 83,89 ----
+ char_u *get_mess_lang __ARGS((void));
+ void set_lang_var __ARGS((void));
+ void ex_language __ARGS((exarg_T *eap));
++ void free_locales __ARGS((void));
+ char_u *get_lang_arg __ARGS((expand_T *xp, int idx));
++ char_u *get_locales __ARGS((expand_T *xp, int idx));
+ /* vim: set ft=c : */
+*** ../mercurial/vim73/src/proto/ex_getln.pro 2010-08-16 21:23:30.000000000 +0200
+--- src/proto/ex_getln.pro 2011-05-19 17:54:00.000000000 +0200
+***************
+*** 31,37 ****
+ char_u *addstar __ARGS((char_u *fname, int len, int context));
+ void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+ int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
+ char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
+ void init_history __ARGS((void));
+ int get_histtype __ARGS((char_u *name));
+--- 31,37 ----
+ char_u *addstar __ARGS((char_u *fname, int len, int context));
+ void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+ int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+! int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int)), int escaped));
+ char_u *globpath __ARGS((char_u *path, char_u *file, int expand_options));
+ void init_history __ARGS((void));
+ int get_histtype __ARGS((char_u *name));
+*** ../mercurial/vim73/src/vim.h 2011-05-19 17:25:36.000000000 +0200
+--- src/vim.h 2011-05-19 17:52:02.000000000 +0200
+***************
+*** 779,784 ****
+--- 779,785 ----
+ #define EXPAND_FILETYPE 37
+ #define EXPAND_FILES_IN_PATH 38
+ #define EXPAND_OWNSYNTAX 39
++ #define EXPAND_LOCALES 40
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.3.197/src/version.c 2011-05-19 17:42:54.000000000 +0200
+--- src/version.c 2011-05-19 18:24:58.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 198,
+ /**/
+
+--
+The primary purpose of the DATA statement is to give names to constants;
+instead of referring to pi as 3.141592653589793 at every appearance, the
+variable PI can be given that value with a DATA statement and used instead
+of the longer form of the constant. This also simplifies modifying the
+program, should the value of pi change.
+ -- FORTRAN manual for Xerox Computers
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.199 b/source/ap/vim/patches/7.3.199
new file mode 100644
index 000000000..8bdd97ab1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.199
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.199
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.199
+Problem: MS-Windows: Compilation problem of OLE with MingW compiler.
+Solution: Put #ifdef around declarations. (Guopeng Wen)
+Files: src/if_ole.h
+
+
+*** ../mercurial/vim73/src/if_ole.h 2010-05-15 21:22:11.000000000 +0200
+--- src/if_ole.h 2011-05-25 12:05:50.000000000 +0200
+***************
+*** 46,53 ****
+ /* header files for imported files */
+ #include "oaidl.h"
+
+! void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
+! void __RPC_USER MIDL_user_free( void __RPC_FAR * );
+
+ #ifndef __IVim_INTERFACE_DEFINED__
+ #define __IVim_INTERFACE_DEFINED__
+--- 46,56 ----
+ /* header files for imported files */
+ #include "oaidl.h"
+
+! #ifndef __MIDL_user_allocate_free_DEFINED__
+! #define __MIDL_user_allocate_free_DEFINED__
+! void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
+! void __RPC_USER MIDL_user_free( void __RPC_FAR * );
+! #endif
+
+ #ifndef __IVim_INTERFACE_DEFINED__
+ #define __IVim_INTERFACE_DEFINED__
+*** ../vim-7.3.198/src/version.c 2011-05-19 18:26:34.000000000 +0200
+--- src/version.c 2011-05-25 12:08:54.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 199,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+104. When people ask about the Presidential Election you ask "Which country?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.200 b/source/ap/vim/patches/7.3.200
new file mode 100644
index 000000000..601947119
--- /dev/null
+++ b/source/ap/vim/patches/7.3.200
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.200
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.200 (after 7.3.198)
+Problem: CTRL-D doesn't complete :lang.
+Solution: Add the missing part of the change. (Dominique Pelle)
+Files: src/ex_docmd.c
+
+
+*** ../mercurial/vim73/src/ex_docmd.c 2011-05-19 14:50:49.000000000 +0200
+--- src/ex_docmd.c 2011-05-25 12:45:02.000000000 +0200
+***************
+*** 3861,3873 ****
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ case CMD_language:
+! if (*skiptowhite(arg) == NUL)
+ {
+ xp->xp_context = EXPAND_LANGUAGE;
+ xp->xp_pattern = arg;
+ }
+ else
+! xp->xp_context = EXPAND_NOTHING;
+ break;
+ #endif
+ #if defined(FEAT_PROFILE)
+--- 3861,3884 ----
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ case CMD_language:
+! p = skiptowhite(arg);
+! if (*p == NUL)
+ {
+ xp->xp_context = EXPAND_LANGUAGE;
+ xp->xp_pattern = arg;
+ }
+ else
+! {
+! if ( STRNCMP(arg, "messages", p - arg) == 0
+! || STRNCMP(arg, "ctype", p - arg) == 0
+! || STRNCMP(arg, "time", p - arg) == 0)
+! {
+! xp->xp_context = EXPAND_LOCALES;
+! xp->xp_pattern = skipwhite(p);
+! }
+! else
+! xp->xp_context = EXPAND_NOTHING;
+! }
+ break;
+ #endif
+ #if defined(FEAT_PROFILE)
+*** ../vim-7.3.199/src/version.c 2011-05-25 12:09:46.000000000 +0200
+--- src/version.c 2011-05-25 12:49:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 200,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+105. When someone asks you for your address, you tell them your URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.201 b/source/ap/vim/patches/7.3.201
new file mode 100644
index 000000000..0481afd85
--- /dev/null
+++ b/source/ap/vim/patches/7.3.201
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.201
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.201 (after 7.3.195)
+Problem: "} else" still causes following lines to be indented too much.
+Solution: Better detection for the "else" block. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/src/misc1.c 2011-05-19 16:35:05.000000000 +0200
+--- src/misc1.c 2011-05-25 13:29:45.000000000 +0200
+***************
+*** 7541,7557 ****
+
+ /*
+ * When searching for a terminated line, don't use the
+! * one between the "if" and the "else".
+ * Need to use the scope of this "else". XXX
+ * If whilelevel != 0 continue looking for a "do {".
+ */
+! if (cin_iselse(l)
+! && whilelevel == 0
+! && ((trypos = find_start_brace(ind_maxcomment))
+! == NULL
+ || find_match(LOOKFOR_IF, trypos->lnum,
+! ind_maxparen, ind_maxcomment) == FAIL))
+! break;
+ }
+
+ /*
+--- 7541,7565 ----
+
+ /*
+ * When searching for a terminated line, don't use the
+! * one between the "if" and the matching "else".
+ * Need to use the scope of this "else". XXX
+ * If whilelevel != 0 continue looking for a "do {".
+ */
+! if (cin_iselse(l) && whilelevel == 0)
+! {
+! /* If we're looking at "} else", let's make sure we
+! * find the opening brace of the enclosing scope,
+! * not the one from "if () {". */
+! if (*l == '}')
+! curwin->w_cursor.col =
+! (l - ml_get_curline()) + 1;
+!
+! if ((trypos = find_start_brace(ind_maxcomment))
+! == NULL
+ || find_match(LOOKFOR_IF, trypos->lnum,
+! ind_maxparen, ind_maxcomment) == FAIL)
+! break;
+! }
+ }
+
+ /*
+*** ../mercurial/vim73/src/testdir/test3.in 2011-05-19 16:35:05.000000000 +0200
+--- src/testdir/test3.in 2011-05-25 13:23:51.000000000 +0200
+***************
+*** 1413,1418 ****
+--- 1413,1433 ----
+ }
+
+ STARTTEST
++ :set cino&
++ 2kdd=][
++ ENDTEST
++
++ void func(void)
++ {
++ for (int i = 0; i < 10; ++i)
++ if (i & 1) {
++ foo(1);
++ } else
++ foo(0);
++ baz();
++ }
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-19 16:35:05.000000000 +0200
+--- src/testdir/test3.ok 2011-05-25 13:23:51.000000000 +0200
+***************
+*** 1262,1264 ****
+--- 1262,1275 ----
+ foo();
+ }
+
++
++ void func(void)
++ {
++ for (int i = 0; i < 10; ++i)
++ if (i & 1) {
++ foo(1);
++ } else
++ foo(0);
++ baz();
++ }
++
+*** ../vim-7.3.200/src/version.c 2011-05-25 12:51:17.000000000 +0200
+--- src/version.c 2011-05-25 13:33:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 201,
+ /**/
+
+--
+Laughing helps. It's like jogging on the inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.202 b/source/ap/vim/patches/7.3.202
new file mode 100644
index 000000000..1289e0851
--- /dev/null
+++ b/source/ap/vim/patches/7.3.202
@@ -0,0 +1,868 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.202
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.202
+Problem: Cannot influence the indent inside a namespace.
+Solution: Add the "N" 'cino' parameter. (Konstantin Lepa)
+Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+ src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/runtime/doc/indent.txt 2011-04-28 19:01:26.000000000 +0200
+--- runtime/doc/indent.txt 2011-05-25 14:35:37.000000000 +0200
+***************
+*** 128,140 ****
+ used CTRL-T or CTRL-D.
+
+ *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation. In the list below,
+ "N" represents a number of your choice (the number can be negative). When
+ there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+ "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'. The examples below
+! assume a 'shiftwidth' of 4.
+!
+ >N Amount added for "normal" indent. Used after a line that should
+ increase the indent (lines starting with "if", an opening brace,
+ etc.). (default 'shiftwidth').
+--- 128,147 ----
+ used CTRL-T or CTRL-D.
+
+ *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation. The value after
+! the option character can be one of these (N is any number):
+! N indent N spaces
+! -N indent N spaces to the left
+! Ns N times 'shiftwidth spaces
+! -Ns N times 'shiftwidth spaces to the left
+!
+! In the list below,
+ "N" represents a number of your choice (the number can be negative). When
+ there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+ "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
+! The examples below assume a 'shiftwidth' of 4.
+! *cino->*
+ >N Amount added for "normal" indent. Used after a line that should
+ increase the indent (lines starting with "if", an opening brace,
+ etc.). (default 'shiftwidth').
+***************
+*** 145,150 ****
+--- 152,158 ----
+ foo; foo; foo;
+ } } }
+ <
++ *cino-e*
+ eN Add N to the prevailing indent inside a set of braces if the
+ opening brace at the End of the line (more precise: is not the
+ first character in a line). This is useful if you want a
+***************
+*** 160,165 ****
+--- 168,174 ----
+ bar; bar; bar;
+ } } }
+ <
++ *cino-n*
+ nN Add N to the prevailing indent for a statement after an "if",
+ "while", etc., if it is NOT inside a set of braces. This is
+ useful if you want a different indent when there is no '{'
+***************
+*** 174,179 ****
+--- 183,189 ----
+ bar; bar; bar;
+ } } }
+ <
++ *cino-f*
+ fN Place the first opening brace of a function or other block in
+ column N. This applies only for an opening brace that is not
+ inside other braces and is at the start of the line. What comes
+***************
+*** 184,189 ****
+--- 194,200 ----
+ { { {
+ int foo; int foo; int foo;
+ <
++ *cino-{*
+ {N Place opening braces N characters from the prevailing indent.
+ This applies only for opening braces that are inside other
+ braces. (default 0).
+***************
+*** 193,198 ****
+--- 204,210 ----
+ { { {
+ foo; foo; foo;
+ <
++ *cino-}*
+ }N Place closing braces N characters from the matching opening
+ brace. (default 0).
+
+***************
+*** 202,207 ****
+--- 214,220 ----
+ foo; foo; foo;
+ } } }
+ <
++ *cino-^*
+ ^N Add N to the prevailing indent inside a set of braces if the
+ opening brace is in column 0. This can specify a different
+ indent for whole of a function (some may like to set it to a
+***************
+*** 216,221 ****
+--- 229,235 ----
+ } } }
+ } } }
+ <
++ *cino-L*
+ LN Controls placement of jump labels. If N is negative, the label
+ will be placed at column 1. If N is non-negative, the indent of
+ the label will be the prevailing indent minus N. (default -1).
+***************
+*** 229,234 ****
+--- 243,249 ----
+ } } }
+ } } }
+ <
++ *cino-:*
+ :N Place case labels N characters from the indent of the switch().
+ (default 'shiftwidth').
+
+***************
+*** 240,245 ****
+--- 255,261 ----
+ default: default:
+ } }
+ <
++ *cino-=*
+ =N Place statements occurring after a case label N characters from
+ the indent of the label. (default 'shiftwidth').
+
+***************
+*** 247,252 ****
+--- 263,269 ----
+ case 11: case 11: a = a + 1;
+ a = a + 1; b = b + 1;
+ <
++ *cino-l*
+ lN If N != 0 Vim will align with a case label instead of the
+ statement after it in the same line.
+
+***************
+*** 256,261 ****
+--- 273,279 ----
+ break; break;
+ } }
+ <
++ *cino-b*
+ bN If N != 0 Vim will align a final "break" with the case label,
+ so that case..break looks like a sort of block. (default: 0).
+ When using 1, consider adding "0=break" to 'cinkeys'.
+***************
+*** 272,277 ****
+--- 290,296 ----
+ break; break;
+ } }
+ <
++ *cino-g*
+ gN Place C++ scope declarations N characters from the indent of the
+ block they are in. (default 'shiftwidth'). A scope declaration
+ can be "public:", "protected:" or "private:".
+***************
+*** 283,288 ****
+--- 302,308 ----
+ private: private:
+ } }
+ <
++ *cino-h*
+ hN Place statements occurring after a C++ scope declaration N
+ characters from the indent of the label. (default
+ 'shiftwidth').
+***************
+*** 291,296 ****
+--- 311,331 ----
+ public: public: a = a + 1;
+ a = a + 1; b = b + 1;
+ <
++ *cino-N*
++ NN Indent inside C++ namespace N characters extra compared to a
++ normal block. (default 0).
++
++ cino= cino=N-s >
++ namespace { namespace {
++ void function(); void function();
++ } }
++
++ namespace my namespace my
++ { {
++ void function(); void function();
++ } }
++ <
++ *cino-p*
+ pN Parameter declarations for K&R-style function declarations will
+ be indented N characters from the margin. (default
+ 'shiftwidth').
+***************
+*** 300,305 ****
+--- 335,341 ----
+ int a; int a; int a;
+ char b; char b; char b;
+ <
++ *cino-t*
+ tN Indent a function return type declaration N characters from the
+ margin. (default 'shiftwidth').
+
+***************
+*** 307,312 ****
+--- 343,349 ----
+ int int int
+ func() func() func()
+ <
++ *cino-i*
+ iN Indent C++ base class declarations and constructor
+ initializations, if they start in a new line (otherwise they
+ are aligned at the right side of the ':').
+***************
+*** 330,335 ****
+--- 368,374 ----
+ a = b + 9 * a = b + 9 *
+ c; c;
+ <
++ *cino-c*
+ cN Indent comment lines after the comment opener, when there is no
+ other text with which to align, N characters from the comment
+ opener. (default 3). See also |format-comments|.
+***************
+*** 339,344 ****
+--- 378,384 ----
+ text. text.
+ */ */
+ <
++ *cino-C*
+ CN When N is non-zero, indent comment lines by the amount specified
+ with the c flag above even if there is other text behind the
+ comment opener. (default 0).
+***************
+*** 349,360 ****
+--- 389,402 ----
+ ********/ ********/
+ < (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")
+
++ *cino-/*
+ /N Indent comment lines N characters extra. (default 0).
+ cino= cino=/4 >
+ a = b; a = b;
+ /* comment */ /* comment */
+ c = d; c = d;
+ <
++ *cino-(*
+ (N When in unclosed parentheses, indent N characters from the line
+ with the unclosed parentheses. Add a 'shiftwidth' for every
+ unclosed parentheses. When N is 0 or the unclosed parentheses
+***************
+*** 370,375 ****
+--- 412,418 ----
+ (c2 || c3)) (c2 || c3))
+ { {
+ <
++ *cino-u*
+ uN Same as (N, but for one level deeper. (default 'shiftwidth').
+
+ cino= cino=u2 >
+***************
+*** 377,382 ****
+--- 420,426 ----
+ && (c22345 && (c22345
+ || c3)) || c3))
+ <
++ *cino-U*
+ UN When N is non-zero, do not ignore the indenting specified by
+ ( or u in case that the unclosed parentheses is the first
+ non-white character in its line. (default 0).
+***************
+*** 388,393 ****
+--- 432,438 ----
+ c3 c3
+ ) && c4; ) && c4;
+ <
++ *cino-2*
+ wN When in unclosed parentheses and N is non-zero and either
+ using "(0" or "u0", respectively, or using "U0" and the unclosed
+ parentheses is the first non-white character in its line, line
+***************
+*** 400,405 ****
+--- 445,451 ----
+ || c3)) || c3))
+ foo; foo;
+ <
++ *cino-W*
+ WN When in unclosed parentheses and N is non-zero and either
+ using "(0" or "u0", respectively and the unclosed parentheses is
+ the last non-white character in its line and it is not the
+***************
+*** 414,419 ****
+--- 460,466 ----
+ a_short_line(argument, a_short_line(argument,
+ argument); argument);
+ <
++ *cino-m*
+ mN When N is non-zero, line up a line starting with a closing
+ parentheses with the first character of the line with the
+ matching opening parentheses. (default 0).
+***************
+*** 428,433 ****
+--- 475,481 ----
+ ) )
+ foo; foo;
+ <
++ *cino-M*
+ MN When N is non-zero, line up a line starting with a closing
+ parentheses with the first character of the previous line.
+ (default 0).
+***************
+*** 437,443 ****
+ cond2 cond2
+ ) )
+ <
+! *java-cinoptions* *java-indenting*
+ jN Indent java anonymous classes correctly. The value 'N' is
+ currently unused but must be non-zero (e.g. 'j1'). 'j1' will
+ indent for example the following code snippet correctly: >
+--- 485,491 ----
+ cond2 cond2
+ ) )
+ <
+! *java-cinoptions* *java-indenting* *cino-j*
+ jN Indent java anonymous classes correctly. The value 'N' is
+ currently unused but must be non-zero (e.g. 'j1'). 'j1' will
+ indent for example the following code snippet correctly: >
+***************
+*** 448,454 ****
+ }
+ });
+ <
+! *javascript-cinoptions* *javascript-indenting*
+ JN Indent JavaScript object declarations correctly by not confusing
+ them with labels. The value 'N' is currently unused but must be
+ non-zero (e.g. 'J1'). >
+--- 496,502 ----
+ }
+ });
+ <
+! *javascript-cinoptions* *javascript-indenting* *cino-J*
+ JN Indent JavaScript object declarations correctly by not confusing
+ them with labels. The value 'N' is currently unused but must be
+ non-zero (e.g. 'J1'). >
+***************
+*** 483,489 ****
+
+
+ The defaults, spelled out in full, are:
+! cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,
+ c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+--- 534,540 ----
+
+
+ The defaults, spelled out in full, are:
+! cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+ c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+*** ../mercurial/vim73/src/misc1.c 2011-05-25 13:33:59.000000000 +0200
+--- src/misc1.c 2011-05-25 14:57:31.000000000 +0200
+***************
+*** 4959,4964 ****
+--- 4959,4965 ----
+ static int corr_ind_maxparen __ARGS((int ind_maxparen, pos_T *startpos));
+ static int find_last_paren __ARGS((char_u *l, int start, int end));
+ static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment));
++ static int cin_is_cpp_namespace __ARGS((char_u *));
+
+ static int ind_hash_comment = 0; /* # starts a comment */
+
+***************
+*** 5221,5226 ****
+--- 5222,5271 ----
+ return (*(s = cin_skipcomment(s + i)) == ':' && s[1] != ':');
+ }
+
++ /* Maximum number of lines to search back for a "namespace" line. */
++ #define FIND_NAMESPACE_LIM 20
++
++ /*
++ * Recognize a "namespace" scope declaration.
++ */
++ static int
++ cin_is_cpp_namespace(s)
++ char_u *s;
++ {
++ char_u *p;
++ int has_name = FALSE;
++
++ s = cin_skipcomment(s);
++ if (STRNCMP(s, "namespace", 9) == 0 && (s[9] == NUL || !vim_iswordc(s[9])))
++ {
++ p = cin_skipcomment(skipwhite(s + 9));
++ while (*p != NUL)
++ {
++ if (vim_iswhite(*p))
++ {
++ has_name = TRUE; /* found end of a name */
++ p = cin_skipcomment(skipwhite(p));
++ }
++ else if (*p == '{')
++ {
++ break;
++ }
++ else if (vim_iswordc(*p))
++ {
++ if (has_name)
++ return FALSE; /* word character after skipping past name */
++ ++p;
++ }
++ else
++ {
++ return FALSE;
++ }
++ }
++ return TRUE;
++ }
++ return FALSE;
++ }
++
+ /*
+ * Return a pointer to the first non-empty non-comment character after a ':'.
+ * Return NULL if not found.
+***************
+*** 6296,6301 ****
+--- 6341,6351 ----
+ */
+ int ind_keep_case_label = 0;
+
++ /*
++ * handle C++ namespace
++ */
++ int ind_cpp_namespace = 0;
++
+ pos_T cur_curpos;
+ int amount;
+ int scope_amount;
+***************
+*** 6336,6341 ****
+--- 6386,6392 ----
+ int n;
+ int iscase;
+ int lookfor_break;
++ int lookfor_cpp_namespace = FALSE;
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
+
+***************
+*** 6409,6414 ****
+--- 6460,6466 ----
+ case 'J': ind_js = n; break;
+ case 'l': ind_keep_case_label = n; break;
+ case '#': ind_hash_comment = n; break;
++ case 'N': ind_cpp_namespace = n; break;
+ }
+ if (*options == ',')
+ ++options;
+***************
+*** 6976,6986 ****
+--- 7028,7051 ----
+ if (start_brace == BRACE_IN_COL0) /* '{' is in column 0 */
+ {
+ amount = ind_open_left_imag;
++ lookfor_cpp_namespace = TRUE;
++ }
++ else if (start_brace == BRACE_AT_START &&
++ lookfor_cpp_namespace) /* '{' is at start */
++ {
++
++ lookfor_cpp_namespace = TRUE;
+ }
+ else
+ {
+ if (start_brace == BRACE_AT_END) /* '{' is at end of line */
++ {
+ amount += ind_open_imag;
++
++ l = skipwhite(ml_get_curline());
++ if (cin_is_cpp_namespace(l))
++ amount += ind_cpp_namespace;
++ }
+ else
+ {
+ /* Compensate for adding ind_open_extra later. */
+***************
+*** 7151,7156 ****
+--- 7216,7261 ----
+ else
+ amount += ind_continuation;
+ }
++ else if (lookfor_cpp_namespace)
++ {
++ if (curwin->w_cursor.lnum == ourscope)
++ continue;
++
++ if (curwin->w_cursor.lnum == 0
++ || curwin->w_cursor.lnum
++ < ourscope - FIND_NAMESPACE_LIM)
++ break;
++
++ l = ml_get_curline();
++
++ /*
++ * If we're in a comment now, skip to the start of the
++ * comment.
++ */
++ trypos = find_start_comment(ind_maxcomment);
++ if (trypos != NULL)
++ {
++ curwin->w_cursor.lnum = trypos->lnum + 1;
++ curwin->w_cursor.col = 0;
++ continue;
++ }
++
++ /*
++ * Skip preprocessor directives and blank lines.
++ */
++ if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
++ continue;
++
++ if (cin_is_cpp_namespace(l))
++ {
++ amount += ind_cpp_namespace;
++ break;
++ }
++
++ if (cin_nocode(l))
++ continue;
++
++ }
+ else if (lookfor != LOOKFOR_TERM
+ && lookfor != LOOKFOR_CPP_BASECLASS)
+ {
+*** ../mercurial/vim73/src/testdir/test3.in 2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.in 2011-05-25 14:47:31.000000000 +0200
+***************
+*** 799,804 ****
+--- 799,867 ----
+ df */
+ hello
+ }
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++
+ /* end of AUTO */
+
+ STARTTEST
+***************
+*** 1428,1433 ****
+--- 1491,1566 ----
+ }
+
+ STARTTEST
++ :set cino=N-s
++ /namespaces
++ =/^NAMESPACEEND
++ ENDTEST
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++ NAMESPACEEND
++
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.ok 2011-05-25 14:48:02.000000000 +0200
+***************
+*** 787,792 ****
+--- 787,855 ----
+ df */
+ hello
+ }
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++
+ /* end of AUTO */
+
+
+***************
+*** 1273,1275 ****
+--- 1336,1403 ----
+ baz();
+ }
+
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++ NAMESPACEEND
++
++
+*** ../vim-7.3.201/src/version.c 2011-05-25 13:33:59.000000000 +0200
+--- src/version.c 2011-05-25 15:14:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 202,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+107. When using your phone you forget that you don't have to use your
+ keyboard.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.203 b/source/ap/vim/patches/7.3.203
new file mode 100644
index 000000000..62c298972
--- /dev/null
+++ b/source/ap/vim/patches/7.3.203
@@ -0,0 +1,102 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.203
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.203
+Problem: MS-Windows: Can't run an external command without a console window.
+Solution: Support ":!start /b cmd". (Xaizek)
+Files: runtime/doc/os_win32.txt, src/os_win32.c
+
+
+*** ../mercurial/vim73/src/os_win32.c 2011-05-05 18:31:54.000000000 +0200
+--- src/os_win32.c 2011-05-25 16:45:31.000000000 +0200
+***************
+*** 3401,3406 ****
+--- 3401,3407 ----
+ {
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
++ DWORD flags = CREATE_NEW_CONSOLE;
+
+ si.cb = sizeof(si);
+ si.lpReserved = NULL;
+***************
+*** 3418,3423 ****
+--- 3419,3440 ----
+ si.dwFlags = STARTF_USESHOWWINDOW;
+ si.wShowWindow = SW_SHOWMINNOACTIVE;
+ }
++ else if ((STRNICMP(cmdbase, "/b", 2) == 0)
++ && vim_iswhite(cmdbase[2]))
++ {
++ cmdbase = skipwhite(cmdbase + 2);
++ flags = CREATE_NO_WINDOW;
++ si.dwFlags = STARTF_USESTDHANDLES;
++ si.hStdInput = CreateFile("\\\\.\\NUL", // File name
++ GENERIC_READ, // Access flags
++ 0, // Share flags
++ NULL, // Security att.
++ OPEN_EXISTING, // Open flags
++ FILE_ATTRIBUTE_NORMAL, // File att.
++ NULL); // Temp file
++ si.hStdOutput = si.hStdInput;
++ si.hStdError = si.hStdInput;
++ }
+
+ /* When the command is in double quotes, but 'shellxquote' is
+ * empty, keep the double quotes around the command.
+***************
+*** 3445,3451 ****
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+! CREATE_NEW_CONSOLE, // Creation flags
+ NULL, // Environment
+ NULL, // Current directory
+ &si, // Startup information
+--- 3462,3468 ----
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+! flags, // Creation flags
+ NULL, // Environment
+ NULL, // Current directory
+ &si, // Startup information
+***************
+*** 3458,3463 ****
+--- 3475,3485 ----
+ EMSG(_("E371: Command not found"));
+ #endif
+ }
++ if (si.hStdInput != NULL)
++ {
++ /* Close the handle to \\.\NUL */
++ CloseHandle(si.hStdInput);
++ }
+ /* Close the handles to the subprocess, so that it goes away */
+ CloseHandle(pi.hThread);
+ CloseHandle(pi.hProcess);
+*** ../vim-7.3.202/src/version.c 2011-05-25 15:16:06.000000000 +0200
+--- src/version.c 2011-05-25 17:05:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 203,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+108. While reading a magazine, you look for the Zoom icon for a better
+ look at a photograph.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.204 b/source/ap/vim/patches/7.3.204
new file mode 100644
index 000000000..b2b63602e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.204
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.204
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.204 (after 7.3.201)
+Problem: Compiler warning.
+Solution: Add type cast. (Mike Williams)
+Files: src/misc1.c
+
+
+*** ../mercurial/vim73/src/misc1.c 2011-05-25 15:16:06.000000000 +0200
+--- src/misc1.c 2011-05-25 17:25:10.000000000 +0200
+***************
+*** 7657,7663 ****
+ * not the one from "if () {". */
+ if (*l == '}')
+ curwin->w_cursor.col =
+! (l - ml_get_curline()) + 1;
+
+ if ((trypos = find_start_brace(ind_maxcomment))
+ == NULL
+--- 7657,7663 ----
+ * not the one from "if () {". */
+ if (*l == '}')
+ curwin->w_cursor.col =
+! (colnr_T)(l - ml_get_curline()) + 1;
+
+ if ((trypos = find_start_brace(ind_maxcomment))
+ == NULL
+*** ../vim-7.3.203/src/version.c 2011-05-25 17:06:16.000000000 +0200
+--- src/version.c 2011-05-25 17:29:32.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 204,
+ /**/
+
+--
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.205 b/source/ap/vim/patches/7.3.205
new file mode 100644
index 000000000..b49a040e4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.205
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.205
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.205
+Problem: Syntax "extend" doesn't work correctly.
+Solution: Avoid calling check_state_ends() recursively (Ben Schmidt)
+Files: src/syntax.c
+
+
+*** ../mercurial/vim73/src/syntax.c 2011-05-19 12:14:03.000000000 +0200
+--- src/syntax.c 2011-05-25 17:47:46.000000000 +0200
+***************
+*** 990,996 ****
+--- 990,999 ----
+ * previous line and regions that have "keepend".
+ */
+ if (current_state.ga_len > 0)
++ {
+ syn_update_ends(TRUE);
++ check_state_ends();
++ }
+
+ next_match_idx = -1;
+ ++current_line_id;
+***************
+*** 1064,1070 ****
+ }
+ }
+ check_keepend();
+- check_state_ends();
+ }
+
+ /****************************************
+--- 1067,1072 ----
+***************
+*** 2533,2539 ****
+ check_state_ends()
+ {
+ stateitem_T *cur_si;
+! int had_extend = FALSE;
+
+ cur_si = &CUR_STATE(current_state.ga_len - 1);
+ for (;;)
+--- 2535,2541 ----
+ check_state_ends()
+ {
+ stateitem_T *cur_si;
+! int had_extend;
+
+ cur_si = &CUR_STATE(current_state.ga_len - 1);
+ for (;;)
+***************
+*** 2586,2593 ****
+
+ /* When the ended item has "extend", another item with
+ * "keepend" now needs to check for its end. */
+! if (cur_si->si_flags & HL_EXTEND)
+! had_extend = TRUE;
+
+ pop_current_state();
+
+--- 2588,2594 ----
+
+ /* When the ended item has "extend", another item with
+ * "keepend" now needs to check for its end. */
+! had_extend = (cur_si->si_flags & HL_EXTEND);
+
+ pop_current_state();
+
+*** ../vim-7.3.204/src/version.c 2011-05-25 17:29:40.000000000 +0200
+--- src/version.c 2011-05-25 17:52:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 205,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+110. You actually volunteer to become your employer's webmaster.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.206 b/source/ap/vim/patches/7.3.206
new file mode 100644
index 000000000..8a91f0ae2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.206
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.206
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.206
+Problem: 64bit MS-Windows compiler warning.
+Solution: Use HandleToLong() instead of type cast. (Mike Williams)
+Files: src/gui_w32.c
+
+
+*** ../mercurial/vim73/src/gui_w32.c 2011-01-17 20:08:04.000000000 +0100
+--- src/gui_w32.c 2011-05-25 21:14:10.000000000 +0200
+***************
+*** 1575,1581 ****
+
+ #ifdef FEAT_EVAL
+ /* set the v:windowid variable */
+! set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
+ #endif
+
+ theend:
+--- 1575,1581 ----
+
+ #ifdef FEAT_EVAL
+ /* set the v:windowid variable */
+! set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
+ #endif
+
+ theend:
+*** ../vim-7.3.205/src/version.c 2011-05-25 17:56:23.000000000 +0200
+--- src/version.c 2011-05-25 21:16:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 206,
+ /**/
+
+--
+FIXME and XXX are two common keywords used to mark broken or incomplete code
+not only since XXX as a sex reference would grab everybody's attention but
+simply due to the fact that Vim would highlight these words.
+ -- Hendrik Scholz
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.207 b/source/ap/vim/patches/7.3.207
new file mode 100644
index 000000000..95b335ecc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.207
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.207
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.207
+Problem: Can't compile with MSVC with pentium4 and 64 bit.
+Solution: Only use SSE2 for 32 bit. (Mike Williams)
+Files: src/Make_mvc.mak
+
+
+*** ../mercurial/vim73/src/Make_mvc.mak 2011-02-15 18:06:11.000000000 +0100
+--- src/Make_mvc.mak 2011-06-04 11:59:38.000000000 +0200
+***************
+*** 409,416 ****
+ CPUARG =
+ !endif
+ !else
+! # VC8/9 only allows specifying SSE architecture
+! !if "$(CPUNR)" == "pentium4"
+ CPUARG = /arch:SSE2
+ !endif
+ !endif
+--- 409,416 ----
+ CPUARG =
+ !endif
+ !else
+! # VC8/9/10 only allows specifying SSE architecture but only for 32bit
+! !if "$(ASSEMBLY_ARCHITECTURE)" == "x86" && "$(CPUNR)" == "pentium4"
+ CPUARG = /arch:SSE2
+ !endif
+ !endif
+*** ../vim-7.3.206/src/version.c 2011-05-25 21:18:02.000000000 +0200
+--- src/version.c 2011-06-12 20:30:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 207,
+ /**/
+
+--
+"The question of whether computers can think is just like the question
+of whether submarines can swim." -- Edsger W. Dijkstra
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.208 b/source/ap/vim/patches/7.3.208
new file mode 100644
index 000000000..c5a792957
--- /dev/null
+++ b/source/ap/vim/patches/7.3.208
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.208
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.208
+Problem: Early terminated if statement.
+Solution: Remove the semicolon. (Lech Lorens)
+Files: src/gui_mac.c
+
+
+*** ../mercurial/vim73/src/gui_mac.c 2011-01-17 20:08:04.000000000 +0100
+--- src/gui_mac.c 2011-06-06 05:35:46.000000000 +0200
+***************
+*** 1840,1846 ****
+ p.v -= gui.scrollbar_height;
+ p.v -= p.v % gui.char_height;
+ p.v += 2 * gui.border_width;
+! if (gui.which_scrollbars[SBAR_BOTTOM]);
+ p.v += gui.scrollbar_height;
+
+ ZoomWindowIdeal(whichWindow, thePart, &p);
+--- 1840,1846 ----
+ p.v -= gui.scrollbar_height;
+ p.v -= p.v % gui.char_height;
+ p.v += 2 * gui.border_width;
+! if (gui.which_scrollbars[SBAR_BOTTOM])
+ p.v += gui.scrollbar_height;
+
+ ZoomWindowIdeal(whichWindow, thePart, &p);
+*** ../vim-7.3.207/src/version.c 2011-06-12 20:31:25.000000000 +0200
+--- src/version.c 2011-06-12 20:33:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 208,
+ /**/
+
+--
+Keep America beautiful. Swallow your beer cans.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.209 b/source/ap/vim/patches/7.3.209
new file mode 100644
index 000000000..afd4ab825
--- /dev/null
+++ b/source/ap/vim/patches/7.3.209
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.209
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.209
+Problem: MSVC Install instructions point to wrong batch file.
+Solution: Add a batch file for use with MSVC 10.
+Files: src/msvc2010.bat, src/INSTALLpc.txt, Filelist
+
+
+*** ../mercurial/vim73/src/msvc2010.bat 2011-06-12 20:35:31.000000000 +0200
+--- src/msvc2010.bat 2011-06-09 05:08:35.000000000 +0200
+***************
+*** 0 ****
+--- 1,7 ----
++ @echo off
++ rem To be used on MS-Windows for Visual C++ 2010 Express Edition
++ rem aka Microsoft Visual Studio 10.0.
++ rem See INSTALLpc.txt for information.
++ @echo on
++
++ call "%VS100COMNTOOLS%%vsvars32.bat"
+*** ../mercurial/vim73/src/INSTALLpc.txt 2010-08-16 21:23:30.000000000 +0200
+--- src/INSTALLpc.txt 2011-06-08 06:47:46.000000000 +0200
+***************
+*** 28,35 ****
+ 9. MS-DOS
+
+ The currently preferred method is using the free Visual C++ Toolkit 2008
+! |msvc-2008-express|. If you need the executable to run on Windows 98 or ME,
+! use the 2003 one |msvc-2003-toolkit|.
+
+
+ 1. Microsoft Visual C++
+--- 28,36 ----
+ 9. MS-DOS
+
+ The currently preferred method is using the free Visual C++ Toolkit 2008
+! |msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
+! you need the executable to run on Windows 98 or ME, use the 2003 one
+! |msvc-2003-toolkit|.
+
+
+ 1. Microsoft Visual C++
+***************
+*** 176,182 ****
+ http://www.microsoft.com/express/vc/Default.aspx
+ This includes the IDE and the debugger.
+
+! To set the environment execute the msvc2008.bat script. You can then build
+ Vim with Make_mvc.mak.
+
+
+--- 177,183 ----
+ http://www.microsoft.com/express/vc/Default.aspx
+ This includes the IDE and the debugger.
+
+! To set the environment execute the msvc2010.bat script. You can then build
+ Vim with Make_mvc.mak.
+
+
+*** ../mercurial/vim73/Filelist 2011-05-19 13:40:47.000000000 +0200
+--- Filelist 2011-06-09 05:17:25.000000000 +0200
+***************
+*** 262,267 ****
+--- 262,268 ----
+ src/bigvim.bat \
+ src/msvcsetup.bat \
+ src/msvc2008.bat \
++ src/msvc2010.bat \
+ src/dimm.idl \
+ src/dlldata.c \
+ src/dosinst.c \
+*** ../vim-7.3.208/src/version.c 2011-06-12 20:33:30.000000000 +0200
+--- src/version.c 2011-06-12 20:34:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 209,
+ /**/
+
+--
+"Hit any key to continue" is a lie.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.210 b/source/ap/vim/patches/7.3.210
new file mode 100644
index 000000000..f02fe6fe6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.210
@@ -0,0 +1,182 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.210
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.210
+Problem: Can't always find the file when using cscope.
+Solution: Add the 'cscoperelative' option. (Raghavendra D Prabhu)
+Files: runtime/doc/if_cscop.txt, runtime/doc/options.txt,
+ src/if_cscope.c, src/options.c, src/options.h
+
+
+*** ../mercurial/vim73/runtime/doc/if_cscop.txt 2010-09-30 21:38:08.000000000 +0200
+--- runtime/doc/if_cscop.txt 2011-06-12 19:54:26.000000000 +0200
+***************
+*** 271,276 ****
+--- 271,285 ----
+ :set cst
+ :set nocst
+ <
++ *cscoperelative* *csre*
++ If 'cscoperelative' set, then in absence of a prefix given to cscope (prefx
++ is the argument to -P option of cscope), basename of cscope.out location
++ (usually the project root directory) will be used as the prefix to construt
++ absolute path.The default is off. Note: This option is only effective when
++ cscope (cscopeprg) is initialized without a prefix path (-P). Examples: >
++ :set csre
++ :set nocsre
++ <
+ *cscopetagorder* *csto*
+ The value of 'csto' determines the order in which |:cstag| performs a search.
+ If 'csto' is set to zero, cscope database(s) are searched first, followed
+*** ../mercurial/vim73/runtime/doc/options.txt 2011-05-19 12:22:41.000000000 +0200
+--- runtime/doc/options.txt 2011-06-12 20:00:10.000000000 +0200
+***************
+*** 2209,2214 ****
+--- 2209,2224 ----
+ Specifies whether to use quickfix window to show cscope results.
+ See |cscopequickfix|.
+
++ *'cscoperelative'* *'csre'*
++ 'cscoperelative' 'csre' boolean (default off)
++ global
++ {not available when compiled without the |+cscope|
++ feature}
++ {not in Vi}
++ In the absence of a prefix (-P) for cscope. setting this option enables
++ to use the basename of cscope.out path as the prefix.
++ See |cscoperelative|.
++
+ *'cscopetag'* *'cst'* *'nocscopetag'* *'nocst'*
+ 'cscopetag' 'cst' boolean (default off)
+ global
+*** ../mercurial/vim73/src/if_cscope.c 2011-05-05 16:41:19.000000000 +0200
+--- src/if_cscope.c 2011-06-12 20:25:17.000000000 +0200
+***************
+*** 2471,2512 ****
+ */
+ static char *
+ cs_resolve_file(i, name)
+! int i;
+ char *name;
+ {
+! char *fullname;
+! int len;
+
+ /*
+! * ppath is freed when we destroy the cscope connection.
+! * fullname is freed after cs_make_vim_style_matches, after it's been
+! * copied into the tag buffer used by vim
+ */
+ len = (int)(strlen(name) + 2);
+ if (csinfo[i].ppath != NULL)
+ len += (int)strlen(csinfo[i].ppath);
+
+ if ((fullname = (char *)alloc(len)) == NULL)
+ return NULL;
+
+! /*
+! * note/example: this won't work if the cscope output already starts
+ * "../.." and the prefix path is also "../..". if something like this
+! * happens, you are screwed up and need to fix how you're using cscope.
+! */
+! if (csinfo[i].ppath != NULL &&
+! (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0) &&
+! (name[0] != '/')
+ #ifdef WIN32
+! && name[0] != '\\' && name[1] != ':'
+ #endif
+! )
+ (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
+ else
+ (void)sprintf(fullname, "%s", name);
+
+ return fullname;
+! } /* cs_resolve_file */
+
+
+ /*
+--- 2471,2531 ----
+ */
+ static char *
+ cs_resolve_file(i, name)
+! int i;
+ char *name;
+ {
+! char *fullname;
+! int len;
+! char_u *csdir = NULL;
+
+ /*
+! * Ppath is freed when we destroy the cscope connection.
+! * Fullname is freed after cs_make_vim_style_matches, after it's been
+! * copied into the tag buffer used by Vim.
+ */
+ len = (int)(strlen(name) + 2);
+ if (csinfo[i].ppath != NULL)
+ len += (int)strlen(csinfo[i].ppath);
++ else if (p_csre && csinfo[i].fname != NULL)
++ {
++ /* If 'cscoperelative' is set and ppath is not set, use cscope.out
++ * path in path resolution. */
++ csdir = alloc(MAXPATHL);
++ if (csdir != NULL)
++ {
++ vim_strncpy(csdir, (char_u *)csinfo[i].fname,
++ gettail((char_u *)csinfo[i].fname) - 1 - (char_u *)csinfo[i].fname);
++ len += (int)STRLEN(csdir);
++ }
++ }
+
+ if ((fullname = (char *)alloc(len)) == NULL)
+ return NULL;
+
+! /* Note/example: this won't work if the cscope output already starts
+ * "../.." and the prefix path is also "../..". if something like this
+! * happens, you are screwed up and need to fix how you're using cscope. */
+! if (csinfo[i].ppath != NULL
+! && (strncmp(name, csinfo[i].ppath, strlen(csinfo[i].ppath)) != 0)
+! && (name[0] != '/')
+ #ifdef WIN32
+! && name[0] != '\\' && name[1] != ':'
+ #endif
+! )
+ (void)sprintf(fullname, "%s/%s", csinfo[i].ppath, name);
++ else if (csdir != NULL && csinfo[i].fname != NULL && STRLEN(csdir) > 0)
++ {
++ /* Check for csdir to be non empty to avoid empty path concatenated to
++ * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
++ vim_free(fullname);
++ fullname = concat_fnames(csdir, (char_u *)name, TRUE);
++ }
+ else
+ (void)sprintf(fullname, "%s", name);
+
++ vim_free(csdir);
+ return fullname;
+! }
+
+
+ /*
+*** ../vim-7.3.209/src/version.c 2011-06-12 20:36:00.000000000 +0200
+--- src/version.c 2011-06-12 20:37:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 210,
+ /**/
+
+--
+Apathy Error: Don't bother striking any key.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.211 b/source/ap/vim/patches/7.3.211
new file mode 100644
index 000000000..4760c106c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.211
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.211
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.211 (after 7.3.210)
+Problem: Compiler warning.
+Solution: Add type cast.
+Files: src/if_cscope.c
+
+
+*** ../mercurial/vim73/src/if_cscope.c 2011-06-12 20:42:17.000000000 +0200
+--- src/if_cscope.c 2011-06-12 21:22:53.000000000 +0200
+***************
+*** 2518,2524 ****
+ /* Check for csdir to be non empty to avoid empty path concatenated to
+ * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
+ vim_free(fullname);
+! fullname = concat_fnames(csdir, (char_u *)name, TRUE);
+ }
+ else
+ (void)sprintf(fullname, "%s", name);
+--- 2518,2524 ----
+ /* Check for csdir to be non empty to avoid empty path concatenated to
+ * cscope output. TODO: avoid the unnecessary alloc/free of fullname. */
+ vim_free(fullname);
+! fullname = (char *)concat_fnames(csdir, (char_u *)name, TRUE);
+ }
+ else
+ (void)sprintf(fullname, "%s", name);
+*** ../vim-7.3.210/src/version.c 2011-06-12 20:42:17.000000000 +0200
+--- src/version.c 2011-06-12 21:24:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 211,
+ /**/
+
+--
+Did you ever see a "Hit any key to continue" message in a music piece?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.212 b/source/ap/vim/patches/7.3.212
new file mode 100644
index 000000000..d5086db0a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.212
@@ -0,0 +1,243 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.212
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.212
+Problem: With Python 3.2 ":py3" fails.
+Solution: Move PyEval_InitThreads() to after Py_Initialize(). (Roland
+ Puntaier) Check abiflags in configure. (Andreas Behr)
+Files: src/if_python3.c, src/auto/configure, src/configure.in
+
+
+*** ../mercurial/vim73/src/if_python3.c 2011-02-25 15:18:46.000000000 +0100
+--- src/if_python3.c 2011-06-11 04:24:49.000000000 +0200
+***************
+*** 547,560 ****
+ Py_SetPythonHome(PYTHON3_HOME);
+ #endif
+
+- /* initialise threads */
+- PyEval_InitThreads();
+-
+ #if !defined(MACOS) || defined(MACOS_X_UNIX)
+ Py_Initialize();
+ #else
+ PyMac_Initialize();
+ #endif
+
+ #ifdef DYNAMIC_PYTHON3
+ get_py3_exceptions();
+--- 547,559 ----
+ Py_SetPythonHome(PYTHON3_HOME);
+ #endif
+
+ #if !defined(MACOS) || defined(MACOS_X_UNIX)
+ Py_Initialize();
+ #else
+ PyMac_Initialize();
+ #endif
++ /* initialise threads, must be after Py_Initialize() */
++ PyEval_InitThreads();
+
+ #ifdef DYNAMIC_PYTHON3
+ get_py3_exceptions();
+*** ../mercurial/vim73/src/auto/configure 2011-05-10 15:41:59.000000000 +0200
+--- src/auto/configure 2011-06-12 21:33:16.000000000 +0200
+***************
+*** 5505,5510 ****
+--- 5505,5527 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_version" >&5
+ $as_echo "$vi_cv_var_python3_version" >&6; }
+
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's abiflags" >&5
++ $as_echo_n "checking Python's abiflags... " >&6; }
++ if test "${vi_cv_var_python3_abiflags+set}" = set; then :
++ $as_echo_n "(cached) " >&6
++ else
++
++ vi_cv_var_python3_abiflags=
++ if ${vi_cv_path_python3} -c \
++ "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
++ then
++ vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
++ "import sys; print(sys.abiflags)"`
++ fi
++ fi
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_var_python3_abiflags" >&5
++ $as_echo "$vi_cv_var_python3_abiflags" >&6; }
++
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Python's install prefix" >&5
+ $as_echo_n "checking Python's install prefix... " >&6; }
+ if test "${vi_cv_path_python3_pfx+set}" = set; then :
+***************
+*** 5555,5563 ****
+ else
+
+ vi_cv_path_python3_conf=
+ for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+ for subdir in lib64 lib share; do
+! d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python3_conf="$d"
+ fi
+--- 5572,5584 ----
+ else
+
+ vi_cv_path_python3_conf=
++ config_dir="config"
++ if test "${vi_cv_var_python3_abiflags}" != ""; then
++ config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
++ fi
+ for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+ for subdir in lib64 lib share; do
+! d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python3_conf="$d"
+ fi
+***************
+*** 5592,5598 ****
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+ vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+
+--- 5613,5619 ----
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+ vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+
+***************
+*** 5601,5609 ****
+
+ PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ if test "x$MACOSX" = "xyes"; then
+--- 5622,5630 ----
+
+ PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ if test "x$MACOSX" = "xyes"; then
+*** ../mercurial/vim73/src/configure.in 2011-05-10 15:41:59.000000000 +0200
+--- src/configure.in 2011-06-12 21:31:18.000000000 +0200
+***************
+*** 992,997 ****
+--- 992,1008 ----
+ ${vi_cv_path_python3} -c 'import sys; print(sys.version[:3])'`
+ ]])
+
++ dnl -- get abiflags for python 3.2 or higher (PEP 3149)
++ AC_CACHE_CHECK(Python's abiflags,vi_cv_var_python3_abiflags,
++ [
++ vi_cv_var_python3_abiflags=
++ if ${vi_cv_path_python3} -c \
++ "import sys; sys.exit(${vi_cv_var_python3_version} < 3.2)"
++ then
++ vi_cv_var_python3_abiflags=`${vi_cv_path_python3} -c \
++ "import sys; print(sys.abiflags)"`
++ fi ])
++
+ dnl -- find where python3 thinks it was installed
+ AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python3_pfx,
+ [ vi_cv_path_python3_pfx=`
+***************
+*** 1021,1029 ****
+ AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
+ [
+ vi_cv_path_python3_conf=
+ for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+ for subdir in lib64 lib share; do
+! d="${path}/${subdir}/python${vi_cv_var_python3_version}/config"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python3_conf="$d"
+ fi
+--- 1032,1044 ----
+ AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python3_conf,
+ [
+ vi_cv_path_python3_conf=
++ config_dir="config"
++ if test "${vi_cv_var_python3_abiflags}" != ""; then
++ config_dir="${config_dir}-${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
++ fi
+ for path in "${vi_cv_path_python3_pfx}" "${vi_cv_path_python3_epfx}"; do
+ for subdir in lib64 lib share; do
+! d="${path}/${subdir}/python${vi_cv_var_python3_version}/${config_dir}"
+ if test -d "$d" && test -f "$d/config.c"; then
+ vi_cv_path_python3_conf="$d"
+ fi
+***************
+*** 1055,1061 ****
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+ vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS} ${python3_LINKFORSHARED}"
+ dnl remove -ltermcap, it can conflict with an earlier -lncurses
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+--- 1070,1076 ----
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+ vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+! vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ dnl remove -ltermcap, it can conflict with an earlier -lncurses
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+***************
+*** 1063,1071 ****
+
+ PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ dnl For Mac OSX 10.2 config.o is included in the Python library.
+--- 1078,1086 ----
+
+ PYTHON3_LIBS="${vi_cv_path_python3_plibs}"
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ dnl For Mac OSX 10.2 config.o is included in the Python library.
+*** ../vim-7.3.211/src/version.c 2011-06-12 21:24:56.000000000 +0200
+--- src/version.c 2011-06-12 21:35:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 212,
+ /**/
+
+--
+In Joseph Heller's novel "Catch-22", the main character tries to get out of a
+war by proving he is crazy. But the mere fact he wants to get out of the war
+only shows he isn't crazy -- creating the original "Catch-22".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.213 b/source/ap/vim/patches/7.3.213
new file mode 100644
index 000000000..d3ef325e1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.213
@@ -0,0 +1,142 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.213
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.213
+Problem: Javascript object literal is not indented correctly.
+Solution: Make a special case for when "J1" is in 'cino'. (Luc Deschenaux)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/src/misc1.c 2011-05-25 17:29:40.000000000 +0200
+--- src/misc1.c 2011-06-10 04:58:10.000000000 +0200
+***************
+*** 6965,6971 ****
+ * ldfd) {
+ * }
+ */
+! if ((ind_keep_case_label
+ && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
+ amount = get_indent();
+ else
+--- 6965,6971 ----
+ * ldfd) {
+ * }
+ */
+! if (ind_js || (ind_keep_case_label
+ && cin_iscase(skipwhite(ml_get_curline()), FALSE)))
+ amount = get_indent();
+ else
+*** ../mercurial/vim73/src/testdir/test3.in 2011-05-25 15:16:06.000000000 +0200
+--- src/testdir/test3.in 2011-06-12 21:44:12.000000000 +0200
+***************
+*** 1492,1501 ****
+
+ STARTTEST
+ :set cino=N-s
+! /namespaces
+ =/^NAMESPACEEND
+ ENDTEST
+
+ /* valid namespaces with normal indent */
+ namespace
+ {
+--- 1492,1502 ----
+
+ STARTTEST
+ :set cino=N-s
+! /^NAMESPACESTART
+ =/^NAMESPACEEND
+ ENDTEST
+
++ NAMESPACESTART
+ /* valid namespaces with normal indent */
+ namespace
+ {
+***************
+*** 1561,1566 ****
+--- 1562,1588 ----
+
+
+ STARTTEST
++ :set cino=J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ var bar = {
++ foo: {
++ that: this,
++ some: ok,
++ },
++ "bar":{
++ a : 2,
++ b: "123abc",
++ x: 4,
++ "y": 5
++ }
++ }
++ JSEND
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-25 15:16:06.000000000 +0200
+--- src/testdir/test3.ok 2011-06-12 21:44:26.000000000 +0200
+***************
+*** 1337,1342 ****
+--- 1337,1343 ----
+ }
+
+
++ NAMESPACESTART
+ /* valid namespaces with normal indent */
+ namespace
+ {
+***************
+*** 1401,1403 ****
+--- 1402,1420 ----
+ NAMESPACEEND
+
+
++
++ JSSTART
++ var bar = {
++ foo: {
++ that: this,
++ some: ok,
++ },
++ "bar":{
++ a : 2,
++ b: "123abc",
++ x: 4,
++ "y": 5
++ }
++ }
++ JSEND
++
+*** ../vim-7.3.212/src/version.c 2011-06-12 21:37:06.000000000 +0200
+--- src/version.c 2011-06-12 21:48:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 213,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+169. You hire a housekeeper for your home page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.214 b/source/ap/vim/patches/7.3.214
new file mode 100644
index 000000000..a095bbc43
--- /dev/null
+++ b/source/ap/vim/patches/7.3.214
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.214
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.214
+Problem: The text displayed by ":z-" isn't exactly like old Vi.
+Solution: Add one to the start line number. (ChangZhuo Chen)
+Files: src/ex_cmds.c
+
+
+*** ../mercurial/vim73/src/ex_cmds.c 2011-05-19 14:30:07.000000000 +0200
+--- src/ex_cmds.c 2011-05-19 14:23:33.000000000 +0200
+***************
+*** 4097,4104 ****
+ switch (*kind)
+ {
+ case '-':
+! start = lnum - bigness * (linenr_T)(x - kind);
+! end = start + bigness;
+ curs = end;
+ break;
+
+--- 4097,4104 ----
+ switch (*kind)
+ {
+ case '-':
+! start = lnum - bigness * (linenr_T)(x - kind) + 1;
+! end = start + bigness - 1;
+ curs = end;
+ break;
+
+*** ../vim-7.3.213/src/version.c 2011-06-12 21:51:01.000000000 +0200
+--- src/version.c 2011-06-12 22:02:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 214,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+170. You introduce your wife as "my_lady@home.wife" and refer to your
+ children as "forked processes."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.215 b/source/ap/vim/patches/7.3.215
new file mode 100644
index 000000000..24d37fbfe
--- /dev/null
+++ b/source/ap/vim/patches/7.3.215
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.215
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.215 (after 7.3.210)
+Problem: Wrong file names in previous patch. (Toothpik)
+Solution: Include the option changes.
+Files: src/option.c, src/option.h
+
+
+*** ../mercurial/vim73/src/option.c 2011-05-19 13:40:47.000000000 +0200
+--- src/option.c 2011-06-12 19:58:17.000000000 +0200
+***************
+*** 901,906 ****
+--- 901,913 ----
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
++ {"cscoperelative", "csre", P_BOOL|P_VI_DEF|P_VIM,
++ #ifdef FEAT_CSCOPE
++ (char_u *)&p_csre, PV_NONE,
++ #else
++ (char_u *)NULL, PV_NONE,
++ #endif
++ {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+ {"cscopetag", "cst", P_BOOL|P_VI_DEF|P_VIM,
+ #ifdef FEAT_CSCOPE
+ (char_u *)&p_cst, PV_NONE,
+*** ../mercurial/vim73/src/option.h 2011-05-19 13:40:47.000000000 +0200
+--- src/option.h 2011-06-12 19:58:49.000000000 +0200
+***************
+*** 391,396 ****
+--- 391,397 ----
+ EXTERN char_u *p_cpo; /* 'cpoptions' */
+ #ifdef FEAT_CSCOPE
+ EXTERN char_u *p_csprg; /* 'cscopeprg' */
++ EXTERN int p_csre; /* 'cscoperelative' */
+ # ifdef FEAT_QUICKFIX
+ EXTERN char_u *p_csqf; /* 'cscopequickfix' */
+ # define CSQF_CMDS "sgdctefi"
+*** ../vim-7.3.214/src/version.c 2011-06-12 22:03:15.000000000 +0200
+--- src/version.c 2011-06-12 22:12:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 215,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+171. You invent another person and chat with yourself in empty chat rooms.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.216 b/source/ap/vim/patches/7.3.216
new file mode 100644
index 000000000..a52bc936b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.216
@@ -0,0 +1,263 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.216
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.216
+Problem: When recovering a file a range of lines is missing. (Charles Jie)
+Solution: Reset the index when advancing to the next pointer block. Add a
+ test to verify recovery works.
+Files: src/memline.c, src/testdir/test78.in, src/testdir/test78.ok,
+ src/testdir/Makefile, src/testdir/Make_amiga.mak,
+ src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+ src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../mercurial/vim73/src/memline.c 2011-05-10 16:41:13.000000000 +0200
+--- src/memline.c 2011-06-13 00:56:09.000000000 +0200
+***************
+*** 1507,1512 ****
+--- 1507,1513 ----
+ bnum = pp->pb_pointer[idx].pe_bnum;
+ line_count = pp->pb_pointer[idx].pe_line_count;
+ page_count = pp->pb_pointer[idx].pe_page_count;
++ idx = 0;
+ continue;
+ }
+ }
+*** ../mercurial/vim73/src/testdir/test78.in 2011-06-13 01:05:54.000000000 +0200
+--- src/testdir/test78.in 2011-06-13 00:54:48.000000000 +0200
+***************
+*** 0 ****
+--- 1,46 ----
++ Inserts 10000 lines with text to fill the swap file with two levels of pointer
++ blocks. Then recovers from the swap file and checks all text is restored.
++
++ We need about 10000 lines of 100 characters to get two levels of pointer
++ blocks.
++
++ STARTTEST
++ :so small.vim
++ :set nocp fileformat=unix undolevels=-1
++ :e! Xtest
++ ggdG
++ :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
++ :let i = 1
++ :let linecount = 10000
++ :while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
++ :preserve
++ :" get the name of the swap file
++ :redir => swapname
++ :swapname
++ :redir END
++ :let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')
++ :" make a copy of the swap file in Xswap
++ :set bin
++ :exe 'sp ' . swapname
++ :w! Xswap
++ :echo swapname
++ :set nobin
++ :new
++ :only!
++ :bwipe! Xtest
++ :call rename('Xswap', swapname)
++ :recover Xtest
++ :call delete(swapname)
++ :new
++ :call append(0, 'recovery start')
++ :wincmd w
++ :let linedollar = line('$')
++ :if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = linedollar | endif
++ :let i = 1
++ :while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
++ :q!
++ :call append(line('$'), 'recovery end')
++ :w! test.out
++ :qa!
++ ENDTEST
++
+*** ../mercurial/vim73/src/testdir/test78.ok 2011-06-13 01:05:54.000000000 +0200
+--- src/testdir/test78.ok 2011-06-13 00:25:05.000000000 +0200
+***************
+*** 0 ****
+--- 1,3 ----
++ recovery start
++
++ recovery end
+*** ../mercurial/vim73/src/testdir/Makefile 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Makefile 2011-06-13 00:35:46.000000000 +0200
+***************
+*** 25,31 ****
+ test59.out test60.out test61.out test62.out test63.out \
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 25,31 ----
+ test59.out test60.out test61.out test62.out test63.out \
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out test78.out
+
+ SCRIPTS_GUI = test16.out
+
+***************
+*** 71,77 ****
+ fi \
+ else echo $* NO OUTPUT >>test.log; \
+ fi"
+! # -rm -rf X* test.ok viminfo
+
+ test49.out: test49.vim
+
+--- 71,77 ----
+ fi \
+ else echo $* NO OUTPUT >>test.log; \
+ fi"
+! -rm -rf X* test.ok viminfo
+
+ test49.out: test49.vim
+
+*** ../mercurial/vim73/src/testdir/Make_amiga.mak 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_amiga.mak 2011-06-13 01:00:42.000000000 +0200
+***************
+*** 28,34 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out
+
+ .SUFFIXES: .in .out
+
+--- 28,34 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 125,127 ****
+--- 125,128 ----
+ test75.out: test75.in
+ test76.out: test76.in
+ test77.out: test77.in
++ test78.out: test78.in
+*** ../mercurial/vim73/src/testdir/Make_dos.mak 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_dos.mak 2011-06-13 01:00:55.000000000 +0200
+***************
+*** 28,34 ****
+ test37.out test38.out test39.out test40.out test41.out \
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 28,34 ----
+ test37.out test38.out test39.out test40.out test41.out \
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out test78.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../mercurial/vim73/src/testdir/Make_ming.mak 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_ming.mak 2011-06-13 01:01:02.000000000 +0200
+***************
+*** 48,54 ****
+ test37.out test38.out test39.out test40.out test41.out \
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 48,54 ----
+ test37.out test38.out test39.out test40.out test41.out \
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+! test74.out test75.out test76.out test77.out test78.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../mercurial/vim73/src/testdir/Make_os2.mak 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/Make_os2.mak 2011-06-13 01:01:08.000000000 +0200
+***************
+*** 28,34 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out
+
+ .SUFFIXES: .in .out
+
+--- 28,34 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out
+
+ .SUFFIXES: .in .out
+
+*** ../mercurial/vim73/src/testdir/Make_vms.mms 2011-04-28 19:05:01.000000000 +0200
+--- src/testdir/Make_vms.mms 2011-06-13 01:01:29.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Mar 03
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jun 13
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 75,81 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out test78.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.215/src/version.c 2011-06-12 22:13:37.000000000 +0200
+--- src/version.c 2011-06-13 00:59:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 216,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+172. You join listservers just for the extra e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.217 b/source/ap/vim/patches/7.3.217
new file mode 100644
index 000000000..be04b8634
--- /dev/null
+++ b/source/ap/vim/patches/7.3.217
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.217
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.217
+Problem: Inside an "if" a ":wincmd" causes problems.
+Solution: When skipping commands let ":wincmd" skip over its argument.
+Files: src/ex_docmd.c
+
+
+*** ../mercurial/vim73/src/ex_docmd.c 2011-05-25 12:51:17.000000000 +0200
+--- src/ex_docmd.c 2011-06-13 01:15:17.000000000 +0200
+***************
+*** 2595,2600 ****
+--- 2595,2601 ----
+ case CMD_unlet:
+ case CMD_verbose:
+ case CMD_vertical:
++ case CMD_wincmd:
+ break;
+
+ default: goto doend;
+***************
+*** 8237,8243 ****
+ p = skipwhite(p);
+ if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+ EMSG(_(e_invarg));
+! else
+ {
+ /* Pass flags on for ":vertical wincmd ]". */
+ postponed_split_flags = cmdmod.split;
+--- 8238,8244 ----
+ p = skipwhite(p);
+ if (*p != NUL && *p != '"' && eap->nextcmd == NULL)
+ EMSG(_(e_invarg));
+! else if (!eap->skip)
+ {
+ /* Pass flags on for ":vertical wincmd ]". */
+ postponed_split_flags = cmdmod.split;
+*** ../vim-7.3.216/src/version.c 2011-06-13 01:07:22.000000000 +0200
+--- src/version.c 2011-06-13 01:18:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 217,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+173. You keep tracking down the email addresses of all your friends
+ (even childhood friends).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.218 b/source/ap/vim/patches/7.3.218
new file mode 100644
index 000000000..1da18d810
--- /dev/null
+++ b/source/ap/vim/patches/7.3.218
@@ -0,0 +1,91 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.218
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.218 (after 7.3.212)
+Problem: Tiny configuration problem with Python 3.
+Solution: Add abiflags in one more place. (Andreas Behr)
+Files: src/auto/configure, src/configure.in
+
+
+*** ../mercurial/vim73/src/auto/configure 2011-06-12 21:37:06.000000000 +0200
+--- src/auto/configure 2011-06-13 01:26:50.000000000 +0200
+***************
+*** 5607,5613 ****
+ @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
+ @echo "python3_LIBS='$(LIBS)'"
+ @echo "python3_SYSLIBS='$(SYSLIBS)'"
+- @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
+ @echo "python3_INSTSONAME='$(INSTSONAME)'"
+ eof
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+--- 5607,5612 ----
+***************
+*** 5624,5630 ****
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ if test "x$MACOSX" = "xyes"; then
+--- 5623,5629 ----
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ if test "x$MACOSX" = "xyes"; then
+*** ../mercurial/vim73/src/configure.in 2011-06-12 21:37:06.000000000 +0200
+--- src/configure.in 2011-06-13 01:26:35.000000000 +0200
+***************
+*** 1063,1069 ****
+ @echo "python3_BASEMODLIBS='$(BASEMODLIBS)'"
+ @echo "python3_LIBS='$(LIBS)'"
+ @echo "python3_SYSLIBS='$(SYSLIBS)'"
+- @echo "python3_LINKFORSHARED='$(LINKFORSHARED)'"
+ @echo "python3_INSTSONAME='$(INSTSONAME)'"
+ eof
+ dnl -- delete the lines from make about Entering/Leaving directory
+--- 1063,1068 ----
+***************
+*** 1080,1086 ****
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ dnl For Mac OSX 10.2 config.o is included in the Python library.
+--- 1079,1085 ----
+ if test "${vi_cv_path_python3_pfx}" = "${vi_cv_path_python3_epfx}"; then
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ else
+! PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+ dnl For Mac OSX 10.2 config.o is included in the Python library.
+*** ../vim-7.3.217/src/version.c 2011-06-13 01:19:48.000000000 +0200
+--- src/version.c 2011-06-13 01:29:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 218,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+174. You know what a listserv is.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.219 b/source/ap/vim/patches/7.3.219
new file mode 100644
index 000000000..2ec111799
--- /dev/null
+++ b/source/ap/vim/patches/7.3.219
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.219
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.219
+Problem: Can't compile with GTK on Mac.
+Solution: Add some #ifdef trickery. (Ben Schmidt)
+Files: src/os_mac_conv.c, src/os_macosx.m, src/vim.h
+
+
+*** ../mercurial/vim73/src/os_mac_conv.c 2010-08-16 21:23:30.000000000 +0200
+--- src/os_mac_conv.c 2011-06-13 01:55:17.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,21 ----
+ */
+
+ #define NO_X11_INCLUDES
++ #define BalloonEval int /* used in header files */
++
+ #include "vim.h"
+ #ifndef FEAT_GUI_MAC
+ # include <CoreServices/CoreServices.h>
+*** ../mercurial/vim73/src/os_macosx.m 2010-10-10 17:08:28.000000000 +0200
+--- src/os_macosx.m 2011-06-13 01:58:47.000000000 +0200
+***************
+*** 18,23 ****
+--- 18,24 ----
+ /* Avoid a conflict for the definition of Boolean between Mac header files and
+ * X11 header files. */
+ #define NO_X11_INCLUDES
++ #define BalloonEval int /* used in header files */
+
+ #include "vim.h"
+ #import <Cocoa/Cocoa.h>
+***************
+*** 27,35 ****
+ * Clipboard support for the console.
+ * Don't include this when building the GUI version, the functions in
+ * gui_mac.c are used then. TODO: remove those instead?
+! * But for MacVim we need these ones.
+ */
+! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI) || defined(FEAT_GUI_MACVIM))
+
+ /* Used to identify clipboard data copied from Vim. */
+
+--- 28,36 ----
+ * Clipboard support for the console.
+ * Don't include this when building the GUI version, the functions in
+ * gui_mac.c are used then. TODO: remove those instead?
+! * But for MacVim we do need these ones.
+ */
+! #if defined(FEAT_CLIPBOARD) && (!defined(FEAT_GUI_ENABLED) || defined(FEAT_GUI_MACVIM))
+
+ /* Used to identify clipboard data copied from Vim. */
+
+*** ../mercurial/vim73/src/vim.h 2011-05-19 18:26:34.000000000 +0200
+--- src/vim.h 2011-06-13 01:57:17.000000000 +0200
+***************
+*** 121,126 ****
+--- 121,127 ----
+ || defined(FEAT_GUI_W32) \
+ || defined(FEAT_GUI_W16) \
+ || defined(FEAT_GUI_PHOTON)
++ # define FEAT_GUI_ENABLED /* also defined with NO_X11_INCLUDES */
+ # if !defined(FEAT_GUI) && !defined(NO_X11_INCLUDES)
+ # define FEAT_GUI
+ # endif
+*** ../vim-7.3.218/src/version.c 2011-06-13 01:32:42.000000000 +0200
+--- src/version.c 2011-06-13 02:03:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 219,
+ /**/
+
+--
+If Microsoft would build a car...
+... the oil, water temperature, and alternator warning lights would
+all be replaced by a single "General Protection Fault" warning light.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.220 b/source/ap/vim/patches/7.3.220
new file mode 100644
index 000000000..0122e7fce
--- /dev/null
+++ b/source/ap/vim/patches/7.3.220
@@ -0,0 +1,1230 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.220
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.220
+Problem: Python 3: vim.error is a 'str' instead of an 'Exception' object,
+ so 'except' or 'raise' it causes a 'SystemError' exception.
+ Buffer objects do not support slice assignment.
+ When exchanging text between Vim and Python, multibyte texts become
+ gabage or cause Unicode Expceptions, etc.
+ 'py3file' tries to read in the file as Unicode, sometimes causes
+ UnicodeDecodeException
+Solution: Fix the problems. (lilydjwg)
+Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
+
+
+*** ../mercurial/vim73/src/if_py_both.h 2011-03-22 15:47:18.000000000 +0100
+--- src/if_py_both.h 2011-06-18 23:54:25.000000000 +0200
+***************
+*** 65,74 ****
+ OutputWrite(PyObject *self, PyObject *args)
+ {
+ int len;
+! char *str;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "s#", &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+--- 65,74 ----
+ OutputWrite(PyObject *self, PyObject *args)
+ {
+ int len;
+! char *str = NULL;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+***************
+*** 76,81 ****
+--- 76,82 ----
+ writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+ Python_Release_Vim();
+ Py_END_ALLOW_THREADS
++ PyMem_Free(str);
+
+ Py_INCREF(Py_None);
+ return Py_None;
+***************
+*** 104,113 ****
+ for (i = 0; i < n; ++i)
+ {
+ PyObject *line = PyList_GetItem(list, i);
+! char *str;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "s#", &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+--- 105,114 ----
+ for (i = 0; i < n; ++i)
+ {
+ PyObject *line = PyList_GetItem(list, i);
+! char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+***************
+*** 118,123 ****
+--- 119,125 ----
+ writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+ Python_Release_Vim();
+ Py_END_ALLOW_THREADS
++ PyMem_Free(str);
+ }
+
+ Py_DECREF(list);
+***************
+*** 681,686 ****
+--- 683,689 ----
+ {
+ const char *str;
+ char *save;
++ PyObject *bytes;
+ PyInt len;
+ PyInt i;
+ char *p;
+***************
+*** 691,698 ****
+ return NULL;
+ }
+
+! str = PyString_AsString(obj);
+! len = PyString_Size(obj);
+
+ /*
+ * Error checking: String must not contain newlines, as we
+--- 694,702 ----
+ return NULL;
+ }
+
+! bytes = PyString_AsBytes(obj); /* for Python 2 this does nothing */
+! str = PyString_AsString(bytes);
+! len = PyString_Size(bytes);
+
+ /*
+ * Error checking: String must not contain newlines, as we
+***************
+*** 731,736 ****
+--- 735,741 ----
+ }
+
+ save[i] = '\0';
++ PyString_FreeBytes(bytes); /* Python 2 does nothing here */
+
+ return save;
+ }
+***************
+*** 817,823 ****
+ invalidate_botline();
+ }
+
+! /* Replace a line in the specified buffer. The line number is
+ * in Vim format (1-based). The replacement line is given as
+ * a Python string object. The object is checked for validity
+ * and correct format. Errors are returned as a value of FAIL.
+--- 822,829 ----
+ invalidate_botline();
+ }
+
+! /*
+! * Replace a line in the specified buffer. The line number is
+ * in Vim format (1-based). The replacement line is given as
+ * a Python string object. The object is checked for validity
+ * and correct format. Errors are returned as a value of FAIL.
+***************
+*** 908,913 ****
+--- 914,1106 ----
+ }
+ }
+
++ /* Replace a range of lines in the specified buffer. The line numbers are in
++ * Vim format (1-based). The range is from lo up to, but not including, hi.
++ * The replacement lines are given as a Python list of string objects. The
++ * list is checked for validity and correct format. Errors are returned as a
++ * value of FAIL. The return value is OK on success.
++ * If OK is returned and len_change is not NULL, *len_change
++ * is set to the change in the buffer length.
++ */
++ static int
++ SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
++ {
++ /* First of all, we check the thpe of the supplied Python object.
++ * There are three cases:
++ * 1. NULL, or None - this is a deletion.
++ * 2. A list - this is a replacement.
++ * 3. Anything else - this is an error.
++ */
++ if (list == Py_None || list == NULL)
++ {
++ PyInt i;
++ PyInt n = (int)(hi - lo);
++ buf_T *savebuf = curbuf;
++
++ PyErr_Clear();
++ curbuf = buf;
++
++ if (u_savedel((linenr_T)lo, (long)n) == FAIL)
++ PyErr_SetVim(_("cannot save undo information"));
++ else
++ {
++ for (i = 0; i < n; ++i)
++ {
++ if (ml_delete((linenr_T)lo, FALSE) == FAIL)
++ {
++ PyErr_SetVim(_("cannot delete line"));
++ break;
++ }
++ }
++ if (buf == curwin->w_buffer)
++ py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
++ deleted_lines_mark((linenr_T)lo, (long)i);
++ }
++
++ curbuf = savebuf;
++
++ if (PyErr_Occurred() || VimErrorCheck())
++ return FAIL;
++
++ if (len_change)
++ *len_change = -n;
++
++ return OK;
++ }
++ else if (PyList_Check(list))
++ {
++ PyInt i;
++ PyInt new_len = PyList_Size(list);
++ PyInt old_len = hi - lo;
++ PyInt extra = 0; /* lines added to text, can be negative */
++ char **array;
++ buf_T *savebuf;
++
++ if (new_len == 0) /* avoid allocating zero bytes */
++ array = NULL;
++ else
++ {
++ array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
++ if (array == NULL)
++ {
++ PyErr_NoMemory();
++ return FAIL;
++ }
++ }
++
++ for (i = 0; i < new_len; ++i)
++ {
++ PyObject *line = PyList_GetItem(list, i);
++
++ array[i] = StringToLine(line);
++ if (array[i] == NULL)
++ {
++ while (i)
++ vim_free(array[--i]);
++ vim_free(array);
++ return FAIL;
++ }
++ }
++
++ savebuf = curbuf;
++
++ PyErr_Clear();
++ curbuf = buf;
++
++ if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
++ PyErr_SetVim(_("cannot save undo information"));
++
++ /* If the size of the range is reducing (ie, new_len < old_len) we
++ * need to delete some old_len. We do this at the start, by
++ * repeatedly deleting line "lo".
++ */
++ if (!PyErr_Occurred())
++ {
++ for (i = 0; i < old_len - new_len; ++i)
++ if (ml_delete((linenr_T)lo, FALSE) == FAIL)
++ {
++ PyErr_SetVim(_("cannot delete line"));
++ break;
++ }
++ extra -= i;
++ }
++
++ /* For as long as possible, replace the existing old_len with the
++ * new old_len. This is a more efficient operation, as it requires
++ * less memory allocation and freeing.
++ */
++ if (!PyErr_Occurred())
++ {
++ for (i = 0; i < old_len && i < new_len; ++i)
++ if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
++ == FAIL)
++ {
++ PyErr_SetVim(_("cannot replace line"));
++ break;
++ }
++ }
++ else
++ i = 0;
++
++ /* Now we may need to insert the remaining new old_len. If we do, we
++ * must free the strings as we finish with them (we can't pass the
++ * responsibility to vim in this case).
++ */
++ if (!PyErr_Occurred())
++ {
++ while (i < new_len)
++ {
++ if (ml_append((linenr_T)(lo + i - 1),
++ (char_u *)array[i], 0, FALSE) == FAIL)
++ {
++ PyErr_SetVim(_("cannot insert line"));
++ break;
++ }
++ vim_free(array[i]);
++ ++i;
++ ++extra;
++ }
++ }
++
++ /* Free any left-over old_len, as a result of an error */
++ while (i < new_len)
++ {
++ vim_free(array[i]);
++ ++i;
++ }
++
++ /* Free the array of old_len. All of its contents have now
++ * been dealt with (either freed, or the responsibility passed
++ * to vim.
++ */
++ vim_free(array);
++
++ /* Adjust marks. Invalidate any which lie in the
++ * changed range, and move any in the remainder of the buffer.
++ */
++ mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
++ (long)MAXLNUM, (long)extra);
++ changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
++
++ if (buf == curwin->w_buffer)
++ py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
++
++ curbuf = savebuf;
++
++ if (PyErr_Occurred() || VimErrorCheck())
++ return FAIL;
++
++ if (len_change)
++ *len_change = new_len - old_len;
++
++ return OK;
++ }
++ else
++ {
++ PyErr_BadArgument();
++ return FAIL;
++ }
++ }
+
+ /* Insert a number of lines into the specified buffer after the specifed line.
+ * The line number is in Vim format (1-based). The lines to be inserted are
+***************
+*** 1108,1113 ****
+--- 1301,1340 ----
+ return -1;
+
+ if (new_end)
++ *new_end = end + len_change;
++
++ return 0;
++ }
++
++ static PyInt
++ RBAsSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
++ {
++ PyInt size;
++ PyInt len_change;
++
++ /* Self must be a valid buffer */
++ if (CheckBuffer(self))
++ return -1;
++
++ /* Sort out the slice range */
++ size = end - start + 1;
++
++ if (lo < 0)
++ lo = 0;
++ else if (lo > size)
++ lo = size;
++ if (hi < 0)
++ hi = 0;
++ if (hi < lo)
++ hi = lo;
++ else if (hi > size)
++ hi = size;
++
++ if (SetBufferLineList(self->buf, lo + start, hi + start,
++ val, &len_change) == FAIL)
++ return -1;
++
++ if (new_end)
+ *new_end = end + len_change;
+
+ return 0;
+*** ../mercurial/vim73/src/if_python.c 2011-03-26 18:32:00.000000000 +0100
+--- src/if_python.c 2011-06-19 00:02:15.000000000 +0200
+***************
+*** 56,61 ****
+--- 56,65 ----
+
+ static void init_structs(void);
+
++ /* No-op conversion functions, use with care! */
++ #define PyString_AsBytes(obj) (obj)
++ #define PyString_FreeBytes(obj)
++
+ #if !defined(FEAT_PYTHON) && defined(PROTO)
+ /* Use this to be able to generate prototypes without python being used. */
+ # define PyObject Py_ssize_t
+***************
+*** 129,134 ****
+--- 133,139 ----
+ */
+ # define PyArg_Parse dll_PyArg_Parse
+ # define PyArg_ParseTuple dll_PyArg_ParseTuple
++ # define PyMem_Free dll_PyMem_Free
+ # define PyDict_SetItemString dll_PyDict_SetItemString
+ # define PyErr_BadArgument dll_PyErr_BadArgument
+ # define PyErr_Clear dll_PyErr_Clear
+***************
+*** 189,194 ****
+--- 194,200 ----
+ */
+ static int(*dll_PyArg_Parse)(PyObject *, char *, ...);
+ static int(*dll_PyArg_ParseTuple)(PyObject *, char *, ...);
++ static int(*dll_PyMem_Free)(void *);
+ static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+ static int(*dll_PyErr_BadArgument)(void);
+ static void(*dll_PyErr_Clear)(void);
+***************
+*** 271,276 ****
+--- 277,283 ----
+ {
+ {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
+ {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
++ {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
+ {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
+ {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument},
+ {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear},
+***************
+*** 833,876 ****
+ static PyObject *CurrentGetattr(PyObject *, char *);
+ static int CurrentSetattr(PyObject *, char *, PyObject *);
+
+- /* Common routines for buffers and line ranges
+- * -------------------------------------------
+- */
+-
+- static PyInt
+- RBAssSlice(BufferObject *self, PyInt lo, PyInt hi, PyObject *val, PyInt start, PyInt end, PyInt *new_end)
+- {
+- PyInt size;
+- PyInt len_change;
+-
+- /* Self must be a valid buffer */
+- if (CheckBuffer(self))
+- return -1;
+-
+- /* Sort out the slice range */
+- size = end - start + 1;
+-
+- if (lo < 0)
+- lo = 0;
+- else if (lo > size)
+- lo = size;
+- if (hi < 0)
+- hi = 0;
+- if (hi < lo)
+- hi = lo;
+- else if (hi > size)
+- hi = size;
+-
+- if (SetBufferLineList(self->buf, lo + start, hi + start,
+- val, &len_change) == FAIL)
+- return -1;
+-
+- if (new_end)
+- *new_end = end + len_change;
+-
+- return 0;
+- }
+-
+ static PySequenceMethods BufferAsSeq = {
+ (PyInquiry) BufferLength, /* sq_length, len(x) */
+ (binaryfunc) 0, /* BufferConcat, */ /* sq_concat, x+y */
+--- 840,845 ----
+***************
+*** 1038,1044 ****
+ static PyInt
+ BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+ {
+! return RBAssSlice((BufferObject *)(self), lo, hi, val, 1,
+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+ }
+--- 1007,1013 ----
+ static PyInt
+ BufferAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+ {
+! return RBAsSlice((BufferObject *)(self), lo, hi, val, 1,
+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+ }
+***************
+*** 1088,1094 ****
+ static PyInt
+ RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+ {
+! return RBAssSlice(((RangeObject *)(self))->buf, lo, hi, val,
+ ((RangeObject *)(self))->start,
+ ((RangeObject *)(self))->end,
+ &((RangeObject *)(self))->end);
+--- 1057,1063 ----
+ static PyInt
+ RangeAssSlice(PyObject *self, PyInt lo, PyInt hi, PyObject *val)
+ {
+! return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
+ ((RangeObject *)(self))->start,
+ ((RangeObject *)(self))->end,
+ &((RangeObject *)(self))->end);
+***************
+*** 1435,1628 ****
+ * 4. Utility functions for handling the interface between Vim and Python.
+ */
+
+- /* Replace a range of lines in the specified buffer. The line numbers are in
+- * Vim format (1-based). The range is from lo up to, but not including, hi.
+- * The replacement lines are given as a Python list of string objects. The
+- * list is checked for validity and correct format. Errors are returned as a
+- * value of FAIL. The return value is OK on success.
+- * If OK is returned and len_change is not NULL, *len_change
+- * is set to the change in the buffer length.
+- */
+- static int
+- SetBufferLineList(buf_T *buf, PyInt lo, PyInt hi, PyObject *list, PyInt *len_change)
+- {
+- /* First of all, we check the thpe of the supplied Python object.
+- * There are three cases:
+- * 1. NULL, or None - this is a deletion.
+- * 2. A list - this is a replacement.
+- * 3. Anything else - this is an error.
+- */
+- if (list == Py_None || list == NULL)
+- {
+- PyInt i;
+- PyInt n = (int)(hi - lo);
+- buf_T *savebuf = curbuf;
+-
+- PyErr_Clear();
+- curbuf = buf;
+-
+- if (u_savedel((linenr_T)lo, (long)n) == FAIL)
+- PyErr_SetVim(_("cannot save undo information"));
+- else
+- {
+- for (i = 0; i < n; ++i)
+- {
+- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+- {
+- PyErr_SetVim(_("cannot delete line"));
+- break;
+- }
+- }
+- if (buf == curwin->w_buffer)
+- py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n);
+- deleted_lines_mark((linenr_T)lo, (long)i);
+- }
+-
+- curbuf = savebuf;
+-
+- if (PyErr_Occurred() || VimErrorCheck())
+- return FAIL;
+-
+- if (len_change)
+- *len_change = -n;
+-
+- return OK;
+- }
+- else if (PyList_Check(list))
+- {
+- PyInt i;
+- PyInt new_len = PyList_Size(list);
+- PyInt old_len = hi - lo;
+- PyInt extra = 0; /* lines added to text, can be negative */
+- char **array;
+- buf_T *savebuf;
+-
+- if (new_len == 0) /* avoid allocating zero bytes */
+- array = NULL;
+- else
+- {
+- array = (char **)alloc((unsigned)(new_len * sizeof(char *)));
+- if (array == NULL)
+- {
+- PyErr_NoMemory();
+- return FAIL;
+- }
+- }
+-
+- for (i = 0; i < new_len; ++i)
+- {
+- PyObject *line = PyList_GetItem(list, i);
+-
+- array[i] = StringToLine(line);
+- if (array[i] == NULL)
+- {
+- while (i)
+- vim_free(array[--i]);
+- vim_free(array);
+- return FAIL;
+- }
+- }
+-
+- savebuf = curbuf;
+-
+- PyErr_Clear();
+- curbuf = buf;
+-
+- if (u_save((linenr_T)(lo-1), (linenr_T)hi) == FAIL)
+- PyErr_SetVim(_("cannot save undo information"));
+-
+- /* If the size of the range is reducing (ie, new_len < old_len) we
+- * need to delete some old_len. We do this at the start, by
+- * repeatedly deleting line "lo".
+- */
+- if (!PyErr_Occurred())
+- {
+- for (i = 0; i < old_len - new_len; ++i)
+- if (ml_delete((linenr_T)lo, FALSE) == FAIL)
+- {
+- PyErr_SetVim(_("cannot delete line"));
+- break;
+- }
+- extra -= i;
+- }
+-
+- /* For as long as possible, replace the existing old_len with the
+- * new old_len. This is a more efficient operation, as it requires
+- * less memory allocation and freeing.
+- */
+- if (!PyErr_Occurred())
+- {
+- for (i = 0; i < old_len && i < new_len; ++i)
+- if (ml_replace((linenr_T)(lo+i), (char_u *)array[i], FALSE)
+- == FAIL)
+- {
+- PyErr_SetVim(_("cannot replace line"));
+- break;
+- }
+- }
+- else
+- i = 0;
+-
+- /* Now we may need to insert the remaining new old_len. If we do, we
+- * must free the strings as we finish with them (we can't pass the
+- * responsibility to vim in this case).
+- */
+- if (!PyErr_Occurred())
+- {
+- while (i < new_len)
+- {
+- if (ml_append((linenr_T)(lo + i - 1),
+- (char_u *)array[i], 0, FALSE) == FAIL)
+- {
+- PyErr_SetVim(_("cannot insert line"));
+- break;
+- }
+- vim_free(array[i]);
+- ++i;
+- ++extra;
+- }
+- }
+-
+- /* Free any left-over old_len, as a result of an error */
+- while (i < new_len)
+- {
+- vim_free(array[i]);
+- ++i;
+- }
+-
+- /* Free the array of old_len. All of its contents have now
+- * been dealt with (either freed, or the responsibility passed
+- * to vim.
+- */
+- vim_free(array);
+-
+- /* Adjust marks. Invalidate any which lie in the
+- * changed range, and move any in the remainder of the buffer.
+- */
+- mark_adjust((linenr_T)lo, (linenr_T)(hi - 1),
+- (long)MAXLNUM, (long)extra);
+- changed_lines((linenr_T)lo, 0, (linenr_T)hi, (long)extra);
+-
+- if (buf == curwin->w_buffer)
+- py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)extra);
+-
+- curbuf = savebuf;
+-
+- if (PyErr_Occurred() || VimErrorCheck())
+- return FAIL;
+-
+- if (len_change)
+- *len_change = new_len - old_len;
+-
+- return OK;
+- }
+- else
+- {
+- PyErr_BadArgument();
+- return FAIL;
+- }
+- }
+-
+ /* Convert a Vim line into a Python string.
+ * All internal newlines are replaced by null characters.
+ *
+--- 1404,1409 ----
+*** ../mercurial/vim73/src/if_python3.c 2011-06-12 21:37:06.000000000 +0200
+--- src/if_python3.c 2011-06-19 00:10:42.000000000 +0200
+***************
+*** 70,77 ****
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsString(obj) _PyUnicode_AsString(obj)
+! #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
+ #define PyString_FromString(repr) PyUnicode_FromString(repr)
+
+ #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+--- 70,79 ----
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
+! #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+! #define PyString_AsString(obj) PyBytes_AsString(obj)
+! #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+ #define PyString_FromString(repr) PyUnicode_FromString(repr)
+
+ #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
+***************
+*** 99,104 ****
+--- 101,107 ----
+ # define PyArg_Parse py3_PyArg_Parse
+ # undef PyArg_ParseTuple
+ # define PyArg_ParseTuple py3_PyArg_ParseTuple
++ # define PyMem_Free py3_PyMem_Free
+ # define PyDict_SetItemString py3_PyDict_SetItemString
+ # define PyErr_BadArgument py3_PyErr_BadArgument
+ # define PyErr_Clear py3_PyErr_Clear
+***************
+*** 140,147 ****
+--- 143,155 ----
+ # define PyModule_AddObject py3_PyModule_AddObject
+ # define PyImport_AppendInittab py3_PyImport_AppendInittab
+ # define _PyUnicode_AsString py3__PyUnicode_AsString
++ # undef PyUnicode_AsEncodedString
++ # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
++ # undef PyBytes_AsString
++ # define PyBytes_AsString py3_PyBytes_AsString
+ # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
+ # define PySlice_Type (*py3_PySlice_Type)
++ # define PyErr_NewException py3_PyErr_NewException
+ # ifdef Py_DEBUG
+ # define _Py_NegativeRefcount py3__Py_NegativeRefcount
+ # define _Py_RefTotal (*py3__Py_RefTotal)
+***************
+*** 157,164 ****
+ # define PyModule_Create2 py3_PyModule_Create2
+ # undef PyUnicode_FromString
+ # define PyUnicode_FromString py3_PyUnicode_FromString
+! # undef PyUnicode_FromStringAndSize
+! # define PyUnicode_FromStringAndSize py3_PyUnicode_FromStringAndSize
+
+ # ifdef Py_DEBUG
+ # undef PyObject_NEW
+--- 165,172 ----
+ # define PyModule_Create2 py3_PyModule_Create2
+ # undef PyUnicode_FromString
+ # define PyUnicode_FromString py3_PyUnicode_FromString
+! # undef PyUnicode_Decode
+! # define PyUnicode_Decode py3_PyUnicode_Decode
+
+ # ifdef Py_DEBUG
+ # undef PyObject_NEW
+***************
+*** 199,205 ****
+ static int (*py3_PyType_Ready)(PyTypeObject *type);
+ static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+ static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+! static PyObject* (*py3_PyUnicode_FromStringAndSize)(const char *u, Py_ssize_t size);
+ static long (*py3_PyLong_AsLong)(PyObject *);
+ static void (*py3_PyErr_SetNone)(PyObject *);
+ static void (*py3_PyEval_InitThreads)(void);
+--- 207,214 ----
+ static int (*py3_PyType_Ready)(PyTypeObject *type);
+ static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+ static PyObject* (*py3_PyUnicode_FromString)(const char *u);
+! static PyObject* (*py3_PyUnicode_Decode)(const char *u, Py_ssize_t size,
+! const char *encoding, const char *errors);
+ static long (*py3_PyLong_AsLong)(PyObject *);
+ static void (*py3_PyErr_SetNone)(PyObject *);
+ static void (*py3_PyEval_InitThreads)(void);
+***************
+*** 207,212 ****
+--- 216,222 ----
+ static PyThreadState*(*py3_PyEval_SaveThread)(void);
+ static int (*py3_PyArg_Parse)(PyObject *, char *, ...);
+ static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...);
++ static int (*py3_PyMem_Free)(void *);
+ static int (*py3_Py_IsInitialized)(void);
+ static void (*py3_PyErr_Clear)(void);
+ static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
+***************
+*** 214,224 ****
+--- 224,237 ----
+ static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+ static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
+ static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
++ static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
++ static char* (*py3_PyBytes_AsString)(PyObject *bytes);
+ static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
+ static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
+ static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
+ static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
+ static PyTypeObject* py3_PySlice_Type;
++ static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
+ # ifdef Py_DEBUG
+ static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
+ static Py_ssize_t* py3__Py_RefTotal;
+***************
+*** 259,264 ****
+--- 272,278 ----
+ {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
+ {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+ {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
++ {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
+ {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+ {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure},
+ {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release},
+***************
+*** 289,295 ****
+ {"PyEval_RestoreThread", (PYTHON_PROC*)&py3_PyEval_RestoreThread},
+ {"PyEval_SaveThread", (PYTHON_PROC*)&py3_PyEval_SaveThread},
+ {"PyArg_Parse", (PYTHON_PROC*)&py3_PyArg_Parse},
+- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+ {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
+ {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
+ {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
+--- 303,308 ----
+***************
+*** 297,307 ****
+--- 310,322 ----
+ {"PyModule_AddObject", (PYTHON_PROC*)&py3_PyModule_AddObject},
+ {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
+ {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
++ {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
+ {"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
+ {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
+ {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
+ {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
+ {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
++ {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
+ # ifdef Py_DEBUG
+ {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
+ {"_Py_RefTotal", (PYTHON_PROC*)&py3__Py_RefTotal},
+***************
+*** 337,343 ****
+ py3_runtime_link_init(char *libname, int verbose)
+ {
+ int i;
+! void *ucs_from_string, *ucs_from_string_and_size;
+
+ # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
+ /* Can't have Python and Python3 loaded at the same time.
+--- 352,358 ----
+ py3_runtime_link_init(char *libname, int verbose)
+ {
+ int i;
+! void *ucs_from_string, *ucs_decode, *ucs_as_encoded_string;
+
+ # if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON)
+ /* Can't have Python and Python3 loaded at the same time.
+***************
+*** 377,395 ****
+ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+ * will be present in the library. */
+ ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+! ucs_from_string_and_size = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS2_FromStringAndSize");
+! if (!ucs_from_string || !ucs_from_string_and_size)
+ {
+ ucs_from_string = symbol_from_dll(hinstPy3,
+ "PyUnicodeUCS4_FromString");
+! ucs_from_string_and_size = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS4_FromStringAndSize");
+ }
+! if (ucs_from_string && ucs_from_string_and_size)
+ {
+ py3_PyUnicode_FromString = ucs_from_string;
+! py3_PyUnicode_FromStringAndSize = ucs_from_string_and_size;
+ }
+ else
+ {
+--- 392,415 ----
+ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
+ * will be present in the library. */
+ ucs_from_string = symbol_from_dll(hinstPy3, "PyUnicodeUCS2_FromString");
+! ucs_decode = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS2_Decode");
+! ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS2_AsEncodedString");
+! if (!ucs_from_string || !ucs_decode || !ucs_as_encoded_string)
+ {
+ ucs_from_string = symbol_from_dll(hinstPy3,
+ "PyUnicodeUCS4_FromString");
+! ucs_decode = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS4_Decode");
+! ucs_as_encoded_string = symbol_from_dll(hinstPy3,
+! "PyUnicodeUCS4_AsEncodedString");
+ }
+! if (ucs_from_string && ucs_decode && ucs_as_encoded_string)
+ {
+ py3_PyUnicode_FromString = ucs_from_string;
+! py3_PyUnicode_Decode = ucs_decode;
+! py3_PyUnicode_AsEncodedString = ucs_as_encoded_string;
+ }
+ else
+ {
+***************
+*** 567,574 ****
+ /* Remove the element from sys.path that was added because of our
+ * argv[0] value in Py3Init_vim(). Previously we used an empty
+ * string, but dependinding on the OS we then get an empty entry or
+! * the current directory in sys.path. */
+! PyRun_SimpleString("import sys; sys.path = list(filter(lambda x: x != '/must>not&exist', sys.path))");
+
+ // lock is created and acquired in PyEval_InitThreads() and thread
+ // state is created in Py_Initialize()
+--- 587,597 ----
+ /* Remove the element from sys.path that was added because of our
+ * argv[0] value in Py3Init_vim(). Previously we used an empty
+ * string, but dependinding on the OS we then get an empty entry or
+! * the current directory in sys.path.
+! * Only after vim has been imported, the element does exist in
+! * sys.path.
+! */
+! PyRun_SimpleString("import vim; import sys; sys.path = list(filter(lambda x: not x.endswith('must>not&exist'), sys.path))");
+
+ // lock is created and acquired in PyEval_InitThreads() and thread
+ // state is created in Py_Initialize()
+***************
+*** 605,610 ****
+--- 628,635 ----
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+ char *saved_locale;
+ #endif
++ PyObject *cmdstr;
++ PyObject *cmdbytes;
+
+ #if defined(MACOS) && !defined(MACOS_X_UNIX)
+ GetPort(&oldPort);
+***************
+*** 634,640 ****
+
+ pygilstate = PyGILState_Ensure();
+
+! PyRun_SimpleString((char *)(cmd));
+
+ PyGILState_Release(pygilstate);
+
+--- 659,671 ----
+
+ pygilstate = PyGILState_Ensure();
+
+! /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+! * SyntaxError (unicode error). */
+! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
+! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+! Py_XDECREF(cmdstr);
+! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+! Py_XDECREF(cmdbytes);
+
+ PyGILState_Release(pygilstate);
+
+***************
+*** 693,699 ****
+ * different options under Windows, meaning that stdio pointers aren't
+ * compatible between the two. Yuk.
+ *
+! * construct: exec(compile(open('a_filename').read(), 'a_filename', 'exec'))
+ *
+ * We need to escape any backslashes or single quotes in the file name, so that
+ * Python won't mangle the file name.
+--- 724,733 ----
+ * different options under Windows, meaning that stdio pointers aren't
+ * compatible between the two. Yuk.
+ *
+! * construct: exec(compile(open('a_filename', 'rb').read(), 'a_filename', 'exec'))
+! *
+! * Using bytes so that Python can detect the source encoding as it normally
+! * does. The doc does not say "compile" accept bytes, though.
+ *
+ * We need to escape any backslashes or single quotes in the file name, so that
+ * Python won't mangle the file name.
+***************
+*** 716,723 ****
+ return;
+ if (i==0)
+ {
+! strcpy(p,"').read(),'");
+! p += 11;
+ }
+ else
+ {
+--- 750,757 ----
+ return;
+ if (i==0)
+ {
+! strcpy(p,"','rb').read(),'");
+! p += 16;
+ }
+ else
+ {
+***************
+*** 812,819 ****
+
+ static Py_ssize_t BufferLength(PyObject *);
+ static PyObject *BufferItem(PyObject *, Py_ssize_t);
+- static Py_ssize_t BufferAsItem(PyObject *, Py_ssize_t, PyObject *);
+ static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
+
+
+ /* Line range type - Implementation functions
+--- 846,853 ----
+
+ static Py_ssize_t BufferLength(PyObject *);
+ static PyObject *BufferItem(PyObject *, Py_ssize_t);
+ static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
++ static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
+
+
+ /* Line range type - Implementation functions
+***************
+*** 835,841 ****
+ (ssizeargfunc) 0, /* sq_repeat, x*n */
+ (ssizeargfunc) BufferItem, /* sq_item, x[i] */
+ 0, /* was_sq_slice, x[i:j] */
+! (ssizeobjargproc) BufferAsItem, /* sq_ass_item, x[i]=v */
+ 0, /* sq_ass_slice, x[i:j]=v */
+ 0, /* sq_contains */
+ 0, /* sq_inplace_concat */
+--- 869,875 ----
+ (ssizeargfunc) 0, /* sq_repeat, x*n */
+ (ssizeargfunc) BufferItem, /* sq_item, x[i] */
+ 0, /* was_sq_slice, x[i:j] */
+! 0, /* sq_ass_item, x[i]=v */
+ 0, /* sq_ass_slice, x[i:j]=v */
+ 0, /* sq_contains */
+ 0, /* sq_inplace_concat */
+***************
+*** 845,851 ****
+ PyMappingMethods BufferAsMapping = {
+ /* mp_length */ (lenfunc)BufferLength,
+ /* mp_subscript */ (binaryfunc)BufferSubscript,
+! /* mp_ass_subscript */ (objobjargproc)0,
+ };
+
+
+--- 879,885 ----
+ PyMappingMethods BufferAsMapping = {
+ /* mp_length */ (lenfunc)BufferLength,
+ /* mp_subscript */ (binaryfunc)BufferSubscript,
+! /* mp_ass_subscript */ (objobjargproc)BufferAsSubscript,
+ };
+
+
+***************
+*** 897,902 ****
+--- 931,938 ----
+
+ if (this->buf && this->buf != INVALID_BUFFER_VALUE)
+ this->buf->b_python3_ref = NULL;
++
++ Py_TYPE(self)->tp_free((PyObject*)self);
+ }
+
+ static PyObject *
+***************
+*** 975,989 ****
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count);
+ }
+
+- static Py_ssize_t
+- BufferAsItem(PyObject *self, Py_ssize_t n, PyObject *val)
+- {
+- return RBAsItem((BufferObject *)(self), n, val, 1,
+- (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+- NULL);
+- }
+-
+-
+ static PyObject *
+ BufferSubscript(PyObject *self, PyObject* idx)
+ {
+--- 1011,1016 ----
+***************
+*** 999,1011 ****
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return BufferSlice(self,start,stop+1);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+ }
+
+ static PySequenceMethods RangeAsSeq = {
+ (lenfunc) RangeLength, /* sq_length, len(x) */
+ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
+--- 1026,1064 ----
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return BufferSlice(self,start,stop);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+ }
+
++ static Py_ssize_t
++ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
++ {
++ if (PyLong_Check(idx)) {
++ long n = PyLong_AsLong(idx);
++ return RBAsItem((BufferObject *)(self), n, val, 1,
++ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
++ NULL);
++ } else if (PySlice_Check(idx)) {
++ Py_ssize_t start, stop, step, slicelen;
++
++ if (PySlice_GetIndicesEx((PySliceObject *)idx,
++ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
++ &start, &stop,
++ &step, &slicelen) < 0) {
++ return -1;
++ }
++ return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
++ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
++ NULL);
++ } else {
++ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++ return -1;
++ }
++ }
++
+ static PySequenceMethods RangeAsSeq = {
+ (lenfunc) RangeLength, /* sq_length, len(x) */
+ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
+***************
+*** 1032,1037 ****
+--- 1085,1091 ----
+ RangeDestructor(PyObject *self)
+ {
+ Py_DECREF(((RangeObject *)(self))->buf);
++ Py_TYPE(self)->tp_free((PyObject*)self);
+ }
+
+ static PyObject *
+***************
+*** 1159,1164 ****
+--- 1213,1220 ----
+
+ if (this->win && this->win != INVALID_WINDOW_VALUE)
+ this->win->w_python3_ref = NULL;
++
++ Py_TYPE(self)->tp_free((PyObject*)self);
+ }
+
+ static PyObject *
+***************
+*** 1350,1357 ****
+ PySys_SetArgv(1, argv);
+
+ mod = PyModule_Create(&vimmodule);
+
+! VimError = Py_BuildValue("s", "vim.error");
+
+ PyModule_AddObject(mod, "error", VimError);
+ Py_INCREF((PyObject *)(void *)&TheBufferList);
+--- 1406,1416 ----
+ PySys_SetArgv(1, argv);
+
+ mod = PyModule_Create(&vimmodule);
++ if (mod == NULL)
++ return NULL;
+
+! VimError = PyErr_NewException("vim.error", NULL, NULL);
+! Py_INCREF(VimError);
+
+ PyModule_AddObject(mod, "error", VimError);
+ Py_INCREF((PyObject *)(void *)&TheBufferList);
+***************
+*** 1404,1410 ****
+ }
+ *p = '\0';
+
+! result = PyUnicode_FromStringAndSize(tmp, len);
+
+ vim_free(tmp);
+ return result;
+--- 1463,1469 ----
+ }
+ *p = '\0';
+
+! result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
+
+ vim_free(tmp);
+ return result;
+*** ../vim-7.3.219/src/version.c 2011-06-13 02:03:55.000000000 +0200
+--- src/version.c 2011-06-19 00:25:38.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 220,
+ /**/
+
+--
+I'm in shape. Round IS a shape.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.221 b/source/ap/vim/patches/7.3.221
new file mode 100644
index 000000000..7211a4a66
--- /dev/null
+++ b/source/ap/vim/patches/7.3.221
@@ -0,0 +1,287 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.221
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.221
+Problem: Text from the clipboard is sometimes handled as linewise, but not
+ consistently.
+Solution: Assume the text is linewise when it ends in a CR or NL.
+Files: src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
+ src/os_mswin.c, src/os_qnx.c, src/ui.c
+
+
+*** ../mercurial/vim73/src/gui_gtk_x11.c 2011-02-25 17:10:22.000000000 +0100
+--- src/gui_gtk_x11.c 2011-06-19 00:58:31.000000000 +0200
+***************
+*** 1173,1179 ****
+ char_u *tmpbuf = NULL;
+ guchar *tmpbuf_utf8 = NULL;
+ int len;
+! int motion_type;
+
+ if (data->selection == clip_plus.gtk_sel_atom)
+ cbd = &clip_plus;
+--- 1173,1179 ----
+ char_u *tmpbuf = NULL;
+ guchar *tmpbuf_utf8 = NULL;
+ int len;
+! int motion_type = MAUTO;
+
+ if (data->selection == clip_plus.gtk_sel_atom)
+ cbd = &clip_plus;
+***************
+*** 1182,1188 ****
+
+ text = (char_u *)data->data;
+ len = data->length;
+- motion_type = MCHAR;
+
+ if (text == NULL || len <= 0)
+ {
+--- 1182,1187 ----
+*** ../mercurial/vim73/src/gui_mac.c 2011-06-12 20:33:30.000000000 +0200
+--- src/gui_mac.c 2011-06-19 00:59:07.000000000 +0200
+***************
+*** 4671,4677 ****
+ if (flavor)
+ type = **textOfClip;
+ else
+! type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
+
+ tempclip = lalloc(scrapSize + 1, TRUE);
+ mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+--- 4671,4677 ----
+ if (flavor)
+ type = **textOfClip;
+ else
+! type = MAUTO;
+
+ tempclip = lalloc(scrapSize + 1, TRUE);
+ mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+*** ../mercurial/vim73/src/ops.c 2011-04-01 16:28:33.000000000 +0200
+--- src/ops.c 2011-06-19 00:59:39.000000000 +0200
+***************
+*** 5733,5739 ****
+ }
+ }
+
+! /* Convert from the GUI selection string into the '*'/'+' register */
+ void
+ clip_yank_selection(type, str, len, cbd)
+ int type;
+--- 5733,5741 ----
+ }
+ }
+
+! /*
+! * Convert from the GUI selection string into the '*'/'+' register.
+! */
+ void
+ clip_yank_selection(type, str, len, cbd)
+ int type;
+***************
+*** 6090,6098 ****
+ if (yank_type == MBLOCK)
+ yank_type = MAUTO;
+ #endif
+- if (yank_type == MAUTO)
+- yank_type = ((len > 0 && (str[len - 1] == '\n' || str[len - 1] == '\r'))
+- ? MLINE : MCHAR);
+ str_to_reg(y_current, yank_type, str, len, block_len);
+
+ # ifdef FEAT_CLIPBOARD
+--- 6092,6097 ----
+***************
+*** 6113,6125 ****
+ * is appended.
+ */
+ static void
+! str_to_reg(y_ptr, type, str, len, blocklen)
+ struct yankreg *y_ptr; /* pointer to yank register */
+! int type; /* MCHAR, MLINE or MBLOCK */
+ char_u *str; /* string to put in register */
+ long len; /* length of string */
+ long blocklen; /* width of Visual block */
+ {
+ int lnum;
+ long start;
+ long i;
+--- 6112,6125 ----
+ * is appended.
+ */
+ static void
+! str_to_reg(y_ptr, yank_type, str, len, blocklen)
+ struct yankreg *y_ptr; /* pointer to yank register */
+! int yank_type; /* MCHAR, MLINE, MBLOCK, MAUTO */
+ char_u *str; /* string to put in register */
+ long len; /* length of string */
+ long blocklen; /* width of Visual block */
+ {
++ int type; /* MCHAR, MLINE or MBLOCK */
+ int lnum;
+ long start;
+ long i;
+***************
+*** 6136,6141 ****
+--- 6136,6147 ----
+ if (y_ptr->y_array == NULL) /* NULL means empty register */
+ y_ptr->y_size = 0;
+
++ if (yank_type == MAUTO)
++ type = ((len > 0 && (str[len - 1] == NL || str[len - 1] == CAR))
++ ? MLINE : MCHAR);
++ else
++ type = yank_type;
++
+ /*
+ * Count the number of lines within the string
+ */
+*** ../mercurial/vim73/src/os_msdos.c 2010-12-17 18:06:00.000000000 +0100
+--- src/os_msdos.c 2011-06-19 01:00:56.000000000 +0200
+***************
+*** 2232,2238 ****
+ void
+ clip_mch_request_selection(VimClipboard *cbd)
+ {
+! int type = MCHAR;
+ char_u *pAllocated = NULL;
+ char_u *pClipText = NULL;
+ int clip_data_format = 0;
+--- 2232,2238 ----
+ void
+ clip_mch_request_selection(VimClipboard *cbd)
+ {
+! int type = MAUTO;
+ char_u *pAllocated = NULL;
+ char_u *pClipText = NULL;
+ int clip_data_format = 0;
+***************
+*** 2280,2293 ****
+ {
+ clip_data_format = CF_TEXT;
+ pClipText = pAllocated;
+- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+ }
+
+ else if ((pAllocated = Win16GetClipboardData(CF_OEMTEXT)) != NULL)
+ {
+ clip_data_format = CF_OEMTEXT;
+ pClipText = pAllocated;
+- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+ }
+
+ /* Did we get anything? */
+--- 2280,2291 ----
+*** ../mercurial/vim73/src/os_mswin.c 2011-01-17 20:08:04.000000000 +0100
+--- src/os_mswin.c 2011-06-19 01:01:51.000000000 +0200
+***************
+*** 1410,1418 ****
+ {
+ char_u *temp_clipboard;
+
+! /* If the type is not known guess it. */
+ if (metadata.type == -1)
+! metadata.type = (vim_strchr(str, '\n') == NULL) ? MCHAR : MLINE;
+
+ /* Translate <CR><NL> into <NL>. */
+ temp_clipboard = crnl_to_nl(str, &str_size);
+--- 1410,1418 ----
+ {
+ char_u *temp_clipboard;
+
+! /* If the type is not known detect it. */
+ if (metadata.type == -1)
+! metadata.type = MAUTO;
+
+ /* Translate <CR><NL> into <NL>. */
+ temp_clipboard = crnl_to_nl(str, &str_size);
+*** ../mercurial/vim73/src/os_qnx.c 2010-05-15 21:22:11.000000000 +0200
+--- src/os_qnx.c 2011-06-19 01:02:26.000000000 +0200
+***************
+*** 93,99 ****
+ clip_length = clip_header->length - 1;
+
+ if( clip_text != NULL && is_type_set == FALSE )
+! type = (strchr( clip_text, '\r' ) != NULL) ? MLINE : MCHAR;
+ }
+
+ if( (clip_text != NULL) && (clip_length > 0) )
+--- 93,99 ----
+ clip_length = clip_header->length - 1;
+
+ if( clip_text != NULL && is_type_set == FALSE )
+! type = MAUTO;
+ }
+
+ if( (clip_text != NULL) && (clip_length > 0) )
+*** ../mercurial/vim73/src/ui.c 2010-09-21 22:09:28.000000000 +0200
+--- src/ui.c 2011-06-19 01:03:31.000000000 +0200
+***************
+*** 1609,1615 ****
+
+ #if defined(FEAT_HANGULIN) || defined(PROTO)
+ void
+! push_raw_key (s, len)
+ char_u *s;
+ int len;
+ {
+--- 1609,1615 ----
+
+ #if defined(FEAT_HANGULIN) || defined(PROTO)
+ void
+! push_raw_key(s, len)
+ char_u *s;
+ int len;
+ {
+***************
+*** 2016,2022 ****
+ long_u *length;
+ int *format;
+ {
+! int motion_type;
+ long_u len;
+ char_u *p;
+ char **text_list = NULL;
+--- 2016,2022 ----
+ long_u *length;
+ int *format;
+ {
+! int motion_type = MAUTO;
+ long_u len;
+ char_u *p;
+ char **text_list = NULL;
+***************
+*** 2036,2042 ****
+ *(int *)success = FALSE;
+ return;
+ }
+- motion_type = MCHAR;
+ p = (char_u *)value;
+ len = *length;
+ if (*type == vim_atom)
+--- 2036,2041 ----
+*** ../vim-7.3.220/src/version.c 2011-06-19 00:27:46.000000000 +0200
+--- src/version.c 2011-06-19 01:03:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 221,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+190. You quickly hand over your wallet, leather jacket, and car keys
+ during a mugging, then proceed to beat the crap out of your
+ assailant when he asks for your laptop.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.222 b/source/ap/vim/patches/7.3.222
new file mode 100644
index 000000000..87151b5ab
--- /dev/null
+++ b/source/ap/vim/patches/7.3.222
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.22
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.222
+Problem: Warning for building GvimExt.
+Solution: Comment-out the DESCRIPTION line. (Mike Williams)
+Files: src/GvimExt/gvimext.def, src/GvimExt/gvimext_ming.def
+
+
+*** ../mercurial/vim73/src/GvimExt/gvimext.def 2010-05-15 21:22:11.000000000 +0200
+--- src/GvimExt/gvimext.def 2011-06-15 03:50:55.000000000 +0200
+***************
+*** 1,7 ****
+ ;gvimdef.def : Declares the module parameters for the DLL.
+
+ LIBRARY gvimext
+! DESCRIPTION 'Vim Shell Extension'
+
+ EXPORTS
+ DllCanUnloadNow private
+--- 1,7 ----
+ ;gvimdef.def : Declares the module parameters for the DLL.
+
+ LIBRARY gvimext
+! ; DESCRIPTION 'Vim Shell Extension'
+
+ EXPORTS
+ DllCanUnloadNow private
+*** ../mercurial/vim73/src/GvimExt/gvimext_ming.def 2010-05-15 21:22:11.000000000 +0200
+--- src/GvimExt/gvimext_ming.def 2011-06-15 03:51:05.000000000 +0200
+***************
+*** 3,9 ****
+ ;Hence this is the same file as gvimext.def with private removed
+
+ LIBRARY gvimext
+! DESCRIPTION 'Vim Shell Extension build with MinGW'
+
+ EXPORTS
+ DllCanUnloadNow = DllCanUnloadNow@0
+--- 3,9 ----
+ ;Hence this is the same file as gvimext.def with private removed
+
+ LIBRARY gvimext
+! ; DESCRIPTION 'Vim Shell Extension build with MinGW'
+
+ EXPORTS
+ DllCanUnloadNow = DllCanUnloadNow@0
+*** ../vim-7.3.221/src/version.c 2011-06-19 01:14:23.000000000 +0200
+--- src/version.c 2011-06-19 01:26:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 222,
+ /**/
+
+--
+What is the difference between a professional and an amateur?
+The ark was built by an amateur; professionals gave us the Titanic.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.223 b/source/ap/vim/patches/7.3.223
new file mode 100644
index 000000000..e151c5b74
--- /dev/null
+++ b/source/ap/vim/patches/7.3.223
@@ -0,0 +1,387 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.223
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.223
+Problem: MingW cross compilation doesn't work with tiny features.
+Solution: Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
+ "#ifdef CLIPBOARD". Fix typo in makefile.
+Files: src/Make_ming.mak, src/os_mswin.c
+
+
+*** ../mercurial/vim73/src/Make_ming.mak 2010-12-30 14:50:46.000000000 +0100
+--- src/Make_ming.mak 2011-06-19 01:20:16.000000000 +0200
+***************
+*** 87,93 ****
+
+ # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+ # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static versión with them, ?-(|
+ #GETTEXT=c:/gettext-0.10.37-20010430
+ #STATIC_GETTEXT=USE_STATIC_GETTEXT
+ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+--- 87,93 ----
+
+ # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+ # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static version with them, ?-(|
+ #GETTEXT=c:/gettext-0.10.37-20010430
+ #STATIC_GETTEXT=USE_STATIC_GETTEXT
+ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+*** ../mercurial/vim73/src/os_mswin.c 2011-06-19 01:14:23.000000000 +0200
+--- src/os_mswin.c 2011-06-19 01:25:23.000000000 +0200
+***************
+*** 1105,1236 ****
+ return ret;
+ }
+
+- #if defined(FEAT_MBYTE) || defined(PROTO)
+- /*
+- * Note: the following two functions are only guaranteed to work when using
+- * valid MS-Windows codepages or when iconv() is available.
+- */
+-
+- /*
+- * Convert "str" from 'encoding' to UTF-16.
+- * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
+- * Output is returned as an allocated string. "*lenp" is set to the length of
+- * the result. A trailing NUL is always added.
+- * Returns NULL when out of memory.
+- */
+- short_u *
+- enc_to_utf16(char_u *str, int *lenp)
+- {
+- vimconv_T conv;
+- WCHAR *ret;
+- char_u *allocbuf = NULL;
+- int len_loc;
+- int length;
+-
+- if (lenp == NULL)
+- {
+- len_loc = (int)STRLEN(str) + 1;
+- lenp = &len_loc;
+- }
+-
+- if (enc_codepage > 0)
+- {
+- /* We can do any CP### -> UTF-16 in one pass, and we can do it
+- * without iconv() (convert_* may need iconv). */
+- MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
+- }
+- else
+- {
+- /* Use "latin1" by default, we might be called before we have p_enc
+- * set up. Convert to utf-8 first, works better with iconv(). Does
+- * nothing if 'encoding' is "utf-8". */
+- conv.vc_type = CONV_NONE;
+- if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
+- (char_u *)"utf-8") == FAIL)
+- return NULL;
+- if (conv.vc_type != CONV_NONE)
+- {
+- str = allocbuf = string_convert(&conv, str, lenp);
+- if (str == NULL)
+- return NULL;
+- }
+- convert_setup(&conv, NULL, NULL);
+-
+- length = utf8_to_utf16(str, *lenp, NULL, NULL);
+- ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
+- if (ret != NULL)
+- {
+- utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
+- ret[length] = 0;
+- }
+-
+- vim_free(allocbuf);
+- }
+-
+- *lenp = length;
+- return (short_u *)ret;
+- }
+-
+- /*
+- * Convert an UTF-16 string to 'encoding'.
+- * Input in "str" with length (counted in wide characters) "*lenp". When
+- * "lenp" is NULL, use wcslen().
+- * Output is returned as an allocated string. If "*lenp" is not NULL it is
+- * set to the length of the result.
+- * Returns NULL when out of memory.
+- */
+- char_u *
+- utf16_to_enc(short_u *str, int *lenp)
+- {
+- vimconv_T conv;
+- char_u *utf8_str = NULL, *enc_str = NULL;
+- int len_loc;
+-
+- if (lenp == NULL)
+- {
+- len_loc = (int)wcslen(str) + 1;
+- lenp = &len_loc;
+- }
+-
+- if (enc_codepage > 0)
+- {
+- /* We can do any UTF-16 -> CP### in one pass. */
+- int length;
+-
+- WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
+- (LPSTR *)&enc_str, &length, 0, 0);
+- *lenp = length;
+- return enc_str;
+- }
+-
+- /* Avoid allocating zero bytes, it generates an error message. */
+- utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
+- if (utf8_str != NULL)
+- {
+- *lenp = utf16_to_utf8(str, *lenp, utf8_str);
+-
+- /* We might be called before we have p_enc set up. */
+- conv.vc_type = CONV_NONE;
+- convert_setup(&conv, (char_u *)"utf-8",
+- p_enc? p_enc: (char_u *)"latin1");
+- if (conv.vc_type == CONV_NONE)
+- {
+- /* p_enc is utf-8, so we're done. */
+- enc_str = utf8_str;
+- }
+- else
+- {
+- enc_str = string_convert(&conv, utf8_str, lenp);
+- vim_free(utf8_str);
+- }
+-
+- convert_setup(&conv, NULL, NULL);
+- }
+-
+- return enc_str;
+- }
+- #endif /* FEAT_MBYTE */
+-
+ /*
+ * Wait for another process to Close the Clipboard.
+ * Returns TRUE for success.
+--- 1105,1110 ----
+***************
+*** 1436,1467 ****
+ #endif
+ }
+
+- #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
+- /*
+- * Convert from the active codepage to 'encoding'.
+- * Input is "str[str_size]".
+- * The result is in allocated memory: "out[outlen]". With terminating NUL.
+- */
+- void
+- acp_to_enc(str, str_size, out, outlen)
+- char_u *str;
+- int str_size;
+- char_u **out;
+- int *outlen;
+-
+- {
+- LPWSTR widestr;
+-
+- MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
+- if (widestr != NULL)
+- {
+- ++*outlen; /* Include the 0 after the string */
+- *out = utf16_to_enc((short_u *)widestr, outlen);
+- vim_free(widestr);
+- }
+- }
+- #endif
+-
+ /*
+ * Send the current selection to the clipboard.
+ */
+--- 1310,1315 ----
+***************
+*** 1626,1631 ****
+--- 1474,1631 ----
+
+ #endif /* FEAT_CLIPBOARD */
+
++ #if defined(FEAT_MBYTE) || defined(PROTO)
++ /*
++ * Note: the following two functions are only guaranteed to work when using
++ * valid MS-Windows codepages or when iconv() is available.
++ */
++
++ /*
++ * Convert "str" from 'encoding' to UTF-16.
++ * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
++ * Output is returned as an allocated string. "*lenp" is set to the length of
++ * the result. A trailing NUL is always added.
++ * Returns NULL when out of memory.
++ */
++ short_u *
++ enc_to_utf16(char_u *str, int *lenp)
++ {
++ vimconv_T conv;
++ WCHAR *ret;
++ char_u *allocbuf = NULL;
++ int len_loc;
++ int length;
++
++ if (lenp == NULL)
++ {
++ len_loc = (int)STRLEN(str) + 1;
++ lenp = &len_loc;
++ }
++
++ if (enc_codepage > 0)
++ {
++ /* We can do any CP### -> UTF-16 in one pass, and we can do it
++ * without iconv() (convert_* may need iconv). */
++ MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
++ }
++ else
++ {
++ /* Use "latin1" by default, we might be called before we have p_enc
++ * set up. Convert to utf-8 first, works better with iconv(). Does
++ * nothing if 'encoding' is "utf-8". */
++ conv.vc_type = CONV_NONE;
++ if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
++ (char_u *)"utf-8") == FAIL)
++ return NULL;
++ if (conv.vc_type != CONV_NONE)
++ {
++ str = allocbuf = string_convert(&conv, str, lenp);
++ if (str == NULL)
++ return NULL;
++ }
++ convert_setup(&conv, NULL, NULL);
++
++ length = utf8_to_utf16(str, *lenp, NULL, NULL);
++ ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
++ if (ret != NULL)
++ {
++ utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
++ ret[length] = 0;
++ }
++
++ vim_free(allocbuf);
++ }
++
++ *lenp = length;
++ return (short_u *)ret;
++ }
++
++ /*
++ * Convert an UTF-16 string to 'encoding'.
++ * Input in "str" with length (counted in wide characters) "*lenp". When
++ * "lenp" is NULL, use wcslen().
++ * Output is returned as an allocated string. If "*lenp" is not NULL it is
++ * set to the length of the result.
++ * Returns NULL when out of memory.
++ */
++ char_u *
++ utf16_to_enc(short_u *str, int *lenp)
++ {
++ vimconv_T conv;
++ char_u *utf8_str = NULL, *enc_str = NULL;
++ int len_loc;
++
++ if (lenp == NULL)
++ {
++ len_loc = (int)wcslen(str) + 1;
++ lenp = &len_loc;
++ }
++
++ if (enc_codepage > 0)
++ {
++ /* We can do any UTF-16 -> CP### in one pass. */
++ int length;
++
++ WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
++ (LPSTR *)&enc_str, &length, 0, 0);
++ *lenp = length;
++ return enc_str;
++ }
++
++ /* Avoid allocating zero bytes, it generates an error message. */
++ utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
++ if (utf8_str != NULL)
++ {
++ *lenp = utf16_to_utf8(str, *lenp, utf8_str);
++
++ /* We might be called before we have p_enc set up. */
++ conv.vc_type = CONV_NONE;
++ convert_setup(&conv, (char_u *)"utf-8",
++ p_enc? p_enc: (char_u *)"latin1");
++ if (conv.vc_type == CONV_NONE)
++ {
++ /* p_enc is utf-8, so we're done. */
++ enc_str = utf8_str;
++ }
++ else
++ {
++ enc_str = string_convert(&conv, utf8_str, lenp);
++ vim_free(utf8_str);
++ }
++
++ convert_setup(&conv, NULL, NULL);
++ }
++
++ return enc_str;
++ }
++ #endif /* FEAT_MBYTE */
++
++ #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
++ /*
++ * Convert from the active codepage to 'encoding'.
++ * Input is "str[str_size]".
++ * The result is in allocated memory: "out[outlen]". With terminating NUL.
++ */
++ void
++ acp_to_enc(str, str_size, out, outlen)
++ char_u *str;
++ int str_size;
++ char_u **out;
++ int *outlen;
++
++ {
++ LPWSTR widestr;
++
++ MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
++ if (widestr != NULL)
++ {
++ ++*outlen; /* Include the 0 after the string */
++ *out = utf16_to_enc((short_u *)widestr, outlen);
++ vim_free(widestr);
++ }
++ }
++ #endif
++
+
+ /*
+ * Debugging helper: expose the MCH_WRITE_DUMP stuff to other modules
+*** ../vim-7.3.222/src/version.c 2011-06-19 01:27:29.000000000 +0200
+--- src/version.c 2011-06-19 01:28:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 223,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+191. You rate eating establishments not by the quality of the food,
+ but by the availability of electrical outlets for your PowerBook.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.224 b/source/ap/vim/patches/7.3.224
new file mode 100644
index 000000000..1673f4768
--- /dev/null
+++ b/source/ap/vim/patches/7.3.224
@@ -0,0 +1,162 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.224
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.224
+Problem: Can't pass dict to sort function.
+Solution: Add the optional {dict} argument to sort(). (ZyX)
+Files: runtime/doc/eval.txt, src/eval.c
+
+
+*** ../mercurial/vim73/runtime/doc/eval.txt 2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/eval.txt 2011-06-19 02:42:52.000000000 +0200
+***************
+*** 1919,1925 ****
+ simplify( {filename}) String simplify filename as much as possible
+ sin( {expr}) Float sine of {expr}
+ sinh( {expr}) Float hyperbolic sine of {expr}
+! sort( {list} [, {func}]) List sort {list}, using {func} to compare
+ soundfold( {word}) String sound-fold {word}
+ spellbadword() String badly spelled word at cursor
+ spellsuggest( {word} [, {max} [, {capital}]])
+--- 1922,1929 ----
+ simplify( {filename}) String simplify filename as much as possible
+ sin( {expr}) Float sine of {expr}
+ sinh( {expr}) Float hyperbolic sine of {expr}
+! sort( {list} [, {func} [, {dict}]])
+! List sort {list}, using {func} to compare
+ soundfold( {word}) String sound-fold {word}
+ spellbadword() String badly spelled word at cursor
+ spellsuggest( {word} [, {max} [, {capital}]])
+***************
+*** 5275,5281 ****
+ {only available when compiled with the |+float| feature}
+
+
+! sort({list} [, {func}]) *sort()* *E702*
+ Sort the items in {list} in-place. Returns {list}. If you
+ want a list to remain unmodified make a copy first: >
+ :let sortedlist = sort(copy(mylist))
+--- 5279,5285 ----
+ {only available when compiled with the |+float| feature}
+
+
+! sort({list} [, {func} [, {dict}]]) *sort()* *E702*
+ Sort the items in {list} in-place. Returns {list}. If you
+ want a list to remain unmodified make a copy first: >
+ :let sortedlist = sort(copy(mylist))
+***************
+*** 5283,5288 ****
+--- 5287,5294 ----
+ Numbers sort after Strings, |Lists| after Numbers.
+ For sorting text in the current buffer use |:sort|.
+ When {func} is given and it is one then case is ignored.
++ {dict} is for functions with the "dict" attribute. It will be
++ used to set the local variable "self". |Dictionary-function|
+ When {func} is a |Funcref| or a function name, this function
+ is called to compare items. The function is invoked with two
+ items as argument and must return zero if they are equal, 1 or
+*** ../mercurial/vim73/src/eval.c 2011-05-19 18:26:34.000000000 +0200
+--- src/eval.c 2011-06-19 02:51:13.000000000 +0200
+***************
+*** 7930,7936 ****
+ {"sin", 1, 1, f_sin},
+ {"sinh", 1, 1, f_sinh},
+ #endif
+! {"sort", 1, 2, f_sort},
+ {"soundfold", 1, 1, f_soundfold},
+ {"spellbadword", 0, 1, f_spellbadword},
+ {"spellsuggest", 1, 3, f_spellsuggest},
+--- 7930,7936 ----
+ {"sin", 1, 1, f_sin},
+ {"sinh", 1, 1, f_sinh},
+ #endif
+! {"sort", 1, 3, f_sort},
+ {"soundfold", 1, 1, f_soundfold},
+ {"spellbadword", 0, 1, f_spellbadword},
+ {"spellsuggest", 1, 3, f_spellsuggest},
+***************
+*** 16366,16371 ****
+--- 16366,16372 ----
+
+ static int item_compare_ic;
+ static char_u *item_compare_func;
++ static dict_T *item_compare_selfdict;
+ static int item_compare_func_err;
+ #define ITEM_COMPARE_FAIL 999
+
+***************
+*** 16425,16431 ****
+
+ rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
+ res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
+! &rettv, 2, argv, 0L, 0L, &dummy, TRUE, NULL);
+ clear_tv(&argv[0]);
+ clear_tv(&argv[1]);
+
+--- 16426,16433 ----
+
+ rettv.v_type = VAR_UNKNOWN; /* clear_tv() uses this */
+ res = call_func(item_compare_func, (int)STRLEN(item_compare_func),
+! &rettv, 2, argv, 0L, 0L, &dummy, TRUE,
+! item_compare_selfdict);
+ clear_tv(&argv[0]);
+ clear_tv(&argv[1]);
+
+***************
+*** 16471,16478 ****
+--- 16473,16482 ----
+
+ item_compare_ic = FALSE;
+ item_compare_func = NULL;
++ item_compare_selfdict = NULL;
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ {
++ /* optional second argument: {func} */
+ if (argvars[1].v_type == VAR_FUNC)
+ item_compare_func = argvars[1].vval.v_string;
+ else
+***************
+*** 16487,16492 ****
+--- 16491,16507 ----
+ else
+ item_compare_func = get_tv_string(&argvars[1]);
+ }
++
++ if (argvars[2].v_type != VAR_UNKNOWN)
++ {
++ /* optional third argument: {dict} */
++ if (argvars[2].v_type != VAR_DICT)
++ {
++ EMSG(_(e_dictreq));
++ return;
++ }
++ item_compare_selfdict = argvars[2].vval.v_dict;
++ }
+ }
+
+ /* Make an array with each entry pointing to an item in the List. */
+*** ../vim-7.3.223/src/version.c 2011-06-19 01:30:01.000000000 +0200
+--- src/version.c 2011-06-19 02:52:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 224,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+193. You ask your girlfriend to drive home so you can sit back with
+ your PDA and download the information to your laptop
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.225 b/source/ap/vim/patches/7.3.225
new file mode 100644
index 000000000..5a32b9a62
--- /dev/null
+++ b/source/ap/vim/patches/7.3.225
Binary files differ
diff --git a/source/ap/vim/patches/7.3.226 b/source/ap/vim/patches/7.3.226
new file mode 100644
index 000000000..0002aa77f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.226
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.226
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.226
+Problem: On a 64 bit system "syn sync fromstart" is very slow. (Bjorn
+ Steinbrink)
+Solution: Store the state when starting to parse from the first line.
+Files: src/syntax.c
+
+
+*** ../mercurial/vim73/src/syntax.c 2011-05-25 17:56:23.000000000 +0200
+--- src/syntax.c 2011-06-19 04:47:08.000000000 +0200
+***************
+*** 559,565 ****
+ if (INVALID_STATE(&current_state))
+ {
+ syn_sync(wp, lnum, last_valid);
+! first_stored = current_lnum + syn_block->b_syn_sync_minlines;
+ }
+ else
+ first_stored = current_lnum;
+--- 559,571 ----
+ if (INVALID_STATE(&current_state))
+ {
+ syn_sync(wp, lnum, last_valid);
+! if (current_lnum == 1)
+! /* First line is always valid, no matter "minlines". */
+! first_stored = 1;
+! else
+! /* Need to parse "minlines" lines before state can be considered
+! * valid to store. */
+! first_stored = current_lnum + syn_block->b_syn_sync_minlines;
+ }
+ else
+ first_stored = current_lnum;
+*** ../vim-7.3.225/src/version.c 2011-06-19 04:31:54.000000000 +0200
+--- src/version.c 2011-06-19 04:49:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 226,
+ /**/
+
+--
+Press any key to continue, press any other key to quit.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.227 b/source/ap/vim/patches/7.3.227
new file mode 100644
index 000000000..55d5a9c6b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.227
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.227
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.227 (after 7.3.221)
+Problem: Mac OS doesn't have the linewise clipboard fix.
+Solution: Also change the Mac OS file. (Bjorn Winckler)
+Files: src/os_macosx.m
+
+
+*** ../mercurial/vim73/src/os_macosx.m 2011-06-13 02:03:55.000000000 +0200
+--- src/os_macosx.m 2011-06-20 00:23:57.000000000 +0200
+***************
+*** 65,71 ****
+ NSString *bestType = [pb availableTypeFromArray:supportedTypes];
+ if (!bestType) goto releasepool;
+
+! int motion_type = MCHAR;
+ NSString *string = nil;
+
+ if ([bestType isEqual:VimPboardType])
+--- 65,71 ----
+ NSString *bestType = [pb availableTypeFromArray:supportedTypes];
+ if (!bestType) goto releasepool;
+
+! int motion_type = MAUTO;
+ NSString *string = nil;
+
+ if ([bestType isEqual:VimPboardType])
+***************
+*** 89,97 ****
+
+ if (!string)
+ {
+! /* Use NSStringPboardType. The motion type is set to line-wise if the
+! * string contains at least one EOL character, otherwise it is set to
+! * character-wise (block-wise is never used).
+ */
+ NSMutableString *mstring =
+ [[pb stringForType:NSStringPboardType] mutableCopy];
+--- 89,95 ----
+
+ if (!string)
+ {
+! /* Use NSStringPboardType. The motion type is detected automatically.
+ */
+ NSMutableString *mstring =
+ [[pb stringForType:NSStringPboardType] mutableCopy];
+***************
+*** 108,126 ****
+ options:0 range:range];
+ }
+
+- /* Scan for newline character to decide whether the string should be
+- * pasted line-wise or character-wise.
+- */
+- motion_type = MCHAR;
+- if (0 < n || NSNotFound != [mstring rangeOfString:@"\n"].location)
+- motion_type = MLINE;
+-
+ string = mstring;
+ }
+
+ if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
+ || MAUTO == motion_type))
+! motion_type = MCHAR;
+
+ char_u *str = (char_u*)[string UTF8String];
+ int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+--- 106,118 ----
+ options:0 range:range];
+ }
+
+ string = mstring;
+ }
+
++ /* Default to MAUTO, uses MCHAR or MLINE depending on trailing NL. */
+ if (!(MCHAR == motion_type || MLINE == motion_type || MBLOCK == motion_type
+ || MAUTO == motion_type))
+! motion_type = MAUTO;
+
+ char_u *str = (char_u*)[string UTF8String];
+ int len = [string lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+*** ../vim-7.3.226/src/version.c 2011-06-19 04:54:17.000000000 +0200
+--- src/version.c 2011-06-20 00:21:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 227,
+ /**/
+
+--
+Some of the well know MS-Windows errors:
+ EMULTI Multitasking attempted, system confused
+ EKEYBOARD Keyboard locked, try getting out of this one!
+ EXPLAIN Unexplained error, please tell us what happened
+ EFUTURE Reserved for our future mistakes
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.228 b/source/ap/vim/patches/7.3.228
new file mode 100644
index 000000000..3edede597
--- /dev/null
+++ b/source/ap/vim/patches/7.3.228
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.228
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.228
+Problem: "2gj" does not always move to the correct position.
+Solution: Get length of line after moving to a next line. (James Vega)
+Files: src/normal.c
+
+
+*** ../mercurial/vim73/src/normal.c 2011-05-10 17:29:28.000000000 +0200
+--- src/normal.c 2011-06-20 00:41:43.000000000 +0200
+***************
+*** 4533,4538 ****
+--- 4533,4539 ----
+ }
+ curwin->w_cursor.lnum++;
+ curwin->w_curswant %= width2;
++ linelen = linetabsize(ml_get_curline());
+ }
+ }
+ }
+*** ../vim-7.3.227/src/version.c 2011-06-20 00:25:37.000000000 +0200
+--- src/version.c 2011-06-20 00:45:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 228,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+197. Your desk collapses under the weight of your computer peripherals.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.229 b/source/ap/vim/patches/7.3.229
new file mode 100644
index 000000000..b133f7a48
--- /dev/null
+++ b/source/ap/vim/patches/7.3.229
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.229
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.229
+Problem: Using fork() makes gvim crash on Mac when build with
+ CoreFoundation.
+Solution: Disallow fork() when __APPLE__ is defined. (Hisashi T Fujinaka)
+Files: src/gui.c
+
+
+*** ../mercurial/vim73/src/gui.c 2011-05-10 16:41:13.000000000 +0200
+--- src/gui.c 2011-06-20 00:51:21.000000000 +0200
+***************
+*** 59,65 ****
+ gui_start()
+ {
+ char_u *old_term;
+! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X)
+ # define MAY_FORK
+ int dofork = TRUE;
+ #endif
+--- 59,66 ----
+ gui_start()
+ {
+ char_u *old_term;
+! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
+! && !defined(__APPLE__)
+ # define MAY_FORK
+ int dofork = TRUE;
+ #endif
+*** ../vim-7.3.228/src/version.c 2011-06-20 00:45:55.000000000 +0200
+--- src/version.c 2011-06-20 00:50:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 229,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+198. You read all the quotes at Netaholics Anonymous and keep thinking
+ "What's wrong with that?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.230 b/source/ap/vim/patches/7.3.230
new file mode 100644
index 000000000..80fcdf130
--- /dev/null
+++ b/source/ap/vim/patches/7.3.230
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.230
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.230
+Problem: ":wundo" and ":rundo" don't unescape their argument. (Aaron
+ Thoma)
+Solution: Use FILE1 instead of XFILE.
+Files: src/ex_cmds.h
+
+
+*** ../mercurial/vim73/src/ex_cmds.h 2010-08-20 11:09:02.000000000 +0200
+--- src/ex_cmds.h 2011-06-20 04:44:13.000000000 +0200
+***************
+*** 788,794 ****
+ EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_rundo, "rundo", ex_rundo,
+! NEEDARG|EXTRA|XFILE),
+ EX(CMD_rviminfo, "rviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_substitute, "substitute", do_sub,
+--- 788,794 ----
+ EX(CMD_rubyfile, "rubyfile", ex_rubyfile,
+ RANGE|FILE1|NEEDARG|CMDWIN),
+ EX(CMD_rundo, "rundo", ex_rundo,
+! NEEDARG|FILE1),
+ EX(CMD_rviminfo, "rviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_substitute, "substitute", do_sub,
+***************
+*** 1078,1084 ****
+ EX(CMD_wsverb, "wsverb", ex_wsverb,
+ EXTRA|NOTADR|NEEDARG),
+ EX(CMD_wundo, "wundo", ex_wundo,
+! BANG|NEEDARG|EXTRA|XFILE),
+ EX(CMD_wviminfo, "wviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_xit, "xit", ex_exit,
+--- 1078,1084 ----
+ EX(CMD_wsverb, "wsverb", ex_wsverb,
+ EXTRA|NOTADR|NEEDARG),
+ EX(CMD_wundo, "wundo", ex_wundo,
+! BANG|NEEDARG|FILE1),
+ EX(CMD_wviminfo, "wviminfo", ex_viminfo,
+ BANG|FILE1|TRLBAR|CMDWIN),
+ EX(CMD_xit, "xit", ex_exit,
+*** ../vim-7.3.229/src/version.c 2011-06-20 00:53:10.000000000 +0200
+--- src/version.c 2011-06-20 05:02:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 230,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+201. When somebody asks you where you are, you tell them in which chat room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.231 b/source/ap/vim/patches/7.3.231
new file mode 100644
index 000000000..266d0a2bc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.231
@@ -0,0 +1,128 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.231
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Note: this is a weird patch, it redoes patches from 7.3.202 and 7.3.203
+that failed when applied as a patch, but the mercurial repository
+already had this, thus won't change anything there.
+
+
+Patch 7.3.231
+Problem: Runtime file patches failed.
+Solution: Redo the patches made against the patched files instead of the
+ files in the mercurial repository.
+Files: runtime/doc/indent.txt, runtime/doc/os_win32.txt
+
+
+*** ../vim-7.3.230/runtime/doc/indent.txt 2011-05-25 15:16:06.000000000 +0200
+--- runtime/doc/indent.txt 2011-05-31 22:23:39.000000000 +0200
+***************
+*** 356,363 ****
+ BaseClass(3) BaseClass(3)
+ {} {}
+ <
+! +N Indent a continuation line (a line that spills onto the next) N
+! additional characters. (default 'shiftwidth').
+
+ cino= cino=+10 >
+ a = b + 9 * a = b + 9 *
+--- 357,368 ----
+ BaseClass(3) BaseClass(3)
+ {} {}
+ <
+! *cino-+*
+! +N Indent a continuation line (a line that spills onto the next)
+! inside a function N additional characters. (default
+! 'shiftwidth').
+! Outside of a function, when the previous line ended in a
+! backslash, the 2 * N is used.
+
+ cino= cino=+10 >
+ a = b + 9 * a = b + 9 *
+***************
+*** 509,522 ****
+--- 514,532 ----
+ }
+ }
+ <
++ *cino-)*
+ )N Vim searches for unclosed parentheses at most N lines away.
+ This limits the time needed to search for parentheses. (default
+ 20 lines).
+
++ *cino-star*
+ *N Vim searches for unclosed comments at most N lines away. This
+ limits the time needed to search for the start of a comment.
++ If your /* */ comments stop indenting afer N lines this is the
++ value you will want to change.
+ (default 70 lines).
+
++ *cino-#*
+ #N When N is non-zero recognize shell/Perl comments, starting with
+ '#'. Default N is zero: don't recognizes '#' comments. Note
+ that lines starting with # will still be seen as preprocessor
+*** ../vim-7.3.230/runtime/doc/os_win32.txt 2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/os_win32.txt 2011-05-28 18:17:58.000000000 +0200
+***************
+*** 313,318 ****
+--- 313,349 ----
+ with :!start do not get passed Vim's open file handles, which means they do
+ not have to be closed before Vim.
+ To avoid this special treatment, use ":! start".
++ There are two optional arguments (see the next Q):
++ /min the window will be minimized.
++ /b" no console window will be opened
++ You can only one of these flags at a time. A second second one will be
++ treated as the start of the command.
++
++ Q. How do I avoid getting a window for programs that I run asynchronously?
++ A. You have two possible solutions depending on what exactly do you want:
++ 1) You may use the /min flag in order to run program in a minimized state
++ with no other changes. It will work equally for console and GUI
++ applications.
++ 2) You can use the /b flag to run console applications without creating a
++ console window for them (GUI applications are not affected). But you
++ should use this flag only if the application you run doesn't require any
++ input. Otherwise it will get an EOF error because its input stream
++ (stdin) would be redirected to \\.\NUL (stdoud and stderr too).
++
++ Example for a console application, run Exuberant ctags: >
++ :!start /min ctags -R .
++ < When it has finished you should see file named "tags" in your current
++ directory. You should notice the window title blinking on your taskbar.
++ This is more noticable for commands that take longer.
++ Now delete the "tags" file and run this command: >
++ :!start /b ctags -R .
++ < You should have the same "tags" file, but this time there will be no
++ blinking on the taskbar.
++ Example for a GUI application: >
++ :!start /min notepad
++ :!start /b notepad
++ < The first command runs notepad minimized and the second one runs it
++ normally.
+
+ Q. I'm using Win32s, and when I try to run an external command like "make",
+ Vim doesn't wait for it to finish! Help!
+*** ../vim-7.3.230/src/version.c 2011-06-20 05:02:53.000000000 +0200
+--- src/version.c 2011-06-26 03:14:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 231,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+222. You send more than 20 personal e-mails a day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.232 b/source/ap/vim/patches/7.3.232
new file mode 100644
index 000000000..982d7478c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.232
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.232
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.232
+Problem: Python doesn't compile without +multi_byte
+Solution: Use "latin1" when MULTI_BYTE is not defined.
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.231/src/if_py_both.h 2011-06-19 00:27:46.000000000 +0200
+--- src/if_py_both.h 2011-06-26 03:58:07.000000000 +0200
+***************
+*** 12,17 ****
+--- 12,23 ----
+ * Common code for if_python.c and if_python3.c.
+ */
+
++ #ifdef FEAT_MBYTE
++ # define ENC_OPT p_enc
++ #else
++ # define ENC_OPT "latin1"
++ #endif
++
+ /*
+ * obtain a lock on the Vim data structures
+ */
+***************
+*** 68,74 ****
+ char *str = NULL;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "es#", p_enc, &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+--- 74,80 ----
+ char *str = NULL;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+***************
+*** 108,114 ****
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "es#", p_enc, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+--- 114,120 ----
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+*** ../vim-7.3.231/src/version.c 2011-06-26 03:16:58.000000000 +0200
+--- src/version.c 2011-06-26 04:00:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 232,
+ /**/
+
+--
+If evolution theories are correct, humans will soon grow a third
+hand for operating the mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.233 b/source/ap/vim/patches/7.3.233
new file mode 100644
index 000000000..2dcbf89ac
--- /dev/null
+++ b/source/ap/vim/patches/7.3.233
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.233
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.233
+Problem: ":scriptnames" and ":breaklist" show long file names.
+Solution: Shorten to use "~/" when possible. (Jean-Rene David)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.232/src/ex_cmds2.c 2011-05-19 18:26:34.000000000 +0200
+--- src/ex_cmds2.c 2011-06-26 04:20:24.000000000 +0200
+***************
+*** 682,691 ****
+ for (i = 0; i < dbg_breakp.ga_len; ++i)
+ {
+ bp = &BREAKP(i);
+ smsg((char_u *)_("%3d %s %s line %ld"),
+ bp->dbg_nr,
+ bp->dbg_type == DBG_FUNC ? "func" : "file",
+! bp->dbg_name,
+ (long)bp->dbg_lnum);
+ }
+ }
+--- 682,693 ----
+ for (i = 0; i < dbg_breakp.ga_len; ++i)
+ {
+ bp = &BREAKP(i);
++ if (bp->dbg_type == DBG_FILE)
++ home_replace(NULL, bp->dbg_name, NameBuff, MAXPATHL, TRUE);
+ smsg((char_u *)_("%3d %s %s line %ld"),
+ bp->dbg_nr,
+ bp->dbg_type == DBG_FUNC ? "func" : "file",
+! bp->dbg_type == DBG_FUNC ? bp->dbg_name : NameBuff,
+ (long)bp->dbg_lnum);
+ }
+ }
+***************
+*** 3268,3274 ****
+
+ for (i = 1; i <= script_items.ga_len && !got_int; ++i)
+ if (SCRIPT_ITEM(i).sn_name != NULL)
+! smsg((char_u *)"%3d: %s", i, SCRIPT_ITEM(i).sn_name);
+ }
+
+ # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+--- 3270,3280 ----
+
+ for (i = 1; i <= script_items.ga_len && !got_int; ++i)
+ if (SCRIPT_ITEM(i).sn_name != NULL)
+! {
+! home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+! NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)"%3d: %s", i, NameBuff);
+! }
+ }
+
+ # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+*** ../vim-7.3.232/src/version.c 2011-06-26 04:01:37.000000000 +0200
+--- src/version.c 2011-06-26 04:23:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 233,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+223. You set up a web-cam as your home's security system.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.234 b/source/ap/vim/patches/7.3.234
new file mode 100644
index 000000000..a60df3db1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.234
@@ -0,0 +1,178 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.234
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.234
+Problem: With GTK menu may be popping down.
+Solution: Use event time instead of GDK_CURRENT_TIME. (Hong Xu)
+Files: src/gui.c, src/gui.h, src/gui_gtk.c, src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.233/src/gui.c 2011-06-20 00:53:10.000000000 +0200
+--- src/gui.c 2011-06-26 04:38:09.000000000 +0200
+***************
+*** 84,89 ****
+--- 84,93 ----
+ gui.starting = TRUE;
+ full_screen = FALSE;
+
++ #ifdef FEAT_GUI_GTK
++ gui.event_time = GDK_CURRENT_TIME;
++ #endif
++
+ #ifdef MAY_FORK
+ if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
+ dofork = FALSE;
+*** ../vim-7.3.233/src/gui.h 2011-05-10 16:41:13.000000000 +0200
+--- src/gui.h 2011-06-26 04:41:21.000000000 +0200
+***************
+*** 401,406 ****
+--- 401,408 ----
+ GtkAccelGroup *accel_group;
+ GtkWidget *filedlg; /* file selection dialog */
+ char_u *browse_fname; /* file name from filedlg */
++
++ guint32 event_time;
+ #endif /* FEAT_GUI_GTK */
+
+ #if defined(FEAT_GUI_TABLINE) \
+*** ../vim-7.3.233/src/gui_gtk.c 2011-01-17 20:08:03.000000000 +0100
+--- src/gui_gtk.c 2011-06-26 04:38:09.000000000 +0200
+***************
+*** 1391,1397 ****
+ gtk_menu_popup(GTK_MENU(menu->submenu_id),
+ NULL, NULL,
+ (GtkMenuPositionFunc)NULL, NULL,
+! 3U, (guint32)GDK_CURRENT_TIME);
+ }
+
+ /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
+--- 1391,1397 ----
+ gtk_menu_popup(GTK_MENU(menu->submenu_id),
+ NULL, NULL,
+ (GtkMenuPositionFunc)NULL, NULL,
+! 3U, gui.event_time);
+ }
+
+ /* Ugly global variable to pass "mouse_pos" flag from gui_make_popup() to
+*** ../vim-7.3.233/src/gui_gtk_x11.c 2011-06-19 01:14:22.000000000 +0200
+--- src/gui_gtk_x11.c 2011-06-26 04:39:57.000000000 +0200
+***************
+*** 88,95 ****
+ # include <X11/Sunkeysym.h>
+ #endif
+
+- static guint32 clipboard_event_time = CurrentTime;
+-
+ /*
+ * Easy-to-use macro for multihead support.
+ */
+--- 88,93 ----
+***************
+*** 934,940 ****
+ guint state;
+ char_u *s, *d;
+
+! clipboard_event_time = event->time;
+ key_sym = event->keyval;
+ state = event->state;
+
+--- 932,938 ----
+ guint state;
+ char_u *s, *d;
+
+! gui.event_time = event->time;
+ key_sym = event->keyval;
+ state = event->state;
+
+***************
+*** 1129,1135 ****
+ GdkEventKey *event,
+ gpointer data UNUSED)
+ {
+! clipboard_event_time = event->time;
+ /*
+ * GTK+ 2 input methods may do fancy stuff on key release events too.
+ * With the default IM for instance, you can enter any UCS code point
+--- 1127,1133 ----
+ GdkEventKey *event,
+ gpointer data UNUSED)
+ {
+! gui.event_time = event->time;
+ /*
+ * GTK+ 2 input methods may do fancy stuff on key release events too.
+ * With the default IM for instance, you can enter any UCS code point
+***************
+*** 1622,1628 ****
+ int x, y;
+ int_u vim_modifiers;
+
+! clipboard_event_time = event->time;
+
+ /* Make sure we have focus now we've been selected */
+ if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
+--- 1620,1626 ----
+ int x, y;
+ int_u vim_modifiers;
+
+! gui.event_time = event->time;
+
+ /* Make sure we have focus now we've been selected */
+ if (gtk_socket_id != 0 && !GTK_WIDGET_HAS_FOCUS(widget))
+***************
+*** 1733,1739 ****
+ int x, y;
+ int_u vim_modifiers;
+
+! clipboard_event_time = event->time;
+
+ /* Remove any motion "machine gun" timers used for automatic further
+ extension of allocation areas if outside of the applications window
+--- 1731,1737 ----
+ int x, y;
+ int_u vim_modifiers;
+
+! gui.event_time = event->time;
+
+ /* Remove any motion "machine gun" timers used for automatic further
+ extension of allocation areas if outside of the applications window
+***************
+*** 5654,5660 ****
+ int success;
+
+ success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
+! clipboard_event_time);
+ gui_mch_update();
+ return (success) ? OK : FAIL;
+ }
+--- 5652,5658 ----
+ int success;
+
+ success = gtk_selection_owner_set(gui.drawarea, cbd->gtk_sel_atom,
+! gui.event_time);
+ gui_mch_update();
+ return (success) ? OK : FAIL;
+ }
+*** ../vim-7.3.233/src/version.c 2011-06-26 04:25:24.000000000 +0200
+--- src/version.c 2011-06-26 04:47:02.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 234,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+225. You sign up for free subscriptions for all the computer magazines
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.235 b/source/ap/vim/patches/7.3.235
new file mode 100644
index 000000000..a852c852a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.235
@@ -0,0 +1,360 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.235
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.235
+Problem: ";" gets stuck on a "t" command, it's not useful.
+Solution: Add the ';' flag in 'cpo'. (Christian Brabandt)
+Files: runtime/doc/motion.txt, runtime/doc/options.txt, src/option.h,
+ src/search.c src/testdir/test81.in, src/testdir/test81.ok,
+ src/testdir/Makefile, src/testdir/Make_amiga.mak,
+ src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+ src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.234/runtime/doc/motion.txt 2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/motion.txt 2011-06-26 05:15:58.000000000 +0200
+***************
+*** 269,279 ****
+ {char} can be entered like with the |f| command.
+
+ *;*
+! ; Repeat latest f, t, F or T [count] times.
+
+ *,*
+ , Repeat latest f, t, F or T in opposite direction
+! [count] times.
+
+ ==============================================================================
+ 3. Up-down motions *up-down-motions*
+--- 269,279 ----
+ {char} can be entered like with the |f| command.
+
+ *;*
+! ; Repeat latest f, t, F or T [count] times. See |cpo-;|
+
+ *,*
+ , Repeat latest f, t, F or T in opposite direction
+! [count] times. See also |cpo-;|
+
+ ==============================================================================
+ 3. Up-down motions *up-down-motions*
+*** ../vim-7.3.234/runtime/doc/options.txt 2011-06-12 20:42:17.000000000 +0200
+--- runtime/doc/options.txt 2011-06-26 05:15:58.000000000 +0200
+***************
+*** 2090,2095 ****
+--- 2117,2128 ----
+ *cpo->*
+ > When appending to a register, put a line break before
+ the appended text.
++ *cpo-;*
++ ; When using |,| or |;| to repeat the last |t| search
++ and the cursor is right in front of the searched
++ character, the cursor won't move. When not included,
++ the cursor would skip over it and jump to the
++ following occurence.
+
+ POSIX flags. These are not included in the Vi default value, except
+ when $VIM_POSIX was set on startup. |posix|
+*** ../vim-7.3.234/src/option.h 2011-06-12 22:13:37.000000000 +0200
+--- src/option.h 2011-06-26 05:17:58.000000000 +0200
+***************
+*** 169,178 ****
+ #define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
+ #define CPO_BACKSL '\\' /* \ is not special in [] */
+ #define CPO_CHDIR '.' /* don't chdir if buffer is modified */
+ /* default values for Vim, Vi and POSIX */
+ #define CPO_VIM "aABceFs"
+! #define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>"
+! #define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\."
+
+ /* characters for p_ww option: */
+ #define WW_ALL "bshl<>[],~"
+--- 169,180 ----
+ #define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
+ #define CPO_BACKSL '\\' /* \ is not special in [] */
+ #define CPO_CHDIR '.' /* don't chdir if buffer is modified */
++ #define CPO_SCOLON ';' /* using "," and ";" will skip over char if
++ * cursor would not move */
+ /* default values for Vim, Vi and POSIX */
+ #define CPO_VIM "aABceFs"
+! #define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
+! #define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
+
+ /* characters for p_ww option: */
+ #define WW_ALL "bshl<>[],~"
+*** ../vim-7.3.234/src/search.c 2011-05-10 16:41:13.000000000 +0200
+--- src/search.c 2011-06-26 05:20:45.000000000 +0200
+***************
+*** 1546,1551 ****
+--- 1546,1552 ----
+ int col;
+ char_u *p;
+ int len;
++ int stop = TRUE;
+ #ifdef FEAT_MBYTE
+ static char_u bytes[MB_MAXBYTES];
+ static int bytelen = 1; /* >1 for multi-byte char */
+***************
+*** 1580,1585 ****
+--- 1581,1592 ----
+ t_cmd = last_t_cmd;
+ c = lastc;
+ /* For multi-byte re-use last bytes[] and bytelen. */
++
++ /* Force a move of at least one char, so ";" and "," will move the
++ * cursor, even if the cursor is right in front of char we are looking
++ * at. */
++ if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
++ stop = FALSE;
+ }
+
+ if (dir == BACKWARD)
+***************
+*** 1612,1625 ****
+ }
+ if (bytelen == 1)
+ {
+! if (p[col] == c)
+ break;
+ }
+ else
+ {
+! if (vim_memcmp(p + col, bytes, bytelen) == 0)
+ break;
+ }
+ }
+ }
+ else
+--- 1619,1633 ----
+ }
+ if (bytelen == 1)
+ {
+! if (p[col] == c && stop)
+ break;
+ }
+ else
+ {
+! if (vim_memcmp(p + col, bytes, bytelen) == 0 && stop)
+ break;
+ }
++ stop = TRUE;
+ }
+ }
+ else
+***************
+*** 1629,1636 ****
+ {
+ if ((col += dir) < 0 || col >= len)
+ return FAIL;
+! if (p[col] == c)
+ break;
+ }
+ }
+ }
+--- 1637,1645 ----
+ {
+ if ((col += dir) < 0 || col >= len)
+ return FAIL;
+! if (p[col] == c && stop)
+ break;
++ stop = TRUE;
+ }
+ }
+ }
+*** ../vim-7.3.234/src/testdir/test81.in 2011-06-26 05:34:33.000000000 +0200
+--- src/testdir/test81.in 2011-06-26 05:30:31.000000000 +0200
+***************
+*** 0 ****
+--- 1,18 ----
++ Test for t movement command and 'cpo-;' setting
++
++ STARTTEST
++ :set nocompatible
++ :set cpo-=;
++ /firstline/
++ j0tt;D
++ $Ty;D:set cpo+=;
++ j0tt;;D
++ $Ty;;D:?firstline?+1,$w! test.out
++ :qa!
++ ENDTEST
++
++ firstline
++ aaa two three four
++ bbb yee yoo four
++ ccc two three four
++ ddd yee yoo four
+*** ../vim-7.3.234/src/testdir/test81.ok 2011-06-26 05:34:33.000000000 +0200
+--- src/testdir/test81.ok 2011-06-26 05:31:33.000000000 +0200
+***************
+*** 0 ****
+--- 1,4 ----
++ aaa two
++ bbb y
++ ccc
++ ddd yee y
+*** ../vim-7.3.234/src/testdir/Makefile 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Makefile 2011-06-26 05:09:56.000000000 +0200
+***************
+*** 26,32 ****
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 26,32 ----
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.3.234/src/testdir/Make_amiga.mak 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-06-26 05:09:07.000000000 +0200
+***************
+*** 28,34 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out test79.out test80.out
+
+ .SUFFIXES: .in .out
+
+--- 28,35 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out test79.out test80.out \
+! test81.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 128,130 ****
+--- 129,132 ----
+ test78.out: test78.in
+ test79.out: test79.in
+ test80.out: test80.in
++ test81.out: test81.in
+*** ../vim-7.3.234/src/testdir/Make_dos.mak 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_dos.mak 2011-06-26 05:09:16.000000000 +0200
+***************
+*** 29,35 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 29,35 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.234/src/testdir/Make_ming.mak 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_ming.mak 2011-06-26 05:09:24.000000000 +0200
+***************
+*** 49,55 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 49,55 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.234/src/testdir/Make_os2.mak 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_os2.mak 2011-06-26 05:09:33.000000000 +0200
+***************
+*** 28,34 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out test79.out test80.out
+
+ .SUFFIXES: .in .out
+
+--- 28,35 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+! test76.out test77.out test78.out test79.out test80.out \
+! test81.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.3.234/src/testdir/Make_vms.mms 2011-06-19 04:31:54.000000000 +0200
+--- src/testdir/Make_vms.mms 2011-06-26 05:09:42.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jun 19
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jun 26
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out test78.out test79.out test80.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 75,81 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out test78.out test79.out test80.out test81.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.234/src/version.c 2011-06-26 04:48:56.000000000 +0200
+--- src/version.c 2011-06-26 05:33:53.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 235,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+226. You sit down at the computer right after dinner and your spouse
+ says "See you in the morning."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.236 b/source/ap/vim/patches/7.3.236
new file mode 100644
index 000000000..3be69e302
--- /dev/null
+++ b/source/ap/vim/patches/7.3.236
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.236
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.236 (after 7.3.232)
+Problem: Python 3 doesn't compile without +multi_byte
+Solution: Use "latin1" when MULTI_BYTE is not defined. (lilydjwg)
+Files: src/if_python3.c
+
+
+*** ../vim-7.3.235/src/if_python3.c 2011-06-19 00:27:46.000000000 +0200
+--- src/if_python3.c 2011-06-26 19:10:57.000000000 +0200
+***************
+*** 70,76 ****
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)p_enc, NULL);
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+--- 70,76 ----
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+***************
+*** 661,667 ****
+
+ /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+ * SyntaxError (unicode error). */
+! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)p_enc, NULL);
+ cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+ Py_XDECREF(cmdstr);
+ PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+--- 661,667 ----
+
+ /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+ * SyntaxError (unicode error). */
+! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
+ cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+ Py_XDECREF(cmdstr);
+ PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+***************
+*** 1463,1469 ****
+ }
+ *p = '\0';
+
+! result = PyUnicode_Decode(tmp, len, (char *)p_enc, NULL);
+
+ vim_free(tmp);
+ return result;
+--- 1463,1469 ----
+ }
+ *p = '\0';
+
+! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
+
+ vim_free(tmp);
+ return result;
+*** ../vim-7.3.235/src/version.c 2011-06-26 05:36:07.000000000 +0200
+--- src/version.c 2011-06-26 19:12:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 236,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+228. You spend Saturday night making the counter on your home page
+ pass that 2000 mark.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.237 b/source/ap/vim/patches/7.3.237
new file mode 100644
index 000000000..ead50ca6a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.237
@@ -0,0 +1,222 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.237
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.237
+Problem: "filetype" completion doesn't work on Windows. (Yue Wu)
+Solution: Don't use a glob pattern for the directories, use a list of
+ directories. (Dominique Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.236/src/ex_getln.c 2011-05-19 18:26:34.000000000 +0200
+--- src/ex_getln.c 2011-06-26 19:36:36.000000000 +0200
+***************
+*** 110,116 ****
+ static int expand_showtail __ARGS((expand_T *xp));
+ #ifdef FEAT_CMDL_COMPL
+ static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname));
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+--- 110,116 ----
+ static int expand_showtail __ARGS((expand_T *xp));
+ #ifdef FEAT_CMDL_COMPL
+ static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+! static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+***************
+*** 4536,4548 ****
+ || xp->xp_context == EXPAND_TAGS_LISTFILES)
+ return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
+ if (xp->xp_context == EXPAND_COLORS)
+! return ExpandRTDir(pat, num_file, file, "colors");
+ if (xp->xp_context == EXPAND_COMPILER)
+! return ExpandRTDir(pat, num_file, file, "compiler");
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
+! return ExpandRTDir(pat, num_file, file, "syntax");
+ if (xp->xp_context == EXPAND_FILETYPE)
+! return ExpandRTDir(pat, num_file, file, "{syntax,indent,ftplugin}");
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+ if (xp->xp_context == EXPAND_USER_LIST)
+ return ExpandUserList(xp, num_file, file);
+--- 4536,4560 ----
+ || xp->xp_context == EXPAND_TAGS_LISTFILES)
+ return expand_tags(xp->xp_context == EXPAND_TAGS, pat, num_file, file);
+ if (xp->xp_context == EXPAND_COLORS)
+! {
+! char *directories[] = {"colors", NULL};
+! return ExpandRTDir(pat, num_file, file, directories);
+! }
+ if (xp->xp_context == EXPAND_COMPILER)
+! {
+! char *directories[] = {"colors", NULL};
+! return ExpandRTDir(pat, num_file, file, directories);
+! }
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
+! {
+! char *directories[] = {"syntax", NULL};
+! return ExpandRTDir(pat, num_file, file, directories);
+! }
+ if (xp->xp_context == EXPAND_FILETYPE)
+! {
+! char *directories[] = {"syntax", "indent", "ftplugin", NULL};
+! return ExpandRTDir(pat, num_file, file, directories);
+! }
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+ if (xp->xp_context == EXPAND_USER_LIST)
+ return ExpandUserList(xp, num_file, file);
+***************
+*** 4995,5051 ****
+ /*
+ * Expand color scheme, compiler or filetype names:
+ * 'runtimepath'/{dirnames}/{pat}.vim
+! * dirnames may contain one directory (ex: "colorscheme") or can be a glob
+! * expression matching multiple directories (ex: "{syntax,ftplugin,indent}").
+ */
+ static int
+ ExpandRTDir(pat, num_file, file, dirnames)
+ char_u *pat;
+ int *num_file;
+ char_u ***file;
+! char *dirnames;
+ {
+! char_u *all;
+ char_u *s;
+ char_u *e;
+ garray_T ga;
+
+ *num_file = 0;
+ *file = NULL;
+! s = alloc((unsigned)(STRLEN(pat) + STRLEN(dirnames) + 7));
+! if (s == NULL)
+! return FAIL;
+! sprintf((char *)s, "%s/%s*.vim", dirnames, pat);
+! all = globpath(p_rtp, s, 0);
+! vim_free(s);
+! if (all == NULL)
+! return FAIL;
+
+! ga_init2(&ga, (int)sizeof(char *), 3);
+! for (s = all; *s != NUL; s = e)
+ {
+! e = vim_strchr(s, '\n');
+! if (e == NULL)
+! e = s + STRLEN(s);
+! if (ga_grow(&ga, 1) == FAIL)
+! break;
+! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
+ {
+! for (s = e - 4; s > all; mb_ptr_back(all, s))
+! if (*s == '\n' || vim_ispathsep(*s))
+! break;
+! ++s;
+! ((char_u **)ga.ga_data)[ga.ga_len] =
+ vim_strnsave(s, (int)(e - s - 4));
+! ++ga.ga_len;
+ }
+! if (*e != NUL)
+! ++e;
+ }
+! vim_free(all);
+
+ /* Sort and remove duplicates which can happen when specifying multiple
+! * directories in dirnames such as "{syntax,ftplugin,indent}". */
+ remove_duplicates(&ga);
+
+ *file = ga.ga_data;
+--- 5007,5074 ----
+ /*
+ * Expand color scheme, compiler or filetype names:
+ * 'runtimepath'/{dirnames}/{pat}.vim
+! * "dirnames" is an array with one or more directory names.
+ */
+ static int
+ ExpandRTDir(pat, num_file, file, dirnames)
+ char_u *pat;
+ int *num_file;
+ char_u ***file;
+! char *dirnames[];
+ {
+! char_u *matches;
+ char_u *s;
+ char_u *e;
+ garray_T ga;
++ int i;
++ int pat_len;
+
+ *num_file = 0;
+ *file = NULL;
+! pat_len = STRLEN(pat);
+! ga_init2(&ga, (int)sizeof(char *), 10);
+
+! for (i = 0; dirnames[i] != NULL; ++i)
+ {
+! s = alloc((unsigned)(STRLEN(dirnames[i]) + pat_len + 7));
+! if (s == NULL)
+ {
+! ga_clear_strings(&ga);
+! return FAIL;
+! }
+! sprintf((char *)s, "%s/%s*.vim", dirnames[i], pat);
+! matches = globpath(p_rtp, s, 0);
+! vim_free(s);
+! if (matches == NULL)
+! continue;
+!
+! for (s = matches; *s != NUL; s = e)
+! {
+! e = vim_strchr(s, '\n');
+! if (e == NULL)
+! e = s + STRLEN(s);
+! if (ga_grow(&ga, 1) == FAIL)
+! break;
+! if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0)
+! {
+! for (s = e - 4; s > matches; mb_ptr_back(matches, s))
+! if (*s == '\n' || vim_ispathsep(*s))
+! break;
+! ++s;
+! ((char_u **)ga.ga_data)[ga.ga_len] =
+ vim_strnsave(s, (int)(e - s - 4));
+! ++ga.ga_len;
+! }
+! if (*e != NUL)
+! ++e;
+ }
+! vim_free(matches);
+ }
+! if (ga.ga_len == 0)
+! return FAIL;
+
+ /* Sort and remove duplicates which can happen when specifying multiple
+! * directories in dirnames. */
+ remove_duplicates(&ga);
+
+ *file = ga.ga_data;
+*** ../vim-7.3.236/src/version.c 2011-06-26 19:13:33.000000000 +0200
+--- src/version.c 2011-06-26 19:39:39.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 237,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+230. You spend your Friday nights typing away at your keyboard
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.238 b/source/ap/vim/patches/7.3.238
new file mode 100644
index 000000000..289b1a432
--- /dev/null
+++ b/source/ap/vim/patches/7.3.238
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.238
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.238
+Problem: Compiler warning for conversion.
+Solution: Add type cast. (Mike Williams)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.237/src/ex_getln.c 2011-06-26 19:40:14.000000000 +0200
+--- src/ex_getln.c 2011-07-04 14:23:27.000000000 +0200
+***************
+*** 5025,5031 ****
+
+ *num_file = 0;
+ *file = NULL;
+! pat_len = STRLEN(pat);
+ ga_init2(&ga, (int)sizeof(char *), 10);
+
+ for (i = 0; dirnames[i] != NULL; ++i)
+--- 5025,5031 ----
+
+ *num_file = 0;
+ *file = NULL;
+! pat_len = (int)STRLEN(pat);
+ ga_init2(&ga, (int)sizeof(char *), 10);
+
+ for (i = 0; dirnames[i] != NULL; ++i)
+*** ../vim-7.3.237/src/version.c 2011-06-26 19:40:14.000000000 +0200
+--- src/version.c 2011-07-07 15:04:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 238,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+255. You work for a newspaper and your editor asks you to write an
+ article about Internet addiction...in the "first person."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.239 b/source/ap/vim/patches/7.3.239
new file mode 100644
index 000000000..1c03da3f6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.239
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.239
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.239
+Problem: Python corrects the cursor column without taking 'virtualedit'
+ into account. (lilydjwg)
+Solution: Call check_cursor_col_win().
+Files: src/if_py_both.h, src/mbyte.c, src/misc2.c, src/normal.c,
+ src/proto/mbyte.pro, src/proto/misc2.pro
+
+
+*** ../vim-7.3.238/src/if_py_both.h 2011-06-26 04:01:37.000000000 +0200
+--- src/if_py_both.h 2011-07-07 14:28:19.000000000 +0200
+***************
+*** 534,540 ****
+ {
+ long lnum;
+ long col;
+- long len;
+
+ if (!PyArg_Parse(val, "(ll)", &lnum, &col))
+ return -1;
+--- 534,539 ----
+***************
+*** 549,566 ****
+ if (VimErrorCheck())
+ return -1;
+
+- /* When column is out of range silently correct it. */
+- len = (long)STRLEN(ml_get_buf(this->win->w_buffer, lnum, FALSE));
+- if (col > len)
+- col = len;
+-
+ this->win->w_cursor.lnum = lnum;
+ this->win->w_cursor.col = col;
+ #ifdef FEAT_VIRTUALEDIT
+ this->win->w_cursor.coladd = 0;
+ #endif
+! update_screen(VALID);
+
+ return 0;
+ }
+ else if (strcmp(name, "height") == 0)
+--- 548,562 ----
+ if (VimErrorCheck())
+ return -1;
+
+ this->win->w_cursor.lnum = lnum;
+ this->win->w_cursor.col = col;
+ #ifdef FEAT_VIRTUALEDIT
+ this->win->w_cursor.coladd = 0;
+ #endif
+! /* When column is out of range silently correct it. */
+! check_cursor_col_win(this->win);
+
++ update_screen(VALID);
+ return 0;
+ }
+ else if (strcmp(name, "height") == 0)
+*** ../vim-7.3.238/src/mbyte.c 2011-04-11 14:29:13.000000000 +0200
+--- src/mbyte.c 2011-07-07 14:27:07.000000000 +0200
+***************
+*** 3563,3569 ****
+ void
+ mb_adjust_cursor()
+ {
+! mb_adjustpos(&curwin->w_cursor);
+ }
+
+ /*
+--- 3563,3569 ----
+ void
+ mb_adjust_cursor()
+ {
+! mb_adjustpos(curbuf, &curwin->w_cursor);
+ }
+
+ /*
+***************
+*** 3571,3577 ****
+ * If it points to a tail byte it's moved backwards to the head byte.
+ */
+ void
+! mb_adjustpos(lp)
+ pos_T *lp;
+ {
+ char_u *p;
+--- 3571,3578 ----
+ * If it points to a tail byte it's moved backwards to the head byte.
+ */
+ void
+! mb_adjustpos(buf, lp)
+! buf_T *buf;
+ pos_T *lp;
+ {
+ char_u *p;
+***************
+*** 3582,3588 ****
+ #endif
+ )
+ {
+! p = ml_get(lp->lnum);
+ lp->col -= (*mb_head_off)(p, p + lp->col);
+ #ifdef FEAT_VIRTUALEDIT
+ /* Reset "coladd" when the cursor would be on the right half of a
+--- 3583,3589 ----
+ #endif
+ )
+ {
+! p = ml_get_buf(buf, lp->lnum, FALSE);
+ lp->col -= (*mb_head_off)(p, p + lp->col);
+ #ifdef FEAT_VIRTUALEDIT
+ /* Reset "coladd" when the cursor would be on the right half of a
+*** ../vim-7.3.238/src/misc2.c 2011-04-11 16:56:29.000000000 +0200
+--- src/misc2.c 2011-07-07 14:27:50.000000000 +0200
+***************
+*** 333,339 ****
+ #ifdef FEAT_MBYTE
+ /* prevent from moving onto a trail byte */
+ if (has_mbyte)
+! mb_adjustpos(pos);
+ #endif
+
+ if (col < wcol)
+--- 333,339 ----
+ #ifdef FEAT_MBYTE
+ /* prevent from moving onto a trail byte */
+ if (has_mbyte)
+! mb_adjustpos(curbuf, pos);
+ #endif
+
+ if (col < wcol)
+***************
+*** 544,559 ****
+ void
+ check_cursor_col()
+ {
+ colnr_T len;
+ #ifdef FEAT_VIRTUALEDIT
+! colnr_T oldcol = curwin->w_cursor.col;
+! colnr_T oldcoladd = curwin->w_cursor.col + curwin->w_cursor.coladd;
+ #endif
+
+! len = (colnr_T)STRLEN(ml_get_curline());
+ if (len == 0)
+! curwin->w_cursor.col = 0;
+! else if (curwin->w_cursor.col >= len)
+ {
+ /* Allow cursor past end-of-line when:
+ * - in Insert mode or restarting Insert mode
+--- 544,569 ----
+ void
+ check_cursor_col()
+ {
++ check_cursor_col_win(curwin);
++ }
++
++ /*
++ * Make sure win->w_cursor.col is valid.
++ */
++ void
++ check_cursor_col_win(win)
++ win_T *win;
++ {
+ colnr_T len;
+ #ifdef FEAT_VIRTUALEDIT
+! colnr_T oldcol = win->w_cursor.col;
+! colnr_T oldcoladd = win->w_cursor.col + win->w_cursor.coladd;
+ #endif
+
+! len = (colnr_T)STRLEN(ml_get_buf(win->w_buffer, win->w_cursor.lnum, FALSE));
+ if (len == 0)
+! win->w_cursor.col = 0;
+! else if (win->w_cursor.col >= len)
+ {
+ /* Allow cursor past end-of-line when:
+ * - in Insert mode or restarting Insert mode
+***************
+*** 567,599 ****
+ || (ve_flags & VE_ONEMORE)
+ #endif
+ || virtual_active())
+! curwin->w_cursor.col = len;
+ else
+ {
+! curwin->w_cursor.col = len - 1;
+ #ifdef FEAT_MBYTE
+! /* prevent cursor from moving on the trail byte */
+ if (has_mbyte)
+! mb_adjust_cursor();
+ #endif
+ }
+ }
+! else if (curwin->w_cursor.col < 0)
+! curwin->w_cursor.col = 0;
+
+ #ifdef FEAT_VIRTUALEDIT
+ /* If virtual editing is on, we can leave the cursor on the old position,
+ * only we must set it to virtual. But don't do it when at the end of the
+ * line. */
+ if (oldcol == MAXCOL)
+! curwin->w_cursor.coladd = 0;
+ else if (ve_flags == VE_ALL)
+ {
+! if (oldcoladd > curwin->w_cursor.col)
+! curwin->w_cursor.coladd = oldcoladd - curwin->w_cursor.col;
+ else
+ /* avoid weird number when there is a miscalculation or overflow */
+! curwin->w_cursor.coladd = 0;
+ }
+ #endif
+ }
+--- 577,609 ----
+ || (ve_flags & VE_ONEMORE)
+ #endif
+ || virtual_active())
+! win->w_cursor.col = len;
+ else
+ {
+! win->w_cursor.col = len - 1;
+ #ifdef FEAT_MBYTE
+! /* Move the cursor to the head byte. */
+ if (has_mbyte)
+! mb_adjustpos(win->w_buffer, &win->w_cursor);
+ #endif
+ }
+ }
+! else if (win->w_cursor.col < 0)
+! win->w_cursor.col = 0;
+
+ #ifdef FEAT_VIRTUALEDIT
+ /* If virtual editing is on, we can leave the cursor on the old position,
+ * only we must set it to virtual. But don't do it when at the end of the
+ * line. */
+ if (oldcol == MAXCOL)
+! win->w_cursor.coladd = 0;
+ else if (ve_flags == VE_ALL)
+ {
+! if (oldcoladd > win->w_cursor.col)
+! win->w_cursor.coladd = oldcoladd - win->w_cursor.col;
+ else
+ /* avoid weird number when there is a miscalculation or overflow */
+! win->w_cursor.coladd = 0;
+ }
+ #endif
+ }
+*** ../vim-7.3.238/src/normal.c 2011-06-20 00:45:55.000000000 +0200
+--- src/normal.c 2011-07-07 14:27:57.000000000 +0200
+***************
+*** 8774,8780 ****
+ {
+ --pp->col;
+ #ifdef FEAT_MBYTE
+! mb_adjustpos(pp);
+ #endif
+ }
+ else if (pp->lnum > 1)
+--- 8774,8780 ----
+ {
+ --pp->col;
+ #ifdef FEAT_MBYTE
+! mb_adjustpos(curbuf, pp);
+ #endif
+ }
+ else if (pp->lnum > 1)
+*** ../vim-7.3.238/src/proto/mbyte.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/mbyte.pro 2011-07-07 14:27:09.000000000 +0200
+***************
+*** 56,62 ****
+ int utf_valid_string __ARGS((char_u *s, char_u *end));
+ int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
+ void mb_adjust_cursor __ARGS((void));
+! void mb_adjustpos __ARGS((pos_T *lp));
+ char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
+ int mb_charlen __ARGS((char_u *str));
+ int mb_charlen_len __ARGS((char_u *str, int len));
+--- 56,62 ----
+ int utf_valid_string __ARGS((char_u *s, char_u *end));
+ int dbcs_screen_tail_off __ARGS((char_u *base, char_u *p));
+ void mb_adjust_cursor __ARGS((void));
+! void mb_adjustpos __ARGS((buf_T *buf, pos_T *lp));
+ char_u *mb_prevptr __ARGS((char_u *line, char_u *p));
+ int mb_charlen __ARGS((char_u *str));
+ int mb_charlen_len __ARGS((char_u *str, int len));
+*** ../vim-7.3.238/src/proto/misc2.pro 2011-04-11 16:56:29.000000000 +0200
+--- src/proto/misc2.pro 2011-07-07 14:26:57.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,20 ----
+ linenr_T get_cursor_rel_lnum __ARGS((win_T *wp, linenr_T lnum));
+ void check_cursor_lnum __ARGS((void));
+ void check_cursor_col __ARGS((void));
++ void check_cursor_col_win __ARGS((win_T *win));
+ void check_cursor __ARGS((void));
+ void adjust_cursor_col __ARGS((void));
+ int leftcol_changed __ARGS((void));
+*** ../vim-7.3.238/src/version.c 2011-07-07 15:04:38.000000000 +0200
+--- src/version.c 2011-07-07 15:05:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 239,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+256. You are able to write down over 250 symptoms of being an internet
+ addict, even though they only asked for 101.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.240 b/source/ap/vim/patches/7.3.240
new file mode 100644
index 000000000..7048ac1f3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.240
@@ -0,0 +1,795 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.240
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Note: I haven't verified this works or even compiles. Please send me a
+patch if you see a problem and can fix it.
+
+Patch 7.3.240
+Problem: External commands can't use pipes on MS-Windows.
+Solution: Implement pipes and use them when 'shelltemp' isn't set. (Vincent
+ Berthoux)
+Files: src/eval.c, src/ex_cmds.c, src/misc2.c, src/os_unix.c,
+ src/os_win32.c, src/proto/misc2.pro, src/ui.c
+
+
+*** ../vim-7.3.239/src/eval.c 2011-06-19 02:55:32.000000000 +0200
+--- src/eval.c 2011-07-07 15:44:56.000000000 +0200
+***************
+*** 11931,11937 ****
+ #ifdef FEAT_SEARCHPATH
+ "file_in_path",
+ #endif
+! #if defined(UNIX) && !defined(USE_SYSTEM)
+ "filterpipe",
+ #endif
+ #ifdef FEAT_FIND_ID
+--- 11931,11937 ----
+ #ifdef FEAT_SEARCHPATH
+ "file_in_path",
+ #endif
+! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
+ "filterpipe",
+ #endif
+ #ifdef FEAT_FIND_ID
+*** ../vim-7.3.239/src/ex_cmds.c 2011-06-12 22:03:15.000000000 +0200
+--- src/ex_cmds.c 2011-07-07 15:44:56.000000000 +0200
+***************
+*** 1107,1113 ****
+ if (do_out)
+ shell_flags |= SHELL_DOOUT;
+
+! #if !defined(USE_SYSTEM) && defined(UNIX)
+ if (!do_in && do_out && !p_stmp)
+ {
+ /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+--- 1107,1113 ----
+ if (do_out)
+ shell_flags |= SHELL_DOOUT;
+
+! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
+ if (!do_in && do_out && !p_stmp)
+ {
+ /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+*** ../vim-7.3.239/src/misc2.c 2011-07-07 15:08:53.000000000 +0200
+--- src/misc2.c 2011-07-07 15:55:42.000000000 +0200
+***************
+*** 2146,2151 ****
+--- 2146,2170 ----
+ }
+ }
+
++ #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
++ /*
++ * Append the text in "gap" below the cursor line and clear "gap".
++ */
++ void
++ append_ga_line(gap)
++ garray_T *gap;
++ {
++ /* Remove trailing CR. */
++ if (gap->ga_len > 0
++ && !curbuf->b_p_bin
++ && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
++ --gap->ga_len;
++ ga_append(gap, NUL);
++ ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
++ gap->ga_len = 0;
++ }
++ #endif
++
+ /************************************************************************
+ * functions that use lookup tables for various things, generally to do with
+ * special key codes.
+*** ../vim-7.3.239/src/os_unix.c 2011-04-11 16:56:29.000000000 +0200
+--- src/os_unix.c 2011-07-07 15:54:58.000000000 +0200
+***************
+*** 3660,3686 ****
+ /* Nothing to do. */
+ }
+
+- #ifndef USE_SYSTEM
+- static void append_ga_line __ARGS((garray_T *gap));
+-
+- /*
+- * Append the text in "gap" below the cursor line and clear "gap".
+- */
+- static void
+- append_ga_line(gap)
+- garray_T *gap;
+- {
+- /* Remove trailing CR. */
+- if (gap->ga_len > 0
+- && !curbuf->b_p_bin
+- && ((char_u *)gap->ga_data)[gap->ga_len - 1] == CAR)
+- --gap->ga_len;
+- ga_append(gap, NUL);
+- ml_append(curwin->w_cursor.lnum++, gap->ga_data, 0, FALSE);
+- gap->ga_len = 0;
+- }
+- #endif
+-
+ int
+ mch_call_shell(cmd, options)
+ char_u *cmd;
+--- 3660,3665 ----
+*** ../vim-7.3.239/src/os_win32.c 2011-05-25 17:06:16.000000000 +0200
+--- src/os_win32.c 2011-07-07 16:08:30.000000000 +0200
+***************
+*** 417,422 ****
+--- 417,427 ----
+ static PGNSECINFO pGetNamedSecurityInfo;
+ #endif
+
++ typedef BOOL (WINAPI *PSETHANDLEINFORMATION)(HANDLE, DWORD, DWORD);
++
++ static BOOL allowPiping = FALSE;
++ static PSETHANDLEINFORMATION pSetHandleInformation;
++
+ /*
+ * Set g_PlatformId to VER_PLATFORM_WIN32_NT (NT) or
+ * VER_PLATFORM_WIN32_WINDOWS (Win95).
+***************
+*** 467,472 ****
+--- 472,489 ----
+ }
+ }
+ #endif
++ /*
++ * If we are on windows NT, try to load the pipe functions, only
++ * available from Win2K.
++ */
++ if (g_PlatformId == VER_PLATFORM_WIN32_NT)
++ {
++ HANDLE kernel32 = GetModuleHandle("kernel32");
++ pSetHandleInformation = (PSETHANDLEINFORMATION)GetProcAddress(
++ kernel32, "SetHandleInformation");
++
++ allowPiping = pSetHandleInformation != NULL;
++ }
+ done = TRUE;
+ }
+ }
+***************
+*** 1635,1641 ****
+ }
+
+ #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
+! __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+ /*
+ * Bad parameter handler.
+ *
+--- 1652,1658 ----
+ }
+
+ #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
+! __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
+ /*
+ * Bad parameter handler.
+ *
+***************
+*** 3210,3216 ****
+ * 4. Prompt the user to press a key to close the console window
+ */
+ static int
+! mch_system(char *cmd, int options)
+ {
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+--- 3227,3233 ----
+ * 4. Prompt the user to press a key to close the console window
+ */
+ static int
+! mch_system_classic(char *cmd, int options)
+ {
+ STARTUPINFO si;
+ PROCESS_INFORMATION pi;
+***************
+*** 3315,3320 ****
+--- 3332,3829 ----
+
+ return ret;
+ }
++
++ /*
++ * Thread launched by the gui to send the current buffer data to the
++ * process. This way avoid to hang up vim totally if the children
++ * process take a long time to process the lines.
++ */
++ static DWORD WINAPI
++ sub_process_writer(LPVOID param)
++ {
++ HANDLE g_hChildStd_IN_Wr = param;
++ linenr_T lnum = curbuf->b_op_start.lnum;
++ DWORD len = 0;
++ DWORD l;
++ char_u *lp = ml_get(lnum);
++ char_u *s;
++ int written = 0;
++
++ for (;;)
++ {
++ l = (DWORD)STRLEN(lp + written);
++ if (l == 0)
++ len = 0;
++ else if (lp[written] == NL)
++ {
++ /* NL -> NUL translation */
++ WriteFile(g_hChildStd_IN_Wr, "", 1, &len, NULL);
++ }
++ else
++ {
++ s = vim_strchr(lp + written, NL);
++ WriteFile(g_hChildStd_IN_Wr, (char *)lp + written,
++ s == NULL ? l : (DWORD)(s - (lp + written)),
++ &len, NULL);
++ }
++ if (len == (int)l)
++ {
++ /* Finished a line, add a NL, unless this line should not have
++ * one. */
++ if (lnum != curbuf->b_op_end.lnum
++ || !curbuf->b_p_bin
++ || (lnum != curbuf->b_no_eol_lnum
++ && (lnum != curbuf->b_ml.ml_line_count
++ || curbuf->b_p_eol)))
++ {
++ WriteFile(g_hChildStd_IN_Wr, "\n", 1, &ignored, NULL);
++ }
++
++ ++lnum;
++ if (lnum > curbuf->b_op_end.lnum)
++ break;
++
++ lp = ml_get(lnum);
++ written = 0;
++ }
++ else if (len > 0)
++ written += len;
++ }
++
++ /* finished all the lines, close pipe */
++ CloseHandle(g_hChildStd_IN_Wr);
++ ExitThread(0);
++ }
++
++
++ # define BUFLEN 100 /* length for buffer, stolen from unix version */
++
++ /*
++ * This function read from the children's stdout and write the
++ * data on screen or in the buffer accordingly.
++ */
++ static void
++ dump_pipe(int options,
++ HANDLE g_hChildStd_OUT_Rd,
++ garray_T *ga,
++ char_u buffer[],
++ DWORD *buffer_off)
++ {
++ DWORD availableBytes = 0;
++ DWORD i;
++ int c;
++ char_u *p;
++ int ret;
++ DWORD len;
++ DWORD toRead;
++ int repeatCount;
++
++ /* we query the pipe to see if there is any data to read
++ * to avoid to perform a blocking read */
++ ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
++ NULL, /* optional buffer */
++ 0, /* buffe size */
++ NULL, /* number of read bytes */
++ &availableBytes, /* available bytes total */
++ NULL); /* byteLeft */
++
++ repeatCount = 0;
++ /* We got real data in the pipe, read it */
++ while (ret != 0 && availableBytes > 0 && availableBytes > 0)
++ {
++ repeatCount++;
++ toRead =
++ # ifdef FEAT_MBYTE
++ (DWORD)(BUFLEN - *buffer_off);
++ # else
++ (DWORD)BUFLEN;
++ # endif
++ toRead = availableBytes < toRead ? availableBytes : toRead;
++ ReadFile(g_hChildStd_OUT_Rd, buffer
++ # ifdef FEAT_MBYTE
++ + *buffer_off, toRead
++ # else
++ , toRead
++ # endif
++ , &len, NULL);
++
++ /* If we haven't read anything, there is a problem */
++ if (len == 0)
++ break;
++
++ availableBytes -= len;
++
++ if (options & SHELL_READ)
++ {
++ /* Do NUL -> NL translation, append NL separated
++ * lines to the current buffer. */
++ for (i = 0; i < len; ++i)
++ {
++ if (buffer[i] == NL)
++ append_ga_line(ga);
++ else if (buffer[i] == NUL)
++ ga_append(ga, NL);
++ else
++ ga_append(ga, buffer[i]);
++ }
++ }
++ # ifdef FEAT_MBYTE
++ else if (has_mbyte)
++ {
++ int l;
++
++ len += *buffer_off;
++ buffer[len] = NUL;
++
++ /* Check if the last character in buffer[] is
++ * incomplete, keep these bytes for the next
++ * round. */
++ for (p = buffer; p < buffer + len; p += l)
++ {
++ l = mb_cptr2len(p);
++ if (l == 0)
++ l = 1; /* NUL byte? */
++ else if (MB_BYTE2LEN(*p) != l)
++ break;
++ }
++ if (p == buffer) /* no complete character */
++ {
++ /* avoid getting stuck at an illegal byte */
++ if (len >= 12)
++ ++p;
++ else
++ {
++ *buffer_off = len;
++ return;
++ }
++ }
++ c = *p;
++ *p = NUL;
++ msg_puts(buffer);
++ if (p < buffer + len)
++ {
++ *p = c;
++ *buffer_off = (DWORD)((buffer + len) - p);
++ mch_memmove(buffer, p, *buffer_off);
++ return;
++ }
++ *buffer_off = 0;
++ }
++ # endif /* FEAT_MBYTE */
++ else
++ {
++ buffer[len] = NUL;
++ msg_puts(buffer);
++ }
++
++ windgoto(msg_row, msg_col);
++ cursor_on();
++ out_flush();
++ }
++ }
++
++ /*
++ * Version of system to use for windows NT > 5.0 (Win2K), use pipe
++ * for communication and doesn't open any new window.
++ */
++ static int
++ mch_system_piped(char *cmd, int options)
++ {
++ STARTUPINFO si;
++ PROCESS_INFORMATION pi;
++ DWORD ret = 0;
++
++ HANDLE g_hChildStd_IN_Rd = NULL;
++ HANDLE g_hChildStd_IN_Wr = NULL;
++ HANDLE g_hChildStd_OUT_Rd = NULL;
++ HANDLE g_hChildStd_OUT_Wr = NULL;
++
++ char_u buffer[BUFLEN + 1]; /* reading buffer + size */
++ DWORD len;
++
++ /* buffer used to receive keys */
++ char_u ta_buf[BUFLEN + 1]; /* TypeAHead */
++ int ta_len = 0; /* valid bytes in ta_buf[] */
++
++ DWORD i;
++ int c;
++ int noread_cnt = 0;
++ garray_T ga;
++ int delay = 1;
++ # ifdef FEAT_MBYTE
++ DWORD buffer_off = 0; /* valid bytes in buffer[] */
++ # endif
++
++ SECURITY_ATTRIBUTES saAttr;
++
++ /* Set the bInheritHandle flag so pipe handles are inherited. */
++ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
++ saAttr.bInheritHandle = TRUE;
++ saAttr.lpSecurityDescriptor = NULL;
++
++ if ( ! CreatePipe(&g_hChildStd_OUT_Rd, &g_hChildStd_OUT_Wr, &saAttr, 0)
++ /* Ensure the read handle to the pipe for STDOUT is not inherited. */
++ || ! pSetHandleInformation(g_hChildStd_OUT_Rd, HANDLE_FLAG_INHERIT, 0)
++ /* Create a pipe for the child process's STDIN. */
++ || ! CreatePipe(&g_hChildStd_IN_Rd, &g_hChildStd_IN_Wr, &saAttr, 0)
++ /* Ensure the write handle to the pipe for STDIN is not inherited. */
++ || ! pSetHandleInformation(g_hChildStd_IN_Wr, HANDLE_FLAG_INHERIT, 0) )
++ {
++ CloseHandle(g_hChildStd_IN_Rd);
++ CloseHandle(g_hChildStd_IN_Wr);
++ CloseHandle(g_hChildStd_OUT_Rd);
++ CloseHandle(g_hChildStd_OUT_Wr);
++ MSG_PUTS(_("\nCannot create pipes\n"));
++ }
++
++ si.cb = sizeof(si);
++ si.lpReserved = NULL;
++ si.lpDesktop = NULL;
++ si.lpTitle = NULL;
++ si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
++
++ /* set-up our file redirection */
++ si.hStdError = g_hChildStd_OUT_Wr;
++ si.hStdOutput = g_hChildStd_OUT_Wr;
++ si.hStdInput = g_hChildStd_IN_Rd;
++ si.wShowWindow = SW_HIDE;
++ si.cbReserved2 = 0;
++ si.lpReserved2 = NULL;
++
++ if (options & SHELL_READ)
++ ga_init2(&ga, 1, BUFLEN);
++
++ /* Now, run the command */
++ CreateProcess(NULL, /* Executable name */
++ cmd, /* Command to execute */
++ NULL, /* Process security attributes */
++ NULL, /* Thread security attributes */
++
++ // this command can be litigeous, handle inheritence was
++ // deactivated for pending temp file, but, if we deactivate
++ // it, the pipes don't work for some reason.
++ TRUE, /* Inherit handles, first deactivated,
++ * but needed */
++ CREATE_DEFAULT_ERROR_MODE, /* Creation flags */
++ NULL, /* Environment */
++ NULL, /* Current directory */
++ &si, /* Startup information */
++ &pi); /* Process information */
++
++
++ /* Close our unused side of the pipes */
++ CloseHandle(g_hChildStd_IN_Rd);
++ CloseHandle(g_hChildStd_OUT_Wr);
++
++ if (options & SHELL_WRITE)
++ {
++ HANDLE thread =
++ CreateThread(NULL, /* security attributes */
++ 0, /* default stack size */
++ sub_process_writer, /* function to be executed */
++ g_hChildStd_IN_Wr, /* parameter */
++ 0, /* creation flag, start immediately */
++ NULL); /* we don't care about thread id */
++ CloseHandle(thread);
++ g_hChildStd_IN_Wr = NULL;
++ }
++
++ /* Keep updating the window while waiting for the shell to finish. */
++ for (;;)
++ {
++ MSG msg;
++
++ if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
++ {
++ TranslateMessage(&msg);
++ DispatchMessage(&msg);
++ }
++
++ /* write pipe information in the window */
++ if ((options & (SHELL_READ|SHELL_WRITE))
++ # ifdef FEAT_GUI
++ || gui.in_use
++ # endif
++ )
++ {
++ len = 0;
++ if (!(options & SHELL_EXPAND)
++ && ((options &
++ (SHELL_READ|SHELL_WRITE|SHELL_COOKED))
++ != (SHELL_READ|SHELL_WRITE|SHELL_COOKED)
++ # ifdef FEAT_GUI
++ || gui.in_use
++ # endif
++ )
++ && (ta_len > 0 || noread_cnt > 4))
++ {
++ if (ta_len == 0)
++ {
++ /* Get extra characters when we don't have any. Reset the
++ * counter and timer. */
++ noread_cnt = 0;
++ # if defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
++ gettimeofday(&start_tv, NULL);
++ # endif
++ len = ui_inchar(ta_buf, BUFLEN, 10L, 0);
++ }
++ if (ta_len > 0 || len > 0)
++ {
++ /*
++ * For pipes: Check for CTRL-C: send interrupt signal to
++ * child. Check for CTRL-D: EOF, close pipe to child.
++ */
++ if (len == 1 && cmd != NULL)
++ {
++ if (ta_buf[ta_len] == Ctrl_C)
++ {
++ /* Learn what exit code is expected, for
++ * now put 9 as SIGKILL */
++ TerminateProcess(pi.hProcess, 9);
++ }
++ if (ta_buf[ta_len] == Ctrl_D)
++ {
++ CloseHandle(g_hChildStd_IN_Wr);
++ g_hChildStd_IN_Wr = NULL;
++ }
++ }
++
++ /* replace K_BS by <BS> and K_DEL by <DEL> */
++ for (i = ta_len; i < ta_len + len; ++i)
++ {
++ if (ta_buf[i] == CSI && len - i > 2)
++ {
++ c = TERMCAP2KEY(ta_buf[i + 1], ta_buf[i + 2]);
++ if (c == K_DEL || c == K_KDEL || c == K_BS)
++ {
++ mch_memmove(ta_buf + i + 1, ta_buf + i + 3,
++ (size_t)(len - i - 2));
++ if (c == K_DEL || c == K_KDEL)
++ ta_buf[i] = DEL;
++ else
++ ta_buf[i] = Ctrl_H;
++ len -= 2;
++ }
++ }
++ else if (ta_buf[i] == '\r')
++ ta_buf[i] = '\n';
++ # ifdef FEAT_MBYTE
++ if (has_mbyte)
++ i += (*mb_ptr2len_len)(ta_buf + i,
++ ta_len + len - i) - 1;
++ # endif
++ }
++
++ /*
++ * For pipes: echo the typed characters. For a pty this
++ * does not seem to work.
++ */
++ for (i = ta_len; i < ta_len + len; ++i)
++ {
++ if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
++ msg_putchar(ta_buf[i]);
++ # ifdef FEAT_MBYTE
++ else if (has_mbyte)
++ {
++ int l = (*mb_ptr2len)(ta_buf + i);
++
++ msg_outtrans_len(ta_buf + i, l);
++ i += l - 1;
++ }
++ # endif
++ else
++ msg_outtrans_len(ta_buf + i, 1);
++ }
++ windgoto(msg_row, msg_col);
++ out_flush();
++
++ ta_len += len;
++
++ /*
++ * Write the characters to the child, unless EOF has been
++ * typed for pipes. Write one character at a time, to
++ * avoid losing too much typeahead. When writing buffer
++ * lines, drop the typed characters (only check for
++ * CTRL-C).
++ */
++ if (options & SHELL_WRITE)
++ ta_len = 0;
++ else if (g_hChildStd_IN_Wr != NULL)
++ {
++ WriteFile(g_hChildStd_IN_Wr, (char*)ta_buf,
++ 1, &len, NULL);
++ // if we are typing in, we want to keep things reactive
++ delay = 1;
++ if (len > 0)
++ {
++ ta_len -= len;
++ mch_memmove(ta_buf, ta_buf + len, ta_len);
++ }
++ }
++ }
++ }
++ }
++
++ if (ta_len)
++ ui_inchar_undo(ta_buf, ta_len);
++
++ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
++ {
++ dump_pipe(options, g_hChildStd_OUT_Rd,
++ &ga, buffer, &buffer_off);
++ break;
++ }
++
++ ++noread_cnt;
++ dump_pipe(options, g_hChildStd_OUT_Rd,
++ &ga, buffer, &buffer_off);
++
++ /* We start waiting for a very short time and then increase it, so
++ * that we respond quickly when the process is quick, and don't
++ * consume too much overhead when it's slow. */
++ if (delay < 50)
++ delay += 10;
++ }
++
++ /* Close the pipe */
++ CloseHandle(g_hChildStd_OUT_Rd);
++ if (g_hChildStd_IN_Wr != NULL)
++ CloseHandle(g_hChildStd_IN_Wr);
++
++ WaitForSingleObject(pi.hProcess, INFINITE);
++
++ /* Get the command exit code */
++ GetExitCodeProcess(pi.hProcess, &ret);
++
++ if (options & SHELL_READ)
++ {
++ if (ga.ga_len > 0)
++ {
++ append_ga_line(&ga);
++ /* remember that the NL was missing */
++ curbuf->b_no_eol_lnum = curwin->w_cursor.lnum;
++ }
++ else
++ curbuf->b_no_eol_lnum = 0;
++ ga_clear(&ga);
++ }
++
++ /* Close the handles to the subprocess, so that it goes away */
++ CloseHandle(pi.hThread);
++ CloseHandle(pi.hProcess);
++
++ return ret;
++ }
++
++ static int
++ mch_system(char *cmd, int options)
++ {
++ /* if we can pipe and the shelltemp option is off */
++ if (allowPiping && !p_stmp)
++ return mch_system_piped(cmd, options);
++ else
++ return mch_system_classic(cmd, options);
++ }
+ #else
+
+ # define mch_system(c, o) system(c)
+***************
+*** 3388,3394 ****
+ char_u *newcmd;
+ long_u cmdlen = (
+ #ifdef FEAT_GUI_W32
+! STRLEN(vimrun_path) +
+ #endif
+ STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+
+--- 3897,3903 ----
+ char_u *newcmd;
+ long_u cmdlen = (
+ #ifdef FEAT_GUI_W32
+! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+ #endif
+ STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+
+***************
+*** 3497,3503 ****
+ MB_ICONWARNING);
+ need_vimrun_warning = FALSE;
+ }
+! if (!s_dont_use_vimrun)
+ /* Use vimrun to execute the command. It opens a console
+ * window, which can be closed without killing Vim. */
+ vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
+--- 4006,4012 ----
+ MB_ICONWARNING);
+ need_vimrun_warning = FALSE;
+ }
+! if (!s_dont_use_vimrun && (!allowPiping || p_stmp))
+ /* Use vimrun to execute the command. It opens a console
+ * window, which can be closed without killing Vim. */
+ vim_snprintf((char *)newcmd, cmdlen, "%s%s%s %s %s",
+***************
+*** 3521,3527 ****
+ /* Print the return value, unless "vimrun" was used. */
+ if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
+ #if defined(FEAT_GUI_W32)
+! && ((options & SHELL_DOOUT) || s_dont_use_vimrun)
+ #endif
+ )
+ {
+--- 4030,4037 ----
+ /* Print the return value, unless "vimrun" was used. */
+ if (x != 0 && !(options & SHELL_SILENT) && !emsg_silent
+ #if defined(FEAT_GUI_W32)
+! && ((options & SHELL_DOOUT) || s_dont_use_vimrun
+! || (allowPiping && !p_stmp))
+ #endif
+ )
+ {
+*** ../vim-7.3.239/src/proto/misc2.pro 2011-07-07 15:08:53.000000000 +0200
+--- src/proto/misc2.pro 2011-07-07 15:56:16.000000000 +0200
+***************
+*** 58,63 ****
+--- 58,64 ----
+ char_u *ga_concat_strings __ARGS((garray_T *gap));
+ void ga_concat __ARGS((garray_T *gap, char_u *s));
+ void ga_append __ARGS((garray_T *gap, int c));
++ void append_ga_line __ARGS((garray_T *gap));
+ int name_to_mod_mask __ARGS((int c));
+ int simplify_key __ARGS((int key, int *modifiers));
+ int handle_x_keys __ARGS((int key));
+*** ../vim-7.3.239/src/ui.c 2011-06-19 01:14:23.000000000 +0200
+--- src/ui.c 2011-07-07 15:44:56.000000000 +0200
+***************
+*** 58,64 ****
+ #endif
+ }
+
+! #if defined(UNIX) || defined(VMS) || defined(PROTO)
+ /*
+ * When executing an external program, there may be some typed characters that
+ * are not consumed by it. Give them back to ui_inchar() and they are stored
+--- 58,64 ----
+ #endif
+ }
+
+! #if defined(UNIX) || defined(VMS) || defined(PROTO) || defined(WIN3264)
+ /*
+ * When executing an external program, there may be some typed characters that
+ * are not consumed by it. Give them back to ui_inchar() and they are stored
+*** ../vim-7.3.239/src/version.c 2011-07-07 15:08:53.000000000 +0200
+--- src/version.c 2011-07-07 16:14:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 240,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+257. Your "hundred-and-one" lists include well over 101 items, since you
+ automatically interpret all numbers in hexadecimal notation.
+ (hex 101 = decimal 257)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.241 b/source/ap/vim/patches/7.3.241
new file mode 100644
index 000000000..3b73c4de1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.241
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.241
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.241
+Problem: Using CTRL-R CTRL-W on the command line may insert only part of
+ the word.
+Solution: Use the cursor position instead of assuming it is at the end of
+ the command. (Tyru)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.240/src/ex_getln.c 2011-07-07 15:04:38.000000000 +0200
+--- src/ex_getln.c 2011-07-07 16:38:50.000000000 +0200
+***************
+*** 3046,3052 ****
+ int len;
+
+ /* Locate start of last word in the cmd buffer. */
+! for (w = ccline.cmdbuff + ccline.cmdlen; w > ccline.cmdbuff; )
+ {
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+--- 3046,3052 ----
+ int len;
+
+ /* Locate start of last word in the cmd buffer. */
+! for (w = ccline.cmdbuff + ccline.cmdpos; w > ccline.cmdbuff; )
+ {
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+***************
+*** 3064,3070 ****
+ --w;
+ }
+ }
+! len = (int)((ccline.cmdbuff + ccline.cmdlen) - w);
+ if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
+ p += len;
+ }
+--- 3064,3070 ----
+ --w;
+ }
+ }
+! len = (int)((ccline.cmdbuff + ccline.cmdpos) - w);
+ if (p_ic ? STRNICMP(w, arg, len) == 0 : STRNCMP(w, arg, len) == 0)
+ p += len;
+ }
+*** ../vim-7.3.240/src/version.c 2011-07-07 16:20:45.000000000 +0200
+--- src/version.c 2011-07-07 16:41:29.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 241,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+258. When you want to see your girlfriend, you surf to her homepage.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.242 b/source/ap/vim/patches/7.3.242
new file mode 100644
index 000000000..0cf4db920
--- /dev/null
+++ b/source/ap/vim/patches/7.3.242
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.242
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.242
+Problem: Illegal memory access in after_pathsep().
+Solution: Check that the pointer is not at the start of the file name.
+ (Dominique Pelle)
+Files: src/misc2.c
+
+
+*** ../vim-7.3.241/src/misc2.c 2011-07-07 16:20:45.000000000 +0200
+--- src/misc2.c 2011-07-07 17:05:41.000000000 +0200
+***************
+*** 3247,3253 ****
+ #if defined(FEAT_MBYTE) || defined(PROTO)
+ /*
+ * Return TRUE if "p" points to just after a path separator.
+! * Take care of multi-byte characters.
+ * "b" must point to the start of the file name
+ */
+ int
+--- 3247,3253 ----
+ #if defined(FEAT_MBYTE) || defined(PROTO)
+ /*
+ * Return TRUE if "p" points to just after a path separator.
+! * Takes care of multi-byte characters.
+ * "b" must point to the start of the file name
+ */
+ int
+***************
+*** 3255,3261 ****
+ char_u *b;
+ char_u *p;
+ {
+! return vim_ispathsep(p[-1])
+ && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
+ }
+ #endif
+--- 3255,3261 ----
+ char_u *b;
+ char_u *p;
+ {
+! return p > b && vim_ispathsep(p[-1])
+ && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0);
+ }
+ #endif
+*** ../vim-7.3.241/src/version.c 2011-07-07 16:44:33.000000000 +0200
+--- src/version.c 2011-07-07 17:05:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 242,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+260. Co-workers have to E-mail you about the fire alarm to get
+ you out of the building.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.243 b/source/ap/vim/patches/7.3.243
new file mode 100644
index 000000000..f1f913d48
--- /dev/null
+++ b/source/ap/vim/patches/7.3.243
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.243
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.243
+Problem: Illegal memory access in readline().
+Solution: Swap the conditions. (Dominique Pelle)
+Files: src/eval.c
+
+
+*** ../vim-7.3.242/src/eval.c 2011-07-07 16:20:45.000000000 +0200
+--- src/eval.c 2011-07-07 17:32:16.000000000 +0200
+***************
+*** 14318,14324 ****
+ tolist = 0;
+ for ( ; filtd < buflen || readlen <= 0; ++filtd)
+ {
+! if (buf[filtd] == '\n' || readlen <= 0)
+ {
+ /* In binary mode add an empty list item when the last
+ * non-empty line ends in a '\n'. */
+--- 14318,14324 ----
+ tolist = 0;
+ for ( ; filtd < buflen || readlen <= 0; ++filtd)
+ {
+! if (readlen <= 0 || buf[filtd] == '\n')
+ {
+ /* In binary mode add an empty list item when the last
+ * non-empty line ends in a '\n'. */
+*** ../vim-7.3.242/src/version.c 2011-07-07 17:15:29.000000000 +0200
+--- src/version.c 2011-07-07 17:32:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 243,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+261. You find diskettes in your pockets when doing laundry.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.244 b/source/ap/vim/patches/7.3.244
new file mode 100644
index 000000000..4cff94f2f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.244
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.244
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.244
+Problem: MS-Windows: Build problem with old compiler. (John Beckett)
+Solution: Only use HandleToLong() when available. (Mike Williams)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.3.243/src/gui_w32.c 2011-05-25 21:18:02.000000000 +0200
+--- src/gui_w32.c 2011-07-07 17:42:36.000000000 +0200
+***************
+*** 1574,1579 ****
+--- 1574,1583 ----
+ #endif
+
+ #ifdef FEAT_EVAL
++ # if _MSC_VER < 1400
++ /* HandleToLong() only exists in compilers that can do 64 bit builds */
++ # define HandleToLong(h) ((long)(h))
++ # endif
+ /* set the v:windowid variable */
+ set_vim_var_nr(VV_WINDOWID, HandleToLong(s_hwnd));
+ #endif
+*** ../vim-7.3.243/src/version.c 2011-07-07 17:36:52.000000000 +0200
+--- src/version.c 2011-07-07 17:43:21.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 244,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+262. Your computer has it's own phone line - but your daughter doesn't.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.245 b/source/ap/vim/patches/7.3.245
new file mode 100644
index 000000000..b05fe433a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.245
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.245
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.245
+Problem: Python 3.2 libraries not correctly detected.
+Solution: Add the suffix to the library name. (Niclas Zeising)
+Files: src/auto/configure, src/configure.in
+
+
+*** ../vim-7.3.244/src/auto/configure 2011-06-13 01:32:42.000000000 +0200
+--- src/auto/configure 2011-07-13 17:57:05.000000000 +0200
+***************
+*** 5611,5617 ****
+ eof
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+ vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+--- 5611,5617 ----
+ eof
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
+ vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-lffi//`
+*** ../vim-7.3.244/src/configure.in 2011-06-13 01:32:42.000000000 +0200
+--- src/configure.in 2011-07-13 17:57:01.000000000 +0200
+***************
+*** 1068,1074 ****
+ dnl -- delete the lines from make about Entering/Leaving directory
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}"
+ vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ dnl remove -ltermcap, it can conflict with an earlier -lncurses
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+--- 1068,1074 ----
+ dnl -- delete the lines from make about Entering/Leaving directory
+ eval "`cd ${PYTHON3_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
+ rm -f -- "${tmp_mkf}"
+! vi_cv_path_python3_plibs="-L${PYTHON3_CONFDIR} -lpython${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags}"
+ vi_cv_path_python3_plibs="${vi_cv_path_python3_plibs} ${python3_BASEMODLIBS} ${python3_LIBS} ${python3_SYSLIBS}"
+ dnl remove -ltermcap, it can conflict with an earlier -lncurses
+ vi_cv_path_python3_plibs=`echo $vi_cv_path_python3_plibs | sed s/-ltermcap//`
+*** ../vim-7.3.244/src/version.c 2011-07-07 17:43:37.000000000 +0200
+--- src/version.c 2011-07-15 13:09:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 245,
+ /**/
+
+
+--
+ When danger reared its ugly head,
+ He bravely turned his tail and fled
+ Yes, Brave Sir Robin turned about
+ And gallantly he chickened out
+ Bravely taking to his feet
+ He beat a very brave retreat
+ Bravest of the brave Sir Robin
+ Petrified of being dead
+ Soiled his pants then brave Sir Robin
+ Turned away and fled.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.246 b/source/ap/vim/patches/7.3.246
new file mode 100644
index 000000000..d9982ea04
--- /dev/null
+++ b/source/ap/vim/patches/7.3.246
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.246
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.246 (after 7.3.235)
+Problem: Repeating "f4" in "4444" skips one 4.
+Solution: Check the t_cmd flag. (Christian Brabandt)
+Files: src/search.c
+
+
+*** ../vim-7.3.245/src/search.c 2011-06-26 05:36:07.000000000 +0200
+--- src/search.c 2011-07-15 13:16:49.000000000 +0200
+***************
+*** 1585,1591 ****
+ /* Force a move of at least one char, so ";" and "," will move the
+ * cursor, even if the cursor is right in front of char we are looking
+ * at. */
+! if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
+ stop = FALSE;
+ }
+
+--- 1585,1591 ----
+ /* Force a move of at least one char, so ";" and "," will move the
+ * cursor, even if the cursor is right in front of char we are looking
+ * at. */
+! if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1 && t_cmd)
+ stop = FALSE;
+ }
+
+*** ../vim-7.3.245/src/version.c 2011-07-15 13:09:46.000000000 +0200
+--- src/version.c 2011-07-15 13:20:40.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 246,
+ /**/
+
+--
+ GALAHAD turns back. We see from his POV the lovely ZOOT standing by him
+ smiling enchantingly and a number of equally delectable GIRLIES draped
+ around in the seductively poulticed room. They look at him smilingly and
+ wave.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.247 b/source/ap/vim/patches/7.3.247
new file mode 100644
index 000000000..a0cb566c7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.247
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.247
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.247
+Problem: Running tests changes the users viminfo file. Test for patch
+ 7.3.246 missing.
+Solution: Add "nviminfo" to the 'viminfo' option. Include the test.
+Files: src/testdir/test78.in, src/testdir/test81.in
+
+
+*** ../vim-7.3.246/src/testdir/test78.in 2011-06-13 01:07:22.000000000 +0200
+--- src/testdir/test78.in 2011-07-15 13:26:22.000000000 +0200
+***************
+*** 6,12 ****
+
+ STARTTEST
+ :so small.vim
+! :set nocp fileformat=unix undolevels=-1
+ :e! Xtest
+ ggdG
+ :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
+--- 6,12 ----
+
+ STARTTEST
+ :so small.vim
+! :set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
+ :e! Xtest
+ ggdG
+ :let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
+*** ../vim-7.3.246/src/testdir/test81.in 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/test81.in 2011-07-15 13:25:00.000000000 +0200
+***************
+*** 1,10 ****
+ Test for t movement command and 'cpo-;' setting
+
+ STARTTEST
+! :set nocompatible
+ :set cpo-=;
+ /firstline/
+ j0tt;D
+ $Ty;D:set cpo+=;
+ j0tt;;D
+ $Ty;;D:?firstline?+1,$w! test.out
+--- 1,12 ----
+ Test for t movement command and 'cpo-;' setting
+
+ STARTTEST
+! :set nocompatible viminfo+=nviminfo
+ :set cpo-=;
+ /firstline/
+ j0tt;D
++ 0fz;D
++ $Fy;D
+ $Ty;D:set cpo+=;
+ j0tt;;D
+ $Ty;;D:?firstline?+1,$w! test.out
+***************
+*** 13,18 ****
+--- 15,22 ----
+
+ firstline
+ aaa two three four
++ zzz
++ yyy
+ bbb yee yoo four
+ ccc two three four
+ ddd yee yoo four
+*** ../vim-7.3.246/src/version.c 2011-07-15 13:21:24.000000000 +0200
+--- src/version.c 2011-07-15 13:31:14.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 247,
+ /**/
+
+--
+ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
+ We are but eightscore young blondes, all between sixteen and
+ nineteen-and-a-half, cut off in this castle, with no one to protect us.
+ Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
+ making exciting underwear....
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.248 b/source/ap/vim/patches/7.3.248
new file mode 100644
index 000000000..6fbf3f6cd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.248
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.248
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.248
+Problem: PC Install instructions missing install instructions.
+Solution: Step-by-step explanation. (Michael Soyka)
+Files: src/INSTALLpc.txt
+
+
+*** ../vim-7.3.247/src/INSTALLpc.txt 2011-06-12 20:36:00.000000000 +0200
+--- src/INSTALLpc.txt 2011-07-15 13:49:46.000000000 +0200
+***************
+*** 11,19 ****
+ this, then you will get the default behavior as is documented, which should
+ be fine for most people.
+
+! With the exception of the last two sections (Windows 3.1 and MS-DOS),
+! this document assumes that you are building Vim for Win32
+! (Windows NT/2000/XP/2003/Vista and Windows 95/98/Me)
+
+
+ Contents:
+--- 11,19 ----
+ this, then you will get the default behavior as is documented, which should
+ be fine for most people.
+
+! With the exception of two sections (Windows 3.1 and MS-DOS), this document
+! assumes that you are building Vim for Win32 or later.
+! (Windows 95/98/Me/NT/2000/XP/2003/Vista/7)
+
+
+ Contents:
+***************
+*** 27,32 ****
+--- 27,35 ----
+ 8. Windows 3.1
+ 9. MS-DOS
+
++ 10. Installing after building from sources
++
++
+ The currently preferred method is using the free Visual C++ Toolkit 2008
+ |msvc-2008-express|, the produced binary runs on most MS-Windows systems. If
+ you need the executable to run on Windows 98 or ME, use the 2003 one
+***************
+*** 409,411 ****
+--- 412,470 ----
+
+ If you get all kinds of strange error messages when compiling, try adding
+ changing the file format from "unix" to "dos".
++
++
++ 10. Installing after building from sources
++ ==========================================
++
++ [provided by Michael Soyka]
++
++ After you've built the Vim binaries as described above, you're ready to
++ install Vim on your system. However, if you've obtained the Vim sources
++ using Mercurial or by downloading them as a unix tar file, you must first
++ create a "vim73" directory. If you instead downloaded the sources as
++ zip files, you can skip this setup as the zip archives already have the
++ correct directory structure.
++
++ A. Create a Vim "runtime" subdirectory named "vim73"
++ -----------------------------------------------------
++ If you obtained your Vim sources as zip files, you can skip this step.
++ Otherwise, continue reading.
++
++ Go to the directory that contains the Vim "src" and "runtime"
++ directories and create a new subdirectory named "vim73".
++
++ Copy the "runtime" files into "vim73":
++ copy runtime\* vim73
++
++ B. Copy the new binaries into the "vim73" directory
++ ----------------------------------------------------
++ Regardless of how you installed the Vim sources, you need to copy the
++ new binaries you created above into "vim73":
++
++ copy src\*.exe vim73
++ copy src\GvimExt\gvimext.dll vim73
++ copy src\xxd\xxd.exe vim73
++
++ C. Move the "vim73" directory into the Vim installation subdirectory
++ ---------------------------------------------------------------------
++ Move the "vim73" subdirectory into the subdirectory where you want Vim
++ to be installed. Typically, this subdirectory will be named "vim".
++ If you already have a "vim73" subdirectory in "vim", delete it first
++ by running its unstal.exe program.
++
++ D. Install Vim
++ ---------------
++ "cd" to your Vim installation subdirectory "vim\vim73" and run the
++ "install.exe" program. It will ask you a number of questions about
++ how you would like to have your Vim setup. Among these are:
++ - You can tell it to write a "_vimrc" file with your preferences in the
++ parent directory.
++ - It can also install an "Edit with Vim" entry in the Windows Explorer
++ popup menu.
++ - You can have it create batch files, so that you can run Vim from the
++ console or in a shell. You can select one of the directories in your
++ PATH or add the directory to PATH using the Windows Control Panel.
++ - Create entries for Vim on the desktop and in the Start menu.
++
++ Happy Vimming!
+*** ../vim-7.3.247/src/version.c 2011-07-15 13:33:17.000000000 +0200
+--- src/version.c 2011-07-15 13:51:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 248,
+ /**/
+
+--
+Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.249 b/source/ap/vim/patches/7.3.249
new file mode 100644
index 000000000..661f97977
--- /dev/null
+++ b/source/ap/vim/patches/7.3.249
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.249
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.249
+Problem: Wrong indenting for array initializer.
+Solution: Detect '}' in a better way. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.248/src/misc1.c 2011-06-12 21:51:01.000000000 +0200
+--- src/misc1.c 2011-07-15 14:06:44.000000000 +0200
+***************
+*** 7945,7952 ****
+ * If we're at the end of a block, skip to the start of
+ * that block.
+ */
+! curwin->w_cursor.col = 0;
+! if (*cin_skipcomment(l) == '}'
+ && (trypos = find_start_brace(ind_maxcomment))
+ != NULL) /* XXX */
+ {
+--- 7945,7951 ----
+ * If we're at the end of a block, skip to the start of
+ * that block.
+ */
+! if (find_last_paren(l, '{', '}')
+ && (trypos = find_start_brace(ind_maxcomment))
+ != NULL) /* XXX */
+ {
+*** ../vim-7.3.248/src/testdir/test3.in 2011-06-12 21:51:01.000000000 +0200
+--- src/testdir/test3.in 2011-07-15 14:03:41.000000000 +0200
+***************
+*** 1452,1457 ****
+--- 1452,1487 ----
+
+ STARTTEST
+ :set cino&
++ :set cino+=l1
++ 2kdd=][
++ ENDTEST
++
++ void func(void)
++ {
++ int tab[] =
++ {
++ 1, 2, 3,
++ 4, 5, 6};
++
++ printf("Indent this line correctly!\n");
++
++ switch (foo)
++ {
++ case bar:
++ printf("bar");
++ break;
++ case baz: {
++ printf("baz");
++ break;
++ }
++ case quux:
++ printf("But don't break the indentation of this instruction\n");
++ break;
++ }
++ }
++
++ STARTTEST
++ :set cino&
+ 2kdd=][
+ ENDTEST
+
+*** ../vim-7.3.248/src/testdir/test3.ok 2011-06-12 21:51:01.000000000 +0200
+--- src/testdir/test3.ok 2011-07-15 14:03:41.000000000 +0200
+***************
+*** 1310,1315 ****
+--- 1310,1340 ----
+
+ void func(void)
+ {
++ int tab[] =
++ {
++ 1, 2, 3,
++ 4, 5, 6};
++
++ printf("Indent this line correctly!\n");
++
++ switch (foo)
++ {
++ case bar:
++ printf("bar");
++ break;
++ case baz: {
++ printf("baz");
++ break;
++ }
++ case quux:
++ printf("But don't break the indentation of this instruction\n");
++ break;
++ }
++ }
++
++
++ void func(void)
++ {
+ cout << "a"
+ << "b"
+ << ") :"
+*** ../vim-7.3.248/src/version.c 2011-07-15 13:51:57.000000000 +0200
+--- src/version.c 2011-07-15 14:12:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 249,
+ /**/
+
+--
+ GALAHAD hurries to the door and pushes through it. As he leaves the room
+ we CUT TO the reverse to show that he is now in a room full of bathing
+ and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile
+ enchantingly at him as he tries to keep walking without being diverted by
+ the lovely sights assaulting his eyeballs.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.250 b/source/ap/vim/patches/7.3.250
new file mode 100644
index 000000000..fc33328bd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.250
@@ -0,0 +1,104 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.250
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.250
+Problem: Python: Errors in Unicode characters not handled nicely.
+Solution: Add the surrogateescape error handler. (lilydjwg)
+Files: src/if_python3.c
+
+
+*** ../vim-7.3.249/src/if_python3.c 2011-06-26 19:13:33.000000000 +0200
+--- src/if_python3.c 2011-07-15 15:50:01.000000000 +0200
+***************
+*** 68,76 ****
+
+ static void init_structs(void);
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+--- 68,83 ----
+
+ static void init_structs(void);
+
++ /* The "surrogateescape" error handler is new in Python 3.1 */
++ #if PY_VERSION_HEX >= 0x030100f0
++ # define CODEC_ERROR_HANDLER "surrogateescape"
++ #else
++ # define CODEC_ERROR_HANDLER NULL
++ #endif
++
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+***************
+*** 661,668 ****
+
+ /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+ * SyntaxError (unicode error). */
+! cmdstr = PyUnicode_Decode(cmd, strlen(cmd), (char *)ENC_OPT, NULL);
+! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", NULL);
+ Py_XDECREF(cmdstr);
+ PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+ Py_XDECREF(cmdbytes);
+--- 668,676 ----
+
+ /* PyRun_SimpleString expects a UTF-8 string. Wrong encoding may cause
+ * SyntaxError (unicode error). */
+! cmdstr = PyUnicode_Decode(cmd, strlen(cmd),
+! (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+! cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
+ Py_XDECREF(cmdstr);
+ PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+ Py_XDECREF(cmdbytes);
+***************
+*** 1463,1469 ****
+ }
+ *p = '\0';
+
+! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, NULL);
+
+ vim_free(tmp);
+ return result;
+--- 1471,1477 ----
+ }
+ *p = '\0';
+
+! result = PyUnicode_Decode(tmp, len, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+
+ vim_free(tmp);
+ return result;
+*** ../vim-7.3.249/src/version.c 2011-07-15 14:12:25.000000000 +0200
+--- src/version.c 2011-07-15 15:46:19.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 250,
+ /**/
+
+--
+DINGO: You must spank her well and after you have spanked her you
+ may deal with her as you like and then ... spank me.
+AMAZING: And spank me!
+STUNNER: And me.
+LOVELY: And me.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.251 b/source/ap/vim/patches/7.3.251
new file mode 100644
index 000000000..43aa41487
--- /dev/null
+++ b/source/ap/vim/patches/7.3.251
@@ -0,0 +1,184 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.251
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.251
+Problem: "gH<Del>" deletes the current line, except when it's the last
+ line.
+Solution: Set the "include" flag to indicate the last line is to be deleted.
+Files: src/normal.c, src/ops.c
+
+
+*** ../vim-7.3.250/src/normal.c 2011-07-07 15:08:53.000000000 +0200
+--- src/normal.c 2011-07-15 16:53:12.000000000 +0200
+***************
+*** 1795,1811 ****
+ {
+ oap->inclusive = FALSE;
+ /* Try to include the newline, unless it's an operator
+! * that works on lines only */
+! if (*p_sel != 'o'
+! && !op_on_lines(oap->op_type)
+! && oap->end.lnum < curbuf->b_ml.ml_line_count)
+ {
+! ++oap->end.lnum;
+! oap->end.col = 0;
+ # ifdef FEAT_VIRTUALEDIT
+! oap->end.coladd = 0;
+ # endif
+! ++oap->line_count;
+ }
+ }
+ }
+--- 1795,1819 ----
+ {
+ oap->inclusive = FALSE;
+ /* Try to include the newline, unless it's an operator
+! * that works on lines only. */
+! if (*p_sel != 'o' && !op_on_lines(oap->op_type))
+ {
+! if (oap->end.lnum < curbuf->b_ml.ml_line_count)
+! {
+! ++oap->end.lnum;
+! oap->end.col = 0;
+ # ifdef FEAT_VIRTUALEDIT
+! oap->end.coladd = 0;
+ # endif
+! ++oap->line_count;
+! }
+! else
+! {
+! /* Cannot move below the last line, make the op
+! * inclusive to tell the operation to include the
+! * line break. */
+! oap->inclusive = TRUE;
+! }
+ }
+ }
+ }
+*** ../vim-7.3.250/src/ops.c 2011-06-19 01:14:22.000000000 +0200
+--- src/ops.c 2011-07-15 17:28:28.000000000 +0200
+***************
+*** 1650,1656 ****
+ && oap->line_count > 1
+ && oap->op_type == OP_DELETE)
+ {
+! ptr = ml_get(oap->end.lnum) + oap->end.col + oap->inclusive;
+ ptr = skipwhite(ptr);
+ if (*ptr == NUL && inindent(0))
+ oap->motion_type = MLINE;
+--- 1650,1658 ----
+ && oap->line_count > 1
+ && oap->op_type == OP_DELETE)
+ {
+! ptr = ml_get(oap->end.lnum) + oap->end.col;
+! if (*ptr != NUL)
+! ptr += oap->inclusive;
+ ptr = skipwhite(ptr);
+ if (*ptr == NUL && inindent(0))
+ oap->motion_type = MLINE;
+***************
+*** 1920,1930 ****
+ curwin->w_cursor.coladd = 0;
+ }
+ #endif
+! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+ #ifdef FEAT_VISUAL
+ && !oap->is_VIsual
+ #endif
+ );
+ }
+ else /* delete characters between lines */
+ {
+--- 1922,1941 ----
+ curwin->w_cursor.coladd = 0;
+ }
+ #endif
+! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+! && n > (int)STRLEN(ml_get(oap->end.lnum)))
+! {
+! /* Special case: gH<Del> deletes the last line. */
+! del_lines(1L, FALSE);
+! }
+! else
+! {
+! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+ #ifdef FEAT_VISUAL
+ && !oap->is_VIsual
+ #endif
+ );
++ }
+ }
+ else /* delete characters between lines */
+ {
+***************
+*** 1941,1957 ****
+ ++curwin->w_cursor.lnum;
+ del_lines((long)(oap->line_count - 2), FALSE);
+
+! /* delete from start of line until op_end */
+! curwin->w_cursor.col = 0;
+! (void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
+! !virtual_op, oap->op_type == OP_DELETE
+ #ifdef FEAT_VISUAL
+ && !oap->is_VIsual
+ #endif
+ );
+! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+!
+! (void)do_join(2, FALSE, FALSE);
+ }
+ }
+
+--- 1952,1980 ----
+ ++curwin->w_cursor.lnum;
+ del_lines((long)(oap->line_count - 2), FALSE);
+
+! n = (oap->end.col + 1 - !oap->inclusive);
+! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+! && n > (int)STRLEN(ml_get(oap->end.lnum)))
+! {
+! /* Special case: gH<Del> deletes the last line. */
+! del_lines(1L, FALSE);
+! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+! if (curwin->w_cursor.lnum > 1)
+! --curwin->w_cursor.lnum;
+! }
+! else
+! {
+! /* delete from start of line until op_end */
+! curwin->w_cursor.col = 0;
+! (void)del_bytes((long)n, !virtual_op, oap->op_type == OP_DELETE
+ #ifdef FEAT_VISUAL
+ && !oap->is_VIsual
+ #endif
+ );
+! curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+! }
+! if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+! (void)do_join(2, FALSE, FALSE);
+ }
+ }
+
+*** ../vim-7.3.250/src/version.c 2011-07-15 15:54:39.000000000 +0200
+--- src/version.c 2011-07-15 17:35:18.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 251,
+ /**/
+
+--
+ ### Hiroshima 45, Chernobyl 86, Windows 95 ###
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.252 b/source/ap/vim/patches/7.3.252
new file mode 100644
index 000000000..e24b73be7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.252
@@ -0,0 +1,43 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.252
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.252 (after 7.3.247)
+Problem: Tests fail. (David Northfield)
+Solution: Add missing update for .ok file.
+Files: src/testdir/test81.ok
+
+
+*** ../vim-7.3.251/src/testdir/test81.ok 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/test81.ok 2011-07-15 13:14:27.000000000 +0200
+***************
+*** 1,4 ****
+--- 1,6 ----
+ aaa two
++ z
++ y
+ bbb y
+ ccc
+ ddd yee y
+*** ../vim-7.3.251/src/version.c 2011-07-15 17:51:30.000000000 +0200
+--- src/version.c 2011-07-15 17:55:25.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 252,
+ /**/
+
+--
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.253 b/source/ap/vim/patches/7.3.253
new file mode 100644
index 000000000..70e415b5d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.253
@@ -0,0 +1,539 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.253
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.253
+Problem: "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase'.
+ Checks in mb_strnicmp() for illegal and truncated bytes are
+ wrong. Should not assume that byte length is equal before case
+ folding.
+Solution: Add utf_safe_read_char_adv() and utf_strnicmp(). Add a test for
+ this. (Ivan Krasilnikov)
+Files: src/mbyte.c src/testdir/test82.in, src/testdir/test82.ok,
+ src/testdir/Makefile, src/testdir/Make_amiga.mak,
+ src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+ src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
+
+
+*** ../vim-7.3.252/src/mbyte.c 2011-07-07 15:08:53.000000000 +0200
+--- src/mbyte.c 2011-07-15 20:13:52.000000000 +0200
+***************
+*** 132,137 ****
+--- 132,138 ----
+ static int dbcs_char2cells __ARGS((int c));
+ static int dbcs_ptr2cells_len __ARGS((char_u *p, int size));
+ static int dbcs_ptr2char __ARGS((char_u *p));
++ static int utf_safe_read_char_adv __ARGS((char_u **s, size_t *n));
+
+ /*
+ * Lookup table to quickly get the length in bytes of a UTF-8 character from
+***************
+*** 1701,1706 ****
+--- 1702,1767 ----
+ }
+
+ /*
++ * Convert a UTF-8 byte sequence to a wide character.
++ * String is assumed to be terminated by NUL or after "n" bytes, whichever
++ * comes first.
++ * The function is safe in the sense that it never accesses memory beyond the
++ * first "n" bytes of "s".
++ *
++ * On success, returns decoded codepoint, advances "s" to the beginning of
++ * next character and decreases "n" accordingly.
++ *
++ * If end of string was reached, returns 0 and, if "n" > 0, advances "s" past
++ * NUL byte.
++ *
++ * If byte sequence is illegal or incomplete, returns -1 and does not advance
++ * "s".
++ */
++ static int
++ utf_safe_read_char_adv(s, n)
++ char_u **s;
++ size_t *n;
++ {
++ int c, k;
++
++ if (*n == 0) /* end of buffer */
++ return 0;
++
++ k = utf8len_tab_zero[**s];
++
++ if (k == 1)
++ {
++ /* ASCII character or NUL */
++ (*n)--;
++ return *(*s)++;
++ }
++
++ if ((size_t)k <= *n)
++ {
++ /* We have a multibyte sequence and it isn't truncated by buffer
++ * limits so utf_ptr2char() is safe to use. Or the first byte is
++ * illegal (k=0), and it's also safe to use utf_ptr2char(). */
++ c = utf_ptr2char(*s);
++
++ /* On failure, utf_ptr2char() returns the first byte, so here we
++ * check equality with the first byte. The only non-ASCII character
++ * which equals the first byte of its own UTF-8 representation is
++ * U+00C3 (UTF-8: 0xC3 0x83), so need to check that special case too.
++ * It's safe even if n=1, else we would have k=2 > n. */
++ if (c != (int)(**s) || (c == 0xC3 && (*s)[1] == 0x83))
++ {
++ /* byte sequence was successfully decoded */
++ *s += k;
++ *n -= k;
++ return c;
++ }
++ }
++
++ /* byte sequence is incomplete or illegal */
++ return -1;
++ }
++
++ /*
+ * Get character at **pp and advance *pp to the next character.
+ * Note: composing characters are skipped!
+ */
+***************
+*** 2667,2673 ****
+ {0x10400,0x10427,1,40}
+ };
+
+! static int utf_convert(int a, convertStruct table[], int tableSize);
+
+ /*
+ * Generic conversion function for case operations.
+--- 2728,2735 ----
+ {0x10400,0x10427,1,40}
+ };
+
+! static int utf_convert __ARGS((int a, convertStruct table[], int tableSize));
+! static int utf_strnicmp __ARGS((char_u *s1, char_u *s2, size_t n1, size_t n2));
+
+ /*
+ * Generic conversion function for case operations.
+***************
+*** 3079,3084 ****
+--- 3141,3220 ----
+ return (utf_tolower(a) != a);
+ }
+
++ static int
++ utf_strnicmp(s1, s2, n1, n2)
++ char_u *s1, *s2;
++ size_t n1, n2;
++ {
++ int c1, c2, cdiff;
++ char_u buffer[6];
++
++ for (;;)
++ {
++ c1 = utf_safe_read_char_adv(&s1, &n1);
++ c2 = utf_safe_read_char_adv(&s2, &n2);
++
++ if (c1 <= 0 || c2 <= 0)
++ break;
++
++ if (c1 == c2)
++ continue;
++
++ cdiff = utf_fold(c1) - utf_fold(c2);
++ if (cdiff != 0)
++ return cdiff;
++ }
++
++ /* some string ended or has an incomplete/illegal character sequence */
++
++ if (c1 == 0 || c2 == 0)
++ {
++ /* some string ended. shorter string is smaller */
++ if (c1 == 0 && c2 == 0)
++ return 0;
++ return c1 == 0 ? -1 : 1;
++ }
++
++ /* Continue with bytewise comparison to produce some result that
++ * would make comparison operations involving this function transitive.
++ *
++ * If only one string had an error, comparison should be made with
++ * folded version of the other string. In this case it is enough
++ * to fold just one character to determine the result of comparison. */
++
++ if (c1 != -1 && c2 == -1)
++ {
++ n1 = utf_char2bytes(utf_fold(c1), buffer);
++ s1 = buffer;
++ }
++ else if (c2 != -1 && c1 == -1)
++ {
++ n2 = utf_char2bytes(utf_fold(c2), buffer);
++ s2 = buffer;
++ }
++
++ while (n1 > 0 && n2 > 0 && *s1 != NUL && *s2 != NUL)
++ {
++ cdiff = (int)(*s1) - (int)(*s2);
++ if (cdiff != 0)
++ return cdiff;
++
++ s1++;
++ s2++;
++ n1--;
++ n2--;
++ }
++
++ if (n1 > 0 && *s1 == NUL)
++ n1 = 0;
++ if (n2 > 0 && *s2 == NUL)
++ n2 = 0;
++
++ if (n1 == 0 && n2 == 0)
++ return 0;
++ return n1 == 0 ? -1 : 1;
++ }
++
+ /*
+ * Version of strnicmp() that handles multi-byte characters.
+ * Needed for Big5, Sjift-JIS and UTF-8 encoding. Other DBCS encodings can
+***************
+*** 3092,3140 ****
+ char_u *s1, *s2;
+ size_t nn;
+ {
+! int i, j, l;
+ int cdiff;
+- int incomplete = FALSE;
+ int n = (int)nn;
+
+! for (i = 0; i < n; i += l)
+ {
+! if (s1[i] == NUL && s2[i] == NUL) /* both strings end */
+! return 0;
+! if (enc_utf8)
+! {
+! l = utf_byte2len(s1[i]);
+! if (l > n - i)
+! {
+! l = n - i; /* incomplete character */
+! incomplete = TRUE;
+! }
+! /* Check directly first, it's faster. */
+! for (j = 0; j < l; ++j)
+! {
+! if (s1[i + j] != s2[i + j])
+! break;
+! if (s1[i + j] == 0)
+! /* Both stings have the same bytes but are incomplete or
+! * have illegal bytes, accept them as equal. */
+! l = j;
+! }
+! if (j < l)
+! {
+! /* If one of the two characters is incomplete return -1. */
+! if (incomplete || i + utf_byte2len(s2[i]) > n)
+! return -1;
+! /* Don't case-fold illegal bytes or truncated characters. */
+! if (utf_ptr2len(s1 + i) < l || utf_ptr2len(s2 + i) < l)
+! return -1;
+! cdiff = utf_fold(utf_ptr2char(s1 + i))
+! - utf_fold(utf_ptr2char(s2 + i));
+! if (cdiff != 0)
+! return cdiff;
+! }
+! }
+! else
+ {
+ l = (*mb_ptr2len)(s1 + i);
+ if (l <= 1)
+ {
+--- 3228,3248 ----
+ char_u *s1, *s2;
+ size_t nn;
+ {
+! int i, l;
+ int cdiff;
+ int n = (int)nn;
+
+! if (enc_utf8)
+ {
+! return utf_strnicmp(s1, s2, nn, nn);
+! }
+! else
+! {
+! for (i = 0; i < n; i += l)
+ {
++ if (s1[i] == NUL && s2[i] == NUL) /* both strings end */
++ return 0;
++
+ l = (*mb_ptr2len)(s1 + i);
+ if (l <= 1)
+ {
+*** ../vim-7.3.252/src/testdir/test82.in 2011-07-15 21:16:03.000000000 +0200
+--- src/testdir/test82.in 2011-07-15 18:22:46.000000000 +0200
+***************
+*** 0 ****
+--- 1,93 ----
++ Tests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
++
++ STARTTEST
++ :so small.vim
++ :if !has("multi_byte")
++ : e! test.ok
++ : w! test.out
++ : qa!
++ :endif
++ :set enc=utf8
++ ggdG
++ :
++ :function! Ch(a, op, b, expected)
++ : if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
++ : call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
++ : else
++ : let b:passed += 1
++ : endif
++ :endfunction
++ :
++ :function! Chk(a, b, result)
++ : if a:result == 0
++ : call Ch(a:a, '==?', a:b, 1)
++ : call Ch(a:a, '!=?', a:b, 0)
++ : call Ch(a:a, '<=?', a:b, 1)
++ : call Ch(a:a, '>=?', a:b, 1)
++ : call Ch(a:a, '<?', a:b, 0)
++ : call Ch(a:a, '>?', a:b, 0)
++ : elseif a:result > 0
++ : call Ch(a:a, '==?', a:b, 0)
++ : call Ch(a:a, '!=?', a:b, 1)
++ : call Ch(a:a, '<=?', a:b, 0)
++ : call Ch(a:a, '>=?', a:b, 1)
++ : call Ch(a:a, '<?', a:b, 0)
++ : call Ch(a:a, '>?', a:b, 1)
++ : else
++ : call Ch(a:a, '==?', a:b, 0)
++ : call Ch(a:a, '!=?', a:b, 1)
++ : call Ch(a:a, '<=?', a:b, 1)
++ : call Ch(a:a, '>=?', a:b, 0)
++ : call Ch(a:a, '<?', a:b, 1)
++ : call Ch(a:a, '>?', a:b, 0)
++ : endif
++ :endfunction
++ :
++ :function! Check(a, b, result)
++ : call Chk(a:a, a:b, a:result)
++ : call Chk(a:b, a:a, -a:result)
++ :endfunction
++ :
++ :function! LT(a, b)
++ : call Check(a:a, a:b, -1)
++ :endfunction
++ :
++ :function! GT(a, b)
++ : call Check(a:a, a:b, 1)
++ :endfunction
++ :
++ :function! EQ(a, b)
++ : call Check(a:a, a:b, 0)
++ :endfunction
++ :
++ :let b:passed=0
++ :call EQ('', '')
++ :call LT('', 'a')
++ :call EQ('abc', 'abc')
++ :call EQ('Abc', 'abC')
++ :call LT('ab', 'abc')
++ :call LT('AB', 'abc')
++ :call LT('ab', 'aBc')
++ :call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
++ :call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
++ :call EQ('\xe2\x84\xaa', 'k')
++ :call LT('\xe2\x84\xaa', 'kkkkkk')
++ :call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
++ :call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
++ :call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
++ :call EQ('Abc\x80', 'AbC\x80')
++ :call LT('Abc\x80', 'AbC\x81')
++ :call LT('Abc', 'AbC\x80')
++ :call LT('abc\x80DEF', 'abc\x80def') " case folding stops at the first bad character
++ :call LT('\xc3XYZ', '\xc3xyz')
++ :call EQ('\xef\xbc\xba', '\xef\xbd\x9a') " FF3A (upper), FF5A (lower)
++ :call GT('\xef\xbc\xba', '\xef\xbc\xff') " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings were bytewise compared
++ :call LT('\xc3', '\xc3\x83')
++ :call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
++ :for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
++ :for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
++ :for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
++ :call append(0, printf('%d checks passed', b:passed))
++ :wq! test.out
++ ENDTEST
++
+*** ../vim-7.3.252/src/testdir/test82.ok 2011-07-15 21:16:03.000000000 +0200
+--- src/testdir/test82.ok 2011-07-15 18:37:33.000000000 +0200
+***************
+*** 0 ****
+--- 1,2 ----
++ 3732 checks passed
++
+*** ../vim-7.3.252/src/testdir/Makefile 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Makefile 2011-07-15 18:30:08.000000000 +0200
+***************
+*** 26,32 ****
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 26,32 ----
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.3.252/src/testdir/Make_amiga.mak 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-07-15 18:29:50.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 130,132 ****
+--- 130,133 ----
+ test79.out: test79.in
+ test80.out: test80.in
+ test81.out: test81.in
++ test82.out: test82.in
+*** ../vim-7.3.252/src/testdir/Make_dos.mak 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_dos.mak 2011-07-15 18:30:02.000000000 +0200
+***************
+*** 29,35 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 29,35 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.252/src/testdir/Make_ming.mak 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_ming.mak 2011-07-15 18:30:15.000000000 +0200
+***************
+*** 49,55 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 49,55 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.252/src/testdir/Make_os2.mak 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_os2.mak 2011-07-15 18:30:25.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.3.252/src/testdir/Make_vms.mms 2011-06-26 05:36:07.000000000 +0200
+--- src/testdir/Make_vms.mms 2011-07-15 18:30:33.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jun 26
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jul 15
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 75,81 ****
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out test78.out test79.out test80.out test81.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 75,82 ----
+ test61.out test62.out test63.out test64.out test65.out \
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+! test77.out test78.out test79.out test80.out test81.out \
+! test82.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.252/src/version.c 2011-07-15 17:56:11.000000000 +0200
+--- src/version.c 2011-07-15 21:12:26.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 253,
+ /**/
+
+--
+"Intelligence has much less practical application than you'd think."
+ -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.254 b/source/ap/vim/patches/7.3.254
new file mode 100644
index 000000000..85176a7a6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.254
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.254
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.254
+Problem: The coladd field is not reset when setting the line number for a
+ ":call" command.
+Solution: Reset it.
+Files: src/eval.c
+
+
+*** ../vim-7.3.253/src/eval.c 2011-07-07 17:36:52.000000000 +0200
+--- src/eval.c 2011-07-07 17:51:42.000000000 +0200
+***************
+*** 3430,3435 ****
+--- 3430,3438 ----
+ {
+ curwin->w_cursor.lnum = lnum;
+ curwin->w_cursor.col = 0;
++ #ifdef FEAT_VIRTUALEDIT
++ curwin->w_cursor.coladd = 0;
++ #endif
+ }
+ arg = startarg;
+ if (get_func_tv(name, (int)STRLEN(name), &rettv, &arg,
+*** ../vim-7.3.253/src/version.c 2011-07-15 21:16:54.000000000 +0200
+--- src/version.c 2011-07-15 21:23:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 254,
+ /**/
+
+--
+Eight Megabytes And Continually Swapping.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.255 b/source/ap/vim/patches/7.3.255
new file mode 100644
index 000000000..c01a585ec
--- /dev/null
+++ b/source/ap/vim/patches/7.3.255
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.255
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.255
+Problem: When editing a file such as "File[2010-08-15].vim" an E16 error is
+ given. (Manuel Stol)
+Solution: Don't give an error for failing to compile the regexp.
+Files: src/ex_docmd.c, src/misc1.c, src/vim.h
+
+
+*** ../vim-7.3.254/src/ex_docmd.c 2011-06-13 01:19:48.000000000 +0200
+--- src/ex_docmd.c 2011-07-20 14:48:01.000000000 +0200
+***************
+*** 7069,7075 ****
+ old_arg_count = GARGCOUNT;
+ if (expand_wildcards(old_arg_count, old_arg_files,
+ &new_arg_file_count, &new_arg_files,
+! EW_FILE|EW_NOTFOUND|EW_ADDSLASH) == OK
+ && new_arg_file_count > 0)
+ {
+ alist_set(&global_alist, new_arg_file_count, new_arg_files,
+--- 7069,7075 ----
+ old_arg_count = GARGCOUNT;
+ if (expand_wildcards(old_arg_count, old_arg_files,
+ &new_arg_file_count, &new_arg_files,
+! EW_FILE|EW_NOTFOUND|EW_ADDSLASH|EW_NOERROR) == OK
+ && new_arg_file_count > 0)
+ {
+ alist_set(&global_alist, new_arg_file_count, new_arg_files,
+*** ../vim-7.3.254/src/misc1.c 2011-07-15 14:12:25.000000000 +0200
+--- src/misc1.c 2011-07-20 14:55:09.000000000 +0200
+***************
+*** 9043,9050 ****
+--- 9043,9054 ----
+ }
+
+ /* compile the regexp into a program */
++ if (flags & EW_NOERROR)
++ ++emsg_silent;
+ regmatch.rm_ic = TRUE; /* Always ignore case */
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
++ if (flags & EW_NOERROR)
++ --emsg_silent;
+ vim_free(pat);
+
+ if (regmatch.regprog == NULL)
+*** ../vim-7.3.254/src/vim.h 2011-06-13 02:03:55.000000000 +0200
+--- src/vim.h 2011-07-20 14:50:13.000000000 +0200
+***************
+*** 815,820 ****
+--- 815,821 ----
+ #define EW_EXEC 0x40 /* executable files */
+ #define EW_PATH 0x80 /* search in 'path' too */
+ #define EW_ICASE 0x100 /* ignore case */
++ #define EW_NOERROR 0x200 /* no error for bad regexp */
+ /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+ * is used when executing commands and EW_SILENT for interactive expanding. */
+
+*** ../vim-7.3.254/src/version.c 2011-07-15 21:24:06.000000000 +0200
+--- src/version.c 2011-07-20 15:03:52.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 255,
+ /**/
+
+--
+Not too long ago, a program was something you watched on TV...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.256 b/source/ap/vim/patches/7.3.256
new file mode 100644
index 000000000..b8c9f00d1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.256
@@ -0,0 +1,322 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.256
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.256
+Problem: Javascript indenting not sufficiently tested.
+Solution: Add more tests. (Luc Deschenaux) Mark the lines that are indented
+ wrong.
+Files: src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.255/src/testdir/test3.in 2011-07-15 14:12:25.000000000 +0200
+--- src/testdir/test3.in 2011-07-15 21:05:49.000000000 +0200
+***************
+*** 1592,1598 ****
+
+
+ STARTTEST
+! :set cino=J1
+ /^JSSTART
+ =/^JSEND
+ ENDTEST
+--- 1592,1598 ----
+
+
+ STARTTEST
+! :set cino=j1,J1
+ /^JSSTART
+ =/^JSEND
+ ENDTEST
+***************
+*** 1613,1618 ****
+--- 1613,1757 ----
+ JSEND
+
+ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ var foo = [
++ 1, // indent 8 more
++ 2,
++ 3
++ ]; // indent 8 less
++ JSEND
++
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ function bar() {
++ var foo = [
++ 1,
++ 2,
++ 3
++ ]; // indent 16 less
++ }
++ JSEND
++
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ (function($){
++
++ var class_name='myclass';
++
++ function private_method() {
++ }
++
++ var public_method={
++ method: function(options,args){
++ private_method();
++ }
++ }
++
++ function init(options) {
++
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2, // indent 8 more
++ foobar: [ // indent 8 more
++ 1, // indent 8 more
++ 2, // indent 16 more
++ 3 // indent 16 more
++ ],
++ callback: function(){ // indent 8 more
++ return true; // indent 8 more
++ } // indent 8 more
++ }, options||{}));
++ }
++
++ $.fn[class_name]=function() {
++
++ var _arguments=arguments;
++ return this.each(function(){
++
++ var options=$(this).data(class_name+'_public');
++ if (!options) {
++ init.apply(this,_arguments);
++
++ } else {
++ var method=public_method[_arguments[0]];
++
++ if (typeof(method)!='function') {
++ console.log(class_name+' has no method "'+_arguments[0]+'"');
++ return false;
++ }
++ _arguments[0]=options;
++ method.apply(this,_arguments);
++ }
++ });
++ }
++
++ })(jQuery);
++ JSEND
++
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2,
++ foobar: [
++ 1, // indent 8 more
++ 2, // indent 8 more
++ 3 // indent 8 more
++ ],
++ callback: function(){
++ return true;
++ }
++ }, options||{}));
++ }
++ JSEND
++
++ STARTTEST
++ :set cino=j1,J1
++ /^JSSTART
++ =/^JSEND
++ ENDTEST
++
++ JSSTART
++ (function($){
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2, // indent 8 more
++ foobar: [ // indent 8 more
++ 1, // indent 8 more
++ 2, // indent 16 more
++ 3 // indent 16 more
++ ],
++ callback: function(){ // indent 8 more
++ return true; // indent 8 more
++ } // indent 8 more
++ }, options||{}));
++ }
++ })(jQuery);
++ JSEND
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.255/src/testdir/test3.ok 2011-07-15 14:12:25.000000000 +0200
+--- src/testdir/test3.ok 2011-07-15 21:06:38.000000000 +0200
+***************
+*** 1443,1445 ****
+--- 1443,1559 ----
+ }
+ JSEND
+
++
++ JSSTART
++ var foo = [
++ 1, // indent 8 more
++ 2,
++ 3
++ ]; // indent 8 less
++ JSEND
++
++
++ JSSTART
++ function bar() {
++ var foo = [
++ 1,
++ 2,
++ 3
++ ]; // indent 16 less
++ }
++ JSEND
++
++
++ JSSTART
++ (function($){
++
++ var class_name='myclass';
++
++ function private_method() {
++ }
++
++ var public_method={
++ method: function(options,args){
++ private_method();
++ }
++ }
++
++ function init(options) {
++
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2, // indent 8 more
++ foobar: [ // indent 8 more
++ 1, // indent 8 more
++ 2, // indent 16 more
++ 3 // indent 16 more
++ ],
++ callback: function(){ // indent 8 more
++ return true; // indent 8 more
++ } // indent 8 more
++ }, options||{}));
++ }
++
++ $.fn[class_name]=function() {
++
++ var _arguments=arguments;
++ return this.each(function(){
++
++ var options=$(this).data(class_name+'_public');
++ if (!options) {
++ init.apply(this,_arguments);
++
++ } else {
++ var method=public_method[_arguments[0]];
++
++ if (typeof(method)!='function') {
++ console.log(class_name+' has no method "'+_arguments[0]+'"');
++ return false;
++ }
++ _arguments[0]=options;
++ method.apply(this,_arguments);
++ }
++ });
++ }
++
++ })(jQuery);
++ JSEND
++
++
++ JSSTART
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2,
++ foobar: [
++ 1, // indent 8 more
++ 2, // indent 8 more
++ 3 // indent 8 more
++ ],
++ callback: function(){
++ return true;
++ }
++ }, options||{}));
++ }
++ JSEND
++
++
++ JSSTART
++ (function($){
++ function init(options) {
++ $(this).data(class_name+'_public',$.extend({},{
++ foo: 'bar',
++ bar: 2, // indent 8 more
++ foobar: [ // indent 8 more
++ 1, // indent 8 more
++ 2, // indent 16 more
++ 3 // indent 16 more
++ ],
++ callback: function(){ // indent 8 more
++ return true; // indent 8 more
++ } // indent 8 more
++ }, options||{}));
++ }
++ })(jQuery);
++ JSEND
++
+*** ../vim-7.3.255/src/version.c 2011-07-20 15:04:52.000000000 +0200
+--- src/version.c 2011-07-20 15:08:13.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 256,
+ /**/
+
+--
+Not too long ago, a keyboard was something to make music with...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.257 b/source/ap/vim/patches/7.3.257
new file mode 100644
index 000000000..f6292bf8d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.257
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.257
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.257
+Problem: Not all completions are available to user commands.
+Solution: Add "color", "compiler", "file_in_path" and "locale". (Dominique
+ Pelle)
+Files: src/ex_docmd.c, runtime/doc/map.txt
+
+
+*** ../vim-7.3.256/src/ex_docmd.c 2011-07-20 15:04:52.000000000 +0200
+--- src/ex_docmd.c 2011-07-20 16:10:28.000000000 +0200
+***************
+*** 5297,5303 ****
+--- 5297,5305 ----
+ {
+ {EXPAND_AUGROUP, "augroup"},
+ {EXPAND_BUFFERS, "buffer"},
++ {EXPAND_COLORS, "color"},
+ {EXPAND_COMMANDS, "command"},
++ {EXPAND_COMPILER, "compiler"},
+ #if defined(FEAT_CSCOPE)
+ {EXPAND_CSCOPE, "cscope"},
+ #endif
+***************
+*** 5310,5319 ****
+--- 5312,5326 ----
+ {EXPAND_EVENTS, "event"},
+ {EXPAND_EXPRESSION, "expression"},
+ {EXPAND_FILES, "file"},
++ {EXPAND_FILES_IN_PATH, "file_in_path"},
+ {EXPAND_FILETYPE, "filetype"},
+ {EXPAND_FUNCTIONS, "function"},
+ {EXPAND_HELP, "help"},
+ {EXPAND_HIGHLIGHT, "highlight"},
++ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
++ && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
++ {EXPAND_LOCALES, "locale"},
++ #endif
+ {EXPAND_MAPPINGS, "mapping"},
+ {EXPAND_MENUS, "menu"},
+ {EXPAND_OWNSYNTAX, "syntax"},
+*** ../vim-7.3.256/runtime/doc/map.txt 2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/map.txt 2011-07-20 16:10:28.000000000 +0200
+***************
+*** 1202,1221 ****
+--- 1211,1236 ----
+
+ -complete=augroup autocmd groups
+ -complete=buffer buffer names
++ -complete=color color schemes
+ -complete=command Ex command (and arguments)
++ -complete=compiler compilers
++ -complete=cscope |:cscope| suboptions
+ -complete=dir directory names
+ -complete=environment environment variable names
+ -complete=event autocommand events
+ -complete=expression Vim expression
+ -complete=file file and directory names
++ -complete=file_in_path file and directory names in |'path'|
+ -complete=filetype filetype names |'filetype'|
+ -complete=function function name
+ -complete=help help subjects
+ -complete=highlight highlight groups
++ -complete=locale locale names (as output of locale -a)
+ -complete=mapping mapping name
+ -complete=menu menus
+ -complete=option options
+ -complete=shellcmd Shell command
++ -complete=sign |:sign| suboptions
+ -complete=syntax syntax file names |'syntax'|
+ -complete=tag tags
+ -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
+*** ../vim-7.3.256/src/version.c 2011-07-20 15:09:38.000000000 +0200
+--- src/version.c 2011-07-20 16:30:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 257,
+ /**/
+
+--
+I have to exercise early in the morning before my brain
+figures out what I'm doing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.258 b/source/ap/vim/patches/7.3.258
new file mode 100644
index 000000000..277cbe774
--- /dev/null
+++ b/source/ap/vim/patches/7.3.258
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.258
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.258
+Problem: MS-Windows: The edit with existing vim context menu entries can be
+ unwanted.
+Solution: Let a registry entry disable them. (Jerome Vuarand)
+Files: src/GvimExt/gvimext.cpp
+
+
+*** ../vim-7.3.257/src/GvimExt/gvimext.cpp 2010-08-15 21:57:29.000000000 +0200
+--- src/GvimExt/gvimext.cpp 2011-07-20 16:48:09.000000000 +0200
+***************
+*** 586,593 ****
+
+ // Initialize m_cntOfHWnd to 0
+ m_cntOfHWnd = 0;
+! // Retrieve all the vim instances
+! EnumWindows(EnumWindowsProc, (LPARAM)this);
+
+ if (cbFiles > 1)
+ {
+--- 586,608 ----
+
+ // Initialize m_cntOfHWnd to 0
+ m_cntOfHWnd = 0;
+!
+! HKEY keyhandle;
+! bool showExisting = true;
+!
+! // Check whether "Edit with existing Vim" entries are disabled.
+! if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0,
+! KEY_READ, &keyhandle) == ERROR_SUCCESS)
+! {
+! if (RegQueryValueEx(keyhandle, "DisableEditWithExisting", 0, NULL,
+! NULL, NULL) == ERROR_SUCCESS)
+! showExisting = false;
+! RegCloseKey(keyhandle);
+! }
+!
+! // Retrieve all the vim instances, unless disabled.
+! if (showExisting)
+! EnumWindows(EnumWindowsProc, (LPARAM)this);
+
+ if (cbFiles > 1)
+ {
+*** ../vim-7.3.257/src/version.c 2011-07-20 16:36:35.000000000 +0200
+--- src/version.c 2011-07-20 16:54:34.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 258,
+ /**/
+
+--
+What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics'
+meaning 'bloodsucking creatures'.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.259 b/source/ap/vim/patches/7.3.259
new file mode 100644
index 000000000..91f9dfa13
--- /dev/null
+++ b/source/ap/vim/patches/7.3.259
@@ -0,0 +1,503 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.259
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.259
+Problem: Equivalence classes only work for latin characters.
+Solution: Add the Unicode equivalence characters. (Dominique Pelle)
+Files: runtime/doc/pattern.txt, src/regexp.c, src/testdir/test44.in,
+ src/testdir/test44.ok
+
+
+*** ../vim-7.3.258/runtime/doc/pattern.txt 2010-08-15 21:57:14.000000000 +0200
+--- runtime/doc/pattern.txt 2011-07-20 17:44:03.000000000 +0200
+***************
+*** 1027,1037 ****
+ These items only work for 8-bit characters.
+ */[[=* *[==]*
+ - An equivalence class. This means that characters are matched that
+! have almost the same meaning, e.g., when ignoring accents. The form
+! is:
+ [=a=]
+- Currently this is only implemented for latin1. Also works for the
+- latin1 characters in utf-8 and latin9.
+ */[[.* *[..]*
+ - A collation element. This currently simply accepts a single
+ character in the form:
+--- 1036,1044 ----
+ These items only work for 8-bit characters.
+ */[[=* *[==]*
+ - An equivalence class. This means that characters are matched that
+! have almost the same meaning, e.g., when ignoring accents. This
+! only works for Unicode, latin1 and latin9. The form is:
+ [=a=]
+ */[[.* *[..]*
+ - A collation element. This currently simply accepts a single
+ character in the form:
+*** ../vim-7.3.258/src/regexp.c 2011-06-19 04:31:54.000000000 +0200
+--- src/regexp.c 2011-07-20 17:56:52.000000000 +0200
+***************
+*** 666,673 ****
+--- 666,677 ----
+ static void regc __ARGS((int b));
+ #ifdef FEAT_MBYTE
+ static void regmbc __ARGS((int c));
++ # define REGMBC(x) regmbc(x);
++ # define CASEMBC(x) case x:
+ #else
+ # define regmbc(c) regc(c)
++ # define REGMBC(x)
++ # define CASEMBC(x)
+ #endif
+ static void reginsert __ARGS((int, char_u *));
+ static void reginsert_limits __ARGS((int, long, long, char_u *));
+***************
+*** 787,854 ****
+ switch (c)
+ {
+ case 'A': case '\300': case '\301': case '\302':
+ case '\303': case '\304': case '\305':
+ regmbc('A'); regmbc('\300'); regmbc('\301');
+ regmbc('\302'); regmbc('\303'); regmbc('\304');
+ regmbc('\305');
+ return;
+ case 'C': case '\307':
+ regmbc('C'); regmbc('\307');
+ return;
+ case 'E': case '\310': case '\311': case '\312': case '\313':
+ regmbc('E'); regmbc('\310'); regmbc('\311');
+ regmbc('\312'); regmbc('\313');
+ return;
+ case 'I': case '\314': case '\315': case '\316': case '\317':
+ regmbc('I'); regmbc('\314'); regmbc('\315');
+ regmbc('\316'); regmbc('\317');
+ return;
+ case 'N': case '\321':
+ regmbc('N'); regmbc('\321');
+ return;
+ case 'O': case '\322': case '\323': case '\324': case '\325':
+! case '\326':
+ regmbc('O'); regmbc('\322'); regmbc('\323');
+ regmbc('\324'); regmbc('\325'); regmbc('\326');
+ return;
+ case 'U': case '\331': case '\332': case '\333': case '\334':
+ regmbc('U'); regmbc('\331'); regmbc('\332');
+ regmbc('\333'); regmbc('\334');
+ return;
+ case 'Y': case '\335':
+ regmbc('Y'); regmbc('\335');
+ return;
+ case 'a': case '\340': case '\341': case '\342':
+ case '\343': case '\344': case '\345':
+ regmbc('a'); regmbc('\340'); regmbc('\341');
+ regmbc('\342'); regmbc('\343'); regmbc('\344');
+ regmbc('\345');
+ return;
+ case 'c': case '\347':
+ regmbc('c'); regmbc('\347');
+ return;
+ case 'e': case '\350': case '\351': case '\352': case '\353':
+ regmbc('e'); regmbc('\350'); regmbc('\351');
+ regmbc('\352'); regmbc('\353');
+ return;
+ case 'i': case '\354': case '\355': case '\356': case '\357':
+ regmbc('i'); regmbc('\354'); regmbc('\355');
+ regmbc('\356'); regmbc('\357');
+ return;
+ case 'n': case '\361':
+ regmbc('n'); regmbc('\361');
+ return;
+ case 'o': case '\362': case '\363': case '\364': case '\365':
+! case '\366':
+ regmbc('o'); regmbc('\362'); regmbc('\363');
+ regmbc('\364'); regmbc('\365'); regmbc('\366');
+ return;
+ case 'u': case '\371': case '\372': case '\373': case '\374':
+ regmbc('u'); regmbc('\371'); regmbc('\372');
+ regmbc('\373'); regmbc('\374');
+ return;
+ case 'y': case '\375': case '\377':
+ regmbc('y'); regmbc('\375'); regmbc('\377');
+ return;
+ }
+ #endif
+--- 791,1085 ----
+ switch (c)
+ {
+ case 'A': case '\300': case '\301': case '\302':
++ CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
++ CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
+ case '\303': case '\304': case '\305':
+ regmbc('A'); regmbc('\300'); regmbc('\301');
+ regmbc('\302'); regmbc('\303'); regmbc('\304');
+ regmbc('\305');
++ REGMBC(0x100) REGMBC(0x102) REGMBC(0x104)
++ REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0)
++ REGMBC(0x1ea2)
++ return;
++ case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
++ regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06)
+ return;
+ case 'C': case '\307':
++ CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
+ regmbc('C'); regmbc('\307');
++ REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a)
++ REGMBC(0x10c)
++ return;
++ case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
++ CASEMBC(0x1e0e) CASEMBC(0x1e10)
++ regmbc('D'); REGMBC(0x10e) REGMBC(0x110)
++ REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10)
+ return;
+ case 'E': case '\310': case '\311': case '\312': case '\313':
++ CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
++ CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
+ regmbc('E'); regmbc('\310'); regmbc('\311');
+ regmbc('\312'); regmbc('\313');
++ REGMBC(0x112) REGMBC(0x114) REGMBC(0x116)
++ REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba)
++ REGMBC(0x1ebc)
++ return;
++ case 'F': CASEMBC(0x1e1e)
++ regmbc('F'); REGMBC(0x1e1e)
++ return;
++ case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
++ CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
++ CASEMBC(0x1e20)
++ regmbc('G'); REGMBC(0x11c) REGMBC(0x11e)
++ REGMBC(0x120) REGMBC(0x122) REGMBC(0x1e4)
++ REGMBC(0x1e6) REGMBC(0x1f4) REGMBC(0x1e20)
++ return;
++ case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
++ CASEMBC(0x1e26) CASEMBC(0x1e28)
++ regmbc('H'); REGMBC(0x124) REGMBC(0x126)
++ REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28)
+ return;
+ case 'I': case '\314': case '\315': case '\316': case '\317':
++ CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
++ CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
+ regmbc('I'); regmbc('\314'); regmbc('\315');
+ regmbc('\316'); regmbc('\317');
++ REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c)
++ REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf)
++ REGMBC(0x1ec8)
++ return;
++ case 'J': CASEMBC(0x134)
++ regmbc('J'); REGMBC(0x134)
++ return;
++ case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
++ CASEMBC(0x1e34)
++ regmbc('K'); REGMBC(0x136) REGMBC(0x1e8)
++ REGMBC(0x1e30) REGMBC(0x1e34)
++ return;
++ case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
++ CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
++ regmbc('L'); REGMBC(0x139) REGMBC(0x13b)
++ REGMBC(0x13d) REGMBC(0x13f) REGMBC(0x141)
++ REGMBC(0x1e3a)
++ return;
++ case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
++ regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40)
+ return;
+ case 'N': case '\321':
++ CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
++ CASEMBC(0x1e48)
+ regmbc('N'); regmbc('\321');
++ REGMBC(0x143) REGMBC(0x145) REGMBC(0x147)
++ REGMBC(0x1e44) REGMBC(0x1e48)
+ return;
+ case 'O': case '\322': case '\323': case '\324': case '\325':
+! case '\326': case '\330':
+! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
+! CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
+ regmbc('O'); regmbc('\322'); regmbc('\323');
+ regmbc('\324'); regmbc('\325'); regmbc('\326');
++ regmbc('\330');
++ REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150)
++ REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea)
++ REGMBC(0x1ec) REGMBC(0x1ece)
++ return;
++ case 'P': case 0x1e54: case 0x1e56:
++ regmbc('P'); REGMBC(0x1e54) REGMBC(0x1e56)
++ return;
++ case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
++ CASEMBC(0x1e58) CASEMBC(0x1e5e)
++ regmbc('R'); REGMBC(0x154) REGMBC(0x156) REGMBC(0x158)
++ REGMBC(0x1e58) REGMBC(0x1e5e)
++ return;
++ case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
++ CASEMBC(0x160) CASEMBC(0x1e60)
++ regmbc('S'); REGMBC(0x15a) REGMBC(0x15c)
++ REGMBC(0x15e) REGMBC(0x160) REGMBC(0x1e60)
++ return;
++ case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
++ CASEMBC(0x1e6a) CASEMBC(0x1e6e)
++ regmbc('T'); REGMBC(0x162) REGMBC(0x164)
++ REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e)
+ return;
+ case 'U': case '\331': case '\332': case '\333': case '\334':
++ CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
++ CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
++ CASEMBC(0x1ee6)
+ regmbc('U'); regmbc('\331'); regmbc('\332');
+ regmbc('\333'); regmbc('\334');
++ REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c)
++ REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172)
++ REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6)
++ return;
++ case 'V': CASEMBC(0x1e7c)
++ regmbc('V'); REGMBC(0x1e7c)
++ return;
++ case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
++ CASEMBC(0x1e84) CASEMBC(0x1e86)
++ regmbc('W'); REGMBC(0x174) REGMBC(0x1e80)
++ REGMBC(0x1e82) REGMBC(0x1e84) REGMBC(0x1e86)
++ return;
++ case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
++ regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c)
+ return;
+ case 'Y': case '\335':
++ CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
++ CASEMBC(0x1ef6) CASEMBC(0x1ef8)
+ regmbc('Y'); regmbc('\335');
++ REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e)
++ REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8)
++ return;
++ case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
++ CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
++ regmbc('Z'); REGMBC(0x179) REGMBC(0x17b)
++ REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90)
++ REGMBC(0x1e94)
+ return;
+ case 'a': case '\340': case '\341': case '\342':
+ case '\343': case '\344': case '\345':
++ CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
++ CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
+ regmbc('a'); regmbc('\340'); regmbc('\341');
+ regmbc('\342'); regmbc('\343'); regmbc('\344');
+ regmbc('\345');
++ REGMBC(0x101) REGMBC(0x103) REGMBC(0x105)
++ REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1)
++ REGMBC(0x1ea3)
++ return;
++ case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
++ regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07)
+ return;
+ case 'c': case '\347':
++ CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
+ regmbc('c'); regmbc('\347');
++ REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b)
++ REGMBC(0x10d)
++ return;
++ case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
++ CASEMBC(0x1e11)
++ regmbc('d'); REGMBC(0x10f) REGMBC(0x111)
++ REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11)
+ return;
+ case 'e': case '\350': case '\351': case '\352': case '\353':
++ CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
++ CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
+ regmbc('e'); regmbc('\350'); regmbc('\351');
+ regmbc('\352'); regmbc('\353');
++ REGMBC(0x113) REGMBC(0x115) REGMBC(0x117)
++ REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb)
++ REGMBC(0x1ebd)
++ return;
++ case 'f': CASEMBC(0x1e1f)
++ regmbc('f'); REGMBC(0x1e1f)
++ return;
++ case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
++ CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
++ CASEMBC(0x1e21)
++ regmbc('g'); REGMBC(0x11d) REGMBC(0x11f)
++ REGMBC(0x121) REGMBC(0x123) REGMBC(0x1e5)
++ REGMBC(0x1e7) REGMBC(0x1f5) REGMBC(0x1e21)
++ return;
++ case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
++ CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
++ regmbc('h'); REGMBC(0x125) REGMBC(0x127)
++ REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29)
++ REGMBC(0x1e96)
+ return;
+ case 'i': case '\354': case '\355': case '\356': case '\357':
++ CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
++ CASEMBC(0x1d0) CASEMBC(0x1ec9)
+ regmbc('i'); regmbc('\354'); regmbc('\355');
+ regmbc('\356'); regmbc('\357');
++ REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d)
++ REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9)
++ return;
++ case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
++ regmbc('j'); REGMBC(0x135) REGMBC(0x1f0)
++ return;
++ case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
++ CASEMBC(0x1e35)
++ regmbc('k'); REGMBC(0x137) REGMBC(0x1e9)
++ REGMBC(0x1e31) REGMBC(0x1e35)
++ return;
++ case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
++ CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
++ regmbc('l'); REGMBC(0x13a) REGMBC(0x13c)
++ REGMBC(0x13e) REGMBC(0x140) REGMBC(0x142)
++ REGMBC(0x1e3b)
++ return;
++ case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
++ regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41)
+ return;
+ case 'n': case '\361':
++ CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
++ CASEMBC(0x1e45) CASEMBC(0x1e49)
+ regmbc('n'); regmbc('\361');
++ REGMBC(0x144) REGMBC(0x146) REGMBC(0x148)
++ REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49)
+ return;
+ case 'o': case '\362': case '\363': case '\364': case '\365':
+! case '\366': case '\370':
+! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
+! CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
+ regmbc('o'); regmbc('\362'); regmbc('\363');
+ regmbc('\364'); regmbc('\365'); regmbc('\366');
++ regmbc('\370');
++ REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151)
++ REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb)
++ REGMBC(0x1ed) REGMBC(0x1ecf)
++ return;
++ case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
++ regmbc('p'); REGMBC(0x1e55) REGMBC(0x1e57)
++ return;
++ case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
++ CASEMBC(0x1e59) CASEMBC(0x1e5f)
++ regmbc('r'); REGMBC(0x155) REGMBC(0x157) REGMBC(0x159)
++ REGMBC(0x1e59) REGMBC(0x1e5f)
++ return;
++ case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
++ CASEMBC(0x161) CASEMBC(0x1e61)
++ regmbc('s'); REGMBC(0x15b) REGMBC(0x15d)
++ REGMBC(0x15f) REGMBC(0x161) REGMBC(0x1e61)
++ return;
++ case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
++ CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
++ regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167)
++ REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97)
+ return;
+ case 'u': case '\371': case '\372': case '\373': case '\374':
++ CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
++ CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
++ CASEMBC(0x1ee7)
+ regmbc('u'); regmbc('\371'); regmbc('\372');
+ regmbc('\373'); regmbc('\374');
++ REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d)
++ REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173)
++ REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7)
++ return;
++ case 'v': CASEMBC(0x1e7d)
++ regmbc('v'); REGMBC(0x1e7d)
++ return;
++ case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
++ CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
++ regmbc('w'); REGMBC(0x175) REGMBC(0x1e81)
++ REGMBC(0x1e83) REGMBC(0x1e85) REGMBC(0x1e87)
++ REGMBC(0x1e98)
++ return;
++ case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
++ regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d)
+ return;
+ case 'y': case '\375': case '\377':
++ CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
++ CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
+ regmbc('y'); regmbc('\375'); regmbc('\377');
++ REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99)
++ REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9)
++ return;
++ case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
++ CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
++ regmbc('z'); REGMBC(0x17a) REGMBC(0x17c)
++ REGMBC(0x17e) REGMBC(0x1b6) REGMBC(0x1e91)
++ REGMBC(0x1e95)
+ return;
+ }
+ #endif
+***************
+*** 2468,2473 ****
+--- 2699,2706 ----
+ regmbc(c)
+ int c;
+ {
++ if (!has_mbyte && c > 0xff)
++ return;
+ if (regcode == JUST_CALC_SIZE)
+ regsize += (*mb_char2len)(c);
+ else
+***************
+*** 2588,2594 ****
+ else
+ offset = (int)(val - scan);
+ /* When the offset uses more than 16 bits it can no longer fit in the two
+! * bytes avaliable. Use a global flag to avoid having to check return
+ * values in too many places. */
+ if (offset > 0xffff)
+ reg_toolong = TRUE;
+--- 2821,2827 ----
+ else
+ offset = (int)(val - scan);
+ /* When the offset uses more than 16 bits it can no longer fit in the two
+! * bytes available. Use a global flag to avoid having to check return
+ * values in too many places. */
+ if (offset > 0xffff)
+ reg_toolong = TRUE;
+*** ../vim-7.3.258/src/testdir/test44.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test44.in 2011-07-20 17:36:49.000000000 +0200
+***************
+*** 27,32 ****
+--- 27,34 ----
+ x/\%U12345678
+ x/[\U1234abcd\u1234\uabcd]
+ x/\%d21879b
++ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
++ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
+ x:?^1?,$w! test.out
+ :e! test.out
+ G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב
+***************
+*** 53,55 ****
+--- 55,59 ----
+ e ü’…™¸y
+ f ü’Š¯z
+ g aå•·bb
++ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº”
++ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ
+*** ../vim-7.3.258/src/testdir/test44.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test44.ok 2011-07-20 17:36:49.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,21 ----
+ e y
+ f z
+ g abb
++ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÒÓÔÕÖØŌŎÅƠǑǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáº
++ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ
+ ב
+ בג
+ ×
+*** ../vim-7.3.258/src/version.c 2011-07-20 17:27:17.000000000 +0200
+--- src/version.c 2011-07-20 17:38:32.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 259,
+ /**/
+
+--
+Not too long ago, compress was something you did to garbage...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.260 b/source/ap/vim/patches/7.3.260
new file mode 100644
index 000000000..ba9af57aa
--- /dev/null
+++ b/source/ap/vim/patches/7.3.260
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.260
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.260
+Problem: CursorHold triggers on an incomplete mapping. (Will Gray)
+Solution: Don't trigger CursorHold when there is typeahead.
+Files: src/fileio.c
+
+
+*** ../vim-7.3.259/src/fileio.c 2011-05-19 17:25:36.000000000 +0200
+--- src/fileio.c 2011-07-20 18:22:16.000000000 +0200
+***************
+*** 9044,9050 ****
+ {
+ int state;
+
+! if (!did_cursorhold && has_cursorhold() && !Recording
+ #ifdef FEAT_INS_EXPAND
+ && !ins_compl_active()
+ #endif
+--- 9044,9053 ----
+ {
+ int state;
+
+! if (!did_cursorhold
+! && has_cursorhold()
+! && !Recording
+! && typebuf.tb_len == 0
+ #ifdef FEAT_INS_EXPAND
+ && !ins_compl_active()
+ #endif
+***************
+*** 9935,9940 ****
+--- 9938,9945 ----
+ if ((c == ';' || c == '>') && match == FALSE)
+ {
+ *pattern = NUL; /* Terminate the string */
++ /* TODO: match with 'filetype' of buffer that "fname" comes
++ * from. */
+ match = mch_check_filetype(fname, type_start);
+ *pattern = c; /* Restore the terminator */
+ type_start = pattern + 1;
+*** ../vim-7.3.259/src/version.c 2011-07-20 17:58:14.000000000 +0200
+--- src/version.c 2011-07-20 18:25:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 260,
+ /**/
+
+--
+LAUNCELOT: At last! A call! A cry of distress ...
+ (he draws his sword, and turns to CONCORDE)
+ Concorde! Brave, Concorde ... you shall not have died in vain!
+CONCORDE: I'm not quite dead, sir ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.261 b/source/ap/vim/patches/7.3.261
new file mode 100644
index 000000000..4c03f6b57
--- /dev/null
+++ b/source/ap/vim/patches/7.3.261
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.261
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.261
+Problem: G++ error message errornously recognized as error.
+Solution: Ignore "In file included from" line also when it ends in a colon.
+ (Fernando Castillo)
+Files: src/option.h
+
+
+*** ../vim-7.3.260/src/option.h 2011-06-26 05:36:07.000000000 +0200
+--- src/option.h 2011-07-27 13:44:08.000000000 +0200
+***************
+*** 33,39 ****
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+--- 33,39 ----
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+*** ../vim-7.3.260/src/version.c 2011-07-20 18:29:33.000000000 +0200
+--- src/version.c 2011-07-27 13:46:23.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 261,
+ /**/
+
+--
+Have you heard about the new Barbie doll? It's called Divorce
+Barbie. It comes with all of Ken's stuff.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.262 b/source/ap/vim/patches/7.3.262
new file mode 100644
index 000000000..b3bd5cd81
--- /dev/null
+++ b/source/ap/vim/patches/7.3.262
@@ -0,0 +1,1356 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.262
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.262
+Problem: Photon code style doesn't match Vim style.
+Solution: Clean up some of it. (Elias Diem)
+Files: src/gui_photon.c
+
+
+*** ../vim-7.3.261/src/gui_photon.c 2011-01-17 20:08:03.000000000 +0100
+--- src/gui_photon.c 2011-07-27 14:07:02.000000000 +0200
+***************
+*** 32,40 ****
+ #endif
+
+ #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
+! #define RGB(r,g,b) PgRGB(r,g,b)
+
+! #define EVENT_BUFFER_SIZE sizeof( PhEvent_t ) + 1000
+
+ /* Some defines for gui_mch_mousehide() */
+ #define MOUSE_HIDE TRUE
+--- 32,40 ----
+ #endif
+
+ #define ARRAY_LENGTH(a) (sizeof(a) / sizeof(a[0]))
+! #define RGB(r, g, b) PgRGB(r, g, b)
+
+! #define EVENT_BUFFER_SIZE sizeof(PhEvent_t) + 1000
+
+ /* Some defines for gui_mch_mousehide() */
+ #define MOUSE_HIDE TRUE
+***************
+*** 206,258 ****
+ static PtCallbackF_t gui_ph_handle_menu_unrealized;
+
+ #ifdef USE_PANEL_GROUP
+! static void gui_ph_get_panelgroup_margins( short*, short*, short*, short* );
+ #endif
+
+ #ifdef FEAT_TOOLBAR
+! static PhImage_t *gui_ph_toolbar_find_icon( vimmenu_T *menu );
+ #endif
+
+! static void gui_ph_draw_start( void );
+! static void gui_ph_draw_end( void );
+
+ /* Set the text for the balloon */
+! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
+ PtWidget_t *widget,
+ int position,
+ char *text,
+ char *font,
+ PgColor_t fill_color,
+! PgColor_t text_color );
+
+ /****************************************************************************/
+
+! static PtWidget_t * gui_ph_show_tooltip( PtWidget_t *window,
+ PtWidget_t *widget,
+ int position,
+ char *text,
+ char *font,
+ PgColor_t fill_color,
+! PgColor_t text_color )
+ {
+ PtArg_t arg;
+ vimmenu_T *menu;
+ char_u *tooltip;
+
+! PtSetArg( &arg, Pt_ARG_POINTER, &menu, 0 );
+! PtGetResources( widget, 1, &arg );
+
+ /* Override the text and position */
+
+ tooltip = text;
+! if( menu != NULL )
+ {
+ int index = MENU_INDEX_TIP;
+! if( menu->strings[ index ] != NULL )
+ tooltip = menu->strings[ index ];
+ }
+
+! return( PtInflateBalloon(
+ window,
+ widget,
+ /* Don't put the balloon at the bottom,
+--- 206,258 ----
+ static PtCallbackF_t gui_ph_handle_menu_unrealized;
+
+ #ifdef USE_PANEL_GROUP
+! static void gui_ph_get_panelgroup_margins(short*, short*, short*, short*);
+ #endif
+
+ #ifdef FEAT_TOOLBAR
+! static PhImage_t *gui_ph_toolbar_find_icon(vimmenu_T *menu);
+ #endif
+
+! static void gui_ph_draw_start(void);
+! static void gui_ph_draw_end(void);
+
+ /* Set the text for the balloon */
+! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
+ PtWidget_t *widget,
+ int position,
+ char *text,
+ char *font,
+ PgColor_t fill_color,
+! PgColor_t text_color);
+
+ /****************************************************************************/
+
+! static PtWidget_t * gui_ph_show_tooltip(PtWidget_t *window,
+ PtWidget_t *widget,
+ int position,
+ char *text,
+ char *font,
+ PgColor_t fill_color,
+! PgColor_t text_color)
+ {
+ PtArg_t arg;
+ vimmenu_T *menu;
+ char_u *tooltip;
+
+! PtSetArg(&arg, Pt_ARG_POINTER, &menu, 0);
+! PtGetResources(widget, 1, &arg);
+
+ /* Override the text and position */
+
+ tooltip = text;
+! if (menu != NULL)
+ {
+ int index = MENU_INDEX_TIP;
+! if (menu->strings[ index ] != NULL)
+ tooltip = menu->strings[ index ];
+ }
+
+! return PtInflateBalloon(
+ window,
+ widget,
+ /* Don't put the balloon at the bottom,
+***************
+*** 261,285 ****
+ tooltip,
+ font,
+ fill_color,
+! text_color ) );
+ }
+
+ static void
+! gui_ph_resize_container( void )
+ {
+ PhArea_t area;
+
+! PtWidgetArea( gui.vimWindow, &area );
+! PtWidgetPos ( gui.vimContainer, &area.pos );
+
+! PtSetResource( gui.vimContainer, Pt_ARG_AREA, &area, 0 );
+ }
+
+ static int
+ gui_ph_handle_menu_resize(
+ PtWidget_t *widget,
+ void *other,
+! PtCallbackInfo_t *info )
+ {
+ PtContainerCallback_t *sizes = info->cbdata;
+ PtWidget_t *container;
+--- 261,285 ----
+ tooltip,
+ font,
+ fill_color,
+! text_color);
+ }
+
+ static void
+! gui_ph_resize_container(void)
+ {
+ PhArea_t area;
+
+! PtWidgetArea(gui.vimWindow, &area);
+! PtWidgetPos (gui.vimContainer, &area.pos);
+
+! PtSetResource(gui.vimContainer, Pt_ARG_AREA, &area, 0);
+ }
+
+ static int
+ gui_ph_handle_menu_resize(
+ PtWidget_t *widget,
+ void *other,
+! PtCallbackInfo_t *info)
+ {
+ PtContainerCallback_t *sizes = info->cbdata;
+ PtWidget_t *container;
+***************
+*** 291,297 ****
+ /* Because vim treats the toolbar and menubar separately,
+ * and here they're lumped together into a PtToolbarGroup,
+ * we only need either menu_height or toolbar_height set at once */
+! if( gui.menu_is_active )
+ {
+ gui.menu_height = height;
+ gui.toolbar_height = 0;
+--- 291,297 ----
+ /* Because vim treats the toolbar and menubar separately,
+ * and here they're lumped together into a PtToolbarGroup,
+ * we only need either menu_height or toolbar_height set at once */
+! if (gui.menu_is_active)
+ {
+ gui.menu_height = height;
+ gui.toolbar_height = 0;
+***************
+*** 310,325 ****
+ container = gui.vimContainer;
+ #endif
+
+! PtSetResource( container, Pt_ARG_POS, &below_menu, 0 );
+
+ gui_ph_resize_container();
+
+ #ifdef USE_PANEL_GROUP
+ gui_ph_get_panelgroup_margins(
+ &pg_margin_top, &pg_margin_bottom,
+! &pg_margin_left, &pg_margin_right );
+ #endif
+! return( Pt_CONTINUE );
+ }
+
+ /*
+--- 310,325 ----
+ container = gui.vimContainer;
+ #endif
+
+! PtSetResource(container, Pt_ARG_POS, &below_menu, 0);
+
+ gui_ph_resize_container();
+
+ #ifdef USE_PANEL_GROUP
+ gui_ph_get_panelgroup_margins(
+ &pg_margin_top, &pg_margin_bottom,
+! &pg_margin_left, &pg_margin_right);
+ #endif
+! return Pt_CONTINUE;
+ }
+
+ /*
+***************
+*** 330,352 ****
+ gui_ph_handle_timer_cursor(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+! if( blink_state == BLINK_ON )
+ {
+ gui_undraw_cursor();
+ blink_state = BLINK_OFF;
+! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_offtime, 0 );
+ }
+ else
+ {
+ gui_update_cursor(TRUE, FALSE);
+ blink_state = BLINK_ON;
+! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_ontime, 0 );
+ }
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 330,352 ----
+ gui_ph_handle_timer_cursor(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+! if (blink_state == BLINK_ON)
+ {
+ gui_undraw_cursor();
+ blink_state = BLINK_OFF;
+! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_offtime, 0);
+ }
+ else
+ {
+ gui_update_cursor(TRUE, FALSE);
+ blink_state = BLINK_ON;
+! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_ontime, 0);
+ }
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 354,360 ****
+ {
+ is_timeout = TRUE;
+
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 354,360 ----
+ {
+ is_timeout = TRUE;
+
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 402,408 ****
+ break;
+ }
+
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 402,408 ----
+ break;
+ }
+
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 426,438 ****
+
+ case Pt_SCROLL_SET:
+ /* FIXME: return straight away here? */
+! return( Pt_CONTINUE );
+ break;
+ }
+
+ gui_drag_scrollbar(sb, value, dragging);
+ }
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 426,438 ----
+
+ case Pt_SCROLL_SET:
+ /* FIXME: return straight away here? */
+! return Pt_CONTINUE;
+ break;
+ }
+
+ gui_drag_scrollbar(sb, value, dragging);
+ }
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 453,459 ****
+ /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+ if( key->key_flags & Pk_KF_Compose )
+ {
+! return( Pt_CONTINUE );
+ }
+
+ if( (key->key_flags & Pk_KF_Cap_Valid) &&
+--- 453,459 ----
+ /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+ if( key->key_flags & Pk_KF_Compose )
+ {
+! return Pt_CONTINUE;
+ }
+
+ if( (key->key_flags & Pk_KF_Cap_Valid) &&
+***************
+*** 473,479 ****
+ gui_is_menu_shortcut( key->key_cap ) ) ) )
+ {
+ /* Fallthrough and let photon look for the hotkey */
+! return( Pt_CONTINUE );
+ }
+ #endif
+
+--- 473,479 ----
+ gui_is_menu_shortcut( key->key_cap ) ) ) )
+ {
+ /* Fallthrough and let photon look for the hotkey */
+! return Pt_CONTINUE;
+ }
+ #endif
+
+***************
+*** 544,550 ****
+ add_to_input_buf( string, len );
+ }
+
+! return( Pt_CONSUME );
+ }
+ len = 0;
+ #endif
+--- 544,550 ----
+ add_to_input_buf( string, len );
+ }
+
+! return Pt_CONSUME;
+ }
+ len = 0;
+ #endif
+***************
+*** 579,585 ****
+ }
+ else
+ {
+! return( Pt_CONTINUE );
+ }
+ }
+ else
+--- 579,585 ----
+ }
+ else
+ {
+! return Pt_CONTINUE;
+ }
+ }
+ else
+***************
+*** 622,632 ****
+ if( len > 0 )
+ {
+ add_to_input_buf( string, len );
+! return( Pt_CONSUME );
+ }
+ }
+
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 622,632 ----
+ if( len > 0 )
+ {
+ add_to_input_buf( string, len );
+! return Pt_CONSUME;
+ }
+ }
+
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 652,658 ****
+ if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+ {
+ gui_mouse_moved( mouse_x, mouse_y );
+! return( Pt_CONTINUE );
+ }
+
+ if( pointer->key_mods & Pk_KM_Shift )
+--- 652,658 ----
+ if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+ {
+ gui_mouse_moved( mouse_x, mouse_y );
+! return Pt_CONTINUE;
+ }
+
+ if( pointer->key_mods & Pk_KM_Shift )
+***************
+*** 702,708 ****
+ gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+ }
+
+! return( Pt_CONTINUE );
+ }
+
+ /* Handle a focus change of the PtRaw widget */
+--- 702,708 ----
+ gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+ }
+
+! return Pt_CONTINUE;
+ }
+
+ /* Handle a focus change of the PtRaw widget */
+***************
+*** 721,727 ****
+ PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+ gui_ph_handle_mouse, NULL );
+ }
+! return( Pt_CONTINUE );
+ }
+
+ static void
+--- 721,727 ----
+ PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+ gui_ph_handle_mouse, NULL );
+ }
+! return Pt_CONTINUE;
+ }
+
+ static void
+***************
+*** 793,799 ****
+ PtRealizeWidget( menu->submenu_id );
+ }
+
+! return( Pt_CONTINUE );
+ }
+
+ /* This is used for pulldown/popup menus and also toolbar buttons */
+--- 793,799 ----
+ PtRealizeWidget( menu->submenu_id );
+ }
+
+! return Pt_CONTINUE;
+ }
+
+ /* This is used for pulldown/popup menus and also toolbar buttons */
+***************
+*** 805,811 ****
+ vimmenu_T *menu = (vimmenu_T *) data;
+ gui_menu_cb( menu );
+ }
+! return( Pt_CONTINUE );
+ }
+
+ /* Stop focus from disappearing into the menubar... */
+--- 805,811 ----
+ vimmenu_T *menu = (vimmenu_T *) data;
+ gui_menu_cb( menu );
+ }
+! return Pt_CONTINUE;
+ }
+
+ /* Stop focus from disappearing into the menubar... */
+***************
+*** 816,822 ****
+ PtCallbackInfo_t *info )
+ {
+ PtGiveFocus( gui.vimTextArea, NULL );
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 816,822 ----
+ PtCallbackInfo_t *info )
+ {
+ PtGiveFocus( gui.vimTextArea, NULL );
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 826,832 ****
+ PtCallbackInfo_t *info )
+ {
+ gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+! return( Pt_CONTINUE );
+ }
+
+ /****************************************************************************/
+--- 826,832 ----
+ PtCallbackInfo_t *info )
+ {
+ gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+! return Pt_CONTINUE;
+ }
+
+ /****************************************************************************/
+***************
+*** 878,884 ****
+ ( STRCMP( items->dname, name ) != 0 ) )
+ items = items->next;
+ }
+! return( items );
+ }
+
+ static void
+--- 878,884 ----
+ ( STRCMP( items->dname, name ) != 0 ) )
+ items = items->next;
+ }
+! return items;
+ }
+
+ static void
+***************
+*** 927,933 ****
+ gui_menu_cb( menu );
+ }
+ }
+! return( Pt_CONTINUE );
+ }
+
+ static void
+--- 927,933 ----
+ gui_menu_cb( menu );
+ }
+ }
+! return Pt_CONTINUE;
+ }
+
+ static void
+***************
+*** 974,983 ****
+ mark++;
+
+ if( *mark == ')' )
+! return( TRUE);
+ }
+ }
+! return( FALSE );
+ }
+
+ static void
+--- 974,983 ----
+ mark++;
+
+ if( *mark == ')' )
+! return TRUE;
+ }
+ }
+! return FALSE;
+ }
+
+ static void
+***************
+*** 1057,1063 ****
+ gui_ph_pg_remove_buffer( menu->dname );
+ }
+
+! return( Pt_CONTINUE );
+ }
+ #endif
+
+--- 1057,1063 ----
+ gui_ph_pg_remove_buffer( menu->dname );
+ }
+
+! return Pt_CONTINUE;
+ }
+ #endif
+
+***************
+*** 1071,1077 ****
+ PtContainerHold( gui.vimContainer );
+ }
+
+! return( Pt_CONTINUE );
+ }
+
+ /****************************************************************************/
+--- 1071,1077 ----
+ PtContainerHold( gui.vimContainer );
+ }
+
+! return Pt_CONTINUE;
+ }
+
+ /****************************************************************************/
+***************
+*** 1126,1132 ****
+
+ gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+ if( gui.event_buffer == NULL )
+! return( FAIL );
+
+ /* Get a translation so we can convert from ISO Latin-1 to UTF */
+ charset_translate = PxTranslateSet( NULL, "latin1" );
+--- 1126,1132 ----
+
+ gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+ if( gui.event_buffer == NULL )
+! return FAIL;
+
+ /* Get a translation so we can convert from ISO Latin-1 to UTF */
+ charset_translate = PxTranslateSet( NULL, "latin1" );
+***************
+*** 1141,1147 ****
+ PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+ gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+ if( gui.vimWindow == NULL )
+! return( FAIL );
+
+ PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+ PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+--- 1141,1147 ----
+ PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+ gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+ if( gui.vimWindow == NULL )
+! return FAIL;
+
+ PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+ PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+***************
+*** 1158,1164 ****
+
+ gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+ if( gui.vimPanelGroup == NULL )
+! return( FAIL );
+
+ PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+ gui_ph_handle_pg_change, NULL );
+--- 1158,1164 ----
+
+ gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+ if( gui.vimPanelGroup == NULL )
+! return FAIL;
+
+ PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+ gui_ph_handle_pg_change, NULL );
+***************
+*** 1172,1178 ****
+
+ gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+ if( gui.vimContainer == NULL )
+! return( FAIL );
+
+ PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+ #endif
+--- 1172,1178 ----
+
+ gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+ if( gui.vimContainer == NULL )
+! return FAIL;
+
+ PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+ #endif
+***************
+*** 1195,1201 ****
+
+ gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+ if( gui.vimTextArea == NULL)
+! return( FAIL );
+
+ /* TODO: use PtAddEventHandlers instead? */
+ /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+--- 1195,1201 ----
+
+ gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+ if( gui.vimTextArea == NULL)
+! return FAIL;
+
+ /* TODO: use PtAddEventHandlers instead? */
+ /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+***************
+*** 1220,1230 ****
+ */
+ gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+ if( gui_ph_timer_cursor == NULL )
+! return( FAIL );
+
+ gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+ if( gui_ph_timer_timeout == NULL )
+! return( FAIL );
+
+ PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_cursor, NULL);
+--- 1220,1230 ----
+ */
+ gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+ if( gui_ph_timer_cursor == NULL )
+! return FAIL;
+
+ gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+ if( gui_ph_timer_timeout == NULL )
+! return FAIL;
+
+ PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_cursor, NULL);
+***************
+*** 1239,1245 ****
+ gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+ n, args );
+ if( gui.vimToolBarGroup == NULL )
+! return( FAIL );
+
+ PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+ gui_ph_handle_menu_resize, NULL );
+--- 1239,1245 ----
+ gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+ n, args );
+ if( gui.vimToolBarGroup == NULL )
+! return FAIL;
+
+ PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+ gui_ph_handle_menu_resize, NULL );
+***************
+*** 1254,1260 ****
+ }
+ gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+ if( gui.vimMenuBar == NULL )
+! return( FAIL );
+
+ # ifdef FEAT_TOOLBAR
+ n = 0;
+--- 1254,1260 ----
+ }
+ gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+ if( gui.vimMenuBar == NULL )
+! return FAIL;
+
+ # ifdef FEAT_TOOLBAR
+ n = 0;
+***************
+*** 1273,1279 ****
+
+ gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+ if( gui.vimToolBar == NULL )
+! return( FAIL );
+
+ /*
+ * Size for the toolbar is fetched in gui_mch_show_toolbar, after
+--- 1273,1279 ----
+
+ gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+ if( gui.vimToolBar == NULL )
+! return FAIL;
+
+ /*
+ * Size for the toolbar is fetched in gui_mch_show_toolbar, after
+***************
+*** 1284,1296 ****
+
+ #endif
+
+! return( OK );
+ }
+
+ int
+ gui_mch_init_check(void)
+ {
+! return( (is_photon_available == TRUE) ? OK : FAIL );
+ }
+
+ int
+--- 1284,1296 ----
+
+ #endif
+
+! return OK;
+ }
+
+ int
+ gui_mch_init_check(void)
+ {
+! return (is_photon_available == TRUE) ? OK : FAIL;
+ }
+
+ int
+***************
+*** 1310,1316 ****
+ if (gui_win_x != -1 && gui_win_y != -1)
+ gui_mch_set_winpos(gui_win_x, gui_win_y);
+
+! return( (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL );
+ }
+
+ void
+--- 1310,1316 ----
+ if (gui_win_x != -1 && gui_win_y != -1)
+ gui_mch_set_winpos(gui_win_x, gui_win_y);
+
+! return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
+ }
+
+ void
+***************
+*** 1336,1342 ****
+ exit_gui_mch_update( void *data )
+ {
+ *(int *)data = FALSE;
+! return( Pt_END );
+ }
+
+ void
+--- 1336,1342 ----
+ exit_gui_mch_update( void *data )
+ {
+ *(int *)data = FALSE;
+! return Pt_END;
+ }
+
+ void
+***************
+*** 1365,1374 ****
+ if( input_available() )
+ {
+ PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+! return( OK );
+ }
+ else if( is_timeout == TRUE )
+! return( FAIL );
+ }
+ }
+
+--- 1365,1374 ----
+ if( input_available() )
+ {
+ PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+! return OK;
+ }
+ else if( is_timeout == TRUE )
+! return FAIL;
+ }
+ }
+
+***************
+*** 1446,1454 ****
+ vim_free( default_path );
+
+ if( file.ret == Pt_FSDIALOG_BTN1 )
+! return( vim_strsave( file.path ) );
+ }
+! return( NULL );
+ }
+ #endif
+
+--- 1446,1454 ----
+ vim_free( default_path );
+
+ if( file.ret == Pt_FSDIALOG_BTN1 )
+! return vim_strsave(file.path);
+ }
+! return NULL;
+ }
+ #endif
+
+***************
+*** 1470,1476 ****
+
+ PtModalUnblock( modal_ctrl, (void *) button );
+
+! return( Pt_TRUE );
+ }
+
+ static int
+--- 1470,1476 ----
+
+ PtModalUnblock( modal_ctrl, (void *) button );
+
+! return Pt_TRUE;
+ }
+
+ static int
+***************
+*** 1478,1484 ****
+ {
+ if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+ gui_ph_dialog_close( 1, data );
+! return( Pt_CONTINUE );
+ }
+
+ static int
+--- 1478,1484 ----
+ {
+ if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+ gui_ph_dialog_close( 1, data );
+! return Pt_CONTINUE;
+ }
+
+ static int
+***************
+*** 1490,1498 ****
+ if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+ {
+ gui_ph_dialog_close( 0, data );
+! return( Pt_CONSUME );
+ }
+! return( Pt_PROCESS );
+ }
+
+ int
+--- 1490,1498 ----
+ if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+ {
+ gui_ph_dialog_close( 0, data );
+! return Pt_CONSUME;
+ }
+! return Pt_PROCESS;
+ }
+
+ int
+***************
+*** 1519,1525 ****
+ button_count = len = i = 0;
+
+ if( buttons == NULL || *buttons == NUL )
+! return( -1 );
+
+ /* There is one less separator than buttons, so bump up the button count */
+ button_count = 1;
+--- 1519,1525 ----
+ button_count = len = i = 0;
+
+ if( buttons == NULL || *buttons == NUL )
+! return -1;
+
+ /* There is one less separator than buttons, so bump up the button count */
+ button_count = 1;
+***************
+*** 1637,1643 ****
+ vim_free( button_array );
+ vim_free( buttons_copy );
+
+! return( dialog_result );
+ }
+ #endif
+ /****************************************************************************/
+--- 1637,1643 ----
+ vim_free( button_array );
+ vim_free( buttons_copy );
+
+! return dialog_result;
+ }
+ #endif
+ /****************************************************************************/
+***************
+*** 1653,1659 ****
+ *x = pos->x;
+ *y = pos->y;
+
+! return( OK );
+ }
+
+ void
+--- 1653,1659 ----
+ *x = pos->x;
+ *y = pos->y;
+
+! return OK;
+ }
+
+ void
+***************
+*** 1975,1985 ****
+ hex_digit(int c)
+ {
+ if (VIM_ISDIGIT(c))
+! return( c - '0' );
+ c = TOLOWER_ASC(c);
+ if (c >= 'a' && c <= 'f')
+! return( c - 'a' + 10 );
+! return( -1000 );
+ }
+
+
+--- 1975,1985 ----
+ hex_digit(int c)
+ {
+ if (VIM_ISDIGIT(c))
+! return c - '0';
+ c = TOLOWER_ASC(c);
+ if (c >= 'a' && c <= 'f')
+! return c - 'a' + 10;
+! return -1000;
+ }
+
+
+***************
+*** 2065,2077 ****
+ b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+ if( r < 0 || g < 0 || b < 0 )
+ return INVALCOLOR;
+! return( RGB( r, g, b ) );
+ }
+
+ for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+ {
+ if( STRICMP( name, table[i].name ) == 0 )
+! return( table[i].colour );
+ }
+
+ /*
+--- 2065,2077 ----
+ b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+ if( r < 0 || g < 0 || b < 0 )
+ return INVALCOLOR;
+! return RGB(r, g, b);
+ }
+
+ for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+ {
+ if( STRICMP( name, table[i].name ) == 0 )
+! return table[i].colour;
+ }
+
+ /*
+***************
+*** 2115,2121 ****
+ if (STRICMP(color, name) == 0)
+ {
+ fclose(fd);
+! return( (guicolor_T) RGB(r,g,b) );
+ }
+ }
+
+--- 2115,2121 ----
+ if (STRICMP(color, name) == 0)
+ {
+ fclose(fd);
+! return (guicolor_T)RGB(r, g, b);
+ }
+ }
+
+***************
+*** 2451,2458 ****
+ for (i = 0; special_keys[i].key_sym != 0; i++)
+ if (name[0] == special_keys[i].vim_code0 &&
+ name[1] == special_keys[i].vim_code1)
+! return( OK );
+! return( FAIL );
+ }
+
+ /****************************************************************************/
+--- 2451,2458 ----
+ for (i = 0; special_keys[i].key_sym != 0; i++)
+ if (name[0] == special_keys[i].vim_code0 &&
+ name[1] == special_keys[i].vim_code1)
+! return OK;
+! return FAIL;
+ }
+
+ /****************************************************************************/
+***************
+*** 2512,2518 ****
+
+ temp_phi = &external_icon;
+ }
+! return( temp_phi );
+ }
+
+ /*
+--- 2512,2518 ----
+
+ temp_phi = &external_icon;
+ }
+! return temp_phi;
+ }
+
+ /*
+***************
+*** 2541,2556 ****
+ icon = gui_ph_toolbar_load_icon( full_pathname );
+
+ if( icon != NULL )
+! return( icon );
+ }
+
+ if( menu->iconidx >= 0 &&
+ ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+ {
+! return( gui_ph_toolbar_images[ menu->iconidx ] );
+ }
+
+! return( NULL );
+ }
+ #endif
+
+--- 2541,2556 ----
+ icon = gui_ph_toolbar_load_icon( full_pathname );
+
+ if( icon != NULL )
+! return icon;
+ }
+
+ if( menu->iconidx >= 0 &&
+ ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+ {
+! return gui_ph_toolbar_images[menu->iconidx];
+ }
+
+! return NULL;
+ }
+ #endif
+
+***************
+*** 2895,2905 ****
+ * at least has the bits we're checking for */
+ if( font_size == info.size &&
+ style == (info.style & style) )
+! return( (GuiFont) font_tag );
+ }
+ vim_free( font_tag );
+ }
+! return( NULL );
+ }
+
+ /*
+--- 2895,2905 ----
+ * at least has the bits we're checking for */
+ if( font_size == info.size &&
+ style == (info.style & style) )
+! return (GuiFont)font_tag;
+ }
+ vim_free( font_tag );
+ }
+! return NULL;
+ }
+
+ /*
+***************
+*** 2957,2965 ****
+ }
+ }
+ }
+! return( TRUE );
+ }
+! return( FALSE );
+ }
+
+ int
+--- 2957,2965 ----
+ }
+ }
+ }
+! return TRUE;
+ }
+! return FALSE;
+ }
+
+ int
+***************
+*** 2985,2991 ****
+ "pcterm12", -1, PHFONT_FIXED, NULL );
+
+ if( font_tag == NULL )
+! return( FAIL );
+
+ gui_mch_free_font( gui.norm_font );
+ gui.norm_font = font_tag;
+--- 2985,2991 ----
+ "pcterm12", -1, PHFONT_FIXED, NULL );
+
+ if( font_tag == NULL )
+! return FAIL;
+
+ gui_mch_free_font( gui.norm_font );
+ gui.norm_font = font_tag;
+***************
+*** 2997,3009 ****
+ {
+ if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+ &font_size ) == FALSE )
+! return( FAIL );
+
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+ if( font_tag == NULL )
+ {
+ vim_free( font_name );
+! return( FAIL );
+ }
+
+ gui_mch_free_font( gui.norm_font );
+--- 2997,3009 ----
+ {
+ if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+ &font_size ) == FALSE )
+! return FAIL;
+
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+ if( font_tag == NULL )
+ {
+ vim_free( font_name );
+! return FAIL;
+ }
+
+ gui_mch_free_font( gui.norm_font );
+***************
+*** 3026,3032 ****
+ gui.char_ascent = - extent.ul.y;
+
+ vim_free( font_name );
+! return( OK );
+ }
+
+ /*
+--- 3026,3032 ----
+ gui.char_ascent = - extent.ul.y;
+
+ vim_free( font_name );
+! return OK;
+ }
+
+ /*
+***************
+*** 3042,3048 ****
+ gui.char_height = - info.ascender + info.descender + p_linespace;
+ gui.char_ascent = - info.ascender + p_linespace / 2;
+
+! return( OK );
+ }
+
+ GuiFont
+--- 3042,3048 ----
+ gui.char_height = - info.ascender + info.descender + p_linespace;
+ gui.char_ascent = - info.ascender + p_linespace / 2;
+
+! return OK;
+ }
+
+ GuiFont
+***************
+*** 3060,3072 ****
+ vim_free( font_name );
+
+ if( font_tag != NULL )
+! return( (GuiFont) font_tag );
+ }
+
+ if( report_error )
+ EMSG2(e_font, vim_font_name );
+
+! return( FAIL );
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3060,3072 ----
+ vim_free( font_name );
+
+ if( font_tag != NULL )
+! return (GuiFont)font_tag;
+ }
+
+ if( report_error )
+ EMSG2(e_font, vim_font_name );
+
+! return FAIL;
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.261/src/version.c 2011-07-27 13:59:12.000000000 +0200
+--- src/version.c 2011-07-27 14:08:08.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 262,
+ /**/
+
+--
+You know you use Vim too much when you have this alias in your
+~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.263 b/source/ap/vim/patches/7.3.263
new file mode 100644
index 000000000..98850988c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.263
@@ -0,0 +1,162 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.263
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.263
+Problem: Perl and Tcl have a few code style problems.
+Solution: Clean it up. (Elias Diem)
+Files: src/if_perl.xs, src/if_tcl.c
+
+
+*** ../vim-7.3.262/src/if_perl.xs 2010-10-23 14:02:48.000000000 +0200
+--- src/if_perl.xs 2011-07-27 14:11:03.000000000 +0200
+***************
+*** 755,761 ****
+ #ifdef HAVE_SANDBOX
+ if (sandbox)
+ {
+! safe = perl_get_sv( "VIM::safe", FALSE );
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+ EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+--- 755,761 ----
+ #ifdef HAVE_SANDBOX
+ if (sandbox)
+ {
+! safe = perl_get_sv("VIM::safe", FALSE);
+ # ifndef MAKE_TEST /* avoid a warning for unreachable code */
+ if (safe == NULL || !SvTRUE(safe))
+ EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
+***************
+*** 1108,1114 ****
+ VIWIN win
+
+ PPCODE:
+! if(items == 1)
+ {
+ EXTEND(sp, 2);
+ if (!win_valid(win))
+--- 1108,1114 ----
+ VIWIN win
+
+ PPCODE:
+! if (items == 1)
+ {
+ EXTEND(sp, 2);
+ if (!win_valid(win))
+***************
+*** 1116,1122 ****
+ PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
+ PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
+ }
+! else if(items == 3)
+ {
+ int lnum, col;
+
+--- 1116,1122 ----
+ PUSHs(sv_2mortal(newSViv(win->w_cursor.lnum)));
+ PUSHs(sv_2mortal(newSViv(win->w_cursor.col)));
+ }
+! else if (items == 3)
+ {
+ int lnum, col;
+
+***************
+*** 1249,1257 ****
+ {
+ lnum = SvIV(ST(1));
+ count = 1 + SvIV(ST(2)) - lnum;
+! if(count == 0)
+ count = 1;
+! if(count < 0)
+ {
+ lnum -= count;
+ count = -count;
+--- 1249,1257 ----
+ {
+ lnum = SvIV(ST(1));
+ count = 1 + SvIV(ST(2)) - lnum;
+! if (count == 0)
+ count = 1;
+! if (count < 0)
+ {
+ lnum -= count;
+ count = -count;
+*** ../vim-7.3.262/src/if_tcl.c 2010-12-17 20:23:56.000000000 +0100
+--- src/if_tcl.c 2011-07-27 14:11:03.000000000 +0200
+***************
+*** 1884,1897 ****
+ {
+ int newerr = OK;
+
+! if (error == TCL_EXIT )
+ {
+ int retval;
+ char buf[50];
+ Tcl_Obj *robj;
+
+ robj = Tcl_GetObjResult(tclinfo.interp);
+! if( Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK )
+ {
+ EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+ newerr = FAIL;
+--- 1884,1897 ----
+ {
+ int newerr = OK;
+
+! if (error == TCL_EXIT)
+ {
+ int retval;
+ char buf[50];
+ Tcl_Obj *robj;
+
+ robj = Tcl_GetObjResult(tclinfo.interp);
+! if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
+ {
+ EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+ newerr = FAIL;
+***************
+*** 1900,1906 ****
+ {
+ sprintf(buf, _("E572: exit code %d"), retval);
+ tclerrmsg(buf);
+! if (retval == 0 )
+ {
+ did_emsg = 0;
+ newerr = OK;
+--- 1900,1906 ----
+ {
+ sprintf(buf, _("E572: exit code %d"), retval);
+ tclerrmsg(buf);
+! if (retval == 0)
+ {
+ did_emsg = 0;
+ newerr = OK;
+*** ../vim-7.3.262/src/version.c 2011-07-27 14:09:05.000000000 +0200
+--- src/version.c 2011-07-27 14:12:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 263,
+ /**/
+
+--
+DEAD PERSON: I don't want to go in the cart!
+CUSTOMER: Oh, don't be such a baby.
+MORTICIAN: I can't take him...
+DEAD PERSON: I feel fine!
+CUSTOMER: Oh, do us a favor...
+MORTICIAN: I can't.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.264 b/source/ap/vim/patches/7.3.264
new file mode 100644
index 000000000..71ec851f3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.264
@@ -0,0 +1,159 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.264
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.264
+Problem: When the current directory name contains wildcard characters, such
+ as "foo[with]bar", the tags file can't be found. (Jeremy
+ Erickson)
+Solution: When searching for matching files also match without expanding
+ wildcards. This is a bit of a hack.
+Files: src/vim.h, src/misc1.c, src/misc2.c
+
+
+*** ../vim-7.3.263/src/vim.h 2011-07-20 15:04:52.000000000 +0200
+--- src/vim.h 2011-07-27 16:21:38.000000000 +0200
+***************
+*** 816,821 ****
+--- 816,822 ----
+ #define EW_PATH 0x80 /* search in 'path' too */
+ #define EW_ICASE 0x100 /* ignore case */
+ #define EW_NOERROR 0x200 /* no error for bad regexp */
++ #define EW_NOTWILD 0x400 /* add match with literal name if exists */
+ /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND
+ * is used when executing commands and EW_SILENT for interactive expanding. */
+
+*** ../vim-7.3.263/src/misc1.c 2011-07-20 15:04:52.000000000 +0200
+--- src/misc1.c 2011-07-27 17:24:39.000000000 +0200
+***************
+*** 9119,9125 ****
+ * all entries found with "matchname". */
+ if ((p[0] != '.' || starts_with_dot)
+ && (matchname == NULL
+! || vim_regexec(&regmatch, p, (colnr_T)0)))
+ {
+ #ifdef WIN3264
+ STRCPY(s, p);
+--- 9119,9127 ----
+ * all entries found with "matchname". */
+ if ((p[0] != '.' || starts_with_dot)
+ && (matchname == NULL
+! || vim_regexec(&regmatch, p, (colnr_T)0)
+! || ((flags & EW_NOTWILD)
+! && fnamencmp(path + (s - buf), p, e - s) == 0)))
+ {
+ #ifdef WIN3264
+ STRCPY(s, p);
+***************
+*** 9323,9329 ****
+ e = p;
+ *e = NUL;
+
+! /* now we have one wildcard component between "s" and "e" */
+ /* Remove backslashes between "wildoff" and the start of the wildcard
+ * component. */
+ for (p = buf + wildoff; p < s; ++p)
+--- 9325,9331 ----
+ e = p;
+ *e = NUL;
+
+! /* Now we have one wildcard component between "s" and "e". */
+ /* Remove backslashes between "wildoff" and the start of the wildcard
+ * component. */
+ for (p = buf + wildoff; p < s; ++p)
+***************
+*** 9390,9396 ****
+ if (dp == NULL)
+ break;
+ if ((dp->d_name[0] != '.' || starts_with_dot)
+! && vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
+ {
+ STRCPY(s, dp->d_name);
+ len = STRLEN(buf);
+--- 9392,9400 ----
+ if (dp == NULL)
+ break;
+ if ((dp->d_name[0] != '.' || starts_with_dot)
+! && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
+! || ((flags & EW_NOTWILD)
+! && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+ {
+ STRCPY(s, dp->d_name);
+ len = STRLEN(buf);
+*** ../vim-7.3.263/src/misc2.c 2011-07-07 17:15:29.000000000 +0200
+--- src/misc2.c 2011-07-27 17:21:10.000000000 +0200
+***************
+*** 4653,4661 ****
+ {
+ if (r_ptr[0] == '\\' && r_ptr[1] == ';')
+ {
+! /* overwrite the escape char,
+! * use STRLEN(r_ptr) to move the trailing '\0'
+! */
+ STRMOVE(r_ptr, r_ptr + 1);
+ r_ptr++;
+ }
+--- 4653,4660 ----
+ {
+ if (r_ptr[0] == '\\' && r_ptr[1] == ';')
+ {
+! /* Overwrite the escape char,
+! * use STRLEN(r_ptr) to move the trailing '\0'. */
+ STRMOVE(r_ptr, r_ptr + 1);
+ r_ptr++;
+ }
+***************
+*** 4914,4923 ****
+ stackp->ffs_filearray_size = 0;
+ }
+ else
+ expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
+ &stackp->ffs_filearray_size,
+ &stackp->ffs_filearray,
+! EW_DIR|EW_ADDSLASH|EW_SILENT);
+
+ stackp->ffs_filearray_cur = 0;
+ stackp->ffs_stage = 0;
+--- 4913,4925 ----
+ stackp->ffs_filearray_size = 0;
+ }
+ else
++ /* Add EW_NOTWILD because the expanded path may contain
++ * wildcard characters that are to be taken literally.
++ * This is a bit of a hack. */
+ expand_wildcards((dirptrs[1] == NULL) ? 1 : 2, dirptrs,
+ &stackp->ffs_filearray_size,
+ &stackp->ffs_filearray,
+! EW_DIR|EW_ADDSLASH|EW_SILENT|EW_NOTWILD);
+
+ stackp->ffs_filearray_cur = 0;
+ stackp->ffs_stage = 0;
+*** ../vim-7.3.263/src/version.c 2011-07-27 14:15:41.000000000 +0200
+--- src/version.c 2011-07-27 17:25:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 264,
+ /**/
+
+--
+CUSTOMER: You're not fooling anyone y'know. Look, isn't there something
+ you can do?
+DEAD PERSON: I feel happy... I feel happy.
+ [whop]
+CUSTOMER: Ah, thanks very much.
+MORTICIAN: Not at all. See you on Thursday.
+CUSTOMER: Right.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.265 b/source/ap/vim/patches/7.3.265
new file mode 100644
index 000000000..98cb1b4e0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.265
@@ -0,0 +1,145 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.265
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.265
+Problem: When storing a pattern in search history there is no proper check
+ for the separator character.
+Solution: Pass the separator character to in_history(). (Muraoka Taro)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.264/src/ex_getln.c 2011-07-07 16:44:33.000000000 +0200
+--- src/ex_getln.c 2011-07-27 17:50:35.000000000 +0200
+***************
+*** 67,73 ****
+
+ static int hist_char2type __ARGS((int c));
+
+! static int in_history __ARGS((int, char_u *, int));
+ # ifdef FEAT_EVAL
+ static int calc_hist_idx __ARGS((int histype, int num));
+ # endif
+--- 67,73 ----
+
+ static int hist_char2type __ARGS((int c));
+
+! static int in_history __ARGS((int, char_u *, int, int));
+ # ifdef FEAT_EVAL
+ static int calc_hist_idx __ARGS((int histype, int num));
+ # endif
+***************
+*** 5289,5301 ****
+ * If 'move_to_front' is TRUE, matching entry is moved to end of history.
+ */
+ static int
+! in_history(type, str, move_to_front)
+ int type;
+ char_u *str;
+ int move_to_front; /* Move the entry to the front if it exists */
+ {
+ int i;
+ int last_i = -1;
+
+ if (hisidx[type] < 0)
+ return FALSE;
+--- 5289,5303 ----
+ * If 'move_to_front' is TRUE, matching entry is moved to end of history.
+ */
+ static int
+! in_history(type, str, move_to_front, sep)
+ int type;
+ char_u *str;
+ int move_to_front; /* Move the entry to the front if it exists */
++ int sep;
+ {
+ int i;
+ int last_i = -1;
++ char_u *p;
+
+ if (hisidx[type] < 0)
+ return FALSE;
+***************
+*** 5304,5310 ****
+ {
+ if (history[type][i].hisstr == NULL)
+ return FALSE;
+! if (STRCMP(str, history[type][i].hisstr) == 0)
+ {
+ if (!move_to_front)
+ return TRUE;
+--- 5306,5317 ----
+ {
+ if (history[type][i].hisstr == NULL)
+ return FALSE;
+!
+! /* For search history, check that the separator character matches as
+! * well. */
+! p = history[type][i].hisstr;
+! if (STRCMP(str, p) == 0
+! && (type != HIST_SEARCH || sep == p[STRLEN(p) + 1]))
+ {
+ if (!move_to_front)
+ return TRUE;
+***************
+*** 5398,5404 ****
+ }
+ last_maptick = -1;
+ }
+! if (!in_history(histype, new_entry, TRUE))
+ {
+ if (++hisidx[histype] == hislen)
+ hisidx[histype] = 0;
+--- 5405,5411 ----
+ }
+ last_maptick = -1;
+ }
+! if (!in_history(histype, new_entry, TRUE, sep))
+ {
+ if (++hisidx[histype] == hislen)
+ hisidx[histype] = 0;
+***************
+*** 5977,5983 ****
+ if (val != NULL && *val != NUL)
+ {
+ if (!in_history(type, val + (type == HIST_SEARCH),
+! viminfo_add_at_front))
+ {
+ /* Need to re-allocate to append the separator byte. */
+ len = STRLEN(val);
+--- 5984,5990 ----
+ if (val != NULL && *val != NUL)
+ {
+ if (!in_history(type, val + (type == HIST_SEARCH),
+! viminfo_add_at_front, *val))
+ {
+ /* Need to re-allocate to append the separator byte. */
+ len = STRLEN(val);
+*** ../vim-7.3.264/src/version.c 2011-07-27 17:31:42.000000000 +0200
+--- src/version.c 2011-07-27 17:58:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 265,
+ /**/
+
+--
+ [clop clop]
+MORTICIAN: Who's that then?
+CUSTOMER: I don't know.
+MORTICIAN: Must be a king.
+CUSTOMER: Why?
+MORTICIAN: He hasn't got shit all over him.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.266 b/source/ap/vim/patches/7.3.266
new file mode 100644
index 000000000..373280ee4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.266
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.266
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.266
+Problem: In Gvim with iBus typing space in Insert mode doesn't work.
+Solution: Clear xim_expected_char after checking it.
+Files: src/mbyte.c
+
+
+*** ../vim-7.3.265/src/mbyte.c 2011-07-15 21:16:54.000000000 +0200
+--- src/mbyte.c 2011-07-27 18:21:13.000000000 +0200
+***************
+*** 5170,5175 ****
+--- 5170,5179 ----
+ /* We had a keypad key, and XIM tried to thieve it */
+ return FALSE;
+
++ /* This is supposed to fix a problem with iBus, that space
++ * characters don't work in input mode. */
++ xim_expected_char = NUL;
++
+ /* Normal processing */
+ return imresult;
+ }
+*** ../vim-7.3.265/src/version.c 2011-07-27 17:58:42.000000000 +0200
+--- src/version.c 2011-07-27 18:23:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 266,
+ /**/
+
+--
+ [clop clop]
+ARTHUR: Old woman!
+DENNIS: Man!
+ARTHUR: Man, sorry. What knight lives in that castle over there?
+DENNIS: I'm thirty seven.
+ARTHUR: What?
+DENNIS: I'm thirty seven -- I'm not old!
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.267 b/source/ap/vim/patches/7.3.267
new file mode 100644
index 000000000..d986e5036
--- /dev/null
+++ b/source/ap/vim/patches/7.3.267
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.267
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.267
+Problem: Ruby on Mac OS X 10.7 may crash.
+Solution: Avoid alloc(0). (Bjorn Winckler)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.3.266/src/if_ruby.c 2011-01-17 19:53:20.000000000 +0100
+--- src/if_ruby.c 2011-08-04 18:57:43.000000000 +0200
+***************
+*** 761,771 ****
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! buff = ALLOCA_N(char, RSTRING_LEN(str));
+! strcpy(buff, RSTRING_PTR(str));
+! p = strchr(buff, '\n');
+! if (p) *p = '\0';
+! MSG(buff);
+ return Qnil;
+ }
+
+--- 761,779 ----
+ char *buff, *p;
+
+ str = rb_obj_as_string(str);
+! if (RSTRING_LEN(str) > 0)
+! {
+! /* Only do this when the string isn't empty, alloc(0) causes trouble. */
+! buff = ALLOCA_N(char, RSTRING_LEN(str));
+! strcpy(buff, RSTRING_PTR(str));
+! p = strchr(buff, '\n');
+! if (p) *p = '\0';
+! MSG(buff);
+! }
+! else
+! {
+! MSG("");
+! }
+ return Qnil;
+ }
+
+*** ../vim-7.3.266/src/version.c 2011-07-27 18:25:40.000000000 +0200
+--- src/version.c 2011-08-04 19:07:45.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 267,
+ /**/
+
+--
+There are 10 kinds of people: Those who understand binary and those who don't.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.268 b/source/ap/vim/patches/7.3.268
new file mode 100644
index 000000000..aa848770c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.268
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.268
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.268
+Problem: Vim freezes when executing an external command with zsh.
+Solution: Use O_NOCTTY both in the master and slave. (Bjorn Winckler)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.267/src/os_unix.c 2011-07-07 16:20:45.000000000 +0200
+--- src/os_unix.c 2011-08-04 19:06:14.000000000 +0200
+***************
+*** 3889,3899 ****
+ if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
+ {
+ pty_master_fd = OpenPTY(&tty_name); /* open pty */
+! if (pty_master_fd >= 0 && ((pty_slave_fd =
+! open(tty_name, O_RDWR | O_EXTRA, 0)) < 0))
+ {
+! close(pty_master_fd);
+! pty_master_fd = -1;
+ }
+ }
+ /*
+--- 3889,3909 ----
+ if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE)))
+ {
+ pty_master_fd = OpenPTY(&tty_name); /* open pty */
+! if (pty_master_fd >= 0)
+ {
+! /* Leaving out O_NOCTTY may lead to waitpid() always returning
+! * 0 on Mac OS X 10.7 thereby causing freezes. Let's assume
+! * adding O_NOCTTY always works when defined. */
+! #ifdef O_NOCTTY
+! pty_slave_fd = open(tty_name, O_RDWR | O_NOCTTY | O_EXTRA, 0);
+! #else
+! pty_slave_fd = open(tty_name, O_RDWR | O_EXTRA, 0);
+! #endif
+! if (pty_slave_fd < 0)
+! {
+! close(pty_master_fd);
+! pty_master_fd = -1;
+! }
+ }
+ }
+ /*
+*** ../vim-7.3.267/src/version.c 2011-08-04 19:34:55.000000000 +0200
+--- src/version.c 2011-08-04 19:36:00.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 268,
+ /**/
+
+--
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.269 b/source/ap/vim/patches/7.3.269
new file mode 100644
index 000000000..a0bfc473c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.269
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.269
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.269
+Problem: 'shellcmdflag' only works with one flag.
+Solution: Split into multiple arguments. (Gary Johnson)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.268/src/os_unix.c 2011-08-04 19:36:47.000000000 +0200
+--- src/os_unix.c 2011-08-04 20:27:13.000000000 +0200
+***************
+*** 3795,3802 ****
+--- 3795,3804 ----
+ int retval = -1;
+ char **argv = NULL;
+ int argc;
++ char_u *p_shcf_copy = NULL;
+ int i;
+ char_u *p;
++ char_u *s;
+ int inquote;
+ int pty_master_fd = -1; /* for pty's */
+ # ifdef FEAT_GUI
+***************
+*** 3855,3860 ****
+--- 3857,3875 ----
+ }
+ if (argv == NULL)
+ {
++ /*
++ * Account for possible multiple args in p_shcf.
++ */
++ p = p_shcf;
++ for (;;)
++ {
++ p = skiptowhite(p);
++ if (*p == NUL)
++ break;
++ ++argc;
++ p = skipwhite(p);
++ }
++
+ argv = (char **)alloc((unsigned)((argc + 4) * sizeof(char *)));
+ if (argv == NULL) /* out of memory */
+ goto error;
+***************
+*** 3864,3870 ****
+ {
+ if (extra_shell_arg != NULL)
+ argv[argc++] = (char *)extra_shell_arg;
+! argv[argc++] = (char *)p_shcf;
+ argv[argc++] = (char *)cmd;
+ }
+ argv[argc] = NULL;
+--- 3879,3901 ----
+ {
+ if (extra_shell_arg != NULL)
+ argv[argc++] = (char *)extra_shell_arg;
+!
+! /* Break 'shellcmdflag' into white separated parts. This doesn't
+! * handle quoted strings, they are very unlikely to appear. */
+! p_shcf_copy = alloc((unsigned)STRLEN(p_shcf) + 1);
+! if (p_shcf_copy == NULL) /* out of memory */
+! goto error;
+! s = p_shcf_copy;
+! p = p_shcf;
+! while (*p != NUL)
+! {
+! argv[argc++] = (char *)s;
+! while (*p && *p != ' ' && *p != TAB)
+! *s++ = *p++;
+! *s++ = NUL;
+! p = skipwhite(p);
+! }
+!
+ argv[argc++] = (char *)cmd;
+ }
+ argv[argc] = NULL;
+***************
+*** 4677,4682 ****
+--- 4708,4714 ----
+ }
+ }
+ vim_free(argv);
++ vim_free(p_shcf_copy);
+
+ error:
+ if (!did_settmode)
+*** ../vim-7.3.268/src/version.c 2011-08-04 19:36:47.000000000 +0200
+--- src/version.c 2011-08-04 20:30:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 269,
+ /**/
+
+--
+Be nice to your kids... they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.270 b/source/ap/vim/patches/7.3.270
new file mode 100644
index 000000000..3eaf6bfa0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.270
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.270
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.270
+Problem: Illegal memory access.
+Solution: Swap conditions. (Dominique Pelle)
+Files: src/ops.c
+
+
+*** ../vim-7.3.269/src/ops.c 2011-07-15 17:51:30.000000000 +0200
+--- src/ops.c 2011-08-10 12:07:22.000000000 +0200
+***************
+*** 6311,6317 ****
+ *wc += words;
+
+ /* Add eol_size if the end of line was reached before hitting limit. */
+! if (line[i] == NUL && i < limit)
+ {
+ i += eol_size;
+ chars += eol_size;
+--- 6311,6317 ----
+ *wc += words;
+
+ /* Add eol_size if the end of line was reached before hitting limit. */
+! if (i < limit && line[i] == NUL)
+ {
+ i += eol_size;
+ chars += eol_size;
+*** ../vim-7.3.269/src/version.c 2011-08-04 20:31:50.000000000 +0200
+--- src/version.c 2011-08-10 12:09:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 270,
+ /**/
+
+--
+An indication you must be a manager:
+You give constructive feedback to your dog.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.271 b/source/ap/vim/patches/7.3.271
new file mode 100644
index 000000000..c42d19a82
--- /dev/null
+++ b/source/ap/vim/patches/7.3.271
@@ -0,0 +1,504 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.271
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.271
+Problem: Code not following Vim coding style.
+Solution: Fix the style. (Elias Diem)
+Files: src/gui_photon.c
+
+
+*** ../vim-7.3.270/src/gui_photon.c 2011-07-27 14:09:05.000000000 +0200
+--- src/gui_photon.c 2011-08-10 12:18:35.000000000 +0200
+***************
+*** 358,378 ****
+ }
+
+ static int
+! gui_ph_handle_window_cb( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+ PhWindowEvent_t *we = info->cbdata;
+ ushort_t *width, *height;
+
+! switch( we->event_f ) {
+ case Ph_WM_CLOSE:
+ gui_shell_closed();
+ break;
+
+ case Ph_WM_FOCUS:
+ /* Just in case it's hidden and needs to be shown */
+! gui_mch_mousehide( MOUSE_SHOW );
+
+! if( we->event_state == Ph_WM_EVSTATE_FOCUS )
+ {
+ gui_focus_change(TRUE);
+ gui_mch_start_blink();
+--- 358,378 ----
+ }
+
+ static int
+! gui_ph_handle_window_cb(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+ PhWindowEvent_t *we = info->cbdata;
+ ushort_t *width, *height;
+
+! switch (we->event_f) {
+ case Ph_WM_CLOSE:
+ gui_shell_closed();
+ break;
+
+ case Ph_WM_FOCUS:
+ /* Just in case it's hidden and needs to be shown */
+! gui_mch_mousehide(MOUSE_SHOW);
+
+! if (we->event_state == Ph_WM_EVSTATE_FOCUS)
+ {
+ gui_focus_change(TRUE);
+ gui_mch_start_blink();
+***************
+*** 385,401 ****
+ break;
+
+ case Ph_WM_RESIZE:
+! PtGetResource( gui.vimWindow, Pt_ARG_WIDTH, &width, 0 );
+! PtGetResource( gui.vimWindow, Pt_ARG_HEIGHT, &height, 0 );
+ #ifdef USE_PANEL_GROUP
+ width -= (pg_margin_left + pg_margin_right);
+ height -= (pg_margin_top + pg_margin_bottom);
+ #endif
+! gui_resize_shell( *width, *height );
+! gui_set_shellsize( FALSE, FALSE, RESIZE_BOTH );
+ is_ignore_draw = FALSE;
+! PtEndFlux( gui.vimContainer );
+! PtContainerRelease( gui.vimContainer );
+ break;
+
+ default:
+--- 385,401 ----
+ break;
+
+ case Ph_WM_RESIZE:
+! PtGetResource(gui.vimWindow, Pt_ARG_WIDTH, &width, 0);
+! PtGetResource(gui.vimWindow, Pt_ARG_HEIGHT, &height, 0);
+ #ifdef USE_PANEL_GROUP
+ width -= (pg_margin_left + pg_margin_right);
+ height -= (pg_margin_top + pg_margin_bottom);
+ #endif
+! gui_resize_shell(*width, *height);
+! gui_set_shellsize(FALSE, FALSE, RESIZE_BOTH);
+ is_ignore_draw = FALSE;
+! PtEndFlux(gui.vimContainer);
+! PtContainerRelease(gui.vimContainer);
+ break;
+
+ default:
+***************
+*** 406,412 ****
+ }
+
+ static int
+! gui_ph_handle_scrollbar( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+ PtScrollbarCallback_t *scroll;
+ scrollbar_T *sb;
+--- 406,412 ----
+ }
+
+ static int
+! gui_ph_handle_scrollbar(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+ PtScrollbarCallback_t *scroll;
+ scrollbar_T *sb;
+***************
+*** 415,424 ****
+ scroll = info->cbdata;
+
+ sb = (scrollbar_T *) data;
+! if( sb != NULL )
+ {
+ value = scroll->position;
+! switch( scroll->action )
+ {
+ case Pt_SCROLL_DRAGGED:
+ dragging = TRUE;
+--- 415,424 ----
+ scroll = info->cbdata;
+
+ sb = (scrollbar_T *) data;
+! if (sb != NULL)
+ {
+ value = scroll->position;
+! switch (scroll->action)
+ {
+ case Pt_SCROLL_DRAGGED:
+ dragging = TRUE;
+***************
+*** 436,532 ****
+ }
+
+ static int
+! gui_ph_handle_keyboard( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+ PhKeyEvent_t *key;
+ unsigned char string[6];
+ int len, i;
+ int ch, modifiers;
+
+! key = PhGetData( info->event );
+
+ ch = modifiers = len = 0;
+
+! if( p_mh )
+! gui_mch_mousehide( MOUSE_HIDE );
+
+ /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+! if( key->key_flags & Pk_KF_Compose )
+ {
+ return Pt_CONTINUE;
+ }
+
+! if( (key->key_flags & Pk_KF_Cap_Valid) &&
+! PkIsKeyDown( key->key_flags ) )
+ {
+ #ifdef FEAT_MENU
+ /*
+ * Only show the menu if the Alt key is down, and the Shift & Ctrl
+ * keys aren't down, as well as the other conditions
+ */
+! if( ( ( key->key_mods & Pk_KM_Alt ) &&
+! !( key->key_mods & Pk_KM_Shift ) &&
+! !( key->key_mods & Pk_KM_Ctrl ) ) &&
+ gui.menu_is_active &&
+! ( *p_wak == 'y' ||
+! ( *p_wak == 'm' &&
+! gui_is_menu_shortcut( key->key_cap ) ) ) )
+ {
+ /* Fallthrough and let photon look for the hotkey */
+ return Pt_CONTINUE;
+ }
+ #endif
+
+! for( i = 0; special_keys[i].key_sym != 0; i++ )
+ {
+! if( special_keys[i].key_sym == key->key_cap )
+ {
+ len = 0;
+! if( special_keys[i].vim_code1 == NUL )
+ ch = special_keys[i].vim_code0;
+ else
+ {
+ /* Detect if a keypad number key has been pressed
+ * and change the key if Num Lock is on */
+! if( key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
+! && ( key->key_mods & Pk_KM_Num_Lock ) )
+ {
+ /* FIXME: For now, just map the key to a ascii value
+ * (see <photon/PkKeyDef.h>) */
+ ch = key->key_cap - 0xf080;
+ }
+ else
+! ch = TO_SPECIAL( special_keys[i].vim_code0,
+! special_keys[i].vim_code1 );
+ }
+ break;
+ }
+ }
+
+! if( key->key_mods & Pk_KM_Ctrl )
+ modifiers |= MOD_MASK_CTRL;
+! if( key->key_mods & Pk_KM_Alt )
+ modifiers |= MOD_MASK_ALT;
+! if( key->key_mods & Pk_KM_Shift )
+ modifiers |= MOD_MASK_SHIFT;
+
+ /* Is this not a special key? */
+! if( special_keys[i].key_sym == 0 )
+ {
+! ch = PhTo8859_1( key );
+! if( ch == -1
+ #ifdef FEAT_MBYTE
+! || ( enc_utf8 && ch > 127 )
+ #endif
+ )
+ {
+ #ifdef FEAT_MBYTE
+! len = PhKeyToMb( string, key );
+! if( len > 0 )
+ {
+ static char buf[6];
+ int src_taken, dst_made;
+! if( enc_utf8 != TRUE )
+ {
+ PxTranslateFromUTF(
+ charset_translate,
+--- 436,532 ----
+ }
+
+ static int
+! gui_ph_handle_keyboard(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+ PhKeyEvent_t *key;
+ unsigned char string[6];
+ int len, i;
+ int ch, modifiers;
+
+! key = PhGetData(info->event);
+
+ ch = modifiers = len = 0;
+
+! if (p_mh)
+! gui_mch_mousehide(MOUSE_HIDE);
+
+ /* We're a good lil photon program, aren't we? yes we are, yeess wee arrr */
+! if (key->key_flags & Pk_KF_Compose)
+ {
+ return Pt_CONTINUE;
+ }
+
+! if ((key->key_flags & Pk_KF_Cap_Valid) &&
+! PkIsKeyDown(key->key_flags))
+ {
+ #ifdef FEAT_MENU
+ /*
+ * Only show the menu if the Alt key is down, and the Shift & Ctrl
+ * keys aren't down, as well as the other conditions
+ */
+! if (((key->key_mods & Pk_KM_Alt) &&
+! !(key->key_mods & Pk_KM_Shift) &&
+! !(key->key_mods & Pk_KM_Ctrl)) &&
+ gui.menu_is_active &&
+! (*p_wak == 'y' ||
+! (*p_wak == 'm' &&
+! gui_is_menu_shortcut(key->key_cap))))
+ {
+ /* Fallthrough and let photon look for the hotkey */
+ return Pt_CONTINUE;
+ }
+ #endif
+
+! for(i = 0; special_keys[i].key_sym != 0; i++)
+ {
+! if (special_keys[i].key_sym == key->key_cap)
+ {
+ len = 0;
+! if (special_keys[i].vim_code1 == NUL)
+ ch = special_keys[i].vim_code0;
+ else
+ {
+ /* Detect if a keypad number key has been pressed
+ * and change the key if Num Lock is on */
+! if (key->key_cap >= Pk_KP_Enter && key->key_cap <= Pk_KP_9
+! && (key->key_mods & Pk_KM_Num_Lock))
+ {
+ /* FIXME: For now, just map the key to a ascii value
+ * (see <photon/PkKeyDef.h>) */
+ ch = key->key_cap - 0xf080;
+ }
+ else
+! ch = TO_SPECIAL(special_keys[i].vim_code0,
+! special_keys[i].vim_code1);
+ }
+ break;
+ }
+ }
+
+! if (key->key_mods & Pk_KM_Ctrl)
+ modifiers |= MOD_MASK_CTRL;
+! if (key->key_mods & Pk_KM_Alt)
+ modifiers |= MOD_MASK_ALT;
+! if (key->key_mods & Pk_KM_Shift)
+ modifiers |= MOD_MASK_SHIFT;
+
+ /* Is this not a special key? */
+! if (special_keys[i].key_sym == 0)
+ {
+! ch = PhTo8859_1(key);
+! if (ch == -1
+ #ifdef FEAT_MBYTE
+! || (enc_utf8 && ch > 127)
+ #endif
+ )
+ {
+ #ifdef FEAT_MBYTE
+! len = PhKeyToMb(string, key);
+! if (len > 0)
+ {
+ static char buf[6];
+ int src_taken, dst_made;
+! if (enc_utf8 != TRUE)
+ {
+ PxTranslateFromUTF(
+ charset_translate,
+***************
+*** 2931,2943 ****
+ name_len = (int_u) ( mark - vim_font );
+
+ *font_name = vim_strnsave( vim_font, name_len );
+! if( *font_name != NULL )
+ {
+! if( mark != NULL )
+ {
+! while( *mark != NUL && *mark++ == ':')
+ {
+! switch( tolower( *mark++ ) )
+ {
+ case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
+ case 'b': *font_flags |= PF_STYLE_BOLD; break;
+--- 2931,2943 ----
+ name_len = (int_u) ( mark - vim_font );
+
+ *font_name = vim_strnsave( vim_font, name_len );
+! if (*font_name != NULL)
+ {
+! if (mark != NULL)
+ {
+! while (*mark != NUL && *mark++ == ':')
+ {
+! switch (tolower(*mark++))
+ {
+ case 'a': *font_flags |= PF_STYLE_ANTIALIAS; break;
+ case 'b': *font_flags |= PF_STYLE_BOLD; break;
+***************
+*** 2946,2952 ****
+ case 's':
+ size = getdigits( &mark );
+ /* Restrict the size to some vague limits */
+! if( size < 1 || size > 100 )
+ size = 8;
+
+ *font_size = size;
+--- 2946,2952 ----
+ case 's':
+ size = getdigits( &mark );
+ /* Restrict the size to some vague limits */
+! if (size < 1 || size > 100)
+ size = 8;
+
+ *font_size = size;
+***************
+*** 2973,2990 ****
+ FontQueryInfo info;
+ PhRect_t extent;
+
+! if( vim_font_name == NULL )
+ {
+ /* Default font */
+ vim_font_name = "PC Terminal";
+ }
+
+! if( STRCMP( vim_font_name, "*" ) == 0 )
+ {
+ font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+ "pcterm12", -1, PHFONT_FIXED, NULL );
+
+! if( font_tag == NULL )
+ return FAIL;
+
+ gui_mch_free_font( gui.norm_font );
+--- 2973,2990 ----
+ FontQueryInfo info;
+ PhRect_t extent;
+
+! if (vim_font_name == NULL)
+ {
+ /* Default font */
+ vim_font_name = "PC Terminal";
+ }
+
+! if (STRCMP( vim_font_name, "*" ) == 0)
+ {
+ font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+ "pcterm12", -1, PHFONT_FIXED, NULL );
+
+! if (font_tag == NULL)
+ return FAIL;
+
+ gui_mch_free_font( gui.norm_font );
+***************
+*** 2995,3006 ****
+ }
+ else
+ {
+! if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) == FALSE )
+ return FAIL;
+
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+! if( font_tag == NULL )
+ {
+ vim_free( font_name );
+ return FAIL;
+--- 2995,3006 ----
+ }
+ else
+ {
+! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) == FALSE)
+ return FAIL;
+
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+! if (font_tag == NULL)
+ {
+ vim_free( font_name );
+ return FAIL;
+***************
+*** 3053,3069 ****
+ int_u font_size = 12;
+ int_u font_flags = 0;
+
+! if( gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) != FALSE )
+ {
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+ vim_free( font_name );
+
+! if( font_tag != NULL )
+ return (GuiFont)font_tag;
+ }
+
+! if( report_error )
+ EMSG2(e_font, vim_font_name );
+
+ return FAIL;
+--- 3053,3069 ----
+ int_u font_size = 12;
+ int_u font_flags = 0;
+
+! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) != FALSE)
+ {
+ font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+ vim_free( font_name );
+
+! if (font_tag != NULL)
+ return (GuiFont)font_tag;
+ }
+
+! if (report_error)
+ EMSG2(e_font, vim_font_name );
+
+ return FAIL;
+*** ../vim-7.3.270/src/version.c 2011-08-10 12:10:55.000000000 +0200
+--- src/version.c 2011-08-10 12:17:06.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 271,
+ /**/
+
+--
+An indication you must be a manager:
+You believe you never have any problems in your life, just
+"issues" and "improvement opportunities".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.272 b/source/ap/vim/patches/7.3.272
new file mode 100644
index 000000000..b512a1fd7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.272
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.272
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.272
+Problem: ":put =list" does not add an empty line for a trailing empty
+ item.
+Solution: Add a trailing NL when turning a list into a string.
+Files: src/eval.c
+
+
+*** ../vim-7.3.271/src/eval.c 2011-07-15 21:24:06.000000000 +0200
+--- src/eval.c 2011-08-10 12:31:51.000000000 +0200
+***************
+*** 1357,1363 ****
+--- 1357,1367 ----
+ {
+ ga_init2(&ga, (int)sizeof(char), 80);
+ if (tv.vval.v_list != NULL)
++ {
+ list_join(&ga, tv.vval.v_list, (char_u *)"\n", TRUE, 0);
++ if (tv.vval.v_list->lv_len > 0)
++ ga_append(&ga, NL);
++ }
+ ga_append(&ga, NUL);
+ retval = (char_u *)ga.ga_data;
+ }
+*** ../vim-7.3.271/src/version.c 2011-08-10 12:19:00.000000000 +0200
+--- src/version.c 2011-08-10 12:36:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 272,
+ /**/
+
+--
+Lose weight, NEVER Diet again with
+ The "Invisible Weight Loss Patch"
+ (spam e-mail)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.273 b/source/ap/vim/patches/7.3.273
new file mode 100644
index 000000000..e74eb5a2a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.273
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.273
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.273
+Problem: A BOM in an error file is seen as text. (Aleksey Baibarin)
+Solution: Remove the BOM from the text before evaluating. (idea by Christian
+ Brabandt)
+Files: src/quickfix.c, src/mbyte.c, src/proto/mbyte.pro,
+ src/testdir/test10.in
+
+
+*** ../vim-7.3.272/src/quickfix.c 2011-05-19 17:42:54.000000000 +0200
+--- src/quickfix.c 2011-08-10 12:56:15.000000000 +0200
+***************
+*** 561,566 ****
+--- 561,570 ----
+ break;
+
+ IObuff[CMDBUFFSIZE - 2] = NUL; /* for very long lines */
++ #ifdef FEAT_MBYTE
++ remove_bom(IObuff);
++ #endif
++
+ if ((efmp = vim_strrchr(IObuff, '\n')) != NULL)
+ *efmp = NUL;
+ #ifdef USE_CRNL
+*** ../vim-7.3.272/src/mbyte.c 2011-07-27 18:25:40.000000000 +0200
+--- src/mbyte.c 2011-08-10 13:11:56.000000000 +0200
+***************
+*** 838,843 ****
+--- 838,864 ----
+ }
+
+ /*
++ * Remove all BOM from "s" by moving remaining text.
++ */
++ void
++ remove_bom(s)
++ char_u *s;
++ {
++ if (enc_utf8)
++ {
++ char_u *p = s;
++
++ while ((p = vim_strbyte(p, 0xef)) != NULL)
++ {
++ if (p[1] == 0xbb && p[2] == 0xbf)
++ STRMOVE(p, p + 3);
++ else
++ ++p;
++ }
++ }
++ }
++
++ /*
+ * Get class of pointer:
+ * 0 for blank or NUL
+ * 1 for punctuation
+*** ../vim-7.3.272/src/proto/mbyte.pro 2011-07-07 15:08:53.000000000 +0200
+--- src/proto/mbyte.pro 2011-08-10 12:50:44.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,8 ----
+ int enc_canon_props __ARGS((char_u *name));
+ char_u *mb_init __ARGS((void));
+ int bomb_size __ARGS((void));
++ void remove_bom __ARGS((char_u *s));
+ int mb_get_class __ARGS((char_u *p));
+ int dbcs_class __ARGS((unsigned lead, unsigned trail));
+ int latin_char2len __ARGS((int c));
+*** ../vim-7.3.272/src/testdir/test10.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test10.in 2011-08-10 13:01:46.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,10 ----
+
+ STARTTEST
+ :so small.vim
++ :" Also test a BOM is ignored.
++ :so mbyte.vim
++ :set encoding=utf-8
+ :/start of errorfile/,/end of errorfile/w! Xerrorfile
+ :/start of testfile/,/end of testfile/w! Xtestfile
+ :cf Xerrorfile
+***************
+*** 20,26 ****
+
+ start of errorfile
+ "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! "Xtestfile", line 7 col 19; this is an error
+ gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
+ Xtestfile:13: parse error before `asd'
+ make: *** [vim] Error 1
+--- 23,29 ----
+
+ start of errorfile
+ "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! "Xtestfile", line 7 col 19; this is an error
+ gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
+ Xtestfile:13: parse error before `asd'
+ make: *** [vim] Error 1
+*** ../vim-7.3.272/src/version.c 2011-08-10 12:38:02.000000000 +0200
+--- src/version.c 2011-08-10 13:14:35.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 273,
+ /**/
+
+--
+Compilation process failed successfully.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.274 b/source/ap/vim/patches/7.3.274
new file mode 100644
index 000000000..48faf3cf0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.274
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.274
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.274
+Problem: With concealed characters tabs do not have the right size.
+Solution: Use VCOL_HLC instead of vcol. (Eiichi Sato)
+Files: src/screen.c
+
+
+*** ../vim-7.3.273/src/screen.c 2011-03-22 13:29:20.000000000 +0100
+--- src/screen.c 2011-08-10 14:22:47.000000000 +0200
+***************
+*** 4252,4258 ****
+ {
+ /* tab amount depends on current column */
+ n_extra = (int)wp->w_buffer->b_p_ts
+! - vcol % (int)wp->w_buffer->b_p_ts - 1;
+ #ifdef FEAT_MBYTE
+ mb_utf8 = FALSE; /* don't draw as UTF-8 */
+ #endif
+--- 4252,4258 ----
+ {
+ /* tab amount depends on current column */
+ n_extra = (int)wp->w_buffer->b_p_ts
+! - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1;
+ #ifdef FEAT_MBYTE
+ mb_utf8 = FALSE; /* don't draw as UTF-8 */
+ #endif
+*** ../vim-7.3.273/src/version.c 2011-08-10 13:21:30.000000000 +0200
+--- src/version.c 2011-08-10 14:23:38.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 274,
+ /**/
+
+--
+ Arthur pulls Pin out. The MONK blesses the grenade as ...
+ARTHUR: (quietly) One, two, five ...
+GALAHAD: Three, sir!
+ARTHUR: Three.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.275 b/source/ap/vim/patches/7.3.275
new file mode 100644
index 000000000..2bdd145b9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.275
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.275
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.275
+Problem: MS-Windows: When using a black background some screen updates
+ cause the window to flicker.
+Solution: Add WS_CLIPCHILDREN to CreateWindow(). (René Aguirre)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.3.274/src/gui_w32.c 2011-07-07 17:43:37.000000000 +0200
+--- src/gui_w32.c 2011-08-10 14:40:58.000000000 +0200
+***************
+*** 1379,1385 ****
+ s_hwnd = CreateWindowEx(
+ WS_EX_MDICHILD,
+ szVimWndClass, "Vim MSWindows GUI",
+! WS_OVERLAPPEDWINDOW | WS_CHILD | WS_CLIPSIBLINGS | 0xC000,
+ gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+ gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+ 100, /* Any value will do */
+--- 1379,1386 ----
+ s_hwnd = CreateWindowEx(
+ WS_EX_MDICHILD,
+ szVimWndClass, "Vim MSWindows GUI",
+! WS_OVERLAPPEDWINDOW | WS_CHILD
+! | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | 0xC000,
+ gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+ gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+ 100, /* Any value will do */
+***************
+*** 1410,1416 ****
+ * titlebar, it will be reparented below. */
+ s_hwnd = CreateWindow(
+ szVimWndClass, "Vim MSWindows GUI",
+! win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP,
+ gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+ gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+ 100, /* Any value will do */
+--- 1411,1418 ----
+ * titlebar, it will be reparented below. */
+ s_hwnd = CreateWindow(
+ szVimWndClass, "Vim MSWindows GUI",
+! (win_socket_id == 0 ? WS_OVERLAPPEDWINDOW : WS_POPUP)
+! | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+ gui_win_x == -1 ? CW_USEDEFAULT : gui_win_x,
+ gui_win_y == -1 ? CW_USEDEFAULT : gui_win_y,
+ 100, /* Any value will do */
+*** ../vim-7.3.274/src/version.c 2011-08-10 14:32:33.000000000 +0200
+--- src/version.c 2011-08-10 14:39:14.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 275,
+ /**/
+
+--
+ARTHUR: What does it say?
+BROTHER MAYNARD: It reads ... "Here may be found the last words of Joseph of
+ Aramathea." "He who is valorous and pure of heart may find
+ the Holy Grail in the aaaaarrrrrrggghhh..."
+ARTHUR: What?
+BROTHER MAYNARD: "The Aaaaarrrrrrggghhh..."
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.276 b/source/ap/vim/patches/7.3.276
new file mode 100644
index 000000000..3af02457d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.276
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.276
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.276
+Problem: GvimExt sets $LANG in the wrong way.
+Solution: Save the environment and use it for gvim. (Yasuhiro Matsumoto)
+Files: src/GvimExt/gvimext.cpp
+
+
+*** ../vim-7.3.275/src/GvimExt/gvimext.cpp 2011-07-20 17:27:17.000000000 +0200
+--- src/GvimExt/gvimext.cpp 2011-08-10 16:25:32.000000000 +0200
+***************
+*** 142,147 ****
+--- 142,148 ----
+ static int dyn_libintl_init(char *dir);
+ static void dyn_libintl_end(void);
+
++ static wchar_t *oldenv = NULL;
+ static HINSTANCE hLibintlDLL = 0;
+ static char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
+ static char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
+***************
+*** 339,346 ****
+ inc_cRefThisDLL()
+ {
+ #ifdef FEAT_GETTEXT
+! if (g_cRefThisDll == 0)
+ dyn_gettext_load();
+ #endif
+ InterlockedIncrement((LPLONG)&g_cRefThisDll);
+ }
+--- 340,349 ----
+ inc_cRefThisDLL()
+ {
+ #ifdef FEAT_GETTEXT
+! if (g_cRefThisDll == 0) {
+ dyn_gettext_load();
++ oldenv = GetEnvironmentStringsW();
++ }
+ #endif
+ InterlockedIncrement((LPLONG)&g_cRefThisDll);
+ }
+***************
+*** 349,356 ****
+ dec_cRefThisDLL()
+ {
+ #ifdef FEAT_GETTEXT
+! if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0)
+ dyn_gettext_free();
+ #else
+ InterlockedDecrement((LPLONG)&g_cRefThisDll);
+ #endif
+--- 352,364 ----
+ dec_cRefThisDLL()
+ {
+ #ifdef FEAT_GETTEXT
+! if (InterlockedDecrement((LPLONG)&g_cRefThisDll) == 0) {
+ dyn_gettext_free();
++ if (oldenv != NULL) {
++ FreeEnvironmentStringsW(oldenv);
++ oldenv = NULL;
++ }
++ }
+ #else
+ InterlockedDecrement((LPLONG)&g_cRefThisDll);
+ #endif
+***************
+*** 905,912 ****
+ NULL, // Process handle not inheritable.
+ NULL, // Thread handle not inheritable.
+ FALSE, // Set handle inheritance to FALSE.
+! 0, // No creation flags.
+! NULL, // Use parent's environment block.
+ NULL, // Use parent's starting directory.
+ &si, // Pointer to STARTUPINFO structure.
+ &pi) // Pointer to PROCESS_INFORMATION structure.
+--- 913,920 ----
+ NULL, // Process handle not inheritable.
+ NULL, // Thread handle not inheritable.
+ FALSE, // Set handle inheritance to FALSE.
+! oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
+! oldenv, // Use unmodified environment block.
+ NULL, // Use parent's starting directory.
+ &si, // Pointer to STARTUPINFO structure.
+ &pi) // Pointer to PROCESS_INFORMATION structure.
+***************
+*** 987,994 ****
+ NULL, // Process handle not inheritable.
+ NULL, // Thread handle not inheritable.
+ FALSE, // Set handle inheritance to FALSE.
+! 0, // No creation flags.
+! NULL, // Use parent's environment block.
+ NULL, // Use parent's starting directory.
+ &si, // Pointer to STARTUPINFO structure.
+ &pi) // Pointer to PROCESS_INFORMATION structure.
+--- 995,1002 ----
+ NULL, // Process handle not inheritable.
+ NULL, // Thread handle not inheritable.
+ FALSE, // Set handle inheritance to FALSE.
+! oldenv == NULL ? 0 : CREATE_UNICODE_ENVIRONMENT,
+! oldenv, // Use unmodified environment block.
+ NULL, // Use parent's starting directory.
+ &si, // Pointer to STARTUPINFO structure.
+ &pi) // Pointer to PROCESS_INFORMATION structure.
+*** ../vim-7.3.275/src/version.c 2011-08-10 15:56:24.000000000 +0200
+--- src/version.c 2011-08-10 16:28:42.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 276,
+ /**/
+
+--
+User: I'm having problems with my text editor.
+Help desk: Which editor are you using?
+User: I don't know, but it's version VI (pronounced: 6).
+Help desk: Oh, then you should upgrade to version VIM (pronounced: 994).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.277 b/source/ap/vim/patches/7.3.277
new file mode 100644
index 000000000..3509a1a6f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.277
@@ -0,0 +1,348 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.277
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.277
+Problem: MS-Windows: some characters do not show in dialogs.
+Solution: Use the wide methods when available. (Yanwei Jia)
+Files: src/gui_w32.c, src/gui_w48.c, src/os_mswin.c, src/os_win32.c,
+ src/os_win32.h
+
+
+*** ../vim-7.3.276/src/gui_w32.c 2011-08-10 15:56:24.000000000 +0200
+--- src/gui_w32.c 2011-08-10 16:52:55.000000000 +0200
+***************
+*** 1270,1275 ****
+--- 1270,1294 ----
+ pGetMonitorInfo = (TGetMonitorInfo)GetProcAddress(user32_lib,
+ "GetMonitorInfoA");
+ }
++
++ #ifdef FEAT_MBYTE
++ /* If the OS is Windows NT, use wide functions;
++ * this enables common dialogs input unicode from IME. */
++ if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT)
++ {
++ pDispatchMessage = DispatchMessageW;
++ pGetMessage = GetMessageW;
++ pIsDialogMessage = IsDialogMessageW;
++ pPeekMessage = PeekMessageW;
++ }
++ else
++ {
++ pDispatchMessage = DispatchMessageA;
++ pGetMessage = GetMessageA;
++ pIsDialogMessage = IsDialogMessageA;
++ pPeekMessage = PeekMessageA;
++ }
++ #endif
+ }
+
+ /*
+*** ../vim-7.3.276/src/gui_w48.c 2010-10-20 21:22:17.000000000 +0200
+--- src/gui_w48.c 2011-08-10 16:49:39.000000000 +0200
+***************
+*** 390,396 ****
+ KillTimer(NULL, idEvent);
+
+ /* Eat spurious WM_TIMER messages */
+! while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+
+ if (blink_state == BLINK_ON)
+--- 390,396 ----
+ KillTimer(NULL, idEvent);
+
+ /* Eat spurious WM_TIMER messages */
+! while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+
+ if (blink_state == BLINK_ON)
+***************
+*** 418,424 ****
+ {
+ KillTimer(NULL, blink_timer);
+ /* Eat spurious WM_TIMER messages */
+! while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ blink_timer = 0;
+ }
+--- 418,424 ----
+ {
+ KillTimer(NULL, blink_timer);
+ /* Eat spurious WM_TIMER messages */
+! while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ blink_timer = 0;
+ }
+***************
+*** 476,482 ****
+ s_timed_out = TRUE;
+
+ /* Eat spurious WM_TIMER messages */
+! while (PeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ if (idEvent == s_wait_timer)
+ s_wait_timer = 0;
+--- 476,482 ----
+ s_timed_out = TRUE;
+
+ /* Eat spurious WM_TIMER messages */
+! while (pPeekMessage(&msg, hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ if (idEvent == s_wait_timer)
+ s_wait_timer = 0;
+***************
+*** 1707,1713 ****
+ static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
+ #endif
+
+! GetMessage(&msg, NULL, 0, 0);
+
+ #ifdef FEAT_OLE
+ /* Look after OLE Automation commands */
+--- 1707,1713 ----
+ static char_u k10[] = {K_SPECIAL, 'k', ';', 0};
+ #endif
+
+! pGetMessage(&msg, NULL, 0, 0);
+
+ #ifdef FEAT_OLE
+ /* Look after OLE Automation commands */
+***************
+*** 1718,1724 ****
+ {
+ /* Message can't be ours, forward it. Fixes problem with Ultramon
+ * 3.0.4 */
+! DispatchMessage(&msg);
+ }
+ else
+ {
+--- 1718,1724 ----
+ {
+ /* Message can't be ours, forward it. Fixes problem with Ultramon
+ * 3.0.4 */
+! pDispatchMessage(&msg);
+ }
+ else
+ {
+***************
+*** 1749,1762 ****
+ if (msg.message == WM_USER)
+ {
+ MyTranslateMessage(&msg);
+! DispatchMessage(&msg);
+ return;
+ }
+ #endif
+
+ #ifdef MSWIN_FIND_REPLACE
+ /* Don't process messages used by the dialog */
+! if (s_findrep_hwnd != NULL && IsDialogMessage(s_findrep_hwnd, &msg))
+ {
+ HandleMouseHide(msg.message, msg.lParam);
+ return;
+--- 1749,1762 ----
+ if (msg.message == WM_USER)
+ {
+ MyTranslateMessage(&msg);
+! pDispatchMessage(&msg);
+ return;
+ }
+ #endif
+
+ #ifdef MSWIN_FIND_REPLACE
+ /* Don't process messages used by the dialog */
+! if (s_findrep_hwnd != NULL && pIsDialogMessage(s_findrep_hwnd, &msg))
+ {
+ HandleMouseHide(msg.message, msg.lParam);
+ return;
+***************
+*** 1928,1934 ****
+ if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
+ NULL, NULL) == NULL)
+ #endif
+! DispatchMessage(&msg);
+ }
+
+ /*
+--- 1928,1934 ----
+ if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
+ NULL, NULL) == NULL)
+ #endif
+! pDispatchMessage(&msg);
+ }
+
+ /*
+***************
+*** 1943,1949 ****
+ MSG msg;
+
+ if (!s_busy_processing)
+! while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
+ && !vim_is_input_buf_full())
+ process_message();
+ }
+--- 1943,1949 ----
+ MSG msg;
+
+ if (!s_busy_processing)
+! while (pPeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)
+ && !vim_is_input_buf_full())
+ process_message();
+ }
+***************
+*** 2019,2025 ****
+ KillTimer(NULL, s_wait_timer);
+
+ /* Eat spurious WM_TIMER messages */
+! while (PeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ s_wait_timer = 0;
+ }
+--- 2019,2025 ----
+ KillTimer(NULL, s_wait_timer);
+
+ /* Eat spurious WM_TIMER messages */
+! while (pPeekMessage(&msg, s_hwnd, WM_TIMER, WM_TIMER, PM_REMOVE))
+ ;
+ s_wait_timer = 0;
+ }
+*** ../vim-7.3.276/src/os_mswin.c 2011-06-19 01:30:01.000000000 +0200
+--- src/os_mswin.c 2011-08-10 16:45:24.000000000 +0200
+***************
+*** 1856,1867 ****
+ {
+ MSG msg;
+
+! while (!*bUserAbort && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+ {
+! if (!hDlgPrint || !IsDialogMessage(hDlgPrint, &msg))
+ {
+ TranslateMessage(&msg);
+! DispatchMessage(&msg);
+ }
+ }
+ return !*bUserAbort;
+--- 1856,1867 ----
+ {
+ MSG msg;
+
+! while (!*bUserAbort && pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+ {
+! if (!hDlgPrint || !pIsDialogMessage(hDlgPrint, &msg))
+ {
+ TranslateMessage(&msg);
+! pDispatchMessage(&msg);
+ }
+ }
+ return !*bUserAbort;
+***************
+*** 3132,3141 ****
+ {
+ MSG msg;
+
+! while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&msg);
+! DispatchMessage(&msg);
+ }
+ }
+
+--- 3132,3141 ----
+ {
+ MSG msg;
+
+! while (pPeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&msg);
+! pDispatchMessage(&msg);
+ }
+ }
+
+*** ../vim-7.3.276/src/os_win32.c 2011-07-07 16:20:45.000000000 +0200
+--- src/os_win32.c 2011-08-10 16:54:50.000000000 +0200
+***************
+*** 152,157 ****
+--- 152,165 ----
+ # define wcsicmp(a, b) wcscmpi((a), (b))
+ #endif
+
++ /* Enable common dialogs input unicode from IME if posible. */
++ #ifdef FEAT_MBYTE
++ LRESULT (WINAPI *pDispatchMessage)(LPMSG) = DispatchMessage;
++ BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT) = GetMessage;
++ BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG) = IsDialogMessage;
++ BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT) = PeekMessage;
++ #endif
++
+ #ifndef FEAT_GUI_W32
+ /* Win32 Console handles for input and output */
+ static HANDLE g_hConIn = INVALID_HANDLE_VALUE;
+***************
+*** 3284,3293 ****
+ {
+ MSG msg;
+
+! if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&msg);
+! DispatchMessage(&msg);
+ }
+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+ break;
+--- 3292,3301 ----
+ {
+ MSG msg;
+
+! if (pPeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&msg);
+! pDispatchMessage(&msg);
+ }
+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+ break;
+*** ../vim-7.3.276/src/os_win32.h 2011-05-05 18:31:54.000000000 +0200
+--- src/os_win32.h 2011-08-10 16:51:58.000000000 +0200
+***************
+*** 193,195 ****
+--- 193,209 ----
+ #else
+ # define vim_mkdir(x, y) mch_mkdir(x)
+ #endif
++
++ /* Enable common dialogs input unicode from IME if posible. */
++ #ifdef FEAT_MBYTE
++ /* The variables are defined in os_win32.c. */
++ extern LRESULT (WINAPI *pDispatchMessage)(LPMSG);
++ extern BOOL (WINAPI *pGetMessage)(LPMSG, HWND, UINT, UINT);
++ extern BOOL (WINAPI *pIsDialogMessage)(HWND, LPMSG);
++ extern BOOL (WINAPI *pPeekMessage)(LPMSG, HWND, UINT, UINT, UINT);
++ #else
++ # define pDispatchMessage DispatchMessage
++ # define pGetMessage GetMessage
++ # define pIsDialogMessage IsDialogMessage
++ # define pPeekMessage PeekMessage
++ #endif
+*** ../vim-7.3.276/src/version.c 2011-08-10 16:31:18.000000000 +0200
+--- src/version.c 2011-08-10 17:06:55.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 277,
+ /**/
+
+--
+Veni, Vidi, VW -- I came, I saw, I drove around in a little car.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.278 b/source/ap/vim/patches/7.3.278
new file mode 100644
index 000000000..60bc0ac87
--- /dev/null
+++ b/source/ap/vim/patches/7.3.278
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.278
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.278
+Problem: Passing the file name to open in VisVim doesn't work.
+Solution: Adjust the index and check for end of buffer. (Jiri Sedlak)
+Files: src/VisVim/Commands.cpp
+
+
+*** ../vim-7.3.277/src/VisVim/Commands.cpp 2010-08-15 21:57:27.000000000 +0200
+--- src/VisVim/Commands.cpp 2011-08-10 17:21:27.000000000 +0200
+***************
+*** 549,555 ****
+ if (g_bNewTabs)
+ {
+ sprintf(VimCmd, ":tab drop ");
+! s = VimCmd + 11;
+ }
+ else
+ {
+--- 549,555 ----
+ if (g_bNewTabs)
+ {
+ sprintf(VimCmd, ":tab drop ");
+! s = VimCmd + 10;
+ }
+ else
+ {
+***************
+*** 557,564 ****
+ s = VimCmd + 6;
+ }
+ sprintf(FileNameTmp, "%S", (char *)FileName);
+! for (p = FileNameTmp; *p != '\0' && s < FileNameTmp + MAX_OLE_STR - 4;
+! ++p)
+ if (*p == '\\')
+ *s++ = '/';
+ else
+--- 557,563 ----
+ s = VimCmd + 6;
+ }
+ sprintf(FileNameTmp, "%S", (char *)FileName);
+! for (p = FileNameTmp; *p != '\0' && s < VimCmd + MAX_OLE_STR - 4; ++p)
+ if (*p == '\\')
+ *s++ = '/';
+ else
+*** ../vim-7.3.277/src/version.c 2011-08-10 17:07:56.000000000 +0200
+--- src/version.c 2011-08-10 17:25:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 278,
+ /**/
+
+--
+ARTHUR: But if he was dying, he wouldn't bother to carve
+ "Aaaaarrrrrrggghhh". He'd just say it.
+BROTHER MAYNARD: It's down there carved in stone.
+GALAHAD: Perhaps he was dictating.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.279 b/source/ap/vim/patches/7.3.279
new file mode 100644
index 000000000..6a8814b62
--- /dev/null
+++ b/source/ap/vim/patches/7.3.279
@@ -0,0 +1,118 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.279
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.279
+Problem: With GTK, when gvim is full-screen and a tab is opened and using a
+ specific monitor configuration the window is too big.
+Solution: Adjust the window size like on MS-Windows. (Yukihiro Nakadaira)
+Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.3.278/src/gui.c 2011-06-26 04:48:56.000000000 +0200
+--- src/gui.c 2011-08-10 17:40:31.000000000 +0200
+***************
+*** 1407,1413 ****
+ if (!gui.shell_created)
+ return;
+
+! #ifdef MSWIN
+ /* If not setting to a user specified size and maximized, calculate the
+ * number of characters that fit in the maximized window. */
+ if (!mustset && gui_mch_maximized())
+--- 1407,1413 ----
+ if (!gui.shell_created)
+ return;
+
+! #if defined(MSWIN) || defined(FEAT_GUI_GTK)
+ /* If not setting to a user specified size and maximized, calculate the
+ * number of characters that fit in the maximized window. */
+ if (!mustset && gui_mch_maximized())
+*** ../vim-7.3.278/src/gui_gtk_x11.c 2011-06-26 04:48:56.000000000 +0200
+--- src/gui_gtk_x11.c 2011-08-10 17:42:19.000000000 +0200
+***************
+*** 3900,3905 ****
+--- 3900,3920 ----
+ }
+
+ /*
++ * Called when the font changed while the window is maximized. Compute the
++ * new Rows and Columns. This is like resizing the window.
++ */
++ void
++ gui_mch_newfont()
++ {
++ int w, h;
++
++ gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
++ w -= get_menu_tool_width();
++ h -= get_menu_tool_height();
++ gui_resize_shell(w, h);
++ }
++
++ /*
+ * Set the windows size.
+ */
+ void
+***************
+*** 4409,4422 ****
+
+ if (gui_mch_maximized())
+ {
+- int w, h;
+-
+ /* Update lines and columns in accordance with the new font, keep the
+ * window maximized. */
+! gtk_window_get_size(GTK_WINDOW(gui.mainwin), &w, &h);
+! w -= get_menu_tool_width();
+! h -= get_menu_tool_height();
+! gui_resize_shell(w, h);
+ }
+ else
+ {
+--- 4424,4432 ----
+
+ if (gui_mch_maximized())
+ {
+ /* Update lines and columns in accordance with the new font, keep the
+ * window maximized. */
+! gui_mch_newfont();
+ }
+ else
+ {
+*** ../vim-7.3.278/src/proto/gui_gtk_x11.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/gui_gtk_x11.pro 2011-08-10 17:42:29.000000000 +0200
+***************
+*** 20,25 ****
+--- 20,26 ----
+ void gui_mch_set_winpos __ARGS((int x, int y));
+ int gui_mch_maximized __ARGS((void));
+ void gui_mch_unmaximize __ARGS((void));
++ void gui_mch_newfont __ARGS((void));
+ void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min_height, int base_width, int base_height, int direction));
+ void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
+ void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
+*** ../vim-7.3.278/src/version.c 2011-08-10 17:25:48.000000000 +0200
+--- src/version.c 2011-08-10 17:43:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 279,
+ /**/
+
+--
+LAUNCELOT: Isn't there a St. Aaaaarrrrrrggghhh's in Cornwall?
+ARTHUR: No, that's Saint Ives.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.280 b/source/ap/vim/patches/7.3.280
new file mode 100644
index 000000000..1c1387aee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.280
@@ -0,0 +1,181 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.280
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.280
+Problem: ":lmake" does not update the quickfix window title.
+Solution: Update the title. (Lech Lorens)
+Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
+
+
+*** ../vim-7.3.279/src/quickfix.c 2011-08-10 13:21:30.000000000 +0200
+--- src/quickfix.c 2011-08-10 18:09:19.000000000 +0200
+***************
+*** 126,131 ****
+--- 126,132 ----
+ static win_T *qf_find_win __ARGS((qf_info_T *qi));
+ static buf_T *qf_find_buf __ARGS((qf_info_T *qi));
+ static void qf_update_buffer __ARGS((qf_info_T *qi));
++ static void qf_set_title __ARGS((qf_info_T *qi));
+ static void qf_fill_buffer __ARGS((qf_info_T *qi));
+ #endif
+ static char_u *get_mef_name __ARGS((void));
+***************
+*** 2388,2395 ****
+ qf_fill_buffer(qi);
+
+ if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
+! set_internal_string_var((char_u *)"w:quickfix_title",
+! qi->qf_lists[qi->qf_curlist].qf_title);
+
+ curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
+ curwin->w_cursor.col = 0;
+--- 2389,2395 ----
+ qf_fill_buffer(qi);
+
+ if (qi->qf_lists[qi->qf_curlist].qf_title != NULL)
+! qf_set_title(qi);
+
+ curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index;
+ curwin->w_cursor.col = 0;
+***************
+*** 2526,2531 ****
+--- 2526,2533 ----
+ qf_info_T *qi;
+ {
+ buf_T *buf;
++ win_T *win;
++ win_T *curwin_save;
+ aco_save_T aco;
+
+ /* Check if a buffer for the quickfix list exists. Update it. */
+***************
+*** 2537,2542 ****
+--- 2539,2554 ----
+
+ qf_fill_buffer(qi);
+
++ if (qi->qf_lists[qi->qf_curlist].qf_title != NULL
++ && (win = qf_find_win(qi)) != NULL)
++ {
++ curwin_save = curwin;
++ curwin = win;
++ qf_set_title(qi);
++ curwin = curwin_save;
++
++ }
++
+ /* restore curwin/curbuf and a few other things */
+ aucmd_restbuf(&aco);
+
+***************
+*** 2544,2549 ****
+--- 2556,2569 ----
+ }
+ }
+
++ static void
++ qf_set_title(qi)
++ qf_info_T *qi;
++ {
++ set_internal_string_var((char_u *)"w:quickfix_title",
++ qi->qf_lists[qi->qf_curlist].qf_title);
++ }
++
+ /*
+ * Fill current buffer with quickfix errors, replacing any previous contents.
+ * curbuf must be the quickfix buffer!
+*** ../vim-7.3.279/src/testdir/test10.in 2011-08-10 13:21:30.000000000 +0200
+--- src/testdir/test10.in 2011-08-10 18:28:31.000000000 +0200
+***************
+*** 5,13 ****
+ :" Also test a BOM is ignored.
+ :so mbyte.vim
+ :set encoding=utf-8
+! :/start of errorfile/,/end of errorfile/w! Xerrorfile
+ :/start of testfile/,/end of testfile/w! Xtestfile
+! :cf Xerrorfile
+ rA
+ :cn
+ rB
+--- 5,20 ----
+ :" Also test a BOM is ignored.
+ :so mbyte.vim
+ :set encoding=utf-8
+! :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+! :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+ :/start of testfile/,/end of testfile/w! Xtestfile
+! :cf Xerrorfile2
+! :clast
+! :copen
+! :let a=w:quickfix_title
+! :wincmd p
+! gR=a 
+! :cf Xerrorfile1
+ rA
+ :cn
+ rB
+***************
+*** 17,22 ****
+--- 24,34 ----
+ rD
+ :cn
+ rE
++ :cn
++ :wincmd w
++ :let a=w:quickfix_title
++ :wincmd p
++ gR=a 
+ :w! test.out " Write contents of this file
+ :qa!
+ ENDTEST
+***************
+*** 33,38 ****
+--- 45,52 ----
+ "Xtestfile", linenr 19: yet another problem
+
+ Does anyone know what is the problem and how to correction it?
++ "Xtestfile", line 21 col 9: What is the title of the quickfix window?
++ "Xtestfile", line 22 col 9: What is the title of the quickfix window?
+ end of errorfile
+
+ start of testfile
+*** ../vim-7.3.279/src/testdir/test10.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test10.ok 2011-08-10 18:03:53.000000000 +0200
+***************
+*** 18,23 ****
+ line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ end of testfile
+--- 18,23 ----
+ line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
+! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
+ end of testfile
+*** ../vim-7.3.279/src/version.c 2011-08-10 17:44:41.000000000 +0200
+--- src/version.c 2011-08-10 18:35:52.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 280,
+ /**/
+
+--
+"When I die, I want a tombstone that says "GAME OVER" - Ton Richters
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.281 b/source/ap/vim/patches/7.3.281
new file mode 100644
index 000000000..f90e95e13
--- /dev/null
+++ b/source/ap/vim/patches/7.3.281
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.281
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.281
+Problem: After using "expand('%:8')" the buffer name is changed.
+Solution: Make a copy of the file name before shortening it.
+Files: src/eval.c
+
+
+*** ../vim-7.3.280/src/eval.c 2011-08-10 12:38:02.000000000 +0200
+--- src/eval.c 2011-08-17 15:12:39.000000000 +0200
+***************
+*** 23205,23210 ****
+--- 23205,23211 ----
+ int c;
+ int has_fullname = 0;
+ #ifdef WIN3264
++ char_u *fname_start = *fnamep;
+ int has_shortname = 0;
+ #endif
+
+***************
+*** 23379,23402 ****
+ }
+
+ #ifdef WIN3264
+! /* Check shortname after we have done 'heads' and before we do 'tails'
+ */
+ if (has_shortname)
+ {
+! pbuf = NULL;
+! /* Copy the string if it is shortened by :h */
+! if (*fnamelen < (int)STRLEN(*fnamep))
+ {
+ p = vim_strnsave(*fnamep, *fnamelen);
+! if (p == 0)
+ return -1;
+ vim_free(*bufp);
+ *bufp = *fnamep = p;
+ }
+
+ /* Split into two implementations - makes it easier. First is where
+! * there isn't a full name already, second is where there is.
+! */
+ if (!has_fullname && !vim_isAbsName(*fnamep))
+ {
+ if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
+--- 23380,23404 ----
+ }
+
+ #ifdef WIN3264
+! /*
+! * Handle ":8" after we have done 'heads' and before we do 'tails'.
+ */
+ if (has_shortname)
+ {
+! /* Copy the string if it is shortened by :h and when it wasn't copied
+! * yet, because we are going to change it in place. Avoids changing
+! * the buffer name for "%:8". */
+! if (*fnamelen < (int)STRLEN(*fnamep) || *fnamep == fname_start)
+ {
+ p = vim_strnsave(*fnamep, *fnamelen);
+! if (p == NULL)
+ return -1;
+ vim_free(*bufp);
+ *bufp = *fnamep = p;
+ }
+
+ /* Split into two implementations - makes it easier. First is where
+! * there isn't a full name already, second is where there is. */
+ if (!has_fullname && !vim_isAbsName(*fnamep))
+ {
+ if (shortpath_for_partial(fnamep, bufp, fnamelen) == FAIL)
+***************
+*** 23404,23421 ****
+ }
+ else
+ {
+! int l;
+
+! /* Simple case, already have the full-name
+ * Nearly always shorter, so try first time. */
+- l = *fnamelen;
+ if (get_short_pathname(fnamep, bufp, &l) == FAIL)
+ return -1;
+
+ if (l == 0)
+ {
+! /* Couldn't find the filename.. search the paths.
+! */
+ l = *fnamelen;
+ if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
+ return -1;
+--- 23406,23421 ----
+ }
+ else
+ {
+! int l = *fnamelen;
+
+! /* Simple case, already have the full-name.
+ * Nearly always shorter, so try first time. */
+ if (get_short_pathname(fnamep, bufp, &l) == FAIL)
+ return -1;
+
+ if (l == 0)
+ {
+! /* Couldn't find the filename, search the paths. */
+ l = *fnamelen;
+ if (shortpath_for_invalid_fname(fnamep, bufp, &l) == FAIL)
+ return -1;
+*** ../vim-7.3.280/src/version.c 2011-08-10 18:36:49.000000000 +0200
+--- src/version.c 2011-08-17 15:21:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 281,
+ /**/
+
+--
+Kisses may last for as much as, but no more than, five minutes.
+ [real standing law in Iowa, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.282 b/source/ap/vim/patches/7.3.282
new file mode 100644
index 000000000..dcd16806e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.282
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.282
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.282
+Problem: When using input() and :echo in a loop the displayed text is
+ incorrect. (Benjamin Fritz)
+Solution: Only restore the cursor position when there is a command line.
+ (Ben Schmidt)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.281/src/ex_getln.c 2011-07-27 17:58:42.000000000 +0200
+--- src/ex_getln.c 2011-08-17 15:57:39.000000000 +0200
+***************
+*** 1969,1976 ****
+ # endif
+ s = getcmdline(firstc, 1L, 0);
+ restore_cmdline(&save_ccline);
+! /* Restore msg_col, the prompt from input() may have changed it. */
+! msg_col = msg_col_save;
+
+ return s;
+ }
+--- 1969,1980 ----
+ # endif
+ s = getcmdline(firstc, 1L, 0);
+ restore_cmdline(&save_ccline);
+! /* Restore msg_col, the prompt from input() may have changed it.
+! * But only if called recursively and the commandline is therefore being
+! * restored to an old one; if not, the input() prompt stays on the screen,
+! * so we need its modified msg_col left intact. */
+! if (ccline.cmdbuff != NULL)
+! msg_col = msg_col_save;
+
+ return s;
+ }
+*** ../vim-7.3.281/src/version.c 2011-08-17 15:23:16.000000000 +0200
+--- src/version.c 2011-08-17 16:24:04.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 282,
+ /**/
+
+--
+Why don't cannibals eat clowns?
+Because they taste funny.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.283 b/source/ap/vim/patches/7.3.283
new file mode 100644
index 000000000..1a3a6358c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.283
@@ -0,0 +1,114 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.283
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.283
+Problem: An expression mapping with a multi-byte character containing a
+ 0x80 byte gets messed up. (ZyX)
+Solution: Unescape the expression before evaluating it (Yukihiro Nakadaira)
+Files: src/getchar.c
+
+
+*** ../vim-7.3.282/src/getchar.c 2011-04-28 17:30:05.000000000 +0200
+--- src/getchar.c 2011-08-17 17:04:38.000000000 +0200
+***************
+*** 3262,3270 ****
+ validate_maphash();
+
+ /*
+! * find end of keys and skip CTRL-Vs (and backslashes) in it
+ * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
+! * with :unmap white space is included in the keys, no argument possible
+ */
+ p = keys;
+ do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
+--- 3262,3270 ----
+ validate_maphash();
+
+ /*
+! * Find end of keys and skip CTRL-Vs (and backslashes) in it.
+ * Accept backslash like CTRL-V when 'cpoptions' does not contain 'B'.
+! * with :unmap white space is included in the keys, no argument possible.
+ */
+ p = keys;
+ do_backslash = (vim_strchr(p_cpo, CPO_BSLASH) == NULL);
+***************
+*** 4506,4517 ****
+--- 4506,4528 ----
+ {
+ char_u *res;
+ char_u *p;
++ char_u *expr;
+ char_u *save_cmd;
+ pos_T save_cursor;
+
++ /* Remove escaping of CSI, because "str" is in a format to be used as
++ * typeahead. */
++ expr = vim_strsave(str);
++ if (expr == NULL)
++ return NULL;
++ vim_unescape_csi(expr);
++
+ save_cmd = save_cmdline_alloc();
+ if (save_cmd == NULL)
++ {
++ vim_free(expr);
+ return NULL;
++ }
+
+ /* Forbid changing text or using ":normal" to avoid most of the bad side
+ * effects. Also restore the cursor position. */
+***************
+*** 4521,4527 ****
+ #endif
+ set_vim_var_char(c); /* set v:char to the typed character */
+ save_cursor = curwin->w_cursor;
+! p = eval_to_string(str, NULL, FALSE);
+ --textlock;
+ #ifdef FEAT_EX_EXTRA
+ --ex_normal_lock;
+--- 4532,4538 ----
+ #endif
+ set_vim_var_char(c); /* set v:char to the typed character */
+ save_cursor = curwin->w_cursor;
+! p = eval_to_string(expr, NULL, FALSE);
+ --textlock;
+ #ifdef FEAT_EX_EXTRA
+ --ex_normal_lock;
+***************
+*** 4529,4536 ****
+--- 4540,4550 ----
+ curwin->w_cursor = save_cursor;
+
+ restore_cmdline_alloc(save_cmd);
++ vim_free(expr);
++
+ if (p == NULL)
+ return NULL;
++ /* Escape CSI in the result to be able to use the string as typeahead. */
+ res = vim_strsave_escape_csi(p);
+ vim_free(p);
+
+*** ../vim-7.3.282/src/version.c 2011-08-17 16:25:43.000000000 +0200
+--- src/version.c 2011-08-17 17:17:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 283,
+ /**/
+
+--
+bashian roulette:
+$ ((RANDOM%6)) || rm -rf ~
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.284 b/source/ap/vim/patches/7.3.284
new file mode 100644
index 000000000..c621ced63
--- /dev/null
+++ b/source/ap/vim/patches/7.3.284
@@ -0,0 +1,211 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.284
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.284
+Problem: The str2special() function doesn't handle multi-byte characters
+ properly.
+Solution: Recognize multi-byte characters. (partly by Vladimir Vichniakov)
+Files: src/getchar.c, src/message.c, src/misc2.c
+
+
+*** ../vim-7.3.283/src/getchar.c 2011-08-17 17:18:14.000000000 +0200
+--- src/getchar.c 2011-08-17 20:11:58.000000000 +0200
+***************
+*** 3964,3970 ****
+ if (*mp->m_str == NUL)
+ msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
+ else
+! msg_outtrans_special(mp->m_str, FALSE);
+ #ifdef FEAT_EVAL
+ if (p_verbose > 0)
+ last_set_msg(mp->m_script_ID);
+--- 3964,3980 ----
+ if (*mp->m_str == NUL)
+ msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
+ else
+! {
+! /* Remove escaping of CSI, because "m_str" is in a format to be used
+! * as typeahead. */
+! char_u *s = vim_strsave(mp->m_str);
+! if (s != NULL)
+! {
+! vim_unescape_csi(s);
+! msg_outtrans_special(s, FALSE);
+! vim_free(s);
+! }
+! }
+ #ifdef FEAT_EVAL
+ if (p_verbose > 0)
+ last_set_msg(mp->m_script_ID);
+*** ../vim-7.3.283/src/message.c 2011-03-22 13:07:19.000000000 +0100
+--- src/message.c 2011-08-17 18:40:10.000000000 +0200
+***************
+*** 1547,1562 ****
+ if (IS_SPECIAL(c) || modifiers) /* special key */
+ special = TRUE;
+ }
+- *sp = str + 1;
+
+ #ifdef FEAT_MBYTE
+! /* For multi-byte characters check for an illegal byte. */
+! if (has_mbyte && MB_BYTE2LEN(*str) > (*mb_ptr2len)(str))
+ {
+! transchar_nonprint(buf, c);
+! return buf;
+ }
+ #endif
+
+ /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
+ * Use <Space> only for lhs of a mapping. */
+--- 1547,1573 ----
+ if (IS_SPECIAL(c) || modifiers) /* special key */
+ special = TRUE;
+ }
+
+ #ifdef FEAT_MBYTE
+! if (has_mbyte && !IS_SPECIAL(c))
+ {
+! int len = (*mb_ptr2len)(str);
+!
+! /* For multi-byte characters check for an illegal byte. */
+! if (has_mbyte && MB_BYTE2LEN(*str) > len)
+! {
+! transchar_nonprint(buf, c);
+! *sp = str + 1;
+! return buf;
+! }
+! /* Since 'special' is TRUE the multi-byte character 'c' will be
+! * processed by get_special_key_name() */
+! c = (*mb_ptr2char)(str);
+! *sp = str + len;
+ }
++ else
+ #endif
++ *sp = str + 1;
+
+ /* Make unprintable characters in <> form, also <M-Space> and <Tab>.
+ * Use <Space> only for lhs of a mapping. */
+*** ../vim-7.3.283/src/misc2.c 2011-07-27 17:31:42.000000000 +0200
+--- src/misc2.c 2011-08-17 20:27:30.000000000 +0200
+***************
+*** 2754,2759 ****
+--- 2754,2760 ----
+ int bit;
+ int key;
+ unsigned long n;
++ int l;
+
+ src = *srcp;
+ if (src[0] != '<')
+***************
+*** 2766,2773 ****
+ if (*bp == '-')
+ {
+ last_dash = bp;
+! if (bp[1] != NUL && bp[2] == '>')
+! ++bp; /* anything accepted, like <C-?> */
+ }
+ if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+ bp += 3; /* skip t_xx, xx may be '-' or '>' */
+--- 2767,2783 ----
+ if (*bp == '-')
+ {
+ last_dash = bp;
+! if (bp[1] != NUL)
+! {
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! l = mb_ptr2len(bp + 1);
+! else
+! #endif
+! l = 1;
+! if (bp[l + 1] == '>')
+! bp += l; /* anything accepted, like <C-?> */
+! }
+ }
+ if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+ bp += 3; /* skip t_xx, xx may be '-' or '>' */
+***************
+*** 2777,2791 ****
+ {
+ end_of_name = bp + 1;
+
+- if (STRNICMP(src + 1, "char-", 5) == 0 && VIM_ISDIGIT(src[6]))
+- {
+- /* <Char-123> or <Char-033> or <Char-0x33> */
+- vim_str2nr(src + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+- *modp = 0;
+- *srcp = end_of_name;
+- return (int)n;
+- }
+-
+ /* Which modifiers are given? */
+ modifiers = 0x0;
+ for (bp = src + 1; bp < last_dash; bp++)
+--- 2787,2792 ----
+***************
+*** 2804,2814 ****
+ */
+ if (bp >= last_dash)
+ {
+ /*
+ * Modifier with single letter, or special key name.
+ */
+! if (modifiers != 0 && last_dash[2] == '>')
+! key = last_dash[1];
+ else
+ {
+ key = get_special_key_code(last_dash + 1);
+--- 2805,2831 ----
+ */
+ if (bp >= last_dash)
+ {
++ if (STRNICMP(last_dash + 1, "char-", 5) == 0
++ && VIM_ISDIGIT(last_dash[6]))
++ {
++ /* <Char-123> or <Char-033> or <Char-0x33> */
++ vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
++ *modp = modifiers;
++ *srcp = end_of_name;
++ return (int)n;
++ }
++
+ /*
+ * Modifier with single letter, or special key name.
+ */
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! l = mb_ptr2len(last_dash + 1);
+! else
+! #endif
+! l = 1;
+! if (modifiers != 0 && last_dash[l + 1] == '>')
+! key = PTR2CHAR(last_dash + 1);
+ else
+ {
+ key = get_special_key_code(last_dash + 1);
+*** ../vim-7.3.283/src/version.c 2011-08-17 17:18:14.000000000 +0200
+--- src/version.c 2011-08-17 20:27:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 284,
+ /**/
+
+--
+Snoring is prohibited unless all bedroom windows are closed and securely
+locked.
+ [real standing law in Massachusetts, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.285 b/source/ap/vim/patches/7.3.285
new file mode 100644
index 000000000..24be28bc0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.285
@@ -0,0 +1,144 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.285
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.285 (after 7.3.284)
+Problem: Mapping <Char-123> no longer works.
+Solution: Properly check for "char-". Add a test for it.
+Files: src/misc2.c, src/testdir/test75.in, src/testdir/test75.ok
+
+
+*** ../vim-7.3.284/src/misc2.c 2011-08-17 20:33:18.000000000 +0200
+--- src/misc2.c 2011-08-19 22:08:37.000000000 +0200
+***************
+*** 2781,2786 ****
+--- 2781,2792 ----
+ }
+ if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
+ bp += 3; /* skip t_xx, xx may be '-' or '>' */
++ else if (STRNICMP(bp, "char-", 5) == 0)
++ {
++ vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL);
++ bp += l + 5;
++ break;
++ }
+ }
+
+ if (*bp == '>') /* found matching '>' */
+***************
+*** 2810,2836 ****
+ {
+ /* <Char-123> or <Char-033> or <Char-0x33> */
+ vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+! *modp = modifiers;
+! *srcp = end_of_name;
+! return (int)n;
+ }
+-
+- /*
+- * Modifier with single letter, or special key name.
+- */
+- #ifdef FEAT_MBYTE
+- if (has_mbyte)
+- l = mb_ptr2len(last_dash + 1);
+- else
+- #endif
+- l = 1;
+- if (modifiers != 0 && last_dash[l + 1] == '>')
+- key = PTR2CHAR(last_dash + 1);
+ else
+ {
+! key = get_special_key_code(last_dash + 1);
+! if (!keep_x_key)
+! key = handle_x_keys(key);
+ }
+
+ /*
+--- 2816,2842 ----
+ {
+ /* <Char-123> or <Char-033> or <Char-0x33> */
+ vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
+! key = (int)n;
+ }
+ else
+ {
+! /*
+! * Modifier with single letter, or special key name.
+! */
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! l = mb_ptr2len(last_dash + 1);
+! else
+! #endif
+! l = 1;
+! if (modifiers != 0 && last_dash[l + 1] == '>')
+! key = PTR2CHAR(last_dash + 1);
+! else
+! {
+! key = get_special_key_code(last_dash + 1);
+! if (!keep_x_key)
+! key = handle_x_keys(key);
+! }
+ }
+
+ /*
+*** ../vim-7.3.284/src/testdir/test75.in 2010-10-20 21:22:17.000000000 +0200
+--- src/testdir/test75.in 2011-08-19 22:05:13.000000000 +0200
+***************
+*** 2,7 ****
+--- 2,8 ----
+
+ STARTTEST
+ :so small.vim
++ :set cpo-=<
+ :" Test maparg() with a string result
+ :map foo<C-V> is<F4>foo
+ :vnoremap <script> <buffer> <expr> <silent> bar isbar
+***************
+*** 9,14 ****
+--- 10,20 ----
+ :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
+ :call append('$', string(maparg('bar', '', 0, 1)))
+ :"
++ :map abc x<char-114>x
++ :call append('$', maparg('abc'))
++ :map abc y<S-char-114>y
++ :call append('$', maparg('abc'))
++ :"
+ :/^eof/+1,$w! test.out
+ :qa!
+ ENDTEST
+*** ../vim-7.3.284/src/testdir/test75.ok 2010-10-20 21:22:17.000000000 +0200
+--- src/testdir/test75.ok 2011-08-19 21:53:26.000000000 +0200
+***************
+*** 1,3 ****
+--- 1,5 ----
+ is<F4>foo
+ {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
+ {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
++ xrx
++ yRy
+*** ../vim-7.3.284/src/version.c 2011-08-17 20:33:18.000000000 +0200
+--- src/version.c 2011-08-19 22:15:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 285,
+ /**/
+
+
+--
+No man may purchase alcohol without written consent from his wife.
+ [real standing law in Pennsylvania, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.286 b/source/ap/vim/patches/7.3.286
new file mode 100644
index 000000000..308d5105c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.286
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.286
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.286
+Problem: Crash when using "zd" on a large number of folds. (Sam King)
+Solution: Recompute pointer after reallocating array. Move fewer entries
+ when making room.
+Files: src/fold.c
+
+
+*** ../vim-7.3.285/src/fold.c 2010-08-15 21:57:27.000000000 +0200
+--- src/fold.c 2011-08-26 16:03:56.000000000 +0200
+***************
+*** 1469,1479 ****
+ }
+ else
+ {
+! /* move nested folds one level up, to overwrite the fold that is
+ * deleted. */
+ moved = fp->fd_nested.ga_len;
+ if (ga_grow(gap, (int)(moved - 1)) == OK)
+ {
+ /* adjust fd_top and fd_flags for the moved folds */
+ nfp = (fold_T *)fp->fd_nested.ga_data;
+ for (i = 0; i < moved; ++i)
+--- 1469,1482 ----
+ }
+ else
+ {
+! /* Move nested folds one level up, to overwrite the fold that is
+ * deleted. */
+ moved = fp->fd_nested.ga_len;
+ if (ga_grow(gap, (int)(moved - 1)) == OK)
+ {
++ /* Get "fp" again, the array may have been reallocated. */
++ fp = (fold_T *)gap->ga_data + idx;
++
+ /* adjust fd_top and fd_flags for the moved folds */
+ nfp = (fold_T *)fp->fd_nested.ga_data;
+ for (i = 0; i < moved; ++i)
+***************
+*** 1486,1494 ****
+ }
+
+ /* move the existing folds down to make room */
+! if (idx < gap->ga_len)
+ mch_memmove(fp + moved, fp + 1,
+! sizeof(fold_T) * (gap->ga_len - idx));
+ /* move the contained folds one level up */
+ mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
+ vim_free(nfp);
+--- 1489,1497 ----
+ }
+
+ /* move the existing folds down to make room */
+! if (idx + 1 < gap->ga_len)
+ mch_memmove(fp + moved, fp + 1,
+! sizeof(fold_T) * (gap->ga_len - (idx + 1)));
+ /* move the contained folds one level up */
+ mch_memmove(fp, nfp, (size_t)(sizeof(fold_T) * moved));
+ vim_free(nfp);
+*** ../vim-7.3.285/src/version.c 2011-08-19 22:28:58.000000000 +0200
+--- src/version.c 2011-08-26 16:07:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 286,
+ /**/
+
+--
+To keep milk from turning sour: Keep it in the cow.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.287 b/source/ap/vim/patches/7.3.287
new file mode 100644
index 000000000..5c6da035f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.287
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.287
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.287
+Problem: Can't compile with MSVC and tiny options.
+Solution: Move variables and #ifdefs. (Sergey Khorev)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.286/src/os_win32.c 2011-08-10 17:07:56.000000000 +0200
+--- src/os_win32.c 2011-08-27 15:07:28.000000000 +0200
+***************
+*** 3419,3426 ****
+ {
+ DWORD availableBytes = 0;
+ DWORD i;
+- int c;
+- char_u *p;
+ int ret;
+ DWORD len;
+ DWORD toRead;
+--- 3419,3424 ----
+***************
+*** 3479,3484 ****
+--- 3477,3484 ----
+ else if (has_mbyte)
+ {
+ int l;
++ int c;
++ char_u *p;
+
+ len += *buffer_off;
+ buffer[len] = NUL;
+***************
+*** 3558,3566 ****
+ int noread_cnt = 0;
+ garray_T ga;
+ int delay = 1;
+- # ifdef FEAT_MBYTE
+ DWORD buffer_off = 0; /* valid bytes in buffer[] */
+- # endif
+
+ SECURITY_ATTRIBUTES saAttr;
+
+--- 3558,3564 ----
+***************
+*** 3777,3790 ****
+
+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+ {
+! dump_pipe(options, g_hChildStd_OUT_Rd,
+! &ga, buffer, &buffer_off);
+ break;
+ }
+
+ ++noread_cnt;
+! dump_pipe(options, g_hChildStd_OUT_Rd,
+! &ga, buffer, &buffer_off);
+
+ /* We start waiting for a very short time and then increase it, so
+ * that we respond quickly when the process is quick, and don't
+--- 3775,3786 ----
+
+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+ {
+! dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
+ break;
+ }
+
+ ++noread_cnt;
+! dump_pipe(options, g_hChildStd_OUT_Rd, &ga, buffer, &buffer_off);
+
+ /* We start waiting for a very short time and then increase it, so
+ * that we respond quickly when the process is quick, and don't
+*** ../vim-7.3.286/src/version.c 2011-08-26 16:12:55.000000000 +0200
+--- src/version.c 2011-08-27 15:08:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 287,
+ /**/
+
+--
+SUPERIMPOSE "England AD 787". After a few more seconds we hear hoofbeats in
+the distance. They come slowly closer. Then out of the mist comes KING
+ARTHUR followed by a SERVANT who is banging two half coconuts together.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.288 b/source/ap/vim/patches/7.3.288
new file mode 100644
index 000000000..d1f662681
--- /dev/null
+++ b/source/ap/vim/patches/7.3.288
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.288
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.288
+Problem: has('python') may give an error message for not being able to load
+ the library after using python3.
+Solution: Only give the error when the verbose argument is true.
+Files: src/if_python.c, src/if_python3.c
+
+
+*** ../vim-7.3.287/src/if_python.c 2011-06-19 00:27:46.000000000 +0200
+--- src/if_python.c 2011-08-21 17:03:52.000000000 +0200
+***************
+*** 368,374 ****
+ * standard C extension libraries of one or both python versions. */
+ if (python3_loaded())
+ {
+! EMSG(_("E836: This Vim cannot execute :python after using :py3"));
+ return FAIL;
+ }
+ #endif
+--- 368,375 ----
+ * standard C extension libraries of one or both python versions. */
+ if (python3_loaded())
+ {
+! if (verbose)
+! EMSG(_("E836: This Vim cannot execute :python after using :py3"));
+ return FAIL;
+ }
+ #endif
+*** ../vim-7.3.287/src/if_python3.c 2011-07-15 15:54:39.000000000 +0200
+--- src/if_python3.c 2011-08-21 17:05:19.000000000 +0200
+***************
+*** 367,373 ****
+ * standard C extension libraries of one or both python versions. */
+ if (python_loaded())
+ {
+! EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
+ return FAIL;
+ }
+ # endif
+--- 367,374 ----
+ * standard C extension libraries of one or both python versions. */
+ if (python_loaded())
+ {
+! if (verbose)
+! EMSG(_("E837: This Vim cannot execute :py3 after using :python"));
+ return FAIL;
+ }
+ # endif
+*** ../vim-7.3.287/src/version.c 2011-08-27 15:10:00.000000000 +0200
+--- src/version.c 2011-08-28 15:59:11.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 288,
+ /**/
+
+--
+FIRST SOLDIER: So they wouldn't be able to bring a coconut back anyway.
+SECOND SOLDIER: Wait a minute! Suppose two swallows carried it together?
+FIRST SOLDIER: No, they'd have to have it on a line.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.289 b/source/ap/vim/patches/7.3.289
new file mode 100644
index 000000000..30258e429
--- /dev/null
+++ b/source/ap/vim/patches/7.3.289
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.289
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.289
+Problem: Complete function isn't called when the leader changed.
+Solution: Call ins_compl_restart() when the leader changed. (Taro Muraoka)
+Files: src/edit.c
+
+
+*** ../vim-7.3.288/src/edit.c 2011-05-19 17:25:36.000000000 +0200
+--- src/edit.c 2011-08-28 15:53:47.000000000 +0200
+***************
+*** 3367,3372 ****
+--- 3367,3381 ----
+ ins_bytes(compl_leader + ins_compl_len());
+ compl_used_match = FALSE;
+
++ #ifdef FEAT_COMPL_FUNC
++ /*
++ * To call eval 'completefunc' when leader is changed, restart completion
++ * every time.
++ */
++ if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
++ ins_compl_restart();
++ #endif
++
+ if (compl_started)
+ ins_compl_set_original_text(compl_leader);
+ else
+*** ../vim-7.3.288/src/version.c 2011-08-28 16:00:14.000000000 +0200
+--- src/version.c 2011-08-28 16:01:22.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 289,
+ /**/
+
+--
+THEOREM: VI is perfect.
+PROOF: VI in roman numerals is 6. The natural numbers < 6 which divide 6 are
+1, 2, and 3. 1+2+3 = 6. So 6 is a perfect number. Therefore, VI is perfect.
+QED
+ -- Arthur Tateishi
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.290 b/source/ap/vim/patches/7.3.290
new file mode 100644
index 000000000..b50cacfc4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.290
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.290
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.290
+Problem: When a BufWriteCmd autocommand resets 'modified' this doesn't
+ change older buffer states to be marked as 'modified' like
+ ":write" does. (Yukihiro Nakadaira)
+Solution: When the BufWriteCmd resets 'modified' then adjust the undo
+ information like ":write" does.
+Files: src/fileio.c
+
+
+*** ../vim-7.3.289/src/fileio.c 2011-07-20 18:29:33.000000000 +0200
+--- src/fileio.c 2011-08-29 21:49:27.000000000 +0200
+***************
+*** 3342,3349 ****
+ }
+ else if (reset_changed && whole)
+ {
+! if (!(did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
+! sfname, sfname, FALSE, curbuf, eap)))
+ {
+ #ifdef FEAT_QUICKFIX
+ if (overwriting && bt_nofile(curbuf))
+--- 3342,3363 ----
+ }
+ else if (reset_changed && whole)
+ {
+! int was_changed = curbufIsChanged();
+!
+! did_cmd = apply_autocmds_exarg(EVENT_BUFWRITECMD,
+! sfname, sfname, FALSE, curbuf, eap);
+! if (did_cmd)
+! {
+! if (was_changed && !curbufIsChanged())
+! {
+! /* Written everything correctly and BufWriteCmd has reset
+! * 'modified': Correct the undo information so that an
+! * undo now sets 'modified'. */
+! u_unchanged(curbuf);
+! u_update_save_nr(curbuf);
+! }
+! }
+! else
+ {
+ #ifdef FEAT_QUICKFIX
+ if (overwriting && bt_nofile(curbuf))
+*** ../vim-7.3.289/src/version.c 2011-08-28 16:02:23.000000000 +0200
+--- src/version.c 2011-09-02 11:37:25.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 290,
+ /**/
+
+--
+OLD WOMAN: Well, how did you become king, then?
+ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite,
+ held Excalibur aloft from the bosom of the water to signify by Divine
+ Providence ... that I, Arthur, was to carry Excalibur ... That is
+ why I am your king!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.291 b/source/ap/vim/patches/7.3.291
new file mode 100644
index 000000000..1d394e4c9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.291
@@ -0,0 +1,125 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.291
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.291
+Problem: Configure doesn't work properly with Python3.
+Solution: Put -ldl before $LDFLAGS. Add PY3_NO_RTLD_GLOBAL. (Roland
+ Puntaier)
+Files: src/config.h.in, src/auto/configure, src/configure.in
+
+
+*** ../vim-7.3.290/src/config.h.in 2010-10-27 16:49:41.000000000 +0200
+--- src/config.h.in 2011-09-02 11:22:21.000000000 +0200
+***************
+*** 346,351 ****
+--- 346,354 ----
+ /* Define if dynamic python does not require RTLD_GLOBAL */
+ #undef PY_NO_RTLD_GLOBAL
+
++ /* Define if dynamic python3 does not require RTLD_GLOBAL */
++ #undef PY3_NO_RTLD_GLOBAL
++
+ /* Define if you want to include the Ruby interpreter. */
+ #undef FEAT_RUBY
+
+*** ../vim-7.3.290/src/auto/configure 2011-07-15 13:09:46.000000000 +0200
+--- src/auto/configure 2011-09-02 11:23:15.000000000 +0200
+***************
+*** 5733,5739 ****
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="$LDFLAGS -ldl"
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+--- 5733,5739 ----
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="-ldl $LDFLAGS"
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+***************
+*** 5798,5804 ****
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="$LDFLAGS -ldl"
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+--- 5798,5804 ----
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="-ldl $LDFLAGS"
+ if test "$cross_compiling" = yes; then :
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+*** ../vim-7.3.290/src/configure.in 2011-07-15 13:09:46.000000000 +0200
+--- src/configure.in 2011-09-02 11:19:51.000000000 +0200
+***************
+*** 1161,1167 ****
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="$LDFLAGS -ldl"
+ AC_RUN_IFELSE([
+ #include <dlfcn.h>
+ /* If this program fails, then RTLD_GLOBAL is needed.
+--- 1161,1168 ----
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON_CFLAGS"
+ ldflags_save=$LDFLAGS
+! dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
+! LDFLAGS="-ldl $LDFLAGS"
+ AC_RUN_IFELSE([
+ #include <dlfcn.h>
+ /* If this program fails, then RTLD_GLOBAL is needed.
+***************
+*** 1205,1211 ****
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+! LDFLAGS="$LDFLAGS -ldl"
+ AC_RUN_IFELSE([
+ #include <dlfcn.h>
+ #include <wchar.h>
+--- 1206,1213 ----
+ cflags_save=$CFLAGS
+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
+ ldflags_save=$LDFLAGS
+! dnl -ldl must go first to make this work on Archlinux (Roland Puntaier)
+! LDFLAGS="-ldl $LDFLAGS"
+ AC_RUN_IFELSE([
+ #include <dlfcn.h>
+ #include <wchar.h>
+*** ../vim-7.3.290/src/version.c 2011-09-02 11:56:15.000000000 +0200
+--- src/version.c 2011-09-02 12:25:13.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 291,
+ /**/
+
+--
+DENNIS: Look, strange women lying on their backs in ponds handing out
+ swords ... that's no basis for a system of government. Supreme
+ executive power derives from a mandate from the masses, not from some
+ farcical aquatic ceremony.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.292 b/source/ap/vim/patches/7.3.292
new file mode 100644
index 000000000..fc9480fee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.292
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.292
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.292
+Problem: Crash when using fold markers and selecting a visual block that
+ includes a folded line and goes to end of line. (Sam Lidder)
+Solution: Check for the column to be MAXCOL. (James Vega)
+Files: src/screen.c
+
+
+*** ../vim-7.3.291/src/screen.c 2011-08-10 14:32:33.000000000 +0200
+--- src/screen.c 2011-09-02 13:58:18.000000000 +0200
+***************
+*** 2531,2537 ****
+ /* Visual block mode: highlight the chars part of the block */
+ if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
+ {
+! if (wp->w_old_cursor_lcol + txtcol < (colnr_T)W_WIDTH(wp))
+ len = wp->w_old_cursor_lcol;
+ else
+ len = W_WIDTH(wp) - txtcol;
+--- 2531,2539 ----
+ /* Visual block mode: highlight the chars part of the block */
+ if (wp->w_old_cursor_fcol + txtcol < (colnr_T)W_WIDTH(wp))
+ {
+! if (wp->w_old_cursor_lcol != MAXCOL
+! && wp->w_old_cursor_lcol + txtcol
+! < (colnr_T)W_WIDTH(wp))
+ len = wp->w_old_cursor_lcol;
+ else
+ len = W_WIDTH(wp) - txtcol;
+*** ../vim-7.3.291/src/version.c 2011-09-02 12:27:20.000000000 +0200
+--- src/version.c 2011-09-02 14:00:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 292,
+ /**/
+
+--
+Hacker: Someone skilled in computer programming (good guy).
+Cracker: A hacker that uses his skills to crack software (bad guy).
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.293 b/source/ap/vim/patches/7.3.293
new file mode 100644
index 000000000..4072e32f1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.293
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.293
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.293
+Problem: MSVC compiler has a problem with non-ASCII characters.
+Solution: Avoid non-ASCII characters. (Hong Xu)
+Files: src/ascii.h, src/spell.c
+
+
+*** ../vim-7.3.292/src/ascii.h 2011-05-10 16:41:13.000000000 +0200
+--- src/ascii.h 2011-09-02 14:12:48.000000000 +0200
+***************
+*** 123,129 ****
+ #define DCS 0x90 /* Device Control String */
+ #define STERM 0x9c /* String Terminator */
+
+! #define POUND '£'
+
+ #define CTRL_F_STR "\056"
+ #define CTRL_H_STR "\026"
+--- 123,129 ----
+ #define DCS 0x90 /* Device Control String */
+ #define STERM 0x9c /* String Terminator */
+
+! #define POUND '\xA3'
+
+ #define CTRL_F_STR "\056"
+ #define CTRL_H_STR "\026"
+*** ../vim-7.3.292/src/spell.c 2011-04-11 21:35:03.000000000 +0200
+--- src/spell.c 2011-09-02 14:13:30.000000000 +0200
+***************
+*** 11197,11203 ****
+ c = *s++;
+
+ #ifdef FEAT_MBYTE
+! /* We only change ß to SS when we are certain latin1 is used. It
+ * would cause weird errors in other 8-bit encodings. */
+ if (enc_latin1like && c == 0xdf)
+ {
+--- 11197,11203 ----
+ c = *s++;
+
+ #ifdef FEAT_MBYTE
+! /* We only change 0xdf to SS when we are certain latin1 is used. It
+ * would cause weird errors in other 8-bit encodings. */
+ if (enc_latin1like && c == 0xdf)
+ {
+*** ../vim-7.3.292/src/version.c 2011-09-02 14:07:31.000000000 +0200
+--- src/version.c 2011-09-02 14:13:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 293,
+ /**/
+
+--
+ A village. Sound of chanting of Latin canon, punctuated by short, sharp
+ cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL
+ flagellation scene, chanting and banging themselves on the foreheads with
+ wooden boards.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.294 b/source/ap/vim/patches/7.3.294
new file mode 100644
index 000000000..84252ba3e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.294
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.294
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.294 (after 7.3.289)
+Problem: Patch 289 causes more problems than it solves.
+Solution: Rever the patch untill a better solution is found.
+Files: src/edit.c
+
+
+*** ../vim-7.3.293/src/edit.c 2011-08-28 16:02:23.000000000 +0200
+--- src/edit.c 2011-09-05 20:07:49.000000000 +0200
+***************
+*** 3367,3381 ****
+ ins_bytes(compl_leader + ins_compl_len());
+ compl_used_match = FALSE;
+
+- #ifdef FEAT_COMPL_FUNC
+- /*
+- * To call eval 'completefunc' when leader is changed, restart completion
+- * every time.
+- */
+- if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
+- ins_compl_restart();
+- #endif
+-
+ if (compl_started)
+ ins_compl_set_original_text(compl_leader);
+ else
+--- 3367,3372 ----
+*** ../vim-7.3.293/src/version.c 2011-09-02 14:18:14.000000000 +0200
+--- src/version.c 2011-09-05 20:08:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 294,
+ /**/
+
+--
+Scientists decoded the first message from an alien civilization:
+ SIMPLY SEND 6 TIMES 10 TO THE 50 ATOMS OF HYDROGEN TO THE STAR
+SYSTEM AT THE TOP OF THE LIST, CROSS OFF THAT STAR SYSTEM, THEN PUT
+YOUR STAR SYSTEM AT THE BOTTOM OF THE LIST AND SEND IT TO 100 OTHER
+STAR SYSTEMS. WITHIN ONE TENTH GALACTIC ROTATION YOU WILL RECEIVE
+ENOUGH HYDROGREN TO POWER YOUR CIVILIZATION UNTIL ENTROPY REACHES ITS
+MAXIMUM! IT REALLY WORKS!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.295 b/source/ap/vim/patches/7.3.295
new file mode 100644
index 000000000..fad7ea3e4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.295
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.295
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.295
+Problem: When filtering text with an external command Vim may not read all
+ the output.
+Solution: When select() is interrupted loop and try again. (James Vega)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.294/src/os_unix.c 2011-08-04 20:31:50.000000000 +0200
+--- src/os_unix.c 2011-09-07 13:34:09.000000000 +0200
+***************
+*** 4819,4825 ****
+
+ /*
+ * Wait "msec" msec until a character is available from file descriptor "fd".
+! * Time == -1 will block forever.
+ * When a GUI is being used, this will not be used for input -- webb
+ * Returns also, when a request from Sniff is waiting -- toni.
+ * Or when a Linux GPM mouse event is waiting.
+--- 4819,4826 ----
+
+ /*
+ * Wait "msec" msec until a character is available from file descriptor "fd".
+! * "msec" == 0 will check for characters once.
+! * "msec" == -1 will block until a character is available.
+ * When a GUI is being used, this will not be used for input -- webb
+ * Returns also, when a request from Sniff is waiting -- toni.
+ * Or when a Linux GPM mouse event is waiting.
+***************
+*** 5057,5063 ****
+ /*
+ * Select on ready for reading and exceptional condition (end of file).
+ */
+! FD_ZERO(&rfds); /* calls bzero() on a sun */
+ FD_ZERO(&efds);
+ FD_SET(fd, &rfds);
+ # if !defined(__QNX__) && !defined(__CYGWIN32__)
+--- 5058,5065 ----
+ /*
+ * Select on ready for reading and exceptional condition (end of file).
+ */
+! select_eintr:
+! FD_ZERO(&rfds);
+ FD_ZERO(&efds);
+ FD_SET(fd, &rfds);
+ # if !defined(__QNX__) && !defined(__CYGWIN32__)
+***************
+*** 5117,5122 ****
+--- 5119,5132 ----
+ # else
+ ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
+ # endif
++ # ifdef EINTR
++ if (ret == -1 && errno == EINTR)
++ /* Interrupted by a signal, need to try again. We ignore msec
++ * here, because we do want to check even after a timeout if
++ * characters are available. Needed for reading output of an
++ * external command after the process has finished. */
++ goto select_eintr;
++ # endif
+ # ifdef __TANDEM
+ if (ret == -1 && errno == ENOTSUP)
+ {
+***************
+*** 5124,5130 ****
+ FD_ZERO(&efds);
+ ret = 0;
+ }
+! #endif
+ # ifdef FEAT_MZSCHEME
+ if (ret == 0 && mzquantum_used)
+ /* loop if MzThreads must be scheduled and timeout occurred */
+--- 5134,5140 ----
+ FD_ZERO(&efds);
+ ret = 0;
+ }
+! # endif
+ # ifdef FEAT_MZSCHEME
+ if (ret == 0 && mzquantum_used)
+ /* loop if MzThreads must be scheduled and timeout occurred */
+*** ../vim-7.3.294/src/version.c 2011-09-05 20:13:37.000000000 +0200
+--- src/version.c 2011-09-07 14:05:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 295,
+ /**/
+
+--
+"You're fired." (1980)
+"You're laid off." (1985)
+"You're downsized." (1990)
+"You're rightsized." (1992)
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.296 b/source/ap/vim/patches/7.3.296
new file mode 100644
index 000000000..80369d1af
--- /dev/null
+++ b/source/ap/vim/patches/7.3.296
@@ -0,0 +1,222 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.296
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.296
+Problem: When writing to an external command a zombie process may be left
+ behind.
+Solution: Wait on the process. (James Vega)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.295/src/os_unix.c 2011-09-07 14:06:38.000000000 +0200
+--- src/os_unix.c 2011-09-07 14:54:11.000000000 +0200
+***************
+*** 154,159 ****
+--- 154,166 ----
+
+ static void may_core_dump __ARGS((void));
+
++ #ifdef HAVE_UNION_WAIT
++ typedef union wait waitstatus;
++ #else
++ typedef int waitstatus;
++ #endif
++ static int wait4pid __ARGS((pid_t, waitstatus *));
++
+ static int WaitForChar __ARGS((long));
+ #if defined(__BEOS__)
+ int RealWaitForChar __ARGS((int, long, int *));
+***************
+*** 3660,3665 ****
+--- 3667,3713 ----
+ /* Nothing to do. */
+ }
+
++ /*
++ * Wait for process "child" to end.
++ * Return "child" if it exited properly, <= 0 on error.
++ */
++ static pid_t
++ wait4pid(child, status)
++ pid_t child;
++ waitstatus *status;
++ {
++ pid_t wait_pid = 0;
++
++ while (wait_pid != child)
++ {
++ # ifdef _THREAD_SAFE
++ /* Ugly hack: when compiled with Python threads are probably
++ * used, in which case wait() sometimes hangs for no obvious
++ * reason. Use waitpid() instead and loop (like the GUI). */
++ # ifdef __NeXT__
++ wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
++ # else
++ wait_pid = waitpid(child, status, WNOHANG);
++ # endif
++ if (wait_pid == 0)
++ {
++ /* Wait for 1/100 sec before trying again. */
++ mch_delay(10L, TRUE);
++ continue;
++ }
++ # else
++ wait_pid = wait(status);
++ # endif
++ if (wait_pid <= 0
++ # ifdef ECHILD
++ && errno == ECHILD
++ # endif
++ )
++ break;
++ }
++ return wait_pid;
++ }
++
+ int
+ mch_call_shell(cmd, options)
+ char_u *cmd;
+***************
+*** 4234,4240 ****
+ {
+ MSG_PUTS(_("\nCannot fork\n"));
+ }
+! else if (wpid == 0)
+ {
+ linenr_T lnum = curbuf->b_op_start.lnum;
+ int written = 0;
+--- 4282,4288 ----
+ {
+ MSG_PUTS(_("\nCannot fork\n"));
+ }
+! else if (wpid == 0) /* child */
+ {
+ linenr_T lnum = curbuf->b_op_start.lnum;
+ int written = 0;
+***************
+*** 4242,4248 ****
+ char_u *s;
+ size_t l;
+
+- /* child */
+ close(fromshell_fd);
+ for (;;)
+ {
+--- 4290,4295 ----
+***************
+*** 4287,4293 ****
+ }
+ _exit(0);
+ }
+! else
+ {
+ close(toshell_fd);
+ toshell_fd = -1;
+--- 4334,4340 ----
+ }
+ _exit(0);
+ }
+! else /* parent */
+ {
+ close(toshell_fd);
+ toshell_fd = -1;
+***************
+*** 4584,4590 ****
+ * typed characters (otherwise we would lose typeahead).
+ */
+ # ifdef __NeXT__
+! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *) 0);
+ # else
+ wait_pid = waitpid(pid, &status, WNOHANG);
+ # endif
+--- 4631,4637 ----
+ * typed characters (otherwise we would lose typeahead).
+ */
+ # ifdef __NeXT__
+! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
+ # else
+ wait_pid = waitpid(pid, &status, WNOHANG);
+ # endif
+***************
+*** 4633,4665 ****
+ * Don't wait if wait_pid was already set above, indicating the
+ * child already exited.
+ */
+! while (wait_pid != pid)
+! {
+! # ifdef _THREAD_SAFE
+! /* Ugly hack: when compiled with Python threads are probably
+! * used, in which case wait() sometimes hangs for no obvious
+! * reason. Use waitpid() instead and loop (like the GUI). */
+! # ifdef __NeXT__
+! wait_pid = wait4(pid, &status, WNOHANG, (struct rusage *)0);
+! # else
+! wait_pid = waitpid(pid, &status, WNOHANG);
+! # endif
+! if (wait_pid == 0)
+! {
+! /* Wait for 1/100 sec before trying again. */
+! mch_delay(10L, TRUE);
+! continue;
+! }
+! # else
+! wait_pid = wait(&status);
+! # endif
+! if (wait_pid <= 0
+! # ifdef ECHILD
+! && errno == ECHILD
+! # endif
+! )
+! break;
+! }
+
+ # ifdef FEAT_GUI
+ /* Close slave side of pty. Only do this after the child has
+--- 4680,4687 ----
+ * Don't wait if wait_pid was already set above, indicating the
+ * child already exited.
+ */
+! if (wait_pid != pid)
+! wait_pid = wait4pid(pid, &status);
+
+ # ifdef FEAT_GUI
+ /* Close slave side of pty. Only do this after the child has
+***************
+*** 4672,4678 ****
+--- 4694,4703 ----
+ /* Make sure the child that writes to the external program is
+ * dead. */
+ if (wpid > 0)
++ {
+ kill(wpid, SIGKILL);
++ wait4pid(wpid, NULL);
++ }
+
+ /*
+ * Set to raw mode right now, otherwise a CTRL-C after
+*** ../vim-7.3.295/src/version.c 2011-09-07 14:06:39.000000000 +0200
+--- src/version.c 2011-09-07 15:03:24.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 296,
+ /**/
+
+--
+If your company is not involved in something called "ISO 9000" you probably
+have no idea what it is. If your company _is_ involved in ISO 9000 then you
+definitely have no idea what it is.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.297 b/source/ap/vim/patches/7.3.297
new file mode 100644
index 000000000..09be76841
--- /dev/null
+++ b/source/ap/vim/patches/7.3.297
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.297
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.297
+Problem: Can't load Perl 5.14 dynamically.
+Solution: Add code in #ifdefs. (Charles Cooper)
+Files: if_perl.xs
+
+
+*** ../vim-7.3.296/src/if_perl.xs 2011-07-27 14:15:41.000000000 +0200
+--- src/if_perl.xs 2011-09-07 18:47:07.000000000 +0200
+***************
+*** 147,153 ****
+--- 147,158 ----
+ # define Perl_save_int dll_Perl_save_int
+ # define Perl_stack_grow dll_Perl_stack_grow
+ # define Perl_set_context dll_Perl_set_context
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags
++ # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck
++ # else
+ # define Perl_sv_2bool dll_Perl_sv_2bool
++ # endif
+ # define Perl_sv_2iv dll_Perl_sv_2iv
+ # define Perl_sv_2mortal dll_Perl_sv_2mortal
+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 252,258 ****
+--- 257,268 ----
+ static void (*Perl_save_int)(pTHX_ int*);
+ static SV** (*Perl_stack_grow)(pTHX_ SV**, SV**p, int);
+ static SV** (*Perl_set_context)(void*);
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32);
++ static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len);
++ #else
+ static bool (*Perl_sv_2bool)(pTHX_ SV*);
++ #endif
+ static IV (*Perl_sv_2iv)(pTHX_ SV*);
+ static SV* (*Perl_sv_2mortal)(pTHX_ SV*);
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 360,366 ****
+--- 370,381 ----
+ {"Perl_save_int", (PERL_PROC*)&Perl_save_int},
+ {"Perl_stack_grow", (PERL_PROC*)&Perl_stack_grow},
+ {"Perl_set_context", (PERL_PROC*)&Perl_set_context},
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags},
++ {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck},
++ #else
+ {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool},
++ #endif
+ {"Perl_sv_2iv", (PERL_PROC*)&Perl_sv_2iv},
+ {"Perl_sv_2mortal", (PERL_PROC*)&Perl_sv_2mortal},
+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 8)
+***************
+*** 407,412 ****
+--- 422,430 ----
+ {"Perl_sv_free2", (PERL_PROC*)&Perl_sv_free2},
+ {"Perl_sys_init", (PERL_PROC*)&Perl_sys_init},
+ {"Perl_sys_term", (PERL_PROC*)&Perl_sys_term},
++ {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ # else
+ {"Perl_ISv_ptr", (PERL_PROC*)&Perl_ISv_ptr},
+ {"Perl_Istack_max_ptr", (PERL_PROC*)&Perl_Istack_max_ptr},
+ {"Perl_Istack_base_ptr", (PERL_PROC*)&Perl_Istack_base_ptr},
+***************
+*** 418,432 ****
+ {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
+ {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
+ {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
+- {"Perl_call_list", (PERL_PROC*)&Perl_call_list},
+ {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
+ {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
+ #endif
+ {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
+ {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
+ {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
+- {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
+ {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
+ {"", NULL},
+ };
+
+--- 436,453 ----
+ {"Perl_Imarkstack_max_ptr", (PERL_PROC*)&Perl_Imarkstack_max_ptr},
+ {"Perl_Istack_sp_ptr", (PERL_PROC*)&Perl_Istack_sp_ptr},
+ {"Perl_Iop_ptr", (PERL_PROC*)&Perl_Iop_ptr},
+ {"Perl_Iscopestack_ix_ptr", (PERL_PROC*)&Perl_Iscopestack_ix_ptr},
+ {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr},
++ # endif
+ #endif
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14)
++ #else
+ {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr},
+ {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr},
+ {"Perl_Isv_yes_ptr", (PERL_PROC*)&Perl_Isv_yes_ptr},
+ {"Perl_Gthr_key_ptr", (PERL_PROC*)&Perl_Gthr_key_ptr},
++ #endif
++ {"boot_DynaLoader", (PERL_PROC*)&boot_DynaLoader},
+ {"", NULL},
+ };
+
+*** ../vim-7.3.296/src/version.c 2011-09-07 15:04:26.000000000 +0200
+--- src/version.c 2011-09-07 18:45:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 297,
+ /**/
+
+--
+At some point in the project somebody will start whining about the need to
+determine the project "requirements". This involves interviewing people who
+don't know what they want but, curiously, know exactly when they need it.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.298 b/source/ap/vim/patches/7.3.298
new file mode 100644
index 000000000..65a51aa04
--- /dev/null
+++ b/source/ap/vim/patches/7.3.298
@@ -0,0 +1,167 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.298
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.298
+Problem: Built-in colors are different from rgb.txt.
+Solution: Adjust the color values. (Benjamin Haskell)
+Files: src/gui_photon.c, src/gui_w48.c
+
+
+*** ../vim-7.3.297/src/gui_photon.c 2011-08-10 12:19:00.000000000 +0200
+--- src/gui_photon.c 2011-09-07 18:55:09.000000000 +0200
+***************
+*** 2007,2014 ****
+ static GuiColourTable table[] =
+ {
+ {"Black", RGB(0x00, 0x00, 0x00)},
+! {"DarkGray", RGB(0x80, 0x80, 0x80)},
+! {"DarkGrey", RGB(0x80, 0x80, 0x80)},
+ {"Gray", RGB(0xC0, 0xC0, 0xC0)},
+ {"Grey", RGB(0xC0, 0xC0, 0xC0)},
+ {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
+--- 2007,2014 ----
+ static GuiColourTable table[] =
+ {
+ {"Black", RGB(0x00, 0x00, 0x00)},
+! {"DarkGray", RGB(0xA9, 0xA9, 0xA9)},
+! {"DarkGrey", RGB(0xA9, 0xA9, 0xA9)},
+ {"Gray", RGB(0xC0, 0xC0, 0xC0)},
+ {"Grey", RGB(0xC0, 0xC0, 0xC0)},
+ {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
+***************
+*** 2037,2055 ****
+ {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
+ {"DarkBlue", RGB(0x00, 0x00, 0x80)},
+ {"Blue", RGB(0x00, 0x00, 0xFF)},
+! {"LightBlue", RGB(0xA0, 0xA0, 0xFF)},
+ {"DarkGreen", RGB(0x00, 0x80, 0x00)},
+ {"Green", RGB(0x00, 0xFF, 0x00)},
+! {"LightGreen", RGB(0xA0, 0xFF, 0xA0)},
+ {"DarkCyan", RGB(0x00, 0x80, 0x80)},
+ {"Cyan", RGB(0x00, 0xFF, 0xFF)},
+! {"LightCyan", RGB(0xA0, 0xFF, 0xFF)},
+ {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
+ {"Magenta", RGB(0xFF, 0x00, 0xFF)},
+ {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
+ {"Brown", RGB(0x80, 0x40, 0x40)},
+ {"Yellow", RGB(0xFF, 0xFF, 0x00)},
+! {"LightYellow", RGB(0xFF, 0xFF, 0xA0)},
+ {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
+ {"Orange", RGB(0xFF, 0xA5, 0x00)},
+ {"Purple", RGB(0xA0, 0x20, 0xF0)},
+--- 2037,2055 ----
+ {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
+ {"DarkBlue", RGB(0x00, 0x00, 0x80)},
+ {"Blue", RGB(0x00, 0x00, 0xFF)},
+! {"LightBlue", RGB(0xAD, 0xD8, 0xE6)},
+ {"DarkGreen", RGB(0x00, 0x80, 0x00)},
+ {"Green", RGB(0x00, 0xFF, 0x00)},
+! {"LightGreen", RGB(0x90, 0xEE, 0x90)},
+ {"DarkCyan", RGB(0x00, 0x80, 0x80)},
+ {"Cyan", RGB(0x00, 0xFF, 0xFF)},
+! {"LightCyan", RGB(0xE0, 0xFF, 0xFF)},
+ {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
+ {"Magenta", RGB(0xFF, 0x00, 0xFF)},
+ {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
+ {"Brown", RGB(0x80, 0x40, 0x40)},
+ {"Yellow", RGB(0xFF, 0xFF, 0x00)},
+! {"LightYellow", RGB(0xFF, 0xFF, 0xE0)},
+ {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
+ {"Orange", RGB(0xFF, 0xA5, 0x00)},
+ {"Purple", RGB(0xA0, 0x20, 0xF0)},
+*** ../vim-7.3.297/src/gui_w48.c 2011-08-10 17:07:56.000000000 +0200
+--- src/gui_w48.c 2011-09-07 18:55:09.000000000 +0200
+***************
+*** 1411,1422 ****
+ static guicolor_tTable table[] =
+ {
+ {"Black", RGB(0x00, 0x00, 0x00)},
+! {"DarkGray", RGB(0x80, 0x80, 0x80)},
+! {"DarkGrey", RGB(0x80, 0x80, 0x80)},
+ {"Gray", RGB(0xC0, 0xC0, 0xC0)},
+ {"Grey", RGB(0xC0, 0xC0, 0xC0)},
+! {"LightGray", RGB(0xE0, 0xE0, 0xE0)},
+! {"LightGrey", RGB(0xE0, 0xE0, 0xE0)},
+ {"Gray10", RGB(0x1A, 0x1A, 0x1A)},
+ {"Grey10", RGB(0x1A, 0x1A, 0x1A)},
+ {"Gray20", RGB(0x33, 0x33, 0x33)},
+--- 1411,1422 ----
+ static guicolor_tTable table[] =
+ {
+ {"Black", RGB(0x00, 0x00, 0x00)},
+! {"DarkGray", RGB(0xA9, 0xA9, 0xA9)},
+! {"DarkGrey", RGB(0xA9, 0xA9, 0xA9)},
+ {"Gray", RGB(0xC0, 0xC0, 0xC0)},
+ {"Grey", RGB(0xC0, 0xC0, 0xC0)},
+! {"LightGray", RGB(0xD3, 0xD3, 0xD3)},
+! {"LightGrey", RGB(0xD3, 0xD3, 0xD3)},
+ {"Gray10", RGB(0x1A, 0x1A, 0x1A)},
+ {"Grey10", RGB(0x1A, 0x1A, 0x1A)},
+ {"Gray20", RGB(0x33, 0x33, 0x33)},
+***************
+*** 1441,1459 ****
+ {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
+ {"DarkBlue", RGB(0x00, 0x00, 0x80)},
+ {"Blue", RGB(0x00, 0x00, 0xFF)},
+! {"LightBlue", RGB(0xA0, 0xA0, 0xFF)},
+ {"DarkGreen", RGB(0x00, 0x80, 0x00)},
+ {"Green", RGB(0x00, 0xFF, 0x00)},
+! {"LightGreen", RGB(0xA0, 0xFF, 0xA0)},
+ {"DarkCyan", RGB(0x00, 0x80, 0x80)},
+ {"Cyan", RGB(0x00, 0xFF, 0xFF)},
+! {"LightCyan", RGB(0xA0, 0xFF, 0xFF)},
+ {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
+ {"Magenta", RGB(0xFF, 0x00, 0xFF)},
+ {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
+ {"Brown", RGB(0x80, 0x40, 0x40)},
+ {"Yellow", RGB(0xFF, 0xFF, 0x00)},
+! {"LightYellow", RGB(0xFF, 0xFF, 0xA0)},
+ {"DarkYellow", RGB(0xBB, 0xBB, 0x00)},
+ {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
+ {"Orange", RGB(0xFF, 0xA5, 0x00)},
+--- 1441,1459 ----
+ {"LightRed", RGB(0xFF, 0xA0, 0xA0)},
+ {"DarkBlue", RGB(0x00, 0x00, 0x80)},
+ {"Blue", RGB(0x00, 0x00, 0xFF)},
+! {"LightBlue", RGB(0xAD, 0xD8, 0xE6)},
+ {"DarkGreen", RGB(0x00, 0x80, 0x00)},
+ {"Green", RGB(0x00, 0xFF, 0x00)},
+! {"LightGreen", RGB(0x90, 0xEE, 0x90)},
+ {"DarkCyan", RGB(0x00, 0x80, 0x80)},
+ {"Cyan", RGB(0x00, 0xFF, 0xFF)},
+! {"LightCyan", RGB(0xE0, 0xFF, 0xFF)},
+ {"DarkMagenta", RGB(0x80, 0x00, 0x80)},
+ {"Magenta", RGB(0xFF, 0x00, 0xFF)},
+ {"LightMagenta", RGB(0xFF, 0xA0, 0xFF)},
+ {"Brown", RGB(0x80, 0x40, 0x40)},
+ {"Yellow", RGB(0xFF, 0xFF, 0x00)},
+! {"LightYellow", RGB(0xFF, 0xFF, 0xE0)},
+ {"DarkYellow", RGB(0xBB, 0xBB, 0x00)},
+ {"SeaGreen", RGB(0x2E, 0x8B, 0x57)},
+ {"Orange", RGB(0xFF, 0xA5, 0x00)},
+*** ../vim-7.3.297/src/version.c 2011-09-07 18:47:19.000000000 +0200
+--- src/version.c 2011-09-07 18:55:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 298,
+ /**/
+
+--
+You can test a person's importance in the organization by asking how much RAM
+his computer has. Anybody who knows the answer to that question is not a
+decision-maker.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.299 b/source/ap/vim/patches/7.3.299
new file mode 100644
index 000000000..4f755d909
--- /dev/null
+++ b/source/ap/vim/patches/7.3.299
@@ -0,0 +1,516 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.299
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.299
+Problem: Source code not in Vim style.
+Solution: Adjust the style. (Elias Diem)
+Files: src/gui_photon.c
+
+
+*** ../vim-7.3.298/src/gui_photon.c 2011-09-07 18:58:24.000000000 +0200
+--- src/gui_photon.c 2011-09-07 19:02:59.000000000 +0200
+***************
+*** 535,547 ****
+ &src_taken,
+ buf,
+ 6,
+! &dst_made );
+
+! add_to_input_buf( buf, dst_made );
+ }
+ else
+ {
+! add_to_input_buf( string, len );
+ }
+
+ return Pt_CONSUME;
+--- 535,547 ----
+ &src_taken,
+ buf,
+ 6,
+! &dst_made);
+
+! add_to_input_buf(buf, dst_made);
+ }
+ else
+ {
+! add_to_input_buf(string, len);
+ }
+
+ return Pt_CONSUME;
+***************
+*** 549,579 ****
+ len = 0;
+ #endif
+ ch = key->key_cap;
+! if( ch < 0xff )
+ {
+ /* FIXME: is this the right thing to do? */
+! if( modifiers & MOD_MASK_CTRL )
+ {
+ modifiers &= ~MOD_MASK_CTRL;
+
+! if( ( ch >= 'a' && ch <= 'z' ) ||
+ ch == '[' ||
+ ch == ']' ||
+! ch == '\\' )
+! ch = Ctrl_chr( ch );
+! else if( ch == '2' )
+ ch = NUL;
+! else if( ch == '6' )
+ ch = 0x1e;
+! else if( ch == '-' )
+ ch = 0x1f;
+ else
+ modifiers |= MOD_MASK_CTRL;
+ }
+
+! if( modifiers & MOD_MASK_ALT )
+ {
+! ch = Meta( ch );
+ modifiers &= ~MOD_MASK_ALT;
+ }
+ }
+--- 549,579 ----
+ len = 0;
+ #endif
+ ch = key->key_cap;
+! if (ch < 0xff)
+ {
+ /* FIXME: is this the right thing to do? */
+! if (modifiers & MOD_MASK_CTRL)
+ {
+ modifiers &= ~MOD_MASK_CTRL;
+
+! if ((ch >= 'a' && ch <= 'z') ||
+ ch == '[' ||
+ ch == ']' ||
+! ch == '\\')
+! ch = Ctrl_chr(ch);
+! else if (ch == '2')
+ ch = NUL;
+! else if (ch == '6')
+ ch = 0x1e;
+! else if (ch == '-')
+ ch = 0x1f;
+ else
+ modifiers |= MOD_MASK_CTRL;
+ }
+
+! if (modifiers & MOD_MASK_ALT)
+ {
+! ch = Meta(ch);
+ modifiers &= ~MOD_MASK_ALT;
+ }
+ }
+***************
+*** 586,604 ****
+ modifiers &= ~MOD_MASK_SHIFT;
+ }
+
+! ch = simplify_key( ch, &modifiers );
+! if( modifiers )
+ {
+ string[ len++ ] = CSI;
+ string[ len++ ] = KS_MODIFIER;
+ string[ len++ ] = modifiers;
+ }
+
+! if( IS_SPECIAL( ch ) )
+ {
+ string[ len++ ] = CSI;
+! string[ len++ ] = K_SECOND( ch );
+! string[ len++ ] = K_THIRD( ch );
+ }
+ else
+ {
+--- 586,604 ----
+ modifiers &= ~MOD_MASK_SHIFT;
+ }
+
+! ch = simplify_key(ch, &modifiers);
+! if (modifiers)
+ {
+ string[ len++ ] = CSI;
+ string[ len++ ] = KS_MODIFIER;
+ string[ len++ ] = modifiers;
+ }
+
+! if (IS_SPECIAL(ch))
+ {
+ string[ len++ ] = CSI;
+! string[ len++ ] = K_SECOND(ch);
+! string[ len++ ] = K_THIRD(ch);
+ }
+ else
+ {
+***************
+*** 619,627 ****
+ string[ len++ ] = KE_CSI;
+ }
+
+! if( len > 0 )
+ {
+! add_to_input_buf( string, len );
+ return Pt_CONSUME;
+ }
+ }
+--- 619,627 ----
+ string[ len++ ] = KE_CSI;
+ }
+
+! if (len > 0)
+ {
+! add_to_input_buf(string, len);
+ return Pt_CONSUME;
+ }
+ }
+***************
+*** 630,646 ****
+ }
+
+ static int
+! gui_ph_handle_mouse( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+ PhPointerEvent_t *pointer;
+ PhRect_t *pos;
+ int button = 0, repeated_click, modifiers = 0x0;
+ short mouse_x, mouse_y;
+
+! pointer = PhGetData( info->event );
+! pos = PhGetRects( info->event );
+
+! gui_mch_mousehide( MOUSE_SHOW );
+
+ /*
+ * Coordinates need to be relative to the base window,
+--- 630,646 ----
+ }
+
+ static int
+! gui_ph_handle_mouse(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+ PhPointerEvent_t *pointer;
+ PhRect_t *pos;
+ int button = 0, repeated_click, modifiers = 0x0;
+ short mouse_x, mouse_y;
+
+! pointer = PhGetData(info->event);
+! pos = PhGetRects(info->event);
+
+! gui_mch_mousehide(MOUSE_SHOW);
+
+ /*
+ * Coordinates need to be relative to the base window,
+***************
+*** 649,675 ****
+ mouse_x = pos->ul.x + gui.border_width;
+ mouse_y = pos->ul.y + gui.border_width;
+
+! if( info->event->type == Ph_EV_PTR_MOTION_NOBUTTON )
+ {
+! gui_mouse_moved( mouse_x, mouse_y );
+ return Pt_CONTINUE;
+ }
+
+! if( pointer->key_mods & Pk_KM_Shift )
+ modifiers |= MOUSE_SHIFT;
+! if( pointer->key_mods & Pk_KM_Ctrl )
+ modifiers |= MOUSE_CTRL;
+! if( pointer->key_mods & Pk_KM_Alt )
+ modifiers |= MOUSE_ALT;
+
+ /*
+ * FIXME More than one button may be involved, but for
+ * now just deal with one
+ */
+! if( pointer->buttons & Ph_BUTTON_SELECT )
+ button = MOUSE_LEFT;
+
+! if( pointer->buttons & Ph_BUTTON_MENU )
+ {
+ button = MOUSE_RIGHT;
+ /* Need the absolute coordinates for the popup menu */
+--- 649,675 ----
+ mouse_x = pos->ul.x + gui.border_width;
+ mouse_y = pos->ul.y + gui.border_width;
+
+! if (info->event->type == Ph_EV_PTR_MOTION_NOBUTTON)
+ {
+! gui_mouse_moved(mouse_x, mouse_y);
+ return Pt_CONTINUE;
+ }
+
+! if (pointer->key_mods & Pk_KM_Shift)
+ modifiers |= MOUSE_SHIFT;
+! if (pointer->key_mods & Pk_KM_Ctrl)
+ modifiers |= MOUSE_CTRL;
+! if (pointer->key_mods & Pk_KM_Alt)
+ modifiers |= MOUSE_ALT;
+
+ /*
+ * FIXME More than one button may be involved, but for
+ * now just deal with one
+ */
+! if (pointer->buttons & Ph_BUTTON_SELECT)
+ button = MOUSE_LEFT;
+
+! if (pointer->buttons & Ph_BUTTON_MENU)
+ {
+ button = MOUSE_RIGHT;
+ /* Need the absolute coordinates for the popup menu */
+***************
+*** 677,705 ****
+ abs_mouse.y = pointer->pos.y;
+ }
+
+! if( pointer->buttons & Ph_BUTTON_ADJUST )
+ button = MOUSE_MIDDLE;
+
+ /* Catch a real release (not phantom or other releases */
+! if( info->event->type == Ph_EV_BUT_RELEASE )
+ button = MOUSE_RELEASE;
+
+! if( info->event->type & Ph_EV_PTR_MOTION_BUTTON )
+ button = MOUSE_DRAG;
+
+ #if 0
+ /* Vim doesn't use button repeats */
+! if( info->event->type & Ph_EV_BUT_REPEAT )
+ button = MOUSE_DRAG;
+ #endif
+
+ /* Don't do anything if it is one of the phantom mouse release events */
+! if( ( button != MOUSE_RELEASE ) ||
+! ( info->event->subtype == Ph_EV_RELEASE_REAL ) )
+ {
+ repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
+
+! gui_send_mouse_event( button , mouse_x, mouse_y, repeated_click, modifiers );
+ }
+
+ return Pt_CONTINUE;
+--- 677,705 ----
+ abs_mouse.y = pointer->pos.y;
+ }
+
+! if (pointer->buttons & Ph_BUTTON_ADJUST)
+ button = MOUSE_MIDDLE;
+
+ /* Catch a real release (not phantom or other releases */
+! if (info->event->type == Ph_EV_BUT_RELEASE)
+ button = MOUSE_RELEASE;
+
+! if (info->event->type & Ph_EV_PTR_MOTION_BUTTON)
+ button = MOUSE_DRAG;
+
+ #if 0
+ /* Vim doesn't use button repeats */
+! if (info->event->type & Ph_EV_BUT_REPEAT)
+ button = MOUSE_DRAG;
+ #endif
+
+ /* Don't do anything if it is one of the phantom mouse release events */
+! if ((button != MOUSE_RELEASE) ||
+! (info->event->subtype == Ph_EV_RELEASE_REAL))
+ {
+ repeated_click = (pointer->click_count >= 2) ? TRUE : FALSE;
+
+! gui_send_mouse_event(button , mouse_x, mouse_y, repeated_click, modifiers);
+ }
+
+ return Pt_CONTINUE;
+***************
+*** 707,741 ****
+
+ /* Handle a focus change of the PtRaw widget */
+ static int
+! gui_ph_handle_focus( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+! if( info->reason == Pt_CB_LOST_FOCUS )
+ {
+! PtRemoveEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+! gui_ph_handle_mouse, NULL );
+
+! gui_mch_mousehide( MOUSE_SHOW );
+ }
+ else
+ {
+! PtAddEventHandler( gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+! gui_ph_handle_mouse, NULL );
+ }
+ return Pt_CONTINUE;
+ }
+
+ static void
+! gui_ph_handle_raw_draw( PtWidget_t *widget, PhTile_t *damage )
+ {
+ PhRect_t *r;
+ PhPoint_t offset;
+ PhPoint_t translation;
+
+! if( is_ignore_draw == TRUE )
+ return;
+
+! PtSuperClassDraw( PtBasic, widget, damage );
+! PgGetTranslation( &translation );
+ PgClearTranslation();
+
+ #if 0
+--- 707,741 ----
+
+ /* Handle a focus change of the PtRaw widget */
+ static int
+! gui_ph_handle_focus(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+! if (info->reason == Pt_CB_LOST_FOCUS)
+ {
+! PtRemoveEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+! gui_ph_handle_mouse, NULL);
+
+! gui_mch_mousehide(MOUSE_SHOW);
+ }
+ else
+ {
+! PtAddEventHandler(gui.vimTextArea, Ph_EV_PTR_MOTION_NOBUTTON,
+! gui_ph_handle_mouse, NULL);
+ }
+ return Pt_CONTINUE;
+ }
+
+ static void
+! gui_ph_handle_raw_draw(PtWidget_t *widget, PhTile_t *damage)
+ {
+ PhRect_t *r;
+ PhPoint_t offset;
+ PhPoint_t translation;
+
+! if (is_ignore_draw == TRUE)
+ return;
+
+! PtSuperClassDraw(PtBasic, widget, damage);
+! PgGetTranslation(&translation);
+ PgClearTranslation();
+
+ #if 0
+***************
+*** 750,770 ****
+ out_flush();
+ #endif
+
+! PtWidgetOffset( widget, &offset );
+! PhTranslatePoint( &offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+
+ #if 1
+ /* Redraw individual damage regions */
+! if( damage->next != NULL )
+ damage = damage->next;
+
+! while( damage != NULL )
+ {
+ r = &damage->rect;
+ gui_redraw(
+ r->ul.x - offset.x, r->ul.y - offset.y,
+ r->lr.x - r->ul.x + 1,
+! r->lr.y - r->ul.y + 1 );
+ damage = damage->next;
+ }
+ #else
+--- 750,770 ----
+ out_flush();
+ #endif
+
+! PtWidgetOffset(widget, &offset);
+! PhTranslatePoint(&offset, PtWidgetPos(gui.vimTextArea, NULL));
+
+ #if 1
+ /* Redraw individual damage regions */
+! if (damage->next != NULL)
+ damage = damage->next;
+
+! while(damage != NULL)
+ {
+ r = &damage->rect;
+ gui_redraw(
+ r->ul.x - offset.x, r->ul.y - offset.y,
+ r->lr.x - r->ul.x + 1,
+! r->lr.y - r->ul.y + 1);
+ damage = damage->next;
+ }
+ #else
+***************
+*** 773,796 ****
+ gui_redraw(
+ r->ul.x - offset.x, r->ul.y - offset.y,
+ r->lr.x - r->ul.x + 1,
+! r->lr.y - r->ul.y + 1 );
+ #endif
+
+! PgSetTranslation( &translation, 0 );
+ }
+
+ static int
+ gui_ph_handle_pulldown_menu(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+! if( data != NULL )
+ {
+ vimmenu_T *menu = (vimmenu_T *) data;
+
+! PtPositionMenu( menu->submenu_id, NULL );
+! PtRealizeWidget( menu->submenu_id );
+ }
+
+ return Pt_CONTINUE;
+--- 773,796 ----
+ gui_redraw(
+ r->ul.x - offset.x, r->ul.y - offset.y,
+ r->lr.x - r->ul.x + 1,
+! r->lr.y - r->ul.y + 1);
+ #endif
+
+! PgSetTranslation(&translation, 0);
+ }
+
+ static int
+ gui_ph_handle_pulldown_menu(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+! if (data != NULL)
+ {
+ vimmenu_T *menu = (vimmenu_T *) data;
+
+! PtPositionMenu(menu->submenu_id, NULL);
+! PtRealizeWidget(menu->submenu_id);
+ }
+
+ return Pt_CONTINUE;
+*** ../vim-7.3.298/src/version.c 2011-09-07 18:58:24.000000000 +0200
+--- src/version.c 2011-09-07 19:01:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 299,
+ /**/
+
+--
+The only way the average employee can speak to an executive is by taking a
+second job as a golf caddie.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.300 b/source/ap/vim/patches/7.3.300
new file mode 100644
index 000000000..132b14a74
--- /dev/null
+++ b/source/ap/vim/patches/7.3.300
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.300
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.300
+Problem: Python doesn't parse multi-byte argument correctly.
+Solution: Use "t" instead of "s". (lilydjwg)
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.299/src/if_py_both.h 2011-07-07 15:08:53.000000000 +0200
+--- src/if_py_both.h 2011-09-07 19:25:12.000000000 +0200
+***************
+*** 74,80 ****
+ char *str = NULL;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "es#", ENC_OPT, &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+--- 74,80 ----
+ char *str = NULL;
+ int error = ((OutputObject *)(self))->error;
+
+! if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
+ return NULL;
+
+ Py_BEGIN_ALLOW_THREADS
+***************
+*** 114,120 ****
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "es#", ENC_OPT, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+--- 114,120 ----
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+*** ../vim-7.3.299/src/version.c 2011-09-07 19:08:57.000000000 +0200
+--- src/version.c 2011-09-07 19:26:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 300,
+ /**/
+
+--
+A salesperson says: Translation:
+"backward compatible" Old technology
+"Premium" Overpriced
+"Can't keep it on the shelf" Unavailable
+"Stands alone" Piece of shit
+"Proprietary" Incompatible
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.301 b/source/ap/vim/patches/7.3.301
new file mode 100644
index 000000000..bb52974dc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.301
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.301
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.301
+Problem: When 'smartindent' and 'copyindent' are set a Tab is used even
+ though 'expandtab' is set.
+Solution: Do not insert Tabs. Add a test. (Christian Brabandt)
+Files: src/misc1.c, src/testdir/test19.in, src/testdir/test19.ok
+
+
+*** ../vim-7.3.300/src/misc1.c 2011-07-27 17:31:42.000000000 +0200
+--- src/misc1.c 2011-09-07 19:37:04.000000000 +0200
+***************
+*** 363,369 ****
+
+ /* Fill to next tabstop with a tab, if possible */
+ tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
+! if (todo >= tab_pad)
+ {
+ todo -= tab_pad;
+ ++ind_len;
+--- 363,369 ----
+
+ /* Fill to next tabstop with a tab, if possible */
+ tab_pad = (int)curbuf->b_p_ts - (ind_done % (int)curbuf->b_p_ts);
+! if (todo >= tab_pad && !curbuf->b_p_et)
+ {
+ todo -= tab_pad;
+ ++ind_len;
+***************
+*** 372,378 ****
+ }
+
+ /* Add tabs required for indent */
+! while (todo >= (int)curbuf->b_p_ts)
+ {
+ todo -= (int)curbuf->b_p_ts;
+ ++ind_len;
+--- 372,378 ----
+ }
+
+ /* Add tabs required for indent */
+! while (todo >= (int)curbuf->b_p_ts && !curbuf->b_p_et)
+ {
+ todo -= (int)curbuf->b_p_ts;
+ ++ind_len;
+*** ../vim-7.3.300/src/testdir/test19.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test19.in 2011-09-07 19:46:17.000000000 +0200
+***************
+*** 12,17 ****
+--- 12,20 ----
+ 0wR 
+ :" Test replacing with Tabs
+ 0wR 
++ :" Test that copyindent works with expandtab set
++ :set expandtab smartindent copyindent ts=8 sw=8 sts=8
++ :exe "norm! o{\<cr>x"
+ :?^start?,$w! test.out
+ :qa!
+ ENDTEST
+*** ../vim-7.3.300/src/testdir/test19.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test19.ok 2011-09-07 19:37:04.000000000 +0200
+***************
+*** 5,7 ****
+--- 5,9 ----
+ a cde
+ hi
+ test text
++ {
++ x
+*** ../vim-7.3.300/src/version.c 2011-09-07 19:30:17.000000000 +0200
+--- src/version.c 2011-09-07 19:38:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 301,
+ /**/
+
+--
+I recommend ordering large cargo containers of paper towels to make up
+whatever budget underruns you have. Paper products are always useful and they
+have the advantage of being completely flushable if you need to make room in
+the storage area later.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.302 b/source/ap/vim/patches/7.3.302
new file mode 100644
index 000000000..f8d2c2499
--- /dev/null
+++ b/source/ap/vim/patches/7.3.302
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.302
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.302 (after 7.3.301)
+Problem: Test 19 fails without 'smartindent' and +eval.
+Solution: Don't use ":exe". Source small.vim.
+Files: src/testdir/test19.in
+
+
+*** ../vim-7.3.301/src/testdir/test19.in 2011-09-07 19:58:04.000000000 +0200
+--- src/testdir/test19.in 2011-09-08 20:32:33.000000000 +0200
+***************
+*** 1,6 ****
+--- 1,7 ----
+ Tests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
+
+ STARTTEST
++ :so small.vim
+ :set smarttab expandtab ts=8 sw=4
+ :" make sure that backspace works, no matter what termcap is used
+ :set t_kD=x7f t_kb=x08
+***************
+*** 14,21 ****
+ 0wR 
+ :" Test that copyindent works with expandtab set
+ :set expandtab smartindent copyindent ts=8 sw=8 sts=8
+! :exe "norm! o{\<cr>x"
+! :?^start?,$w! test.out
+ :qa!
+ ENDTEST
+
+--- 15,22 ----
+ 0wR 
+ :" Test that copyindent works with expandtab set
+ :set expandtab smartindent copyindent ts=8 sw=8 sts=8
+! o{
+! x:?^start?,$w! test.out
+ :qa!
+ ENDTEST
+
+*** ../vim-7.3.301/src/version.c 2011-09-07 19:58:04.000000000 +0200
+--- src/version.c 2011-09-08 23:22:01.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 302,
+ /**/
+
+--
+Engineers are always delighted to share wisdom, even in areas in which they
+have no experience whatsoever. Their logic provides them with inherent
+insight into any field of expertise. This can be a problem when dealing with
+the illogical people who believe that knowledge can only be derived through
+experience.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.303 b/source/ap/vim/patches/7.3.303
new file mode 100644
index 000000000..f85bf68d6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.303
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.303
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.303 (after 7.3.296)
+Problem: Compilation error.
+Solution: Correct return type from int to pid_t. (Danek Duvall)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.302/src/os_unix.c 2011-09-07 15:04:26.000000000 +0200
+--- src/os_unix.c 2011-09-08 20:47:47.000000000 +0200
+***************
+*** 159,165 ****
+ #else
+ typedef int waitstatus;
+ #endif
+! static int wait4pid __ARGS((pid_t, waitstatus *));
+
+ static int WaitForChar __ARGS((long));
+ #if defined(__BEOS__)
+--- 159,165 ----
+ #else
+ typedef int waitstatus;
+ #endif
+! static pid_t wait4pid __ARGS((pid_t, waitstatus *));
+
+ static int WaitForChar __ARGS((long));
+ #if defined(__BEOS__)
+*** ../vim-7.3.302/src/version.c 2011-09-08 23:22:35.000000000 +0200
+--- src/version.c 2011-09-08 23:23:43.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 303,
+ /**/
+
+--
+For humans, honesty is a matter of degree. Engineers are always honest in
+matters of technology and human relationships. That's why it's a good idea
+to keep engineers away from customers, romantic interests, and other people
+who can't handle the truth.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.304 b/source/ap/vim/patches/7.3.304
new file mode 100644
index 000000000..6abfe9cc2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.304
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.304
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.304
+Problem: Strawberry Perl doesn't work on MS-Windows.
+Solution: Use xsubpp if needed. (Yasuhiro Matsumoto)
+Files: src/Make_ming.mak, src/Make_mvc.mak
+
+
+*** ../vim-7.3.303/src/Make_ming.mak 2011-06-19 01:30:01.000000000 +0200
+--- src/Make_ming.mak 2011-09-14 10:44:55.000000000 +0200
+***************
+*** 108,113 ****
+--- 108,120 ----
+ # on NT, it's here:
+ PERLLIB=$(PERL)/lib
+ PERLLIBS=$(PERLLIB)/Core
++ XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
++ XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
++ ifeq "$(XSUBPP_EXISTS)" ""
++ XSUBPP=perl $(XSUBPP)
++ else
++ XSUBPP=xsubpp
++ endif
+ endif
+
+ # uncomment 'LUA' if you want a Lua-enabled version
+***************
+*** 696,702 ****
+ endif
+
+ if_perl.c: if_perl.xs typemap
+! perl $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+ $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
+
+ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
+--- 703,709 ----
+ endif
+
+ if_perl.c: if_perl.xs typemap
+! $(XSUBPP) -prototypes -typemap \
+ $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@
+
+ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC)
+*** ../vim-7.3.303/src/Make_mvc.mak 2011-06-12 20:31:25.000000000 +0200
+--- src/Make_mvc.mak 2011-09-14 10:46:08.000000000 +0200
+***************
+*** 785,790 ****
+--- 785,795 ----
+ PERL_INC = /I $(PERL_INCDIR)
+ PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+ XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
++ !if exist($(XSUBPP)
++ XSUBPP = $(PERL_EXE) $(XSUBPP)
++ !else
++ XSUBPP = xsubpp
++ !endif
+ XSUBPP_TYPEMAP = $(PERL)\lib\ExtUtils\typemap
+
+ !endif
+***************
+*** 1041,1047 ****
+ $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
+
+ if_perl.c : if_perl.xs typemap
+! $(PERL_EXE) $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
+ -typemap typemap if_perl.xs > if_perl.c
+
+ $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
+--- 1046,1052 ----
+ $(CC) $(CFLAGS) $(LUA_INC) if_lua.c
+
+ if_perl.c : if_perl.xs typemap
+! $(XSUBPP) -prototypes -typemap $(XSUBPP_TYPEMAP) \
+ -typemap typemap if_perl.xs > if_perl.c
+
+ $(OUTDIR)/if_perl.obj: $(OUTDIR) if_perl.c $(INCL)
+*** ../vim-7.3.303/src/version.c 2011-09-08 23:24:09.000000000 +0200
+--- src/version.c 2011-09-14 10:47:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 304,
+ /**/
+
+--
+It's totally unfair to suggest - as many have - that engineers are socially
+inept. Engineers simply have different objectives when it comes to social
+interaction.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.305 b/source/ap/vim/patches/7.3.305
new file mode 100644
index 000000000..e70fd5940
--- /dev/null
+++ b/source/ap/vim/patches/7.3.305
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.305
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.305
+Problem: Auto-loading a function while editing the command line causes
+ scrolling up the display.
+Solution: Don't set msg_scroll when defining a function and the user is not
+ typing. (Yasuhiro Matsumoto)
+Files: src/eval.c
+
+
+*** ../vim-7.3.304/src/eval.c 2011-08-17 15:23:16.000000000 +0200
+--- src/eval.c 2011-09-14 14:28:21.000000000 +0200
+***************
+*** 20786,20792 ****
+ nesting = 0;
+ for (;;)
+ {
+! msg_scroll = TRUE;
+ need_wait_return = FALSE;
+ sourcing_lnum_off = sourcing_lnum;
+
+--- 20786,20793 ----
+ nesting = 0;
+ for (;;)
+ {
+! if (KeyTyped)
+! msg_scroll = TRUE;
+ need_wait_return = FALSE;
+ sourcing_lnum_off = sourcing_lnum;
+
+*** ../vim-7.3.304/src/version.c 2011-09-14 10:49:44.000000000 +0200
+--- src/version.c 2011-09-14 14:30:49.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 305,
+ /**/
+
+--
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing". Nobody is going to tell you there aren't enough of those people
+to go around.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.306 b/source/ap/vim/patches/7.3.306
new file mode 100644
index 000000000..62bd4cfce
--- /dev/null
+++ b/source/ap/vim/patches/7.3.306
@@ -0,0 +1,244 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.306
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.306
+Problem: When closing a window there is a chance that deleting a scrollbar
+ triggers a GUI resize, which uses the window while it is not in a
+ valid state.
+Solution: Set the buffer pointer to NULL to be able to detect the invalid
+ situation. Fix a few places that used the buffer pointer
+ incorrectly.
+Files: src/buffer.c, src/ex_cmds.c, src/term.c, src/window.c
+
+
+*** ../vim-7.3.305/src/buffer.c 2011-05-19 13:40:47.000000000 +0200
+--- src/buffer.c 2011-09-10 13:46:59.000000000 +0200
+***************
+*** 416,421 ****
+--- 416,423 ----
+ #endif
+
+ buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
++ if (win_valid(win) && win->w_buffer == buf)
++ win->w_buffer = NULL; /* make sure we don't use the buffer now */
+
+ #ifdef FEAT_AUTOCMD
+ /* Autocommands may have deleted the buffer. */
+***************
+*** 560,565 ****
+--- 562,571 ----
+ #ifdef FEAT_DIFF
+ diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
+ #endif
++ #ifdef FEAT_SYN_HL
++ if (curwin->w_buffer == buf)
++ reset_synblock(curwin); /* remove any ownsyntax */
++ #endif
+
+ #ifdef FEAT_FOLDING
+ /* No folds in an empty buffer. */
+***************
+*** 1346,1351 ****
+--- 1352,1361 ----
+ # endif
+ #endif
+ {
++ #ifdef FEAT_SYN_HL
++ if (prevbuf == curwin->w_buffer)
++ reset_synblock(curwin);
++ #endif
+ #ifdef FEAT_WINDOWS
+ if (unload)
+ close_windows(prevbuf, FALSE);
+***************
+*** 1395,1404 ****
+ foldUpdateAll(curwin); /* update folds (later). */
+ #endif
+
+- #ifdef FEAT_SYN_HL
+- reset_synblock(curwin);
+- curwin->w_s = &(buf->b_s);
+- #endif
+ /* Get the buffer in the current window. */
+ curwin->w_buffer = buf;
+ curbuf = buf;
+--- 1405,1410 ----
+***************
+*** 1409,1414 ****
+--- 1415,1424 ----
+ diff_buf_add(curbuf);
+ #endif
+
++ #ifdef FEAT_SYN_HL
++ curwin->w_s = &(buf->b_s);
++ #endif
++
+ /* Cursor on first line by default. */
+ curwin->w_cursor.lnum = 1;
+ curwin->w_cursor.col = 0;
+*** ../vim-7.3.305/src/ex_cmds.c 2011-07-07 16:20:45.000000000 +0200
+--- src/ex_cmds.c 2011-09-10 13:39:13.000000000 +0200
+***************
+*** 3619,3628 ****
+ */
+ check_arg_idx(curwin);
+
+- #ifdef FEAT_SYN_HL
+- reset_synblock(curwin); /* remove any ownsyntax */
+- #endif
+-
+ #ifdef FEAT_AUTOCMD
+ if (!auto_buf)
+ #endif
+--- 3619,3624 ----
+*** ../vim-7.3.305/src/term.c 2011-05-10 16:41:13.000000000 +0200
+--- src/term.c 2011-09-14 14:39:39.000000000 +0200
+***************
+*** 3017,3028 ****
+ if (width < 0 || height < 0) /* just checking... */
+ return;
+
+! if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */
+ {
+ State = SETWSIZE;
+ return;
+ }
+
+ ++busy;
+
+ #ifdef AMIGA
+--- 3017,3036 ----
+ if (width < 0 || height < 0) /* just checking... */
+ return;
+
+! if (State == HITRETURN || State == SETWSIZE)
+ {
++ /* postpone the resizing */
+ State = SETWSIZE;
+ return;
+ }
+
++ /* curwin->w_buffer can be NULL when we are closing a window and the
++ * buffer has already been closed and removing a scrollbar causes a resize
++ * event. Don't resize then, it will happen after entering another buffer.
++ */
++ if (curwin->w_buffer == NULL)
++ return;
++
+ ++busy;
+
+ #ifdef AMIGA
+*** ../vim-7.3.305/src/window.c 2011-01-08 14:45:57.000000000 +0100
+--- src/window.c 2011-09-10 14:04:56.000000000 +0200
+***************
+*** 1226,1240 ****
+ }
+ newp->w_tagstackidx = oldp->w_tagstackidx;
+ newp->w_tagstacklen = oldp->w_tagstacklen;
+! # ifdef FEAT_FOLDING
+ copyFoldingState(oldp, newp);
+! # endif
+
+ win_init_some(newp, oldp);
+
+! # ifdef FEAT_SYN_HL
+ check_colorcolumn(newp);
+! # endif
+ }
+
+ /*
+--- 1226,1240 ----
+ }
+ newp->w_tagstackidx = oldp->w_tagstackidx;
+ newp->w_tagstacklen = oldp->w_tagstacklen;
+! #ifdef FEAT_FOLDING
+ copyFoldingState(oldp, newp);
+! #endif
+
+ win_init_some(newp, oldp);
+
+! #ifdef FEAT_SYN_HL
+ check_colorcolumn(newp);
+! #endif
+ }
+
+ /*
+***************
+*** 2212,2217 ****
+--- 2212,2222 ----
+ out_flush();
+ #endif
+
++ #ifdef FEAT_SYN_HL
++ /* Free independent synblock before the buffer is freed. */
++ reset_synblock(win);
++ #endif
++
+ /*
+ * Close the link to the buffer.
+ */
+***************
+*** 2222,2228 ****
+ if (!win_valid(win) || last_window() || curtab != prev_curtab)
+ return;
+
+! /* Free the memory used for the window. */
+ wp = win_free_mem(win, &dir, NULL);
+
+ /* Make sure curwin isn't invalid. It can cause severe trouble when
+--- 2227,2234 ----
+ if (!win_valid(win) || last_window() || curtab != prev_curtab)
+ return;
+
+! /* Free the memory used for the window and get the window that received
+! * the screen space. */
+ wp = win_free_mem(win, &dir, NULL);
+
+ /* Make sure curwin isn't invalid. It can cause severe trouble when
+***************
+*** 3247,3252 ****
+--- 3253,3261 ----
+ else
+ wp->w_farsi = W_CONV;
+ #endif
++ #ifdef FEAT_SYN_HL
++ wp->w_s = &wp->w_buffer->b_s;
++ #endif
+ }
+
+ /*
+***************
+*** 4437,4443 ****
+ #endif /* FEAT_GUI */
+
+ #ifdef FEAT_SYN_HL
+- reset_synblock(wp); /* free independent synblock */
+ vim_free(wp->w_p_cc_cols);
+ #endif
+
+--- 4446,4451 ----
+*** ../vim-7.3.305/src/version.c 2011-09-14 14:33:47.000000000 +0200
+--- src/version.c 2011-09-14 14:35:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 306,
+ /**/
+
+--
+A consultant is a person who takes your money and annoys your employees while
+tirelessly searching for the best way to extend the consulting contract.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.307 b/source/ap/vim/patches/7.3.307
new file mode 100644
index 000000000..3fd95e112
--- /dev/null
+++ b/source/ap/vim/patches/7.3.307
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.307
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.307
+Problem: Python 3 doesn't support slice assignment.
+Solution: Implement slices. (Brett Overesch, Roland Puntaier)
+Files: src/if_python3.c
+
+
+*** ../vim-7.3.306/src/if_python3.c 2011-08-28 16:00:14.000000000 +0200
+--- src/if_python3.c 2011-09-14 15:01:26.000000000 +0200
+***************
+*** 855,862 ****
+
+ static Py_ssize_t BufferLength(PyObject *);
+ static PyObject *BufferItem(PyObject *, Py_ssize_t);
+! static PyObject* BufferSubscript(PyObject *self, PyObject* idx);
+! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val);
+
+
+ /* Line range type - Implementation functions
+--- 855,862 ----
+
+ static Py_ssize_t BufferLength(PyObject *);
+ static PyObject *BufferItem(PyObject *, Py_ssize_t);
+! static PyObject* BufferSubscript(PyObject *self, PyObject *idx);
+! static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
+
+
+ /* Line range type - Implementation functions
+***************
+*** 865,872 ****
+
+ #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
+
+! static PyObject* RangeSubscript(PyObject *self, PyObject* idx);
+ static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
+
+ /* Current objects type - Implementation functions
+ * -----------------------------------------------
+--- 865,873 ----
+
+ #define RangeType_Check(obj) ((obj)->ob_base.ob_type == &RangeType)
+
+! static PyObject* RangeSubscript(PyObject *self, PyObject *idx);
+ static Py_ssize_t RangeAsItem(PyObject *, Py_ssize_t, PyObject *);
++ static Py_ssize_t RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val);
+
+ /* Current objects type - Implementation functions
+ * -----------------------------------------------
+***************
+*** 1035,1041 ****
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return BufferSlice(self,start,stop);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+--- 1036,1042 ----
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return BufferSlice(self, start, stop);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+***************
+*** 1084,1090 ****
+ PyMappingMethods RangeAsMapping = {
+ /* mp_length */ (lenfunc)RangeLength,
+ /* mp_subscript */ (binaryfunc)RangeSubscript,
+! /* mp_ass_subscript */ (objobjargproc)0,
+ };
+
+ /* Line range object - Implementation
+--- 1085,1091 ----
+ PyMappingMethods RangeAsMapping = {
+ /* mp_length */ (lenfunc)RangeLength,
+ /* mp_subscript */ (binaryfunc)RangeSubscript,
+! /* mp_ass_subscript */ (objobjargproc)RangeAsSubscript,
+ };
+
+ /* Line range object - Implementation
+***************
+*** 1123,1128 ****
+--- 1124,1138 ----
+ &((RangeObject *)(self))->end);
+ }
+
++ static Py_ssize_t
++ RangeAsSlice(PyObject *self, Py_ssize_t lo, Py_ssize_t hi, PyObject *val)
++ {
++ return RBAsSlice(((RangeObject *)(self))->buf, lo, hi, val,
++ ((RangeObject *)(self))->start,
++ ((RangeObject *)(self))->end,
++ &((RangeObject *)(self))->end);
++ }
++
+ static PyObject *
+ RangeSubscript(PyObject *self, PyObject* idx)
+ {
+***************
+*** 1138,1150 ****
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return RangeSlice(self,start,stop+1);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+ }
+
+ /* Buffer list object - Definitions
+ */
+
+--- 1148,1183 ----
+ &step, &slicelen) < 0) {
+ return NULL;
+ }
+! return RangeSlice(self, start, stop);
+ } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+ }
+
++ static Py_ssize_t
++ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
++ {
++ if (PyLong_Check(idx)) {
++ long n = PyLong_AsLong(idx);
++ return RangeAsItem(self, n, val);
++ } else if (PySlice_Check(idx)) {
++ Py_ssize_t start, stop, step, slicelen;
++
++ if (PySlice_GetIndicesEx((PySliceObject *)idx,
++ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
++ &start, &stop,
++ &step, &slicelen) < 0) {
++ return -1;
++ }
++ return RangeAsSlice(self, start, stop, val);
++ } else {
++ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++ return -1;
++ }
++ }
++
++
+ /* Buffer list object - Definitions
+ */
+
+*** ../vim-7.3.306/src/version.c 2011-09-14 14:43:21.000000000 +0200
+--- src/version.c 2011-09-14 14:58:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 307,
+ /**/
+
+--
+The process for understanding customers primarily involves sitting around with
+other marketing people and talking about what you would to if you were dumb
+enough to be a customer.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.308 b/source/ap/vim/patches/7.3.308
new file mode 100644
index 000000000..36e5de516
--- /dev/null
+++ b/source/ap/vim/patches/7.3.308
@@ -0,0 +1,260 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.308
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.308
+Problem: Writing to 'verbosefile' has problems, e.g. for :highlight.
+Solution: Do not use a separate verbose_write() function but write with the
+ same code that does redirecting. (Yasuhiro Matsumoto)
+Files: src/message.c
+
+
+*** ../vim-7.3.307/src/message.c 2011-08-17 20:33:18.000000000 +0200
+--- src/message.c 2011-09-14 15:32:57.000000000 +0200
+***************
+*** 39,45 ****
+ static void msg_screen_putchar __ARGS((int c, int attr));
+ static int msg_check_screen __ARGS((void));
+ static void redir_write __ARGS((char_u *s, int maxlen));
+- static void verbose_write __ARGS((char_u *s, int maxlen));
+ #ifdef FEAT_CON_DIALOG
+ static char_u *msg_show_console_dialog __ARGS((char_u *message, char_u *buttons, int dfltbutton));
+ static int confirm_msg_used = FALSE; /* displaying confirm_msg */
+--- 39,44 ----
+***************
+*** 58,63 ****
+--- 57,65 ----
+ static struct msg_hist *last_msg_hist = NULL;
+ static int msg_hist_len = 0;
+
++ static FILE *verbose_fd = NULL;
++ static int verbose_did_open = FALSE;
++
+ /*
+ * When writing messages to the screen, there are many different situations.
+ * A number of variables is used to remember the current state:
+***************
+*** 1551,1557 ****
+ #ifdef FEAT_MBYTE
+ if (has_mbyte && !IS_SPECIAL(c))
+ {
+! int len = (*mb_ptr2len)(str);
+
+ /* For multi-byte characters check for an illegal byte. */
+ if (has_mbyte && MB_BYTE2LEN(*str) > len)
+--- 1553,1559 ----
+ #ifdef FEAT_MBYTE
+ if (has_mbyte && !IS_SPECIAL(c))
+ {
+! int len = (*mb_ptr2len)(str);
+
+ /* For multi-byte characters check for an illegal byte. */
+ if (has_mbyte && MB_BYTE2LEN(*str) > len)
+***************
+*** 1560,1569 ****
+ *sp = str + 1;
+ return buf;
+ }
+! /* Since 'special' is TRUE the multi-byte character 'c' will be
+! * processed by get_special_key_name() */
+! c = (*mb_ptr2char)(str);
+! *sp = str + len;
+ }
+ else
+ #endif
+--- 1562,1571 ----
+ *sp = str + 1;
+ return buf;
+ }
+! /* Since 'special' is TRUE the multi-byte character 'c' will be
+! * processed by get_special_key_name() */
+! c = (*mb_ptr2char)(str);
+! *sp = str + len;
+ }
+ else
+ #endif
+***************
+*** 3065,3076 ****
+ if (redir_off)
+ return;
+
+! /*
+! * If 'verbosefile' is set write message in that file.
+! * Must come before the rest because of updating "msg_col".
+! */
+! if (*p_vfile != NUL)
+! verbose_write(s, maxlen);
+
+ if (redirecting())
+ {
+--- 3067,3075 ----
+ if (redir_off)
+ return;
+
+! /* If 'verbosefile' is set prepare for writing in that file. */
+! if (*p_vfile != NUL && verbose_fd == NULL)
+! verbose_open();
+
+ if (redirecting())
+ {
+***************
+*** 3084,3092 ****
+ write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
+ else if (redir_vname)
+ var_redir_str((char_u *)" ", -1);
+! else if (redir_fd)
+ #endif
+ fputs(" ", redir_fd);
+ ++cur_col;
+ }
+ }
+--- 3083,3094 ----
+ write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
+ else if (redir_vname)
+ var_redir_str((char_u *)" ", -1);
+! else
+ #endif
++ if (redir_fd != NULL)
+ fputs(" ", redir_fd);
++ if (verbose_fd != NULL)
++ fputs(" ", verbose_fd);
+ ++cur_col;
+ }
+ }
+***************
+*** 3098,3110 ****
+ var_redir_str(s, maxlen);
+ #endif
+
+! /* Adjust the current column */
+ while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+ {
+ #ifdef FEAT_EVAL
+! if (!redir_reg && !redir_vname && redir_fd != NULL)
+ #endif
+! putc(*s, redir_fd);
+ if (*s == '\r' || *s == '\n')
+ cur_col = 0;
+ else if (*s == '\t')
+--- 3100,3115 ----
+ var_redir_str(s, maxlen);
+ #endif
+
+! /* Write and adjust the current column. */
+ while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+ {
+ #ifdef FEAT_EVAL
+! if (!redir_reg && !redir_vname)
+ #endif
+! if (redir_fd != NULL)
+! putc(*s, redir_fd);
+! if (verbose_fd != NULL)
+! putc(*s, verbose_fd);
+ if (*s == '\r' || *s == '\n')
+ cur_col = 0;
+ else if (*s == '\t')
+***************
+*** 3122,3128 ****
+ int
+ redirecting()
+ {
+! return redir_fd != NULL
+ #ifdef FEAT_EVAL
+ || redir_reg || redir_vname
+ #endif
+--- 3127,3133 ----
+ int
+ redirecting()
+ {
+! return redir_fd != NULL || *p_vfile != NUL
+ #ifdef FEAT_EVAL
+ || redir_reg || redir_vname
+ #endif
+***************
+*** 3180,3188 ****
+ cmdline_row = msg_row;
+ }
+
+- static FILE *verbose_fd = NULL;
+- static int verbose_did_open = FALSE;
+-
+ /*
+ * Called when 'verbosefile' is set: stop writing to the file.
+ */
+--- 3185,3190 ----
+***************
+*** 3220,3268 ****
+ }
+
+ /*
+- * Write a string to 'verbosefile'.
+- * When "maxlen" is -1 write the whole string, otherwise up to "maxlen" bytes.
+- */
+- static void
+- verbose_write(str, maxlen)
+- char_u *str;
+- int maxlen;
+- {
+- char_u *s = str;
+- static int cur_col = 0;
+-
+- /* Open the file when called the first time. */
+- if (verbose_fd == NULL)
+- verbose_open();
+-
+- if (verbose_fd != NULL)
+- {
+- /* If the string doesn't start with CR or NL, go to msg_col */
+- if (*s != '\n' && *s != '\r')
+- {
+- while (cur_col < msg_col)
+- {
+- fputs(" ", verbose_fd);
+- ++cur_col;
+- }
+- }
+-
+- /* Adjust the current column */
+- while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
+- {
+- putc(*s, verbose_fd);
+- if (*s == '\r' || *s == '\n')
+- cur_col = 0;
+- else if (*s == '\t')
+- cur_col += (8 - cur_col % 8);
+- else
+- ++cur_col;
+- ++s;
+- }
+- }
+- }
+-
+- /*
+ * Give a warning message (for searching).
+ * Use 'w' highlighting and may repeat the message after redrawing
+ */
+--- 3222,3227 ----
+*** ../vim-7.3.307/src/version.c 2011-09-14 15:01:54.000000000 +0200
+--- src/version.c 2011-09-14 15:38:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 308,
+ /**/
+
+--
+The average life of an organization chart is six months. You can safely
+ignore any order from your boss that would take six months to complete.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.309 b/source/ap/vim/patches/7.3.309
new file mode 100644
index 000000000..f274284bd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.309
@@ -0,0 +1,105 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.309
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.309 (after 7.3.307)
+Problem: Warnings for pointer types.
+Solution: Change PySliceObject to PyObject.
+Files: src/if_python3.c
+
+
+*** ../vim-7.3.308/src/if_python3.c 2011-09-14 15:01:54.000000000 +0200
+--- src/if_python3.c 2011-09-14 15:30:45.000000000 +0200
+***************
+*** 1030,1036 ****
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PySliceObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+--- 1030,1036 ----
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+***************
+*** 1054,1060 ****
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PySliceObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+--- 1054,1060 ----
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+***************
+*** 1142,1148 ****
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PySliceObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+--- 1142,1148 ----
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+***************
+*** 1164,1170 ****
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PySliceObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+--- 1164,1170 ----
+ } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+! if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+ &step, &slicelen) < 0) {
+*** ../vim-7.3.308/src/version.c 2011-09-14 15:39:26.000000000 +0200
+--- src/version.c 2011-09-14 15:40:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 309,
+ /**/
+
+--
+Never enter the boss's office unless it's absolutely necessary. Every boss
+saves one corner of the desk for useless assignments that are doled out like
+Halloween candy to each visitor.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.310 b/source/ap/vim/patches/7.3.310
new file mode 100644
index 000000000..e3ffa5a4c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.310
@@ -0,0 +1,3524 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.310
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.310
+Problem: Code not following Vim style.
+Solution: Fix the style. (Elias Diem)
+Files: src/gui_photon.c
+
+
+*** ../vim-7.3.309/src/gui_photon.c 2011-09-07 19:08:57.000000000 +0200
+--- src/gui_photon.c 2011-09-14 16:01:55.000000000 +0200
+***************
+*** 477,483 ****
+ }
+ #endif
+
+! for(i = 0; special_keys[i].key_sym != 0; i++)
+ {
+ if (special_keys[i].key_sym == key->key_cap)
+ {
+--- 477,483 ----
+ }
+ #endif
+
+! for (i = 0; special_keys[i].key_sym != 0; i++)
+ {
+ if (special_keys[i].key_sym == key->key_cap)
+ {
+***************
+*** 758,764 ****
+ if (damage->next != NULL)
+ damage = damage->next;
+
+! while(damage != NULL)
+ {
+ r = &damage->rect;
+ gui_redraw(
+--- 758,764 ----
+ if (damage->next != NULL)
+ damage = damage->next;
+
+! while (damage != NULL)
+ {
+ r = &damage->rect;
+ gui_redraw(
+***************
+*** 798,809 ****
+
+ /* This is used for pulldown/popup menus and also toolbar buttons */
+ static int
+! gui_ph_handle_menu( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+! if( data != NULL )
+ {
+ vimmenu_T *menu = (vimmenu_T *) data;
+! gui_menu_cb( menu );
+ }
+ return Pt_CONTINUE;
+ }
+--- 798,809 ----
+
+ /* This is used for pulldown/popup menus and also toolbar buttons */
+ static int
+! gui_ph_handle_menu(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+! if (data != NULL)
+ {
+ vimmenu_T *menu = (vimmenu_T *) data;
+! gui_menu_cb(menu);
+ }
+ return Pt_CONTINUE;
+ }
+***************
+*** 813,821 ****
+ gui_ph_handle_menu_unrealized(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+! PtGiveFocus( gui.vimTextArea, NULL );
+ return Pt_CONTINUE;
+ }
+
+--- 813,821 ----
+ gui_ph_handle_menu_unrealized(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+! PtGiveFocus(gui.vimTextArea, NULL);
+ return Pt_CONTINUE;
+ }
+
+***************
+*** 823,831 ****
+ gui_ph_handle_window_open(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+! gui_set_shellsize( FALSE, TRUE, RESIZE_BOTH );
+ return Pt_CONTINUE;
+ }
+
+--- 823,831 ----
+ gui_ph_handle_window_open(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+! gui_set_shellsize(FALSE, TRUE, RESIZE_BOTH);
+ return Pt_CONTINUE;
+ }
+
+***************
+*** 836,909 ****
+
+ /* TODO: Set a clipping rect? */
+ static void
+! gui_ph_draw_start( void )
+ {
+ PhGC_t *gc;
+
+ gc = PgGetGC();
+! PgSetRegion( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) );
+! PgClearClippingsCx( gc );
+! PgClearTranslationCx( gc );
+
+! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+
+! PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
+ }
+
+ static void
+! gui_ph_draw_end( void )
+ {
+ gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
+ gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
+! PgSetTranslation( &gui_ph_raw_offset, Pg_RELATIVE );
+ }
+
+ #ifdef USE_PANEL_GROUP
+ static vimmenu_T *
+! gui_ph_find_buffer_item( char_u *name )
+ {
+ vimmenu_T *top_level = root_menu;
+ vimmenu_T *items = NULL;
+
+! while( top_level != NULL &&
+! ( STRCMP( top_level->dname, "Buffers" ) != 0 ) )
+ top_level = top_level->next;
+
+! if( top_level != NULL )
+ {
+ items = top_level->children;
+
+! while( items != NULL &&
+! ( STRCMP( items->dname, name ) != 0 ) )
+ items = items->next;
+ }
+ return items;
+ }
+
+ static void
+! gui_ph_pg_set_buffer_num( int_u buf_num )
+ {
+ int i;
+ char search[16];
+ char *mark;
+
+! if( gui.vimTextArea == NULL || buf_num == 0 )
+ return;
+
+ search[0] = '(';
+! ultoa( buf_num, &search[1], 10 );
+! STRCAT( search, ")" );
+
+! for( i = 0; i < num_panels; i++ )
+ {
+ /* find the last "(" in the panel title and see if the buffer
+ * number in the title matches the one we're looking for */
+! mark = STRRCHR( panel_titles[ i ], '(' );
+! if( mark != NULL && STRCMP( mark, search ) == 0 )
+ {
+! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
+! i, 0 );
+ }
+ }
+ }
+--- 836,909 ----
+
+ /* TODO: Set a clipping rect? */
+ static void
+! gui_ph_draw_start(void)
+ {
+ PhGC_t *gc;
+
+ gc = PgGetGC();
+! PgSetRegion(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)));
+! PgClearClippingsCx(gc);
+! PgClearTranslationCx(gc);
+
+! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+
+! PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
+ }
+
+ static void
+! gui_ph_draw_end(void)
+ {
+ gui_ph_raw_offset.x = -gui_ph_raw_offset.x;
+ gui_ph_raw_offset.y = -gui_ph_raw_offset.y;
+! PgSetTranslation(&gui_ph_raw_offset, Pg_RELATIVE);
+ }
+
+ #ifdef USE_PANEL_GROUP
+ static vimmenu_T *
+! gui_ph_find_buffer_item(char_u *name)
+ {
+ vimmenu_T *top_level = root_menu;
+ vimmenu_T *items = NULL;
+
+! while (top_level != NULL &&
+! (STRCMP(top_level->dname, "Buffers") != 0))
+ top_level = top_level->next;
+
+! if (top_level != NULL)
+ {
+ items = top_level->children;
+
+! while (items != NULL &&
+! (STRCMP(items->dname, name) != 0))
+ items = items->next;
+ }
+ return items;
+ }
+
+ static void
+! gui_ph_pg_set_buffer_num(int_u buf_num)
+ {
+ int i;
+ char search[16];
+ char *mark;
+
+! if (gui.vimTextArea == NULL || buf_num == 0)
+ return;
+
+ search[0] = '(';
+! ultoa(buf_num, &search[1], 10);
+! STRCAT(search, ")");
+
+! for (i = 0; i < num_panels; i++)
+ {
+ /* find the last "(" in the panel title and see if the buffer
+ * number in the title matches the one we're looking for */
+! mark = STRRCHR(panel_titles[ i ], '(');
+! if (mark != NULL && STRCMP(mark, search) == 0)
+ {
+! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_CURRENT_INDEX,
+! i, 0);
+ }
+ }
+ }
+***************
+*** 912,930 ****
+ gui_ph_handle_pg_change(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+ vimmenu_T *menu;
+ PtPanelGroupCallback_t *panel;
+
+! if( info->event != NULL )
+ {
+ panel = info->cbdata;
+! if( panel->new_panel != NULL )
+ {
+! menu = gui_ph_find_buffer_item( panel->new_panel );
+! if( menu )
+! gui_menu_cb( menu );
+ }
+ }
+ return Pt_CONTINUE;
+--- 912,930 ----
+ gui_ph_handle_pg_change(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+ vimmenu_T *menu;
+ PtPanelGroupCallback_t *panel;
+
+! if (info->event != NULL)
+ {
+ panel = info->cbdata;
+! if (panel->new_panel != NULL)
+ {
+! menu = gui_ph_find_buffer_item(panel->new_panel);
+! if (menu)
+! gui_menu_cb(menu);
+ }
+ }
+ return Pt_CONTINUE;
+***************
+*** 935,951 ****
+ short *top,
+ short *bottom,
+ short *left,
+! short *right )
+ {
+ unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
+ const unsigned short *margin_top, *margin_bottom;
+ const unsigned short *margin_left, *margin_right;
+
+! PtGetAbsPosition( gui.vimTextArea, &abs_raw_x, &abs_raw_y );
+! PtGetAbsPosition( gui.vimPanelGroup, &abs_panel_x, &abs_panel_y );
+
+! PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0 );
+! PtGetResource( gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0 );
+
+ abs_raw_x -= abs_panel_x;
+ abs_raw_y -= abs_panel_y;
+--- 935,951 ----
+ short *top,
+ short *bottom,
+ short *left,
+! short *right)
+ {
+ unsigned short abs_raw_x, abs_raw_y, abs_panel_x, abs_panel_y;
+ const unsigned short *margin_top, *margin_bottom;
+ const unsigned short *margin_left, *margin_right;
+
+! PtGetAbsPosition(gui.vimTextArea, &abs_raw_x, &abs_raw_y);
+! PtGetAbsPosition(gui.vimPanelGroup, &abs_panel_x, &abs_panel_y);
+
+! PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_RIGHT, &margin_right, 0);
+! PtGetResource(gui.vimPanelGroup, Pt_ARG_MARGIN_BOTTOM, &margin_bottom, 0);
+
+ abs_raw_x -= abs_panel_x;
+ abs_raw_y -= abs_panel_y;
+***************
+*** 959,979 ****
+
+ /* Used for the tabs for PtPanelGroup */
+ static int
+! gui_ph_is_buffer_item( vimmenu_T *menu, vimmenu_T *parent )
+ {
+ char *mark;
+
+! if( STRCMP( parent->dname, "Buffers" ) == 0 )
+ {
+ /* Look for '(' digits ')' */
+! mark = vim_strchr( menu->dname, '(' );
+! if( mark != NULL )
+ {
+ mark++;
+! while( isdigit( *mark ) )
+ mark++;
+
+! if( *mark == ')' )
+ return TRUE;
+ }
+ }
+--- 959,979 ----
+
+ /* Used for the tabs for PtPanelGroup */
+ static int
+! gui_ph_is_buffer_item(vimmenu_T *menu, vimmenu_T *parent)
+ {
+ char *mark;
+
+! if (STRCMP(parent->dname, "Buffers") == 0)
+ {
+ /* Look for '(' digits ')' */
+! mark = vim_strchr(menu->dname, '(');
+! if (mark != NULL)
+ {
+ mark++;
+! while (isdigit(*mark))
+ mark++;
+
+! if (*mark == ')')
+ return TRUE;
+ }
+ }
+***************
+*** 981,1043 ****
+ }
+
+ static void
+! gui_ph_pg_add_buffer(char *name )
+ {
+ char **new_titles = NULL;
+
+! new_titles = (char **) alloc( ( num_panels + 1 ) * sizeof( char ** ) );
+! if( new_titles != NULL )
+ {
+! if( num_panels > 0 )
+! memcpy( new_titles, panel_titles, num_panels * sizeof( char ** ) );
+
+ new_titles[ num_panels++ ] = name;
+
+! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+! num_panels );
+
+! vim_free( panel_titles );
+ panel_titles = new_titles;
+ }
+ }
+
+ static void
+! gui_ph_pg_remove_buffer( char *name )
+ {
+ int i;
+ char **new_titles = NULL;
+
+ /* If there is only 1 panel, we just use the temporary place holder */
+! if( num_panels > 1 )
+ {
+! new_titles = (char **) alloc( ( num_panels - 1 ) * sizeof( char ** ) );
+! if( new_titles != NULL )
+ {
+ char **s = new_titles;
+ /* Copy all the titles except the one we're removing */
+! for( i = 0; i < num_panels; i++ )
+ {
+! if( STRCMP( panel_titles[ i ], name ) != 0 )
+ {
+ *s++ = panel_titles[ i ];
+ }
+ }
+ num_panels--;
+
+! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+! num_panels );
+
+! vim_free( panel_titles );
+ panel_titles = new_titles;
+ }
+ }
+ else
+ {
+ num_panels--;
+! PtSetResource( gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
+! 1 );
+
+! vim_free( panel_titles );
+ panel_titles = NULL;
+ }
+ }
+--- 981,1043 ----
+ }
+
+ static void
+! gui_ph_pg_add_buffer(char *name)
+ {
+ char **new_titles = NULL;
+
+! new_titles = (char **) alloc((num_panels + 1) * sizeof(char **));
+! if (new_titles != NULL)
+ {
+! if (num_panels > 0)
+! memcpy(new_titles, panel_titles, num_panels * sizeof(char **));
+
+ new_titles[ num_panels++ ] = name;
+
+! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+! num_panels);
+
+! vim_free(panel_titles);
+ panel_titles = new_titles;
+ }
+ }
+
+ static void
+! gui_ph_pg_remove_buffer(char *name)
+ {
+ int i;
+ char **new_titles = NULL;
+
+ /* If there is only 1 panel, we just use the temporary place holder */
+! if (num_panels > 1)
+ {
+! new_titles = (char **) alloc((num_panels - 1) * sizeof(char **));
+! if (new_titles != NULL)
+ {
+ char **s = new_titles;
+ /* Copy all the titles except the one we're removing */
+! for (i = 0; i < num_panels; i++)
+ {
+! if (STRCMP(panel_titles[ i ], name) != 0)
+ {
+ *s++ = panel_titles[ i ];
+ }
+ }
+ num_panels--;
+
+! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, new_titles,
+! num_panels);
+
+! vim_free(panel_titles);
+ panel_titles = new_titles;
+ }
+ }
+ else
+ {
+ num_panels--;
+! PtSetResource(gui.vimPanelGroup, Pt_ARG_PG_PANEL_TITLES, &empty_title,
+! 1);
+
+! vim_free(panel_titles);
+ panel_titles = NULL;
+ }
+ }
+***************
+*** 1047,1060 ****
+ gui_ph_handle_buffer_remove(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info )
+ {
+ vimmenu_T *menu;
+
+! if( data != NULL )
+ {
+ menu = (vimmenu_T *) data;
+! gui_ph_pg_remove_buffer( menu->dname );
+ }
+
+ return Pt_CONTINUE;
+--- 1047,1060 ----
+ gui_ph_handle_buffer_remove(
+ PtWidget_t *widget,
+ void *data,
+! PtCallbackInfo_t *info)
+ {
+ vimmenu_T *menu;
+
+! if (data != NULL)
+ {
+ menu = (vimmenu_T *) data;
+! gui_ph_pg_remove_buffer(menu->dname);
+ }
+
+ return Pt_CONTINUE;
+***************
+*** 1062,1074 ****
+ #endif
+
+ static int
+! gui_ph_pane_resize( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+! if( PtWidgetIsRealized( widget ) )
+ {
+ is_ignore_draw = TRUE;
+! PtStartFlux( gui.vimContainer );
+! PtContainerHold( gui.vimContainer );
+ }
+
+ return Pt_CONTINUE;
+--- 1062,1074 ----
+ #endif
+
+ static int
+! gui_ph_pane_resize(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+! if (PtWidgetIsRealized(widget))
+ {
+ is_ignore_draw = TRUE;
+! PtStartFlux(gui.vimContainer);
+! PtContainerHold(gui.vimContainer);
+ }
+
+ return Pt_CONTINUE;
+***************
+*** 1078,1084 ****
+
+ #ifdef FEAT_MBYTE
+ void
+! gui_ph_encoding_changed( int new_encoding )
+ {
+ /* Default encoding is latin1 */
+ char *charset = "latin1";
+--- 1078,1084 ----
+
+ #ifdef FEAT_MBYTE
+ void
+! gui_ph_encoding_changed(int new_encoding)
+ {
+ /* Default encoding is latin1 */
+ char *charset = "latin1";
+***************
+*** 1094,1106 ****
+ { DBCS_CHS, "gb" }
+ };
+
+! for( i = 0; i < ARRAY_LENGTH( charsets ); i++ )
+ {
+! if( new_encoding == charsets[ i ].encoding )
+ charset = charsets[ i ].name;
+ }
+
+! charset_translate = PxTranslateSet( charset_translate, charset );
+ }
+ #endif
+
+--- 1094,1106 ----
+ { DBCS_CHS, "gb" }
+ };
+
+! for (i = 0; i < ARRAY_LENGTH(charsets); i++)
+ {
+! if (new_encoding == charsets[ i ].encoding)
+ charset = charsets[ i ].name;
+ }
+
+! charset_translate = PxTranslateSet(charset_translate, charset);
+ }
+ #endif
+
+***************
+*** 1112,1118 ****
+ int *argc;
+ char **argv;
+ {
+! PtInit( NULL );
+ }
+
+ int
+--- 1112,1118 ----
+ int *argc;
+ char **argv;
+ {
+! PtInit(NULL);
+ }
+
+ int
+***************
+*** 1124,1213 ****
+ PhDim_t window_size = {100, 100}; /* Arbitrary values */
+ PhPoint_t pos = {0, 0};
+
+! gui.event_buffer = (PhEvent_t *) alloc( EVENT_BUFFER_SIZE );
+! if( gui.event_buffer == NULL )
+ return FAIL;
+
+ /* Get a translation so we can convert from ISO Latin-1 to UTF */
+! charset_translate = PxTranslateSet( NULL, "latin1" );
+
+ /* The +2 is for the 1 pixel dark line on each side */
+ gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
+
+ /* Handle close events ourselves */
+! PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE );
+! PtSetArg( &args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
+! Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS );
+! PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+! gui.vimWindow = PtCreateWidget( PtWindow, NULL, n, args );
+! if( gui.vimWindow == NULL )
+ return FAIL;
+
+! PtAddCallback( gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL );
+! PtAddCallback( gui.vimWindow, Pt_CB_WINDOW_OPENING,
+! gui_ph_handle_window_open, NULL );
+
+ n = 0;
+! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED );
+! PtSetArg( &args[ n++ ], Pt_ARG_DIM, &window_size, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_POS, &pos, 0 );
+
+ #ifdef USE_PANEL_GROUP
+ /* Put in a temprary place holder title */
+! PtSetArg( &args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1 );
+
+! gui.vimPanelGroup = PtCreateWidget( PtPanelGroup, gui.vimWindow, n, args );
+! if( gui.vimPanelGroup == NULL )
+ return FAIL;
+
+! PtAddCallback( gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+! gui_ph_handle_pg_change, NULL );
+ #else
+ /* Turn off all edge decorations */
+! PtSetArg( &args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL );
+! PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT );
+
+! gui.vimContainer = PtCreateWidget( PtPane, gui.vimWindow, n, args );
+! if( gui.vimContainer == NULL )
+ return FAIL;
+
+! PtAddCallback( gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL );
+ #endif
+
+ /* Size for the text area is set in gui_mch_set_text_area_pos */
+ n = 0;
+
+! PtSetArg( &args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1 );
+! PtSetArg( &args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0 );
+ /*
+ * Using focus render also causes the whole widget to be redrawn
+ * whenever it changes focus, which is very annoying :p
+ */
+! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
+! Pt_GETS_FOCUS | Pt_HIGHLIGHTED );
+ #ifndef FEAT_MOUSESHAPE
+! PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0 );
+ #endif
+
+! gui.vimTextArea = PtCreateWidget( PtRaw, Pt_DFLT_PARENT, n, args );
+! if( gui.vimTextArea == NULL)
+ return FAIL;
+
+ /* TODO: use PtAddEventHandlers instead? */
+ /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+! PtAddEventHandler( gui.vimTextArea,
+ Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
+! gui_ph_handle_mouse, NULL );
+! PtAddEventHandler( gui.vimTextArea, Ph_EV_KEY,
+! gui_ph_handle_keyboard, NULL );
+! PtAddCallback( gui.vimTextArea, Pt_CB_GOT_FOCUS,
+! gui_ph_handle_focus, NULL );
+! PtAddCallback( gui.vimTextArea, Pt_CB_LOST_FOCUS,
+! gui_ph_handle_focus, NULL );
+
+ /*
+ * Now that the text area widget has been created, set up the colours,
+--- 1124,1213 ----
+ PhDim_t window_size = {100, 100}; /* Arbitrary values */
+ PhPoint_t pos = {0, 0};
+
+! gui.event_buffer = (PhEvent_t *) alloc(EVENT_BUFFER_SIZE);
+! if (gui.event_buffer == NULL)
+ return FAIL;
+
+ /* Get a translation so we can convert from ISO Latin-1 to UTF */
+! charset_translate = PxTranslateSet(NULL, "latin1");
+
+ /* The +2 is for the 1 pixel dark line on each side */
+ gui.border_offset = gui.border_width = GUI_PH_MARGIN + 2;
+
+ /* Handle close events ourselves */
+! PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_MANAGED_FLAGS, Pt_FALSE, Ph_WM_CLOSE);
+! PtSetArg(&args[ n++ ], Pt_ARG_WINDOW_NOTIFY_FLAGS, Pt_TRUE,
+! Ph_WM_CLOSE | Ph_WM_RESIZE | Ph_WM_FOCUS);
+! PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
+! gui.vimWindow = PtCreateWidget(PtWindow, NULL, n, args);
+! if (gui.vimWindow == NULL)
+ return FAIL;
+
+! PtAddCallback(gui.vimWindow, Pt_CB_WINDOW, gui_ph_handle_window_cb, NULL);
+! PtAddCallback(gui.vimWindow, Pt_CB_WINDOW_OPENING,
+! gui_ph_handle_window_open, NULL);
+
+ n = 0;
+! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_ALL, Pt_IS_ANCHORED);
+! PtSetArg(&args[ n++ ], Pt_ARG_DIM, &window_size, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_POS, &pos, 0);
+
+ #ifdef USE_PANEL_GROUP
+ /* Put in a temprary place holder title */
+! PtSetArg(&args[ n++ ], Pt_ARG_PG_PANEL_TITLES, &empty_title, 1);
+
+! gui.vimPanelGroup = PtCreateWidget(PtPanelGroup, gui.vimWindow, n, args);
+! if (gui.vimPanelGroup == NULL)
+ return FAIL;
+
+! PtAddCallback(gui.vimPanelGroup, Pt_CB_PG_PANEL_SWITCHING,
+! gui_ph_handle_pg_change, NULL);
+ #else
+ /* Turn off all edge decorations */
+! PtSetArg(&args[ n++ ], Pt_ARG_BASIC_FLAGS, Pt_FALSE, Pt_ALL);
+! PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, 0, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 0, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 0, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_CONTAINER_FLAGS, Pt_TRUE, Pt_AUTO_EXTENT);
+
+! gui.vimContainer = PtCreateWidget(PtPane, gui.vimWindow, n, args);
+! if (gui.vimContainer == NULL)
+ return FAIL;
+
+! PtAddCallback(gui.vimContainer, Pt_CB_RESIZE, gui_ph_pane_resize, NULL);
+ #endif
+
+ /* Size for the text area is set in gui_mch_set_text_area_pos */
+ n = 0;
+
+! PtSetArg(&args[ n++ ], Pt_ARG_RAW_DRAW_F, gui_ph_handle_raw_draw, 1);
+! PtSetArg(&args[ n++ ], Pt_ARG_BEVEL_WIDTH, GUI_PH_MARGIN, 0);
+ /*
+ * Using focus render also causes the whole widget to be redrawn
+ * whenever it changes focus, which is very annoying :p
+ */
+! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE,
+! Pt_GETS_FOCUS | Pt_HIGHLIGHTED);
+ #ifndef FEAT_MOUSESHAPE
+! PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_TYPE, GUI_PH_MOUSE_TYPE, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_CURSOR_COLOR, gui_ph_mouse_color, 0);
+ #endif
+
+! gui.vimTextArea = PtCreateWidget(PtRaw, Pt_DFLT_PARENT, n, args);
+! if (gui.vimTextArea == NULL)
+ return FAIL;
+
+ /* TODO: use PtAddEventHandlers instead? */
+ /* Not using Ph_EV_BUT_REPEAT because vim wouldn't use it anyway */
+! PtAddEventHandler(gui.vimTextArea,
+ Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE | Ph_EV_PTR_MOTION_BUTTON,
+! gui_ph_handle_mouse, NULL);
+! PtAddEventHandler(gui.vimTextArea, Ph_EV_KEY,
+! gui_ph_handle_keyboard, NULL);
+! PtAddCallback(gui.vimTextArea, Pt_CB_GOT_FOCUS,
+! gui_ph_handle_focus, NULL);
+! PtAddCallback(gui.vimTextArea, Pt_CB_LOST_FOCUS,
+! gui_ph_handle_focus, NULL);
+
+ /*
+ * Now that the text area widget has been created, set up the colours,
+***************
+*** 1218,1278 ****
+ * Create the two timers, not as accurate as using the kernel timer
+ * functions, but good enough
+ */
+! gui_ph_timer_cursor = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+! if( gui_ph_timer_cursor == NULL )
+ return FAIL;
+
+! gui_ph_timer_timeout = PtCreateWidget( PtTimer, gui.vimWindow, 0, NULL );
+! if( gui_ph_timer_timeout == NULL )
+ return FAIL;
+
+! PtAddCallback( gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_cursor, NULL);
+! PtAddCallback( gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_timeout, NULL);
+
+ #ifdef FEAT_MENU
+ n = 0;
+! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
+! Pt_IS_ANCHORED );
+! gui.vimToolBarGroup = PtCreateWidget( PtToolbarGroup, gui.vimWindow,
+! n, args );
+! if( gui.vimToolBarGroup == NULL )
+ return FAIL;
+
+! PtAddCallback( gui.vimToolBarGroup, Pt_CB_RESIZE,
+! gui_ph_handle_menu_resize, NULL );
+
+ n = 0;
+ flags = 0;
+! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+! if( ! vim_strchr( p_go, GO_MENUS ) )
+ {
+ flags |= Pt_DELAY_REALIZE;
+! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags );
+ }
+! gui.vimMenuBar = PtCreateWidget( PtMenuBar, gui.vimToolBarGroup, n, args );
+! if( gui.vimMenuBar == NULL )
+ return FAIL;
+
+ # ifdef FEAT_TOOLBAR
+ n = 0;
+
+! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+! Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED );
+! PtSetArg( &args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
+! Pt_RESIZE_Y_AS_REQUIRED );
+! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0 );
+
+ flags = Pt_GETS_FOCUS;
+! if( ! vim_strchr( p_go, GO_TOOLBAR ) )
+ flags |= Pt_DELAY_REALIZE;
+
+! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags );
+
+! gui.vimToolBar = PtCreateWidget( PtToolbar, gui.vimToolBarGroup, n, args );
+! if( gui.vimToolBar == NULL )
+ return FAIL;
+
+ /*
+--- 1218,1278 ----
+ * Create the two timers, not as accurate as using the kernel timer
+ * functions, but good enough
+ */
+! gui_ph_timer_cursor = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
+! if (gui_ph_timer_cursor == NULL)
+ return FAIL;
+
+! gui_ph_timer_timeout = PtCreateWidget(PtTimer, gui.vimWindow, 0, NULL);
+! if (gui_ph_timer_timeout == NULL)
+ return FAIL;
+
+! PtAddCallback(gui_ph_timer_cursor, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_cursor, NULL);
+! PtAddCallback(gui_ph_timer_timeout, Pt_CB_TIMER_ACTIVATE,
+ gui_ph_handle_timer_timeout, NULL);
+
+ #ifdef FEAT_MENU
+ n = 0;
+! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, Pt_ANCHOR_LEFT_RIGHT,
+! Pt_IS_ANCHORED);
+! gui.vimToolBarGroup = PtCreateWidget(PtToolbarGroup, gui.vimWindow,
+! n, args);
+! if (gui.vimToolBarGroup == NULL)
+ return FAIL;
+
+! PtAddCallback(gui.vimToolBarGroup, Pt_CB_RESIZE,
+! gui_ph_handle_menu_resize, NULL);
+
+ n = 0;
+ flags = 0;
+! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+! if (! vim_strchr(p_go, GO_MENUS))
+ {
+ flags |= Pt_DELAY_REALIZE;
+! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_TRUE, flags);
+ }
+! gui.vimMenuBar = PtCreateWidget(PtMenuBar, gui.vimToolBarGroup, n, args);
+! if (gui.vimMenuBar == NULL)
+ return FAIL;
+
+ # ifdef FEAT_TOOLBAR
+ n = 0;
+
+! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+! Pt_ANCHOR_LEFT_RIGHT |Pt_TOP_ANCHORED_TOP, Pt_IS_ANCHORED);
+! PtSetArg(&args[ n++ ], Pt_ARG_RESIZE_FLAGS, Pt_TRUE,
+! Pt_RESIZE_Y_AS_REQUIRED);
+! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, window_size.w, 0);
+
+ flags = Pt_GETS_FOCUS;
+! if (! vim_strchr(p_go, GO_TOOLBAR))
+ flags |= Pt_DELAY_REALIZE;
+
+! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE, flags);
+
+! gui.vimToolBar = PtCreateWidget(PtToolbar, gui.vimToolBarGroup, n, args);
+! if (gui.vimToolBar == NULL)
+ return FAIL;
+
+ /*
+***************
+*** 1310,1329 ****
+ if (gui_win_x != -1 && gui_win_y != -1)
+ gui_mch_set_winpos(gui_win_x, gui_win_y);
+
+! return (PtRealizeWidget( gui.vimWindow ) == 0) ? OK : FAIL;
+ }
+
+ void
+ gui_mch_exit(int rc)
+ {
+! PtDestroyWidget( gui.vimWindow );
+
+! PxTranslateSet( charset_translate, NULL );
+
+! vim_free( gui.event_buffer );
+
+ #ifdef USE_PANEL_GROUPS
+! vim_free( panel_titles );
+ #endif
+ }
+
+--- 1310,1329 ----
+ if (gui_win_x != -1 && gui_win_y != -1)
+ gui_mch_set_winpos(gui_win_x, gui_win_y);
+
+! return (PtRealizeWidget(gui.vimWindow) == 0) ? OK : FAIL;
+ }
+
+ void
+ gui_mch_exit(int rc)
+ {
+! PtDestroyWidget(gui.vimWindow);
+
+! PxTranslateSet(charset_translate, NULL);
+
+! vim_free(gui.event_buffer);
+
+ #ifdef USE_PANEL_GROUPS
+! vim_free(panel_titles);
+ #endif
+ }
+
+***************
+*** 1333,1339 ****
+ /* When no events are available, photon will call this function, working is
+ * set to FALSE, and the gui_mch_update loop will exit. */
+ static int
+! exit_gui_mch_update( void *data )
+ {
+ *(int *)data = FALSE;
+ return Pt_END;
+--- 1333,1339 ----
+ /* When no events are available, photon will call this function, working is
+ * set to FALSE, and the gui_mch_update loop will exit. */
+ static int
+! exit_gui_mch_update(void *data)
+ {
+ *(int *)data = FALSE;
+ return Pt_END;
+***************
+*** 1344,1351 ****
+ {
+ int working = TRUE;
+
+! PtAppAddWorkProc( NULL, exit_gui_mch_update, &working );
+! while( ( working == TRUE ) && !vim_is_input_buf_full())
+ {
+ PtProcessEvent();
+ }
+--- 1344,1351 ----
+ {
+ int working = TRUE;
+
+! PtAppAddWorkProc(NULL, exit_gui_mch_update, &working);
+! while ((working == TRUE) && !vim_is_input_buf_full())
+ {
+ PtProcessEvent();
+ }
+***************
+*** 1356,1378 ****
+ {
+ is_timeout = FALSE;
+
+! if( wtime > 0 )
+! PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0 );
+
+! while( 1 )
+ {
+ PtProcessEvent();
+! if( input_available() )
+ {
+! PtSetResource( gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0 );
+ return OK;
+ }
+! else if( is_timeout == TRUE )
+ return FAIL;
+ }
+ }
+
+! #if defined( FEAT_BROWSE ) || defined( PROTO )
+ /*
+ * Put up a file requester.
+ * Returns the selected name in allocated memory, or NULL for Cancel.
+--- 1356,1378 ----
+ {
+ is_timeout = FALSE;
+
+! if (wtime > 0)
+! PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, wtime, 0);
+
+! while (1)
+ {
+ PtProcessEvent();
+! if (input_available())
+ {
+! PtSetResource(gui_ph_timer_timeout, Pt_ARG_TIMER_INITIAL, 0, 0);
+ return OK;
+ }
+! else if (is_timeout == TRUE)
+ return FAIL;
+ }
+ }
+
+! #if defined(FEAT_BROWSE) || defined(PROTO)
+ /*
+ * Put up a file requester.
+ * Returns the selected name in allocated memory, or NULL for Cancel.
+***************
+*** 1398,1409 ****
+ char_u *open_text = NULL;
+
+ flags = 0;
+! memset( &file, 0, sizeof( file ) );
+
+! default_path = alloc( MAXPATHL + 1 + NAME_MAX + 1 );
+! if( default_path != NULL )
+ {
+! if( saving == TRUE )
+ {
+ /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
+ flags |= Pt_FSR_NO_FCHECK;
+--- 1398,1409 ----
+ char_u *open_text = NULL;
+
+ flags = 0;
+! memset(&file, 0, sizeof(file));
+
+! default_path = alloc(MAXPATHL + 1 + NAME_MAX + 1);
+! if (default_path != NULL)
+ {
+! if (saving == TRUE)
+ {
+ /* Don't need Pt_FSR_CONFIRM_EXISTING, vim will ask anyway */
+ flags |= Pt_FSR_NO_FCHECK;
+***************
+*** 1411,1433 ****
+ }
+
+ /* combine the directory and filename into a single path */
+! if( initdir == NULL || *initdir == NUL )
+ {
+! mch_dirname( default_path, MAXPATHL );
+ initdir = default_path;
+ }
+ else
+ {
+! STRCPY( default_path, initdir );
+ initdir = default_path;
+ }
+
+! if( default_name != NULL )
+ {
+! if( default_path[ STRLEN( default_path ) - 1 ] != '/' )
+! STRCAT( default_path, "/" );
+
+! STRCAT( default_path, default_name );
+ }
+
+ /* TODO: add a filter? */
+--- 1411,1433 ----
+ }
+
+ /* combine the directory and filename into a single path */
+! if (initdir == NULL || *initdir == NUL)
+ {
+! mch_dirname(default_path, MAXPATHL);
+ initdir = default_path;
+ }
+ else
+ {
+! STRCPY(default_path, initdir);
+ initdir = default_path;
+ }
+
+! if (default_name != NULL)
+ {
+! if (default_path[ STRLEN(default_path) - 1 ] != '/')
+! STRCAT(default_path, "/");
+
+! STRCAT(default_path, default_name);
+ }
+
+ /* TODO: add a filter? */
+***************
+*** 1441,1495 ****
+ NULL,
+ NULL,
+ &file,
+! flags );
+
+! vim_free( default_path );
+
+! if( file.ret == Pt_FSDIALOG_BTN1 )
+ return vim_strsave(file.path);
+ }
+ return NULL;
+ }
+ #endif
+
+! #if defined( FEAT_GUI_DIALOG ) || defined( PROTO )
+ static PtWidget_t *gui_ph_dialog_text = NULL;
+
+ static int
+! gui_ph_dialog_close( int button, void *data )
+ {
+ PtModalCtrl_t *modal_ctrl = data;
+ char_u *dialog_text, *vim_text;
+
+! if( gui_ph_dialog_text != NULL )
+ {
+! PtGetResource( gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0 );
+! PtGetResource( gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0 );
+! STRNCPY( vim_text, dialog_text, IOSIZE - 1 );
+ }
+
+! PtModalUnblock( modal_ctrl, (void *) button );
+
+ return Pt_TRUE;
+ }
+
+ static int
+! gui_ph_dialog_text_enter( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+! if( info->reason_subtype == Pt_EDIT_ACTIVATE )
+! gui_ph_dialog_close( 1, data );
+ return Pt_CONTINUE;
+ }
+
+ static int
+! gui_ph_dialog_esc( PtWidget_t *widget, void *data, PtCallbackInfo_t *info )
+ {
+ PhKeyEvent_t *key;
+
+! key = PhGetData( info->event );
+! if( ( key->key_flags & Pk_KF_Cap_Valid ) && ( key->key_cap == Pk_Escape ) )
+ {
+! gui_ph_dialog_close( 0, data );
+ return Pt_CONSUME;
+ }
+ return Pt_PROCESS;
+--- 1441,1495 ----
+ NULL,
+ NULL,
+ &file,
+! flags);
+
+! vim_free(default_path);
+
+! if (file.ret == Pt_FSDIALOG_BTN1)
+ return vim_strsave(file.path);
+ }
+ return NULL;
+ }
+ #endif
+
+! #if defined(FEAT_GUI_DIALOG) || defined(PROTO)
+ static PtWidget_t *gui_ph_dialog_text = NULL;
+
+ static int
+! gui_ph_dialog_close(int button, void *data)
+ {
+ PtModalCtrl_t *modal_ctrl = data;
+ char_u *dialog_text, *vim_text;
+
+! if (gui_ph_dialog_text != NULL)
+ {
+! PtGetResource(gui_ph_dialog_text, Pt_ARG_TEXT_STRING, &dialog_text, 0);
+! PtGetResource(gui_ph_dialog_text, Pt_ARG_POINTER, &vim_text, 0);
+! STRNCPY(vim_text, dialog_text, IOSIZE - 1);
+ }
+
+! PtModalUnblock(modal_ctrl, (void *) button);
+
+ return Pt_TRUE;
+ }
+
+ static int
+! gui_ph_dialog_text_enter(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+! if (info->reason_subtype == Pt_EDIT_ACTIVATE)
+! gui_ph_dialog_close(1, data);
+ return Pt_CONTINUE;
+ }
+
+ static int
+! gui_ph_dialog_esc(PtWidget_t *widget, void *data, PtCallbackInfo_t *info)
+ {
+ PhKeyEvent_t *key;
+
+! key = PhGetData(info->event);
+! if ((key->key_flags & Pk_KF_Cap_Valid) && (key->key_cap == Pk_Escape))
+ {
+! gui_ph_dialog_close(0, data);
+ return Pt_CONSUME;
+ }
+ return Pt_PROCESS;
+***************
+*** 1518,1557 ****
+
+ button_count = len = i = 0;
+
+! if( buttons == NULL || *buttons == NUL )
+ return -1;
+
+ /* There is one less separator than buttons, so bump up the button count */
+ button_count = 1;
+
+ /* Count string length and number of seperators */
+! for( str = buttons; *str; str++ )
+ {
+ len++;
+! if( *str == DLG_BUTTON_SEP )
+ button_count++;
+ }
+
+! if ( title == NULL )
+ title = "Vim";
+
+! buttons_copy = alloc( len + 1 );
+! button_array = (char_u **) alloc( button_count * sizeof( char_u * ) );
+! if( buttons_copy != NULL && button_array != NULL )
+ {
+! STRCPY( buttons_copy, buttons );
+
+ /*
+ * Convert DLG_BUTTON_SEP into NUL's and fill in
+ * button_array with the pointer to each NUL terminated string
+ */
+ str = buttons_copy;
+! for( i = 0; i < button_count; i++ )
+ {
+ button_array[ i ] = str;
+! for( ; *str; str++ )
+ {
+! if( *str == DLG_BUTTON_SEP )
+ {
+ *str++ = NUL;
+ break;
+--- 1518,1557 ----
+
+ button_count = len = i = 0;
+
+! if (buttons == NULL || *buttons == NUL)
+ return -1;
+
+ /* There is one less separator than buttons, so bump up the button count */
+ button_count = 1;
+
+ /* Count string length and number of seperators */
+! for (str = buttons; *str; str++)
+ {
+ len++;
+! if (*str == DLG_BUTTON_SEP)
+ button_count++;
+ }
+
+! if (title == NULL)
+ title = "Vim";
+
+! buttons_copy = alloc(len + 1);
+! button_array = (char_u **) alloc(button_count * sizeof(char_u *));
+! if (buttons_copy != NULL && button_array != NULL)
+ {
+! STRCPY(buttons_copy, buttons);
+
+ /*
+ * Convert DLG_BUTTON_SEP into NUL's and fill in
+ * button_array with the pointer to each NUL terminated string
+ */
+ str = buttons_copy;
+! for (i = 0; i < button_count; i++)
+ {
+ button_array[ i ] = str;
+! for (; *str; str++)
+ {
+! if (*str == DLG_BUTTON_SEP)
+ {
+ *str++ = NUL;
+ break;
+***************
+*** 1565,1571 ****
+ NULL,
+ message, NULL,
+ button_count, (const char **) button_array, NULL,
+! default_button, 0, Pt_MODAL );
+ #else
+ /* Writing the dialog ourselves lets us add extra features, like
+ * trapping the escape key and returning 0 to vim */
+--- 1565,1571 ----
+ NULL,
+ message, NULL,
+ button_count, (const char **) button_array, NULL,
+! default_button, 0, Pt_MODAL);
+ #else
+ /* Writing the dialog ourselves lets us add extra features, like
+ * trapping the escape key and returning 0 to vim */
+***************
+*** 1576,1607 ****
+ PtModalCtrl_t modal_ctrl;
+ PtDialogInfo_t di;
+
+! memset( &di, 0, sizeof( di ) );
+! memset( &modal_ctrl, 0, sizeof( modal_ctrl ) );
+
+ n = 0;
+! PtSetArg( &args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0 );
+! PtSetArg( &args[n++], Pt_ARG_WIDTH, 350, 0 );
+! PtSetArg( &args[n++], Pt_ARG_GROUP_ORIENTATION,
+! Pt_GROUP_VERTICAL, 0 );
+! PtSetArg( &args[n++], Pt_ARG_GROUP_FLAGS,
+! Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL );
+! PtSetArg( &args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE );
+! pane = PtCreateWidget( PtGroup, NULL, n, args );
+
+ n = 0;
+! PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, message, 0 );
+! PtCreateWidget( PtLabel, pane, n, args );
+
+! if( textfield != NULL )
+ {
+ n = 0;
+! PtSetArg( &args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0 );
+! PtSetArg( &args[n++], Pt_ARG_TEXT_STRING, textfield, 0 );
+! PtSetArg( &args[n++], Pt_ARG_POINTER, textfield, 0 );
+! gui_ph_dialog_text = PtCreateWidget( PtText, pane, n, args );
+! PtAddCallback( gui_ph_dialog_text, Pt_CB_ACTIVATE,
+! gui_ph_dialog_text_enter, &modal_ctrl );
+ }
+
+ di.parent = gui.vimWindow;
+--- 1576,1607 ----
+ PtModalCtrl_t modal_ctrl;
+ PtDialogInfo_t di;
+
+! memset(&di, 0, sizeof(di));
+! memset(&modal_ctrl, 0, sizeof(modal_ctrl));
+
+ n = 0;
+! PtSetArg(&args[n++], Pt_ARG_GROUP_ROWS_COLS, 0, 0);
+! PtSetArg(&args[n++], Pt_ARG_WIDTH, 350, 0);
+! PtSetArg(&args[n++], Pt_ARG_GROUP_ORIENTATION,
+! Pt_GROUP_VERTICAL, 0);
+! PtSetArg(&args[n++], Pt_ARG_GROUP_FLAGS,
+! Pt_TRUE, Pt_GROUP_NO_KEYS | Pt_GROUP_STRETCH_HORIZONTAL);
+! PtSetArg(&args[n++], Pt_ARG_CONTAINER_FLAGS, Pt_FALSE, Pt_TRUE);
+! pane = PtCreateWidget(PtGroup, NULL, n, args);
+
+ n = 0;
+! PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, message, 0);
+! PtCreateWidget(PtLabel, pane, n, args);
+
+! if (textfield != NULL)
+ {
+ n = 0;
+! PtSetArg(&args[n++], Pt_ARG_MAX_LENGTH, IOSIZE - 1, 0);
+! PtSetArg(&args[n++], Pt_ARG_TEXT_STRING, textfield, 0);
+! PtSetArg(&args[n++], Pt_ARG_POINTER, textfield, 0);
+! gui_ph_dialog_text = PtCreateWidget(PtText, pane, n, args);
+! PtAddCallback(gui_ph_dialog_text, Pt_CB_ACTIVATE,
+! gui_ph_dialog_text_enter, &modal_ctrl);
+ }
+
+ di.parent = gui.vimWindow;
+***************
+*** 1616,1641 ****
+ di.callback = gui_ph_dialog_close;
+ di.data = &modal_ctrl;
+
+! dialog = PtCreateDialog( &di );
+! PtAddFilterCallback( dialog, Ph_EV_KEY,
+! gui_ph_dialog_esc, &modal_ctrl );
+
+! if( gui_ph_dialog_text != NULL )
+! PtGiveFocus( gui_ph_dialog_text, NULL );
+
+ /* Open dialog, block the vim window and wait for the dialog to close */
+! PtRealizeWidget( dialog );
+! PtMakeModal( dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR );
+! dialog_result = (int) PtModalBlock( &modal_ctrl, 0 );
+
+! PtDestroyWidget( dialog );
+ gui_ph_dialog_text = NULL;
+ }
+ #endif
+ }
+
+! vim_free( button_array );
+! vim_free( buttons_copy );
+
+ return dialog_result;
+ }
+--- 1616,1641 ----
+ di.callback = gui_ph_dialog_close;
+ di.data = &modal_ctrl;
+
+! dialog = PtCreateDialog(&di);
+! PtAddFilterCallback(dialog, Ph_EV_KEY,
+! gui_ph_dialog_esc, &modal_ctrl);
+
+! if (gui_ph_dialog_text != NULL)
+! PtGiveFocus(gui_ph_dialog_text, NULL);
+
+ /* Open dialog, block the vim window and wait for the dialog to close */
+! PtRealizeWidget(dialog);
+! PtMakeModal(dialog, Ph_CURSOR_NOINPUT, Ph_CURSOR_DEFAULT_COLOR);
+! dialog_result = (int) PtModalBlock(&modal_ctrl, 0);
+
+! PtDestroyWidget(dialog);
+ gui_ph_dialog_text = NULL;
+ }
+ #endif
+ }
+
+! vim_free(button_array);
+! vim_free(buttons_copy);
+
+ return dialog_result;
+ }
+***************
+*** 1648,1654 ****
+ {
+ PhPoint_t *pos;
+
+! pos = PtWidgetPos( gui.vimWindow, NULL );
+
+ *x = pos->x;
+ *y = pos->y;
+--- 1648,1654 ----
+ {
+ PhPoint_t *pos;
+
+! pos = PtWidgetPos(gui.vimWindow, NULL);
+
+ *x = pos->x;
+ *y = pos->y;
+***************
+*** 1661,1667 ****
+ {
+ PhPoint_t pos = { x, y };
+
+! PtSetResource( gui.vimWindow, Pt_ARG_POS, &pos, 0 );
+ }
+
+ void
+--- 1661,1667 ----
+ {
+ PhPoint_t pos = { x, y };
+
+! PtSetResource(gui.vimWindow, Pt_ARG_POS, &pos, 0);
+ }
+
+ void
+***************
+*** 1677,1686 ****
+ window_size.h += pg_margin_top + pg_margin_bottom;
+ #endif
+
+! PtSetResource( gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0 );
+! PtSetResource( gui.vimWindow, Pt_ARG_DIM, &window_size, 0 );
+
+! if( ! PtWidgetIsRealized( gui.vimWindow ) )
+ gui_ph_resize_container();
+ }
+
+--- 1677,1686 ----
+ window_size.h += pg_margin_top + pg_margin_bottom;
+ #endif
+
+! PtSetResource(gui.vimWindow, Pt_ARG_MINIMUM_DIM, &min_size, 0);
+! PtSetResource(gui.vimWindow, Pt_ARG_DIM, &window_size, 0);
+
+! if (! PtWidgetIsRealized(gui.vimWindow))
+ gui_ph_resize_container();
+ }
+
+***************
+*** 1693,1700 ****
+ {
+ PhRect_t console;
+
+! PhWindowQueryVisible( Ph_QUERY_WORKSPACE, 0,
+! PhInputGroup( NULL ), &console );
+
+ *screen_w = console.lr.x - console.ul.x + 1;
+ *screen_h = console.lr.y - console.ul.y + 1;
+--- 1693,1700 ----
+ {
+ PhRect_t console;
+
+! PhWindowQueryVisible(Ph_QUERY_WORKSPACE, 0,
+! PhInputGroup(NULL), &console);
+
+ *screen_w = console.lr.x - console.ul.x + 1;
+ *screen_h = console.lr.y - console.ul.y + 1;
+***************
+*** 1705,1715 ****
+ {
+ PhWindowEvent_t event;
+
+! memset( &event, 0, sizeof (event) );
+ event.event_f = Ph_WM_HIDE;
+ event.event_state = Ph_WM_EVSTATE_HIDE;
+! event.rid = PtWidgetRid( gui.vimWindow );
+! PtForwardWindowEvent( &event );
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+--- 1705,1715 ----
+ {
+ PhWindowEvent_t event;
+
+! memset(&event, 0, sizeof (event));
+ event.event_f = Ph_WM_HIDE;
+ event.event_state = Ph_WM_EVSTATE_HIDE;
+! event.rid = PtWidgetRid(gui.vimWindow);
+! PtForwardWindowEvent(&event);
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+***************
+*** 1721,1731 ****
+ {
+ PhWindowEvent_t event;
+
+! memset( &event, 0, sizeof (event) );
+ event.event_f = Ph_WM_TOFRONT;
+ event.event_state = Ph_WM_EVSTATE_FFRONT;
+! event.rid = PtWidgetRid( gui.vimWindow );
+! PtForwardWindowEvent( &event );
+ }
+ #endif
+
+--- 1721,1731 ----
+ {
+ PhWindowEvent_t event;
+
+! memset(&event, 0, sizeof (event));
+ event.event_f = Ph_WM_TOFRONT;
+ event.event_state = Ph_WM_EVSTATE_FFRONT;
+! event.rid = PtWidgetRid(gui.vimWindow);
+! PtForwardWindowEvent(&event);
+ }
+ #endif
+
+***************
+*** 1733,1741 ****
+ gui_mch_settitle(char_u *title, char_u *icon)
+ {
+ #ifdef USE_PANEL_GROUP
+! gui_ph_pg_set_buffer_num( curwin->w_buffer->b_fnum );
+ #endif
+! PtSetResource( gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0 );
+ /* Not sure what to do with the icon text, set balloon text somehow? */
+ }
+
+--- 1733,1741 ----
+ gui_mch_settitle(char_u *title, char_u *icon)
+ {
+ #ifdef USE_PANEL_GROUP
+! gui_ph_pg_set_buffer_num(curwin->w_buffer->b_fnum);
+ #endif
+! PtSetResource(gui.vimWindow, Pt_ARG_WINDOW_TITLE, title, 0);
+ /* Not sure what to do with the icon text, set balloon text somehow? */
+ }
+
+***************
+*** 1748,1757 ****
+ int n = 0;
+ PtArg_t args[3];
+
+! PtSetArg( &args[ n++ ], Pt_ARG_MAXIMUM, max, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0 );
+! PtSetResources( sb->id, n, args );
+ }
+
+ void
+--- 1748,1757 ----
+ int n = 0;
+ PtArg_t args[3];
+
+! PtSetArg(&args[ n++ ], Pt_ARG_MAXIMUM, max, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_SLIDER_SIZE, size, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_GAUGE_VALUE, val, 0);
+! PtSetResources(sb->id, n, args);
+ }
+
+ void
+***************
+*** 1759,1765 ****
+ {
+ PhArea_t area = {{ x, y }, { w, h }};
+
+! PtSetResource( sb->id, Pt_ARG_AREA, &area, 0 );
+ }
+
+ void
+--- 1759,1765 ----
+ {
+ PhArea_t area = {{ x, y }, { w, h }};
+
+! PtSetResource(sb->id, Pt_ARG_AREA, &area, 0);
+ }
+
+ void
+***************
+*** 1775,1786 ****
+ *
+ * Also, don't let the scrollbar get focus
+ */
+! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
+! Pt_DELAY_REALIZE | Pt_GETS_FOCUS );
+! PtSetArg( &args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
+ #if 0
+ /* Don't need this anchoring for the scrollbars */
+! if( orient == SBAR_HORIZ )
+ {
+ anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
+ Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
+--- 1775,1786 ----
+ *
+ * Also, don't let the scrollbar get focus
+ */
+! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_DELAY_REALIZE,
+! Pt_DELAY_REALIZE | Pt_GETS_FOCUS);
+! PtSetArg(&args[ n++ ], Pt_ARG_SCROLLBAR_FLAGS, Pt_SCROLLBAR_SHOW_ARROWS, 0);
+ #if 0
+ /* Don't need this anchoring for the scrollbars */
+! if (orient == SBAR_HORIZ)
+ {
+ anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM |
+ Pt_LEFT_ANCHORED_LEFT | Pt_RIGHT_ANCHORED_RIGHT;
+***************
+*** 1788,1827 ****
+ else
+ {
+ anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
+! if( sb->wp != NULL )
+ {
+! if( sb == &sb->wp->w_scrollbars[ SBAR_LEFT ] )
+ anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
+ else
+ anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
+ }
+ }
+! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED );
+ #endif
+! PtSetArg( &args[ n++ ], Pt_ARG_ORIENTATION,
+! (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0 );
+ #ifdef USE_PANEL_GROUP
+! sb->id = PtCreateWidget( PtScrollbar, gui.vimPanelGroup, n, args );
+ #else
+! sb->id = PtCreateWidget( PtScrollbar, gui.vimContainer, n, args );
+ #endif
+
+! PtAddCallback( sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb );
+ }
+
+ void
+ gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
+ {
+! if( flag != 0 )
+! PtRealizeWidget( sb->id );
+ else
+! PtUnrealizeWidget( sb->id );
+ }
+
+ void
+ gui_mch_destroy_scrollbar(scrollbar_T *sb)
+ {
+! PtDestroyWidget( sb->id );
+ sb->id = NULL;
+ }
+
+--- 1788,1827 ----
+ else
+ {
+ anchor_flags = Pt_BOTTOM_ANCHORED_BOTTOM | Pt_TOP_ANCHORED_TOP;
+! if (sb->wp != NULL)
+ {
+! if (sb == &sb->wp->w_scrollbars[ SBAR_LEFT ])
+ anchor_flags |= Pt_LEFT_ANCHORED_LEFT;
+ else
+ anchor_flags |= Pt_RIGHT_ANCHORED_RIGHT;
+ }
+ }
+! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS, anchor_flags, Pt_IS_ANCHORED);
+ #endif
+! PtSetArg(&args[ n++ ], Pt_ARG_ORIENTATION,
+! (orient == SBAR_HORIZ) ? Pt_HORIZONTAL : Pt_VERTICAL, 0);
+ #ifdef USE_PANEL_GROUP
+! sb->id = PtCreateWidget(PtScrollbar, gui.vimPanelGroup, n, args);
+ #else
+! sb->id = PtCreateWidget(PtScrollbar, gui.vimContainer, n, args);
+ #endif
+
+! PtAddCallback(sb->id, Pt_CB_SCROLLBAR_MOVE, gui_ph_handle_scrollbar, sb);
+ }
+
+ void
+ gui_mch_enable_scrollbar(scrollbar_T *sb, int flag)
+ {
+! if (flag != 0)
+! PtRealizeWidget(sb->id);
+ else
+! PtUnrealizeWidget(sb->id);
+ }
+
+ void
+ gui_mch_destroy_scrollbar(scrollbar_T *sb)
+ {
+! PtDestroyWidget(sb->id);
+ sb->id = NULL;
+ }
+
+***************
+*** 1866,1873 ****
+ return;
+
+ if (shape == MSHAPE_HIDE || gui.pointer_hidden)
+! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
+! 0 );
+ else
+ {
+ if (shape >= MSHAPE_NUMBERED)
+--- 1866,1873 ----
+ return;
+
+ if (shape == MSHAPE_HIDE || gui.pointer_hidden)
+! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, Ph_CURSOR_NONE,
+! 0);
+ else
+ {
+ if (shape >= MSHAPE_NUMBERED)
+***************
+*** 1875,1881 ****
+ else
+ id = mshape_ids[shape];
+
+! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id, 0 );
+ }
+ if (shape != MSHAPE_HIDE)
+ last_shape = shape;
+--- 1875,1881 ----
+ else
+ id = mshape_ids[shape];
+
+! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE, id, 0);
+ }
+ if (shape != MSHAPE_HIDE)
+ last_shape = shape;
+***************
+*** 1885,1903 ****
+ void
+ gui_mch_mousehide(int hide)
+ {
+! if( gui.pointer_hidden != hide )
+ {
+ gui.pointer_hidden = hide;
+ #ifdef FEAT_MOUSESHAPE
+! if( hide )
+! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+! Ph_CURSOR_NONE, 0 );
+ else
+! mch_set_mouse_shape( last_shape );
+ #else
+! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+! ( hide == MOUSE_SHOW ) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
+! 0 );
+ #endif
+ }
+ }
+--- 1885,1903 ----
+ void
+ gui_mch_mousehide(int hide)
+ {
+! if (gui.pointer_hidden != hide)
+ {
+ gui.pointer_hidden = hide;
+ #ifdef FEAT_MOUSESHAPE
+! if (hide)
+! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+! Ph_CURSOR_NONE, 0);
+ else
+! mch_set_mouse_shape(last_shape);
+ #else
+! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_TYPE,
+! (hide == MOUSE_SHOW) ? GUI_PH_MOUSE_TYPE : Ph_CURSOR_NONE,
+! 0);
+ #endif
+ }
+ }
+***************
+*** 1910,1917 ****
+
+ /* FIXME: does this return the correct position,
+ * with respect to the border? */
+! PhQueryCursor( PhInputGroup( NULL ), &info );
+! PtGetAbsPosition( gui.vimTextArea , &ix, &iy );
+
+ *x = info.pos.x - ix;
+ *y = info.pos.y - iy;
+--- 1910,1917 ----
+
+ /* FIXME: does this return the correct position,
+ * with respect to the border? */
+! PhQueryCursor(PhInputGroup(NULL), &info);
+! PtGetAbsPosition(gui.vimTextArea , &ix, &iy);
+
+ *x = info.pos.x - ix;
+ *y = info.pos.y - iy;
+***************
+*** 1922,1930 ****
+ {
+ short abs_x, abs_y;
+
+! PtGetAbsPosition( gui.vimTextArea, &abs_x, &abs_y );
+ /* Add the border offset? */
+! PhMoveCursorAbs( PhInputGroup( NULL ), abs_x + x, abs_y + y );
+ }
+
+ /****************************************************************************/
+--- 1922,1930 ----
+ {
+ short abs_x, abs_y;
+
+! PtGetAbsPosition(gui.vimTextArea, &abs_x, &abs_y);
+ /* Add the border offset? */
+! PhMoveCursorAbs(PhInputGroup(NULL), abs_x + x, abs_y + y);
+ }
+
+ /****************************************************************************/
+***************
+*** 1952,1974 ****
+ color_diff = gui_get_lightness(gui_ph_mouse_color)
+ - gui_get_lightness(gui.back_pixel);
+
+! if( abs( color_diff ) < 64 )
+ {
+ short r, g, b;
+ /* not a great algorithm... */
+! r = PgRedValue( gui_ph_mouse_color ) ^ 255;
+! g = PgGreenValue( gui_ph_mouse_color ) ^ 255;
+! b = PgBlueValue( gui_ph_mouse_color ) ^ 255;
+
+ #ifndef FEAT_MOUSESHAPE
+! gui_ph_mouse_color = PgRGB( r, g, b );
+! PtSetResource( gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
+! gui_ph_mouse_color, 0 );
+ #endif
+ }
+ #endif
+
+! PtSetResource( gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0 );
+ }
+
+ static int
+--- 1952,1974 ----
+ color_diff = gui_get_lightness(gui_ph_mouse_color)
+ - gui_get_lightness(gui.back_pixel);
+
+! if (abs(color_diff) < 64)
+ {
+ short r, g, b;
+ /* not a great algorithm... */
+! r = PgRedValue(gui_ph_mouse_color) ^ 255;
+! g = PgGreenValue(gui_ph_mouse_color) ^ 255;
+! b = PgBlueValue(gui_ph_mouse_color) ^ 255;
+
+ #ifndef FEAT_MOUSESHAPE
+! gui_ph_mouse_color = PgRGB(r, g, b);
+! PtSetResource(gui.vimTextArea, Pt_ARG_CURSOR_COLOR,
+! gui_ph_mouse_color, 0);
+ #endif
+ }
+ #endif
+
+! PtSetResource(gui.vimTextArea, Pt_ARG_FILL_COLOR, gui.back_pixel, 0);
+ }
+
+ static int
+***************
+*** 2058,2076 ****
+ };
+
+ /* is name #rrggbb format? */
+! if( name[0] == '#' && STRLEN( name ) == 7 )
+ {
+! r = hex_digit( name[1] ) * 16 + hex_digit( name[2] );
+! g = hex_digit( name[3] ) * 16 + hex_digit( name[4] );
+! b = hex_digit( name[5] ) * 16 + hex_digit( name[6] );
+! if( r < 0 || g < 0 || b < 0 )
+ return INVALCOLOR;
+ return RGB(r, g, b);
+ }
+
+! for( i = 0; i < ARRAY_LENGTH( table ); i++ )
+ {
+! if( STRICMP( name, table[i].name ) == 0 )
+ return table[i].colour;
+ }
+
+--- 2058,2076 ----
+ };
+
+ /* is name #rrggbb format? */
+! if (name[0] == '#' && STRLEN(name) == 7)
+ {
+! r = hex_digit(name[1]) * 16 + hex_digit(name[2]);
+! g = hex_digit(name[3]) * 16 + hex_digit(name[4]);
+! b = hex_digit(name[5]) * 16 + hex_digit(name[6]);
+! if (r < 0 || g < 0 || b < 0)
+ return INVALCOLOR;
+ return RGB(r, g, b);
+ }
+
+! for (i = 0; i < ARRAY_LENGTH(table); i++)
+ {
+! if (STRICMP(name, table[i].name) == 0)
+ return table[i].colour;
+ }
+
+***************
+*** 2129,2141 ****
+ void
+ gui_mch_set_fg_color(guicolor_T color)
+ {
+! PgSetTextColor( color );
+ }
+
+ void
+ gui_mch_set_bg_color(guicolor_T color)
+ {
+! PgSetFillColor( color );
+ }
+
+ void
+--- 2129,2141 ----
+ void
+ gui_mch_set_fg_color(guicolor_T color)
+ {
+! PgSetTextColor(color);
+ }
+
+ void
+ gui_mch_set_bg_color(guicolor_T color)
+ {
+! PgSetFillColor(color);
+ }
+
+ void
+***************
+*** 2148,2168 ****
+ {
+ PhRect_t rect;
+
+! rect.ul.x = FILL_X( col );
+! rect.ul.y = FILL_Y( row );
+
+ /* FIXME: This has an off by one pixel problem */
+ rect.lr.x = rect.ul.x + nc * gui.char_width;
+ rect.lr.y = rect.ul.y + nr * gui.char_height;
+! if( nc > 0 )
+ rect.lr.x -= 1;
+! if( nr > 0 )
+ rect.lr.y -= 1;
+
+ DRAW_START;
+! PgSetDrawMode( Pg_DrawModeDSTINVERT );
+! PgDrawRect( &rect, Pg_DRAW_FILL );
+! PgSetDrawMode( Pg_DrawModeSRCCOPY );
+ DRAW_END;
+ }
+
+--- 2148,2168 ----
+ {
+ PhRect_t rect;
+
+! rect.ul.x = FILL_X(col);
+! rect.ul.y = FILL_Y(row);
+
+ /* FIXME: This has an off by one pixel problem */
+ rect.lr.x = rect.ul.x + nc * gui.char_width;
+ rect.lr.y = rect.ul.y + nr * gui.char_height;
+! if (nc > 0)
+ rect.lr.x -= 1;
+! if (nr > 0)
+ rect.lr.y -= 1;
+
+ DRAW_START;
+! PgSetDrawMode(Pg_DrawModeDSTINVERT);
+! PgDrawRect(&rect, Pg_DRAW_FILL);
+! PgSetDrawMode(Pg_DrawModeSRCCOPY);
+ DRAW_END;
+ }
+
+***************
+*** 2170,2182 ****
+ gui_mch_clear_block(int row1, int col1, int row2, int col2)
+ {
+ PhRect_t block = {
+! { FILL_X( col1 ), FILL_Y( row1 ) },
+! { FILL_X( col2 + 1 ) - 1, FILL_Y( row2 + 1 ) - 1}
+ };
+
+ DRAW_START;
+! gui_mch_set_bg_color( gui.back_pixel );
+! PgDrawRect( &block, Pg_DRAW_FILL );
+ DRAW_END;
+ }
+
+--- 2170,2182 ----
+ gui_mch_clear_block(int row1, int col1, int row2, int col2)
+ {
+ PhRect_t block = {
+! { FILL_X(col1), FILL_Y(row1) },
+! { FILL_X(col2 + 1) - 1, FILL_Y(row2 + 1) - 1}
+ };
+
+ DRAW_START;
+! gui_mch_set_bg_color(gui.back_pixel);
+! PgDrawRect(&block, Pg_DRAW_FILL);
+ DRAW_END;
+ }
+
+***************
+*** 2189,2200 ****
+ Rows * gui.char_height + gui.border_width - 1 }
+ };
+
+! if( is_ignore_draw == TRUE )
+ return;
+
+ DRAW_START;
+! gui_mch_set_bg_color( gui.back_pixel );
+! PgDrawRect( &text_rect, Pg_DRAW_FILL );
+ DRAW_END;
+ }
+
+--- 2189,2200 ----
+ Rows * gui.char_height + gui.border_width - 1 }
+ };
+
+! if (is_ignore_draw == TRUE)
+ return;
+
+ DRAW_START;
+! gui_mch_set_bg_color(gui.back_pixel);
+! PgDrawRect(&text_rect, Pg_DRAW_FILL);
+ DRAW_END;
+ }
+
+***************
+*** 2204,2231 ****
+ PhRect_t rect;
+ PhPoint_t delta;
+
+! rect.ul.x = FILL_X( gui.scroll_region_left );
+! rect.ul.y = FILL_Y( row + num_lines );
+
+! rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
+! rect.lr.y = FILL_Y( gui.scroll_region_bot + 1) - 1;
+
+! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+! PhTranslateRect( &rect, &gui_ph_raw_offset );
+
+ delta.x = 0;
+ delta.y = -num_lines * gui.char_height;
+
+ PgFlush();
+
+! PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ), &rect, &delta );
+
+ gui_clear_block(
+ gui.scroll_region_bot - num_lines + 1,
+ gui.scroll_region_left,
+ gui.scroll_region_bot,
+! gui.scroll_region_right );
+ }
+
+ void
+--- 2204,2231 ----
+ PhRect_t rect;
+ PhPoint_t delta;
+
+! rect.ul.x = FILL_X(gui.scroll_region_left);
+! rect.ul.y = FILL_Y(row + num_lines);
+
+! rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
+! rect.lr.y = FILL_Y(gui.scroll_region_bot + 1) - 1;
+
+! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+! PhTranslateRect(&rect, &gui_ph_raw_offset);
+
+ delta.x = 0;
+ delta.y = -num_lines * gui.char_height;
+
+ PgFlush();
+
+! PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)), &rect, &delta);
+
+ gui_clear_block(
+ gui.scroll_region_bot - num_lines + 1,
+ gui.scroll_region_left,
+ gui.scroll_region_bot,
+! gui.scroll_region_right);
+ }
+
+ void
+***************
+*** 2234,2258 ****
+ PhRect_t rect;
+ PhPoint_t delta;
+
+! rect.ul.x = FILL_X( gui.scroll_region_left );
+! rect.ul.y = FILL_Y( row );
+
+! rect.lr.x = FILL_X( gui.scroll_region_right + 1 ) - 1;
+! rect.lr.y = FILL_Y( gui.scroll_region_bot - num_lines + 1 ) - 1;
+
+! PtWidgetOffset( gui.vimTextArea, &gui_ph_raw_offset );
+! PhTranslatePoint( &gui_ph_raw_offset, PtWidgetPos( gui.vimTextArea, NULL ) );
+! PhTranslateRect( &rect, &gui_ph_raw_offset );
+
+ delta.x = 0;
+ delta.y = num_lines * gui.char_height;
+
+ PgFlush();
+
+! PhBlit( PtWidgetRid( PtFindDisjoint( gui.vimTextArea ) ) , &rect, &delta );
+
+! gui_clear_block( row, gui.scroll_region_left,
+! row + num_lines - 1, gui.scroll_region_right );
+ }
+
+ void
+--- 2234,2258 ----
+ PhRect_t rect;
+ PhPoint_t delta;
+
+! rect.ul.x = FILL_X(gui.scroll_region_left);
+! rect.ul.y = FILL_Y(row);
+
+! rect.lr.x = FILL_X(gui.scroll_region_right + 1) - 1;
+! rect.lr.y = FILL_Y(gui.scroll_region_bot - num_lines + 1) - 1;
+
+! PtWidgetOffset(gui.vimTextArea, &gui_ph_raw_offset);
+! PhTranslatePoint(&gui_ph_raw_offset, PtWidgetPos(gui.vimTextArea, NULL));
+! PhTranslateRect(&rect, &gui_ph_raw_offset);
+
+ delta.x = 0;
+ delta.y = num_lines * gui.char_height;
+
+ PgFlush();
+
+! PhBlit(PtWidgetRid(PtFindDisjoint(gui.vimTextArea)) , &rect, &delta);
+
+! gui_clear_block(row, gui.scroll_region_left,
+! row + num_lines - 1, gui.scroll_region_right);
+ }
+
+ void
+***************
+*** 2261,2297 ****
+ static char *utf8_buffer = NULL;
+ static int utf8_len = 0;
+
+! PhPoint_t pos = { TEXT_X( col ), TEXT_Y( row ) };
+ PhRect_t rect;
+
+! if( is_ignore_draw == TRUE )
+ return;
+
+ DRAW_START;
+
+! if( !( flags & DRAW_TRANSP ) )
+ {
+ PgDrawIRect(
+! FILL_X( col ), FILL_Y( row ),
+! FILL_X( col + len ) - 1, FILL_Y( row + 1 ) - 1,
+! Pg_DRAW_FILL );
+ }
+
+! if( flags & DRAW_UNDERL )
+! PgSetUnderline( gui.norm_pixel, Pg_TRANSPARENT, 0 );
+
+! if( charset_translate != NULL
+ #ifdef FEAT_MBYTE
+ && enc_utf8 == 0
+ #endif
+! )
+ {
+ int src_taken, dst_made;
+
+ /* Use a static buffer to avoid large amounts of de/allocations */
+! if( utf8_len < len )
+ {
+! utf8_buffer = realloc( utf8_buffer, len * MB_LEN_MAX );
+ utf8_len = len;
+ }
+
+--- 2261,2297 ----
+ static char *utf8_buffer = NULL;
+ static int utf8_len = 0;
+
+! PhPoint_t pos = { TEXT_X(col), TEXT_Y(row) };
+ PhRect_t rect;
+
+! if (is_ignore_draw == TRUE)
+ return;
+
+ DRAW_START;
+
+! if (!(flags & DRAW_TRANSP))
+ {
+ PgDrawIRect(
+! FILL_X(col), FILL_Y(row),
+! FILL_X(col + len) - 1, FILL_Y(row + 1) - 1,
+! Pg_DRAW_FILL);
+ }
+
+! if (flags & DRAW_UNDERL)
+! PgSetUnderline(gui.norm_pixel, Pg_TRANSPARENT, 0);
+
+! if (charset_translate != NULL
+ #ifdef FEAT_MBYTE
+ && enc_utf8 == 0
+ #endif
+! )
+ {
+ int src_taken, dst_made;
+
+ /* Use a static buffer to avoid large amounts of de/allocations */
+! if (utf8_len < len)
+ {
+! utf8_buffer = realloc(utf8_buffer, len * MB_LEN_MAX);
+ utf8_len = len;
+ }
+
+***************
+*** 2302,2337 ****
+ &src_taken,
+ utf8_buffer,
+ utf8_len,
+! &dst_made );
+ s = utf8_buffer;
+ len = dst_made;
+ }
+
+! PgDrawText( s, len, &pos, 0 );
+
+! if( flags & DRAW_BOLD )
+ {
+ /* FIXME: try and only calculate these values once... */
+! rect.ul.x = FILL_X( col ) + 1;
+! rect.ul.y = FILL_Y( row );
+! rect.lr.x = FILL_X( col + len ) - 1;
+! rect.lr.y = FILL_Y( row + 1) - 1;
+! /* PgSetUserClip( NULL ) causes the scrollbar to not redraw... */
+ #if 0
+ pos.x++;
+
+! PgSetUserClip( &rect );
+! PgDrawText( s, len, &pos, 0 );
+! PgSetUserClip( NULL );
+ #else
+! rect.lr.y -= ( p_linespace + 1 ) / 2;
+ /* XXX: DrawTextArea doesn't work with phditto */
+! PgDrawTextArea( s, len, &rect, Pg_TEXT_BOTTOM );
+ #endif
+ }
+
+! if( flags & DRAW_UNDERL )
+! PgSetUnderline( Pg_TRANSPARENT, Pg_TRANSPARENT, 0 );
+
+ DRAW_END;
+ }
+--- 2302,2337 ----
+ &src_taken,
+ utf8_buffer,
+ utf8_len,
+! &dst_made);
+ s = utf8_buffer;
+ len = dst_made;
+ }
+
+! PgDrawText(s, len, &pos, 0);
+
+! if (flags & DRAW_BOLD)
+ {
+ /* FIXME: try and only calculate these values once... */
+! rect.ul.x = FILL_X(col) + 1;
+! rect.ul.y = FILL_Y(row);
+! rect.lr.x = FILL_X(col + len) - 1;
+! rect.lr.y = FILL_Y(row + 1) - 1;
+! /* PgSetUserClip(NULL) causes the scrollbar to not redraw... */
+ #if 0
+ pos.x++;
+
+! PgSetUserClip(&rect);
+! PgDrawText(s, len, &pos, 0);
+! PgSetUserClip(NULL);
+ #else
+! rect.lr.y -= (p_linespace + 1) / 2;
+ /* XXX: DrawTextArea doesn't work with phditto */
+! PgDrawTextArea(s, len, &rect, Pg_TEXT_BOTTOM);
+ #endif
+ }
+
+! if (flags & DRAW_UNDERL)
+! PgSetUnderline(Pg_TRANSPARENT, Pg_TRANSPARENT, 0);
+
+ DRAW_END;
+ }
+***************
+*** 2346,2359 ****
+
+ /* FIXME: Double width characters */
+
+! r.ul.x = FILL_X( gui.col );
+! r.ul.y = FILL_Y( gui.row );
+ r.lr.x = r.ul.x + gui.char_width - 1;
+ r.lr.y = r.ul.y + gui.char_height - 1;
+
+ DRAW_START;
+! PgSetStrokeColor( color );
+! PgDrawRect( &r, Pg_DRAW_STROKE );
+ DRAW_END;
+ }
+
+--- 2346,2359 ----
+
+ /* FIXME: Double width characters */
+
+! r.ul.x = FILL_X(gui.col);
+! r.ul.y = FILL_Y(gui.row);
+ r.lr.x = r.ul.x + gui.char_width - 1;
+ r.lr.y = r.ul.y + gui.char_height - 1;
+
+ DRAW_START;
+! PgSetStrokeColor(color);
+! PgDrawRect(&r, Pg_DRAW_STROKE);
+ DRAW_END;
+ }
+
+***************
+*** 2362,2375 ****
+ {
+ PhRect_t r;
+
+! r.ul.x = FILL_X( gui.col );
+! r.ul.y = FILL_Y( gui.row ) + gui.char_height - h;
+ r.lr.x = r.ul.x + w - 1;
+ r.lr.y = r.ul.y + h - 1;
+
+ DRAW_START;
+! gui_mch_set_bg_color( color );
+! PgDrawRect( &r, Pg_DRAW_FILL );
+ DRAW_END;
+ }
+
+--- 2362,2375 ----
+ {
+ PhRect_t r;
+
+! r.ul.x = FILL_X(gui.col);
+! r.ul.y = FILL_Y(gui.row) + gui.char_height - h;
+ r.lr.x = r.ul.x + w - 1;
+ r.lr.y = r.ul.y + h - 1;
+
+ DRAW_START;
+! gui_mch_set_bg_color(color);
+! PgDrawRect(&r, Pg_DRAW_FILL);
+ DRAW_END;
+ }
+
+***************
+*** 2385,2394 ****
+ gui_mch_start_blink(void)
+ {
+ /* Only turn on the timer on if none of the times are zero */
+! if( blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
+ {
+! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_waittime, 0 );
+ blink_state = BLINK_ON;
+ gui_update_cursor(TRUE, FALSE);
+ }
+--- 2385,2394 ----
+ gui_mch_start_blink(void)
+ {
+ /* Only turn on the timer on if none of the times are zero */
+! if (blink_waittime && blink_ontime && blink_offtime && gui.in_focus)
+ {
+! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL,
+! blink_waittime, 0);
+ blink_state = BLINK_ON;
+ gui_update_cursor(TRUE, FALSE);
+ }
+***************
+*** 2397,2405 ****
+ void
+ gui_mch_stop_blink(void)
+ {
+! PtSetResource( gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0 );
+
+! if( blink_state == BLINK_OFF )
+ gui_update_cursor(TRUE, FALSE);
+
+ blink_state = BLINK_NONE;
+--- 2397,2405 ----
+ void
+ gui_mch_stop_blink(void)
+ {
+! PtSetResource(gui_ph_timer_cursor, Pt_ARG_TIMER_INITIAL, 0, 0);
+
+! if (blink_state == BLINK_OFF)
+ gui_update_cursor(TRUE, FALSE);
+
+ blink_state = BLINK_NONE;
+***************
+*** 2417,2431 ****
+ void
+ gui_mch_flash(int msec)
+ {
+! PgSetFillXORColor( Pg_BLACK, Pg_WHITE );
+! PgSetDrawMode( Pg_DRAWMODE_XOR );
+ gui_mch_clear_all();
+ gui_mch_flush();
+
+! ui_delay( (long) msec, TRUE );
+
+ gui_mch_clear_all();
+! PgSetDrawMode( Pg_DRAWMODE_OPAQUE );
+ gui_mch_flush();
+ }
+
+--- 2417,2431 ----
+ void
+ gui_mch_flash(int msec)
+ {
+! PgSetFillXORColor(Pg_BLACK, Pg_WHITE);
+! PgSetDrawMode(Pg_DRAWMODE_XOR);
+ gui_mch_clear_all();
+ gui_mch_flush();
+
+! ui_delay((long) msec, TRUE);
+
+ gui_mch_clear_all();
+! PgSetDrawMode(Pg_DRAWMODE_OPAQUE);
+ gui_mch_flush();
+ }
+
+***************
+*** 2440,2446 ****
+ {
+ PhArea_t area = {{x, y}, {w, h}};
+
+! PtSetResource( gui.vimTextArea, Pt_ARG_AREA, &area, 0 );
+ }
+
+ int
+--- 2440,2446 ----
+ {
+ PhArea_t area = {{x, y}, {w, h}};
+
+! PtSetResource(gui.vimTextArea, Pt_ARG_AREA, &area, 0);
+ }
+
+ int
+***************
+*** 2496,2514 ****
+ };
+
+ static PhImage_t *
+! gui_ph_toolbar_load_icon( char_u *iconfile )
+ {
+ static PhImage_t external_icon;
+ PhImage_t *temp_phi = NULL;
+
+! temp_phi = PxLoadImage( iconfile, NULL );
+! if( temp_phi != NULL )
+ {
+ /* The label widget will free the image/palette/etc. for us when
+ * it's destroyed */
+ temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
+! memcpy( &external_icon, temp_phi, sizeof( external_icon ) );
+! free( temp_phi );
+
+ temp_phi = &external_icon;
+ }
+--- 2496,2514 ----
+ };
+
+ static PhImage_t *
+! gui_ph_toolbar_load_icon(char_u *iconfile)
+ {
+ static PhImage_t external_icon;
+ PhImage_t *temp_phi = NULL;
+
+! temp_phi = PxLoadImage(iconfile, NULL);
+! if (temp_phi != NULL)
+ {
+ /* The label widget will free the image/palette/etc. for us when
+ * it's destroyed */
+ temp_phi->flags |= Ph_RELEASE_IMAGE_ALL;
+! memcpy(&external_icon, temp_phi, sizeof(external_icon));
+! free(temp_phi);
+
+ temp_phi = &external_icon;
+ }
+***************
+*** 2523,2551 ****
+ * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
+ */
+ static PhImage_t *
+! gui_ph_toolbar_find_icon( vimmenu_T *menu )
+ {
+ char_u full_pathname[ MAXPATHL + 1 ];
+ PhImage_t *icon = NULL;
+
+! if( menu->icon_builtin == FALSE )
+ {
+! if( menu->iconfile != NULL )
+ /* TODO: use gui_find_iconfile() */
+! icon = gui_ph_toolbar_load_icon( menu->iconfile );
+
+ /* TODO: Restrict loading to just .png? Search for any format? */
+! if( ( icon == NULL ) &&
+! ( ( gui_find_bitmap( menu->name, full_pathname, "gif" ) == OK ) ||
+! ( gui_find_bitmap( menu->name, full_pathname, "png" ) == OK ) ) )
+! icon = gui_ph_toolbar_load_icon( full_pathname );
+
+! if( icon != NULL )
+ return icon;
+ }
+
+! if( menu->iconidx >= 0 &&
+! ( menu->iconidx < ARRAY_LENGTH( gui_ph_toolbar_images ) ) )
+ {
+ return gui_ph_toolbar_images[menu->iconidx];
+ }
+--- 2523,2551 ----
+ * PhImage_t are copied, and the original PhImage_t aren't needed anymore).
+ */
+ static PhImage_t *
+! gui_ph_toolbar_find_icon(vimmenu_T *menu)
+ {
+ char_u full_pathname[ MAXPATHL + 1 ];
+ PhImage_t *icon = NULL;
+
+! if (menu->icon_builtin == FALSE)
+ {
+! if (menu->iconfile != NULL)
+ /* TODO: use gui_find_iconfile() */
+! icon = gui_ph_toolbar_load_icon(menu->iconfile);
+
+ /* TODO: Restrict loading to just .png? Search for any format? */
+! if ((icon == NULL) &&
+! ((gui_find_bitmap(menu->name, full_pathname, "gif") == OK) ||
+! (gui_find_bitmap(menu->name, full_pathname, "png") == OK)))
+! icon = gui_ph_toolbar_load_icon(full_pathname);
+
+! if (icon != NULL)
+ return icon;
+ }
+
+! if (menu->iconidx >= 0 &&
+! (menu->iconidx < ARRAY_LENGTH(gui_ph_toolbar_images)))
+ {
+ return gui_ph_toolbar_images[menu->iconidx];
+ }
+***************
+*** 2554,2567 ****
+ }
+ #endif
+
+! #if defined( FEAT_MENU ) || defined( PROTO )
+ void
+ gui_mch_enable_menu(int flag)
+ {
+! if( flag != 0 )
+! PtRealizeWidget( gui.vimMenuBar );
+ else
+! PtUnrealizeWidget( gui.vimMenuBar );
+ }
+
+ void
+--- 2554,2567 ----
+ }
+ #endif
+
+! #if defined(FEAT_MENU) || defined(PROTO)
+ void
+ gui_mch_enable_menu(int flag)
+ {
+! if (flag != 0)
+! PtRealizeWidget(gui.vimMenuBar);
+ else
+! PtUnrealizeWidget(gui.vimMenuBar);
+ }
+
+ void
+***************
+*** 2572,2601 ****
+
+ /* Change the position of a menu button in the parent */
+ static void
+! gui_ph_position_menu( PtWidget_t *widget, int priority )
+ {
+ PtWidget_t *traverse;
+ vimmenu_T *menu;
+
+! traverse = PtWidgetChildBack( PtWidgetParent( widget ) );
+
+ /* Iterate through the list of widgets in traverse, until
+ * we find the position we want to insert our widget into */
+ /* TODO: traverse from front to back, possible speedup? */
+! while( traverse != NULL )
+ {
+! PtGetResource( traverse, Pt_ARG_POINTER, &menu, 0 );
+
+! if( menu != NULL &&
+ priority < menu->priority &&
+! widget != traverse )
+ {
+ /* Insert the widget before the current traverse widget */
+! PtWidgetInsert( widget, traverse, 1 );
+ return;
+ }
+
+! traverse = PtWidgetBrotherInFront( traverse );
+ }
+ }
+
+--- 2572,2601 ----
+
+ /* Change the position of a menu button in the parent */
+ static void
+! gui_ph_position_menu(PtWidget_t *widget, int priority)
+ {
+ PtWidget_t *traverse;
+ vimmenu_T *menu;
+
+! traverse = PtWidgetChildBack(PtWidgetParent(widget));
+
+ /* Iterate through the list of widgets in traverse, until
+ * we find the position we want to insert our widget into */
+ /* TODO: traverse from front to back, possible speedup? */
+! while (traverse != NULL)
+ {
+! PtGetResource(traverse, Pt_ARG_POINTER, &menu, 0);
+
+! if (menu != NULL &&
+ priority < menu->priority &&
+! widget != traverse)
+ {
+ /* Insert the widget before the current traverse widget */
+! PtWidgetInsert(widget, traverse, 1);
+ return;
+ }
+
+! traverse = PtWidgetBrotherInFront(traverse);
+ }
+ }
+
+***************
+*** 2611,2621 ****
+
+ menu->submenu_id = menu->id = NULL;
+
+! if( menu_is_menubar( menu->name ) )
+ {
+
+! accel_key = vim_strchr( menu->name, '&' );
+! if( accel_key != NULL )
+ {
+ mnemonic_str[0] = accel_key[1];
+ mnemonic_str[1] = NUL;
+--- 2611,2621 ----
+
+ menu->submenu_id = menu->id = NULL;
+
+! if (menu_is_menubar(menu->name))
+ {
+
+! accel_key = vim_strchr(menu->name, '&');
+! if (accel_key != NULL)
+ {
+ mnemonic_str[0] = accel_key[1];
+ mnemonic_str[1] = NUL;
+***************
+*** 2623,2673 ****
+
+ /* Create the menu button */
+ n = 0;
+! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
+! if( accel_key != NULL )
+! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
+
+! if( parent != NULL )
+! PtSetArg( &args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0 );
+
+! menu->id = PtCreateWidget( PtMenuButton,
+ (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
+! n, args );
+
+! PtAddCallback( menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu );
+
+ /* Create the actual menu */
+ n = 0;
+! if( parent != NULL )
+! PtSetArg( &args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD );
+
+! menu->submenu_id = PtCreateWidget( PtMenu, menu->id, n, args );
+
+! if( parent == NULL )
+ {
+! PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
+! gui_ph_handle_menu_unrealized, menu );
+
+! if( menu->mnemonic != 0 )
+ {
+! PtAddHotkeyHandler( gui.vimWindow, tolower( menu->mnemonic ),
+! Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu );
+ }
+ }
+
+! gui_ph_position_menu( menu->id, menu->priority );
+
+ /* Redraw menubar here instead of gui_mch_draw_menubar */
+! if( gui.menu_is_active )
+! PtRealizeWidget( menu->id );
+ }
+! else if( menu_is_popup( menu->name ) )
+ {
+! menu->submenu_id = PtCreateWidget( PtMenu, gui.vimWindow, 0, NULL );
+! PtAddCallback( menu->submenu_id, Pt_CB_UNREALIZED,
+! gui_ph_handle_menu_unrealized, menu );
+ }
+ }
+
+--- 2623,2673 ----
+
+ /* Create the menu button */
+ n = 0;
+! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
+! if (accel_key != NULL)
+! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
+
+! if (parent != NULL)
+! PtSetArg(&args[ n++ ], Pt_ARG_BUTTON_TYPE, Pt_MENU_RIGHT, 0);
+
+! menu->id = PtCreateWidget(PtMenuButton,
+ (parent == NULL) ? gui.vimMenuBar : parent->submenu_id,
+! n, args);
+
+! PtAddCallback(menu->id, Pt_CB_ARM, gui_ph_handle_pulldown_menu, menu);
+
+ /* Create the actual menu */
+ n = 0;
+! if (parent != NULL)
+! PtSetArg(&args[ n++ ], Pt_ARG_MENU_FLAGS, Pt_TRUE, Pt_MENU_CHILD);
+
+! menu->submenu_id = PtCreateWidget(PtMenu, menu->id, n, args);
+
+! if (parent == NULL)
+ {
+! PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
+! gui_ph_handle_menu_unrealized, menu);
+
+! if (menu->mnemonic != 0)
+ {
+! PtAddHotkeyHandler(gui.vimWindow, tolower(menu->mnemonic),
+! Pk_KM_Alt, 0, menu, gui_ph_handle_pulldown_menu);
+ }
+ }
+
+! gui_ph_position_menu(menu->id, menu->priority);
+
+ /* Redraw menubar here instead of gui_mch_draw_menubar */
+! if (gui.menu_is_active)
+! PtRealizeWidget(menu->id);
+ }
+! else if (menu_is_popup(menu->name))
+ {
+! menu->submenu_id = PtCreateWidget(PtMenu, gui.vimWindow, 0, NULL);
+! PtAddCallback(menu->submenu_id, Pt_CB_UNREALIZED,
+! gui_ph_handle_menu_unrealized, menu);
+ }
+ }
+
+***************
+*** 2681,2784 ****
+ PtArg_t args[13];
+
+ n = 0;
+! PtSetArg( &args[ n++ ], Pt_ARG_POINTER, menu, 0 );
+
+ #ifdef FEAT_TOOLBAR
+! if( menu_is_toolbar( parent->name ) )
+ {
+! if( menu_is_separator( menu->name ) )
+ {
+! PtSetArg( &args[ n++ ], Pt_ARG_SEP_FLAGS,
+! Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION );
+! PtSetArg( &args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+! Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM );
+! PtSetArg( &args[ n++ ], Pt_ARG_WIDTH, 2, 0 );
+! menu->id = PtCreateWidget( PtSeparator, gui.vimToolBar, n, args );
+ }
+ else
+ {
+! if( strstr( (const char *) p_toolbar, "text" ) != NULL )
+ {
+! PtSetArg( &args[ n++ ], Pt_ARG_BALLOON_POSITION,
+! Pt_BALLOON_BOTTOM, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0 );
+ }
+! if( ( strstr( (const char *) p_toolbar, "icons" ) != NULL ) &&
+! ( gui_ph_toolbar_images != NULL ) )
+ {
+! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_IMAGE,
+! gui_ph_toolbar_find_icon( menu ), 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0 );
+ }
+! if( strstr( (const char *) p_toolbar, "tooltips" ) != NULL )
+ {
+! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_BALLOON,
+! gui_ph_show_tooltip, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_LABEL_FLAGS,
+! Pt_TRUE, Pt_SHOW_BALLOON );
+ }
+! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0 );
+! PtSetArg( &args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
+! Pt_HIGHLIGHTED | Pt_GETS_FOCUS );
+! PtSetArg( &args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0 );
+! menu->id = PtCreateWidget( PtButton, gui.vimToolBar, n, args );
+
+! PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
+ }
+ /* Update toolbar if it's open */
+! if( PtWidgetIsRealized( gui.vimToolBar ) )
+! PtRealizeWidget( menu->id );
+ }
+ else
+ #endif
+! if( menu_is_separator( menu->name ) )
+ {
+! menu->id = PtCreateWidget( PtSeparator, parent->submenu_id, n, args );
+ }
+ else
+ {
+! accel_key = vim_strchr( menu->name, '&' );
+! if( accel_key != NULL )
+ {
+ mnemonic_str[0] = accel_key[1];
+ mnemonic_str[1] = NUL;
+ }
+
+! PtSetArg( &args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0 );
+! if( accel_key != NULL )
+! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
+! 0 );
+
+! PtSetArg( &args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0 );
+
+! menu->id = PtCreateWidget( PtMenuButton, parent->submenu_id, n, args );
+
+! PtAddCallback( menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu );
+
+ #ifdef USE_PANEL_GROUP
+! if( gui_ph_is_buffer_item( menu, parent ) == TRUE )
+ {
+! PtAddCallback( menu->id, Pt_CB_DESTROYED,
+! gui_ph_handle_buffer_remove, menu );
+! gui_ph_pg_add_buffer( menu->dname );
+ }
+ #endif
+ }
+
+! gui_ph_position_menu( menu->id, menu->priority );
+ }
+
+ void
+ gui_mch_destroy_menu(vimmenu_T *menu)
+ {
+! if( menu->submenu_id != NULL )
+! PtDestroyWidget( menu->submenu_id );
+! if( menu->id != NULL )
+! PtDestroyWidget( menu->id );
+
+ menu->submenu_id = NULL;
+ menu->id = NULL;
+--- 2681,2784 ----
+ PtArg_t args[13];
+
+ n = 0;
+! PtSetArg(&args[ n++ ], Pt_ARG_POINTER, menu, 0);
+
+ #ifdef FEAT_TOOLBAR
+! if (menu_is_toolbar(parent->name))
+ {
+! if (menu_is_separator(menu->name))
+ {
+! PtSetArg(&args[ n++ ], Pt_ARG_SEP_FLAGS,
+! Pt_SEP_VERTICAL, Pt_SEP_ORIENTATION);
+! PtSetArg(&args[ n++ ], Pt_ARG_SEP_TYPE, Pt_ETCHED_IN, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_ANCHOR_FLAGS,
+! Pt_TRUE, Pt_ANCHOR_TOP_BOTTOM);
+! PtSetArg(&args[ n++ ], Pt_ARG_WIDTH, 2, 0);
+! menu->id = PtCreateWidget(PtSeparator, gui.vimToolBar, n, args);
+ }
+ else
+ {
+! if (strstr((const char *) p_toolbar, "text") != NULL)
+ {
+! PtSetArg(&args[ n++ ], Pt_ARG_BALLOON_POSITION,
+! Pt_BALLOON_BOTTOM, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_FONT, "TextFont08", 0);
+ }
+! if ((strstr((const char *) p_toolbar, "icons") != NULL) &&
+! (gui_ph_toolbar_images != NULL))
+ {
+! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_IMAGE,
+! gui_ph_toolbar_find_icon(menu), 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_TYPE, Pt_TEXT_IMAGE, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_IMAGE_SPACING, 0, 0);
+ }
+! if (strstr((const char *) p_toolbar, "tooltips") != NULL)
+ {
+! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_BALLOON,
+! gui_ph_show_tooltip, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_LABEL_FLAGS,
+! Pt_TRUE, Pt_SHOW_BALLOON);
+ }
+! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_HEIGHT, 1, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_MARGIN_WIDTH, 1, 0);
+! PtSetArg(&args[ n++ ], Pt_ARG_FLAGS, Pt_FALSE,
+! Pt_HIGHLIGHTED | Pt_GETS_FOCUS);
+! PtSetArg(&args[ n++ ], Pt_ARG_FILL_COLOR, Pg_TRANSPARENT, 0);
+! menu->id = PtCreateWidget(PtButton, gui.vimToolBar, n, args);
+
+! PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
+ }
+ /* Update toolbar if it's open */
+! if (PtWidgetIsRealized(gui.vimToolBar))
+! PtRealizeWidget(menu->id);
+ }
+ else
+ #endif
+! if (menu_is_separator(menu->name))
+ {
+! menu->id = PtCreateWidget(PtSeparator, parent->submenu_id, n, args);
+ }
+ else
+ {
+! accel_key = vim_strchr(menu->name, '&');
+! if (accel_key != NULL)
+ {
+ mnemonic_str[0] = accel_key[1];
+ mnemonic_str[1] = NUL;
+ }
+
+! PtSetArg(&args[ n++ ], Pt_ARG_TEXT_STRING, menu->dname, 0);
+! if (accel_key != NULL)
+! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_KEY, mnemonic_str,
+! 0);
+
+! PtSetArg(&args[ n++ ], Pt_ARG_ACCEL_TEXT, menu->actext, 0);
+
+! menu->id = PtCreateWidget(PtMenuButton, parent->submenu_id, n, args);
+
+! PtAddCallback(menu->id, Pt_CB_ACTIVATE, gui_ph_handle_menu, menu);
+
+ #ifdef USE_PANEL_GROUP
+! if (gui_ph_is_buffer_item(menu, parent) == TRUE)
+ {
+! PtAddCallback(menu->id, Pt_CB_DESTROYED,
+! gui_ph_handle_buffer_remove, menu);
+! gui_ph_pg_add_buffer(menu->dname);
+ }
+ #endif
+ }
+
+! gui_ph_position_menu(menu->id, menu->priority);
+ }
+
+ void
+ gui_mch_destroy_menu(vimmenu_T *menu)
+ {
+! if (menu->submenu_id != NULL)
+! PtDestroyWidget(menu->submenu_id);
+! if (menu->id != NULL)
+! PtDestroyWidget(menu->id);
+
+ menu->submenu_id = NULL;
+ menu->id = NULL;
+***************
+*** 2789,2800 ****
+ {
+ long flags, mask, fields;
+
+! if( menu->id == NULL )
+ return;
+
+! flags = PtWidgetFlags( menu->id );
+! if( PtWidgetIsClass( menu->id, PtMenuButton ) &&
+! PtWidgetIsClass( PtWidgetParent( menu->id ), PtMenu ) )
+ {
+ fields = Pt_FALSE;
+ mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
+--- 2789,2800 ----
+ {
+ long flags, mask, fields;
+
+! if (menu->id == NULL)
+ return;
+
+! flags = PtWidgetFlags(menu->id);
+! if (PtWidgetIsClass(menu->id, PtMenuButton) &&
+! PtWidgetIsClass(PtWidgetParent(menu->id), PtMenu))
+ {
+ fields = Pt_FALSE;
+ mask = Pt_SELECTABLE | Pt_HIGHLIGHTED;
+***************
+*** 2805,2815 ****
+ mask = Pt_BLOCKED | Pt_GHOST;
+ }
+
+! if( ! grey )
+ fields = ~fields;
+
+! PtSetResource( menu->id, Pt_ARG_FLAGS, fields,
+! mask );
+ }
+
+ void
+--- 2805,2815 ----
+ mask = Pt_BLOCKED | Pt_GHOST;
+ }
+
+! if (! grey)
+ fields = ~fields;
+
+! PtSetResource(menu->id, Pt_ARG_FLAGS, fields,
+! mask);
+ }
+
+ void
+***************
+*** 2830,2837 ****
+ void
+ gui_mch_show_popupmenu(vimmenu_T *menu)
+ {
+! PtSetResource( menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0 );
+! PtRealizeWidget( menu->submenu_id );
+ }
+
+ void
+--- 2830,2837 ----
+ void
+ gui_mch_show_popupmenu(vimmenu_T *menu)
+ {
+! PtSetResource(menu->submenu_id, Pt_ARG_POS, &abs_mouse, 0);
+! PtRealizeWidget(menu->submenu_id);
+ }
+
+ void
+***************
+*** 2842,2855 ****
+
+ #endif
+
+! #if defined( FEAT_TOOLBAR ) || defined( PROTO )
+ void
+ gui_mch_show_toolbar(int showit)
+ {
+! if( showit )
+! PtRealizeWidget( gui.vimToolBar );
+ else
+! PtUnrealizeWidget( gui.vimToolBar );
+ }
+ #endif
+
+--- 2842,2855 ----
+
+ #endif
+
+! #if defined(FEAT_TOOLBAR) || defined(PROTO)
+ void
+ gui_mch_show_toolbar(int showit)
+ {
+! if (showit)
+! PtRealizeWidget(gui.vimToolBar);
+ else
+! PtUnrealizeWidget(gui.vimToolBar);
+ }
+ #endif
+
+***************
+*** 2870,2903 ****
+ FontQueryInfo info;
+ int_u style;
+
+! font_tag = alloc( MAX_FONT_TAG );
+! if( font_tag != NULL )
+ {
+! if( PfGenerateFontName( font_name, font_flags, font_size,
+! font_tag ) != NULL )
+ {
+ /* Enforce some limits on the font used */
+ style = PHFONT_INFO_FIXED;
+
+! if( enforce & PF_STYLE_BOLD )
+ style |= PHFONT_INFO_BOLD;
+! if( enforce & PF_STYLE_ANTIALIAS )
+ style |= PHFONT_INFO_ALIAS;
+! if( enforce & PF_STYLE_ITALIC )
+ style |= PHFONT_INFO_ITALIC;
+
+! PfQueryFontInfo( font_tag, &info );
+
+! if( info.size == 0 )
+ font_size = 0;
+
+ /* Make sure font size matches, and that the font style
+ * at least has the bits we're checking for */
+! if( font_size == info.size &&
+! style == (info.style & style) )
+ return (GuiFont)font_tag;
+ }
+! vim_free( font_tag );
+ }
+ return NULL;
+ }
+--- 2870,2903 ----
+ FontQueryInfo info;
+ int_u style;
+
+! font_tag = alloc(MAX_FONT_TAG);
+! if (font_tag != NULL)
+ {
+! if (PfGenerateFontName(font_name, font_flags, font_size,
+! font_tag) != NULL)
+ {
+ /* Enforce some limits on the font used */
+ style = PHFONT_INFO_FIXED;
+
+! if (enforce & PF_STYLE_BOLD)
+ style |= PHFONT_INFO_BOLD;
+! if (enforce & PF_STYLE_ANTIALIAS)
+ style |= PHFONT_INFO_ALIAS;
+! if (enforce & PF_STYLE_ITALIC)
+ style |= PHFONT_INFO_ITALIC;
+
+! PfQueryFontInfo(font_tag, &info);
+
+! if (info.size == 0)
+ font_size = 0;
+
+ /* Make sure font size matches, and that the font style
+ * at least has the bits we're checking for */
+! if (font_size == info.size &&
+! style == (info.style & style))
+ return (GuiFont)font_tag;
+ }
+! vim_free(font_tag);
+ }
+ return NULL;
+ }
+***************
+*** 2919,2936 ****
+ char_u *vim_font,
+ char_u **font_name,
+ int_u *font_flags,
+! int_u *font_size )
+ {
+ char_u *mark;
+ int_u name_len, size;
+
+! mark = vim_strchr( vim_font, ':' );
+! if( mark == NULL )
+! name_len = STRLEN( vim_font );
+ else
+! name_len = (int_u) ( mark - vim_font );
+
+! *font_name = vim_strnsave( vim_font, name_len );
+ if (*font_name != NULL)
+ {
+ if (mark != NULL)
+--- 2919,2936 ----
+ char_u *vim_font,
+ char_u **font_name,
+ int_u *font_flags,
+! int_u *font_size)
+ {
+ char_u *mark;
+ int_u name_len, size;
+
+! mark = vim_strchr(vim_font, ':');
+! if (mark == NULL)
+! name_len = STRLEN(vim_font);
+ else
+! name_len = (int_u) (mark - vim_font);
+
+! *font_name = vim_strnsave(vim_font, name_len);
+ if (*font_name != NULL)
+ {
+ if (mark != NULL)
+***************
+*** 2944,2950 ****
+ case 'i': *font_flags |= PF_STYLE_ITALIC; break;
+
+ case 's':
+! size = getdigits( &mark );
+ /* Restrict the size to some vague limits */
+ if (size < 1 || size > 100)
+ size = 8;
+--- 2944,2950 ----
+ case 'i': *font_flags |= PF_STYLE_ITALIC; break;
+
+ case 's':
+! size = getdigits(&mark);
+ /* Restrict the size to some vague limits */
+ if (size < 1 || size > 100)
+ size = 8;
+***************
+*** 2979,3031 ****
+ vim_font_name = "PC Terminal";
+ }
+
+! if (STRCMP( vim_font_name, "*" ) == 0)
+ {
+! font_tag = PtFontSelection( gui.vimWindow, NULL, NULL,
+! "pcterm12", -1, PHFONT_FIXED, NULL );
+
+ if (font_tag == NULL)
+ return FAIL;
+
+! gui_mch_free_font( gui.norm_font );
+ gui.norm_font = font_tag;
+
+! PfQueryFontInfo( font_tag, &info );
+! font_name = vim_strsave( info.font );
+ }
+ else
+ {
+! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) == FALSE)
+ return FAIL;
+
+! font_tag = gui_ph_get_font( font_name, font_flags, font_size, 0 );
+ if (font_tag == NULL)
+ {
+! vim_free( font_name );
+ return FAIL;
+ }
+
+! gui_mch_free_font( gui.norm_font );
+ gui.norm_font = font_tag;
+ }
+
+! gui_mch_free_font( gui.bold_font );
+! gui.bold_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_BOLD,
+! font_size, PF_STYLE_BOLD );
+!
+! gui_mch_free_font( gui.ital_font );
+! gui.ital_font = gui_ph_get_font( font_name, font_flags | PF_STYLE_ITALIC,
+! font_size, PF_STYLE_ITALIC );
+
+ /* This extent was brought to you by the letter 'g' */
+! PfExtentText( &extent, NULL, font_tag, "g", 1 );
+
+ gui.char_width = extent.lr.x - extent.ul.x + 1;
+ gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
+ gui.char_ascent = - extent.ul.y;
+
+! vim_free( font_name );
+ return OK;
+ }
+
+--- 2979,3031 ----
+ vim_font_name = "PC Terminal";
+ }
+
+! if (STRCMP(vim_font_name, "*") == 0)
+ {
+! font_tag = PtFontSelection(gui.vimWindow, NULL, NULL,
+! "pcterm12", -1, PHFONT_FIXED, NULL);
+
+ if (font_tag == NULL)
+ return FAIL;
+
+! gui_mch_free_font(gui.norm_font);
+ gui.norm_font = font_tag;
+
+! PfQueryFontInfo(font_tag, &info);
+! font_name = vim_strsave(info.font);
+ }
+ else
+ {
+! if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
+! &font_size) == FALSE)
+ return FAIL;
+
+! font_tag = gui_ph_get_font(font_name, font_flags, font_size, 0);
+ if (font_tag == NULL)
+ {
+! vim_free(font_name);
+ return FAIL;
+ }
+
+! gui_mch_free_font(gui.norm_font);
+ gui.norm_font = font_tag;
+ }
+
+! gui_mch_free_font(gui.bold_font);
+! gui.bold_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_BOLD,
+! font_size, PF_STYLE_BOLD);
+!
+! gui_mch_free_font(gui.ital_font);
+! gui.ital_font = gui_ph_get_font(font_name, font_flags | PF_STYLE_ITALIC,
+! font_size, PF_STYLE_ITALIC);
+
+ /* This extent was brought to you by the letter 'g' */
+! PfExtentText(&extent, NULL, font_tag, "g", 1);
+
+ gui.char_width = extent.lr.x - extent.ul.x + 1;
+ gui.char_height = (- extent.ul.y) + extent.lr.y + 1;
+ gui.char_ascent = - extent.ul.y;
+
+! vim_free(font_name);
+ return OK;
+ }
+
+***************
+*** 3037,3043 ****
+ {
+ FontQueryInfo info;
+
+! PfQueryFontInfo( gui.norm_font, &info );
+
+ gui.char_height = - info.ascender + info.descender + p_linespace;
+ gui.char_ascent = - info.ascender + p_linespace / 2;
+--- 3037,3043 ----
+ {
+ FontQueryInfo info;
+
+! PfQueryFontInfo(gui.norm_font, &info);
+
+ gui.char_height = - info.ascender + info.descender + p_linespace;
+ gui.char_ascent = - info.ascender + p_linespace / 2;
+***************
+*** 3053,3070 ****
+ int_u font_size = 12;
+ int_u font_flags = 0;
+
+! if (gui_ph_parse_font_name( vim_font_name, &font_name, &font_flags,
+! &font_size ) != FALSE)
+ {
+! font_tag = gui_ph_get_font( font_name, font_flags, font_size, -1 );
+! vim_free( font_name );
+
+ if (font_tag != NULL)
+ return (GuiFont)font_tag;
+ }
+
+ if (report_error)
+! EMSG2(e_font, vim_font_name );
+
+ return FAIL;
+ }
+--- 3053,3070 ----
+ int_u font_size = 12;
+ int_u font_flags = 0;
+
+! if (gui_ph_parse_font_name(vim_font_name, &font_name, &font_flags,
+! &font_size) != FALSE)
+ {
+! font_tag = gui_ph_get_font(font_name, font_flags, font_size, -1);
+! vim_free(font_name);
+
+ if (font_tag != NULL)
+ return (GuiFont)font_tag;
+ }
+
+ if (report_error)
+! EMSG2(e_font, vim_font_name);
+
+ return FAIL;
+ }
+***************
+*** 3088,3099 ****
+ void
+ gui_mch_set_font(GuiFont font)
+ {
+! PgSetFont( font );
+ }
+
+ void
+ gui_mch_free_font(GuiFont font)
+ {
+! vim_free( font );
+ }
+
+--- 3088,3099 ----
+ void
+ gui_mch_set_font(GuiFont font)
+ {
+! PgSetFont(font);
+ }
+
+ void
+ gui_mch_free_font(GuiFont font)
+ {
+! vim_free(font);
+ }
+
+*** ../vim-7.3.309/src/version.c 2011-09-14 15:41:54.000000000 +0200
+--- src/version.c 2011-09-14 16:01:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 310,
+ /**/
+
+--
+An operatingsystem is just a name you give to the rest of bloating
+idiosyncratic machine-based-features you left out of your editor.
+ (author unknown)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.311 b/source/ap/vim/patches/7.3.311
new file mode 100644
index 000000000..13aec74a9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.311
@@ -0,0 +1,351 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.311
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.311 (replaces 7.3.289)
+Problem: Complete function isn't called when the leader changed.
+Solution: Allow the complete function to return a dictionary with a flag
+ that indicates ins_compl_restart() is to be called when the leader
+ changes. (Taro Muraoka)
+Files: runtime/insert.txt, src/edit.c, src/eval.c, src/proto/eval.pro
+
+
+*** ../vim-7.3.310/src/edit.c 2011-09-05 20:13:37.000000000 +0200
+--- src/edit.c 2011-09-14 16:43:14.000000000 +0200
+***************
+*** 135,140 ****
+--- 135,142 ----
+ static int compl_cont_mode = 0;
+ static expand_T compl_xp;
+
++ static int compl_opt_refresh_always = FALSE;
++
+ static void ins_ctrl_x __ARGS((void));
+ static int has_compl_option __ARGS((int dict_opt));
+ static int ins_compl_accept_char __ARGS((int c));
+***************
+*** 153,161 ****
+ static void ins_compl_free __ARGS((void));
+ static void ins_compl_clear __ARGS((void));
+ static int ins_compl_bs __ARGS((void));
+ static void ins_compl_new_leader __ARGS((void));
+ static void ins_compl_addleader __ARGS((int c));
+! static int ins_compl_len __ARGS((void));
+ static void ins_compl_restart __ARGS((void));
+ static void ins_compl_set_original_text __ARGS((char_u *str));
+ static void ins_compl_addfrommatch __ARGS((void));
+--- 155,164 ----
+ static void ins_compl_free __ARGS((void));
+ static void ins_compl_clear __ARGS((void));
+ static int ins_compl_bs __ARGS((void));
++ static int ins_compl_need_restart __ARGS((void));
+ static void ins_compl_new_leader __ARGS((void));
+ static void ins_compl_addleader __ARGS((int c));
+! static int ins_compl_len __ARGS((void));
+ static void ins_compl_restart __ARGS((void));
+ static void ins_compl_set_original_text __ARGS((char_u *str));
+ static void ins_compl_addfrommatch __ARGS((void));
+***************
+*** 163,168 ****
+--- 166,172 ----
+ static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
+ #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
+ static void ins_compl_add_list __ARGS((list_T *list));
++ static void ins_compl_add_dict __ARGS((dict_T *dict));
+ #endif
+ static int ins_compl_get_exp __ARGS((pos_T *ini));
+ static void ins_compl_delete __ARGS((void));
+***************
+*** 3341,3347 ****
+ /* Deleted more than what was used to find matches or didn't finish
+ * finding all matches: need to look for matches all over again. */
+ if (curwin->w_cursor.col <= compl_col + compl_length
+! || compl_was_interrupted)
+ ins_compl_restart();
+
+ vim_free(compl_leader);
+--- 3345,3351 ----
+ /* Deleted more than what was used to find matches or didn't finish
+ * finding all matches: need to look for matches all over again. */
+ if (curwin->w_cursor.col <= compl_col + compl_length
+! || ins_compl_need_restart())
+ ins_compl_restart();
+
+ vim_free(compl_leader);
+***************
+*** 3355,3360 ****
+--- 3359,3378 ----
+ }
+
+ /*
++ * Return TRUE when we need to find matches again, ins_compl_restart() is to
++ * be called.
++ */
++ static int
++ ins_compl_need_restart()
++ {
++ /* Return TRUE if we didn't complete finding matches or when the
++ * 'completefunc' returned "always" in the "refresh" dictionary item. */
++ return compl_was_interrupted
++ || ((ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI)
++ && compl_opt_refresh_always);
++ }
++
++ /*
+ * Called after changing "compl_leader".
+ * Show the popup menu with a different set of matches.
+ * May also search for matches again if the previous search was interrupted.
+***************
+*** 3443,3449 ****
+ ins_char(c);
+
+ /* If we didn't complete finding matches we must search again. */
+! if (compl_was_interrupted)
+ ins_compl_restart();
+
+ vim_free(compl_leader);
+--- 3461,3467 ----
+ ins_char(c);
+
+ /* If we didn't complete finding matches we must search again. */
+! if (ins_compl_need_restart())
+ ins_compl_restart();
+
+ vim_free(compl_leader);
+***************
+*** 3871,3882 ****
+ int type; /* CTRL_X_OMNI or CTRL_X_FUNCTION */
+ char_u *base;
+ {
+! list_T *matchlist;
+ char_u *args[2];
+ char_u *funcname;
+ pos_T pos;
+ win_T *curwin_save;
+ buf_T *curbuf_save;
+
+ funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+ if (*funcname == NUL)
+--- 3889,3902 ----
+ int type; /* CTRL_X_OMNI or CTRL_X_FUNCTION */
+ char_u *base;
+ {
+! list_T *matchlist = NULL;
+! dict_T *matchdict = NULL;
+ char_u *args[2];
+ char_u *funcname;
+ pos_T pos;
+ win_T *curwin_save;
+ buf_T *curbuf_save;
++ typval_T rettv;
+
+ funcname = (type == CTRL_X_FUNCTION) ? curbuf->b_p_cfu : curbuf->b_p_ofu;
+ if (*funcname == NUL)
+***************
+*** 3889,3895 ****
+ pos = curwin->w_cursor;
+ curwin_save = curwin;
+ curbuf_save = curbuf;
+! matchlist = call_func_retlist(funcname, 2, args, FALSE);
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+ EMSG(_(e_complwin));
+--- 3909,3933 ----
+ pos = curwin->w_cursor;
+ curwin_save = curwin;
+ curbuf_save = curbuf;
+!
+! /* Call a function, which returns a list or dict. */
+! if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
+! {
+! switch (rettv.v_type)
+! {
+! case VAR_LIST:
+! matchlist = rettv.vval.v_list;
+! break;
+! case VAR_DICT:
+! matchdict = rettv.vval.v_dict;
+! break;
+! default:
+! /* TODO: Give error message? */
+! clear_tv(&rettv);
+! break;
+! }
+! }
+!
+ if (curwin_save != curwin || curbuf_save != curbuf)
+ {
+ EMSG(_(e_complwin));
+***************
+*** 3902,3911 ****
+--- 3940,3954 ----
+ EMSG(_(e_compldel));
+ goto theend;
+ }
++
+ if (matchlist != NULL)
+ ins_compl_add_list(matchlist);
++ else if (matchdict != NULL)
++ ins_compl_add_dict(matchdict);
+
+ theend:
++ if (matchdict != NULL)
++ dict_unref(matchdict);
+ if (matchlist != NULL)
+ list_unref(matchlist);
+ }
+***************
+*** 3934,3939 ****
+--- 3977,4009 ----
+ }
+
+ /*
++ * Add completions from a dict.
++ */
++ static void
++ ins_compl_add_dict(dict)
++ dict_T *dict;
++ {
++ dictitem_T *refresh;
++ dictitem_T *words;
++
++ /* Check for optional "refresh" item. */
++ compl_opt_refresh_always = FALSE;
++ refresh = dict_find(dict, (char_u *)"refresh", 7);
++ if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
++ {
++ char_u *v = refresh->di_tv.vval.v_string;
++
++ if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
++ compl_opt_refresh_always = TRUE;
++ }
++
++ /* Add completions from a "words" list. */
++ words = dict_find(dict, (char_u *)"words", 5);
++ if (words != NULL && words->di_tv.v_type == VAR_LIST)
++ ins_compl_add_list(words->di_tv.vval.v_list);
++ }
++
++ /*
+ * Add a match to the list of matches from a typeval_T.
+ * If the given string is already in the list of completions, then return
+ * NOTDONE, otherwise add it to the list and return OK. If there is an error,
+***************
+*** 5088,5093 ****
+--- 5158,5169 ----
+ return FAIL;
+ }
+
++ /*
++ * Reset extended parameters of completion, when start new
++ * completion.
++ */
++ compl_opt_refresh_always = FALSE;
++
+ if (col < 0)
+ col = curs_col;
+ compl_col = col;
+*** ../vim-7.3.310/src/eval.c 2011-09-14 14:33:47.000000000 +0200
+--- src/eval.c 2011-09-14 16:16:47.000000000 +0200
+***************
+*** 380,388 ****
+
+ static void prepare_vimvar __ARGS((int idx, typval_T *save_tv));
+ static void restore_vimvar __ARGS((int idx, typval_T *save_tv));
+- #if defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)
+- static int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
+- #endif
+ static int ex_let_vars __ARGS((char_u *arg, typval_T *tv, int copy, int semicolon, int var_count, char_u *nextchars));
+ static char_u *skip_var_list __ARGS((char_u *arg, int *var_count, int *semicolon));
+ static char_u *skip_var_one __ARGS((char_u *arg));
+--- 380,385 ----
+***************
+*** 451,457 ****
+ static void set_ref_in_list __ARGS((list_T *l, int copyID));
+ static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
+ static int rettv_dict_alloc __ARGS((typval_T *rettv));
+- static void dict_unref __ARGS((dict_T *d));
+ static void dict_free __ARGS((dict_T *d, int recurse));
+ static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
+ static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item));
+--- 448,453 ----
+***************
+*** 1563,1569 ****
+ * arguments are currently supported.
+ * Returns OK or FAIL.
+ */
+! static int
+ call_vim_function(func, argc, argv, safe, rettv)
+ char_u *func;
+ int argc;
+--- 1559,1565 ----
+ * arguments are currently supported.
+ * Returns OK or FAIL.
+ */
+! int
+ call_vim_function(func, argc, argv, safe, rettv)
+ char_u *func;
+ int argc;
+***************
+*** 6903,6909 ****
+ * Unreference a Dictionary: decrement the reference count and free it when it
+ * becomes zero.
+ */
+! static void
+ dict_unref(d)
+ dict_T *d;
+ {
+--- 6899,6905 ----
+ * Unreference a Dictionary: decrement the reference count and free it when it
+ * becomes zero.
+ */
+! void
+ dict_unref(d)
+ dict_T *d;
+ {
+*** ../vim-7.3.310/src/proto/eval.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/eval.pro 2011-09-14 16:16:47.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+ list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+ int get_spellword __ARGS((list_T *list, char_u **pp));
+ typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
++ int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
+ void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
+***************
+*** 52,57 ****
+--- 53,59 ----
+ int list_append_string __ARGS((list_T *l, char_u *str, int len));
+ int garbage_collect __ARGS((void));
+ dict_T *dict_alloc __ARGS((void));
++ void dict_unref __ARGS((dict_T *d));
+ dictitem_T *dictitem_alloc __ARGS((char_u *key));
+ void dictitem_free __ARGS((dictitem_T *item));
+ int dict_add __ARGS((dict_T *d, dictitem_T *item));
+*** ../vim-7.3.310/src/version.c 2011-09-14 16:04:52.000000000 +0200
+--- src/version.c 2011-09-14 16:25:08.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 311,
+ /**/
+
+--
+Contrary to popular belief, it's often your clothing that gets promoted, not
+you.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.312 b/source/ap/vim/patches/7.3.312
new file mode 100644
index 000000000..d2480e093
--- /dev/null
+++ b/source/ap/vim/patches/7.3.312
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.312
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.312 (after 7.3.306)
+Problem: Can't compile with tiny features.
+Solution: Add #ifdef around win_valid().
+Files: src/buffer.c
+
+
+*** ../vim-7.3.311/src/buffer.c 2011-09-14 14:43:21.000000000 +0200
+--- src/buffer.c 2011-09-14 17:46:24.000000000 +0200
+***************
+*** 416,422 ****
+ #endif
+
+ buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
+! if (win_valid(win) && win->w_buffer == buf)
+ win->w_buffer = NULL; /* make sure we don't use the buffer now */
+
+ #ifdef FEAT_AUTOCMD
+--- 416,426 ----
+ #endif
+
+ buf_freeall(buf, (del_buf ? BFA_DEL : 0) + (wipe_buf ? BFA_WIPE : 0));
+! if (
+! #ifdef FEAT_WINDOWS
+! win_valid(win) &&
+! #endif
+! win->w_buffer == buf)
+ win->w_buffer = NULL; /* make sure we don't use the buffer now */
+
+ #ifdef FEAT_AUTOCMD
+*** ../vim-7.3.311/src/version.c 2011-09-14 16:52:02.000000000 +0200
+--- src/version.c 2011-09-14 17:27:24.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 312,
+ /**/
+
+--
+You have heard the saying that if you put a thousand monkeys in a room with a
+thousand typewriters and waited long enough, eventually you would have a room
+full of dead monkeys.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.313 b/source/ap/vim/patches/7.3.313
new file mode 100644
index 000000000..ca818b8b8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.313
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.313
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.313 (after 7.3.307)
+Problem: One more warning when compiling with dynamic Python 3.
+Solution: Change PySliceObject to PyObject.
+Files: src/if_python3.c
+
+
+*** ../vim-7.3.312/src/if_python3.c 2011-09-14 15:41:54.000000000 +0200
+--- src/if_python3.c 2011-09-14 18:54:49.000000000 +0200
+***************
+*** 194,200 ****
+ static int (*py3_PySys_SetObject)(char *, PyObject *);
+ static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
+ static Py_ssize_t (*py3_PyList_Size)(PyObject *);
+! static int (*py3_PySlice_GetIndicesEx)(PySliceObject *r, Py_ssize_t length,
+ Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
+ static PyObject* (*py3_PyErr_NoMemory)(void);
+ static void (*py3_Py_Finalize)(void);
+--- 194,200 ----
+ static int (*py3_PySys_SetObject)(char *, PyObject *);
+ static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
+ static Py_ssize_t (*py3_PyList_Size)(PyObject *);
+! static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length,
+ Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
+ static PyObject* (*py3_PyErr_NoMemory)(void);
+ static void (*py3_Py_Finalize)(void);
+*** ../vim-7.3.312/src/version.c 2011-09-14 17:50:05.000000000 +0200
+--- src/version.c 2011-09-14 18:56:03.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 313,
+ /**/
+
+--
+All good vision statements are created by groups of people with bloated
+bladders who would rather be doing anything else.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.314 b/source/ap/vim/patches/7.3.314
new file mode 100644
index 000000000..76415d65b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.314
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.314
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.314 (after 7.3.304)
+Problem: Missing parenthesis.
+Solution: Add it. (Benjamin R. Haskell)
+Files: src/Make_mvc.mak
+
+
+*** ../vim-7.3.313/src/Make_mvc.mak 2011-09-14 10:49:44.000000000 +0200
+--- src/Make_mvc.mak 2011-09-14 18:56:24.000000000 +0200
+***************
+*** 785,791 ****
+ PERL_INC = /I $(PERL_INCDIR)
+ PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+ XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
+! !if exist($(XSUBPP)
+ XSUBPP = $(PERL_EXE) $(XSUBPP)
+ !else
+ XSUBPP = xsubpp
+--- 785,791 ----
+ PERL_INC = /I $(PERL_INCDIR)
+ PERL_OBJ = $(OUTDIR)\if_perl.obj $(OUTDIR)\if_perlsfio.obj
+ XSUBPP = $(PERL)\lib\ExtUtils\xsubpp
+! !if exist($(XSUBPP))
+ XSUBPP = $(PERL_EXE) $(XSUBPP)
+ !else
+ XSUBPP = xsubpp
+*** ../vim-7.3.313/src/version.c 2011-09-14 18:59:35.000000000 +0200
+--- src/version.c 2011-09-14 19:01:12.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 314,
+ /**/
+
+--
+Often you're less important than your furniture. If you think about it, you
+can get fired but your furniture stays behind, gainfully employed at the
+company that didn't need _you_ anymore.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.315 b/source/ap/vim/patches/7.3.315
new file mode 100644
index 000000000..2240f7b74
--- /dev/null
+++ b/source/ap/vim/patches/7.3.315
@@ -0,0 +1,475 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.315
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.315
+Problem: Opening a window before forking causes problems for GTK.
+Solution: Fork first, create the window in the child and report back to the
+ parent process whether it worked. If successful the parent exits,
+ if unsuccessful the child exits and the parent continues in the
+ terminal. (Tim Starling)
+Files: src/gui.c
+
+
+*** ../vim-7.3.314/src/gui.c 2011-08-10 17:44:41.000000000 +0200
+--- src/gui.c 2011-09-14 17:34:30.000000000 +0200
+***************
+*** 37,42 ****
+--- 37,60 ----
+ static void gui_set_bg_color __ARGS((char_u *name));
+ static win_T *xy2win __ARGS((int x, int y));
+
++ #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
++ && !defined(__APPLE__)
++ # define MAY_FORK
++ static void gui_do_fork __ARGS((void));
++
++ static int gui_read_child_pipe __ARGS((int fd));
++
++ /* Return values for gui_read_child_pipe */
++ enum {
++ GUI_CHILD_IO_ERROR,
++ GUI_CHILD_OK,
++ GUI_CHILD_FAILED
++ };
++
++ #endif /* MAY_FORK */
++
++ static void gui_attempt_start __ARGS((void));
++
+ static int can_update_cursor = TRUE; /* can display the cursor */
+
+ /*
+***************
+*** 59,105 ****
+ gui_start()
+ {
+ char_u *old_term;
+- #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
+- && !defined(__APPLE__)
+- # define MAY_FORK
+- int dofork = TRUE;
+- #endif
+ static int recursive = 0;
+
+ old_term = vim_strsave(T_NAME);
+
+- /*
+- * Set_termname() will call gui_init() to start the GUI.
+- * Set the "starting" flag, to indicate that the GUI will start.
+- *
+- * We don't want to open the GUI shell until after we've read .gvimrc,
+- * otherwise we don't know what font we will use, and hence we don't know
+- * what size the shell should be. So if there are errors in the .gvimrc
+- * file, they will have to go to the terminal: Set full_screen to FALSE.
+- * full_screen will be set to TRUE again by a successful termcapinit().
+- */
+ settmode(TMODE_COOK); /* stop RAW mode */
+ if (full_screen)
+ cursor_on(); /* needed for ":gui" in .vimrc */
+- gui.starting = TRUE;
+ full_screen = FALSE;
+
+! #ifdef FEAT_GUI_GTK
+! gui.event_time = GDK_CURRENT_TIME;
+! #endif
+
+ #ifdef MAY_FORK
+! if (!gui.dofork || vim_strchr(p_go, GO_FORG) || recursive)
+! dofork = FALSE;
+ #endif
+! ++recursive;
+!
+! termcapinit((char_u *)"builtin_gui");
+! gui.starting = recursive - 1;
+
+ if (!gui.in_use) /* failed to start GUI */
+ {
+! termcapinit(old_term); /* back to old term settings */
+ settmode(TMODE_RAW); /* restart RAW mode */
+ #ifdef FEAT_TITLE
+ set_title_defaults(); /* set 'title' and 'icon' again */
+--- 77,123 ----
+ gui_start()
+ {
+ char_u *old_term;
+ static int recursive = 0;
+
+ old_term = vim_strsave(T_NAME);
+
+ settmode(TMODE_COOK); /* stop RAW mode */
+ if (full_screen)
+ cursor_on(); /* needed for ":gui" in .vimrc */
+ full_screen = FALSE;
+
+! ++recursive;
+
+ #ifdef MAY_FORK
+! /*
+! * Quit the current process and continue in the child.
+! * Makes "gvim file" disconnect from the shell it was started in.
+! * Don't do this when Vim was started with "-f" or the 'f' flag is present
+! * in 'guioptions'.
+! */
+! if (gui.dofork && !vim_strchr(p_go, GO_FORG) && recursive <= 1)
+! {
+! gui_do_fork();
+! }
+! else
+ #endif
+! {
+! gui_attempt_start();
+! }
+
+ if (!gui.in_use) /* failed to start GUI */
+ {
+! /* Back to old term settings
+! *
+! * FIXME: If we got here because a child process failed and flagged to
+! * the parent to resume, and X11 is enabled with FEAT_TITLE, this will
+! * hit an X11 I/O error and do a longjmp(), leaving recursive
+! * permanently set to 1. This is probably not as big a problem as it
+! * sounds, because gui_mch_init() in both gui_x11.c and gui_gtk_x11.c
+! * return "OK" unconditionally, so it would be very difficult to
+! * actually hit this case.
+! */
+! termcapinit(old_term);
+ settmode(TMODE_RAW); /* restart RAW mode */
+ #ifdef FEAT_TITLE
+ set_title_defaults(); /* set 'title' and 'icon' again */
+***************
+*** 108,113 ****
+--- 126,166 ----
+
+ vim_free(old_term);
+
++ #ifdef FEAT_AUTOCMD
++ /* If the GUI started successfully, trigger the GUIEnter event, otherwise
++ * the GUIFailed event. */
++ gui_mch_update();
++ apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
++ NULL, NULL, FALSE, curbuf);
++ #endif
++ --recursive;
++ }
++
++ /*
++ * Set_termname() will call gui_init() to start the GUI.
++ * Set the "starting" flag, to indicate that the GUI will start.
++ *
++ * We don't want to open the GUI shell until after we've read .gvimrc,
++ * otherwise we don't know what font we will use, and hence we don't know
++ * what size the shell should be. So if there are errors in the .gvimrc
++ * file, they will have to go to the terminal: Set full_screen to FALSE.
++ * full_screen will be set to TRUE again by a successful termcapinit().
++ */
++ static void
++ gui_attempt_start()
++ {
++ static int recursive = 0;
++
++ ++recursive;
++ gui.starting = TRUE;
++
++ #ifdef FEAT_GUI_GTK
++ gui.event_time = GDK_CURRENT_TIME;
++ #endif
++
++ termcapinit((char_u *)"builtin_gui");
++ gui.starting = recursive - 1;
++
+ #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
+ if (gui.in_use)
+ {
+***************
+*** 123,218 ****
+ display_errors();
+ }
+ #endif
+
+! #if defined(MAY_FORK) && !defined(__QNXNTO__)
+! /*
+! * Quit the current process and continue in the child.
+! * Makes "gvim file" disconnect from the shell it was started in.
+! * Don't do this when Vim was started with "-f" or the 'f' flag is present
+! * in 'guioptions'.
+! */
+! if (gui.in_use && dofork)
+ {
+! int pipefd[2]; /* pipe between parent and child */
+! int pipe_error;
+! char dummy;
+! pid_t pid = -1;
+!
+! /* Setup a pipe between the child and the parent, so that the parent
+! * knows when the child has done the setsid() call and is allowed to
+! * exit. */
+! pipe_error = (pipe(pipefd) < 0);
+! pid = fork();
+! if (pid > 0) /* Parent */
+ {
+! /* Give the child some time to do the setsid(), otherwise the
+! * exit() may kill the child too (when starting gvim from inside a
+! * gvim). */
+! if (pipe_error)
+! ui_delay(300L, TRUE);
+! else
+ {
+! /* The read returns when the child closes the pipe (or when
+! * the child dies for some reason). */
+! close(pipefd[1]);
+! ignored = (int)read(pipefd[0], &dummy, (size_t)1);
+! close(pipefd[0]);
+ }
+!
+! /* When swapping screens we may need to go to the next line, e.g.,
+! * after a hit-enter prompt and using ":gui". */
+! if (newline_on_exit)
+! mch_errmsg("\r\n");
+!
+! /*
+! * The parent must skip the normal exit() processing, the child
+! * will do it. For example, GTK messes up signals when exiting.
+! */
+! _exit(0);
+ }
+
+! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+ /*
+! * Change our process group. On some systems/shells a CTRL-C in the
+! * shell where Vim was started would otherwise kill gvim!
+ */
+! if (pid == 0) /* child */
+ # if defined(HAVE_SETSID)
+! (void)setsid();
+ # else
+! (void)setpgid(0, 0);
+ # endif
+ # endif
+! if (!pipe_error)
+! {
+! close(pipefd[0]);
+! close(pipefd[1]);
+! }
+
+ # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
+! /* Tell the session manager our new PID */
+! gui_mch_forked();
+ # endif
+ }
+- #else
+- # if defined(__QNXNTO__)
+- if (gui.in_use && dofork)
+- procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
+- PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
+- # endif
+- #endif
+
+! #ifdef FEAT_AUTOCMD
+! /* If the GUI started successfully, trigger the GUIEnter event, otherwise
+! * the GUIFailed event. */
+! gui_mch_update();
+! apply_autocmds(gui.in_use ? EVENT_GUIENTER : EVENT_GUIFAILED,
+! NULL, NULL, FALSE, curbuf);
+ #endif
+
+! --recursive;
+ }
+
+ /*
+ * Call this when vim starts up, whether or not the GUI is started
+ */
+--- 176,346 ----
+ display_errors();
+ }
+ #endif
++ --recursive;
++ }
+
+! #ifdef MAY_FORK
+!
+! /* for waitpid() */
+! # if defined(HAVE_SYS_WAIT_H) || defined(HAVE_UNION_WAIT)
+! # include <sys/wait.h>
+! # endif
+!
+! /*
+! * Create a new process, by forking. In the child, start the GUI, and in
+! * the parent, exit.
+! *
+! * If something goes wrong, this will return with gui.in_use still set
+! * to FALSE, in which case the caller should continue execution without
+! * the GUI.
+! *
+! * If the child fails to start the GUI, then the child will exit and the
+! * parent will return. If the child succeeds, then the parent will exit
+! * and the child will return.
+! */
+! static void
+! gui_do_fork()
+! {
+! #ifdef __QNXNTO__
+! procmgr_daemon(0, PROCMGR_DAEMON_KEEPUMASK | PROCMGR_DAEMON_NOCHDIR |
+! PROCMGR_DAEMON_NOCLOSE | PROCMGR_DAEMON_NODEVNULL);
+! gui_attempt_start();
+! return;
+! #else
+! int pipefd[2]; /* pipe between parent and child */
+! int pipe_error;
+! int status;
+! int exit_status;
+! pid_t pid = -1;
+! FILE *parent_file;
+!
+! /* Setup a pipe between the child and the parent, so that the parent
+! * knows when the child has done the setsid() call and is allowed to
+! * exit. */
+! pipe_error = (pipe(pipefd) < 0);
+! pid = fork();
+! if (pid < 0) /* Fork error */
+ {
+! EMSG(_("E851: Failed to create a new process for the GUI"));
+! return;
+! }
+! else if (pid > 0) /* Parent */
+! {
+! /* Give the child some time to do the setsid(), otherwise the
+! * exit() may kill the child too (when starting gvim from inside a
+! * gvim). */
+! if (!pipe_error)
+ {
+! /* The read returns when the child closes the pipe (or when
+! * the child dies for some reason). */
+! close(pipefd[1]);
+! status = gui_read_child_pipe(pipefd[0]);
+! if (status == GUI_CHILD_FAILED)
+ {
+! /* The child failed to start the GUI, so the caller must
+! * continue. There may be more error information written
+! * to stderr by the child. */
+! # ifdef __NeXT__
+! wait4(pid, &exit_status, 0, (struct rusage *)0);
+! # else
+! waitpid(pid, &exit_status, 0);
+! # endif
+! EMSG(_("E852: The child process failed to start the GUI"));
+! return;
+ }
+! else if (status == GUI_CHILD_IO_ERROR)
+! {
+! pipe_error = TRUE;
+! }
+! /* else GUI_CHILD_OK: parent exit */
+ }
+
+! if (pipe_error)
+! ui_delay(300L, TRUE);
+!
+! /* When swapping screens we may need to go to the next line, e.g.,
+! * after a hit-enter prompt and using ":gui". */
+! if (newline_on_exit)
+! mch_errmsg("\r\n");
+!
+ /*
+! * The parent must skip the normal exit() processing, the child
+! * will do it. For example, GTK messes up signals when exiting.
+ */
+! _exit(0);
+! }
+! /* Child */
+!
+! # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+! /*
+! * Change our process group. On some systems/shells a CTRL-C in the
+! * shell where Vim was started would otherwise kill gvim!
+! */
+ # if defined(HAVE_SETSID)
+! (void)setsid();
+ # else
+! (void)setpgid(0, 0);
+ # endif
+ # endif
+! if (!pipe_error)
+! close(pipefd[0]);
+
+ # if defined(FEAT_GUI_GNOME) && defined(FEAT_SESSION)
+! /* Tell the session manager our new PID */
+! gui_mch_forked();
+ # endif
++
++ if (!pipe_error)
++ parent_file = fdopen(pipefd[1], "w");
++ else
++ parent_file = NULL;
++
++ /* Try to start the GUI */
++ gui_attempt_start();
++
++ /* Notify the parent */
++ if (parent_file != NULL)
++ {
++ fputs(gui.in_use ? "ok" : "fail", parent_file);
++ fclose(parent_file);
+ }
+
+! /* If we failed to start the GUI, exit now. */
+! if (!gui.in_use)
+! exit(1);
+ #endif
++ }
+
+! /*
+! * Read from a pipe assumed to be connected to the child process (this
+! * function is called from the parent).
+! * Return GUI_CHILD_OK if the child successfully started the GUI,
+! * GUY_CHILD_FAILED if the child failed, or GUI_CHILD_IO_ERROR if there was
+! * some other error.
+! *
+! * The file descriptor will be closed before the function returns.
+! */
+! static int
+! gui_read_child_pipe(int fd)
+! {
+! size_t bytes_read;
+! FILE *file;
+! char buffer[10];
+!
+! file = fdopen(fd, "r");
+! if (!file)
+! return GUI_CHILD_IO_ERROR;
+!
+! bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
+! buffer[bytes_read] = '\0';
+! fclose(file);
+! if (strcmp(buffer, "ok") == 0)
+! return GUI_CHILD_OK;
+! return GUI_CHILD_FAILED;
+ }
+
++ #endif /* MAY_FORK */
++
+ /*
+ * Call this when vim starts up, whether or not the GUI is started
+ */
+*** ../vim-7.3.314/src/version.c 2011-09-14 19:01:38.000000000 +0200
+--- src/version.c 2011-09-14 19:02:45.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 315,
+ /**/
+
+--
+A)bort, R)etry, B)ang it with a large hammer
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.316 b/source/ap/vim/patches/7.3.316
new file mode 100644
index 000000000..96a7d42b3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.316
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.316
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.316 (after 7.3.306)
+Problem: Crash when 'colorcolumn' is set and closing buffer.
+Solution: Check for w_buffer to be NULL. (Yasuhiro Matsumoto)
+Files: src/option.c
+
+
+*** ../vim-7.3.315/src/option.c 2011-06-12 22:13:37.000000000 +0200
+--- src/option.c 2011-09-21 13:26:31.000000000 +0200
+***************
+*** 7036,7041 ****
+--- 7036,7044 ----
+ int i;
+ int j = 0;
+
++ if (wp->w_buffer == NULL)
++ return NULL; /* buffer was closed */
++
+ for (s = wp->w_p_cc; *s != NUL && count < 255;)
+ {
+ if (*s == '-' || *s == '+')
+*** ../vim-7.3.315/src/version.c 2011-09-14 19:04:35.000000000 +0200
+--- src/version.c 2011-09-21 13:40:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 316,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+25. You believe nothing looks sexier than a man in boxer shorts illuminated
+ only by a 17" inch svga monitor.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.317 b/source/ap/vim/patches/7.3.317
new file mode 100644
index 000000000..220cae218
--- /dev/null
+++ b/source/ap/vim/patches/7.3.317
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.317
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.317
+Problem: Calling debug.debug() in Lua may cause Vim to hang.
+Solution: Add a better debug method. (Rob Hoelz, Luis Carvalho)
+Files: src/if_lua.c
+
+
+*** ../vim-7.3.316/src/if_lua.c 2011-01-17 19:53:20.000000000 +0100
+--- src/if_lua.c 2011-09-21 17:15:21.000000000 +0200
+***************
+*** 100,105 ****
+--- 100,106 ----
+ #define lua_setfield dll_lua_setfield
+ #define lua_rawset dll_lua_rawset
+ #define lua_rawseti dll_lua_rawseti
++ #define lua_remove dll_lua_remove
+ #define lua_setmetatable dll_lua_setmetatable
+ #define lua_call dll_lua_call
+ #define lua_pcall dll_lua_pcall
+***************
+*** 161,166 ****
+--- 162,168 ----
+ void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+ void (*dll_lua_rawset) (lua_State *L, int idx);
+ void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
++ void (*dll_lua_remove) (lua_State *L, int idx);
+ int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+ void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
+ int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
+***************
+*** 229,234 ****
+--- 231,237 ----
+ {"lua_setfield", (luaV_function) &dll_lua_setfield},
+ {"lua_rawset", (luaV_function) &dll_lua_rawset},
+ {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
++ {"lua_remove", (luaV_function) &dll_lua_remove},
+ {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+ {"lua_call", (luaV_function) &dll_lua_call},
+ {"lua_pcall", (luaV_function) &dll_lua_pcall},
+***************
+*** 924,929 ****
+--- 927,957 ----
+ }
+
+ static int
++ luaV_debug(lua_State *L)
++ {
++ lua_settop(L, 0);
++ lua_getglobal(L, "vim");
++ lua_getfield(L, -1, "eval");
++ lua_remove(L, -2); /* vim.eval at position 1 */
++ for (;;)
++ {
++ const char *input;
++ size_t l;
++ lua_pushvalue(L, 1); /* vim.eval */
++ lua_pushliteral(L, "input('lua_debug> ')");
++ lua_call(L, 1, 1); /* return string */
++ input = lua_tolstring(L, -1, &l);
++ if (l == 0 || strcmp(input, "cont") == 0)
++ return 0;
++ msg_putchar('\n'); /* avoid outputting on input line */
++ if (luaL_loadbuffer(L, input, l, "=(debug command)")
++ || lua_pcall(L, 0, 0, 0))
++ luaV_emsg(L);
++ lua_settop(L, 1); /* remove eventual returns, but keep vim.eval */
++ }
++ }
++
++ static int
+ luaV_command(lua_State *L)
+ {
+ do_cmdline_cmd((char_u *) luaL_checkstring(L, 1));
+***************
+*** 1082,1087 ****
+--- 1110,1120 ----
+ /* print */
+ lua_pushcfunction(L, luaV_print);
+ lua_setglobal(L, "print");
++ /* debug.debug */
++ lua_getglobal(L, "debug");
++ lua_pushcfunction(L, luaV_debug);
++ lua_setfield(L, -2, "debug");
++ lua_pop(L, 1);
+ /* free */
+ lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+ lua_pushcfunction(L, luaV_free);
+*** ../vim-7.3.316/src/version.c 2011-09-21 13:40:13.000000000 +0200
+--- src/version.c 2011-09-21 17:14:01.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 317,
+ /**/
+
+--
+Q: What is the difference betwee open-source and commercial software?
+A: If you have a problem with commercial software you can call a phone
+ number and they will tell you it might be solved in a future version.
+ For open-source software there isn't a phone number to call, but you
+ get the solution within a day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.318 b/source/ap/vim/patches/7.3.318
new file mode 100644
index 000000000..369448023
--- /dev/null
+++ b/source/ap/vim/patches/7.3.318
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.318
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.318
+Problem: "C" on the last line deletes that line if it's blank.
+Solution: Only delete the last line for a delete operation. (James Vega)
+Files: src/ops.c
+
+
+*** ../vim-7.3.317/src/ops.c 2011-08-10 12:10:55.000000000 +0200
+--- src/ops.c 2011-09-21 17:32:36.000000000 +0200
+***************
+*** 1922,1928 ****
+ curwin->w_cursor.coladd = 0;
+ }
+ #endif
+! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+ && n > (int)STRLEN(ml_get(oap->end.lnum)))
+ {
+ /* Special case: gH<Del> deletes the last line. */
+--- 1922,1930 ----
+ curwin->w_cursor.coladd = 0;
+ }
+ #endif
+! if (oap->op_type == OP_DELETE
+! && oap->inclusive
+! && oap->end.lnum == curbuf->b_ml.ml_line_count
+ && n > (int)STRLEN(ml_get(oap->end.lnum)))
+ {
+ /* Special case: gH<Del> deletes the last line. */
+***************
+*** 3331,3338 ****
+ if (regname == '=')
+ {
+ /* For the = register we need to split the string at NL
+! * characters. */
+! /* Loop twice: count the number of lines and save them. */
+ for (;;)
+ {
+ y_size = 0;
+--- 3333,3340 ----
+ if (regname == '=')
+ {
+ /* For the = register we need to split the string at NL
+! * characters.
+! * Loop twice: count the number of lines and save them. */
+ for (;;)
+ {
+ y_size = 0;
+***************
+*** 3348,3354 ****
+ if (y_array != NULL)
+ *ptr = NUL;
+ ++ptr;
+! /* A trailing '\n' makes the string linewise */
+ if (*ptr == NUL)
+ {
+ y_type = MLINE;
+--- 3350,3356 ----
+ if (y_array != NULL)
+ *ptr = NUL;
+ ++ptr;
+! /* A trailing '\n' makes the register linewise. */
+ if (*ptr == NUL)
+ {
+ y_type = MLINE;
+*** ../vim-7.3.317/src/version.c 2011-09-21 17:15:34.000000000 +0200
+--- src/version.c 2011-09-21 17:31:48.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 318,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+26. You check your mail. It says "no new messages." So you check it again.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.319 b/source/ap/vim/patches/7.3.319
new file mode 100644
index 000000000..68448ab63
--- /dev/null
+++ b/source/ap/vim/patches/7.3.319
@@ -0,0 +1,154 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.319
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.319 (after 7.3.311)
+Problem: Redobuff doesn't always include changes of the completion leader.
+Solution: Insert backspaces as needed. (idea by Taro Muraoka)
+Files: src/edit.c
+
+
+*** ../vim-7.3.318/src/edit.c 2011-09-14 16:52:02.000000000 +0200
+--- src/edit.c 2011-09-21 17:59:10.000000000 +0200
+***************
+*** 163,168 ****
+--- 163,169 ----
+ static void ins_compl_set_original_text __ARGS((char_u *str));
+ static void ins_compl_addfrommatch __ARGS((void));
+ static int ins_compl_prep __ARGS((int c));
++ static void ins_compl_fixRedoBufForLeader __ARGS((char_u *ptr_arg));
+ static buf_T *ins_compl_next_buf __ARGS((buf_T *buf, int flag));
+ #if defined(FEAT_COMPL_FUNC) || defined(FEAT_EVAL)
+ static void ins_compl_add_list __ARGS((list_T *list));
+***************
+*** 3713,3721 ****
+ * memory that was used, and make sure we can redo the insert. */
+ if (compl_curr_match != NULL || compl_leader != NULL || c == Ctrl_E)
+ {
+- char_u *p;
+- int temp = 0;
+-
+ /*
+ * If any of the original typed text has been changed, eg when
+ * ignorecase is set, we must add back-spaces to the redo
+--- 3714,3719 ----
+***************
+*** 3726,3750 ****
+ */
+ if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
+ ptr = compl_curr_match->cp_str;
+- else if (compl_leader != NULL)
+- ptr = compl_leader;
+ else
+! ptr = compl_orig_text;
+! if (compl_orig_text != NULL)
+! {
+! p = compl_orig_text;
+! for (temp = 0; p[temp] != NUL && p[temp] == ptr[temp];
+! ++temp)
+! ;
+! #ifdef FEAT_MBYTE
+! if (temp > 0)
+! temp -= (*mb_head_off)(compl_orig_text, p + temp);
+! #endif
+! for (p += temp; *p != NUL; mb_ptr_adv(p))
+! AppendCharToRedobuff(K_BS);
+! }
+! if (ptr != NULL)
+! AppendToRedobuffLit(ptr + temp, -1);
+ }
+
+ #ifdef FEAT_CINDENT
+--- 3724,3732 ----
+ */
+ if (compl_curr_match != NULL && compl_used_match && c != Ctrl_E)
+ ptr = compl_curr_match->cp_str;
+ else
+! ptr = NULL;
+! ins_compl_fixRedoBufForLeader(ptr);
+ }
+
+ #ifdef FEAT_CINDENT
+***************
+*** 3834,3839 ****
+--- 3816,3859 ----
+ }
+
+ /*
++ * Fix the redo buffer for the completion leader replacing some of the typed
++ * text. This inserts backspaces and appends the changed text.
++ * "ptr" is the known leader text or NUL.
++ */
++ static void
++ ins_compl_fixRedoBufForLeader(ptr_arg)
++ char_u *ptr_arg;
++ {
++ int len;
++ char_u *p;
++ char_u *ptr = ptr_arg;
++
++ if (ptr == NULL)
++ {
++ if (compl_leader != NULL)
++ ptr = compl_leader;
++ else
++ return; /* nothing to do */
++ }
++ if (compl_orig_text != NULL)
++ {
++ p = compl_orig_text;
++ for (len = 0; p[len] != NUL && p[len] == ptr[len]; ++len)
++ ;
++ #ifdef FEAT_MBYTE
++ if (len > 0)
++ len -= (*mb_head_off)(p, p + len);
++ #endif
++ for (p += len; *p != NUL; mb_ptr_adv(p))
++ AppendCharToRedobuff(K_BS);
++ }
++ else
++ len = 0;
++ if (ptr != NULL)
++ AppendToRedobuffLit(ptr + len, -1);
++ }
++
++ /*
+ * Loops through the list of windows, loaded-buffers or non-loaded-buffers
+ * (depending on flag) starting from buf and looking for a non-scanned
+ * buffer (other than curbuf). curbuf is special, if it is called with
+***************
+*** 5241,5246 ****
+--- 5261,5270 ----
+ else
+ edit_submode = (char_u *)_(CTRL_X_MSG(ctrl_x_mode));
+
++ /* If any of the original typed text has been changed we need to fix
++ * the redo buffer. */
++ ins_compl_fixRedoBufForLeader(NULL);
++
+ /* Always add completion for the original text. */
+ vim_free(compl_orig_text);
+ compl_orig_text = vim_strnsave(line + compl_col, compl_length);
+*** ../vim-7.3.318/src/version.c 2011-09-21 17:33:49.000000000 +0200
+--- src/version.c 2011-09-21 18:21:07.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 319,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+27. You refer to your age as 3.x.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.320 b/source/ap/vim/patches/7.3.320
new file mode 100644
index 000000000..3b957c290
--- /dev/null
+++ b/source/ap/vim/patches/7.3.320
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.320
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.320
+Problem: When a 0xa0 character is in a sourced file the error message for
+ unrecognized command does not show the problem.
+Solution: Display 0xa0 as <a0>.
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.319/src/ex_docmd.c 2011-07-20 16:36:35.000000000 +0200
+--- src/ex_docmd.c 2011-09-21 19:02:15.000000000 +0200
+***************
+*** 61,66 ****
+--- 61,67 ----
+ static char_u *do_one_cmd __ARGS((char_u **, int, char_u *(*fgetline)(int, void *, int), void *cookie));
+ static int if_level = 0; /* depth in :if */
+ #endif
++ static void append_command __ARGS((char_u *cmd));
+ static char_u *find_command __ARGS((exarg_T *eap, int *full));
+
+ static void ex_abbreviate __ARGS((exarg_T *eap));
+***************
+*** 2136,2145 ****
+ {
+ STRCPY(IObuff, _("E492: Not an editor command"));
+ if (!sourcing)
+! {
+! STRCAT(IObuff, ": ");
+! STRNCAT(IObuff, *cmdlinep, 40);
+! }
+ errormsg = IObuff;
+ }
+ goto doend;
+--- 2137,2143 ----
+ {
+ STRCPY(IObuff, _("E492: Not an editor command"));
+ if (!sourcing)
+! append_command(*cmdlinep);
+ errormsg = IObuff;
+ }
+ goto doend;
+***************
+*** 2708,2715 ****
+ STRCPY(IObuff, errormsg);
+ errormsg = IObuff;
+ }
+! STRCAT(errormsg, ": ");
+! STRNCAT(errormsg, *cmdlinep, IOSIZE - STRLEN(IObuff) - 1);
+ }
+ emsg(errormsg);
+ }
+--- 2706,2712 ----
+ STRCPY(IObuff, errormsg);
+ errormsg = IObuff;
+ }
+! append_command(*cmdlinep);
+ }
+ emsg(errormsg);
+ }
+***************
+*** 2797,2802 ****
+--- 2794,2835 ----
+ }
+
+ /*
++ * Append "cmd" to the error message in IObuff.
++ * Takes care of limiting the length and handling 0xa0, which would be
++ * invisible otherwise.
++ */
++ static void
++ append_command(cmd)
++ char_u *cmd;
++ {
++ char_u *s = cmd;
++ char_u *d;
++
++ STRCAT(IObuff, ": ");
++ d = IObuff + STRLEN(IObuff);
++ while (*s != NUL && d - IObuff < IOSIZE - 7)
++ {
++ if (
++ #ifdef FEAT_MBYTE
++ enc_utf8 ? (s[0] == 0xc2 && s[1] == 0xa0) :
++ #endif
++ *s == 0xa0)
++ {
++ s +=
++ #ifdef FEAT_MBYTE
++ enc_utf8 ? 2 :
++ #endif
++ 1;
++ STRCPY(d, "<a0>");
++ d += 4;
++ }
++ else
++ MB_COPY_CHAR(s, d);
++ }
++ *d = NUL;
++ }
++
++ /*
+ * Find an Ex command by its name, either built-in or user.
+ * Start of the name can be found at eap->cmd.
+ * Returns pointer to char after the command name.
+*** ../vim-7.3.319/src/version.c 2011-09-21 18:23:02.000000000 +0200
+--- src/version.c 2011-09-21 19:04:35.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 320,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+28. You have comandeered your teenager's phone line for the net and even his
+ friends know not to call on his line anymore.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.321 b/source/ap/vim/patches/7.3.321
new file mode 100644
index 000000000..6303b013c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.321
@@ -0,0 +1,304 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.321
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.321
+Problem: Code not following Vim style.
+Solution: Fix the style. (Elias Diem)
+Files: src/os_qnx.c
+
+
+*** ../vim-7.3.320/src/os_qnx.c 2011-06-19 01:14:22.000000000 +0200
+--- src/os_qnx.c 2011-09-21 19:48:08.000000000 +0200
+***************
+*** 24,33 ****
+ #if defined(FEAT_GUI_PHOTON)
+ PhChannelParms_t parms;
+
+! memset( &parms, 0, sizeof( parms ) );
+ parms.flags = Ph_DYNAMIC_BUFFER;
+
+! is_photon_available = (PhAttach( NULL, &parms ) != NULL) ? TRUE : FALSE;
+ #endif
+ }
+
+--- 24,33 ----
+ #if defined(FEAT_GUI_PHOTON)
+ PhChannelParms_t parms;
+
+! memset(&parms, 0, sizeof(parms));
+ parms.flags = Ph_DYNAMIC_BUFFER;
+
+! is_photon_available = (PhAttach(NULL, &parms) != NULL) ? TRUE : FALSE;
+ #endif
+ }
+
+***************
+*** 39,46 ****
+ /* Turn on the clipboard for a console vim when photon is running */
+ void qnx_clip_init()
+ {
+! if( is_photon_available == TRUE && !gui.in_use)
+! clip_init( TRUE );
+ }
+
+ /*****************************************************************************/
+--- 39,46 ----
+ /* Turn on the clipboard for a console vim when photon is running */
+ void qnx_clip_init()
+ {
+! if (is_photon_available == TRUE && !gui.in_use)
+! clip_init(TRUE);
+ }
+
+ /*****************************************************************************/
+***************
+*** 48,79 ****
+
+ /* No support for owning the clipboard */
+ int
+! clip_mch_own_selection( VimClipboard *cbd )
+ {
+ return FALSE;
+ }
+
+ void
+! clip_mch_lose_selection( VimClipboard *cbd )
+ {
+ }
+
+ void
+! clip_mch_request_selection( VimClipboard *cbd )
+ {
+ int type = MLINE, clip_length = 0, is_type_set = FALSE;
+ void *cbdata;
+ PhClipHeader *clip_header;
+ char_u *clip_text = NULL;
+
+! cbdata = PhClipboardPasteStart( PhInputGroup( NULL ));
+! if( cbdata != NULL )
+ {
+ /* Look for the vim specific clip first */
+! clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_VIM );
+! if( clip_header != NULL && clip_header->data != NULL )
+ {
+! switch( *(char *) clip_header->data )
+ {
+ default: /* fallthrough to line type */
+ case 'L': type = MLINE; break;
+--- 48,79 ----
+
+ /* No support for owning the clipboard */
+ int
+! clip_mch_own_selection(VimClipboard *cbd)
+ {
+ return FALSE;
+ }
+
+ void
+! clip_mch_lose_selection(VimClipboard *cbd)
+ {
+ }
+
+ void
+! clip_mch_request_selection(VimClipboard *cbd)
+ {
+ int type = MLINE, clip_length = 0, is_type_set = FALSE;
+ void *cbdata;
+ PhClipHeader *clip_header;
+ char_u *clip_text = NULL;
+
+! cbdata = PhClipboardPasteStart(PhInputGroup(NULL));
+! if (cbdata != NULL)
+ {
+ /* Look for the vim specific clip first */
+! clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_VIM);
+! if (clip_header != NULL && clip_header->data != NULL)
+ {
+! switch(*(char *) clip_header->data)
+ {
+ default: /* fallthrough to line type */
+ case 'L': type = MLINE; break;
+***************
+*** 86,112 ****
+ }
+
+ /* Try for just normal text */
+! clip_header = PhClipboardPasteType( cbdata, CLIP_TYPE_TEXT );
+! if( clip_header != NULL )
+ {
+ clip_text = clip_header->data;
+ clip_length = clip_header->length - 1;
+
+! if( clip_text != NULL && is_type_set == FALSE )
+ type = MAUTO;
+ }
+
+! if( (clip_text != NULL) && (clip_length > 0) )
+ {
+! clip_yank_selection( type, clip_text, clip_length, cbd );
+ }
+
+! PhClipboardPasteFinish( cbdata );
+ }
+ }
+
+ void
+! clip_mch_set_selection( VimClipboard *cbd )
+ {
+ int type;
+ long_u len;
+--- 86,112 ----
+ }
+
+ /* Try for just normal text */
+! clip_header = PhClipboardPasteType(cbdata, CLIP_TYPE_TEXT);
+! if (clip_header != NULL)
+ {
+ clip_text = clip_header->data;
+ clip_length = clip_header->length - 1;
+
+! if (clip_text != NULL && is_type_set == FALSE)
+ type = MAUTO;
+ }
+
+! if ((clip_text != NULL) && (clip_length > 0))
+ {
+! clip_yank_selection(type, clip_text, clip_length, cbd);
+ }
+
+! PhClipboardPasteFinish(cbdata);
+ }
+ }
+
+ void
+! clip_mch_set_selection(VimClipboard *cbd)
+ {
+ int type;
+ long_u len;
+***************
+*** 114,144 ****
+ PhClipHeader clip_header[2];
+
+ /* Prevent recursion from clip_get_selection() */
+! if( cbd->owned == TRUE )
+ return;
+
+ cbd->owned = TRUE;
+! clip_get_selection( cbd );
+ cbd->owned = FALSE;
+
+! type = clip_convert_selection( &str, &len, cbd );
+! if( type >= 0 )
+ {
+! text_clip = lalloc( len + 1, TRUE ); /* Normal text */
+
+! if( text_clip && vim_clip )
+ {
+! memset( clip_header, 0, sizeof( clip_header ) );
+
+! STRNCPY( clip_header[0].type, CLIP_TYPE_VIM, 8 );
+! clip_header[0].length = sizeof( vim_clip );
+ clip_header[0].data = vim_clip;
+
+! STRNCPY( clip_header[1].type, CLIP_TYPE_TEXT, 8 );
+ clip_header[1].length = len + 1;
+ clip_header[1].data = text_clip;
+
+! switch( type )
+ {
+ default: /* fallthrough to MLINE */
+ case MLINE: *vim_clip = 'L'; break;
+--- 114,144 ----
+ PhClipHeader clip_header[2];
+
+ /* Prevent recursion from clip_get_selection() */
+! if (cbd->owned == TRUE)
+ return;
+
+ cbd->owned = TRUE;
+! clip_get_selection(cbd);
+ cbd->owned = FALSE;
+
+! type = clip_convert_selection(&str, &len, cbd);
+! if (type >= 0)
+ {
+! text_clip = lalloc(len + 1, TRUE); /* Normal text */
+
+! if (text_clip && vim_clip)
+ {
+! memset(clip_header, 0, sizeof(clip_header));
+
+! STRNCPY(clip_header[0].type, CLIP_TYPE_VIM, 8);
+! clip_header[0].length = sizeof(vim_clip);
+ clip_header[0].data = vim_clip;
+
+! STRNCPY(clip_header[1].type, CLIP_TYPE_TEXT, 8);
+ clip_header[1].length = len + 1;
+ clip_header[1].data = text_clip;
+
+! switch(type)
+ {
+ default: /* fallthrough to MLINE */
+ case MLINE: *vim_clip = 'L'; break;
+***************
+*** 148,161 ****
+ #endif
+ }
+
+! vim_strncpy( text_clip, str, len );
+
+ vim_clip[ 1 ] = NUL;
+
+! PhClipboardCopy( PhInputGroup( NULL ), 2, clip_header);
+ }
+! vim_free( text_clip );
+ }
+! vim_free( str );
+ }
+ #endif
+--- 148,161 ----
+ #endif
+ }
+
+! vim_strncpy(text_clip, str, len);
+
+ vim_clip[ 1 ] = NUL;
+
+! PhClipboardCopy(PhInputGroup(NULL), 2, clip_header);
+ }
+! vim_free(text_clip);
+ }
+! vim_free(str);
+ }
+ #endif
+*** ../vim-7.3.320/src/version.c 2011-09-21 19:10:42.000000000 +0200
+--- src/version.c 2011-09-21 19:47:50.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 321,
+ /**/
+
+--
+Bypasses are devices that allow some people to dash from point A to
+point B very fast while other people dash from point B to point A very
+fast. People living at point C, being a point directly in between, are
+often given to wonder what's so great about point A that so many people
+from point B are so keen to get there and what's so great about point B
+that so many people from point A are so keen to get there. They often
+wish that people would just once and for all work out where the hell
+they wanted to be.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.322 b/source/ap/vim/patches/7.3.322
new file mode 100644
index 000000000..d81b9ec63
--- /dev/null
+++ b/source/ap/vim/patches/7.3.322
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.322
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.322
+Problem: #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef.
+Solution: Check the MSC version and 64 bit flags. (Sergiu Dotenco)
+Files: src/os_mswin.c
+
+
+*** ../vim-7.3.321/src/os_mswin.c 2011-08-10 17:07:56.000000000 +0200
+--- src/os_mswin.c 2011-09-21 20:09:05.000000000 +0200
+***************
+*** 1781,1787 ****
+ }
+
+ /* Attempt to make this work for old and new compilers */
+! #if !defined(_MSC_VER) || (_MSC_VER < 1300) || !defined(INT_PTR)
+ # define PDP_RETVAL BOOL
+ #else
+ # define PDP_RETVAL INT_PTR
+--- 1781,1787 ----
+ }
+
+ /* Attempt to make this work for old and new compilers */
+! #if !defined(_WIN64) && (!defined(_MSC_VER) || _MSC_VER < 1300)
+ # define PDP_RETVAL BOOL
+ #else
+ # define PDP_RETVAL INT_PTR
+*** ../vim-7.3.321/src/version.c 2011-09-21 19:50:00.000000000 +0200
+--- src/version.c 2011-09-21 20:08:29.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 322,
+ /**/
+
+--
+Don't Panic!
+ -- The Hitchhiker's Guide to the Galaxy
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.323 b/source/ap/vim/patches/7.3.323
new file mode 100644
index 000000000..10f6d1939
--- /dev/null
+++ b/source/ap/vim/patches/7.3.323
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.323
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.323
+Problem: The default 'errorformat' does not ignore some "included from"
+ lines.
+Solution: Add a few more patterns. (Ben Boeckel)
+Files: src/option.h
+
+
+*** ../vim-7.3.322/src/option.h 2011-07-27 13:59:12.000000000 +0200
+--- src/option.h 2011-09-30 14:32:13.000000000 +0200
+***************
+*** 33,39 ****
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-Gfrom %f:%l:%c,%-Gfrom %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+--- 33,39 ----
+ # ifdef EBCDIC
+ #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # else
+! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m"
+ # endif
+ # endif
+ # endif
+*** ../vim-7.3.322/src/version.c 2011-09-21 20:09:38.000000000 +0200
+--- src/version.c 2011-09-30 14:38:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 323,
+ /**/
+
+--
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.324 b/source/ap/vim/patches/7.3.324
new file mode 100644
index 000000000..59b5c6c07
--- /dev/null
+++ b/source/ap/vim/patches/7.3.324
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.324
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.324 (after 7.3.237)
+Problem: Completion for ":compiler" shows color scheme names.
+Solution: Fix the directory name. (James Vega)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.323/src/ex_getln.c 2011-08-17 16:25:43.000000000 +0200
+--- src/ex_getln.c 2011-09-30 16:22:14.000000000 +0200
+***************
+*** 4546,4552 ****
+ }
+ if (xp->xp_context == EXPAND_COMPILER)
+ {
+! char *directories[] = {"colors", NULL};
+ return ExpandRTDir(pat, num_file, file, directories);
+ }
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
+--- 4546,4552 ----
+ }
+ if (xp->xp_context == EXPAND_COMPILER)
+ {
+! char *directories[] = {"compiler", NULL};
+ return ExpandRTDir(pat, num_file, file, directories);
+ }
+ if (xp->xp_context == EXPAND_OWNSYNTAX)
+*** ../vim-7.3.323/src/version.c 2011-09-30 14:44:49.000000000 +0200
+--- src/version.c 2011-09-30 16:23:15.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 324,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+31. You code your homework in HTML and give your instructor the URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.325 b/source/ap/vim/patches/7.3.325
new file mode 100644
index 000000000..80ebc6deb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.325
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.325
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.325
+Problem: A duplicated function argument gives an internal error.
+Solution: Give a proper error message. (based on patch by Tyru)
+Files: src/eval.c
+
+
+*** ../vim-7.3.324/src/eval.c 2011-09-14 16:52:02.000000000 +0200
+--- src/eval.c 2011-09-30 16:32:20.000000000 +0200
+***************
+*** 20461,20466 ****
+--- 20461,20467 ----
+ exarg_T *eap;
+ {
+ char_u *theline;
++ int i;
+ int j;
+ int c;
+ int saved_did_emsg;
+***************
+*** 20707,20712 ****
+--- 20708,20722 ----
+ arg = vim_strsave(arg);
+ if (arg == NULL)
+ goto erret;
++
++ /* Check for duplicate argument name. */
++ for (i = 0; i < newargs.ga_len; ++i)
++ if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0)
++ {
++ EMSG2(_("E853: Duplicate argument name: %s"), arg);
++ goto erret;
++ }
++
+ ((char_u **)(newargs.ga_data))[newargs.ga_len] = arg;
+ *p = c;
+ newargs.ga_len++;
+*** ../vim-7.3.324/src/version.c 2011-09-30 16:23:21.000000000 +0200
+--- src/version.c 2011-09-30 16:39:16.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 325,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+32. You don't know what sex three of your closest friends are, because they
+ have neutral nicknames and you never bothered to ask.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.326 b/source/ap/vim/patches/7.3.326
new file mode 100644
index 000000000..4ad52e960
--- /dev/null
+++ b/source/ap/vim/patches/7.3.326
@@ -0,0 +1,285 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.326
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.326
+Problem: MingW 4.6 no longer supports the -mno-cygwin option.
+Solution: Split the Cygwin and MingW makefiles. (Matsushita Shougo)
+Files: src/GvimExt/Make_cyg.mak, src/GvimExt/Make_ming.mak,
+ src/Make_cyg.mak, src/Make_ming.mak, src/xxd/Make_ming.mak,
+ Filelist
+
+
+*** ../vim-7.3.325/src/GvimExt/Make_cyg.mak 2011-09-30 16:55:18.000000000 +0200
+--- src/GvimExt/Make_cyg.mak 2011-09-30 16:45:49.000000000 +0200
+***************
+*** 0 ****
+--- 1,77 ----
++ # Project: gvimext
++ # Generates gvimext.dll with gcc.
++ # To be used with Cygwin.
++ #
++ # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
++ # Now it is allocated dymanically by the linker by evaluating all DLLs
++ # already loaded in memory. The binary image contains as well information
++ # for automatic pseudo-rebasing, if needed by the system. ALV 2004-02-29
++
++ # If cross-compiling set this to yes, else set it to no
++ CROSS = no
++ #CROSS = yes
++ # For the old MinGW 2.95 (the one you get e.g. with debian woody)
++ # set the following variable to yes and check if the executables are
++ # really named that way.
++ # If you have a newer MinGW or you are using cygwin set it to no and
++ # check also the executables
++ MINGWOLD = no
++
++ # Link against the shared versions of libgcc/libstdc++ by default. Set
++ # STATIC_STDCPLUS to "yes" to link against static versions instead.
++ STATIC_STDCPLUS=no
++ #STATIC_STDCPLUS=yes
++
++ # Note: -static-libstdc++ is not available until gcc 4.5.x.
++ LDFLAGS += -shared
++ ifeq (yes, $(STATIC_STDCPLUS))
++ LDFLAGS += -static-libgcc -static-libstdc++
++ endif
++
++ ifeq ($(CROSS),yes)
++ DEL = rm
++ ifeq ($(MINGWOLD),yes)
++ CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
++ else
++ CXXFLAGS := -O2 -mno-cygwin
++ endif
++ else
++ CXXFLAGS := -O2 -mno-cygwin
++ ifneq (sh.exe, $(SHELL))
++ DEL = rm
++ else
++ DEL = del
++ endif
++ endif
++ CXX := $(CROSS_COMPILE)g++
++ WINDRES := $(CROSS_COMPILE)windres
++ WINDRES_CXX = $(CXX)
++ WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED
++ LIBS := -luuid
++ RES := gvimext.res
++ DEFFILE = gvimext_ming.def
++ OBJ := gvimext.o
++
++ DLL := gvimext.dll
++
++ .PHONY: all all-before all-after clean clean-custom
++
++ all: all-before $(DLL) all-after
++
++ $(DLL): $(OBJ) $(RES) $(DEFFILE)
++ $(CXX) $(LDFLAGS) $(CXXFLAGS) -s -o $@ \
++ -Wl,--enable-auto-image-base \
++ -Wl,--enable-auto-import \
++ -Wl,--whole-archive \
++ $^ \
++ -Wl,--no-whole-archive \
++ $(LIBS)
++
++ gvimext.o: gvimext.cpp
++ $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
++
++ $(RES): gvimext_ming.rc
++ $(WINDRES) $(WINDRES_FLAGS) --input-format=rc --output-format=coff -DMING $? -o $@
++
++ clean: clean-custom
++ -$(DEL) $(OBJ) $(RES) $(DLL)
+*** ../vim-7.3.325/src/GvimExt/Make_ming.mak 2010-12-30 14:50:46.000000000 +0100
+--- src/GvimExt/Make_ming.mak 2011-09-30 16:47:09.000000000 +0200
+***************
+*** 1,6 ****
+ # Project: gvimext
+ # Generates gvimext.dll with gcc.
+! # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin)
+ #
+ # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
+ # Now it is allocated dymanically by the linker by evaluating all DLLs
+--- 1,6 ----
+ # Project: gvimext
+ # Generates gvimext.dll with gcc.
+! # To be used with MingW.
+ #
+ # Originally, the DLL base address was fixed: -Wl,--image-base=0x1C000000
+ # Now it is allocated dymanically by the linker by evaluating all DLLs
+***************
+*** 31,42 ****
+ ifeq ($(CROSS),yes)
+ DEL = rm
+ ifeq ($(MINGWOLD),yes)
+! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks
+ else
+! CXXFLAGS := -O2 -mno-cygwin
+ endif
+ else
+! CXXFLAGS := -O2 -mno-cygwin
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ else
+--- 31,42 ----
+ ifeq ($(CROSS),yes)
+ DEL = rm
+ ifeq ($(MINGWOLD),yes)
+! CXXFLAGS := -O2 -fvtable-thunks
+ else
+! CXXFLAGS := -O2
+ endif
+ else
+! CXXFLAGS := -O2
+ ifneq (sh.exe, $(SHELL))
+ DEL = rm
+ else
+***************
+*** 75,78 ****
+
+ clean: clean-custom
+ -$(DEL) $(OBJ) $(RES) $(DLL)
+-
+--- 75,77 ----
+*** ../vim-7.3.325/src/Make_cyg.mak 2010-11-03 21:59:23.000000000 +0100
+--- src/Make_cyg.mak 2011-09-30 16:48:11.000000000 +0200
+***************
+*** 536,542 ****
+ $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_ming.mak CROSS_COMPILE=$(CROSS_COMPILE)
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+--- 536,542 ----
+ $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+! $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE)
+
+ vimrun.exe: vimrun.c
+ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS)
+***************
+*** 565,571 ****
+ endif
+ -$(DEL) pathdef.c
+ $(MAKE) -C xxd -f Make_cyg.mak clean
+! $(MAKE) -C GvimExt -f Make_ming.mak clean
+
+ distclean: clean
+ -$(DEL) obj$(DIRSLASH)*.o
+--- 565,571 ----
+ endif
+ -$(DEL) pathdef.c
+ $(MAKE) -C xxd -f Make_cyg.mak clean
+! $(MAKE) -C GvimExt -f Make_cyg.mak clean
+
+ distclean: clean
+ -$(DEL) obj$(DIRSLASH)*.o
+*** ../vim-7.3.325/src/Make_ming.mak 2011-09-14 10:49:44.000000000 +0200
+--- src/Make_ming.mak 2011-09-30 16:48:11.000000000 +0200
+***************
+*** 641,647 ****
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+--- 641,647 ----
+ upx vim.exe
+
+ xxd/xxd.exe: xxd/xxd.c
+! $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
+
+ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h
+ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE)
+***************
+*** 659,665 ****
+ -$(DEL) mzscheme_base.c
+ endif
+ $(MAKE) -C GvimExt -f Make_ming.mak clean
+! $(MAKE) -C xxd -f Make_cyg.mak clean
+
+ ###########################################################################
+ INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
+--- 659,665 ----
+ -$(DEL) mzscheme_base.c
+ endif
+ $(MAKE) -C GvimExt -f Make_ming.mak clean
+! $(MAKE) -C xxd -f Make_ming.mak clean
+
+ ###########################################################################
+ INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \
+*** ../vim-7.3.325/src/xxd/Make_ming.mak 2011-09-30 16:55:18.000000000 +0200
+--- src/xxd/Make_ming.mak 2011-09-30 16:48:34.000000000 +0200
+***************
+*** 0 ****
+--- 1,28 ----
++ # The most simplistic Makefile, for MinGW gcc on MS-DOS
++
++ ifndef USEDLL
++ USEDLL = no
++ endif
++
++ ifeq (yes, $(USEDLL))
++ DEFINES =
++ LIBS = -lc
++ else
++ DEFINES =
++ LIBS =
++ endif
++
++ CC = gcc
++ CFLAGS = -O2 -Wall -DWIN32 $(DEFINES)
++
++ ifneq (sh.exe, $(SHELL))
++ DEL = rm
++ else
++ DEL = del
++ endif
++
++ xxd.exe: xxd.c
++ $(CC) $(CFLAGS) -s -o xxd.exe xxd.c $(LIBS)
++
++ clean:
++ -$(DEL) xxd.exe
+*** ../vim-7.3.325/Filelist 2011-06-12 20:36:00.000000000 +0200
+--- Filelist 2011-09-30 16:49:29.000000000 +0200
+***************
+*** 313,318 ****
+--- 313,319 ----
+ src/xxd/Make_bc5.mak \
+ src/xxd/Make_cyg.mak \
+ src/xxd/Make_djg.mak \
++ src/xxd/Make_ming.mak \
+ src/xxd/Make_mvc.mak \
+ nsis/gvim.nsi \
+ nsis/README.txt \
+*** ../vim-7.3.325/src/version.c 2011-09-30 16:39:41.000000000 +0200
+--- src/version.c 2011-09-30 16:49:57.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 326,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+33. You name your children Eudora, Mozilla and Dotcom.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.327 b/source/ap/vim/patches/7.3.327
new file mode 100644
index 000000000..1de5a9964
--- /dev/null
+++ b/source/ap/vim/patches/7.3.327
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.327
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.327
+Problem: When jumping to a help tag a closed fold doesn't open.
+Solution: Save and restore KeyTyped. (Yasuhiro Matsumoto)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.326/src/ex_cmds.c 2011-09-14 14:43:21.000000000 +0200
+--- src/ex_cmds.c 2011-09-30 17:24:03.000000000 +0200
+***************
+*** 5508,5513 ****
+--- 5508,5516 ----
+ int len;
+ char_u *lang;
+ #endif
++ #ifdef FEAT_FOLDING
++ int old_KeyTyped = KeyTyped;
++ #endif
+
+ if (eap != NULL)
+ {
+***************
+*** 5671,5676 ****
+--- 5674,5685 ----
+ if (!p_im)
+ restart_edit = 0; /* don't want insert mode in help file */
+
++ #ifdef FEAT_FOLDING
++ /* Restore KeyTyped, setting 'filetype=help' may reset it.
++ * It is needed for do_tag top open folds under the cursor. */
++ KeyTyped = old_KeyTyped;
++ #endif
++
+ if (tag != NULL)
+ do_tag(tag, DT_HELP, 1, FALSE, TRUE);
+
+*** ../vim-7.3.326/src/version.c 2011-09-30 16:56:00.000000000 +0200
+--- src/version.c 2011-09-30 17:24:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 327,
+ /**/
+
+--
+Q. What happens to programmers when they die?
+A: MS-Windows programmers are reinstalled. C++ programmers become undefined,
+ anyone who refers to them will die as well. Java programmers reincarnate
+ after being garbage collected.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.328 b/source/ap/vim/patches/7.3.328
new file mode 100644
index 000000000..24dad7022
--- /dev/null
+++ b/source/ap/vim/patches/7.3.328
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.328
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.328
+Problem: When command line wraps the cursor may be displayed wrong when
+ there are multi-byte characters.
+Solution: Position the cursor before drawing the text. (Yasuhiro Matsumoto)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.327/src/ex_getln.c 2011-09-30 16:23:21.000000000 +0200
+--- src/ex_getln.c 2011-09-30 17:39:27.000000000 +0200
+***************
+*** 2870,2875 ****
+--- 2870,2876 ----
+ {
+ msg_no_more = TRUE;
+ i = cmdline_row;
++ cursorcmd();
+ draw_cmdline(ccline.cmdpos, ccline.cmdlen - ccline.cmdpos);
+ /* Avoid clearing the rest of the line too often. */
+ if (cmdline_row != i || ccline.overstrike)
+*** ../vim-7.3.327/src/version.c 2011-09-30 17:30:27.000000000 +0200
+--- src/version.c 2011-09-30 17:45:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 328,
+ /**/
+
+--
+To define recursion, we must first define recursion.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.329 b/source/ap/vim/patches/7.3.329
new file mode 100644
index 000000000..fe48eb52d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.329
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.329
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.329
+Problem: When skipping over code from ":for" to ":endfor" get an error for
+ calling a dict function. (Yasuhiro Matsumoto)
+Solution: Ignore errors when skipping over :call command.
+Files: src/ex_docmd.c, src/eval.c
+
+
+*** ../vim-7.3.328/src/ex_docmd.c 2011-09-21 19:10:42.000000000 +0200
+--- src/ex_docmd.c 2011-09-30 17:59:51.000000000 +0200
+***************
+*** 371,381 ****
+ # define ex_endif ex_ni
+ # define ex_else ex_ni
+ # define ex_while ex_ni
+- # define ex_for ex_ni
+ # define ex_continue ex_ni
+ # define ex_break ex_ni
+ # define ex_endwhile ex_ni
+- # define ex_endfor ex_ni
+ # define ex_throw ex_ni
+ # define ex_try ex_ni
+ # define ex_catch ex_ni
+--- 371,379 ----
+*** ../vim-7.3.328/src/eval.c 2011-09-30 16:39:41.000000000 +0200
+--- src/eval.c 2011-09-30 18:29:58.000000000 +0200
+***************
+*** 3377,3383 ****
+ /* trans_function_name() doesn't work well when skipping, use eval0()
+ * instead to skip to any following command, e.g. for:
+ * :if 0 | call dict.foo().bar() | endif */
+! eval0(eap->arg, &rettv, &eap->nextcmd, FALSE);
+ return;
+ }
+
+--- 3377,3386 ----
+ /* trans_function_name() doesn't work well when skipping, use eval0()
+ * instead to skip to any following command, e.g. for:
+ * :if 0 | call dict.foo().bar() | endif */
+! ++emsg_skip;
+! if (eval0(eap->arg, &rettv, &eap->nextcmd, FALSE) != FAIL)
+! clear_tv(&rettv);
+! --emsg_skip;
+ return;
+ }
+
+*** ../vim-7.3.328/src/version.c 2011-09-30 17:46:14.000000000 +0200
+--- src/version.c 2011-09-30 18:32:27.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 329,
+ /**/
+
+--
+Have you heard about the new Beowulf cluster? It's so fast, it executes
+an infinite loop in 6 seconds.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.330 b/source/ap/vim/patches/7.3.330
new file mode 100644
index 000000000..ab828b94c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.330
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.330
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.330
+Problem: When longjmp() is invoked if the X server gives an error the state
+ is not properly restored.
+Solution: Reset vgetc_busy. (Yukihiro Nakadaira)
+Files: src/main.c
+
+
+*** ../vim-7.3.329/src/main.c 2011-05-10 16:41:13.000000000 +0200
+--- src/main.c 2011-10-04 16:41:03.000000000 +0200
+***************
+*** 1009,1014 ****
+--- 1009,1015 ----
+ skip_redraw = FALSE;
+ RedrawingDisabled = 0;
+ no_wait_return = 0;
++ vgetc_busy = 0;
+ # ifdef FEAT_EVAL
+ emsg_skip = 0;
+ # endif
+*** ../vim-7.3.329/src/version.c 2011-09-30 18:35:49.000000000 +0200
+--- src/version.c 2011-10-04 16:42:23.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 330,
+ /**/
+
+--
+Just remember...if the world didn't suck, we'd all fall off.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.331 b/source/ap/vim/patches/7.3.331
new file mode 100644
index 000000000..ba63c1729
--- /dev/null
+++ b/source/ap/vim/patches/7.3.331
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.331
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.331
+Problem: "vit" selects wrong text when a tag name starts with the same text
+ as an outer tag name. (Ben Fritz)
+Solution: Add "\>" to the pattern to check for word boundary.
+Files: src/search.c
+
+
+*** ../vim-7.3.330/src/search.c 2011-07-15 13:21:24.000000000 +0200
+--- src/search.c 2011-10-04 16:54:08.000000000 +0200
+***************
+*** 3927,3933 ****
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! sprintf((char *)spat, "<%.*s\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+ sprintf((char *)epat, "</%.*s>\\c", len, p);
+
+ r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+--- 3927,3933 ----
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+ sprintf((char *)epat, "</%.*s>\\c", len, p);
+
+ r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+*** ../vim-7.3.330/src/version.c 2011-10-04 16:43:49.000000000 +0200
+--- src/version.c 2011-10-04 16:59:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 331,
+ /**/
+
+--
+The 50-50-90 rule: Anytime you have a 50-50 chance of getting
+something right, there's a 90% probability you'll get it wrong.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.332 b/source/ap/vim/patches/7.3.332
new file mode 100644
index 000000000..ff0ab7c64
--- /dev/null
+++ b/source/ap/vim/patches/7.3.332
@@ -0,0 +1,206 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.332
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.332 (after 7.3.202)
+Problem: Indent after "public:" is not increased in C++ code. (Lech Lorens)
+Solution: Check for namespace after the regular checks. (partly by Martin
+ Gieseking)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.331/src/misc1.c 2011-09-07 19:58:04.000000000 +0200
+--- src/misc1.c 2011-10-04 17:59:52.000000000 +0200
+***************
+*** 6389,6394 ****
+--- 6389,6395 ----
+ int lookfor_cpp_namespace = FALSE;
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
++ int added_to_amount = 0;
+
+ for (options = curbuf->b_p_cino; *options; )
+ {
+***************
+*** 7216,7267 ****
+ else
+ amount += ind_continuation;
+ }
+! else if (lookfor_cpp_namespace)
+ {
+! if (curwin->w_cursor.lnum == ourscope)
+! continue;
+
+! if (curwin->w_cursor.lnum == 0
+! || curwin->w_cursor.lnum
+ < ourscope - FIND_NAMESPACE_LIM)
+! break;
+
+! l = ml_get_curline();
+
+! /*
+! * If we're in a comment now, skip to the start of the
+! * comment.
+! */
+! trypos = find_start_comment(ind_maxcomment);
+! if (trypos != NULL)
+! {
+! curwin->w_cursor.lnum = trypos->lnum + 1;
+! curwin->w_cursor.col = 0;
+! continue;
+! }
+!
+! /*
+! * Skip preprocessor directives and blank lines.
+! */
+! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
+! continue;
+
+! if (cin_is_cpp_namespace(l))
+! {
+! amount += ind_cpp_namespace;
+! break;
+! }
+
+! if (cin_nocode(l))
+! continue;
+
+! }
+! else if (lookfor != LOOKFOR_TERM
+! && lookfor != LOOKFOR_CPP_BASECLASS)
+! {
+! amount = scope_amount;
+! if (theline[0] == '{')
+! amount += ind_open_extra;
+ }
+ break;
+ }
+--- 7217,7275 ----
+ else
+ amount += ind_continuation;
+ }
+! else
+ {
+! if (lookfor != LOOKFOR_TERM
+! && lookfor != LOOKFOR_CPP_BASECLASS)
+! {
+! amount = scope_amount;
+! if (theline[0] == '{')
+! {
+! amount += ind_open_extra;
+! added_to_amount = ind_open_extra;
+! }
+! }
+
+! if (lookfor_cpp_namespace)
+! {
+! /*
+! * Looking for C++ namespace, need to look further
+! * back.
+! */
+! if (curwin->w_cursor.lnum == ourscope)
+! continue;
+!
+! if (curwin->w_cursor.lnum == 0
+! || curwin->w_cursor.lnum
+ < ourscope - FIND_NAMESPACE_LIM)
+! break;
+
+! l = ml_get_curline();
+
+! /* If we're in a comment now, skip to the start of
+! * the comment. */
+! trypos = find_start_comment(ind_maxcomment);
+! if (trypos != NULL)
+! {
+! curwin->w_cursor.lnum = trypos->lnum + 1;
+! curwin->w_cursor.col = 0;
+! continue;
+! }
+
+! /* Skip preprocessor directives and blank lines. */
+! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
+! continue;
+
+! /* Finally the actual check for "namespace". */
+! if (cin_is_cpp_namespace(l))
+! {
+! amount += ind_cpp_namespace - added_to_amount;
+! break;
+! }
+
+! if (cin_nocode(l))
+! continue;
+! }
+ }
+ break;
+ }
+*** ../vim-7.3.331/src/testdir/test3.in 2011-07-20 15:09:38.000000000 +0200
+--- src/testdir/test3.in 2011-10-04 17:45:20.000000000 +0200
+***************
+*** 1309,1314 ****
+--- 1309,1328 ----
+ };
+
+ STARTTEST
++ :set cino=(0,gs,hs
++ 2kdd]]=][
++ ENDTEST
++
++ class Foo : public Bar
++ {
++ public:
++ virtual void method1(void) = 0;
++ virtual void method2(int arg1,
++ int arg2,
++ int arg3) = 0;
++ };
++
++ STARTTEST
+ :set cino=+20
+ 2kdd]]=][
+ ENDTEST
+*** ../vim-7.3.331/src/testdir/test3.ok 2011-07-20 15:09:38.000000000 +0200
+--- src/testdir/test3.ok 2011-10-04 17:47:25.000000000 +0200
+***************
+*** 1190,1195 ****
+--- 1190,1205 ----
+ };
+
+
++ class Foo : public Bar
++ {
++ public:
++ virtual void method1(void) = 0;
++ virtual void method2(int arg1,
++ int arg2,
++ int arg3) = 0;
++ };
++
++
+ void
+ foo()
+ {
+*** ../vim-7.3.331/src/version.c 2011-10-04 17:00:13.000000000 +0200
+--- src/version.c 2011-10-04 18:02:17.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 332,
+ /**/
+
+--
+Latest survey shows that 3 out of 4 people make up 75% of the
+world's population.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.333 b/source/ap/vim/patches/7.3.333
new file mode 100644
index 000000000..974b0cda1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.333
@@ -0,0 +1,245 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.333
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.333
+Problem: Using "." to repeat a Visual delete counts the size in bytes, not
+ characters. (Connor Lane Smith)
+Solution: Store the virtual column numbers instead of byte positions.
+Files: src/normal.c
+
+
+*** ../vim-7.3.332/src/normal.c 2011-07-15 17:51:30.000000000 +0200
+--- src/normal.c 2011-10-04 19:47:14.000000000 +0200
+***************
+*** 20,26 ****
+ */
+ static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+ static linenr_T resel_VIsual_line_count; /* number of lines */
+! static colnr_T resel_VIsual_col; /* nr of cols or end col */
+
+ static int restart_VIsual_select = 0;
+ #endif
+--- 20,26 ----
+ */
+ static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+ static linenr_T resel_VIsual_line_count; /* number of lines */
+! static colnr_T resel_VIsual_vcol; /* nr of cols or end col */
+
+ static int restart_VIsual_select = 0;
+ #endif
+***************
+*** 1436,1442 ****
+ /* The visual area is remembered for redo */
+ static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+ static linenr_T redo_VIsual_line_count; /* number of lines */
+! static colnr_T redo_VIsual_col; /* number of cols or end column */
+ static long redo_VIsual_count; /* count for Visual operator */
+ # ifdef FEAT_VIRTUALEDIT
+ int include_line_break = FALSE;
+--- 1436,1442 ----
+ /* The visual area is remembered for redo */
+ static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */
+ static linenr_T redo_VIsual_line_count; /* number of lines */
+! static colnr_T redo_VIsual_vcol; /* number of cols or end column */
+ static long redo_VIsual_count; /* count for Visual operator */
+ # ifdef FEAT_VIRTUALEDIT
+ int include_line_break = FALSE;
+***************
+*** 1549,1570 ****
+ #ifdef FEAT_VISUAL
+ if (redo_VIsual_busy)
+ {
+ oap->start = curwin->w_cursor;
+ curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
+ if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+ curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+ VIsual_mode = redo_VIsual_mode;
+! if (VIsual_mode == 'v')
+ {
+! if (redo_VIsual_line_count <= 1)
+! curwin->w_cursor.col += redo_VIsual_col - 1;
+ else
+! curwin->w_cursor.col = redo_VIsual_col;
+! }
+! if (redo_VIsual_col == MAXCOL)
+! {
+! curwin->w_curswant = MAXCOL;
+! coladvance((colnr_T)MAXCOL);
+ }
+ cap->count0 = redo_VIsual_count;
+ if (redo_VIsual_count != 0)
+--- 1549,1579 ----
+ #ifdef FEAT_VISUAL
+ if (redo_VIsual_busy)
+ {
++ /* Redo of an operation on a Visual area. Use the same size from
++ * redo_VIsual_line_count and redo_VIsual_vcol. */
+ oap->start = curwin->w_cursor;
+ curwin->w_cursor.lnum += redo_VIsual_line_count - 1;
+ if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+ curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+ VIsual_mode = redo_VIsual_mode;
+! if (redo_VIsual_vcol == MAXCOL || VIsual_mode == 'v')
+ {
+! if (VIsual_mode == 'v')
+! {
+! if (redo_VIsual_line_count <= 1)
+! {
+! validate_virtcol();
+! curwin->w_curswant =
+! curwin->w_virtcol + redo_VIsual_vcol - 1;
+! }
+! else
+! curwin->w_curswant = redo_VIsual_vcol;
+! }
+ else
+! {
+! curwin->w_curswant = MAXCOL;
+! }
+! coladvance(curwin->w_curswant);
+ }
+ cap->count0 = redo_VIsual_count;
+ if (redo_VIsual_count != 0)
+***************
+*** 1710,1716 ****
+ }
+ }
+ else if (redo_VIsual_busy)
+! oap->end_vcol = oap->start_vcol + redo_VIsual_col - 1;
+ /*
+ * Correct oap->end.col and oap->start.col to be the
+ * upper-left and lower-right corner of the block area.
+--- 1719,1725 ----
+ }
+ }
+ else if (redo_VIsual_busy)
+! oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1;
+ /*
+ * Correct oap->end.col and oap->start.col to be the
+ * upper-left and lower-right corner of the block area.
+***************
+*** 1735,1747 ****
+ */
+ resel_VIsual_mode = VIsual_mode;
+ if (curwin->w_curswant == MAXCOL)
+! resel_VIsual_col = MAXCOL;
+! else if (VIsual_mode == Ctrl_V)
+! resel_VIsual_col = oap->end_vcol - oap->start_vcol + 1;
+! else if (oap->line_count > 1)
+! resel_VIsual_col = oap->end.col;
+ else
+! resel_VIsual_col = oap->end.col - oap->start.col + 1;
+ resel_VIsual_line_count = oap->line_count;
+ }
+
+--- 1744,1765 ----
+ */
+ resel_VIsual_mode = VIsual_mode;
+ if (curwin->w_curswant == MAXCOL)
+! resel_VIsual_vcol = MAXCOL;
+ else
+! {
+! if (VIsual_mode != Ctrl_V)
+! getvvcol(curwin, &(oap->end),
+! NULL, NULL, &oap->end_vcol);
+! if (VIsual_mode == Ctrl_V || oap->line_count <= 1)
+! {
+! if (VIsual_mode != Ctrl_V)
+! getvvcol(curwin, &(oap->start),
+! &oap->start_vcol, NULL, NULL);
+! resel_VIsual_vcol = oap->end_vcol - oap->start_vcol + 1;
+! }
+! else
+! resel_VIsual_vcol = oap->end_vcol;
+! }
+ resel_VIsual_line_count = oap->line_count;
+ }
+
+***************
+*** 1769,1775 ****
+ if (!redo_VIsual_busy)
+ {
+ redo_VIsual_mode = resel_VIsual_mode;
+! redo_VIsual_col = resel_VIsual_col;
+ redo_VIsual_line_count = resel_VIsual_line_count;
+ redo_VIsual_count = cap->count0;
+ }
+--- 1787,1793 ----
+ if (!redo_VIsual_busy)
+ {
+ redo_VIsual_mode = resel_VIsual_mode;
+! redo_VIsual_vcol = resel_VIsual_vcol;
+ redo_VIsual_line_count = resel_VIsual_line_count;
+ redo_VIsual_count = cap->count0;
+ }
+***************
+*** 7631,7642 ****
+ if (VIsual_mode == 'v')
+ {
+ if (resel_VIsual_line_count <= 1)
+! curwin->w_cursor.col += resel_VIsual_col * cap->count0 - 1;
+ else
+! curwin->w_cursor.col = resel_VIsual_col;
+! check_cursor_col();
+ }
+! if (resel_VIsual_col == MAXCOL)
+ {
+ curwin->w_curswant = MAXCOL;
+ coladvance((colnr_T)MAXCOL);
+--- 7649,7664 ----
+ if (VIsual_mode == 'v')
+ {
+ if (resel_VIsual_line_count <= 1)
+! {
+! validate_virtcol();
+! curwin->w_curswant = curwin->w_virtcol
+! + resel_VIsual_vcol * cap->count0 - 1;
+! }
+ else
+! curwin->w_curswant = resel_VIsual_vcol;
+! coladvance(curwin->w_curswant);
+ }
+! if (resel_VIsual_vcol == MAXCOL)
+ {
+ curwin->w_curswant = MAXCOL;
+ coladvance((colnr_T)MAXCOL);
+***************
+*** 7645,7651 ****
+ {
+ validate_virtcol();
+ curwin->w_curswant = curwin->w_virtcol
+! + resel_VIsual_col * cap->count0 - 1;
+ coladvance(curwin->w_curswant);
+ }
+ else
+--- 7667,7673 ----
+ {
+ validate_virtcol();
+ curwin->w_curswant = curwin->w_virtcol
+! + resel_VIsual_vcol * cap->count0 - 1;
+ coladvance(curwin->w_curswant);
+ }
+ else
+*** ../vim-7.3.332/src/version.c 2011-10-04 18:03:43.000000000 +0200
+--- src/version.c 2011-10-04 21:05:44.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 333,
+ /**/
+
+--
+It was recently discovered that research causes cancer in rats.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.334 b/source/ap/vim/patches/7.3.334
new file mode 100644
index 000000000..85d5b16d2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.334
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.334
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.334
+Problem: Latest MingW about XSUBPP referencing itself. (Gongqian Li)
+Solution: Rename the first use to XSUBPPTRY.
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.3.333/src/Make_ming.mak 2011-09-30 16:56:00.000000000 +0200
+--- src/Make_ming.mak 2011-10-09 14:23:06.000000000 +0200
+***************
+*** 108,117 ****
+ # on NT, it's here:
+ PERLLIB=$(PERL)/lib
+ PERLLIBS=$(PERLLIB)/Core
+! XSUBPP=$(PERLLIB)/ExtUtils/xsubpp
+! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPP)'")
+ ifeq "$(XSUBPP_EXISTS)" ""
+! XSUBPP=perl $(XSUBPP)
+ else
+ XSUBPP=xsubpp
+ endif
+--- 108,117 ----
+ # on NT, it's here:
+ PERLLIB=$(PERL)/lib
+ PERLLIBS=$(PERLLIB)/Core
+! XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp
+! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'")
+ ifeq "$(XSUBPP_EXISTS)" ""
+! XSUBPP=perl $(XSUBPPTRY)
+ else
+ XSUBPP=xsubpp
+ endif
+*** ../vim-7.3.333/src/version.c 2011-10-04 21:22:40.000000000 +0200
+--- src/version.c 2011-10-12 14:10:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 334,
+ /**/
+
+--
+Q: Should I clean my house or work on Vim?
+A: Whatever contains more bugs.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.335 b/source/ap/vim/patches/7.3.335
new file mode 100644
index 000000000..dc1cc5605
--- /dev/null
+++ b/source/ap/vim/patches/7.3.335
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.335
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.335
+Problem: When 'imdisable' is reset from an autocommand in Insert mode it
+ doesn't take effect.
+Solution: Call im_set_active() in Insert mode. (Taro Muraoka)
+Files: src/option.c
+
+
+*** ../vim-7.3.334/src/option.c 2011-09-21 13:40:13.000000000 +0200
+--- src/option.c 2011-10-12 14:09:46.000000000 +0200
+***************
+*** 7806,7811 ****
+--- 7806,7815 ----
+ /* Only de-activate it here, it will be enabled when changing mode. */
+ if (p_imdisable)
+ im_set_active(FALSE);
++ else if (State & INSERT)
++ /* When the option is set from an autocommand, it may need to take
++ * effect right away. */
++ im_set_active(curbuf->b_p_iminsert == B_IMODE_IM);
+ }
+ #endif
+
+*** ../vim-7.3.334/src/version.c 2011-10-12 14:11:43.000000000 +0200
+--- src/version.c 2011-10-12 16:56:30.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 335,
+ /**/
+
+--
+Time is money. Especially if you make clocks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.336 b/source/ap/vim/patches/7.3.336
new file mode 100644
index 000000000..902f578c3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.336
@@ -0,0 +1,1100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.336
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.336
+Problem: When a tags file specifies an encoding different from 'enc' it
+ may hang and using a pattern doesn't work.
+Solution: Convert the whole line. Continue reading the header after the
+ SORT tag. Add test83. (Yukihiro Nakadaira)
+Files: src/tag.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+ src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+ src/testdir/Make_vms.mms, src/testdir/Makefile,
+ src/testdir/test83-tags2, src/testdir/test83-tags3,
+ src/testdir/test83.in, src/testdir/test83.ok
+
+
+*** ../vim-7.3.335/src/tag.c 2011-04-11 21:35:03.000000000 +0200
+--- src/tag.c 2011-10-12 19:51:04.000000000 +0200
+***************
+*** 1277,1282 ****
+--- 1277,1283 ----
+ {
+ FILE *fp;
+ char_u *lbuf; /* line buffer */
++ int lbuf_size = LSIZE; /* length of lbuf */
+ char_u *tag_fname; /* name of tag file */
+ tagname_T tn; /* info for get_tagfname() */
+ int first_file; /* trying first tag file */
+***************
+*** 1291,1296 ****
+--- 1292,1298 ----
+ char_u *s;
+ int i;
+ #ifdef FEAT_TAG_BINS
++ int tag_file_sorted = NUL; /* !_TAG_FILE_SORTED value */
+ struct tag_search_info /* Binary search file offsets */
+ {
+ off_t low_offset; /* offset for first char of first line that
+***************
+*** 1360,1372 ****
+ char_u *saved_pat = NULL; /* copy of pat[] */
+ #endif
+
+- /* Use two sets of variables for the pattern: "orgpat" holds the values
+- * for the original pattern and "convpat" converted from 'encoding' to
+- * encoding of the tags file. "pats" point to either one of these. */
+- pat_T *pats;
+ pat_T orgpat; /* holds unconverted pattern info */
+ #ifdef FEAT_MBYTE
+- pat_T convpat; /* holds converted pattern info */
+ vimconv_T vimconv;
+ #endif
+
+--- 1362,1369 ----
+***************
+*** 1390,1396 ****
+
+ help_save = curbuf->b_help;
+ orgpat.pat = pat;
+- pats = &orgpat;
+ #ifdef FEAT_MBYTE
+ vimconv.vc_type = CONV_NONE;
+ #endif
+--- 1387,1392 ----
+***************
+*** 1398,1404 ****
+ /*
+ * Allocate memory for the buffers that are used
+ */
+! lbuf = alloc(LSIZE);
+ tag_fname = alloc(MAXPATHL + 1);
+ #ifdef FEAT_EMACS_TAGS
+ ebuf = alloc(LSIZE);
+--- 1394,1400 ----
+ /*
+ * Allocate memory for the buffers that are used
+ */
+! lbuf = alloc(lbuf_size);
+ tag_fname = alloc(MAXPATHL + 1);
+ #ifdef FEAT_EMACS_TAGS
+ ebuf = alloc(LSIZE);
+***************
+*** 1424,1453 ****
+ if (help_only) /* want tags from help file */
+ curbuf->b_help = TRUE; /* will be restored later */
+
+! pats->len = (int)STRLEN(pat);
+ #ifdef FEAT_MULTI_LANG
+ if (curbuf->b_help)
+ {
+ /* When "@ab" is specified use only the "ab" language, otherwise
+ * search all languages. */
+! if (pats->len > 3 && pat[pats->len - 3] == '@'
+! && ASCII_ISALPHA(pat[pats->len - 2])
+! && ASCII_ISALPHA(pat[pats->len - 1]))
+ {
+! saved_pat = vim_strnsave(pat, pats->len - 3);
+ if (saved_pat != NULL)
+ {
+! help_lang_find = &pat[pats->len - 2];
+! pats->pat = saved_pat;
+! pats->len -= 3;
+ }
+ }
+ }
+ #endif
+! if (p_tl != 0 && pats->len > p_tl) /* adjust for 'taglength' */
+! pats->len = p_tl;
+
+! prepare_pats(pats, has_re);
+
+ #ifdef FEAT_TAG_BINS
+ /* This is only to avoid a compiler warning for using search_info
+--- 1420,1449 ----
+ if (help_only) /* want tags from help file */
+ curbuf->b_help = TRUE; /* will be restored later */
+
+! orgpat.len = (int)STRLEN(pat);
+ #ifdef FEAT_MULTI_LANG
+ if (curbuf->b_help)
+ {
+ /* When "@ab" is specified use only the "ab" language, otherwise
+ * search all languages. */
+! if (orgpat.len > 3 && pat[orgpat.len - 3] == '@'
+! && ASCII_ISALPHA(pat[orgpat.len - 2])
+! && ASCII_ISALPHA(pat[orgpat.len - 1]))
+ {
+! saved_pat = vim_strnsave(pat, orgpat.len - 3);
+ if (saved_pat != NULL)
+ {
+! help_lang_find = &pat[orgpat.len - 2];
+! orgpat.pat = saved_pat;
+! orgpat.len -= 3;
+ }
+ }
+ }
+ #endif
+! if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */
+! orgpat.len = p_tl;
+
+! prepare_pats(&orgpat, has_re);
+
+ #ifdef FEAT_TAG_BINS
+ /* This is only to avoid a compiler warning for using search_info
+***************
+*** 1466,1478 ****
+ * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
+ */
+ #ifdef FEAT_TAG_BINS
+! pats->regmatch.rm_ic = ((p_ic || !noic)
+! && (findall || pats->headlen == 0 || !p_tbs));
+ for (round = 1; round <= 2; ++round)
+ {
+! linear = (pats->headlen == 0 || !p_tbs || round == 2);
+ #else
+! pats->regmatch.rm_ic = (p_ic || !noic);
+ #endif
+
+ /*
+--- 1462,1474 ----
+ * Only ignore case when TAG_NOIC not used or 'ignorecase' set.
+ */
+ #ifdef FEAT_TAG_BINS
+! orgpat.regmatch.rm_ic = ((p_ic || !noic)
+! && (findall || orgpat.headlen == 0 || !p_tbs));
+ for (round = 1; round <= 2; ++round)
+ {
+! linear = (orgpat.headlen == 0 || !p_tbs || round == 2);
+ #else
+! orgpat.regmatch.rm_ic = (p_ic || !noic);
+ #endif
+
+ /*
+***************
+*** 1701,1706 ****
+--- 1697,1732 ----
+ }
+ line_read_in:
+
++ #ifdef FEAT_MBYTE
++ if (vimconv.vc_type != CONV_NONE)
++ {
++ char_u *conv_line;
++ int len;
++
++ /* Convert every line. Converting the pattern from 'enc' to
++ * the tags file encoding doesn't work, because characters are
++ * not recognized. */
++ conv_line = string_convert(&vimconv, lbuf, NULL);
++ if (conv_line != NULL)
++ {
++ /* Copy or swap lbuf and conv_line. */
++ len = (int)STRLEN(conv_line) + 1;
++ if (len > lbuf_size)
++ {
++ vim_free(lbuf);
++ lbuf = conv_line;
++ lbuf_size = len;
++ }
++ else
++ {
++ STRCPY(lbuf, conv_line);
++ vim_free(conv_line);
++ }
++ }
++ }
++ #endif
++
++
+ #ifdef FEAT_EMACS_TAGS
+ /*
+ * Emacs tags line with CTRL-L: New file name on next line.
+***************
+*** 1770,1775 ****
+--- 1796,1828 ----
+ */
+ if (state == TS_START)
+ {
++ if (STRNCMP(lbuf, "!_TAG_", 6) <= 0)
++ {
++ /*
++ * Read header line.
++ */
++ #ifdef FEAT_TAG_BINS
++ if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
++ tag_file_sorted = lbuf[18];
++ #endif
++ #ifdef FEAT_MBYTE
++ if (STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
++ {
++ /* Prepare to convert every line from the specified
++ * encoding to 'encoding'. */
++ for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
++ ;
++ *p = NUL;
++ convert_setup(&vimconv, lbuf + 20, p_enc);
++ }
++ #endif
++
++ /* Read the next line. Unrecognized flags are ignored. */
++ continue;
++ }
++
++ /* Headers ends. */
++
+ #ifdef FEAT_TAG_BINS
+ /*
+ * When there is no tag head, or ignoring case, need to do a
+***************
+*** 1786,1809 ****
+ if (linear)
+ # endif
+ state = TS_LINEAR;
+! else if (STRNCMP(lbuf, "!_TAG_", 6) > 0)
+ state = TS_BINARY;
+! else if (STRNCMP(lbuf, "!_TAG_FILE_SORTED\t", 18) == 0)
+! {
+! /* Check sorted flag */
+! if (lbuf[18] == '1')
+ state = TS_BINARY;
+! else if (lbuf[18] == '2')
+! {
+! state = TS_BINARY;
+! sortic = TRUE;
+! pats->regmatch.rm_ic = (p_ic || !noic);
+! }
+! else
+! state = TS_LINEAR;
+ }
+
+! if (state == TS_BINARY && pats->regmatch.rm_ic && !sortic)
+ {
+ /* binary search won't work for ignoring case, use linear
+ * search. */
+--- 1839,1858 ----
+ if (linear)
+ # endif
+ state = TS_LINEAR;
+! else if (tag_file_sorted == NUL)
+ state = TS_BINARY;
+! else if (tag_file_sorted == '1')
+ state = TS_BINARY;
+! else if (tag_file_sorted == '2')
+! {
+! state = TS_BINARY;
+! sortic = TRUE;
+! orgpat.regmatch.rm_ic = (p_ic || !noic);
+ }
++ else
++ state = TS_LINEAR;
+
+! if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+ {
+ /* binary search won't work for ignoring case, use linear
+ * search. */
+***************
+*** 1843,1882 ****
+ #endif
+ }
+
+- #ifdef FEAT_MBYTE
+- if (lbuf[0] == '!' && pats == &orgpat
+- && STRNCMP(lbuf, "!_TAG_FILE_ENCODING\t", 20) == 0)
+- {
+- /* Convert the search pattern from 'encoding' to the
+- * specified encoding. */
+- for (p = lbuf + 20; *p > ' ' && *p < 127; ++p)
+- ;
+- *p = NUL;
+- convert_setup(&vimconv, p_enc, lbuf + 20);
+- if (vimconv.vc_type != CONV_NONE)
+- {
+- convpat.pat = string_convert(&vimconv, pats->pat, NULL);
+- if (convpat.pat != NULL)
+- {
+- pats = &convpat;
+- pats->len = (int)STRLEN(pats->pat);
+- prepare_pats(pats, has_re);
+- pats->regmatch.rm_ic = orgpat.regmatch.rm_ic;
+- }
+- }
+-
+- /* Prepare for converting a match the other way around. */
+- convert_setup(&vimconv, lbuf + 20, p_enc);
+- continue;
+- }
+- #endif
+-
+ /*
+ * Figure out where the different strings are in this line.
+ * For "normal" tags: Do a quick check if the tag matches.
+ * This speeds up tag searching a lot!
+ */
+! if (pats->headlen
+ #ifdef FEAT_EMACS_TAGS
+ && !is_etag
+ #endif
+--- 1892,1903 ----
+ #endif
+ }
+
+ /*
+ * Figure out where the different strings are in this line.
+ * For "normal" tags: Do a quick check if the tag matches.
+ * This speeds up tag searching a lot!
+ */
+! if (orgpat.headlen
+ #ifdef FEAT_EMACS_TAGS
+ && !is_etag
+ #endif
+***************
+*** 1933,1941 ****
+ cmplen = (int)(tagp.tagname_end - tagp.tagname);
+ if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
+ cmplen = p_tl;
+! if (has_re && pats->headlen < cmplen)
+! cmplen = pats->headlen;
+! else if (state == TS_LINEAR && pats->headlen != cmplen)
+ continue;
+
+ #ifdef FEAT_TAG_BINS
+--- 1954,1962 ----
+ cmplen = (int)(tagp.tagname_end - tagp.tagname);
+ if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
+ cmplen = p_tl;
+! if (has_re && orgpat.headlen < cmplen)
+! cmplen = orgpat.headlen;
+! else if (state == TS_LINEAR && orgpat.headlen != cmplen)
+ continue;
+
+ #ifdef FEAT_TAG_BINS
+***************
+*** 1954,1963 ****
+ * Compare the current tag with the searched tag.
+ */
+ if (sortic)
+! tagcmp = tag_strnicmp(tagp.tagname, pats->head,
+ (size_t)cmplen);
+ else
+! tagcmp = STRNCMP(tagp.tagname, pats->head, cmplen);
+
+ /*
+ * A match with a shorter tag means to search forward.
+--- 1975,1984 ----
+ * Compare the current tag with the searched tag.
+ */
+ if (sortic)
+! tagcmp = tag_strnicmp(tagp.tagname, orgpat.head,
+ (size_t)cmplen);
+ else
+! tagcmp = STRNCMP(tagp.tagname, orgpat.head, cmplen);
+
+ /*
+ * A match with a shorter tag means to search forward.
+***************
+*** 1965,1973 ****
+ */
+ if (tagcmp == 0)
+ {
+! if (cmplen < pats->headlen)
+ tagcmp = -1;
+! else if (cmplen > pats->headlen)
+ tagcmp = 1;
+ }
+
+--- 1986,1994 ----
+ */
+ if (tagcmp == 0)
+ {
+! if (cmplen < orgpat.headlen)
+ tagcmp = -1;
+! else if (cmplen > orgpat.headlen)
+ tagcmp = 1;
+ }
+
+***************
+*** 2011,2017 ****
+ }
+ else if (state == TS_SKIP_BACK)
+ {
+! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+ state = TS_STEP_FORWARD;
+ else
+ /* Have to skip back more. Restore the curr_offset
+--- 2032,2038 ----
+ }
+ else if (state == TS_SKIP_BACK)
+ {
+! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+ state = TS_STEP_FORWARD;
+ else
+ /* Have to skip back more. Restore the curr_offset
+***************
+*** 2021,2027 ****
+ }
+ else if (state == TS_STEP_FORWARD)
+ {
+! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+ {
+ if ((off_t)ftell(fp) > search_info.match_offset)
+ break; /* past last match */
+--- 2042,2048 ----
+ }
+ else if (state == TS_STEP_FORWARD)
+ {
+! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+ {
+ if ((off_t)ftell(fp) > search_info.match_offset)
+ break; /* past last match */
+***************
+*** 2032,2038 ****
+ else
+ #endif
+ /* skip this match if it can't match */
+! if (MB_STRNICMP(tagp.tagname, pats->head, cmplen) != 0)
+ continue;
+
+ /*
+--- 2053,2059 ----
+ else
+ #endif
+ /* skip this match if it can't match */
+! if (MB_STRNICMP(tagp.tagname, orgpat.head, cmplen) != 0)
+ continue;
+
+ /*
+***************
+*** 2083,2123 ****
+ if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
+ cmplen = p_tl;
+ /* if tag length does not match, don't try comparing */
+! if (pats->len != cmplen)
+ match = FALSE;
+ else
+ {
+! if (pats->regmatch.rm_ic)
+ {
+! match = (MB_STRNICMP(tagp.tagname, pats->pat, cmplen) == 0);
+ if (match)
+! match_no_ic = (STRNCMP(tagp.tagname, pats->pat,
+ cmplen) == 0);
+ }
+ else
+! match = (STRNCMP(tagp.tagname, pats->pat, cmplen) == 0);
+ }
+
+ /*
+ * Has a regexp: Also find tags matching regexp.
+ */
+ match_re = FALSE;
+! if (!match && pats->regmatch.regprog != NULL)
+ {
+ int cc;
+
+ cc = *tagp.tagname_end;
+ *tagp.tagname_end = NUL;
+! match = vim_regexec(&pats->regmatch, tagp.tagname, (colnr_T)0);
+ if (match)
+ {
+! matchoff = (int)(pats->regmatch.startp[0] - tagp.tagname);
+! if (pats->regmatch.rm_ic)
+ {
+! pats->regmatch.rm_ic = FALSE;
+! match_no_ic = vim_regexec(&pats->regmatch, tagp.tagname,
+ (colnr_T)0);
+! pats->regmatch.rm_ic = TRUE;
+ }
+ }
+ *tagp.tagname_end = cc;
+--- 2104,2144 ----
+ if (p_tl != 0 && cmplen > p_tl) /* adjust for 'taglength' */
+ cmplen = p_tl;
+ /* if tag length does not match, don't try comparing */
+! if (orgpat.len != cmplen)
+ match = FALSE;
+ else
+ {
+! if (orgpat.regmatch.rm_ic)
+ {
+! match = (MB_STRNICMP(tagp.tagname, orgpat.pat, cmplen) == 0);
+ if (match)
+! match_no_ic = (STRNCMP(tagp.tagname, orgpat.pat,
+ cmplen) == 0);
+ }
+ else
+! match = (STRNCMP(tagp.tagname, orgpat.pat, cmplen) == 0);
+ }
+
+ /*
+ * Has a regexp: Also find tags matching regexp.
+ */
+ match_re = FALSE;
+! if (!match && orgpat.regmatch.regprog != NULL)
+ {
+ int cc;
+
+ cc = *tagp.tagname_end;
+ *tagp.tagname_end = NUL;
+! match = vim_regexec(&orgpat.regmatch, tagp.tagname, (colnr_T)0);
+ if (match)
+ {
+! matchoff = (int)(orgpat.regmatch.startp[0] - tagp.tagname);
+! if (orgpat.regmatch.rm_ic)
+ {
+! orgpat.regmatch.rm_ic = FALSE;
+! match_no_ic = vim_regexec(&orgpat.regmatch, tagp.tagname,
+ (colnr_T)0);
+! orgpat.regmatch.rm_ic = TRUE;
+ }
+ }
+ *tagp.tagname_end = cc;
+***************
+*** 2174,2180 ****
+ else
+ mtt = MT_GL_OTH;
+ }
+! if (pats->regmatch.rm_ic && !match_no_ic)
+ mtt += MT_IC_OFF;
+ if (match_re)
+ mtt += MT_RE_OFF;
+--- 2195,2201 ----
+ else
+ mtt = MT_GL_OTH;
+ }
+! if (orgpat.regmatch.rm_ic && !match_no_ic)
+ mtt += MT_IC_OFF;
+ if (match_re)
+ mtt += MT_RE_OFF;
+***************
+*** 2187,2221 ****
+ */
+ if (ga_grow(&ga_match[mtt], 1) == OK)
+ {
+- #ifdef FEAT_MBYTE
+- char_u *conv_line = NULL;
+- char_u *lbuf_line = lbuf;
+-
+- if (vimconv.vc_type != CONV_NONE)
+- {
+- /* Convert the tag line from the encoding of the tags
+- * file to 'encoding'. Then parse the line again. */
+- conv_line = string_convert(&vimconv, lbuf, NULL);
+- if (conv_line != NULL)
+- {
+- if (parse_tag_line(conv_line,
+- #ifdef FEAT_EMACS_TAGS
+- is_etag,
+- #endif
+- &tagp) == OK)
+- lbuf_line = conv_line;
+- else
+- /* doesn't work, go back to unconverted line. */
+- (void)parse_tag_line(lbuf,
+- #ifdef FEAT_EMACS_TAGS
+- is_etag,
+- #endif
+- &tagp);
+- }
+- }
+- #else
+- # define lbuf_line lbuf
+- #endif
+ if (help_only)
+ {
+ #ifdef FEAT_MULTI_LANG
+--- 2208,2213 ----
+***************
+*** 2307,2313 ****
+ * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
+ */
+ len = (int)STRLEN(tag_fname)
+! + (int)STRLEN(lbuf_line) + 3;
+ #ifdef FEAT_EMACS_TAGS
+ if (is_etag)
+ len += (int)STRLEN(ebuf) + 1;
+--- 2299,2305 ----
+ * without Emacs tags: <mtt><tag_fname><NUL><lbuf>
+ */
+ len = (int)STRLEN(tag_fname)
+! + (int)STRLEN(lbuf) + 3;
+ #ifdef FEAT_EMACS_TAGS
+ if (is_etag)
+ len += (int)STRLEN(ebuf) + 1;
+***************
+*** 2337,2343 ****
+ else
+ *s++ = NUL;
+ #endif
+! STRCPY(s, lbuf_line);
+ }
+ }
+
+--- 2329,2335 ----
+ else
+ *s++ = NUL;
+ #endif
+! STRCPY(s, lbuf);
+ }
+ }
+
+***************
+*** 2373,2382 ****
+ else
+ vim_free(mfp);
+ }
+- #ifdef FEAT_MBYTE
+- /* Note: this makes the values in "tagp" invalid! */
+- vim_free(conv_line);
+- #endif
+ }
+ else /* Out of memory! Just forget about the rest. */
+ {
+--- 2365,2370 ----
+***************
+*** 2415,2433 ****
+ }
+ #endif
+ #ifdef FEAT_MBYTE
+- if (pats == &convpat)
+- {
+- /* Go back from converted pattern to original pattern. */
+- vim_free(pats->pat);
+- vim_free(pats->regmatch.regprog);
+- orgpat.regmatch.rm_ic = pats->regmatch.rm_ic;
+- pats = &orgpat;
+- }
+ if (vimconv.vc_type != CONV_NONE)
+ convert_setup(&vimconv, NULL, NULL);
+ #endif
+
+ #ifdef FEAT_TAG_BINS
+ if (sort_error)
+ {
+ EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
+--- 2403,2414 ----
+ }
+ #endif
+ #ifdef FEAT_MBYTE
+ if (vimconv.vc_type != CONV_NONE)
+ convert_setup(&vimconv, NULL, NULL);
+ #endif
+
+ #ifdef FEAT_TAG_BINS
++ tag_file_sorted = NUL;
+ if (sort_error)
+ {
+ EMSG2(_("E432: Tags file not sorted: %s"), tag_fname);
+***************
+*** 2461,2473 ****
+ #ifdef FEAT_TAG_BINS
+ /* stop searching when already did a linear search, or when TAG_NOIC
+ * used, and 'ignorecase' not set or already did case-ignore search */
+! if (stop_searching || linear || (!p_ic && noic) || pats->regmatch.rm_ic)
+ break;
+ # ifdef FEAT_CSCOPE
+ if (use_cscope)
+ break;
+ # endif
+! pats->regmatch.rm_ic = TRUE; /* try another time while ignoring case */
+ }
+ #endif
+
+--- 2442,2454 ----
+ #ifdef FEAT_TAG_BINS
+ /* stop searching when already did a linear search, or when TAG_NOIC
+ * used, and 'ignorecase' not set or already did case-ignore search */
+! if (stop_searching || linear || (!p_ic && noic) || orgpat.regmatch.rm_ic)
+ break;
+ # ifdef FEAT_CSCOPE
+ if (use_cscope)
+ break;
+ # endif
+! orgpat.regmatch.rm_ic = TRUE; /* try another time while ignoring case */
+ }
+ #endif
+
+***************
+*** 2480,2486 ****
+
+ findtag_end:
+ vim_free(lbuf);
+! vim_free(pats->regmatch.regprog);
+ vim_free(tag_fname);
+ #ifdef FEAT_EMACS_TAGS
+ vim_free(ebuf);
+--- 2461,2467 ----
+
+ findtag_end:
+ vim_free(lbuf);
+! vim_free(orgpat.regmatch.regprog);
+ vim_free(tag_fname);
+ #ifdef FEAT_EMACS_TAGS
+ vim_free(ebuf);
+*** ../vim-7.3.335/src/testdir/Make_amiga.mak 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_amiga.mak 2011-10-12 19:21:00.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 131,133 ****
+--- 131,134 ----
+ test80.out: test80.in
+ test81.out: test81.in
+ test82.out: test82.in
++ test83.out: test83.in
+*** ../vim-7.3.335/src/testdir/Make_dos.mak 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_dos.mak 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 29,35 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 29,35 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.335/src/testdir/Make_ming.mak 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_ming.mak 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 49,55 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 49,55 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.335/src/testdir/Make_os2.mak 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_os2.mak 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.3.335/src/testdir/Make_vms.mms 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Make_vms.mms 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 76,82 ****
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+ test77.out test78.out test79.out test80.out test81.out \
+! test82.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 76,82 ----
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+ test77.out test78.out test79.out test80.out test81.out \
+! test82.out test83.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.335/src/testdir/Makefile 2011-07-15 21:16:54.000000000 +0200
+--- src/testdir/Makefile 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 26,32 ****
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 26,32 ----
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS_GUI = test16.out
+
+***************
+*** 72,78 ****
+ fi \
+ else echo $* NO OUTPUT >>test.log; \
+ fi"
+! -rm -rf X* test.ok viminfo
+
+ test49.out: test49.vim
+
+--- 72,78 ----
+ fi \
+ else echo $* NO OUTPUT >>test.log; \
+ fi"
+! # -rm -rf X* test.ok viminfo
+
+ test49.out: test49.vim
+
+*** ../vim-7.3.335/src/testdir/test83-tags2 2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83-tags2 2011-10-12 19:34:15.000000000 +0200
+***************
+*** 0 ****
+--- 1,2 ----
++ !_TAG_FILE_ENCODING cp932 //
++ ‚`‚a‚b Xtags2.txt /‚`‚a‚b
+*** ../vim-7.3.335/src/testdir/test83-tags3 2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83-tags3 2011-10-12 19:35:42.000000000 +0200
+***************
+*** 0 ****
+--- 1,102 ----
++ !_TAG_FILE_SORTED 1 //
++ !_TAG_FILE_ENCODING cp932 //
++ abc1 Xtags3.txt /‚`‚a‚b
++ abc2 Xtags3.txt /‚`‚a‚b
++ abc3 Xtags3.txt /‚`‚a‚b
++ abc4 Xtags3.txt /‚`‚a‚b
++ abc5 Xtags3.txt /‚`‚a‚b
++ abc6 Xtags3.txt /‚`‚a‚b
++ abc7 Xtags3.txt /‚`‚a‚b
++ abc8 Xtags3.txt /‚`‚a‚b
++ abc9 Xtags3.txt /‚`‚a‚b
++ abc10 Xtags3.txt /‚`‚a‚b
++ abc11 Xtags3.txt /‚`‚a‚b
++ abc12 Xtags3.txt /‚`‚a‚b
++ abc13 Xtags3.txt /‚`‚a‚b
++ abc14 Xtags3.txt /‚`‚a‚b
++ abc15 Xtags3.txt /‚`‚a‚b
++ abc16 Xtags3.txt /‚`‚a‚b
++ abc17 Xtags3.txt /‚`‚a‚b
++ abc18 Xtags3.txt /‚`‚a‚b
++ abc19 Xtags3.txt /‚`‚a‚b
++ abc20 Xtags3.txt /‚`‚a‚b
++ abc21 Xtags3.txt /‚`‚a‚b
++ abc22 Xtags3.txt /‚`‚a‚b
++ abc23 Xtags3.txt /‚`‚a‚b
++ abc24 Xtags3.txt /‚`‚a‚b
++ abc25 Xtags3.txt /‚`‚a‚b
++ abc26 Xtags3.txt /‚`‚a‚b
++ abc27 Xtags3.txt /‚`‚a‚b
++ abc28 Xtags3.txt /‚`‚a‚b
++ abc29 Xtags3.txt /‚`‚a‚b
++ abc30 Xtags3.txt /‚`‚a‚b
++ abc31 Xtags3.txt /‚`‚a‚b
++ abc32 Xtags3.txt /‚`‚a‚b
++ abc33 Xtags3.txt /‚`‚a‚b
++ abc34 Xtags3.txt /‚`‚a‚b
++ abc35 Xtags3.txt /‚`‚a‚b
++ abc36 Xtags3.txt /‚`‚a‚b
++ abc37 Xtags3.txt /‚`‚a‚b
++ abc38 Xtags3.txt /‚`‚a‚b
++ abc39 Xtags3.txt /‚`‚a‚b
++ abc40 Xtags3.txt /‚`‚a‚b
++ abc41 Xtags3.txt /‚`‚a‚b
++ abc42 Xtags3.txt /‚`‚a‚b
++ abc43 Xtags3.txt /‚`‚a‚b
++ abc44 Xtags3.txt /‚`‚a‚b
++ abc45 Xtags3.txt /‚`‚a‚b
++ abc46 Xtags3.txt /‚`‚a‚b
++ abc47 Xtags3.txt /‚`‚a‚b
++ abc48 Xtags3.txt /‚`‚a‚b
++ abc49 Xtags3.txt /‚`‚a‚b
++ abc50 Xtags3.txt /‚`‚a‚b
++ abc51 Xtags3.txt /‚`‚a‚b
++ abc52 Xtags3.txt /‚`‚a‚b
++ abc53 Xtags3.txt /‚`‚a‚b
++ abc54 Xtags3.txt /‚`‚a‚b
++ abc55 Xtags3.txt /‚`‚a‚b
++ abc56 Xtags3.txt /‚`‚a‚b
++ abc57 Xtags3.txt /‚`‚a‚b
++ abc58 Xtags3.txt /‚`‚a‚b
++ abc59 Xtags3.txt /‚`‚a‚b
++ abc60 Xtags3.txt /‚`‚a‚b
++ abc61 Xtags3.txt /‚`‚a‚b
++ abc62 Xtags3.txt /‚`‚a‚b
++ abc63 Xtags3.txt /‚`‚a‚b
++ abc64 Xtags3.txt /‚`‚a‚b
++ abc65 Xtags3.txt /‚`‚a‚b
++ abc66 Xtags3.txt /‚`‚a‚b
++ abc67 Xtags3.txt /‚`‚a‚b
++ abc68 Xtags3.txt /‚`‚a‚b
++ abc69 Xtags3.txt /‚`‚a‚b
++ abc70 Xtags3.txt /‚`‚a‚b
++ abc71 Xtags3.txt /‚`‚a‚b
++ abc72 Xtags3.txt /‚`‚a‚b
++ abc73 Xtags3.txt /‚`‚a‚b
++ abc74 Xtags3.txt /‚`‚a‚b
++ abc75 Xtags3.txt /‚`‚a‚b
++ abc76 Xtags3.txt /‚`‚a‚b
++ abc77 Xtags3.txt /‚`‚a‚b
++ abc78 Xtags3.txt /‚`‚a‚b
++ abc79 Xtags3.txt /‚`‚a‚b
++ abc80 Xtags3.txt /‚`‚a‚b
++ abc81 Xtags3.txt /‚`‚a‚b
++ abc82 Xtags3.txt /‚`‚a‚b
++ abc83 Xtags3.txt /‚`‚a‚b
++ abc84 Xtags3.txt /‚`‚a‚b
++ abc85 Xtags3.txt /‚`‚a‚b
++ abc86 Xtags3.txt /‚`‚a‚b
++ abc87 Xtags3.txt /‚`‚a‚b
++ abc88 Xtags3.txt /‚`‚a‚b
++ abc89 Xtags3.txt /‚`‚a‚b
++ abc90 Xtags3.txt /‚`‚a‚b
++ abc91 Xtags3.txt /‚`‚a‚b
++ abc92 Xtags3.txt /‚`‚a‚b
++ abc93 Xtags3.txt /‚`‚a‚b
++ abc94 Xtags3.txt /‚`‚a‚b
++ abc95 Xtags3.txt /‚`‚a‚b
++ abc96 Xtags3.txt /‚`‚a‚b
++ abc97 Xtags3.txt /‚`‚a‚b
++ abc98 Xtags3.txt /‚`‚a‚b
++ abc99 Xtags3.txt /‚`‚a‚b
++ abc100 Xtags3.txt /‚`‚a‚b
+*** ../vim-7.3.335/src/testdir/test83.in 2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83.in 2011-10-12 19:40:47.000000000 +0200
+***************
+*** 0 ****
+--- 1,76 ----
++ Tests for tag search with !_TAG_FILE_ENCODING.
++
++ STARTTEST
++ :so mbyte.vim
++ :if !has('iconv')
++ : e! test.ok
++ : w! test.out
++ : qa!
++ :endif
++ :set enc=utf8
++
++ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
++ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
++ :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
++ :/^tags1$/+1,/^tags1-end$/-1w! Xtags1
++
++ ggdG
++
++ :call setline('.', 'Results of test83')
++
++ :" case1:
++ :new
++ :set tags=Xtags1
++ :let v:errmsg = ''
++ :tag abcdefghijklmnopqrs
++ :if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
++ : close
++ : put ='case1: failed'
++ :else
++ : close
++ : put ='case1: ok'
++ :endif
++
++ :" case2:
++ :new
++ :set tags=test83-tags2
++ :let v:errmsg = ''
++ :tag /.BC
++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
++ : close
++ : put ='case2: failed'
++ :else
++ : close
++ : put ='case2: ok'
++ :endif
++
++ :" case3:
++ :new
++ :set tags=test83-tags3
++ :let v:errmsg = ''
++ :tag abc50
++ :if v:errmsg =~ 'E426:' || getline('.') != 'ABC'
++ : close
++ : put ='case3: failed'
++ :else
++ : close
++ : put ='case3: ok'
++ :endif
++ :close
++
++ :wq! test.out
++ ENDTEST
++
++ text for tags1
++ abcdefghijklmnopqrs
++
++ text for tags2
++ ABC
++
++ text for tags3
++ ABC
++
++ tags1
++ !_TAG_FILE_ENCODING utf-8 //
++ abcdefghijklmnopqrs Xtags1.txt /abcdefghijklmnopqrs
++ tags1-end
+*** ../vim-7.3.335/src/testdir/test83.ok 2011-10-12 19:49:38.000000000 +0200
+--- src/testdir/test83.ok 2011-10-12 17:39:03.000000000 +0200
+***************
+*** 0 ****
+--- 1,4 ----
++ Results of test83
++ case1: ok
++ case2: ok
++ case3: ok
+*** ../vim-7.3.335/src/version.c 2011-10-12 16:57:07.000000000 +0200
+--- src/version.c 2011-10-12 19:45:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 336,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+62. If your doorbell rings, you think that new mail has arrived. And then
+ you're disappointed that it's only someone at the door.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.337 b/source/ap/vim/patches/7.3.337
new file mode 100644
index 000000000..a2aeb04fe
--- /dev/null
+++ b/source/ap/vim/patches/7.3.337
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.337
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.337 (after 7.3.295)
+Problem: Screen doesn't update after resizing the xterm until a character
+ is typed.
+Solution: When the select call is interrupted check do_resize. (Taylor
+ Hedberg)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.336/src/os_unix.c 2011-09-08 23:24:09.000000000 +0200
+--- src/os_unix.c 2011-10-12 20:57:15.000000000 +0200
+***************
+*** 5146,5156 ****
+--- 5146,5163 ----
+ # endif
+ # ifdef EINTR
+ if (ret == -1 && errno == EINTR)
++ {
++ /* Check whether window has been resized, EINTR may be caused by
++ * SIGWINCH. */
++ if (do_resize)
++ handle_resize();
++
+ /* Interrupted by a signal, need to try again. We ignore msec
+ * here, because we do want to check even after a timeout if
+ * characters are available. Needed for reading output of an
+ * external command after the process has finished. */
+ goto select_eintr;
++ }
+ # endif
+ # ifdef __TANDEM
+ if (ret == -1 && errno == ENOTSUP)
+*** ../vim-7.3.336/src/version.c 2011-10-12 19:53:31.000000000 +0200
+--- src/version.c 2011-10-12 21:03:47.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 337,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+64. The remote to the T.V. is missing...and you don't even care.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.338 b/source/ap/vim/patches/7.3.338
new file mode 100644
index 000000000..f273212ac
--- /dev/null
+++ b/source/ap/vim/patches/7.3.338
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.338
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.338
+Problem: Using getchar() in an expression mapping doesn't work well.
+Solution: Don't save and restore the typeahead. (James Vega)
+Files: src/getchar.c, src/testdir/test34.ok
+
+
+*** ../vim-7.3.337/src/getchar.c 2011-08-17 20:33:18.000000000 +0200
+--- src/getchar.c 2011-10-12 21:53:27.000000000 +0200
+***************
+*** 2460,2486 ****
+
+ /*
+ * Handle ":map <expr>": evaluate the {rhs} as an
+! * expression. Save and restore the typeahead so that
+! * getchar() can be used. Also save and restore the
+! * command line for "normal :".
+ */
+ if (mp->m_expr)
+ {
+- tasave_T tabuf;
+ int save_vgetc_busy = vgetc_busy;
+
+! save_typeahead(&tabuf);
+! if (tabuf.typebuf_valid)
+! {
+! vgetc_busy = 0;
+! save_m_keys = vim_strsave(mp->m_keys);
+! save_m_str = vim_strsave(mp->m_str);
+! s = eval_map_expr(save_m_str, NUL);
+! vgetc_busy = save_vgetc_busy;
+! }
+! else
+! s = NULL;
+! restore_typeahead(&tabuf);
+ }
+ else
+ #endif
+--- 2460,2477 ----
+
+ /*
+ * Handle ":map <expr>": evaluate the {rhs} as an
+! * expression. Also save and restore the command line
+! * for "normal :".
+ */
+ if (mp->m_expr)
+ {
+ int save_vgetc_busy = vgetc_busy;
+
+! vgetc_busy = 0;
+! save_m_keys = vim_strsave(mp->m_keys);
+! save_m_str = vim_strsave(mp->m_str);
+! s = eval_map_expr(save_m_str, NUL);
+! vgetc_busy = save_vgetc_busy;
+ }
+ else
+ #endif
+*** ../vim-7.3.337/src/testdir/test34.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test34.ok 2011-10-12 21:59:39.000000000 +0200
+***************
+*** 1,5 ****
+ xxx4asdf fail nop ok 9 333
+! XX111XX
+ ---222---
+ 1. one
+ 2. two
+--- 1,5 ----
+ xxx4asdf fail nop ok 9 333
+! XX111-XX
+ ---222---
+ 1. one
+ 2. two
+*** ../vim-7.3.337/src/version.c 2011-10-12 21:04:15.000000000 +0200
+--- src/version.c 2011-10-12 21:20:31.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 338,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+65. The last time you looked at the clock it was 11:30pm, and in what
+ seems like only a few seconds later, your sister runs past you to
+ catch her 7am school bus.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.339 b/source/ap/vim/patches/7.3.339
new file mode 100644
index 000000000..f108ad6e0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.339
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.339
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.339
+Problem: "make shadow" doesn't link all test files.
+Solution: Add a line in Makefile and Filelist.
+Files: src/Makefile, Filelist
+
+
+*** ../vim-7.3.338/Filelist 2011-09-30 16:56:00.000000000 +0200
+--- Filelist 2011-10-16 14:00:42.000000000 +0200
+***************
+*** 81,86 ****
+--- 81,87 ----
+ src/testdir/test[0-9]*.ok \
+ src/testdir/test49.vim \
+ src/testdir/test60.vim \
++ src/testdir/test83-tags? \
+ src/proto.h \
+ src/proto/blowfish.pro \
+ src/proto/buffer.pro \
+*** ../vim-7.3.338/src/Makefile 2011-05-19 13:40:47.000000000 +0200
+--- src/Makefile 2011-10-16 13:59:40.000000000 +0200
+***************
+*** 2328,2333 ****
+--- 2328,2334 ----
+ ../../testdir/vimrc.unix \
+ ../../testdir/*.in \
+ ../../testdir/*.vim \
++ ../../testdir/test83-tags? \
+ ../../testdir/*.ok .
+
+ # Link needed for doing "make install" in a shadow directory.
+*** ../vim-7.3.338/src/version.c 2011-10-12 22:02:07.000000000 +0200
+--- src/version.c 2011-10-20 16:34:28.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 339,
+ /**/
+
+--
+From "know your smileys":
+ :-O>-o Smiley American tourist (note big mouth and camera)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.340 b/source/ap/vim/patches/7.3.340
new file mode 100644
index 000000000..fb0b8423d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.340
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.340
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.340
+Problem: When 'verbosefile' is set ftplugof.vim can give an error.
+Solution: Only remove filetypeplugin autocommands when they exist. (Yasuhiro
+ Matsumoto)
+Files: runtime/ftplugof.vim
+
+
+*** ../vim-7.3.339/runtime/ftplugof.vim 2010-08-15 21:57:11.000000000 +0200
+--- runtime/ftplugof.vim 2011-10-20 16:51:00.000000000 +0200
+***************
+*** 1,11 ****
+ " Vim support file to switch off loading plugins for file types
+ "
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2002 Apr 04
+
+ if exists("did_load_ftplugin")
+ unlet did_load_ftplugin
+ endif
+
+! " Remove all autocommands in the filetypeplugin group
+! silent! au! filetypeplugin *
+--- 1,13 ----
+ " Vim support file to switch off loading plugins for file types
+ "
+ " Maintainer: Bram Moolenaar <Bram@vim.org>
+! " Last Change: 2011 Oct 20
+
+ if exists("did_load_ftplugin")
+ unlet did_load_ftplugin
+ endif
+
+! " Remove all autocommands in the filetypeplugin group, if any exist.
+! if exists("#filetypeplugin")
+! silent! au! filetypeplugin *
+! endif
+*** ../vim-7.3.339/src/version.c 2011-10-20 16:35:25.000000000 +0200
+--- src/version.c 2011-10-20 18:01:18.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 340,
+ /**/
+
+--
+How many light bulbs does it take to change a person?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.341 b/source/ap/vim/patches/7.3.341
new file mode 100644
index 000000000..6ea386031
--- /dev/null
+++ b/source/ap/vim/patches/7.3.341
@@ -0,0 +1,360 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.341
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.341
+Problem: Local help files are only listed in help.txt, not in translated
+ help files.
+Solution: Also find translated help files. (Yasuhiro Matsumoto)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.340/src/ex_cmds.c 2011-09-30 17:30:27.000000000 +0200
+--- src/ex_cmds.c 2011-10-20 17:39:45.000000000 +0200
+***************
+*** 5982,5987 ****
+--- 5982,5988 ----
+ char_u *line;
+ int in_example = FALSE;
+ int len;
++ char_u *fname;
+ char_u *p;
+ char_u *rt;
+ int mustfree;
+***************
+*** 6028,6151 ****
+ }
+
+ /*
+! * In the "help.txt" file, add the locally added help files.
+! * This uses the very first line in the help file.
+ */
+! if (fnamecmp(gettail(curbuf->b_fname), "help.txt") == 0)
+ {
+ for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+ {
+ line = ml_get_buf(curbuf, lnum, FALSE);
+! if (strstr((char *)line, "*local-additions*") != NULL)
+ {
+! /* Go through all directories in 'runtimepath', skipping
+! * $VIMRUNTIME. */
+! p = p_rtp;
+! while (*p != NUL)
+ {
+! copy_option_part(&p, NameBuff, MAXPATHL, ",");
+! mustfree = FALSE;
+! rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
+! if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
+! {
+! int fcount;
+! char_u **fnames;
+! FILE *fd;
+! char_u *s;
+! int fi;
+ #ifdef FEAT_MBYTE
+! vimconv_T vc;
+! char_u *cp;
+ #endif
+
+! /* Find all "doc/ *.txt" files in this directory. */
+! add_pathsep(NameBuff);
+! STRCAT(NameBuff, "doc/*.txt");
+! if (gen_expand_wildcards(1, &NameBuff, &fcount,
+! &fnames, EW_FILE|EW_SILENT) == OK
+! && fcount > 0)
+ {
+! for (fi = 0; fi < fcount; ++fi)
+ {
+! fd = mch_fopen((char *)fnames[fi], "r");
+! if (fd != NULL)
+ {
+! vim_fgets(IObuff, IOSIZE, fd);
+! if (IObuff[0] == '*'
+! && (s = vim_strchr(IObuff + 1, '*'))
+! != NULL)
+! {
+! #ifdef FEAT_MBYTE
+! int this_utf = MAYBE;
+ #endif
+! /* Change tag definition to a
+! * reference and remove <CR>/<NL>. */
+! IObuff[0] = '|';
+! *s = '|';
+! while (*s != NUL)
+! {
+! if (*s == '\r' || *s == '\n')
+! *s = NUL;
+ #ifdef FEAT_MBYTE
+! /* The text is utf-8 when a byte
+! * above 127 is found and no
+! * illegal byte sequence is found.
+! */
+! if (*s >= 0x80 && this_utf != FALSE)
+! {
+! int l;
+!
+! this_utf = TRUE;
+! l = utf_ptr2len(s);
+! if (l == 1)
+! this_utf = FALSE;
+! s += l - 1;
+! }
+ #endif
+! ++s;
+! }
+ #ifdef FEAT_MBYTE
+! /* The help file is latin1 or utf-8;
+! * conversion to the current
+! * 'encoding' may be required. */
+! vc.vc_type = CONV_NONE;
+! convert_setup(&vc, (char_u *)(
+! this_utf == TRUE ? "utf-8"
+! : "latin1"), p_enc);
+! if (vc.vc_type == CONV_NONE)
+! /* No conversion needed. */
+! cp = IObuff;
+! else
+ {
+! /* Do the conversion. If it fails
+! * use the unconverted text. */
+! cp = string_convert(&vc, IObuff,
+! NULL);
+! if (cp == NULL)
+! cp = IObuff;
+ }
+! convert_setup(&vc, NULL, NULL);
+
+! ml_append(lnum, cp, (colnr_T)0, FALSE);
+! if (cp != IObuff)
+! vim_free(cp);
+ #else
+! ml_append(lnum, IObuff, (colnr_T)0,
+! FALSE);
+ #endif
+! ++lnum;
+! }
+! fclose(fd);
+ }
+ }
+- FreeWild(fcount, fnames);
+ }
+ }
+- if (mustfree)
+- vim_free(rt);
+ }
+! break;
+ }
+ }
+ }
+ }
+--- 6029,6215 ----
+ }
+
+ /*
+! * In the "help.txt" and "help.abx" file, add the locally added help
+! * files. This uses the very first line in the help file.
+ */
+! fname = gettail(curbuf->b_fname);
+! if (fnamecmp(fname, "help.txt") == 0
+! #ifdef FEAT_MULTI_LANG
+! || (fnamencmp(fname, "help.", 5) == 0
+! && ASCII_ISALPHA(fname[5])
+! && ASCII_ISALPHA(fname[6])
+! && TOLOWER_ASC(fname[7]) == 'x'
+! && fname[8] == NUL)
+! #endif
+! )
+ {
+ for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+ {
+ line = ml_get_buf(curbuf, lnum, FALSE);
+! if (strstr((char *)line, "*local-additions*") == NULL)
+! continue;
+!
+! /* Go through all directories in 'runtimepath', skipping
+! * $VIMRUNTIME. */
+! p = p_rtp;
+! while (*p != NUL)
+ {
+! copy_option_part(&p, NameBuff, MAXPATHL, ",");
+! mustfree = FALSE;
+! rt = vim_getenv((char_u *)"VIMRUNTIME", &mustfree);
+! if (fullpathcmp(rt, NameBuff, FALSE) != FPC_SAME)
+ {
+! int fcount;
+! char_u **fnames;
+! FILE *fd;
+! char_u *s;
+! int fi;
+ #ifdef FEAT_MBYTE
+! vimconv_T vc;
+! char_u *cp;
+ #endif
+
+! /* Find all "doc/ *.txt" files in this directory. */
+! add_pathsep(NameBuff);
+! #ifdef FEAT_MULTI_LANG
+! STRCAT(NameBuff, "doc/*.??[tx]");
+! #else
+! STRCAT(NameBuff, "doc/*.txt");
+! #endif
+! if (gen_expand_wildcards(1, &NameBuff, &fcount,
+! &fnames, EW_FILE|EW_SILENT) == OK
+! && fcount > 0)
+! {
+! #ifdef FEAT_MULTI_LANG
+! int i1;
+! int i2;
+! char_u *f1;
+! char_u *f2;
+! char_u *t1;
+! char_u *e1;
+! char_u *e2;
+!
+! /* If foo.abx is found use it instead of foo.txt in
+! * the same directory. */
+! for (i1 = 0; i1 < fcount; ++i1)
+ {
+! for (i2 = 0; i2 < fcount; ++i2)
+ {
+! if (i1 == i2)
+! continue;
+! if (fnames[i1] == NULL || fnames[i2] == NULL)
+! continue;
+! f1 = fnames[i1];
+! f2 = fnames[i2];
+! t1 = gettail(f1);
+! if (fnamencmp(f1, f2, t1 - f1) != 0)
+! continue;
+! e1 = vim_strrchr(t1, '.');
+! e2 = vim_strrchr(gettail(f2), '.');
+! if (e1 == NUL || e2 == NUL)
+! continue;
+! if (fnamecmp(e1, ".txt") != 0
+! && fnamecmp(e1, fname + 4) != 0)
+ {
+! /* Not .txt and not .abx, remove it. */
+! vim_free(fnames[i1]);
+! fnames[i1] = NULL;
+! continue;
+! }
+! if (fnamencmp(f1, f2, e1 - f1) != 0)
+! continue;
+! if (fnamecmp(e1, ".txt") == 0
+! && fnamecmp(e2, fname + 4) == 0)
+! {
+! /* use .abx instead of .txt */
+! vim_free(fnames[i1]);
+! fnames[i1] = NULL;
+! }
+! }
+! }
+ #endif
+! for (fi = 0; fi < fcount; ++fi)
+! {
+! if (fnames[fi] == NULL)
+! continue;
+! fd = mch_fopen((char *)fnames[fi], "r");
+! if (fd != NULL)
+! {
+! vim_fgets(IObuff, IOSIZE, fd);
+! if (IObuff[0] == '*'
+! && (s = vim_strchr(IObuff + 1, '*'))
+! != NULL)
+! {
+ #ifdef FEAT_MBYTE
+! int this_utf = MAYBE;
+ #endif
+! /* Change tag definition to a
+! * reference and remove <CR>/<NL>. */
+! IObuff[0] = '|';
+! *s = '|';
+! while (*s != NUL)
+! {
+! if (*s == '\r' || *s == '\n')
+! *s = NUL;
+ #ifdef FEAT_MBYTE
+! /* The text is utf-8 when a byte
+! * above 127 is found and no
+! * illegal byte sequence is found.
+! */
+! if (*s >= 0x80 && this_utf != FALSE)
+ {
+! int l;
+!
+! this_utf = TRUE;
+! l = utf_ptr2len(s);
+! if (l == 1)
+! this_utf = FALSE;
+! s += l - 1;
+ }
+! #endif
+! ++s;
+! }
+! #ifdef FEAT_MBYTE
+! /* The help file is latin1 or utf-8;
+! * conversion to the current
+! * 'encoding' may be required. */
+! vc.vc_type = CONV_NONE;
+! convert_setup(&vc, (char_u *)(
+! this_utf == TRUE ? "utf-8"
+! : "latin1"), p_enc);
+! if (vc.vc_type == CONV_NONE)
+! /* No conversion needed. */
+! cp = IObuff;
+! else
+! {
+! /* Do the conversion. If it fails
+! * use the unconverted text. */
+! cp = string_convert(&vc, IObuff,
+! NULL);
+! if (cp == NULL)
+! cp = IObuff;
+! }
+! convert_setup(&vc, NULL, NULL);
+
+! ml_append(lnum, cp, (colnr_T)0, FALSE);
+! if (cp != IObuff)
+! vim_free(cp);
+ #else
+! ml_append(lnum, IObuff, (colnr_T)0,
+! FALSE);
+ #endif
+! ++lnum;
+ }
++ fclose(fd);
+ }
+ }
++ FreeWild(fcount, fnames);
+ }
+ }
+! if (mustfree)
+! vim_free(rt);
+ }
++ break;
+ }
+ }
+ }
+*** ../vim-7.3.340/src/version.c 2011-10-20 18:12:27.000000000 +0200
+--- src/version.c 2011-10-20 18:13:46.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 341,
+ /**/
+
+--
+From "know your smileys":
+ :-)-O Smiling doctor with stethoscope
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.342 b/source/ap/vim/patches/7.3.342
new file mode 100644
index 000000000..2deb7e385
--- /dev/null
+++ b/source/ap/vim/patches/7.3.342
@@ -0,0 +1,93 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.342
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.342
+Problem: Code not in Vim style.
+Solution: Fix the style. (Elias Diem)
+Files: src/os_amiga.c, src/os_mac_conv.c, src/os_win16.c
+
+
+*** ../vim-7.3.341/src/os_amiga.c 2010-08-15 21:57:27.000000000 +0200
+--- src/os_amiga.c 2011-10-20 18:19:45.000000000 +0200
+***************
+*** 1022,1028 ****
+
+ /* insure longword alignment */
+ #ifdef __amigaos4__
+! if(!(id = AllocDosObject(DOS_INFODATA, 0)))
+ goto out;
+ #else
+ id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
+--- 1022,1028 ----
+
+ /* insure longword alignment */
+ #ifdef __amigaos4__
+! if (!(id = AllocDosObject(DOS_INFODATA, 0)))
+ goto out;
+ #else
+ id = (struct InfoData *)(((long)id_a + 3L) & ~3L);
+*** ../vim-7.3.341/src/os_mac_conv.c 2011-06-13 02:03:55.000000000 +0200
+--- src/os_mac_conv.c 2011-10-20 18:19:45.000000000 +0200
+***************
+*** 77,83 ****
+ *unconvlenp = 0;
+ cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
+
+! if(cfstr == NULL)
+ fprintf(stderr, "Encoding failed\n");
+ /* When conversion failed, try excluding bytes from the end, helps when
+ * there is an incomplete byte sequence. Only do up to 6 bytes to avoid
+--- 77,83 ----
+ *unconvlenp = 0;
+ cfstr = CFStringCreateWithBytes(NULL, ptr, len, from, 0);
+
+! if (cfstr == NULL)
+ fprintf(stderr, "Encoding failed\n");
+ /* When conversion failed, try excluding bytes from the end, helps when
+ * there is an incomplete byte sequence. Only do up to 6 bytes to avoid
+*** ../vim-7.3.341/src/os_win16.c 2010-12-17 20:23:56.000000000 +0100
+--- src/os_win16.c 2011-10-20 18:19:45.000000000 +0200
+***************
+*** 243,251 ****
+ /* Wait for the command to terminate before continuing */
+ while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
+ {
+! while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) && again )
+ {
+! if(msg.message == WM_QUIT)
+
+ {
+ PostQuitMessage(msg.wParam);
+--- 243,251 ----
+ /* Wait for the command to terminate before continuing */
+ while (GetModuleUsage((HINSTANCE)h_module) > 0 && again )
+ {
+! while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) && again)
+ {
+! if (msg.message == WM_QUIT)
+
+ {
+ PostQuitMessage(msg.wParam);
+*** ../vim-7.3.341/src/version.c 2011-10-20 18:17:38.000000000 +0200
+--- src/version.c 2011-10-20 18:21:43.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 342,
+ /**/
+
+--
+You are only young once, but you can stay immature indefinitely.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.343 b/source/ap/vim/patches/7.3.343
new file mode 100644
index 000000000..db62264d0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.343
@@ -0,0 +1,252 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.343
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.343
+Problem: No mouse support for urxvt.
+Solution: Implement urxvt mouse support, also for > 252 columns. (Yiding
+ Jia)
+Files: src/feature.h, src/keymap.h, src/option.h, src/os_unix.c,
+ src/term.c, src/version.c
+
+
+*** ../vim-7.3.342/src/feature.h 2011-05-19 13:40:47.000000000 +0200
+--- src/feature.h 2011-10-20 21:02:15.000000000 +0200
+***************
+*** 1053,1058 ****
+--- 1053,1061 ----
+ # ifdef FEAT_BIG
+ # define FEAT_MOUSE_DEC
+ # endif
++ # ifdef FEAT_BIG
++ # define FEAT_MOUSE_URXVT
++ # endif
+ # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
+ # define DOS_MOUSE
+ # endif
+***************
+*** 1068,1080 ****
+ #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+ # define FEAT_SYSMOUSE
+ #endif
+ /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+ #if !defined(FEAT_MOUSE_TTY) \
+ && (defined(FEAT_MOUSE_XTERM) \
+! || defined(FEAT_MOUSE_NET) || defined(FEAT_MOUSE_DEC) \
+! || defined(DOS_MOUSE) || defined(FEAT_MOUSE_GPM) \
+! || defined(FEAT_MOUSE_JSB) || defined(FEAT_MOUSE_PTERM) \
+! || defined(FEAT_SYSMOUSE))
+ # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
+ #endif
+ #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+--- 1071,1093 ----
+ #if defined(FEAT_NORMAL) && defined(HAVE_SYSMOUSE)
+ # define FEAT_SYSMOUSE
+ #endif
++
++ /* urxvt is a small variation of mouse_xterm, and shares its code */
++ #if defined(FEAT_MOUSE_URXVT) && !defined(FEAT_MOUSE_XTERM)
++ # define FEAT_MOUSE_XTERM
++ #endif
++
+ /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+ #if !defined(FEAT_MOUSE_TTY) \
+ && (defined(FEAT_MOUSE_XTERM) \
+! || defined(FEAT_MOUSE_NET) \
+! || defined(FEAT_MOUSE_DEC) \
+! || defined(DOS_MOUSE) \
+! || defined(FEAT_MOUSE_GPM) \
+! || defined(FEAT_MOUSE_JSB) \
+! || defined(FEAT_MOUSE_PTERM) \
+! || defined(FEAT_SYSMOUSE) \
+! || defined(FEAT_MOUSE_URXVT))
+ # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
+ #endif
+ #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+*** ../vim-7.3.342/src/keymap.h 2010-08-15 21:57:32.000000000 +0200
+--- src/keymap.h 2011-10-20 21:00:37.000000000 +0200
+***************
+*** 92,104 ****
+ */
+ #define KS_TEAROFF 244
+
+! /* used for JSB term mouse */
+ #define KS_JSBTERM_MOUSE 243
+
+! /* used a termcap entry that produces a normal character */
+ #define KS_KEY 242
+
+! /* Used for the qnx pterm mouse */
+ #define KS_PTERM_MOUSE 241
+
+ /* Used for click in a tab pages label. */
+--- 92,104 ----
+ */
+ #define KS_TEAROFF 244
+
+! /* Used for JSB term mouse. */
+ #define KS_JSBTERM_MOUSE 243
+
+! /* Used a termcap entry that produces a normal character. */
+ #define KS_KEY 242
+
+! /* Used for the qnx pterm mouse. */
+ #define KS_PTERM_MOUSE 241
+
+ /* Used for click in a tab pages label. */
+***************
+*** 107,112 ****
+--- 107,115 ----
+ /* Used for menu in a tab pages line. */
+ #define KS_TABMENU 239
+
++ /* Used for the urxvt mouse. */
++ #define KS_URXVT_MOUSE 238
++
+ /*
+ * Filler used after KS_SPECIAL and others
+ */
+*** ../vim-7.3.342/src/option.h 2011-09-30 14:44:49.000000000 +0200
+--- src/option.h 2011-10-20 19:38:59.000000000 +0200
+***************
+*** 819,825 ****
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+--- 819,825 ----
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+***************
+*** 827,832 ****
+--- 827,833 ----
+ # define TTYM_NETTERM 0x08
+ # define TTYM_JSBTERM 0x10
+ # define TTYM_PTERM 0x20
++ # define TTYM_URXVT 0x40
+ #endif
+ EXTERN char_u *p_udir; /* 'undodir' */
+ EXTERN long p_ul; /* 'undolevels' */
+*** ../vim-7.3.342/src/os_unix.c 2011-10-12 21:04:15.000000000 +0200
+--- src/os_unix.c 2011-10-20 21:02:00.000000000 +0200
+***************
+*** 2158,2167 ****
+--- 2158,2170 ----
+ * Return non-zero when using an xterm mouse, according to 'ttymouse'.
+ * Return 1 for "xterm".
+ * Return 2 for "xterm2".
++ * Return 3 for "urxvt".
+ */
+ int
+ use_xterm_mouse()
+ {
++ if (ttym_flags == TTYM_URXVT)
++ return 3;
+ if (ttym_flags == TTYM_XTERM2)
+ return 2;
+ if (ttym_flags == TTYM_XTERM)
+***************
+*** 3318,3323 ****
+--- 3321,3337 ----
+ return;
+
+ xterm_mouse_vers = use_xterm_mouse();
++
++ # ifdef FEAT_MOUSE_URXVT
++ if (ttym_flags == TTYM_URXVT) {
++ out_str_nf((char_u *)
++ (on
++ ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
++ : IF_EB("\033[?1015l", ESC_STR "[?1015l")));
++ ison = on;
++ }
++ # endif
++
+ if (xterm_mouse_vers > 0)
+ {
+ if (on) /* enable mouse events, use mouse tracking if available */
+***************
+*** 3434,3439 ****
+--- 3448,3456 ----
+ {
+ # ifdef FEAT_MOUSE_XTERM
+ if (use_xterm_mouse()
++ # ifdef FEAT_MOUSE_URXVT
++ && use_xterm_mouse() != 3
++ # endif
+ # ifdef FEAT_GUI
+ && !gui.in_use
+ # endif
+***************
+*** 3523,3528 ****
+--- 3540,3566 ----
+ else
+ del_mouse_termcode(KS_PTERM_MOUSE);
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ /* same as the dec mouse */
++ if (use_xterm_mouse() == 3
++ # ifdef FEAT_GUI
++ && !gui.in_use
++ # endif
++ )
++ {
++ set_mouse_termcode(KS_URXVT_MOUSE, (char_u *)(term_is_8bit(T_NAME)
++ ? IF_EB("\233", CSI_STR)
++ : IF_EB("\033[", ESC_STR "[")));
++
++ if (*p_mouse != NUL)
++ {
++ mch_setmouse(FALSE);
++ setmouse();
++ }
++ }
++ else
++ del_mouse_termcode(KS_URXVT_MOUSE);
++ # endif
+ }
+ #endif
+
+*** ../vim-7.3.342/src/version.c 2011-10-20 18:24:16.000000000 +0200
+--- src/version.c 2011-10-20 19:40:48.000000000 +0200
+***************
+*** 380,383 ****
+--- 380,388 ----
+ "-mouse_xterm",
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ "+mouse_urxvt",
++ # else
++ "-mouse_urxvt",
++ # endif
+ #endif
+ #ifdef __QNX__
+***************
+*** 711,712 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 343,
+ /**/
+
+--
+Warning label on a superhero Halloween costume:
+"Caution: Cape does not enable user to fly."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.344 b/source/ap/vim/patches/7.3.344
new file mode 100644
index 000000000..d2bb1dbe2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.344
@@ -0,0 +1,121 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.344
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.344
+Problem: Problem with GUI startup related to XInitThreads.
+Solution: Use read() and write() instead of fputs() and fread(). (James
+ Vega)
+Files: src/gui.c
+
+
+*** ../vim-7.3.343/src/gui.c 2011-09-14 19:04:35.000000000 +0200
+--- src/gui.c 2011-10-20 21:23:43.000000000 +0200
+***************
+*** 212,218 ****
+ int status;
+ int exit_status;
+ pid_t pid = -1;
+- FILE *parent_file;
+
+ /* Setup a pipe between the child and the parent, so that the parent
+ * knows when the child has done the setsid() call and is allowed to
+--- 212,217 ----
+***************
+*** 290,308 ****
+ gui_mch_forked();
+ # endif
+
+- if (!pipe_error)
+- parent_file = fdopen(pipefd[1], "w");
+- else
+- parent_file = NULL;
+-
+ /* Try to start the GUI */
+ gui_attempt_start();
+
+ /* Notify the parent */
+! if (parent_file != NULL)
+ {
+! fputs(gui.in_use ? "ok" : "fail", parent_file);
+! fclose(parent_file);
+ }
+
+ /* If we failed to start the GUI, exit now. */
+--- 289,305 ----
+ gui_mch_forked();
+ # endif
+
+ /* Try to start the GUI */
+ gui_attempt_start();
+
+ /* Notify the parent */
+! if (!pipe_error)
+ {
+! if (gui.in_use)
+! write_eintr(pipefd[1], "ok", 3);
+! else
+! write_eintr(pipefd[1], "fail", 5);
+! close(pipefd[1]);
+ }
+
+ /* If we failed to start the GUI, exit now. */
+***************
+*** 323,339 ****
+ static int
+ gui_read_child_pipe(int fd)
+ {
+! size_t bytes_read;
+! FILE *file;
+! char buffer[10];
+!
+! file = fdopen(fd, "r");
+! if (!file)
+ return GUI_CHILD_IO_ERROR;
+!
+! bytes_read = fread(buffer, sizeof(char), sizeof(buffer)-1, file);
+! buffer[bytes_read] = '\0';
+! fclose(file);
+ if (strcmp(buffer, "ok") == 0)
+ return GUI_CHILD_OK;
+ return GUI_CHILD_FAILED;
+--- 320,335 ----
+ static int
+ gui_read_child_pipe(int fd)
+ {
+! long bytes_read;
+! #define READ_BUFFER_SIZE 10
+! char buffer[READ_BUFFER_SIZE];
+!
+! bytes_read = read_eintr(fd, buffer, READ_BUFFER_SIZE - 1);
+! #undef READ_BUFFER_SIZE
+! close(fd);
+! if (bytes_read < 0)
+ return GUI_CHILD_IO_ERROR;
+! buffer[bytes_read] = NUL;
+ if (strcmp(buffer, "ok") == 0)
+ return GUI_CHILD_OK;
+ return GUI_CHILD_FAILED;
+*** ../vim-7.3.343/src/version.c 2011-10-20 21:09:25.000000000 +0200
+--- src/version.c 2011-10-20 21:27:31.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 344,
+ /**/
+
+--
+From "know your smileys":
+ *<|:-) Santa Claus (Ho Ho Ho)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.345 b/source/ap/vim/patches/7.3.345
new file mode 100644
index 000000000..99dd074a2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.345
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.345
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.345
+Problem: When switching language with ":lang" the window title doesn't
+ change until later.
+Solution: Update the window title right away. (Dominique Pelle)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.344/src/ex_cmds2.c 2011-06-26 04:25:24.000000000 +0200
+--- src/ex_cmds2.c 2011-10-20 21:31:09.000000000 +0200
+***************
+*** 4154,4159 ****
+--- 4154,4162 ----
+ /* Set v:lang, v:lc_time and v:ctype to the final result. */
+ set_lang_var();
+ # endif
++ # ifdef FEAT_TITLE
++ maketitle();
++ # endif
+ }
+ }
+ }
+*** ../vim-7.3.344/src/version.c 2011-10-20 21:27:57.000000000 +0200
+--- src/version.c 2011-10-20 21:38:32.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 345,
+ /**/
+
+--
+You can't have everything. Where would you put it?
+ -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.346 b/source/ap/vim/patches/7.3.346
new file mode 100644
index 000000000..e6b1a2b64
--- /dev/null
+++ b/source/ap/vim/patches/7.3.346
@@ -0,0 +1,143 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.346
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.346
+Problem: It's hard to test netbeans commands.
+Solution: Process netbeans commands after :sleep. (Xavier de Gaye)
+Files: runtime/doc/netbeans.txt, src/ex_docmd.c, src/netbeans.c
+
+
+*** ../vim-7.3.345/runtime/doc/netbeans.txt 2010-09-29 17:26:57.000000000 +0200
+--- runtime/doc/netbeans.txt 2011-10-20 21:51:41.000000000 +0200
+***************
+*** 1,4 ****
+! *netbeans.txt* For Vim version 7.3. Last change: 2010 Aug 20
+
+
+ VIM REFERENCE MANUAL by Gordon Prieur et al.
+--- 1,4 ----
+! *netbeans.txt* For Vim version 7.3. Last change: 2011 Oct 20
+
+
+ VIM REFERENCE MANUAL by Gordon Prieur et al.
+***************
+*** 263,268 ****
+--- 263,274 ----
+ plain UTF-8 text this protocol could also be used with any other communication
+ mechanism.
+
++ Netbeans messages are processed when Vim is idle, waiting for user input.
++ When Vim is run in non-interactive mode, for example when running an automated
++ test case that sources a Vim script, the idle loop may not be called often
++ enough. In that case, insert |sleep| commands in the Vim script. The |sleep|
++ command does invoke Netbeans messages processing.
++
+ 6.1 Kinds of messages |nb-messages|
+ 6.2 Terms |nb-terms|
+ 6.3 Commands |nb-commands|
+***************
+*** 820,826 ****
+ ==============================================================================
+ 7. NetBeans commands *netbeans-commands*
+
+! *:nbstart* *E511*
+ :nbs[tart] {connection} Start a new Netbeans session with {connection} as the
+ socket connection parameters. The format of
+ {connection} is described in |netbeans-parameters|.
+--- 826,832 ----
+ ==============================================================================
+ 7. NetBeans commands *netbeans-commands*
+
+! *:nbstart* *E511* *E838*
+ :nbs[tart] {connection} Start a new Netbeans session with {connection} as the
+ socket connection parameters. The format of
+ {connection} is described in |netbeans-parameters|.
+***************
+*** 833,843 ****
+ signs.
+
+ *:nbkey*
+! :nb[key] {key} Pass the {key} to the Vim Controller for processing
+!
+! When a hot-key has been installed with the specialKeys command, this command
+! can be used to generate a hotkey messages to the Vim Controller. The events
+! newDotAndMark, keyCommand and keyAtPos are generated (in this order).
+
+
+ ==============================================================================
+--- 839,854 ----
+ signs.
+
+ *:nbkey*
+! :nb[key] {key} Pass the {key} to the Vim Controller for processing.
+! When a hot-key has been installed with the specialKeys
+! command, this command can be used to generate a hotkey
+! message to the Vim Controller.
+! This command can also be used to pass any text to the
+! Vim Controller. It is used by Pyclewn, for example,
+! to build the complete set of gdb commands as Vim user
+! commands.
+! The events newDotAndMark, keyCommand and keyAtPos are
+! generated (in this order).
+
+
+ ==============================================================================
+*** ../vim-7.3.345/src/ex_docmd.c 2011-09-30 18:35:49.000000000 +0200
+--- src/ex_docmd.c 2011-10-20 21:50:06.000000000 +0200
+***************
+*** 8205,8210 ****
+--- 8205,8216 ----
+ {
+ ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE);
+ ui_breakcheck();
++ #ifdef FEAT_NETBEANS_INTG
++ /* Process the netbeans messages that may have been received in the
++ * call to ui_breakcheck() when the GUI is in use. This may occur when
++ * running a test case. */
++ netbeans_parse_messages();
++ #endif
+ }
+ }
+
+*** ../vim-7.3.345/src/netbeans.c 2011-04-11 21:35:03.000000000 +0200
+--- src/netbeans.c 2011-10-20 21:47:17.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,26 ----
+ * which are *between* characters, whereas vim uses line number
+ * and column number which are *on* characters.
+ * See ":help netbeans-protocol" for explanation.
++ *
++ * The Netbeans messages are received and queued in the gui event loop, or in
++ * the select loop when Vim runs in a terminal. These messages are processed
++ * by netbeans_parse_messages() which is invoked in the idle loop when Vim is
++ * waiting for user input. The function netbeans_parse_messages() is also
++ * called from the ":sleep" command, to allow the execution of test cases that
++ * may not invoke the idle loop.
+ */
+
+ #include "vim.h"
+*** ../vim-7.3.345/src/version.c 2011-10-20 21:57:43.000000000 +0200
+--- src/version.c 2011-10-20 21:50:23.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 346,
+ /**/
+
+--
+From "know your smileys":
+ ...---... SOS
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.347 b/source/ap/vim/patches/7.3.347
new file mode 100644
index 000000000..85b0feb75
--- /dev/null
+++ b/source/ap/vim/patches/7.3.347
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.347
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.347
+Problem: When dropping text from a browser on Vim it receives HTML even
+ though "html" is excluded from 'clipboard'. (Andrei Avk)
+Solution: Fix the condition for TARGET_HTML.
+Files: src/gui_gtk_x11.c
+
+
+*** ../vim-7.3.346/src/gui_gtk_x11.c 2011-08-10 17:44:41.000000000 +0200
+--- src/gui_gtk_x11.c 2011-10-23 20:56:38.000000000 +0200
+***************
+*** 3081,3087 ****
+
+ for (i = 0; i < (int)N_DND_TARGETS; ++i)
+ {
+! if (!clip_html && selection_targets[i].info == TARGET_HTML)
+ n_targets--;
+ else
+ targets[j++] = dnd_targets[i];
+--- 3081,3087 ----
+
+ for (i = 0; i < (int)N_DND_TARGETS; ++i)
+ {
+! if (!clip_html && dnd_targets[i].info == TARGET_HTML)
+ n_targets--;
+ else
+ targets[j++] = dnd_targets[i];
+*** ../vim-7.3.346/src/version.c 2011-10-20 21:58:20.000000000 +0200
+--- src/version.c 2011-10-26 11:35:23.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 347,
+ /**/
+
+--
+I AM THANKFUL...
+...for a lawn that needs mowing, windows that need cleaning
+and gutters that need fixing because it means I have a home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.348 b/source/ap/vim/patches/7.3.348
new file mode 100644
index 000000000..e92febb98
--- /dev/null
+++ b/source/ap/vim/patches/7.3.348
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.348
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.348
+Problem: "call range(1, 947948399)" causes a crash. (ZyX)
+Solution: Avoid a loop in the out of memory message.
+Files: src/misc2.c
+
+
+*** ../vim-7.3.347/src/misc2.c 2011-08-19 22:28:58.000000000 +0200
+--- src/misc2.c 2011-10-26 11:17:26.000000000 +0200
+***************
+*** 1012,1019 ****
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+! EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
+ did_outofmem_msg = TRUE;
+ }
+ }
+
+--- 1012,1023 ----
+ {
+ /* Don't hide this message */
+ emsg_silent = 0;
+!
+! /* Must come first to avoid coming back here when printing the error
+! * message fails, e.g. when setting v:errmsg. */
+ did_outofmem_msg = TRUE;
++
++ EMSGN(_("E342: Out of memory! (allocating %lu bytes)"), size);
+ }
+ }
+
+*** ../vim-7.3.347/src/version.c 2011-10-26 11:36:21.000000000 +0200
+--- src/version.c 2011-10-26 11:38:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 348,
+ /**/
+
+--
+A fool learns from his mistakes, a wise man from someone else's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.349 b/source/ap/vim/patches/7.3.349
new file mode 100644
index 000000000..ac519afe8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.349
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.349
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.349
+Problem: When running out of memory during startup trying to open a
+ swapfile will loop forever.
+Solution: Let findswapname() set dirp to NULL if out of memory.
+Files: src/memline.c
+
+
+*** ../vim-7.3.348/src/memline.c 2011-06-13 01:07:22.000000000 +0200
+--- src/memline.c 2011-10-26 11:26:06.000000000 +0200
+***************
+*** 621,626 ****
+--- 621,628 ----
+ break;
+ fname = findswapname(buf, &dirp, mfp->mf_fname);
+ /* alloc's fname */
++ if (dirp == NULL) /* out of memory */
++ break;
+ if (fname == NULL) /* no file name found for this dir */
+ continue;
+
+***************
+*** 744,749 ****
+--- 746,753 ----
+ * and creating it, another Vim creates the file. In that case the
+ * creation will fail and we will use another directory. */
+ fname = findswapname(buf, &dirp, NULL); /* allocates fname */
++ if (dirp == NULL)
++ break; /* out of memory */
+ if (fname == NULL)
+ continue;
+ if (mf_open_file(mfp, fname) == OK) /* consumes fname! */
+***************
+*** 4114,4119 ****
+--- 4118,4124 ----
+ *
+ * Several names are tried to find one that does not exist
+ * Returns the name in allocated memory or NULL.
++ * When out of memory "dirp" is set to NULL.
+ *
+ * Note: If BASENAMELEN is not correct, you will get error messages for
+ * not being able to open the swap or undo file
+***************
+*** 4157,4163 ****
+ * First allocate some memory to put the directory name in.
+ */
+ dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+! if (dir_name != NULL)
+ (void)copy_option_part(dirp, dir_name, 31000, ",");
+
+ /*
+--- 4162,4170 ----
+ * First allocate some memory to put the directory name in.
+ */
+ dir_name = alloc((unsigned)STRLEN(*dirp) + 1);
+! if (dir_name == NULL)
+! *dirp = NULL;
+! else
+ (void)copy_option_part(dirp, dir_name, 31000, ",");
+
+ /*
+*** ../vim-7.3.348/src/version.c 2011-10-26 11:40:56.000000000 +0200
+--- src/version.c 2011-10-26 11:43:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 349,
+ /**/
+
+--
+I AM THANKFUL...
+...for all the complaining I hear about the government
+because it means we have freedom of speech.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.350 b/source/ap/vim/patches/7.3.350
new file mode 100644
index 000000000..5a1f3327c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.350
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.350
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.350
+Problem: Block of code after ":lua << EOF" may not work. (Paul Isambert)
+Solution: Recognize the ":lua" command, skip to EOF.
+Files: src/eval.c
+
+
+*** ../vim-7.3.349/src/eval.c 2011-09-30 18:35:49.000000000 +0200
+--- src/eval.c 2011-10-26 13:12:06.000000000 +0200
+***************
+*** 20899,20904 ****
+--- 20899,20906 ----
+ && (!ASCII_ISALPHA(p[2]) || p[2] == 'r'))
+ || (p[0] == 't' && p[1] == 'c'
+ && (!ASCII_ISALPHA(p[2]) || p[2] == 'l'))
++ || (p[0] == 'l' && p[1] == 'u' && p[2] == 'a'
++ && !ASCII_ISALPHA(p[3]))
+ || (p[0] == 'r' && p[1] == 'u' && p[2] == 'b'
+ && (!ASCII_ISALPHA(p[3]) || p[3] == 'y'))
+ || (p[0] == 'm' && p[1] == 'z'
+*** ../vim-7.3.349/src/version.c 2011-10-26 11:44:15.000000000 +0200
+--- src/version.c 2011-10-26 13:13:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 350,
+ /**/
+
+--
+From "know your smileys":
+ :-| :-| Deja' vu!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.351 b/source/ap/vim/patches/7.3.351
new file mode 100644
index 000000000..15b2194c1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.351
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.351
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.351
+Problem: Text formatting uses start of insert position when it should not.
+ (Peter Wagenaar)
+Solution: Do not use Insstart when intentionally formatting.
+Files: src/edit.c
+
+
+*** ../vim-7.3.350/src/edit.c 2011-09-21 18:23:02.000000000 +0200
+--- src/edit.c 2011-10-26 16:58:21.000000000 +0200
+***************
+*** 6078,6083 ****
+--- 6078,6084 ----
+ * Stop at first entered white when 'formatoptions' has 'v'
+ */
+ while ((!fo_ins_blank && !has_format_option(FO_INS_VI))
++ || (flags & INSCHAR_FORMAT)
+ || curwin->w_cursor.lnum != Insstart.lnum
+ || curwin->w_cursor.col >= Insstart.col)
+ {
+*** ../vim-7.3.350/src/version.c 2011-10-26 13:19:23.000000000 +0200
+--- src/version.c 2011-10-26 17:03:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 351,
+ /**/
+
+--
+From "know your smileys":
+ :-* A big kiss!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.352 b/source/ap/vim/patches/7.3.352
new file mode 100644
index 000000000..52842cfc5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.352
@@ -0,0 +1,108 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.352
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.352
+Problem: When completing methods dict functions and script-local functions
+ get in the way.
+Solution: Sort function names starting with "<" to the end. (Yasuhiro
+ Matsumoto)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.351/src/ex_getln.c 2011-09-30 17:46:14.000000000 +0200
+--- src/ex_getln.c 2011-10-26 21:37:53.000000000 +0200
+***************
+*** 121,126 ****
+--- 121,134 ----
+ static int ex_window __ARGS((void));
+ #endif
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static int
++ #ifdef __BORLANDC__
++ _RTLENTRYF
++ #endif
++ sort_func_compare __ARGS((const void *s1, const void *s2));
++ #endif
++
+ /*
+ * getcmdline() - accept a command line starting with firstc.
+ *
+***************
+*** 3286,3291 ****
+--- 3294,3317 ----
+ return check_abbr(c, ccline.cmdbuff, ccline.cmdpos, 0);
+ }
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static int
++ #ifdef __BORLANDC__
++ _RTLENTRYF
++ #endif
++ sort_func_compare(s1, s2)
++ const void *s1;
++ const void *s2;
++ {
++ char_u *p1 = *(char_u **)s1;
++ char_u *p2 = *(char_u **)s2;
++
++ if (*p1 != '<' && *p2 == '<') return -1;
++ if (*p1 == '<' && *p2 != '<') return 1;
++ return STRCMP(p1, p2);
++ }
++ #endif
++
+ /*
+ * Return FAIL if this is not an appropriate context in which to do
+ * completion of anything, return OK if it is (even if there are no matches).
+***************
+*** 4735,4741 ****
+
+ /* Sort the results. Keep menu's in the specified order. */
+ if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
+! sort_strings(*file, *num_file);
+
+ #ifdef FEAT_CMDL_COMPL
+ /* Reset the variables used for special highlight names expansion, so that
+--- 4761,4776 ----
+
+ /* Sort the results. Keep menu's in the specified order. */
+ if (xp->xp_context != EXPAND_MENUNAMES && xp->xp_context != EXPAND_MENUS)
+! {
+! if (xp->xp_context == EXPAND_EXPRESSION
+! || xp->xp_context == EXPAND_FUNCTIONS
+! || xp->xp_context == EXPAND_USER_FUNC)
+! /* <SNR> functions should be sorted to the end. */
+! qsort((void *)*file, (size_t)*num_file, sizeof(char_u *),
+! sort_func_compare);
+! else
+! sort_strings(*file, *num_file);
+! }
+
+ #ifdef FEAT_CMDL_COMPL
+ /* Reset the variables used for special highlight names expansion, so that
+*** ../vim-7.3.351/src/version.c 2011-10-26 17:04:23.000000000 +0200
+--- src/version.c 2011-10-26 21:49:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 352,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+94. Now admit it... How many of you have made "modem noises" into
+ the phone just to see if it was possible? :-)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.353 b/source/ap/vim/patches/7.3.353
new file mode 100644
index 000000000..1846243e8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.353
@@ -0,0 +1,155 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.353
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.353 (after 7.3.343)
+Problem: Missing part of the urxvt patch.
+Solution: Add the change in term.c
+Files: src/term.c
+
+
+*** ../vim-7.3.352/src/term.c 2011-09-14 14:43:21.000000000 +0200
+--- src/term.c 2011-10-26 23:48:01.000000000 +0200
+***************
+*** 4008,4014 ****
+ }
+
+ #ifdef FEAT_TERMRESPONSE
+! if (key_name[0] == NUL)
+ {
+ /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
+ * eat other possible responses to t_RV, rxvt returns
+--- 4008,4016 ----
+ }
+
+ #ifdef FEAT_TERMRESPONSE
+! if (key_name[0] == NUL
+! /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
+! || key_name[0] == KS_URXVT_MOUSE)
+ {
+ /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
+ * eat other possible responses to t_RV, rxvt returns
+***************
+*** 4047,4053 ****
+ if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+ {
+ /* if xterm version >= 95 use mouse dragging */
+! if (extra >= 95)
+ set_option_value((char_u *)"ttym", 0L,
+ (char_u *)"xterm2", 0);
+ /* if xterm version >= 141 try to get termcap codes */
+--- 4049,4055 ----
+ if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+ {
+ /* if xterm version >= 95 use mouse dragging */
+! if (extra >= 95 && ttym_flags != TTYM_URXVT)
+ set_option_value((char_u *)"ttym", 0L,
+ (char_u *)"xterm2", 0);
+ /* if xterm version >= 141 try to get termcap codes */
+***************
+*** 4141,4146 ****
+--- 4143,4151 ----
+ # ifdef FEAT_MOUSE_PTERM
+ || key_name[0] == (int)KS_PTERM_MOUSE
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ || key_name[0] == (int)KS_URXVT_MOUSE
++ # endif
+ )
+ {
+ is_click = is_drag = FALSE;
+***************
+*** 4219,4225 ****
+--- 4224,4292 ----
+ else
+ break;
+ }
++ }
++
++ # ifdef FEAT_MOUSE_URXVT
++ if (key_name[0] == (int)KS_URXVT_MOUSE)
++ {
++ for (;;)
++ {
++ /* URXVT 1015 mouse reporting mode:
++ * Almost identical to xterm mouse mode, except the values
++ * are decimal instead of bytes.
++ *
++ * \033[%d;%d;%dM
++ * ^-- row
++ * ^----- column
++ * ^-------- code
++ */
++ p = tp + slen;
++
++ mouse_code = getdigits(&p);
++ if (*p++ != ';')
++ return -1;
++
++ mouse_col = getdigits(&p) - 1;
++ if (*p++ != ';')
++ return -1;
++
++ mouse_row = getdigits(&p) - 1;
++ if (*p++ != 'M')
++ return -1;
++
++ slen += (int)(p - (tp + slen));
++
++ /* skip this one if next one has same code (like xterm
++ * case) */
++ j = termcodes[idx].len;
++ if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
++ /* check if the command is complete by looking for the
++ * M */
++ int slen2;
++ int cmd_complete = 0;
++ for (slen2 = slen; slen2 < len; slen2++) {
++ if (tp[slen2] == 'M') {
++ cmd_complete = 1;
++ break;
++ }
++ }
++ p += j;
++ if (cmd_complete && getdigits(&p) == mouse_code) {
++ slen += j; /* skip the \033[ */
++ continue;
++ }
++ }
++ break;
++ }
++ }
++ # endif
+
++ if (key_name[0] == (int)KS_MOUSE
++ #ifdef FEAT_MOUSE_URXVT
++ || key_name[0] == (int)KS_URXVT_MOUSE
++ #endif
++ )
++ {
+ # if !defined(MSWIN) && !defined(MSDOS)
+ /*
+ * Handle mouse events.
+*** ../vim-7.3.352/src/version.c 2011-10-26 22:02:10.000000000 +0200
+--- src/version.c 2011-10-26 23:43:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 353,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+99. The hum of a cooling fan and the click of keys is comforting to you.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.354 b/source/ap/vim/patches/7.3.354
new file mode 100644
index 000000000..8250f9af9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.354
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.354
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.354
+Problem: ":set backspace+=eol" doesn't work when 'backspace' has a
+ backwards compatible value of 2.
+Solution: Convert the number to a string. (Hirohito Higashi)
+Files: src/option.c
+
+
+*** ../vim-7.3.353/src/option.c 2011-10-12 16:57:07.000000000 +0200
+--- src/option.c 2011-11-30 11:11:15.000000000 +0100
+***************
+*** 4567,4572 ****
+--- 4567,4597 ----
+ arg = errbuf;
+ }
+ /*
++ * Convert 'backspace' number to string, for
++ * adding, prepending and removing string.
++ */
++ else if (varp == (char_u *)&p_bs
++ && VIM_ISDIGIT(**(char_u **)varp))
++ {
++ i = getdigits((char_u **)varp);
++ switch (i)
++ {
++ case 0:
++ *(char_u **)varp = empty_option;
++ break;
++ case 1:
++ *(char_u **)varp = vim_strsave(
++ (char_u *)"indent,eol");
++ break;
++ case 2:
++ *(char_u **)varp = vim_strsave(
++ (char_u *)"indent,eol,start");
++ break;
++ }
++ vim_free(oldval);
++ oldval = *(char_u **)varp;
++ }
++ /*
+ * Convert 'whichwrap' number to string, for
+ * backwards compatibility with Vim 3.0.
+ * Misuse errbuf[] for the resulting string.
+*** ../vim-7.3.353/src/version.c 2011-10-26 23:48:17.000000000 +0200
+--- src/version.c 2011-11-30 11:14:44.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 354,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+206. You religiously respond immediately to e-mail, while ignoring
+ your growing pile of snail mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.355 b/source/ap/vim/patches/7.3.355
new file mode 100644
index 000000000..51bc3b7f8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.355
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.355
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.355
+Problem: GTK warnings when using netrw.vim. (Ivan Krasilnikov)
+Solution: Do not remove the beval event handler twice.
+Files: src/option.c
+
+
+*** ../vim-7.3.354/src/option.c 2011-11-30 11:15:40.000000000 +0100
+--- src/option.c 2011-11-30 11:11:15.000000000 +0100
+***************
+*** 7796,7804 ****
+ #ifdef FEAT_BEVAL
+ else if ((int *)varp == &p_beval)
+ {
+! if (p_beval == TRUE)
+ gui_mch_enable_beval_area(balloonEval);
+! else
+ gui_mch_disable_beval_area(balloonEval);
+ }
+ #endif
+--- 7796,7804 ----
+ #ifdef FEAT_BEVAL
+ else if ((int *)varp == &p_beval)
+ {
+! if (p_beval && !old_value)
+ gui_mch_enable_beval_area(balloonEval);
+! else if (!p_beval && old_value)
+ gui_mch_disable_beval_area(balloonEval);
+ }
+ #endif
+*** ../vim-7.3.354/src/version.c 2011-11-30 11:15:40.000000000 +0100
+--- src/version.c 2011-11-30 11:30:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 355,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+209. Your house stinks because you haven't cleaned it in a week.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.356 b/source/ap/vim/patches/7.3.356
new file mode 100644
index 000000000..8b5572bdf
--- /dev/null
+++ b/source/ap/vim/patches/7.3.356
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.356
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.356
+Problem: Using "o" with 'cindent' set may freeze Vim. (lolilolicon)
+Solution: Skip over {} correctly. (Hari G)
+Files: src/misc1.c
+
+
+*** ../vim-7.3.355/src/misc1.c 2011-10-04 18:03:43.000000000 +0200
+--- src/misc1.c 2011-11-30 12:56:55.000000000 +0100
+***************
+*** 6127,6133 ****
+
+ /*
+ * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
+! * line "l".
+ */
+ static int
+ find_last_paren(l, start, end)
+--- 6127,6133 ----
+
+ /*
+ * Set w_cursor.col to the column number of the last unmatched ')' or '{' in
+! * line "l". "l" must point to the start of the line.
+ */
+ static int
+ find_last_paren(l, start, end)
+***************
+*** 6140,6146 ****
+
+ curwin->w_cursor.col = 0; /* default is start of line */
+
+! for (i = 0; l[i]; i++)
+ {
+ i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
+ i = (int)(skip_string(l + i) - l); /* ignore parens in quotes */
+--- 6140,6146 ----
+
+ curwin->w_cursor.col = 0; /* default is start of line */
+
+! for (i = 0; l[i] != NUL; i++)
+ {
+ i = (int)(cin_skipcomment(l + i) - l); /* ignore parens in comments */
+ i = (int)(skip_string(l + i) - l); /* ignore parens in quotes */
+***************
+*** 7953,7958 ****
+--- 7953,7959 ----
+ * If we're at the end of a block, skip to the start of
+ * that block.
+ */
++ l = ml_get_curline();
+ if (find_last_paren(l, '{', '}')
+ && (trypos = find_start_brace(ind_maxcomment))
+ != NULL) /* XXX */
+*** ../vim-7.3.355/src/version.c 2011-11-30 11:31:25.000000000 +0100
+--- src/version.c 2011-11-30 13:02:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 356,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+213. Your kids start referring to you as "that guy in front of the monitor."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.357 b/source/ap/vim/patches/7.3.357
new file mode 100644
index 000000000..893a6bb4f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.357
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.357
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.357
+Problem: Compiler warning in MS-Windows console build.
+Solution: Adjust return type of PrintHookProc(). (Mike Williams)
+Files: src/os_mswin.c
+
+
+*** ../vim-7.3.356/src/os_mswin.c 2011-09-21 20:09:38.000000000 +0200
+--- src/os_mswin.c 2011-11-30 13:41:13.000000000 +0100
+***************
+*** 1869,1875 ****
+
+ #ifndef FEAT_GUI
+
+! static UINT CALLBACK
+ PrintHookProc(
+ HWND hDlg, // handle to dialog box
+ UINT uiMsg, // message identifier
+--- 1869,1875 ----
+
+ #ifndef FEAT_GUI
+
+! static UINT_PTR CALLBACK
+ PrintHookProc(
+ HWND hDlg, // handle to dialog box
+ UINT uiMsg, // message identifier
+*** ../vim-7.3.356/src/version.c 2011-11-30 13:03:24.000000000 +0100
+--- src/version.c 2011-11-30 13:41:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 357,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+215. Your mouse-clicking forearm rivals Popeye's.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.358 b/source/ap/vim/patches/7.3.358
new file mode 100644
index 000000000..b9b385f87
--- /dev/null
+++ b/source/ap/vim/patches/7.3.358
@@ -0,0 +1,74 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.358
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.358 (after 7.3.353)
+Problem: Mouse support doesn't work properly.
+Solution: Add HMT_URXVT. (lilydjwg, James McCoy)
+Files: src/term.c
+
+
+*** ../vim-7.3.357/src/term.c 2011-10-26 23:48:17.000000000 +0200
+--- src/term.c 2011-11-30 14:42:22.000000000 +0100
+***************
+*** 1996,2001 ****
+--- 1996,2002 ----
+ # define HMT_DEC 4
+ # define HMT_JSBTERM 8
+ # define HMT_PTERM 16
++ # define HMT_URXVT 32
+ static int has_mouse_termcode = 0;
+ # endif
+
+***************
+*** 2031,2036 ****
+--- 2032,2042 ----
+ has_mouse_termcode |= HMT_PTERM;
+ else
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ if (n == KS_URXVT_MOUSE)
++ has_mouse_termcode |= HMT_URXVT;
++ else
++ # endif
+ has_mouse_termcode |= HMT_NORMAL;
+ # endif
+ }
+***************
+*** 2068,2073 ****
+--- 2074,2084 ----
+ has_mouse_termcode &= ~HMT_PTERM;
+ else
+ # endif
++ # ifdef FEAT_MOUSE_URXVT
++ if (n == KS_URXVT_MOUSE)
++ has_mouse_termcode &= ~HMT_URXVT;
++ else
++ # endif
+ has_mouse_termcode &= ~HMT_NORMAL;
+ # endif
+ }
+*** ../vim-7.3.357/src/version.c 2011-11-30 13:42:40.000000000 +0100
+--- src/version.c 2011-11-30 14:45:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 358,
+ /**/
+
+--
+I noticed my daughter's Disney-net password on a sticky note:
+"MickeyMinnieGoofyPluto". I asked her why it was so long.
+"Because they say it has to have at least four characters."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.359 b/source/ap/vim/patches/7.3.359
new file mode 100644
index 000000000..7fbd3f6fa
--- /dev/null
+++ b/source/ap/vim/patches/7.3.359
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.359
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.359
+Problem: Command line completion shows dict functions.
+Solution: Skip dict functions for completion. (Yasuhiro Matsumoto)
+Files: src/eval.c
+
+
+*** ../vim-7.3.358/src/eval.c 2011-10-26 13:19:23.000000000 +0200
+--- src/eval.c 2011-11-30 14:53:38.000000000 +0100
+***************
+*** 875,881 ****
+
+ #ifdef EBCDIC
+ /*
+! * Sort the function table, to enable binary sort.
+ */
+ sortFunctions();
+ #endif
+--- 875,881 ----
+
+ #ifdef EBCDIC
+ /*
+! * Sort the function table, to enable binary search.
+ */
+ sortFunctions();
+ #endif
+***************
+*** 21737,21742 ****
+--- 21737,21745 ----
+ ++hi;
+ fp = HI2UF(hi);
+
++ if (fp->uf_flags & FC_DICT)
++ return NULL; /* don't show dict functions */
++
+ if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+ return fp->uf_name; /* prevents overflow */
+
+*** ../vim-7.3.358/src/version.c 2011-11-30 14:47:12.000000000 +0100
+--- src/version.c 2011-11-30 14:56:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 359,
+ /**/
+
+--
+'Psychologist' -- Someone who looks at everyone else when
+an attractive woman enters the room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.360 b/source/ap/vim/patches/7.3.360
new file mode 100644
index 000000000..de153c835
--- /dev/null
+++ b/source/ap/vim/patches/7.3.360
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.360
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.360
+Problem: Interrupting the load of an autoload function may cause a crash.
+Solution: Do not use the hashitem when not valid. (Yukihiro Nakadaira)
+Files: src/eval.c
+
+
+*** ../vim-7.3.359/src/eval.c 2011-11-30 14:57:26.000000000 +0100
+--- src/eval.c 2011-11-30 15:06:53.000000000 +0100
+***************
+*** 19589,19597 ****
+ * worked find the variable again. Don't auto-load a script if it was
+ * loaded already, otherwise it would be loaded every time when
+ * checking if a function name is a Funcref variable. */
+! if (ht == &globvarht && !writing
+! && script_autoload(varname, FALSE) && !aborting())
+ hi = hash_find(ht, varname);
+ if (HASHITEM_EMPTY(hi))
+ return NULL;
+ }
+--- 19589,19602 ----
+ * worked find the variable again. Don't auto-load a script if it was
+ * loaded already, otherwise it would be loaded every time when
+ * checking if a function name is a Funcref variable. */
+! if (ht == &globvarht && !writing)
+! {
+! /* Note: script_autoload() may make "hi" invalid. It must either
+! * be obtained again or not used. */
+! if (!script_autoload(varname, FALSE) || aborting())
+! return NULL;
+ hi = hash_find(ht, varname);
++ }
+ if (HASHITEM_EMPTY(hi))
+ return NULL;
+ }
+*** ../vim-7.3.359/src/version.c 2011-11-30 14:57:26.000000000 +0100
+--- src/version.c 2011-11-30 15:17:28.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 360,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+217. Your sex life has drastically improved...so what if it's only cyber-sex!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.361 b/source/ap/vim/patches/7.3.361
new file mode 100644
index 000000000..c128057f9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.361
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.361
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.361
+Problem: Accessing memory after it is freed when EXITFREE is defined.
+Solution: Don't access curwin when firstwin is NULL. (Dominique Pelle)
+Files: src/buffer.c
+
+*** ../vim-7.3.360/src/buffer.c 2011-09-14 17:50:05.000000000 +0200
+--- src/buffer.c 2011-11-30 15:38:00.000000000 +0100
+***************
+*** 567,574 ****
+ diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
+ #endif
+ #ifdef FEAT_SYN_HL
+! if (curwin->w_buffer == buf)
+! reset_synblock(curwin); /* remove any ownsyntax */
+ #endif
+
+ #ifdef FEAT_FOLDING
+--- 567,575 ----
+ diff_buf_delete(buf); /* Can't use 'diff' for unloaded buffer. */
+ #endif
+ #ifdef FEAT_SYN_HL
+! /* Remove any ownsyntax, unless exiting. */
+! if (firstwin != NULL && curwin->w_buffer == buf)
+! reset_synblock(curwin);
+ #endif
+
+ #ifdef FEAT_FOLDING
+*** ../vim-7.3.360/src/version.c 2011-11-30 15:19:25.000000000 +0100
+--- src/version.c 2011-11-30 15:40:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 361,
+ /**/
+
+
+--
+From the classified section of a city newspaper:
+Dog for sale: eats anything and is fond of children.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.362 b/source/ap/vim/patches/7.3.362
new file mode 100644
index 000000000..005688617
--- /dev/null
+++ b/source/ap/vim/patches/7.3.362
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.362
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.362
+Problem: ml_get error when using ":g" with folded lines.
+Solution: Adjust the line number for changed_lines(). (Christian Brabandt)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.361/src/ex_cmds.c 2011-10-20 18:17:38.000000000 +0200
+--- src/ex_cmds.c 2011-11-30 16:58:34.000000000 +0100
+***************
+*** 820,826 ****
+ curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
+
+ if (line1 < dest)
+! changed_lines(line1, 0, dest + num_lines + 1, 0L);
+ else
+ changed_lines(dest + 1, 0, line1 + num_lines, 0L);
+
+--- 820,832 ----
+ curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
+
+ if (line1 < dest)
+! {
+! dest += num_lines + 1;
+! last_line = curbuf->b_ml.ml_line_count;
+! if (dest > last_line + 1)
+! dest = last_line + 1;
+! changed_lines(line1, 0, dest, 0L);
+! }
+ else
+ changed_lines(dest + 1, 0, line1 + num_lines, 0L);
+
+*** ../vim-7.3.361/src/version.c 2011-11-30 15:40:51.000000000 +0100
+--- src/version.c 2011-11-30 17:01:07.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 362,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+218. Your spouse hands you a gift wrapped magnet with your PC's name
+ on it and you accuse him or her of genocide.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.363 b/source/ap/vim/patches/7.3.363
new file mode 100644
index 000000000..10ab5482f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.363
@@ -0,0 +1,110 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.363
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.363
+Problem: C indenting is wrong after #endif followed by a semicolon.
+Solution: Add special handling for a semicolon in a line by itself. (Lech
+ Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.362/src/misc1.c 2011-11-30 13:03:24.000000000 +0100
+--- src/misc1.c 2011-11-30 17:10:59.000000000 +0100
+***************
+*** 8143,8148 ****
+--- 8143,8171 ----
+ break;
+
+ /*
++ * Find a line only has a semicolon that belongs to a previous
++ * line ending in '}', e.g. before an #endif. Don't increase
++ * indent then.
++ */
++ if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1))
++ {
++ pos_T curpos_save = curwin->w_cursor;
++
++ while (curwin->w_cursor.lnum > 1)
++ {
++ look = ml_get(--curwin->w_cursor.lnum);
++ if (!(cin_nocode(look) || cin_ispreproc_cont(
++ &look, &curwin->w_cursor.lnum)))
++ break;
++ }
++ if (curwin->w_cursor.lnum > 0
++ && cin_ends_in(look, (char_u *)"}", NULL))
++ break;
++
++ curwin->w_cursor = curpos_save;
++ }
++
++ /*
+ * If the PREVIOUS line is a function declaration, the current
+ * line (and the ones that follow) needs to be indented as
+ * parameters.
+*** ../vim-7.3.362/src/testdir/test3.in 2011-10-04 18:03:43.000000000 +0200
+--- src/testdir/test3.in 2011-11-30 17:05:20.000000000 +0100
+***************
+*** 1454,1459 ****
+--- 1454,1469 ----
+ printf("This line used to be indented incorrectly.\n");
+ }
+
++ int foo[]
++ #ifdef BAR
++
++ = { 1, 2, 3,
++ 4, 5, 6 }
++
++ #endif
++ ;
++ int baz;
++
+ void func3(void)
+ {
+ int tab[] = {
+*** ../vim-7.3.362/src/testdir/test3.ok 2011-10-04 18:03:43.000000000 +0200
+--- src/testdir/test3.ok 2011-11-30 17:05:20.000000000 +0100
+***************
+*** 1307,1312 ****
+--- 1307,1322 ----
+ printf("This line used to be indented incorrectly.\n");
+ }
+
++ int foo[]
++ #ifdef BAR
++
++ = { 1, 2, 3,
++ 4, 5, 6 }
++
++ #endif
++ ;
++ int baz;
++
+ void func3(void)
+ {
+ int tab[] = {
+*** ../vim-7.3.362/src/version.c 2011-11-30 17:01:55.000000000 +0100
+--- src/version.c 2011-11-30 17:06:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 363,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+220. Your wife asks for sex and you tell her where to find you on IRC.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.364 b/source/ap/vim/patches/7.3.364
new file mode 100644
index 000000000..e62ef76d9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.364
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.364
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.364 (after 7.3.353)
+Problem: Can't compile on HP-UX. (John Marriott)
+Solution: Only use TTYM_URXVT when it is defined.
+Files: src/term.c
+
+
+*** ../vim-7.3.363/src/term.c 2011-11-30 14:47:12.000000000 +0100
+--- src/term.c 2011-12-01 20:53:57.000000000 +0100
+***************
+*** 4060,4066 ****
+ if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+ {
+ /* if xterm version >= 95 use mouse dragging */
+! if (extra >= 95 && ttym_flags != TTYM_URXVT)
+ set_option_value((char_u *)"ttym", 0L,
+ (char_u *)"xterm2", 0);
+ /* if xterm version >= 141 try to get termcap codes */
+--- 4060,4070 ----
+ if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+ {
+ /* if xterm version >= 95 use mouse dragging */
+! if (extra >= 95
+! # ifdef TTYM_URXVT
+! && ttym_flags != TTYM_URXVT
+! # endif
+! )
+ set_option_value((char_u *)"ttym", 0L,
+ (char_u *)"xterm2", 0);
+ /* if xterm version >= 141 try to get termcap codes */
+*** ../vim-7.3.363/src/version.c 2011-11-30 17:20:18.000000000 +0100
+--- src/version.c 2011-12-01 20:56:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 364,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+224. You set up your own Web page. You set up a Web page for each
+ of your kids... and your pets.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.365 b/source/ap/vim/patches/7.3.365
new file mode 100644
index 000000000..16d5ad1b0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.365
@@ -0,0 +1,131 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.365
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.365
+Problem: Crash when using a large Unicode character in a file that has
+ syntax highlighting. (ngollan)
+Solution: Check for going past the end of the utf tables. (Dominique Pelle)
+Files: src/mbyte.c
+
+
+*** ../vim-7.3.364/src/mbyte.c 2011-08-10 13:21:30.000000000 +0200
+--- src/mbyte.c 2011-12-08 15:09:13.000000000 +0100
+***************
+*** 2764,2782 ****
+ int tableSize;
+ {
+ int start, mid, end; /* indices into table */
+
+ start = 0;
+! end = tableSize / sizeof(convertStruct);
+ while (start < end)
+ {
+ /* need to search further */
+! mid = (end + start) /2;
+ if (table[mid].rangeEnd < a)
+ start = mid + 1;
+ else
+ end = mid;
+ }
+! if (table[start].rangeStart <= a && a <= table[start].rangeEnd
+ && (a - table[start].rangeStart) % table[start].step == 0)
+ return (a + table[start].offset);
+ else
+--- 2764,2785 ----
+ int tableSize;
+ {
+ int start, mid, end; /* indices into table */
++ int entries = tableSize / sizeof(convertStruct);
+
+ start = 0;
+! end = entries;
+ while (start < end)
+ {
+ /* need to search further */
+! mid = (end + start) / 2;
+ if (table[mid].rangeEnd < a)
+ start = mid + 1;
+ else
+ end = mid;
+ }
+! if (start < entries
+! && table[start].rangeStart <= a
+! && a <= table[start].rangeEnd
+ && (a - table[start].rangeStart) % table[start].step == 0)
+ return (a + table[start].offset);
+ else
+***************
+*** 2791,2797 ****
+ utf_fold(a)
+ int a;
+ {
+! return utf_convert(a, foldCase, sizeof(foldCase));
+ }
+
+ static convertStruct toLower[] =
+--- 2794,2800 ----
+ utf_fold(a)
+ int a;
+ {
+! return utf_convert(a, foldCase, (int)sizeof(foldCase));
+ }
+
+ static convertStruct toLower[] =
+***************
+*** 3119,3125 ****
+ return TOUPPER_LOC(a);
+
+ /* For any other characters use the above mapping table. */
+! return utf_convert(a, toUpper, sizeof(toUpper));
+ }
+
+ int
+--- 3122,3128 ----
+ return TOUPPER_LOC(a);
+
+ /* For any other characters use the above mapping table. */
+! return utf_convert(a, toUpper, (int)sizeof(toUpper));
+ }
+
+ int
+***************
+*** 3152,3158 ****
+ return TOLOWER_LOC(a);
+
+ /* For any other characters use the above mapping table. */
+! return utf_convert(a, toLower, sizeof(toLower));
+ }
+
+ int
+--- 3155,3161 ----
+ return TOLOWER_LOC(a);
+
+ /* For any other characters use the above mapping table. */
+! return utf_convert(a, toLower, (int)sizeof(toLower));
+ }
+
+ int
+*** ../vim-7.3.364/src/version.c 2011-12-01 20:59:16.000000000 +0100
+--- src/version.c 2011-12-08 15:07:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 365,
+ /**/
+
+--
+Hear about the guy who played a blank tape at full blast?
+The mime next door went nuts.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.366 b/source/ap/vim/patches/7.3.366
new file mode 100644
index 000000000..ddf39903f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.366
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.366
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.366
+Problem: A tags file with an extremely long name causes errors.
+Solution: Ignore tags that are too long. (Arno Renevier)
+Files: src/tag.c
+
+
+*** ../vim-7.3.365/src/tag.c 2011-10-12 19:53:31.000000000 +0200
+--- src/tag.c 2011-12-08 13:32:51.000000000 +0100
+***************
+*** 1906,1917 ****
+ tagp.tagname = lbuf;
+ #ifdef FEAT_TAG_ANYWHITE
+ tagp.tagname_end = skiptowhite(lbuf);
+! if (*tagp.tagname_end == NUL) /* corrupted tag line */
+ #else
+ tagp.tagname_end = vim_strchr(lbuf, TAB);
+! if (tagp.tagname_end == NULL) /* corrupted tag line */
+ #endif
+ {
+ line_error = TRUE;
+ break;
+ }
+--- 1906,1931 ----
+ tagp.tagname = lbuf;
+ #ifdef FEAT_TAG_ANYWHITE
+ tagp.tagname_end = skiptowhite(lbuf);
+! if (*tagp.tagname_end == NUL)
+ #else
+ tagp.tagname_end = vim_strchr(lbuf, TAB);
+! if (tagp.tagname_end == NULL)
+ #endif
+ {
++ if (vim_strchr(lbuf, NL) == NULL)
++ {
++ /* Truncated line, ignore it. Has been reported for
++ * Mozilla JS with extremely long names. */
++ if (p_verbose >= 5)
++ {
++ verbose_enter();
++ MSG(_("Ignoring long line in tags file"));
++ verbose_leave();
++ }
++ continue;
++ }
++
++ /* Corrupted tag line. */
+ line_error = TRUE;
+ break;
+ }
+*** ../vim-7.3.365/src/version.c 2011-12-08 15:09:46.000000000 +0100
+--- src/version.c 2011-12-08 15:11:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 366,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+246. You use up your free 100 hours in less than a week.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.367 b/source/ap/vim/patches/7.3.367
new file mode 100644
index 000000000..2452d531c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.367
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.367
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.367
+Problem: :wundo and :rundo use a wrong checksum.
+Solution: Include the last line when computing the hash. (Christian Brabandt)
+Files: src/undo.c
+
+
+*** ../vim-7.3.366/src/undo.c 2011-01-22 21:25:07.000000000 +0100
+--- src/undo.c 2011-12-08 14:19:03.000000000 +0100
+***************
+*** 719,725 ****
+ char_u *p;
+
+ sha256_start(&ctx);
+! for (lnum = 1; lnum < curbuf->b_ml.ml_line_count; ++lnum)
+ {
+ p = ml_get(lnum);
+ sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
+--- 719,725 ----
+ char_u *p;
+
+ sha256_start(&ctx);
+! for (lnum = 1; lnum <= curbuf->b_ml.ml_line_count; ++lnum)
+ {
+ p = ml_get(lnum);
+ sha256_update(&ctx, p, (UINT32_T)(STRLEN(p) + 1));
+*** ../vim-7.3.366/src/version.c 2011-12-08 15:12:08.000000000 +0100
+--- src/version.c 2011-12-08 15:13:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 367,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+247. You use www.switchboard.com instead of dialing 411 and 555-12-12
+ for directory assistance.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.368 b/source/ap/vim/patches/7.3.368
new file mode 100644
index 000000000..958c69e71
--- /dev/null
+++ b/source/ap/vim/patches/7.3.368
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.368
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.368
+Problem: Gcc complains about redefining _FORTIFY_SOURCE.
+Solution: Undefine it before redefining it.
+Files: src/Makefile, src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.367/src/Makefile 2011-10-20 16:35:25.000000000 +0200
+--- src/Makefile 2011-12-08 15:16:13.000000000 +0100
+***************
+*** 561,568 ****
+ #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+
+ # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -D_FORTIFY_SOURCE=1
+! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -D_FORTIFY_SOURCE=1 -DU_DEBUG
+ #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+ #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+
+--- 561,568 ----
+ #CFLAGS = -g -O2 '-DSTARTUPTIME="vimstartup"' -fno-strength-reduce -Wall -Wmissing-prototypes
+
+ # Use this with GCC to check for mistakes, unused arguments, etc.
+! #CFLAGS = -g -Wall -Wextra -Wmissing-prototypes -Wunreachable-code -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
+! #CFLAGS = -g -O2 -Wall -Wextra -Wmissing-prototypes -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DU_DEBUG
+ #PYTHON_CFLAGS_EXTRA = -Wno-missing-field-initializers
+ #MZSCHEME_CFLAGS_EXTRA = -Wno-unreachable-code -Wno-unused-parameter
+
+*** ../vim-7.3.367/src/configure.in 2011-09-02 12:27:20.000000000 +0200
+--- src/configure.in 2011-12-01 20:23:22.000000000 +0100
+***************
+*** 3584,3592 ****
+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ dnl Also remove duplicate _FORTIFY_SOURCE arguments.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+--- 3584,3593 ----
+ dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
+ dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
+ dnl Also remove duplicate _FORTIFY_SOURCE arguments.
++ dnl And undefine it first to avoid a warning.
+ AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+*** ../vim-7.3.367/src/auto/configure 2011-09-02 12:27:20.000000000 +0200
+--- src/auto/configure 2011-12-01 20:24:02.000000000 +0100
+***************
+*** 12483,12492 ****
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+--- 12483,12492 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
+ fi
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need -D_FORTIFY_SOURCE=1" >&5
+ $as_echo_n "checking whether we need -D_FORTIFY_SOURCE=1... " >&6; }
+ if test "$gccmajor" -gt "3"; then
+! CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1/'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ else
+*** ../vim-7.3.367/src/version.c 2011-12-08 15:14:04.000000000 +0100
+--- src/version.c 2011-12-08 15:15:13.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 368,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+248. You sign your letters with your e-mail address instead of your name.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.369 b/source/ap/vim/patches/7.3.369
new file mode 100644
index 000000000..af6e7e6e7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.369
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.369
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.369
+Problem: When compiled with Gnome get an error message when using --help.
+Solution: Don't fork. (Ivan Krasilnikov)
+Files: src/main.c
+
+
+*** ../vim-7.3.368/src/main.c 2011-10-04 16:43:49.000000000 +0200
+--- src/main.c 2011-12-01 20:27:11.000000000 +0100
+***************
+*** 3294,3300 ****
+--- 3294,3303 ----
+ #ifdef FEAT_GUI_GNOME
+ /* Gnome gives extra messages for --help if we continue, but not for -h. */
+ if (gui.starting)
++ {
+ mch_msg("\n");
++ gui.dofork = FALSE;
++ }
+ else
+ #endif
+ mch_exit(0);
+*** ../vim-7.3.368/src/version.c 2011-12-08 15:17:28.000000000 +0100
+--- src/version.c 2011-12-08 15:57:03.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 369,
+ /**/
+
+--
+Vi is clearly superior to emacs, since "vi" has only two characters
+(and two keystrokes), while "emacs" has five. (Randy C. Ford)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.370 b/source/ap/vim/patches/7.3.370
new file mode 100644
index 000000000..26bce4d10
--- /dev/null
+++ b/source/ap/vim/patches/7.3.370
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.370
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.370
+Problem: Compiler warns for unused variable in Lua interface.
+Solution: Remove the variable.
+Files: src/if_lua.c
+
+
+*** ../vim-7.3.369/src/if_lua.c 2011-09-21 17:15:34.000000000 +0200
+--- src/if_lua.c 2011-12-01 20:19:17.000000000 +0100
+***************
+*** 1044,1056 ****
+ static int
+ luaV_open(lua_State *L)
+ {
+- luaV_Buffer *b;
+ char_u *s = NULL;
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+ if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
+! b = luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
+ return 1;
+ }
+
+--- 1044,1055 ----
+ static int
+ luaV_open(lua_State *L)
+ {
+ char_u *s = NULL;
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+ if (lua_isstring(L, 1)) s = (char_u *) lua_tostring(L, 1);
+! luaV_pushbuffer(L, buflist_new(s, NULL, 1L, BLN_LISTED));
+ return 1;
+ }
+
+*** ../vim-7.3.369/src/version.c 2011-12-08 15:57:54.000000000 +0100
+--- src/version.c 2011-12-08 15:59:35.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 370,
+ /**/
+
+--
+Emacs is a nice OS - but it lacks a good text editor.
+That's why I am using Vim. --Anonymous
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.371 b/source/ap/vim/patches/7.3.371
new file mode 100644
index 000000000..1701c1189
--- /dev/null
+++ b/source/ap/vim/patches/7.3.371
@@ -0,0 +1,75 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.371
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.371
+Problem: Crash in autocomplete. (Greg Weber)
+Solution: Check not going over allocated buffer size.
+Files: src/misc2.c
+
+
+*** ../vim-7.3.370/src/misc2.c 2011-10-26 11:40:56.000000000 +0200
+--- src/misc2.c 2011-12-08 17:49:23.000000000 +0100
+***************
+*** 4293,4298 ****
+--- 4293,4300 ----
+ static int ff_path_in_stoplist __ARGS((char_u *, int, char_u **));
+ #endif
+
++ static char_u e_pathtoolong[] = N_("E854: path too long for completion");
++
+ #if 0
+ /*
+ * if someone likes findfirst/findnext, here are the functions
+***************
+*** 4589,4594 ****
+--- 4591,4601 ----
+ len = 0;
+ while (*wc_part != NUL)
+ {
++ if (len + 5 >= MAXPATHL)
++ {
++ EMSG(_(e_pathtoolong));
++ break;
++ }
+ if (STRNCMP(wc_part, "**", 2) == 0)
+ {
+ ff_expand_buffer[len++] = *wc_part++;
+***************
+*** 4634,4639 ****
+--- 4641,4652 ----
+ }
+
+ /* create an absolute path */
++ if (STRLEN(search_ctx->ffsc_start_dir)
++ + STRLEN(search_ctx->ffsc_fix_path) + 3 >= MAXPATHL)
++ {
++ EMSG(_(e_pathtoolong));
++ goto error_return;
++ }
+ STRCPY(ff_expand_buffer, search_ctx->ffsc_start_dir);
+ add_pathsep(ff_expand_buffer);
+ STRCAT(ff_expand_buffer, search_ctx->ffsc_fix_path);
+*** ../vim-7.3.370/src/version.c 2011-12-08 16:00:12.000000000 +0100
+--- src/version.c 2011-12-08 17:46:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 371,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+253. You wait for a slow loading web page before going to the toilet.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.372 b/source/ap/vim/patches/7.3.372
new file mode 100644
index 000000000..c9978c31e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.372
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.372
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.372
+Problem: When using a command line mapping to <Up> with file name
+ completion to go one directory up, 'wildchar' is inserted.
+ (Yasuhiro Matsumoto)
+Solution: Set the KeyTyped flag.
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.371/src/ex_getln.c 2011-10-26 22:02:10.000000000 +0200
+--- src/ex_getln.c 2011-12-08 18:40:49.000000000 +0100
+***************
+*** 645,651 ****
+--- 645,655 ----
+ }
+ else if (ccline.cmdpos > i)
+ cmdline_del(i);
++
++ /* Now complete in the new directory. Set KeyTyped in case the
++ * Up key came from a mapping. */
+ c = p_wc;
++ KeyTyped = TRUE;
+ }
+ }
+
+*** ../vim-7.3.371/src/version.c 2011-12-08 17:49:31.000000000 +0100
+--- src/version.c 2011-12-08 18:42:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 372,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+255. You work for a newspaper and your editor asks you to write an
+ article about Internet addiction...in the "first person."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.373 b/source/ap/vim/patches/7.3.373
new file mode 100644
index 000000000..3e8937a03
--- /dev/null
+++ b/source/ap/vim/patches/7.3.373
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.373
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.373 (after 7.3.366)
+Problem: A tags file with an extremely long name may cause an infinite loop.
+Solution: When encountering a long name switch to linear search.
+Files: src/tag.c
+
+
+*** ../vim-7.3.372/src/tag.c 2011-12-08 15:12:08.000000000 +0100
+--- src/tag.c 2011-12-14 14:13:28.000000000 +0100
+***************
+*** 1854,1860 ****
+
+ if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+ {
+! /* binary search won't work for ignoring case, use linear
+ * search. */
+ linear = TRUE;
+ state = TS_LINEAR;
+--- 1854,1860 ----
+
+ if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic)
+ {
+! /* Binary search won't work for ignoring case, use linear
+ * search. */
+ linear = TRUE;
+ state = TS_LINEAR;
+***************
+*** 1922,1927 ****
+--- 1922,1940 ----
+ MSG(_("Ignoring long line in tags file"));
+ verbose_leave();
+ }
++ #ifdef FEAT_TAG_BINS
++ if (state != TS_LINEAR)
++ {
++ /* Avoid getting stuck. */
++ linear = TRUE;
++ state = TS_LINEAR;
++ # ifdef HAVE_FSEEKO
++ fseeko(fp, search_info.low_offset, SEEK_SET);
++ # else
++ fseek(fp, (long)search_info.low_offset, SEEK_SET);
++ # endif
++ }
++ #endif
+ continue;
+ }
+
+*** ../vim-7.3.372/src/version.c 2011-12-08 18:44:47.000000000 +0100
+--- src/version.c 2011-12-14 14:12:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 373,
+ /**/
+
+--
+ZOOT: I'm afraid our life must seem very dull and quiet compared to yours.
+ We are but eightscore young blondes, all between sixteen and
+ nineteen-and-a-half, cut off in this castle, with no one to protect us.
+ Oooh. It is a lonely life ... bathing ... dressing ... undressing ...
+ making exciting underwear....
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.374 b/source/ap/vim/patches/7.3.374
new file mode 100644
index 000000000..b312828ae
--- /dev/null
+++ b/source/ap/vim/patches/7.3.374
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.374
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.374
+Problem: ++encoding does not work properly.
+Solution: Recognize ++encoding before ++enc. (Charles Cooper)
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.373/src/ex_docmd.c 2011-10-20 21:58:20.000000000 +0200
+--- src/ex_docmd.c 2011-12-14 14:46:05.000000000 +0100
+***************
+*** 4840,4851 ****
+ #ifdef FEAT_MBYTE
+ else if (STRNCMP(arg, "enc", 3) == 0)
+ {
+! arg += 3;
+! pp = &eap->force_enc;
+! }
+! else if (STRNCMP(arg, "encoding", 8) == 0)
+! {
+! arg += 8;
+ pp = &eap->force_enc;
+ }
+ else if (STRNCMP(arg, "bad", 3) == 0)
+--- 4840,4849 ----
+ #ifdef FEAT_MBYTE
+ else if (STRNCMP(arg, "enc", 3) == 0)
+ {
+! if (STRNCMP(arg, "encoding", 8) == 0)
+! arg += 8;
+! else
+! arg += 3;
+ pp = &eap->force_enc;
+ }
+ else if (STRNCMP(arg, "bad", 3) == 0)
+*** ../vim-7.3.373/src/version.c 2011-12-14 14:15:12.000000000 +0100
+--- src/version.c 2011-12-14 14:44:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 374,
+ /**/
+
+--
+Linux is just like a wigwam: no Windows, no Gates and an Apache inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.375 b/source/ap/vim/patches/7.3.375
new file mode 100644
index 000000000..6f15fea1b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.375
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.375
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.375
+Problem: Duplicate return statement.
+Solution: Remove the superfluous one. (Dominique Pelle)
+Files: src/gui_mac.c
+
+
+*** ../vim-7.3.374/src/gui_mac.c 2011-06-19 01:14:22.000000000 +0200
+--- src/gui_mac.c 2011-12-10 17:20:59.000000000 +0100
+***************
+*** 3216,3222 ****
+ {
+ /* TODO:
+ * This proc is called when Normal is set to a value
+! * so what msut be done? I don't know
+ */
+ }
+
+--- 3216,3222 ----
+ {
+ /* TODO:
+ * This proc is called when Normal is set to a value
+! * so what must be done? I don't know
+ */
+ }
+
+***************
+*** 3303,3309 ****
+ *x = bounds.left;
+ *y = bounds.top;
+ return OK;
+- return FAIL;
+ }
+
+ /*
+--- 3303,3308 ----
+*** ../vim-7.3.374/src/version.c 2011-12-14 14:49:41.000000000 +0100
+--- src/version.c 2011-12-14 15:06:01.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 375,
+ /**/
+
+--
+GALAHAD: No look, really, this isn't nescess ...
+PIGLET: We must examine you.
+GALAHAD: There's nothing wrong with ... that.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.376 b/source/ap/vim/patches/7.3.376
new file mode 100644
index 000000000..1e20743e0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.376
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.376
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.376
+Problem: Win32: Toolbar repainting does not work when the mouse pointer
+ hovers over a button.
+Solution: Call DefWindowProc() when not handling an event. (Sergiu Dotenco)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.3.375/src/gui_w32.c 2011-08-10 17:07:56.000000000 +0200
+--- src/gui_w32.c 2011-12-14 15:14:48.000000000 +0100
+***************
+*** 1101,1107 ****
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+
+! return 1;
+ }
+
+ /*
+--- 1101,1107 ----
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+
+! return DefWindowProc(hwnd, uMsg, wParam, lParam);
+ }
+
+ /*
+*** ../vim-7.3.375/src/version.c 2011-12-14 15:07:11.000000000 +0100
+--- src/version.c 2011-12-14 15:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 376,
+ /**/
+
+--
+ GALAHAD hurries to the door and pushes through it. As he leaves the room
+ we CUT TO the reverse to show that he is now in a room full of bathing
+ and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile
+ enchantingly at him as he tries to keep walking without being diverted by
+ the lovely sights assaulting his eyeballs.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.377 b/source/ap/vim/patches/7.3.377
new file mode 100644
index 000000000..1a2df1d5c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.377
@@ -0,0 +1,406 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.377
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.377
+Problem: No support for bitwise AND, OR, XOR and invert.
+Solution: Add and(), or(), invert() and xor() functions.
+Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in,
+ src/testdir/test65.ok, runtime/doc/eval.txt
+
+
+*** ../vim-7.3.376/src/eval.c 2011-11-30 15:19:25.000000000 +0100
+--- src/eval.c 2011-12-11 13:49:31.000000000 +0100
+***************
+*** 474,479 ****
+--- 474,480 ----
+ static void f_acos __ARGS((typval_T *argvars, typval_T *rettv));
+ #endif
+ static void f_add __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_and __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_append __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_argc __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 602,607 ****
+--- 603,609 ----
+ static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_insert __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_items __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 640,645 ****
+--- 642,648 ----
+ #endif
+ static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_or __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv));
+ #ifdef FEAT_FLOAT
+ static void f_pow __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 751,756 ****
+--- 754,760 ----
+ static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv));
++ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv));
+
+ static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump));
+ static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum));
+***************
+*** 7715,7720 ****
+--- 7719,7725 ----
+ {"acos", 1, 1, f_acos}, /* WJMc */
+ #endif
+ {"add", 2, 2, f_add},
++ {"and", 2, 2, f_and},
+ {"append", 2, 2, f_append},
+ {"argc", 0, 0, f_argc},
+ {"argidx", 0, 0, f_argidx},
+***************
+*** 7850,7855 ****
+--- 7855,7861 ----
+ {"inputsave", 0, 0, f_inputsave},
+ {"inputsecret", 1, 2, f_inputsecret},
+ {"insert", 2, 3, f_insert},
++ {"invert", 1, 1, f_invert},
+ {"isdirectory", 1, 1, f_isdirectory},
+ {"islocked", 1, 1, f_islocked},
+ {"items", 1, 1, f_items},
+***************
+*** 7888,7893 ****
+--- 7894,7900 ----
+ #endif
+ {"nextnonblank", 1, 1, f_nextnonblank},
+ {"nr2char", 1, 1, f_nr2char},
++ {"or", 2, 2, f_or},
+ {"pathshorten", 1, 1, f_pathshorten},
+ #ifdef FEAT_FLOAT
+ {"pow", 2, 2, f_pow},
+***************
+*** 7999,8004 ****
+--- 8006,8012 ----
+ {"winsaveview", 0, 0, f_winsaveview},
+ {"winwidth", 1, 1, f_winwidth},
+ {"writefile", 2, 3, f_writefile},
++ {"xor", 2, 2, f_xor},
+ };
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+***************
+*** 8572,8577 ****
+--- 8580,8597 ----
+ }
+
+ /*
++ * "and(expr, expr)" function
++ */
++ static void
++ f_and(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++ & get_tv_number_chk(&argvars[1], NULL);
++ }
++
++ /*
+ * "append(lnum, string/list)" function
+ */
+ static void
+***************
+*** 12958,12963 ****
+--- 12978,12994 ----
+ }
+
+ /*
++ * "invert(expr)" function
++ */
++ static void
++ f_invert(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL);
++ }
++
++ /*
+ * "isdirectory()" function
+ */
+ static void
+***************
+*** 14108,14113 ****
+--- 14139,14156 ----
+ }
+
+ /*
++ * "or(expr, expr)" function
++ */
++ static void
++ f_or(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++ | get_tv_number_chk(&argvars[1], NULL);
++ }
++
++ /*
+ * "pathshorten()" function
+ */
+ static void
+***************
+*** 18394,18399 ****
+--- 18437,18455 ----
+ }
+
+ /*
++ * "xor(expr, expr)" function
++ */
++ static void
++ f_xor(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL)
++ ^ get_tv_number_chk(&argvars[1], NULL);
++ }
++
++
++ /*
+ * Translate a String variable into a position.
+ * Returns NULL when there is an error.
+ */
+*** ../vim-7.3.376/src/testdir/test65.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.in 2011-12-11 13:55:06.000000000 +0100
+***************
+*** 1,4 ****
+! Test for floating point.
+
+ STARTTEST
+ :so small.vim
+--- 1,4 ----
+! Test for floating point and logical operators.
+
+ STARTTEST
+ :so small.vim
+***************
+*** 72,77 ****
+--- 72,94 ----
+ :$put ='float2nr'
+ :$put =float2nr(123.456)
+ :$put =float2nr(-123.456)
++ :$put ='AND'
++ :$put =and(127, 127)
++ :$put =and(127, 16)
++ :$put =and(127, 128)
++ :$put ='OR'
++ :$put =or(16, 7)
++ :$put =or(8, 7)
++ :$put =or(0, 123)
++ :$put ='XOR'
++ :$put =xor(127, 127)
++ :$put =xor(127, 16)
++ :$put =xor(127, 128)
++ :$put ='invert'
++ :$put =and(invert(127), 65535)
++ :$put =and(invert(16), 65535)
++ :$put =and(invert(128), 65535)
++ :$put =invert(1.0)
+ :/^Results/,$wq! test.out
+ ENDTEST
+
+*** ../vim-7.3.376/src/testdir/test65.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test65.ok 2011-12-11 13:55:30.000000000 +0100
+***************
+*** 54,56 ****
+--- 54,73 ----
+ float2nr
+ 123
+ -123
++ AND
++ 127
++ 16
++ 0
++ OR
++ 23
++ 15
++ 123
++ XOR
++ 0
++ 111
++ 255
++ invert
++ 65408
++ 65519
++ 65407
++ 0
+*** ../vim-7.3.376/runtime/doc/eval.txt 2011-06-19 02:55:32.000000000 +0200
+--- runtime/doc/eval.txt 2011-12-14 15:28:23.000000000 +0100
+***************
+*** 798,808 ****
+ For |Lists| only "+" is possible and then both expr6 must be a list. The
+ result is a new list with the two lists Concatenated.
+
+! expr7 * expr7 .. number multiplication *expr-star*
+! expr7 / expr7 .. number division *expr-/*
+! expr7 % expr7 .. number modulo *expr-%*
+
+ For all, except ".", Strings are converted to Numbers.
+
+ Note the difference between "+" and ".":
+ "123" + "456" = 579
+--- 800,811 ----
+ For |Lists| only "+" is possible and then both expr6 must be a list. The
+ result is a new list with the two lists Concatenated.
+
+! expr7 * expr7 .. Number multiplication *expr-star*
+! expr7 / expr7 .. Number division *expr-/*
+! expr7 % expr7 .. Number modulo *expr-%*
+
+ For all, except ".", Strings are converted to Numbers.
++ For bitwise operators see |and()|, |or()| and |xor()|.
+
+ Note the difference between "+" and ".":
+ "123" + "456" = 579
+***************
+*** 1679,1684 ****
+--- 1688,1694 ----
+ abs( {expr}) Float or Number absolute value of {expr}
+ acos( {expr}) Float arc cosine of {expr}
+ add( {list}, {item}) List append {item} to |List| {list}
++ and( {expr}, {expr}) Number bitwise AND
+ append( {lnum}, {string}) Number append {string} below line {lnum}
+ append( {lnum}, {list}) Number append lines {list} below line {lnum}
+ argc() Number number of files in the argument list
+***************
+*** 1817,1822 ****
+--- 1827,1833 ----
+ inputsave() Number save and clear typeahead
+ inputsecret( {prompt} [, {text}]) String like input() but hiding the text
+ insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}]
++ invert( {expr}) Number bitwise invert
+ isdirectory( {directory}) Number TRUE if {directory} is a directory
+ islocked( {expr}) Number TRUE if {expr} is locked
+ items( {dict}) List key-value pairs in {dict}
+***************
+*** 1856,1861 ****
+--- 1868,1874 ----
+ mzeval( {expr}) any evaluate |MzScheme| expression
+ nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
+ nr2char( {expr}) String single char with ASCII value {expr}
++ or( {expr}, {expr}) Number bitwise OR
+ pathshorten( {expr}) String shorten directory names in a path
+ pow( {x}, {y}) Float {x} to the power of {y}
+ prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
+***************
+*** 1978,1983 ****
+--- 1992,1998 ----
+ winwidth( {nr}) Number width of window {nr}
+ writefile( {list}, {fname} [, {binary}])
+ Number write list of lines to file {fname}
++ xor( {expr}, {expr}) Number bitwise XOR
+
+ abs({expr}) *abs()*
+ Return the absolute value of {expr}. When {expr} evaluates to
+***************
+*** 2017,2022 ****
+--- 2032,2044 ----
+ Use |insert()| to add an item at another position.
+
+
++ and({expr}, {expr}) *and()*
++ Bitwise AND on the two arguments. The arguments are converted
++ to a number. A List, Dict or Float argument causes an error.
++ Example: >
++ :let flag = and(bits, 0x80)
++
++
+ append({lnum}, {expr}) *append()*
+ When {expr} is a |List|: Append each item of the |List| as a
+ text line below line {lnum} in the current buffer.
+***************
+*** 3770,3775 ****
+--- 3798,3808 ----
+ Note that when {item} is a |List| it is inserted as a single
+ item. Use |extend()| to concatenate |Lists|.
+
++ invert({expr}) *invert()*
++ Bitwise invert. The argument is converted to a number. A
++ List, Dict or Float argument causes an error. Example: >
++ :let bits = invert(bits)
++
+ isdirectory({directory}) *isdirectory()*
+ The result is a Number, which is non-zero when a directory
+ with the name {directory} exists. If {directory} doesn't
+***************
+*** 4334,4339 ****
+--- 4368,4380 ----
+ call setpos('.', save_cursor)
+ < Also see |setpos()|.
+
++ or({expr}, {expr}) *or()*
++ Bitwise OR on the two arguments. The arguments are converted
++ to a number. A List, Dict or Float argument causes an error.
++ Example: >
++ :let bits = or(bits, 0x80)
++
++
+ pathshorten({expr}) *pathshorten()*
+ Shorten directory names in the path {expr} and return the
+ result. The tail, the file name, is kept as-is. The other
+***************
+*** 6097,6103 ****
+ To copy a file byte for byte: >
+ :let fl = readfile("foo", "b")
+ :call writefile(fl, "foocopy", "b")
+! <
+
+ *feature-list*
+ There are three types of features:
+--- 6149,6163 ----
+ To copy a file byte for byte: >
+ :let fl = readfile("foo", "b")
+ :call writefile(fl, "foocopy", "b")
+!
+!
+! xor({expr}, {expr}) *xor()*
+! Bitwise XOR on the two arguments. The arguments are converted
+! to a number. A List, Dict or Float argument causes an error.
+! Example: >
+! :let bits = xor(bits, 0x80)
+!
+!
+
+ *feature-list*
+ There are three types of features:
+*** ../vim-7.3.376/src/version.c 2011-12-14 15:23:53.000000000 +0100
+--- src/version.c 2011-12-14 15:28:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 377,
+ /**/
+
+--
+DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the
+ penalty. And here in Castle Anthrax, we have but one punishment
+ ... you must tie her down on a bed ... and spank her. Come!
+GIRLS: A spanking! A spanking!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.378 b/source/ap/vim/patches/7.3.378
new file mode 100644
index 000000000..8ad3d7037
--- /dev/null
+++ b/source/ap/vim/patches/7.3.378
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.378
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.378
+Problem: When cross-compiling the check for uint32_t fails.
+Solution: Only give a warning message. (Maksim Melnikau)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.377/src/configure.in 2011-12-08 15:17:28.000000000 +0100
+--- src/configure.in 2011-12-14 19:18:36.000000000 +0100
+***************
+*** 3283,3289 ****
+ }],
+ AC_MSG_RESULT(ok),
+ AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]),
+! AC_MSG_ERROR([could not compile program using uint32_t.]))
+
+ dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+ dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+--- 3283,3289 ----
+ }],
+ AC_MSG_RESULT(ok),
+ AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]),
+! AC_MSG_WARN([cannot check uint32_t when cross-compiling.]))
+
+ dnl Check for memmove() before bcopy(), makes memmove() be used when both are
+ dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
+*** ../vim-7.3.377/src/auto/configure 2011-12-08 15:17:28.000000000 +0100
+--- src/auto/configure 2011-12-14 19:20:55.000000000 +0100
+***************
+*** 11777,11783 ****
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+ $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+ if test "$cross_compiling" = yes; then :
+! as_fn_error "could not compile program using uint32_t." "$LINENO" 5
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+--- 11777,11784 ----
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
+ $as_echo_n "checking uint32_t is 32 bits... " >&6; }
+ if test "$cross_compiling" = yes; then :
+! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5
+! $as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;}
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+*** ../vim-7.3.377/src/version.c 2011-12-14 15:32:44.000000000 +0100
+--- src/version.c 2011-12-14 19:21:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 378,
+ /**/
+
+--
+ ### Hiroshima 45, Chernobyl 86, Windows 95 ###
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.379 b/source/ap/vim/patches/7.3.379
new file mode 100644
index 000000000..fd87f9a1e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.379
@@ -0,0 +1,112 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.379
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.379
+Problem: C-indenting wrong for static enum.
+Solution: Skip over "static". (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.378/src/misc1.c 2011-11-30 17:20:18.000000000 +0100
+--- src/misc1.c 2011-12-14 19:37:48.000000000 +0100
+***************
+*** 5138,5143 ****
+--- 5138,5146 ----
+ if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7]))
+ s = cin_skipcomment(s + 7);
+
++ if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
++ s = cin_skipcomment(s + 6);
++
+ if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4]))
+ return TRUE;
+
+*** ../vim-7.3.378/src/testdir/test3.in 2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.in 2011-12-14 20:03:11.000000000 +0100
+***************
+*** 299,316 ****
+
+ enum soppie
+ {
+! yes = 0,
+! no,
+! maybe
+ };
+
+ typedef enum soppie
+ {
+! yes = 0,
+! no,
+! maybe
+ };
+
+ {
+ int a,
+ b;
+--- 299,323 ----
+
+ enum soppie
+ {
+! yes = 0,
+! no,
+! maybe
+ };
+
+ typedef enum soppie
+ {
+! yes = 0,
+! no,
+! maybe
+ };
+
++ static enum
++ {
++ yes = 0,
++ no,
++ maybe
++ } soppie;
++
+ {
+ int a,
+ b;
+*** ../vim-7.3.378/src/testdir/test3.ok 2011-11-30 17:20:18.000000000 +0100
+--- src/testdir/test3.ok 2011-12-14 19:37:48.000000000 +0100
+***************
+*** 299,304 ****
+--- 299,311 ----
+ maybe
+ };
+
++ static enum
++ {
++ yes = 0,
++ no,
++ maybe
++ } soppie;
++
+ {
+ int a,
+ b;
+*** ../vim-7.3.378/src/version.c 2011-12-14 19:22:29.000000000 +0100
+--- src/version.c 2011-12-14 20:02:19.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 379,
+ /**/
+
+--
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.380 b/source/ap/vim/patches/7.3.380
new file mode 100644
index 000000000..a8f4bcf65
--- /dev/null
+++ b/source/ap/vim/patches/7.3.380
@@ -0,0 +1,318 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.380
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.380
+Problem: C-indenting wrong for a function header.
+Solution: Skip to the start paren. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.379/src/misc1.c 2011-12-14 20:05:17.000000000 +0100
+--- src/misc1.c 2011-12-14 20:16:43.000000000 +0100
+***************
+*** 4943,4949 ****
+ static int cin_islinecomment __ARGS((char_u *));
+ static int cin_isterminated __ARGS((char_u *, int, int));
+ static int cin_isinit __ARGS((void));
+! static int cin_isfuncdecl __ARGS((char_u **, linenr_T));
+ static int cin_isif __ARGS((char_u *));
+ static int cin_iselse __ARGS((char_u *));
+ static int cin_isdo __ARGS((char_u *));
+--- 4943,4949 ----
+ static int cin_islinecomment __ARGS((char_u *));
+ static int cin_isterminated __ARGS((char_u *, int, int));
+ static int cin_isinit __ARGS((void));
+! static int cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int));
+ static int cin_isif __ARGS((char_u *));
+ static int cin_iselse __ARGS((char_u *));
+ static int cin_isdo __ARGS((char_u *));
+***************
+*** 5585,5605 ****
+ * "sp" points to a string with the line. When looking at other lines it must
+ * be restored to the line. When it's NULL fetch lines here.
+ * "lnum" is where we start looking.
+ */
+ static int
+! cin_isfuncdecl(sp, first_lnum)
+ char_u **sp;
+ linenr_T first_lnum;
+ {
+ char_u *s;
+ linenr_T lnum = first_lnum;
+ int retval = FALSE;
+
+ if (sp == NULL)
+ s = ml_get(lnum);
+ else
+ s = *sp;
+
+ /* Ignore line starting with #. */
+ if (cin_ispreproc(s))
+ return FALSE;
+--- 5585,5621 ----
+ * "sp" points to a string with the line. When looking at other lines it must
+ * be restored to the line. When it's NULL fetch lines here.
+ * "lnum" is where we start looking.
++ * "min_lnum" is the line before which we will not be looking.
+ */
+ static int
+! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment)
+ char_u **sp;
+ linenr_T first_lnum;
++ linenr_T min_lnum;
++ int ind_maxparen;
++ int ind_maxcomment;
+ {
+ char_u *s;
+ linenr_T lnum = first_lnum;
+ int retval = FALSE;
++ pos_T *trypos;
++ int just_started = TRUE;
+
+ if (sp == NULL)
+ s = ml_get(lnum);
+ else
+ s = *sp;
+
++ if (find_last_paren(s, '(', ')')
++ && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL)
++ {
++ lnum = trypos->lnum;
++ if (lnum < min_lnum)
++ return FALSE;
++
++ s = ml_get(lnum);
++ }
++
+ /* Ignore line starting with #. */
+ if (cin_ispreproc(s))
+ return FALSE;
+***************
+*** 5650,5662 ****
+ /* Require a comma at end of the line or a comma or ')' at the
+ * start of next line. */
+ s = skipwhite(s);
+! if (!comma && *s != ',' && *s != ')')
+ break;
+ }
+ else if (cin_iscomment(s)) /* ignore comments */
+ s = cin_skipcomment(s);
+ else
+ ++s;
+ }
+
+ done:
+--- 5666,5682 ----
+ /* Require a comma at end of the line or a comma or ')' at the
+ * start of next line. */
+ s = skipwhite(s);
+! if (!just_started && (!comma && *s != ',' && *s != ')'))
+ break;
++ just_started = FALSE;
+ }
+ else if (cin_iscomment(s)) /* ignore comments */
+ s = cin_skipcomment(s);
+ else
++ {
+ ++s;
++ just_started = FALSE;
++ }
+ }
+
+ done:
+***************
+*** 7158,7164 ****
+ * (it's a variable declaration).
+ */
+ if (start_brace != BRACE_IN_COL0
+! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+ {
+ /* if the line is terminated with another ','
+ * it is a continued variable initialization.
+--- 7178,7185 ----
+ * (it's a variable declaration).
+ */
+ if (start_brace != BRACE_IN_COL0
+! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum,
+! 0, ind_maxparen, ind_maxcomment))
+ {
+ /* if the line is terminated with another ','
+ * it is a continued variable initialization.
+***************
+*** 8019,8025 ****
+ && vim_strchr(theline, '}') == NULL
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1)
+ && !cin_isterminated(theline, FALSE, TRUE))
+ {
+ amount = ind_func_type;
+--- 8040,8048 ----
+ && vim_strchr(theline, '}') == NULL
+ && !cin_ends_in(theline, (char_u *)":", NULL)
+ && !cin_ends_in(theline, (char_u *)",", NULL)
+! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1,
+! cur_curpos.lnum + 1,
+! ind_maxparen, ind_maxcomment)
+ && !cin_isterminated(theline, FALSE, TRUE))
+ {
+ amount = ind_func_type;
+***************
+*** 8125,8131 ****
+ * If the line looks like a function declaration, and we're
+ * not in a comment, put it the left margin.
+ */
+! if (cin_isfuncdecl(NULL, cur_curpos.lnum)) /* XXX */
+ break;
+ l = ml_get_curline();
+
+--- 8148,8155 ----
+ * If the line looks like a function declaration, and we're
+ * not in a comment, put it the left margin.
+ */
+! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0,
+! ind_maxparen, ind_maxcomment)) /* XXX */
+ break;
+ l = ml_get_curline();
+
+***************
+*** 8173,8179 ****
+ * line (and the ones that follow) needs to be indented as
+ * parameters.
+ */
+! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum))
+ {
+ amount = ind_param;
+ break;
+--- 8197,8204 ----
+ * line (and the ones that follow) needs to be indented as
+ * parameters.
+ */
+! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0,
+! ind_maxparen, ind_maxcomment))
+ {
+ amount = ind_param;
+ break;
+*** ../vim-7.3.379/src/testdir/test3.in 2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.in 2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1429,1435 ****
+
+ STARTTEST
+ :set cino&
+! 2kdd=4][
+ ENDTEST
+
+ void func(void)
+--- 1429,1435 ----
+
+ STARTTEST
+ :set cino&
+! 2kdd=7][
+ ENDTEST
+
+ void func(void)
+***************
+*** 1478,1484 ****
+ 3, 4,
+ 5, 6};
+
+! printf("Don't you dare indent this line incorrectly!\n);
+ }
+
+ STARTTEST
+--- 1478,1506 ----
+ 3, 4,
+ 5, 6};
+
+! printf("Don't you dare indent this line incorrectly!\n");
+! }
+!
+! void
+! func4(a, b,
+! c)
+! int a;
+! int b;
+! int c;
+! {
+! }
+!
+! void
+! func5(
+! int a,
+! int b)
+! {
+! }
+!
+! void
+! func6(
+! int a)
+! {
+ }
+
+ STARTTEST
+*** ../vim-7.3.379/src/testdir/test3.ok 2011-12-14 20:05:17.000000000 +0100
+--- src/testdir/test3.ok 2011-12-14 20:11:24.000000000 +0100
+***************
+*** 1331,1337 ****
+ 3, 4,
+ 5, 6};
+
+! printf("Don't you dare indent this line incorrectly!\n);
+ }
+
+
+--- 1331,1359 ----
+ 3, 4,
+ 5, 6};
+
+! printf("Don't you dare indent this line incorrectly!\n");
+! }
+!
+! void
+! func4(a, b,
+! c)
+! int a;
+! int b;
+! int c;
+! {
+! }
+!
+! void
+! func5(
+! int a,
+! int b)
+! {
+! }
+!
+! void
+! func6(
+! int a)
+! {
+ }
+
+
+*** ../vim-7.3.379/src/version.c 2011-12-14 20:05:17.000000000 +0100
+--- src/version.c 2011-12-14 20:20:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 380,
+ /**/
+
+--
+"Intelligence has much less practical application than you'd think."
+ -- Scott Adams, Dilbert.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.381 b/source/ap/vim/patches/7.3.381
new file mode 100644
index 000000000..b79573792
--- /dev/null
+++ b/source/ap/vim/patches/7.3.381
@@ -0,0 +1,260 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.381
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.381
+Problem: Configure silently skips interfaces that won't work.
+Solution: Add the --enable-fail_if_missing argument. (Shlomi Fish)
+Files: src/Makefile, src/configure.in, src/auto/configure
+
+
+*** ../vim-7.3.380/src/Makefile 2011-12-08 15:17:28.000000000 +0100
+--- src/Makefile 2011-12-14 20:49:26.000000000 +0100
+***************
+*** 389,394 ****
+--- 389,399 ----
+ #CONF_OPT_PLTHOME = --with-plthome=/usr/local/drscheme
+ #CONF_OPT_PLTHOME = --with-plthome=/home/me/mz
+
++ # Uncomment the next line to fail if one of the requested language interfaces
++ # cannot be configured. Without this Vim will be build anyway, without
++ # the failing interfaces.
++ #CONF_OPT_FAIL = --enable-fail-if-missing
++
+ # PERL
+ # Uncomment one of these when you want to include the Perl interface.
+ # First one is for static linking, second one for dynamic loading.
+***************
+*** 1648,1654 ****
+ CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+ ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+! $(CONF_OPT_DARWIN) $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+ $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+ $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+ $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+--- 1653,1660 ----
+ CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \
+ LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \
+ ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \
+! $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \
+! $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \
+ $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \
+ $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \
+ $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \
+*** ../vim-7.3.380/src/configure.in 2011-12-14 19:22:29.000000000 +0100
+--- src/configure.in 2011-12-14 20:46:36.000000000 +0100
+***************
+*** 28,33 ****
+--- 28,43 ----
+ AC_HEADER_STDC
+ AC_HEADER_SYS_WAIT
+
++ dnl Check for the flag that fails if stuff are missing.
++
++ AC_MSG_CHECKING(--enable-fail-if-missing argument)
++ AC_ARG_ENABLE(fail_if_missing,
++ [ --enable-fail-if-missing Fail if dependencies on additional features
++ specified on the command line are missing.],
++ [fail_if_missing="yes"],
++ [fail_if_missing="no"])
++ AC_MSG_RESULT($fail_if_missing)
++
+ dnl Set default value for CFLAGS if none is defined or it's empty
+ if test -z "$CFLAGS"; then
+ CFLAGS="-O"
+***************
+*** 491,496 ****
+--- 501,509 ----
+ LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+ fi
+ fi
++ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++ AC_MSG_ERROR([could not configure lua])
++ fi
+ AC_SUBST(LUA_SRC)
+ AC_SUBST(LUA_OBJ)
+ AC_SUBST(LUA_PRO)
+***************
+*** 781,786 ****
+--- 794,803 ----
+ PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++ AC_MSG_ERROR([could not configure perl])
++ fi
+ fi
+ AC_SUBST(shrpenv)
+ AC_SUBST(PERL_SRC)
+***************
+*** 966,971 ****
+--- 983,992 ----
+ AC_MSG_RESULT(too old)
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++ AC_MSG_ERROR([could not configure python])
++ fi
+ fi
+
+ AC_SUBST(PYTHON_CONFDIR)
+***************
+*** 1389,1394 ****
+--- 1410,1418 ----
+ AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
+ fi
+ fi
++ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++ AC_MSG_ERROR([could not configure Tcl])
++ fi
+ fi
+ AC_SUBST(TCL_SRC)
+ AC_SUBST(TCL_OBJ)
+***************
+*** 1469,1474 ****
+--- 1493,1502 ----
+ AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++ AC_MSG_ERROR([could not configure Ruby])
++ fi
+ fi
+ AC_SUBST(RUBY_SRC)
+ AC_SUBST(RUBY_OBJ)
+*** ../vim-7.3.380/src/auto/configure 2011-12-14 19:22:29.000000000 +0100
+--- src/auto/configure 2011-12-14 20:49:51.000000000 +0100
+***************
+*** 741,746 ****
+--- 741,747 ----
+ ac_subst_files=''
+ ac_user_opts='
+ enable_option_checking
++ enable_fail_if_missing
+ enable_darwin
+ with_mac_arch
+ with_developer_dir
+***************
+*** 1418,1423 ****
+--- 1419,1426 ----
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
++ --enable-fail-if-missing Fail if dependencies on additional features
++ specified on the command line are missing.
+ --disable-darwin Disable Darwin (Mac OS X) support.
+ --disable-selinux Don't check for SELinux support.
+ --disable-xsmp Disable XSMP session management
+***************
+*** 3949,3954 ****
+--- 3952,3970 ----
+ fi
+
+
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5
++ $as_echo_n "checking --enable-fail-if-missing argument... " >&6; }
++ # Check whether --enable-fail_if_missing was given.
++ if test "${enable_fail_if_missing+set}" = set; then :
++ enableval=$enable_fail_if_missing; fail_if_missing="yes"
++ else
++ fail_if_missing="no"
++ fi
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5
++ $as_echo "$fail_if_missing" >&6; }
++
+ if test -z "$CFLAGS"; then
+ CFLAGS="-O"
+ test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
+***************
+*** 4727,4732 ****
+--- 4743,4751 ----
+ LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS"
+ fi
+ fi
++ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then
++ as_fn_error "could not configure lua" "$LINENO" 5
++ fi
+
+
+
+***************
+*** 5140,5145 ****
+--- 5159,5168 ----
+ PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS"
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then
++ as_fn_error "could not configure perl" "$LINENO" 5
++ fi
+ fi
+
+
+***************
+*** 5429,5434 ****
+--- 5452,5461 ----
+ $as_echo "too old" >&6; }
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then
++ as_fn_error "could not configure python" "$LINENO" 5
++ fi
+ fi
+
+
+***************
+*** 6216,6221 ****
+--- 6243,6251 ----
+ $as_echo "too old; need Tcl version 8.0 or later" >&6; }
+ fi
+ fi
++ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then
++ as_fn_error "could not configure Tcl" "$LINENO" 5
++ fi
+ fi
+
+
+***************
+*** 6353,6358 ****
+--- 6383,6392 ----
+ $as_echo "too old; need Ruby version 1.6.0 or later" >&6; }
+ fi
+ fi
++
++ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then
++ as_fn_error "could not configure Ruby" "$LINENO" 5
++ fi
+ fi
+
+
+*** ../vim-7.3.380/src/version.c 2011-12-14 20:21:29.000000000 +0100
+--- src/version.c 2011-12-14 20:50:42.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 381,
+ /**/
+
+--
+The psychic said, "God bless you." I said, "I didn't sneeze." She
+looked deep into my eyes and said, "You will, eventually." And, damn
+if she wasn't right. Two days later, I sneezed. --Ellen Degeneres
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.382 b/source/ap/vim/patches/7.3.382
new file mode 100644
index 000000000..7f344e7e1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.382
@@ -0,0 +1,173 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.382
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.382 (after 7.3.376)
+Problem: IME characters are inserted twice.
+Solution: Do not call DefWindowProc() if the event was handled. (Yasuhiro
+ Matsumoto)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.3.381/src/gui_w32.c 2011-12-14 15:23:53.000000000 +0100
+--- src/gui_w32.c 2011-12-15 21:50:51.000000000 +0100
+***************
+*** 798,804 ****
+ if (pt.y < rect.top)
+ {
+ show_tabline_popup_menu();
+! return 0;
+ }
+ }
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+--- 798,804 ----
+ if (pt.y < rect.top)
+ {
+ show_tabline_popup_menu();
+! return 0L;
+ }
+ }
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+***************
+*** 828,834 ****
+--- 828,837 ----
+
+ case WM_ENDSESSION:
+ if (wParam) /* system only really goes down when wParam is TRUE */
++ {
+ _OnEndSession();
++ return 0L;
++ }
+ break;
+
+ case WM_CHAR:
+***************
+*** 866,872 ****
+ * are received, mouse pointer remains hidden. */
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ #else
+! return 0;
+ #endif
+
+ case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
+--- 869,875 ----
+ * are received, mouse pointer remains hidden. */
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+ #else
+! return 0L;
+ #endif
+
+ case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */
+***************
+*** 874,880 ****
+
+ case WM_MOUSEWHEEL:
+ _OnMouseWheel(hwnd, HIWORD(wParam));
+! break;
+
+ /* Notification for change in SystemParametersInfo() */
+ case WM_SETTINGCHANGE:
+--- 877,883 ----
+
+ case WM_MOUSEWHEEL:
+ _OnMouseWheel(hwnd, HIWORD(wParam));
+! return 0L;
+
+ /* Notification for change in SystemParametersInfo() */
+ case WM_SETTINGCHANGE:
+***************
+*** 987,999 ****
+--- 990,1008 ----
+ case TCN_SELCHANGE:
+ if (gui_mch_showing_tabline()
+ && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++ {
+ send_tabline_event(TabCtrl_GetCurSel(s_tabhwnd) + 1);
++ return 0L;
++ }
+ break;
+
+ case NM_RCLICK:
+ if (gui_mch_showing_tabline()
+ && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd)
++ {
+ show_tabline_popup_menu();
++ return 0L;
++ }
+ break;
+ # endif
+ default:
+***************
+*** 1037,1042 ****
+--- 1046,1052 ----
+ out_flush();
+ did_menu_tip = TRUE;
+ }
++ return 0L;
+ }
+ break;
+ #endif
+***************
+*** 1079,1096 ****
+ case WM_IME_NOTIFY:
+ if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+! break;
+ case WM_IME_COMPOSITION:
+ if (!_OnImeComposition(hwnd, wParam, lParam))
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+! break;
+ #endif
+
+ default:
+ if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+ { /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+ _OnMouseWheel(hwnd, HIWORD(wParam));
+! break;
+ }
+ #ifdef MSWIN_FIND_REPLACE
+ else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+--- 1089,1107 ----
+ case WM_IME_NOTIFY:
+ if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam))
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+! return 1L;
+!
+ case WM_IME_COMPOSITION:
+ if (!_OnImeComposition(hwnd, wParam, lParam))
+ return MyWindowProc(hwnd, uMsg, wParam, lParam);
+! return 1L;
+ #endif
+
+ default:
+ if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0)
+ { /* handle MSH_MOUSEWHEEL messages for Intellimouse */
+ _OnMouseWheel(hwnd, HIWORD(wParam));
+! return 0L;
+ }
+ #ifdef MSWIN_FIND_REPLACE
+ else if (uMsg == s_findrep_msg && s_findrep_msg != 0)
+*** ../vim-7.3.381/src/version.c 2011-12-14 20:51:19.000000000 +0100
+--- src/version.c 2011-12-15 21:48:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 382,
+ /**/
+
+--
+Even got a Datapoint 3600(?) with a DD50 connector instead of the
+usual DB25... what a nightmare trying to figure out the pinout
+for *that* with no spex...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.383 b/source/ap/vim/patches/7.3.383
new file mode 100644
index 000000000..c0ce6d905
--- /dev/null
+++ b/source/ap/vim/patches/7.3.383
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.383
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.383
+Problem: For EBCDIC pound sign is defined as 't'.
+Solution: Correctly define POUND.
+Files: src/ascii.h
+
+
+*** ../vim-7.3.382/src/ascii.h 2011-09-02 14:18:14.000000000 +0200
+--- src/ascii.h 2011-12-17 21:38:36.000000000 +0100
+***************
+*** 123,129 ****
+ #define DCS 0x90 /* Device Control String */
+ #define STERM 0x9c /* String Terminator */
+
+! #define POUND '\xA3'
+
+ #define CTRL_F_STR "\056"
+ #define CTRL_H_STR "\026"
+--- 123,129 ----
+ #define DCS 0x90 /* Device Control String */
+ #define STERM 0x9c /* String Terminator */
+
+! #define POUND 0xB1
+
+ #define CTRL_F_STR "\056"
+ #define CTRL_H_STR "\026"
+*** ../vim-7.3.382/src/version.c 2011-12-15 21:51:32.000000000 +0100
+--- src/version.c 2011-12-23 12:46:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 383,
+ /**/
+
+--
+Vim is like Emacs without all the typing. (John "Johann" Spetz)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.384 b/source/ap/vim/patches/7.3.384
new file mode 100644
index 000000000..f75ff4082
--- /dev/null
+++ b/source/ap/vim/patches/7.3.384
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.384
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.384
+Problem: Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary
+ completion.
+Solution: Add CTRL-K to the list of recognized keys. (James McCoy)
+Files: src/edit.c
+
+
+*** ../vim-7.3.383/src/edit.c 2011-10-26 17:04:23.000000000 +0200
+--- src/edit.c 2011-12-23 12:36:22.000000000 +0100
+***************
+*** 2183,2189 ****
+ || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+ || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+ || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+! || c == Ctrl_S || c == 's');
+ case CTRL_X_SCROLL:
+ return (c == Ctrl_Y || c == Ctrl_E);
+ case CTRL_X_WHOLE_LINE:
+--- 2183,2189 ----
+ || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P
+ || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V
+ || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O
+! || c == Ctrl_S || c == Ctrl_K || c == 's');
+ case CTRL_X_SCROLL:
+ return (c == Ctrl_Y || c == Ctrl_E);
+ case CTRL_X_WHOLE_LINE:
+*** ../vim-7.3.383/src/version.c 2011-12-23 12:46:56.000000000 +0100
+--- src/version.c 2011-12-23 12:53:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 384,
+ /**/
+
+--
+Q: Is selling software the same as selling hardware?
+A: No, good hardware is sold new, good software has already been used by many.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.385 b/source/ap/vim/patches/7.3.385
new file mode 100644
index 000000000..405a77f00
--- /dev/null
+++ b/source/ap/vim/patches/7.3.385
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.385
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.385
+Problem: When using an expression mapping on the command line the cursor
+ ends up in the wrong place. (Yasuhiro Matsumoto)
+Solution: Save and restore msg_col and msg_row when evaluating the
+ expression.
+Files: src/getchar.
+
+
+*** ../vim-7.3.384/src/getchar.c 2011-10-12 22:02:07.000000000 +0200
+--- src/getchar.c 2011-12-14 18:37:52.000000000 +0100
+***************
+*** 4510,4515 ****
+--- 4510,4517 ----
+ char_u *expr;
+ char_u *save_cmd;
+ pos_T save_cursor;
++ int save_msg_col;
++ int save_msg_row;
+
+ /* Remove escaping of CSI, because "str" is in a format to be used as
+ * typeahead. */
+***************
+*** 4533,4544 ****
+--- 4535,4550 ----
+ #endif
+ set_vim_var_char(c); /* set v:char to the typed character */
+ save_cursor = curwin->w_cursor;
++ save_msg_col = msg_col;
++ save_msg_row = msg_row;
+ p = eval_to_string(expr, NULL, FALSE);
+ --textlock;
+ #ifdef FEAT_EX_EXTRA
+ --ex_normal_lock;
+ #endif
+ curwin->w_cursor = save_cursor;
++ msg_col = save_msg_col;
++ msg_row = save_msg_row;
+
+ restore_cmdline_alloc(save_cmd);
+ vim_free(expr);
+*** ../vim-7.3.384/src/version.c 2011-12-23 13:14:58.000000000 +0100
+--- src/version.c 2011-12-23 14:53:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 385,
+ /**/
+
+--
+`When any government, or any church for that matter, undertakes to say to
+ its subjects, "This you may not read, this you must not see, this you are
+ forbidden to know," the end result is tyranny and oppression no matter how
+ holy the motives' -- Robert A Heinlein, "If this goes on --"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.386 b/source/ap/vim/patches/7.3.386
new file mode 100644
index 000000000..c9035050c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.386
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.386
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.386
+Problem: Test 83 fails when iconv does not support cp932. (raf)
+Solution: Test if conversion works. (Yukihiro Nakadaira)
+Files: src/testdir/test83.in
+
+
+*** ../vim-7.3.385/src/testdir/test83.in 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/test83.in 2011-12-21 21:01:44.000000000 +0100
+***************
+*** 2,8 ****
+
+ STARTTEST
+ :so mbyte.vim
+! :if !has('iconv')
+ : e! test.ok
+ : w! test.out
+ : qa!
+--- 2,8 ----
+
+ STARTTEST
+ :so mbyte.vim
+! :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+ : e! test.ok
+ : w! test.out
+ : qa!
+*** ../vim-7.3.385/src/version.c 2011-12-23 14:54:01.000000000 +0100
+--- src/version.c 2011-12-23 14:55:38.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 386,
+ /**/
+
+--
+WOMAN: King of the who?
+ARTHUR: The Britons.
+WOMAN: Who are the Britons?
+ARTHUR: Well, we all are. we're all Britons and I am your king.
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.387 b/source/ap/vim/patches/7.3.387
new file mode 100644
index 000000000..6b20a58a4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.387
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.387
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.387 (after 7.3.386)
+Problem: Test 83 may fail for some encodings.
+Solution: Set 'encoding' to utf-8 earlier.
+Files: src/testdir/test83.in
+
+
+*** ../vim-7.3.386/src/testdir/test83.in 2011-12-23 14:56:24.000000000 +0100
+--- src/testdir/test83.in 2011-12-30 13:05:05.000000000 +0100
+***************
+*** 2,13 ****
+
+ STARTTEST
+ :so mbyte.vim
+ :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+ : e! test.ok
+ : w! test.out
+ : qa!
+ :endif
+- :set enc=utf8
+
+ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+--- 2,13 ----
+
+ STARTTEST
+ :so mbyte.vim
++ :set enc=utf8
+ :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
+ : e! test.ok
+ : w! test.out
+ : qa!
+ :endif
+
+ :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
+ :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
+*** ../vim-7.3.386/src/version.c 2011-12-23 14:56:24.000000000 +0100
+--- src/version.c 2011-12-30 13:06:17.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 387,
+ /**/
+
+--
+Mental Floss prevents moral decay!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.388 b/source/ap/vim/patches/7.3.388
new file mode 100644
index 000000000..7a6df8952
--- /dev/null
+++ b/source/ap/vim/patches/7.3.388
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.388
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.388
+Problem: Crash on exit when EXITFREE is defined and using tiny features.
+Solution: Check for NULL window pointer. (Dominique Pelle)
+Files: src/buffer.c
+
+
+*** ../vim-7.3.387/src/buffer.c 2011-11-30 15:40:51.000000000 +0100
+--- src/buffer.c 2011-12-30 13:35:26.000000000 +0100
+***************
+*** 419,424 ****
+--- 419,426 ----
+ if (
+ #ifdef FEAT_WINDOWS
+ win_valid(win) &&
++ #else
++ win != NULL &&
+ #endif
+ win->w_buffer == buf)
+ win->w_buffer = NULL; /* make sure we don't use the buffer now */
+*** ../vim-7.3.387/src/version.c 2011-12-30 13:09:15.000000000 +0100
+--- src/version.c 2011-12-30 13:37:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 388,
+ /**/
+
+--
+Be nice to your kids... they'll be the ones choosing your nursing home.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.389 b/source/ap/vim/patches/7.3.389
new file mode 100644
index 000000000..c8a968c36
--- /dev/null
+++ b/source/ap/vim/patches/7.3.389
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.389
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.389
+Problem: After typing at a prompt the "MORE" message appears too soon.
+Solution: reset lines_left in msg_end_prompt(). (Eswald)
+Files: src/message.c
+
+
+*** ../vim-7.3.388/src/message.c 2011-09-14 15:39:26.000000000 +0200
+--- src/message.c 2011-12-30 14:08:05.000000000 +0100
+***************
+*** 85,91 ****
+ * need_wait_return to be set. This is a hack to make ":ts"
+ * work without an extra prompt.
+ * lines_left Number of lines available for messages before the
+! * more-prompt is to be given.
+ * need_wait_return TRUE when the hit-return prompt is needed.
+ * Reset: After giving the hit-return prompt, when the user
+ * has answered some other prompt.
+--- 85,91 ----
+ * need_wait_return to be set. This is a hack to make ":ts"
+ * work without an extra prompt.
+ * lines_left Number of lines available for messages before the
+! * more-prompt is to be given. -1 when not set.
+ * need_wait_return TRUE when the hit-return prompt is needed.
+ * Reset: After giving the hit-return prompt, when the user
+ * has answered some other prompt.
+***************
+*** 855,860 ****
+--- 855,861 ----
+ cmdline_row = msg_row;
+ msg_col = 0;
+ msg_clr_eos();
++ lines_left = -1;
+ }
+ #endif
+
+*** ../vim-7.3.388/src/version.c 2011-12-30 13:39:04.000000000 +0100
+--- src/version.c 2011-12-30 14:11:00.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 389,
+ /**/
+
+--
+Proofread carefully to see if you any words out.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.390 b/source/ap/vim/patches/7.3.390
new file mode 100644
index 000000000..7199f8e18
--- /dev/null
+++ b/source/ap/vim/patches/7.3.390
@@ -0,0 +1,155 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.390
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.390
+Problem: Using NULL buffer pointer in a window.
+Solution: Check for w_buffer being NULL in more places. (Bjorn Winckler)
+Files: src/ex_cmds.c, src/quickfix.c, src/window.c
+
+
+*** ../vim-7.3.389/src/ex_cmds.c 2011-11-30 17:01:55.000000000 +0100
+--- src/ex_cmds.c 2011-12-30 14:59:57.000000000 +0100
+***************
+*** 3390,3395 ****
+--- 3390,3402 ----
+ (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
+
+ #ifdef FEAT_AUTOCMD
++ /* Autocommands may open a new window and leave oldwin open
++ * which leads to crashes since the above call sets
++ * oldwin->w_buffer to NULL. */
++ if (curwin != oldwin && oldwin != aucmd_win
++ && win_valid(oldwin) && oldwin->w_buffer == NULL)
++ win_close(oldwin, FALSE);
++
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+ {
+*** ../vim-7.3.389/src/quickfix.c 2011-08-10 18:36:49.000000000 +0200
+--- src/quickfix.c 2011-12-30 14:45:19.000000000 +0100
+***************
+*** 2675,2681 ****
+ bt_quickfix(buf)
+ buf_T *buf;
+ {
+! return (buf->b_p_bt[0] == 'q');
+ }
+
+ /*
+--- 2675,2681 ----
+ bt_quickfix(buf)
+ buf_T *buf;
+ {
+! return buf != NULL && buf->b_p_bt[0] == 'q';
+ }
+
+ /*
+***************
+*** 2686,2693 ****
+ bt_nofile(buf)
+ buf_T *buf;
+ {
+! return (buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+! || buf->b_p_bt[0] == 'a';
+ }
+
+ /*
+--- 2686,2693 ----
+ bt_nofile(buf)
+ buf_T *buf;
+ {
+! return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
+! || buf->b_p_bt[0] == 'a');
+ }
+
+ /*
+***************
+*** 2697,2703 ****
+ bt_dontwrite(buf)
+ buf_T *buf;
+ {
+! return (buf->b_p_bt[0] == 'n');
+ }
+
+ int
+--- 2697,2703 ----
+ bt_dontwrite(buf)
+ buf_T *buf;
+ {
+! return buf != NULL && buf->b_p_bt[0] == 'n';
+ }
+
+ int
+*** ../vim-7.3.389/src/window.c 2011-09-14 14:43:21.000000000 +0200
+--- src/window.c 2011-12-30 14:44:18.000000000 +0100
+***************
+*** 2170,2176 ****
+
+ /* When closing the help window, try restoring a snapshot after closing
+ * the window. Otherwise clear the snapshot, it's now invalid. */
+! if (win->w_buffer->b_help)
+ help_window = TRUE;
+ else
+ clear_snapshot(curtab, SNAP_HELP_IDX);
+--- 2170,2176 ----
+
+ /* When closing the help window, try restoring a snapshot after closing
+ * the window. Otherwise clear the snapshot, it's now invalid. */
+! if (win->w_buffer != NULL && win->w_buffer->b_help)
+ help_window = TRUE;
+ else
+ clear_snapshot(curtab, SNAP_HELP_IDX);
+***************
+*** 2214,2226 ****
+
+ #ifdef FEAT_SYN_HL
+ /* Free independent synblock before the buffer is freed. */
+! reset_synblock(win);
+ #endif
+
+ /*
+ * Close the link to the buffer.
+ */
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+--- 2214,2228 ----
+
+ #ifdef FEAT_SYN_HL
+ /* Free independent synblock before the buffer is freed. */
+! if (win->w_buffer != NULL)
+! reset_synblock(win);
+ #endif
+
+ /*
+ * Close the link to the buffer.
+ */
+! if (win->w_buffer != NULL)
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+*** ../vim-7.3.389/src/version.c 2011-12-30 14:14:16.000000000 +0100
+--- src/version.c 2011-12-30 14:38:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 390,
+ /**/
+
+--
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.391 b/source/ap/vim/patches/7.3.391
new file mode 100644
index 000000000..0a1bcceb5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.391
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.391
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.391
+Problem: Can't check if the XPM_W32 feature is enabled.
+Solution: Add xpm_w32 to the list of features. (kat)
+Files: src/eval.c
+
+
+*** ../vim-7.3.390/src/eval.c 2011-12-14 15:32:44.000000000 +0100
+--- src/eval.c 2012-01-04 14:33:22.000000000 +0100
+***************
+*** 12260,12265 ****
+--- 12260,12268 ----
+ #ifdef FEAT_XFONTSET
+ "xfontset",
+ #endif
++ #ifdef FEAT_XPM_W32
++ "xpm_w32",
++ #endif
+ #ifdef USE_XSMP
+ "xsmp",
+ #endif
+*** ../vim-7.3.390/src/version.c 2011-12-30 15:01:55.000000000 +0100
+--- src/version.c 2012-01-04 14:34:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 391,
+ /**/
+
+--
+ROBIN: The what?
+ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics
+ Brother Maynard always carries with him.
+ALL: Yes. Of course.
+ARTHUR: (shouting) Bring up the Holy Hand Grenade!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.392 b/source/ap/vim/patches/7.3.392
new file mode 100644
index 000000000..a603d90e2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.392
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.392
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.392
+Problem: When setting 'undofile' while the file is already loaded but
+ unchanged, try reading the undo file. (Andy Wokula)
+Solution: Compute a checksum of the text when 'undofile' is set. (Christian
+ Brabandt)
+Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok
+
+
+*** ../vim-7.3.391/src/option.c 2011-11-30 11:31:25.000000000 +0100
+--- src/option.c 2012-01-04 19:34:11.000000000 +0100
+***************
+*** 7516,7521 ****
+--- 7516,7545 ----
+ compatible_set();
+ }
+
++ #ifdef FEAT_PERSISTENT_UNDO
++ /* 'undofile' */
++ else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf)
++ {
++ char_u hash[UNDO_HASH_SIZE];
++ buf_T *save_curbuf = curbuf;
++
++ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
++ {
++ /* When 'undofile' is set globally: for every buffer, otherwise
++ * only for the current buffer: Try to read in the undofile, if
++ * one exists and the buffer wasn't changed. */
++ if ((curbuf == save_curbuf
++ || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
++ && !curbufIsChanged())
++ {
++ u_compute_hash(hash);
++ u_read_undo(NULL, hash, curbuf->b_fname);
++ }
++ }
++ curbuf = save_curbuf;
++ }
++ #endif
++
+ /* 'list', 'number' */
+ else if ((int *)varp == &curwin->w_p_list
+ || (int *)varp == &curwin->w_p_nu
+*** ../vim-7.3.391/src/testdir/test72.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.in 2012-01-04 19:04:17.000000000 +0100
+***************
+*** 51,56 ****
+--- 51,62 ----
+ :e Xtestfile
+ uuu:w >>test.out
+ :"
++ :" Test that reading the undofiles when setting undofile works
++ :set noundofile ul=0
++ i
++ u:e! Xtestfile
++ :set undofile ul=100
++ uuuuuu:w >>test.out
+ :" And now with encryption, cryptmethod=zip
+ :e! Xtestfile
+ :set undofile cm=zip
+*** ../vim-7.3.391/src/testdir/test72.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test72.ok 2012-01-04 19:04:17.000000000 +0100
+***************
+*** 7,12 ****
+--- 7,22 ----
+ eight
+ nine
+ ten
++ one
++ two
++ three
++ four
++ five
++ six
++ seven
++ eight
++ nine
++ ten
+ monday
+ wednesday
+ thursday
+*** ../vim-7.3.391/src/version.c 2012-01-04 14:35:31.000000000 +0100
+--- src/version.c 2012-01-04 19:33:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 392,
+ /**/
+
+--
+BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
+ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O
+ Lord bless this thy hand grenade that with it thou mayest
+ blow thine enemies to tiny bits, in thy mercy. "and the Lord
+ did grin and people did feast upon the lambs and sloths and
+ carp and anchovies and orang-utans and breakfast cereals and
+ fruit bats and...
+BROTHER MAYNARD: Skip a bit brother ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.393 b/source/ap/vim/patches/7.3.393
new file mode 100644
index 000000000..ca6cbc96d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.393
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.393
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.393
+Problem: Win32: When resizing Vim it is always moved to the primary monitor
+ if the secondary monitor is on the left.
+Solution: Use the nearest monitor. (Yukihiro Nakadaira)
+Files: src/gui_w32.c
+
+
+*** ../vim-7.3.392/src/gui_w32.c 2011-12-15 21:51:32.000000000 +0100
+--- src/gui_w32.c 2012-01-04 20:25:58.000000000 +0100
+***************
+*** 1661,1669 ****
+ {
+ RECT workarea_rect;
+ int win_width, win_height;
+- int win_xpos, win_ypos;
+ WINDOWPLACEMENT wndpl;
+- int workarea_left;
+
+ /* Try to keep window completely on screen. */
+ /* Get position of the screen work area. This is the part that is not
+--- 1661,1667 ----
+***************
+*** 1685,1693 ****
+ GetWindowPlacement(s_hwnd, &wndpl);
+ }
+
+- win_xpos = wndpl.rcNormalPosition.left;
+- win_ypos = wndpl.rcNormalPosition.top;
+-
+ /* compute the size of the outside of the window */
+ win_width = width + GetSystemMetrics(SM_CXFRAME) * 2;
+ win_height = height + GetSystemMetrics(SM_CYFRAME) * 2
+--- 1683,1688 ----
+***************
+*** 1697,1732 ****
+ #endif
+ ;
+
+! /* There is an inconsistency when using two monitors and Vim is on the
+! * second (right) one: win_xpos will be the offset from the workarea of
+! * the left monitor. While with one monitor it's the offset from the
+! * workarea (including a possible taskbar on the left). Detect the second
+! * monitor by checking for the left offset to be quite big. */
+! if (workarea_rect.left > 300)
+! workarea_left = 0;
+! else
+! workarea_left = workarea_rect.left;
+
+! /* If the window is going off the screen, move it on to the screen.
+! * win_xpos and win_ypos are relative to the workarea. */
+ if ((direction & RESIZE_HOR)
+! && workarea_left + win_xpos + win_width > workarea_rect.right)
+! win_xpos = workarea_rect.right - win_width - workarea_left;
+
+! if ((direction & RESIZE_HOR) && win_xpos < 0)
+! win_xpos = 0;
+
+ if ((direction & RESIZE_VERT)
+! && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom)
+! win_ypos = workarea_rect.bottom - win_height - workarea_rect.top;
+
+! if ((direction & RESIZE_VERT) && win_ypos < 0)
+! win_ypos = 0;
+!
+! wndpl.rcNormalPosition.left = win_xpos;
+! wndpl.rcNormalPosition.right = win_xpos + win_width;
+! wndpl.rcNormalPosition.top = win_ypos;
+! wndpl.rcNormalPosition.bottom = win_ypos + win_height;
+
+ /* set window position - we should use SetWindowPlacement rather than
+ * SetWindowPos as the MSDN docs say the coord systems returned by
+--- 1692,1723 ----
+ #endif
+ ;
+
+! /* The following should take care of keeping Vim on the same monitor, no
+! * matter if the secondary monitor is left or right of the primary
+! * monitor. */
+! wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width;
+! wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height;
+
+! /* If the window is going off the screen, move it on to the screen. */
+ if ((direction & RESIZE_HOR)
+! && wndpl.rcNormalPosition.right > workarea_rect.right)
+! OffsetRect(&wndpl.rcNormalPosition,
+! workarea_rect.right - wndpl.rcNormalPosition.right, 0);
+
+! if ((direction & RESIZE_HOR)
+! && wndpl.rcNormalPosition.left < workarea_rect.left)
+! OffsetRect(&wndpl.rcNormalPosition,
+! workarea_rect.left - wndpl.rcNormalPosition.left, 0);
+
+ if ((direction & RESIZE_VERT)
+! && wndpl.rcNormalPosition.bottom > workarea_rect.bottom)
+! OffsetRect(&wndpl.rcNormalPosition,
+! 0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom);
+
+! if ((direction & RESIZE_VERT)
+! && wndpl.rcNormalPosition.top < workarea_rect.top)
+! OffsetRect(&wndpl.rcNormalPosition,
+! 0, workarea_rect.top - wndpl.rcNormalPosition.top);
+
+ /* set window position - we should use SetWindowPlacement rather than
+ * SetWindowPos as the MSDN docs say the coord systems returned by
+*** ../vim-7.3.392/src/version.c 2012-01-04 19:34:32.000000000 +0100
+--- src/version.c 2012-01-04 20:28:57.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 393,
+ /**/
+
+--
+I wonder, do vegetarians eat fruit bats?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.394 b/source/ap/vim/patches/7.3.394
new file mode 100644
index 000000000..20c7cffec
--- /dev/null
+++ b/source/ap/vim/patches/7.3.394
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.394
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.394
+Problem: When placing a mark while starting up a screen redraw messes up
+ the screen. (lith)
+Solution: Don't redraw while still starting up. (Christian Brabandt)
+Files: src/screen.c
+
+
+*** ../vim-7.3.393/src/screen.c 2011-09-02 14:07:31.000000000 +0200
+--- src/screen.c 2012-01-10 12:36:52.000000000 +0100
+***************
+*** 764,772 ****
+ doit = TRUE;
+ }
+
+! /* Return when there is nothing to do or screen updating already
+! * happening. */
+! if (!doit || updating_screen)
+ return;
+
+ /* update all windows that need updating */
+--- 764,776 ----
+ doit = TRUE;
+ }
+
+! /* Return when there is nothing to do, screen updating is already
+! * happening (recursive call) or still starting up. */
+! if (!doit || updating_screen
+! #ifdef FEAT_GUI
+! || gui.starting
+! #endif
+! || starting)
+ return;
+
+ /* update all windows that need updating */
+*** ../vim-7.3.393/src/version.c 2012-01-04 20:29:18.000000000 +0100
+--- src/version.c 2012-01-10 12:41:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 394,
+ /**/
+
+--
+It is illegal for anyone to try and stop a child from playfully jumping over
+puddles of water.
+ [real standing law in California, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.395 b/source/ap/vim/patches/7.3.395
new file mode 100644
index 000000000..cb2689395
--- /dev/null
+++ b/source/ap/vim/patches/7.3.395
@@ -0,0 +1,115 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.395
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.395 (after 7.3.251)
+Problem: "dv?bar" in the last line deletes too much and breaks undo.
+Solution: Only adjust the cursor position when it's after the last line of
+ the buffer. Add a test. (Christian Brabandt)
+Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok
+
+
+*** ../vim-7.3.394/src/ops.c 2011-09-21 17:33:49.000000000 +0200
+--- src/ops.c 2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1961,1968 ****
+ /* Special case: gH<Del> deletes the last line. */
+ del_lines(1L, FALSE);
+ curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+! if (curwin->w_cursor.lnum > 1)
+! --curwin->w_cursor.lnum;
+ }
+ else
+ {
+--- 1962,1969 ----
+ /* Special case: gH<Del> deletes the last line. */
+ del_lines(1L, FALSE);
+ curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+ }
+ else
+ {
+***************
+*** 4434,4440 ****
+ #endif
+
+ /*
+! * implementation of the format operator 'gq'
+ */
+ void
+ op_format(oap, keep_cursor)
+--- 4435,4441 ----
+ #endif
+
+ /*
+! * Implementation of the format operator 'gq'.
+ */
+ void
+ op_format(oap, keep_cursor)
+*** ../vim-7.3.394/src/testdir/test43.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.in 2012-01-10 13:41:13.000000000 +0100
+***************
+*** 13,19 ****
+ x:set magic
+ /\v(a)(b)\2\1\1/e
+ x/\V[ab]\(\[xy]\)\1
+! x:?^1?,$w! test.out
+ :qa!
+ ENDTEST
+
+--- 13,23 ----
+ x:set magic
+ /\v(a)(b)\2\1\1/e
+ x/\V[ab]\(\[xy]\)\1
+! x:$
+! :set undolevels=100
+! dv?bar?
+! Yup:"
+! :?^1?,$w! test.out
+ :qa!
+ ENDTEST
+
+***************
+*** 25,27 ****
+--- 29,33 ----
+ 6 x ^aa$ x
+ 7 (a)(b) abbaa
+ 8 axx [ab]xx
++ 9 foobar
++
+*** ../vim-7.3.394/src/testdir/test43.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test43.ok 2012-01-10 13:42:39.000000000 +0100
+***************
+*** 6,8 ****
+--- 6,11 ----
+ 6 x aa$ x
+ 7 (a)(b) abba
+ 8 axx ab]xx
++ 9 foobar
++ 9 foo
++
+*** ../vim-7.3.394/src/version.c 2012-01-10 12:42:05.000000000 +0100
+--- src/version.c 2012-01-10 13:30:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 395,
+ /**/
+
+--
+The Law, in its majestic equality, forbids the rich, as well as the
+poor, to sleep under the bridges, to beg in the streets, and to steal
+bread. -- Anatole France
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.396 b/source/ap/vim/patches/7.3.396
new file mode 100644
index 000000000..72b55a29c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.396
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.396
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.396
+Problem: After forcing an operator to be characterwise it can still become
+ linewise when spanning whole lines.
+Solution: Don't make the operator linewise when motion_force was set.
+ (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.3.395/src/ops.c 2012-01-10 13:44:23.000000000 +0100
+--- src/ops.c 2012-01-10 13:28:05.000000000 +0100
+***************
+*** 1648,1653 ****
+--- 1648,1654 ----
+ && !oap->block_mode
+ #endif
+ && oap->line_count > 1
++ && oap->motion_force == NUL
+ && oap->op_type == OP_DELETE)
+ {
+ ptr = ml_get(oap->end.lnum) + oap->end.col;
+*** ../vim-7.3.395/src/version.c 2012-01-10 13:44:23.000000000 +0100
+--- src/version.c 2012-01-10 13:45:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 396,
+ /**/
+
+--
+Any sufficiently advanced technology is indistinguishable from magic.
+ Arthur C. Clarke
+Any sufficiently advanced bug is indistinguishable from a feature.
+ Rich Kulawiec
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.397 b/source/ap/vim/patches/7.3.397
new file mode 100644
index 000000000..866b3aaca
--- /dev/null
+++ b/source/ap/vim/patches/7.3.397
@@ -0,0 +1,224 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.397
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.397
+Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or
+ latin1.
+Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto)
+Files: src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro
+
+
+*** ../vim-7.3.396/src/quickfix.c 2011-12-30 15:01:55.000000000 +0100
+--- src/quickfix.c 2012-01-10 16:18:51.000000000 +0100
+***************
+*** 3914,3919 ****
+--- 3914,3929 ----
+ regmatch.rm_ic = FALSE;
+ if (regmatch.regprog != NULL)
+ {
++ #ifdef FEAT_MBYTE
++ vimconv_T vc;
++
++ /* Help files are in utf-8 or latin1, convert lines when 'encoding'
++ * differs. */
++ vc.vc_type = CONV_NONE;
++ if (!enc_utf8)
++ convert_setup(&vc, (char_u *)"utf-8", p_enc);
++ #endif
++
+ /* create a new quickfix list */
+ qf_new_list(qi, *eap->cmdlinep);
+
+***************
+*** 3948,3968 ****
+ lnum = 1;
+ while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+ {
+! if (vim_regexec(&regmatch, IObuff, (colnr_T)0))
+ {
+! int l = (int)STRLEN(IObuff);
+
+ /* remove trailing CR, LF, spaces, etc. */
+! while (l > 0 && IObuff[l - 1] <= ' ')
+! IObuff[--l] = NUL;
+
+ if (qf_add_entry(qi, &prevp,
+ NULL, /* dir */
+ fnames[fi],
+ 0,
+! IObuff,
+ lnum,
+! (int)(regmatch.startp[0] - IObuff)
+ + 1, /* col */
+ FALSE, /* vis_col */
+ NULL, /* search pattern */
+--- 3958,3990 ----
+ lnum = 1;
+ while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int)
+ {
+! char_u *line = IObuff;
+! #ifdef FEAT_MBYTE
+! /* Convert a line if 'encoding' is not utf-8 and
+! * the line contains a non-ASCII character. */
+! if (vc.vc_type != CONV_NONE
+! && has_non_ascii(IObuff)) {
+! line = string_convert(&vc, IObuff, NULL);
+! if (line == NULL)
+! line = IObuff;
+! }
+! #endif
+!
+! if (vim_regexec(&regmatch, line, (colnr_T)0))
+ {
+! int l = (int)STRLEN(line);
+
+ /* remove trailing CR, LF, spaces, etc. */
+! while (l > 0 && line[l - 1] <= ' ')
+! line[--l] = NUL;
+
+ if (qf_add_entry(qi, &prevp,
+ NULL, /* dir */
+ fnames[fi],
+ 0,
+! line,
+ lnum,
+! (int)(regmatch.startp[0] - line)
+ + 1, /* col */
+ FALSE, /* vis_col */
+ NULL, /* search pattern */
+***************
+*** 3972,3980 ****
+--- 3994,4010 ----
+ ) == FAIL)
+ {
+ got_int = TRUE;
++ #ifdef FEAT_MBYTE
++ if (line != IObuff)
++ vim_free(line);
++ #endif
+ break;
+ }
+ }
++ #ifdef FEAT_MBYTE
++ if (line != IObuff)
++ vim_free(line);
++ #endif
+ ++lnum;
+ line_breakcheck();
+ }
+***************
+*** 3984,3990 ****
+--- 4014,4025 ----
+ FreeWild(fcount, fnames);
+ }
+ }
++
+ vim_free(regmatch.regprog);
++ #ifdef FEAT_MBYTE
++ if (vc.vc_type != CONV_NONE)
++ convert_setup(&vc, NULL, NULL);
++ #endif
+
+ qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE;
+ qi->qf_lists[qi->qf_curlist].qf_ptr =
+*** ../vim-7.3.396/src/spell.c 2011-09-02 14:18:14.000000000 +0200
+--- src/spell.c 2012-01-10 16:19:33.000000000 +0100
+***************
+*** 5020,5026 ****
+ static int str_equal __ARGS((char_u *s1, char_u *s2));
+ static void add_fromto __ARGS((spellinfo_T *spin, garray_T *gap, char_u *from, char_u *to));
+ static int sal_to_bool __ARGS((char_u *s));
+- static int has_non_ascii __ARGS((char_u *s));
+ static void spell_free_aff __ARGS((afffile_T *aff));
+ static int spell_read_dic __ARGS((spellinfo_T *spin, char_u *fname, afffile_T *affile));
+ static int get_affix_flags __ARGS((afffile_T *affile, char_u *afflist));
+--- 5020,5025 ----
+***************
+*** 6485,6507 ****
+ }
+
+ /*
+- * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
+- * When "s" is NULL FALSE is returned.
+- */
+- static int
+- has_non_ascii(s)
+- char_u *s;
+- {
+- char_u *p;
+-
+- if (s != NULL)
+- for (p = s; *p != NUL; ++p)
+- if (*p >= 128)
+- return TRUE;
+- return FALSE;
+- }
+-
+- /*
+ * Free the structure filled by spell_read_aff().
+ */
+ static void
+--- 6484,6489 ----
+*** ../vim-7.3.396/src/misc2.c 2011-12-08 17:49:31.000000000 +0100
+--- src/misc2.c 2012-01-10 16:25:53.000000000 +0100
+***************
+*** 6541,6543 ****
+--- 6541,6563 ----
+ #endif
+
+ #endif
++
++ #if (defined(FEAT_MBYTE) && defined(FEAT_QUICKFIX)) \
++ || defined(FEAT_SPELL) || defined(PROTO)
++ /*
++ * Return TRUE if string "s" contains a non-ASCII character (128 or higher).
++ * When "s" is NULL FALSE is returned.
++ */
++ int
++ has_non_ascii(s)
++ char_u *s;
++ {
++ char_u *p;
++
++ if (s != NULL)
++ for (p = s; *p != NUL; ++p)
++ if (*p >= 128)
++ return TRUE;
++ return FALSE;
++ }
++ #endif
+*** ../vim-7.3.396/src/proto/misc2.pro 2011-07-07 16:20:45.000000000 +0200
+--- src/proto/misc2.pro 2012-01-10 16:20:03.000000000 +0100
+***************
+*** 116,119 ****
+--- 116,120 ----
+ char_u *read_string __ARGS((FILE *fd, int cnt));
+ int put_bytes __ARGS((FILE *fd, long_u nr, int len));
+ void put_time __ARGS((FILE *fd, time_t the_time));
++ int has_non_ascii __ARGS((char_u *s));
+ /* vim: set ft=c : */
+*** ../vim-7.3.396/src/version.c 2012-01-10 13:46:18.000000000 +0100
+--- src/version.c 2012-01-10 16:26:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 397,
+ /**/
+
+--
+Biting someone with your natural teeth is "simple assault," while biting
+someone with your false teeth is "aggravated assault."
+ [real standing law in Louisana, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.398 b/source/ap/vim/patches/7.3.398
new file mode 100644
index 000000000..8d4b21381
--- /dev/null
+++ b/source/ap/vim/patches/7.3.398
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.398
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.398
+Problem: When creating more than 10 location lists and adding items one by
+ one a previous location may be used. (Audrius Kažukauskas)
+Solution: Clear the location list completely when adding the tenth one.
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.397/src/quickfix.c 2012-01-10 16:28:41.000000000 +0100
+--- src/quickfix.c 2012-01-10 16:58:52.000000000 +0100
+***************
+*** 899,906 ****
+ }
+ else
+ qi->qf_curlist = qi->qf_listcount++;
+! qi->qf_lists[qi->qf_curlist].qf_index = 0;
+! qi->qf_lists[qi->qf_curlist].qf_count = 0;
+ if (qf_title != NULL)
+ {
+ char_u *p = alloc((int)STRLEN(qf_title) + 2);
+--- 899,905 ----
+ }
+ else
+ qi->qf_curlist = qi->qf_listcount++;
+! vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T)));
+ if (qf_title != NULL)
+ {
+ char_u *p = alloc((int)STRLEN(qf_title) + 2);
+***************
+*** 909,916 ****
+ if (p != NULL)
+ sprintf((char *)p, ":%s", (char *)qf_title);
+ }
+- else
+- qi->qf_lists[qi->qf_curlist].qf_title = NULL;
+ }
+
+ /*
+--- 908,913 ----
+*** ../vim-7.3.397/src/version.c 2012-01-10 16:28:41.000000000 +0100
+--- src/version.c 2012-01-10 17:13:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 398,
+ /**/
+
+--
+Why don't cannibals eat clowns?
+Because they taste funny.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.399 b/source/ap/vim/patches/7.3.399
new file mode 100644
index 000000000..33d063020
--- /dev/null
+++ b/source/ap/vim/patches/7.3.399
@@ -0,0 +1,137 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.399
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.399
+Problem: ":cd" doesn't work when the path contains wildcards. (Yukihiro
+ Nakadaira)
+Solution: Ignore wildcard errors when the EW_NOTWILD flag is used.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.398/src/misc1.c 2011-12-14 20:21:29.000000000 +0100
+--- src/misc1.c 2012-01-10 17:57:42.000000000 +0100
+***************
+*** 9103,9117 ****
+ }
+
+ /* compile the regexp into a program */
+! if (flags & EW_NOERROR)
+ ++emsg_silent;
+ regmatch.rm_ic = TRUE; /* Always ignore case */
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+! if (flags & EW_NOERROR)
+ --emsg_silent;
+ vim_free(pat);
+
+! if (regmatch.regprog == NULL)
+ {
+ vim_free(buf);
+ return 0;
+--- 9103,9117 ----
+ }
+
+ /* compile the regexp into a program */
+! if (flags & (EW_NOERROR | EW_NOTWILD))
+ ++emsg_silent;
+ regmatch.rm_ic = TRUE; /* Always ignore case */
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+! if (flags & (EW_NOERROR | EW_NOTWILD))
+ --emsg_silent;
+ vim_free(pat);
+
+! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+ {
+ vim_free(buf);
+ return 0;
+***************
+*** 9179,9185 ****
+ * all entries found with "matchname". */
+ if ((p[0] != '.' || starts_with_dot)
+ && (matchname == NULL
+! || vim_regexec(&regmatch, p, (colnr_T)0)
+ || ((flags & EW_NOTWILD)
+ && fnamencmp(path + (s - buf), p, e - s) == 0)))
+ {
+--- 9179,9186 ----
+ * all entries found with "matchname". */
+ if ((p[0] != '.' || starts_with_dot)
+ && (matchname == NULL
+! || (regmatch.regprog != NULL
+! && vim_regexec(&regmatch, p, (colnr_T)0))
+ || ((flags & EW_NOTWILD)
+ && fnamencmp(path + (s - buf), p, e - s) == 0)))
+ {
+***************
+*** 9419,9428 ****
+ else
+ regmatch.rm_ic = FALSE; /* Don't ignore case */
+ #endif
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
+ vim_free(pat);
+
+! if (regmatch.regprog == NULL)
+ {
+ vim_free(buf);
+ return 0;
+--- 9420,9433 ----
+ else
+ regmatch.rm_ic = FALSE; /* Don't ignore case */
+ #endif
++ if (flags & (EW_NOERROR | EW_NOTWILD))
++ ++emsg_silent;
+ regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
++ if (flags & (EW_NOERROR | EW_NOTWILD))
++ --emsg_silent;
+ vim_free(pat);
+
+! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0)
+ {
+ vim_free(buf);
+ return 0;
+***************
+*** 9452,9458 ****
+ if (dp == NULL)
+ break;
+ if ((dp->d_name[0] != '.' || starts_with_dot)
+! && (vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0)
+ || ((flags & EW_NOTWILD)
+ && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+ {
+--- 9457,9464 ----
+ if (dp == NULL)
+ break;
+ if ((dp->d_name[0] != '.' || starts_with_dot)
+! && ((regmatch.regprog != NULL && vim_regexec(&regmatch,
+! (char_u *)dp->d_name, (colnr_T)0))
+ || ((flags & EW_NOTWILD)
+ && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0)))
+ {
+*** ../vim-7.3.398/src/version.c 2012-01-10 17:13:48.000000000 +0100
+--- src/version.c 2012-01-10 18:21:05.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 399,
+ /**/
+
+--
+Close your shells, or I'll kill -9 you
+Tomorrow I'll quota you
+Remember the disks'll always be full
+And then while I'm away
+I'll write ~ everyday
+And I'll send-pr all my buggings to you.
+ [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.400 b/source/ap/vim/patches/7.3.400
new file mode 100644
index 000000000..c621a8811
--- /dev/null
+++ b/source/ap/vim/patches/7.3.400
@@ -0,0 +1,1762 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.400
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.400
+Problem: Compiler warnings for shadowed variables.
+Solution: Remove or rename the variables.
+Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c,
+ src/getchar.c, src/message.c, src/misc2.c, src/move.c,
+ src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c,
+ src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c
+
+
+*** ../vim-7.3.399/src/charset.c 2010-08-15 21:57:25.000000000 +0200
+--- src/charset.c 2012-01-10 21:55:50.000000000 +0100
+***************
+*** 463,503 ****
+ if (enc_utf8)
+ {
+ int c = utf_ptr2char(STR_PTR(i));
+! int ol = utf_ptr2len(STR_PTR(i));
+ int lc = utf_tolower(c);
+
+ /* Only replace the character when it is not an invalid
+ * sequence (ASCII character or more than one byte) and
+ * utf_tolower() doesn't return the original character. */
+! if ((c < 0x80 || ol > 1) && c != lc)
+ {
+! int nl = utf_char2len(lc);
+
+ /* If the byte length changes need to shift the following
+ * characters forward or backward. */
+! if (ol != nl)
+ {
+! if (nl > ol)
+ {
+! if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL
+! : len + nl - ol >= buflen)
+ {
+ /* out of memory, keep old char */
+ lc = c;
+! nl = ol;
+ }
+ }
+! if (ol != nl)
+ {
+ if (buf == NULL)
+ {
+! STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol);
+! ga.ga_len += nl - ol;
+ }
+ else
+ {
+! STRMOVE(buf + i + nl, buf + i + ol);
+! len += nl - ol;
+ }
+ }
+ }
+--- 463,504 ----
+ if (enc_utf8)
+ {
+ int c = utf_ptr2char(STR_PTR(i));
+! int olen = utf_ptr2len(STR_PTR(i));
+ int lc = utf_tolower(c);
+
+ /* Only replace the character when it is not an invalid
+ * sequence (ASCII character or more than one byte) and
+ * utf_tolower() doesn't return the original character. */
+! if ((c < 0x80 || olen > 1) && c != lc)
+ {
+! int nlen = utf_char2len(lc);
+
+ /* If the byte length changes need to shift the following
+ * characters forward or backward. */
+! if (olen != nlen)
+ {
+! if (nlen > olen)
+ {
+! if (buf == NULL
+! ? ga_grow(&ga, nlen - olen + 1) == FAIL
+! : len + nlen - olen >= buflen)
+ {
+ /* out of memory, keep old char */
+ lc = c;
+! nlen = olen;
+ }
+ }
+! if (olen != nlen)
+ {
+ if (buf == NULL)
+ {
+! STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen);
+! ga.ga_len += nlen - olen;
+ }
+ else
+ {
+! STRMOVE(buf + i + nlen, buf + i + olen);
+! len += nlen - olen;
+ }
+ }
+ }
+*** ../vim-7.3.399/src/digraph.c 2010-08-15 21:57:28.000000000 +0200
+--- src/digraph.c 2012-01-10 21:57:16.000000000 +0100
+***************
+*** 2080,2092 ****
+ /*
+ * Lookup the pair "char1", "char2" in the digraph tables.
+ * If no match, return "char2".
+! * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80.
+ */
+ static int
+! getexactdigraph(char1, char2, meta)
+ int char1;
+ int char2;
+! int meta;
+ {
+ int i;
+ int retval = 0;
+--- 2080,2092 ----
+ /*
+ * Lookup the pair "char1", "char2" in the digraph tables.
+ * If no match, return "char2".
+! * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80.
+ */
+ static int
+! getexactdigraph(char1, char2, meta_char)
+ int char1;
+ int char2;
+! int meta_char;
+ {
+ int i;
+ int retval = 0;
+***************
+*** 2159,2165 ****
+
+ if (retval == 0) /* digraph deleted or not found */
+ {
+! if (char1 == ' ' && meta) /* <space> <char> --> meta-char */
+ return (char2 | 0x80);
+ return char2;
+ }
+--- 2159,2165 ----
+
+ if (retval == 0) /* digraph deleted or not found */
+ {
+! if (char1 == ' ' && meta_char) /* <space> <char> --> meta-char */
+ return (char2 | 0x80);
+ return char2;
+ }
+***************
+*** 2171,2186 ****
+ * Allow for both char1-char2 and char2-char1
+ */
+ int
+! getdigraph(char1, char2, meta)
+ int char1;
+ int char2;
+! int meta;
+ {
+ int retval;
+
+! if (((retval = getexactdigraph(char1, char2, meta)) == char2)
+ && (char1 != char2)
+! && ((retval = getexactdigraph(char2, char1, meta)) == char1))
+ return char2;
+ return retval;
+ }
+--- 2171,2186 ----
+ * Allow for both char1-char2 and char2-char1
+ */
+ int
+! getdigraph(char1, char2, meta_char)
+ int char1;
+ int char2;
+! int meta_char;
+ {
+ int retval;
+
+! if (((retval = getexactdigraph(char1, char2, meta_char)) == char2)
+ && (char1 != char2)
+! && ((retval = getexactdigraph(char2, char1, meta_char)) == char1))
+ return char2;
+ return retval;
+ }
+*** ../vim-7.3.399/src/edit.c 2011-12-23 13:14:58.000000000 +0100
+--- src/edit.c 2012-01-10 21:58:28.000000000 +0100
+***************
+*** 4003,4026 ****
+ ins_compl_add_dict(dict)
+ dict_T *dict;
+ {
+! dictitem_T *refresh;
+! dictitem_T *words;
+
+ /* Check for optional "refresh" item. */
+ compl_opt_refresh_always = FALSE;
+! refresh = dict_find(dict, (char_u *)"refresh", 7);
+! if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING)
+ {
+! char_u *v = refresh->di_tv.vval.v_string;
+
+ if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+ compl_opt_refresh_always = TRUE;
+ }
+
+ /* Add completions from a "words" list. */
+! words = dict_find(dict, (char_u *)"words", 5);
+! if (words != NULL && words->di_tv.v_type == VAR_LIST)
+! ins_compl_add_list(words->di_tv.vval.v_list);
+ }
+
+ /*
+--- 4003,4026 ----
+ ins_compl_add_dict(dict)
+ dict_T *dict;
+ {
+! dictitem_T *di_refresh;
+! dictitem_T *di_words;
+
+ /* Check for optional "refresh" item. */
+ compl_opt_refresh_always = FALSE;
+! di_refresh = dict_find(dict, (char_u *)"refresh", 7);
+! if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING)
+ {
+! char_u *v = di_refresh->di_tv.vval.v_string;
+
+ if (v != NULL && STRCMP(v, (char_u *)"always") == 0)
+ compl_opt_refresh_always = TRUE;
+ }
+
+ /* Add completions from a "words" list. */
+! di_words = dict_find(dict, (char_u *)"words", 5);
+! if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST)
+! ins_compl_add_list(di_words->di_tv.vval.v_list);
+ }
+
+ /*
+*** ../vim-7.3.399/src/eval.c 2012-01-04 14:35:31.000000000 +0100
+--- src/eval.c 2012-01-10 22:00:50.000000000 +0100
+***************
+*** 6573,6587 ****
+
+ /*
+ * Join list "l" into a string in "*gap", using separator "sep".
+! * When "echo" is TRUE use String as echoed, otherwise as inside a List.
+ * Return FAIL or OK.
+ */
+ static int
+! list_join(gap, l, sep, echo, copyID)
+ garray_T *gap;
+ list_T *l;
+ char_u *sep;
+! int echo;
+ int copyID;
+ {
+ int first = TRUE;
+--- 6573,6587 ----
+
+ /*
+ * Join list "l" into a string in "*gap", using separator "sep".
+! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+ * Return FAIL or OK.
+ */
+ static int
+! list_join(gap, l, sep, echo_style, copyID)
+ garray_T *gap;
+ list_T *l;
+ char_u *sep;
+! int echo_style;
+ int copyID;
+ {
+ int first = TRUE;
+***************
+*** 6597,6603 ****
+ else
+ ga_concat(gap, sep);
+
+! if (echo)
+ s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+ else
+ s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+--- 6597,6603 ----
+ else
+ ga_concat(gap, sep);
+
+! if (echo_style)
+ s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+ else
+ s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+***************
+*** 17893,17899 ****
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+! char_u *instr;
+ char_u *fromstr;
+ char_u *tostr;
+ char_u *p;
+--- 17893,17899 ----
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+! char_u *in_str;
+ char_u *fromstr;
+ char_u *tostr;
+ char_u *p;
+***************
+*** 17910,17916 ****
+ char_u buf2[NUMBUFLEN];
+ garray_T ga;
+
+! instr = get_tv_string(&argvars[0]);
+ fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+ tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+
+--- 17910,17916 ----
+ char_u buf2[NUMBUFLEN];
+ garray_T ga;
+
+! in_str = get_tv_string(&argvars[0]);
+ fromstr = get_tv_string_buf_chk(&argvars[1], buf);
+ tostr = get_tv_string_buf_chk(&argvars[2], buf2);
+
+***************
+*** 17936,17954 ****
+ }
+
+ /* fromstr and tostr have to contain the same number of chars */
+! while (*instr != NUL)
+ {
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+! inlen = (*mb_ptr2len)(instr);
+! cpstr = instr;
+ cplen = inlen;
+ idx = 0;
+ for (p = fromstr; *p != NUL; p += fromlen)
+ {
+ fromlen = (*mb_ptr2len)(p);
+! if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0)
+ {
+ for (p = tostr; *p != NUL; p += tolen)
+ {
+--- 17936,17954 ----
+ }
+
+ /* fromstr and tostr have to contain the same number of chars */
+! while (*in_str != NUL)
+ {
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+ {
+! inlen = (*mb_ptr2len)(in_str);
+! cpstr = in_str;
+ cplen = inlen;
+ idx = 0;
+ for (p = fromstr; *p != NUL; p += fromlen)
+ {
+ fromlen = (*mb_ptr2len)(p);
+! if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0)
+ {
+ for (p = tostr; *p != NUL; p += tolen)
+ {
+***************
+*** 17967,17977 ****
+ ++idx;
+ }
+
+! if (first && cpstr == instr)
+ {
+ /* Check that fromstr and tostr have the same number of
+ * (multi-byte) characters. Done only once when a character
+! * of instr doesn't appear in fromstr. */
+ first = FALSE;
+ for (p = tostr; *p != NUL; p += tolen)
+ {
+--- 17967,17977 ----
+ ++idx;
+ }
+
+! if (first && cpstr == in_str)
+ {
+ /* Check that fromstr and tostr have the same number of
+ * (multi-byte) characters. Done only once when a character
+! * of in_str doesn't appear in fromstr. */
+ first = FALSE;
+ for (p = tostr; *p != NUL; p += tolen)
+ {
+***************
+*** 17986,18003 ****
+ mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+ ga.ga_len += cplen;
+
+! instr += inlen;
+ }
+ else
+ #endif
+ {
+ /* When not using multi-byte chars we can do it faster. */
+! p = vim_strchr(fromstr, *instr);
+ if (p != NULL)
+ ga_append(&ga, tostr[p - fromstr]);
+ else
+! ga_append(&ga, *instr);
+! ++instr;
+ }
+ }
+
+--- 17986,18003 ----
+ mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen);
+ ga.ga_len += cplen;
+
+! in_str += inlen;
+ }
+ else
+ #endif
+ {
+ /* When not using multi-byte chars we can do it faster. */
+! p = vim_strchr(fromstr, *in_str);
+ if (p != NULL)
+ ga_append(&ga, tostr[p - fromstr]);
+ else
+! ga_append(&ga, *in_str);
+! ++in_str;
+ }
+ }
+
+*** ../vim-7.3.399/src/fold.c 2011-08-26 16:12:55.000000000 +0200
+--- src/fold.c 2012-01-10 22:01:26.000000000 +0100
+***************
+*** 1033,1042 ****
+ * Init the fold info in a new window.
+ */
+ void
+! foldInitWin(newwin)
+! win_T *newwin;
+ {
+! ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10);
+ }
+
+ /* find_wl_entry() {{{2 */
+--- 1033,1042 ----
+ * Init the fold info in a new window.
+ */
+ void
+! foldInitWin(new_win)
+! win_T *new_win;
+ {
+! ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10);
+ }
+
+ /* find_wl_entry() {{{2 */
+*** ../vim-7.3.399/src/getchar.c 2011-12-23 14:54:01.000000000 +0100
+--- src/getchar.c 2012-01-10 22:02:30.000000000 +0100
+***************
+*** 418,429 ****
+
+ /*
+ * Remove the contents of the stuff buffer and the mapped characters in the
+! * typeahead buffer (used in case of an error). If 'typeahead' is true,
+ * flush all typeahead characters (used when interrupted by a CTRL-C).
+ */
+ void
+! flush_buffers(typeahead)
+! int typeahead;
+ {
+ init_typebuf();
+
+--- 418,429 ----
+
+ /*
+ * Remove the contents of the stuff buffer and the mapped characters in the
+! * typeahead buffer (used in case of an error). If "flush_typeahead" is true,
+ * flush all typeahead characters (used when interrupted by a CTRL-C).
+ */
+ void
+! flush_buffers(flush_typeahead)
+! int flush_typeahead;
+ {
+ init_typebuf();
+
+***************
+*** 431,437 ****
+ while (read_stuff(TRUE) != NUL)
+ ;
+
+! if (typeahead) /* remove all typeahead */
+ {
+ /*
+ * We have to get all characters, because we may delete the first part
+--- 431,437 ----
+ while (read_stuff(TRUE) != NUL)
+ ;
+
+! if (flush_typeahead) /* remove all typeahead */
+ {
+ /*
+ * We have to get all characters, because we may delete the first part
+*** ../vim-7.3.399/src/message.c 2011-12-30 14:14:16.000000000 +0100
+--- src/message.c 2012-01-10 22:03:56.000000000 +0100
+***************
+*** 2487,2493 ****
+ #ifdef FEAT_CON_DIALOG
+ int retval = FALSE;
+ #endif
+! int scroll;
+ msgchunk_T *mp_last = NULL;
+ msgchunk_T *mp;
+ int i;
+--- 2487,2493 ----
+ #ifdef FEAT_CON_DIALOG
+ int retval = FALSE;
+ #endif
+! int toscroll;
+ msgchunk_T *mp_last = NULL;
+ msgchunk_T *mp;
+ int i;
+***************
+*** 2538,2586 ****
+ }
+ #endif
+
+! scroll = 0;
+ switch (c)
+ {
+ case BS: /* scroll one line back */
+ case K_BS:
+ case 'k':
+ case K_UP:
+! scroll = -1;
+ break;
+
+ case CAR: /* one extra line */
+ case NL:
+ case 'j':
+ case K_DOWN:
+! scroll = 1;
+ break;
+
+ case 'u': /* Up half a page */
+! scroll = -(Rows / 2);
+ break;
+
+ case 'd': /* Down half a page */
+! scroll = Rows / 2;
+ break;
+
+ case 'b': /* one page back */
+ case K_PAGEUP:
+! scroll = -(Rows - 1);
+ break;
+
+ case ' ': /* one extra page */
+ case 'f':
+ case K_PAGEDOWN:
+ case K_LEFTMOUSE:
+! scroll = Rows - 1;
+ break;
+
+ case 'g': /* all the way back to the start */
+! scroll = -999999;
+ break;
+
+ case 'G': /* all the way to the end */
+! scroll = 999999;
+ lines_left = 999999;
+ break;
+
+--- 2538,2586 ----
+ }
+ #endif
+
+! toscroll = 0;
+ switch (c)
+ {
+ case BS: /* scroll one line back */
+ case K_BS:
+ case 'k':
+ case K_UP:
+! toscroll = -1;
+ break;
+
+ case CAR: /* one extra line */
+ case NL:
+ case 'j':
+ case K_DOWN:
+! toscroll = 1;
+ break;
+
+ case 'u': /* Up half a page */
+! toscroll = -(Rows / 2);
+ break;
+
+ case 'd': /* Down half a page */
+! toscroll = Rows / 2;
+ break;
+
+ case 'b': /* one page back */
+ case K_PAGEUP:
+! toscroll = -(Rows - 1);
+ break;
+
+ case ' ': /* one extra page */
+ case 'f':
+ case K_PAGEDOWN:
+ case K_LEFTMOUSE:
+! toscroll = Rows - 1;
+ break;
+
+ case 'g': /* all the way back to the start */
+! toscroll = -999999;
+ break;
+
+ case 'G': /* all the way to the end */
+! toscroll = 999999;
+ lines_left = 999999;
+ break;
+
+***************
+*** 2633,2641 ****
+ continue;
+ }
+
+! if (scroll != 0)
+ {
+! if (scroll < 0)
+ {
+ /* go to start of last line */
+ if (mp_last == NULL)
+--- 2633,2641 ----
+ continue;
+ }
+
+! if (toscroll != 0)
+ {
+! if (toscroll < 0)
+ {
+ /* go to start of last line */
+ if (mp_last == NULL)
+***************
+*** 2653,2659 ****
+ if (mp != NULL && mp->sb_prev != NULL)
+ {
+ /* Find line to be displayed at top. */
+! for (i = 0; i > scroll; --i)
+ {
+ if (mp == NULL || mp->sb_prev == NULL)
+ break;
+--- 2653,2659 ----
+ if (mp != NULL && mp->sb_prev != NULL)
+ {
+ /* Find line to be displayed at top. */
+! for (i = 0; i > toscroll; --i)
+ {
+ if (mp == NULL || mp->sb_prev == NULL)
+ break;
+***************
+*** 2664,2670 ****
+ mp_last = msg_sb_start(mp_last->sb_prev);
+ }
+
+! if (scroll == -1 && screen_ins_lines(0, 0, 1,
+ (int)Rows, NULL) == OK)
+ {
+ /* display line at top */
+--- 2664,2670 ----
+ mp_last = msg_sb_start(mp_last->sb_prev);
+ }
+
+! if (toscroll == -1 && screen_ins_lines(0, 0, 1,
+ (int)Rows, NULL) == OK)
+ {
+ /* display line at top */
+***************
+*** 2680,2692 ****
+ ++msg_scrolled;
+ }
+ }
+! scroll = 0;
+ }
+ }
+ else
+ {
+ /* First display any text that we scrolled back. */
+! while (scroll > 0 && mp_last != NULL)
+ {
+ /* scroll up, display line at bottom */
+ msg_scroll_up();
+--- 2680,2692 ----
+ ++msg_scrolled;
+ }
+ }
+! toscroll = 0;
+ }
+ }
+ else
+ {
+ /* First display any text that we scrolled back. */
+! while (toscroll > 0 && mp_last != NULL)
+ {
+ /* scroll up, display line at bottom */
+ msg_scroll_up();
+***************
+*** 2694,2704 ****
+ screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+ (int)Columns, ' ', ' ', 0);
+ mp_last = disp_sb_line((int)Rows - 2, mp_last);
+! --scroll;
+ }
+ }
+
+! if (scroll <= 0)
+ {
+ /* displayed the requested text, more prompt again */
+ screen_fill((int)Rows - 1, (int)Rows, 0,
+--- 2694,2704 ----
+ screen_fill((int)Rows - 2, (int)Rows - 1, 0,
+ (int)Columns, ' ', ' ', 0);
+ mp_last = disp_sb_line((int)Rows - 2, mp_last);
+! --toscroll;
+ }
+ }
+
+! if (toscroll <= 0)
+ {
+ /* displayed the requested text, more prompt again */
+ screen_fill((int)Rows - 1, (int)Rows, 0,
+***************
+*** 2708,2714 ****
+ }
+
+ /* display more text, return to caller */
+! lines_left = scroll;
+ }
+
+ break;
+--- 2708,2714 ----
+ }
+
+ /* display more text, return to caller */
+! lines_left = toscroll;
+ }
+
+ break;
+*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100
+--- src/misc2.c 2012-01-10 22:04:25.000000000 +0100
+***************
+*** 1559,1565 ****
+ if (enc_utf8)
+ {
+ int c, uc;
+! int nl;
+ char_u *s;
+
+ c = utf_ptr2char(p);
+--- 1559,1565 ----
+ if (enc_utf8)
+ {
+ int c, uc;
+! int newl;
+ char_u *s;
+
+ c = utf_ptr2char(p);
+***************
+*** 1568,1588 ****
+ /* Reallocate string when byte count changes. This is rare,
+ * thus it's OK to do another malloc()/free(). */
+ l = utf_ptr2len(p);
+! nl = utf_char2len(uc);
+! if (nl != l)
+ {
+! s = alloc((unsigned)STRLEN(res) + 1 + nl - l);
+ if (s == NULL)
+ break;
+ mch_memmove(s, res, p - res);
+! STRCPY(s + (p - res) + nl, p + l);
+ p = s + (p - res);
+ vim_free(res);
+ res = s;
+ }
+
+ utf_char2bytes(uc, p);
+! p += nl;
+ }
+ else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+ p += l; /* skip multi-byte character */
+--- 1568,1588 ----
+ /* Reallocate string when byte count changes. This is rare,
+ * thus it's OK to do another malloc()/free(). */
+ l = utf_ptr2len(p);
+! newl = utf_char2len(uc);
+! if (newl != l)
+ {
+! s = alloc((unsigned)STRLEN(res) + 1 + newl - l);
+ if (s == NULL)
+ break;
+ mch_memmove(s, res, p - res);
+! STRCPY(s + (p - res) + newl, p + l);
+ p = s + (p - res);
+ vim_free(res);
+ res = s;
+ }
+
+ utf_char2bytes(uc, p);
+! p += newl;
+ }
+ else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1)
+ p += l; /* skip multi-byte character */
+*** ../vim-7.3.399/src/move.c 2011-02-01 18:01:06.000000000 +0100
+--- src/move.c 2012-01-10 22:05:22.000000000 +0100
+***************
+*** 926,933 ****
+ * Also updates curwin->w_leftcol.
+ */
+ void
+! curs_columns(scroll)
+! int scroll; /* when TRUE, may scroll horizontally */
+ {
+ int diff;
+ int extra; /* offset for first screen line */
+--- 926,933 ----
+ * Also updates curwin->w_leftcol.
+ */
+ void
+! curs_columns(may_scroll)
+! int may_scroll; /* when TRUE, may scroll horizontally */
+ {
+ int diff;
+ int extra; /* offset for first screen line */
+***************
+*** 1014,1020 ****
+ /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+ * is not folded.
+ * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+! else if (scroll
+ #ifdef FEAT_FOLDING
+ && !curwin->w_cline_folded
+ #endif
+--- 1014,1020 ----
+ /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line
+ * is not folded.
+ * If scrolling is off, curwin->w_leftcol is assumed to be 0 */
+! else if (may_scroll
+ #ifdef FEAT_FOLDING
+ && !curwin->w_cline_folded
+ #endif
+*** ../vim-7.3.399/src/netbeans.c 2011-10-20 21:58:20.000000000 +0200
+--- src/netbeans.c 2012-01-10 22:16:26.000000000 +0100
+***************
+*** 1395,1401 ****
+ int cmdno,
+ char_u *args) /* points to space before arguments or NUL */
+ {
+! int doupdate = 0;
+ long off = 0;
+ nbbuf_T *buf = nb_get_buf(bufno);
+ static int skip = 0;
+--- 1395,1401 ----
+ int cmdno,
+ char_u *args) /* points to space before arguments or NUL */
+ {
+! int do_update = 0;
+ long off = 0;
+ nbbuf_T *buf = nb_get_buf(bufno);
+ static int skip = 0;
+***************
+*** 1600,1606 ****
+ last.lnum, last.col));
+ del_from_lnum = first.lnum;
+ del_to_lnum = last.lnum;
+! doupdate = 1;
+
+ /* Get the position of the first byte after the deleted
+ * section. "next" is NULL when deleting to the end of the
+--- 1600,1606 ----
+ last.lnum, last.col));
+ del_from_lnum = first.lnum;
+ del_to_lnum = last.lnum;
+! do_update = 1;
+
+ /* Get the position of the first byte after the deleted
+ * section. "next" is NULL when deleting to the end of the
+***************
+*** 1777,1783 ****
+ lnum = lnum_start;
+
+ /* Loop over the "\n" separated lines of the argument. */
+! doupdate = 1;
+ while (*args != NUL)
+ {
+ nl = vim_strchr(args, '\n');
+--- 1777,1783 ----
+ lnum = lnum_start;
+
+ /* Loop over the "\n" separated lines of the argument. */
+! do_update = 1;
+ while (*args != NUL)
+ {
+ nl = vim_strchr(args, '\n');
+***************
+*** 1992,1998 ****
+ EMSG("E640: invalid buffer identifier in initDone");
+ return FAIL;
+ }
+! doupdate = 1;
+ buf->initDone = TRUE;
+ nb_set_curbuf(buf->bufp);
+ #if defined(FEAT_AUTOCMD)
+--- 1992,1998 ----
+ EMSG("E640: invalid buffer identifier in initDone");
+ return FAIL;
+ }
+! do_update = 1;
+ buf->initDone = TRUE;
+ nb_set_curbuf(buf->bufp);
+ #if defined(FEAT_AUTOCMD)
+***************
+*** 2081,2087 ****
+ ECMD_HIDE + ECMD_OLDBUF, curwin);
+ buf->bufp = curbuf;
+ buf->initDone = TRUE;
+! doupdate = 1;
+ #if defined(FEAT_TITLE)
+ maketitle();
+ #endif
+--- 2081,2087 ----
+ ECMD_HIDE + ECMD_OLDBUF, curwin);
+ buf->bufp = curbuf;
+ buf->initDone = TRUE;
+! do_update = 1;
+ #if defined(FEAT_TITLE)
+ maketitle();
+ #endif
+***************
+*** 2109,2115 ****
+ exarg.forceit = FALSE;
+ dosetvisible = TRUE;
+ goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+! doupdate = 1;
+ dosetvisible = FALSE;
+
+ #ifdef FEAT_GUI
+--- 2109,2115 ----
+ exarg.forceit = FALSE;
+ dosetvisible = TRUE;
+ goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum);
+! do_update = 1;
+ dosetvisible = FALSE;
+
+ #ifdef FEAT_GUI
+***************
+*** 2309,2315 ****
+ buf->bufp->b_fnum, TRUE);
+ buf->bufp = NULL;
+ buf->initDone = FALSE;
+! doupdate = 1;
+ /* =====================================================================*/
+ }
+ else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+--- 2309,2315 ----
+ buf->bufp->b_fnum, TRUE);
+ buf->bufp = NULL;
+ buf->initDone = FALSE;
+! do_update = 1;
+ /* =====================================================================*/
+ }
+ else if (streq((char *)cmd, "setStyle")) /* obsolete... */
+***************
+*** 2400,2406 ****
+ return FAIL;
+ }
+
+! doupdate = 1;
+
+ cp = (char *)args;
+ serNum = strtol(cp, &cp, 10);
+--- 2400,2406 ----
+ return FAIL;
+ }
+
+! do_update = 1;
+
+ cp = (char *)args;
+ serNum = strtol(cp, &cp, 10);
+***************
+*** 2448,2454 ****
+ nbdebug((" invalid buffer identifier in removeAnno\n"));
+ return FAIL;
+ }
+! doupdate = 1;
+ cp = (char *)args;
+ serNum = strtol(cp, &cp, 10);
+ args = (char_u *)cp;
+--- 2448,2454 ----
+ nbdebug((" invalid buffer identifier in removeAnno\n"));
+ return FAIL;
+ }
+! do_update = 1;
+ cp = (char *)args;
+ serNum = strtol(cp, &cp, 10);
+ args = (char_u *)cp;
+***************
+*** 2493,2499 ****
+ len = strtol(cp, NULL, 10);
+ args = (char_u *)cp;
+ pos = off2pos(buf->bufp, off);
+! doupdate = 1;
+ if (!pos)
+ nbdebug((" no such start pos in %s, %ld\n", cmd, off));
+ else
+--- 2493,2499 ----
+ len = strtol(cp, NULL, 10);
+ args = (char_u *)cp;
+ pos = off2pos(buf->bufp, off);
+! do_update = 1;
+ if (!pos)
+ nbdebug((" no such start pos in %s, %ld\n", cmd, off));
+ else
+***************
+*** 2555,2561 ****
+ inAtomic = 0;
+ if (needupdate)
+ {
+! doupdate = 1;
+ needupdate = 0;
+ }
+ /* =====================================================================*/
+--- 2555,2561 ----
+ inAtomic = 0;
+ if (needupdate)
+ {
+! do_update = 1;
+ needupdate = 0;
+ }
+ /* =====================================================================*/
+***************
+*** 2636,2653 ****
+ * Unrecognized command is ignored.
+ */
+ }
+! if (inAtomic && doupdate)
+ {
+ needupdate = 1;
+! doupdate = 0;
+ }
+
+ /*
+ * Is this needed? I moved the netbeans_Xt_connect() later during startup
+ * and it may no longer be necessary. If its not needed then needupdate
+! * and doupdate can also be removed.
+ */
+! if (buf != NULL && buf->initDone && doupdate)
+ {
+ update_screen(NOT_VALID);
+ setcursor();
+--- 2636,2653 ----
+ * Unrecognized command is ignored.
+ */
+ }
+! if (inAtomic && do_update)
+ {
+ needupdate = 1;
+! do_update = 0;
+ }
+
+ /*
+ * Is this needed? I moved the netbeans_Xt_connect() later during startup
+ * and it may no longer be necessary. If its not needed then needupdate
+! * and do_update can also be removed.
+ */
+! if (buf != NULL && buf->initDone && do_update)
+ {
+ update_screen(NOT_VALID);
+ setcursor();
+*** ../vim-7.3.399/src/option.c 2012-01-04 19:34:32.000000000 +0100
+--- src/option.c 2012-01-10 22:06:03.000000000 +0100
+***************
+*** 8584,8591 ****
+ long_u flags;
+ {
+ /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+! int clear = (flags & P_RCLR) == P_RCLR;
+! int all = ((flags & P_RALL) == P_RALL || clear);
+
+ #ifdef FEAT_WINDOWS
+ if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
+--- 8584,8591 ----
+ long_u flags;
+ {
+ /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */
+! int doclear = (flags & P_RCLR) == P_RCLR;
+! int all = ((flags & P_RALL) == P_RALL || doclear);
+
+ #ifdef FEAT_WINDOWS
+ if ((flags & P_RSTAT) || all) /* mark all status lines dirty */
+***************
+*** 8596,8602 ****
+ changed_window_setting();
+ if (flags & P_RBUF)
+ redraw_curbuf_later(NOT_VALID);
+! if (clear)
+ redraw_all_later(CLEAR);
+ else if (all)
+ redraw_all_later(NOT_VALID);
+--- 8596,8602 ----
+ changed_window_setting();
+ if (flags & P_RBUF)
+ redraw_curbuf_later(NOT_VALID);
+! if (doclear)
+ redraw_all_later(CLEAR);
+ else if (all)
+ redraw_all_later(NOT_VALID);
+*** ../vim-7.3.399/src/os_unix.c 2011-10-20 21:09:25.000000000 +0200
+--- src/os_unix.c 2012-01-10 21:48:49.000000000 +0100
+***************
+*** 3884,3890 ****
+ char_u *p_shcf_copy = NULL;
+ int i;
+ char_u *p;
+- char_u *s;
+ int inquote;
+ int pty_master_fd = -1; /* for pty's */
+ # ifdef FEAT_GUI
+--- 3884,3889 ----
+***************
+*** 3963,3968 ****
+--- 3962,3969 ----
+ }
+ if (cmd != NULL)
+ {
++ char_u *s;
++
+ if (extra_shell_arg != NULL)
+ argv[argc++] = (char *)extra_shell_arg;
+
+***************
+*** 4325,4331 ****
+ linenr_T lnum = curbuf->b_op_start.lnum;
+ int written = 0;
+ char_u *lp = ml_get(lnum);
+- char_u *s;
+ size_t l;
+
+ close(fromshell_fd);
+--- 4326,4331 ----
+***************
+*** 4339,4345 ****
+ len = write(toshell_fd, "", (size_t)1);
+ else
+ {
+! s = vim_strchr(lp + written, NL);
+ len = write(toshell_fd, (char *)lp + written,
+ s == NULL ? l
+ : (size_t)(s - (lp + written)));
+--- 4339,4346 ----
+ len = write(toshell_fd, "", (size_t)1);
+ else
+ {
+! char_u *s = vim_strchr(lp + written, NL);
+!
+ len = write(toshell_fd, (char *)lp + written,
+ s == NULL ? l
+ : (size_t)(s - (lp + written)));
+*** ../vim-7.3.399/src/screen.c 2012-01-10 12:42:05.000000000 +0100
+--- src/screen.c 2012-01-10 22:06:51.000000000 +0100
+***************
+*** 7849,7863 ****
+
+ /*
+ * screen_valid - allocate screen buffers if size changed
+! * If "clear" is TRUE: clear screen if it has been resized.
+ * Returns TRUE if there is a valid screen to write to.
+ * Returns FALSE when starting up and screen not initialized yet.
+ */
+ int
+! screen_valid(clear)
+! int clear;
+ {
+! screenalloc(clear); /* allocate screen buffers if size changed */
+ return (ScreenLines != NULL);
+ }
+
+--- 7849,7863 ----
+
+ /*
+ * screen_valid - allocate screen buffers if size changed
+! * If "doclear" is TRUE: clear screen if it has been resized.
+ * Returns TRUE if there is a valid screen to write to.
+ * Returns FALSE when starting up and screen not initialized yet.
+ */
+ int
+! screen_valid(doclear)
+! int doclear;
+ {
+! screenalloc(doclear); /* allocate screen buffers if size changed */
+ return (ScreenLines != NULL);
+ }
+
+***************
+*** 7872,7879 ****
+ * final size of the shell is needed.
+ */
+ void
+! screenalloc(clear)
+! int clear;
+ {
+ int new_row, old_row;
+ #ifdef FEAT_GUI
+--- 7872,7879 ----
+ * final size of the shell is needed.
+ */
+ void
+! screenalloc(doclear)
+! int doclear;
+ {
+ int new_row, old_row;
+ #ifdef FEAT_GUI
+***************
+*** 8069,8075 ****
+ * (used when resizing the window at the "--more--" prompt or when
+ * executing an external command, for the GUI).
+ */
+! if (!clear)
+ {
+ (void)vim_memset(new_ScreenLines + new_row * Columns,
+ ' ', (size_t)Columns * sizeof(schar_T));
+--- 8069,8075 ----
+ * (used when resizing the window at the "--more--" prompt or when
+ * executing an external command, for the GUI).
+ */
+! if (!doclear)
+ {
+ (void)vim_memset(new_ScreenLines + new_row * Columns,
+ ' ', (size_t)Columns * sizeof(schar_T));
+***************
+*** 8159,8165 ****
+ screen_Columns = Columns;
+
+ must_redraw = CLEAR; /* need to clear the screen later */
+! if (clear)
+ screenclear2();
+
+ #ifdef FEAT_GUI
+--- 8159,8165 ----
+ screen_Columns = Columns;
+
+ must_redraw = CLEAR; /* need to clear the screen later */
+! if (doclear)
+ screenclear2();
+
+ #ifdef FEAT_GUI
+*** ../vim-7.3.399/src/search.c 2011-10-04 17:00:13.000000000 +0200
+--- src/search.c 2012-01-10 22:07:16.000000000 +0100
+***************
+*** 2402,2425 ****
+ {
+ if (vim_strchr(p, ';') != NULL) /* there may be comments */
+ {
+! int instr = FALSE; /* inside of string */
+
+ p = line; /* scan from start */
+ while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+ {
+ if (*p == '"')
+ {
+! if (instr)
+ {
+ if (*(p - 1) != '\\') /* skip escaped quote */
+! instr = FALSE;
+ }
+ else if (p == line || ((p - line) >= 2
+ /* skip #\" form */
+ && *(p - 1) != '\\' && *(p - 2) != '#'))
+! instr = TRUE;
+ }
+! else if (!instr && ((p - line) < 2
+ || (*(p - 1) != '\\' && *(p - 2) != '#')))
+ break; /* found! */
+ ++p;
+--- 2402,2425 ----
+ {
+ if (vim_strchr(p, ';') != NULL) /* there may be comments */
+ {
+! int in_str = FALSE; /* inside of string */
+
+ p = line; /* scan from start */
+ while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL)
+ {
+ if (*p == '"')
+ {
+! if (in_str)
+ {
+ if (*(p - 1) != '\\') /* skip escaped quote */
+! in_str = FALSE;
+ }
+ else if (p == line || ((p - line) >= 2
+ /* skip #\" form */
+ && *(p - 1) != '\\' && *(p - 2) != '#'))
+! in_str = TRUE;
+ }
+! else if (!in_str && ((p - line) < 2
+ || (*(p - 1) != '\\' && *(p - 2) != '#')))
+ break; /* found! */
+ ++p;
+*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100
+--- src/spell.c 2012-01-10 22:09:23.000000000 +0100
+***************
+*** 5049,5055 ****
+ static int offset2bytes __ARGS((int nr, char_u *buf));
+ static int bytes2offset __ARGS((char_u **pp));
+ static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word));
+ static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+ static void init_spellfile __ARGS((void));
+
+--- 5049,5055 ----
+ static int offset2bytes __ARGS((int nr, char_u *buf));
+ static int bytes2offset __ARGS((char_u **pp));
+ static void sug_write __ARGS((spellinfo_T *spin, char_u *fname));
+! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word));
+ static void spell_message __ARGS((spellinfo_T *spin, char_u *str));
+ static void init_spellfile __ARGS((void));
+
+***************
+*** 9085,9095 ****
+ * and ".spl" is appended to make the output file name.
+ */
+ static void
+! mkspell(fcount, fnames, ascii, overwrite, added_word)
+ int fcount;
+ char_u **fnames;
+ int ascii; /* -ascii argument given */
+! int overwrite; /* overwrite existing output file */
+ int added_word; /* invoked through "zg" */
+ {
+ char_u *fname = NULL;
+--- 9085,9095 ----
+ * and ".spl" is appended to make the output file name.
+ */
+ static void
+! mkspell(fcount, fnames, ascii, over_write, added_word)
+ int fcount;
+ char_u **fnames;
+ int ascii; /* -ascii argument given */
+! int over_write; /* overwrite existing output file */
+ int added_word; /* invoked through "zg" */
+ {
+ char_u *fname = NULL;
+***************
+*** 9173,9179 ****
+ {
+ /* Check for overwriting before doing things that may take a lot of
+ * time. */
+! if (!overwrite && mch_stat((char *)wfname, &st) >= 0)
+ {
+ EMSG(_(e_exists));
+ goto theend;
+--- 9173,9179 ----
+ {
+ /* Check for overwriting before doing things that may take a lot of
+ * time. */
+! if (!over_write && mch_stat((char *)wfname, &st) >= 0)
+ {
+ EMSG(_(e_exists));
+ goto theend;
+*** ../vim-7.3.399/src/syntax.c 2011-06-19 04:54:17.000000000 +0200
+--- src/syntax.c 2012-01-10 22:10:23.000000000 +0100
+***************
+*** 4006,4022 ****
+ }
+
+ static void
+! syn_list_flags(nl, flags, attr)
+! struct name_list *nl;
+ int flags;
+ int attr;
+ {
+ int i;
+
+! for (i = 0; nl[i].flag != 0; ++i)
+! if (flags & nl[i].flag)
+ {
+! msg_puts_attr((char_u *)nl[i].name, attr);
+ msg_putchar(' ');
+ }
+ }
+--- 4006,4022 ----
+ }
+
+ static void
+! syn_list_flags(nlist, flags, attr)
+! struct name_list *nlist;
+ int flags;
+ int attr;
+ {
+ int i;
+
+! for (i = 0; nlist[i].flag != 0; ++i)
+! if (flags & nlist[i].flag)
+ {
+! msg_puts_attr((char_u *)nlist[i].name, attr);
+ msg_putchar(' ');
+ }
+ }
+*** ../vim-7.3.399/src/tag.c 2011-12-14 14:15:12.000000000 +0100
+--- src/tag.c 2012-01-10 21:51:05.000000000 +0100
+***************
+*** 1353,1359 ****
+ int match_count = 0; /* number of matches found */
+ char_u **matches;
+ int mtt;
+- int len;
+ int help_save;
+ #ifdef FEAT_MULTI_LANG
+ int help_pri = 0;
+--- 1353,1358 ----
+***************
+*** 2235,2240 ****
+--- 2234,2241 ----
+ */
+ if (ga_grow(&ga_match[mtt], 1) == OK)
+ {
++ int len;
++
+ if (help_only)
+ {
+ #ifdef FEAT_MULTI_LANG
+*** ../vim-7.3.399/src/window.c 2011-12-30 15:01:55.000000000 +0100
+--- src/window.c 2012-01-10 22:11:41.000000000 +0100
+***************
+*** 683,701 ****
+ }
+
+ /*
+! * When "newwin" is NULL: split the current window in two.
+! * When "newwin" is not NULL: insert this window at the far
+ * top/left/right/bottom.
+ * return FAIL for failure, OK otherwise
+ */
+ int
+! win_split_ins(size, flags, newwin, dir)
+ int size;
+ int flags;
+! win_T *newwin;
+ int dir;
+ {
+! win_T *wp = newwin;
+ win_T *oldwin;
+ int new_size = size;
+ int i;
+--- 683,701 ----
+ }
+
+ /*
+! * When "new_wp" is NULL: split the current window in two.
+! * When "new_wp" is not NULL: insert this window at the far
+ * top/left/right/bottom.
+ * return FAIL for failure, OK otherwise
+ */
+ int
+! win_split_ins(size, flags, new_wp, dir)
+ int size;
+ int flags;
+! win_T *new_wp;
+ int dir;
+ {
+! win_T *wp = new_wp;
+ win_T *oldwin;
+ int new_size = size;
+ int i;
+***************
+*** 718,724 ****
+ /* add a status line when p_ls == 1 and splitting the first window */
+ if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+ {
+! if (oldwin->w_height <= p_wmh && newwin == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+--- 718,724 ----
+ /* add a status line when p_ls == 1 and splitting the first window */
+ if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0)
+ {
+! if (oldwin->w_height <= p_wmh && new_wp == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+***************
+*** 751,757 ****
+ }
+ else
+ available = oldwin->w_width;
+! if (available < needed && newwin == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+--- 751,757 ----
+ }
+ else
+ available = oldwin->w_width;
+! if (available < needed && new_wp == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+***************
+*** 815,821 ****
+ available = oldwin->w_height;
+ needed += p_wmh;
+ }
+! if (available < needed && newwin == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+--- 815,821 ----
+ available = oldwin->w_height;
+ needed += p_wmh;
+ }
+! if (available < needed && new_wp == NULL)
+ {
+ EMSG(_(e_noroom));
+ return FAIL;
+***************
+*** 888,907 ****
+ p_sb))))
+ {
+ /* new window below/right of current one */
+! if (newwin == NULL)
+ wp = win_alloc(oldwin, FALSE);
+ else
+ win_append(oldwin, wp);
+ }
+ else
+ {
+! if (newwin == NULL)
+ wp = win_alloc(oldwin->w_prev, FALSE);
+ else
+ win_append(oldwin->w_prev, wp);
+ }
+
+! if (newwin == NULL)
+ {
+ if (wp == NULL)
+ return FAIL;
+--- 888,907 ----
+ p_sb))))
+ {
+ /* new window below/right of current one */
+! if (new_wp == NULL)
+ wp = win_alloc(oldwin, FALSE);
+ else
+ win_append(oldwin, wp);
+ }
+ else
+ {
+! if (new_wp == NULL)
+ wp = win_alloc(oldwin->w_prev, FALSE);
+ else
+ win_append(oldwin->w_prev, wp);
+ }
+
+! if (new_wp == NULL)
+ {
+ if (wp == NULL)
+ return FAIL;
+***************
+*** 972,981 ****
+ frp->fr_parent = curfrp;
+ }
+
+! if (newwin == NULL)
+ frp = wp->w_frame;
+ else
+! frp = newwin->w_frame;
+ frp->fr_parent = curfrp->fr_parent;
+
+ /* Insert the new frame at the right place in the frame list. */
+--- 972,981 ----
+ frp->fr_parent = curfrp;
+ }
+
+! if (new_wp == NULL)
+ frp = wp->w_frame;
+ else
+! frp = new_wp->w_frame;
+ frp->fr_parent = curfrp->fr_parent;
+
+ /* Insert the new frame at the right place in the frame list. */
+***************
+*** 4284,4302 ****
+ win_T *after UNUSED;
+ int hidden UNUSED;
+ {
+! win_T *newwin;
+
+ /*
+ * allocate window structure and linesizes arrays
+ */
+! newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+! if (newwin != NULL && win_alloc_lines(newwin) == FAIL)
+ {
+! vim_free(newwin);
+! newwin = NULL;
+ }
+
+! if (newwin != NULL)
+ {
+ #ifdef FEAT_AUTOCMD
+ /* Don't execute autocommands while the window is not properly
+--- 4284,4302 ----
+ win_T *after UNUSED;
+ int hidden UNUSED;
+ {
+! win_T *new_wp;
+
+ /*
+ * allocate window structure and linesizes arrays
+ */
+! new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T));
+! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL)
+ {
+! vim_free(new_wp);
+! new_wp = NULL;
+ }
+
+! if (new_wp != NULL)
+ {
+ #ifdef FEAT_AUTOCMD
+ /* Don't execute autocommands while the window is not properly
+***************
+*** 4309,4361 ****
+ */
+ #ifdef FEAT_WINDOWS
+ if (!hidden)
+! win_append(after, newwin);
+ #endif
+ #ifdef FEAT_VERTSPLIT
+! newwin->w_wincol = 0;
+! newwin->w_width = Columns;
+ #endif
+
+ /* position the display and the cursor at the top of the file. */
+! newwin->w_topline = 1;
+ #ifdef FEAT_DIFF
+! newwin->w_topfill = 0;
+ #endif
+! newwin->w_botline = 2;
+! newwin->w_cursor.lnum = 1;
+ #ifdef FEAT_SCROLLBIND
+! newwin->w_scbind_pos = 1;
+ #endif
+
+ /* We won't calculate w_fraction until resizing the window */
+! newwin->w_fraction = 0;
+! newwin->w_prev_fraction_row = -1;
+
+ #ifdef FEAT_GUI
+ if (gui.in_use)
+ {
+! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
+! SBAR_LEFT, newwin);
+! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
+! SBAR_RIGHT, newwin);
+ }
+ #endif
+ #ifdef FEAT_EVAL
+ /* init w: variables */
+! init_var_dict(&newwin->w_vars, &newwin->w_winvar);
+ #endif
+ #ifdef FEAT_FOLDING
+! foldInitWin(newwin);
+ #endif
+ #ifdef FEAT_AUTOCMD
+ unblock_autocmds();
+ #endif
+ #ifdef FEAT_SEARCH_EXTRA
+! newwin->w_match_head = NULL;
+! newwin->w_next_match_id = 4;
+ #endif
+ }
+! return newwin;
+ }
+
+ #if defined(FEAT_WINDOWS) || defined(PROTO)
+--- 4309,4361 ----
+ */
+ #ifdef FEAT_WINDOWS
+ if (!hidden)
+! win_append(after, new_wp);
+ #endif
+ #ifdef FEAT_VERTSPLIT
+! new_wp->w_wincol = 0;
+! new_wp->w_width = Columns;
+ #endif
+
+ /* position the display and the cursor at the top of the file. */
+! new_wp->w_topline = 1;
+ #ifdef FEAT_DIFF
+! new_wp->w_topfill = 0;
+ #endif
+! new_wp->w_botline = 2;
+! new_wp->w_cursor.lnum = 1;
+ #ifdef FEAT_SCROLLBIND
+! new_wp->w_scbind_pos = 1;
+ #endif
+
+ /* We won't calculate w_fraction until resizing the window */
+! new_wp->w_fraction = 0;
+! new_wp->w_prev_fraction_row = -1;
+
+ #ifdef FEAT_GUI
+ if (gui.in_use)
+ {
+! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT],
+! SBAR_LEFT, new_wp);
+! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT],
+! SBAR_RIGHT, new_wp);
+ }
+ #endif
+ #ifdef FEAT_EVAL
+ /* init w: variables */
+! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
+ #endif
+ #ifdef FEAT_FOLDING
+! foldInitWin(new_wp);
+ #endif
+ #ifdef FEAT_AUTOCMD
+ unblock_autocmds();
+ #endif
+ #ifdef FEAT_SEARCH_EXTRA
+! new_wp->w_match_head = NULL;
+! new_wp->w_next_match_id = 4;
+ #endif
+ }
+! return new_wp;
+ }
+
+ #if defined(FEAT_WINDOWS) || defined(PROTO)
+*** ../vim-7.3.399/src/version.c 2012-01-10 18:37:53.000000000 +0100
+--- src/version.c 2012-01-10 22:23:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 400,
+ /**/
+
+--
+A parent can be arrested if his child cannot hold back a burp during a church
+service.
+ [real standing law in Nebraska, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.401 b/source/ap/vim/patches/7.3.401
new file mode 100644
index 000000000..6a473c575
--- /dev/null
+++ b/source/ap/vim/patches/7.3.401
@@ -0,0 +1,191 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.401
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.401
+Problem: A couple more shadowed variables.
+Solution: Rename the variables.
+Files: src/netbeans.c
+
+
+*** ../vim-7.3.400/src/netbeans.c 2012-01-10 22:26:12.000000000 +0100
+--- src/netbeans.c 2012-01-10 22:30:17.000000000 +0100
+***************
+*** 443,449 ****
+ FILE *fp;
+ char_u buf[BUFSIZ];
+ char_u *lp;
+! char_u *nl;
+ #ifdef UNIX
+ struct stat st;
+
+--- 443,449 ----
+ FILE *fp;
+ char_u buf[BUFSIZ];
+ char_u *lp;
+! char_u *nlp;
+ #ifdef UNIX
+ struct stat st;
+
+***************
+*** 472,479 ****
+ /* Read the file. There should be one of each parameter */
+ while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+ {
+! if ((nl = vim_strchr(lp, '\n')) != NULL)
+! *nl = 0; /* strip off the trailing newline */
+
+ if (STRNCMP(lp, "host=", 5) == 0)
+ {
+--- 472,479 ----
+ /* Read the file. There should be one of each parameter */
+ while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL)
+ {
+! if ((nlp = vim_strchr(lp, '\n')) != NULL)
+! *nlp = 0; /* strip off the trailing newline */
+
+ if (STRNCMP(lp, "host=", 5) == 0)
+ {
+***************
+*** 1740,1746 ****
+ int added = 0;
+ int oldFire = netbeansFireChanges;
+ int old_b_changed;
+! char_u *nl;
+ linenr_T lnum;
+ linenr_T lnum_start;
+ pos_T *pos;
+--- 1740,1746 ----
+ int added = 0;
+ int oldFire = netbeansFireChanges;
+ int old_b_changed;
+! char_u *nlp;
+ linenr_T lnum;
+ linenr_T lnum_start;
+ pos_T *pos;
+***************
+*** 1780,1787 ****
+ do_update = 1;
+ while (*args != NUL)
+ {
+! nl = vim_strchr(args, '\n');
+! if (nl == NULL)
+ {
+ /* Incomplete line, probably truncated. Next "insert"
+ * command should append to this one. */
+--- 1780,1787 ----
+ do_update = 1;
+ while (*args != NUL)
+ {
+! nlp = vim_strchr(args, '\n');
+! if (nlp == NULL)
+ {
+ /* Incomplete line, probably truncated. Next "insert"
+ * command should append to this one. */
+***************
+*** 1789,1801 ****
+ }
+ else
+ {
+! len = nl - args;
+
+ /*
+ * We need to detect EOL style, because the commands
+ * use a character offset.
+ */
+! if (nl > args && nl[-1] == '\r')
+ {
+ ff_detected = EOL_DOS;
+ --len;
+--- 1789,1801 ----
+ }
+ else
+ {
+! len = nlp - args;
+
+ /*
+ * We need to detect EOL style, because the commands
+ * use a character offset.
+ */
+! if (nlp > args && nlp[-1] == '\r')
+ {
+ ff_detected = EOL_DOS;
+ --len;
+***************
+*** 1814,1820 ****
+
+ /* Insert halfway a line. For simplicity we assume we
+ * need to append to the line. */
+! newline = alloc_check((unsigned)(STRLEN(oldline) + len + 1));
+ if (newline != NULL)
+ {
+ STRCPY(newline, oldline);
+--- 1814,1821 ----
+
+ /* Insert halfway a line. For simplicity we assume we
+ * need to append to the line. */
+! newline = alloc_check(
+! (unsigned)(STRLEN(oldline) + len + 1));
+ if (newline != NULL)
+ {
+ STRCPY(newline, oldline);
+***************
+*** 1826,1839 ****
+ {
+ /* Append a new line. Not that we always do this,
+ * also when the text doesn't end in a "\n". */
+! ml_append((linenr_T)(lnum - 1), args, (colnr_T)(len + 1), FALSE);
+ ++added;
+ }
+
+! if (nl == NULL)
+ break;
+ ++lnum;
+! args = nl + 1;
+ }
+
+ /* Adjust the marks below the inserted lines. */
+--- 1827,1841 ----
+ {
+ /* Append a new line. Not that we always do this,
+ * also when the text doesn't end in a "\n". */
+! ml_append((linenr_T)(lnum - 1), args,
+! (colnr_T)(len + 1), FALSE);
+ ++added;
+ }
+
+! if (nlp == NULL)
+ break;
+ ++lnum;
+! args = nlp + 1;
+ }
+
+ /* Adjust the marks below the inserted lines. */
+*** ../vim-7.3.400/src/version.c 2012-01-10 22:26:12.000000000 +0100
+--- src/version.c 2012-01-10 22:30:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 401,
+ /**/
+
+--
+So when I saw the post to comp.editors, I rushed over to the FTP site to
+grab it. So I yank apart the tarball, light x candles, where x= the
+vim version multiplied by the md5sum of the source divided by the MAC of
+my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights,
+wave a dead chicken over the hard drive, and summon the power of GNU GCC
+with the magic words "make config ; make!".
+ [Jason Spence, compiling Vim 5.0]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.402 b/source/ap/vim/patches/7.3.402
new file mode 100644
index 000000000..a5501f8c5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.402
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.402
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.402
+Problem: When jumping to the first error a line of the buffer is sometimes
+ redrawn on top of the list of errors.
+Solution: Do not call update_topline_redraw() if the display was scrolled
+ up.
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.401/src/quickfix.c 2012-01-10 17:13:48.000000000 +0100
+--- src/quickfix.c 2012-01-20 13:13:25.000000000 +0100
+***************
+*** 1842,1849 ****
+ #endif
+ if (print_message)
+ {
+! /* Update the screen before showing the message */
+! update_topline_redraw();
+ sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
+ qi->qf_lists[qi->qf_curlist].qf_count,
+ qf_ptr->qf_cleared ? _(" (line deleted)") : "",
+--- 1842,1851 ----
+ #endif
+ if (print_message)
+ {
+! /* Update the screen before showing the message, unless the screen
+! * scrolled up. */
+! if (!msg_scrolled)
+! update_topline_redraw();
+ sprintf((char *)IObuff, _("(%d of %d)%s%s: "), qf_index,
+ qi->qf_lists[qi->qf_curlist].qf_count,
+ qf_ptr->qf_cleared ? _(" (line deleted)") : "",
+*** ../vim-7.3.401/src/version.c 2012-01-10 22:31:26.000000000 +0100
+--- src/version.c 2012-01-20 13:17:50.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 402,
+ /**/
+
+--
+If all you have is a hammer, everything looks like a nail.
+When your hammer is C++, everything begins to look like a thumb.
+ -- Steve Hoflich, comp.lang.c++
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.403 b/source/ap/vim/patches/7.3.403
new file mode 100644
index 000000000..bc3bf5498
--- /dev/null
+++ b/source/ap/vim/patches/7.3.403
@@ -0,0 +1,108 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.403
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.403
+Problem: ":helpgrep" does not trigger QuickFixCmd* autocommands.
+Solution: Trigger the autocommands. (Christian Brabandt)
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.402/src/quickfix.c 2012-01-20 13:28:28.000000000 +0100
+--- src/quickfix.c 2012-01-20 13:37:10.000000000 +0100
+***************
+*** 3878,3893 ****
+ qf_info_T *qi = &ql_info;
+ int new_qi = FALSE;
+ win_T *wp;
+!
+! /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
+! save_cpo = p_cpo;
+! p_cpo = empty_option;
+
+ #ifdef FEAT_MULTI_LANG
+ /* Check for a specified language */
+ lang = check_help_lang(eap->arg);
+ #endif
+
+ if (eap->cmdidx == CMD_lhelpgrep)
+ {
+ /* Find an existing help window */
+--- 3878,3912 ----
+ qf_info_T *qi = &ql_info;
+ int new_qi = FALSE;
+ win_T *wp;
+! #ifdef FEAT_AUTOCMD
+! char_u *au_name = NULL;
+! #endif
+
+ #ifdef FEAT_MULTI_LANG
+ /* Check for a specified language */
+ lang = check_help_lang(eap->arg);
+ #endif
+
++ #ifdef FEAT_AUTOCMD
++ switch (eap->cmdidx)
++ {
++ case CMD_helpgrep: au_name = (char_u *)"helpgrep"; break;
++ case CMD_lhelpgrep: au_name = (char_u *)"lhelpgrep"; break;
++ default: break;
++ }
++ if (au_name != NULL)
++ {
++ apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
++ curbuf->b_fname, TRUE, curbuf);
++ if (did_throw || force_abort)
++ return;
++ }
++ #endif
++
++ /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
++ save_cpo = p_cpo;
++ p_cpo = empty_option;
++
+ if (eap->cmdidx == CMD_lhelpgrep)
+ {
+ /* Find an existing help window */
+***************
+*** 4036,4041 ****
+--- 4055,4071 ----
+ qf_update_buffer(qi);
+ #endif
+
++ #ifdef FEAT_AUTOCMD
++ if (au_name != NULL)
++ {
++ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
++ curbuf->b_fname, TRUE, curbuf);
++ if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
++ /* autocommands made "qi" invalid */
++ return;
++ }
++ #endif
++
+ /* Jump to first match. */
+ if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
+ qf_jump(qi, 0, 0, FALSE);
+*** ../vim-7.3.402/src/version.c 2012-01-20 13:28:28.000000000 +0100
+--- src/version.c 2012-01-20 13:30:37.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 403,
+ /**/
+
+--
+Looking at Perl through Lisp glasses, Perl looks atrocious.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.404 b/source/ap/vim/patches/7.3.404
new file mode 100644
index 000000000..445d7051d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.404
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.404
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.404
+Problem: When a complete function uses refresh "always" redo will not work
+ properly.
+Solution: Do not reset compl_leader when compl_opt_refresh_always is set.
+ (Yasuhiro Matsumoto)
+Files: src/edit.c
+
+
+*** ../vim-7.3.403/src/edit.c 2012-01-10 22:26:12.000000000 +0100
+--- src/edit.c 2012-01-20 14:26:06.000000000 +0100
+***************
+*** 3465,3475 ****
+ if (ins_compl_need_restart())
+ ins_compl_restart();
+
+! vim_free(compl_leader);
+! compl_leader = vim_strnsave(ml_get_curline() + compl_col,
+ (int)(curwin->w_cursor.col - compl_col));
+! if (compl_leader != NULL)
+! ins_compl_new_leader();
+ }
+
+ /*
+--- 3465,3481 ----
+ if (ins_compl_need_restart())
+ ins_compl_restart();
+
+! /* When 'always' is set, don't reset compl_leader. While completing,
+! * cursor don't point original position, changing compl_leader would
+! * break redo. */
+! if (!compl_opt_refresh_always)
+! {
+! vim_free(compl_leader);
+! compl_leader = vim_strnsave(ml_get_curline() + compl_col,
+ (int)(curwin->w_cursor.col - compl_col));
+! if (compl_leader != NULL)
+! ins_compl_new_leader();
+! }
+ }
+
+ /*
+***************
+*** 4554,4559 ****
+--- 4560,4570 ----
+ int found_end = FALSE;
+ int advance;
+
++ /* When user complete function return -1 for findstart which is next
++ * time of 'always', compl_shown_match become NULL. */
++ if (compl_shown_match == NULL)
++ return -1;
++
+ if (compl_leader != NULL
+ && (compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0)
+ {
+*** ../vim-7.3.403/src/version.c 2012-01-20 13:39:03.000000000 +0100
+--- src/version.c 2012-01-20 14:31:26.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 404,
+ /**/
+
+--
+ARTHUR: I've said I'm sorry about the old woman, but from the behind you
+ looked ...
+DENNIS: What I object to is that you automatically treat me like an inferior...
+ARTHUR: Well ... I AM king.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.405 b/source/ap/vim/patches/7.3.405
new file mode 100644
index 000000000..087aecc41
--- /dev/null
+++ b/source/ap/vim/patches/7.3.405
@@ -0,0 +1,101 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.405
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.405
+Problem: When xterm gets back the function keys it may delete the urxvt
+ mouse termcap code.
+Solution: Check for the whole code, not just the start. (Egmont Koblinger)
+Files: src/keymap.h, src/misc2.c, src/term.c
+
+
+*** ../vim-7.3.404/src/keymap.h 2011-10-20 21:09:25.000000000 +0200
+--- src/keymap.h 2012-01-20 16:35:43.000000000 +0100
+***************
+*** 411,416 ****
+--- 411,417 ----
+ #define K_DEC_MOUSE TERMCAP2KEY(KS_DEC_MOUSE, KE_FILLER)
+ #define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
+ #define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
++ #define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
+
+ #define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
+ #define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
+*** ../vim-7.3.404/src/misc2.c 2012-01-10 22:26:12.000000000 +0100
+--- src/misc2.c 2012-01-20 16:38:27.000000000 +0100
+***************
+*** 2416,2425 ****
+--- 2416,2436 ----
+ {'<', (char_u *)"lt"},
+
+ {K_MOUSE, (char_u *)"Mouse"},
++ #ifdef FEAT_MOUSE_NET
+ {K_NETTERM_MOUSE, (char_u *)"NetMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_DEC
+ {K_DEC_MOUSE, (char_u *)"DecMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_JSB
+ {K_JSBTERM_MOUSE, (char_u *)"JsbMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_PTERM
+ {K_PTERM_MOUSE, (char_u *)"PtermMouse"},
++ #endif
++ #ifdef FEAT_MOUSE_URXVT
++ {K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
++ #endif
+ {K_LEFTMOUSE, (char_u *)"LeftMouse"},
+ {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
+ {K_LEFTDRAG, (char_u *)"LeftDrag"},
+*** ../vim-7.3.404/src/term.c 2011-12-01 20:59:16.000000000 +0100
+--- src/term.c 2012-01-20 16:50:41.000000000 +0100
+***************
+*** 5252,5263 ****
+ char_u *src;
+ {
+ int i;
+! int slen;
+
+ for (i = 0; i < tc_len; ++i)
+ {
+! slen = termcodes[i].len;
+! if (slen > 1 && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
+ return i;
+ }
+ return -1;
+--- 5252,5263 ----
+ char_u *src;
+ {
+ int i;
+! int slen = STRLEN(src);
+
+ for (i = 0; i < tc_len; ++i)
+ {
+! if (slen == termcodes[i].len
+! && STRNCMP(termcodes[i].code, src, (size_t)slen) == 0)
+ return i;
+ }
+ return -1;
+*** ../vim-7.3.404/src/version.c 2012-01-20 14:32:22.000000000 +0100
+--- src/version.c 2012-01-20 16:59:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 405,
+ /**/
+
+--
+"The future's already arrived - it's just not evenly distributed yet."
+ -- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.406 b/source/ap/vim/patches/7.3.406
new file mode 100644
index 000000000..dceca0edb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.406
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.406
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.406
+Problem: Multi-byte characters in b:browsefilter are not handled correctly.
+Solution: First use convert_filter() normally and then convert to wide
+ characters. (Taro Muraoka)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.3.405/src/gui_w48.c 2011-09-07 18:58:24.000000000 +0200
+--- src/gui_w48.c 2012-01-20 17:54:19.000000000 +0100
+***************
+*** 328,333 ****
+--- 328,337 ----
+ static LRESULT _OnImeNotify(HWND hWnd, DWORD dwCommand, DWORD dwData);
+ #endif
+
++ #if defined(FEAT_MBYTE) && defined(WIN3264)
++ static char_u *convert_filter(char_u *s);
++ #endif
++
+ #ifdef DEBUG_PRINT_ERROR
+ /*
+ * Print out the last Windows error message
+***************
+*** 3275,3302 ****
+
+ # if defined(FEAT_MBYTE) && defined(WIN3264)
+ /*
+! * Wide version of convert_filter(). Keep in sync!
+ */
+ static WCHAR *
+ convert_filterW(char_u *s)
+ {
+! WCHAR *res;
+! unsigned s_len = (unsigned)STRLEN(s);
+! unsigned i;
+
+! res = (WCHAR *)alloc((s_len + 3) * sizeof(WCHAR));
+! if (res != NULL)
+! {
+! for (i = 0; i < s_len; ++i)
+! if (s[i] == '\t' || s[i] == '\n')
+! res[i] = '\0';
+! else
+! res[i] = s[i];
+! res[s_len] = NUL;
+! /* Add two extra NULs to make sure it's properly terminated. */
+! res[s_len + 1] = NUL;
+! res[s_len + 2] = NUL;
+! }
+ return res;
+ }
+
+--- 3279,3298 ----
+
+ # if defined(FEAT_MBYTE) && defined(WIN3264)
+ /*
+! * Wide version of convert_filter().
+ */
+ static WCHAR *
+ convert_filterW(char_u *s)
+ {
+! char_u *tmp;
+! int len;
+
+! tmp = convert_filter(s);
+! if (tmp == NULL)
+! return NULL;
+! len = (int)STRLEN(s) + 3;
+! res = enc_to_utf16(tmp, &len);
+! vim_free(tmp);
+ return res;
+ }
+
+*** ../vim-7.3.405/src/version.c 2012-01-20 17:15:47.000000000 +0100
+--- src/version.c 2012-01-20 17:57:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 406,
+ /**/
+
+--
+DENNIS: Look, strange women lying on their backs in ponds handing out
+ swords ... that's no basis for a system of government. Supreme
+ executive power derives from a mandate from the masses, not from some
+ farcical aquatic ceremony.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.407 b/source/ap/vim/patches/7.3.407
new file mode 100644
index 000000000..d5ac1330c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.407
@@ -0,0 +1,270 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.407
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.407
+Problem: ":12verbose call F()" may duplicate text while trying to truncate.
+ (Thinca)
+Solution: Only truncate when there is not enough room. Also check the byte
+ length of the buffer.
+Files: src/buffer.c, src/eval.c, src/ex_getln.c, src/message.c,
+ src/proto/message.pro
+
+
+*** ../vim-7.3.406/src/buffer.c 2011-12-30 13:39:04.000000000 +0100
+--- src/buffer.c 2012-01-20 18:37:43.000000000 +0100
+***************
+*** 3258,3266 ****
+ if (maxlen > 0)
+ {
+ /* make it shorter by removing a bit in the middle */
+! len = vim_strsize(buf);
+! if (len > maxlen)
+! trunc_string(buf, buf, maxlen);
+ }
+ }
+ }
+--- 3258,3265 ----
+ if (maxlen > 0)
+ {
+ /* make it shorter by removing a bit in the middle */
+! if (vim_strsize(buf) > maxlen)
+! trunc_string(buf, buf, maxlen, IOSIZE);
+ }
+ }
+ }
+*** ../vim-7.3.406/src/eval.c 2012-01-10 22:26:12.000000000 +0100
+--- src/eval.c 2012-01-20 20:43:32.000000000 +0100
+***************
+*** 22163,22170 ****
+ s = tv2string(&argvars[i], &tofree, numbuf2, 0);
+ if (s != NULL)
+ {
+! trunc_string(s, buf, MSG_BUF_CLEN);
+! msg_puts(buf);
+ vim_free(tofree);
+ }
+ }
+--- 22163,22174 ----
+ s = tv2string(&argvars[i], &tofree, numbuf2, 0);
+ if (s != NULL)
+ {
+! if (vim_strsize(s) > MSG_BUF_CLEN)
+! {
+! trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+! s = buf;
+! }
+! msg_puts(s);
+ vim_free(tofree);
+ }
+ }
+***************
+*** 22252,22259 ****
+ s = tv2string(fc->rettv, &tofree, numbuf2, 0);
+ if (s != NULL)
+ {
+! trunc_string(s, buf, MSG_BUF_CLEN);
+! smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
+ vim_free(tofree);
+ }
+ }
+--- 22256,22267 ----
+ s = tv2string(fc->rettv, &tofree, numbuf2, 0);
+ if (s != NULL)
+ {
+! if (vim_strsize(s) > MSG_BUF_CLEN)
+! {
+! trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
+! s = buf;
+! }
+! smsg((char_u *)_("%s returning %s"), sourcing_name, s);
+ vim_free(tofree);
+ }
+ }
+*** ../vim-7.3.406/src/ex_getln.c 2011-12-08 18:44:47.000000000 +0100
+--- src/ex_getln.c 2012-01-20 18:40:46.000000000 +0100
+***************
+*** 5923,5929 ****
+ hist[i].hisnum);
+ if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+ trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+! (int)Columns - 10);
+ else
+ STRCAT(IObuff, hist[i].hisstr);
+ msg_outtrans(IObuff);
+--- 5923,5929 ----
+ hist[i].hisnum);
+ if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+ trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+! (int)Columns - 10, IOSIZE - STRLEN(IObuff));
+ else
+ STRCAT(IObuff, hist[i].hisstr);
+ msg_outtrans(IObuff);
+*** ../vim-7.3.406/src/message.c 2012-01-10 22:26:12.000000000 +0100
+--- src/message.c 2012-01-20 20:38:29.000000000 +0100
+***************
+*** 222,236 ****
+ if (enc_utf8)
+ /* may have up to 18 bytes per cell (6 per char, up to two
+ * composing chars) */
+! buf = alloc((room + 2) * 18);
+ else if (enc_dbcs == DBCS_JPNU)
+ /* may have up to 2 bytes per cell for euc-jp */
+! buf = alloc((room + 2) * 2);
+ else
+ #endif
+! buf = alloc(room + 2);
+ if (buf != NULL)
+! trunc_string(s, buf, room);
+ }
+ }
+ return buf;
+--- 222,237 ----
+ if (enc_utf8)
+ /* may have up to 18 bytes per cell (6 per char, up to two
+ * composing chars) */
+! len = (room + 2) * 18;
+ else if (enc_dbcs == DBCS_JPNU)
+ /* may have up to 2 bytes per cell for euc-jp */
+! len = (room + 2) * 2;
+ else
+ #endif
+! len = room + 2;
+! buf = alloc(len);
+ if (buf != NULL)
+! trunc_string(s, buf, room, len);
+ }
+ }
+ return buf;
+***************
+*** 241,250 ****
+ * "s" and "buf" may be equal.
+ */
+ void
+! trunc_string(s, buf, room)
+ char_u *s;
+ char_u *buf;
+ int room;
+ {
+ int half;
+ int len;
+--- 242,252 ----
+ * "s" and "buf" may be equal.
+ */
+ void
+! trunc_string(s, buf, room, buflen)
+ char_u *s;
+ char_u *buf;
+ int room;
++ int buflen;
+ {
+ int half;
+ int len;
+***************
+*** 257,263 ****
+ len = 0;
+
+ /* First part: Start of the string. */
+! for (e = 0; len < half; ++e)
+ {
+ if (s[e] == NUL)
+ {
+--- 259,265 ----
+ len = 0;
+
+ /* First part: Start of the string. */
+! for (e = 0; len < half && e < buflen; ++e)
+ {
+ if (s[e] == NUL)
+ {
+***************
+*** 274,280 ****
+ if (has_mbyte)
+ for (n = (*mb_ptr2len)(s + e); --n > 0; )
+ {
+! ++e;
+ buf[e] = s[e];
+ }
+ #endif
+--- 276,283 ----
+ if (has_mbyte)
+ for (n = (*mb_ptr2len)(s + e); --n > 0; )
+ {
+! if (++e == buflen)
+! break;
+ buf[e] = s[e];
+ }
+ #endif
+***************
+*** 319,326 ****
+ }
+
+ /* Set the middle and copy the last part. */
+! mch_memmove(buf + e, "...", (size_t)3);
+! STRMOVE(buf + e + 3, s + i);
+ }
+
+ /*
+--- 322,340 ----
+ }
+
+ /* Set the middle and copy the last part. */
+! if (e + 3 < buflen)
+! {
+! mch_memmove(buf + e, "...", (size_t)3);
+! len = STRLEN(s + i) + 1;
+! if (len >= buflen - e - 3)
+! len = buflen - e - 3 - 1;
+! mch_memmove(buf + e + 3, s + i, len);
+! buf[e + 3 + len - 1] = NUL;
+! }
+! else
+! {
+! buf[e - 1] = NUL; // make sure it is truncated
+! }
+ }
+
+ /*
+*** ../vim-7.3.406/src/proto/message.pro 2011-01-17 20:08:03.000000000 +0100
+--- src/proto/message.pro 2012-01-20 18:51:19.000000000 +0100
+***************
+*** 4,10 ****
+ int msg_attr __ARGS((char_u *s, int attr));
+ int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
+ char_u *msg_strtrunc __ARGS((char_u *s, int force));
+! void trunc_string __ARGS((char_u *s, char_u *buf, int room));
+ void reset_last_sourcing __ARGS((void));
+ void msg_source __ARGS((int attr));
+ int emsg_not_now __ARGS((void));
+--- 4,10 ----
+ int msg_attr __ARGS((char_u *s, int attr));
+ int msg_attr_keep __ARGS((char_u *s, int attr, int keep));
+ char_u *msg_strtrunc __ARGS((char_u *s, int force));
+! void trunc_string __ARGS((char_u *s, char_u *buf, int room, int buflen));
+ void reset_last_sourcing __ARGS((void));
+ void msg_source __ARGS((int attr));
+ int emsg_not_now __ARGS((void));
+*** ../vim-7.3.406/src/version.c 2012-01-20 17:57:47.000000000 +0100
+--- src/version.c 2012-01-20 20:42:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 407,
+ /**/
+
+--
+Hanson's Treatment of Time:
+ There are never enough hours in a day, but always too
+ many days before Saturday.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.408 b/source/ap/vim/patches/7.3.408
new file mode 100644
index 000000000..02276085c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.408
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.408
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.408 (after 7.3.406)
+Problem: Missing declaration.
+Solution: Add the declaration. (John Marriott)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.3.407/src/gui_w48.c 2012-01-20 17:57:47.000000000 +0100
+--- src/gui_w48.c 2012-01-20 20:51:57.000000000 +0100
+***************
+*** 3286,3291 ****
+--- 3286,3292 ----
+ {
+ char_u *tmp;
+ int len;
++ WCHAR *res;
+
+ tmp = convert_filter(s);
+ if (tmp == NULL)
+*** ../vim-7.3.407/src/version.c 2012-01-20 20:44:38.000000000 +0100
+--- src/version.c 2012-01-20 20:52:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 408,
+ /**/
+
+--
+BLACK KNIGHT: None shall pass.
+ARTHUR: I have no quarrel with you, brave Sir knight, but I must cross
+ this bridge.
+BLACK KNIGHT: Then you shall die.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.409 b/source/ap/vim/patches/7.3.409
new file mode 100644
index 000000000..a00fdcb8d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.409
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.409
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.409
+Problem: The license in pty.c is unclear.
+Solution: Add a comment about the license.
+Files: src/pty.c
+
+
+*** ../vim-7.3.408/src/pty.c 2011-05-19 13:40:47.000000000 +0200
+--- src/pty.c 2012-01-20 21:07:56.000000000 +0100
+***************
+*** 14,19 ****
+--- 14,23 ----
+ * It has been modified to work better with Vim.
+ * The parts that are not used in Vim have been deleted.
+ * See the "screen" sources for the complete stuff.
++ *
++ * This specific version is distibuted under the Vim license (attribution by
++ * Juergen Weigert), the GPL applies to the original version, see the
++ * copyright notice below.
+ */
+
+ /* Copyright (c) 1993
+*** ../vim-7.3.408/src/version.c 2012-01-20 20:54:15.000000000 +0100
+--- src/version.c 2012-01-20 21:13:11.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 409,
+ /**/
+
+--
+ARTHUR: What are you going to do. bleed on me?
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.410 b/source/ap/vim/patches/7.3.410
new file mode 100644
index 000000000..f40e06faf
--- /dev/null
+++ b/source/ap/vim/patches/7.3.410
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.410
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.410
+Problem: Compiler error for // comment. (Joachim Schmitz)
+Solution: Turn into /* comment */.
+Files: src/message.c
+
+
+*** ../vim-7.3.409/src/message.c 2012-01-20 20:44:38.000000000 +0100
+--- src/message.c 2012-01-23 20:46:36.000000000 +0100
+***************
+*** 333,339 ****
+ }
+ else
+ {
+! buf[e - 1] = NUL; // make sure it is truncated
+ }
+ }
+
+--- 333,339 ----
+ }
+ else
+ {
+! buf[e - 1] = NUL; /* make sure it is truncated */
+ }
+ }
+
+*** ../vim-7.3.409/src/version.c 2012-01-20 21:13:55.000000000 +0100
+--- src/version.c 2012-01-23 20:47:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 410,
+ /**/
+
+
+--
+Are leaders born or made? And if they're made, can we return them under
+warranty?
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.411 b/source/ap/vim/patches/7.3.411
new file mode 100644
index 000000000..fe7599522
--- /dev/null
+++ b/source/ap/vim/patches/7.3.411
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.411
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.411
+Problem: Pasting in Visual mode using the "" register does not work. (John
+ Beckett)
+Solution: Detect that the write is overwriting the pasted register.
+ (Christian Brabandt)
+Files: src/normal.c
+
+
+*** ../vim-7.3.410/src/normal.c 2011-10-04 21:22:40.000000000 +0200
+--- src/normal.c 2012-01-23 22:13:44.000000000 +0100
+***************
+*** 9329,9335 ****
+ # ifdef FEAT_CLIPBOARD
+ adjust_clip_reg(&regname);
+ # endif
+! if (regname == 0 || VIM_ISDIGIT(regname)
+ # ifdef FEAT_CLIPBOARD
+ || (clip_unnamed && (regname == '*' || regname == '+'))
+ # endif
+--- 9329,9335 ----
+ # ifdef FEAT_CLIPBOARD
+ adjust_clip_reg(&regname);
+ # endif
+! if (regname == 0 || regname == '"' || VIM_ISDIGIT(regname)
+ # ifdef FEAT_CLIPBOARD
+ || (clip_unnamed && (regname == '*' || regname == '+'))
+ # endif
+*** ../vim-7.3.410/src/version.c 2012-01-23 20:48:34.000000000 +0100
+--- src/version.c 2012-01-26 11:42:33.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 411,
+ /**/
+
+--
+Engineers understand that their appearance only bothers other people and
+therefore it is not worth optimizing.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.412 b/source/ap/vim/patches/7.3.412
new file mode 100644
index 000000000..3b181883a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.412
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.412
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.412
+Problem: Storing a float in a session file has an additional '&'.
+Solution: Remove the '&'. (Yasuhiro Matsumoto)
+Files: src/eval.c
+
+
+*** ../vim-7.3.411/src/eval.c 2012-01-20 20:44:38.000000000 +0100
+--- src/eval.c 2012-01-26 11:39:39.000000000 +0100
+***************
+*** 22929,22935 ****
+ f = -f;
+ sign = '-';
+ }
+! if ((fprintf(fd, "let %s = %c&%f",
+ this_var->di_key, sign, f) < 0)
+ || put_eol(fd) == FAIL)
+ return FAIL;
+--- 22929,22935 ----
+ f = -f;
+ sign = '-';
+ }
+! if ((fprintf(fd, "let %s = %c%f",
+ this_var->di_key, sign, f) < 0)
+ || put_eol(fd) == FAIL)
+ return FAIL;
+*** ../vim-7.3.411/src/version.c 2012-01-26 11:43:04.000000000 +0100
+--- src/version.c 2012-01-26 11:44:56.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 412,
+ /**/
+
+--
+Imagine a world without hypothetical situations.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.413 b/source/ap/vim/patches/7.3.413
new file mode 100644
index 000000000..c32c9b1dd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.413
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.413
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.413
+Problem: Build warnings on MS-Windows.
+Solution: Add type casts. (Mike Williams)
+Files: src/ex_getln.c, src/message.c, src/term.c
+
+
+*** ../vim-7.3.412/src/ex_getln.c 2012-01-20 20:44:38.000000000 +0100
+--- src/ex_getln.c 2012-01-26 12:58:54.000000000 +0100
+***************
+*** 5923,5929 ****
+ hist[i].hisnum);
+ if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+ trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+! (int)Columns - 10, IOSIZE - STRLEN(IObuff));
+ else
+ STRCAT(IObuff, hist[i].hisstr);
+ msg_outtrans(IObuff);
+--- 5923,5929 ----
+ hist[i].hisnum);
+ if (vim_strsize(hist[i].hisstr) > (int)Columns - 10)
+ trunc_string(hist[i].hisstr, IObuff + STRLEN(IObuff),
+! (int)Columns - 10, IOSIZE - (int)STRLEN(IObuff));
+ else
+ STRCAT(IObuff, hist[i].hisstr);
+ msg_outtrans(IObuff);
+*** ../vim-7.3.412/src/message.c 2012-01-23 20:48:34.000000000 +0100
+--- src/message.c 2012-01-26 12:58:54.000000000 +0100
+***************
+*** 325,331 ****
+ if (e + 3 < buflen)
+ {
+ mch_memmove(buf + e, "...", (size_t)3);
+! len = STRLEN(s + i) + 1;
+ if (len >= buflen - e - 3)
+ len = buflen - e - 3 - 1;
+ mch_memmove(buf + e + 3, s + i, len);
+--- 325,331 ----
+ if (e + 3 < buflen)
+ {
+ mch_memmove(buf + e, "...", (size_t)3);
+! len = (int)STRLEN(s + i) + 1;
+ if (len >= buflen - e - 3)
+ len = buflen - e - 3 - 1;
+ mch_memmove(buf + e + 3, s + i, len);
+*** ../vim-7.3.412/src/term.c 2012-01-20 17:15:47.000000000 +0100
+--- src/term.c 2012-01-26 12:58:54.000000000 +0100
+***************
+*** 5252,5258 ****
+ char_u *src;
+ {
+ int i;
+! int slen = STRLEN(src);
+
+ for (i = 0; i < tc_len; ++i)
+ {
+--- 5252,5258 ----
+ char_u *src;
+ {
+ int i;
+! int slen = (int)STRLEN(src);
+
+ for (i = 0; i < tc_len; ++i)
+ {
+*** ../vim-7.3.412/src/version.c 2012-01-26 11:45:25.000000000 +0100
+--- src/version.c 2012-01-26 12:59:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 413,
+ /**/
+
+--
+It doesn't really matter what you are able to do if you don't do it.
+ (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.414 b/source/ap/vim/patches/7.3.414
new file mode 100644
index 000000000..6f6c30753
--- /dev/null
+++ b/source/ap/vim/patches/7.3.414
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.414
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.414
+Problem: Using CTRL-A on "000" drops the leading zero, while on "001" it
+ doesn't.
+Solution: Detect "000" as an octal number. (James McCoy)
+Files: src/charset.c
+
+
+*** ../vim-7.3.413/src/charset.c 2012-01-10 22:26:12.000000000 +0100
+--- src/charset.c 2012-01-26 13:33:45.000000000 +0100
+***************
+*** 764,770 ****
+ }
+
+ /*
+! * Return the number of characters string "s" will take on the screen,
+ * counting TABs as two characters: "^I".
+ */
+ int
+--- 764,770 ----
+ }
+
+ /*
+! * Return the number of character cells string "s" will take on the screen,
+ * counting TABs as two characters: "^I".
+ */
+ int
+***************
+*** 775,782 ****
+ }
+
+ /*
+! * Return the number of characters string "s[len]" will take on the screen,
+! * counting TABs as two characters: "^I".
+ */
+ int
+ vim_strnsize(s, len)
+--- 775,782 ----
+ }
+
+ /*
+! * Return the number of character cells string "s[len]" will take on the
+! * screen, counting TABs as two characters: "^I".
+ */
+ int
+ vim_strnsize(s, len)
+***************
+*** 1830,1836 ****
+ hex = 0; /* can't be octal */
+ break;
+ }
+! if (ptr[n] > '0')
+ hex = '0'; /* assume octal */
+ }
+ }
+--- 1830,1836 ----
+ hex = 0; /* can't be octal */
+ break;
+ }
+! if (ptr[n] >= '0')
+ hex = '0'; /* assume octal */
+ }
+ }
+*** ../vim-7.3.413/src/version.c 2012-01-26 13:01:54.000000000 +0100
+--- src/version.c 2012-01-26 13:38:04.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 414,
+ /**/
+
+--
+No engineer can take a shower without wondering if some sort of Teflon coating
+would make showering unnecessary.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.415 b/source/ap/vim/patches/7.3.415
new file mode 100644
index 000000000..74e757b2d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.415
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.415
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.415 (after 7.3.359)
+Problem: Completion of functions stops once a dictionary is encountered.
+ (James McCoy)
+Solution: Return an empty string instead of NULL.
+Files: src/eval.c
+
+
+*** ../vim-7.3.414/src/eval.c 2012-01-26 11:45:25.000000000 +0100
+--- src/eval.c 2012-01-26 13:45:52.000000000 +0100
+***************
+*** 21802,21808 ****
+ fp = HI2UF(hi);
+
+ if (fp->uf_flags & FC_DICT)
+! return NULL; /* don't show dict functions */
+
+ if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+ return fp->uf_name; /* prevents overflow */
+--- 21802,21808 ----
+ fp = HI2UF(hi);
+
+ if (fp->uf_flags & FC_DICT)
+! return ""; /* don't show dict functions */
+
+ if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+ return fp->uf_name; /* prevents overflow */
+*** ../vim-7.3.414/src/version.c 2012-01-26 13:40:04.000000000 +0100
+--- src/version.c 2012-01-26 14:32:16.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 415,
+ /**/
+
+--
+Normal people believe that if it ain't broke, don't fix it. Engineers believe
+that if it ain't broke, it doesn't have enough features yet.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.416 b/source/ap/vim/patches/7.3.416
new file mode 100644
index 000000000..f65bb0d2f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.416
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.416
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.416 (after 7.3.415)
+Problem: Compiler warning for wrong pointer.
+Solution: Add type cast.
+Files: src/eval.c
+
+
+*** ../vim-7.3.415/src/eval.c 2012-01-26 14:32:26.000000000 +0100
+--- src/eval.c 2012-01-26 15:42:56.000000000 +0100
+***************
+*** 21802,21808 ****
+ fp = HI2UF(hi);
+
+ if (fp->uf_flags & FC_DICT)
+! return ""; /* don't show dict functions */
+
+ if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+ return fp->uf_name; /* prevents overflow */
+--- 21802,21808 ----
+ fp = HI2UF(hi);
+
+ if (fp->uf_flags & FC_DICT)
+! return (char_u *)""; /* don't show dict functions */
+
+ if (STRLEN(fp->uf_name) + 4 >= IOSIZE)
+ return fp->uf_name; /* prevents overflow */
+*** ../vim-7.3.415/src/version.c 2012-01-26 14:32:26.000000000 +0100
+--- src/version.c 2012-01-26 15:43:31.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 416,
+ /**/
+
+--
+It's totally unfair to suggest - as many have - that engineers are socially
+inept. Engineers simply have different objectives when it comes to social
+interaction.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.417 b/source/ap/vim/patches/7.3.417
new file mode 100644
index 000000000..489d27eb4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.417
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.417
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.417 (after 7.3.395)
+Problem: Test 43 fails with a tiny build.
+Solution: Only run test 43 with at least a small build.
+Files: src/testdir/test43.in
+
+
+*** ../vim-7.3.415/src/testdir/test43.in 2012-01-10 13:44:23.000000000 +0100
+--- src/testdir/test43.in 2012-01-26 18:00:06.000000000 +0100
+***************
+*** 1,6 ****
+--- 1,7 ----
+ Tests for regexp with various magic settings.
+
+ STARTTEST
++ :so small.vim
+ :set nocompatible viminfo+=nviminfo
+ /^1
+ /a*b\{2}c\+/e
+*** ../vim-7.3.415/src/version.c 2012-01-26 14:32:26.000000000 +0100
+--- src/version.c 2012-01-26 18:02:30.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 417,
+ /**/
+
+--
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.418 b/source/ap/vim/patches/7.3.418
new file mode 100644
index 000000000..6ff486b63
--- /dev/null
+++ b/source/ap/vim/patches/7.3.418
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.418
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.418
+Problem: When a user complete function returns -1 an error message is
+ given.
+Solution: When -2 is returned stop completion silently. (Yasuhiro Matsumoto)
+Files: src/edit.c
+
+
+*** ../vim-7.3.417/src/edit.c 2012-01-20 14:32:22.000000000 +0100
+--- src/edit.c 2012-01-26 18:32:23.000000000 +0100
+***************
+*** 5189,5194 ****
+--- 5189,5199 ----
+ return FAIL;
+ }
+
++ /* Return value -2 means the user complete function wants to
++ * cancel the complete without an error. */
++ if (col == -2)
++ return FAIL;
++
+ /*
+ * Reset extended parameters of completion, when start new
+ * completion.
+*** ../vim-7.3.417/src/version.c 2012-01-26 18:58:13.000000000 +0100
+--- src/version.c 2012-01-26 18:42:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 418,
+ /**/
+
+--
+If someone questions your market projections, simply point out that your
+target market is "People who are nuts" and "People who will buy any damn
+thing". Nobody is going to tell you there aren't enough of those people
+to go around.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.419 b/source/ap/vim/patches/7.3.419
new file mode 100644
index 000000000..865a47c75
--- /dev/null
+++ b/source/ap/vim/patches/7.3.419
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.419
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.419
+Problem: DBCS encoding in a user command does not always work.
+Solution: Skip over DBCS characters. (Yasuhiro Matsumoto)
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.418/src/ex_docmd.c 2011-12-14 14:49:41.000000000 +0100
+--- src/ex_docmd.c 2012-01-26 20:04:01.000000000 +0100
+***************
+*** 5967,5973 ****
+ result = STRLEN(eap->arg) + 2;
+ for (p = eap->arg; *p; ++p)
+ {
+! if (*p == '\\' || *p == '"')
+ ++result;
+ }
+
+--- 5967,5980 ----
+ result = STRLEN(eap->arg) + 2;
+ for (p = eap->arg; *p; ++p)
+ {
+! #ifdef FEAT_MBYTE
+! if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
+! /* DBCS can contain \ in a trail byte, skip the
+! * double-byte character. */
+! ++p;
+! else
+! #endif
+! if (*p == '\\' || *p == '"')
+ ++result;
+ }
+
+***************
+*** 5976,5982 ****
+ *buf++ = '"';
+ for (p = eap->arg; *p; ++p)
+ {
+! if (*p == '\\' || *p == '"')
+ *buf++ = '\\';
+ *buf++ = *p;
+ }
+--- 5983,5996 ----
+ *buf++ = '"';
+ for (p = eap->arg; *p; ++p)
+ {
+! #ifdef FEAT_MBYTE
+! if (enc_dbcs != 0 && (*mb_ptr2len)(p) == 2)
+! /* DBCS can contain \ in a trail byte, copy the
+! * double-byte character to avoid escaping. */
+! *buf++ = *p++;
+! else
+! #endif
+! if (*p == '\\' || *p == '"')
+ *buf++ = '\\';
+ *buf++ = *p;
+ }
+*** ../vim-7.3.418/src/version.c 2012-01-26 18:58:25.000000000 +0100
+--- src/version.c 2012-01-26 20:40:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 419,
+ /**/
+
+--
+You have heard the saying that if you put a thousand monkeys in a room with a
+thousand typewriters and waited long enough, eventually you would have a room
+full of dead monkeys.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.420 b/source/ap/vim/patches/7.3.420
new file mode 100644
index 000000000..d698d0b48
--- /dev/null
+++ b/source/ap/vim/patches/7.3.420
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.420
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.420
+Problem: "it" and "at" don't work properly with a dash in the tag name.
+Solution: Require a space to match the tag name. (Christian Brabandt)
+Files: src/search.c
+
+
+*** ../vim-7.3.419/src/search.c 2012-01-10 22:26:12.000000000 +0100
+--- src/search.c 2012-01-26 20:51:43.000000000 +0100
+***************
+*** 3918,3924 ****
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! spat = alloc(len + 29);
+ epat = alloc(len + 9);
+ if (spat == NULL || epat == NULL)
+ {
+--- 3918,3924 ----
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! spat = alloc(len + 31);
+ epat = alloc(len + 9);
+ if (spat == NULL || epat == NULL)
+ {
+***************
+*** 3927,3933 ****
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! sprintf((char *)spat, "<%.*s\\>\\%%(\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+ sprintf((char *)epat, "</%.*s>\\c", len, p);
+
+ r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+--- 3927,3933 ----
+ curwin->w_cursor = old_pos;
+ goto theend;
+ }
+! sprintf((char *)spat, "<%.*s\\>\\%%(\\s\\_[^>]\\{-}[^/]>\\|>\\)\\c", len, p);
+ sprintf((char *)epat, "</%.*s>\\c", len, p);
+
+ r = do_searchpair(spat, (char_u *)"", epat, FORWARD, (char_u *)"",
+*** ../vim-7.3.419/src/version.c 2012-01-26 20:41:22.000000000 +0100
+--- src/version.c 2012-01-26 20:51:16.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 420,
+ /**/
+
+--
+All good vision statements are created by groups of people with bloated
+bladders who would rather be doing anything else.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.421 b/source/ap/vim/patches/7.3.421
new file mode 100644
index 000000000..eadc29df2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.421
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.421
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.421
+Problem: Get E832 when setting 'undofile' in vimrc and there is a file to
+ be edited on the command line. (Toothpik)
+Solution: Do not try reading the undo file for a file that wasn't loaded.
+Files: src/option.c
+
+
+*** ../vim-7.3.420/src/option.c 2012-01-10 22:26:12.000000000 +0100
+--- src/option.c 2012-01-28 17:55:24.000000000 +0100
+***************
+*** 7527,7536 ****
+ {
+ /* When 'undofile' is set globally: for every buffer, otherwise
+ * only for the current buffer: Try to read in the undofile, if
+! * one exists and the buffer wasn't changed. */
+ if ((curbuf == save_curbuf
+ || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+! && !curbufIsChanged())
+ {
+ u_compute_hash(hash);
+ u_read_undo(NULL, hash, curbuf->b_fname);
+--- 7527,7537 ----
+ {
+ /* When 'undofile' is set globally: for every buffer, otherwise
+ * only for the current buffer: Try to read in the undofile, if
+! * one exists and the buffer wasn't changed and the buffer was
+! * loaded. */
+ if ((curbuf == save_curbuf
+ || (opt_flags & OPT_GLOBAL) || opt_flags == 0)
+! && !curbufIsChanged() && curbuf->b_ml.ml_mfp != NULL)
+ {
+ u_compute_hash(hash);
+ u_read_undo(NULL, hash, curbuf->b_fname);
+*** ../vim-7.3.420/src/version.c 2012-01-26 20:58:21.000000000 +0100
+--- src/version.c 2012-01-28 18:03:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 421,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+4. Your eyeglasses have a web site burned in on them.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.422 b/source/ap/vim/patches/7.3.422
new file mode 100644
index 000000000..7be4aebde
--- /dev/null
+++ b/source/ap/vim/patches/7.3.422
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.422
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.422
+Problem: Python 3 does not have __members__.
+Solution: Add "name" and "number" in another way. (lilydjwg)
+Files: src/if_py_both.h, src/if_python3.c
+
+
+*** ../vim-7.3.421/src/if_py_both.h 2011-09-07 19:30:17.000000000 +0200
+--- src/if_py_both.h 2012-02-04 19:59:43.000000000 +0100
+***************
+*** 1479,1484 ****
+--- 1479,1487 ----
+ {"append", BufferAppend, 1, "Append data to Vim buffer" },
+ {"mark", BufferMark, 1, "Return (row,col) representing position of named mark" },
+ {"range", BufferRange, 1, "Return a range object which represents the part of the given buffer between line numbers s and e" },
++ #if PY_VERSION_HEX >= 0x03000000
++ {"__dir__", BufferDir, 4, "List its attributes" },
++ #endif
+ { NULL, NULL, 0, NULL }
+ };
+
+*** ../vim-7.3.421/src/if_python3.c 2011-09-14 18:59:35.000000000 +0200
+--- src/if_python3.c 2012-02-04 20:13:00.000000000 +0100
+***************
+*** 468,473 ****
+--- 468,474 ----
+ static PyObject *BufferNew (buf_T *);
+ static PyObject *WindowNew(win_T *);
+ static PyObject *LineToString(const char *);
++ static PyObject *BufferDir(PyObject *, PyObject *);
+
+ static PyTypeObject RangeType;
+
+***************
+*** 961,973 ****
+ return Py_BuildValue("s", this->buf->b_ffname);
+ else if (strcmp(name, "number") == 0)
+ return Py_BuildValue("n", this->buf->b_fnum);
+- else if (strcmp(name,"__members__") == 0)
+- return Py_BuildValue("[ss]", "name", "number");
+ else
+ return PyObject_GenericGetAttr(self, nameobj);
+ }
+
+ static PyObject *
+ BufferRepr(PyObject *self)
+ {
+ static char repr[100];
+--- 962,979 ----
+ return Py_BuildValue("s", this->buf->b_ffname);
+ else if (strcmp(name, "number") == 0)
+ return Py_BuildValue("n", this->buf->b_fnum);
+ else
+ return PyObject_GenericGetAttr(self, nameobj);
+ }
+
+ static PyObject *
++ BufferDir(PyObject *self UNUSED, PyObject *args UNUSED)
++ {
++ return Py_BuildValue("[sssss]", "name", "number",
++ "append", "mark", "range");
++ }
++
++ static PyObject *
+ BufferRepr(PyObject *self)
+ {
+ static char repr[100];
+*** ../vim-7.3.421/src/version.c 2012-01-28 18:03:30.000000000 +0100
+--- src/version.c 2012-02-04 20:14:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 422,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+15. Five days in advance, tell your friends you can't attend their
+ party because you're not in the mood.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.423 b/source/ap/vim/patches/7.3.423
new file mode 100644
index 000000000..74bf62d2a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.423
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.423
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.423
+Problem: Small mistakes in comments, proto and indent.
+Solution: Fix the mistakes.
+Files: src/ex_cmds2.c, src/structs.h, src/ui.c, src/proto/ex_docmd.pro
+
+
+*** ../vim-7.3.422/src/ex_cmds2.c 2011-10-20 21:38:37.000000000 +0200
+--- src/ex_cmds2.c 2011-11-30 11:02:20.000000000 +0100
+***************
+*** 1939,1945 ****
+ }
+
+ /*
+! * Return TRUE if window "win" is editing then file at the current argument
+ * index.
+ */
+ static int
+--- 1939,1945 ----
+ }
+
+ /*
+! * Return TRUE if window "win" is editing the file at the current argument
+ * index.
+ */
+ static int
+*** ../vim-7.3.422/src/structs.h 2011-05-19 13:40:47.000000000 +0200
+--- src/structs.h 2011-09-10 13:48:53.000000000 +0200
+***************
+*** 1846,1852 ****
+ often, keep it the first item!) */
+
+ #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+! synblock_T *w_s;
+ #endif
+
+ #ifdef FEAT_WINDOWS
+--- 1846,1852 ----
+ often, keep it the first item!) */
+
+ #if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
+! synblock_T *w_s; /* for :ownsyntax */
+ #endif
+
+ #ifdef FEAT_WINDOWS
+*** ../vim-7.3.422/src/ui.c 2011-07-07 16:20:45.000000000 +0200
+--- src/ui.c 2012-01-21 14:03:42.000000000 +0100
+***************
+*** 2363,2376 ****
+ XtLastTimestampProcessed(XtDisplay(myShell)),
+ clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
+ NULL) == False)
+! return FAIL;
+ }
+ else
+ #endif
+ {
+ if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
+ cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
+! return FAIL;
+ }
+ /* Flush is required in a terminal as nothing else is doing it. */
+ XFlush(XtDisplay(myShell));
+--- 2363,2376 ----
+ XtLastTimestampProcessed(XtDisplay(myShell)),
+ clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
+ NULL) == False)
+! return FAIL;
+ }
+ else
+ #endif
+ {
+ if (!XChangeProperty(XtDisplay(myShell), XtWindow(myShell),
+ cbd->sel_atom, timestamp_atom, 32, PropModeAppend, NULL, 0))
+! return FAIL;
+ }
+ /* Flush is required in a terminal as nothing else is doing it. */
+ XFlush(XtDisplay(myShell));
+*** ../vim-7.3.422/src/proto/ex_docmd.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ex_docmd.pro 2011-01-16 00:22:21.000000000 +0100
+***************
+*** 1,7 ****
+ /* ex_docmd.c */
+ void do_exmode __ARGS((int improved));
+ int do_cmdline_cmd __ARGS((char_u *cmd));
+! int do_cmdline __ARGS((char_u *cmdline, char_u *(*getline)(int, void *, int), void *cookie, int flags));
+ int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
+ void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
+ int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+--- 1,7 ----
+ /* ex_docmd.c */
+ void do_exmode __ARGS((int improved));
+ int do_cmdline_cmd __ARGS((char_u *cmd));
+! int do_cmdline __ARGS((char_u *cmdline, char_u *(*fgetline)(int, void *, int), void *cookie, int flags));
+ int getline_equal __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie, char_u *(*func)(int, void *, int)));
+ void *getline_cookie __ARGS((char_u *(*fgetline)(int, void *, int), void *cookie));
+ int checkforcmd __ARGS((char_u **pp, char *cmd, int len));
+*** ../vim-7.3.422/src/version.c 2012-02-04 20:17:21.000000000 +0100
+--- src/version.c 2012-02-04 21:56:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 423,
+ /**/
+
+--
+In many of the more relaxed civilizations on the Outer Eastern Rim of the
+Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the
+great "Encyclopedia Galactica" as the standard repository of all knowledge
+and wisdom, for though it has many omissions and contains much that is
+apocryphal, or at least wildly inaccurate, it scores over the older, more
+pedestrian work in two important respects.
+First, it is slightly cheaper; and second, it has the words "DON'T PANIC"
+inscribed in large friendly letters on its cover.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.424 b/source/ap/vim/patches/7.3.424
new file mode 100644
index 000000000..61786ed8d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.424
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.424
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.424
+Problem: Win16 version missing some functions.
+Solution: Add #defines for the functions.
+Files: src/gui_w16.c
+
+
+*** ../vim-7.3.423/src/gui_w16.c 2011-01-17 20:08:03.000000000 +0100
+--- src/gui_w16.c 2011-08-10 16:50:21.000000000 +0200
+***************
+*** 21,26 ****
+--- 21,32 ----
+ *
+ */
+
++ /* Win16 doesn't use the "W" methods. */
++ #define pDispatchMessage DispatchMessage
++ #define pGetMessage GetMessage
++ #define pIsDialogMessage IsDialogMessage
++ #define pPeekMessage PeekMessage
++
+ /*
+ * Include the common stuff for MS-Windows GUI.
+ */
+*** ../vim-7.3.423/src/version.c 2012-02-04 21:57:44.000000000 +0100
+--- src/version.c 2012-02-04 22:01:13.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 424,
+ /**/
+
+--
+Now it is such a bizarrely improbable coincidence that anything as
+mind-bogglingly useful as the Babel fish could have evolved purely by chance
+that some thinkers have chosen to see it as a final and clinching proof of the
+NON-existence of God.
+The argument goes something like this: 'I refuse to prove that I exist,' says
+God, 'for proof denies faith, and without faith I am nothing.'
+'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not
+have evolved by chance. It proves you exist, and so therefore, by your own
+arguments, you don't. QED.'
+'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a
+puff of logic.
+'Oh, that was easy,' says Man, and for an encore goes on to prove that black
+is white and gets himself killed on the next pedestrian crossing.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.425 b/source/ap/vim/patches/7.3.425
new file mode 100644
index 000000000..aeadf3a3a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.425
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.425
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.425 (after 7.3.265)
+Problem: Search history lines are duplicated. (Edwin Steiner)
+Solution: Convert separator character from space to NUL.
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.424/src/ex_getln.c 2012-01-26 13:01:54.000000000 +0100
+--- src/ex_getln.c 2012-02-04 22:27:43.000000000 +0100
+***************
+*** 6027,6034 ****
+ val = viminfo_readstring(virp, 1, TRUE);
+ if (val != NULL && *val != NUL)
+ {
+ if (!in_history(type, val + (type == HIST_SEARCH),
+! viminfo_add_at_front, *val))
+ {
+ /* Need to re-allocate to append the separator byte. */
+ len = STRLEN(val);
+--- 6027,6036 ----
+ val = viminfo_readstring(virp, 1, TRUE);
+ if (val != NULL && *val != NUL)
+ {
++ int sep = (*val == ' ' ? NUL : *val);
++
+ if (!in_history(type, val + (type == HIST_SEARCH),
+! viminfo_add_at_front, sep))
+ {
+ /* Need to re-allocate to append the separator byte. */
+ len = STRLEN(val);
+***************
+*** 6040,6046 ****
+ /* Search entry: Move the separator from the first
+ * column to after the NUL. */
+ mch_memmove(p, val + 1, (size_t)len);
+! p[len] = (*val == ' ' ? NUL : *val);
+ }
+ else
+ {
+--- 6042,6048 ----
+ /* Search entry: Move the separator from the first
+ * column to after the NUL. */
+ mch_memmove(p, val + 1, (size_t)len);
+! p[len] = sep;
+ }
+ else
+ {
+*** ../vim-7.3.424/src/version.c 2012-02-04 22:01:44.000000000 +0100
+--- src/version.c 2012-02-04 22:30:36.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 425,
+ /**/
+
+--
+"So this is it," said Arthur, "we are going to die."
+"Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across
+the chamber at something behind Arthur's line of vision. "What's this
+switch?" he cried.
+"What? Where?" cried Arthur, twisting around.
+"No, I was only fooling," said Ford, "we are going to die after all."
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.426 b/source/ap/vim/patches/7.3.426
new file mode 100644
index 000000000..76380af1a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.426
@@ -0,0 +1,279 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.426
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.426
+Problem: With '$' in 'cpoptions' the $ is not displayed in the first
+ column.
+Solution: Use -1 instead of 0 as a special value. (Hideki Eiraku and
+ Hirohito Higashi)
+Files: src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c
+
+
+*** ../vim-7.3.425/src/edit.c 2012-01-26 18:58:25.000000000 +0100
+--- src/edit.c 2012-02-04 23:23:45.000000000 +0100
+***************
+*** 1763,1771 ****
+ static void
+ undisplay_dollar()
+ {
+! if (dollar_vcol)
+ {
+! dollar_vcol = 0;
+ redrawWinline(curwin->w_cursor.lnum, FALSE);
+ }
+ }
+--- 1763,1771 ----
+ static void
+ undisplay_dollar()
+ {
+! if (dollar_vcol >= 0)
+ {
+! dollar_vcol = -1;
+ redrawWinline(curwin->w_cursor.lnum, FALSE);
+ }
+ }
+***************
+*** 5441,5447 ****
+ compl_curr_match->cp_number);
+ edit_submode_extra = match_ref;
+ edit_submode_highl = HLF_R;
+! if (dollar_vcol)
+ curs_columns(FALSE);
+ }
+ }
+--- 5441,5447 ----
+ compl_curr_match->cp_number);
+ edit_submode_extra = match_ref;
+ edit_submode_highl = HLF_R;
+! if (dollar_vcol >= 0)
+ curs_columns(FALSE);
+ }
+ }
+***************
+*** 8961,8967 ****
+ * We can emulate the vi behaviour by pretending there is a dollar
+ * displayed even when there isn't.
+ * --pkv Sun Jan 19 01:56:40 EST 2003 */
+! if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0)
+ dollar_vcol = curwin->w_virtcol;
+
+ #ifdef FEAT_FOLDING
+--- 8961,8967 ----
+ * We can emulate the vi behaviour by pretending there is a dollar
+ * displayed even when there isn't.
+ * --pkv Sun Jan 19 01:56:40 EST 2003 */
+! if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == -1)
+ dollar_vcol = curwin->w_virtcol;
+
+ #ifdef FEAT_FOLDING
+*** ../vim-7.3.425/src/globals.h 2011-05-10 16:41:13.000000000 +0200
+--- src/globals.h 2012-02-04 23:24:07.000000000 +0100
+***************
+*** 113,121 ****
+ * When '$' is included in 'cpoptions' option set:
+ * When a change command is given that deletes only part of a line, a dollar
+ * is put at the end of the changed text. dollar_vcol is set to the virtual
+! * column of this '$'.
+ */
+! EXTERN colnr_T dollar_vcol INIT(= 0);
+
+ #ifdef FEAT_INS_EXPAND
+ /*
+--- 113,121 ----
+ * When '$' is included in 'cpoptions' option set:
+ * When a change command is given that deletes only part of a line, a dollar
+ * is put at the end of the changed text. dollar_vcol is set to the virtual
+! * column of this '$'. -1 is used to indicate no $ is being displayed.
+ */
+! EXTERN colnr_T dollar_vcol INIT(= -1);
+
+ #ifdef FEAT_INS_EXPAND
+ /*
+*** ../vim-7.3.425/src/move.c 2012-01-10 22:26:12.000000000 +0100
+--- src/move.c 2012-02-04 23:21:08.000000000 +0100
+***************
+*** 362,368 ****
+ #endif
+ )
+ {
+! dollar_vcol = 0;
+ if (curwin->w_skipcol != 0)
+ {
+ curwin->w_skipcol = 0;
+--- 362,368 ----
+ #endif
+ )
+ {
+! dollar_vcol = -1;
+ if (curwin->w_skipcol != 0)
+ {
+ curwin->w_skipcol = 0;
+***************
+*** 966,972 ****
+
+ /* remove '$' from change command when cursor moves onto it */
+ if (startcol > dollar_vcol)
+! dollar_vcol = 0;
+
+ extra = curwin_col_off();
+ curwin->w_wcol = curwin->w_virtcol + extra;
+--- 966,972 ----
+
+ /* remove '$' from change command when cursor moves onto it */
+ if (startcol > dollar_vcol)
+! dollar_vcol = -1;
+
+ extra = curwin_col_off();
+ curwin->w_wcol = curwin->w_virtcol + extra;
+*** ../vim-7.3.425/src/screen.c 2012-01-10 22:26:12.000000000 +0100
+--- src/screen.c 2012-02-04 23:22:44.000000000 +0100
+***************
+*** 1637,1647 ****
+ * When at start of changed lines: May scroll following lines
+ * up or down to minimize redrawing.
+ * Don't do this when the change continues until the end.
+! * Don't scroll when dollar_vcol is non-zero, keep the "$".
+ */
+ if (lnum == mod_top
+ && mod_bot != MAXLNUM
+! && !(dollar_vcol != 0 && mod_bot == mod_top + 1))
+ {
+ int old_rows = 0;
+ int new_rows = 0;
+--- 1637,1647 ----
+ * When at start of changed lines: May scroll following lines
+ * up or down to minimize redrawing.
+ * Don't do this when the change continues until the end.
+! * Don't scroll when dollar_vcol >= 0, keep the "$".
+ */
+ if (lnum == mod_top
+ && mod_bot != MAXLNUM
+! && !(dollar_vcol >= 0 && mod_bot == mod_top + 1))
+ {
+ int old_rows = 0;
+ int new_rows = 0;
+***************
+*** 1868,1879 ****
+ if (row > wp->w_height) /* past end of screen */
+ {
+ /* we may need the size of that too long line later on */
+! if (dollar_vcol == 0)
+ wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
+ ++idx;
+ break;
+ }
+! if (dollar_vcol == 0)
+ wp->w_lines[idx].wl_size = row - srow;
+ ++idx;
+ #ifdef FEAT_FOLDING
+--- 1868,1879 ----
+ if (row > wp->w_height) /* past end of screen */
+ {
+ /* we may need the size of that too long line later on */
+! if (dollar_vcol == -1)
+ wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE);
+ ++idx;
+ break;
+ }
+! if (dollar_vcol == -1)
+ wp->w_lines[idx].wl_size = row - srow;
+ ++idx;
+ #ifdef FEAT_FOLDING
+***************
+*** 1990,1996 ****
+ }
+ #endif
+ }
+! else if (dollar_vcol == 0)
+ wp->w_botline = lnum;
+
+ /* make sure the rest of the screen is blank */
+--- 1990,1996 ----
+ }
+ #endif
+ }
+! else if (dollar_vcol == -1)
+ wp->w_botline = lnum;
+
+ /* make sure the rest of the screen is blank */
+***************
+*** 2005,2011 ****
+ wp->w_old_botfill = wp->w_botfill;
+ #endif
+
+! if (dollar_vcol == 0)
+ {
+ /*
+ * There is a trick with w_botline. If we invalidate it on each
+--- 2005,2011 ----
+ wp->w_old_botfill = wp->w_botfill;
+ #endif
+
+! if (dollar_vcol == -1)
+ {
+ /*
+ * There is a trick with w_botline. If we invalidate it on each
+***************
+*** 3564,3570 ****
+ }
+
+ /* When still displaying '$' of change command, stop at cursor */
+! if (dollar_vcol != 0 && wp == curwin
+ && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
+ #ifdef FEAT_DIFF
+ && filler_todo <= 0
+--- 3564,3570 ----
+ }
+
+ /* When still displaying '$' of change command, stop at cursor */
+! if (dollar_vcol >= 0 && wp == curwin
+ && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol
+ #ifdef FEAT_DIFF
+ && filler_todo <= 0
+*** ../vim-7.3.425/src/search.c 2012-01-26 20:58:21.000000000 +0100
+--- src/search.c 2012-02-04 23:23:10.000000000 +0100
+***************
+*** 2501,2508 ****
+ save_siso = p_siso;
+ /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
+ * stop displaying the "$". */
+! if (dollar_vcol > 0 && dollar_vcol == curwin->w_virtcol)
+! dollar_vcol = 0;
+ ++curwin->w_virtcol; /* do display ')' just before "$" */
+ update_screen(VALID); /* show the new char first */
+
+--- 2501,2508 ----
+ save_siso = p_siso;
+ /* Handle "$" in 'cpo': If the ')' is typed on top of the "$",
+ * stop displaying the "$". */
+! if (dollar_vcol >= 0 && dollar_vcol == curwin->w_virtcol)
+! dollar_vcol = -1;
+ ++curwin->w_virtcol; /* do display ')' just before "$" */
+ update_screen(VALID); /* show the new char first */
+
+*** ../vim-7.3.425/src/version.c 2012-02-04 22:44:27.000000000 +0100
+--- src/version.c 2012-02-04 23:32:55.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 426,
+ /**/
+
+
+--
+I am also told that there is a logical proof out there somewhere
+that demonstrates that there is no task which duct tape cannot handle.
+ -- Paul Brannan
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.427 b/source/ap/vim/patches/7.3.427
new file mode 100644
index 000000000..61df88122
--- /dev/null
+++ b/source/ap/vim/patches/7.3.427
@@ -0,0 +1,378 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.427
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.427
+Problem: readfile() can be slow with long lines.
+Solution: Use realloc() instead of alloc(). (John Little)
+Files: src/eval.c
+
+
+*** ../vim-7.3.426/src/eval.c 2012-01-26 14:32:26.000000000 +0100
+--- src/eval.c 2012-02-05 00:25:39.000000000 +0100
+***************
+*** 14325,14346 ****
+ typval_T *rettv;
+ {
+ int binary = FALSE;
+ char_u *fname;
+ FILE *fd;
+! listitem_T *li;
+! #define FREAD_SIZE 200 /* optimized for text lines */
+! char_u buf[FREAD_SIZE];
+! int readlen; /* size of last fread() */
+! int buflen; /* nr of valid chars in buf[] */
+! int filtd; /* how much in buf[] was NUL -> '\n' filtered */
+! int tolist; /* first byte in buf[] still to be put in list */
+! int chop; /* how many CR to chop off */
+! char_u *prev = NULL; /* previously read bytes, if any */
+! int prevlen = 0; /* length of "prev" if not NULL */
+! char_u *s;
+! int len;
+! long maxline = MAXLNUM;
+! long cnt = 0;
+
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ {
+--- 14325,14343 ----
+ typval_T *rettv;
+ {
+ int binary = FALSE;
++ int failed = FALSE;
+ char_u *fname;
+ FILE *fd;
+! char_u buf[(IOSIZE/256)*256]; /* rounded to avoid odd + 1 */
+! int io_size = sizeof(buf);
+! int readlen; /* size of last fread() */
+! char_u *prev = NULL; /* previously read bytes, if any */
+! long prevlen = 0; /* length of data in prev */
+! long prevsize = 0; /* size of prev buffer */
+! long maxline = MAXLNUM;
+! long cnt = 0;
+! char_u *p; /* position in buf */
+! char_u *start; /* start of current line */
+
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ {
+***************
+*** 14362,14410 ****
+ return;
+ }
+
+- filtd = 0;
+ while (cnt < maxline || maxline < 0)
+ {
+! readlen = (int)fread(buf + filtd, 1, FREAD_SIZE - filtd, fd);
+! buflen = filtd + readlen;
+! tolist = 0;
+! for ( ; filtd < buflen || readlen <= 0; ++filtd)
+! {
+! if (readlen <= 0 || buf[filtd] == '\n')
+! {
+! /* In binary mode add an empty list item when the last
+! * non-empty line ends in a '\n'. */
+! if (!binary && readlen == 0 && filtd == 0 && prev == NULL)
+! break;
+
+! /* Found end-of-line or end-of-file: add a text line to the
+! * list. */
+! chop = 0;
+! if (!binary)
+! while (filtd - chop - 1 >= tolist
+! && buf[filtd - chop - 1] == '\r')
+! ++chop;
+! len = filtd - tolist - chop;
+! if (prev == NULL)
+! s = vim_strnsave(buf + tolist, len);
+ else
+ {
+! s = alloc((unsigned)(prevlen + len + 1));
+! if (s != NULL)
+ {
+! mch_memmove(s, prev, prevlen);
+! vim_free(prev);
+! prev = NULL;
+! mch_memmove(s + prevlen, buf + tolist, len);
+ s[prevlen + len] = NUL;
+ }
+ }
+! tolist = filtd + 1;
+
+! li = listitem_alloc();
+! if (li == NULL)
+ {
+ vim_free(s);
+ break;
+ }
+ li->li_tv.v_type = VAR_STRING;
+--- 14359,14419 ----
+ return;
+ }
+
+ while (cnt < maxline || maxline < 0)
+ {
+! readlen = (int)fread(buf, 1, io_size, fd);
+!
+! /* This for loop processes what was read, but is also entered at end
+! * of file so that either:
+! * - an incomplete line gets written
+! * - a "binary" file gets an empty line at the end if it ends in a
+! * newline. */
+! for (p = buf, start = buf;
+! p < buf + readlen || (readlen <= 0 && (prevlen > 0 || binary));
+! ++p)
+! {
+! if (*p == '\n' || readlen <= 0)
+! {
+! listitem_T *li;
+! char_u *s = NULL;
+! long_u len = p - start;
+
+! /* Finished a line. Remove CRs before NL. */
+! if (readlen > 0 && !binary)
+! {
+! while (len > 0 && start[len - 1] == '\r')
+! --len;
+! /* removal may cross back to the "prev" string */
+! if (len == 0)
+! while (prevlen > 0 && prev[prevlen - 1] == '\r')
+! --prevlen;
+! }
+! if (prevlen == 0)
+! s = vim_strnsave(start, len);
+ else
+ {
+! /* Change "prev" buffer to be the right size. This way
+! * the bytes are only copied once, and very long lines are
+! * allocated only once. */
+! if ((s = vim_realloc(prev, prevlen + len + 1)) != NULL)
+ {
+! mch_memmove(s + prevlen, start, len);
+ s[prevlen + len] = NUL;
++ prev = NULL; /* the list will own the string */
++ prevlen = prevsize = 0;
+ }
+ }
+! if (s == NULL)
+! {
+! do_outofmem_msg((long_u) prevlen + len + 1);
+! failed = TRUE;
+! break;
+! }
+
+! if ((li = listitem_alloc()) == NULL)
+ {
+ vim_free(s);
++ failed = TRUE;
+ break;
+ }
+ li->li_tv.v_type = VAR_STRING;
+***************
+*** 14412,14485 ****
+ li->li_tv.vval.v_string = s;
+ list_append(rettv->vval.v_list, li);
+
+! if (++cnt >= maxline && maxline >= 0)
+! break;
+! if (readlen <= 0)
+ break;
+ }
+! else if (buf[filtd] == NUL)
+! buf[filtd] = '\n';
+ #ifdef FEAT_MBYTE
+! else if (buf[filtd] == 0xef
+! && enc_utf8
+! && filtd + 2 < buflen
+! && !binary
+! && buf[filtd + 1] == 0xbb
+! && buf[filtd + 2] == 0xbf)
+! {
+! /* remove utf-8 byte order mark */
+! mch_memmove(buf + filtd, buf + filtd + 3, buflen - filtd - 3);
+! --filtd;
+! buflen -= 3;
+ }
+ #endif
+! }
+! if (readlen <= 0)
+! break;
+
+! if (tolist == 0)
+ {
+! if (buflen >= FREAD_SIZE / 2)
+ {
+! /* "buf" is full, need to move text to an allocated buffer */
+! if (prev == NULL)
+ {
+! prev = vim_strnsave(buf, buflen);
+! prevlen = buflen;
+ }
+! else
+ {
+! s = alloc((unsigned)(prevlen + buflen));
+! if (s != NULL)
+! {
+! mch_memmove(s, prev, prevlen);
+! mch_memmove(s + prevlen, buf, buflen);
+! vim_free(prev);
+! prev = s;
+! prevlen += buflen;
+! }
+ }
+! filtd = 0;
+ }
+ }
+! else
+! {
+! mch_memmove(buf, buf + tolist, buflen - tolist);
+! filtd -= tolist;
+! }
+! }
+
+ /*
+ * For a negative line count use only the lines at the end of the file,
+ * free the rest.
+ */
+! if (maxline < 0)
+ while (cnt > -maxline)
+ {
+ listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
+ --cnt;
+ }
+
+ vim_free(prev);
+ fclose(fd);
+ }
+--- 14421,14529 ----
+ li->li_tv.vval.v_string = s;
+ list_append(rettv->vval.v_list, li);
+
+! start = p + 1; /* step over newline */
+! if ((++cnt >= maxline && maxline >= 0) || readlen <= 0)
+ break;
+ }
+! else if (*p == NUL)
+! *p = '\n';
+ #ifdef FEAT_MBYTE
+! /* Check for utf8 "bom"; U+FEFF is encoded as EF BB BF. Do this
+! * when finding the BF and check the previous two bytes. */
+! else if (*p == 0xbf && enc_utf8 && !binary)
+! {
+! /* Find the two bytes before the 0xbf. If p is at buf, or buf
+! * + 1, these may be in the "prev" string. */
+! char_u back1 = p >= buf + 1 ? p[-1]
+! : prevlen >= 1 ? prev[prevlen - 1] : NUL;
+! char_u back2 = p >= buf + 2 ? p[-2]
+! : p == buf + 1 && prevlen >= 1 ? prev[prevlen - 1]
+! : prevlen >= 2 ? prev[prevlen - 2] : NUL;
+!
+! if (back2 == 0xef && back1 == 0xbb)
+! {
+! char_u *dest = p - 2;
+!
+! /* Usually a BOM is at the beginning of a file, and so at
+! * the beginning of a line; then we can just step over it.
+! */
+! if (start == dest)
+! start = p + 1;
+! else
+! {
+! /* have to shuffle buf to close gap */
+! int adjust_prevlen = 0;
+!
+! if (dest < buf)
+! {
+! adjust_prevlen = buf - dest; /* must be 1 or 2 */
+! dest = buf;
+! }
+! if (readlen > p - buf + 1)
+! mch_memmove(dest, p + 1, readlen - (p - buf) - 1);
+! readlen -= 3 - adjust_prevlen;
+! prevlen -= adjust_prevlen;
+! p = dest - 1;
+! }
+! }
+ }
+ #endif
+! } /* for */
+
+! if (failed || (cnt >= maxline && maxline >= 0) || readlen <= 0)
+! break;
+! if (start < p)
+ {
+! /* There's part of a line in buf, store it in "prev". */
+! if (p - start + prevlen >= prevsize)
+ {
+! /* need bigger "prev" buffer */
+! char_u *newprev;
+!
+! /* A common use case is ordinary text files and "prev" gets a
+! * fragment of a line, so the first allocation is made
+! * small, to avoid repeatedly 'allocing' large and
+! * 'reallocing' small. */
+! if (prevsize == 0)
+! prevsize = p - start;
+! else
+ {
+! long grow50pc = (prevsize * 3) / 2;
+! long growmin = (p - start) * 2 + prevlen;
+! prevsize = grow50pc > growmin ? grow50pc : growmin;
+ }
+! if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+ {
+! do_outofmem_msg((long_u)prevsize);
+! failed = TRUE;
+! break;
+ }
+! prev = newprev;
+ }
++ /* Add the line part to end of "prev". */
++ mch_memmove(prev + prevlen, start, p - start);
++ prevlen += p - start;
+ }
+! } /* while */
+
+ /*
+ * For a negative line count use only the lines at the end of the file,
+ * free the rest.
+ */
+! if (!failed && maxline < 0)
+ while (cnt > -maxline)
+ {
+ listitem_remove(rettv->vval.v_list, rettv->vval.v_list->lv_first);
+ --cnt;
+ }
+
++ if (failed)
++ {
++ list_free(rettv->vval.v_list, TRUE);
++ /* readfile doc says an empty list is returned on error */
++ rettv->vval.v_list = list_alloc();
++ }
++
+ vim_free(prev);
+ fclose(fd);
+ }
+*** ../vim-7.3.426/src/version.c 2012-02-04 23:34:57.000000000 +0100
+--- src/version.c 2012-02-05 00:38:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 427,
+ /**/
+
+--
+One difference between a man and a machine is that a machine is quiet
+when well oiled.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.428 b/source/ap/vim/patches/7.3.428
new file mode 100644
index 000000000..89567ed81
--- /dev/null
+++ b/source/ap/vim/patches/7.3.428
@@ -0,0 +1,113 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.428
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.428
+Problem: Win32: an xpm file without a mask crashes Vim.
+Solution: Fail when the mask is missing. (Dave Bodenstab)
+Files: src/xpm_w32.c
+
+
+*** ../vim-7.3.427/src/xpm_w32.c 2010-08-15 21:57:25.000000000 +0200
+--- src/xpm_w32.c 2012-02-05 00:46:13.000000000 +0100
+***************
+*** 1,4 ****
+! /*
+ * Load XPM image.
+ *
+ * This function is placed in separate file because Xpm headers conflict with
+--- 1,5 ----
+! /* vi:set ts=8 sts=4 sw=4:
+! *
+ * Load XPM image.
+ *
+ * This function is placed in separate file because Xpm headers conflict with
+***************
+*** 30,38 ****
+ #include "xpm.h"
+
+ /*
+! * Tries to load Xpm image from file 'filename'.
+! * If fails return -1.
+! * success - 0 and image and mask BITMAPS
+ */
+ int
+ LoadXpmImage(filename, hImage, hShape)
+--- 31,40 ----
+ #include "xpm.h"
+
+ /*
+! * Tries to load an Xpm image from the file "filename".
+! * Returns -1 on failure.
+! * Returns 0 on success and stores image and mask BITMAPS in "hImage" and
+! * "hShape".
+ */
+ int
+ LoadXpmImage(filename, hImage, hShape)
+***************
+*** 40,46 ****
+ HBITMAP *hImage;
+ HBITMAP *hShape;
+ {
+! XImage *img; /* loaded image */
+ XImage *shp; /* shapeimage */
+ XpmAttributes attr;
+ int res;
+--- 42,48 ----
+ HBITMAP *hImage;
+ HBITMAP *hShape;
+ {
+! XImage *img; /* loaded image */
+ XImage *shp; /* shapeimage */
+ XpmAttributes attr;
+ int res;
+***************
+*** 51,60 ****
+ DeleteDC(hdc);
+ if (res < 0)
+ return -1;
+! else
+ {
+! *hImage = img->bitmap;
+! *hShape = shp->bitmap;
+! return 0;
+ }
+ }
+--- 53,65 ----
+ DeleteDC(hdc);
+ if (res < 0)
+ return -1;
+! if (shp == NULL)
+ {
+! if (img)
+! XDestroyImage(img);
+! return -1;
+ }
++ *hImage = img->bitmap;
++ *hShape = shp->bitmap;
++ return 0;
+ }
+*** ../vim-7.3.427/src/version.c 2012-02-05 00:39:14.000000000 +0100
+--- src/version.c 2012-02-05 00:47:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 428,
+ /**/
+
+--
+I'm not familiar with this proof, but I'm aware of a significant
+following of toddlers who believe that peanut butter is the solution
+to all of life's problems... -- Tim Hammerquist
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.429 b/source/ap/vim/patches/7.3.429
new file mode 100644
index 000000000..801e25f9e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.429
@@ -0,0 +1,192 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.429
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.429
+Problem: When 'cpoptions' includes "E" "c0" in the first column is an
+ error. The redo register is then set to the errornous command.
+Solution: Do not set the redo register if the command fails because of an
+ empty region. (Hideki Eiraku)
+Files: src/getchar.c, src/normal.c, src/proto/getchar.pro
+
+
+*** ../vim-7.3.428/src/getchar.c 2012-01-10 22:26:12.000000000 +0100
+--- src/getchar.c 2012-02-05 01:05:09.000000000 +0100
+***************
+*** 470,475 ****
+--- 470,493 ----
+ }
+ }
+
++ /*
++ * Discard the contents of the redo buffer and restore the previous redo
++ * buffer.
++ */
++ void
++ CancelRedo()
++ {
++ if (!block_redo)
++ {
++ free_buff(&redobuff);
++ redobuff = old_redobuff;
++ old_redobuff.bh_first.b_next = NULL;
++ start_stuff();
++ while (read_stuff(TRUE) != NUL)
++ ;
++ }
++ }
++
+ #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO)
+ /*
+ * Save redobuff and old_redobuff to save_redobuff and save_old_redobuff.
+***************
+*** 691,699 ****
+ * Read a character from the redo buffer. Translates K_SPECIAL, CSI and
+ * multibyte characters.
+ * The redo buffer is left as it is.
+! * if init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
+! * otherwise
+! * if old is TRUE, use old_redobuff instead of redobuff
+ */
+ static int
+ read_redo(init, old_redo)
+--- 709,717 ----
+ * Read a character from the redo buffer. Translates K_SPECIAL, CSI and
+ * multibyte characters.
+ * The redo buffer is left as it is.
+! * If init is TRUE, prepare for redo, return FAIL if nothing to redo, OK
+! * otherwise.
+! * If old is TRUE, use old_redobuff instead of redobuff.
+ */
+ static int
+ read_redo(init, old_redo)
+*** ../vim-7.3.428/src/normal.c 2012-01-26 11:43:04.000000000 +0100
+--- src/normal.c 2012-02-05 01:06:01.000000000 +0100
+***************
+*** 1978,1984 ****
+--- 1978,1987 ----
+ VIsual_reselect = FALSE; /* don't reselect now */
+ #endif
+ if (empty_region_error)
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ else
+ {
+ (void)op_delete(oap);
+***************
+*** 1992,1998 ****
+--- 1995,2004 ----
+ if (empty_region_error)
+ {
+ if (!gui_yank)
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ }
+ else
+ (void)op_yank(oap, FALSE, !gui_yank);
+***************
+*** 2004,2010 ****
+--- 2010,2019 ----
+ VIsual_reselect = FALSE; /* don't reselect now */
+ #endif
+ if (empty_region_error)
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ else
+ {
+ /* This is a new edit command, not a restart. Need to
+***************
+*** 2066,2072 ****
+--- 2075,2084 ----
+ case OP_LOWER:
+ case OP_ROT13:
+ if (empty_region_error)
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ else
+ op_tilde(oap);
+ check_cursor_col();
+***************
+*** 2099,2105 ****
+--- 2111,2120 ----
+ #endif
+ #ifdef FEAT_VISUALEXTRA
+ if (empty_region_error)
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ else
+ {
+ /* This is a new edit command, not a restart. Need to
+***************
+*** 2129,2135 ****
+--- 2144,2153 ----
+ #ifdef FEAT_VISUALEXTRA
+ if (empty_region_error)
+ #endif
++ {
+ vim_beep();
++ CancelRedo();
++ }
+ #ifdef FEAT_VISUALEXTRA
+ else
+ op_replace(oap, cap->nchar);
+*** ../vim-7.3.428/src/proto/getchar.pro 2010-10-20 21:22:17.000000000 +0200
+--- src/proto/getchar.pro 2012-02-05 01:05:20.000000000 +0100
+***************
+*** 4,11 ****
+ char_u *get_inserted __ARGS((void));
+ int stuff_empty __ARGS((void));
+ void typeahead_noflush __ARGS((int c));
+! void flush_buffers __ARGS((int typeahead));
+ void ResetRedobuff __ARGS((void));
+ void saveRedobuff __ARGS((void));
+ void restoreRedobuff __ARGS((void));
+ void AppendToRedobuff __ARGS((char_u *s));
+--- 4,12 ----
+ char_u *get_inserted __ARGS((void));
+ int stuff_empty __ARGS((void));
+ void typeahead_noflush __ARGS((int c));
+! void flush_buffers __ARGS((int flush_typeahead));
+ void ResetRedobuff __ARGS((void));
++ void CancelRedo __ARGS((void));
+ void saveRedobuff __ARGS((void));
+ void restoreRedobuff __ARGS((void));
+ void AppendToRedobuff __ARGS((char_u *s));
+*** ../vim-7.3.428/src/version.c 2012-02-05 00:47:56.000000000 +0100
+--- src/version.c 2012-02-05 01:09:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 429,
+ /**/
+
+--
+The History of every major Galactic Civilization tends to pass through
+three distinct and recognizable phases, those of Survival, Inquiry and
+Sophistication, otherwise known as the How, Why and Where phases.
+For instance, the first phase is characterized by the question 'How can
+we eat?' the second by the question 'Why do we eat?' and the third by
+the question 'Where shall we have lunch?'
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.430 b/source/ap/vim/patches/7.3.430
new file mode 100644
index 000000000..c67e7fb03
--- /dev/null
+++ b/source/ap/vim/patches/7.3.430
@@ -0,0 +1,80 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.430
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.430
+Problem: When a custom filetype detection uses "augroup END" the conf
+ fileytpe detection does not have the filetypedetect group.
+Solution: Always end the group and include filetypedetect in the conf
+ autocommand. (Lech Lorens)
+Files: runtime/filetype.vim
+
+
+*** ../vim-7.3.429/runtime/filetype.vim 2012-02-05 20:08:08.000000000 +0100
+--- runtime/filetype.vim 2012-02-05 19:59:40.000000000 +0100
+***************
+*** 2545,2561 ****
+ " detected filetypes.
+ runtime! ftdetect/*.vim
+
+
+ " Generic configuration file (check this last, it's just guessing!)
+! au BufNewFile,BufRead,StdinReadPost *
+ \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
+ \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
+ \ || getline(4) =~ '^#' || getline(5) =~ '^#') |
+ \ setf conf |
+ \ endif
+
+- augroup END
+-
+
+ " If the GUI is already running, may still need to install the Syntax menu.
+ " Don't do it when the 'M' flag is included in 'guioptions'.
+--- 2545,2563 ----
+ " detected filetypes.
+ runtime! ftdetect/*.vim
+
++ " NOTE: The above command could have ended the filetypedetect autocmd group
++ " and started another one. Let's make sure it has ended to get to a consistant
++ " state.
++ augroup END
+
+ " Generic configuration file (check this last, it's just guessing!)
+! au filetypedetect BufNewFile,BufRead,StdinReadPost *
+ \ if !did_filetype() && expand("<amatch>") !~ g:ft_ignore_pat
+ \ && (getline(1) =~ '^#' || getline(2) =~ '^#' || getline(3) =~ '^#'
+ \ || getline(4) =~ '^#' || getline(5) =~ '^#') |
+ \ setf conf |
+ \ endif
+
+
+ " If the GUI is already running, may still need to install the Syntax menu.
+ " Don't do it when the 'M' flag is included in 'guioptions'.
+*** ../vim-7.3.429/src/version.c 2012-02-05 01:18:41.000000000 +0100
+--- src/version.c 2012-02-05 20:02:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 430,
+ /**/
+
+--
+The technology involved in making anything invisible is so infinitely
+complex that nine hundred and ninety-nine billion, nine hundred and
+ninety-nine million, nine hundred and ninety-nine thousand, nine hundred
+and ninety-nine times out of a trillion it is much simpler and more
+effective just to take the thing away and do without it.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.431 b/source/ap/vim/patches/7.3.431
new file mode 100644
index 000000000..2e4e62b3f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.431
@@ -0,0 +1,280 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.431
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.431
+Problem: Fetching a key at a prompt may be confused by escape sequences.
+ Especially when getting a prompt at a VimEnter autocommand.
+ (Alex Efros)
+Solution: Properly handle escape sequences deleted by check_termcode().
+Files: src/getchar.c, src/misc1.c, src/term.c, src/proto/term.pro
+
+
+*** ../vim-7.3.430/src/getchar.c 2012-02-05 01:18:41.000000000 +0100
+--- src/getchar.c 2012-02-05 22:04:33.000000000 +0100
+***************
+*** 2282,2288 ****
+ typebuf.tb_off] == RM_YES))
+ && !timedout)
+ {
+! keylen = check_termcode(max_mlen + 1, NULL, 0);
+
+ /* If no termcode matched but 'pastetoggle'
+ * matched partially it's like an incomplete key
+--- 2282,2289 ----
+ typebuf.tb_off] == RM_YES))
+ && !timedout)
+ {
+! keylen = check_termcode(max_mlen + 1,
+! NULL, 0, NULL);
+
+ /* If no termcode matched but 'pastetoggle'
+ * matched partially it's like an incomplete key
+*** ../vim-7.3.430/src/misc1.c 2012-01-10 18:37:53.000000000 +0100
+--- src/misc1.c 2012-02-05 21:59:53.000000000 +0100
+***************
+*** 3105,3112 ****
+ int
+ get_keystroke()
+ {
+! #define CBUFLEN 151
+! char_u buf[CBUFLEN];
+ int len = 0;
+ int n;
+ int save_mapped_ctrl_c = mapped_ctrl_c;
+--- 3105,3113 ----
+ int
+ get_keystroke()
+ {
+! char_u *buf = NULL;
+! int buflen = 150;
+! int maxlen;
+ int len = 0;
+ int n;
+ int save_mapped_ctrl_c = mapped_ctrl_c;
+***************
+*** 3118,3129 ****
+ cursor_on();
+ out_flush();
+
+ /* First time: blocking wait. Second time: wait up to 100ms for a
+! * terminal code to complete. Leave some room for check_termcode() to
+! * insert a key code into (max 5 chars plus NUL). And
+! * fix_input_buffer() can triple the number of bytes. */
+! n = ui_inchar(buf + len, (CBUFLEN - 6 - len) / 3,
+! len == 0 ? -1L : 100L, 0);
+ if (n > 0)
+ {
+ /* Replace zero and CSI by a special key code. */
+--- 3119,3147 ----
+ cursor_on();
+ out_flush();
+
++ /* Leave some room for check_termcode() to insert a key code into (max
++ * 5 chars plus NUL). And fix_input_buffer() can triple the number of
++ * bytes. */
++ maxlen = (buflen - 6 - len) / 3;
++ if (buf == NULL)
++ buf = alloc(buflen);
++ else if (maxlen < 10)
++ {
++ /* Need some more space. This migth happen when receiving a long
++ * escape sequence. */
++ buflen += 100;
++ buf = vim_realloc(buf, buflen);
++ maxlen = (buflen - 6 - len) / 3;
++ }
++ if (buf == NULL)
++ {
++ do_outofmem_msg((long_u)buflen);
++ return ESC; /* panic! */
++ }
++
+ /* First time: blocking wait. Second time: wait up to 100ms for a
+! * terminal code to complete. */
+! n = ui_inchar(buf + len, maxlen, len == 0 ? -1L : 100L, 0);
+ if (n > 0)
+ {
+ /* Replace zero and CSI by a special key code. */
+***************
+*** 3135,3141 ****
+ ++waited; /* keep track of the waiting time */
+
+ /* Incomplete termcode and not timed out yet: get more characters */
+! if ((n = check_termcode(1, buf, len)) < 0
+ && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+ continue;
+
+--- 3153,3159 ----
+ ++waited; /* keep track of the waiting time */
+
+ /* Incomplete termcode and not timed out yet: get more characters */
+! if ((n = check_termcode(1, buf, buflen, &len)) < 0
+ && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
+ continue;
+
+***************
+*** 3203,3209 ****
+ {
+ if (MB_BYTE2LEN(n) > len)
+ continue; /* more bytes to get */
+! buf[len >= CBUFLEN ? CBUFLEN - 1 : len] = NUL;
+ n = (*mb_ptr2char)(buf);
+ }
+ #endif
+--- 3221,3227 ----
+ {
+ if (MB_BYTE2LEN(n) > len)
+ continue; /* more bytes to get */
+! buf[len >= buflen ? buflen - 1 : len] = NUL;
+ n = (*mb_ptr2char)(buf);
+ }
+ #endif
+***************
+*** 3213,3218 ****
+--- 3231,3237 ----
+ #endif
+ break;
+ }
++ vim_free(buf);
+
+ mapped_ctrl_c = save_mapped_ctrl_c;
+ return n;
+*** ../vim-7.3.430/src/term.c 2012-01-26 13:01:54.000000000 +0100
+--- src/term.c 2012-02-05 21:45:09.000000000 +0100
+***************
+*** 3785,3798 ****
+ * With a match, the match is removed, the replacement code is inserted in
+ * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+ * returned.
+! * When "buf" is not NULL, it is used instead of typebuf.tb_buf[]. "buflen" is
+! * then the length of the string in buf[].
+ */
+ int
+! check_termcode(max_offset, buf, buflen)
+ int max_offset;
+ char_u *buf;
+! int buflen;
+ {
+ char_u *tp;
+ char_u *p;
+--- 3785,3800 ----
+ * With a match, the match is removed, the replacement code is inserted in
+ * typebuf.tb_buf[] and the number of characters in typebuf.tb_buf[] is
+ * returned.
+! * When "buf" is not NULL, buf[bufsize] is used instead of typebuf.tb_buf[].
+! * "buflen" is then the length of the string in buf[] and is updated for
+! * inserts and deletes.
+ */
+ int
+! check_termcode(max_offset, buf, bufsize, buflen)
+ int max_offset;
+ char_u *buf;
+! int bufsize;
+! int *buflen;
+ {
+ char_u *tp;
+ char_u *p;
+***************
+*** 3864,3873 ****
+ }
+ else
+ {
+! if (offset >= buflen)
+ break;
+ tp = buf + offset;
+! len = buflen - offset;
+ }
+
+ /*
+--- 3866,3875 ----
+ }
+ else
+ {
+! if (offset >= *buflen)
+ break;
+ tp = buf + offset;
+! len = *buflen - offset;
+ }
+
+ /*
+***************
+*** 5002,5013 ****
+ if (extra < 0)
+ /* remove matched characters */
+ mch_memmove(buf + offset, buf + offset - extra,
+! (size_t)(buflen + offset + extra));
+ else if (extra > 0)
+! /* insert the extra space we need */
+ mch_memmove(buf + offset + extra, buf + offset,
+! (size_t)(buflen - offset));
+ mch_memmove(buf + offset, string, (size_t)new_slen);
+ }
+ return retval == 0 ? (len + extra + offset) : retval;
+ }
+--- 5004,5021 ----
+ if (extra < 0)
+ /* remove matched characters */
+ mch_memmove(buf + offset, buf + offset - extra,
+! (size_t)(*buflen + offset + extra));
+ else if (extra > 0)
+! {
+! /* Insert the extra space we need. If there is insufficient
+! * space return -1. */
+! if (*buflen + extra + new_slen >= bufsize)
+! return -1;
+ mch_memmove(buf + offset + extra, buf + offset,
+! (size_t)(*buflen - offset));
+! }
+ mch_memmove(buf + offset, string, (size_t)new_slen);
++ *buflen = *buflen + extra + new_slen;
+ }
+ return retval == 0 ? (len + extra + offset) : retval;
+ }
+*** ../vim-7.3.430/src/proto/term.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/term.pro 2012-02-05 21:45:16.000000000 +0100
+***************
+*** 50,56 ****
+ char_u *get_termcode __ARGS((int i));
+ void del_termcode __ARGS((char_u *name));
+ void set_mouse_topline __ARGS((win_T *wp));
+! int check_termcode __ARGS((int max_offset, char_u *buf, int buflen));
+ char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
+ int find_term_bykeys __ARGS((char_u *src));
+ void show_termcodes __ARGS((void));
+--- 50,56 ----
+ char_u *get_termcode __ARGS((int i));
+ void del_termcode __ARGS((char_u *name));
+ void set_mouse_topline __ARGS((win_T *wp));
+! int check_termcode __ARGS((int max_offset, char_u *buf, int bufsize, int *buflen));
+ char_u *replace_termcodes __ARGS((char_u *from, char_u **bufp, int from_part, int do_lt, int special));
+ int find_term_bykeys __ARGS((char_u *src));
+ void show_termcodes __ARGS((void));
+*** ../vim-7.3.430/src/version.c 2012-02-05 20:08:30.000000000 +0100
+--- src/version.c 2012-02-05 22:03:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 431,
+ /**/
+
+--
+"You know, it's at times like this when I'm trapped in a Vogon airlock with
+a man from Betelgeuse and about to die of asphyxiation in deep space that I
+really wish I'd listened to what my mother told me when I was young!"
+"Why, what did she tell you?"
+"I don't know, I didn't listen!"
+ -- Arthur Dent and Ford Prefect in Douglas Adams'
+ "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.432 b/source/ap/vim/patches/7.3.432
new file mode 100644
index 000000000..c01dd59a0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.432
@@ -0,0 +1,228 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.432
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.432
+Problem: ACLs are not supported for ZFS or NFSv4 on Solaris.
+Solution: Add configure check and code. (Danek Duvall)
+Files: src/configure.in, src/auto/configure, src/config.h.in,
+ src/os_unix.c
+
+
+*** ../vim-7.3.431/src/configure.in 2011-12-14 20:51:19.000000000 +0100
+--- src/configure.in 2012-02-05 22:40:22.000000000 +0100
+***************
+*** 3106,3111 ****
+--- 3106,3112 ----
+
+ dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
+ dnl when -lacl works, also try to use -lattr (required for Debian).
++ dnl On Solaris, use the acl_get/set functions in libsec, if present.
+ AC_MSG_CHECKING(--disable-acl argument)
+ AC_ARG_ENABLE(acl,
+ [ --disable-acl Don't check for ACL support.],
+***************
+*** 3128,3133 ****
+--- 3129,3135 ----
+ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
+ AC_MSG_RESULT(no))
+
++ AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
+ AC_MSG_CHECKING(for Solaris ACL support)
+ AC_TRY_LINK([
+ #ifdef HAVE_SYS_ACL_H
+***************
+*** 3135,3141 ****
+ #endif], [acl("foo", GETACLCNT, 0, NULL);
+ ],
+ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
+! AC_MSG_RESULT(no))
+
+ AC_MSG_CHECKING(for AIX ACL support)
+ AC_TRY_LINK([
+--- 3137,3143 ----
+ #endif], [acl("foo", GETACLCNT, 0, NULL);
+ ],
+ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
+! AC_MSG_RESULT(no)))
+
+ AC_MSG_CHECKING(for AIX ACL support)
+ AC_TRY_LINK([
+*** ../vim-7.3.431/src/auto/configure 2011-12-14 20:51:19.000000000 +0100
+--- src/auto/configure 2012-02-05 22:41:01.000000000 +0100
+***************
+*** 11328,11334 ****
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
+ $as_echo_n "checking for Solaris ACL support... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+--- 11328,11374 ----
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
+! $as_echo_n "checking for acl_get in -lsec... " >&6; }
+! if test "${ac_cv_lib_sec_acl_get+set}" = set; then :
+! $as_echo_n "(cached) " >&6
+! else
+! ac_check_lib_save_LIBS=$LIBS
+! LIBS="-lsec $LIBS"
+! cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+! /* end confdefs.h. */
+!
+! /* Override any GCC internal prototype to avoid an error.
+! Use char because int might match the return type of a GCC
+! builtin and then its argument prototype would still apply. */
+! #ifdef __cplusplus
+! extern "C"
+! #endif
+! char acl_get ();
+! int
+! main ()
+! {
+! return acl_get ();
+! ;
+! return 0;
+! }
+! _ACEOF
+! if ac_fn_c_try_link "$LINENO"; then :
+! ac_cv_lib_sec_acl_get=yes
+! else
+! ac_cv_lib_sec_acl_get=no
+! fi
+! rm -f core conftest.err conftest.$ac_objext \
+! conftest$ac_exeext conftest.$ac_ext
+! LIBS=$ac_check_lib_save_LIBS
+! fi
+! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_acl_get" >&5
+! $as_echo "$ac_cv_lib_sec_acl_get" >&6; }
+! if test "x$ac_cv_lib_sec_acl_get" = x""yes; then :
+! LIBS="$LIBS -lsec"; $as_echo "#define HAVE_SOLARIS_ZFS_ACL 1" >>confdefs.h
+!
+! else
+! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
+ $as_echo_n "checking for Solaris ACL support... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+***************
+*** 11355,11360 ****
+--- 11395,11402 ----
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
++ fi
++
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
+ $as_echo_n "checking for AIX ACL support... " >&6; }
+*** ../vim-7.3.431/src/config.h.in 2011-09-02 12:27:20.000000000 +0200
+--- src/config.h.in 2012-02-05 22:40:22.000000000 +0100
+***************
+*** 363,368 ****
+--- 363,369 ----
+
+ /* Define if you want to add support for ACL */
+ #undef HAVE_POSIX_ACL
++ #undef HAVE_SOLARIS_ZFS_ACL
+ #undef HAVE_SOLARIS_ACL
+ #undef HAVE_AIX_ACL
+
+*** ../vim-7.3.431/src/os_unix.c 2012-01-10 22:26:12.000000000 +0100
+--- src/os_unix.c 2012-02-05 22:40:22.000000000 +0100
+***************
+*** 2746,2751 ****
+--- 2746,2758 ----
+ #ifdef HAVE_POSIX_ACL
+ ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
+ #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++ acl_t *aclent;
++
++ if (acl_get((char *)fname, 0, &aclent) < 0)
++ return NULL;
++ ret = (vim_acl_T)aclent;
++ #else
+ #ifdef HAVE_SOLARIS_ACL
+ vim_acl_solaris_T *aclent;
+
+***************
+*** 2791,2796 ****
+--- 2798,2804 ----
+ ret = (vim_acl_T)aclent;
+ #endif /* HAVE_AIX_ACL */
+ #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+ #endif /* HAVE_POSIX_ACL */
+ return ret;
+ }
+***************
+*** 2808,2813 ****
+--- 2816,2824 ----
+ #ifdef HAVE_POSIX_ACL
+ acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
+ #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++ acl_set((char *)fname, (acl_t *)aclent);
++ #else
+ #ifdef HAVE_SOLARIS_ACL
+ acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
+ ((vim_acl_solaris_T *)aclent)->acl_entry);
+***************
+*** 2816,2821 ****
+--- 2827,2833 ----
+ chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
+ #endif /* HAVE_AIX_ACL */
+ #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+ #endif /* HAVE_POSIX_ACL */
+ }
+
+***************
+*** 2828,2833 ****
+--- 2840,2848 ----
+ #ifdef HAVE_POSIX_ACL
+ acl_free((acl_t)aclent);
+ #else
++ #ifdef HAVE_SOLARIS_ZFS_ACL
++ acl_free((acl_t *)aclent);
++ #else
+ #ifdef HAVE_SOLARIS_ACL
+ free(((vim_acl_solaris_T *)aclent)->acl_entry);
+ free(aclent);
+***************
+*** 2836,2841 ****
+--- 2851,2857 ----
+ free(aclent);
+ #endif /* HAVE_AIX_ACL */
+ #endif /* HAVE_SOLARIS_ACL */
++ #endif /* HAVE_SOLARIS_ZFS_ACL */
+ #endif /* HAVE_POSIX_ACL */
+ }
+ #endif
+*** ../vim-7.3.431/src/version.c 2012-02-05 22:05:44.000000000 +0100
+--- src/version.c 2012-02-05 22:44:10.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 432,
+ /**/
+
+--
+If you put 7 of the most talented OSS developers in a room for a week
+and asked them to fix a bug in a spreadsheet program, in 1 week
+you'd have 2 new mail readers and a text-based web browser.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.433 b/source/ap/vim/patches/7.3.433
new file mode 100644
index 000000000..bb83828ff
--- /dev/null
+++ b/source/ap/vim/patches/7.3.433
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.433
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.433
+Problem: Using continued lines in a Vim script can be slow.
+Solution: Instead of reallocating for every line use a growarray. (Yasuhiro
+ Matsumoto)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.432/src/ex_cmds2.c 2012-02-04 21:57:44.000000000 +0100
+--- src/ex_cmds2.c 2012-02-05 23:06:31.000000000 +0100
+***************
+*** 3439,3460 ****
+ {
+ /* compensate for the one line read-ahead */
+ --sourcing_lnum;
+! for (;;)
+ {
+! sp->nextline = get_one_sourceline(sp);
+! if (sp->nextline == NULL)
+! break;
+! p = skipwhite(sp->nextline);
+! if (*p != '\\')
+! break;
+! s = alloc((unsigned)(STRLEN(line) + STRLEN(p)));
+! if (s == NULL) /* out of memory */
+! break;
+! STRCPY(s, line);
+! STRCAT(s, p + 1);
+ vim_free(line);
+! line = s;
+! vim_free(sp->nextline);
+ }
+ }
+
+--- 3439,3470 ----
+ {
+ /* compensate for the one line read-ahead */
+ --sourcing_lnum;
+!
+! /* Get the next line and concatenate it when it starts with a
+! * backslash. We always need to read the next line, keep it in
+! * sp->nextline. */
+! sp->nextline = get_one_sourceline(sp);
+! if (sp->nextline != NULL && *(p = skipwhite(sp->nextline)) == '\\')
+ {
+! garray_T ga;
+!
+! ga_init2(&ga, (int)sizeof(char_u), 200);
+! ga_concat(&ga, line);
+! ga_concat(&ga, p + 1);
+! for (;;)
+! {
+! vim_free(sp->nextline);
+! sp->nextline = get_one_sourceline(sp);
+! if (sp->nextline == NULL)
+! break;
+! p = skipwhite(sp->nextline);
+! if (*p != '\\')
+! break;
+! ga_concat(&ga, p + 1);
+! }
+! ga_append(&ga, NUL);
+ vim_free(line);
+! line = ga.ga_data;
+ }
+ }
+
+*** ../vim-7.3.432/src/version.c 2012-02-05 22:51:27.000000000 +0100
+--- src/version.c 2012-02-05 23:09:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 433,
+ /**/
+
+--
+Due knot trussed yore spell chequer two fined awl miss steaks.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.434 b/source/ap/vim/patches/7.3.434
new file mode 100644
index 000000000..52c14b90d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.434
@@ -0,0 +1,233 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.434
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.434
+Problem: Using join() can be slow.
+Solution: Compute the size of the result before allocation to avoid a lot of
+ allocations and copies. (Taro Muraoka)
+Files: src/eval.c
+
+
+*** ../vim-7.3.433/src/eval.c 2012-02-05 00:39:14.000000000 +0100
+--- src/eval.c 2012-02-06 00:05:31.000000000 +0100
+***************
+*** 442,447 ****
+--- 442,448 ----
+ static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
+ static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
+ static char_u *list2string __ARGS((typval_T *tv, int copyID));
++ static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
+ static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
+ static int free_unref_items __ARGS((int copyID));
+ static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
+***************
+*** 6571,6617 ****
+ return (char_u *)ga.ga_data;
+ }
+
+! /*
+! * Join list "l" into a string in "*gap", using separator "sep".
+! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
+! * Return FAIL or OK.
+! */
+ static int
+! list_join(gap, l, sep, echo_style, copyID)
+! garray_T *gap;
+ list_T *l;
+ char_u *sep;
+ int echo_style;
+ int copyID;
+ {
+ int first = TRUE;
+ char_u *tofree;
+ char_u numbuf[NUMBUFLEN];
+ listitem_T *item;
+ char_u *s;
+
+ for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
+ {
+- if (first)
+- first = FALSE;
+- else
+- ga_concat(gap, sep);
+-
+ if (echo_style)
+ s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+ else
+ s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+- if (s != NULL)
+- ga_concat(gap, s);
+- vim_free(tofree);
+ if (s == NULL)
+ return FAIL;
+ line_breakcheck();
+ }
+ return OK;
+ }
+
+ /*
+ * Garbage collection for lists and dictionaries.
+ *
+ * We use reference counts to be able to free most items right away when they
+--- 6572,6690 ----
+ return (char_u *)ga.ga_data;
+ }
+
+! typedef struct join_S {
+! char_u *s;
+! char_u *tofree;
+! } join_T;
+!
+ static int
+! list_join_inner(gap, l, sep, echo_style, copyID, join_gap)
+! garray_T *gap; /* to store the result in */
+ list_T *l;
+ char_u *sep;
+ int echo_style;
+ int copyID;
++ garray_T *join_gap; /* to keep each list item string */
+ {
++ int i;
++ join_T *p;
++ int len;
++ int sumlen = 0;
+ int first = TRUE;
+ char_u *tofree;
+ char_u numbuf[NUMBUFLEN];
+ listitem_T *item;
+ char_u *s;
+
++ /* Stringify each item in the list. */
+ for (item = l->lv_first; item != NULL && !got_int; item = item->li_next)
+ {
+ if (echo_style)
+ s = echo_string(&item->li_tv, &tofree, numbuf, copyID);
+ else
+ s = tv2string(&item->li_tv, &tofree, numbuf, copyID);
+ if (s == NULL)
+ return FAIL;
++
++ len = (int)STRLEN(s);
++ sumlen += len;
++
++ ga_grow(join_gap, 1);
++ p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++);
++ if (tofree != NULL || s != numbuf)
++ {
++ p->s = s;
++ p->tofree = tofree;
++ }
++ else
++ {
++ p->s = vim_strnsave(s, len);
++ p->tofree = p->s;
++ }
++
++ line_breakcheck();
++ }
++
++ /* Allocate result buffer with its total size, avoid re-allocation and
++ * multiple copy operations. Add 2 for a tailing ']' and NUL. */
++ if (join_gap->ga_len >= 2)
++ sumlen += (int)STRLEN(sep) * (join_gap->ga_len - 1);
++ if (ga_grow(gap, sumlen + 2) == FAIL)
++ return FAIL;
++
++ for (i = 0; i < join_gap->ga_len && !got_int; ++i)
++ {
++ if (first)
++ first = FALSE;
++ else
++ ga_concat(gap, sep);
++ p = ((join_T *)join_gap->ga_data) + i;
++
++ if (p->s != NULL)
++ ga_concat(gap, p->s);
+ line_breakcheck();
+ }
++
+ return OK;
+ }
+
+ /*
++ * Join list "l" into a string in "*gap", using separator "sep".
++ * When "echo_style" is TRUE use String as echoed, otherwise as inside a List.
++ * Return FAIL or OK.
++ */
++ static int
++ list_join(gap, l, sep, echo_style, copyID)
++ garray_T *gap;
++ list_T *l;
++ char_u *sep;
++ int echo_style;
++ int copyID;
++ {
++ garray_T join_ga;
++ int retval;
++ join_T *p;
++ int i;
++
++ ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len);
++ retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga);
++
++ /* Dispose each item in join_ga. */
++ if (join_ga.ga_data != NULL)
++ {
++ p = (join_T *)join_ga.ga_data;
++ for (i = 0; i < join_ga.ga_len; ++i)
++ {
++ vim_free(p->tofree);
++ ++p;
++ }
++ ga_clear(&join_ga);
++ }
++
++ return retval;
++ }
++
++ /*
+ * Garbage collection for lists and dictionaries.
+ *
+ * We use reference counts to be able to free most items right away when they
+***************
+*** 13406,13412 ****
+ char_u *rhs;
+ int mode;
+ int abbr = FALSE;
+! int get_dict = FALSE;
+ mapblock_T *mp;
+ int buffer_local;
+
+--- 13479,13485 ----
+ char_u *rhs;
+ int mode;
+ int abbr = FALSE;
+! int get_dict = FALSE;
+ mapblock_T *mp;
+ int buffer_local;
+
+*** ../vim-7.3.433/src/version.c 2012-02-05 23:10:25.000000000 +0100
+--- src/version.c 2012-02-06 00:10:23.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 434,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+30. Even though you died last week, you've managed to retain OPS on your
+ favorite IRC channel.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.435 b/source/ap/vim/patches/7.3.435
new file mode 100644
index 000000000..e1b13709a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.435
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.435
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.435
+Problem: Compiler warning for unused variable.
+Solution: Move the variable inside #ifdef.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.434/src/ex_cmds2.c 2012-02-05 23:10:25.000000000 +0100
+--- src/ex_cmds2.c 2012-02-06 06:16:28.000000000 +0100
+***************
+*** 3400,3406 ****
+ {
+ struct source_cookie *sp = (struct source_cookie *)cookie;
+ char_u *line;
+! char_u *p, *s;
+
+ #ifdef FEAT_EVAL
+ /* If breakpoints have been added/deleted need to check for it. */
+--- 3400,3406 ----
+ {
+ struct source_cookie *sp = (struct source_cookie *)cookie;
+ char_u *line;
+! char_u *p;
+
+ #ifdef FEAT_EVAL
+ /* If breakpoints have been added/deleted need to check for it. */
+***************
+*** 3471,3476 ****
+--- 3471,3478 ----
+ #ifdef FEAT_MBYTE
+ if (line != NULL && sp->conv.vc_type != CONV_NONE)
+ {
++ char_u *s;
++
+ /* Convert the encoding of the script line. */
+ s = string_convert(&sp->conv, line, NULL);
+ if (s != NULL)
+*** ../vim-7.3.434/src/version.c 2012-02-06 00:13:16.000000000 +0100
+--- src/version.c 2012-02-11 20:38:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 435,
+ /**/
+
+--
+Light travels faster than sound. This is why some people
+appear bright until you hear them speak
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.436 b/source/ap/vim/patches/7.3.436
new file mode 100644
index 000000000..777371ca9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.436
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.436
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.436
+Problem: Compiler warnings for types on Windows.
+Solution: Add type casts. (Mike Williams)
+Files: src/eval.c
+
+
+*** ../vim-7.3.435/src/eval.c 2012-02-06 00:13:16.000000000 +0100
+--- src/eval.c 2012-02-11 20:38:16.000000000 +0100
+***************
+*** 14462,14468 ****
+ --prevlen;
+ }
+ if (prevlen == 0)
+! s = vim_strnsave(start, len);
+ else
+ {
+ /* Change "prev" buffer to be the right size. This way
+--- 14462,14468 ----
+ --prevlen;
+ }
+ if (prevlen == 0)
+! s = vim_strnsave(start, (int)len);
+ else
+ {
+ /* Change "prev" buffer to be the right size. This way
+***************
+*** 14529,14535 ****
+
+ if (dest < buf)
+ {
+! adjust_prevlen = buf - dest; /* must be 1 or 2 */
+ dest = buf;
+ }
+ if (readlen > p - buf + 1)
+--- 14529,14535 ----
+
+ if (dest < buf)
+ {
+! adjust_prevlen = (int)(buf - dest); /* must be 1 or 2 */
+ dest = buf;
+ }
+ if (readlen > p - buf + 1)
+***************
+*** 14558,14568 ****
+ * small, to avoid repeatedly 'allocing' large and
+ * 'reallocing' small. */
+ if (prevsize == 0)
+! prevsize = p - start;
+ else
+ {
+ long grow50pc = (prevsize * 3) / 2;
+! long growmin = (p - start) * 2 + prevlen;
+ prevsize = grow50pc > growmin ? grow50pc : growmin;
+ }
+ if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+--- 14558,14568 ----
+ * small, to avoid repeatedly 'allocing' large and
+ * 'reallocing' small. */
+ if (prevsize == 0)
+! prevsize = (long)(p - start);
+ else
+ {
+ long grow50pc = (prevsize * 3) / 2;
+! long growmin = (long)((p - start) * 2 + prevlen);
+ prevsize = grow50pc > growmin ? grow50pc : growmin;
+ }
+ if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+***************
+*** 14575,14581 ****
+ }
+ /* Add the line part to end of "prev". */
+ mch_memmove(prev + prevlen, start, p - start);
+! prevlen += p - start;
+ }
+ } /* while */
+
+--- 14575,14581 ----
+ }
+ /* Add the line part to end of "prev". */
+ mch_memmove(prev + prevlen, start, p - start);
+! prevlen += (long)(p - start);
+ }
+ } /* while */
+
+*** ../vim-7.3.435/src/version.c 2012-02-11 20:40:49.000000000 +0100
+--- src/version.c 2012-02-11 20:43:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 436,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+39. You move into a new house and decide to Netscape before you landscape.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.437 b/source/ap/vim/patches/7.3.437
new file mode 100644
index 000000000..889efe746
--- /dev/null
+++ b/source/ap/vim/patches/7.3.437
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.437
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.437
+Problem: Continue looping inside FOR_ALL_TAB_WINDOWS even when already done.
+Solution: Use goto instead of break. (Hirohito Higashi)
+Files: src/fileio.c, src/globals.h
+
+
+*** ../vim-7.3.436/src/fileio.c 2011-09-02 11:56:15.000000000 +0200
+--- src/fileio.c 2012-02-11 23:40:23.000000000 +0100
+***************
+*** 8898,8907 ****
+ if (tp != curtab)
+ goto_tabpage_tp(tp);
+ win_goto(aucmd_win);
+! break;
+ }
+ }
+ }
+
+ /* Remove the window and frame from the tree of frames. */
+ (void)winframe_remove(curwin, &dummy, NULL);
+--- 8898,8908 ----
+ if (tp != curtab)
+ goto_tabpage_tp(tp);
+ win_goto(aucmd_win);
+! goto win_found;
+ }
+ }
+ }
++ win_found:
+
+ /* Remove the window and frame from the tree of frames. */
+ (void)winframe_remove(curwin, &dummy, NULL);
+*** ../vim-7.3.436/src/globals.h 2012-02-04 23:34:57.000000000 +0100
+--- src/globals.h 2012-02-11 23:43:45.000000000 +0100
+***************
+*** 535,540 ****
+--- 535,544 ----
+ EXTERN win_T *prevwin INIT(= NULL); /* previous window */
+ # define W_NEXT(wp) ((wp)->w_next)
+ # define FOR_ALL_WINDOWS(wp) for (wp = firstwin; wp != NULL; wp = wp->w_next)
++ /*
++ * When using this macro "break" only breaks out of the inner loop. Use "goto"
++ * to break out of the tabpage loop.
++ */
+ # define FOR_ALL_TAB_WINDOWS(tp, wp) \
+ for ((tp) = first_tabpage; (tp) != NULL; (tp) = (tp)->tp_next) \
+ for ((wp) = ((tp) == curtab) \
+*** ../vim-7.3.436/src/version.c 2012-02-11 20:44:01.000000000 +0100
+--- src/version.c 2012-02-11 23:40:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 437,
+ /**/
+
+--
+The future isn't what it used to be.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.438 b/source/ap/vim/patches/7.3.438
new file mode 100644
index 000000000..94786d7cc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.438
@@ -0,0 +1,126 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.438
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.438
+Problem: There is no way to avoid ":doautoall" reading modelines.
+Solution: Add the <nomodeline> argument. Adjust documentation.
+Files: src/fileio.c, runtime/doc/autocmd.txt
+
+
+*** ../vim-7.3.437/src/fileio.c 2012-02-11 23:45:30.000000000 +0100
+--- src/fileio.c 2012-02-12 00:08:17.000000000 +0100
+***************
+*** 8739,8744 ****
+--- 8739,8752 ----
+ int retval;
+ aco_save_T aco;
+ buf_T *buf;
++ char_u *arg = eap->arg;
++ int call_do_modelines = TRUE;
++
++ if (STRNCMP(arg, "<nomodeline>", 12) == 0)
++ {
++ call_do_modelines = FALSE;
++ arg = skipwhite(arg + 12);
++ }
+
+ /*
+ * This is a bit tricky: For some commands curwin->w_buffer needs to be
+***************
+*** 8755,8765 ****
+ aucmd_prepbuf(&aco, buf);
+
+ /* execute the autocommands for this buffer */
+! retval = do_doautocmd(eap->arg, FALSE);
+
+! /* Execute the modeline settings, but don't set window-local
+! * options if we are using the current window for another buffer. */
+! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+
+ /* restore the current window */
+ aucmd_restbuf(&aco);
+--- 8763,8777 ----
+ aucmd_prepbuf(&aco, buf);
+
+ /* execute the autocommands for this buffer */
+! retval = do_doautocmd(arg, FALSE);
+
+! if (call_do_modelines)
+! {
+! /* Execute the modeline settings, but don't set window-local
+! * options if we are using the current window for another
+! * buffer. */
+! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0);
+! }
+
+ /* restore the current window */
+ aucmd_restbuf(&aco);
+*** ../vim-7.3.437/runtime/doc/autocmd.txt 2011-05-19 17:25:36.000000000 +0200
+--- runtime/doc/autocmd.txt 2012-02-12 00:03:45.000000000 +0100
+***************
+*** 1065,1077 ****
+ autocommands for that group. Note: if you use an
+ undefined group name, Vim gives you an error message.
+
+- After applying the autocommands the modelines are
+- processed, so that their settings overrule the
+- settings from autocommands, like what happens when
+- editing a file.
+-
+ *:doautoa* *:doautoall*
+! :doautoa[ll] [group] {event} [fname]
+ Like ":doautocmd", but apply the autocommands to each
+ loaded buffer. Note that [fname] is used to select
+ the autocommands, not the buffers to which they are
+--- 1073,1080 ----
+ autocommands for that group. Note: if you use an
+ undefined group name, Vim gives you an error message.
+
+ *:doautoa* *:doautoall*
+! :doautoa[ll] [<nomodeline>] [group] {event} [fname]
+ Like ":doautocmd", but apply the autocommands to each
+ loaded buffer. Note that [fname] is used to select
+ the autocommands, not the buffers to which they are
+***************
+*** 1082,1087 ****
+--- 1085,1096 ----
+ This command is intended for autocommands that set
+ options, change highlighting, and things like that.
+
++ After applying the autocommands the modelines are
++ processed, so that their settings overrule the
++ settings from autocommands, like what happens when
++ editing a file. This is skipped when the <nomodeline>
++ argument is present.
++
+ ==============================================================================
+ 10. Using autocommands *autocmd-use*
+
+*** ../vim-7.3.437/src/version.c 2012-02-11 23:45:30.000000000 +0100
+--- src/version.c 2012-02-12 00:16:04.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 438,
+ /**/
+
+--
+"Oh, no! NOT the Spanish Inquisition!"
+"NOBODY expects the Spanish Inquisition!!!"
+ -- Monty Python sketch --
+"Oh, no! NOT another option!"
+"EVERYBODY expects another option!!!"
+ -- Discussion in vim-dev mailing list --
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.439 b/source/ap/vim/patches/7.3.439
new file mode 100644
index 000000000..63d8f693f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.439
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.439
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.439
+Problem: Compiler warnings to size casts in Perl interface.
+Solution: Use XS macros. (James McCoy)
+Files: src/if_perl.xs, src/typemap
+
+
+*** ../vim-7.3.438/src/if_perl.xs 2011-09-07 18:47:19.000000000 +0200
+--- src/if_perl.xs 2012-02-12 00:28:52.000000000 +0100
+***************
+*** 611,617 ****
+ if (ptr->w_perl_private == NULL)
+ {
+ ptr->w_perl_private = newSV(0);
+! sv_setiv(ptr->w_perl_private, (IV)ptr);
+ }
+ else
+ SvREFCNT_inc(ptr->w_perl_private);
+--- 611,617 ----
+ if (ptr->w_perl_private == NULL)
+ {
+ ptr->w_perl_private = newSV(0);
+! sv_setiv(ptr->w_perl_private, PTR2IV(ptr));
+ }
+ else
+ SvREFCNT_inc(ptr->w_perl_private);
+***************
+*** 629,635 ****
+ if (ptr->b_perl_private == NULL)
+ {
+ ptr->b_perl_private = newSV(0);
+! sv_setiv(ptr->b_perl_private, (IV)ptr);
+ }
+ else
+ SvREFCNT_inc(ptr->b_perl_private);
+--- 629,635 ----
+ if (ptr->b_perl_private == NULL)
+ {
+ ptr->b_perl_private = newSV(0);
+! sv_setiv(ptr->b_perl_private, PTR2IV(ptr));
+ }
+ else
+ SvREFCNT_inc(ptr->b_perl_private);
+*** ../vim-7.3.438/src/typemap 2010-08-15 21:57:29.000000000 +0200
+--- src/typemap 2012-02-12 00:28:52.000000000 +0100
+***************
+*** 6,12 ****
+ T_VIOBJNOMUNGE
+ if (sv_isa($arg, \"${ntype}\")) {
+ IV tmp = SvIV((SV*)SvRV($arg));
+! $var = ($type) tmp;
+ if (!tmp)
+ croak(\"$ntype no longer exists\");
+ }
+--- 6,12 ----
+ T_VIOBJNOMUNGE
+ if (sv_isa($arg, \"${ntype}\")) {
+ IV tmp = SvIV((SV*)SvRV($arg));
+! $var = INT2PTR($type, tmp);
+ if (!tmp)
+ croak(\"$ntype no longer exists\");
+ }
+*** ../vim-7.3.438/src/version.c 2012-02-12 00:18:54.000000000 +0100
+--- src/version.c 2012-02-12 00:31:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 439,
+ /**/
+
+--
+Microsoft is to software what McDonalds is to gourmet cooking
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.440 b/source/ap/vim/patches/7.3.440
new file mode 100644
index 000000000..39313b0f6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.440
@@ -0,0 +1,211 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.440
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.440
+Problem: Vim does not support UTF8_STRING for the X selection.
+Solution: Add UTF8_STRING atom support. (Alex Efros) Use it only when
+ 'encoding' is set to Unicode.
+Files: src/ui.c
+
+
+*** ../vim-7.3.439/src/ui.c 2012-02-04 21:57:44.000000000 +0100
+--- src/ui.c 2012-02-12 01:28:30.000000000 +0100
+***************
+*** 1917,1922 ****
+--- 1917,1923 ----
+ static Atom vim_atom; /* Vim's own special selection format */
+ #ifdef FEAT_MBYTE
+ static Atom vimenc_atom; /* Vim's extended selection format */
++ static Atom utf8_atom;
+ #endif
+ static Atom compound_text_atom;
+ static Atom text_atom;
+***************
+*** 1930,1935 ****
+--- 1931,1937 ----
+ vim_atom = XInternAtom(dpy, VIM_ATOM_NAME, False);
+ #ifdef FEAT_MBYTE
+ vimenc_atom = XInternAtom(dpy, VIMENC_ATOM_NAME,False);
++ utf8_atom = XInternAtom(dpy, "UTF8_STRING", False);
+ #endif
+ compound_text_atom = XInternAtom(dpy, "COMPOUND_TEXT", False);
+ text_atom = XInternAtom(dpy, "TEXT", False);
+***************
+*** 2074,2080 ****
+ }
+ #endif
+
+! else if (*type == compound_text_atom || (
+ #ifdef FEAT_MBYTE
+ enc_dbcs != 0 &&
+ #endif
+--- 2076,2086 ----
+ }
+ #endif
+
+! else if (*type == compound_text_atom
+! #ifdef FEAT_MBYTE
+! || *type == utf8_atom
+! #endif
+! || (
+ #ifdef FEAT_MBYTE
+ enc_dbcs != 0 &&
+ #endif
+***************
+*** 2128,2134 ****
+ #else
+ 1
+ #endif
+! ; i < 5; i++)
+ {
+ switch (i)
+ {
+--- 2134,2140 ----
+ #else
+ 1
+ #endif
+! ; i < 6; i++)
+ {
+ switch (i)
+ {
+***************
+*** 2136,2145 ****
+ case 0: type = vimenc_atom; break;
+ #endif
+ case 1: type = vim_atom; break;
+! case 2: type = compound_text_atom; break;
+! case 3: type = text_atom; break;
+ default: type = XA_STRING;
+ }
+ success = MAYBE;
+ XtGetSelectionValue(myShell, cbd->sel_atom, type,
+ clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+--- 2142,2159 ----
+ case 0: type = vimenc_atom; break;
+ #endif
+ case 1: type = vim_atom; break;
+! #ifdef FEAT_MBYTE
+! case 2: type = utf8_atom; break;
+! #endif
+! case 3: type = compound_text_atom; break;
+! case 4: type = text_atom; break;
+ default: type = XA_STRING;
+ }
++ #ifdef FEAT_MBYTE
++ if (type == utf8_atom && !enc_utf8)
++ /* Only request utf-8 when 'encoding' is utf8. */
++ continue;
++ #endif
+ success = MAYBE;
+ XtGetSelectionValue(myShell, cbd->sel_atom, type,
+ clip_x11_request_selection_cb, (XtPointer)&success, CurrentTime);
+***************
+*** 2230,2247 ****
+ {
+ Atom *array;
+
+! if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 6))) == NULL)
+ return False;
+ *value = (XtPointer)array;
+ i = 0;
+- array[i++] = XA_STRING;
+ array[i++] = targets_atom;
+ #ifdef FEAT_MBYTE
+ array[i++] = vimenc_atom;
+ #endif
+ array[i++] = vim_atom;
+ array[i++] = text_atom;
+ array[i++] = compound_text_atom;
+ *type = XA_ATOM;
+ /* This used to be: *format = sizeof(Atom) * 8; but that caused
+ * crashes on 64 bit machines. (Peter Derr) */
+--- 2244,2266 ----
+ {
+ Atom *array;
+
+! if ((array = (Atom *)XtMalloc((unsigned)(sizeof(Atom) * 7))) == NULL)
+ return False;
+ *value = (XtPointer)array;
+ i = 0;
+ array[i++] = targets_atom;
+ #ifdef FEAT_MBYTE
+ array[i++] = vimenc_atom;
+ #endif
+ array[i++] = vim_atom;
++ #ifdef FEAT_MBYTE
++ if (enc_utf8)
++ array[i++] = utf8_atom;
++ #endif
++ array[i++] = XA_STRING;
+ array[i++] = text_atom;
+ array[i++] = compound_text_atom;
++
+ *type = XA_ATOM;
+ /* This used to be: *format = sizeof(Atom) * 8; but that caused
+ * crashes on 64 bit machines. (Peter Derr) */
+***************
+*** 2253,2258 ****
+--- 2272,2278 ----
+ if ( *target != XA_STRING
+ #ifdef FEAT_MBYTE
+ && *target != vimenc_atom
++ && *target != utf8_atom
+ #endif
+ && *target != vim_atom
+ && *target != text_atom
+***************
+*** 2282,2294 ****
+ return False;
+ }
+
+! if (*target == XA_STRING)
+ {
+ mch_memmove(result, string, (size_t)(*length));
+! *type = XA_STRING;
+ }
+! else if (*target == compound_text_atom
+! || *target == text_atom)
+ {
+ XTextProperty text_prop;
+ char *string_nt = (char *)alloc((unsigned)*length + 1);
+--- 2302,2317 ----
+ return False;
+ }
+
+! if (*target == XA_STRING
+! #ifdef FEAT_MBYTE
+! || (*target == utf8_atom && enc_utf8)
+! #endif
+! )
+ {
+ mch_memmove(result, string, (size_t)(*length));
+! *type = *target;
+ }
+! else if (*target == compound_text_atom || *target == text_atom)
+ {
+ XTextProperty text_prop;
+ char *string_nt = (char *)alloc((unsigned)*length + 1);
+*** ../vim-7.3.439/src/version.c 2012-02-12 00:31:47.000000000 +0100
+--- src/version.c 2012-02-12 01:34:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 440,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.441 b/source/ap/vim/patches/7.3.441
new file mode 100644
index 000000000..9a7539b5a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.441
@@ -0,0 +1,341 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.441
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.441
+Problem: Newer versions of MzScheme (Racket) require earlier (trampolined)
+ initialisation.
+Solution: Call mzscheme_main() early in main(). (Sergey Khorev)
+Files: src/Make_mvc.mak, src/if_mzsch.c, src/main.c,
+ src/proto/if_mzsch.pro
+
+
+*** ../vim-7.3.440/src/Make_mvc.mak 2011-09-14 19:01:38.000000000 +0200
+--- src/Make_mvc.mak 2012-02-12 01:46:05.000000000 +0100
+***************
+*** 740,745 ****
+--- 740,747 ----
+ !endif
+ !endif
+ MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
++ # increase stack size
++ MZSCHEME_LIB = $(MZSCHEME_LIB) /STACK:8388608
+ !endif
+
+ # Perl interface
+*** ../vim-7.3.440/src/if_mzsch.c 2010-11-03 21:59:23.000000000 +0100
+--- src/if_mzsch.c 2012-02-12 01:47:31.000000000 +0100
+***************
+*** 31,38 ****
+ * depend". */
+ #if defined(FEAT_MZSCHEME) || defined(PROTO)
+
+- #include <assert.h>
+-
+ /* Base data structures */
+ #define SCHEME_VIMBUFFERP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_buffer_type)
+ #define SCHEME_VIMWINDOWP(obj) SAME_TYPE(SCHEME_TYPE(obj), mz_window_type)
+--- 31,36 ----
+***************
+*** 559,575 ****
+ hMzSch = vimLoadLib(sch_dll);
+ hMzGC = vimLoadLib(gc_dll);
+
+! if (!hMzSch)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+! if (!hMzGC)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+--- 557,573 ----
+ hMzSch = vimLoadLib(sch_dll);
+ hMzGC = vimLoadLib(gc_dll);
+
+! if (!hMzGC)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), gc_dll);
+ return FAIL;
+ }
+
+! if (!hMzSch)
+ {
+ if (verbose)
+! EMSG2(_(e_loadlib), sch_dll);
+ return FAIL;
+ }
+
+***************
+*** 798,862 ****
+ static __declspec(thread) void *tls_space;
+ #endif
+
+! void
+! mzscheme_main(void)
+ {
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ scheme_register_tls_space(&tls_space, 0);
+ #endif
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400
+! /* use trampoline for precise GC in MzScheme >= 4.x */
+! scheme_main_setup(TRUE, mzscheme_env_main, 0, NULL);
+ #else
+! mzscheme_env_main(NULL, 0, NULL);
+ #endif
+ }
+
+ static int
+! mzscheme_env_main(Scheme_Env *env, int argc UNUSED, char **argv UNUSED)
+ {
+! /* neither argument nor return values are used */
+! #ifdef MZ_PRECISE_GC
+! # if MZSCHEME_VERSION_MAJOR < 400
+! /*
+! * Starting from version 4.x, embedding applications must use
+! * scheme_main_setup/scheme_main_stack_setup trampolines
+! * rather than setting stack base directly with scheme_set_stack_base
+! */
+ Scheme_Object *dummy = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, dummy);
+
+ stack_base = &__gc_var_stack__;
+ # else
+- /* environment has been created by us by Scheme */
+- environment = env;
+- # endif
+- /*
+- * In 4.x, all activities must be performed inside trampoline
+- * so we are forced to initialise GC immediately
+- * This can be postponed in 3.x but I see no point in implementing
+- * a feature which will work in older versions only.
+- * One would better use conservative GC if he needs dynamic MzScheme
+- */
+- mzscheme_init();
+- #else
+ int dummy = 0;
+ stack_base = (void *)&dummy;
+ #endif
+! main_loop(FALSE, FALSE);
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR < 400
+ /* releasing dummy */
+ MZ_GC_REG();
+ MZ_GC_UNREG();
+ #endif
+! return 0;
+ }
+
+ static void
+ startup_mzscheme(void)
+ {
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+ scheme_set_stack_base(stack_base, 1);
+ #endif
+
+--- 796,863 ----
+ static __declspec(thread) void *tls_space;
+ #endif
+
+! /*
+! * Since version 4.x precise GC requires trampolined startup.
+! * Futures and places in version 5.x need it too.
+! */
+! #if defined(MZ_PRECISE_GC) && MZSCHEME_VERSION_MAJOR >= 400 \
+! || MZSCHEME_VERSION_MAJOR >= 500 && (defined(MZ_USE_FUTURES) || defined(MZ_USE_PLACES))
+! # ifdef DYNAMIC_MZSCHEME
+! # error Precise GC v.4+ or Racket with futures/places do not support dynamic MzScheme
+! # endif
+! # define TRAMPOLINED_MZVIM_STARTUP
+! #endif
+!
+! int
+! mzscheme_main(int argc, char** argv)
+ {
+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
+ scheme_register_tls_space(&tls_space, 0);
+ #endif
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+! return scheme_main_setup(TRUE, mzscheme_env_main, argc, argv);
+ #else
+! return mzscheme_env_main(NULL, argc, argv);
+ #endif
+ }
+
+ static int
+! mzscheme_env_main(Scheme_Env *env, int argc, char **argv)
+ {
+! int vim_main_result;
+! #ifdef TRAMPOLINED_MZVIM_STARTUP
+! /* Scheme has created the environment for us */
+! environment = env;
+! #else
+! # ifdef MZ_PRECISE_GC
+ Scheme_Object *dummy = NULL;
+ MZ_GC_DECL_REG(1);
+ MZ_GC_VAR_IN_REG(0, dummy);
+
+ stack_base = &__gc_var_stack__;
+ # else
+ int dummy = 0;
+ stack_base = (void *)&dummy;
++ # endif
+ #endif
+!
+! /* mzscheme_main is called as a trampoline from main.
+! * We trampoline into vim_main2
+! * Passing argc, argv through from mzscheme_main
+! */
+! vim_main_result = vim_main2(argc, argv);
+! #if !defined(TRAMPOLINED_MZVIM_STARTUP) && defined(MZ_PRECISE_GC)
+ /* releasing dummy */
+ MZ_GC_REG();
+ MZ_GC_UNREG();
+ #endif
+! return vim_main_result;
+ }
+
+ static void
+ startup_mzscheme(void)
+ {
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+ scheme_set_stack_base(stack_base, 1);
+ #endif
+
+***************
+*** 868,874 ****
+ MZ_REGISTER_STATIC(exn_message);
+ MZ_REGISTER_STATIC(vim_exn);
+
+! #if !defined(MZ_PRECISE_GC) || MZSCHEME_VERSION_MAJOR < 400
+ /* in newer versions of precise GC the initial env has been created */
+ environment = scheme_basic_env();
+ #endif
+--- 869,875 ----
+ MZ_REGISTER_STATIC(exn_message);
+ MZ_REGISTER_STATIC(vim_exn);
+
+! #ifndef TRAMPOLINED_MZVIM_STARTUP
+ /* in newer versions of precise GC the initial env has been created */
+ environment = scheme_basic_env();
+ #endif
+***************
+*** 3013,3019 ****
+ MZ_GC_REG();
+
+ tmp = scheme_make_struct_names(exn_name, scheme_null, 0, &nc);
+- assert(nc <= 5);
+ mch_memmove(exn_names, tmp, nc * sizeof(Scheme_Object *));
+ MZ_GC_CHECK();
+
+--- 3014,3019 ----
+*** ../vim-7.3.440/src/main.c 2011-12-08 15:57:54.000000000 +0100
+--- src/main.c 2012-02-12 01:49:50.000000000 +0100
+***************
+*** 554,559 ****
+--- 554,584 ----
+ debug_break_level = params.use_debug_break_level;
+ #endif
+
++ #ifdef FEAT_MZSCHEME
++ /*
++ * Newer version of MzScheme (Racket) require earlier (trampolined)
++ * initialisation via scheme_main_setup.
++ * Implement this by initialising it as early as possible
++ * and splitting off remaining Vim main into vim_main2
++ */
++ {
++ /* Pack up preprocessed command line arguments.
++ * It is safe because Scheme does not access argc/argv. */
++ char *args[2];
++ args[0] = (char *)fname;
++ args[1] = (char *)&params;
++ return mzscheme_main(2, args);
++ }
++ }
++
++ int vim_main2(int argc, char **argv)
++ {
++ char_u *fname = (char_u *)argv[0];
++ mparm_T params;
++
++ memcpy(&params, argv[1], sizeof(params));
++ #endif
++
+ /* Execute --cmd arguments. */
+ exe_pre_commands(&params);
+
+***************
+*** 957,970 ****
+
+ /*
+ * Call the main command loop. This never returns.
+! * For embedded MzScheme the main_loop will be called by Scheme
+! * for proper stack tracking
+! */
+! #ifndef FEAT_MZSCHEME
+ main_loop(FALSE, FALSE);
+- #else
+- mzscheme_main();
+- #endif
+
+ return 0;
+ }
+--- 982,989 ----
+
+ /*
+ * Call the main command loop. This never returns.
+! */
+ main_loop(FALSE, FALSE);
+
+ return 0;
+ }
+*** ../vim-7.3.440/src/proto/if_mzsch.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_mzsch.pro 2012-02-12 01:50:57.000000000 +0100
+***************
+*** 14,19 ****
+ void mzvim_reset_timer __ARGS((void));
+ void *mzvim_eval_string __ARGS((char_u *str));
+ int mzthreads_allowed __ARGS((void));
+! void mzscheme_main __ARGS((void));
+ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
+ /* vim: set ft=c : */
+--- 14,20 ----
+ void mzvim_reset_timer __ARGS((void));
+ void *mzvim_eval_string __ARGS((char_u *str));
+ int mzthreads_allowed __ARGS((void));
+! int mzscheme_main __ARGS((int argc, char **argv));
+ void do_mzeval __ARGS((char_u *str, typval_T *rettv));
++ int vim_main2 __ARGS((int argc, char **argv));
+ /* vim: set ft=c : */
+*** ../vim-7.3.440/src/version.c 2012-02-12 01:35:06.000000000 +0100
+--- src/version.c 2012-02-12 01:54:14.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 441,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+43. You tell the kids they can't use the computer because "Daddy's got work to
+ do" and you don't even have a job.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.442 b/source/ap/vim/patches/7.3.442
new file mode 100644
index 000000000..58b58b4ea
--- /dev/null
+++ b/source/ap/vim/patches/7.3.442
@@ -0,0 +1,186 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.442
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.442 (after 7.3.438)
+Problem: Still read modelines for ":doautocmd".
+Solution: Move check for <nomodeline> to separate function.
+Files: src/fileio.c, src/ex_docmd.c, src/proto/fileio.pro,
+ runtime/doc/autocmd.txt
+
+
+*** ../vim-7.3.441/src/fileio.c 2012-02-12 00:18:54.000000000 +0100
+--- src/fileio.c 2012-02-12 20:05:35.000000000 +0100
+***************
+*** 8740,8752 ****
+ aco_save_T aco;
+ buf_T *buf;
+ char_u *arg = eap->arg;
+! int call_do_modelines = TRUE;
+!
+! if (STRNCMP(arg, "<nomodeline>", 12) == 0)
+! {
+! call_do_modelines = FALSE;
+! arg = skipwhite(arg + 12);
+! }
+
+ /*
+ * This is a bit tricky: For some commands curwin->w_buffer needs to be
+--- 8740,8746 ----
+ aco_save_T aco;
+ buf_T *buf;
+ char_u *arg = eap->arg;
+! int call_do_modelines = check_nomodeline(&arg);
+
+ /*
+ * This is a bit tricky: For some commands curwin->w_buffer needs to be
+***************
+*** 8786,8791 ****
+--- 8780,8802 ----
+ }
+
+ /*
++ * Check *argp for <nomodeline>. When it is present return FALSE, otherwise
++ * return TRUE and advance *argp to after it.
++ * Thus return TRUE when do_modelines() should be called.
++ */
++ int
++ check_nomodeline(argp)
++ char_u **argp;
++ {
++ if (STRNCMP(*argp, "<nomodeline>", 12) == 0)
++ {
++ *argp = skipwhite(*argp + 12);
++ return FALSE;
++ }
++ return TRUE;
++ }
++
++ /*
+ * Prepare for executing autocommands for (hidden) buffer "buf".
+ * Search for a visible window containing the current buffer. If there isn't
+ * one then use "aucmd_win".
+*** ../vim-7.3.441/src/ex_docmd.c 2012-01-26 20:41:22.000000000 +0100
+--- src/ex_docmd.c 2012-02-12 20:05:18.000000000 +0100
+***************
+*** 4955,4961 ****
+ map_clear(eap->cmd, eap->arg, TRUE, TRUE);
+ }
+
+! #ifdef FEAT_AUTOCMD
+ static void
+ ex_autocmd(eap)
+ exarg_T *eap;
+--- 4955,4961 ----
+ map_clear(eap->cmd, eap->arg, TRUE, TRUE);
+ }
+
+! #if defined(FEAT_AUTOCMD) || defined(PROTO)
+ static void
+ ex_autocmd(eap)
+ exarg_T *eap;
+***************
+*** 4982,4989 ****
+ ex_doautocmd(eap)
+ exarg_T *eap;
+ {
+! (void)do_doautocmd(eap->arg, TRUE);
+! do_modelines(0);
+ }
+ #endif
+
+--- 4982,4993 ----
+ ex_doautocmd(eap)
+ exarg_T *eap;
+ {
+! char_u *arg = eap->arg;
+! int call_do_modelines = check_nomodeline(&arg);
+!
+! (void)do_doautocmd(arg, TRUE);
+! if (call_do_modelines) /* Only when there is no <nomodeline>. */
+! do_modelines(0);
+ }
+ #endif
+
+*** ../vim-7.3.441/src/proto/fileio.pro 2010-12-17 16:27:10.000000000 +0100
+--- src/proto/fileio.pro 2012-02-12 20:05:26.000000000 +0100
+***************
+*** 35,40 ****
+--- 35,41 ----
+ void do_autocmd __ARGS((char_u *arg, int forceit));
+ int do_doautocmd __ARGS((char_u *arg, int do_msg));
+ void ex_doautoall __ARGS((exarg_T *eap));
++ int check_nomodeline __ARGS((char_u **argp));
+ void aucmd_prepbuf __ARGS((aco_save_T *aco, buf_T *buf));
+ void aucmd_restbuf __ARGS((aco_save_T *aco));
+ int apply_autocmds __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, buf_T *buf));
+*** ../vim-7.3.441/runtime/doc/autocmd.txt 2012-02-12 00:18:54.000000000 +0100
+--- runtime/doc/autocmd.txt 2012-02-12 20:11:05.000000000 +0100
+***************
+*** 1064,1069 ****
+--- 1072,1085 ----
+ argument is included, Vim executes only the matching
+ autocommands for that group. Note: if you use an
+ undefined group name, Vim gives you an error message.
++ *<nomodeline>*
++ After applying the autocommands the modelines are
++ processed, so that their settings overrule the
++ settings from autocommands, like what happens when
++ editing a file. This is skipped when the <nomodeline>
++ argument is present. You probably want to use
++ <nomodeline> for events that are not used when loading
++ a buffer, such as |User|.
+
+ *:doautoa* *:doautoall*
+ :doautoa[ll] [<nomodeline>] [group] {event} [fname]
+***************
+*** 1077,1088 ****
+ This command is intended for autocommands that set
+ options, change highlighting, and things like that.
+
+- After applying the autocommands the modelines are
+- processed, so that their settings overrule the
+- settings from autocommands, like what happens when
+- editing a file. This is skipped when the <nomodeline>
+- argument is present.
+-
+ ==============================================================================
+ 10. Using autocommands *autocmd-use*
+
+--- 1093,1098 ----
+*** ../vim-7.3.441/src/version.c 2012-02-12 01:55:50.000000000 +0100
+--- src/version.c 2012-02-12 20:11:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 442,
+ /**/
+
+--
+The real
+trick is
+this: to
+keep the
+lines as
+short as
+possible
+and keep
+the size
+the same
+yet free
+from the
+need for
+hyphena-
+Dammit!! (Matthew Winn)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.443 b/source/ap/vim/patches/7.3.443
new file mode 100644
index 000000000..84b45baa2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.443
@@ -0,0 +1,206 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.443
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.443
+Problem: MS-Windows: 'shcf' and 'shellxquote' defaults are not very good.
+Solution: Make a better guess when 'shell' is set to "cmd.exe". (Ben Fritz)
+Files: src/option.c, runtime/doc/options.txt
+
+
+*** ../vim-7.3.442/src/option.c 2012-01-28 18:03:30.000000000 +0100
+--- src/option.c 2012-02-12 23:17:55.000000000 +0100
+***************
+*** 3883,3889 ****
+
+ #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
+ /*
+! * Set 'shellcmdflag and 'shellquote' depending on the 'shell' option.
+ * This is done after other initializations, where 'shell' might have been
+ * set, but only if they have not been set before. Default for p_shcf is
+ * "/c", for p_shq is "". For "sh" like shells it is changed here to
+--- 3883,3890 ----
+
+ #if defined(MSDOS) || defined(WIN3264) || defined(OS2)
+ /*
+! * Set 'shellcmdflag', 'shellxquote', and 'shellquote' depending on the
+! * 'shell' option.
+ * This is done after other initializations, where 'shell' might have been
+ * set, but only if they have not been set before. Default for p_shcf is
+ * "/c", for p_shq is "". For "sh" like shells it is changed here to
+***************
+*** 3920,3925 ****
+--- 3921,3962 ----
+ # endif
+ # endif
+ }
++ else if (strstr((char *)gettail(p_sh), "cmd.exe") != NULL)
++ {
++ int idx3;
++
++ /*
++ * cmd.exe on Windows will strip the first and last double quote given
++ * on the command line, e.g. most of the time things like:
++ * cmd /c "my path/to/echo" "my args to echo"
++ * become:
++ * my path/to/echo" "my args to echo
++ * when executed.
++ *
++ * To avoid this, use the /s argument in addition to /c to force the
++ * stripping behavior, and also set shellxquote to automatically
++ * surround the entire command in quotes (which get stripped as
++ * noted).
++ */
++
++ /* Set shellxquote default to add the quotes to be stripped. */
++ idx3 = findoption((char_u *)"sxq");
++ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
++ {
++ p_sxq = (char_u *)"\"";
++ options[idx3].def_val[VI_DEFAULT] = p_sxq;
++ }
++
++ /* Set shellcmdflag default to always strip the quotes, note the order
++ * between /s and /c is important or cmd.exe will treat the /s as part
++ * of the command to be executed. */
++ idx3 = findoption((char_u *)"shcf");
++ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
++ {
++ p_shcf = (char_u *)"/s /c";
++ options[idx3].def_val[VI_DEFAULT] = p_shcf;
++ }
++ }
+ #endif
+
+ #ifdef FEAT_TITLE
+*** ../vim-7.3.442/runtime/doc/options.txt 2011-06-26 05:36:07.000000000 +0200
+--- runtime/doc/options.txt 2012-02-12 23:21:59.000000000 +0100
+***************
+*** 5880,5895 ****
+ security reasons.
+
+ *'shellcmdflag'* *'shcf'*
+! 'shellcmdflag' 'shcf' string (default: "-c", MS-DOS and Win32, when 'shell'
+! does not contain "sh" somewhere: "/c")
+ global
+ {not in Vi}
+ Flag passed to the shell to execute "!" and ":!" commands; e.g.,
+ "bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
+ systems, the default is set according to the value of 'shell', to
+ reduce the need to set this option by the user. It's not used for
+! OS/2 (EMX figures this out itself). See |option-backslash| about
+! including spaces and backslashes. See |dos-shell|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
+--- 5899,5919 ----
+ security reasons.
+
+ *'shellcmdflag'* *'shcf'*
+! 'shellcmdflag' 'shcf' string (default: "-c";
+! Win32, when 'shell' is cmd.exe: "/s /c";
+! MS-DOS and Win32, when 'shell' neither is
+! cmd.exe nor contains "sh" somewhere: "/c")
+ global
+ {not in Vi}
+ Flag passed to the shell to execute "!" and ":!" commands; e.g.,
+ "bash.exe -c ls" or "command.com /c dir". For the MS-DOS-like
+ systems, the default is set according to the value of 'shell', to
+ reduce the need to set this option by the user. It's not used for
+! OS/2 (EMX figures this out itself).
+! On Unix it can have more than one flag. Each white space separated
+! part is passed as an argument to the shell command.
+! See |option-backslash| about including spaces and backslashes.
+! Also see |dos-shell| for MS-DOS and MS-Windows.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
+***************
+*** 5910,5918 ****
+ For Unix the default it "| tee". The stdout of the compiler is saved
+ in a file and echoed to the screen. If the 'shell' option is "csh" or
+ "tcsh" after initializations, the default becomes "|& tee". If the
+! 'shell' option is "sh", "ksh", "zsh" or "bash" the default becomes
+! "2>&1| tee". This means that stderr is also included. Before using
+! the 'shell' option a path is removed, thus "/bin/sh" uses "sh".
+ The initialization of this option is done after reading the ".vimrc"
+ and the other initializations, so that when the 'shell' option is set
+ there, the 'shellpipe' option changes automatically, unless it was
+--- 5934,5943 ----
+ For Unix the default it "| tee". The stdout of the compiler is saved
+ in a file and echoed to the screen. If the 'shell' option is "csh" or
+ "tcsh" after initializations, the default becomes "|& tee". If the
+! 'shell' option is "sh", "ksh", "mksh", "pdksh", "zsh" or "bash" the
+! default becomes "2>&1| tee". This means that stderr is also included.
+! Before using the 'shell' option a path is removed, thus "/bin/sh" uses
+! "sh".
+ The initialization of this option is done after reading the ".vimrc"
+ and the other initializations, so that when the 'shell' option is set
+ there, the 'shellpipe' option changes automatically, unless it was
+***************
+*** 6017,6024 ****
+
+ *'shellxquote'* *'sxq'*
+ 'shellxquote' 'sxq' string (default: "";
+! for Win32, when 'shell' contains "sh"
+! somewhere: "\""
+ for Unix, when using system(): "\"")
+ global
+ {not in Vi}
+--- 6043,6050 ----
+
+ *'shellxquote'* *'sxq'*
+ 'shellxquote' 'sxq' string (default: "";
+! for Win32, when 'shell' is cmd.exe or
+! contains "sh" somewhere: "\""
+ for Unix, when using system(): "\"")
+ global
+ {not in Vi}
+***************
+*** 6026,6036 ****
+ the "!" and ":!" commands. Includes the redirection. See
+ 'shellquote' to exclude the redirection. It's probably not useful
+ to set both options.
+! This is an empty string by default. Known to be useful for
+! third-party shells when using the Win32 version, such as the MKS Korn
+! Shell or bash, where it should be "\"". The default is adjusted
+! according the value of 'shell', to reduce the need to set this option
+! by the user. See |dos-shell|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
+--- 6052,6063 ----
+ the "!" and ":!" commands. Includes the redirection. See
+ 'shellquote' to exclude the redirection. It's probably not useful
+ to set both options.
+! This is an empty string by default on most systems, but is known to be
+! useful for on Win32 version, either for cmd.exe which automatically
+! strips off the first and last quote on a command, or 3rd-party shells
+! such as the MKS Korn Shell or bash, where it should be "\"". The
+! default is adjusted according the value of 'shell', to reduce the need
+! to set this option by the user. See |dos-shell|.
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
+*** ../vim-7.3.442/src/version.c 2012-02-12 20:13:55.000000000 +0100
+--- src/version.c 2012-02-12 23:18:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 443,
+ /**/
+
+--
+CVS sux, men don't like commitment
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.444 b/source/ap/vim/patches/7.3.444
new file mode 100644
index 000000000..64ed88bf1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.444
@@ -0,0 +1,96 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.444
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.444
+Problem: ":all!" and ":sall!" give error E477, even though the
+ documentation says these are valid commands.
+Solution: Support the exclamation mark. (Hirohito Higashi)
+Files: src/ex_cmds.h, src/testdir/test31.in, src/testdir/test31.ok
+
+
+*** ../vim-7.3.443/src/ex_cmds.h 2011-06-20 05:02:53.000000000 +0200
+--- src/ex_cmds.h 2012-02-12 23:53:31.000000000 +0100
+***************
+*** 102,108 ****
+ EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_all, "all", ex_all,
+! RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_amenu, "amenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_anoremenu, "anoremenu", ex_menu,
+--- 102,108 ----
+ EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_all, "all", ex_all,
+! BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_amenu, "amenu", ex_menu,
+ RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_anoremenu, "anoremenu", ex_menu,
+***************
+*** 798,804 ****
+ EX(CMD_sargument, "sargument", ex_argument,
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sall, "sall", ex_all,
+! RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_saveas, "saveas", ex_write,
+--- 798,804 ----
+ EX(CMD_sargument, "sargument", ex_argument,
+ BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR),
+ EX(CMD_sall, "sall", ex_all,
+! BANG|RANGE|NOTADR|COUNT|TRLBAR),
+ EX(CMD_sandbox, "sandbox", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
+ EX(CMD_saveas, "saveas", ex_write,
+*** ../vim-7.3.443/src/testdir/test31.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test31.in 2012-02-12 23:57:42.000000000 +0100
+***************
+*** 63,68 ****
+--- 63,74 ----
+ :" write "testtext 1"
+ A 3:close!
+ :w >>test.out
++ :set nohidden
++ :" test ":all!" hides changed buffer; write "testtext 2 2 2"
++ :sp Xtest4
++ GA 4:all!
++ :1wincmd w
++ :w >>test.out
+ :qa!
+ ENDTEST
+
+*** ../vim-7.3.443/src/testdir/test31.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test31.ok 2012-02-13 00:00:13.000000000 +0100
+***************
+*** 9,11 ****
+--- 9,12 ----
+ testtext 1
+ testtext 3 3 3
+ testtext 1
++ testtext 2 2 2
+*** ../vim-7.3.443/src/version.c 2012-02-12 23:23:25.000000000 +0100
+--- src/version.c 2012-02-12 23:52:47.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 444,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+50. The last girl you picked up was only a jpeg.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.445 b/source/ap/vim/patches/7.3.445
new file mode 100644
index 000000000..8d7c337be
--- /dev/null
+++ b/source/ap/vim/patches/7.3.445
@@ -0,0 +1,199 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.445
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.445 (after 7.3.443)
+Problem: Can't properly escape commands for cmd.exe.
+Solution: Default 'shellxquote' to '('. Append ')' to make '(command)'.
+ No need to use "/s" for 'shellcmdflag'.
+Files: src/misc2.c, src/option.c, src/os_win32.c
+
+
+*** ../vim-7.3.444/src/misc2.c 2012-01-20 17:15:47.000000000 +0100
+--- src/misc2.c 2012-02-16 05:34:37.000000000 +0100
+***************
+*** 3230,3236 ****
+ {
+ STRCPY(ncmd, p_sxq);
+ STRCAT(ncmd, cmd);
+! STRCAT(ncmd, p_sxq);
+ retval = mch_call_shell(ncmd, opt);
+ vim_free(ncmd);
+ }
+--- 3230,3240 ----
+ {
+ STRCPY(ncmd, p_sxq);
+ STRCAT(ncmd, cmd);
+! /* When 'shellxquote' is ( append ).
+! * When 'shellxquote' is "( append )". */
+! STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+! : STRCMP(p_sxq, "\"(") == 0 ? (char_u *)")\""
+! : p_sxq);
+ retval = mch_call_shell(ncmd, opt);
+ vim_free(ncmd);
+ }
+*** ../vim-7.3.444/src/option.c 2012-02-12 23:23:25.000000000 +0100
+--- src/option.c 2012-02-19 18:08:48.000000000 +0100
+***************
+*** 3933,3959 ****
+ * my path/to/echo" "my args to echo
+ * when executed.
+ *
+! * To avoid this, use the /s argument in addition to /c to force the
+! * stripping behavior, and also set shellxquote to automatically
+! * surround the entire command in quotes (which get stripped as
+! * noted).
+ */
+-
+- /* Set shellxquote default to add the quotes to be stripped. */
+ idx3 = findoption((char_u *)"sxq");
+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+ {
+! p_sxq = (char_u *)"\"";
+ options[idx3].def_val[VI_DEFAULT] = p_sxq;
+ }
+
+- /* Set shellcmdflag default to always strip the quotes, note the order
+- * between /s and /c is important or cmd.exe will treat the /s as part
+- * of the command to be executed. */
+ idx3 = findoption((char_u *)"shcf");
+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+ {
+! p_shcf = (char_u *)"/s /c";
+ options[idx3].def_val[VI_DEFAULT] = p_shcf;
+ }
+ }
+--- 3933,3954 ----
+ * my path/to/echo" "my args to echo
+ * when executed.
+ *
+! * To avoid this, set shellxquote to surround the command in
+! * parenthesis. This appears to make most commands work, without
+! * breaking commands that worked previously, such as
+! * '"path with spaces/cmd" "a&b"'.
+ */
+ idx3 = findoption((char_u *)"sxq");
+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+ {
+! p_sxq = (char_u *)"(";
+ options[idx3].def_val[VI_DEFAULT] = p_sxq;
+ }
+
+ idx3 = findoption((char_u *)"shcf");
+ if (idx3 >= 0 && !(options[idx3].flags & P_WAS_SET))
+ {
+! p_shcf = (char_u *)"/c";
+ options[idx3].def_val[VI_DEFAULT] = p_shcf;
+ }
+ }
+*** ../vim-7.3.444/src/os_win32.c 2011-08-27 15:10:00.000000000 +0200
+--- src/os_win32.c 2012-02-19 18:11:23.000000000 +0100
+***************
+*** 3908,3915 ****
+ newcmd = lalloc(cmdlen, TRUE);
+ if (newcmd != NULL)
+ {
+! char_u *cmdbase = (*cmd == '"' ? cmd + 1 : cmd);
+
+ if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+ {
+ STARTUPINFO si;
+--- 3908,3920 ----
+ newcmd = lalloc(cmdlen, TRUE);
+ if (newcmd != NULL)
+ {
+! char_u *cmdbase = cmd;
+
++ /* Skip a leading ", ( and "(. */
++ if (*cmdbase == '"' )
++ ++cmdbase;
++ if (*cmdbase == '(')
++ ++cmdbase;
+ if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+ {
+ STARTUPINFO si;
+***************
+*** 3953,3968 ****
+ * empty, keep the double quotes around the command.
+ * Otherwise remove the double quotes, they aren't needed
+ * here, because we don't use a shell to run the command. */
+! if (*cmd == '"' && *p_sxq == NUL)
+ {
+! newcmd[0] = '"';
+! STRCPY(newcmd + 1, cmdbase);
+! }
+! else
+! {
+! STRCPY(newcmd, cmdbase);
+! if (*cmd == '"' && *newcmd != NUL)
+! newcmd[STRLEN(newcmd) - 1] = NUL;
+ }
+
+ /*
+--- 3958,3983 ----
+ * empty, keep the double quotes around the command.
+ * Otherwise remove the double quotes, they aren't needed
+ * here, because we don't use a shell to run the command. */
+! if (cmdbase > cmd)
+ {
+! if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
+! {
+! STRCPY(newcmd, cmd);
+! }
+! else
+! {
+! char_u *p;
+!
+! STRCPY(newcmd, cmdbase);
+! /* Remove a trailing ", ) and )" if they have a match
+! * at the start of the command. */
+! p = newcmd + STRLEN(newcmd);
+! if (p > newcmd && p[-1] == '"' && *cmd == '"')
+! *--p = NUL;
+! if (p > newcmd && p[-1] == ')'
+! && (*cmd =='(' || cmd[1] == '('))
+! *--p = NUL;
+! }
+ }
+
+ /*
+***************
+*** 3970,3976 ****
+ * inherit our handles which causes unpleasant dangling swap
+ * files if we exit before the spawned process
+ */
+! if (CreateProcess (NULL, // Executable name
+ newcmd, // Command to execute
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+--- 3985,3991 ----
+ * inherit our handles which causes unpleasant dangling swap
+ * files if we exit before the spawned process
+ */
+! if (CreateProcess(NULL, // Executable name
+ newcmd, // Command to execute
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+*** ../vim-7.3.444/src/version.c 2012-02-13 00:01:38.000000000 +0100
+--- src/version.c 2012-02-19 18:01:46.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 445,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+80. At parties, you introduce your spouse as your "service provider."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.446 b/source/ap/vim/patches/7.3.446
new file mode 100644
index 000000000..59a2b254c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.446
@@ -0,0 +1,164 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.446
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.446 (after 7.3.445)
+Problem: Win32: External commands with special characters don't work.
+Solution: Add the 'shellxescape' option.
+Files: src/misc2.c, src/option.c, src/option.h, runtime/doc/options.txt
+
+
+*** ../vim-7.3.445/src/misc2.c 2012-02-19 18:19:24.000000000 +0100
+--- src/misc2.c 2012-02-20 22:05:22.000000000 +0100
+***************
+*** 3225,3235 ****
+ retval = mch_call_shell(cmd, opt);
+ else
+ {
+! ncmd = alloc((unsigned)(STRLEN(cmd) + STRLEN(p_sxq) * 2 + 1));
+ if (ncmd != NULL)
+ {
+ STRCPY(ncmd, p_sxq);
+! STRCAT(ncmd, cmd);
+ /* When 'shellxquote' is ( append ).
+ * When 'shellxquote' is "( append )". */
+ STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+--- 3225,3243 ----
+ retval = mch_call_shell(cmd, opt);
+ else
+ {
+! char_u *ecmd = cmd;
+!
+! if (*p_sxe != NUL && STRCMP(p_sxq, "(") == 0)
+! {
+! ecmd = vim_strsave_escaped_ext(cmd, p_sxe, '^', FALSE);
+! if (ecmd == NULL)
+! ecmd = cmd;
+! }
+! ncmd = alloc((unsigned)(STRLEN(ecmd) + STRLEN(p_sxq) * 2 + 1));
+ if (ncmd != NULL)
+ {
+ STRCPY(ncmd, p_sxq);
+! STRCAT(ncmd, ecmd);
+ /* When 'shellxquote' is ( append ).
+ * When 'shellxquote' is "( append )". */
+ STRCAT(ncmd, STRCMP(p_sxq, "(") == 0 ? (char_u *)")"
+***************
+*** 3240,3245 ****
+--- 3248,3255 ----
+ }
+ else
+ retval = -1;
++ if (ecmd != cmd)
++ vim_free(ecmd);
+ }
+ #ifdef FEAT_GUI
+ --hold_gui_events;
+*** ../vim-7.3.445/src/option.c 2012-02-19 18:19:24.000000000 +0100
+--- src/option.c 2012-02-20 22:01:07.000000000 +0100
+***************
+*** 2273,2278 ****
+--- 2273,2287 ----
+ (char_u *)"",
+ #endif
+ (char_u *)0L} SCRIPTID_INIT},
++ {"shellxescape", "sxe", P_STRING|P_VI_DEF|P_SECURE,
++ (char_u *)&p_sxe, PV_NONE,
++ {
++ #if defined(MSDOS) || defined(WIN16) || defined(WIN3264)
++ (char_u *)"\"&|<>()@^",
++ #else
++ (char_u *)"",
++ #endif
++ (char_u *)0L} SCRIPTID_INIT},
+ {"shiftround", "sr", P_BOOL|P_VI_DEF|P_VIM,
+ (char_u *)&p_sr, PV_NONE,
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+*** ../vim-7.3.445/src/option.h 2011-10-20 21:09:25.000000000 +0200
+--- src/option.h 2012-02-20 21:45:31.000000000 +0100
+***************
+*** 712,717 ****
+--- 712,718 ----
+ #endif
+ EXTERN char_u *p_shq; /* 'shellquote' */
+ EXTERN char_u *p_sxq; /* 'shellxquote' */
++ EXTERN char_u *p_sxe; /* 'shellxescape' */
+ EXTERN char_u *p_srr; /* 'shellredir' */
+ #ifdef AMIGA
+ EXTERN long p_st; /* 'shelltype' */
+*** ../vim-7.3.445/runtime/doc/options.txt 2012-02-12 23:23:25.000000000 +0100
+--- runtime/doc/options.txt 2012-02-20 22:09:19.000000000 +0100
+***************
+*** 6023,6030 ****
+
+ *'shellxquote'* *'sxq'*
+ 'shellxquote' 'sxq' string (default: "";
+! for Win32, when 'shell' is cmd.exe or
+! contains "sh" somewhere: "\""
+ for Unix, when using system(): "\"")
+ global
+ {not in Vi}
+--- 6042,6050 ----
+
+ *'shellxquote'* *'sxq'*
+ 'shellxquote' 'sxq' string (default: "";
+! for Win32, when 'shell' is cmd.exe: "("
+! for Win32, when 'shell' contains "sh"
+! somewhere: "\""
+ for Unix, when using system(): "\"")
+ global
+ {not in Vi}
+***************
+*** 6032,6037 ****
+--- 6052,6060 ----
+ the "!" and ":!" commands. Includes the redirection. See
+ 'shellquote' to exclude the redirection. It's probably not useful
+ to set both options.
++ When the value is '(' then ')' is appended. When the value is '"('
++ then ')"' is appended.
++ When the value is '(' then also see 'shellxescape'.
+ This is an empty string by default on most systems, but is known to be
+ useful for on Win32 version, either for cmd.exe which automatically
+ strips off the first and last quote on a command, or 3rd-party shells
+***************
+*** 6041,6046 ****
+--- 6064,6079 ----
+ This option cannot be set from a |modeline| or in the |sandbox|, for
+ security reasons.
+
++ *'shellxescape'* *'sxe'*
++ 'shellxescape' 'sxe' string (default: "";
++ for MS-DOS and MS-Windows: "\"&|<>()@^")
++ global
++ {not in Vi}
++ When 'shellxquote' is set to "(" then the characters listed in this
++ option will be escaped with a '^' character. This makes it possible
++ to execute most external commands with cmd.exe.
++
++
+ *'shiftround'* *'sr'* *'noshiftround'* *'nosr'*
+ 'shiftround' 'sr' boolean (default off)
+ global
+*** ../vim-7.3.445/src/version.c 2012-02-19 18:19:24.000000000 +0100
+--- src/version.c 2012-02-20 22:12:32.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 446,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.447 b/source/ap/vim/patches/7.3.447
new file mode 100644
index 000000000..9c0af9f4d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.447
@@ -0,0 +1,377 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.447
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.447 (after 7.3.446)
+Problem: Win32: External commands with "start" do not work.
+Solution: Unescape part of the command. (Yasuhiro Matsumoto)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.446/src/os_win32.c 2012-02-19 18:19:24.000000000 +0100
+--- src/os_win32.c 2012-02-21 20:56:51.000000000 +0100
+***************
+*** 259,264 ****
+--- 259,287 ----
+ }
+
+ /*
++ * Unescape characters in "p" that appear in "escaped".
++ */
++ static void
++ unescape_shellxquote(char_u *p, char_u *escaped)
++ {
++ int l = STRLEN(p);
++ int n;
++
++ while (*p != NUL)
++ {
++ if (*p == '^' && vim_strchr(escaped, p[1]) != NULL)
++ mch_memmove(p, p + 1, l--);
++ #ifdef FEAT_MBYTE
++ n = (*mb_ptr2len)(p);
++ #else
++ n = 1;
++ #endif
++ p += n;
++ l -= n;
++ }
++ }
++
++ /*
+ * Load library "name".
+ */
+ HINSTANCE
+***************
+*** 3559,3564 ****
+--- 3582,3588 ----
+ garray_T ga;
+ int delay = 1;
+ DWORD buffer_off = 0; /* valid bytes in buffer[] */
++ char *p = NULL;
+
+ SECURITY_ATTRIBUTES saAttr;
+
+***************
+*** 3599,3607 ****
+ if (options & SHELL_READ)
+ ga_init2(&ga, 1, BUFLEN);
+
+ /* Now, run the command */
+ CreateProcess(NULL, /* Executable name */
+! cmd, /* Command to execute */
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+
+--- 3623,3640 ----
+ if (options & SHELL_READ)
+ ga_init2(&ga, 1, BUFLEN);
+
++ if (cmd != NULL)
++ {
++ p = (char *)vim_strsave((char_u *)cmd);
++ if (p != NULL)
++ unescape_shellxquote((char_u *)p, p_sxe);
++ else
++ p = cmd;
++ }
++
+ /* Now, run the command */
+ CreateProcess(NULL, /* Executable name */
+! p, /* Command to execute */
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+
+***************
+*** 3616,3621 ****
+--- 3649,3656 ----
+ &si, /* Startup information */
+ &pi); /* Process information */
+
++ if (p != cmd)
++ vim_free(p);
+
+ /* Close our unused side of the pipes */
+ CloseHandle(g_hChildStd_IN_Rd);
+***************
+*** 3898,4018 ****
+ else
+ {
+ /* we use "command" or "cmd" to start the shell; slow but easy */
+! char_u *newcmd;
+! long_u cmdlen = (
+! #ifdef FEAT_GUI_W32
+! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+! #endif
+! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+!
+! newcmd = lalloc(cmdlen, TRUE);
+! if (newcmd != NULL)
+! {
+! char_u *cmdbase = cmd;
+!
+! /* Skip a leading ", ( and "(. */
+! if (*cmdbase == '"' )
+! ++cmdbase;
+! if (*cmdbase == '(')
+! ++cmdbase;
+! if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+! {
+! STARTUPINFO si;
+! PROCESS_INFORMATION pi;
+! DWORD flags = CREATE_NEW_CONSOLE;
+!
+! si.cb = sizeof(si);
+! si.lpReserved = NULL;
+! si.lpDesktop = NULL;
+! si.lpTitle = NULL;
+! si.dwFlags = 0;
+! si.cbReserved2 = 0;
+! si.lpReserved2 = NULL;
+!
+! cmdbase = skipwhite(cmdbase + 5);
+! if ((STRNICMP(cmdbase, "/min", 4) == 0)
+! && vim_iswhite(cmdbase[4]))
+! {
+! cmdbase = skipwhite(cmdbase + 4);
+! si.dwFlags = STARTF_USESHOWWINDOW;
+! si.wShowWindow = SW_SHOWMINNOACTIVE;
+! }
+! else if ((STRNICMP(cmdbase, "/b", 2) == 0)
+! && vim_iswhite(cmdbase[2]))
+! {
+! cmdbase = skipwhite(cmdbase + 2);
+! flags = CREATE_NO_WINDOW;
+! si.dwFlags = STARTF_USESTDHANDLES;
+! si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+! GENERIC_READ, // Access flags
+! 0, // Share flags
+! NULL, // Security att.
+! OPEN_EXISTING, // Open flags
+! FILE_ATTRIBUTE_NORMAL, // File att.
+! NULL); // Temp file
+! si.hStdOutput = si.hStdInput;
+! si.hStdError = si.hStdInput;
+! }
+
+! /* When the command is in double quotes, but 'shellxquote' is
+! * empty, keep the double quotes around the command.
+! * Otherwise remove the double quotes, they aren't needed
+! * here, because we don't use a shell to run the command. */
+! if (cmdbase > cmd)
+! {
+! if (STRNCMP(cmd, p_sxq, cmd - cmdbase) != 0)
+! {
+! STRCPY(newcmd, cmd);
+! }
+! else
+! {
+! char_u *p;
+
+! STRCPY(newcmd, cmdbase);
+! /* Remove a trailing ", ) and )" if they have a match
+! * at the start of the command. */
+! p = newcmd + STRLEN(newcmd);
+! if (p > newcmd && p[-1] == '"' && *cmd == '"')
+! *--p = NUL;
+! if (p > newcmd && p[-1] == ')'
+! && (*cmd =='(' || cmd[1] == '('))
+! *--p = NUL;
+! }
+! }
+
+! /*
+! * Now, start the command as a process, so that it doesn't
+! * inherit our handles which causes unpleasant dangling swap
+! * files if we exit before the spawned process
+! */
+! if (CreateProcess(NULL, // Executable name
+! newcmd, // Command to execute
+! NULL, // Process security attributes
+! NULL, // Thread security attributes
+! FALSE, // Inherit handles
+! flags, // Creation flags
+! NULL, // Environment
+! NULL, // Current directory
+! &si, // Startup information
+! &pi)) // Process information
+! x = 0;
+! else
+! {
+! x = -1;
+ #ifdef FEAT_GUI_W32
+! EMSG(_("E371: Command not found"));
+ #endif
+- }
+- if (si.hStdInput != NULL)
+- {
+- /* Close the handle to \\.\NUL */
+- CloseHandle(si.hStdInput);
+- }
+- /* Close the handles to the subprocess, so that it goes away */
+- CloseHandle(pi.hThread);
+- CloseHandle(pi.hProcess);
+ }
+! else
+ {
+ #if defined(FEAT_GUI_W32)
+ if (need_vimrun_warning)
+--- 3933,4048 ----
+ else
+ {
+ /* we use "command" or "cmd" to start the shell; slow but easy */
+! char_u *cmdbase = cmd;
+
+! /* Skip a leading ", ( and "(. */
+! if (*cmdbase == '"' )
+! ++cmdbase;
+! if (*cmdbase == '(')
+! ++cmdbase;
+!
+! if ((STRNICMP(cmdbase, "start", 5) == 0) && vim_iswhite(cmdbase[5]))
+! {
+! STARTUPINFO si;
+! PROCESS_INFORMATION pi;
+! DWORD flags = CREATE_NEW_CONSOLE;
+! char_u *p;
+!
+! si.cb = sizeof(si);
+! si.lpReserved = NULL;
+! si.lpDesktop = NULL;
+! si.lpTitle = NULL;
+! si.dwFlags = 0;
+! si.cbReserved2 = 0;
+! si.lpReserved2 = NULL;
+!
+! cmdbase = skipwhite(cmdbase + 5);
+! if ((STRNICMP(cmdbase, "/min", 4) == 0)
+! && vim_iswhite(cmdbase[4]))
+! {
+! cmdbase = skipwhite(cmdbase + 4);
+! si.dwFlags = STARTF_USESHOWWINDOW;
+! si.wShowWindow = SW_SHOWMINNOACTIVE;
+! }
+! else if ((STRNICMP(cmdbase, "/b", 2) == 0)
+! && vim_iswhite(cmdbase[2]))
+! {
+! cmdbase = skipwhite(cmdbase + 2);
+! flags = CREATE_NO_WINDOW;
+! si.dwFlags = STARTF_USESTDHANDLES;
+! si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+! GENERIC_READ, // Access flags
+! 0, // Share flags
+! NULL, // Security att.
+! OPEN_EXISTING, // Open flags
+! FILE_ATTRIBUTE_NORMAL, // File att.
+! NULL); // Temp file
+! si.hStdOutput = si.hStdInput;
+! si.hStdError = si.hStdInput;
+! }
+!
+! /* Remove a trailing ", ) and )" if they have a match
+! * at the start of the command. */
+! if (cmdbase > cmd)
+! {
+! p = cmdbase + STRLEN(cmdbase);
+! if (p > cmdbase && p[-1] == '"' && *cmd == '"')
+! *--p = NUL;
+! if (p > cmdbase && p[-1] == ')'
+! && (*cmd =='(' || cmd[1] == '('))
+! *--p = NUL;
+! }
+
+! /*
+! * Unescape characters in shellxescape. This is workaround for
+! * /b option. Only redirect character should be unescaped.
+! */
+! unescape_shellxquote(cmdbase,
+! (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
+
+! /*
+! * Now, start the command as a process, so that it doesn't
+! * inherit our handles which causes unpleasant dangling swap
+! * files if we exit before the spawned process
+! */
+! if (CreateProcess(NULL, // Executable name
+! cmdbase, // Command to execute
+! NULL, // Process security attributes
+! NULL, // Thread security attributes
+! FALSE, // Inherit handles
+! flags, // Creation flags
+! NULL, // Environment
+! NULL, // Current directory
+! &si, // Startup information
+! &pi)) // Process information
+! x = 0;
+! else
+! {
+! x = -1;
+ #ifdef FEAT_GUI_W32
+! EMSG(_("E371: Command not found"));
+ #endif
+ }
+! if (si.hStdInput != NULL)
+! {
+! /* Close the handle to \\.\NUL */
+! CloseHandle(si.hStdInput);
+! }
+! /* Close the handles to the subprocess, so that it goes away */
+! CloseHandle(pi.hThread);
+! CloseHandle(pi.hProcess);
+! }
+! else
+! {
+! char_u *newcmd;
+! long_u cmdlen = (
+! #ifdef FEAT_GUI_W32
+! (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+! #endif
+! STRLEN(p_sh) + STRLEN(p_shcf) + STRLEN(cmd) + 10);
+!
+! newcmd = lalloc(cmdlen, TRUE);
+! if (newcmd != NULL)
+ {
+ #if defined(FEAT_GUI_W32)
+ if (need_vimrun_warning)
+***************
+*** 4038,4045 ****
+ vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
+ p_sh, p_shcf, cmd);
+ x = mch_system((char *)newcmd, options);
+ }
+- vim_free(newcmd);
+ }
+ }
+
+--- 4068,4075 ----
+ vim_snprintf((char *)newcmd, cmdlen, "%s %s %s",
+ p_sh, p_shcf, cmd);
+ x = mch_system((char *)newcmd, options);
++ vim_free(newcmd);
+ }
+ }
+ }
+
+*** ../vim-7.3.446/src/version.c 2012-02-20 22:18:23.000000000 +0100
+--- src/version.c 2012-02-21 21:20:05.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 447,
+ /**/
+
+--
+From "know your smileys":
+ :----} You lie like Pinocchio
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.448 b/source/ap/vim/patches/7.3.448
new file mode 100644
index 000000000..91d8f26e0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.448
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.448
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.448 (after 7.3.447)
+Problem: Win32: Still a problem with "!start /b".
+Solution: Escape only '|'. (Yasuhiro Matsumoto)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.447/src/os_win32.c 2012-02-21 21:22:40.000000000 +0100
+--- src/os_win32.c 2012-02-22 13:06:55.000000000 +0100
+***************
+*** 3933,3939 ****
+ else
+ {
+ /* we use "command" or "cmd" to start the shell; slow but easy */
+! char_u *cmdbase = cmd;
+
+ /* Skip a leading ", ( and "(. */
+ if (*cmdbase == '"' )
+--- 3933,3941 ----
+ else
+ {
+ /* we use "command" or "cmd" to start the shell; slow but easy */
+! char_u *newcmd = NULL;
+! char_u *cmdbase = cmd;
+! long_u cmdlen;
+
+ /* Skip a leading ", ( and "(. */
+ if (*cmdbase == '"' )
+***************
+*** 3971,3982 ****
+ flags = CREATE_NO_WINDOW;
+ si.dwFlags = STARTF_USESTDHANDLES;
+ si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+! GENERIC_READ, // Access flags
+ 0, // Share flags
+! NULL, // Security att.
+! OPEN_EXISTING, // Open flags
+! FILE_ATTRIBUTE_NORMAL, // File att.
+! NULL); // Temp file
+ si.hStdOutput = si.hStdInput;
+ si.hStdError = si.hStdInput;
+ }
+--- 3973,3984 ----
+ flags = CREATE_NO_WINDOW;
+ si.dwFlags = STARTF_USESTDHANDLES;
+ si.hStdInput = CreateFile("\\\\.\\NUL", // File name
+! GENERIC_READ, // Access flags
+ 0, // Share flags
+! NULL, // Security att.
+! OPEN_EXISTING, // Open flags
+! FILE_ATTRIBUTE_NORMAL, // File att.
+! NULL); // Temp file
+ si.hStdOutput = si.hStdInput;
+ si.hStdError = si.hStdInput;
+ }
+***************
+*** 3993,4004 ****
+ *--p = NUL;
+ }
+
+ /*
+! * Unescape characters in shellxescape. This is workaround for
+! * /b option. Only redirect character should be unescaped.
+ */
+! unescape_shellxquote(cmdbase,
+! (flags & CREATE_NEW_CONSOLE) ? p_sxe : "<>");
+
+ /*
+ * Now, start the command as a process, so that it doesn't
+--- 3995,4030 ----
+ *--p = NUL;
+ }
+
++ newcmd = cmdbase;
++ unescape_shellxquote(cmdbase, p_sxe);
++
+ /*
+! * If creating new console, arguments are passed to the
+! * 'cmd.exe' as-is. If it's not, arguments are not treated
+! * correctly for current 'cmd.exe'. So unescape characters in
+! * shellxescape except '|' for avoiding to be treated as
+! * argument to them. Pass the arguments to sub-shell.
+ */
+! if (flags != CREATE_NEW_CONSOLE)
+! {
+! char_u *subcmd;
+! char_u *cmd_shell = default_shell();
+!
+! subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+! if (subcmd != NULL)
+! {
+! /* make "cmd.exe /c arguments" */
+! cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+! vim_free(subcmd);
+!
+! newcmd = lalloc(cmdlen, TRUE);
+! if (newcmd != NULL)
+! vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+! default_shell, subcmd);
+! else
+! newcmd = cmdbase;
+! }
+! }
+
+ /*
+ * Now, start the command as a process, so that it doesn't
+***************
+*** 4006,4012 ****
+ * files if we exit before the spawned process
+ */
+ if (CreateProcess(NULL, // Executable name
+! cmdbase, // Command to execute
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+--- 4032,4038 ----
+ * files if we exit before the spawned process
+ */
+ if (CreateProcess(NULL, // Executable name
+! newcmd, // Command to execute
+ NULL, // Process security attributes
+ NULL, // Thread security attributes
+ FALSE, // Inherit handles
+***************
+*** 4023,4028 ****
+--- 4049,4058 ----
+ EMSG(_("E371: Command not found"));
+ #endif
+ }
++
++ if (newcmd != cmdbase)
++ vim_free(newcmd);
++
+ if (si.hStdInput != NULL)
+ {
+ /* Close the handle to \\.\NUL */
+***************
+*** 4034,4041 ****
+ }
+ else
+ {
+! char_u *newcmd;
+! long_u cmdlen = (
+ #ifdef FEAT_GUI_W32
+ (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+ #endif
+--- 4064,4070 ----
+ }
+ else
+ {
+! cmdlen = (
+ #ifdef FEAT_GUI_W32
+ (allowPiping && !p_stmp ? 0 : STRLEN(vimrun_path)) +
+ #endif
+*** ../vim-7.3.447/src/version.c 2012-02-21 21:22:40.000000000 +0100
+--- src/version.c 2012-02-22 13:02:15.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 448,
+ /**/
+
+--
+From "know your smileys":
+ ~#:-( I just washed my hair, and I can't do nuthin' with it.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.449 b/source/ap/vim/patches/7.3.449
new file mode 100644
index 000000000..9b5bdea85
--- /dev/null
+++ b/source/ap/vim/patches/7.3.449
@@ -0,0 +1,455 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.449
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.449
+Problem: Crash when a BufWinLeave autocommand closes the only other window.
+ (Daniel Hunt)
+Solution: Abort closing a buffer when it becomes the only one.
+Files: src/buffer.c, src/proto/buffer.pro, src/ex_cmds.c, src/ex_getln.c,
+ src/misc2.c, src/quickfix.c, src/window.c, src/proto/window.pro
+
+
+*** ../vim-7.3.448/src/buffer.c 2012-01-20 20:44:38.000000000 +0100
+--- src/buffer.c 2012-02-22 14:50:42.000000000 +0100
+***************
+*** 64,69 ****
+--- 64,72 ----
+ static char *msg_loclist = N_("[Location List]");
+ static char *msg_qflist = N_("[Quickfix List]");
+ #endif
++ #ifdef FEAT_AUTOCMD
++ static char *e_auabort = N_("E855: Autocommands caused command to abort");
++ #endif
+
+ /*
+ * Open current buffer, that is: open the memfile and read the file into
+***************
+*** 96,102 ****
+ * There MUST be a memfile, otherwise we can't do anything
+ * If we can't create one for the current buffer, take another buffer
+ */
+! close_buffer(NULL, curbuf, 0);
+ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+ if (curbuf->b_ml.ml_mfp != NULL)
+ break;
+--- 99,105 ----
+ * There MUST be a memfile, otherwise we can't do anything
+ * If we can't create one for the current buffer, take another buffer
+ */
+! close_buffer(NULL, curbuf, 0, FALSE);
+ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next)
+ if (curbuf->b_ml.ml_mfp != NULL)
+ break;
+***************
+*** 316,327 ****
+ * get a new buffer very soon!
+ *
+ * The 'bufhidden' option can force freeing and deleting.
+ */
+ void
+! close_buffer(win, buf, action)
+ win_T *win; /* if not NULL, set b_last_cursor */
+ buf_T *buf;
+ int action;
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+--- 319,335 ----
+ * get a new buffer very soon!
+ *
+ * The 'bufhidden' option can force freeing and deleting.
++ *
++ * When "abort_if_last" is TRUE then do not close the buffer if autocommands
++ * cause there to be only one window with this buffer. e.g. when ":quit" is
++ * supposed to close the window but autocommands close all other windows.
+ */
+ void
+! close_buffer(win, buf, action, abort_if_last)
+ win_T *win; /* if not NULL, set b_last_cursor */
+ buf_T *buf;
+ int action;
++ int abort_if_last;
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+***************
+*** 371,378 ****
+ {
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! if (!buf_valid(buf)) /* autocommands may delete the buffer */
+ return;
+
+ /* When the buffer becomes hidden, but is not unloaded, trigger
+ * BufHidden */
+--- 379,390 ----
+ {
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! /* Return if autocommands deleted the buffer or made it the only one. */
+! if (!buf_valid(buf) || (abort_if_last && one_window()))
+! {
+! EMSG(_(e_auabort));
+ return;
++ }
+
+ /* When the buffer becomes hidden, but is not unloaded, trigger
+ * BufHidden */
+***************
+*** 380,387 ****
+ {
+ apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! if (!buf_valid(buf)) /* autocmds may delete the buffer */
+ return;
+ }
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+--- 392,404 ----
+ {
+ apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! /* Return if autocommands deleted the buffer or made it the only
+! * one. */
+! if (!buf_valid(buf) || (abort_if_last && one_window()))
+! {
+! EMSG(_(e_auabort));
+ return;
++ }
+ }
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+***************
+*** 775,781 ****
+ * open a new, empty buffer. */
+ swap_exists_action = SEA_NONE; /* don't want it again */
+ swap_exists_did_quit = TRUE;
+! close_buffer(curwin, curbuf, DOBUF_UNLOAD);
+ if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
+ old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
+ if (old_curbuf != NULL)
+--- 792,798 ----
+ * open a new, empty buffer. */
+ swap_exists_action = SEA_NONE; /* don't want it again */
+ swap_exists_did_quit = TRUE;
+! close_buffer(curwin, curbuf, DOBUF_UNLOAD, FALSE);
+ if (!buf_valid(old_curbuf) || old_curbuf == curbuf)
+ old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED);
+ if (old_curbuf != NULL)
+***************
+*** 1122,1128 ****
+ * if the buffer still exists.
+ */
+ if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
+! close_buffer(NULL, buf, action);
+ return retval;
+ }
+
+--- 1139,1145 ----
+ * if the buffer still exists.
+ */
+ if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0)
+! close_buffer(NULL, buf, action, FALSE);
+ return retval;
+ }
+
+***************
+*** 1146,1152 ****
+ close_windows(buf, FALSE);
+ #endif
+ if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
+! close_buffer(NULL, buf, action);
+ return OK;
+ }
+
+--- 1163,1169 ----
+ close_windows(buf, FALSE);
+ #endif
+ if (buf != curbuf && buf_valid(buf) && buf->b_nwindows <= 0)
+! close_buffer(NULL, buf, action, FALSE);
+ return OK;
+ }
+
+***************
+*** 1378,1384 ****
+ close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+ unload ? action : (action == DOBUF_GOTO
+ && !P_HID(prevbuf)
+! && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0);
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+--- 1395,1401 ----
+ close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+ unload ? action : (action == DOBUF_GOTO
+ && !P_HID(prevbuf)
+! && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+***************
+*** 2708,2714 ****
+ vim_free(ffname);
+ return FAIL;
+ }
+! close_buffer(NULL, obuf, DOBUF_WIPE); /* delete from the list */
+ }
+ sfname = vim_strsave(sfname);
+ if (ffname == NULL || sfname == NULL)
+--- 2725,2732 ----
+ vim_free(ffname);
+ return FAIL;
+ }
+! /* delete from the list */
+! close_buffer(NULL, obuf, DOBUF_WIPE, FALSE);
+ }
+ sfname = vim_strsave(sfname);
+ if (ffname == NULL || sfname == NULL)
+***************
+*** 5638,5644 ****
+ if (!aucmd) /* Don't trigger BufDelete autocommands here. */
+ block_autocmds();
+ #endif
+! close_buffer(NULL, buf, DOBUF_WIPE);
+ #ifdef FEAT_AUTOCMD
+ if (!aucmd)
+ unblock_autocmds();
+--- 5656,5662 ----
+ if (!aucmd) /* Don't trigger BufDelete autocommands here. */
+ block_autocmds();
+ #endif
+! close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
+ #ifdef FEAT_AUTOCMD
+ if (!aucmd)
+ unblock_autocmds();
+*** ../vim-7.3.448/src/proto/buffer.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/buffer.pro 2012-02-22 14:04:26.000000000 +0100
+***************
+*** 1,7 ****
+ /* buffer.c */
+ int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
+ int buf_valid __ARGS((buf_T *buf));
+! void close_buffer __ARGS((win_T *win, buf_T *buf, int action));
+ void buf_clear_file __ARGS((buf_T *buf));
+ void buf_freeall __ARGS((buf_T *buf, int flags));
+ void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
+--- 1,7 ----
+ /* buffer.c */
+ int open_buffer __ARGS((int read_stdin, exarg_T *eap, int flags));
+ int buf_valid __ARGS((buf_T *buf));
+! void close_buffer __ARGS((win_T *win, buf_T *buf, int action, int abort_if_last));
+ void buf_clear_file __ARGS((buf_T *buf));
+ void buf_freeall __ARGS((buf_T *buf, int flags));
+ void goto_buffer __ARGS((exarg_T *eap, int start, int dir, int count));
+*** ../vim-7.3.448/src/ex_cmds.c 2011-12-30 15:01:55.000000000 +0100
+--- src/ex_cmds.c 2012-02-22 14:00:32.000000000 +0100
+***************
+*** 3387,3393 ****
+ /* close the link to the current buffer */
+ u_sync(FALSE);
+ close_buffer(oldwin, curbuf,
+! (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
+
+ #ifdef FEAT_AUTOCMD
+ /* Autocommands may open a new window and leave oldwin open
+--- 3387,3393 ----
+ /* close the link to the current buffer */
+ u_sync(FALSE);
+ close_buffer(oldwin, curbuf,
+! (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD, FALSE);
+
+ #ifdef FEAT_AUTOCMD
+ /* Autocommands may open a new window and leave oldwin open
+*** ../vim-7.3.448/src/ex_getln.c 2012-02-04 22:44:27.000000000 +0100
+--- src/ex_getln.c 2012-02-22 14:01:56.000000000 +0100
+***************
+*** 6443,6449 ****
+ /* win_close() may have already wiped the buffer when 'bh' is
+ * set to 'wipe' */
+ if (buf_valid(bp))
+! close_buffer(NULL, bp, DOBUF_WIPE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+--- 6443,6449 ----
+ /* win_close() may have already wiped the buffer when 'bh' is
+ * set to 'wipe' */
+ if (buf_valid(bp))
+! close_buffer(NULL, bp, DOBUF_WIPE, FALSE);
+
+ /* Restore window sizes. */
+ win_size_restore(&winsizes);
+*** ../vim-7.3.448/src/misc2.c 2012-02-20 22:18:22.000000000 +0100
+--- src/misc2.c 2012-02-22 14:02:12.000000000 +0100
+***************
+*** 1173,1179 ****
+ for (buf = firstbuf; buf != NULL; )
+ {
+ nextbuf = buf->b_next;
+! close_buffer(NULL, buf, DOBUF_WIPE);
+ if (buf_valid(buf))
+ buf = nextbuf; /* didn't work, try next one */
+ else
+--- 1173,1179 ----
+ for (buf = firstbuf; buf != NULL; )
+ {
+ nextbuf = buf->b_next;
+! close_buffer(NULL, buf, DOBUF_WIPE, FALSE);
+ if (buf_valid(buf))
+ buf = nextbuf; /* didn't work, try next one */
+ else
+*** ../vim-7.3.448/src/quickfix.c 2012-01-20 13:39:03.000000000 +0100
+--- src/quickfix.c 2012-02-22 14:02:20.000000000 +0100
+***************
+*** 3565,3571 ****
+ buf_T *buf;
+ {
+ if (curbuf != buf) /* safety check */
+! close_buffer(NULL, buf, DOBUF_UNLOAD);
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3565,3571 ----
+ buf_T *buf;
+ {
+ if (curbuf != buf) /* safety check */
+! close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.448/src/window.c 2012-01-10 22:26:12.000000000 +0100
+--- src/window.c 2012-02-22 14:08:13.000000000 +0100
+***************
+*** 23,29 ****
+ static void win_totop __ARGS((int size, int flags));
+ static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
+ static int last_window __ARGS((void));
+- static int one_window __ARGS((void));
+ static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+ static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
+ static tabpage_T *alt_tabpage __ARGS((void));
+--- 23,28 ----
+***************
+*** 2083,2089 ****
+ * Return TRUE if there is only one window other than "aucmd_win" in the
+ * current tab page.
+ */
+! static int
+ one_window()
+ {
+ #ifdef FEAT_AUTOCMD
+--- 2082,2088 ----
+ * Return TRUE if there is only one window other than "aucmd_win" in the
+ * current tab page.
+ */
+! int
+ one_window()
+ {
+ #ifdef FEAT_AUTOCMD
+***************
+*** 2109,2115 ****
+ * Close window "win". Only works for the current tab page.
+ * If "free_buf" is TRUE related buffer may be unloaded.
+ *
+! * called by :quit, :close, :xit, :wq and findtag()
+ */
+ void
+ win_close(win, free_buf)
+--- 2108,2114 ----
+ * Close window "win". Only works for the current tab page.
+ * If "free_buf" is TRUE related buffer may be unloaded.
+ *
+! * Called by :quit, :close, :xit, :wq and findtag().
+ */
+ void
+ win_close(win, free_buf)
+***************
+*** 2222,2228 ****
+ * Close the link to the buffer.
+ */
+ if (win->w_buffer != NULL)
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+--- 2221,2227 ----
+ * Close the link to the buffer.
+ */
+ if (win->w_buffer != NULL)
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+***************
+*** 2328,2334 ****
+ int free_tp = FALSE;
+
+ /* Close the link to the buffer. */
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0);
+
+ /* Careful: Autocommands may have closed the tab page or made it the
+ * current tab page. */
+--- 2327,2333 ----
+ int free_tp = FALSE;
+
+ /* Close the link to the buffer. */
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+
+ /* Careful: Autocommands may have closed the tab page or made it the
+ * current tab page. */
+*** ../vim-7.3.448/src/proto/window.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/window.pro 2012-02-22 14:08:28.000000000 +0100
+***************
+*** 1,13 ****
+ /* window.c */
+ void do_window __ARGS((int nchar, long Prenum, int xchar));
+ int win_split __ARGS((int size, int flags));
+! int win_split_ins __ARGS((int size, int flags, win_T *newwin, int dir));
+ int win_valid __ARGS((win_T *win));
+ int win_count __ARGS((void));
+ int make_windows __ARGS((int count, int vertical));
+ void win_move_after __ARGS((win_T *win1, win_T *win2));
+ void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+ void close_windows __ARGS((buf_T *buf, int keep_curwin));
+ void win_close __ARGS((win_T *win, int free_buf));
+ void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+ void win_free_all __ARGS((void));
+--- 1,14 ----
+ /* window.c */
+ void do_window __ARGS((int nchar, long Prenum, int xchar));
+ int win_split __ARGS((int size, int flags));
+! int win_split_ins __ARGS((int size, int flags, win_T *new_wp, int dir));
+ int win_valid __ARGS((win_T *win));
+ int win_count __ARGS((void));
+ int make_windows __ARGS((int count, int vertical));
+ void win_move_after __ARGS((win_T *win1, win_T *win2));
+ void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+ void close_windows __ARGS((buf_T *buf, int keep_curwin));
++ int one_window __ARGS((void));
+ void win_close __ARGS((win_T *win, int free_buf));
+ void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+ void win_free_all __ARGS((void));
+*** ../vim-7.3.448/src/version.c 2012-02-22 13:07:02.000000000 +0100
+--- src/version.c 2012-02-22 14:55:21.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 449,
+ /**/
+
+--
+From "know your smileys":
+ :-)-O Smiling doctor with stethoscope
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.450 b/source/ap/vim/patches/7.3.450
new file mode 100644
index 000000000..7112668f4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.450
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.450
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.450 (after 7.3.448)
+Problem: Win32: Still a problem with "!start /b".
+Solution: Fix pointer use. (Yasuhiro Matsumoto)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.449/src/os_win32.c 2012-02-22 13:07:02.000000000 +0100
+--- src/os_win32.c 2012-02-22 15:29:56.000000000 +0100
+***************
+*** 4008,4028 ****
+ if (flags != CREATE_NEW_CONSOLE)
+ {
+ char_u *subcmd;
+! char_u *cmd_shell = default_shell();
+
+ subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+ if (subcmd != NULL)
+ {
+ /* make "cmd.exe /c arguments" */
+ cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+- vim_free(subcmd);
+-
+ newcmd = lalloc(cmdlen, TRUE);
+ if (newcmd != NULL)
+ vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+! default_shell, subcmd);
+ else
+ newcmd = cmdbase;
+ }
+ }
+
+--- 4008,4030 ----
+ if (flags != CREATE_NEW_CONSOLE)
+ {
+ char_u *subcmd;
+! char_u *cmd_shell = mch_getenv("COMSPEC");
+!
+! if (cmd_shell == NULL || *cmd_shell == NUL)
+! cmd_shell = default_shell();
+
+ subcmd = vim_strsave_escaped_ext(cmdbase, "|", '^', FALSE);
+ if (subcmd != NULL)
+ {
+ /* make "cmd.exe /c arguments" */
+ cmdlen = STRLEN(cmd_shell) + STRLEN(subcmd) + 5;
+ newcmd = lalloc(cmdlen, TRUE);
+ if (newcmd != NULL)
+ vim_snprintf((char *)newcmd, cmdlen, "%s /c %s",
+! cmd_shell, subcmd);
+ else
+ newcmd = cmdbase;
++ vim_free(subcmd);
+ }
+ }
+
+*** ../vim-7.3.449/src/version.c 2012-02-22 14:58:24.000000000 +0100
+--- src/version.c 2012-02-22 15:33:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 450,
+ /**/
+
+--
+You are only young once, but you can stay immature indefinitely.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.451 b/source/ap/vim/patches/7.3.451
new file mode 100644
index 000000000..25d1b0467
--- /dev/null
+++ b/source/ap/vim/patches/7.3.451
@@ -0,0 +1,363 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.451
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.451
+Problem: Tcl doesn't work on 64 bit MS-Windows.
+Solution: Make it work. (Dave Bodenstab)
+Files: src/Make_mvc.mak, src/if_tcl.c
+
+
+*** ../vim-7.3.450/src/Make_mvc.mak 2012-02-12 01:55:50.000000000 +0100
+--- src/Make_mvc.mak 2012-02-22 15:43:01.000000000 +0100
+***************
+*** 616,622 ****
+ -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
+ TCL_OBJ = $(OUTDIR)\if_tcl.obj
+ TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
+! TCL_LIB = $(TCL)\lib\tclstub$(TCL_VER).lib
+ !else
+ CFLAGS = $(CFLAGS) -DFEAT_TCL
+ TCL_OBJ = $(OUTDIR)\if_tcl.obj
+--- 616,622 ----
+ -DDYNAMIC_TCL_VER=\"$(TCL_VER_LONG)\"
+ TCL_OBJ = $(OUTDIR)\if_tcl.obj
+ TCL_INC = /I "$(TCL)\Include" /I "$(TCL)"
+! TCL_LIB = "$(TCL)\lib\tclstub$(TCL_VER).lib"
+ !else
+ CFLAGS = $(CFLAGS) -DFEAT_TCL
+ TCL_OBJ = $(OUTDIR)\if_tcl.obj
+*** ../vim-7.3.450/src/if_tcl.c 2011-07-27 14:15:41.000000000 +0200
+--- src/if_tcl.c 2012-02-22 15:47:00.000000000 +0100
+***************
+*** 79,90 ****
+ typedef struct
+ {
+ Tcl_Interp *interp;
+ int range_start, range_end;
+ int lbase;
+ char *curbuf, *curwin;
+ } tcl_info;
+
+! static tcl_info tclinfo = { NULL, 0, 0, 0, NULL, NULL };
+
+ #define VAR_RANGE1 "::vim::range(start)"
+ #define VAR_RANGE2 "::vim::range(begin)"
+--- 79,91 ----
+ typedef struct
+ {
+ Tcl_Interp *interp;
++ int exitvalue;
+ int range_start, range_end;
+ int lbase;
+ char *curbuf, *curwin;
+ } tcl_info;
+
+! static tcl_info tclinfo = { NULL, 0, 0, 0, 0, NULL, NULL };
+
+ #define VAR_RANGE1 "::vim::range(start)"
+ #define VAR_RANGE2 "::vim::range(begin)"
+***************
+*** 279,294 ****
+ ****************************************************************************/
+
+ /*
+! * Replace standard "exit" and "catch" commands.
+ *
+! * This is a design flaw in Tcl - the standard "exit" command just calls
+! * exit() and kills the application. It should return TCL_EXIT to the
+! * app, which then decides if it wants to terminate or not. In our case,
+! * we just delete the Tcl interpreter (and create a new one with the next
+! * :tcl command).
+ */
+- #define TCL_EXIT 5
+-
+ static int
+ exitcmd(dummy, interp, objc, objv)
+ ClientData dummy UNUSED;
+--- 280,298 ----
+ ****************************************************************************/
+
+ /*
+! * Replace standard "exit" command.
+ *
+! * Delete the Tcl interpreter; a new one will be created with the next
+! * :tcl command). The exit code is saved (and retrieved in tclexit()).
+! * Since Tcl's exit is never expected to return and this replacement
+! * does, then (except for a trivial case) additional Tcl commands will
+! * be run. Since the interpreter is now marked as deleted, an error
+! * will be returned -- typically "attempt to call eval in deleted
+! * interpreter". Hopefully, at this point, checks for TCL_ERROR take
+! * place and control percolates back up to Vim -- but with this new error
+! * string in the interpreter's result value. Therefore it would be
+! * useless for this routine to return the exit code via Tcl_SetResult().
+ */
+ static int
+ exitcmd(dummy, interp, objc, objv)
+ ClientData dummy UNUSED;
+***************
+*** 305,351 ****
+ break;
+ /* FALLTHROUGH */
+ case 1:
+! Tcl_SetObjResult(interp, Tcl_NewIntObj(value));
+! return TCL_EXIT;
+! default:
+! Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
+! }
+! return TCL_ERROR;
+! }
+
+! static int
+! catchcmd(dummy, interp, objc, objv)
+! ClientData dummy UNUSED;
+! Tcl_Interp *interp;
+! int objc;
+! Tcl_Obj *CONST objv[];
+! {
+! char *varname = NULL;
+! int result;
+!
+! switch (objc)
+! {
+! case 3:
+! varname = Tcl_GetStringFromObj(objv[2], NULL);
+! /* fallthrough */
+! case 2:
+! Tcl_ResetResult(interp);
+! Tcl_AllowExceptions(interp);
+! result = Tcl_EvalObj(interp, objv[1]);
+! if (result == TCL_EXIT)
+! return result;
+! if (varname)
+! {
+! if (Tcl_SetVar(interp, varname, Tcl_GetStringResult(interp), 0) == NULL)
+! {
+! Tcl_SetResult(interp, "couldn't save command result in variable", TCL_STATIC);
+! return TCL_ERROR;
+! }
+! }
+! Tcl_SetObjResult(interp, Tcl_NewIntObj(result));
+! return TCL_OK;
+ default:
+! Tcl_WrongNumArgs(interp, 1, objv, "command ?varName?");
+ }
+ return TCL_ERROR;
+ }
+--- 309,320 ----
+ break;
+ /* FALLTHROUGH */
+ case 1:
+! tclinfo.exitvalue = value;
+
+! Tcl_DeleteInterp(interp);
+! break;
+ default:
+! Tcl_WrongNumArgs(interp, 1, objv, "?returnCode?");
+ }
+ return TCL_ERROR;
+ }
+***************
+*** 372,377 ****
+--- 341,347 ----
+ /*
+ * "::vim::buffer list" - create a list of buffer commands.
+ * "::vim::buffer {N}" - create buffer command for buffer N.
++ * "::vim::buffer exists {N}" - test if buffer N exists.
+ * "::vim::buffer new" - create a new buffer (not implemented)
+ */
+ static int
+***************
+*** 1663,1669 ****
+ static Tcl_ChannelType channel_type =
+ {
+ "vimmessage", /* typeName */
+! NULL, /* version */
+ channel_close, /* closeProc */
+ channel_input, /* inputProc */
+ channel_output, /* outputProc */
+--- 1633,1639 ----
+ static Tcl_ChannelType channel_type =
+ {
+ "vimmessage", /* typeName */
+! TCL_CHANNEL_VERSION_2, /* version */
+ channel_close, /* closeProc */
+ channel_input, /* inputProc */
+ channel_output, /* outputProc */
+***************
+*** 1678,1683 ****
+--- 1648,1655 ----
+ NULL, /* flushProc */
+ NULL, /* handlerProc */
+ #endif
++ /* The following should not be necessary since TCL_CHANNEL_VERSION_2 was
++ * set above */
+ #ifdef TCL_CHANNEL_VERSION_3
+ NULL, /* wideSeekProc */
+ #endif
+***************
+*** 1741,1747 ****
+ Tcl_Interp *interp;
+ static Tcl_Channel ch1, ch2;
+
+! /* replace stdout and stderr */
+ ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
+ ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
+ Tcl_SetStdChannel(ch1, TCL_STDOUT);
+--- 1713,1721 ----
+ Tcl_Interp *interp;
+ static Tcl_Channel ch1, ch2;
+
+! /* Create replacement channels for stdout and stderr; this has to be
+! * done each time an interpreter is created since the channels are closed
+! * when the interpreter is deleted */
+ ch1 = Tcl_CreateChannel(&channel_type, "vimout", VIMOUT, TCL_WRITABLE);
+ ch2 = Tcl_CreateChannel(&channel_type, "vimerr", VIMERR, TCL_WRITABLE);
+ Tcl_SetStdChannel(ch1, TCL_STDOUT);
+***************
+*** 1761,1775 ****
+ #endif
+
+ Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
+ Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
+
+! /* replace some standard Tcl commands */
+ Tcl_DeleteCommand(interp, "exit");
+ Tcl_CreateObjCommand(interp, "exit", exitcmd,
+ (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+- Tcl_DeleteCommand(interp, "catch");
+- Tcl_CreateObjCommand(interp, "catch", catchcmd,
+- (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+
+ /* new commands, in ::vim namespace */
+ Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
+--- 1735,1752 ----
+ #endif
+
+ Tcl_SetChannelOption(interp, ch1, "-buffering", "line");
++ #ifdef WIN3264
++ Tcl_SetChannelOption(interp, ch1, "-translation", "lf");
++ #endif
+ Tcl_SetChannelOption(interp, ch2, "-buffering", "line");
++ #ifdef WIN3264
++ Tcl_SetChannelOption(interp, ch2, "-translation", "lf");
++ #endif
+
+! /* replace standard Tcl exit command */
+ Tcl_DeleteCommand(interp, "exit");
+ Tcl_CreateObjCommand(interp, "exit", exitcmd,
+ (ClientData)NULL, (Tcl_CmdDeleteProc *)NULL);
+
+ /* new commands, in ::vim namespace */
+ Tcl_CreateObjCommand(interp, "::vim::buffer", buffercmd,
+***************
+*** 1821,1826 ****
+--- 1798,1805 ----
+ tclinfo.range_end = row2tcl(eap->line2);
+ tclupdatevars();
+ }
++
++ tclinfo.exitvalue = 0;
+ return OK;
+ }
+
+***************
+*** 1884,1913 ****
+ {
+ int newerr = OK;
+
+! if (error == TCL_EXIT)
+ {
+- int retval;
+ char buf[50];
+- Tcl_Obj *robj;
+
+! robj = Tcl_GetObjResult(tclinfo.interp);
+! if (Tcl_GetIntFromObj(tclinfo.interp, robj, &retval) != TCL_OK)
+ {
+! EMSG(_("E281: TCL ERROR: exit code is not int!? Please report this to vim-dev@vim.org"));
+! newerr = FAIL;
+ }
+ else
+! {
+! sprintf(buf, _("E572: exit code %d"), retval);
+! tclerrmsg(buf);
+! if (retval == 0)
+! {
+! did_emsg = 0;
+! newerr = OK;
+! }
+! else
+! newerr = FAIL;
+! }
+
+ tcldelthisinterp();
+ }
+--- 1863,1885 ----
+ {
+ int newerr = OK;
+
+! if (Tcl_InterpDeleted(tclinfo.interp) /* True if we intercepted Tcl's exit command */
+! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
+! || Tcl_LimitExceeded(tclinfo.interp) /* True if the interpreter cannot continue */
+! #endif
+! )
+ {
+ char buf[50];
+
+! sprintf(buf, _("E572: exit code %d"), tclinfo.exitvalue);
+! tclerrmsg(buf);
+! if (tclinfo.exitvalue == 0)
+ {
+! did_emsg = 0;
+! newerr = OK;
+ }
+ else
+! newerr = FAIL;
+
+ tcldelthisinterp();
+ }
+***************
+*** 2021,2027 ****
+ Tcl_SetVar(tclinfo.interp, var_line, line, 0);
+ Tcl_AllowExceptions(tclinfo.interp);
+ err = Tcl_Eval(tclinfo.interp, script);
+! if (err != TCL_OK)
+ break;
+ line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
+ if (line)
+--- 1993,2004 ----
+ Tcl_SetVar(tclinfo.interp, var_line, line, 0);
+ Tcl_AllowExceptions(tclinfo.interp);
+ err = Tcl_Eval(tclinfo.interp, script);
+! if (err != TCL_OK
+! || Tcl_InterpDeleted(tclinfo.interp)
+! #if (TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION >= 5) || TCL_MAJOR_VERSION > 8
+! || Tcl_LimitExceeded(tclinfo.interp)
+! #endif
+! )
+ break;
+ line = (char *)Tcl_GetVar(tclinfo.interp, var_line, 0);
+ if (line)
+*** ../vim-7.3.450/src/version.c 2012-02-22 15:34:05.000000000 +0100
+--- src/version.c 2012-02-22 16:00:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 451,
+ /**/
+
+--
+Where do you want to crash today?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.452 b/source/ap/vim/patches/7.3.452
new file mode 100644
index 000000000..295b2fe89
--- /dev/null
+++ b/source/ap/vim/patches/7.3.452
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.452
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.452
+Problem: Undo broken when pasting close to the last line. (Andrey Radev)
+Solution: Use a flag to remember if the deleted included the last line.
+ (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.3.451/src/ops.c 2012-01-10 13:46:18.000000000 +0100
+--- src/ops.c 2012-02-22 17:32:40.000000000 +0100
+***************
+*** 1943,1954 ****
+--- 1943,1956 ----
+ else /* delete characters between lines */
+ {
+ pos_T curpos;
++ int delete_last_line;
+
+ /* save deleted and changed lines for undo */
+ if (u_save((linenr_T)(curwin->w_cursor.lnum - 1),
+ (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL)
+ return FAIL;
+
++ delete_last_line = (oap->end.lnum == curbuf->b_ml.ml_line_count);
+ truncate_line(TRUE); /* delete from cursor to end of line */
+
+ curpos = curwin->w_cursor; /* remember curwin->w_cursor */
+***************
+*** 1956,1962 ****
+ del_lines((long)(oap->line_count - 2), FALSE);
+
+ n = (oap->end.col + 1 - !oap->inclusive);
+! if (oap->inclusive && oap->end.lnum == curbuf->b_ml.ml_line_count
+ && n > (int)STRLEN(ml_get(oap->end.lnum)))
+ {
+ /* Special case: gH<Del> deletes the last line. */
+--- 1958,1964 ----
+ del_lines((long)(oap->line_count - 2), FALSE);
+
+ n = (oap->end.col + 1 - !oap->inclusive);
+! if (oap->inclusive && delete_last_line
+ && n > (int)STRLEN(ml_get(oap->end.lnum)))
+ {
+ /* Special case: gH<Del> deletes the last line. */
+*** ../vim-7.3.451/src/version.c 2012-02-22 16:01:53.000000000 +0100
+--- src/version.c 2012-02-22 17:37:18.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 452,
+ /**/
+
+--
+From "know your smileys":
+ =):-) Uncle Sam
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.453 b/source/ap/vim/patches/7.3.453
new file mode 100644
index 000000000..cf0f0e716
--- /dev/null
+++ b/source/ap/vim/patches/7.3.453
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.453
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.453
+Problem: Pasting in the command line is slow.
+Solution: Don't redraw if there is another character to read. (Dominique
+ Pelle)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.452/src/ex_getln.c 2012-02-22 14:58:24.000000000 +0100
+--- src/ex_getln.c 2012-02-22 17:53:32.000000000 +0100
+***************
+*** 1852,1859 ****
+ # endif
+ )
+ /* Always redraw the whole command line to fix shaping and
+! * right-left typing. Not efficient, but it works. */
+! redrawcmd();
+ #endif
+ }
+
+--- 1852,1862 ----
+ # endif
+ )
+ /* Always redraw the whole command line to fix shaping and
+! * right-left typing. Not efficient, but it works.
+! * Do it only when there are no characters left to read
+! * to avoid useless intermediate redraws. */
+! if (vpeekc() == NUL)
+! redrawcmd();
+ #endif
+ }
+
+*** ../vim-7.3.452/src/version.c 2012-02-22 17:37:55.000000000 +0100
+--- src/version.c 2012-02-22 17:56:59.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 453,
+ /**/
+
+--
+From "know your smileys":
+ <<<:-{ Worf (Never smiles anyways, so he's a bad smiley)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.454 b/source/ap/vim/patches/7.3.454
new file mode 100644
index 000000000..8658926af
--- /dev/null
+++ b/source/ap/vim/patches/7.3.454
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.454
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.454
+Problem: Re-allocating memory slows Vim down.
+Solution: Use realloc() in ga_grow(). (Dominique Pelle)
+Files: src/misc2.c
+
+
+*** ../vim-7.3.453/src/misc2.c 2012-02-22 14:58:24.000000000 +0100
+--- src/misc2.c 2012-02-22 18:07:45.000000000 +0100
+***************
+*** 2064,2087 ****
+ garray_T *gap;
+ int n;
+ {
+! size_t len;
+ char_u *pp;
+
+ if (gap->ga_maxlen - gap->ga_len < n)
+ {
+ if (n < gap->ga_growsize)
+ n = gap->ga_growsize;
+! len = gap->ga_itemsize * (gap->ga_len + n);
+! pp = alloc_clear((unsigned)len);
+ if (pp == NULL)
+ return FAIL;
+ gap->ga_maxlen = gap->ga_len + n;
+- if (gap->ga_data != NULL)
+- {
+- mch_memmove(pp, gap->ga_data,
+- (size_t)(gap->ga_itemsize * gap->ga_len));
+- vim_free(gap->ga_data);
+- }
+ gap->ga_data = pp;
+ }
+ return OK;
+--- 2064,2085 ----
+ garray_T *gap;
+ int n;
+ {
+! size_t old_len;
+! size_t new_len;
+ char_u *pp;
+
+ if (gap->ga_maxlen - gap->ga_len < n)
+ {
+ if (n < gap->ga_growsize)
+ n = gap->ga_growsize;
+! new_len = gap->ga_itemsize * (gap->ga_len + n);
+! pp = (gap->ga_data == NULL)
+! ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
+ if (pp == NULL)
+ return FAIL;
++ old_len = gap->ga_itemsize * gap->ga_maxlen;
++ vim_memset(pp + old_len, 0, new_len - old_len);
+ gap->ga_maxlen = gap->ga_len + n;
+ gap->ga_data = pp;
+ }
+ return OK;
+*** ../vim-7.3.453/src/version.c 2012-02-22 17:58:00.000000000 +0100
+--- src/version.c 2012-02-22 18:09:42.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 454,
+ /**/
+
+--
+From "know your smileys":
+ (X0||) Double hamburger with lettuce and tomato
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.455 b/source/ap/vim/patches/7.3.455
new file mode 100644
index 000000000..217b00d70
--- /dev/null
+++ b/source/ap/vim/patches/7.3.455
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.455
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.455
+Problem: Using many continuation lines can be slow.
+Solution: Adjust the reallocation size to the current length.
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.454/src/ex_cmds2.c 2012-02-11 20:40:49.000000000 +0100
+--- src/ex_cmds2.c 2012-02-22 18:24:11.000000000 +0100
+***************
+*** 3448,3454 ****
+ {
+ garray_T ga;
+
+! ga_init2(&ga, (int)sizeof(char_u), 200);
+ ga_concat(&ga, line);
+ ga_concat(&ga, p + 1);
+ for (;;)
+--- 3448,3454 ----
+ {
+ garray_T ga;
+
+! ga_init2(&ga, (int)sizeof(char_u), 400);
+ ga_concat(&ga, line);
+ ga_concat(&ga, p + 1);
+ for (;;)
+***************
+*** 3460,3465 ****
+--- 3460,3474 ----
+ p = skipwhite(sp->nextline);
+ if (*p != '\\')
+ break;
++ /* Adjust the growsize to the current length to speed up
++ * concatenating many lines. */
++ if (ga.ga_len > 400)
++ {
++ if (ga.ga_len > 8000)
++ ga.ga_growsize = 8000;
++ else
++ ga.ga_growsize = ga.ga_len;
++ }
+ ga_concat(&ga, p + 1);
+ }
+ ga_append(&ga, NUL);
+*** ../vim-7.3.454/src/version.c 2012-02-22 18:12:29.000000000 +0100
+--- src/version.c 2012-02-22 18:24:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 455,
+ /**/
+
+--
+From "know your smileys":
+ :-X My lips are sealed
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.456 b/source/ap/vim/patches/7.3.456
new file mode 100644
index 000000000..26fc2a987
--- /dev/null
+++ b/source/ap/vim/patches/7.3.456
@@ -0,0 +1,376 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.456
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.456
+Problem: ":tab drop file" has several problems, including moving the
+ current window and opening a new tab for a file that already has a
+ window.
+Solution: Refactor ":tab drop" handling. (Hirohito Higashi)
+Files: src/buffer.c, src/testdir/test62.in, src/testdir/test62.ok
+
+
+*** ../vim-7.3.455/src/buffer.c 2012-02-22 14:58:24.000000000 +0100
+--- src/buffer.c 2012-02-22 19:08:34.000000000 +0100
+***************
+*** 4405,4411 ****
+ {
+ int i;
+ win_T *wp, *wpnext;
+! char_u *opened; /* array of flags for which args are open */
+ int opened_len; /* length of opened[] */
+ int use_firstwin = FALSE; /* use first window for arglist */
+ int split_ret = OK;
+--- 4405,4416 ----
+ {
+ int i;
+ win_T *wp, *wpnext;
+! char_u *opened; /* Array of weight for which args are open:
+! * 0: not opened
+! * 1: opened in other tab
+! * 2: opened in curtab
+! * 3: opened in curtab and curwin
+! */
+ int opened_len; /* length of opened[] */
+ int use_firstwin = FALSE; /* use first window for arglist */
+ int split_ret = OK;
+***************
+*** 4414,4419 ****
+--- 4419,4426 ----
+ buf_T *buf;
+ tabpage_T *tpnext;
+ int had_tab = cmdmod.tab;
++ win_T *old_curwin, *last_curwin;
++ tabpage_T *old_curtab, *last_curtab;
+ win_T *new_curwin = NULL;
+ tabpage_T *new_curtab = NULL;
+
+***************
+*** 4430,4435 ****
+--- 4437,4451 ----
+ if (opened == NULL)
+ return;
+
++ /* Autocommands may do anything to the argument list. Make sure it's not
++ * freed while we are working here by "locking" it. We still have to
++ * watch out for its size to be changed. */
++ alist = curwin->w_alist;
++ ++alist->al_refcount;
++
++ old_curwin = curwin;
++ old_curtab = curtab;
++
+ #ifdef FEAT_GUI
+ need_mouse_correct = TRUE;
+ #endif
+***************
+*** 4451,4486 ****
+ wpnext = wp->w_next;
+ buf = wp->w_buffer;
+ if (buf->b_ffname == NULL
+! || buf->b_nwindows > 1
+ #ifdef FEAT_VERTSPLIT
+ || wp->w_width != Columns
+ #endif
+ )
+! i = ARGCOUNT;
+ else
+ {
+ /* check if the buffer in this window is in the arglist */
+! for (i = 0; i < ARGCOUNT; ++i)
+ {
+! if (ARGLIST[i].ae_fnum == buf->b_fnum
+! || fullpathcmp(alist_name(&ARGLIST[i]),
+! buf->b_ffname, TRUE) & FPC_SAME)
+ {
+! if (i < opened_len)
+ {
+! opened[i] = TRUE;
+ if (i == 0)
+ {
+ new_curwin = wp;
+ new_curtab = curtab;
+ }
+ }
+! if (wp->w_alist != curwin->w_alist)
+ {
+ /* Use the current argument list for all windows
+ * containing a file from it. */
+ alist_unlink(wp->w_alist);
+! wp->w_alist = curwin->w_alist;
+ ++wp->w_alist->al_refcount;
+ }
+ break;
+--- 4467,4517 ----
+ wpnext = wp->w_next;
+ buf = wp->w_buffer;
+ if (buf->b_ffname == NULL
+! || (!keep_tabs && buf->b_nwindows > 1)
+ #ifdef FEAT_VERTSPLIT
+ || wp->w_width != Columns
+ #endif
+ )
+! i = opened_len;
+ else
+ {
+ /* check if the buffer in this window is in the arglist */
+! for (i = 0; i < opened_len; ++i)
+ {
+! if (i < alist->al_ga.ga_len
+! && (AARGLIST(alist)[i].ae_fnum == buf->b_fnum
+! || fullpathcmp(alist_name(&AARGLIST(alist)[i]),
+! buf->b_ffname, TRUE) & FPC_SAME))
+ {
+! int weight = 1;
+!
+! if (old_curtab == curtab)
+! {
+! ++weight;
+! if (old_curwin == wp)
+! ++weight;
+! }
+!
+! if (weight > (int)opened[i])
+ {
+! opened[i] = (char_u)weight;
+ if (i == 0)
+ {
++ if (new_curwin != NULL)
++ new_curwin->w_arg_idx = opened_len;
+ new_curwin = wp;
+ new_curtab = curtab;
+ }
+ }
+! else if (keep_tabs)
+! i = opened_len;
+!
+! if (wp->w_alist != alist)
+ {
+ /* Use the current argument list for all windows
+ * containing a file from it. */
+ alist_unlink(wp->w_alist);
+! wp->w_alist = alist;
+ ++wp->w_alist->al_refcount;
+ }
+ break;
+***************
+*** 4489,4495 ****
+ }
+ wp->w_arg_idx = i;
+
+! if (i == ARGCOUNT && !keep_tabs) /* close this window */
+ {
+ if (P_HID(buf) || forceit || buf->b_nwindows > 1
+ || !bufIsChanged(buf))
+--- 4520,4526 ----
+ }
+ wp->w_arg_idx = i;
+
+! if (i == opened_len && !keep_tabs)/* close this window */
+ {
+ if (P_HID(buf) || forceit || buf->b_nwindows > 1
+ || !bufIsChanged(buf))
+***************
+*** 4511,4517 ****
+ }
+ #ifdef FEAT_WINDOWS
+ /* don't close last window */
+! if (firstwin == lastwin && first_tabpage->tp_next == NULL)
+ #endif
+ use_firstwin = TRUE;
+ #ifdef FEAT_WINDOWS
+--- 4542,4549 ----
+ }
+ #ifdef FEAT_WINDOWS
+ /* don't close last window */
+! if (firstwin == lastwin
+! && (first_tabpage->tp_next == NULL || !had_tab))
+ #endif
+ use_firstwin = TRUE;
+ #ifdef FEAT_WINDOWS
+***************
+*** 4545,4564 ****
+ * Open a window for files in the argument list that don't have one.
+ * ARGCOUNT may change while doing this, because of autocommands.
+ */
+! if (count > ARGCOUNT || count <= 0)
+! count = ARGCOUNT;
+!
+! /* Autocommands may do anything to the argument list. Make sure it's not
+! * freed while we are working here by "locking" it. We still have to
+! * watch out for its size to be changed. */
+! alist = curwin->w_alist;
+! ++alist->al_refcount;
+
+ #ifdef FEAT_AUTOCMD
+ /* Don't execute Win/Buf Enter/Leave autocommands here. */
+ ++autocmd_no_enter;
+ ++autocmd_no_leave;
+ #endif
+ win_enter(lastwin, FALSE);
+ #ifdef FEAT_WINDOWS
+ /* ":drop all" should re-use an empty window to avoid "--remote-tab"
+--- 4577,4592 ----
+ * Open a window for files in the argument list that don't have one.
+ * ARGCOUNT may change while doing this, because of autocommands.
+ */
+! if (count > opened_len || count <= 0)
+! count = opened_len;
+
+ #ifdef FEAT_AUTOCMD
+ /* Don't execute Win/Buf Enter/Leave autocommands here. */
+ ++autocmd_no_enter;
+ ++autocmd_no_leave;
+ #endif
++ last_curwin = curwin;
++ last_curtab = curtab;
+ win_enter(lastwin, FALSE);
+ #ifdef FEAT_WINDOWS
+ /* ":drop all" should re-use an empty window to avoid "--remote-tab"
+***************
+*** 4568,4578 ****
+ use_firstwin = TRUE;
+ #endif
+
+! for (i = 0; i < count && i < alist->al_ga.ga_len && !got_int; ++i)
+ {
+ if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
+ arg_had_last = TRUE;
+! if (i < opened_len && opened[i])
+ {
+ /* Move the already present window to below the current window */
+ if (curwin->w_arg_idx != i)
+--- 4596,4606 ----
+ use_firstwin = TRUE;
+ #endif
+
+! for (i = 0; i < count && i < opened_len && !got_int; ++i)
+ {
+ if (alist == &global_alist && i == global_alist.al_ga.ga_len - 1)
+ arg_had_last = TRUE;
+! if (opened[i] > 0)
+ {
+ /* Move the already present window to below the current window */
+ if (curwin->w_arg_idx != i)
+***************
+*** 4581,4587 ****
+ {
+ if (wpnext->w_arg_idx == i)
+ {
+! win_move_after(wpnext, curwin);
+ break;
+ }
+ }
+--- 4609,4621 ----
+ {
+ if (wpnext->w_arg_idx == i)
+ {
+! if (keep_tabs)
+! {
+! new_curwin = wpnext;
+! new_curtab = curtab;
+! }
+! else
+! win_move_after(wpnext, curwin);
+ break;
+ }
+ }
+***************
+*** 4636,4641 ****
+--- 4670,4683 ----
+ #ifdef FEAT_AUTOCMD
+ --autocmd_no_enter;
+ #endif
++ /* restore last referenced tabpage's curwin */
++ if (last_curtab != new_curtab)
++ {
++ if (valid_tabpage(last_curtab))
++ goto_tabpage_tp(last_curtab);
++ if (win_valid(last_curwin))
++ win_enter(last_curwin, FALSE);
++ }
+ /* to window with first arg */
+ if (valid_tabpage(new_curtab))
+ goto_tabpage_tp(new_curtab);
+*** ../vim-7.3.455/src/testdir/test62.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test62.in 2012-02-22 18:45:10.000000000 +0100
+***************
+*** 50,55 ****
+--- 50,92 ----
+ :call append(line('$'), test_status)
+ :"
+ :"
++ :" Test for ":tab drop exist-file" to keep current window.
++ :sp test1
++ :tab drop test1
++ :let test_status = 'tab drop 1: fail'
++ :if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
++ : let test_status = 'tab drop 1: pass'
++ :endif
++ :close
++ :call append(line('$'), test_status)
++ :"
++ :"
++ :" Test for ":tab drop new-file" to keep current window of tabpage 1.
++ :split
++ :tab drop newfile
++ :let test_status = 'tab drop 2: fail'
++ :if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
++ : let test_status = 'tab drop 2: pass'
++ :endif
++ :tabclose
++ :q
++ :call append(line('$'), test_status)
++ :"
++ :"
++ :" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
++ :new test1
++ :tabnew
++ :new test1
++ :tab drop test1
++ :let test_status = 'tab drop 3: fail'
++ :if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
++ : let test_status = 'tab drop 3: pass'
++ :endif
++ :tabclose
++ :q
++ :call append(line('$'), test_status)
++ :"
++ :"
+ :/^Results/,$w! test.out
+ :qa!
+ ENDTEST
+*** ../vim-7.3.455/src/testdir/test62.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test62.ok 2012-02-22 18:45:10.000000000 +0100
+***************
+*** 5,7 ****
+--- 5,10 ----
+ this is tab page 4
+ gettabvar: pass
+ settabvar: pass
++ tab drop 1: pass
++ tab drop 2: pass
++ tab drop 3: pass
+*** ../vim-7.3.455/src/version.c 2012-02-22 18:29:29.000000000 +0100
+--- src/version.c 2012-02-22 19:11:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 456,
+ /**/
+
+--
+% cat /usr/include/life.h
+void life(void);
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.457 b/source/ap/vim/patches/7.3.457
new file mode 100644
index 000000000..e60d6242d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.457
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.457
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.457
+Problem: When setting $VIMRUNTIME later the directory for fetching
+ translated messages is not adjusted.
+Solution: Put bindtextdomain() in vim_setenv().
+Files: src/misc1.c
+
+
+*** ../vim-7.3.456/src/misc1.c 2012-02-05 22:05:44.000000000 +0100
+--- src/misc1.c 2012-02-26 13:27:28.000000000 +0100
+***************
+*** 4133,4149 ****
+ {
+ vim_setenv((char_u *)"VIMRUNTIME", p);
+ didset_vimruntime = TRUE;
+- #ifdef FEAT_GETTEXT
+- {
+- char_u *buf = concat_str(p, (char_u *)"/lang");
+-
+- if (buf != NULL)
+- {
+- bindtextdomain(VIMPACKAGE, (char *)buf);
+- vim_free(buf);
+- }
+- }
+- #endif
+ }
+ else
+ {
+--- 4133,4138 ----
+***************
+*** 4221,4226 ****
+--- 4210,4231 ----
+ putenv((char *)envbuf);
+ }
+ #endif
++ #ifdef FEAT_GETTEXT
++ /*
++ * When setting $VIMRUNTIME adjust the directory to find message
++ * translations to $VIMRUNTIME/lang.
++ */
++ if (*val != NUL && STRICMP(name, "VIMRUNTIME") == 0)
++ {
++ char_u *buf = concat_str(val, (char_u *)"/lang");
++
++ if (buf != NULL)
++ {
++ bindtextdomain(VIMPACKAGE, (char *)buf);
++ vim_free(buf);
++ }
++ }
++ #endif
+ }
+
+ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
+*** ../vim-7.3.456/src/version.c 2012-02-22 19:13:00.000000000 +0100
+--- src/version.c 2012-02-29 13:47:09.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 457,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+118. You are on a first-name basis with your ISP's staff.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.458 b/source/ap/vim/patches/7.3.458
new file mode 100644
index 000000000..9bd440734
--- /dev/null
+++ b/source/ap/vim/patches/7.3.458
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.458
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.458
+Problem: Crash when calling smsg() during startup.
+Solution: Don't use 'shortmess' when it is not set yet.
+Files: src/option.c
+
+
+*** ../vim-7.3.457/src/option.c 2012-02-20 22:18:22.000000000 +0100
+--- src/option.c 2012-02-26 13:14:48.000000000 +0100
+***************
+*** 10984,10990 ****
+ shortmess(x)
+ int x;
+ {
+! return ( vim_strchr(p_shm, x) != NULL
+ || (vim_strchr(p_shm, 'a') != NULL
+ && vim_strchr((char_u *)SHM_A, x) != NULL));
+ }
+--- 10984,10991 ----
+ shortmess(x)
+ int x;
+ {
+! return p_shm != NULL &&
+! ( vim_strchr(p_shm, x) != NULL
+ || (vim_strchr(p_shm, 'a') != NULL
+ && vim_strchr((char_u *)SHM_A, x) != NULL));
+ }
+*** ../vim-7.3.457/src/version.c 2012-02-29 13:49:03.000000000 +0100
+--- src/version.c 2012-02-29 13:50:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 458,
+ /**/
+
+--
+Support your right to bare arms! Wear short sleeves!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.459 b/source/ap/vim/patches/7.3.459
new file mode 100644
index 000000000..d75a38b44
--- /dev/null
+++ b/source/ap/vim/patches/7.3.459
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.459
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.459
+Problem: Win32: Warnings for type conversion.
+Solution: Add type casts. (Mike Williams)
+Files: src/misc2.c, src/os_win32.c
+
+
+*** ../vim-7.3.458/src/misc2.c 2012-02-22 18:12:29.000000000 +0100
+--- src/misc2.c 2012-02-29 13:44:17.000000000 +0100
+***************
+*** 2074,2080 ****
+ n = gap->ga_growsize;
+ new_len = gap->ga_itemsize * (gap->ga_len + n);
+ pp = (gap->ga_data == NULL)
+! ? alloc(new_len) : vim_realloc(gap->ga_data, new_len);
+ if (pp == NULL)
+ return FAIL;
+ old_len = gap->ga_itemsize * gap->ga_maxlen;
+--- 2074,2080 ----
+ n = gap->ga_growsize;
+ new_len = gap->ga_itemsize * (gap->ga_len + n);
+ pp = (gap->ga_data == NULL)
+! ? alloc((unsigned)new_len) : vim_realloc(gap->ga_data, new_len);
+ if (pp == NULL)
+ return FAIL;
+ old_len = gap->ga_itemsize * gap->ga_maxlen;
+*** ../vim-7.3.458/src/os_win32.c 2012-02-22 15:34:05.000000000 +0100
+--- src/os_win32.c 2012-02-29 13:43:39.000000000 +0100
+***************
+*** 264,270 ****
+ static void
+ unescape_shellxquote(char_u *p, char_u *escaped)
+ {
+! int l = STRLEN(p);
+ int n;
+
+ while (*p != NUL)
+--- 264,270 ----
+ static void
+ unescape_shellxquote(char_u *p, char_u *escaped)
+ {
+! int l = (int)STRLEN(p);
+ int n;
+
+ while (*p != NUL)
+*** ../vim-7.3.458/src/version.c 2012-02-29 13:51:32.000000000 +0100
+--- src/version.c 2012-02-29 13:58:08.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 459,
+ /**/
+
+--
+"A clear conscience is usually the sign of a bad memory."
+ -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.460 b/source/ap/vim/patches/7.3.460
new file mode 100644
index 000000000..c1d7e85b3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.460
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.460
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.460
+Problem: Win32: UPX does not compress 64 bit binaries.
+Solution: Mention and add the alternative: mpress. (Dave Bodenstab)
+Files: src/INSTALLpc.txt, src/Make_ming.mak
+
+
+*** ../vim-7.3.459/src/INSTALLpc.txt 2011-07-15 13:51:57.000000000 +0200
+--- src/INSTALLpc.txt 2012-02-29 14:01:34.000000000 +0100
+***************
+*** 239,244 ****
+--- 239,250 ----
+ found at
+ http://www.upx.org/
+
++ As of 2011, UPX still does not support compressing 64-bit EXE's; if you have
++ built a 64-bit vim then an alternative to UPX is 'MPRESS'. MPRESS can be found
++ at:
++ http://www.matcode.com/mpress.htm
++
++
+ ADDITION: NLS support with MinGW
+
+ (by Eduardo F. Amatria <eferna1@platea.pntic.mec.es>)
+*** ../vim-7.3.459/src/Make_ming.mak 2011-10-12 14:11:43.000000000 +0200
+--- src/Make_ming.mak 2012-02-29 16:54:09.000000000 +0100
+***************
+*** 14,22 ****
+ # it's just run out of memory or something. Run again, and it will continue
+ # with 'xxd'.
+ #
+! # "make upx" makes *compressed* versions of the GUI and console EXEs, using the
+! # excellent UPX compressor:
+ # http://upx.sourceforge.net/
+ #
+ # Maintained by Ron Aaron <ronaharon@yahoo.com>
+ # updated 2003 Jan 20
+--- 14,24 ----
+ # it's just run out of memory or something. Run again, and it will continue
+ # with 'xxd'.
+ #
+! # "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs,
+! # using the excellent UPX compressor:
+ # http://upx.sourceforge.net/
++ # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs:
++ # http://www.matcode.com/mpress.htm
+ #
+ # Maintained by Ron Aaron <ronaharon@yahoo.com>
+ # updated 2003 Jan 20
+***************
+*** 640,645 ****
+--- 642,651 ----
+ upx gvim.exe
+ upx vim.exe
+
++ mpress: exes
++ mpress gvim.exe
++ mpress vim.exe
++
+ xxd/xxd.exe: xxd/xxd.c
+ $(MAKE) -C xxd -f Make_ming.mak CC=$(CC)
+
+*** ../vim-7.3.459/src/version.c 2012-02-29 13:58:43.000000000 +0100
+--- src/version.c 2012-02-29 16:54:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 460,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+119. You are reading a book and look for the scroll bar to get to
+ the next page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.461 b/source/ap/vim/patches/7.3.461
new file mode 100644
index 000000000..53c83c061
--- /dev/null
+++ b/source/ap/vim/patches/7.3.461
@@ -0,0 +1,243 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.461
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.461
+Problem: The InsertCharPre autocommand event is not triggered during
+ completion and when typing several characters quickly.
+Solution: Also trigger InsertCharPre during completion. Do not read ahead
+ when an InsertCharPre autocommand is defined. (Yasuhiro Matsumoto)
+Files: src/edit.c, src/fileio.c, src/proto/fileio.pro
+
+
+*** ../vim-7.3.460/src/edit.c 2012-02-04 23:34:57.000000000 +0100
+--- src/edit.c 2012-02-29 18:17:31.000000000 +0100
+***************
+*** 259,264 ****
+--- 259,267 ----
+ static void ins_try_si __ARGS((int c));
+ #endif
+ static colnr_T get_nolist_virtcol __ARGS((void));
++ #ifdef FEAT_AUTOCMD
++ static char_u *do_insert_char_pre __ARGS((int c));
++ #endif
+
+ static colnr_T Insstart_textlen; /* length of line when insert started */
+ static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */
+***************
+*** 784,790 ****
+ * completion: Add to "compl_leader". */
+ if (ins_compl_accept_char(c))
+ {
+! ins_compl_addleader(c);
+ continue;
+ }
+
+--- 787,806 ----
+ * completion: Add to "compl_leader". */
+ if (ins_compl_accept_char(c))
+ {
+! #ifdef FEAT_AUTOCMD
+! /* Trigger InsertCharPre. */
+! char_u *str = do_insert_char_pre(c);
+! char_u *p;
+!
+! if (str != NULL)
+! {
+! for (p = str; *p != NUL; mb_ptr_adv(p))
+! ins_compl_addleader(PTR2CHAR(p));
+! vim_free(str);
+! }
+! else
+! #endif
+! ins_compl_addleader(c);
+ continue;
+ }
+
+***************
+*** 1393,1426 ****
+ #ifdef FEAT_AUTOCMD
+ if (!p_paste)
+ {
+! /* Trigger the InsertCharPre event. Lock the text to avoid
+! * weird things from happening. */
+! set_vim_var_char(c);
+! ++textlock;
+! if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL,
+! FALSE, curbuf))
+! {
+! /* Get the new value of v:char. If it is more than one
+! * character insert it literally. */
+! char_u *s = get_vim_var_str(VV_CHAR);
+! if (MB_CHARLEN(s) > 1)
+ {
+! if (stop_arrow() != FAIL)
+ {
+! ins_str(s);
+! AppendToRedobuffLit(s, -1);
+ }
+! c = NUL;
+ }
+! else
+! c = PTR2CHAR(s);
+ }
+
+! set_vim_var_string(VV_CHAR, NULL, -1);
+! --textlock;
+!
+! /* If the new value is an empty string then don't insert a
+! * char. */
+ if (c == NUL)
+ break;
+ }
+--- 1409,1439 ----
+ #ifdef FEAT_AUTOCMD
+ if (!p_paste)
+ {
+! /* Trigger InsertCharPre. */
+! char_u *str = do_insert_char_pre(c);
+! char_u *p;
+!
+! if (str != NULL)
+! {
+! if (*str != NUL && stop_arrow() != FAIL)
+ {
+! /* Insert the new value of v:char literally. */
+! for (p = str; *p != NUL; mb_ptr_adv(p))
+ {
+! c = PTR2CHAR(p);
+! if (c == CAR || c == K_KENTER || c == NL)
+! ins_eol(c);
+! else
+! ins_char(c);
+ }
+! AppendToRedobuffLit(str, -1);
+ }
+! vim_free(str);
+! c = NUL;
+ }
+
+! /* If the new value is already inserted or an empty string
+! * then don't insert any character. */
+ if (c == NUL)
+ break;
+ }
+***************
+*** 5883,5888 ****
+--- 5896,5903 ----
+ * Don't do this when 'cindent' or 'indentexpr' is set, because we might
+ * need to re-indent at a ':', or any other character (but not what
+ * 'paste' is set)..
++ * Don't do this when there an InsertCharPre autocommand is defined,
++ * because we need to fire the event for every character.
+ */
+ #ifdef USE_ON_FLY_SCROLL
+ dont_scroll = FALSE; /* allow scrolling here */
+***************
+*** 5900,5905 ****
+--- 5915,5923 ----
+ #ifdef FEAT_RIGHTLEFT
+ && !p_ri
+ #endif
++ #ifdef FEAT_AUTOCMD
++ && !has_insertcharpre()
++ #endif
+ )
+ {
+ #define INPUT_BUFLEN 100
+***************
+*** 10068,10070 ****
+--- 10086,10123 ----
+ validate_virtcol();
+ return curwin->w_virtcol;
+ }
++
++ #ifdef FEAT_AUTOCMD
++ /*
++ * Handle the InsertCharPre autocommand.
++ * "c" is the character that was typed.
++ * Return a pointer to allocated memory with the replacement string.
++ * Return NULL to continue inserting "c".
++ */
++ static char_u *
++ do_insert_char_pre(c)
++ int c;
++ {
++ char_u *res;
++
++ /* Return quickly when there is nothing to do. */
++ if (!has_insertcharpre())
++ return NULL;
++
++ /* Lock the text to avoid weird things from happening. */
++ ++textlock;
++ set_vim_var_char(c); /* set v:char */
++
++ if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
++ /* Get the new value of v:char. It may be empty or more than one
++ * character. */
++ res = vim_strsave(get_vim_var_str(VV_CHAR));
++ else
++ res = NULL;
++
++ set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
++ --textlock;
++
++ return res;
++ }
++ #endif
+*** ../vim-7.3.460/src/fileio.c 2012-02-12 20:13:55.000000000 +0100
+--- src/fileio.c 2012-02-29 17:50:32.000000000 +0100
+***************
+*** 9116,9121 ****
+--- 9116,9130 ----
+ return (first_autopat[(int)EVENT_CURSORMOVEDI] != NULL);
+ }
+
++ /*
++ * Return TRUE when there is an InsertCharPre autocommand defined.
++ */
++ int
++ has_insertcharpre()
++ {
++ return (first_autopat[(int)EVENT_INSERTCHARPRE] != NULL);
++ }
++
+ static int
+ apply_autocmds_group(event, fname, fname_io, force, group, buf, eap)
+ event_T event;
+*** ../vim-7.3.460/src/proto/fileio.pro 2012-02-12 20:13:55.000000000 +0100
+--- src/proto/fileio.pro 2012-02-29 17:50:38.000000000 +0100
+***************
+*** 44,49 ****
+--- 44,50 ----
+ int trigger_cursorhold __ARGS((void));
+ int has_cursormoved __ARGS((void));
+ int has_cursormovedI __ARGS((void));
++ int has_insertcharpre __ARGS((void));
+ void block_autocmds __ARGS((void));
+ void unblock_autocmds __ARGS((void));
+ int has_autocmd __ARGS((event_T event, char_u *sfname, buf_T *buf));
+*** ../vim-7.3.460/src/version.c 2012-02-29 16:56:35.000000000 +0100
+--- src/version.c 2012-02-29 18:15:34.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 461,
+ /**/
+
+--
+"Computers in the future may weigh no more than 1.5 tons."
+ Popular Mechanics, 1949
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.462 b/source/ap/vim/patches/7.3.462
new file mode 100644
index 000000000..df0372421
--- /dev/null
+++ b/source/ap/vim/patches/7.3.462
@@ -0,0 +1,191 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.462
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.462
+Problem: When using ":loadview" folds may be closed unexpectedly.
+Solution: Take into account foldlevel. (Xavier de Gaye)
+Files: src/fold.c
+
+
+*** ../vim-7.3.461/src/fold.c 2012-01-10 22:26:12.000000000 +0100
+--- src/fold.c 2012-02-29 19:18:07.000000000 +0100
+***************
+*** 3292,3298 ****
+ /* put_folds() {{{2 */
+ #if defined(FEAT_SESSION) || defined(PROTO)
+ static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+! static int put_foldopen_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+
+ /*
+ * Write commands to "fd" to restore the manual folds in window "wp".
+--- 3292,3299 ----
+ /* put_folds() {{{2 */
+ #if defined(FEAT_SESSION) || defined(PROTO)
+ static int put_folds_recurse __ARGS((FILE *fd, garray_T *gap, linenr_T off));
+! static int put_foldopen_recurse __ARGS((FILE *fd, win_T *wp, garray_T *gap, linenr_T off));
+! static int put_fold_open_close __ARGS((FILE *fd, fold_T *fp, linenr_T off));
+
+ /*
+ * Write commands to "fd" to restore the manual folds in window "wp".
+***************
+*** 3312,3318 ****
+
+ /* If some folds are manually opened/closed, need to restore that. */
+ if (wp->w_fold_manual)
+! return put_foldopen_recurse(fd, &wp->w_folds, (linenr_T)0);
+
+ return OK;
+ }
+--- 3313,3319 ----
+
+ /* If some folds are manually opened/closed, need to restore that. */
+ if (wp->w_fold_manual)
+! return put_foldopen_recurse(fd, wp, &wp->w_folds, (linenr_T)0);
+
+ return OK;
+ }
+***************
+*** 3352,3363 ****
+ * Returns FAIL when writing failed.
+ */
+ static int
+! put_foldopen_recurse(fd, gap, off)
+ FILE *fd;
+ garray_T *gap;
+ linenr_T off;
+ {
+ int i;
+ fold_T *fp;
+
+ fp = (fold_T *)gap->ga_data;
+--- 3353,3366 ----
+ * Returns FAIL when writing failed.
+ */
+ static int
+! put_foldopen_recurse(fd, wp, gap, off)
+ FILE *fd;
++ win_T *wp;
+ garray_T *gap;
+ linenr_T off;
+ {
+ int i;
++ int level;
+ fold_T *fp;
+
+ fp = (fold_T *)gap->ga_data;
+***************
+*** 3367,3393 ****
+ {
+ if (fp->fd_nested.ga_len > 0)
+ {
+! /* open/close nested folds while this fold is open */
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+ || put_line(fd, "normal zo") == FAIL)
+ return FAIL;
+! if (put_foldopen_recurse(fd, &fp->fd_nested, off + fp->fd_top)
+ == FAIL)
+ return FAIL;
+ }
+- if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+- || put_eol(fd) == FAIL
+- || fprintf(fd, "normal z%c",
+- fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
+- || put_eol(fd) == FAIL)
+- return FAIL;
+ }
+ ++fp;
+ }
+
+ return OK;
+ }
+ #endif /* FEAT_SESSION */
+
+ /* }}}1 */
+--- 3370,3429 ----
+ {
+ if (fp->fd_nested.ga_len > 0)
+ {
+! /* open nested folds while this fold is open */
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+ || put_line(fd, "normal zo") == FAIL)
+ return FAIL;
+! if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
+! off + fp->fd_top)
+ == FAIL)
+ return FAIL;
++ /* close the parent when needed */
++ if (fp->fd_flags == FD_CLOSED)
++ {
++ if (put_fold_open_close(fd, fp, off) == FAIL)
++ return FAIL;
++ }
++ }
++ else
++ {
++ /* Open or close the leaf according to the window foldlevel.
++ * Do not close a leaf that is already closed, as it will close
++ * the parent. */
++ level = foldLevelWin(wp, off + fp->fd_top);
++ if ((fp->fd_flags == FD_CLOSED && wp->w_p_fdl >= level)
++ || (fp->fd_flags != FD_CLOSED && wp->w_p_fdl < level))
++ if (put_fold_open_close(fd, fp, off) == FAIL)
++ return FAIL;
+ }
+ }
+ ++fp;
+ }
+
+ return OK;
+ }
++
++ /* put_fold_open_close() {{{2 */
++ /*
++ * Write the open or close command to "fd".
++ * Returns FAIL when writing failed.
++ */
++ static int
++ put_fold_open_close(fd, fp, off)
++ FILE *fd;
++ fold_T *fp;
++ linenr_T off;
++ {
++ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
++ || put_eol(fd) == FAIL
++ || fprintf(fd, "normal z%c",
++ fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
++ || put_eol(fd) == FAIL)
++ return FAIL;
++
++ return OK;
++ }
+ #endif /* FEAT_SESSION */
+
+ /* }}}1 */
+*** ../vim-7.3.461/src/version.c 2012-02-29 18:22:03.000000000 +0100
+--- src/version.c 2012-02-29 18:40:43.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 462,
+ /**/
+
+--
+~
+~
+~
+".signature" 4 lines, 50 characters written
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.463 b/source/ap/vim/patches/7.3.463
new file mode 100644
index 000000000..1e7cb238f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.463
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.463
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.463
+Problem: When using ":s///c" the cursor is moved away from the match.
+ (Lawman)
+Solution: Don't move the cursor when do_ask is set. (Christian Brabandt)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.462/src/ex_cmds.c 2012-02-22 14:58:24.000000000 +0100
+--- src/ex_cmds.c 2012-03-07 14:54:21.000000000 +0100
+***************
+*** 5151,5160 ****
+
+ if (!global_busy)
+ {
+! if (endcolumn)
+! coladvance((colnr_T)MAXCOL);
+! else
+! beginline(BL_WHITE | BL_FIX);
+ if (!do_sub_msg(do_count) && do_ask)
+ MSG("");
+ }
+--- 5151,5163 ----
+
+ if (!global_busy)
+ {
+! if (!do_ask) /* when interactive leave cursor on the match */
+! {
+! if (endcolumn)
+! coladvance((colnr_T)MAXCOL);
+! else
+! beginline(BL_WHITE | BL_FIX);
+! }
+ if (!do_sub_msg(do_count) && do_ask)
+ MSG("");
+ }
+*** ../vim-7.3.462/src/version.c 2012-02-29 19:19:57.000000000 +0100
+--- src/version.c 2012-03-07 14:55:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 463,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+151. You find yourself engaged to someone you've never actually met,
+ except through e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.464 b/source/ap/vim/patches/7.3.464
new file mode 100644
index 000000000..fdfdfffc1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.464
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.464
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.464
+Problem: Compiler warning for sprintf.
+Solution: Put the length in a variable. (Dominique Pelle)
+Files: src/version.c
+
+
+*** ../vim-7.3.463/src/version.c 2012-03-07 14:57:50.000000000 +0100
+--- src/version.c 2012-03-07 17:58:41.000000000 +0100
+***************
+*** 2187,2198 ****
+ /* Check for 9.9x or 9.9xx, alpha/beta version */
+ if (isalpha((int)vers[3]))
+ {
+! if (isalpha((int)vers[4]))
+! sprintf((char *)vers + 5, ".%d%s", highest_patch(),
+! mediumVersion + 5);
+! else
+! sprintf((char *)vers + 4, ".%d%s", highest_patch(),
+! mediumVersion + 4);
+ }
+ else
+ sprintf((char *)vers + 3, ".%d", highest_patch());
+--- 2189,2197 ----
+ /* Check for 9.9x or 9.9xx, alpha/beta version */
+ if (isalpha((int)vers[3]))
+ {
+! int len = (isalpha((int)vers[4])) ? 5 : 4;
+! sprintf((char *)vers + len, ".%d%s", highest_patch(),
+! mediumVersion + len);
+ }
+ else
+ sprintf((char *)vers + 3, ".%d", highest_patch());
+*** ../vim-7.3.463/src/version.c 2012-03-07 14:57:50.000000000 +0100
+--- src/version.c 2012-03-07 17:58:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 464,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+152. You find yourself falling for someone you've never seen or hardly
+ know, but, boy can he/she TYPE!!!!!!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.465 b/source/ap/vim/patches/7.3.465
new file mode 100644
index 000000000..c4a857ac9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.465
@@ -0,0 +1,398 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.465
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.465
+Problem: Cannot get file name with newline from glob().
+Solution: Add argument to glob() and expand() to indicate they must return a
+ list. (Christian Brabandt)
+Files: runtime/doc/eval.txt, src/eval.c, src/ex_getln.c, src/vim.h
+
+
+*** ../vim-7.3.464/runtime/doc/eval.txt 2011-12-14 15:32:44.000000000 +0100
+--- runtime/doc/eval.txt 2012-03-07 18:49:26.000000000 +0100
+***************
+*** 1738,1744 ****
+ extend( {expr1}, {expr2} [, {expr3}])
+ List/Dict insert items of {expr2} into {expr1}
+ exp( {expr}) Float exponential of {expr}
+! expand( {expr} [, {flag}]) String expand special keywords in {expr}
+ feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
+ filereadable( {file}) Number TRUE if {file} is a readable file
+ filewritable( {file}) Number TRUE if {file} is a writable file
+--- 1746,1753 ----
+ extend( {expr1}, {expr2} [, {expr3}])
+ List/Dict insert items of {expr2} into {expr1}
+ exp( {expr}) Float exponential of {expr}
+! expand( {expr} [, {nosuf} [, {list}]])
+! any expand special keywords in {expr}
+ feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer
+ filereadable( {file}) Number TRUE if {file} is a readable file
+ filewritable( {file}) Number TRUE if {file} is a writable file
+***************
+*** 1792,1798 ****
+ getwinposx() Number X coord in pixels of GUI Vim window
+ getwinposy() Number Y coord in pixels of GUI Vim window
+ getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
+! glob( {expr} [, {flag}]) String expand file wildcards in {expr}
+ globpath( {path}, {expr} [, {flag}])
+ String do glob({expr}) for all dirs in {path}
+ has( {feature}) Number TRUE if feature {feature} supported
+--- 1801,1808 ----
+ getwinposx() Number X coord in pixels of GUI Vim window
+ getwinposy() Number Y coord in pixels of GUI Vim window
+ getwinvar( {nr}, {varname}) any variable {varname} in window {nr}
+! glob( {expr} [, {nosuf} [, {list}]])
+! any expand file wildcards in {expr}
+ globpath( {path}, {expr} [, {flag}])
+ String do glob({expr}) for all dirs in {path}
+ has( {feature}) Number TRUE if feature {feature} supported
+***************
+*** 2731,2743 ****
+ {only available when compiled with the |+float| feature}
+
+
+! expand({expr} [, {flag}]) *expand()*
+ Expand wildcards and the following special keywords in {expr}.
+! The result is a String.
+
+! When there are several matches, they are separated by <NL>
+! characters. [Note: in version 5.0 a space was used, which
+! caused problems when a file name contains a space]
+
+ If the expansion fails, the result is an empty string. A name
+ for a non-existing file is not included.
+--- 2744,2758 ----
+ {only available when compiled with the |+float| feature}
+
+
+! expand({expr} [, {nosuf} [, {list}]]) *expand()*
+ Expand wildcards and the following special keywords in {expr}.
+! 'wildignorecase' applies.
+
+! If {list} is given and it is non-zero, a List will be returned.
+! Otherwise the result is a String and when there are several
+! matches, they are separated by <NL> characters. [Note: in
+! version 5.0 a space was used, which caused problems when a
+! file name contains a space]
+
+ If the expansion fails, the result is an empty string. A name
+ for a non-existing file is not included.
+***************
+*** 2754,2759 ****
+--- 2769,2775 ----
+ <abuf> autocmd buffer number (as a String!)
+ <amatch> autocmd matched name
+ <sfile> sourced script file name
++ <slnum> sourced script file line number
+ <cword> word under the cursor
+ <cWORD> WORD under the cursor
+ <client> the {clientid} of the last received
+***************
+*** 2790,2799 ****
+ When {expr} does not start with '%', '#' or '<', it is
+ expanded like a file name is expanded on the command line.
+ 'suffixes' and 'wildignore' are used, unless the optional
+! {flag} argument is given and it is non-zero. Names for
+! non-existing files are included. The "**" item can be used to
+! search in a directory tree. For example, to find all "README"
+! files in the current directory and below: >
+ :echo expand("**/README")
+ <
+ Expand() can also be used to expand variables and environment
+--- 2806,2815 ----
+ When {expr} does not start with '%', '#' or '<', it is
+ expanded like a file name is expanded on the command line.
+ 'suffixes' and 'wildignore' are used, unless the optional
+! {nosuf} argument is given and it is non-zero.
+! Names for non-existing files are included. The "**" item can
+! be used to search in a directory tree. For example, to find
+! all "README" files in the current directory and below: >
+ :echo expand("**/README")
+ <
+ Expand() can also be used to expand variables and environment
+***************
+*** 3437,3453 ****
+ :let list_is_on = getwinvar(2, '&list')
+ :echo "myvar = " . getwinvar(1, 'myvar')
+ <
+! glob({expr} [, {flag}]) *glob()*
+ Expand the file wildcards in {expr}. See |wildcards| for the
+ use of special characters.
+! The result is a String.
+! When there are several matches, they are separated by <NL>
+! characters.
+! Unless the optional {flag} argument is given and is non-zero,
+ the 'suffixes' and 'wildignore' options apply: Names matching
+ one of the patterns in 'wildignore' will be skipped and
+ 'suffixes' affect the ordering of matches.
+! If the expansion fails, the result is an empty string.
+ A name for a non-existing file is not included.
+
+ For most systems backticks can be used to get files names from
+--- 3456,3478 ----
+ :let list_is_on = getwinvar(2, '&list')
+ :echo "myvar = " . getwinvar(1, 'myvar')
+ <
+! glob({expr} [, {nosuf} [, {list}]]) *glob()*
+ Expand the file wildcards in {expr}. See |wildcards| for the
+ use of special characters.
+!
+! Unless the optional {nosuf} argument is given and is non-zero,
+ the 'suffixes' and 'wildignore' options apply: Names matching
+ one of the patterns in 'wildignore' will be skipped and
+ 'suffixes' affect the ordering of matches.
+! 'wildignorecase' always applies.
+!
+! When {list} is present and it is non-zero the result is a List
+! with all matching files. The advantage of using a List is,
+! you also get filenames containing newlines correctly.
+! Otherwise the result is a String and when there are several
+! matches, they are separated by <NL> characters.
+!
+! If the expansion fails, the result is an empty String or List.
+ A name for a non-existing file is not included.
+
+ For most systems backticks can be used to get files names from
+*** ../vim-7.3.464/src/eval.c 2012-02-11 20:44:01.000000000 +0100
+--- src/eval.c 2012-03-07 19:08:36.000000000 +0100
+***************
+*** 7852,7858 ****
+ #ifdef FEAT_FLOAT
+ {"exp", 1, 1, f_exp},
+ #endif
+! {"expand", 1, 2, f_expand},
+ {"extend", 2, 3, f_extend},
+ {"feedkeys", 1, 2, f_feedkeys},
+ {"file_readable", 1, 1, f_filereadable}, /* obsolete */
+--- 7852,7858 ----
+ #ifdef FEAT_FLOAT
+ {"exp", 1, 1, f_exp},
+ #endif
+! {"expand", 1, 3, f_expand},
+ {"extend", 2, 3, f_extend},
+ {"feedkeys", 1, 2, f_feedkeys},
+ {"file_readable", 1, 1, f_filereadable}, /* obsolete */
+***************
+*** 7903,7909 ****
+ {"getwinposx", 0, 0, f_getwinposx},
+ {"getwinposy", 0, 0, f_getwinposy},
+ {"getwinvar", 2, 2, f_getwinvar},
+! {"glob", 1, 2, f_glob},
+ {"globpath", 2, 3, f_globpath},
+ {"has", 1, 1, f_has},
+ {"has_key", 2, 2, f_has_key},
+--- 7903,7909 ----
+ {"getwinposx", 0, 0, f_getwinposx},
+ {"getwinposy", 0, 0, f_getwinposy},
+ {"getwinvar", 2, 2, f_getwinvar},
+! {"glob", 1, 3, f_glob},
+ {"globpath", 2, 3, f_globpath},
+ {"has", 1, 1, f_has},
+ {"has_key", 2, 2, f_has_key},
+***************
+*** 10019,10032 ****
+ int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+ expand_T xpc;
+ int error = FALSE;
+
+ rettv->v_type = VAR_STRING;
+ s = get_tv_string(&argvars[0]);
+ if (*s == '%' || *s == '#' || *s == '<')
+ {
+ ++emsg_off;
+! rettv->vval.v_string = eval_vars(s, s, &len, NULL, &errormsg, NULL);
+ --emsg_off;
+ }
+ else
+ {
+--- 10019,10051 ----
+ int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
+ expand_T xpc;
+ int error = FALSE;
++ char_u *result;
+
+ rettv->v_type = VAR_STRING;
++ if (argvars[1].v_type != VAR_UNKNOWN
++ && argvars[2].v_type != VAR_UNKNOWN
++ && get_tv_number_chk(&argvars[2], &error)
++ && !error)
++ {
++ rettv->v_type = VAR_LIST;
++ rettv->vval.v_list = NULL;
++ }
++
+ s = get_tv_string(&argvars[0]);
+ if (*s == '%' || *s == '#' || *s == '<')
+ {
+ ++emsg_off;
+! result = eval_vars(s, s, &len, NULL, &errormsg, NULL);
+ --emsg_off;
++ if (rettv->v_type == VAR_LIST)
++ {
++ if (rettv_list_alloc(rettv) != FAIL && result != NULL)
++ list_append_string(rettv->vval.v_list, result, -1);
++ else
++ vim_free(result);
++ }
++ else
++ rettv->vval.v_string = result;
+ }
+ else
+ {
+***************
+*** 10041,10047 ****
+ xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
+! rettv->vval.v_string = ExpandOne(&xpc, s, NULL, options, WILD_ALL);
+ }
+ else
+ rettv->vval.v_string = NULL;
+--- 10060,10077 ----
+ xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
+! if (rettv->v_type == VAR_STRING)
+! rettv->vval.v_string = ExpandOne(&xpc, s, NULL,
+! options, WILD_ALL);
+! else if (rettv_list_alloc(rettv) != FAIL)
+! {
+! int i;
+!
+! ExpandOne(&xpc, s, NULL, options, WILD_ALL_KEEP);
+! for (i = 0; i < xpc.xp_numfiles; i++)
+! list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
+! ExpandCleanup(&xpc);
+! }
+ }
+ else
+ rettv->vval.v_string = NULL;
+***************
+*** 11833,11851 ****
+ int error = FALSE;
+
+ /* When the optional second argument is non-zero, don't remove matches
+! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+! if (argvars[1].v_type != VAR_UNKNOWN
+! && get_tv_number_chk(&argvars[1], &error))
+! options |= WILD_KEEP_ALL;
+ rettv->v_type = VAR_STRING;
+ if (!error)
+ {
+ ExpandInit(&xpc);
+ xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
+! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
+ NULL, options, WILD_ALL);
+ }
+ else
+ rettv->vval.v_string = NULL;
+--- 11863,11901 ----
+ int error = FALSE;
+
+ /* When the optional second argument is non-zero, don't remove matches
+! * for 'wildignore' and don't put matches for 'suffixes' at the end. */
+ rettv->v_type = VAR_STRING;
++ if (argvars[1].v_type != VAR_UNKNOWN)
++ {
++ if (get_tv_number_chk(&argvars[1], &error))
++ options |= WILD_KEEP_ALL;
++ if (argvars[2].v_type != VAR_UNKNOWN
++ && get_tv_number_chk(&argvars[2], &error))
++ {
++ rettv->v_type = VAR_LIST;
++ rettv->vval.v_list = NULL;
++ }
++ }
+ if (!error)
+ {
+ ExpandInit(&xpc);
+ xpc.xp_context = EXPAND_FILES;
+ if (p_wic)
+ options += WILD_ICASE;
+! if (rettv->v_type == VAR_STRING)
+! rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
+ NULL, options, WILD_ALL);
++ else if (rettv_list_alloc(rettv) != FAIL)
++ {
++ int i;
++
++ ExpandOne(&xpc, get_tv_string(&argvars[0]),
++ NULL, options, WILD_ALL_KEEP);
++ for (i = 0; i < xpc.xp_numfiles; i++)
++ list_append_string(rettv->vval.v_list, xpc.xp_files[i], -1);
++
++ ExpandCleanup(&xpc);
++ }
+ }
+ else
+ rettv->vval.v_string = NULL;
+*** ../vim-7.3.464/src/ex_getln.c 2012-02-22 17:58:00.000000000 +0100
+--- src/ex_getln.c 2012-03-07 19:07:01.000000000 +0100
+***************
+*** 3461,3466 ****
+--- 3461,3467 ----
+ * mode = WILD_PREV: use previous match in multiple match, wrap to first
+ * mode = WILD_ALL: return all matches concatenated
+ * mode = WILD_LONGEST: return longest matched part
++ * mode = WILD_ALL_KEEP: get all matches, keep matches
+ *
+ * options = WILD_LIST_NOTFOUND: list entries without a match
+ * options = WILD_HOME_REPLACE: do home_replace() for buffer names
+***************
+*** 3584,3590 ****
+ /*
+ * Check for matching suffixes in file names.
+ */
+! if (mode != WILD_ALL && mode != WILD_LONGEST)
+ {
+ if (xp->xp_numfiles)
+ non_suf_match = xp->xp_numfiles;
+--- 3585,3592 ----
+ /*
+ * Check for matching suffixes in file names.
+ */
+! if (mode != WILD_ALL && mode != WILD_ALL_KEEP
+! && mode != WILD_LONGEST)
+ {
+ if (xp->xp_numfiles)
+ non_suf_match = xp->xp_numfiles;
+*** ../vim-7.3.464/src/vim.h 2011-07-27 17:31:42.000000000 +0200
+--- src/vim.h 2012-03-07 19:03:43.000000000 +0100
+***************
+*** 794,799 ****
+--- 794,800 ----
+ #define WILD_PREV 5
+ #define WILD_ALL 6
+ #define WILD_LONGEST 7
++ #define WILD_ALL_KEEP 8
+
+ #define WILD_LIST_NOTFOUND 1
+ #define WILD_HOME_REPLACE 2
+*** ../vim-7.3.464/src/version.c 2012-03-07 18:04:00.000000000 +0100
+--- src/version.c 2012-03-07 19:14:39.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 465,
+ /**/
+
+--
+Although the scythe isn't pre-eminent among the weapons of war, anyone who
+has been on the wrong end of, say, a peasants' revolt will know that in
+skilled hands it is fearsome.
+ -- (Terry Pratchett, Mort)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.466 b/source/ap/vim/patches/7.3.466
new file mode 100644
index 000000000..0dc42934d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.466
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.466
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.466
+Problem: Get ml_get error when ":behave mswin" was used and selecting
+ several lines. (A. Sinan Unur)
+Solution: Adjust the end of the operation. (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.3.465/src/ops.c 2012-02-22 17:37:55.000000000 +0100
+--- src/ops.c 2012-03-07 19:27:08.000000000 +0100
+***************
+*** 1957,1962 ****
+--- 1957,1965 ----
+ ++curwin->w_cursor.lnum;
+ del_lines((long)(oap->line_count - 2), FALSE);
+
++ if (delete_last_line)
++ oap->end.lnum = curbuf->b_ml.ml_line_count;
++
+ n = (oap->end.col + 1 - !oap->inclusive);
+ if (oap->inclusive && delete_last_line
+ && n > (int)STRLEN(ml_get(oap->end.lnum)))
+*** ../vim-7.3.465/src/version.c 2012-03-07 19:16:49.000000000 +0100
+--- src/version.c 2012-03-07 19:29:52.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 466,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+153. You find yourself staring at your "inbox" waiting for new e-mail
+ to arrive.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.467 b/source/ap/vim/patches/7.3.467
new file mode 100644
index 000000000..7764217c7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.467
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.467
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.467
+Problem: Cursor positioned wrong at the command line when regaining focus
+ and using some input method.
+Solution: Do not position the cursor in command line mode.
+Files: src/mbyte.c
+
+
+*** ../vim-7.3.466/src/mbyte.c 2011-12-08 15:09:46.000000000 +0100
+--- src/mbyte.c 2012-03-07 19:36:44.000000000 +0100
+***************
+*** 4504,4510 ****
+ vgetc_busy = TRUE;
+ showmode();
+ vgetc_busy = old_vgetc_busy;
+! setcursor();
+ out_flush();
+ }
+
+--- 4504,4511 ----
+ vgetc_busy = TRUE;
+ showmode();
+ vgetc_busy = old_vgetc_busy;
+! if ((State & NORMAL) || (State & INSERT))
+! setcursor();
+ out_flush();
+ }
+
+*** ../vim-7.3.466/src/version.c 2012-03-07 19:30:32.000000000 +0100
+--- src/version.c 2012-03-07 19:38:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 467,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+154. You fondle your mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.468 b/source/ap/vim/patches/7.3.468
new file mode 100644
index 000000000..e078f9eae
--- /dev/null
+++ b/source/ap/vim/patches/7.3.468
@@ -0,0 +1,144 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.468
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.468
+Problem: For some compilers the error file is not easily readable.
+Solution: Use QuickFixCmdPre for more commands. (Marcin Szamotulski)
+Files: runtime/doc/autocmd.txt, src/quickfix.c
+
+
+*** ../vim-7.3.467/runtime/doc/autocmd.txt 2012-02-12 20:13:55.000000000 +0100
+--- runtime/doc/autocmd.txt 2012-03-07 20:07:23.000000000 +0100
+***************
+*** 695,701 ****
+ QuickFixCmdPre Before a quickfix command is run (|:make|,
+ |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
+ |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
+! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|).
+ The pattern is matched against the command
+ being run. When |:grep| is used but 'grepprg'
+ is set to "internal" it still matches "grep".
+--- 699,708 ----
+ QuickFixCmdPre Before a quickfix command is run (|:make|,
+ |:lmake|, |:grep|, |:lgrep|, |:grepadd|,
+ |:lgrepadd|, |:vimgrep|, |:lvimgrep|,
+! |:vimgrepadd|, |:lvimgrepadd|, |:cscope|,
+! |:cfile|, |:cgetfile|, |:caddfile|, |:lfile|,
+! |:lgetfile|, |:laddfile|, |:helpgrep|,
+! |:lhelpgrep|).
+ The pattern is matched against the command
+ being run. When |:grep| is used but 'grepprg'
+ is set to "internal" it still matches "grep".
+***************
+*** 706,712 ****
+ *QuickFixCmdPost*
+ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
+ command is run, before jumping to the first
+! location. See |QuickFixCmdPost-example|.
+ *RemoteReply*
+ RemoteReply When a reply from a Vim that functions as
+ server was received |server2client()|. The
+--- 713,722 ----
+ *QuickFixCmdPost*
+ QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
+ command is run, before jumping to the first
+! location. For |:cfile| and |:lfile| commands
+! it is run after error file is read and before
+! moving to the first error.
+! See |QuickFixCmdPost-example|.
+ *RemoteReply*
+ RemoteReply When a reply from a Vim that functions as
+ server was received |server2client()|. The
+*** ../vim-7.3.467/src/quickfix.c 2012-02-22 14:58:24.000000000 +0100
+--- src/quickfix.c 2012-03-07 20:10:07.000000000 +0100
+***************
+*** 2995,3005 ****
+ {
+ win_T *wp = NULL;
+ qf_info_T *qi = &ql_info;
+
+ if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
+! || eap->cmdidx == CMD_laddfile)
+ wp = curwin;
+
+ #ifdef FEAT_BROWSE
+ if (cmdmod.browse)
+ {
+--- 2995,3022 ----
+ {
+ win_T *wp = NULL;
+ qf_info_T *qi = &ql_info;
++ #ifdef FEAT_AUTOCMD
++ char_u *au_name = NULL;
++ #endif
+
+ if (eap->cmdidx == CMD_lfile || eap->cmdidx == CMD_lgetfile
+! || eap->cmdidx == CMD_laddfile)
+ wp = curwin;
+
++ #ifdef FEAT_AUTOCMD
++ switch (eap->cmdidx)
++ {
++ case CMD_cfile: au_name = (char_u *)"cfile"; break;
++ case CMD_cgetfile: au_name = (char_u *)"cgetfile"; break;
++ case CMD_caddfile: au_name = (char_u *)"caddfile"; break;
++ case CMD_lfile: au_name = (char_u *)"lfile"; break;
++ case CMD_lgetfile: au_name = (char_u *)"lgetfile"; break;
++ case CMD_laddfile: au_name = (char_u *)"laddfile"; break;
++ default: break;
++ }
++ if (au_name != NULL)
++ apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name, NULL, FALSE, curbuf);
++ #endif
+ #ifdef FEAT_BROWSE
+ if (cmdmod.browse)
+ {
+***************
+*** 3031,3040 ****
+--- 3048,3069 ----
+ && (eap->cmdidx == CMD_cfile
+ || eap->cmdidx == CMD_lfile))
+ {
++ #ifdef FEAT_AUTOCMD
++ if (au_name != NULL)
++ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
++ #endif
+ if (wp != NULL)
+ qi = GET_LOC_LIST(wp);
+ qf_jump(qi, 0, 0, eap->forceit); /* display first error */
+ }
++
++ else
++ {
++ #ifdef FEAT_AUTOCMD
++ if (au_name != NULL)
++ apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name, NULL, FALSE, curbuf);
++ #endif
++ }
+ }
+
+ /*
+*** ../vim-7.3.467/src/version.c 2012-03-07 19:38:52.000000000 +0100
+--- src/version.c 2012-03-07 20:11:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 468,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+155. You forget to eat because you're too busy surfing the net.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.469 b/source/ap/vim/patches/7.3.469
new file mode 100644
index 000000000..77ca4a05e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.469
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.469
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.469
+Problem: Compiler warning for unused argument without some features.
+Solution: Add UNUSED.
+Files: src/buffer.c
+
+
+*** ../vim-7.3.468/src/buffer.c 2012-02-22 19:13:00.000000000 +0100
+--- src/buffer.c 2012-03-07 22:30:56.000000000 +0100
+***************
+*** 329,335 ****
+ win_T *win; /* if not NULL, set b_last_cursor */
+ buf_T *buf;
+ int action;
+! int abort_if_last;
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+--- 329,335 ----
+ win_T *win; /* if not NULL, set b_last_cursor */
+ buf_T *buf;
+ int action;
+! int abort_if_last UNUSED;
+ {
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf;
+*** ../vim-7.3.468/src/version.c 2012-03-07 20:13:44.000000000 +0100
+--- src/version.c 2012-03-07 22:51:54.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 469,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+157. You fum through a magazine, you first check to see if it has a web
+ address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.470 b/source/ap/vim/patches/7.3.470
new file mode 100644
index 000000000..80bec1564
--- /dev/null
+++ b/source/ap/vim/patches/7.3.470
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.470
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.470
+Problem: Test 62 fails when compiled without GUI and X11.
+Solution: Don't test :drop when it is not supported.
+Files: src/testdir/test62.in
+
+
+*** ../vim-7.3.469/src/testdir/test62.in 2012-02-22 19:13:00.000000000 +0100
+--- src/testdir/test62.in 2012-03-07 22:46:17.000000000 +0100
+***************
+*** 49,55 ****
+ :tabclose
+ :call append(line('$'), test_status)
+ :"
+! :"
+ :" Test for ":tab drop exist-file" to keep current window.
+ :sp test1
+ :tab drop test1
+--- 49,55 ----
+ :tabclose
+ :call append(line('$'), test_status)
+ :"
+! :if has('gui') || has('clientserver')
+ :" Test for ":tab drop exist-file" to keep current window.
+ :sp test1
+ :tab drop test1
+***************
+*** 85,90 ****
+--- 85,96 ----
+ :tabclose
+ :q
+ :call append(line('$'), test_status)
++ :else
++ :" :drop not supported
++ :call append(line('$'), 'tab drop 1: pass')
++ :call append(line('$'), 'tab drop 2: pass')
++ :call append(line('$'), 'tab drop 3: pass')
++ :endif
+ :"
+ :"
+ :/^Results/,$w! test.out
+*** ../vim-7.3.469/src/version.c 2012-03-07 22:52:30.000000000 +0100
+--- src/version.c 2012-03-07 22:53:40.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 470,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+158. You get a tuner card so you can watch TV while surfing.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.471 b/source/ap/vim/patches/7.3.471
new file mode 100644
index 000000000..be814324f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.471
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.471
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.471
+Problem: Can't abort listing placed signs.
+Solution: Check "got_int". (Christian Brabandt)
+Files: src/buffer.c, src/ex_cmds.c
+
+
+*** ../vim-7.3.470/src/buffer.c 2012-03-07 22:52:30.000000000 +0100
+--- src/buffer.c 2012-03-16 13:54:48.000000000 +0100
+***************
+*** 5557,5563 ****
+ buf = firstbuf;
+ else
+ buf = rbuf;
+! while (buf != NULL)
+ {
+ if (buf->b_signlist != NULL)
+ {
+--- 5557,5563 ----
+ buf = firstbuf;
+ else
+ buf = rbuf;
+! while (buf != NULL && !got_int)
+ {
+ if (buf->b_signlist != NULL)
+ {
+***************
+*** 5565,5571 ****
+ MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
+ msg_putchar('\n');
+ }
+! for (p = buf->b_signlist; p != NULL; p = p->next)
+ {
+ vim_snprintf(lbuf, BUFSIZ, _(" line=%ld id=%d name=%s"),
+ (long)p->lnum, p->id, sign_typenr2name(p->typenr));
+--- 5565,5571 ----
+ MSG_PUTS_ATTR(lbuf, hl_attr(HLF_D));
+ msg_putchar('\n');
+ }
+! for (p = buf->b_signlist; p != NULL && !got_int; p = p->next)
+ {
+ vim_snprintf(lbuf, BUFSIZ, _(" line=%ld id=%d name=%s"),
+ (long)p->lnum, p->id, sign_typenr2name(p->typenr));
+*** ../vim-7.3.470/src/ex_cmds.c 2012-03-07 14:57:50.000000000 +0100
+--- src/ex_cmds.c 2012-03-16 13:58:50.000000000 +0100
+***************
+*** 6729,6735 ****
+ if (idx == SIGNCMD_LIST && *arg == NUL)
+ {
+ /* ":sign list": list all defined signs */
+! for (sp = first_sign; sp != NULL; sp = sp->sn_next)
+ sign_list_defined(sp);
+ }
+ else if (*arg == NUL)
+--- 6729,6735 ----
+ if (idx == SIGNCMD_LIST && *arg == NUL)
+ {
+ /* ":sign list": list all defined signs */
+! for (sp = first_sign; sp != NULL && !got_int; sp = sp->sn_next)
+ sign_list_defined(sp);
+ }
+ else if (*arg == NUL)
+*** ../vim-7.3.470/src/version.c 2012-03-07 22:55:17.000000000 +0100
+--- src/version.c 2012-03-16 13:55:28.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 471,
+ /**/
+
+--
+Some of the well know MS-Windows errors:
+ EMEMORY Memory error caused by..., eh...
+ ELICENSE Your license has expired, give us more money!
+ EMOUSE Mouse moved, reinstall Windows
+ EILLEGAL Illegal error, you are not allowed to see this
+ EVIRUS Undetectable virus found
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.472 b/source/ap/vim/patches/7.3.472
new file mode 100644
index 000000000..217b2fc99
--- /dev/null
+++ b/source/ap/vim/patches/7.3.472
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.472
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.472
+Problem: Crash when using ":redraw" in a BufEnter autocommand and
+ switching to another tab. (驼峰)
+Solution: Move triggering the the autocommands to after correcting the
+ option values. Also check the row value to be out of bounds.
+ (Christian Brabandt, Sergey Khorev)
+Files: src/screen.c, src/window.c
+
+
+*** ../vim-7.3.471/src/screen.c 2012-02-04 23:34:57.000000000 +0100
+--- src/screen.c 2012-03-16 18:59:20.000000000 +0100
+***************
+*** 5371,5376 ****
+--- 5371,5382 ----
+ # define CHAR_CELLS 1
+ #endif
+
++ /* Check for illegal row and col, just in case. */
++ if (row >= Rows)
++ row = Rows - 1;
++ if (endcol > Columns)
++ endcol = Columns;
++
+ # ifdef FEAT_CLIPBOARD
+ clip_may_clear_selection(row, row);
+ # endif
+*** ../vim-7.3.471/src/window.c 2012-02-22 14:58:24.000000000 +0100
+--- src/window.c 2012-03-16 18:43:01.000000000 +0100
+***************
+*** 3676,3688 ****
+ win_enter_ext(tp->tp_curwin, FALSE, TRUE);
+ prevwin = next_prevwin;
+
+- #ifdef FEAT_AUTOCMD
+- apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
+-
+- if (old_curbuf != curbuf)
+- apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
+- #endif
+-
+ last_status(FALSE); /* status line may appear or disappear */
+ (void)win_comp_pos(); /* recompute w_winrow for all windows */
+ must_redraw = CLEAR; /* need to redraw everything */
+--- 3676,3681 ----
+***************
+*** 3712,3717 ****
+--- 3705,3718 ----
+ gui_may_update_scrollbars();
+ #endif
+
++ #ifdef FEAT_AUTOCMD
++ /* Apply autocommands after updating the display, when 'rows' and
++ * 'columns' have been set correctly. */
++ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
++ if (old_curbuf != curbuf)
++ apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
++ #endif
++
+ redraw_all_later(CLEAR);
+ }
+
+*** ../vim-7.3.471/src/version.c 2012-03-16 14:32:10.000000000 +0100
+--- src/version.c 2012-03-16 19:02:53.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 472,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+200. You really believe in the concept of a "paperless" office.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.473 b/source/ap/vim/patches/7.3.473
new file mode 100644
index 000000000..571f85dac
--- /dev/null
+++ b/source/ap/vim/patches/7.3.473
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.473
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.473
+Problem: 'cursorbind' does not work correctly in combination with
+ 'virtualedit' set to "all".
+Solution: Copy coladd. (Gary Johnson)
+Files: src/move.c
+
+
+*** ../vim-7.3.472/src/move.c 2012-02-04 23:34:57.000000000 +0100
+--- src/move.c 2012-03-16 19:20:57.000000000 +0100
+***************
+*** 2843,2849 ****
+ do_check_cursorbind()
+ {
+ linenr_T line = curwin->w_cursor.lnum;
+! colnr_T col = curwin->w_cursor.col;
+ win_T *old_curwin = curwin;
+ buf_T *old_curbuf = curbuf;
+ int restart_edit_save;
+--- 2843,2852 ----
+ do_check_cursorbind()
+ {
+ linenr_T line = curwin->w_cursor.lnum;
+! colnr_T col = curwin->w_cursor.col;
+! # ifdef FEAT_VIRTUALEDIT
+! colnr_T coladd = curwin->w_cursor.coladd;
+! # endif
+ win_T *old_curwin = curwin;
+ buf_T *old_curbuf = curbuf;
+ int restart_edit_save;
+***************
+*** 2875,2880 ****
+--- 2878,2886 ----
+ # endif
+ curwin->w_cursor.lnum = line;
+ curwin->w_cursor.col = col;
++ # ifdef FEAT_VIRTUALEDIT
++ curwin->w_cursor.coladd = coladd;
++ # endif
+
+ /* Make sure the cursor is in a valid position. Temporarily set
+ * "restart_edit" to allow the cursor to be beyond the EOL. */
+*** ../vim-7.3.472/src/version.c 2012-03-16 19:07:54.000000000 +0100
+--- src/version.c 2012-03-16 19:24:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 473,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+201. When somebody asks you where you are, you tell them in which chat room.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.474 b/source/ap/vim/patches/7.3.474
new file mode 100644
index 000000000..dc6b1d6eb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.474
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.474
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.474
+Problem: Perl build with gcc 4 fails.
+Solution: Remove XS() statements. (Yasuhiro Matsumoto)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.3.473/src/if_perl.xs 2012-02-12 00:31:47.000000000 +0100
+--- src/if_perl.xs 2012-03-16 19:33:23.000000000 +0100
+***************
+*** 913,936 ****
+ win_T *win_find_nr(int n) { return curwin; }
+ #endif
+
+- XS(XS_VIM_Msg);
+- XS(XS_VIM_SetOption);
+- XS(XS_VIM_DoCommand);
+- XS(XS_VIM_Eval);
+- XS(XS_VIM_Buffers);
+- XS(XS_VIM_Windows);
+- XS(XS_VIWIN_DESTROY);
+- XS(XS_VIWIN_Buffer);
+- XS(XS_VIWIN_SetHeight);
+- XS(XS_VIWIN_Cursor);
+- XS(XS_VIBUF_DESTROY);
+- XS(XS_VIBUF_Name);
+- XS(XS_VIBUF_Number);
+- XS(XS_VIBUF_Count);
+- XS(XS_VIBUF_Get);
+- XS(XS_VIBUF_Set);
+- XS(XS_VIBUF_Delete);
+- XS(XS_VIBUF_Append);
+ XS(boot_VIM);
+
+ static void
+--- 913,918 ----
+*** ../vim-7.3.473/src/version.c 2012-03-16 19:24:21.000000000 +0100
+--- src/version.c 2012-03-16 19:28:03.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 474,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+202. You're amazed to find out Spam is a food.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.475 b/source/ap/vim/patches/7.3.475
new file mode 100644
index 000000000..54c27a21f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.475
@@ -0,0 +1,98 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.475
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.475
+Problem: In a terminal with few colors the omnicomplete menu may be hard to
+ see when using the default colors.
+Solution: Use more explicit colors. (suggested by Alex Henrie)
+Files: src/syntax.c
+
+
+*** ../vim-7.3.474/src/syntax.c 2012-01-10 22:26:12.000000000 +0100
+--- src/syntax.c 2012-03-16 20:14:22.000000000 +0100
+***************
+*** 6516,6523 ****
+ "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red"),
+ #endif
+ #ifdef FEAT_INS_EXPAND
+- CENT("PmenuThumb cterm=reverse",
+- "PmenuThumb cterm=reverse gui=reverse"),
+ CENT("PmenuSbar ctermbg=Grey",
+ "PmenuSbar ctermbg=Grey guibg=Grey"),
+ #endif
+--- 6516,6521 ----
+***************
+*** 6557,6566 ****
+ "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
+ #endif
+ #ifdef FEAT_INS_EXPAND
+! CENT("Pmenu ctermbg=LightMagenta",
+! "Pmenu ctermbg=LightMagenta guibg=LightMagenta"),
+! CENT("PmenuSel ctermbg=LightGrey",
+! "PmenuSel ctermbg=LightGrey guibg=Grey"),
+ #endif
+ CENT("SpecialKey term=bold ctermfg=DarkBlue",
+ "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
+--- 6555,6566 ----
+ "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"),
+ #endif
+ #ifdef FEAT_INS_EXPAND
+! CENT("PmenuThumb ctermbg=Black",
+! "PmenuThumb ctermbg=Black guibg=Black"),
+! CENT("Pmenu ctermbg=LightMagenta ctermfg=Black",
+! "Pmenu ctermbg=LightMagenta ctermfg=Black guibg=LightMagenta"),
+! CENT("PmenuSel ctermbg=LightGrey ctermfg=Black",
+! "PmenuSel ctermbg=LightGrey ctermfg=Black guibg=Grey"),
+ #endif
+ CENT("SpecialKey term=bold ctermfg=DarkBlue",
+ "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"),
+***************
+*** 6645,6654 ****
+ "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
+ #endif
+ #ifdef FEAT_INS_EXPAND
+! CENT("Pmenu ctermbg=Magenta",
+! "Pmenu ctermbg=Magenta guibg=Magenta"),
+! CENT("PmenuSel ctermbg=DarkGrey",
+! "PmenuSel ctermbg=DarkGrey guibg=DarkGrey"),
+ #endif
+ CENT("Title term=bold ctermfg=LightMagenta",
+ "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+--- 6645,6656 ----
+ "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"),
+ #endif
+ #ifdef FEAT_INS_EXPAND
+! CENT("PmenuThumb ctermbg=White",
+! "PmenuThumb ctermbg=White guibg=White"),
+! CENT("Pmenu ctermbg=Magenta ctermfg=Black",
+! "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
+! CENT("PmenuSel ctermbg=DarkGrey ctermfg=Black",
+! "PmenuSel ctermbg=DarkGrey ctermfg=Black guibg=DarkGrey"),
+ #endif
+ CENT("Title term=bold ctermfg=LightMagenta",
+ "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+*** ../vim-7.3.474/src/version.c 2012-03-16 19:34:43.000000000 +0100
+--- src/version.c 2012-03-16 20:05:35.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 475,
+ /**/
+
+--
+Spam seems to be something useful to novices. Later you realize that
+it's a bunch of indigestable junk that only clogs your system.
+Applies to both the food and the e-mail!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.476 b/source/ap/vim/patches/7.3.476
new file mode 100644
index 000000000..959b906bc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.476
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.476
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.476
+Problem: When selecting a block, using "$" to include the end of each line
+ and using "A" and typing a backspace strange things happen.
+ (Yuangchen Xie)
+Solution: Avoid using a negative length. (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.3.475/src/ops.c 2012-03-07 19:30:32.000000000 +0100
+--- src/ops.c 2012-03-23 12:22:36.000000000 +0100
+***************
+*** 2602,2608 ****
+ firstline = ml_get(oap->start.lnum) + bd.textcol;
+ if (oap->op_type == OP_APPEND)
+ firstline += bd.textlen;
+! if ((ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+ {
+ ins_text = vim_strnsave(firstline, (int)ins_len);
+ if (ins_text != NULL)
+--- 2602,2609 ----
+ firstline = ml_get(oap->start.lnum) + bd.textcol;
+ if (oap->op_type == OP_APPEND)
+ firstline += bd.textlen;
+! if (pre_textlen >= 0
+! && (ins_len = (long)STRLEN(firstline) - pre_textlen) > 0)
+ {
+ ins_text = vim_strnsave(firstline, (int)ins_len);
+ if (ins_text != NULL)
+*** ../vim-7.3.475/src/version.c 2012-03-16 20:16:42.000000000 +0100
+--- src/version.c 2012-03-23 14:14:49.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 476,
+ /**/
+
+--
+"Marriage is a wonderful institution...
+but who wants to live in an institution?"
+ - Groucho Marx
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.477 b/source/ap/vim/patches/7.3.477
new file mode 100644
index 000000000..8030ee65a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.477
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.477
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.477
+Problem: Using ":echo" to output enough lines to scroll, then using "j" and
+ "k" at the more prompt, displays the command on top of the output.
+ (Marcin Szamotulski)
+Solution: Put the output below the command. (Christian Brabandt)
+Files: src/eval.c
+
+
+*** ../vim-7.3.476/src/eval.c 2012-03-07 19:16:49.000000000 +0100
+--- src/eval.c 2012-03-23 15:11:30.000000000 +0100
+***************
+*** 20492,20498 ****
+--- 20492,20503 ----
+ /* Call msg_start() after eval1(), evaluating the expression
+ * may cause a message to appear. */
+ if (eap->cmdidx == CMD_echo)
++ {
++ /* Put the output below the command, makes scrolling back
++ * at more prompt work. */
++ msg_didout = TRUE;
+ msg_start();
++ }
+ }
+ else if (eap->cmdidx == CMD_echo)
+ msg_puts_attr((char_u *)" ", echo_attr);
+*** ../vim-7.3.476/src/version.c 2012-03-23 14:16:19.000000000 +0100
+--- src/version.c 2012-03-23 15:13:58.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 477,
+ /**/
+
+--
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.478 b/source/ap/vim/patches/7.3.478
new file mode 100644
index 000000000..bad69ef2f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.478
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.478
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.478
+Problem: Memory leak using the ':rv!' command when reading dictionary or
+ list global variables i.e. with 'viminfo' containing !.
+Solution: Free the typeval. (Dominique Pelle)
+Files: src/eval.c
+
+
+*** ../vim-7.3.477/src/eval.c 2012-03-23 15:18:20.000000000 +0100
+--- src/eval.c 2012-03-23 15:28:42.000000000 +0100
+***************
+*** 22976,22981 ****
+--- 22976,22982 ----
+ {
+ vim_free(tv.vval.v_string);
+ tv = *etv;
++ vim_free(etv);
+ }
+ }
+
+*** ../vim-7.3.477/src/version.c 2012-03-23 15:18:20.000000000 +0100
+--- src/version.c 2012-03-23 15:29:22.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 478,
+ /**/
+
+--
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.479 b/source/ap/vim/patches/7.3.479
new file mode 100644
index 000000000..fc256c1fb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.479
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.479
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.479
+Problem: When 'cursorline' is set the line number highlighting can't be set
+ separately.
+Solution: Add "CursorLineNr". (Howard Buchholz)
+Files: src/option.c, src/screen.c, src/syntax.c, src/vim.h
+
+
+*** ../vim-7.3.478/src/option.c 2012-02-29 13:51:32.000000000 +0100
+--- src/option.c 2012-03-23 15:44:57.000000000 +0100
+***************
+*** 460,468 ****
+ #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
+ || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
+ || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
+ #else
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
+ #endif
+
+ /*
+--- 460,468 ----
+ #if defined(FEAT_DIFF) || defined(FEAT_FOLDING) || defined(FEAT_SPELL) \
+ || defined(FEAT_VERTSPLIT) || defined(FEAT_CLIPBOARD) \
+ || defined(FEAT_INS_EXPAND) || defined(FEAT_SYN_HL) || defined(FEAT_CONCEAL)
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,-:Conceal,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine,o:ColorColumn"
+ #else
+! # define HIGHLIGHT_INIT "8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,N:CursorLineNr,r:Question,s:StatusLine,S:StatusLineNC,t:Title,v:Visual,w:WarningMsg,W:WildMenu,>:SignColumn,*:TabLine,#:TabLineSel,_:TabLineFill"
+ #endif
+
+ /*
+*** ../vim-7.3.478/src/screen.c 2012-03-16 19:07:54.000000000 +0100
+--- src/screen.c 2012-03-23 16:09:15.000000000 +0100
+***************
+*** 3501,3509 ****
+ char_attr = hl_attr(HLF_N);
+ #ifdef FEAT_SYN_HL
+ /* When 'cursorline' is set highlight the line number of
+! * the current line differently. */
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+! char_attr = hl_combine_attr(hl_attr(HLF_CUL), char_attr);
+ #endif
+ }
+ }
+--- 3501,3511 ----
+ char_attr = hl_attr(HLF_N);
+ #ifdef FEAT_SYN_HL
+ /* When 'cursorline' is set highlight the line number of
+! * the current line differently.
+! * TODO: Can we use CursorLine instead of CursorLineNr
+! * when CursorLineNr isn't set? */
+ if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+! char_attr = hl_attr(HLF_CLN);
+ #endif
+ }
+ }
+*** ../vim-7.3.478/src/syntax.c 2012-03-16 20:16:42.000000000 +0100
+--- src/syntax.c 2012-03-23 16:23:57.000000000 +0100
+***************
+*** 6538,6543 ****
+--- 6538,6545 ----
+ "Directory term=bold ctermfg=DarkBlue guifg=Blue"),
+ CENT("LineNr term=underline ctermfg=Brown",
+ "LineNr term=underline ctermfg=Brown guifg=Brown"),
++ CENT("CursorLineNr term=bold ctermfg=Brown",
++ "CursorLineNr term=bold ctermfg=Brown gui=bold guifg=Brown"),
+ CENT("MoreMsg term=bold ctermfg=DarkGreen",
+ "MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen"),
+ CENT("Question term=standout ctermfg=DarkGreen",
+***************
+*** 6626,6631 ****
+--- 6628,6635 ----
+ "Directory term=bold ctermfg=LightCyan guifg=Cyan"),
+ CENT("LineNr term=underline ctermfg=Yellow",
+ "LineNr term=underline ctermfg=Yellow guifg=Yellow"),
++ CENT("CursorLineNr term=bold ctermfg=Yellow",
++ "CursorLineNr term=bold ctermfg=Yellow gui=bold guifg=Yellow"),
+ CENT("MoreMsg term=bold ctermfg=LightGreen",
+ "MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen"),
+ CENT("Question term=standout ctermfg=LightGreen",
+*** ../vim-7.3.478/src/vim.h 2012-03-07 19:16:49.000000000 +0100
+--- src/vim.h 2012-03-23 15:44:57.000000000 +0100
+***************
+*** 1318,1323 ****
+--- 1318,1324 ----
+ , HLF_M /* "--More--" message */
+ , HLF_CM /* Mode (e.g., "-- INSERT --") */
+ , HLF_N /* line number for ":number" and ":#" commands */
++ , HLF_CLN /* current line number */
+ , HLF_R /* return to continue message and yes/no questions */
+ , HLF_S /* status lines */
+ , HLF_SNC /* status lines of not-current windows */
+***************
+*** 1355,1361 ****
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+ * When changing this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+! 'n', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
+ 'B', 'P', 'R', 'L', \
+ '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
+--- 1356,1362 ----
+ /* The HL_FLAGS must be in the same order as the HLF_ enums!
+ * When changing this also adjust the default for 'highlight'. */
+ #define HL_FLAGS {'8', '@', 'd', 'e', 'h', 'i', 'l', 'm', 'M', \
+! 'n', 'N', 'r', 's', 'S', 'c', 't', 'v', 'V', 'w', 'W', \
+ 'f', 'F', 'A', 'C', 'D', 'T', '-', '>', \
+ 'B', 'P', 'R', 'L', \
+ '+', '=', 'x', 'X', '*', '#', '_', '!', '.', 'o'}
+*** ../vim-7.3.478/src/version.c 2012-03-23 15:36:57.000000000 +0100
+--- src/version.c 2012-03-23 16:16:41.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 479,
+ /**/
+
+--
+If you're sending someone Styrofoam, what do you pack it in?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.480 b/source/ap/vim/patches/7.3.480
new file mode 100644
index 000000000..6d1e21dee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.480
@@ -0,0 +1,237 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.480
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.480
+Problem: When using ":qa" and there is a changed buffer picking the buffer
+ to jump to is not very good.
+Solution: Consider current and other tab pages. (Hirohito Higashi)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.479/src/ex_cmds2.c 2012-02-22 18:29:29.000000000 +0100
+--- src/ex_cmds2.c 2012-03-23 17:01:31.000000000 +0100
+***************
+*** 1569,1574 ****
+--- 1569,1594 ----
+ || forceit);
+ }
+
++ static void add_bufnum __ARGS((int *bufnrs, int *bufnump, int nr));
++
++ /*
++ * Add a buffer number to "bufnrs", unless it's already there.
++ */
++ static void
++ add_bufnum(bufnrs, bufnump, nr)
++ int *bufnrs;
++ int *bufnump;
++ int nr;
++ {
++ int i;
++
++ for (i = 0; i < *bufnump; ++i)
++ if (bufnrs[i] == nr)
++ return;
++ bufnrs[*bufnump] = nr;
++ *bufnump = *bufnump + 1;
++ }
++
+ /*
+ * Return TRUE if any buffer was changed and cannot be abandoned.
+ * That changed buffer becomes the current buffer.
+***************
+*** 1577,1608 ****
+ check_changed_any(hidden)
+ int hidden; /* Only check hidden buffers */
+ {
+ buf_T *buf;
+ int save;
+ #ifdef FEAT_WINDOWS
+ win_T *wp;
+ #endif
+
+! for (;;)
+ {
+! /* check curbuf first: if it was changed we can't abandon it */
+! if (!hidden && curbufIsChanged())
+! buf = curbuf;
+! else
+ {
+! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+! if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
+! break;
+ }
+- if (buf == NULL) /* No buffers changed */
+- return FALSE;
+-
+- /* Try auto-writing the buffer. If this fails but the buffer no
+- * longer exists it's not changed, that's OK. */
+- if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
+- break; /* didn't save - still changes */
+ }
+
+ exiting = FALSE;
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ /*
+--- 1597,1660 ----
+ check_changed_any(hidden)
+ int hidden; /* Only check hidden buffers */
+ {
++ int ret = FALSE;
+ buf_T *buf;
+ int save;
++ int i;
++ int bufnum = 0;
++ int bufcount = 0;
++ int *bufnrs;
+ #ifdef FEAT_WINDOWS
++ tabpage_T *tp;
+ win_T *wp;
+ #endif
+
+! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+! ++bufcount;
+!
+! if (bufcount == 0)
+! return FALSE;
+!
+! bufnrs = (int *)alloc(sizeof(int) * bufcount);
+! if (bufnrs == NULL)
+! return FALSE;
+!
+! /* curbuf */
+! bufnrs[bufnum++] = curbuf->b_fnum;
+! #ifdef FEAT_WINDOWS
+! /* buf in curtab */
+! FOR_ALL_WINDOWS(wp)
+! if (wp->w_buffer != curbuf)
+! add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
+!
+! /* buf in other tab */
+! for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+! if (tp != curtab)
+! for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+! add_bufnum(bufnrs, &bufnum, wp->w_buffer->b_fnum);
+! #endif
+! /* any other buf */
+! for (buf = firstbuf; buf != NULL; buf = buf->b_next)
+! add_bufnum(bufnrs, &bufnum, buf->b_fnum);
+!
+! for (i = 0; i < bufnum; ++i)
+ {
+! buf = buflist_findnr(bufnrs[i]);
+! if (buf == NULL)
+! continue;
+! if ((!hidden || buf->b_nwindows == 0) && bufIsChanged(buf))
+ {
+! /* Try auto-writing the buffer. If this fails but the buffer no
+! * longer exists it's not changed, that's OK. */
+! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf))
+! break; /* didn't save - still changes */
+ }
+ }
+
++ if (i >= bufnum)
++ goto theend;
++
++ ret = TRUE;
+ exiting = FALSE;
+ #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
+ /*
+***************
+*** 1635,1658 ****
+ #ifdef FEAT_WINDOWS
+ /* Try to find a window that contains the buffer. */
+ if (buf != curbuf)
+! for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ if (wp->w_buffer == buf)
+ {
+! win_goto(wp);
+ # ifdef FEAT_AUTOCMD
+ /* Paranoia: did autocms wipe out the buffer with changes? */
+ if (!buf_valid(buf))
+! return TRUE;
+ # endif
+! break;
+ }
+ #endif
+
+ /* Open the changed buffer in the current window. */
+ if (buf != curbuf)
+ set_curbuf(buf, DOBUF_GOTO);
+
+! return TRUE;
+ }
+
+ /*
+--- 1687,1715 ----
+ #ifdef FEAT_WINDOWS
+ /* Try to find a window that contains the buffer. */
+ if (buf != curbuf)
+! FOR_ALL_TAB_WINDOWS(tp, wp)
+ if (wp->w_buffer == buf)
+ {
+! goto_tabpage_win(tp, wp);
+ # ifdef FEAT_AUTOCMD
+ /* Paranoia: did autocms wipe out the buffer with changes? */
+ if (!buf_valid(buf))
+! {
+! goto theend;
+! }
+ # endif
+! goto buf_found;
+ }
++ buf_found:
+ #endif
+
+ /* Open the changed buffer in the current window. */
+ if (buf != curbuf)
+ set_curbuf(buf, DOBUF_GOTO);
+
+! theend:
+! vim_free(bufnrs);
+! return ret;
+ }
+
+ /*
+***************
+*** 3274,3280 ****
+ home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+ NameBuff, MAXPATHL, TRUE);
+ smsg((char_u *)"%3d: %s", i, NameBuff);
+! }
+ }
+
+ # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+--- 3331,3337 ----
+ home_replace(NULL, SCRIPT_ITEM(i).sn_name,
+ NameBuff, MAXPATHL, TRUE);
+ smsg((char_u *)"%3d: %s", i, NameBuff);
+! }
+ }
+
+ # if defined(BACKSLASH_IN_FILENAME) || defined(PROTO)
+*** ../vim-7.3.479/src/version.c 2012-03-23 16:25:13.000000000 +0100
+--- src/version.c 2012-03-23 16:48:06.000000000 +0100
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 480,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+243. You unsuccessfully try to download a pizza from www.dominos.com.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.481 b/source/ap/vim/patches/7.3.481
new file mode 100644
index 000000000..69f691585
--- /dev/null
+++ b/source/ap/vim/patches/7.3.481
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.481
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.481
+Problem: Changing 'virtualedit' in an operator function to "all" does not
+ have the desired effect. (Aaron Bohannon)
+Solution: Save, reset and restore virtual_op when executing an operator
+ function.
+Files: src/normal.c
+
+
+*** ../vim-7.3.480/src/normal.c 2012-02-05 01:18:41.000000000 +0100
+--- src/normal.c 2012-03-28 12:59:46.000000000 +0200
+***************
+*** 2279,2284 ****
+--- 2279,2285 ----
+ {
+ #ifdef FEAT_EVAL
+ char_u *(argv[1]);
++ int save_virtual_op = virtual_op;
+
+ if (*p_opfunc == NUL)
+ EMSG(_("E774: 'operatorfunc' is empty"));
+***************
+*** 2297,2303 ****
+--- 2298,2311 ----
+ argv[0] = (char_u *)"line";
+ else
+ argv[0] = (char_u *)"char";
++
++ /* Reset virtual_op so that 'virtualedit' can be changed in the
++ * function. */
++ virtual_op = MAYBE;
++
+ (void)call_func_retnr(p_opfunc, 1, argv, FALSE);
++
++ virtual_op = save_virtual_op;
+ }
+ #else
+ EMSG(_("E775: Eval feature not available"));
+*** ../vim-7.3.480/src/version.c 2012-03-23 18:39:10.000000000 +0100
+--- src/version.c 2012-03-28 12:50:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 481,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+269. You wonder how you can make your dustbin produce Sesame Street's
+ Oscar's the Garbage Monster song when you empty it.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.482 b/source/ap/vim/patches/7.3.482
new file mode 100644
index 000000000..56ff30178
--- /dev/null
+++ b/source/ap/vim/patches/7.3.482
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.482
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.482
+Problem: With 'cursorbind' set moving up/down does not always keep the same
+ column.
+Solution: Set curswant appropriately. (Gary Johnson)
+Files: src/move.c
+
+
+*** ../vim-7.3.481/src/move.c 2012-03-16 19:24:21.000000000 +0100
+--- src/move.c 2012-03-28 14:16:02.000000000 +0200
+***************
+*** 2847,2852 ****
+--- 2847,2854 ----
+ # ifdef FEAT_VIRTUALEDIT
+ colnr_T coladd = curwin->w_cursor.coladd;
+ # endif
++ colnr_T curswant = curwin->w_curswant;
++ int set_curswant = curwin->w_set_curswant;
+ win_T *old_curwin = curwin;
+ buf_T *old_curbuf = curbuf;
+ int restart_edit_save;
+***************
+*** 2881,2886 ****
+--- 2883,2890 ----
+ # ifdef FEAT_VIRTUALEDIT
+ curwin->w_cursor.coladd = coladd;
+ # endif
++ curwin->w_curswant = curswant;
++ curwin->w_set_curswant = set_curswant;
+
+ /* Make sure the cursor is in a valid position. Temporarily set
+ * "restart_edit" to allow the cursor to be beyond the EOL. */
+*** ../vim-7.3.481/src/version.c 2012-03-28 12:59:53.000000000 +0200
+--- src/version.c 2012-03-28 14:15:56.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 482,
+ /**/
+
+--
+Women are probably the main cause of free software starvation.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.483 b/source/ap/vim/patches/7.3.483
new file mode 100644
index 000000000..bab488b4a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.483
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.483
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.483 (after 7.3.477)
+Problem: More prompt shows up too often.
+Solution: Instead of adding a line break, only start a new line in the
+ message history. (Christian Brabandt)
+Files: src/eval.c, src/message.c, src/proto/message.pro
+
+
+*** ../vim-7.3.482/src/eval.c 2012-03-23 15:36:57.000000000 +0100
+--- src/eval.c 2012-03-28 16:41:03.000000000 +0200
+***************
+*** 20493,20501 ****
+ * may cause a message to appear. */
+ if (eap->cmdidx == CMD_echo)
+ {
+! /* Put the output below the command, makes scrolling back
+! * at more prompt work. */
+! msg_didout = TRUE;
+ msg_start();
+ }
+ }
+--- 20493,20502 ----
+ * may cause a message to appear. */
+ if (eap->cmdidx == CMD_echo)
+ {
+! /* Mark the saved text as finishing the line, so that what
+! * follows is displayed on a new line when scrolling back
+! * at the more prompt. */
+! msg_sb_eol();
+ msg_start();
+ }
+ }
+*** ../vim-7.3.482/src/message.c 2012-01-26 13:01:54.000000000 +0100
+--- src/message.c 2012-03-28 16:35:26.000000000 +0200
+***************
+*** 2348,2353 ****
+--- 2348,2363 ----
+ }
+
+ /*
++ * Mark the last message chunk as finishing the line.
++ */
++ void
++ msg_sb_eol()
++ {
++ if (last_msgchunk != NULL)
++ last_msgchunk->sb_eol = TRUE;
++ }
++
++ /*
+ * Display a screen line from previously displayed text at row "row".
+ * Returns a pointer to the text for the next line (can be NULL).
+ */
+*** ../vim-7.3.482/src/proto/message.pro 2012-01-20 20:44:38.000000000 +0100
+--- src/proto/message.pro 2012-03-28 16:35:33.000000000 +0200
+***************
+*** 45,50 ****
+--- 45,51 ----
+ void may_clear_sb_text __ARGS((void));
+ void clear_sb_text __ARGS((void));
+ void show_sb_text __ARGS((void));
++ void msg_sb_eol __ARGS((void));
+ int msg_use_printf __ARGS((void));
+ void mch_errmsg __ARGS((char *str));
+ void mch_msg __ARGS((char *str));
+*** ../vim-7.3.482/src/version.c 2012-03-28 14:19:46.000000000 +0200
+--- src/version.c 2012-03-28 16:48:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 483,
+ /**/
+
+--
+ We're knights of the Round Table
+ Our shows are formidable
+ But many times
+ We're given rhymes
+ That are quite unsingable
+ We're opera mad in Camelot
+ We sing from the diaphragm a lot.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.484 b/source/ap/vim/patches/7.3.484
new file mode 100644
index 000000000..99968eb2b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.484
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.484
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.484
+Problem: The -E and --echo-wid command line arguments are not mentioned in
+ "vim --help".
+Solution: Add the help lines. (Dominique Pelle)
+Files: src/main.c
+
+
+*** ../vim-7.3.483/src/main.c 2012-02-12 01:55:50.000000000 +0100
+--- src/main.c 2012-03-28 16:55:03.000000000 +0200
+***************
+*** 3181,3186 ****
+--- 3181,3187 ----
+ #endif
+ main_msg(_("-v\t\t\tVi mode (like \"vi\")"));
+ main_msg(_("-e\t\t\tEx mode (like \"ex\")"));
++ main_msg(_("-E\t\t\tImproved Ex mode"));
+ main_msg(_("-s\t\t\tSilent (batch) mode (only for \"ex\")"));
+ #ifdef FEAT_DIFF
+ main_msg(_("-d\t\t\tDiff mode (like \"vimdiff\")"));
+***************
+*** 3304,3309 ****
+--- 3305,3311 ----
+ main_msg(_("-display <display>\tRun vim on <display> (also: --display)"));
+ main_msg(_("--role <role>\tSet a unique role to identify the main window"));
+ main_msg(_("--socketid <xid>\tOpen Vim inside another GTK widget"));
++ main_msg(_("--echo-wid\t\tMake gvim echo the Window ID on stdout"));
+ #endif
+ #ifdef FEAT_GUI_W32
+ main_msg(_("-P <parent title>\tOpen Vim inside parent application"));
+*** ../vim-7.3.483/src/version.c 2012-03-28 16:49:25.000000000 +0200
+--- src/version.c 2012-03-28 17:10:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 484,
+ /**/
+
+--
+ In war we're tough and able.
+ Quite indefatigable
+ Between our quests
+ We sequin vests
+ And impersonate Clark Gable
+ It's a busy life in Camelot.
+ I have to push the pram a lot.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.485 b/source/ap/vim/patches/7.3.485
new file mode 100644
index 000000000..46b4cb732
--- /dev/null
+++ b/source/ap/vim/patches/7.3.485
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.485
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.485
+Problem: When building Vim LDFLAGS isn't passed on to building xxd.
+Solution: Pass the LDFLAGS value. (James McCoy)
+Files: src/Makefile
+
+
+*** ../vim-7.3.484/src/Makefile 2011-12-14 20:51:19.000000000 +0100
+--- src/Makefile 2012-03-28 17:16:06.000000000 +0200
+***************
+*** 1720,1726 ****
+ sh $(srcdir)/link.sh
+
+ xxd/xxd$(EXEEXT): xxd/xxd.c
+! cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
+ $(MAKE) -f Makefile
+
+ # Build the language specific files if they were unpacked.
+--- 1720,1726 ----
+ sh $(srcdir)/link.sh
+
+ xxd/xxd$(EXEEXT): xxd/xxd.c
+! cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+ $(MAKE) -f Makefile
+
+ # Build the language specific files if they were unpacked.
+*** ../vim-7.3.484/src/version.c 2012-03-28 17:10:26.000000000 +0200
+--- src/version.c 2012-03-28 17:16:15.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 485,
+ /**/
+
+--
+GOD: That is your purpose Arthur ... the Quest for the Holy Grail ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.486 b/source/ap/vim/patches/7.3.486
new file mode 100644
index 000000000..44e2afe84
--- /dev/null
+++ b/source/ap/vim/patches/7.3.486
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.486
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.486
+Problem: Build error with mingw64 on Windows 7.
+Solution: Avoid the step of going through vimres.res. (Guopeng Wen)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.3.485/src/Make_ming.mak 2012-02-29 16:56:35.000000000 +0100
+--- src/Make_ming.mak 2012-03-28 17:41:55.000000000 +0200
+***************
+*** 681,691 ****
+ $(OUTDIR)/%.o : %.c $(INCL)
+ $(CC) -c $(CFLAGS) $< -o $@
+
+! $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
+! $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
+!
+! $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
+! $(WINDRES) $(WINDRES_FLAGS) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
+
+ $(OUTDIR):
+ $(MKDIR) $(OUTDIR)
+--- 681,689 ----
+ $(OUTDIR)/%.o : %.c $(INCL)
+ $(CC) -c $(CFLAGS) $< -o $@
+
+! $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h
+! $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \
+! --input-format=rc --output-format=coff -i vim.rc -o $@
+
+ $(OUTDIR):
+ $(MKDIR) $(OUTDIR)
+*** ../vim-7.3.485/src/version.c 2012-03-28 17:17:45.000000000 +0200
+--- src/version.c 2012-03-28 17:42:25.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 486,
+ /**/
+
+--
+There is a fine line between courage and foolishness.
+Unfortunately, it's not a fence.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.487 b/source/ap/vim/patches/7.3.487
new file mode 100644
index 000000000..3c00349b3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.487
@@ -0,0 +1,572 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.487
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.487
+Problem: When setting 'timeoutlen' or 'ttimeoutlen' the column for vertical
+ movement is reset unnecessarily.
+Solution: Do not set w_set_curswant for every option. Add a test for this.
+ (Kana Natsuno) Add the P_CURSWANT flag for options.
+Files: src/option.c, src/testdir/test84.in, src/testdir/test84.ok,
+ src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+ src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+ src/testdir/Make_vms.mms, src/testdir/Makefile
+
+
+*** ../vim-7.3.486/src/option.c 2012-03-23 16:25:13.000000000 +0100
+--- src/option.c 2012-03-28 19:57:46.000000000 +0200
+***************
+*** 433,449 ****
+ #define P_RCLR 0x7000 /* clear and redraw all */
+
+ #define P_COMMA 0x8000 /* comma separated list */
+! #define P_NODUP 0x10000L/* don't allow duplicate strings */
+! #define P_FLAGLIST 0x20000L/* list of single-char flags */
+
+! #define P_SECURE 0x40000L/* cannot change in modeline or secure mode */
+! #define P_GETTEXT 0x80000L/* expand default value with _() */
+! #define P_NOGLOB 0x100000L/* do not use local value for global vimrc */
+! #define P_NFNAME 0x200000L/* only normal file name chars allowed */
+! #define P_INSECURE 0x400000L/* option was set from a modeline */
+! #define P_PRI_MKRC 0x800000L/* priority for :mkvimrc (setting option has
+ side effects) */
+! #define P_NO_ML 0x1000000L/* not allowed in modeline */
+
+ #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
+
+--- 433,451 ----
+ #define P_RCLR 0x7000 /* clear and redraw all */
+
+ #define P_COMMA 0x8000 /* comma separated list */
+! #define P_NODUP 0x10000L /* don't allow duplicate strings */
+! #define P_FLAGLIST 0x20000L /* list of single-char flags */
+
+! #define P_SECURE 0x40000L /* cannot change in modeline or secure mode */
+! #define P_GETTEXT 0x80000L /* expand default value with _() */
+! #define P_NOGLOB 0x100000L /* do not use local value for global vimrc */
+! #define P_NFNAME 0x200000L /* only normal file name chars allowed */
+! #define P_INSECURE 0x400000L /* option was set from a modeline */
+! #define P_PRI_MKRC 0x800000L /* priority for :mkvimrc (setting option has
+ side effects) */
+! #define P_NO_ML 0x1000000L /* not allowed in modeline */
+! #define P_CURSWANT 0x2000000L /* update curswant required; not needed when
+! * there is a redraw flag */
+
+ #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255"
+
+***************
+*** 479,485 ****
+ #endif
+ options[] =
+ {
+! {"aleph", "al", P_NUM|P_VI_DEF,
+ #ifdef FEAT_RIGHTLEFT
+ (char_u *)&p_aleph, PV_NONE,
+ #else
+--- 481,487 ----
+ #endif
+ options[] =
+ {
+! {"aleph", "al", P_NUM|P_VI_DEF|P_CURSWANT,
+ #ifdef FEAT_RIGHTLEFT
+ (char_u *)&p_aleph, PV_NONE,
+ #else
+***************
+*** 501,507 ****
+ {(char_u *)FALSE, (char_u *)FALSE}
+ #endif
+ SCRIPTID_INIT},
+! {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM,
+ #ifdef FEAT_ARABIC
+ (char_u *)VAR_WIN, PV_ARAB,
+ #else
+--- 503,509 ----
+ {(char_u *)FALSE, (char_u *)FALSE}
+ #endif
+ SCRIPTID_INIT},
+! {"arabic", "arab", P_BOOL|P_VI_DEF|P_VIM|P_CURSWANT,
+ #ifdef FEAT_ARABIC
+ (char_u *)VAR_WIN, PV_ARAB,
+ #else
+***************
+*** 778,784 ****
+ {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
+ (char_u *)&Columns, PV_NONE,
+ {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
+! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP,
+ #ifdef FEAT_COMMENTS
+ (char_u *)&p_com, PV_COM,
+ {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
+--- 780,786 ----
+ {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR,
+ (char_u *)&Columns, PV_NONE,
+ {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT},
+! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+ #ifdef FEAT_COMMENTS
+ (char_u *)&p_com, PV_COM,
+ {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
+***************
+*** 788,794 ****
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF,
+ #ifdef FEAT_FOLDING
+ (char_u *)&p_cms, PV_CMS,
+ {(char_u *)"/*%s*/", (char_u *)0L}
+--- 790,796 ----
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
+ #ifdef FEAT_FOLDING
+ (char_u *)&p_cms, PV_CMS,
+ {(char_u *)"/*%s*/", (char_u *)0L}
+***************
+*** 953,959 ****
+ {"debug", NULL, P_STRING|P_VI_DEF,
+ (char_u *)&p_debug, PV_NONE,
+ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+! {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF,
+ #ifdef FEAT_FIND_ID
+ (char_u *)&p_def, PV_DEF,
+ {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
+--- 955,961 ----
+ {"debug", NULL, P_STRING|P_VI_DEF,
+ (char_u *)&p_debug, PV_NONE,
+ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
+! {"define", "def", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
+ #ifdef FEAT_FIND_ID
+ (char_u *)&p_def, PV_DEF,
+ {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
+***************
+*** 983,989 ****
+ (char_u *)NULL, PV_NONE,
+ #endif
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+! {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE,
+ #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
+ (char_u *)&p_dex, PV_NONE,
+ {(char_u *)"", (char_u *)0L}
+--- 985,991 ----
+ (char_u *)NULL, PV_NONE,
+ #endif
+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
+! {"diffexpr", "dex", P_STRING|P_VI_DEF|P_SECURE|P_CURSWANT,
+ #if defined(FEAT_DIFF) && defined(FEAT_EVAL)
+ (char_u *)&p_dex, PV_NONE,
+ {(char_u *)"", (char_u *)0L}
+***************
+*** 1099,1105 ****
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC,
+ (char_u *)&p_ff, PV_FF,
+ {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
+ {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
+--- 1101,1107 ----
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC|P_CURSWANT,
+ (char_u *)&p_ff, PV_FF,
+ {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT},
+ {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP,
+***************
+*** 1159,1165 ****
+ {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN,
+ (char_u *)VAR_WIN, PV_FDL,
+ {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+! {"foldlevelstart","fdls", P_NUM|P_VI_DEF,
+ (char_u *)&p_fdls, PV_NONE,
+ {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
+ {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
+--- 1161,1167 ----
+ {"foldlevel", "fdl", P_NUM|P_VI_DEF|P_RWIN,
+ (char_u *)VAR_WIN, PV_FDL,
+ {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
+! {"foldlevelstart","fdls", P_NUM|P_VI_DEF|P_CURSWANT,
+ (char_u *)&p_fdls, PV_NONE,
+ {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT},
+ {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF|
+***************
+*** 1176,1182 ****
+ {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN,
+ (char_u *)VAR_WIN, PV_FDN,
+ {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
+! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
+ (char_u *)&p_fdo, PV_NONE,
+ {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
+ (char_u *)0L} SCRIPTID_INIT},
+--- 1178,1184 ----
+ {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN,
+ (char_u *)VAR_WIN, PV_FDN,
+ {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT},
+! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT,
+ (char_u *)&p_fdo, PV_NONE,
+ {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo",
+ (char_u *)0L} SCRIPTID_INIT},
+***************
+*** 1741,1747 ****
+ {"matchtime", "mat", P_NUM|P_VI_DEF,
+ (char_u *)&p_mat, PV_NONE,
+ {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
+! {"maxcombine", "mco", P_NUM|P_VI_DEF,
+ #ifdef FEAT_MBYTE
+ (char_u *)&p_mco, PV_NONE,
+ #else
+--- 1743,1749 ----
+ {"matchtime", "mat", P_NUM|P_VI_DEF,
+ (char_u *)&p_mat, PV_NONE,
+ {(char_u *)5L, (char_u *)0L} SCRIPTID_INIT},
+! {"maxcombine", "mco", P_NUM|P_VI_DEF|P_CURSWANT,
+ #ifdef FEAT_MBYTE
+ (char_u *)&p_mco, PV_NONE,
+ #else
+***************
+*** 2710,2716 ****
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM,
+ #ifdef FEAT_VIRTUALEDIT
+ (char_u *)&p_ve, PV_NONE,
+ {(char_u *)"", (char_u *)""}
+--- 2712,2718 ----
+ {(char_u *)0L, (char_u *)0L}
+ #endif
+ SCRIPTID_INIT},
+! {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM|P_CURSWANT,
+ #ifdef FEAT_VIRTUALEDIT
+ (char_u *)&p_ve, PV_NONE,
+ {(char_u *)"", (char_u *)""}
+***************
+*** 7064,7071 ****
+ }
+ #endif
+
+! if (curwin->w_curswant != MAXCOL)
+! curwin->w_set_curswant = TRUE; /* in case 'showbreak' changed */
+ #ifdef FEAT_GUI
+ /* check redraw when it's not a GUI option or the GUI is active. */
+ if (!redraw_gui_only || gui.in_use)
+--- 7066,7075 ----
+ }
+ #endif
+
+! if (curwin->w_curswant != MAXCOL
+! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+! curwin->w_set_curswant = TRUE;
+!
+ #ifdef FEAT_GUI
+ /* check redraw when it's not a GUI option or the GUI is active. */
+ if (!redraw_gui_only || gui.in_use)
+***************
+*** 7587,7595 ****
+ || (int *)varp == &curwin->w_p_nu
+ || (int *)varp == &curwin->w_p_rnu)
+ {
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+-
+ /* If 'number' is set, reset 'relativenumber'. */
+ /* If 'relativenumber' is set, reset 'number'. */
+ if ((int *)varp == &curwin->w_p_nu && curwin->w_p_nu)
+--- 7591,7596 ----
+***************
+*** 7834,7841 ****
+ {
+ if (curwin->w_p_wrap)
+ curwin->w_leftcol = 0;
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+ }
+
+ #ifdef FEAT_WINDOWS
+--- 7835,7840 ----
+***************
+*** 8062,8092 ****
+ curbuf->b_p_imsearch = B_IMODE_USE_INSERT;
+ # endif
+ }
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+ }
+
+- else if ((int *)varp == &p_arshape)
+- {
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+- }
+- #endif
+-
+- #ifdef FEAT_LINEBREAK
+- if ((int *)varp == &curwin->w_p_lbr)
+- {
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+- }
+- #endif
+-
+- #ifdef FEAT_RIGHTLEFT
+- if ((int *)varp == &curwin->w_p_rl)
+- {
+- if (curwin->w_curswant != MAXCOL)
+- curwin->w_set_curswant = TRUE;
+- }
+ #endif
+
+ /*
+--- 8061,8068 ----
+***************
+*** 8096,8102 ****
+ options[opt_idx].flags |= P_WAS_SET;
+
+ comp_col(); /* in case 'ruler' or 'showcmd' changed */
+!
+ check_redraw(options[opt_idx].flags);
+
+ return NULL;
+--- 8072,8080 ----
+ options[opt_idx].flags |= P_WAS_SET;
+
+ comp_col(); /* in case 'ruler' or 'showcmd' changed */
+! if (curwin->w_curswant != MAXCOL
+! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+! curwin->w_set_curswant = TRUE;
+ check_redraw(options[opt_idx].flags);
+
+ return NULL;
+***************
+*** 8611,8618 ****
+ options[opt_idx].flags |= P_WAS_SET;
+
+ comp_col(); /* in case 'columns' or 'ls' changed */
+! if (curwin->w_curswant != MAXCOL)
+! curwin->w_set_curswant = TRUE; /* in case 'tabstop' changed */
+ check_redraw(options[opt_idx].flags);
+
+ return errmsg;
+--- 8589,8597 ----
+ options[opt_idx].flags |= P_WAS_SET;
+
+ comp_col(); /* in case 'columns' or 'ls' changed */
+! if (curwin->w_curswant != MAXCOL
+! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0)
+! curwin->w_set_curswant = TRUE;
+ check_redraw(options[opt_idx].flags);
+
+ return errmsg;
+*** ../vim-7.3.486/src/testdir/test84.in 2012-03-28 19:55:12.000000000 +0200
+--- src/testdir/test84.in 2012-03-28 19:46:53.000000000 +0200
+***************
+*** 0 ****
+--- 1,35 ----
++ Tests for curswant not changing when setting an option
++
++ STARTTEST
++ :so small.vim
++ :/^start target options$/+1,/^end target options$/-1 yank
++ :let target_option_names = split(@0)
++ :function TestCurswant(option_name)
++ : normal! ggf8j
++ : let curswant_before = winsaveview().curswant
++ : execute 'let' '&'.a:option_name '=' '&'.a:option_name
++ : let curswant_after = winsaveview().curswant
++ : return [a:option_name, curswant_before, curswant_after]
++ :endfunction
++ :
++ :new
++ :put =['1234567890', '12345']
++ :1 delete _
++ :let result = []
++ :for option_name in target_option_names
++ : call add(result, TestCurswant(option_name))
++ :endfor
++ :
++ :new
++ :put =map(copy(result), 'join(v:val, '' '')')
++ :1 delete _
++ :write test.out
++ :
++ :qall!
++ ENDTEST
++
++ start target options
++ tabstop
++ timeoutlen
++ ttimeoutlen
++ end target options
+*** ../vim-7.3.486/src/testdir/test84.ok 2012-03-28 19:55:12.000000000 +0200
+--- src/testdir/test84.ok 2012-03-28 19:48:36.000000000 +0200
+***************
+*** 0 ****
+--- 1,3 ----
++ tabstop 7 4
++ timeoutlen 7 7
++ ttimeoutlen 7 7
+*** ../vim-7.3.486/src/testdir/Make_amiga.mak 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_amiga.mak 2012-03-28 18:14:08.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out test84.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 132,134 ****
+--- 132,135 ----
+ test81.out: test81.in
+ test82.out: test82.in
+ test83.out: test83.in
++ test84.out: test84.in
+*** ../vim-7.3.486/src/testdir/Make_dos.mak 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_dos.mak 2012-03-28 18:14:41.000000000 +0200
+***************
+*** 29,35 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 29,36 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.486/src/testdir/Make_ming.mak 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_ming.mak 2012-03-28 18:14:46.000000000 +0200
+***************
+*** 49,55 ****
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 49,56 ----
+ test42.out test52.out test65.out test66.out test67.out \
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.486/src/testdir/Make_os2.mak 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_os2.mak 2012-03-28 18:15:00.000000000 +0200
+***************
+*** 29,35 ****
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out
+
+ .SUFFIXES: .in .out
+
+--- 29,35 ----
+ test66.out test67.out test68.out test69.out test70.out \
+ test71.out test72.out test73.out test74.out test75.out \
+ test76.out test77.out test78.out test79.out test80.out \
+! test81.out test82.out test83.out test84.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.3.486/src/testdir/Make_vms.mms 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Make_vms.mms 2012-03-28 18:15:15.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2011 Jul 15
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2012 Mar 28
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 76,82 ****
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+ test77.out test78.out test79.out test80.out test81.out \
+! test82.out test83.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 76,82 ----
+ test66.out test67.out test68.out test69.out \
+ test71.out test72.out test74.out test75.out test76.out \
+ test77.out test78.out test79.out test80.out test81.out \
+! test82.out test83.out test84.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.3.486/src/testdir/Makefile 2011-10-12 19:53:31.000000000 +0200
+--- src/testdir/Makefile 2012-03-28 18:15:29.000000000 +0200
+***************
+*** 26,32 ****
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 26,33 ----
+ test64.out test65.out test66.out test67.out test68.out \
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+! test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.3.486/src/version.c 2012-03-28 17:43:06.000000000 +0200
+--- src/version.c 2012-03-28 19:49:41.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 487,
+ /**/
+
+--
+"Time flies like an arrow". So I put an arrow on my desk, now
+awaiting one of these time flies showing up.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.488 b/source/ap/vim/patches/7.3.488
new file mode 100644
index 000000000..e07874040
--- /dev/null
+++ b/source/ap/vim/patches/7.3.488
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.488
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.488
+Problem: ":help!" in a help file does not work as document.
+Solution: When in a help file don't give an error message. (thinca)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.487/src/ex_cmds.c 2012-03-16 14:32:10.000000000 +0100
+--- src/ex_cmds.c 2012-04-01 14:25:35.000000000 +0200
+***************
+*** 5546,5552 ****
+ }
+ arg = eap->arg;
+
+! if (eap->forceit && *arg == NUL)
+ {
+ EMSG(_("E478: Don't panic!"));
+ return;
+--- 5546,5552 ----
+ }
+ arg = eap->arg;
+
+! if (eap->forceit && *arg == NUL && !curbuf->b_help)
+ {
+ EMSG(_("E478: Don't panic!"));
+ return;
+*** ../vim-7.3.487/src/version.c 2012-03-28 19:58:34.000000000 +0200
+--- src/version.c 2012-04-05 16:04:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 488,
+ /**/
+
+
+--
+I'd like to meet the man who invented sex and see what he's working on now.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.489 b/source/ap/vim/patches/7.3.489
new file mode 100644
index 000000000..fbdf2c39f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.489
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.489
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.489
+Problem: CTRL-] in Insert mode does not expand abbreviation when used in a
+ mapping. (Yichao Zhou)
+Solution: Special case using CTRL-]. (Christian Brabandt)
+Files: src/getchar.c, src/edit.c
+
+
+*** ../vim-7.3.488/src/getchar.c 2012-02-05 22:05:44.000000000 +0100
+--- src/getchar.c 2012-04-05 15:54:00.000000000 +0200
+***************
+*** 4352,4359 ****
+
+ if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */
+ return FALSE;
+! if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0)
+! /* no remapping implies no abbreviation */
+ return FALSE;
+
+ /*
+--- 4352,4360 ----
+
+ if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */
+ return FALSE;
+!
+! /* no remapping implies no abbreviation, except for CTRL-] */
+! if ((KeyNoremap & (RM_NONE|RM_SCRIPT)) != 0 && c != Ctrl_RSB)
+ return FALSE;
+
+ /*
+*** ../vim-7.3.488/src/edit.c 2012-02-29 18:22:03.000000000 +0100
+--- src/edit.c 2012-04-05 15:57:46.000000000 +0200
+***************
+*** 1455,1467 ****
+ Insstart_blank_vcol = get_nolist_virtcol();
+ }
+
+! if (vim_iswordc(c) || !echeck_abbr(
+ #ifdef FEAT_MBYTE
+ /* Add ABBR_OFF for characters above 0x100, this is
+ * what check_abbr() expects. */
+ (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+ #endif
+! c))
+ {
+ insert_special(c, FALSE, FALSE);
+ #ifdef FEAT_RIGHTLEFT
+--- 1455,1470 ----
+ Insstart_blank_vcol = get_nolist_virtcol();
+ }
+
+! /* Insert a normal character and check for abbreviations on a
+! * special character. Let CTRL-] expand abbreviations without
+! * inserting it. */
+! if (vim_iswordc(c) || (!echeck_abbr(
+ #ifdef FEAT_MBYTE
+ /* Add ABBR_OFF for characters above 0x100, this is
+ * what check_abbr() expects. */
+ (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+ #endif
+! c) && c != Ctrl_RSB))
+ {
+ insert_special(c, FALSE, FALSE);
+ #ifdef FEAT_RIGHTLEFT
+*** ../vim-7.3.488/src/version.c 2012-04-05 16:04:58.000000000 +0200
+--- src/version.c 2012-04-05 16:06:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 489,
+ /**/
+
+--
+Just think of all the things we haven't thought of yet.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.490 b/source/ap/vim/patches/7.3.490
new file mode 100644
index 000000000..6c49a48d5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.490
@@ -0,0 +1,2517 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.490
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.490
+Problem: Member confusion in Lua interface.
+Solution: Fix it. Add luaeval(). (Taro Muraoka, Luis Carvalho)
+Files: runtime/doc/if_lua.txt, src/eval.c, src/if_lua.c,
+ src/proto/if_lua.pro
+
+
+*** ../vim-7.3.489/runtime/doc/if_lua.txt 2010-08-15 21:57:14.000000000 +0200
+--- runtime/doc/if_lua.txt 2012-04-05 16:41:35.000000000 +0200
+***************
+*** 1,4 ****
+! *if_lua.txt* For Vim version 7.3. Last change: 2010 Jul 22
+
+
+ VIM REFERENCE MANUAL by Luis Carvalho
+--- 1,4 ----
+! *if_lua.txt* For Vim version 7.3. Last change: 2012 Jan 16
+
+
+ VIM REFERENCE MANUAL by Luis Carvalho
+***************
+*** 8,15 ****
+
+ 1. Commands |lua-commands|
+ 2. The vim module |lua-vim|
+! 3. Buffer userdata |lua-buffer|
+! 4. Window userdata |lua-window|
+
+ {Vi does not have any of these commands}
+
+--- 8,18 ----
+
+ 1. Commands |lua-commands|
+ 2. The vim module |lua-vim|
+! 3. List userdata |lua-list|
+! 4. Dict userdata |lua-dict|
+! 5. Buffer userdata |lua-buffer|
+! 6. Window userdata |lua-window|
+! 7. The luaeval function |lua-luaeval|
+
+ {Vi does not have any of these commands}
+
+***************
+*** 88,98 ****
+ All these commands execute a Lua chunk from either the command line (:lua and
+ :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+ interpreter, each chunk has its own scope and so only global variables are
+! shared between command calls. Lua default libraries "table", "string", "math",
+! and "package" are available, "io" and "debug" are not, and "os" is restricted
+! to functions "date", "clock", "time", "difftime", and "getenv". In addition,
+! Lua "print" function has its output redirected to the Vim message area, with
+! arguments separated by a white space instead of a tab.
+
+ Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
+ and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+--- 91,99 ----
+ All these commands execute a Lua chunk from either the command line (:lua and
+ :luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+ interpreter, each chunk has its own scope and so only global variables are
+! shared between command calls. All Lua default libraries are available. In
+! addition, Lua "print" function has its output redirected to the Vim message
+! area, with arguments separated by a white space instead of a tab.
+
+ Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
+ and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+***************
+*** 108,116 ****
+ module also includes routines for buffer, window, and current line queries,
+ Vim evaluation and command execution, and others.
+
+! vim.isbuffer(value) Returns 'true' (boolean, not string) if
+! "value" is a buffer userdata and 'false'
+! otherwise (see |lua-buffer|).
+
+ vim.buffer([arg]) If "arg" is a number, returns buffer with
+ number "arg" in the buffer list or, if "arg"
+--- 109,117 ----
+ module also includes routines for buffer, window, and current line queries,
+ Vim evaluation and command execution, and others.
+
+! vim.list() Returns an empty list (see |List|).
+!
+! vim.dict() Returns an empty dictionary (see |Dictionary|).
+
+ vim.buffer([arg]) If "arg" is a number, returns buffer with
+ number "arg" in the buffer list or, if "arg"
+***************
+*** 121,136 ****
+ 'true' returns the first buffer in the buffer
+ list or else the current buffer.
+
+- vim.iswindow(value) Returns 'true' (boolean, not string) if
+- "value" is a window userdata and
+- 'false' otherwise (see |lua-window|).
+-
+ vim.window([arg]) If "arg" is a number, returns window with
+ number "arg" or 'nil' (nil value, not string)
+ if not found. Otherwise, if "toboolean(arg)"
+ is 'true' returns the first window or else the
+ current window.
+
+ vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
+ Examples: >
+ :lua vim.command"set tw=60"
+--- 122,142 ----
+ 'true' returns the first buffer in the buffer
+ list or else the current buffer.
+
+ vim.window([arg]) If "arg" is a number, returns window with
+ number "arg" or 'nil' (nil value, not string)
+ if not found. Otherwise, if "toboolean(arg)"
+ is 'true' returns the first window or else the
+ current window.
+
++ vim.type({arg}) Returns the type of {arg}. It is equivalent to
++ Lua's "type" function, but returns "list",
++ "dict", "buffer", or "window" if {arg} is a
++ list, dictionary, buffer, or window,
++ respectively. Examples: >
++ :lua l = vim.list()
++ :lua print(type(l), vim.type(l))
++ :" userdata list
++ <
+ vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
+ Examples: >
+ :lua vim.command"set tw=60"
+***************
+*** 141,147 ****
+ Vim strings and numbers are directly converted
+ to Lua strings and numbers respectively. Vim
+ lists and dictionaries are converted to Lua
+! tables (lists become integer-keyed tables).
+ Examples: >
+ :lua tw = vim.eval"&tw"
+ :lua print(vim.eval"{'a': 'one'}".a)
+--- 147,153 ----
+ Vim strings and numbers are directly converted
+ to Lua strings and numbers respectively. Vim
+ lists and dictionaries are converted to Lua
+! userdata (see |lua-list| and |lua-dict|).
+ Examples: >
+ :lua tw = vim.eval"&tw"
+ :lua print(vim.eval"{'a': 'one'}".a)
+***************
+*** 157,163 ****
+
+
+ ==============================================================================
+! 3. Buffer userdata *lua-buffer*
+
+ Buffer userdata represent vim buffers. A buffer userdata "b" has the following
+ properties and methods:
+--- 163,234 ----
+
+
+ ==============================================================================
+! 3. List userdata *lua-list*
+!
+! List userdata represent vim lists, and the interface tries to follow closely
+! Vim's syntax for lists. Since lists are objects, changes in list references in
+! Lua are reflected in Vim and vice-versa. A list "l" has the following
+! properties and methods:
+!
+! Properties
+! ----------
+! o "#l" is the number of items in list "l", equivalent to "len(l)"
+! in Vim.
+! o "l[k]" returns the k-th item in "l"; "l" is zero-indexed, as in Vim.
+! To modify the k-th item, simply do "l[k] = newitem"; in
+! particular, "l[k] = nil" removes the k-th item from "l".
+! o "l()" returns an iterator for "l".
+!
+! Methods
+! -------
+! o "l:add(item)" appends "item" to the end of "l".
+! o "l:insert(item[, pos])" inserts "item" at (optional)
+! position "pos" in the list. The default value for "pos" is 0.
+!
+! Examples:
+! >
+! :let l = [1, 'item']
+! :lua l = vim.eval('l') -- same 'l'
+! :lua l:add(vim.list())
+! :lua l[0] = math.pi
+! :echo l[0] " 3.141593
+! :lua l[0] = nil -- remove first item
+! :lua l:insert(true, 1)
+! :lua print(l, #l, l[0], l[1], l[-1])
+! :lua for item in l() do print(item) end
+! <
+!
+! ==============================================================================
+! 4. Dict userdata *lua-dict*
+!
+! Similarly to list userdata, dict userdata represent vim dictionaries; since
+! dictionaries are also objects, references are kept between Lua and Vim. A dict
+! "d" has the following properties:
+!
+! Properties
+! ----------
+! o "#d" is the number of items in dict "d", equivalent to "len(d)"
+! in Vim.
+! o "d.key" or "d['key']" returns the value at entry "key" in "d".
+! To modify the entry at this key, simply do "d.key = newvalue"; in
+! particular, "d.key = nil" removes the entry from "d".
+! o "d()" returns an iterator for "d" and is equivalent to "items(d)" in
+! Vim.
+!
+! Examples:
+! >
+! :let d = {'n':10}
+! :lua d = vim.eval('d') -- same 'd'
+! :lua print(d, d.n, #d)
+! :let d.self = d
+! :lua for k, v in d() do print(d, k, v) end
+! :lua d.x = math.pi
+! :lua d.self = nil -- remove entry
+! :echo d
+! <
+!
+! ==============================================================================
+! 5. Buffer userdata *lua-buffer*
+
+ Buffer userdata represent vim buffers. A buffer userdata "b" has the following
+ properties and methods:
+***************
+*** 209,215 ****
+ <
+
+ ==============================================================================
+! 4. Window userdata *lua-window*
+
+ Window objects represent vim windows. A window userdata "w" has the following
+ properties and methods:
+--- 280,286 ----
+ <
+
+ ==============================================================================
+! 6. Window userdata *lua-window*
+
+ Window objects represent vim windows. A window userdata "w" has the following
+ properties and methods:
+***************
+*** 241,244 ****
+ <
+
+ ==============================================================================
+! vim:tw=78:ts=8:ft=help:norl:
+--- 312,340 ----
+ <
+
+ ==============================================================================
+! 7. The luaeval function *lua-luaeval*
+!
+! The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
+! "luaeval". "luaeval" takes an expression string and an optional argument and
+! returns the result of the expression. It is semantically equivalent in Lua to:
+! >
+! local chunkheader = "local _A = select(1, ...) return "
+! function luaeval (expstr, arg)
+! local chunk = assert(loadstring(chunkheader .. expstr, "luaeval"))
+! return chunk(arg) -- return typval
+! end
+! <
+! Note that "_A" receives the argument to "luaeval". Examples: >
+!
+! :echo luaeval('math.pi')
+! :lua a = vim.list():add('newlist')
+! :let a = luaeval('a')
+! :echo a[0] " 'newlist'
+! :function Rand(x,y) " random uniform between x and y
+! : return luaeval('(_A.y-_A.x)*math.random()+_A.x', {'x':a:x,'y':a:y})
+! : endfunction
+! :echo Rand(1,10)
+!
+!
+! ==============================================================================
+! vim:tw=78:ts=8:noet:ft=help:norl:
+*** ../vim-7.3.489/src/eval.c 2012-03-28 16:49:25.000000000 +0200
+--- src/eval.c 2012-04-05 16:41:35.000000000 +0200
+***************
+*** 622,627 ****
+--- 622,630 ----
+ static void f_log __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_log10 __ARGS((typval_T *argvars, typval_T *rettv));
+ #endif
++ #ifdef FEAT_LUA
++ static void f_luaeval __ARGS((typval_T *argvars, typval_T *rettv));
++ #endif
+ static void f_map __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_maparg __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_mapcheck __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 6777,6782 ****
+--- 6780,6789 ----
+ /* v: vars */
+ set_ref_in_ht(&vimvarht, copyID);
+
++ #ifdef FEAT_LUA
++ set_ref_in_lua(copyID);
++ #endif
++
+ /*
+ * 2. Free lists and dictionaries that are not referenced.
+ */
+***************
+*** 7946,7951 ****
+--- 7953,7961 ----
+ {"log", 1, 1, f_log},
+ {"log10", 1, 1, f_log10},
+ #endif
++ #ifdef FEAT_LUA
++ {"luaeval", 1, 2, f_luaeval},
++ #endif
+ {"map", 2, 2, f_map},
+ {"maparg", 1, 4, f_maparg},
+ {"mapcheck", 1, 3, f_mapcheck},
+***************
+*** 13626,13631 ****
+--- 13636,13658 ----
+ }
+ #endif
+
++ #ifdef FEAT_LUA
++ /*
++ * "luaeval()" function
++ */
++ static void
++ f_luaeval(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ char_u *str;
++ char_u buf[NUMBUFLEN];
++
++ str = get_tv_string_buf(&argvars[0], buf);
++ do_luaeval(str, argvars + 1, rettv);
++ }
++ #endif
++
+ /*
+ * "map()" function
+ */
+*** ../vim-7.3.489/src/if_lua.c 2011-12-08 16:00:12.000000000 +0100
+--- src/if_lua.c 2012-04-05 16:41:35.000000000 +0200
+***************
+*** 1,4 ****
+! /* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+--- 1,4 ----
+! /* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+***************
+*** 21,35 ****
+--- 21,53 ----
+
+ #define LUAVIM_CHUNKNAME "vim chunk"
+ #define LUAVIM_NAME "vim"
++ #define LUAVIM_EVALNAME "luaeval"
++ #define LUAVIM_EVALHEADER "local _A=select(1,...) return "
+
+ typedef buf_T *luaV_Buffer;
+ typedef win_T *luaV_Window;
++ typedef dict_T *luaV_Dict;
++ typedef list_T *luaV_List;
+ typedef void (*msgfunc_T)(char_u *);
+
++ static const char LUAVIM_DICT[] = "dict";
++ static const char LUAVIM_LIST[] = "list";
+ static const char LUAVIM_BUFFER[] = "buffer";
+ static const char LUAVIM_WINDOW[] = "window";
+ static const char LUAVIM_FREE[] = "luaV_free";
++ static const char LUAVIM_LUAEVAL[] = "luaV_luaeval";
++ static const char LUAVIM_SETREF[] = "luaV_setref";
+
++ /* most functions are closures with a cache table as first upvalue;
++ * get/setudata manage references to vim userdata in cache table through
++ * object pointers (light userdata) */
++ #define luaV_getudata(L, v) \
++ lua_pushlightuserdata((L), (void *) (v)); \
++ lua_rawget((L), lua_upvalueindex(1))
++ #define luaV_setudata(L, v) \
++ lua_pushlightuserdata((L), (void *) (v)); \
++ lua_pushvalue((L), -2); \
++ lua_rawset((L), lua_upvalueindex(1))
+ #define luaV_getfield(L, s) \
+ lua_pushlightuserdata((L), (void *)(s)); \
+ lua_rawget((L), LUA_REGISTRYINDEX)
+***************
+*** 38,43 ****
+--- 56,70 ----
+ #define luaV_msg(L) luaV_msgfunc((L), (msgfunc_T) msg)
+ #define luaV_emsg(L) luaV_msgfunc((L), (msgfunc_T) emsg)
+
++ static luaV_List *luaV_pushlist (lua_State *L, list_T *lis);
++ static luaV_Dict *luaV_pushdict (lua_State *L, dict_T *dic);
++
++ #if LUA_VERSION_NUM <= 501
++ #define luaV_openlib(L, l, n) luaL_openlib(L, NULL, l, n)
++ #define luaL_typeerror luaL_typerror
++ #else
++ #define luaV_openlib luaL_setfuncs
++ #endif
+
+ #ifdef DYNAMIC_LUA
+
+***************
+*** 54,85 ****
+ #endif
+
+ /* lauxlib */
+ #define luaL_register dll_luaL_register
+ #define luaL_typerror dll_luaL_typerror
+ #define luaL_checklstring dll_luaL_checklstring
+ #define luaL_checkinteger dll_luaL_checkinteger
+ #define luaL_optinteger dll_luaL_optinteger
+ #define luaL_checktype dll_luaL_checktype
+ #define luaL_error dll_luaL_error
+- #define luaL_loadfile dll_luaL_loadfile
+- #define luaL_loadbuffer dll_luaL_loadbuffer
+ #define luaL_newstate dll_luaL_newstate
+ #define luaL_buffinit dll_luaL_buffinit
+- #define luaL_prepbuffer dll_luaL_prepbuffer
+ #define luaL_addlstring dll_luaL_addlstring
+ #define luaL_pushresult dll_luaL_pushresult
+ /* lua */
+ #define lua_close dll_lua_close
+ #define lua_gettop dll_lua_gettop
+ #define lua_settop dll_lua_settop
+ #define lua_pushvalue dll_lua_pushvalue
+ #define lua_replace dll_lua_replace
+ #define lua_isnumber dll_lua_isnumber
+ #define lua_isstring dll_lua_isstring
+ #define lua_type dll_lua_type
+ #define lua_rawequal dll_lua_rawequal
+- #define lua_tonumber dll_lua_tonumber
+- #define lua_tointeger dll_lua_tointeger
+ #define lua_toboolean dll_lua_toboolean
+ #define lua_tolstring dll_lua_tolstring
+ #define lua_touserdata dll_lua_touserdata
+--- 81,134 ----
+ #endif
+
+ /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+ #define luaL_register dll_luaL_register
++ #define luaL_prepbuffer dll_luaL_prepbuffer
++ #define luaL_openlib dll_luaL_openlib
+ #define luaL_typerror dll_luaL_typerror
++ #define luaL_loadfile dll_luaL_loadfile
++ #define luaL_loadbuffer dll_luaL_loadbuffer
++ #else
++ #define luaL_prepbuffsize dll_luaL_prepbuffsize
++ #define luaL_setfuncs dll_luaL_setfuncs
++ #define luaL_loadfilex dll_luaL_loadfilex
++ #define luaL_loadbufferx dll_luaL_loadbufferx
++ #define luaL_argerror dll_luaL_argerror
++ #endif
+ #define luaL_checklstring dll_luaL_checklstring
+ #define luaL_checkinteger dll_luaL_checkinteger
+ #define luaL_optinteger dll_luaL_optinteger
+ #define luaL_checktype dll_luaL_checktype
+ #define luaL_error dll_luaL_error
+ #define luaL_newstate dll_luaL_newstate
+ #define luaL_buffinit dll_luaL_buffinit
+ #define luaL_addlstring dll_luaL_addlstring
+ #define luaL_pushresult dll_luaL_pushresult
+ /* lua */
++ #if LUA_VERSION_NUM <= 501
++ #define lua_tonumber dll_lua_tonumber
++ #define lua_tointeger dll_lua_tointeger
++ #define lua_call dll_lua_call
++ #define lua_pcall dll_lua_pcall
++ #else
++ #define lua_tonumberx dll_lua_tonumberx
++ #define lua_tointegerx dll_lua_tointegerx
++ #define lua_callk dll_lua_callk
++ #define lua_pcallk dll_lua_pcallk
++ #define lua_getglobal dll_lua_getglobal
++ #define lua_setglobal dll_lua_setglobal
++ #define lua_typename dll_lua_typename
++ #endif
+ #define lua_close dll_lua_close
+ #define lua_gettop dll_lua_gettop
+ #define lua_settop dll_lua_settop
+ #define lua_pushvalue dll_lua_pushvalue
+ #define lua_replace dll_lua_replace
++ #define lua_remove dll_lua_remove
+ #define lua_isnumber dll_lua_isnumber
+ #define lua_isstring dll_lua_isstring
+ #define lua_type dll_lua_type
+ #define lua_rawequal dll_lua_rawequal
+ #define lua_toboolean dll_lua_toboolean
+ #define lua_tolstring dll_lua_tolstring
+ #define lua_touserdata dll_lua_touserdata
+***************
+*** 94,109 ****
+ #define lua_pushlightuserdata dll_lua_pushlightuserdata
+ #define lua_getfield dll_lua_getfield
+ #define lua_rawget dll_lua_rawget
+ #define lua_createtable dll_lua_createtable
+ #define lua_newuserdata dll_lua_newuserdata
+ #define lua_getmetatable dll_lua_getmetatable
+ #define lua_setfield dll_lua_setfield
+ #define lua_rawset dll_lua_rawset
+ #define lua_rawseti dll_lua_rawseti
+- #define lua_remove dll_lua_remove
+ #define lua_setmetatable dll_lua_setmetatable
+- #define lua_call dll_lua_call
+- #define lua_pcall dll_lua_pcall
+ /* libs */
+ #define luaopen_base dll_luaopen_base
+ #define luaopen_table dll_luaopen_table
+--- 143,156 ----
+ #define lua_pushlightuserdata dll_lua_pushlightuserdata
+ #define lua_getfield dll_lua_getfield
+ #define lua_rawget dll_lua_rawget
++ #define lua_rawgeti dll_lua_rawgeti
+ #define lua_createtable dll_lua_createtable
+ #define lua_newuserdata dll_lua_newuserdata
+ #define lua_getmetatable dll_lua_getmetatable
+ #define lua_setfield dll_lua_setfield
+ #define lua_rawset dll_lua_rawset
+ #define lua_rawseti dll_lua_rawseti
+ #define lua_setmetatable dll_lua_setmetatable
+ /* libs */
+ #define luaopen_base dll_luaopen_base
+ #define luaopen_table dll_luaopen_table
+***************
+*** 116,147 ****
+ #define luaL_openlibs dll_luaL_openlibs
+
+ /* lauxlib */
+ void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
+ int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
+ const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+ lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+ lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+ void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
+ int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
+- int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
+- int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
+ lua_State *(*dll_luaL_newstate) (void);
+ void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+- char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
+ void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+ void (*dll_luaL_pushresult) (luaL_Buffer *B);
+ /* lua */
+ void (*dll_lua_close) (lua_State *L);
+ int (*dll_lua_gettop) (lua_State *L);
+ void (*dll_lua_settop) (lua_State *L, int idx);
+ void (*dll_lua_pushvalue) (lua_State *L, int idx);
+ void (*dll_lua_replace) (lua_State *L, int idx);
+ int (*dll_lua_isnumber) (lua_State *L, int idx);
+ int (*dll_lua_isstring) (lua_State *L, int idx);
+ int (*dll_lua_type) (lua_State *L, int idx);
+ int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
+- lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
+- lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
+ int (*dll_lua_toboolean) (lua_State *L, int idx);
+ const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
+ void *(*dll_lua_touserdata) (lua_State *L, int idx);
+--- 163,218 ----
+ #define luaL_openlibs dll_luaL_openlibs
+
+ /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+ void (*dll_luaL_register) (lua_State *L, const char *libname, const luaL_Reg *l);
++ char *(*dll_luaL_prepbuffer) (luaL_Buffer *B);
++ void (*dll_luaL_openlib) (lua_State *L, const char *libname, const luaL_Reg *l, int nup);
+ int (*dll_luaL_typerror) (lua_State *L, int narg, const char *tname);
++ int (*dll_luaL_loadfile) (lua_State *L, const char *filename);
++ int (*dll_luaL_loadbuffer) (lua_State *L, const char *buff, size_t sz, const char *name);
++ #else
++ char *(*dll_luaL_prepbuffsize) (luaL_Buffer *B, size_t sz);
++ void (*dll_luaL_setfuncs) (lua_State *L, const luaL_Reg *l, int nup);
++ int (*dll_luaL_loadfilex) (lua_State *L, const char *filename, const char *mode);
++ int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
++ int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
++ #endif
+ const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+ lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+ lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+ void (*dll_luaL_checktype) (lua_State *L, int narg, int t);
+ int (*dll_luaL_error) (lua_State *L, const char *fmt, ...);
+ lua_State *(*dll_luaL_newstate) (void);
+ void (*dll_luaL_buffinit) (lua_State *L, luaL_Buffer *B);
+ void (*dll_luaL_addlstring) (luaL_Buffer *B, const char *s, size_t l);
+ void (*dll_luaL_pushresult) (luaL_Buffer *B);
+ /* lua */
++ #if LUA_VERSION_NUM <= 501
++ lua_Number (*dll_lua_tonumber) (lua_State *L, int idx);
++ lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx);
++ void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
++ int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
++ #else
++ lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
++ lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
++ void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
++ lua_CFunction k);
++ int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
++ int ctx, lua_CFunction k);
++ void (*dll_lua_getglobal) (lua_State *L, const char *var);
++ void (*dll_lua_setglobal) (lua_State *L, const char *var);
++ const char *(*dll_lua_typename) (lua_State *L, int tp);
++ #endif
+ void (*dll_lua_close) (lua_State *L);
+ int (*dll_lua_gettop) (lua_State *L);
+ void (*dll_lua_settop) (lua_State *L, int idx);
+ void (*dll_lua_pushvalue) (lua_State *L, int idx);
+ void (*dll_lua_replace) (lua_State *L, int idx);
++ void (*dll_lua_remove) (lua_State *L, int idx);
+ int (*dll_lua_isnumber) (lua_State *L, int idx);
+ int (*dll_lua_isstring) (lua_State *L, int idx);
+ int (*dll_lua_type) (lua_State *L, int idx);
+ int (*dll_lua_rawequal) (lua_State *L, int idx1, int idx2);
+ int (*dll_lua_toboolean) (lua_State *L, int idx);
+ const char *(*dll_lua_tolstring) (lua_State *L, int idx, size_t *len);
+ void *(*dll_lua_touserdata) (lua_State *L, int idx);
+***************
+*** 156,171 ****
+ void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
+ void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
+ void (*dll_lua_rawget) (lua_State *L, int idx);
+ void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
+ void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
+ int (*dll_lua_getmetatable) (lua_State *L, int objindex);
+ void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+ void (*dll_lua_rawset) (lua_State *L, int idx);
+ void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+- void (*dll_lua_remove) (lua_State *L, int idx);
+ int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+- void (*dll_lua_call) (lua_State *L, int nargs, int nresults);
+- int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc);
+ /* libs */
+ int (*dll_luaopen_base) (lua_State *L);
+ int (*dll_luaopen_table) (lua_State *L);
+--- 227,240 ----
+ void (*dll_lua_pushlightuserdata) (lua_State *L, void *p);
+ void (*dll_lua_getfield) (lua_State *L, int idx, const char *k);
+ void (*dll_lua_rawget) (lua_State *L, int idx);
++ void (*dll_lua_rawgeti) (lua_State *L, int idx, int n);
+ void (*dll_lua_createtable) (lua_State *L, int narr, int nrec);
+ void *(*dll_lua_newuserdata) (lua_State *L, size_t sz);
+ int (*dll_lua_getmetatable) (lua_State *L, int objindex);
+ void (*dll_lua_setfield) (lua_State *L, int idx, const char *k);
+ void (*dll_lua_rawset) (lua_State *L, int idx);
+ void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+ int (*dll_lua_setmetatable) (lua_State *L, int objindex);
+ /* libs */
+ int (*dll_luaopen_base) (lua_State *L);
+ int (*dll_luaopen_table) (lua_State *L);
+***************
+*** 185,216 ****
+
+ static const luaV_Reg luaV_dll[] = {
+ /* lauxlib */
+ {"luaL_register", (luaV_function) &dll_luaL_register},
+ {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
+ {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+ {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+ {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+ {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
+ {"luaL_error", (luaV_function) &dll_luaL_error},
+- {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
+- {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
+ {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
+ {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
+- {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
+ {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
+ {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
+ /* lua */
+ {"lua_close", (luaV_function) &dll_lua_close},
+ {"lua_gettop", (luaV_function) &dll_lua_gettop},
+ {"lua_settop", (luaV_function) &dll_lua_settop},
+ {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
+ {"lua_replace", (luaV_function) &dll_lua_replace},
+ {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
+ {"lua_isstring", (luaV_function) &dll_lua_isstring},
+ {"lua_type", (luaV_function) &dll_lua_type},
+ {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
+- {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
+- {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
+ {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
+ {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
+ {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
+--- 254,307 ----
+
+ static const luaV_Reg luaV_dll[] = {
+ /* lauxlib */
++ #if LUA_VERSION_NUM <= 501
+ {"luaL_register", (luaV_function) &dll_luaL_register},
++ {"luaL_prepbuffer", (luaV_function) &dll_luaL_prepbuffer},
++ {"luaL_openlib", (luaV_function) &dll_luaL_openlib},
+ {"luaL_typerror", (luaV_function) &dll_luaL_typerror},
++ {"luaL_loadfile", (luaV_function) &dll_luaL_loadfile},
++ {"luaL_loadbuffer", (luaV_function) &dll_luaL_loadbuffer},
++ #else
++ {"luaL_prepbuffsize", (luaV_function) &dll_luaL_prepbuffsize},
++ {"luaL_setfuncs", (luaV_function) &dll_luaL_setfuncs},
++ {"luaL_loadfilex", (luaV_function) &dll_luaL_loadfilex},
++ {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
++ {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
++ #endif
+ {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+ {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+ {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+ {"luaL_checktype", (luaV_function) &dll_luaL_checktype},
+ {"luaL_error", (luaV_function) &dll_luaL_error},
+ {"luaL_newstate", (luaV_function) &dll_luaL_newstate},
+ {"luaL_buffinit", (luaV_function) &dll_luaL_buffinit},
+ {"luaL_addlstring", (luaV_function) &dll_luaL_addlstring},
+ {"luaL_pushresult", (luaV_function) &dll_luaL_pushresult},
+ /* lua */
++ #if LUA_VERSION_NUM <= 501
++ {"lua_tonumber", (luaV_function) &dll_lua_tonumber},
++ {"lua_tointeger", (luaV_function) &dll_lua_tointeger},
++ {"lua_call", (luaV_function) &dll_lua_call},
++ {"lua_pcall", (luaV_function) &dll_lua_pcall},
++ #else
++ {"lua_tonumberx", (luaV_function) &dll_lua_tonumberx},
++ {"lua_tointegerx", (luaV_function) &dll_lua_tointegerx},
++ {"lua_callk", (luaV_function) &dll_lua_callk},
++ {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
++ {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
++ {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
++ {"lua_typename", (luaV_function) &dll_lua_typename},
++ #endif
+ {"lua_close", (luaV_function) &dll_lua_close},
+ {"lua_gettop", (luaV_function) &dll_lua_gettop},
+ {"lua_settop", (luaV_function) &dll_lua_settop},
+ {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue},
+ {"lua_replace", (luaV_function) &dll_lua_replace},
++ {"lua_remove", (luaV_function) &dll_lua_remove},
+ {"lua_isnumber", (luaV_function) &dll_lua_isnumber},
+ {"lua_isstring", (luaV_function) &dll_lua_isstring},
+ {"lua_type", (luaV_function) &dll_lua_type},
+ {"lua_rawequal", (luaV_function) &dll_lua_rawequal},
+ {"lua_toboolean", (luaV_function) &dll_lua_toboolean},
+ {"lua_tolstring", (luaV_function) &dll_lua_tolstring},
+ {"lua_touserdata", (luaV_function) &dll_lua_touserdata},
+***************
+*** 225,240 ****
+ {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
+ {"lua_getfield", (luaV_function) &dll_lua_getfield},
+ {"lua_rawget", (luaV_function) &dll_lua_rawget},
+ {"lua_createtable", (luaV_function) &dll_lua_createtable},
+ {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
+ {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
+ {"lua_setfield", (luaV_function) &dll_lua_setfield},
+ {"lua_rawset", (luaV_function) &dll_lua_rawset},
+ {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+- {"lua_remove", (luaV_function) &dll_lua_remove},
+ {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+- {"lua_call", (luaV_function) &dll_lua_call},
+- {"lua_pcall", (luaV_function) &dll_lua_pcall},
+ /* libs */
+ {"luaopen_base", (luaV_function) &dll_luaopen_base},
+ {"luaopen_table", (luaV_function) &dll_luaopen_table},
+--- 316,329 ----
+ {"lua_pushlightuserdata", (luaV_function) &dll_lua_pushlightuserdata},
+ {"lua_getfield", (luaV_function) &dll_lua_getfield},
+ {"lua_rawget", (luaV_function) &dll_lua_rawget},
++ {"lua_rawgeti", (luaV_function) &dll_lua_rawgeti},
+ {"lua_createtable", (luaV_function) &dll_lua_createtable},
+ {"lua_newuserdata", (luaV_function) &dll_lua_newuserdata},
+ {"lua_getmetatable", (luaV_function) &dll_lua_getmetatable},
+ {"lua_setfield", (luaV_function) &dll_lua_setfield},
+ {"lua_rawset", (luaV_function) &dll_lua_rawset},
+ {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+ {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
+ /* libs */
+ {"luaopen_base", (luaV_function) &dll_luaopen_base},
+ {"luaopen_table", (luaV_function) &dll_luaopen_table},
+***************
+*** 294,299 ****
+--- 383,398 ----
+
+ #endif /* DYNAMIC_LUA */
+
++ #if LUA_VERSION_NUM > 501
++ static int
++ luaL_typeerror (lua_State *L, int narg, const char *tname)
++ {
++ const char *msg = lua_pushfstring(L, "%s expected, got %s",
++ tname, luaL_typename(L, narg));
++ return luaL_argerror(L, narg, msg);
++ }
++ #endif
++
+
+ /* ======= Internal ======= */
+
+***************
+*** 327,343 ****
+ }
+
+ static void *
+ luaV_checkudata(lua_State *L, int ud, const char *tname)
+ {
+ void *p = luaV_toudata(L, ud, tname);
+! if (p == NULL) luaL_typerror(L, ud, tname);
+ return p;
+ }
+
+ static void
+ luaV_pushtypval(lua_State *L, typval_T *tv)
+ {
+! if (tv == NULL) luaL_error(L, "null type");
+ switch (tv->v_type)
+ {
+ case VAR_STRING:
+--- 426,460 ----
+ }
+
+ static void *
++ luaV_checkcache(lua_State *L, void *p)
++ {
++ luaV_getudata(L, p);
++ if (lua_isnil(L, -1)) luaL_error(L, "invalid object");
++ lua_pop(L, 1);
++ return p;
++ }
++
++ #define luaV_unbox(L,luatyp,ud) (*((luatyp *) lua_touserdata((L),(ud))))
++
++ #define luaV_checkvalid(L,luatyp,ud) \
++ luaV_checkcache((L), (void *) luaV_unbox((L),luatyp,(ud)))
++
++ static void *
+ luaV_checkudata(lua_State *L, int ud, const char *tname)
+ {
+ void *p = luaV_toudata(L, ud, tname);
+! if (p == NULL) luaL_typeerror(L, ud, tname);
+ return p;
+ }
+
+ static void
+ luaV_pushtypval(lua_State *L, typval_T *tv)
+ {
+! if (tv == NULL)
+! {
+! lua_pushnil(L);
+! return;
+! }
+ switch (tv->v_type)
+ {
+ case VAR_STRING:
+***************
+*** 351,418 ****
+ lua_pushnumber(L, (lua_Number) tv->vval.v_float);
+ break;
+ #endif
+! case VAR_LIST: {
+! list_T *l = tv->vval.v_list;
+
+! if (l != NULL)
+ {
+! /* check cache */
+! lua_pushlightuserdata(L, (void *) l);
+! lua_rawget(L, LUA_ENVIRONINDEX);
+! if (lua_isnil(L, -1)) /* not interned? */
+ {
+! listitem_T *li;
+! int n = 0;
+! lua_pop(L, 1); /* nil */
+! lua_newtable(L);
+! lua_pushlightuserdata(L, (void *) l);
+! lua_pushvalue(L, -2);
+! lua_rawset(L, LUA_ENVIRONINDEX);
+! for (li = l->lv_first; li != NULL; li = li->li_next)
+! {
+! luaV_pushtypval(L, &li->li_tv);
+! lua_rawseti(L, -2, ++n);
+! }
+ }
+! }
+! else lua_pushnil(L);
+! break;
+! }
+! case VAR_DICT: {
+! dict_T *d = tv->vval.v_dict;
+!
+! if (d != NULL)
+! {
+! /* check cache */
+! lua_pushlightuserdata(L, (void *) d);
+! lua_rawget(L, LUA_ENVIRONINDEX);
+! if (lua_isnil(L, -1)) /* not interned? */
+ {
+! hashtab_T *ht = &d->dv_hashtab;
+! hashitem_T *hi;
+! int n = ht->ht_used; /* remaining items */
+! lua_pop(L, 1); /* nil */
+! lua_newtable(L);
+! lua_pushlightuserdata(L, (void *) d);
+! lua_pushvalue(L, -2);
+! lua_rawset(L, LUA_ENVIRONINDEX);
+! for (hi = ht->ht_array; n > 0; hi++)
+! {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! dictitem_T *di = dict_lookup(hi);
+! luaV_pushtypval(L, &di->di_tv);
+! lua_setfield(L, -2, (char *) hi->hi_key);
+! n--;
+! }
+! }
+ }
+ }
+- else lua_pushnil(L);
+ break;
+ }
+ default:
+! luaL_error(L, "invalid type");
+ }
+ }
+
+--- 468,537 ----
+ lua_pushnumber(L, (lua_Number) tv->vval.v_float);
+ break;
+ #endif
+! case VAR_LIST:
+! luaV_pushlist(L, tv->vval.v_list);
+! break;
+! case VAR_DICT:
+! luaV_pushdict(L, tv->vval.v_dict);
+! break;
+! default:
+! lua_pushnil(L);
+! }
+! }
+
+! /* converts lua value at 'pos' to typval 'tv' */
+! static void
+! luaV_totypval (lua_State *L, int pos, typval_T *tv)
+! {
+! switch(lua_type(L, pos)) {
+! case LUA_TBOOLEAN:
+! tv->v_type = VAR_NUMBER;
+! tv->vval.v_number = (varnumber_T) lua_toboolean(L, pos);
+! break;
+! case LUA_TSTRING:
+! tv->v_type = VAR_STRING;
+! tv->vval.v_string = vim_strsave((char_u *) lua_tostring(L, pos));
+! break;
+! case LUA_TNUMBER:
+! #ifdef FEAT_FLOAT
+! tv->v_type = VAR_FLOAT;
+! tv->vval.v_float = (float_T) lua_tonumber(L, pos);
+! #else
+! tv->v_type = VAR_NUMBER;
+! tv->vval.v_number = (varnumber_T) lua_tointeger(L, pos);
+! #endif
+! break;
+! case LUA_TUSERDATA: {
+! void *p = lua_touserdata(L, pos);
+! if (lua_getmetatable(L, pos)) /* has metatable? */
+ {
+! /* check list */
+! luaV_getfield(L, LUAVIM_LIST);
+! if (lua_rawequal(L, -1, -2))
+ {
+! tv->v_type = VAR_LIST;
+! tv->vval.v_list = *((luaV_List *) p);
+! ++tv->vval.v_list->lv_refcount;
+! lua_pop(L, 2); /* MTs */
+! return;
+ }
+! /* check dict */
+! luaV_getfield(L, LUAVIM_DICT);
+! if (lua_rawequal(L, -1, -3))
+ {
+! tv->v_type = VAR_DICT;
+! tv->vval.v_dict = *((luaV_Dict *) p);
+! ++tv->vval.v_dict->dv_refcount;
+! lua_pop(L, 3); /* MTs */
+! return;
+ }
++ lua_pop(L, 3); /* MTs */
+ }
+ break;
+ }
+ default:
+! tv->v_type = VAR_NUMBER;
+! tv->vval.v_number = 0;
+ }
+ }
+
+***************
+*** 481,569 ****
+ lua_pop(L, 2); /* original and modified strings */
+ }
+
+
+! /* ======= Buffer type ======= */
+
+! static luaV_Buffer *
+! luaV_newbuffer(lua_State *L, buf_T *buf)
+ {
+! luaV_Buffer *b = (luaV_Buffer *) lua_newuserdata(L, sizeof(luaV_Buffer));
+! *b = buf;
+! lua_pushlightuserdata(L, (void *) buf);
+! lua_pushvalue(L, -2);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[buf] = udata */
+! /* to avoid GC, store as key in env */
+! lua_pushvalue(L, -1);
+! lua_pushboolean(L, 1);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
+! /* set metatable */
+! luaV_getfield(L, LUAVIM_BUFFER);
+ lua_setmetatable(L, -2);
+! return b;
+ }
+
+! static luaV_Buffer *
+! luaV_pushbuffer (lua_State *L, buf_T *buf)
+ {
+! luaV_Buffer *b = NULL;
+! if (buf == NULL)
+! lua_pushnil(L);
+! else {
+! lua_pushlightuserdata(L, (void *) buf);
+! lua_rawget(L, LUA_ENVIRONINDEX);
+! if (lua_isnil(L, -1)) /* not interned? */
+ {
+! lua_pop(L, 1);
+! b = luaV_newbuffer(L, buf);
+ }
+ else
+! b = (luaV_Buffer *) lua_touserdata(L, -1);
+ }
+! return b;
+ }
+
+! /* Buffer metamethods */
+
+ static int
+! luaV_buffer_tostring(lua_State *L)
+ {
+! lua_pushfstring(L, "%s: %p", LUAVIM_BUFFER, lua_touserdata(L, 1));
+ return 1;
+ }
+
+ static int
+ luaV_buffer_len(lua_State *L)
+ {
+! luaV_Buffer *b = lua_touserdata(L, 1);
+! lua_pushinteger(L, (*b)->b_ml.ml_line_count);
+ return 1;
+ }
+
+ static int
+ luaV_buffer_call(lua_State *L)
+ {
+! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+ lua_settop(L, 1);
+! set_curbuf(*b, DOBUF_SPLIT);
+ return 1;
+ }
+
+ static int
+ luaV_buffer_index(lua_State *L)
+ {
+! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+ linenr_T n = (linenr_T) lua_tointeger(L, 2);
+! if (n > 0 && n <= (*b)->b_ml.ml_line_count)
+! luaV_pushline(L, *b, n);
+ else if (lua_isstring(L, 2))
+ {
+ const char *s = lua_tostring(L, 2);
+ if (strncmp(s, "name", 4) == 0)
+! lua_pushstring(L, (char *) (*b)->b_sfname);
+ else if (strncmp(s, "fname", 5) == 0)
+! lua_pushstring(L, (char *) (*b)->b_ffname);
+ else if (strncmp(s, "number", 6) == 0)
+! lua_pushinteger(L, (*b)->b_fnum);
+ /* methods */
+ else if (strncmp(s, "insert", 6) == 0
+ || strncmp(s, "next", 4) == 0
+--- 600,1107 ----
+ lua_pop(L, 2); /* original and modified strings */
+ }
+
++ #define luaV_newtype(typ,tname,luatyp,luatname) \
++ static luatyp * \
++ luaV_new##tname (lua_State *L, typ *obj) \
++ { \
++ luatyp *o = (luatyp *) lua_newuserdata(L, sizeof(luatyp)); \
++ *o = obj; \
++ luaV_setudata(L, obj); /* cache[obj] = udata */ \
++ luaV_getfield(L, luatname); \
++ lua_setmetatable(L, -2); \
++ return o; \
++ }
++
++ #define luaV_pushtype(typ,tname,luatyp) \
++ static luatyp * \
++ luaV_push##tname (lua_State *L, typ *obj) \
++ { \
++ luatyp *o = NULL; \
++ if (obj == NULL) \
++ lua_pushnil(L); \
++ else { \
++ luaV_getudata(L, obj); \
++ if (lua_isnil(L, -1)) /* not interned? */ \
++ { \
++ lua_pop(L, 1); \
++ o = luaV_new##tname(L, obj); \
++ } \
++ else \
++ o = (luatyp *) lua_touserdata(L, -1); \
++ } \
++ return o; \
++ }
++
++ #define luaV_type_tostring(tname,luatname) \
++ static int \
++ luaV_##tname##_tostring (lua_State *L) \
++ { \
++ lua_pushfstring(L, "%s: %p", luatname, lua_touserdata(L, 1)); \
++ return 1; \
++ }
++
+
+! /* adapted from eval.c */
+!
+! #define listitem_alloc() (listitem_T *)alloc(sizeof(listitem_T))
+!
+! static listitem_T *
+! list_find (list_T *l, long n)
+! {
+! listitem_T *li;
+! if (l == NULL || n < -l->lv_len || n >= l->lv_len)
+! return NULL;
+! if (n < 0) /* search backward? */
+! for (li = l->lv_last; n < -1; li = li->li_prev)
+! n++;
+! else /* search forward */
+! for (li = l->lv_first; n > 0; li = li->li_next)
+! n--;
+! return li;
+! }
+
+! static void
+! list_remove (list_T *l, listitem_T *li)
+ {
+! listwatch_T *lw;
+! --l->lv_len;
+! /* fix watchers */
+! for (lw = l->lv_watch; lw != NULL; lw = lw->lw_next)
+! if (lw->lw_item == li)
+! lw->lw_item = li->li_next;
+! /* fix list pointers */
+! if (li->li_next == NULL) /* last? */
+! l->lv_last = li->li_prev;
+! else
+! li->li_next->li_prev = li->li_prev;
+! if (li->li_prev == NULL) /* first? */
+! l->lv_first = li->li_next;
+! else
+! li->li_prev->li_next = li->li_next;
+! l->lv_idx_item = NULL;
+! }
+!
+! static void
+! list_append(list_T *l, listitem_T *item)
+! {
+! if (l->lv_last == NULL) /* empty list? */
+! l->lv_first = item;
+! else
+! l->lv_last->li_next = item;
+! item->li_prev = l->lv_last;
+! item->li_next = NULL;
+! l->lv_last = item;
+! ++l->lv_len;
+! }
+!
+! static int
+! list_insert_tv(list_T *l, typval_T *tv, listitem_T *item)
+! {
+! listitem_T *ni = listitem_alloc();
+!
+! if (ni == NULL)
+! return FAIL;
+! copy_tv(tv, &ni->li_tv);
+! if (item == NULL)
+! list_append(l, ni);
+! else
+! {
+! ni->li_prev = item->li_prev;
+! ni->li_next = item;
+! if (item->li_prev == NULL)
+! {
+! l->lv_first = ni;
+! ++l->lv_idx;
+! }
+! else
+! {
+! item->li_prev->li_next = ni;
+! l->lv_idx_item = NULL;
+! }
+! item->li_prev = ni;
+! ++l->lv_len;
+! }
+! return OK;
+! }
+!
+! /* set references */
+!
+! static void set_ref_in_tv (typval_T *tv, int copyID);
+!
+! static void
+! set_ref_in_dict(dict_T *d, int copyID)
+! {
+! hashtab_T *ht = &d->dv_hashtab;
+! int n = ht->ht_used;
+! hashitem_T *hi;
+! for (hi = ht->ht_array; n > 0; ++hi)
+! if (!HASHITEM_EMPTY(hi))
+! {
+! dictitem_T *di = dict_lookup(hi);
+! set_ref_in_tv(&di->di_tv, copyID);
+! --n;
+! }
+! }
+!
+! static void
+! set_ref_in_list(list_T *l, int copyID)
+! {
+! listitem_T *li;
+! for (li = l->lv_first; li != NULL; li = li->li_next)
+! set_ref_in_tv(&li->li_tv, copyID);
+! }
+!
+! static void
+! set_ref_in_tv(typval_T *tv, int copyID)
+! {
+! if (tv->v_type == VAR_LIST)
+! {
+! list_T *l = tv->vval.v_list;
+! if (l != NULL && l->lv_copyID != copyID)
+! {
+! l->lv_copyID = copyID;
+! set_ref_in_list(l, copyID);
+! }
+! }
+! else if (tv->v_type == VAR_DICT)
+! {
+! dict_T *d = tv->vval.v_dict;
+! if (d != NULL && d->dv_copyID != copyID)
+! {
+! d->dv_copyID = copyID;
+! set_ref_in_dict(d, copyID);
+! }
+! }
+! }
+!
+!
+! /* ======= List type ======= */
+!
+! static luaV_List *
+! luaV_newlist (lua_State *L, list_T *lis)
+! {
+! luaV_List *l = (luaV_List *) lua_newuserdata(L, sizeof(luaV_List));
+! *l = lis;
+! lis->lv_refcount++; /* reference in Lua */
+! luaV_setudata(L, lis); /* cache[lis] = udata */
+! luaV_getfield(L, LUAVIM_LIST);
+ lua_setmetatable(L, -2);
+! return l;
+ }
+
+! luaV_pushtype(list_T, list, luaV_List)
+! luaV_type_tostring(list, LUAVIM_LIST)
+!
+! static int
+! luaV_list_gc (lua_State *L)
+ {
+! list_unref(luaV_unbox(L, luaV_List, 1));
+! return 0;
+! }
+!
+! static int
+! luaV_list_len (lua_State *L)
+! {
+! list_T *l = luaV_unbox(L, luaV_List, 1);
+! lua_pushinteger(L, (l == NULL) ? 0 : (int) l->lv_len);
+! return 1;
+! }
+!
+! static int
+! luaV_list_iter (lua_State *L)
+! {
+! listitem_T *li = (listitem_T *) lua_touserdata(L, lua_upvalueindex(2));
+! if (li == NULL) return 0;
+! luaV_pushtypval(L, &li->li_tv);
+! lua_pushlightuserdata(L, (void *) li->li_next);
+! lua_replace(L, lua_upvalueindex(2));
+! return 1;
+! }
+!
+! static int
+! luaV_list_call (lua_State *L)
+! {
+! list_T *l = luaV_unbox(L, luaV_List, 1);
+! lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
+! lua_pushlightuserdata(L, (void *) l->lv_first);
+! lua_pushcclosure(L, luaV_list_iter, 2);
+! return 1;
+! }
+!
+! static int
+! luaV_list_index (lua_State *L)
+! {
+! list_T *l = luaV_unbox(L, luaV_List, 1);
+! if (lua_isnumber(L, 2)) /* list item? */
+! {
+! listitem_T *li = list_find(l, (long) luaL_checkinteger(L, 2));
+! if (li == NULL)
+! lua_pushnil(L);
+! else
+! luaV_pushtypval(L, &li->li_tv);
+! }
+! else if (lua_isstring(L, 2)) /* method? */
+! {
+! const char *s = lua_tostring(L, 2);
+! if (strncmp(s, "add", 3) == 0
+! || strncmp(s, "insert", 6) == 0
+! || strncmp(s, "extend", 6) == 0)
+ {
+! lua_getmetatable(L, 1);
+! lua_getfield(L, -1, s);
+ }
+ else
+! lua_pushnil(L);
+ }
+! else
+! lua_pushnil(L);
+! return 1;
+ }
+
+! static int
+! luaV_list_newindex (lua_State *L)
+! {
+! list_T *l = luaV_unbox(L, luaV_List, 1);
+! long n = (long) luaL_checkinteger(L, 2);
+! listitem_T *li;
+! if (l->lv_lock)
+! luaL_error(L, "list is locked");
+! li = list_find(l, n);
+! if (li == NULL) return 0;
+! if (lua_isnil(L, 3)) /* remove? */
+! {
+! list_remove(l, li);
+! clear_tv(&li->li_tv);
+! vim_free(li);
+! }
+! else
+! {
+! typval_T v;
+! luaV_totypval(L, 3, &v);
+! clear_tv(&li->li_tv);
+! copy_tv(&v, &li->li_tv);
+! }
+! return 0;
+! }
+
+ static int
+! luaV_list_add (lua_State *L)
+ {
+! luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
+! list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
+! listitem_T *li;
+! if (l->lv_lock)
+! luaL_error(L, "list is locked");
+! li = listitem_alloc();
+! if (li != NULL)
+! {
+! typval_T v;
+! lua_settop(L, 2);
+! luaV_totypval(L, 2, &v);
+! copy_tv(&v, &li->li_tv);
+! list_append(l, li);
+! }
+! lua_settop(L, 1);
+ return 1;
+ }
+
+ static int
++ luaV_list_insert (lua_State *L)
++ {
++ luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST);
++ list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis);
++ long pos = luaL_optlong(L, 3, 0);
++ listitem_T *li = NULL;
++ typval_T v;
++ if (l->lv_lock)
++ luaL_error(L, "list is locked");
++ if (pos < l->lv_len)
++ {
++ li = list_find(l, pos);
++ if (li == NULL)
++ luaL_error(L, "invalid position");
++ }
++ lua_settop(L, 2);
++ luaV_totypval(L, 2, &v);
++ list_insert_tv(l, &v, li);
++ lua_settop(L, 1);
++ return 1;
++ }
++
++ static const luaL_Reg luaV_List_mt[] = {
++ {"__tostring", luaV_list_tostring},
++ {"__gc", luaV_list_gc},
++ {"__len", luaV_list_len},
++ {"__call", luaV_list_call},
++ {"__index", luaV_list_index},
++ {"__newindex", luaV_list_newindex},
++ {"add", luaV_list_add},
++ {"insert", luaV_list_insert},
++ {NULL, NULL}
++ };
++
++
++ /* ======= Dict type ======= */
++
++ static luaV_Dict *
++ luaV_newdict (lua_State *L, dict_T *dic)
++ {
++ luaV_Dict *d = (luaV_Dict *) lua_newuserdata(L, sizeof(luaV_Dict));
++ *d = dic;
++ dic->dv_refcount++; /* reference in Lua */
++ luaV_setudata(L, dic); /* cache[dic] = udata */
++ luaV_getfield(L, LUAVIM_DICT);
++ lua_setmetatable(L, -2);
++ return d;
++ }
++
++ luaV_pushtype(dict_T, dict, luaV_Dict)
++ luaV_type_tostring(dict, LUAVIM_DICT)
++
++ static int
++ luaV_dict_gc (lua_State *L)
++ {
++ dict_unref(luaV_unbox(L, luaV_Dict, 1));
++ return 0;
++ }
++
++ static int
++ luaV_dict_len (lua_State *L)
++ {
++ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++ lua_pushinteger(L, (d == NULL) ? 0 : (int) d->dv_hashtab.ht_used);
++ return 1;
++ }
++
++ static int
++ luaV_dict_iter (lua_State *L)
++ {
++ hashitem_T *hi = (hashitem_T *) lua_touserdata(L, lua_upvalueindex(2));
++ int n = lua_tointeger(L, lua_upvalueindex(3));
++ dictitem_T *di;
++ if (n <= 0) return 0;
++ while (HASHITEM_EMPTY(hi)) hi++;
++ di = dict_lookup(hi);
++ lua_pushstring(L, (char *) hi->hi_key);
++ luaV_pushtypval(L, &di->di_tv);
++ lua_pushlightuserdata(L, (void *) (hi + 1));
++ lua_replace(L, lua_upvalueindex(2));
++ lua_pushinteger(L, n - 1);
++ lua_replace(L, lua_upvalueindex(3));
++ return 2;
++ }
++
++ static int
++ luaV_dict_call (lua_State *L)
++ {
++ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++ hashtab_T *ht = &d->dv_hashtab;
++ lua_pushvalue(L, lua_upvalueindex(1)); /* pass cache table along */
++ lua_pushlightuserdata(L, (void *) ht->ht_array);
++ lua_pushinteger(L, ht->ht_used); /* # remaining items */
++ lua_pushcclosure(L, luaV_dict_iter, 3);
++ return 1;
++ }
++
++ static int
++ luaV_dict_index (lua_State *L)
++ {
++ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++ char_u *key = (char_u *) luaL_checkstring(L, 2);
++ dictitem_T *di = dict_find(d, key, -1);
++ if (di == NULL)
++ lua_pushnil(L);
++ else
++ luaV_pushtypval(L, &di->di_tv);
++ return 1;
++ }
++
++ static int
++ luaV_dict_newindex (lua_State *L)
++ {
++ dict_T *d = luaV_unbox(L, luaV_Dict, 1);
++ char_u *key = (char_u *) luaL_checkstring(L, 2);
++ dictitem_T *di;
++ if (d->dv_lock)
++ luaL_error(L, "dict is locked");
++ di = dict_find(d, key, -1);
++ if (di == NULL) /* non-existing key? */
++ {
++ if (lua_isnil(L, 3)) return 0;
++ di = dictitem_alloc(key);
++ if (di == NULL) return 0;
++ if (dict_add(d, di) == FAIL)
++ {
++ vim_free(di);
++ return 0;
++ }
++ }
++ else
++ clear_tv(&di->di_tv);
++ if (lua_isnil(L, 3)) /* remove? */
++ {
++ hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
++ hash_remove(&d->dv_hashtab, hi);
++ dictitem_free(di);
++ }
++ else {
++ typval_T v;
++ luaV_totypval(L, 3, &v);
++ copy_tv(&v, &di->di_tv);
++ }
++ return 0;
++ }
++
++ static const luaL_Reg luaV_Dict_mt[] = {
++ {"__tostring", luaV_dict_tostring},
++ {"__gc", luaV_dict_gc},
++ {"__len", luaV_dict_len},
++ {"__call", luaV_dict_call},
++ {"__index", luaV_dict_index},
++ {"__newindex", luaV_dict_newindex},
++ {NULL, NULL}
++ };
++
++
++ /* ======= Buffer type ======= */
++
++ luaV_newtype(buf_T, buffer, luaV_Buffer, LUAVIM_BUFFER)
++ luaV_pushtype(buf_T, buffer, luaV_Buffer)
++ luaV_type_tostring(buffer, LUAVIM_BUFFER)
++
++ static int
+ luaV_buffer_len(lua_State *L)
+ {
+! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+! lua_pushinteger(L, b->b_ml.ml_line_count);
+ return 1;
+ }
+
+ static int
+ luaV_buffer_call(lua_State *L)
+ {
+! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+ lua_settop(L, 1);
+! set_curbuf(b, DOBUF_SPLIT);
+ return 1;
+ }
+
+ static int
+ luaV_buffer_index(lua_State *L)
+ {
+! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+ linenr_T n = (linenr_T) lua_tointeger(L, 2);
+! if (n > 0 && n <= b->b_ml.ml_line_count)
+! luaV_pushline(L, b, n);
+ else if (lua_isstring(L, 2))
+ {
+ const char *s = lua_tostring(L, 2);
+ if (strncmp(s, "name", 4) == 0)
+! lua_pushstring(L, (char *) b->b_sfname);
+ else if (strncmp(s, "fname", 5) == 0)
+! lua_pushstring(L, (char *) b->b_ffname);
+ else if (strncmp(s, "number", 6) == 0)
+! lua_pushinteger(L, b->b_fnum);
+ /* methods */
+ else if (strncmp(s, "insert", 6) == 0
+ || strncmp(s, "next", 4) == 0
+***************
+*** 584,600 ****
+ static int
+ luaV_buffer_newindex(lua_State *L)
+ {
+! luaV_Buffer *b = (luaV_Buffer *) lua_touserdata(L, 1);
+ linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! if (n < 1 || n > (*b)->b_ml.ml_line_count)
+ luaL_error(L, "invalid line number");
+ if (lua_isnil(L, 3)) /* delete line */
+ {
+ buf_T *buf = curbuf;
+! curbuf = *b;
+ if (u_savedel(n, 1L) == FAIL)
+ {
+ curbuf = buf;
+--- 1122,1138 ----
+ static int
+ luaV_buffer_newindex(lua_State *L)
+ {
+! buf_T *b = (buf_T *) luaV_checkvalid(L, luaV_Buffer, 1);
+ linenr_T n = (linenr_T) luaL_checkinteger(L, 2);
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! if (n < 1 || n > b->b_ml.ml_line_count)
+ luaL_error(L, "invalid line number");
+ if (lua_isnil(L, 3)) /* delete line */
+ {
+ buf_T *buf = curbuf;
+! curbuf = b;
+ if (u_savedel(n, 1L) == FAIL)
+ {
+ curbuf = buf;
+***************
+*** 607,613 ****
+ }
+ else {
+ deleted_lines_mark(n, 1L);
+! if (*b == curwin->w_buffer) /* fix cursor in current window? */
+ {
+ if (curwin->w_cursor.lnum >= n)
+ {
+--- 1145,1151 ----
+ }
+ else {
+ deleted_lines_mark(n, 1L);
+! if (b == curwin->w_buffer) /* fix cursor in current window? */
+ {
+ if (curwin->w_cursor.lnum >= n)
+ {
+***************
+*** 627,633 ****
+ else if (lua_isstring(L, 3)) /* update line */
+ {
+ buf_T *buf = curbuf;
+! curbuf = *b;
+ if (u_savesub(n) == FAIL)
+ {
+ curbuf = buf;
+--- 1165,1171 ----
+ else if (lua_isstring(L, 3)) /* update line */
+ {
+ buf_T *buf = curbuf;
+! curbuf = b;
+ if (u_savesub(n) == FAIL)
+ {
+ curbuf = buf;
+***************
+*** 640,646 ****
+ }
+ else changed_bytes(n, 0);
+ curbuf = buf;
+! if (*b == curwin->w_buffer)
+ check_cursor_col();
+ }
+ else
+--- 1178,1184 ----
+ }
+ else changed_bytes(n, 0);
+ curbuf = buf;
+! if (b == curwin->w_buffer)
+ check_cursor_col();
+ }
+ else
+***************
+*** 651,658 ****
+ static int
+ luaV_buffer_insert(lua_State *L)
+ {
+! luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! linenr_T last = (*b)->b_ml.ml_line_count;
+ linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
+ buf_T *buf;
+ luaL_checktype(L, 2, LUA_TSTRING);
+--- 1189,1197 ----
+ static int
+ luaV_buffer_insert(lua_State *L)
+ {
+! luaV_Buffer *lb = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! buf_T *b = (buf_T *) luaV_checkcache(L, (void *) *lb);
+! linenr_T last = b->b_ml.ml_line_count;
+ linenr_T n = (linenr_T) luaL_optinteger(L, 3, last);
+ buf_T *buf;
+ luaL_checktype(L, 2, LUA_TSTRING);
+***************
+*** 664,670 ****
+ if (n > last) n = last;
+ /* insert */
+ buf = curbuf;
+! curbuf = *b;
+ if (u_save(n, n + 1) == FAIL)
+ {
+ curbuf = buf;
+--- 1203,1209 ----
+ if (n > last) n = last;
+ /* insert */
+ buf = curbuf;
+! curbuf = b;
+ if (u_save(n, n + 1) == FAIL)
+ {
+ curbuf = buf;
+***************
+*** 686,692 ****
+ luaV_buffer_next(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! luaV_pushbuffer(L, (*b)->b_next);
+ return 1;
+ }
+
+--- 1225,1232 ----
+ luaV_buffer_next(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
+! luaV_pushbuffer(L, buf->b_next);
+ return 1;
+ }
+
+***************
+*** 694,700 ****
+ luaV_buffer_previous(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! luaV_pushbuffer(L, (*b)->b_prev);
+ return 1;
+ }
+
+--- 1234,1241 ----
+ luaV_buffer_previous(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! buf_T *buf = (buf_T *) luaV_checkcache(L, (void *) *b);
+! luaV_pushbuffer(L, buf->b_prev);
+ return 1;
+ }
+
+***************
+*** 702,709 ****
+ luaV_buffer_isvalid(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! lua_pushlightuserdata(L, (void *) (*b));
+! lua_rawget(L, LUA_ENVIRONINDEX);
+ lua_pushboolean(L, !lua_isnil(L, -1));
+ return 1;
+ }
+--- 1243,1249 ----
+ luaV_buffer_isvalid(lua_State *L)
+ {
+ luaV_Buffer *b = luaV_checkudata(L, 1, LUAVIM_BUFFER);
+! luaV_getudata(L, *b);
+ lua_pushboolean(L, !lua_isnil(L, -1));
+ return 1;
+ }
+***************
+*** 724,801 ****
+
+ /* ======= Window type ======= */
+
+! static luaV_Window *
+! luaV_newwindow(lua_State *L, win_T *win)
+! {
+! luaV_Window *w = (luaV_Window *) lua_newuserdata(L, sizeof(luaV_Window));
+! *w = win;
+! lua_pushlightuserdata(L, (void *) win);
+! lua_pushvalue(L, -2);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[win] = udata */
+! /* to avoid GC, store as key in env */
+! lua_pushvalue(L, -1);
+! lua_pushboolean(L, 1);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = true */
+! /* set metatable */
+! luaV_getfield(L, LUAVIM_WINDOW);
+! lua_setmetatable(L, -2);
+! return w;
+! }
+!
+! static luaV_Window *
+! luaV_pushwindow(lua_State *L, win_T *win)
+! {
+! luaV_Window *w = NULL;
+! if (win == NULL)
+! lua_pushnil(L);
+! else {
+! lua_pushlightuserdata(L, (void *) win);
+! lua_rawget(L, LUA_ENVIRONINDEX);
+! if (lua_isnil(L, -1)) /* not interned? */
+! {
+! lua_pop(L, 1);
+! w = luaV_newwindow(L, win);
+! }
+! else w = (luaV_Window *) lua_touserdata(L, -1);
+! }
+! return w;
+! }
+!
+! /* Window metamethods */
+!
+! static int
+! luaV_window_tostring(lua_State *L)
+! {
+! lua_pushfstring(L, "%s: %p", LUAVIM_WINDOW, lua_touserdata(L, 1));
+! return 1;
+! }
+
+ static int
+ luaV_window_call(lua_State *L)
+ {
+! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+ lua_settop(L, 1);
+! win_goto(*w);
+ return 1;
+ }
+
+ static int
+ luaV_window_index(lua_State *L)
+ {
+! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+ const char *s = luaL_checkstring(L, 2);
+ if (strncmp(s, "buffer", 6) == 0)
+! luaV_pushbuffer(L, (*w)->w_buffer);
+ else if (strncmp(s, "line", 4) == 0)
+! lua_pushinteger(L, (*w)->w_cursor.lnum);
+ else if (strncmp(s, "col", 3) == 0)
+! lua_pushinteger(L, (*w)->w_cursor.col + 1);
+ #ifdef FEAT_VERTSPLIT
+ else if (strncmp(s, "width", 5) == 0)
+! lua_pushinteger(L, W_WIDTH((*w)));
+ #endif
+ else if (strncmp(s, "height", 6) == 0)
+! lua_pushinteger(L, (*w)->w_height);
+ /* methods */
+ else if (strncmp(s, "next", 4) == 0
+ || strncmp(s, "previous", 8) == 0
+--- 1264,1299 ----
+
+ /* ======= Window type ======= */
+
+! luaV_newtype(win_T, window, luaV_Window, LUAVIM_WINDOW)
+! luaV_pushtype(win_T, window, luaV_Window)
+! luaV_type_tostring(window, LUAVIM_WINDOW)
+
+ static int
+ luaV_window_call(lua_State *L)
+ {
+! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+ lua_settop(L, 1);
+! win_goto(w);
+ return 1;
+ }
+
+ static int
+ luaV_window_index(lua_State *L)
+ {
+! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+ const char *s = luaL_checkstring(L, 2);
+ if (strncmp(s, "buffer", 6) == 0)
+! luaV_pushbuffer(L, w->w_buffer);
+ else if (strncmp(s, "line", 4) == 0)
+! lua_pushinteger(L, w->w_cursor.lnum);
+ else if (strncmp(s, "col", 3) == 0)
+! lua_pushinteger(L, w->w_cursor.col + 1);
+ #ifdef FEAT_VERTSPLIT
+ else if (strncmp(s, "width", 5) == 0)
+! lua_pushinteger(L, W_WIDTH(w));
+ #endif
+ else if (strncmp(s, "height", 6) == 0)
+! lua_pushinteger(L, w->w_height);
+ /* methods */
+ else if (strncmp(s, "next", 4) == 0
+ || strncmp(s, "previous", 8) == 0
+***************
+*** 812,818 ****
+ static int
+ luaV_window_newindex (lua_State *L)
+ {
+! luaV_Window *w = (luaV_Window *) lua_touserdata(L, 1);
+ const char *s = luaL_checkstring(L, 2);
+ int v = luaL_checkinteger(L, 3);
+ if (strncmp(s, "line", 4) == 0)
+--- 1310,1316 ----
+ static int
+ luaV_window_newindex (lua_State *L)
+ {
+! win_T *w = (win_T *) luaV_checkvalid(L, luaV_Window, 1);
+ const char *s = luaL_checkstring(L, 2);
+ int v = luaL_checkinteger(L, 3);
+ if (strncmp(s, "line", 4) == 0)
+***************
+*** 820,828 ****
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! if (v < 1 || v > (*w)->w_buffer->b_ml.ml_line_count)
+ luaL_error(L, "line out of range");
+! (*w)->w_cursor.lnum = v;
+ update_screen(VALID);
+ }
+ else if (strncmp(s, "col", 3) == 0)
+--- 1318,1326 ----
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! if (v < 1 || v > w->w_buffer->b_ml.ml_line_count)
+ luaL_error(L, "line out of range");
+! w->w_cursor.lnum = v;
+ update_screen(VALID);
+ }
+ else if (strncmp(s, "col", 3) == 0)
+***************
+*** 830,836 ****
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! (*w)->w_cursor.col = v - 1;
+ update_screen(VALID);
+ }
+ #ifdef FEAT_VERTSPLIT
+--- 1328,1334 ----
+ #ifdef HAVE_SANDBOX
+ luaV_checksandbox(L);
+ #endif
+! w->w_cursor.col = v - 1;
+ update_screen(VALID);
+ }
+ #ifdef FEAT_VERTSPLIT
+***************
+*** 840,846 ****
+ #ifdef FEAT_GUI
+ need_mouse_correct = TRUE;
+ #endif
+! curwin = *w;
+ win_setwidth(v);
+ curwin = win;
+ }
+--- 1338,1344 ----
+ #ifdef FEAT_GUI
+ need_mouse_correct = TRUE;
+ #endif
+! curwin = w;
+ win_setwidth(v);
+ curwin = win;
+ }
+***************
+*** 851,857 ****
+ #ifdef FEAT_GUI
+ need_mouse_correct = TRUE;
+ #endif
+! curwin = *w;
+ win_setheight(v);
+ curwin = win;
+ }
+--- 1349,1355 ----
+ #ifdef FEAT_GUI
+ need_mouse_correct = TRUE;
+ #endif
+! curwin = w;
+ win_setheight(v);
+ curwin = win;
+ }
+***************
+*** 864,870 ****
+ luaV_window_next(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! luaV_pushwindow(L, (*w)->w_next);
+ return 1;
+ }
+
+--- 1362,1369 ----
+ luaV_window_next(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
+! luaV_pushwindow(L, win->w_next);
+ return 1;
+ }
+
+***************
+*** 872,878 ****
+ luaV_window_previous(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! luaV_pushwindow(L, (*w)->w_prev);
+ return 1;
+ }
+
+--- 1371,1378 ----
+ luaV_window_previous(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! win_T *win = (win_T *) luaV_checkcache(L, (void *) *w);
+! luaV_pushwindow(L, win->w_prev);
+ return 1;
+ }
+
+***************
+*** 880,887 ****
+ luaV_window_isvalid(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! lua_pushlightuserdata(L, (void *) (*w));
+! lua_rawget(L, LUA_ENVIRONINDEX);
+ lua_pushboolean(L, !lua_isnil(L, -1));
+ return 1;
+ }
+--- 1380,1386 ----
+ luaV_window_isvalid(lua_State *L)
+ {
+ luaV_Window *w = luaV_checkudata(L, 1, LUAVIM_WINDOW);
+! luaV_getudata(L, *w);
+ lua_pushboolean(L, !lua_isnil(L, -1));
+ return 1;
+ }
+***************
+*** 983,988 ****
+--- 1482,1509 ----
+ }
+
+ static int
++ luaV_list(lua_State *L)
++ {
++ list_T *l = list_alloc();
++ if (l == NULL)
++ lua_pushnil(L);
++ else
++ luaV_newlist(L, l);
++ return 1;
++ }
++
++ static int
++ luaV_dict(lua_State *L)
++ {
++ dict_T *d = dict_alloc();
++ if (d == NULL)
++ lua_pushnil(L);
++ else
++ luaV_newdict(L, d);
++ return 1;
++ }
++
++ static int
+ luaV_buffer(lua_State *L)
+ {
+ buf_T *buf;
+***************
+*** 1008,1022 ****
+ break;
+ }
+ }
+- if (buf == NULL) /* not found? */
+- lua_pushnil(L);
+- else
+- luaV_pushbuffer(L, buf);
+ }
+! else {
+ buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
+! luaV_pushbuffer(L, buf);
+! }
+ return 1;
+ }
+
+--- 1529,1538 ----
+ break;
+ }
+ }
+ }
+! else
+ buf = (lua_toboolean(L, 1)) ? firstbuf : curbuf; /* first buffer? */
+! luaV_pushbuffer(L, buf);
+ return 1;
+ }
+
+***************
+*** 1029,1043 ****
+ int n = lua_tointeger(L, 1);
+ for (win = firstwin; win != NULL; win = win->w_next, n--)
+ if (n == 1) break;
+- if (win == NULL) /* not found? */
+- lua_pushnil(L);
+- else
+- luaV_pushwindow(L, win);
+ }
+! else {
+ win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
+! luaV_pushwindow(L, win);
+! }
+ return 1;
+ }
+
+--- 1545,1554 ----
+ int n = lua_tointeger(L, 1);
+ for (win = firstwin; win != NULL; win = win->w_next, n--)
+ if (n == 1) break;
+ }
+! else
+ win = (lua_toboolean(L, 1)) ? firstwin : curwin; /* first window? */
+! luaV_pushwindow(L, win);
+ return 1;
+ }
+
+***************
+*** 1054,1086 ****
+ }
+
+ static int
+! luaV_isbuffer(lua_State *L)
+! {
+! lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_BUFFER) != NULL);
+! return 1;
+! }
+!
+! static int
+! luaV_iswindow(lua_State *L)
+ {
+! lua_pushboolean(L, luaV_toudata(L, 1, LUAVIM_WINDOW) != NULL);
+! return 1;
+! }
+!
+! /* for freeing buffer and window objects; lightuserdata as arg */
+! static int
+! luaV_free(lua_State *L)
+! {
+! lua_pushvalue(L, 1); /* lightudata */
+! lua_rawget(L, LUA_ENVIRONINDEX);
+! if (!lua_isnil(L, -1))
+ {
+! lua_pushnil(L);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[udata] = nil */
+! lua_pushnil(L);
+! lua_rawset(L, LUA_ENVIRONINDEX); /* env[lightudata] = nil */
+ }
+! return 0;
+ }
+
+ static const luaL_Reg luaV_module[] = {
+--- 1565,1606 ----
+ }
+
+ static int
+! luaV_type(lua_State *L)
+ {
+! luaL_checkany(L, 1);
+! if (lua_type(L, 1) == LUA_TUSERDATA) /* check vim udata? */
+ {
+! lua_settop(L, 1);
+! if (lua_getmetatable(L, 1))
+! {
+! luaV_getfield(L, LUAVIM_LIST);
+! if (lua_rawequal(L, -1, 2))
+! {
+! lua_pushstring(L, "list");
+! return 1;
+! }
+! luaV_getfield(L, LUAVIM_DICT);
+! if (lua_rawequal(L, -1, 2))
+! {
+! lua_pushstring(L, "dict");
+! return 1;
+! }
+! luaV_getfield(L, LUAVIM_BUFFER);
+! if (lua_rawequal(L, -1, 2))
+! {
+! lua_pushstring(L, "buffer");
+! return 1;
+! }
+! luaV_getfield(L, LUAVIM_WINDOW);
+! if (lua_rawequal(L, -1, 2))
+! {
+! lua_pushstring(L, "window");
+! return 1;
+! }
+! }
+ }
+! lua_pushstring(L, luaL_typename(L, 1)); /* fallback */
+! return 1;
+ }
+
+ static const luaL_Reg luaV_module[] = {
+***************
+*** 1088,1111 ****
+ {"eval", luaV_eval},
+ {"beep", luaV_beep},
+ {"line", luaV_line},
+ {"buffer", luaV_buffer},
+ {"window", luaV_window},
+ {"open", luaV_open},
+! {"isbuffer", luaV_isbuffer},
+! {"iswindow", luaV_iswindow},
+ {NULL, NULL}
+ };
+
+ static int
+ luaopen_vim(lua_State *L)
+ {
+! /* set environment */
+ lua_newtable(L);
+ lua_newtable(L);
+! lua_pushliteral(L, "v");
+ lua_setfield(L, -2, "__mode");
+! lua_setmetatable(L, -2);
+! lua_replace(L, LUA_ENVIRONINDEX);
+ /* print */
+ lua_pushcfunction(L, luaV_print);
+ lua_setglobal(L, "print");
+--- 1608,1695 ----
+ {"eval", luaV_eval},
+ {"beep", luaV_beep},
+ {"line", luaV_line},
++ {"list", luaV_list},
++ {"dict", luaV_dict},
+ {"buffer", luaV_buffer},
+ {"window", luaV_window},
+ {"open", luaV_open},
+! {"type", luaV_type},
+ {NULL, NULL}
+ };
+
++ /* for freeing list, dict, buffer and window objects; lightuserdata as arg */
++ static int
++ luaV_free(lua_State *L)
++ {
++ lua_pushnil(L);
++ luaV_setudata(L, lua_touserdata(L, 1));
++ return 0;
++ }
++
++ static int
++ luaV_luaeval (lua_State *L)
++ {
++ luaL_Buffer b;
++ size_t l;
++ const char *str = lua_tolstring(L, 1, &l);
++ typval_T *arg = (typval_T *) lua_touserdata(L, 2);
++ typval_T *rettv = (typval_T *) lua_touserdata(L, 3);
++ luaL_buffinit(L, &b);
++ luaL_addlstring(&b, LUAVIM_EVALHEADER, sizeof(LUAVIM_EVALHEADER) - 1);
++ luaL_addlstring(&b, str, l);
++ luaL_pushresult(&b);
++ str = lua_tolstring(L, -1, &l);
++ if (luaL_loadbuffer(L, str, l, LUAVIM_EVALNAME)) /* compile error? */
++ {
++ luaV_emsg(L);
++ return 0;
++ }
++ luaV_pushtypval(L, arg);
++ if (lua_pcall(L, 1, 1, 0)) /* running error? */
++ {
++ luaV_emsg(L);
++ return 0;
++ }
++ luaV_totypval(L, -1, rettv);
++ return 0;
++ }
++
++ static int
++ luaV_setref (lua_State *L)
++ {
++ int copyID = lua_tointeger(L, 1);
++ typval_T tv;
++ luaV_getfield(L, LUAVIM_LIST);
++ luaV_getfield(L, LUAVIM_DICT);
++ lua_pushnil(L);
++ while (lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */
++ {
++ lua_getmetatable(L, -1);
++ if (lua_rawequal(L, -1, 2)) /* list? */
++ {
++ tv.v_type = VAR_LIST;
++ tv.vval.v_list = (list_T *) lua_touserdata(L, 4); /* key */
++ }
++ else if (lua_rawequal(L, -1, 3)) /* dict? */
++ {
++ tv.v_type = VAR_DICT;
++ tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
++ }
++ lua_pop(L, 2); /* metatable and value */
++ set_ref_in_tv(&tv, copyID);
++ }
++ return 0;
++ }
++
+ static int
+ luaopen_vim(lua_State *L)
+ {
+! /* set cache table */
+ lua_newtable(L);
+ lua_newtable(L);
+! lua_pushstring(L, "v");
+ lua_setfield(L, -2, "__mode");
+! lua_setmetatable(L, -2); /* cache is weak-valued */
+ /* print */
+ lua_pushcfunction(L, luaV_print);
+ lua_setglobal(L, "print");
+***************
+*** 1116,1129 ****
+ lua_pop(L, 1);
+ /* free */
+ lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+! lua_pushcfunction(L, luaV_free);
+ lua_rawset(L, LUA_REGISTRYINDEX);
+ /* register */
+ luaV_newmetatable(L, LUAVIM_BUFFER);
+! luaL_register(L, NULL, luaV_Buffer_mt);
+ luaV_newmetatable(L, LUAVIM_WINDOW);
+! luaL_register(L, NULL, luaV_Window_mt);
+! luaL_register(L, LUAVIM_NAME, luaV_module);
+ return 0;
+ }
+
+--- 1700,1735 ----
+ lua_pop(L, 1);
+ /* free */
+ lua_pushlightuserdata(L, (void *) LUAVIM_FREE);
+! lua_pushvalue(L, 1); /* cache table */
+! lua_pushcclosure(L, luaV_free, 1);
+! lua_rawset(L, LUA_REGISTRYINDEX);
+! /* luaeval */
+! lua_pushlightuserdata(L, (void *) LUAVIM_LUAEVAL);
+! lua_pushvalue(L, 1); /* cache table */
+! lua_pushcclosure(L, luaV_luaeval, 1);
+! lua_rawset(L, LUA_REGISTRYINDEX);
+! /* setref */
+! lua_pushlightuserdata(L, (void *) LUAVIM_SETREF);
+! lua_pushvalue(L, 1); /* cache table */
+! lua_pushcclosure(L, luaV_setref, 1);
+ lua_rawset(L, LUA_REGISTRYINDEX);
+ /* register */
++ luaV_newmetatable(L, LUAVIM_LIST);
++ lua_pushvalue(L, 1);
++ luaV_openlib(L, luaV_List_mt, 1);
++ luaV_newmetatable(L, LUAVIM_DICT);
++ lua_pushvalue(L, 1);
++ luaV_openlib(L, luaV_Dict_mt, 1);
+ luaV_newmetatable(L, LUAVIM_BUFFER);
+! lua_pushvalue(L, 1); /* cache table */
+! luaV_openlib(L, luaV_Buffer_mt, 1);
+ luaV_newmetatable(L, LUAVIM_WINDOW);
+! lua_pushvalue(L, 1); /* cache table */
+! luaV_openlib(L, luaV_Window_mt, 1);
+! lua_newtable(L); /* vim table */
+! lua_pushvalue(L, 1); /* cache table */
+! luaV_openlib(L, luaV_module, 1);
+! lua_setglobal(L, LUAVIM_NAME);
+ return 0;
+ }
+
+***************
+*** 1154,1160 ****
+ static lua_State *L = NULL;
+
+ static int
+! lua_is_open(void)
+ {
+ return L != NULL;
+ }
+--- 1760,1766 ----
+ static lua_State *L = NULL;
+
+ static int
+! lua_isopen(void)
+ {
+ return L != NULL;
+ }
+***************
+*** 1162,1168 ****
+ static int
+ lua_init(void)
+ {
+! if (L == NULL)
+ {
+ #ifdef DYNAMIC_LUA
+ if (!lua_enabled(TRUE))
+--- 1768,1774 ----
+ static int
+ lua_init(void)
+ {
+! if (!lua_isopen())
+ {
+ #ifdef DYNAMIC_LUA
+ if (!lua_enabled(TRUE))
+***************
+*** 1179,1185 ****
+ void
+ lua_end(void)
+ {
+! if (L != NULL)
+ {
+ lua_close(L);
+ L = NULL;
+--- 1785,1791 ----
+ void
+ lua_end(void)
+ {
+! if (lua_isopen())
+ {
+ lua_close(L);
+ L = NULL;
+***************
+*** 1273,1295 ****
+ }
+ }
+
+! /* buffer */
+ void
+! lua_buffer_free(buf_T *buf)
+ {
+! if (!lua_is_open()) return;
+! luaV_getfield(L, LUAVIM_FREE);
+! lua_pushlightuserdata(L, (void *) buf);
+! lua_call(L, 1, 0);
+ }
+
+- /* window */
+ void
+! lua_window_free(win_T *win)
+ {
+! if (!lua_is_open()) return;
+! luaV_getfield(L, LUAVIM_FREE);
+! lua_pushlightuserdata(L, (void *) win);
+ lua_call(L, 1, 0);
+ }
+
+--- 1879,1914 ----
+ }
+ }
+
+! #define luaV_freetype(typ,tname) \
+! void \
+! lua_##tname##_free(typ *o) \
+! { \
+! if (!lua_isopen()) return; \
+! luaV_getfield(L, LUAVIM_FREE); \
+! lua_pushlightuserdata(L, (void *) o); \
+! lua_call(L, 1, 0); \
+! }
+!
+! luaV_freetype(buf_T, buffer)
+! luaV_freetype(win_T, window)
+!
+ void
+! do_luaeval (char_u *str, typval_T *arg, typval_T *rettv)
+ {
+! lua_init();
+! luaV_getfield(L, LUAVIM_LUAEVAL);
+! lua_pushstring(L, (char *) str);
+! lua_pushlightuserdata(L, (void *) arg);
+! lua_pushlightuserdata(L, (void *) rettv);
+! lua_call(L, 3, 0);
+ }
+
+ void
+! set_ref_in_lua (int copyID)
+ {
+! if (!lua_isopen()) return;
+! luaV_getfield(L, LUAVIM_SETREF);
+! lua_pushinteger(L, copyID);
+ lua_call(L, 1, 0);
+ }
+
+*** ../vim-7.3.489/src/proto/if_lua.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_lua.pro 2012-04-05 16:41:35.000000000 +0200
+***************
+*** 6,9 ****
+--- 6,11 ----
+ void ex_luafile __ARGS((exarg_T *eap));
+ void lua_buffer_free __ARGS((buf_T *buf));
+ void lua_window_free __ARGS((win_T *win));
++ void do_luaeval __ARGS((char_u *str, typval_T *arg, typval_T *rettv));
++ void set_ref_in_lua __ARGS((int copyID));
+ /* vim: set ft=c : */
+*** ../vim-7.3.489/src/version.c 2012-04-05 16:07:01.000000000 +0200
+--- src/version.c 2012-04-05 16:52:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 490,
+ /**/
+
+--
+Even got a Datapoint 3600(?) with a DD50 connector instead of the
+usual DB25... what a nightmare trying to figure out the pinout
+for *that* with no spex...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.491 b/source/ap/vim/patches/7.3.491
new file mode 100644
index 000000000..b675722e1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.491
@@ -0,0 +1,235 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.491
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.491
+Problem: No tests for Lua.
+Solution: Add some simple tests for Lua. (Luis Carvalho)
+Files: src/testdir/test1.in, src/testdir/test85.in, src/testdir/test85.ok
+ src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
+ src/testdir/Make_ming.mak, src/testdir/Make_os2.mak,
+ src/testdir/Make_vms.mms, src/testdir/Makefile
+
+
+*** ../vim-7.3.490/src/testdir/test1.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test1.in 2012-04-05 16:37:37.000000000 +0200
+***************
+*** 15,20 ****
+--- 15,21 ----
+ be set like small.vim above. mbyte.vim is sourced by tests that require the
+ +multi_byte feature.
+ Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
++ Similar logic is applied to the +lua feature, using lua.vim.
+
+ STARTTEST
+ :" Write a single line to test.out to check if testing works at all.
+***************
+*** 28,37 ****
+--- 29,45 ----
+ qa!
+ :w! mbyte.vim
+ :w! mzscheme.vim
++ :w! lua.vim
++ :"
+ :" If +multi_byte feature supported, make mbyte.vim empty.
+ :if has("multi_byte") | sp another | w! mbyte.vim | q | endif
++ :"
+ :" If +mzscheme feature supported, make mzscheme.vim empty.
+ :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif
++ :"
++ :" If +lua feature supported, make lua.vim empty.
++ :if has("lua") | sp another | w! lua.vim | q | endif
++ :"
+ :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
+ :" Otherwise write small.vim to skip the test.
+ :if 1 | q! | endif
+*** ../vim-7.3.490/src/testdir/test85.in 2012-04-05 16:56:12.000000000 +0200
+--- src/testdir/test85.in 2012-04-05 16:44:00.000000000 +0200
+***************
+*** 0 ****
+--- 1,42 ----
++ Test for Lua interface and luaeval() function
++
++ STARTTEST
++ :so small.vim
++ :so lua.vim
++ :set nocompatible viminfo+=nviminfo
++ :lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
++ :lua h = vim.dict(); h.list = l
++ :call garbagecollect()
++ /^1
++ :" change buffer contents
++ :lua curbuf = vim.buffer()
++ :lua curline = vim.eval"line('.')"
++ :lua curbuf[curline] = "1 changed line 1"
++ :" scalar test
++ :let tmp_string = luaeval('"string"')
++ :let tmp_1000 = luaeval('1000')
++ :if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
++ :let scalar_res = "OK"
++ :else
++ :let scalar_res = "FAILED"
++ :endif
++ :call append(search("^1"), "scalar test " . scalar_res)
++ :" dictionary containing a list
++ :let tmp = luaeval("h").list[1]
++ :/^2/put =tmp
++ :" circular list (at the same time test lists containing lists)
++ :lua l[2] = l
++ :let l2 = luaeval("h").list
++ :if l2[2] == l2
++ :let res = "OK"
++ :else
++ :let res = "FAILED"
++ :endif
++ :call setline(search("^3"), "circular test " . res)
++ :?^1?,$w! test.out
++ :qa!
++ ENDTEST
++
++ 1 line 1
++ 2 line 2
++ 3 line 3
+*** ../vim-7.3.490/src/testdir/test85.ok 2012-04-05 16:56:12.000000000 +0200
+--- src/testdir/test85.ok 2012-04-05 16:18:56.000000000 +0200
+***************
+*** 0 ****
+--- 1,5 ----
++ 1 changed line 1
++ scalar test OK
++ 2 line 2
++ dictionary with list OK
++ circular test OK
+*** ../vim-7.3.490/src/testdir/Make_amiga.mak 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_amiga.mak 2012-04-05 16:21:55.000000000 +0200
+***************
+*** 13,18 ****
+--- 13,19 ----
+ # test25 uses symbolic link
+ # test27 can't edit file with "*"
+ # test52 only for Win32
++ # test85 no Lua interface
+
+ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+ test7.out test8.out test9.out \
+*** ../vim-7.3.490/src/testdir/Make_dos.mak 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_dos.mak 2012-04-05 16:22:16.000000000 +0200
+***************
+*** 30,36 ****
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 30,36 ----
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.490/src/testdir/Make_ming.mak 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_ming.mak 2012-04-05 16:22:25.000000000 +0200
+***************
+*** 50,56 ****
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 50,56 ----
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.490/src/testdir/Make_os2.mak 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_os2.mak 2012-04-05 16:22:38.000000000 +0200
+***************
+*** 13,18 ****
+--- 13,19 ----
+ # test25 uses symbolic link
+ # test27 can't edit file with "*" in file name
+ # test52 only for Win32
++ # test85 no Lua interface
+
+ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+ test7.out test8.out test9.out \
+*** ../vim-7.3.490/src/testdir/Make_vms.mms 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Make_vms.mms 2012-04-05 16:23:08.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2012 Mar 28
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+--- 4,10 ----
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2012 Apr 05
+ #
+ # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
+ # Edit the lines in the Configuration section below to select.
+***************
+*** 89,94 ****
+--- 89,95 ----
+ # with too many dots).
+ #
+ # Test 72: unknown reason
++ # Test 85: no Lua interface
+
+ .IFDEF WANT_GUI
+ SCRIPT_GUI = test16.out
+*** ../vim-7.3.490/src/testdir/Makefile 2012-03-28 19:58:34.000000000 +0200
+--- src/testdir/Makefile 2012-04-05 16:21:13.000000000 +0200
+***************
+*** 27,33 ****
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 27,33 ----
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.3.490/src/version.c 2012-04-05 16:53:56.000000000 +0200
+--- src/version.c 2012-04-05 16:55:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 491,
+ /**/
+
+--
+You had connectors? Eeee, when I were a lad we 'ad to carry the
+bits between the computer and the terminal with a spoon...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.492 b/source/ap/vim/patches/7.3.492
new file mode 100644
index 000000000..b32b6f68e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.492
@@ -0,0 +1,718 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.492
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.492
+Problem: Can't indent conditions separately from function arguments.
+Solution: Add the 'k' flag in 'cino. (Lech Lorens)
+Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+ src/testdir/test3.ok
+
+
+*** ../vim-7.3.491/runtime/doc/indent.txt 2011-06-26 03:16:58.000000000 +0200
+--- runtime/doc/indent.txt 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 459,464 ****
+--- 460,481 ----
+ a_short_line(argument, a_short_line(argument,
+ argument); argument);
+ <
++ *cino-k*
++ kN When in unclosed parentheses which follow "if", "for" or
++ "while" and N is non-zero, overrides the behaviour defined by
++ "(N": causes the indent to be N characters relative to the outer
++ context (i.e. the line where "if", "for" or "while" is). Has
++ no effect on deeper levels of nesting. Affects flags like "wN"
++ only for the "if", "for" and "while" conditions. If 0, defaults
++ to behaviour defined by the "(N" flag. (default: 0).
++
++ cino=(0 cino=(0,ks >
++ if (condition1 if (condition1
++ && condition2) && condition2)
++ action(); action();
++ function(argument1 function(argument1
++ && argument2); && argument2);
++ <
+ *cino-m*
+ mN When N is non-zero, line up a line starting with a closing
+ parentheses with the first character of the line with the
+***************
+*** 527,540 ****
+
+ *cino-#*
+ #N When N is non-zero recognize shell/Perl comments, starting with
+! '#'. Default N is zero: don't recognizes '#' comments. Note
+ that lines starting with # will still be seen as preprocessor
+ lines.
+
+
+ The defaults, spelled out in full, are:
+ cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+! c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+ - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+--- 546,559 ----
+
+ *cino-#*
+ #N When N is non-zero recognize shell/Perl comments, starting with
+! '#'. Default N is zero: don't recognize '#' comments. Note
+ that lines starting with # will still be seen as preprocessor
+ lines.
+
+
+ The defaults, spelled out in full, are:
+ cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+! c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+ - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+*** ../vim-7.3.491/src/misc1.c 2012-02-29 13:49:03.000000000 +0100
+--- src/misc1.c 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 5771,5776 ****
+--- 5771,5822 ----
+ }
+
+ /*
++ * Check whether in "p" there is an "if", "for" or "while" before offset.
++ * Return 0 if there is none.
++ * Otherwise return !0 and update "*poffset" to point to the place where the
++ * string was found.
++ */
++ static int
++ cin_is_if_for_while_before_offset(line, offset, poffset)
++ char_u *line;
++ size_t offset;
++ int *poffset;
++ {
++
++ if (offset-- < 2)
++ return 0;
++ while (offset > 2 && vim_iswhite(line[offset]))
++ --offset;
++
++ offset -= 1;
++ if (!STRNCMP(line + offset, "if", 2))
++ goto probablyFound;
++
++ if (offset >= 1)
++ {
++ offset -= 1;
++ if (!STRNCMP(line + offset, "for", 3))
++ goto probablyFound;
++
++ if (offset >= 2)
++ {
++ offset -= 2;
++ if (!STRNCMP(line + offset, "while", 5))
++ goto probablyFound;
++ }
++ }
++
++ return 0;
++ probablyFound:
++ if (!offset || !vim_isIDc(line[offset - 1]))
++ {
++ *poffset = offset;
++ return 1;
++ }
++ return 0;
++ }
++
++ /*
+ * Return TRUE if we are at the end of a do-while.
+ * do
+ * nothing;
+***************
+*** 6124,6130 ****
+
+ /*
+ * Find the matching '(', failing if it is in a comment.
+! * Return NULL of no match found.
+ */
+ static pos_T *
+ find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
+--- 6170,6176 ----
+
+ /*
+ * Find the matching '(', failing if it is in a comment.
+! * Return NULL if no match found.
+ */
+ static pos_T *
+ find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
+***************
+*** 6393,6398 ****
+--- 6439,6450 ----
+ */
+ int ind_cpp_namespace = 0;
+
++ /*
++ * handle continuation lines containing conditions of if(), for() and
++ * while()
++ */
++ int ind_if_for_while = 0;
++
+ pos_T cur_curpos;
+ int amount;
+ int scope_amount;
+***************
+*** 6437,6442 ****
+--- 6489,6495 ----
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
+ int added_to_amount = 0;
++ int is_if_for_while = 0;
+
+ for (options = curbuf->b_p_cino; *options; )
+ {
+***************
+*** 6509,6514 ****
+--- 6562,6568 ----
+ case 'l': ind_keep_case_label = n; break;
+ case '#': ind_hash_comment = n; break;
+ case 'N': ind_cpp_namespace = n; break;
++ case 'k': ind_if_for_while = n; break;
+ }
+ if (*options == ',')
+ ++options;
+***************
+*** 6812,6817 ****
+--- 6866,6900 ----
+ if (amount == -1)
+ {
+ int ignore_paren_col = 0;
++ int is_if_for_while = 0;
++
++ if (ind_if_for_while)
++ {
++ /* Look for the outermost opening parenthesis on this line
++ * and check whether it belongs to an "if", "for" or "while". */
++
++ pos_T cursor_save = curwin->w_cursor;
++ pos_T outermost;
++ char_u *line;
++ int look_col;
++
++ trypos = &our_paren_pos;
++ do {
++ outermost = *trypos;
++ curwin->w_cursor.lnum = outermost.lnum;
++ curwin->w_cursor.col = outermost.col;
++
++ trypos = find_match_paren(ind_maxparen, ind_maxcomment);
++ } while (trypos && trypos->lnum == outermost.lnum);
++
++ curwin->w_cursor = cursor_save;
++
++ line = ml_get(outermost.lnum);
++
++ is_if_for_while =
++ cin_is_if_for_while_before_offset(line, outermost.col,
++ &outermost.col);
++ }
+
+ amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+ look = skipwhite(look);
+***************
+*** 6836,6842 ****
+ curwin->w_cursor.lnum = save_lnum;
+ look = ml_get(our_paren_pos.lnum) + look_col;
+ }
+! if (theline[0] == ')' || ind_unclosed == 0
+ || (!ind_unclosed_noignore && *look == '('
+ && ignore_paren_col == 0))
+ {
+--- 6919,6925 ----
+ curwin->w_cursor.lnum = save_lnum;
+ look = ml_get(our_paren_pos.lnum) + look_col;
+ }
+! if (theline[0] == ')' || (ind_unclosed == 0 && is_if_for_while == 0)
+ || (!ind_unclosed_noignore && *look == '('
+ && ignore_paren_col == 0))
+ {
+***************
+*** 6907,6913 ****
+ {
+ /* Line up with the start of the matching paren line. */
+ }
+! else if (ind_unclosed == 0 || (!ind_unclosed_noignore
+ && *look == '(' && ignore_paren_col == 0))
+ {
+ if (cur_amount != MAXCOL)
+--- 6990,6997 ----
+ {
+ /* Line up with the start of the matching paren line. */
+ }
+! else if ((ind_unclosed == 0 && is_if_for_while == 0)
+! || (!ind_unclosed_noignore
+ && *look == '(' && ignore_paren_col == 0))
+ {
+ if (cur_amount != MAXCOL)
+***************
+*** 6943,6949 ****
+ if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ amount += ind_unclosed2;
+ else
+! amount += ind_unclosed;
+ }
+ /*
+ * For a line starting with ')' use the minimum of the two
+--- 7027,7038 ----
+ if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ amount += ind_unclosed2;
+ else
+! {
+! if (is_if_for_while)
+! amount += ind_if_for_while;
+! else
+! amount += ind_unclosed;
+! }
+ }
+ /*
+ * For a line starting with ')' use the minimum of the two
+*** ../vim-7.3.491/src/testdir/test3.in 2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.in 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1574,1579 ****
+--- 1574,1793 ----
+ }
+
+ STARTTEST
++ :set cino=k2s,(0
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2s,(s
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2s,(s,U1
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ c = c1 &&
++ (
++ c2 ||
++ c3
++ ) && c4;
++ }
++
++ STARTTEST
++ :set cino=k2s,(0,W4
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++
++ a_long_line(
++ argument,
++ argument);
++ a_short_line(argument,
++ argument);
++ }
++
++ STARTTEST
++ :set cino=k2s,u2
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++ }
++
++ STARTTEST
++ :set cino=k2s,(0,w1
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2,(s
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ }
++
++ STARTTEST
+ :set cino=N-s
+ /^NAMESPACESTART
+ =/^NAMESPACEEND
+*** ../vim-7.3.491/src/testdir/test3.ok 2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.ok 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1411,1416 ****
+--- 1411,1602 ----
+ }
+
+
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ c = c1 &&
++ (
++ c2 ||
++ c3
++ ) && c4;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++
++ a_long_line(
++ argument,
++ argument);
++ a_short_line(argument,
++ argument);
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ }
++
++
+ NAMESPACESTART
+ /* valid namespaces with normal indent */
+ namespace
+*** ../vim-7.3.491/src/version.c 2012-04-05 16:56:38.000000000 +0200
+--- src/version.c 2012-04-05 17:14:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 492,
+ /**/
+
+--
+You were lucky to have a LAKE! There were a hundred and sixty of
+us living in a small shoebox in the middle of the road.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.493 b/source/ap/vim/patches/7.3.493
new file mode 100644
index 000000000..ff662b254
--- /dev/null
+++ b/source/ap/vim/patches/7.3.493
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.493
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.493 (after 7.3.492)
+Problem: Two unused variables.
+Solution: Remove them. (Hong Xu)
+Files: src/misc1.c
+
+
+*** ../vim-7.3.492/src/misc1.c 2012-04-05 17:17:38.000000000 +0200
+--- src/misc1.c 2012-04-06 13:49:39.000000000 +0200
+***************
+*** 6489,6495 ****
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
+ int added_to_amount = 0;
+- int is_if_for_while = 0;
+
+ for (options = curbuf->b_p_cino; *options; )
+ {
+--- 6489,6494 ----
+***************
+*** 6876,6882 ****
+ pos_T cursor_save = curwin->w_cursor;
+ pos_T outermost;
+ char_u *line;
+- int look_col;
+
+ trypos = &our_paren_pos;
+ do {
+--- 6875,6880 ----
+*** ../vim-7.3.492/src/version.c 2012-04-05 17:17:38.000000000 +0200
+--- src/version.c 2012-04-06 13:50:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 493,
+ /**/
+
+--
+Not too long ago, compress was something you did to garbage...
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.494 b/source/ap/vim/patches/7.3.494
new file mode 100644
index 000000000..81bd24b7d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.494
@@ -0,0 +1,186 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.494
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.494 (after 7.3.491)
+Problem: Can't compile with Lua 9.1 or dynamic Lua.
+Solution: Fix dll_ methods. Fix luado(). (Muraoka Taro, Luis Carvalho)
+Files: src/if_lua.c
+
+
+*** ../vim-7.3.493/src/if_lua.c 2012-04-05 16:53:56.000000000 +0200
+--- src/if_lua.c 2012-04-06 14:24:06.000000000 +0200
+***************
+*** 95,100 ****
+--- 95,101 ----
+ #define luaL_loadbufferx dll_luaL_loadbufferx
+ #define luaL_argerror dll_luaL_argerror
+ #endif
++ #define luaL_checkany dll_luaL_checkany
+ #define luaL_checklstring dll_luaL_checklstring
+ #define luaL_checkinteger dll_luaL_checkinteger
+ #define luaL_optinteger dll_luaL_optinteger
+***************
+*** 117,124 ****
+ #define lua_pcallk dll_lua_pcallk
+ #define lua_getglobal dll_lua_getglobal
+ #define lua_setglobal dll_lua_setglobal
+- #define lua_typename dll_lua_typename
+ #endif
+ #define lua_close dll_lua_close
+ #define lua_gettop dll_lua_gettop
+ #define lua_settop dll_lua_settop
+--- 118,125 ----
+ #define lua_pcallk dll_lua_pcallk
+ #define lua_getglobal dll_lua_getglobal
+ #define lua_setglobal dll_lua_setglobal
+ #endif
++ #define lua_typename dll_lua_typename
+ #define lua_close dll_lua_close
+ #define lua_gettop dll_lua_gettop
+ #define lua_settop dll_lua_settop
+***************
+*** 151,156 ****
+--- 152,158 ----
+ #define lua_rawset dll_lua_rawset
+ #define lua_rawseti dll_lua_rawseti
+ #define lua_setmetatable dll_lua_setmetatable
++ #define lua_next dll_lua_next
+ /* libs */
+ #define luaopen_base dll_luaopen_base
+ #define luaopen_table dll_luaopen_table
+***************
+*** 177,182 ****
+--- 179,185 ----
+ int (*dll_luaL_loadbufferx) (lua_State *L, const char *buff, size_t sz, const char *name, const char *mode);
+ int (*dll_luaL_argerror) (lua_State *L, int numarg, const char *extramsg);
+ #endif
++ void (*dll_luaL_checkany) (lua_State *L, int narg);
+ const char *(*dll_luaL_checklstring) (lua_State *L, int numArg, size_t *l);
+ lua_Integer (*dll_luaL_checkinteger) (lua_State *L, int numArg);
+ lua_Integer (*dll_luaL_optinteger) (lua_State *L, int nArg, lua_Integer def);
+***************
+*** 201,208 ****
+ int ctx, lua_CFunction k);
+ void (*dll_lua_getglobal) (lua_State *L, const char *var);
+ void (*dll_lua_setglobal) (lua_State *L, const char *var);
+- const char *(*dll_lua_typename) (lua_State *L, int tp);
+ #endif
+ void (*dll_lua_close) (lua_State *L);
+ int (*dll_lua_gettop) (lua_State *L);
+ void (*dll_lua_settop) (lua_State *L, int idx);
+--- 204,211 ----
+ int ctx, lua_CFunction k);
+ void (*dll_lua_getglobal) (lua_State *L, const char *var);
+ void (*dll_lua_setglobal) (lua_State *L, const char *var);
+ #endif
++ const char *(*dll_lua_typename) (lua_State *L, int tp);
+ void (*dll_lua_close) (lua_State *L);
+ int (*dll_lua_gettop) (lua_State *L);
+ void (*dll_lua_settop) (lua_State *L, int idx);
+***************
+*** 235,240 ****
+--- 238,244 ----
+ void (*dll_lua_rawset) (lua_State *L, int idx);
+ void (*dll_lua_rawseti) (lua_State *L, int idx, int n);
+ int (*dll_lua_setmetatable) (lua_State *L, int objindex);
++ int (*dll_lua_next) (lua_State *L, int idx);
+ /* libs */
+ int (*dll_luaopen_base) (lua_State *L);
+ int (*dll_luaopen_table) (lua_State *L);
+***************
+*** 268,273 ****
+--- 272,278 ----
+ {"luaL_loadbufferx", (luaV_function) &dll_luaL_loadbufferx},
+ {"luaL_argerror", (luaV_function) &dll_luaL_argerror},
+ #endif
++ {"luaL_checkany", (luaV_function) &dll_luaL_checkany},
+ {"luaL_checklstring", (luaV_function) &dll_luaL_checklstring},
+ {"luaL_checkinteger", (luaV_function) &dll_luaL_checkinteger},
+ {"luaL_optinteger", (luaV_function) &dll_luaL_optinteger},
+***************
+*** 290,297 ****
+ {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
+ {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
+ {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
+- {"lua_typename", (luaV_function) &dll_lua_typename},
+ #endif
+ {"lua_close", (luaV_function) &dll_lua_close},
+ {"lua_gettop", (luaV_function) &dll_lua_gettop},
+ {"lua_settop", (luaV_function) &dll_lua_settop},
+--- 295,302 ----
+ {"lua_pcallk", (luaV_function) &dll_lua_pcallk},
+ {"lua_getglobal", (luaV_function) &dll_lua_getglobal},
+ {"lua_setglobal", (luaV_function) &dll_lua_setglobal},
+ #endif
++ {"lua_typename", (luaV_function) &dll_lua_typename},
+ {"lua_close", (luaV_function) &dll_lua_close},
+ {"lua_gettop", (luaV_function) &dll_lua_gettop},
+ {"lua_settop", (luaV_function) &dll_lua_settop},
+***************
+*** 324,329 ****
+--- 329,335 ----
+ {"lua_rawset", (luaV_function) &dll_lua_rawset},
+ {"lua_rawseti", (luaV_function) &dll_lua_rawseti},
+ {"lua_setmetatable", (luaV_function) &dll_lua_setmetatable},
++ {"lua_next", (luaV_function) &dll_lua_next},
+ /* libs */
+ {"luaopen_base", (luaV_function) &dll_luaopen_base},
+ {"luaopen_table", (luaV_function) &dll_luaopen_table},
+***************
+*** 1828,1834 ****
+ }
+ luaV_setrange(L, eap->line1, eap->line2);
+ luaL_buffinit(L, &b);
+! luaL_addlstring(&b, "return function(line) ", 22); /* header */
+ luaL_addlstring(&b, s, strlen(s));
+ luaL_addlstring(&b, " end", 4); /* footer */
+ luaL_pushresult(&b);
+--- 1834,1840 ----
+ }
+ luaV_setrange(L, eap->line1, eap->line2);
+ luaL_buffinit(L, &b);
+! luaL_addlstring(&b, "return function(line, linenr) ", 30); /* header */
+ luaL_addlstring(&b, s, strlen(s));
+ luaL_addlstring(&b, " end", 4); /* footer */
+ luaL_pushresult(&b);
+***************
+*** 1845,1851 ****
+ {
+ lua_pushvalue(L, -1); /* function */
+ luaV_pushline(L, curbuf, l); /* current line as arg */
+! if (lua_pcall(L, 1, 1, 0))
+ {
+ luaV_emsg(L);
+ break;
+--- 1851,1858 ----
+ {
+ lua_pushvalue(L, -1); /* function */
+ luaV_pushline(L, curbuf, l); /* current line as arg */
+! lua_pushinteger(L, l); /* current line number as arg */
+! if (lua_pcall(L, 2, 1, 0))
+ {
+ luaV_emsg(L);
+ break;
+*** ../vim-7.3.493/src/version.c 2012-04-06 13:56:00.000000000 +0200
+--- src/version.c 2012-04-06 14:25:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 494,
+ /**/
+
+--
+Why doesn't Tarzan have a beard?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.495 b/source/ap/vim/patches/7.3.495
new file mode 100644
index 000000000..54c230627
--- /dev/null
+++ b/source/ap/vim/patches/7.3.495
@@ -0,0 +1,124 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.4
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.495 (after 7.3.492)
+Problem: Compiler warnings.
+Solution: Add function declaration. Remove "offset" argument.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.494/src/misc1.c 2012-04-06 13:56:00.000000000 +0200
+--- src/misc1.c 2012-04-09 20:25:58.000000000 +0200
+***************
+*** 4972,4977 ****
+--- 4972,4978 ----
+ static int cin_iselse __ARGS((char_u *));
+ static int cin_isdo __ARGS((char_u *));
+ static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int));
++ static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset));
+ static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment));
+ static int cin_isbreak __ARGS((char_u *));
+ static int cin_is_cpp_baseclass __ARGS((colnr_T *col));
+***************
+*** 5771,5787 ****
+ }
+
+ /*
+! * Check whether in "p" there is an "if", "for" or "while" before offset.
+ * Return 0 if there is none.
+ * Otherwise return !0 and update "*poffset" to point to the place where the
+ * string was found.
+ */
+ static int
+! cin_is_if_for_while_before_offset(line, offset, poffset)
+ char_u *line;
+- size_t offset;
+ int *poffset;
+ {
+
+ if (offset-- < 2)
+ return 0;
+--- 5772,5788 ----
+ }
+
+ /*
+! * Check whether in "p" there is an "if", "for" or "while" before "*poffset".
+ * Return 0 if there is none.
+ * Otherwise return !0 and update "*poffset" to point to the place where the
+ * string was found.
+ */
+ static int
+! cin_is_if_for_while_before_offset(line, poffset)
+ char_u *line;
+ int *poffset;
+ {
++ int offset = *poffset;
+
+ if (offset-- < 2)
+ return 0;
+***************
+*** 5805,5812 ****
+ goto probablyFound;
+ }
+ }
+-
+ return 0;
+ probablyFound:
+ if (!offset || !vim_isIDc(line[offset - 1]))
+ {
+--- 5806,5813 ----
+ goto probablyFound;
+ }
+ }
+ return 0;
++
+ probablyFound:
+ if (!offset || !vim_isIDc(line[offset - 1]))
+ {
+***************
+*** 6890,6897 ****
+ line = ml_get(outermost.lnum);
+
+ is_if_for_while =
+! cin_is_if_for_while_before_offset(line, outermost.col,
+! &outermost.col);
+ }
+
+ amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+--- 6891,6897 ----
+ line = ml_get(outermost.lnum);
+
+ is_if_for_while =
+! cin_is_if_for_while_before_offset(line, &outermost.col);
+ }
+
+ amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+*** ../vim-7.3.494/src/version.c 2012-04-06 14:30:55.000000000 +0200
+--- src/version.c 2012-04-09 20:41:44.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 495,
+ /**/
+
+--
+ [clop clop]
+GUARD #1: Halt! Who goes there?
+ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of
+ Camelot. King of the Britons, defeator of the Saxons, sovereign of
+ all England!
+GUARD #1: Pull the other one!
+ The Quest for the Holy Grail (Monty Python)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.496 b/source/ap/vim/patches/7.3.496
new file mode 100644
index 000000000..8b110517c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.496
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.496
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.496
+Problem: MS-DOS: When "diff" trips over difference in line separators some
+ tests fail.
+Solution: Make some .ok files use unix line separators. (David Pope)
+Files: src/testdir/Make_dos.mak, src/testdir/Make_ming.mak
+
+
+*** ../vim-7.3.495/src/testdir/Make_dos.mak 2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_dos.mak 2012-04-09 21:23:43.000000000 +0200
+***************
+*** 52,58 ****
+
+ fixff:
+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q dotest.in
+
+ clean:
+ -del *.out
+--- 52,59 ----
+
+ fixff:
+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
+! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
+! dotest.in test60.ok test71.ok test74.ok
+
+ clean:
+ -del *.out
+*** ../vim-7.3.495/src/testdir/Make_ming.mak 2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_ming.mak 2012-04-09 21:25:55.000000000 +0200
+***************
+*** 75,80 ****
+--- 75,82 ----
+
+ fixff:
+ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok
++ -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \
++ dotest.in test60.ok test71.ok test74.ok
+
+ clean:
+ -$(DEL) *.out
+*** ../vim-7.3.495/src/version.c 2012-04-09 20:42:20.000000000 +0200
+--- src/version.c 2012-04-13 19:10:04.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 496,
+ /**/
+
+--
+There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU,
+Linux, etc, and those who know COBOL. It gets very difficult for me at
+parties, not knowing which group to socialise with :-)
+ Sitaram Chamarty
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.497 b/source/ap/vim/patches/7.3.497
new file mode 100644
index 000000000..5cbffc4ae
--- /dev/null
+++ b/source/ap/vim/patches/7.3.497
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.497
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.497
+Problem: Crash when doing ":python print" and compiled with gcc and
+ the optimizer enabled.
+Solution: Avoid the crash, doesn't really fix the problem. (Christian
+ Brabandt)
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.496/src/if_py_both.h 2012-02-04 20:17:21.000000000 +0100
+--- src/if_py_both.h 2012-04-20 13:24:31.000000000 +0200
+***************
+*** 77,82 ****
+--- 77,87 ----
+ if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len))
+ return NULL;
+
++ /* TODO: This works around a gcc optimizer problem and avoids Vim
++ * from crashing. Should find a real solution. */
++ if (str == NULL)
++ return NULL;
++
+ Py_BEGIN_ALLOW_THREADS
+ Python_Lock_Vim();
+ writer((writefn)(error ? emsg : msg), (char_u *)str, len);
+*** ../vim-7.3.496/src/version.c 2012-04-13 19:11:16.000000000 +0200
+--- src/version.c 2012-04-20 13:26:22.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 497,
+ /**/
+
+--
+There can't be a crisis today, my schedule is already full.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.498 b/source/ap/vim/patches/7.3.498
new file mode 100644
index 000000000..aa9c621ee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.498
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.498
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.498
+Problem: The behavior of the "- register changes depending on value of
+ the 'clipboard' option. (Szamotulski)
+Solution: Also set the "- register when the register is "*" or "+".
+ (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.3.497/src/ops.c 2012-03-23 14:16:19.000000000 +0100
+--- src/ops.c 2012-04-20 13:36:32.000000000 +0200
+***************
+*** 1720,1728 ****
+ did_yank = TRUE;
+ }
+
+! /* Yank into small delete register when no register specified and the
+! * delete is within one line. */
+! if (oap->regname == 0 && oap->motion_type != MLINE
+ && oap->line_count == 1)
+ {
+ oap->regname = '-';
+--- 1720,1733 ----
+ did_yank = TRUE;
+ }
+
+! /* Yank into small delete register when no named register specified
+! * and the delete is within one line. */
+! if ((
+! #ifdef FEAT_CLIPBOARD
+! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
+! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
+! #endif
+! oap->regname == 0) && oap->motion_type != MLINE
+ && oap->line_count == 1)
+ {
+ oap->regname = '-';
+*** ../vim-7.3.497/src/version.c 2012-04-20 13:31:16.000000000 +0200
+--- src/version.c 2012-04-20 13:45:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 498,
+ /**/
+
+--
+Did you ever stop to think... and forget to start again?
+ -- Steven Wright
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.499 b/source/ap/vim/patches/7.3.499
new file mode 100644
index 000000000..4e45e4fb7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.499
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.499
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.499
+Problem: When using any interface language when Vim is waiting for a child
+ process it gets confused by a child process started through the
+ interface.
+Solution: Always used waitpid() instead of wait(). (Yasuhiro Matsumoto)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.498/src/os_unix.c 2012-02-05 22:51:27.000000000 +0100
+--- src/os_unix.c 2012-04-20 15:47:17.000000000 +0200
+***************
+*** 3734,3757 ****
+
+ while (wait_pid != child)
+ {
+! # ifdef _THREAD_SAFE
+! /* Ugly hack: when compiled with Python threads are probably
+! * used, in which case wait() sometimes hangs for no obvious
+! * reason. Use waitpid() instead and loop (like the GUI). */
+! # ifdef __NeXT__
+ wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
+! # else
+ wait_pid = waitpid(child, status, WNOHANG);
+! # endif
+ if (wait_pid == 0)
+ {
+ /* Wait for 1/100 sec before trying again. */
+ mch_delay(10L, TRUE);
+ continue;
+ }
+- # else
+- wait_pid = wait(status);
+- # endif
+ if (wait_pid <= 0
+ # ifdef ECHILD
+ && errno == ECHILD
+--- 3734,3754 ----
+
+ while (wait_pid != child)
+ {
+! /* When compiled with Python threads are probably used, in which case
+! * wait() sometimes hangs for no obvious reason. Use waitpid()
+! * instead and loop (like the GUI). Also needed for other interfaces,
+! * they might call system(). */
+! # ifdef __NeXT__
+ wait_pid = wait4(child, status, WNOHANG, (struct rusage *)0);
+! # else
+ wait_pid = waitpid(child, status, WNOHANG);
+! # endif
+ if (wait_pid == 0)
+ {
+ /* Wait for 1/100 sec before trying again. */
+ mch_delay(10L, TRUE);
+ continue;
+ }
+ if (wait_pid <= 0
+ # ifdef ECHILD
+ && errno == ECHILD
+*** ../vim-7.3.498/src/version.c 2012-04-20 13:46:02.000000000 +0200
+--- src/version.c 2012-04-20 15:54:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 499,
+ /**/
+
+--
+It's not hard to meet expenses, they're everywhere.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.500 b/source/ap/vim/patches/7.3.500
new file mode 100644
index 000000000..b3b6a375e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.500
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.500
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.500
+Problem: Ming makefile unconditionally sets WINVER.
+Solution: Only defined when not already defined. (Yasuhiro Matsumoto)
+Files: src/Make_ming.mak
+
+
+*** ../vim-7.3.499/src/Make_ming.mak 2012-03-28 17:43:06.000000000 +0200
+--- src/Make_ming.mak 2012-04-20 16:03:50.000000000 +0200
+***************
+*** 51,57 ****
+--- 51,59 ----
+ # set to yes to enable OLE support
+ OLE=no
+ # Set the default $(WINVER) to make it work with pre-Win2k
++ ifndef WINVER
+ WINVER = 0x0400
++ endif
+ # Set to yes to enable Cscope support
+ CSCOPE=yes
+ # Set to yes to enable Netbeans support
+*** ../vim-7.3.499/src/version.c 2012-04-20 15:55:10.000000000 +0200
+--- src/version.c 2012-04-20 16:12:34.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 500,
+ /**/
+
+--
+Life is a gift, living is an art. (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.501 b/source/ap/vim/patches/7.3.501
new file mode 100644
index 000000000..a74b02888
--- /dev/null
+++ b/source/ap/vim/patches/7.3.501
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.501
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.501
+Problem: Error for "flush" not being defined when using Ruby command.
+Solution: Defined "flush" as a no-op method. (Kent Sibilev)
+Files: src/if_ruby.c
+
+
+*** ../vim-7.3.500/src/if_ruby.c 2011-08-04 19:34:55.000000000 +0200
+--- src/if_ruby.c 2012-04-20 16:18:56.000000000 +0200
+***************
+*** 1238,1243 ****
+--- 1238,1248 ----
+ return Qnil;
+ }
+
++ static VALUE f_nop(VALUE self)
++ {
++ return Qnil;
++ }
++
+ static VALUE f_p(int argc, VALUE *argv, VALUE self UNUSED)
+ {
+ int i;
+***************
+*** 1259,1264 ****
+--- 1264,1270 ----
+
+ rb_stdout = rb_obj_alloc(rb_cObject);
+ rb_define_singleton_method(rb_stdout, "write", vim_message, 1);
++ rb_define_singleton_method(rb_stdout, "flush", f_nop, 0);
+ rb_define_global_function("p", f_p, -1);
+ }
+
+*** ../vim-7.3.500/src/version.c 2012-04-20 16:13:21.000000000 +0200
+--- src/version.c 2012-04-20 16:19:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 501,
+ /**/
+
+--
+Q: What do you call a fish without an eye?
+A: fsh!
+Q: What do you call a deer with no eyes?
+A: no eye deer.
+Q: What do you call a deer with no eyes and no legs?
+A: still no eye deer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.502 b/source/ap/vim/patches/7.3.502
new file mode 100644
index 000000000..c9710abfb
--- /dev/null
+++ b/source/ap/vim/patches/7.3.502
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.502
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.502
+Problem: Netbeans insert halfway a line actually appends to the line.
+Solution: Insert halfway the line. (Brian Victor)
+Files: src/netbeans.c
+
+
+*** ../vim-7.3.501/src/netbeans.c 2012-01-10 22:31:26.000000000 +0100
+--- src/netbeans.c 2012-04-20 19:44:31.000000000 +0200
+***************
+*** 1812,1825 ****
+ char_u *oldline = ml_get(lnum);
+ char_u *newline;
+
+! /* Insert halfway a line. For simplicity we assume we
+! * need to append to the line. */
+ newline = alloc_check(
+ (unsigned)(STRLEN(oldline) + len + 1));
+ if (newline != NULL)
+ {
+! STRCPY(newline, oldline);
+ STRCAT(newline, args);
+ ml_replace(lnum, newline, FALSE);
+ }
+ }
+--- 1812,1826 ----
+ char_u *oldline = ml_get(lnum);
+ char_u *newline;
+
+! /* Insert halfway a line. */
+ newline = alloc_check(
+ (unsigned)(STRLEN(oldline) + len + 1));
+ if (newline != NULL)
+ {
+! mch_memmove(newline, oldline, (size_t)pos->col);
+! newline[pos->col] = NUL;
+ STRCAT(newline, args);
++ STRCAT(newline, oldline + pos->col);
+ ml_replace(lnum, newline, FALSE);
+ }
+ }
+*** ../vim-7.3.501/src/version.c 2012-04-20 18:05:42.000000000 +0200
+--- src/version.c 2012-04-20 19:46:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 502,
+ /**/
+
+--
+Time flies like an arrow.
+Fruit flies like a banana.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.503 b/source/ap/vim/patches/7.3.503
new file mode 100644
index 000000000..5b776ae0d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.503
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.503
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.503 (after 7.3.501)
+Problem: Warning for unused argument.
+Solution: Add UNUSED.
+Files: src/if_ruby.c
+
+
+*** ../vim-7.3.502/src/if_ruby.c 2012-04-20 18:05:42.000000000 +0200
+--- src/if_ruby.c 2012-04-25 12:26:38.000000000 +0200
+***************
+*** 1238,1244 ****
+ return Qnil;
+ }
+
+! static VALUE f_nop(VALUE self)
+ {
+ return Qnil;
+ }
+--- 1238,1244 ----
+ return Qnil;
+ }
+
+! static VALUE f_nop(VALUE self UNUSED)
+ {
+ return Qnil;
+ }
+*** ../vim-7.3.502/src/version.c 2012-04-20 19:47:00.000000000 +0200
+--- src/version.c 2012-04-25 12:27:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 503,
+ /**/
+
+--
+Why isn't there mouse-flavored cat food?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.504 b/source/ap/vim/patches/7.3.504
new file mode 100644
index 000000000..752279060
--- /dev/null
+++ b/source/ap/vim/patches/7.3.504
@@ -0,0 +1,87 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.504
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.504
+Problem: Commands in help files are not highlighted.
+Solution: Allow for commands in backticks. Adjust CTRL-] to remove the
+ backticks.
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.503/src/ex_cmds.c 2012-04-05 16:04:58.000000000 +0200
+--- src/ex_cmds.c 2012-04-25 12:51:41.000000000 +0200
+***************
+*** 3421,3427 ****
+ * and re-attach to buffer, perhaps.
+ */
+ if (curwin->w_s == &(curwin->w_buffer->b_s))
+! curwin->w_s = &(buf->b_s);
+ #endif
+ curwin->w_buffer = buf;
+ curbuf = buf;
+--- 3421,3427 ----
+ * and re-attach to buffer, perhaps.
+ */
+ if (curwin->w_s == &(curwin->w_buffer->b_s))
+! curwin->w_s = &(buf->b_s);
+ #endif
+ curwin->w_buffer = buf;
+ curbuf = buf;
+***************
+*** 5965,5970 ****
+--- 5965,5993 ----
+ break;
+ }
+ *d = NUL;
++
++ if (*IObuff == '`')
++ {
++ if (d > IObuff + 2 && d[-1] == '`')
++ {
++ /* remove the backticks from `command` */
++ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++ d[-2] = NUL;
++ }
++ else if (d > IObuff + 3 && d[-2] == '`' && d[-1] == ',')
++ {
++ /* remove the backticks and comma from `command`, */
++ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++ d[-3] = NUL;
++ }
++ else if (d > IObuff + 4 && d[-3] == '`'
++ && d[-2] == '\\' && d[-1] == '.')
++ {
++ /* remove the backticks and dot from `command`\. */
++ mch_memmove(IObuff, IObuff + 1, STRLEN(IObuff));
++ d[-4] = NUL;
++ }
++ }
+ }
+ }
+
+*** ../vim-7.3.503/src/version.c 2012-04-25 12:28:05.000000000 +0200
+--- src/version.c 2012-04-25 12:46:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 504,
+ /**/
+
+--
+TIM: That is not an ordinary rabbit ... 'tis the most foul cruel and
+ bad-tempered thing you ever set eyes on.
+ROBIN: You tit. I soiled my armour I was so scared!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.505 b/source/ap/vim/patches/7.3.505
new file mode 100644
index 000000000..1a8a7ea37
--- /dev/null
+++ b/source/ap/vim/patches/7.3.505
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.505
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.505
+Problem: Test 11 fails on MS-Windows in some versions.
+Solution: Fix #ifdefs for whether filtering through a pipe is possible. Move
+ setting b_no_eol_lnum back to where it was before patch 7.3.124.
+ (David Pope)
+Files: src/feature.h, src/eval.c, src/ex_cmds.c, src/fileio.c
+
+
+*** ../vim-7.3.504/src/feature.h 2011-10-20 21:09:25.000000000 +0200
+--- src/feature.h 2012-04-25 16:44:26.000000000 +0200
+***************
+*** 1316,1318 ****
+--- 1316,1326 ----
+ #ifdef FEAT_NORMAL
+ # define FEAT_PERSISTENT_UNDO
+ #endif
++
++ /*
++ * +filterpipe
++ */
++ #if (defined(UNIX) && !defined(USE_SYSTEM)) \
++ || (defined(WIN3264) && defined(FEAT_GUI_W32))
++ # define FEAT_FILTERPIPE
++ #endif
+*** ../vim-7.3.504/src/eval.c 2012-04-05 16:53:55.000000000 +0200
+--- src/eval.c 2012-04-25 16:43:53.000000000 +0200
+***************
+*** 12090,12096 ****
+ #ifdef FEAT_SEARCHPATH
+ "file_in_path",
+ #endif
+! #if (defined(UNIX) && !defined(USE_SYSTEM)) || defined(WIN3264)
+ "filterpipe",
+ #endif
+ #ifdef FEAT_FIND_ID
+--- 12090,12096 ----
+ #ifdef FEAT_SEARCHPATH
+ "file_in_path",
+ #endif
+! #ifdef FEAT_FILTERPIPE
+ "filterpipe",
+ #endif
+ #ifdef FEAT_FIND_ID
+*** ../vim-7.3.504/src/ex_cmds.c 2012-04-25 12:57:23.000000000 +0200
+--- src/ex_cmds.c 2012-04-25 16:46:02.000000000 +0200
+***************
+*** 1113,1119 ****
+ if (do_out)
+ shell_flags |= SHELL_DOOUT;
+
+! #if (!defined(USE_SYSTEM) && defined(UNIX)) || defined(WIN3264)
+ if (!do_in && do_out && !p_stmp)
+ {
+ /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+--- 1113,1119 ----
+ if (do_out)
+ shell_flags |= SHELL_DOOUT;
+
+! #ifdef FEAT_FILTERPIPE
+ if (!do_in && do_out && !p_stmp)
+ {
+ /* Use a pipe to fetch stdout of the command, do not use a temp file. */
+*** ../vim-7.3.504/src/fileio.c 2012-02-29 18:22:03.000000000 +0100
+--- src/fileio.c 2012-04-25 16:40:37.000000000 +0200
+***************
+*** 2655,2664 ****
+ }
+ #endif
+
+- /* Reset now, following writes should not omit the EOL. Also, the line
+- * number will become invalid because of edits. */
+- curbuf->b_no_eol_lnum = 0;
+-
+ if (recoverymode && error)
+ return FAIL;
+ return OK;
+--- 2655,2660 ----
+***************
+*** 5098,5103 ****
+--- 5094,5101 ----
+ {
+ aco_save_T aco;
+
++ curbuf->b_no_eol_lnum = 0; /* in case it was set by the previous read */
++
+ /*
+ * Apply POST autocommands.
+ * Careful: The autocommands may call buf_write() recursively!
+*** ../vim-7.3.504/src/version.c 2012-04-25 12:57:23.000000000 +0200
+--- src/version.c 2012-04-25 16:49:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 505,
+ /**/
+
+--
+Lose weight, NEVER Diet again with
+ The "Invisible Weight Loss Patch"
+ (spam e-mail)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.506 b/source/ap/vim/patches/7.3.506
new file mode 100644
index 000000000..32be6fd10
--- /dev/null
+++ b/source/ap/vim/patches/7.3.506
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.506
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.506
+Problem: GTK gives an error when selecting a non-existent file.
+Solution: Add a handler to avoid the error. (Christian Brabandt)
+Files: src/gui_gtk.c
+
+
+*** ../vim-7.3.505/src/gui_gtk.c 2011-06-26 04:48:56.000000000 +0200
+--- src/gui_gtk.c 2012-04-25 17:08:58.000000000 +0200
+***************
+*** 90,95 ****
+--- 90,100 ----
+ static void entry_activate_cb(GtkWidget *widget, gpointer data);
+ static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
+ static void find_replace_cb(GtkWidget *widget, gpointer data);
++ static void recent_func_log_func(
++ const gchar *log_domain,
++ GLogLevelFlags log_level,
++ const gchar *message,
++ gpointer user_data);
+
+ #if defined(FEAT_TOOLBAR)
+ /*
+***************
+*** 839,844 ****
+--- 844,851 ----
+ GtkWidget *fc;
+ #endif
+ char_u dirbuf[MAXPATHL];
++ guint log_handler;
++ const gchar *domain = "Gtk";
+
+ title = CONVERT_TO_UTF8(title);
+
+***************
+*** 853,858 ****
+--- 860,870 ----
+ /* If our pointer is currently hidden, then we should show it. */
+ gui_mch_mousehide(FALSE);
+
++ /* Hack: The GTK file dialog warns when it can't access a new file, this
++ * makes it shut up. http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
++ log_handler = g_log_set_handler(domain, G_LOG_LEVEL_WARNING,
++ recent_func_log_func, NULL);
++
+ #ifdef USE_FILE_CHOOSER
+ /* We create the dialog each time, so that the button text can be "Open"
+ * or "Save" according to the action. */
+***************
+*** 916,921 ****
+--- 928,934 ----
+ gtk_widget_show(gui.filedlg);
+ gtk_main();
+ #endif
++ g_log_remove_handler(domain, log_handler);
+
+ CONVERT_TO_UTF8_FREE(title);
+ if (gui.browse_fname == NULL)
+***************
+*** 1882,1884 ****
+--- 1895,1908 ----
+ * backwards compatibility anyway. */
+ do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
+ }
++
++ static void
++ recent_func_log_func(const gchar *log_domain UNUSED,
++ GLogLevelFlags log_level UNUSED,
++ const gchar *message UNUSED,
++ gpointer user_data UNUSED)
++ {
++ /* We just want to suppress the warnings. */
++ /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
++ }
++
+*** ../vim-7.3.505/src/version.c 2012-04-25 16:50:44.000000000 +0200
+--- src/version.c 2012-04-25 17:08:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 506,
+ /**/
+
+--
+Compilation process failed successfully.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.507 b/source/ap/vim/patches/7.3.507
new file mode 100644
index 000000000..c96561c39
--- /dev/null
+++ b/source/ap/vim/patches/7.3.507
@@ -0,0 +1,149 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.507
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.507
+Problem: When exiting with unsaved changes, selecting an existing file in
+ the file dialog, there is no dialog to ask whether the existing
+ file should be overwritten. (Felipe G. Nievinski)
+Solution: Call check_overwrite() before writing. (Christian Brabandt)
+Files: src/ex_cmds.c, src/ex_cmds2.c, src/proto/ex_cmds.pro
+
+
+*** ../vim-7.3.506/src/ex_cmds.c 2012-04-25 16:50:44.000000000 +0200
+--- src/ex_cmds.c 2012-04-25 17:19:53.000000000 +0200
+***************
+*** 25,31 ****
+ static int read_viminfo_up_to_marks __ARGS((vir_T *virp, int forceit, int writing));
+ #endif
+
+- static int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
+ static int check_readonly __ARGS((int *forceit, buf_T *buf));
+ #ifdef FEAT_AUTOCMD
+ static void delbuf_msg __ARGS((char_u *name));
+--- 25,30 ----
+***************
+*** 2722,2728 ****
+ * May set eap->forceit if a dialog says it's OK to overwrite.
+ * Return OK if it's OK, FAIL if it is not.
+ */
+! static int
+ check_overwrite(eap, buf, fname, ffname, other)
+ exarg_T *eap;
+ buf_T *buf;
+--- 2721,2727 ----
+ * May set eap->forceit if a dialog says it's OK to overwrite.
+ * Return OK if it's OK, FAIL if it is not.
+ */
+! int
+ check_overwrite(eap, buf, fname, ffname, other)
+ exarg_T *eap;
+ buf_T *buf;
+*** ../vim-7.3.506/src/ex_cmds2.c 2012-03-23 18:39:10.000000000 +0100
+--- src/ex_cmds2.c 2012-04-25 17:24:37.000000000 +0200
+***************
+*** 1489,1494 ****
+--- 1489,1495 ----
+ char_u buff[DIALOG_MSG_SIZE];
+ int ret;
+ buf_T *buf2;
++ exarg_T ea;
+
+ dialog_msg(buff, _("Save changes to \"%s\"?"),
+ (buf->b_fname != NULL) ?
+***************
+*** 1498,1510 ****
+ else
+ ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
+
+ if (ret == VIM_YES)
+ {
+ #ifdef FEAT_BROWSE
+ /* May get file name, when there is none */
+ browse_save_fname(buf);
+ #endif
+! if (buf->b_fname != NULL) /* didn't hit Cancel */
+ (void)buf_write_all(buf, FALSE);
+ }
+ else if (ret == VIM_NO)
+--- 1499,1517 ----
+ else
+ ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1);
+
++ /* Init ea pseudo-structure, this is needed for the check_overwrite()
++ * function. */
++ ea.append = ea.forceit = FALSE;
++
+ if (ret == VIM_YES)
+ {
+ #ifdef FEAT_BROWSE
+ /* May get file name, when there is none */
+ browse_save_fname(buf);
+ #endif
+! if (buf->b_fname != NULL && check_overwrite(&ea, buf,
+! buf->b_fname, buf->b_ffname, FALSE) == OK)
+! /* didn't hit Cancel */
+ (void)buf_write_all(buf, FALSE);
+ }
+ else if (ret == VIM_NO)
+***************
+*** 1532,1538 ****
+ /* May get file name, when there is none */
+ browse_save_fname(buf2);
+ #endif
+! if (buf2->b_fname != NULL) /* didn't hit Cancel */
+ (void)buf_write_all(buf2, FALSE);
+ #ifdef FEAT_AUTOCMD
+ /* an autocommand may have deleted the buffer */
+--- 1539,1547 ----
+ /* May get file name, when there is none */
+ browse_save_fname(buf2);
+ #endif
+! if (buf2->b_fname != NULL && check_overwrite(&ea, buf2,
+! buf2->b_fname, buf2->b_ffname, FALSE) == OK)
+! /* didn't hit Cancel */
+ (void)buf_write_all(buf2, FALSE);
+ #ifdef FEAT_AUTOCMD
+ /* an autocommand may have deleted the buffer */
+*** ../vim-7.3.506/src/proto/ex_cmds.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ex_cmds.pro 2012-04-25 17:25:47.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+ void ex_update __ARGS((exarg_T *eap));
+ void ex_write __ARGS((exarg_T *eap));
+ int do_write __ARGS((exarg_T *eap));
++ int check_overwrite __ARGS((exarg_T *eap, buf_T *buf, char_u *fname, char_u *ffname, int other));
+ void ex_wnext __ARGS((exarg_T *eap));
+ void do_wqall __ARGS((exarg_T *eap));
+ int not_writing __ARGS((void));
+*** ../vim-7.3.506/src/version.c 2012-04-25 17:10:12.000000000 +0200
+--- src/version.c 2012-04-25 17:17:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 507,
+ /**/
+
+--
+BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One.
+ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O
+ Lord bless this thy hand grenade that with it thou mayest
+ blow thine enemies to tiny bits, in thy mercy. "and the Lord
+ did grin and people did feast upon the lambs and sloths and
+ carp and anchovies and orang-utans and breakfast cereals and
+ fruit bats and...
+BROTHER MAYNARD: Skip a bit brother ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.508 b/source/ap/vim/patches/7.3.508
new file mode 100644
index 000000000..7b8e7b261
--- /dev/null
+++ b/source/ap/vim/patches/7.3.508
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.508
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.508
+Problem: Default for v:register is not set.
+Solution: Init v:register in eval_init(). Correct for 'clipboard' before the
+ main loop. (Ingo Karkat)
+Files: src/eval.c, src/main.c
+
+
+*** ../vim-7.3.507/src/eval.c 2012-04-25 16:50:44.000000000 +0200
+--- src/eval.c 2012-04-25 17:56:41.000000000 +0200
+***************
+*** 880,885 ****
+--- 880,886 ----
+ hash_add(&compat_hashtab, p->vv_di.di_key);
+ }
+ set_vim_var_nr(VV_SEARCHFORWARD, 1L);
++ set_reg_var(0); /* default for v:register is not 0 but '"' */
+
+ #ifdef EBCDIC
+ /*
+*** ../vim-7.3.507/src/main.c 2012-03-28 17:10:26.000000000 +0200
+--- src/main.c 2012-04-25 18:01:28.000000000 +0200
+***************
+*** 928,933 ****
+--- 928,945 ----
+ TIME_MSG("VimEnter autocommands");
+ #endif
+
++ #if defined(FEAT_EVAL) && defined(FEAT_CLIPBOARD)
++ /* Adjust default register name for "unnamed" in 'clipboard'. Can only be
++ * done after the clipboard is available and all initial commands that may
++ * modify the 'clipboard' setting have run; i.e. just before entering the
++ * main loop. */
++ {
++ int default_regname = 0;
++ adjust_clip_reg(&default_regname);
++ set_reg_var(default_regname);
++ }
++ #endif
++
+ #if defined(FEAT_DIFF) && defined(FEAT_SCROLLBIND)
+ /* When a startup script or session file setup for diff'ing and
+ * scrollbind, sync the scrollbind now. */
+***************
+*** 1357,1363 ****
+ {
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
+ buf->b_fname, FALSE, buf);
+! buf->b_changedtick = -1; /* note that we did it already */
+ /* start all over, autocommands may mess up the lists */
+ next_tp = first_tabpage;
+ break;
+--- 1369,1375 ----
+ {
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname,
+ buf->b_fname, FALSE, buf);
+! buf->b_changedtick = -1; /* note that we did it already */
+ /* start all over, autocommands may mess up the lists */
+ next_tp = first_tabpage;
+ break;
+*** ../vim-7.3.507/src/version.c 2012-04-25 17:32:14.000000000 +0200
+--- src/version.c 2012-04-25 18:00:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 508,
+ /**/
+
+--
+I wonder, do vegetarians eat fruit bats?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.509 b/source/ap/vim/patches/7.3.509
new file mode 100644
index 000000000..8dfe9c09d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.509
@@ -0,0 +1,304 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.509
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.509
+Problem: ":vimgrep" fails when 'autochdir' is set.
+Solution: A more generic solution for changing directory. (Ben Fritz)
+Files: src/quickfix.c
+
+
+*** ../vim-7.3.508/src/quickfix.c 2012-03-07 20:13:44.000000000 +0100
+--- src/quickfix.c 2012-04-25 18:52:24.000000000 +0200
+***************
+*** 130,138 ****
+ static void qf_fill_buffer __ARGS((qf_info_T *qi));
+ #endif
+ static char_u *get_mef_name __ARGS((void));
+! static buf_T *load_dummy_buffer __ARGS((char_u *fname));
+! static void wipe_dummy_buffer __ARGS((buf_T *buf));
+! static void unload_dummy_buffer __ARGS((buf_T *buf));
+ static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
+
+ /* Quickfix window check helper macro */
+--- 130,139 ----
+ static void qf_fill_buffer __ARGS((qf_info_T *qi));
+ #endif
+ static char_u *get_mef_name __ARGS((void));
+! static void restore_start_dir __ARGS((char_u *dirname_start));
+! static buf_T *load_dummy_buffer __ARGS((char_u *fname, char_u *dirname_start, char_u *resulting_dir));
+! static void wipe_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
+! static void unload_dummy_buffer __ARGS((buf_T *buf, char_u *dirname_start));
+ static qf_info_T *ll_get_or_alloc_list __ARGS((win_T *));
+
+ /* Quickfix window check helper macro */
+***************
+*** 3237,3255 ****
+
+ /* Load file into a buffer, so that 'fileencoding' is detected,
+ * autocommands applied, etc. */
+! buf = load_dummy_buffer(fname);
+!
+! /* When autocommands changed directory: go back. We assume it was
+! * ":lcd %:p:h". */
+! mch_dirname(dirname_now, MAXPATHL);
+! if (STRCMP(dirname_start, dirname_now) != 0)
+! {
+! exarg_T ea;
+!
+! ea.arg = dirname_start;
+! ea.cmdidx = CMD_lcd;
+! ex_cd(&ea);
+! }
+
+ p_mls = save_mls;
+ #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
+--- 3238,3244 ----
+
+ /* Load file into a buffer, so that 'fileencoding' is detected,
+ * autocommands applied, etc. */
+! buf = load_dummy_buffer(fname, dirname_start, dirname_now);
+
+ p_mls = save_mls;
+ #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
+***************
+*** 3320,3326 ****
+ {
+ /* Never keep a dummy buffer if there is another buffer
+ * with the same name. */
+! wipe_dummy_buffer(buf);
+ buf = NULL;
+ }
+ else if (!cmdmod.hide
+--- 3309,3315 ----
+ {
+ /* Never keep a dummy buffer if there is another buffer
+ * with the same name. */
+! wipe_dummy_buffer(buf, dirname_start);
+ buf = NULL;
+ }
+ else if (!cmdmod.hide
+***************
+*** 3336,3347 ****
+ * many swap files. */
+ if (!found_match)
+ {
+! wipe_dummy_buffer(buf);
+ buf = NULL;
+ }
+ else if (buf != first_match_buf || (flags & VGR_NOJUMP))
+ {
+! unload_dummy_buffer(buf);
+ buf = NULL;
+ }
+ }
+--- 3325,3336 ----
+ * many swap files. */
+ if (!found_match)
+ {
+! wipe_dummy_buffer(buf, dirname_start);
+ buf = NULL;
+ }
+ else if (buf != first_match_buf || (flags & VGR_NOJUMP))
+ {
+! unload_dummy_buffer(buf, dirname_start);
+ buf = NULL;
+ }
+ }
+***************
+*** 3487,3499 ****
+ }
+
+ /*
+! * Load file "fname" into a dummy buffer and return the buffer pointer.
+ * Returns NULL if it fails.
+- * Must call unload_dummy_buffer() or wipe_dummy_buffer() later!
+ */
+ static buf_T *
+! load_dummy_buffer(fname)
+ char_u *fname;
+ {
+ buf_T *newbuf;
+ buf_T *newbuf_to_wipe = NULL;
+--- 3476,3523 ----
+ }
+
+ /*
+! * Restore current working directory to "dirname_start" if they differ, taking
+! * into account whether it is set locally or globally.
+! */
+! static void
+! restore_start_dir(dirname_start)
+! char_u *dirname_start;
+! {
+! char_u *dirname_now = alloc(MAXPATHL);
+!
+! if (NULL != dirname_now)
+! {
+! mch_dirname(dirname_now, MAXPATHL);
+! if (STRCMP(dirname_start, dirname_now) != 0)
+! {
+! /* If the directory has changed, change it back by building up an
+! * appropriate ex command and executing it. */
+! exarg_T ea;
+!
+! ea.arg = dirname_start;
+! ea.cmdidx = (curwin->w_localdir == NULL) ? CMD_cd : CMD_lcd;
+! ex_cd(&ea);
+! }
+! }
+! }
+!
+! /*
+! * Load file "fname" into a dummy buffer and return the buffer pointer,
+! * placing the directory resulting from the buffer load into the
+! * "resulting_dir" pointer. "resulting_dir" must be allocated by the caller
+! * prior to calling this function. Restores directory to "dirname_start" prior
+! * to returning, if autocmds or the 'autochdir' option have changed it.
+! *
+! * If creating the dummy buffer does not fail, must call unload_dummy_buffer()
+! * or wipe_dummy_buffer() later!
+! *
+ * Returns NULL if it fails.
+ */
+ static buf_T *
+! load_dummy_buffer(fname, dirname_start, resulting_dir)
+ char_u *fname;
++ char_u *dirname_start; /* in: old directory */
++ char_u *resulting_dir; /* out: new directory */
+ {
+ buf_T *newbuf;
+ buf_T *newbuf_to_wipe = NULL;
+***************
+*** 3548,3569 ****
+ wipe_buffer(newbuf_to_wipe, FALSE);
+ }
+
+ if (!buf_valid(newbuf))
+ return NULL;
+ if (failed)
+ {
+! wipe_dummy_buffer(newbuf);
+ return NULL;
+ }
+ return newbuf;
+ }
+
+ /*
+! * Wipe out the dummy buffer that load_dummy_buffer() created.
+ */
+ static void
+! wipe_dummy_buffer(buf)
+ buf_T *buf;
+ {
+ if (curbuf != buf) /* safety check */
+ {
+--- 3572,3604 ----
+ wipe_buffer(newbuf_to_wipe, FALSE);
+ }
+
++ /*
++ * When autocommands/'autochdir' option changed directory: go back.
++ * Let the caller know what the resulting dir was first, in case it is
++ * important.
++ */
++ mch_dirname(resulting_dir, MAXPATHL);
++ restore_start_dir(dirname_start);
++
+ if (!buf_valid(newbuf))
+ return NULL;
+ if (failed)
+ {
+! wipe_dummy_buffer(newbuf, dirname_start);
+ return NULL;
+ }
+ return newbuf;
+ }
+
+ /*
+! * Wipe out the dummy buffer that load_dummy_buffer() created. Restores
+! * directory to "dirname_start" prior to returning, if autocmds or the
+! * 'autochdir' option have changed it.
+ */
+ static void
+! wipe_dummy_buffer(buf, dirname_start)
+ buf_T *buf;
++ char_u *dirname_start;
+ {
+ if (curbuf != buf) /* safety check */
+ {
+***************
+*** 3583,3600 ****
+ * new aborting error, interrupt, or uncaught exception. */
+ leave_cleanup(&cs);
+ #endif
+ }
+ }
+
+ /*
+! * Unload the dummy buffer that load_dummy_buffer() created.
+ */
+ static void
+! unload_dummy_buffer(buf)
+ buf_T *buf;
+ {
+ if (curbuf != buf) /* safety check */
+ close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+--- 3618,3645 ----
+ * new aborting error, interrupt, or uncaught exception. */
+ leave_cleanup(&cs);
+ #endif
++ /* When autocommands/'autochdir' option changed directory: go back. */
++ restore_start_dir(dirname_start);
+ }
+ }
+
+ /*
+! * Unload the dummy buffer that load_dummy_buffer() created. Restores
+! * directory to "dirname_start" prior to returning, if autocmds or the
+! * 'autochdir' option have changed it.
+ */
+ static void
+! unload_dummy_buffer(buf, dirname_start)
+ buf_T *buf;
++ char_u *dirname_start;
+ {
+ if (curbuf != buf) /* safety check */
++ {
+ close_buffer(NULL, buf, DOBUF_UNLOAD, FALSE);
++
++ /* When autocommands/'autochdir' option changed directory: go back. */
++ restore_start_dir(dirname_start);
++ }
+ }
+
+ #if defined(FEAT_EVAL) || defined(PROTO)
+*** ../vim-7.3.508/src/version.c 2012-04-25 18:24:24.000000000 +0200
+--- src/version.c 2012-04-25 18:43:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 509,
+ /**/
+
+--
+ Arthur pulls Pin out. The MONK blesses the grenade as ...
+ARTHUR: (quietly) One, two, five ...
+GALAHAD: Three, sir!
+ARTHUR: Three.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.510 b/source/ap/vim/patches/7.3.510
new file mode 100644
index 000000000..afe104144
--- /dev/null
+++ b/source/ap/vim/patches/7.3.510
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.510
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.510
+Problem: Test 77 fails on Solaris 7. (Michael Soyka)
+Solution: Replace any tabs with spaces.
+Files: src/testdir/test77.in
+
+
+*** ../vim-7.3.509/src/testdir/test77.in 2011-03-22 18:10:34.000000000 +0100
+--- src/testdir/test77.in 2012-04-30 11:30:31.000000000 +0200
+***************
+*** 21,27 ****
+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
+ ggdd
+ :w! Xtest
+! :!cksum Xtest > test.out
+ :qa!
+ ENDTEST
+
+--- 21,29 ----
+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
+ ggdd
+ :w! Xtest
+! :r !cksum Xtest
+! :s/\s/ /g
+! :.w! test.out
+ :qa!
+ ENDTEST
+
+*** ../vim-7.3.509/src/version.c 2012-04-25 18:57:17.000000000 +0200
+--- src/version.c 2012-04-30 11:33:35.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 510,
+ /**/
+
+--
+SIGFUN -- signature too funny (core dumped)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.511 b/source/ap/vim/patches/7.3.511
new file mode 100644
index 000000000..a2b6dce0f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.511
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.511
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.511
+Problem: Using a FileReadCmd autocommand that does ":e! {file}" may cause a
+ crash. (Christian Brabandt)
+Solution: Properly restore curwin->w_s.
+Files: src/fileio.c
+
+
+*** ../vim-7.3.510/src/fileio.c 2012-04-25 16:50:44.000000000 +0200
+--- src/fileio.c 2012-04-30 17:04:22.000000000 +0200
+***************
+*** 8982,8987 ****
+--- 8982,8991 ----
+ && buf_valid(aco->new_curbuf)
+ && aco->new_curbuf->b_ml.ml_mfp != NULL)
+ {
++ # if defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
++ if (curwin->w_s == &curbuf->b_s)
++ curwin->w_s = &aco->new_curbuf->b_s;
++ # endif
+ --curbuf->b_nwindows;
+ curbuf = aco->new_curbuf;
+ curwin->w_buffer = curbuf;
+*** ../vim-7.3.510/src/version.c 2012-04-30 11:34:20.000000000 +0200
+--- src/version.c 2012-04-30 17:01:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 511,
+ /**/
+
+--
+There is no right or wrong, there is only your personal opinion.
+ (Bram Moolenaar)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.512 b/source/ap/vim/patches/7.3.512
new file mode 100644
index 000000000..838ae3e2f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.512
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.512
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.512
+Problem: undofile() returns a useless name when passed an empty string.
+Solution: Return an empty string. (Christian Brabandt)
+Files: src/eval.c
+
+
+*** ../vim-7.3.511/src/eval.c 2012-04-25 18:24:24.000000000 +0200
+--- src/eval.c 2012-04-30 17:23:26.000000000 +0200
+***************
+*** 18259,18269 ****
+ rettv->v_type = VAR_STRING;
+ #ifdef FEAT_PERSISTENT_UNDO
+ {
+! char_u *ffname = FullName_save(get_tv_string(&argvars[0]), FALSE);
+
+! if (ffname != NULL)
+! rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
+! vim_free(ffname);
+ }
+ #else
+ rettv->vval.v_string = NULL;
+--- 18259,18279 ----
+ rettv->v_type = VAR_STRING;
+ #ifdef FEAT_PERSISTENT_UNDO
+ {
+! char_u *fname = get_tv_string(&argvars[0]);
+
+! if (*fname == NUL)
+! {
+! /* If there is no file name there will be no undo file. */
+! rettv->vval.v_string = NULL;
+! }
+! else
+! {
+! char_u *ffname = FullName_save(fname, FALSE);
+!
+! if (ffname != NULL)
+! rettv->vval.v_string = u_get_undo_file_name(ffname, FALSE);
+! vim_free(ffname);
+! }
+ }
+ #else
+ rettv->vval.v_string = NULL;
+*** ../vim-7.3.511/src/version.c 2012-04-30 17:04:47.000000000 +0200
+--- src/version.c 2012-04-30 17:24:42.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 512,
+ /**/
+
+--
+It is illegal for a driver to be blindfolded while operating a vehicle.
+ [real standing law in Alabama, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.513 b/source/ap/vim/patches/7.3.513
new file mode 100644
index 000000000..396969f50
--- /dev/null
+++ b/source/ap/vim/patches/7.3.513
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.513
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.513
+Problem: Cannot use CTRL-E and CTRL-Y with "r".
+Solution: Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
+ Brabandt)
+Files: src/edit.c, src/normal.c, src/proto/edit.pro
+
+
+*** ../vim-7.3.512/src/edit.c 2012-04-05 16:07:01.000000000 +0200
+--- src/edit.c 2012-04-30 17:53:47.000000000 +0200
+***************
+*** 253,259 ****
+ #ifdef FEAT_DIGRAPHS
+ static int ins_digraph __ARGS((void));
+ #endif
+- static int ins_copychar __ARGS((linenr_T lnum));
+ static int ins_ctrl_ey __ARGS((int tc));
+ #ifdef FEAT_SMARTINDENT
+ static void ins_try_si __ARGS((int c));
+--- 253,258 ----
+***************
+*** 9899,9905 ****
+ * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
+ * Returns the char to be inserted, or NUL if none found.
+ */
+! static int
+ ins_copychar(lnum)
+ linenr_T lnum;
+ {
+--- 9898,9904 ----
+ * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
+ * Returns the char to be inserted, or NUL if none found.
+ */
+! int
+ ins_copychar(lnum)
+ linenr_T lnum;
+ {
+*** ../vim-7.3.512/src/normal.c 2012-03-28 12:59:53.000000000 +0200
+--- src/normal.c 2012-04-30 18:06:13.000000000 +0200
+***************
+*** 7070,7076 ****
+ for (n = cap->count1; n > 0; --n)
+ {
+ State = REPLACE;
+! ins_char(cap->nchar);
+ State = old_State;
+ if (cap->ncharC1 != 0)
+ ins_char(cap->ncharC1);
+--- 7070,7087 ----
+ for (n = cap->count1; n > 0; --n)
+ {
+ State = REPLACE;
+! if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
+! {
+! int c = ins_copychar(curwin->w_cursor.lnum
+! + (cap->nchar == Ctrl_Y ? -1 : 1));
+! if (c != NUL)
+! ins_char(c);
+! else
+! /* will be decremented further down */
+! ++curwin->w_cursor.col;
+! }
+! else
+! ins_char(cap->nchar);
+ State = old_State;
+ if (cap->ncharC1 != 0)
+ ins_char(cap->ncharC1);
+***************
+*** 7092,7098 ****
+ * line will be changed.
+ */
+ ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
+! ptr[curwin->w_cursor.col] = cap->nchar;
+ if (p_sm && msg_silent == 0)
+ showmatch(cap->nchar);
+ ++curwin->w_cursor.col;
+--- 7103,7117 ----
+ * line will be changed.
+ */
+ ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
+! if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
+! {
+! int c = ins_copychar(curwin->w_cursor.lnum
+! + (cap->nchar == Ctrl_Y ? -1 : 1));
+! if (c != NUL)
+! ptr[curwin->w_cursor.col] = c;
+! }
+! else
+! ptr[curwin->w_cursor.col] = cap->nchar;
+ if (p_sm && msg_silent == 0)
+ showmatch(cap->nchar);
+ ++curwin->w_cursor.col;
+*** ../vim-7.3.512/src/proto/edit.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/edit.pro 2012-04-30 17:54:41.000000000 +0200
+***************
+*** 39,42 ****
+--- 39,43 ----
+ int hkmap __ARGS((int c));
+ void ins_scroll __ARGS((void));
+ void ins_horscroll __ARGS((void));
++ int ins_copychar __ARGS((linenr_T lnum));
+ /* vim: set ft=c : */
+*** ../vim-7.3.512/src/version.c 2012-04-30 17:35:44.000000000 +0200
+--- src/version.c 2012-04-30 18:17:52.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 513,
+ /**/
+
+--
+It is illegal for anyone to try and stop a child from playfully jumping over
+puddles of water.
+ [real standing law in California, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.514 b/source/ap/vim/patches/7.3.514
new file mode 100644
index 000000000..79620f0e1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.514
@@ -0,0 +1,232 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.514
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.514
+Problem: No completion for :history command.
+Solution: Add the completion and update the docs. Also fix ":behave"
+ completion. (Dominique Pelle)
+Files: runtime/doc/cmdline.txt, runtime/doc/map.txt, src/ex_docmd.c,
+ src/ex_getln.c, src/vim.h
+
+
+*** ../vim-7.3.513/runtime/doc/cmdline.txt 2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/cmdline.txt 2012-04-30 18:30:00.000000000 +0200
+***************
+*** 330,341 ****
+
+ :his[tory] [{name}] [{first}][, [{last}]]
+ List the contents of history {name} which can be:
+! c[md] or : command-line history
+! s[earch] or / search string history
+! e[xpr] or = expression register history
+! i[nput] or @ input line history
+! d[ebug] or > debug command history
+! a[ll] all of the above
+ {not in Vi}
+
+ If the numbers {first} and/or {last} are given, the respective
+--- 330,341 ----
+
+ :his[tory] [{name}] [{first}][, [{last}]]
+ List the contents of history {name} which can be:
+! c[md] or : command-line history
+! s[earch] or / or ? search string history
+! e[xpr] or = expression register history
+! i[nput] or @ input line history
+! d[ebug] or > debug command history
+! a[ll] all of the above
+ {not in Vi}
+
+ If the numbers {first} and/or {last} are given, the respective
+*** ../vim-7.3.513/runtime/doc/map.txt 2011-07-20 16:36:35.000000000 +0200
+--- runtime/doc/map.txt 2012-04-30 18:30:00.000000000 +0200
+***************
+*** 1202,1207 ****
+--- 1219,1225 ----
+
+ -complete=augroup autocmd groups
+ -complete=buffer buffer names
++ -complete=behave :behave suboptions
+ -complete=color color schemes
+ -complete=command Ex command (and arguments)
+ -complete=compiler compilers
+***************
+*** 1216,1221 ****
+--- 1234,1240 ----
+ -complete=function function name
+ -complete=help help subjects
+ -complete=highlight highlight groups
++ -complete=history :history suboptions
+ -complete=locale locale names (as output of locale -a)
+ -complete=mapping mapping name
+ -complete=menu menus
+*** ../vim-7.3.513/src/ex_docmd.c 2012-02-12 20:13:55.000000000 +0100
+--- src/ex_docmd.c 2012-04-30 18:33:27.000000000 +0200
+***************
+*** 3920,3927 ****
+--- 3920,3935 ----
+ #endif
+ case CMD_behave:
+ xp->xp_context = EXPAND_BEHAVE;
++ xp->xp_pattern = arg;
+ break;
+
++ #if defined(FEAT_CMDHIST)
++ case CMD_history:
++ xp->xp_context = EXPAND_HISTORY;
++ xp->xp_pattern = arg;
++ break;
++ #endif
++
+ #endif /* FEAT_CMDL_COMPL */
+
+ default:
+***************
+*** 5329,5334 ****
+--- 5337,5343 ----
+ } command_complete[] =
+ {
+ {EXPAND_AUGROUP, "augroup"},
++ {EXPAND_BEHAVE, "behave"},
+ {EXPAND_BUFFERS, "buffer"},
+ {EXPAND_COLORS, "color"},
+ {EXPAND_COMMANDS, "command"},
+***************
+*** 5350,5357 ****
+ {EXPAND_FUNCTIONS, "function"},
+ {EXPAND_HELP, "help"},
+ {EXPAND_HIGHLIGHT, "highlight"},
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+! && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ {EXPAND_LOCALES, "locale"},
+ #endif
+ {EXPAND_MAPPINGS, "mapping"},
+--- 5359,5369 ----
+ {EXPAND_FUNCTIONS, "function"},
+ {EXPAND_HELP, "help"},
+ {EXPAND_HIGHLIGHT, "highlight"},
++ #if defined(FEAT_CMDHIST)
++ {EXPAND_HISTORY, "history"},
++ #endif
+ #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \
+! && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE))
+ {EXPAND_LOCALES, "locale"},
+ #endif
+ {EXPAND_MAPPINGS, "mapping"},
+*** ../vim-7.3.513/src/ex_getln.c 2012-03-07 19:16:49.000000000 +0100
+--- src/ex_getln.c 2012-04-30 18:36:04.000000000 +0200
+***************
+*** 25,31 ****
+ int cmdlen; /* number of chars in command line */
+ int cmdpos; /* current cursor position */
+ int cmdspos; /* cursor column on screen */
+! int cmdfirstc; /* ':', '/', '?', '=' or NUL */
+ int cmdindent; /* number of spaces before cmdline */
+ char_u *cmdprompt; /* message in front of cmdline */
+ int cmdattr; /* attributes for prompt */
+--- 25,31 ----
+ int cmdlen; /* number of chars in command line */
+ int cmdpos; /* current cursor position */
+ int cmdspos; /* cursor column on screen */
+! int cmdfirstc; /* ':', '/', '?', '=', '>' or NUL */
+ int cmdindent; /* number of spaces before cmdline */
+ char_u *cmdprompt; /* message in front of cmdline */
+ int cmdattr; /* attributes for prompt */
+***************
+*** 111,116 ****
+--- 111,119 ----
+ #ifdef FEAT_CMDL_COMPL
+ static int expand_shellcmd __ARGS((char_u *filepat, int *num_file, char_u ***file, int flagsarg));
+ static int ExpandRTDir __ARGS((char_u *pat, int *num_file, char_u ***file, char *dirname[]));
++ # ifdef FEAT_CMDHIST
++ static char_u *get_history_arg __ARGS((expand_T *xp, int idx));
++ # endif
+ # if defined(FEAT_USR_CMDS) && defined(FEAT_EVAL)
+ static int ExpandUserDefined __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+ static int ExpandUserList __ARGS((expand_T *xp, int *num_file, char_u ***file));
+***************
+*** 4628,4633 ****
+--- 4631,4639 ----
+ {
+ {EXPAND_COMMANDS, get_command_name, FALSE, TRUE},
+ {EXPAND_BEHAVE, get_behave_arg, TRUE, TRUE},
++ #ifdef FEAT_CMDHIST
++ {EXPAND_HISTORY, get_history_arg, TRUE, TRUE},
++ #endif
+ #ifdef FEAT_USR_CMDS
+ {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE},
+ {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE},
+***************
+*** 5245,5250 ****
+--- 5251,5284 ----
+ NULL
+ };
+
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ /*
++ * Function given to ExpandGeneric() to obtain the possible first
++ * arguments of the ":history command.
++ */
++ static char_u *
++ get_history_arg(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ static char_u compl[2] = { NUL, NUL };
++ char *short_names = ":=@>?/";
++ int short_names_count = STRLEN(short_names);
++ int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
++
++ if (idx < short_names_count)
++ {
++ compl[0] = (char_u)short_names[idx];
++ return compl;
++ }
++ if (idx < short_names_count + history_name_count)
++ return (char_u *)history_names[idx - short_names_count];
++ if (idx == short_names_count + history_name_count)
++ return (char_u *)"all";
++ return NULL;
++ }
++ #endif
++
+ /*
+ * init_history() - Initialize the command line history.
+ * Also used to re-allocate the history when the size changes.
+*** ../vim-7.3.513/src/vim.h 2012-03-23 16:25:13.000000000 +0100
+--- src/vim.h 2012-04-30 18:30:00.000000000 +0200
+***************
+*** 781,786 ****
+--- 781,787 ----
+ #define EXPAND_FILES_IN_PATH 38
+ #define EXPAND_OWNSYNTAX 39
+ #define EXPAND_LOCALES 40
++ #define EXPAND_HISTORY 41
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.3.513/src/version.c 2012-04-30 18:18:43.000000000 +0200
+--- src/version.c 2012-04-30 18:36:19.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 514,
+ /**/
+
+--
+You can be stopped by the police for biking over 65 miles per hour.
+You are not allowed to walk across a street on your hands.
+ [real standing laws in Connecticut, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.515 b/source/ap/vim/patches/7.3.515
new file mode 100644
index 000000000..dad6f617f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.515
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.515
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.515
+Problem: 'wildignorecase' only applies to the last part of the path.
+Solution: Also ignore case for letters earlier in the path.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.514/src/misc1.c 2012-04-09 20:42:20.000000000 +0200
+--- src/misc1.c 2012-04-30 21:00:18.000000000 +0200
+***************
+*** 9461,9466 ****
+--- 9461,9467 ----
+
+ /*
+ * Find the first part in the path name that contains a wildcard.
++ * When EW_ICASE is set every letter is considered to be a wildcard.
+ * Copy it into "buf", including the preceding characters.
+ */
+ p = buf;
+***************
+*** 9480,9486 ****
+ s = p + 1;
+ }
+ else if (path_end >= path + wildoff
+! && vim_strchr((char_u *)"*?[{~$", *path_end) != NULL)
+ e = p;
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+--- 9481,9492 ----
+ s = p + 1;
+ }
+ else if (path_end >= path + wildoff
+! && (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL
+! #ifndef CASE_INSENSITIVE_FILENAME
+! || ((flags & EW_ICASE)
+! && isalpha(PTR2CHAR(path_end)))
+! #endif
+! ))
+ e = p;
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+*** ../vim-7.3.514/src/version.c 2012-04-30 18:48:38.000000000 +0200
+--- src/version.c 2012-04-30 21:05:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 515,
+ /**/
+
+--
+If an elephant is left tied to a parking meter, the parking fee has to be paid
+just as it would for a vehicle.
+ [real standing law in Florida, United States of America]
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.516 b/source/ap/vim/patches/7.3.516
new file mode 100644
index 000000000..d43be5a09
--- /dev/null
+++ b/source/ap/vim/patches/7.3.516
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.516
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.516
+Problem: extend(o, o) may crash Vim.
+Solution: Fix crash and add test. (Thinca and Hirohito Higashi)
+Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
+
+
+*** ../vim-7.3.515/src/eval.c 2012-04-30 17:35:44.000000000 +0200
+--- src/eval.c 2012-05-18 12:02:44.000000000 +0200
+***************
+*** 10191,10197 ****
+ EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+! else if (*action == 'f')
+ {
+ clear_tv(&di1->di_tv);
+ copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+--- 10191,10197 ----
+ EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+! else if (*action == 'f' && HI2DI(hi2) != di1)
+ {
+ clear_tv(&di1->di_tv);
+ copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+*** ../vim-7.3.515/src/testdir/test55.in 2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.in 2012-05-18 11:57:23.000000000 +0200
+***************
+*** 352,357 ****
+--- 352,375 ----
+ :let dict4copy = deepcopy(dict4)
+ :$put =(l == lcopy)
+ :$put =(dict4 == dict4copy)
++ :"
++ :" Pass the same List to extend()
++ :let l = [1, 2, 3, 4, 5]
++ :call extend(l, l)
++ :$put =string(l)
++ :"
++ :" Pass the same Dict to extend()
++ :let d = { 'a': {'b': 'B'}}
++ :call extend(d, d)
++ :$put =string(d)
++ :"
++ :" Pass the same Dict to extend() with "error"
++ :try
++ : call extend(d, d, "error")
++ :catch
++ : $put =v:exception[:15] . v:exception[-1:-1]
++ :endtry
++ :$put =string(d)
+ :endfun
+ :"
+ :call Test(1, 2, [3, 4], {5: 6}) " This may take a while
+*** ../vim-7.3.515/src/testdir/test55.ok 2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.ok 2012-05-18 11:57:01.000000000 +0200
+***************
+*** 111,113 ****
+--- 111,117 ----
+ 0
+ 1
+ 1
++ [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
++ {'a': {'b': 'B'}}
++ Vim(call):E737: a
++ {'a': {'b': 'B'}}
+*** ../vim-7.3.515/src/version.c 2012-04-30 21:09:38.000000000 +0200
+--- src/version.c 2012-05-18 12:04:54.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 516,
+ /**/
+
+--
+I used to wonder about the meaning of life. But I looked it
+up in the dictionary under "L" and there it was - the meaning
+of life. It was less than I expected. - Dogbert
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.517 b/source/ap/vim/patches/7.3.517
new file mode 100644
index 000000000..343693ba3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.517
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.517
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.517
+Problem: Crash when using "vipvv". (Alexandre Provencio)
+Solution: Don't let the text length become negative.
+Files: src/ops.c
+
+
+*** ../vim-7.3.516/src/ops.c 2012-04-20 13:46:02.000000000 +0200
+--- src/ops.c 2012-05-18 12:28:09.000000000 +0200
+***************
+*** 3042,3047 ****
+--- 3042,3049 ----
+ }
+ #endif
+ }
++ if (endcol == MAXCOL)
++ endcol = (colnr_T)STRLEN(p);
+ if (startcol > endcol
+ #ifdef FEAT_VIRTUALEDIT
+ || is_oneChar
+***************
+*** 3050,3057 ****
+ bd.textlen = 0;
+ else
+ {
+- if (endcol == MAXCOL)
+- endcol = (colnr_T)STRLEN(p);
+ bd.textlen = endcol - startcol + oap->inclusive;
+ }
+ bd.textstart = p + startcol;
+--- 3052,3057 ----
+*** ../vim-7.3.516/src/version.c 2012-05-18 12:06:58.000000000 +0200
+--- src/version.c 2012-05-18 12:48:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 517,
+ /**/
+
+--
+BODY: I'm not dead!
+CART DRIVER: 'Ere. He says he's not dead.
+LARGE MAN: Yes he is.
+BODY: I'm not!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.518 b/source/ap/vim/patches/7.3.518
new file mode 100644
index 000000000..89429f0c6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.518
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.518
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.518
+Problem: When 'encoding' is a double-byte encoding ":helptags" may not find
+ tags correctly.
+Solution: Use vim_strbyte() instead of vim_strchr(). (Yasuhiro Matsumoto)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.517/src/ex_cmds.c 2012-04-25 17:32:14.000000000 +0200
+--- src/ex_cmds.c 2012-05-18 16:20:20.000000000 +0200
+***************
+*** 6535,6541 ****
+ p1 = vim_strchr(IObuff, '*'); /* find first '*' */
+ while (p1 != NULL)
+ {
+! p2 = vim_strchr(p1 + 1, '*'); /* find second '*' */
+ if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
+ {
+ for (s = p1 + 1; s < p2; ++s)
+--- 6535,6544 ----
+ p1 = vim_strchr(IObuff, '*'); /* find first '*' */
+ while (p1 != NULL)
+ {
+! /* Use vim_strbyte() instead of vim_strchr() so that when
+! * 'encoding' is dbcs it still works, don't find '*' in the
+! * second byte. */
+! p2 = vim_strbyte(p1 + 1, '*'); /* find second '*' */
+ if (p2 != NULL && p2 > p1 + 1) /* skip "*" and "**" */
+ {
+ for (s = p1 + 1; s < p2; ++s)
+*** ../vim-7.3.517/src/version.c 2012-05-18 12:49:33.000000000 +0200
+--- src/version.c 2012-05-18 16:23:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 518,
+ /**/
+
+--
+If all you have is a hammer, everything looks like a nail.
+When your hammer is C++, everything begins to look like a thumb.
+ -- Steve Hoflich, comp.lang.c++
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.519 b/source/ap/vim/patches/7.3.519
new file mode 100644
index 000000000..846cea6b5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.519
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.519
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.519
+Problem: When completefunction returns it cannot indicate end of completion
+ mode.
+Solution: Recognize completefunction returning -3. (Mtsushita Shougo)
+Files: src/edit.c
+
+
+*** ../vim-7.3.518/src/edit.c 2012-04-30 18:18:43.000000000 +0200
+--- src/edit.c 2012-05-18 16:35:06.000000000 +0200
+***************
+*** 5205,5213 ****
+ }
+
+ /* Return value -2 means the user complete function wants to
+! * cancel the complete without an error. */
+ if (col == -2)
+ return FAIL;
+
+ /*
+ * Reset extended parameters of completion, when start new
+--- 5205,5221 ----
+ }
+
+ /* Return value -2 means the user complete function wants to
+! * cancel the complete without an error.
+! * Return value -3 does the same as -2 and leaves CTRL-X mode.*/
+ if (col == -2)
+ return FAIL;
++ if (col == -3)
++ {
++ ctrl_x_mode = 0;
++ edit_submode = NULL;
++ msg_clr_cmdline();
++ return FAIL;
++ }
+
+ /*
+ * Reset extended parameters of completion, when start new
+*** ../vim-7.3.518/src/version.c 2012-05-18 16:24:06.000000000 +0200
+--- src/version.c 2012-05-18 16:34:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 519,
+ /**/
+
+--
+Looking at Perl through Lisp glasses, Perl looks atrocious.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.520 b/source/ap/vim/patches/7.3.520
new file mode 100644
index 000000000..9e2da8d7b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.520
@@ -0,0 +1,140 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.520
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.520
+Problem: Gvim starts up slow on Unbuntu 12.04.
+Solution: Move the call to gui_mch_init_check() to after fork(). (Yasuhiro
+ Matsumoto) Do check $DISPLAY being set.
+Files: src/gui.c, src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro
+
+
+*** ../vim-7.3.519/src/gui.c 2011-10-20 21:27:57.000000000 +0200
+--- src/gui.c 2012-05-18 16:53:14.000000000 +0200
+***************
+*** 270,275 ****
+--- 270,281 ----
+ }
+ /* Child */
+
++ #ifdef FEAT_GUI_GTK
++ /* Call gtk_init_check() here after fork(). See gui_init_check(). */
++ if (gui_mch_init_check() != OK)
++ exit(1);
++ #endif
++
+ # if defined(HAVE_SETSID) || defined(HAVE_SETPGID)
+ /*
+ * Change our process group. On some systems/shells a CTRL-C in the
+***************
+*** 430,436 ****
+--- 436,452 ----
+ #ifdef ALWAYS_USE_GUI
+ result = OK;
+ #else
++ # ifdef FEAT_GUI_GTK
++ /*
++ * Note: Don't call gtk_init_check() before fork, it will be called after
++ * the fork. When calling it before fork, it make vim hang for a while.
++ * See gui_do_fork().
++ * Use a simpler check if the GUI window can probably be opened.
++ */
++ result = gui.dofork ? gui_mch_early_init_check() : gui_mch_init_check();
++ # else
+ result = gui_mch_init_check();
++ # endif
+ #endif
+ return result;
+ }
+*** ../vim-7.3.519/src/gui_gtk_x11.c 2011-10-26 11:36:21.000000000 +0200
+--- src/gui_gtk_x11.c 2012-05-18 17:00:45.000000000 +0200
+***************
+*** 1414,1420 ****
+ }
+
+ /*
+! * Check if the GUI can be started. Called before gvimrc is sourced.
+ * Return OK or FAIL.
+ */
+ int
+--- 1414,1442 ----
+ }
+
+ /*
+! * Check if the GUI can be started. Called before gvimrc is sourced and
+! * before fork().
+! * Return OK or FAIL.
+! */
+! int
+! gui_mch_early_init_check(void)
+! {
+! char_u *p;
+!
+! /* Guess that when $DISPLAY isn't set the GUI can't start. */
+! p = mch_getenv((char_u *)"DISPLAY");
+! if (p == NULL || *p == NUL)
+! {
+! gui.dying = TRUE;
+! EMSG(_((char *)e_opendisp));
+! return FAIL;
+! }
+! return OK;
+! }
+!
+! /*
+! * Check if the GUI can be started. Called before gvimrc is sourced but after
+! * fork().
+ * Return OK or FAIL.
+ */
+ int
+***************
+*** 3050,3056 ****
+
+ for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+ {
+! /* OpenOffice tries to use TARGET_HTML and fails when it doesn't
+ * return something, instead of trying another target. Therefore only
+ * offer TARGET_HTML when it works. */
+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
+--- 3072,3078 ----
+
+ for (i = 0; i < (int)N_SELECTION_TARGETS; ++i)
+ {
+! /* OpenOffice tries to use TARGET_HTML and fails when we don't
+ * return something, instead of trying another target. Therefore only
+ * offer TARGET_HTML when it works. */
+ if (!clip_html && selection_targets[i].info == TARGET_HTML)
+*** ../vim-7.3.519/src/proto/gui_gtk_x11.pro 2011-08-10 17:44:41.000000000 +0200
+--- src/proto/gui_gtk_x11.pro 2012-05-18 16:54:28.000000000 +0200
+***************
+*** 4,9 ****
+--- 4,10 ----
+ void gui_mch_set_blinking __ARGS((long waittime, long on, long off));
+ void gui_mch_stop_blink __ARGS((void));
+ void gui_mch_start_blink __ARGS((void));
++ int gui_mch_early_init_check __ARGS((void));
+ int gui_mch_init_check __ARGS((void));
+ void gui_mch_show_tabline __ARGS((int showit));
+ int gui_mch_showing_tabline __ARGS((void));
+*** ../vim-7.3.519/src/version.c 2012-05-18 16:35:17.000000000 +0200
+--- src/version.c 2012-05-18 16:45:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 520,
+ /**/
+
+--
+Bad programs can be written in any language.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.521 b/source/ap/vim/patches/7.3.521
new file mode 100644
index 000000000..efe7122b9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.521
@@ -0,0 +1,129 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.521
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.521
+Problem: Using "z=" on a multi-byte character may cause a crash.
+Solution: Don't use strlen() on an int pointer.
+Files: src/spell.c
+
+
+*** ../vim-7.3.520/src/spell.c 2012-01-10 22:26:12.000000000 +0100
+--- src/spell.c 2012-05-18 18:01:58.000000000 +0200
+***************
+*** 14494,14506 ****
+ int p0 = -333;
+ int c0;
+ int did_white = FALSE;
+
+ /*
+ * Convert the multi-byte string to a wide-character string.
+ * Remove accents, if wanted. We actually remove all non-word characters.
+ * But keep white space.
+ */
+! n = 0;
+ for (s = inword; *s != NUL; )
+ {
+ t = s;
+--- 14494,14508 ----
+ int p0 = -333;
+ int c0;
+ int did_white = FALSE;
++ int wordlen;
++
+
+ /*
+ * Convert the multi-byte string to a wide-character string.
+ * Remove accents, if wanted. We actually remove all non-word characters.
+ * But keep white space.
+ */
+! wordlen = 0;
+ for (s = inword; *s != NUL; )
+ {
+ t = s;
+***************
+*** 14521,14532 ****
+ continue;
+ }
+ }
+! word[n++] = c;
+ }
+! word[n] = NUL;
+
+ /*
+! * This comes from Aspell phonet.cpp.
+ * Converted from C++ to C. Added support for multi-byte chars.
+ * Changed to keep spaces.
+ */
+--- 14523,14534 ----
+ continue;
+ }
+ }
+! word[wordlen++] = c;
+ }
+! word[wordlen] = NUL;
+
+ /*
+! * This algorithm comes from Aspell phonet.cpp.
+ * Converted from C++ to C. Added support for multi-byte chars.
+ * Changed to keep spaces.
+ */
+***************
+*** 14711,14717 ****
+ }
+ if (k > k0)
+ mch_memmove(word + i + k0, word + i + k,
+! sizeof(int) * (STRLEN(word + i + k) + 1));
+
+ /* new "actual letter" */
+ c = word[i];
+--- 14713,14719 ----
+ }
+ if (k > k0)
+ mch_memmove(word + i + k0, word + i + k,
+! sizeof(int) * (wordlen - (i + k) + 1));
+
+ /* new "actual letter" */
+ c = word[i];
+***************
+*** 14739,14745 ****
+ if (c != NUL)
+ wres[reslen++] = c;
+ mch_memmove(word, word + i + 1,
+! sizeof(int) * (STRLEN(word + i + 1) + 1));
+ i = 0;
+ z0 = 1;
+ }
+--- 14741,14747 ----
+ if (c != NUL)
+ wres[reslen++] = c;
+ mch_memmove(word, word + i + 1,
+! sizeof(int) * (wordlen - (i + 1) + 1));
+ i = 0;
+ z0 = 1;
+ }
+*** ../vim-7.3.520/src/version.c 2012-05-18 17:03:14.000000000 +0200
+--- src/version.c 2012-05-18 18:06:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 521,
+ /**/
+
+--
+OLD WOMAN: King of the WHO?
+ARTHUR: The Britons.
+OLD WOMAN: Who are the Britons?
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.522 b/source/ap/vim/patches/7.3.522
new file mode 100644
index 000000000..2f4d17ce7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.522
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.522
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.522
+Problem: Crash in vim_realloc() when using MEM_PROFILE.
+Solution: Avoid using a NULL argument. (Dominique Pelle)
+Files: src/eval.c
+
+
+*** ../vim-7.3.521/src/eval.c 2012-05-18 12:06:58.000000000 +0200
+--- src/eval.c 2012-05-18 18:19:25.000000000 +0200
+***************
+*** 14643,14649 ****
+ long growmin = (long)((p - start) * 2 + prevlen);
+ prevsize = grow50pc > growmin ? grow50pc : growmin;
+ }
+! if ((newprev = vim_realloc(prev, prevsize)) == NULL)
+ {
+ do_outofmem_msg((long_u)prevsize);
+ failed = TRUE;
+--- 14643,14651 ----
+ long growmin = (long)((p - start) * 2 + prevlen);
+ prevsize = grow50pc > growmin ? grow50pc : growmin;
+ }
+! newprev = prev == NULL ? alloc(prevsize)
+! : vim_realloc(prev, prevsize);
+! if (newprev == NULL)
+ {
+ do_outofmem_msg((long_u)prevsize);
+ failed = TRUE;
+*** ../vim-7.3.521/src/version.c 2012-05-18 18:07:57.000000000 +0200
+--- src/version.c 2012-05-18 18:33:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 522,
+ /**/
+
+--
+ARTHUR: ... and I am your king ....
+OLD WOMAN: Ooooh! I didn't know we had a king. I thought we were an
+ autonomous collective ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.523 b/source/ap/vim/patches/7.3.523
new file mode 100644
index 000000000..7eec3ea2f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.523
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.523
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.523
+Problem: ":diffupdate" doesn't check for files changed elsewhere.
+Solution: Add the ! flag. (Christian Brabandt)
+Files: runtime/doc/diff.txt, src/diff.c, src/ex_cmds.h
+
+
+*** ../vim-7.3.522/runtime/doc/diff.txt 2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/diff.txt 2012-05-18 18:41:49.000000000 +0200
+***************
+*** 178,184 ****
+ nodiff" before hiding it.
+
+ *:diffu* *:diffupdate*
+! :diffu[pdate] Update the diff highlighting and folds.
+
+ Vim attempts to keep the differences updated when you make changes to the
+ text. This mostly takes care of inserted and deleted lines. Changes within a
+--- 178,184 ----
+ nodiff" before hiding it.
+
+ *:diffu* *:diffupdate*
+! :diffu[pdate][!] Update the diff highlighting and folds.
+
+ Vim attempts to keep the differences updated when you make changes to the
+ text. This mostly takes care of inserted and deleted lines. Changes within a
+***************
+*** 187,192 ****
+--- 187,195 ----
+
+ :diffupdate
+
++ If the ! is included Vim will check if the file was changed externally and
++ needs to be reloaded. It will prompt for each changed file, like `:checktime`
++ was used.
+
+ Vim will show filler lines for lines that are missing in one window but are
+ present in another. These lines were inserted in another file or deleted in
+*** ../vim-7.3.522/src/diff.c 2010-09-21 16:56:29.000000000 +0200
+--- src/diff.c 2012-05-18 18:45:09.000000000 +0200
+***************
+*** 783,788 ****
+--- 783,797 ----
+ goto theend;
+ }
+
++ /* :diffupdate! */
++ if (eap != NULL && eap->forceit)
++ for (idx_new = idx_orig; idx_new < DB_COUNT; ++idx_new)
++ {
++ buf = curtab->tp_diffbuf[idx_new];
++ if (buf_valid(buf))
++ buf_check_timestamp(buf, FALSE);
++ }
++
+ /* Write the first buffer to a tempfile. */
+ buf = curtab->tp_diffbuf[idx_orig];
+ if (diff_write(buf, tmp_orig) == FAIL)
+*** ../vim-7.3.522/src/ex_cmds.h 2012-02-13 00:01:38.000000000 +0100
+--- src/ex_cmds.h 2012-05-18 18:37:56.000000000 +0200
+***************
+*** 304,310 ****
+ EX(CMD_display, "display", ex_display,
+ EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
+! TRLBAR),
+ EX(CMD_diffget, "diffget", ex_diffgetput,
+ RANGE|EXTRA|TRLBAR|MODIFY),
+ EX(CMD_diffoff, "diffoff", ex_diffoff,
+--- 304,310 ----
+ EX(CMD_display, "display", ex_display,
+ EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_diffupdate, "diffupdate", ex_diffupdate,
+! BANG|TRLBAR),
+ EX(CMD_diffget, "diffget", ex_diffgetput,
+ RANGE|EXTRA|TRLBAR|MODIFY),
+ EX(CMD_diffoff, "diffoff", ex_diffoff,
+*** ../vim-7.3.522/src/version.c 2012-05-18 18:34:15.000000000 +0200
+--- src/version.c 2012-05-18 18:39:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 523
+ /**/
+
+--
+"The future's already arrived - it's just not evenly distributed yet."
+ -- William Gibson
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.524 b/source/ap/vim/patches/7.3.524
new file mode 100644
index 000000000..80d7baf66
--- /dev/null
+++ b/source/ap/vim/patches/7.3.524
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.524
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.524 (after 7.3.523)
+Problem: Missing comma.
+Solution: Add the comma.
+Files: src/version.c
+
+
+*** ../vim-7.3.523/src/version.c 2012-05-18 18:47:11.000000000 +0200
+--- src/version.c 2012-05-18 21:52:26.000000000 +0200
+***************
+*** 715,721 ****
+ static int included_patches[] =
+ { /* Add new patch number below this line */
+ /**/
+! 523
+ /**/
+ 522,
+ /**/
+--- 715,723 ----
+ static int included_patches[] =
+ { /* Add new patch number below this line */
+ /**/
+! 524,
+! /**/
+! 523,
+ /**/
+ 522,
+ /**/
+
+--
+DENNIS: You can't expect to wield supreme executive power just 'cause some
+ watery tart threw a sword at you!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.525 b/source/ap/vim/patches/7.3.525
new file mode 100644
index 000000000..c9741cbfc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.525
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.525
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.525
+Problem: Compiler warning on 64 bit MS-Windows.
+Solution: Add type cast. (Mike Williams)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.524/src/ex_getln.c 2012-04-30 18:48:38.000000000 +0200
+--- src/ex_getln.c 2012-05-23 20:33:16.000000000 +0200
+***************
+*** 5263,5269 ****
+ {
+ static char_u compl[2] = { NUL, NUL };
+ char *short_names = ":=@>?/";
+! int short_names_count = STRLEN(short_names);
+ int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
+
+ if (idx < short_names_count)
+--- 5263,5269 ----
+ {
+ static char_u compl[2] = { NUL, NUL };
+ char *short_names = ":=@>?/";
+! int short_names_count = (int)STRLEN(short_names);
+ int history_name_count = sizeof(history_names) / sizeof(char *) - 1;
+
+ if (idx < short_names_count)
+*** ../vim-7.3.524/src/version.c 2012-05-18 21:53:29.000000000 +0200
+--- src/version.c 2012-05-25 11:01:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 525,
+ /**/
+
+--
+For humans, honesty is a matter of degree. Engineers are always honest in
+matters of technology and human relationships. That's why it's a good idea
+to keep engineers away from customers, romantic interests, and other people
+who can't handle the truth.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.526 b/source/ap/vim/patches/7.3.526
new file mode 100644
index 000000000..036d401fd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.526
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.526
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.526
+Problem: Confusing indenting for #ifdef.
+Solution: Remove and add indent. (Elias Diem)
+Files: src/normal.c
+
+
+*** ../vim-7.3.525/src/normal.c 2012-04-30 18:18:43.000000000 +0200
+--- src/normal.c 2012-05-23 20:35:13.000000000 +0200
+***************
+*** 29,37 ****
+ static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
+ #endif
+ static int
+! # ifdef __BORLANDC__
+! _RTLENTRYF
+! # endif
+ nv_compare __ARGS((const void *s1, const void *s2));
+ static int find_command __ARGS((int cmdchar));
+ static void op_colon __ARGS((oparg_T *oap));
+--- 29,37 ----
+ static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
+ #endif
+ static int
+! #ifdef __BORLANDC__
+! _RTLENTRYF
+! #endif
+ nv_compare __ARGS((const void *s1, const void *s2));
+ static int find_command __ARGS((int cmdchar));
+ static void op_colon __ARGS((oparg_T *oap));
+*** ../vim-7.3.525/src/version.c 2012-05-25 11:02:34.000000000 +0200
+--- src/version.c 2012-05-25 11:03:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 526,
+ /**/
+
+--
+While it's true that many normal people whould prefer not to _date_ an
+engineer, most normal people harbor an intense desire to _mate_ with them,
+thus producing engineerlike children who will have high-paying jobs long
+before losing their virginity.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.527 b/source/ap/vim/patches/7.3.527
new file mode 100644
index 000000000..0c6af2b0d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.527
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.527
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=latin1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.527
+Problem: Clang complains about non-ASCII characters in a string.
+Solution: Change to \x88 form. (Dominique Pelle)
+Files: src/charset.c
+
+
+*** ../vim-7.3.526/src/charset.c 2012-01-26 13:40:04.000000000 +0100
+--- src/charset.c 2012-05-25 11:49:58.000000000 +0200
+***************
+*** 1602,1611 ****
+ #define LATIN1LOWER 'l'
+ #define LATIN1UPPER 'U'
+
+- /* !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]%_'abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ */
+ static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
+! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ÷ØÙÚÛÜÝÞÿ";
+! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿àáâãäåæçèéêëìíîïðñòóôõö×øùúûüýþßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
+
+ int
+ vim_islower(c)
+--- 1602,1610 ----
+ #define LATIN1LOWER 'l'
+ #define LATIN1UPPER 'U'
+
+ static char_u latin1flags[257] = " UUUUUUUUUUUUUUUUUUUUUUUUUU llllllllllllllllllllllllll UUUUUUUUUUUUUUUUUUUUUUU UUUUUUUllllllllllllllllllllllll llllllll";
+! static char_u latin1upper[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xf7\xd8\xd9\xda\xdb\xdc\xdd\xde\xff";
+! static char_u latin1lower[257] = " !\"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xd7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
+
+ int
+ vim_islower(c)
+*** ../vim-7.3.526/src/version.c 2012-05-25 11:04:34.000000000 +0200
+--- src/version.c 2012-05-25 11:52:06.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 527,
+ /**/
+
+--
+An alien life briefly visits earth. Just before departing it leaves a
+message in the dust on the back of a white van. The world is shocked
+and wants to know what it means. After months of studies the worlds
+best linguistic scientists are able to decipher the message: "Wash me!".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.528 b/source/ap/vim/patches/7.3.528
new file mode 100644
index 000000000..41084ad4f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.528
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.528
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.528
+Problem: Crash when closing last window in a tab. (Alex Efros)
+Solution: Use common code in close_last_window_tabpage(). (Christian
+ Brabandt)
+Files: src/window.c
+
+
+*** ../vim-7.3.527/src/window.c 2012-03-16 19:07:54.000000000 +0100
+--- src/window.c 2012-05-25 12:25:16.000000000 +0200
+***************
+*** 23,28 ****
+--- 23,29 ----
+ static void win_totop __ARGS((int size, int flags));
+ static void win_equal_rec __ARGS((win_T *next_curwin, int current, frame_T *topfr, int dir, int col, int row, int width, int height));
+ static int last_window __ARGS((void));
++ static int close_last_window_tabpage __ARGS((win_T *win, int free_buf, tabpage_T *prev_curtab));
+ static win_T *win_free_mem __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+ static frame_T *win_altframe __ARGS((win_T *win, tabpage_T *tp));
+ static tabpage_T *alt_tabpage __ARGS((void));
+***************
+*** 2105,2110 ****
+--- 2106,2147 ----
+ }
+
+ /*
++ * Close the possibly last window in a tab page.
++ * Returns TRUE when the window was closed already.
++ */
++ static int
++ close_last_window_tabpage(win, free_buf, prev_curtab)
++ win_T *win;
++ int free_buf;
++ tabpage_T *prev_curtab;
++ {
++ if (firstwin == lastwin)
++ {
++ /*
++ * Closing the last window in a tab page. First go to another tab
++ * page and then close the window and the tab page. This avoids that
++ * curwin and curtab are invalid while we are freeing memory, they may
++ * be used in GUI events.
++ */
++ goto_tabpage_tp(alt_tabpage());
++ redraw_tabline = TRUE;
++
++ /* Safety check: Autocommands may have closed the window when jumping
++ * to the other tab page. */
++ if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
++ {
++ int h = tabline_height();
++
++ win_close_othertab(win, free_buf, prev_curtab);
++ if (h != tabline_height())
++ shell_new_rows();
++ }
++ return TRUE;
++ }
++ return FALSE;
++ }
++
++ /*
+ * Close window "win". Only works for the current tab page.
+ * If "free_buf" is TRUE related buffer may be unloaded.
+ *
+***************
+*** 2143,2171 ****
+ }
+ #endif
+
+! /*
+! * When closing the last window in a tab page first go to another tab
+! * page and then close the window and the tab page. This avoids that
+! * curwin and curtab are not invalid while we are freeing memory, they may
+! * be used in GUI events.
+! */
+! if (firstwin == lastwin)
+! {
+! goto_tabpage_tp(alt_tabpage());
+! redraw_tabline = TRUE;
+!
+! /* Safety check: Autocommands may have closed the window when jumping
+! * to the other tab page. */
+! if (valid_tabpage(prev_curtab) && prev_curtab->tp_firstwin == win)
+! {
+! int h = tabline_height();
+!
+! win_close_othertab(win, free_buf, prev_curtab);
+! if (h != tabline_height())
+! shell_new_rows();
+! }
+! return;
+! }
+
+ /* When closing the help window, try restoring a snapshot after closing
+ * the window. Otherwise clear the snapshot, it's now invalid. */
+--- 2180,2190 ----
+ }
+ #endif
+
+! /* When closing the last window in a tab page first go to another tab page
+! * and then close the window and the tab page to avoid that curwin and
+! * curtab are invalid while we are freeing memory. */
+! if (close_last_window_tabpage(win, free_buf, prev_curtab))
+! return;
+
+ /* When closing the help window, try restoring a snapshot after closing
+ * the window. Otherwise clear the snapshot, it's now invalid. */
+***************
+*** 2225,2231 ****
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+! if (!win_valid(win) || last_window() || curtab != prev_curtab)
+ return;
+
+ /* Free the memory used for the window and get the window that received
+--- 2244,2251 ----
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+! if (!win_valid(win) || last_window() || curtab != prev_curtab
+! || close_last_window_tabpage(win, free_buf, prev_curtab))
+ return;
+
+ /* Free the memory used for the window and get the window that received
+***************
+*** 2310,2316 ****
+
+ /*
+ * Close window "win" in tab page "tp", which is not the current tab page.
+! * This may be the last window ih that tab page and result in closing the tab,
+ * thus "tp" may become invalid!
+ * Caller must check if buffer is hidden and whether the tabline needs to be
+ * updated.
+--- 2330,2336 ----
+
+ /*
+ * Close window "win" in tab page "tp", which is not the current tab page.
+! * This may be the last window in that tab page and result in closing the tab,
+ * thus "tp" may become invalid!
+ * Caller must check if buffer is hidden and whether the tabline needs to be
+ * updated.
+*** ../vim-7.3.527/src/version.c 2012-05-25 11:56:06.000000000 +0200
+--- src/version.c 2012-05-25 12:38:25.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 528,
+ /**/
+
+--
+For society, it's probably a good thing that engineers value function over
+appearance. For example, you wouldn't want engineers to build nuclear power
+plants that only _look_ like they would keep all the radiation inside.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.529 b/source/ap/vim/patches/7.3.529
new file mode 100644
index 000000000..386baf1fe
--- /dev/null
+++ b/source/ap/vim/patches/7.3.529
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.529
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.529
+Problem: Using a count before "v" and "V" does not work (Kikyous)
+Solution: Make the count select that many characters or lines. (Christian
+ Brabandt)
+Files: src/normal.c
+
+
+*** ../vim-7.3.528/src/normal.c 2012-05-25 11:04:34.000000000 +0200
+--- src/normal.c 2012-05-25 13:12:06.000000000 +0200
+***************
+*** 7660,7672 ****
+ else /* start Visual mode */
+ {
+ check_visual_highlight();
+! if (cap->count0) /* use previously selected part */
+ {
+! if (resel_VIsual_mode == NUL) /* there is none */
+! {
+! beep_flush();
+! return;
+! }
+ VIsual = curwin->w_cursor;
+
+ VIsual_active = TRUE;
+--- 7660,7668 ----
+ else /* start Visual mode */
+ {
+ check_visual_highlight();
+! if (cap->count0 > 0 && resel_VIsual_mode != NUL)
+ {
+! /* use previously selected part */
+ VIsual = curwin->w_cursor;
+
+ VIsual_active = TRUE;
+***************
+*** 7725,7730 ****
+--- 7721,7736 ----
+ /* start Select mode when 'selectmode' contains "cmd" */
+ may_start_select('c');
+ n_start_visual_mode(cap->cmdchar);
++ if (VIsual_mode != 'V' && *p_sel == 'e')
++ ++cap->count1; /* include one more char */
++ if (cap->count0 > 0 && --cap->count1 > 0)
++ {
++ /* With a count select that many characters or lines. */
++ if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V)
++ nv_right(cap);
++ else if (VIsual_mode == 'V')
++ nv_down(cap);
++ }
+ }
+ }
+ }
+*** ../vim-7.3.528/src/version.c 2012-05-25 12:38:57.000000000 +0200
+--- src/version.c 2012-05-25 12:59:58.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 529,
+ /**/
+
+--
+Normal people believe that if it ain't broke, don't fix it. Engineers believe
+that if it ain't broke, it doesn't have enough features yet.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.530 b/source/ap/vim/patches/7.3.530
new file mode 100644
index 000000000..216117ca2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.530
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.530
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.530 (after 7.3.520)
+Problem: Gvim does not work when 'guioptions' includes "f". (Davido)
+Solution: Call gui_mch_init_check() when running GUI in the foreground.
+ (Yasuhiro Matsumoto)
+Files: src/gui.c
+
+
+*** ../vim-7.3.529/src/gui.c 2012-05-18 17:03:13.000000000 +0200
+--- src/gui.c 2012-05-25 14:01:26.000000000 +0200
+***************
+*** 102,107 ****
+--- 102,111 ----
+ else
+ #endif
+ {
++ /* If there is 'f' in 'guioptions' and specify -g argument,
++ * gui_mch_init_check() was not called yet. */
++ if (gui_mch_init_check() != OK)
++ exit(1);
+ gui_attempt_start();
+ }
+
+*** ../vim-7.3.529/src/version.c 2012-05-25 13:12:33.000000000 +0200
+--- src/version.c 2012-05-25 14:05:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 530,
+ /**/
+
+--
+I think that you'll agree that engineers are very effective in their social
+interactions. It's the "normal" people who are nuts.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.531 b/source/ap/vim/patches/7.3.531
new file mode 100644
index 000000000..652bdb739
--- /dev/null
+++ b/source/ap/vim/patches/7.3.531
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.531
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.531 (after 7.3.530)
+Problem: GUI does not work on MS-Windows.
+Solution: Add the missing #ifdef. (Patrick Avery)
+Files: src/gui.c
+
+
+*** ../vim-7.3.530/src/gui.c 2012-05-25 14:06:18.000000000 +0200
+--- src/gui.c 2012-05-27 00:34:51.000000000 +0200
+***************
+*** 102,111 ****
+--- 102,113 ----
+ else
+ #endif
+ {
++ #ifdef FEAT_GUI_GTK
+ /* If there is 'f' in 'guioptions' and specify -g argument,
+ * gui_mch_init_check() was not called yet. */
+ if (gui_mch_init_check() != OK)
+ exit(1);
++ #endif
+ gui_attempt_start();
+ }
+
+*** ../vim-7.3.530/src/version.c 2012-05-25 14:06:18.000000000 +0200
+--- src/version.c 2012-05-27 00:37:33.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 531,
+ /**/
+
+--
+I learned the customs and mannerisms of engineers by observing them, much the
+way Jane Goodall learned about the great apes, but without the hassle of
+grooming.
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.532 b/source/ap/vim/patches/7.3.532
new file mode 100644
index 000000000..071cab345
--- /dev/null
+++ b/source/ap/vim/patches/7.3.532
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.532
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.532
+Problem: Compiler warning from Clang.
+Solution: Use a different way to point inside a string. (Dominique Pelle)
+Files: src/syntax.c
+
+
+*** ../vim-7.3.531/src/syntax.c 2012-03-23 16:25:13.000000000 +0100
+--- src/syntax.c 2012-06-01 13:13:58.000000000 +0200
+***************
+*** 9476,9482 ****
+ int cnt;
+ int attr;
+ {
+! msg_puts_attr((char_u *)("N \bI \b! \b" + cnt / 11), attr);
+ msg_clr_eos();
+ out_flush();
+ ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
+--- 9476,9482 ----
+ int cnt;
+ int attr;
+ {
+! msg_puts_attr((char_u *)&("N \bI \b! \b"[cnt / 11]), attr);
+ msg_clr_eos();
+ out_flush();
+ ui_delay(cnt == 99 ? 40L : (long)cnt * 50L, FALSE);
+*** ../vim-7.3.531/src/version.c 2012-05-27 00:37:45.000000000 +0200
+--- src/version.c 2012-06-01 13:14:51.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 532,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+8. You spend half of the plane trip with your laptop on your lap...and your
+ child in the overhead compartment.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.533 b/source/ap/vim/patches/7.3.533
new file mode 100644
index 000000000..1d71c8d18
--- /dev/null
+++ b/source/ap/vim/patches/7.3.533
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.533
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.533
+Problem: Memory leak when writing undo file.
+Solution: Free the ACL. (Dominique Pelle)
+Files: src/undo.c
+
+
+*** ../vim-7.3.532/src/undo.c 2011-12-08 15:14:04.000000000 +0100
+--- src/undo.c 2012-06-01 13:38:42.000000000 +0200
+***************
+*** 1535,1540 ****
+--- 1535,1541 ----
+ /* For systems that support ACL: get the ACL from the original file. */
+ acl = mch_get_acl(buf->b_ffname);
+ mch_set_acl(file_name, acl);
++ mch_free_acl(acl);
+ }
+ #endif
+
+*** ../vim-7.3.532/src/version.c 2012-06-01 13:18:48.000000000 +0200
+--- src/version.c 2012-06-01 13:39:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 533,
+ /**/
+
+--
+"How is your new girlfriend?"
+"90-60-90 man!"
+"What, pale purple?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.534 b/source/ap/vim/patches/7.3.534
new file mode 100644
index 000000000..618d6e4e1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.534
@@ -0,0 +1,101 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.534
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.534 (after 7.3.461)
+Problem: When using an InsertCharPre autocommand autoindent fails.
+Solution: Proper handling of v:char. (Alexey Radkov)
+Files: src/edit.c
+
+
+*** ../vim-7.3.533/src/edit.c 2012-05-18 16:35:17.000000000 +0200
+--- src/edit.c 2012-06-01 14:41:06.000000000 +0200
+***************
+*** 10108,10129 ****
+ do_insert_char_pre(c)
+ int c;
+ {
+! char_u *res;
+
+ /* Return quickly when there is nothing to do. */
+ if (!has_insertcharpre())
+ return NULL;
+
+ /* Lock the text to avoid weird things from happening. */
+ ++textlock;
+! set_vim_var_char(c); /* set v:char */
+
+ if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
+! /* Get the new value of v:char. It may be empty or more than one
+! * character. */
+! res = vim_strsave(get_vim_var_str(VV_CHAR));
+! else
+! res = NULL;
+
+ set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
+ --textlock;
+--- 10108,10147 ----
+ do_insert_char_pre(c)
+ int c;
+ {
+! char_u *res;
+! #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES + 1];
+! #else
+! char_u buf[2];
+! #endif
+
+ /* Return quickly when there is nothing to do. */
+ if (!has_insertcharpre())
+ return NULL;
+
++ #ifdef FEAT_MBYTE
++ if (has_mbyte)
++ buf[(*mb_char2bytes)(c, buf)] = NUL;
++ else
++ #endif
++ {
++ buf[0] = c;
++ buf[1] = NUL;
++ }
++
+ /* Lock the text to avoid weird things from happening. */
+ ++textlock;
+! set_vim_var_string(VV_CHAR, buf, -1); /* set v:char */
+
++ res = NULL;
+ if (apply_autocmds(EVENT_INSERTCHARPRE, NULL, NULL, FALSE, curbuf))
+! {
+! /* Get the value of v:char. It may be empty or more than one
+! * character. Only use it when changed, otherwise continue with the
+! * original character to avoid breaking autoindent. */
+! if (STRCMP(buf, get_vim_var_str(VV_CHAR)) != 0)
+! res = vim_strsave(get_vim_var_str(VV_CHAR));
+! }
+
+ set_vim_var_string(VV_CHAR, NULL, -1); /* clear v:char */
+ --textlock;
+*** ../vim-7.3.533/src/version.c 2012-06-01 13:46:06.000000000 +0200
+--- src/version.c 2012-06-01 14:42:19.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 534,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+11. You find yourself typing "com" after every period when using a word
+ processor.com
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.535 b/source/ap/vim/patches/7.3.535
new file mode 100644
index 000000000..e7f0f8a9c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.535
@@ -0,0 +1,356 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.535
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.535
+Problem: Many #ifdefs for MB_MAXBYTES.
+Solution: Also define MB_MAXBYTES without the +multi_byte feature. Fix
+ places where the buffer didn't include space for a NUL byte.
+Files: src/arabic.c, src/edit.c, src/eval.c, src/getchar.c, src/mbyte.c,
+ src/misc1.c, src/screen.c, src/spell.c, src/vim.h
+
+
+*** ../vim-7.3.534/src/arabic.c 2010-08-15 21:57:28.000000000 +0200
+--- src/arabic.c 2012-06-01 14:59:37.000000000 +0200
+***************
+*** 1066,1072 ****
+
+ if (curr_c != c && ccp != NULL)
+ {
+! char_u buf[MB_MAXBYTES];
+
+ /* Update the first byte of the character. */
+ (*mb_char2bytes)(curr_c, buf);
+--- 1066,1072 ----
+
+ if (curr_c != c && ccp != NULL)
+ {
+! char_u buf[MB_MAXBYTES + 1];
+
+ /* Update the first byte of the character. */
+ (*mb_char2bytes)(curr_c, buf);
+*** ../vim-7.3.534/src/edit.c 2012-06-01 14:57:47.000000000 +0200
+--- src/edit.c 2012-06-01 15:01:49.000000000 +0200
+***************
+*** 1648,1658 ****
+ #define PC_STATUS_RIGHT 1 /* right halve of double-wide char */
+ #define PC_STATUS_LEFT 2 /* left halve of double-wide char */
+ #define PC_STATUS_SET 3 /* pc_bytes was filled */
+- #ifdef FEAT_MBYTE
+ static char_u pc_bytes[MB_MAXBYTES + 1]; /* saved bytes */
+- #else
+- static char_u pc_bytes[2]; /* saved bytes */
+- #endif
+ static int pc_attr;
+ static int pc_row;
+ static int pc_col;
+--- 1648,1654 ----
+***************
+*** 6819,6829 ****
+ char_u *s;
+
+ vim_free(last_insert);
+- #ifdef FEAT_MBYTE
+ last_insert = alloc(MB_MAXBYTES * 3 + 5);
+- #else
+- last_insert = alloc(6);
+- #endif
+ if (last_insert != NULL)
+ {
+ s = last_insert;
+--- 6815,6821 ----
+***************
+*** 6861,6867 ****
+ char_u *s;
+ {
+ #ifdef FEAT_MBYTE
+! char_u temp[MB_MAXBYTES];
+ int i;
+ int len;
+
+--- 6853,6859 ----
+ char_u *s;
+ {
+ #ifdef FEAT_MBYTE
+! char_u temp[MB_MAXBYTES + 1];
+ int i;
+ int len;
+
+***************
+*** 7423,7429 ****
+ int cc;
+ {
+ int n;
+! char_u buf[MB_MAXBYTES];
+ int i;
+ int c;
+
+--- 7415,7421 ----
+ int cc;
+ {
+ int n;
+! char_u buf[MB_MAXBYTES + 1];
+ int i;
+ int c;
+
+***************
+*** 10109,10119 ****
+ int c;
+ {
+ char_u *res;
+- #ifdef FEAT_MBYTE
+ char_u buf[MB_MAXBYTES + 1];
+- #else
+- char_u buf[2];
+- #endif
+
+ /* Return quickly when there is nothing to do. */
+ if (!has_insertcharpre())
+--- 10101,10107 ----
+*** ../vim-7.3.534/src/eval.c 2012-05-18 18:34:15.000000000 +0200
+--- src/eval.c 2012-06-01 15:02:08.000000000 +0200
+***************
+*** 19170,19180 ****
+ set_vim_var_char(c)
+ int c;
+ {
+! #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES];
+! #else
+! char_u buf[2];
+! #endif
+
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+--- 19170,19176 ----
+ set_vim_var_char(c)
+ int c;
+ {
+! char_u buf[MB_MAXBYTES + 1];
+
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+*** ../vim-7.3.534/src/getchar.c 2012-04-05 16:07:01.000000000 +0200
+--- src/getchar.c 2012-06-01 15:03:51.000000000 +0200
+***************
+*** 723,729 ****
+ int c;
+ #ifdef FEAT_MBYTE
+ int n;
+! char_u buf[MB_MAXBYTES];
+ int i;
+ #endif
+
+--- 723,729 ----
+ int c;
+ #ifdef FEAT_MBYTE
+ int n;
+! char_u buf[MB_MAXBYTES + 1];
+ int i;
+ #endif
+
+***************
+*** 1072,1078 ****
+ int c;
+ {
+ #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES];
+ #else
+ char_u buf[4];
+ #endif
+--- 1072,1078 ----
+ int c;
+ {
+ #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES + 1];
+ #else
+ char_u buf[4];
+ #endif
+***************
+*** 1547,1553 ****
+ int c, c2;
+ #ifdef FEAT_MBYTE
+ int n;
+! char_u buf[MB_MAXBYTES];
+ int i;
+ #endif
+
+--- 1547,1553 ----
+ int c, c2;
+ #ifdef FEAT_MBYTE
+ int n;
+! char_u buf[MB_MAXBYTES + 1];
+ int i;
+ #endif
+
+***************
+*** 4335,4345 ****
+ int scol; /* starting column of the abbr. */
+ int j;
+ char_u *s;
+- #ifdef FEAT_MBYTE
+ char_u tb[MB_MAXBYTES + 4];
+- #else
+- char_u tb[4];
+- #endif
+ mapblock_T *mp;
+ #ifdef FEAT_LOCALMAP
+ mapblock_T *mp2;
+--- 4335,4341 ----
+*** ../vim-7.3.534/src/mbyte.c 2012-03-07 19:38:52.000000000 +0100
+--- src/mbyte.c 2012-06-01 15:04:27.000000000 +0200
+***************
+*** 708,714 ****
+ */
+ n = (i & 0x80) ? 2 : 1;
+ # else
+! char buf[MB_MAXBYTES];
+ # ifdef X_LOCALE
+ # ifndef mblen
+ # define mblen _Xmblen
+--- 708,714 ----
+ */
+ n = (i & 0x80) ? 2 : 1;
+ # else
+! char buf[MB_MAXBYTES + 1];
+ # ifdef X_LOCALE
+ # ifndef mblen
+ # define mblen _Xmblen
+***************
+*** 1953,1959 ****
+ /*
+ * Convert the character at screen position "off" to a sequence of bytes.
+ * Includes the composing characters.
+! * "buf" must at least have the length MB_MAXBYTES.
+ * Only to be used when ScreenLinesUC[off] != 0.
+ * Returns the produced number of bytes.
+ */
+--- 1953,1959 ----
+ /*
+ * Convert the character at screen position "off" to a sequence of bytes.
+ * Includes the composing characters.
+! * "buf" must at least have the length MB_MAXBYTES + 1.
+ * Only to be used when ScreenLinesUC[off] != 0.
+ * Returns the produced number of bytes.
+ */
+*** ../vim-7.3.534/src/misc1.c 2012-04-30 21:09:38.000000000 +0200
+--- src/misc1.c 2012-06-01 15:04:56.000000000 +0200
+***************
+*** 1932,1938 ****
+ int c;
+ {
+ #if defined(FEAT_MBYTE) || defined(PROTO)
+! char_u buf[MB_MAXBYTES];
+ int n;
+
+ n = (*mb_char2bytes)(c, buf);
+--- 1932,1938 ----
+ int c;
+ {
+ #if defined(FEAT_MBYTE) || defined(PROTO)
+! char_u buf[MB_MAXBYTES + 1];
+ int n;
+
+ n = (*mb_char2bytes)(c, buf);
+*** ../vim-7.3.534/src/screen.c 2012-03-23 16:25:13.000000000 +0100
+--- src/screen.c 2012-06-01 15:06:03.000000000 +0200
+***************
+*** 6621,6636 ****
+ int row, col;
+ int attr;
+ {
+- #ifdef FEAT_MBYTE
+ char_u buf[MB_MAXBYTES + 1];
+
+! buf[(*mb_char2bytes)(c, buf)] = NUL;
+! #else
+! char_u buf[2];
+!
+! buf[0] = c;
+! buf[1] = NUL;
+ #endif
+ screen_puts(buf, row, col, attr);
+ }
+
+--- 6621,6637 ----
+ int row, col;
+ int attr;
+ {
+ char_u buf[MB_MAXBYTES + 1];
+
+! #ifdef FEAT_MBYTE
+! if (has_mbyte)
+! buf[(*mb_char2bytes)(c, buf)] = NUL;
+! else
+ #endif
++ {
++ buf[0] = c;
++ buf[1] = NUL;
++ }
+ screen_puts(buf, row, col, attr);
+ }
+
+*** ../vim-7.3.534/src/spell.c 2012-05-18 18:07:57.000000000 +0200
+--- src/spell.c 2012-06-01 15:06:30.000000000 +0200
+***************
+*** 13694,13700 ****
+ {
+ int m1, m2;
+ #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES];
+ hashitem_T *hi;
+
+ if (c1 >= 256)
+--- 13694,13700 ----
+ {
+ int m1, m2;
+ #ifdef FEAT_MBYTE
+! char_u buf[MB_MAXBYTES + 1];
+ hashitem_T *hi;
+
+ if (c1 >= 256)
+*** ../vim-7.3.534/src/vim.h 2012-04-30 18:48:38.000000000 +0200
+--- src/vim.h 2012-06-01 14:59:28.000000000 +0200
+***************
+*** 1703,1708 ****
+--- 1703,1710 ----
+ * character of up to 6 bytes, or one 16-bit character of up to three bytes
+ * plus six following composing characters of three bytes each. */
+ # define MB_MAXBYTES 21
++ #else
++ # define MB_MAXBYTES 1
+ #endif
+
+ #if (defined(FEAT_PROFILE) || defined(FEAT_RELTIME)) && !defined(PROTO)
+***************
+*** 2017,2022 ****
+--- 2019,2025 ----
+ #pragma warning(disable : 4312)
+ #endif
+
++ /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */
+ #if defined(MEM_PROFILE)
+ # define vim_realloc(ptr, size) mem_realloc((ptr), (size))
+ #else
+*** ../vim-7.3.534/src/version.c 2012-06-01 14:57:47.000000000 +0200
+--- src/version.c 2012-06-01 15:08:20.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 535,
+ /**/
+
+--
+Me? A skeptic? I trust you have proof.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.536 b/source/ap/vim/patches/7.3.536
new file mode 100644
index 000000000..e0c3f760f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.536
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.536
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.536
+Problem: When spell checking the German sharp s is not seen as a word
+ character. (Aexl Bender)
+Solution: In utf_islower() return true for the sharp s. Note: also need
+ updated spell file for this to take effect.
+Files: src/mbyte.c
+
+
+*** ../vim-7.3.535/src/mbyte.c 2012-06-01 15:20:49.000000000 +0200
+--- src/mbyte.c 2012-06-01 16:50:41.000000000 +0200
+***************
+*** 2949,2955 ****
+ {
+ {0x61,0x7a,1,-32},
+ {0xb5,0xb5,-1,743},
+! {0xe0,0xf6,1,-32},
+ {0xf8,0xfe,1,-32},
+ {0xff,0xff,-1,121},
+ {0x101,0x12f,2,-1},
+--- 2949,2955 ----
+ {
+ {0x61,0x7a,1,-32},
+ {0xb5,0xb5,-1,743},
+! {0xe0,0xf6,1,-32}, /* 0xdf (German sharp s) is not upper-cased */
+ {0xf8,0xfe,1,-32},
+ {0xff,0xff,-1,121},
+ {0x101,0x12f,2,-1},
+***************
+*** 3129,3135 ****
+ utf_islower(a)
+ int a;
+ {
+! return (utf_toupper(a) != a);
+ }
+
+ /*
+--- 3129,3136 ----
+ utf_islower(a)
+ int a;
+ {
+! /* German sharp s is lower case but has no upper case equivalent. */
+! return (utf_toupper(a) != a) || a == 0xdf;
+ }
+
+ /*
+*** ../vim-7.3.535/src/version.c 2012-06-01 15:20:49.000000000 +0200
+--- src/version.c 2012-06-01 17:45:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 536,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+16. You step out of your room and realize that your parents have moved and
+ you don't have a clue when it happened.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.537 b/source/ap/vim/patches/7.3.537
new file mode 100644
index 000000000..76b41c8ad
--- /dev/null
+++ b/source/ap/vim/patches/7.3.537
@@ -0,0 +1,47 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.537
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.537
+Problem: Unecessary call to init_spell_chartab().
+Solution: Delete the call.
+Files: src/spell.c
+
+
+*** ../vim-7.3.536/src/spell.c 2012-06-01 15:20:49.000000000 +0200
+--- src/spell.c 2012-06-01 17:49:44.000000000 +0200
+***************
+*** 4721,4728 ****
+ int_wordlist = NULL;
+ }
+
+- init_spell_chartab();
+-
+ vim_free(repl_to);
+ repl_to = NULL;
+ vim_free(repl_from);
+--- 4721,4726 ----
+*** ../vim-7.3.536/src/version.c 2012-06-01 17:46:52.000000000 +0200
+--- src/version.c 2012-06-01 17:49:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 537,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+17. You turn on your intercom when leaving the room so you can hear if new
+ e-mail arrives.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.538 b/source/ap/vim/patches/7.3.538
new file mode 100644
index 000000000..947fa65bc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.538
@@ -0,0 +1,321 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.538
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.538
+Problem: 'efm' does not handle Tabs in pointer lines.
+Solution: Add Tab support. Improve tests. (Lech Lorens)
+Files: src/quickfix.c, src/testdir/test10.in, src/testdir/test10.ok
+
+
+*** ../vim-7.3.537/src/quickfix.c 2012-04-25 18:57:17.000000000 +0200
+--- src/quickfix.c 2012-06-01 18:24:07.000000000 +0200
+***************
+*** 247,253 ****
+ {'t', "."},
+ {'m', ".\\+"},
+ {'r', ".*"},
+! {'p', "[- .]*"},
+ {'v', "\\d\\+"},
+ {'s', ".\\+"}
+ };
+--- 247,253 ----
+ {'t', "."},
+ {'m', ".\\+"},
+ {'r', ".*"},
+! {'p', "[- .]*"},
+ {'v', "\\d\\+"},
+ {'s', ".\\+"}
+ };
+***************
+*** 677,687 ****
+ }
+ if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
+ {
+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
+ continue;
+! col = (int)(regmatch.endp[i] - regmatch.startp[i] + 1);
+! if (*((char_u *)regmatch.startp[i]) != TAB)
+! use_viscol = TRUE;
+ }
+ if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
+ {
+--- 677,699 ----
+ }
+ if ((i = (int)fmt_ptr->addr[7]) > 0) /* %p */
+ {
++ char_u *match_ptr;
++
+ if (regmatch.startp[i] == NULL || regmatch.endp[i] == NULL)
+ continue;
+! col = 0;
+! for (match_ptr = regmatch.startp[i];
+! match_ptr != regmatch.endp[i]; ++match_ptr)
+! {
+! ++col;
+! if (*match_ptr == TAB)
+! {
+! col += 7;
+! col -= col % 8;
+! }
+! }
+! ++col;
+! use_viscol = TRUE;
+ }
+ if ((i = (int)fmt_ptr->addr[8]) > 0) /* %v */
+ {
+*** ../vim-7.3.537/src/testdir/test10.in 2011-08-10 18:36:49.000000000 +0200
+--- src/testdir/test10.in 2012-06-01 18:22:40.000000000 +0200
+***************
+*** 8,48 ****
+ :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+ :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+ :/start of testfile/,/end of testfile/w! Xtestfile
+ :cf Xerrorfile2
+ :clast
+ :copen
+ :let a=w:quickfix_title
+ :wincmd p
+! gR=a 
+ :cf Xerrorfile1
+! rA
+ :cn
+! rB
+ :cn
+! rC
+ :cn
+! rD
+ :cn
+! rE
+ :cn
+ :wincmd w
+ :let a=w:quickfix_title
+ :wincmd p
+! gR=a 
+ :w! test.out " Write contents of this file
+ :qa!
+ ENDTEST
+
+ start of errorfile
+ "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! "Xtestfile", line 7 col 19; this is an error
+ gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
+! Xtestfile:13: parse error before `asd'
+ make: *** [vim] Error 1
+! in file "Xtestfile" linenr 16: there is an error
+
+ 2 returned
+! "Xtestfile", linenr 19: yet another problem
+
+ Does anyone know what is the problem and how to correction it?
+ "Xtestfile", line 21 col 9: What is the title of the quickfix window?
+--- 8,88 ----
+ :7/start of errorfile/,/end of errorfile/w! Xerrorfile1
+ :7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
+ :/start of testfile/,/end of testfile/w! Xtestfile
++ :set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
++ :set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
+ :cf Xerrorfile2
+ :clast
+ :copen
+ :let a=w:quickfix_title
+ :wincmd p
+! lgR=a 
+ :cf Xerrorfile1
+! grA
+ :cn
+! gRLINE 6, COL 19
+ :cn
+! gRNO COLUMN SPECIFIED
+ :cn
+! gRAGAIN NO COLUMN
+ :cn
+! gRCOL 1
+ :cn
++ gRCOL 2
++ :cn
++ gRCOL 10
++ :cn
++ gRVCOL 10
++ :cn
++ grI
++ :cn
++ gR. SPACE POINTER
++ :cn
++ gR. DOT POINTER
++ :cn
++ gR. DASH POINTER
++ :cn
++ gR. TAB-SPACE POINTER
++ :clast
++ :cprev
++ :cprev
+ :wincmd w
+ :let a=w:quickfix_title
+ :wincmd p
+! lgR=a 
+ :w! test.out " Write contents of this file
+ :qa!
+ ENDTEST
+
+ start of errorfile
+ "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set.
+! "Xtestfile", line 6 col 19; this is an error
+ gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
+! Xtestfile:9: parse error before `asd'
+ make: *** [vim] Error 1
+! in file "Xtestfile" linenr 10: there is an error
+
+ 2 returned
+! "Xtestfile", line 11 col 1; this is an error
+! "Xtestfile", line 12 col 2; this is another error
+! "Xtestfile", line 14:10; this is an error in column 10
+! =Xtestfile=, line 15:10; this is another error, but in vcol 10 this time
+! "Xtestfile", linenr 16: yet another problem
+! Error in "Xtestfile" at line 17:
+! x should be a dot
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
+! ^
+! Error in "Xtestfile" at line 18:
+! x should be a dot
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
+! .............^
+! Error in "Xtestfile" at line 19:
+! x should be a dot
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
+! --------------^
+! Error in "Xtestfile" at line 20:
+! x should be a dot
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
+! ^
+
+ Does anyone know what is the problem and how to correction it?
+ "Xtestfile", line 21 col 9: What is the title of the quickfix window?
+***************
+*** 50,74 ****
+ end of errorfile
+
+ start of testfile
+! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+ end of testfile
+--- 90,114 ----
+ end of errorfile
+
+ start of testfile
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 9
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 12
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 14
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 15
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 21
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 22
+ end of testfile
+*** ../vim-7.3.537/src/testdir/test10.ok 2011-08-10 18:36:49.000000000 +0200
+--- src/testdir/test10.ok 2012-06-01 18:22:40.000000000 +0200
+***************
+*** 1,23 ****
+ start of testfile
+! line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 4 xxxAxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 7 xxxxxxxxxxBxxxxxxxxxxxxxxxxxxx
+! line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Cine 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Dine 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! Eine 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+! line 21 :cf Xerrorfile1xxxxxxxxxxxxxxx
+! line 22 :cf Xerrorfile2xxxxxxxxxxxxxxx
+ end of testfile
+--- 1,23 ----
+ start of testfile
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
+! xxxxxxxxxxAxxxxxxxxxxxxxxxxxxx line 4
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5
+! xxxxxxxxxxxxxxxxxLINE 6, COL 19 line 6
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 7
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8
+! NO COLUMN SPECIFIEDxxxxxxxxxxx line 9
+! AGAIN NO COLUMNxxxxxxxxxxxxxxx line 10
+! COL 1 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11
+! COL 2xxxxxxxxxxxxxxxxxxxxxxxxx line 12
+! xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13
+! xxxxxxxxCOL 10xxxxxxxxxxxxxxxx line 14
+! xVCOL 10xxxxxxxxxxxxxxxxxxxxxx line 15
+! Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16
+! xxxx. SPACE POINTERxxxxxxxxxxx line 17
+! xxxxx. DOT POINTERxxxxxxxxxxxx line 18
+! xxxxxx. DASH POINTERxxxxxxxxxx line 19
+! xxxxxxx. TAB-SPACE POINTERxxxx line 20
+! xxxxxxxx:cf Xerrorfile1xxxxxxx line 21
+! xxxxxxxx:cf Xerrorfile2xxxxxxx line 22
+ end of testfile
+*** ../vim-7.3.537/src/version.c 2012-06-01 17:49:51.000000000 +0200
+--- src/version.c 2012-06-01 18:22:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 538,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+18. Your wife drapes a blond wig over your monitor to remind you of what she
+ looks like.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.539 b/source/ap/vim/patches/7.3.539
new file mode 100644
index 000000000..267c076d6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.539
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.539
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.539
+Problem: Redrawing a character on the command line does not work properly
+ for multi-byte charactes.
+Solution: Count the number of bytes in a character. (Yukihiro Nakadaira)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.538/src/ex_getln.c 2012-05-25 11:02:34.000000000 +0200
+--- src/ex_getln.c 2012-06-06 11:50:37.000000000 +0200
+***************
+*** 2764,2769 ****
+--- 2764,2774 ----
+ msg_no_more = TRUE;
+ if (ccline.cmdlen == ccline.cmdpos)
+ msg_putchar(' ');
++ #ifdef FEAT_MBYTE
++ else if (has_mbyte)
++ draw_cmdline(ccline.cmdpos,
++ (*mb_ptr2len)(ccline.cmdbuff + ccline.cmdpos));
++ #endif
+ else
+ draw_cmdline(ccline.cmdpos, 1);
+ msg_no_more = FALSE;
+*** ../vim-7.3.538/src/version.c 2012-06-01 18:34:37.000000000 +0200
+--- src/version.c 2012-06-06 12:02:45.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 539,
+ /**/
+
+--
+If they don't keep on exercising their lips, he thought, their brains
+start working.
+ -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.540 b/source/ap/vim/patches/7.3.540
new file mode 100644
index 000000000..6793eb43a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.540
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.540
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.540
+Problem: Cursor is left on the text instead of the command line.
+Solution: Don't call setcursor() in command line mode.
+Files: src/getchar.c
+
+
+*** ../vim-7.3.539/src/getchar.c 2012-06-01 15:20:49.000000000 +0200
+--- src/getchar.c 2012-06-06 11:58:05.000000000 +0200
+***************
+*** 2819,2825 ****
+ edit_unputchar();
+ if (State & CMDLINE)
+ unputcmdline();
+! setcursor(); /* put cursor back where it belongs */
+ }
+
+ if (c < 0)
+--- 2819,2826 ----
+ edit_unputchar();
+ if (State & CMDLINE)
+ unputcmdline();
+! else
+! setcursor(); /* put cursor back where it belongs */
+ }
+
+ if (c < 0)
+*** ../vim-7.3.539/src/version.c 2012-06-06 12:02:57.000000000 +0200
+--- src/version.c 2012-06-06 12:05:22.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 540,
+ /**/
+
+--
+"Making it up? Why should I want to make anything up? Life's bad enough
+as it is without wanting to invent any more of it."
+ -- Marvin, the Paranoid Android in Douglas Adams'
+ "The Hitchhiker's Guide to the Galaxy"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.541 b/source/ap/vim/patches/7.3.541
new file mode 100644
index 000000000..133b82dad
--- /dev/null
+++ b/source/ap/vim/patches/7.3.541
@@ -0,0 +1,1090 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.541
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.541
+Problem: When joining lines comment leaders need to be removed manually.
+Solution: Add the 'j' flag to 'formatoptions'. (Lech Lorens)
+Files: runtime/doc/change.txt, src/edit.c, src/ex_docmd.c, src/misc1.c,
+ src/normal.c, src/ops.c, src/option.h, src/proto/misc1.pro,
+ src/proto/ops.pro, src/search.c, src/testdir/test29.in,
+ src/testdir/test29.ok
+
+
+*** ../vim-7.3.540/runtime/doc/change.txt 2011-05-05 14:26:37.000000000 +0200
+--- runtime/doc/change.txt 2012-06-06 13:05:04.000000000 +0200
+***************
+*** 1495,1500 ****
+--- 1522,1533 ----
+ characters. Overruled by the 'M' flag.
+ 1 Don't break a line after a one-letter word. It's broken before it
+ instead (if possible).
++ j Where it makes sense, remove a comment leader when joining lines. For
++ example, joining:
++ int i; // the index ~
++ // in the list ~
++ Becomes:
++ int i; // the index in the list ~
+
+
+ With 't' and 'c' you can specify when Vim performs auto-wrapping:
+*** ../vim-7.3.540/src/edit.c 2012-06-01 15:20:49.000000000 +0200
+--- src/edit.c 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 5847,5853 ****
+ * Need to remove existing (middle) comment leader and insert end
+ * comment leader. First, check what comment leader we can find.
+ */
+! i = get_leader_len(line = ml_get_curline(), &p, FALSE);
+ if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
+ {
+ /* Skip middle-comment string */
+--- 5847,5853 ----
+ * Need to remove existing (middle) comment leader and insert end
+ * comment leader. First, check what comment leader we can find.
+ */
+! i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
+ if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
+ {
+ /* Skip middle-comment string */
+***************
+*** 6085,6091 ****
+
+ /* Don't break until after the comment leader */
+ if (do_comments)
+! leader_len = get_leader_len(ml_get_curline(), NULL, FALSE);
+ else
+ leader_len = 0;
+
+--- 6085,6091 ----
+
+ /* Don't break until after the comment leader */
+ if (do_comments)
+! leader_len = get_leader_len(ml_get_curline(), NULL, FALSE, TRUE);
+ else
+ leader_len = 0;
+
+***************
+*** 6411,6417 ****
+ /* With the 'c' flag in 'formatoptions' and 't' missing: only format
+ * comments. */
+ if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
+! && get_leader_len(old, NULL, FALSE) == 0)
+ return;
+ #endif
+
+--- 6411,6417 ----
+ /* With the 'c' flag in 'formatoptions' and 't' missing: only format
+ * comments. */
+ if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
+! && get_leader_len(old, NULL, FALSE, TRUE) == 0)
+ return;
+ #endif
+
+***************
+*** 8565,8571 ****
+ {
+ temp = curwin->w_cursor.col;
+ if (!can_bs(BS_EOL) /* only if "eol" included */
+! || do_join(2, FALSE, TRUE) == FAIL)
+ vim_beep();
+ else
+ curwin->w_cursor.col = temp;
+--- 8565,8571 ----
+ {
+ temp = curwin->w_cursor.col;
+ if (!can_bs(BS_EOL) /* only if "eol" included */
+! || do_join(2, FALSE, TRUE, FALSE) == FAIL)
+ vim_beep();
+ else
+ curwin->w_cursor.col = temp;
+***************
+*** 8746,8752 ****
+ ptr[len - 1] = NUL;
+ }
+
+! (void)do_join(2, FALSE, FALSE);
+ if (temp == NUL && gchar_cursor() != NUL)
+ inc_cursor();
+ }
+--- 8746,8752 ----
+ ptr[len - 1] = NUL;
+ }
+
+! (void)do_join(2, FALSE, FALSE, FALSE);
+ if (temp == NUL && gchar_cursor() != NUL)
+ inc_cursor();
+ }
+*** ../vim-7.3.540/src/ex_docmd.c 2012-04-30 18:48:38.000000000 +0200
+--- src/ex_docmd.c 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 8545,8551 ****
+ }
+ ++eap->line2;
+ }
+! (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE);
+ beginline(BL_WHITE | BL_FIX);
+ ex_may_print(eap);
+ }
+--- 8545,8551 ----
+ }
+ ++eap->line2;
+ }
+! (void)do_join(eap->line2 - eap->line1 + 1, !eap->forceit, TRUE, TRUE);
+ beginline(BL_WHITE | BL_FIX);
+ ex_may_print(eap);
+ }
+*** ../vim-7.3.540/src/misc1.c 2012-06-01 15:20:49.000000000 +0200
+--- src/misc1.c 2012-06-06 13:27:32.000000000 +0200
+***************
+*** 671,677 ****
+ ptr = saved_line;
+ # ifdef FEAT_COMMENTS
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(ptr, NULL, FALSE);
+ else
+ lead_len = 0;
+ # endif
+--- 671,677 ----
+ ptr = saved_line;
+ # ifdef FEAT_COMMENTS
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
+ else
+ lead_len = 0;
+ # endif
+***************
+*** 693,699 ****
+ }
+ # ifdef FEAT_COMMENTS
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(ptr, NULL, FALSE);
+ else
+ lead_len = 0;
+ if (lead_len > 0)
+--- 693,699 ----
+ }
+ # ifdef FEAT_COMMENTS
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
+ else
+ lead_len = 0;
+ if (lead_len > 0)
+***************
+*** 836,842 ****
+ */
+ end_comment_pending = NUL;
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD);
+ else
+ lead_len = 0;
+ if (lead_len > 0)
+--- 836,842 ----
+ */
+ end_comment_pending = NUL;
+ if (flags & OPENLINE_DO_COM)
+! lead_len = get_leader_len(saved_line, &lead_flags, dir == BACKWARD, TRUE);
+ else
+ lead_len = 0;
+ if (lead_len > 0)
+***************
+*** 1548,1561 ****
+ * When "flags" is not NULL, it is set to point to the flags of the recognized
+ * comment leader.
+ * "backward" must be true for the "O" command.
+ */
+ int
+! get_leader_len(line, flags, backward)
+ char_u *line;
+ char_u **flags;
+ int backward;
+ {
+ int i, j;
+ int got_com = FALSE;
+ int found_one;
+ char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
+--- 1548,1565 ----
+ * When "flags" is not NULL, it is set to point to the flags of the recognized
+ * comment leader.
+ * "backward" must be true for the "O" command.
++ * If "include_space" is set, include trailing whitespace while calculating the
++ * length.
+ */
+ int
+! get_leader_len(line, flags, backward, include_space)
+ char_u *line;
+ char_u **flags;
+ int backward;
++ int include_space;
+ {
+ int i, j;
++ int result;
+ int got_com = FALSE;
+ int found_one;
+ char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
+***************
+*** 1565,1571 ****
+ char_u *prev_list;
+ char_u *saved_flags = NULL;
+
+! i = 0;
+ while (vim_iswhite(line[i])) /* leading white space is ignored */
+ ++i;
+
+--- 1569,1575 ----
+ char_u *prev_list;
+ char_u *saved_flags = NULL;
+
+! result = i = 0;
+ while (vim_iswhite(line[i])) /* leading white space is ignored */
+ ++i;
+
+***************
+*** 1668,1684 ****
+ if (!found_one)
+ break;
+
+ /* Include any trailing white space. */
+ while (vim_iswhite(line[i]))
+ ++i;
+
+ /* If this comment doesn't nest, stop here. */
+ got_com = TRUE;
+ if (vim_strchr(part_buf, COM_NEST) == NULL)
+ break;
+ }
+
+! return (got_com ? i : 0);
+ }
+ #endif
+
+--- 1672,1838 ----
+ if (!found_one)
+ break;
+
++ result = i;
++
+ /* Include any trailing white space. */
+ while (vim_iswhite(line[i]))
+ ++i;
+
++ if (include_space)
++ result = i;
++
+ /* If this comment doesn't nest, stop here. */
+ got_com = TRUE;
+ if (vim_strchr(part_buf, COM_NEST) == NULL)
+ break;
+ }
++ return result;
++ }
++
++ /*
++ * Return the offset at which the last comment in line starts. If there is no
++ * comment in the whole line, -1 is returned.
++ *
++ * When "flags" is not null, it is set to point to the flags describing the
++ * recognized comment leader.
++ */
++ int
++ get_last_leader_offset(line, flags)
++ char_u *line;
++ char_u **flags;
++ {
++ int result = -1;
++ int i, j;
++ int lower_check_bound = 0;
++ char_u *string;
++ char_u *com_leader;
++ char_u *com_flags;
++ char_u *list;
++ int found_one;
++ char_u part_buf[COM_MAX_LEN]; /* buffer for one option part */
++
++ /*
++ * Repeat to match several nested comment strings.
++ */
++ i = (int)STRLEN(line);
++ while (--i >= lower_check_bound)
++ {
++ /*
++ * scan through the 'comments' option for a match
++ */
++ found_one = FALSE;
++ for (list = curbuf->b_p_com; *list; )
++ {
++ char_u *flags_save = list;
++
++ /*
++ * Get one option part into part_buf[]. Advance list to next one.
++ * put string at start of string.
++ */
++ (void)copy_option_part(&list, part_buf, COM_MAX_LEN, ",");
++ string = vim_strchr(part_buf, ':');
++ if (string == NULL) /* If everything is fine, this cannot actually
++ * happen. */
++ {
++ continue;
++ }
++ *string++ = NUL; /* Isolate flags from string. */
++ com_leader = string;
++
++ /*
++ * Line contents and string must match.
++ * When string starts with white space, must have some white space
++ * (but the amount does not need to match, there might be a mix of
++ * TABs and spaces).
++ */
++ if (vim_iswhite(string[0]))
++ {
++ if (i == 0 || !vim_iswhite(line[i - 1]))
++ continue;
++ while (vim_iswhite(string[0]))
++ ++string;
++ }
++ for (j = 0; string[j] != NUL && string[j] == line[i + j]; ++j)
++ /* do nothing */;
++ if (string[j] != NUL)
++ continue;
++
++ /*
++ * When 'b' flag used, there must be white space or an
++ * end-of-line after the string in the line.
++ */
++ if (vim_strchr(part_buf, COM_BLANK) != NULL
++ && !vim_iswhite(line[i + j]) && line[i + j] != NUL)
++ {
++ continue;
++ }
++
++ /*
++ * We have found a match, stop searching.
++ */
++ found_one = TRUE;
++
++ if (flags)
++ *flags = flags_save;
++ com_flags = flags_save;
++
++ break;
++ }
+
+! if (found_one)
+! {
+! char_u part_buf2[COM_MAX_LEN]; /* buffer for one option part */
+! int len1, len2, off;
+!
+! result = i;
+! /*
+! * If this comment nests, continue searching.
+! */
+! if (vim_strchr(part_buf, COM_NEST) != NULL)
+! continue;
+!
+! lower_check_bound = i;
+!
+! /* Let's verify whether the comment leader found is a substring
+! * of other comment leaders. If it is, let's adjust the
+! * lower_check_bound so that we make sure that we have determined
+! * the comment leader correctly.
+! */
+!
+! while (vim_iswhite(*com_leader))
+! ++com_leader;
+! len1 = (int)STRLEN(com_leader);
+!
+! for (list = curbuf->b_p_com; *list; )
+! {
+! char_u *flags_save = list;
+!
+! (void)copy_option_part(&list, part_buf2, COM_MAX_LEN, ",");
+! if (flags_save == com_flags)
+! continue;
+! string = vim_strchr(part_buf2, ':');
+! ++string;
+! while (vim_iswhite(*string))
+! ++string;
+! len2 = (int)STRLEN(string);
+! if (len2 == 0)
+! continue;
+!
+! /* Now we have to verify whether string ends with a substring
+! * beginning the com_leader. */
+! for (off = (len2 > i ? i : len2); off > 0 && off + len1 > len2;)
+! {
+! --off;
+! if (!STRNCMP(string + off, com_leader, len2 - off))
+! {
+! if (i - off < lower_check_bound)
+! lower_check_bound = i - off;
+! }
+! }
+! }
+! }
+! }
+! return result;
+ }
+ #endif
+
+*** ../vim-7.3.540/src/normal.c 2012-05-25 13:12:33.000000000 +0200
+--- src/normal.c 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 1968,1974 ****
+ beep_flush();
+ else
+ {
+! (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE);
+ auto_format(FALSE, TRUE);
+ }
+ break;
+--- 1968,1974 ----
+ beep_flush();
+ else
+ {
+! (void)do_join(oap->line_count, oap->op_type == OP_JOIN, TRUE, TRUE);
+ auto_format(FALSE, TRUE);
+ }
+ break;
+***************
+*** 4426,4432 ****
+ break;
+ }
+ #ifdef FEAT_COMMENTS
+! if (get_leader_len(ml_get_curline(), NULL, FALSE) > 0)
+ {
+ /* Ignore this line, continue at start of next line. */
+ ++curwin->w_cursor.lnum;
+--- 4426,4432 ----
+ break;
+ }
+ #ifdef FEAT_COMMENTS
+! if (get_leader_len(ml_get_curline(), NULL, FALSE, TRUE) > 0)
+ {
+ /* Ignore this line, continue at start of next line. */
+ ++curwin->w_cursor.lnum;
+***************
+*** 9324,9330 ****
+ {
+ prep_redo(cap->oap->regname, cap->count0,
+ NUL, cap->cmdchar, NUL, NUL, cap->nchar);
+! (void)do_join(cap->count0, cap->nchar == NUL, TRUE);
+ }
+ }
+ }
+--- 9324,9330 ----
+ {
+ prep_redo(cap->oap->regname, cap->count0,
+ NUL, cap->cmdchar, NUL, NUL, cap->nchar);
+! (void)do_join(cap->count0, cap->nchar == NUL, TRUE, TRUE);
+ }
+ }
+ }
+*** ../vim-7.3.540/src/ops.c 2012-05-18 12:49:33.000000000 +0200
+--- src/ops.c 2012-06-06 15:43:31.000000000 +0200
+***************
+*** 112,117 ****
+--- 112,120 ----
+ # endif
+ #endif
+ static void dis_msg __ARGS((char_u *p, int skip_esc));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ static char_u *skip_comment __ARGS((char_u *line, int process, int include_space, int *is_comment));
++ #endif
+ #ifdef FEAT_VISUAL
+ static void block_prep __ARGS((oparg_T *oap, struct block_def *, linenr_T, int));
+ #endif
+***************
+*** 1987,1993 ****
+ curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+ }
+ if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+! (void)do_join(2, FALSE, FALSE);
+ }
+ }
+
+--- 1990,1996 ----
+ curwin->w_cursor = curpos; /* restore curwin->w_cursor */
+ }
+ if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+! (void)do_join(2, FALSE, FALSE, FALSE);
+ }
+ }
+
+***************
+*** 4197,4213 ****
+ ui_breakcheck();
+ }
+
+ /*
+ * Join 'count' lines (minimal 2) at cursor position.
+ * When "save_undo" is TRUE save lines for undo first.
+ *
+ * return FAIL for failure, OK otherwise
+ */
+ int
+! do_join(count, insert_space, save_undo)
+ long count;
+ int insert_space;
+ int save_undo;
+ {
+ char_u *curr = NULL;
+ char_u *curr_start = NULL;
+--- 4200,4297 ----
+ ui_breakcheck();
+ }
+
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ /*
++ * If "process" is TRUE and the line begins with a comment leader (possibly
++ * after some white space), return a pointer to the text after it. Put a boolean
++ * value indicating whether the line ends with an unclosed comment in
++ * "is_comment".
++ * line - line to be processed,
++ * process - if FALSE, will only check whether the line ends with an unclosed
++ * comment,
++ * include_space - whether to also skip space following the comment leader,
++ * is_comment - will indicate whether the current line ends with an unclosed
++ * comment.
++ */
++ static char_u *
++ skip_comment(line, process, include_space, is_comment)
++ char_u *line;
++ int process;
++ int include_space;
++ int *is_comment;
++ {
++ char_u *comment_flags = NULL;
++ int lead_len;
++ int leader_offset = get_last_leader_offset(line, &comment_flags);
++
++ *is_comment = FALSE;
++ if (leader_offset != -1)
++ {
++ /* Let's check whether the line ends with an unclosed comment.
++ * If the last comment leader has COM_END in flags, there's no comment.
++ */
++ while (*comment_flags)
++ {
++ if (*comment_flags == COM_END
++ || *comment_flags == ':')
++ break;
++ ++comment_flags;
++ }
++ if (*comment_flags != COM_END)
++ *is_comment = TRUE;
++ }
++
++ if (process == FALSE)
++ return line;
++
++ lead_len = get_leader_len(line, &comment_flags, FALSE, include_space);
++
++ if (lead_len == 0)
++ return line;
++
++ /* Find:
++ * - COM_START,
++ * - COM_END,
++ * - colon,
++ * whichever comes first.
++ */
++ while (*comment_flags)
++ {
++ if (*comment_flags == COM_START
++ || *comment_flags == COM_END
++ || *comment_flags == ':')
++ {
++ break;
++ }
++ ++comment_flags;
++ }
++
++ /* If we found a colon, it means that we are not processing a line
++ * starting with an opening or a closing part of a three-part
++ * comment. That's good, because we don't want to remove those as
++ * this would be annoying.
++ */
++ if (*comment_flags == ':' || *comment_flags == NUL)
++ line += lead_len;
++
++ return line;
++ }
++ #endif
++
+ /*
+ * Join 'count' lines (minimal 2) at cursor position.
+ * When "save_undo" is TRUE save lines for undo first.
++ * Set "use_formatoptions" to FALSE when e.g. processing
++ * backspace and comment leaders should not be removed.
+ *
+ * return FAIL for failure, OK otherwise
+ */
+ int
+! do_join(count, insert_space, save_undo, use_formatoptions)
+ long count;
+ int insert_space;
+ int save_undo;
++ int use_formatoptions UNUSED;
+ {
+ char_u *curr = NULL;
+ char_u *curr_start = NULL;
+***************
+*** 4221,4226 ****
+--- 4305,4317 ----
+ linenr_T t;
+ colnr_T col = 0;
+ int ret = OK;
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ int *comments;
++ int remove_comments = (use_formatoptions == TRUE)
++ && has_format_option(FO_REMOVE_COMS);
++ int prev_was_comment;
++ #endif
++
+
+ if (save_undo && u_save((linenr_T)(curwin->w_cursor.lnum - 1),
+ (linenr_T)(curwin->w_cursor.lnum + count)) == FAIL)
+***************
+*** 4232,4237 ****
+--- 4323,4339 ----
+ spaces = lalloc_clear((long_u)count, TRUE);
+ if (spaces == NULL)
+ return FAIL;
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ if (remove_comments)
++ {
++ comments = (int *)lalloc_clear((long_u)count * sizeof(int), TRUE);
++ if (comments == NULL)
++ {
++ vim_free(spaces);
++ return FAIL;
++ }
++ }
++ #endif
+
+ /*
+ * Don't move anything, just compute the final line length
+***************
+*** 4240,4245 ****
+--- 4342,4366 ----
+ for (t = 0; t < count; ++t)
+ {
+ curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ if (remove_comments)
++ {
++ /* We don't want to remove the comment leader if the
++ * previous line is not a comment. */
++ if (t > 0 && prev_was_comment)
++ {
++
++ char_u *new_curr = skip_comment(curr, TRUE, insert_space,
++ &prev_was_comment);
++ comments[t] = new_curr - curr;
++ curr = new_curr;
++ }
++ else
++ curr = skip_comment(curr, FALSE, insert_space,
++ &prev_was_comment);
++ }
++ #endif
++
+ if (insert_space && t > 0)
+ {
+ curr = skipwhite(curr);
+***************
+*** 4327,4332 ****
+--- 4448,4457 ----
+ if (t == 0)
+ break;
+ curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ if (remove_comments)
++ curr += comments[t - 1];
++ #endif
+ if (insert_space && t > 1)
+ curr = skipwhite(curr);
+ currsize = (int)STRLEN(curr);
+***************
+*** 4364,4369 ****
+--- 4489,4498 ----
+
+ theend:
+ vim_free(spaces);
++ #if defined(FEAT_COMMENTS) || defined(PROTO)
++ if (remove_comments)
++ vim_free(comments);
++ #endif
+ return ret;
+ }
+
+***************
+*** 4788,4794 ****
+ (long)-next_leader_len);
+ #endif
+ curwin->w_cursor.lnum--;
+! if (do_join(2, TRUE, FALSE) == FAIL)
+ {
+ beep_flush();
+ break;
+--- 4917,4923 ----
+ (long)-next_leader_len);
+ #endif
+ curwin->w_cursor.lnum--;
+! if (do_join(2, TRUE, FALSE, FALSE) == FAIL)
+ {
+ beep_flush();
+ break;
+***************
+*** 4844,4850 ****
+
+ ptr = ml_get(lnum);
+ if (do_comments)
+! *leader_len = get_leader_len(ptr, leader_flags, FALSE);
+ else
+ *leader_len = 0;
+
+--- 4973,4979 ----
+
+ ptr = ml_get(lnum);
+ if (do_comments)
+! *leader_len = get_leader_len(ptr, leader_flags, FALSE, TRUE);
+ else
+ *leader_len = 0;
+
+*** ../vim-7.3.540/src/option.h 2012-02-20 22:18:22.000000000 +0100
+--- src/option.h 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 104,113 ****
+ #define FO_ONE_LETTER '1'
+ #define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
+ #define FO_AUTO 'a' /* automatic formatting */
+
+ #define DFLT_FO_VI "vt"
+ #define DFLT_FO_VIM "tcq"
+! #define FO_ALL "tcroq2vlb1mMBn,aw" /* for do_set() */
+
+ /* characters for the p_cpo option: */
+ #define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
+--- 104,114 ----
+ #define FO_ONE_LETTER '1'
+ #define FO_WHITE_PAR 'w' /* trailing white space continues paragr. */
+ #define FO_AUTO 'a' /* automatic formatting */
++ #define FO_REMOVE_COMS 'j' /* remove comment leaders when joining lines */
+
+ #define DFLT_FO_VI "vt"
+ #define DFLT_FO_VIM "tcq"
+! #define FO_ALL "tcroq2vlb1mMBn,awj" /* for do_set() */
+
+ /* characters for the p_cpo option: */
+ #define CPO_ALTREAD 'a' /* ":read" sets alternate file name */
+*** ../vim-7.3.540/src/proto/misc1.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/misc1.pro 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 6,12 ****
+ int set_indent __ARGS((int size, int flags));
+ int get_number_indent __ARGS((linenr_T lnum));
+ int open_line __ARGS((int dir, int flags, int old_indent));
+! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
+ int plines __ARGS((linenr_T lnum));
+ int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+ int plines_nofill __ARGS((linenr_T lnum));
+--- 6,13 ----
+ int set_indent __ARGS((int size, int flags));
+ int get_number_indent __ARGS((linenr_T lnum));
+ int open_line __ARGS((int dir, int flags, int old_indent));
+! int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int do_skip_space));
+! int get_last_leader_offset __ARGS((char_u *line, char_u **flags));
+ int plines __ARGS((linenr_T lnum));
+ int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+ int plines_nofill __ARGS((linenr_T lnum));
+*** ../vim-7.3.540/src/proto/ops.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ops.pro 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 36,42 ****
+ int preprocs_left __ARGS((void));
+ int get_register_name __ARGS((int num));
+ void ex_display __ARGS((exarg_T *eap));
+! int do_join __ARGS((long count, int insert_space, int save_undo));
+ void op_format __ARGS((oparg_T *oap, int keep_cursor));
+ void op_formatexpr __ARGS((oparg_T *oap));
+ int fex_format __ARGS((linenr_T lnum, long count, int c));
+--- 36,42 ----
+ int preprocs_left __ARGS((void));
+ int get_register_name __ARGS((int num));
+ void ex_display __ARGS((exarg_T *eap));
+! int do_join __ARGS((long count, int insert_space, int save_undo, int use_formatoptions));
+ void op_format __ARGS((oparg_T *oap, int keep_cursor));
+ void op_formatexpr __ARGS((oparg_T *oap));
+ int fex_format __ARGS((linenr_T lnum, long count, int c));
+*** ../vim-7.3.540/src/search.c 2012-02-04 23:34:57.000000000 +0100
+--- src/search.c 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 1548,1554 ****
+ int len;
+ int stop = TRUE;
+ #ifdef FEAT_MBYTE
+! static char_u bytes[MB_MAXBYTES];
+ static int bytelen = 1; /* >1 for multi-byte char */
+ #endif
+
+--- 1548,1554 ----
+ int len;
+ int stop = TRUE;
+ #ifdef FEAT_MBYTE
+! static char_u bytes[MB_MAXBYTES + 1];
+ static int bytelen = 1; /* >1 for multi-byte char */
+ #endif
+
+***************
+*** 4901,4907 ****
+ #ifdef FEAT_COMMENTS
+ if ((*line != '#' ||
+ STRNCMP(skipwhite(line + 1), "define", 6) != 0)
+! && get_leader_len(line, NULL, FALSE))
+ matched = FALSE;
+
+ /*
+--- 4901,4907 ----
+ #ifdef FEAT_COMMENTS
+ if ((*line != '#' ||
+ STRNCMP(skipwhite(line + 1), "define", 6) != 0)
+! && get_leader_len(line, NULL, FALSE, TRUE))
+ matched = FALSE;
+
+ /*
+*** ../vim-7.3.540/src/testdir/test29.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test29.in 2012-06-06 15:44:38.000000000 +0200
+***************
+*** 4,19 ****
+ and with 'cpoptions' flag 'j' set or not
+
+ STARTTEST
+ :set nocompatible viminfo+=nviminfo
+ :set nojoinspaces
+ :set cpoptions-=j
+ /firstline/
+! j"tdGpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+ j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
+ j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+ j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
+! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjdG:?firstline?+1,$w! test.out
+! :qa!
+ ENDTEST
+
+ firstline
+--- 4,20 ----
+ and with 'cpoptions' flag 'j' set or not
+
+ STARTTEST
++ :so small.vim
+ :set nocompatible viminfo+=nviminfo
+ :set nojoinspaces
+ :set cpoptions-=j
+ /firstline/
+! j"td/^STARTTEST/-1
+! PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+ j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
+ j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+ j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
+! j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
+ ENDTEST
+
+ firstline
+***************
+*** 54,56 ****
+--- 55,181 ----
+ hjkl iop!
+ ert
+
++ STARTTEST
++ /^{/+1
++ :set comments=s1:/*,mb:*,ex:*/,://
++ :set nojoinspaces fo=j
++ :set backspace=eol,start
++ :.,+3join
++ j4J
++ :.,+2join
++ j3J
++ :.,+2join
++ j3J
++ :.,+2join
++ jj3J
++ ENDTEST
++
++ {
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++ }
++
++ STARTTEST
++ /^{/+1
++ :set comments=s1:/*,mb:*,ex:*/,://
++ :set comments+=s1:>#,mb:#,ex:#<,:<
++ :set cpoptions-=j joinspaces fo=j
++ :set backspace=eol,start
++ :.,+3join
++ j4J
++ :.,+2join
++ j3J
++ :.,+2join
++ j3J
++ :.,+2join
++ jj3J
++ j:.,+2join
++ jj3J
++ j:.,+5join
++ j6J
++ oSome code! // Make sure backspacing does not remove this comment leader.0i
++ ENDTEST
++
++ {
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ int i = 7 /* foo *// 3
++ // comment
++ ;
++
++ int i = 7 /* foo *// 3
++ // comment
++ ;
++
++ ># Note that the last character of the ending comment leader (left angle
++ # bracket) is a comment leader itself. Make sure that this comment leader is
++ # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++
++ ># Note that the last character of the ending comment leader (left angle
++ # bracket) is a comment leader itself. Make sure that this comment leader is
++ # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++
++ }
++
++ STARTTEST
++ :g/^STARTTEST/.,/^ENDTEST/d
++ :?firstline?+1,$w! test.out
++ :qa!
++ ENDTEST
+*** ../vim-7.3.540/src/testdir/test29.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test29.ok 2012-06-06 13:00:29.000000000 +0200
+***************
+*** 47,49 ****
+--- 47,86 ----
+ asdfasdf asdf
+ asdfasdf asdf
+ zx cvn. as dfg? hjkl iop! ert a
++
++
++ {
++ /* Make sure the previous comment leader is not removed. */
++ /* Make sure the previous comment leader is not removed. */
++ // Should the next comment leader be left alone? Yes.
++ // Should the next comment leader be left alone? Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ }
++
++
++ {
++ /* Make sure the previous comment leader is not removed. */
++ /* Make sure the previous comment leader is not removed. */
++ // Should the next comment leader be left alone? Yes.
++ // Should the next comment leader be left alone? Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ int i = 7 /* foo *// 3 // comment
++ ;
++ int i = 7 /* foo *// 3 // comment
++ ;
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++
++ Some code!// Make sure backspacing does not remove this comment leader.
++ }
++
+*** ../vim-7.3.540/src/version.c 2012-06-06 12:06:10.000000000 +0200
+--- src/version.c 2012-06-06 16:10:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 541,
+ /**/
+
+--
+I have a drinking problem -- I don't have a drink!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.542 b/source/ap/vim/patches/7.3.542
new file mode 100644
index 000000000..81086126f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.542
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.542
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.542 (after 7.3.506)
+Problem: Function is sometimes unused.
+Solution: Add #ifdef.
+Files: src/gui_gtk.c
+
+
+*** ../vim-7.3.541/src/gui_gtk.c 2012-04-25 17:10:12.000000000 +0200
+--- src/gui_gtk.c 2012-06-06 15:25:12.000000000 +0200
+***************
+*** 90,100 ****
+--- 90,102 ----
+ static void entry_activate_cb(GtkWidget *widget, gpointer data);
+ static void entry_changed_cb(GtkWidget *entry, GtkWidget *dialog);
+ static void find_replace_cb(GtkWidget *widget, gpointer data);
++ #if defined(FEAT_BROWSE) || defined(PROTO)
+ static void recent_func_log_func(
+ const gchar *log_domain,
+ GLogLevelFlags log_level,
+ const gchar *message,
+ gpointer user_data);
++ #endif
+
+ #if defined(FEAT_TOOLBAR)
+ /*
+***************
+*** 1896,1901 ****
+--- 1898,1904 ----
+ do_cmdline_cmd((char_u *)"emenu ToolBar.FindHelp");
+ }
+
++ #if defined(FEAT_BROWSE) || defined(PROTO)
+ static void
+ recent_func_log_func(const gchar *log_domain UNUSED,
+ GLogLevelFlags log_level UNUSED,
+***************
+*** 1905,1908 ****
+ /* We just want to suppress the warnings. */
+ /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
+ }
+!
+--- 1908,1911 ----
+ /* We just want to suppress the warnings. */
+ /* http://bugzilla.gnome.org/show_bug.cgi?id=664587 */
+ }
+! #endif
+*** ../vim-7.3.541/src/version.c 2012-06-06 16:12:54.000000000 +0200
+--- src/version.c 2012-06-06 16:14:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 542,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+1. At lunch time, sit in your parked car with sunglasses on and point
+ a hair dryer at passing cars. See if they slow down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.543 b/source/ap/vim/patches/7.3.543
new file mode 100644
index 000000000..3fa569cc9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.543
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.543
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.543
+Problem: The cursor is in the wrong line after using ":copen". (John
+ Beckett)
+Solution: Invoke more drastic redraw method.
+Files: src/eval.c
+
+
+*** ../vim-7.3.542/src/eval.c 2012-06-01 15:20:49.000000000 +0200
+--- src/eval.c 2012-06-06 16:28:11.000000000 +0200
+***************
+*** 18507,18515 ****
+ curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+
+ check_cursor();
+! changed_cline_bef_curs();
+! invalidate_botline();
+! redraw_later(VALID);
+
+ if (curwin->w_topline == 0)
+ curwin->w_topline = 1;
+--- 18507,18513 ----
+ curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+
+ check_cursor();
+! changed_window_setting();
+
+ if (curwin->w_topline == 0)
+ curwin->w_topline = 1;
+*** ../vim-7.3.542/src/version.c 2012-06-06 16:14:36.000000000 +0200
+--- src/version.c 2012-06-06 16:28:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 543,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+2. Page yourself over the intercom. Don't disguise your voice.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.544 b/source/ap/vim/patches/7.3.544
new file mode 100644
index 000000000..198a6cb1f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.544
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.544
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.544
+Problem: There is no good way to close a quickfix window when closing the
+ last ordinary window.
+Solution: Add the QuitPre autocommand.
+Files: src/ex_docmd.c, src/fileio.c, src/vim.h
+
+
+*** ../vim-7.3.543/src/ex_docmd.c 2012-06-06 16:12:54.000000000 +0200
+--- src/ex_docmd.c 2012-06-06 17:58:41.000000000 +0200
+***************
+*** 6458,6463 ****
+--- 6458,6464 ----
+ return;
+ }
+ #ifdef FEAT_AUTOCMD
++ apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+ if (curbuf_locked())
+ return;
+ #endif
+*** ../vim-7.3.543/src/fileio.c 2012-04-30 17:04:47.000000000 +0200
+--- src/fileio.c 2012-06-06 17:32:12.000000000 +0200
+***************
+*** 7678,7683 ****
+--- 7678,7684 ----
+ {"MenuPopup", EVENT_MENUPOPUP},
+ {"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST},
+ {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE},
++ {"QuitPre", EVENT_QUITPRE},
+ {"RemoteReply", EVENT_REMOTEREPLY},
+ {"SessionLoadPost", EVENT_SESSIONLOADPOST},
+ {"ShellCmdPost", EVENT_SHELLCMDPOST},
+*** ../vim-7.3.543/src/vim.h 2012-06-01 15:20:49.000000000 +0200
+--- src/vim.h 2012-06-06 17:30:01.000000000 +0200
+***************
+*** 1264,1271 ****
+ EVENT_INSERTENTER, /* when entering Insert mode */
+ EVENT_INSERTLEAVE, /* when leaving Insert mode */
+ EVENT_MENUPOPUP, /* just before popup menu is displayed */
+! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc */
+! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc */
+ EVENT_SESSIONLOADPOST, /* after loading a session file */
+ EVENT_STDINREADPOST, /* after reading from stdin */
+ EVENT_STDINREADPRE, /* before reading from stdin */
+--- 1264,1272 ----
+ EVENT_INSERTENTER, /* when entering Insert mode */
+ EVENT_INSERTLEAVE, /* when leaving Insert mode */
+ EVENT_MENUPOPUP, /* just before popup menu is displayed */
+! EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */
+! EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */
+! EVENT_QUITPRE, /* before :quit */
+ EVENT_SESSIONLOADPOST, /* after loading a session file */
+ EVENT_STDINREADPOST, /* after reading from stdin */
+ EVENT_STDINREADPRE, /* before reading from stdin */
+*** ../vim-7.3.543/src/version.c 2012-06-06 16:29:06.000000000 +0200
+--- src/version.c 2012-06-06 18:02:09.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 544,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+3. Every time someone asks you to do something, ask if they want fries
+ with that.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.545 b/source/ap/vim/patches/7.3.545
new file mode 100644
index 000000000..1bd76ebee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.545
@@ -0,0 +1,359 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.545
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.545
+Problem: When closing a window or buffer autocommands may close it too,
+ causing problems for where the autocommand was invoked from.
+Solution: Add the w_closing and b_closing flags. When set disallow ":q" and
+ ":close" to prevent recursive closing.
+Files: src/structs.h, src/buffer.c, src/ex_docmd.c, src/window.c
+
+
+*** ../vim-7.3.544/src/structs.h 2012-02-04 21:57:44.000000000 +0100
+--- src/structs.h 2012-06-06 16:43:34.000000000 +0200
+***************
+*** 1201,1206 ****
+--- 1201,1210 ----
+ typedef struct qf_info_S qf_info_T;
+ #endif
+
++ /*
++ * These are items normally related to a buffer. But when using ":ownsyntax"
++ * a window may have its own instance.
++ */
+ typedef struct {
+ #ifdef FEAT_SYN_HL
+ hashtab_T b_keywtab; /* syntax keywords hash table */
+***************
+*** 1290,1295 ****
+--- 1294,1303 ----
+ int b_nwindows; /* nr of windows open on this buffer */
+
+ int b_flags; /* various BF_ flags */
++ #ifdef FEAT_AUTOCMD
++ int b_closing; /* buffer is being closed, don't let
++ autocommands close it too. */
++ #endif
+
+ /*
+ * b_ffname has the full path of the file (NULL for no name).
+***************
+*** 1853,1858 ****
+--- 1861,1870 ----
+ win_T *w_prev; /* link to previous window */
+ win_T *w_next; /* link to next window */
+ #endif
++ #ifdef FEAT_AUTOCMD
++ int w_closing; /* window is being closed, don't let
++ autocommands close it too. */
++ #endif
+
+ frame_T *w_frame; /* frame containing this window */
+
+*** ../vim-7.3.544/src/buffer.c 2012-03-16 14:32:10.000000000 +0100
+--- src/buffer.c 2012-06-06 18:57:27.000000000 +0200
+***************
+*** 377,404 ****
+ /* When the buffer is no longer in a window, trigger BufWinLeave */
+ if (buf->b_nwindows == 1)
+ {
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! /* Return if autocommands deleted the buffer or made it the only one. */
+! if (!buf_valid(buf) || (abort_if_last && one_window()))
+ {
+ EMSG(_(e_auabort));
+ return;
+ }
+
+ /* When the buffer becomes hidden, but is not unloaded, trigger
+ * BufHidden */
+ if (!unload_buf)
+ {
+ apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! /* Return if autocommands deleted the buffer or made it the only
+! * one. */
+! if (!buf_valid(buf) || (abort_if_last && one_window()))
+! {
+! EMSG(_(e_auabort));
+! return;
+! }
+ }
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+--- 377,411 ----
+ /* When the buffer is no longer in a window, trigger BufWinLeave */
+ if (buf->b_nwindows == 1)
+ {
++ buf->b_closing = TRUE;
+ apply_autocmds(EVENT_BUFWINLEAVE, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! if (!buf_valid(buf))
+ {
++ /* Autocommands deleted the buffer. */
++ aucmd_abort:
+ EMSG(_(e_auabort));
+ return;
+ }
++ buf->b_closing = FALSE;
++ if (abort_if_last && one_window())
++ /* Autocommands made this the only window. */
++ goto aucmd_abort;
+
+ /* When the buffer becomes hidden, but is not unloaded, trigger
+ * BufHidden */
+ if (!unload_buf)
+ {
++ buf->b_closing = TRUE;
+ apply_autocmds(EVENT_BUFHIDDEN, buf->b_fname, buf->b_fname,
+ FALSE, buf);
+! if (!buf_valid(buf))
+! /* Autocommands deleted the buffer. */
+! goto aucmd_abort;
+! buf->b_closing = FALSE;
+! if (abort_if_last && one_window())
+! /* Autocommands made this the only window. */
+! goto aucmd_abort;
+ }
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+***************
+*** 552,557 ****
+--- 559,565 ----
+ #ifdef FEAT_AUTOCMD
+ int is_curbuf = (buf == curbuf);
+
++ buf->b_closing = TRUE;
+ apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname, FALSE, buf);
+ if (!buf_valid(buf)) /* autocommands may delete the buffer */
+ return;
+***************
+*** 568,573 ****
+--- 576,582 ----
+ if (!buf_valid(buf)) /* autocommands may delete the buffer */
+ return;
+ }
++ buf->b_closing = FALSE;
+ # ifdef FEAT_EVAL
+ if (aborting()) /* autocmds may abort script processing */
+ return;
+***************
+*** 1150,1155 ****
+--- 1159,1167 ----
+ * a window with this buffer.
+ */
+ while (buf == curbuf
++ # ifdef FEAT_AUTOCMD
++ && !(curwin->w_closing || curwin->w_buffer->b_closing)
++ # endif
+ && (firstwin != lastwin || first_tabpage->tp_next != NULL))
+ win_close(curwin, FALSE);
+ #endif
+***************
+*** 4750,4756 ****
+ #ifdef FEAT_WINDOWS
+ || (had_tab > 0 && wp != firstwin)
+ #endif
+! ) && firstwin != lastwin)
+ {
+ win_close(wp, FALSE);
+ #ifdef FEAT_AUTOCMD
+--- 4762,4772 ----
+ #ifdef FEAT_WINDOWS
+ || (had_tab > 0 && wp != firstwin)
+ #endif
+! ) && firstwin != lastwin
+! #ifdef FEAT_AUTOCMD
+! && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+! )
+ {
+ win_close(wp, FALSE);
+ #ifdef FEAT_AUTOCMD
+*** ../vim-7.3.544/src/ex_docmd.c 2012-06-06 18:03:01.000000000 +0200
+--- src/ex_docmd.c 2012-06-06 18:06:46.000000000 +0200
+***************
+*** 6459,6465 ****
+ }
+ #ifdef FEAT_AUTOCMD
+ apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+! if (curbuf_locked())
+ return;
+ #endif
+
+--- 6459,6467 ----
+ }
+ #ifdef FEAT_AUTOCMD
+ apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf);
+! /* Refuse to quick when locked or when the buffer in the last window is
+! * being closed (can only happen in autocommands). */
+! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing))
+ return;
+ #endif
+
+*** ../vim-7.3.544/src/window.c 2012-05-25 12:38:57.000000000 +0200
+--- src/window.c 2012-06-06 18:47:19.000000000 +0200
+***************
+*** 2034,2040 ****
+
+ for (wp = firstwin; wp != NULL && lastwin != firstwin; )
+ {
+! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin))
+ {
+ win_close(wp, FALSE);
+
+--- 2034,2044 ----
+
+ for (wp = firstwin; wp != NULL && lastwin != firstwin; )
+ {
+! if (wp->w_buffer == buf && (!keep_curwin || wp != curwin)
+! #ifdef FEAT_AUTOCMD
+! && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+! )
+ {
+ win_close(wp, FALSE);
+
+***************
+*** 2051,2057 ****
+ nexttp = tp->tp_next;
+ if (tp != curtab)
+ for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+! if (wp->w_buffer == buf)
+ {
+ win_close_othertab(wp, FALSE, tp);
+
+--- 2055,2065 ----
+ nexttp = tp->tp_next;
+ if (tp != curtab)
+ for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+! if (wp->w_buffer == buf
+! #ifdef FEAT_AUTOCMD
+! && !(wp->w_closing || wp->w_buffer->b_closing)
+! #endif
+! )
+ {
+ win_close_othertab(wp, FALSE, tp);
+
+***************
+*** 2168,2173 ****
+--- 2176,2183 ----
+ }
+
+ #ifdef FEAT_AUTOCMD
++ if (win->w_closing || win->w_buffer->b_closing)
++ return; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+ EMSG(_("E813: Cannot close autocmd window"));
+***************
+*** 2203,2219 ****
+ wp = frame2win(win_altframe(win, NULL));
+
+ /*
+! * Be careful: If autocommands delete the window, return now.
+ */
+ if (wp->w_buffer != curbuf)
+ {
+ other_buffer = TRUE;
+ apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
+! if (!win_valid(win) || last_window())
+ return;
+ }
+ apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
+! if (!win_valid(win) || last_window())
+ return;
+ # ifdef FEAT_EVAL
+ /* autocmds may abort script processing */
+--- 2213,2238 ----
+ wp = frame2win(win_altframe(win, NULL));
+
+ /*
+! * Be careful: If autocommands delete the window or cause this window
+! * to be the last one left, return now.
+ */
+ if (wp->w_buffer != curbuf)
+ {
+ other_buffer = TRUE;
++ win->w_closing = TRUE;
+ apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
+! if (!win_valid(win))
+! return;
+! win->w_closing = FALSE;
+! if (last_window())
+ return;
+ }
++ win->w_closing = TRUE;
+ apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
+! if (!win_valid(win))
+! return;
+! win->w_closing = FALSE;
+! if (last_window())
+ return;
+ # ifdef FEAT_EVAL
+ /* autocmds may abort script processing */
+***************
+*** 2240,2246 ****
+ * Close the link to the buffer.
+ */
+ if (win->w_buffer != NULL)
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+--- 2259,2274 ----
+ * Close the link to the buffer.
+ */
+ if (win->w_buffer != NULL)
+! {
+! #ifdef FEAT_AUTOCMD
+! win->w_closing = TRUE;
+! #endif
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+! #ifdef FEAT_AUTOCMD
+! if (win_valid(win))
+! win->w_closing = FALSE;
+! #endif
+! }
+
+ /* Autocommands may have closed the window already, or closed the only
+ * other window or moved to another tab page. */
+***************
+*** 2346,2351 ****
+--- 2374,2384 ----
+ tabpage_T *ptp = NULL;
+ int free_tp = FALSE;
+
++ #ifdef FEAT_AUTOCMD
++ if (win->w_closing || win->w_buffer->b_closing)
++ return; /* window is already being closed */
++ #endif
++
+ /* Close the link to the buffer. */
+ close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+
+*** ../vim-7.3.544/src/version.c 2012-06-06 18:03:01.000000000 +0200
+--- src/version.c 2012-06-06 18:53:06.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 545,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+4. Put your garbage can on your desk and label it "in".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.546 b/source/ap/vim/patches/7.3.546
new file mode 100644
index 000000000..c883d2d62
--- /dev/null
+++ b/source/ap/vim/patches/7.3.546
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.546
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.546
+Problem: Bogus line break.
+Solution: Remove the line break.
+Files: src/screen.c
+
+
+*** ../vim-7.3.545/src/screen.c 2012-06-01 15:20:49.000000000 +0200
+--- src/screen.c 2012-06-01 16:31:30.000000000 +0200
+***************
+*** 3228,3235 ****
+ /* no bad word found at line start, don't check until end of a
+ * word */
+ spell_hlf = HLF_COUNT;
+! word_end = (int)(spell_to_word_end(ptr, wp)
+! - line + 1);
+ }
+ else
+ {
+--- 3228,3234 ----
+ /* no bad word found at line start, don't check until end of a
+ * word */
+ spell_hlf = HLF_COUNT;
+! word_end = (int)(spell_to_word_end(ptr, wp) - line + 1);
+ }
+ else
+ {
+*** ../vim-7.3.545/src/version.c 2012-06-06 19:02:40.000000000 +0200
+--- src/version.c 2012-06-06 19:05:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 546,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+5. Put decaf in the coffee maker for 3 weeks. Once everyone has gotten
+ over their caffeine addictions, switch to espresso.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.547 b/source/ap/vim/patches/7.3.547
new file mode 100644
index 000000000..5533144a2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.547
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.547
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.547 (after 7.3.541)
+Problem: Compiler warning for uninitialized variable.
+Solution: Initialize it.
+Files: src/ops.c
+
+
+*** ../vim-7.3.546/src/ops.c 2012-06-06 16:12:54.000000000 +0200
+--- src/ops.c 2012-06-06 23:06:45.000000000 +0200
+***************
+*** 4306,4312 ****
+ colnr_T col = 0;
+ int ret = OK;
+ #if defined(FEAT_COMMENTS) || defined(PROTO)
+! int *comments;
+ int remove_comments = (use_formatoptions == TRUE)
+ && has_format_option(FO_REMOVE_COMS);
+ int prev_was_comment;
+--- 4306,4312 ----
+ colnr_T col = 0;
+ int ret = OK;
+ #if defined(FEAT_COMMENTS) || defined(PROTO)
+! int *comments = NULL;
+ int remove_comments = (use_formatoptions == TRUE)
+ && has_format_option(FO_REMOVE_COMS);
+ int prev_was_comment;
+*** ../vim-7.3.546/src/version.c 2012-06-06 19:05:45.000000000 +0200
+--- src/version.c 2012-06-06 23:07:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 547,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+9. As often as possible, skip rather than walk.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.548 b/source/ap/vim/patches/7.3.548
new file mode 100644
index 000000000..3692a9a90
--- /dev/null
+++ b/source/ap/vim/patches/7.3.548
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.548
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.548
+Problem: Compiler warning on 64 bit Windows.
+Solution: Add type cast. (Mike Williams)
+Files: src/ops.c
+
+
+*** ../vim-7.3.547/src/ops.c 2012-06-06 23:08:33.000000000 +0200
+--- src/ops.c 2012-06-07 21:07:57.000000000 +0200
+***************
+*** 4352,4358 ****
+
+ char_u *new_curr = skip_comment(curr, TRUE, insert_space,
+ &prev_was_comment);
+! comments[t] = new_curr - curr;
+ curr = new_curr;
+ }
+ else
+--- 4352,4358 ----
+
+ char_u *new_curr = skip_comment(curr, TRUE, insert_space,
+ &prev_was_comment);
+! comments[t] = (int)(new_curr - curr);
+ curr = new_curr;
+ }
+ else
+*** ../vim-7.3.547/src/version.c 2012-06-06 23:08:33.000000000 +0200
+--- src/version.c 2012-06-07 21:08:35.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 548,
+ /**/
+
+--
+How To Keep A Healthy Level Of Insanity:
+17. When the money comes out the ATM, scream "I won!, I won! 3rd
+ time this week!!!!!"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.549 b/source/ap/vim/patches/7.3.549
new file mode 100644
index 000000000..6d27fc3fd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.549
@@ -0,0 +1,125 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.549
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.549
+Problem: In 'cinoptions' "0s" is interpreted as one shiftwidth. (David
+ Pineau)
+Solution: Use the zero as zero. (Lech Lorens)
+Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok
+
+
+*** ../vim-7.3.548/src/misc1.c 2012-06-06 16:12:54.000000000 +0200
+--- src/misc1.c 2012-06-13 13:17:11.000000000 +0200
+***************
+*** 6635,6640 ****
+--- 6635,6641 ----
+ int whilelevel;
+ linenr_T lnum;
+ char_u *options;
++ char_u *digits;
+ int fraction = 0; /* init for GCC */
+ int divider;
+ int n;
+***************
+*** 6650,6655 ****
+--- 6651,6657 ----
+ l = options++;
+ if (*options == '-')
+ ++options;
++ digits = options; /* remember where the digits start */
+ n = getdigits(&options);
+ divider = 0;
+ if (*options == '.') /* ".5s" means a fraction */
+***************
+*** 6666,6672 ****
+ }
+ if (*options == 's') /* "2s" means two times 'shiftwidth' */
+ {
+! if (n == 0 && fraction == 0)
+ n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
+ else
+ {
+--- 6668,6674 ----
+ }
+ if (*options == 's') /* "2s" means two times 'shiftwidth' */
+ {
+! if (options == digits)
+ n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
+ else
+ {
+*** ../vim-7.3.548/src/testdir/test3.in 2012-04-05 17:17:38.000000000 +0200
+--- src/testdir/test3.in 2012-06-13 13:17:31.000000000 +0200
+***************
+*** 977,982 ****
+--- 977,1000 ----
+
+ STARTTEST
+ :set cin
++ :set cino=es,n0s
++ /main
++ =][
++ ENDTEST
++
++ main(void)
++ {
++ /* Make sure that cino=X0s is not parsed like cino=Xs. */
++ if (cond)
++ foo();
++ else
++ {
++ bar();
++ }
++ }
++
++ STARTTEST
++ :set cin
+ :set cino=
+ ]]=][
+ ENDTEST
+*** ../vim-7.3.548/src/testdir/test3.ok 2012-04-05 17:17:38.000000000 +0200
+--- src/testdir/test3.ok 2012-06-13 13:17:31.000000000 +0200
+***************
+*** 940,945 ****
+--- 940,957 ----
+ }
+
+
++ main(void)
++ {
++ /* Make sure that cino=X0s is not parsed like cino=Xs. */
++ if (cond)
++ foo();
++ else
++ {
++ bar();
++ }
++ }
++
++
+ {
+ do
+ {
+*** ../vim-7.3.548/src/version.c 2012-06-07 21:09:35.000000000 +0200
+--- src/version.c 2012-06-13 13:37:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 549,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+29. Your phone bill comes to your doorstep in a box.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.550 b/source/ap/vim/patches/7.3.550
new file mode 100644
index 000000000..6fba66cd5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.550
@@ -0,0 +1,160 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.550
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.550 (after 7.3.541)
+Problem: With "j" in 'formatoptions' a list leader is not removed. (Gary
+ Johnson)
+Solution: Don't ignore the start of a three part comment. (Lech Lorens)
+Files: src/ops.c, src/testdir/test29.in, src/testdir/test29.ok
+
+
+*** ../vim-7.3.549/src/ops.c 2012-06-07 21:09:35.000000000 +0200
+--- src/ops.c 2012-06-13 13:48:26.000000000 +0200
+***************
+*** 4250,4264 ****
+ return line;
+
+ /* Find:
+- * - COM_START,
+ * - COM_END,
+ * - colon,
+ * whichever comes first.
+ */
+ while (*comment_flags)
+ {
+! if (*comment_flags == COM_START
+! || *comment_flags == COM_END
+ || *comment_flags == ':')
+ {
+ break;
+--- 4250,4262 ----
+ return line;
+
+ /* Find:
+ * - COM_END,
+ * - colon,
+ * whichever comes first.
+ */
+ while (*comment_flags)
+ {
+! if (*comment_flags == COM_END
+ || *comment_flags == ':')
+ {
+ break;
+***************
+*** 4267,4275 ****
+ }
+
+ /* If we found a colon, it means that we are not processing a line
+! * starting with an opening or a closing part of a three-part
+! * comment. That's good, because we don't want to remove those as
+! * this would be annoying.
+ */
+ if (*comment_flags == ':' || *comment_flags == NUL)
+ line += lead_len;
+--- 4265,4272 ----
+ }
+
+ /* If we found a colon, it means that we are not processing a line
+! * starting with a closing part of a three-part comment. That's good,
+! * because we don't want to remove those as this would be annoying.
+ */
+ if (*comment_flags == ':' || *comment_flags == NUL)
+ line += lead_len;
+*** ../vim-7.3.549/src/testdir/test29.in 2012-06-06 16:12:54.000000000 +0200
+--- src/testdir/test29.in 2012-06-13 13:48:26.000000000 +0200
+***************
+*** 103,114 ****
+
+ STARTTEST
+ /^{/+1
+! :set comments=s1:/*,mb:*,ex:*/,://
+ :set comments+=s1:>#,mb:#,ex:#<,:<
+ :set cpoptions-=j joinspaces fo=j
+ :set backspace=eol,start
+ :.,+3join
+ j4J
+ :.,+2join
+ j3J
+ :.,+2join
+--- 103,117 ----
+
+ STARTTEST
+ /^{/+1
+! :set comments=sO:*\ -,mO:*\ \ ,exO:*/
+! :set comments+=s1:/*,mb:*,ex:*/,://
+ :set comments+=s1:>#,mb:#,ex:#<,:<
+ :set cpoptions-=j joinspaces fo=j
+ :set backspace=eol,start
+ :.,+3join
+ j4J
++ :.,+8join
++ j9J
+ :.,+2join
+ j3J
+ :.,+2join
+***************
+*** 132,137 ****
+--- 135,158 ----
+ * Make sure the previous comment leader is not removed.
+ */
+
++ /* List:
++ * - item1
++ * foo bar baz
++ * foo bar baz
++ * - item2
++ * foo bar baz
++ * foo bar baz
++ */
++
++ /* List:
++ * - item1
++ * foo bar baz
++ * foo bar baz
++ * - item2
++ * foo bar baz
++ * foo bar baz
++ */
++
+ // Should the next comment leader be left alone?
+ // Yes.
+
+*** ../vim-7.3.549/src/testdir/test29.ok 2012-06-06 16:12:54.000000000 +0200
+--- src/testdir/test29.ok 2012-06-13 13:48:26.000000000 +0200
+***************
+*** 66,71 ****
+--- 66,73 ----
+ {
+ /* Make sure the previous comment leader is not removed. */
+ /* Make sure the previous comment leader is not removed. */
++ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
++ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+ // Should the next comment leader be left alone? Yes.
+ // Should the next comment leader be left alone? Yes.
+ /* Here the comment leader should be left intact. */ // And so should this one.
+*** ../vim-7.3.549/src/version.c 2012-06-13 13:40:45.000000000 +0200
+--- src/version.c 2012-06-13 13:50:23.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 550,
+ /**/
+
+--
+If you put 7 of the most talented OSS developers in a room for a week
+and asked them to fix a bug in a spreadsheet program, in 1 week
+you'd have 2 new mail readers and a text-based web browser.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.551 b/source/ap/vim/patches/7.3.551
new file mode 100644
index 000000000..db8dbac78
--- /dev/null
+++ b/source/ap/vim/patches/7.3.551
@@ -0,0 +1,494 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.551
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.551
+Problem: When using :tablose a TabEnter autocommand is triggered too early.
+ (Karthick)
+Solution: Don't trigger *Enter autocommands before closing the tab.
+ (Christian Brabandt)
+Files: src/buffer.c, src/eval.c, src/ex_cmds2.c, src/fileio.c,
+ src/proto/window.pro, src/window.c
+
+
+*** ../vim-7.3.550/src/buffer.c 2012-06-06 19:02:40.000000000 +0200
+--- src/buffer.c 2012-06-13 14:18:58.000000000 +0200
+***************
+*** 4470,4476 ****
+ * When the ":tab" modifier was used do this for all tab pages.
+ */
+ if (had_tab > 0)
+! goto_tabpage_tp(first_tabpage);
+ for (;;)
+ {
+ tpnext = curtab->tp_next;
+--- 4470,4476 ----
+ * When the ":tab" modifier was used do this for all tab pages.
+ */
+ if (had_tab > 0)
+! goto_tabpage_tp(first_tabpage, TRUE);
+ for (;;)
+ {
+ tpnext = curtab->tp_next;
+***************
+*** 4582,4588 ****
+ if (!valid_tabpage(tpnext))
+ tpnext = first_tabpage; /* start all over...*/
+ # endif
+! goto_tabpage_tp(tpnext);
+ }
+
+ /*
+--- 4582,4588 ----
+ if (!valid_tabpage(tpnext))
+ tpnext = first_tabpage; /* start all over...*/
+ # endif
+! goto_tabpage_tp(tpnext, TRUE);
+ }
+
+ /*
+***************
+*** 4686,4698 ****
+ if (last_curtab != new_curtab)
+ {
+ if (valid_tabpage(last_curtab))
+! goto_tabpage_tp(last_curtab);
+ if (win_valid(last_curwin))
+ win_enter(last_curwin, FALSE);
+ }
+ /* to window with first arg */
+ if (valid_tabpage(new_curtab))
+! goto_tabpage_tp(new_curtab);
+ if (win_valid(new_curwin))
+ win_enter(new_curwin, FALSE);
+
+--- 4686,4698 ----
+ if (last_curtab != new_curtab)
+ {
+ if (valid_tabpage(last_curtab))
+! goto_tabpage_tp(last_curtab, TRUE);
+ if (win_valid(last_curwin))
+ win_enter(last_curwin, FALSE);
+ }
+ /* to window with first arg */
+ if (valid_tabpage(new_curtab))
+! goto_tabpage_tp(new_curtab, TRUE);
+ if (win_valid(new_curwin))
+ win_enter(new_curwin, FALSE);
+
+***************
+*** 4744,4750 ****
+ */
+ #ifdef FEAT_WINDOWS
+ if (had_tab > 0)
+! goto_tabpage_tp(first_tabpage);
+ for (;;)
+ {
+ #endif
+--- 4744,4750 ----
+ */
+ #ifdef FEAT_WINDOWS
+ if (had_tab > 0)
+! goto_tabpage_tp(first_tabpage, TRUE);
+ for (;;)
+ {
+ #endif
+***************
+*** 4784,4790 ****
+ /* Without the ":tab" modifier only do the current tab page. */
+ if (had_tab == 0 || tpnext == NULL)
+ break;
+! goto_tabpage_tp(tpnext);
+ }
+ #endif
+
+--- 4784,4790 ----
+ /* Without the ":tab" modifier only do the current tab page. */
+ if (had_tab == 0 || tpnext == NULL)
+ break;
+! goto_tabpage_tp(tpnext, TRUE);
+ }
+ #endif
+
+*** ../vim-7.3.550/src/eval.c 2012-06-06 16:29:06.000000000 +0200
+--- src/eval.c 2012-06-13 14:18:58.000000000 +0200
+***************
+*** 16415,16421 ****
+ if (tp != NULL && varname != NULL && varp != NULL)
+ {
+ save_curtab = curtab;
+! goto_tabpage_tp(tp);
+
+ tabvarname = alloc((unsigned)STRLEN(varname) + 3);
+ if (tabvarname != NULL)
+--- 16415,16421 ----
+ if (tp != NULL && varname != NULL && varp != NULL)
+ {
+ save_curtab = curtab;
+! goto_tabpage_tp(tp, TRUE);
+
+ tabvarname = alloc((unsigned)STRLEN(varname) + 3);
+ if (tabvarname != NULL)
+***************
+*** 16428,16434 ****
+
+ /* Restore current tabpage */
+ if (valid_tabpage(save_curtab))
+! goto_tabpage_tp(save_curtab);
+ }
+ }
+
+--- 16428,16434 ----
+
+ /* Restore current tabpage */
+ if (valid_tabpage(save_curtab))
+! goto_tabpage_tp(save_curtab, TRUE);
+ }
+ }
+
+***************
+*** 16492,16498 ****
+ /* set curwin to be our win, temporarily */
+ save_curwin = curwin;
+ save_curtab = curtab;
+! goto_tabpage_tp(tp);
+ if (!win_valid(win))
+ return;
+ curwin = win;
+--- 16492,16498 ----
+ /* set curwin to be our win, temporarily */
+ save_curwin = curwin;
+ save_curtab = curtab;
+! goto_tabpage_tp(tp, TRUE);
+ if (!win_valid(win))
+ return;
+ curwin = win;
+***************
+*** 16527,16533 ****
+ /* Restore current tabpage and window, if still valid (autocomands can
+ * make them invalid). */
+ if (valid_tabpage(save_curtab))
+! goto_tabpage_tp(save_curtab);
+ if (win_valid(save_curwin))
+ {
+ curwin = save_curwin;
+--- 16527,16533 ----
+ /* Restore current tabpage and window, if still valid (autocomands can
+ * make them invalid). */
+ if (valid_tabpage(save_curtab))
+! goto_tabpage_tp(save_curtab, TRUE);
+ if (win_valid(save_curwin))
+ {
+ curwin = save_curwin;
+*** ../vim-7.3.550/src/ex_cmds2.c 2012-04-25 17:32:14.000000000 +0200
+--- src/ex_cmds2.c 2012-06-13 14:18:58.000000000 +0200
+***************
+*** 2476,2482 ****
+ /* go to window "tp" */
+ if (!valid_tabpage(tp))
+ break;
+! goto_tabpage_tp(tp);
+ tp = tp->tp_next;
+ }
+ #endif
+--- 2476,2482 ----
+ /* go to window "tp" */
+ if (!valid_tabpage(tp))
+ break;
+! goto_tabpage_tp(tp, TRUE);
+ tp = tp->tp_next;
+ }
+ #endif
+*** ../vim-7.3.550/src/fileio.c 2012-06-06 18:03:01.000000000 +0200
+--- src/fileio.c 2012-06-13 14:18:58.000000000 +0200
+***************
+*** 8918,8924 ****
+ if (wp == aucmd_win)
+ {
+ if (tp != curtab)
+! goto_tabpage_tp(tp);
+ win_goto(aucmd_win);
+ goto win_found;
+ }
+--- 8918,8924 ----
+ if (wp == aucmd_win)
+ {
+ if (tp != curtab)
+! goto_tabpage_tp(tp, TRUE);
+ win_goto(aucmd_win);
+ goto win_found;
+ }
+*** ../vim-7.3.550/src/proto/window.pro 2012-02-22 14:58:24.000000000 +0100
+--- src/proto/window.pro 2012-06-13 14:23:06.000000000 +0200
+***************
+*** 27,33 ****
+ tabpage_T *find_tabpage __ARGS((int n));
+ int tabpage_index __ARGS((tabpage_T *ftp));
+ void goto_tabpage __ARGS((int n));
+! void goto_tabpage_tp __ARGS((tabpage_T *tp));
+ void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
+ void tabpage_move __ARGS((int nr));
+ void win_goto __ARGS((win_T *wp));
+--- 27,33 ----
+ tabpage_T *find_tabpage __ARGS((int n));
+ int tabpage_index __ARGS((tabpage_T *ftp));
+ void goto_tabpage __ARGS((int n));
+! void goto_tabpage_tp __ARGS((tabpage_T *tp, int trigger_autocmds));
+ void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
+ void tabpage_move __ARGS((int nr));
+ void win_goto __ARGS((win_T *wp));
+*** ../vim-7.3.550/src/window.c 2012-06-06 19:02:40.000000000 +0200
+--- src/window.c 2012-06-13 14:24:38.000000000 +0200
+***************
+*** 45,51 ****
+ #if defined(FEAT_WINDOWS) || defined(PROTO)
+ static tabpage_T *alloc_tabpage __ARGS((void));
+ static int leave_tabpage __ARGS((buf_T *new_curbuf));
+! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf));
+ static void frame_fix_height __ARGS((win_T *wp));
+ static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
+ static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
+--- 45,51 ----
+ #if defined(FEAT_WINDOWS) || defined(PROTO)
+ static tabpage_T *alloc_tabpage __ARGS((void));
+ static int leave_tabpage __ARGS((buf_T *new_curbuf));
+! static void enter_tabpage __ARGS((tabpage_T *tp, buf_T *old_curbuf, int trigger_autocmds));
+ static void frame_fix_height __ARGS((win_T *wp));
+ static int frame_minheight __ARGS((frame_T *topfrp, win_T *next_curwin));
+ static void win_enter_ext __ARGS((win_T *wp, int undo_sync, int no_curwin));
+***************
+*** 355,365 ****
+ && valid_tabpage(oldtab))
+ {
+ newtab = curtab;
+! goto_tabpage_tp(oldtab);
+ if (curwin == wp)
+ win_close(curwin, FALSE);
+ if (valid_tabpage(newtab))
+! goto_tabpage_tp(newtab);
+ }
+ }
+ break;
+--- 355,365 ----
+ && valid_tabpage(oldtab))
+ {
+ newtab = curtab;
+! goto_tabpage_tp(oldtab, TRUE);
+ if (curwin == wp)
+ win_close(curwin, FALSE);
+ if (valid_tabpage(newtab))
+! goto_tabpage_tp(newtab, TRUE);
+ }
+ }
+ break;
+***************
+*** 2130,2137 ****
+ * page and then close the window and the tab page. This avoids that
+ * curwin and curtab are invalid while we are freeing memory, they may
+ * be used in GUI events.
+ */
+! goto_tabpage_tp(alt_tabpage());
+ redraw_tabline = TRUE;
+
+ /* Safety check: Autocommands may have closed the window when jumping
+--- 2130,2139 ----
+ * page and then close the window and the tab page. This avoids that
+ * curwin and curtab are invalid while we are freeing memory, they may
+ * be used in GUI events.
++ * Don't trigger autocommands yet, they may use wrong values, so do
++ * that below.
+ */
+! goto_tabpage_tp(alt_tabpage(), FALSE);
+ redraw_tabline = TRUE;
+
+ /* Safety check: Autocommands may have closed the window when jumping
+***************
+*** 2144,2149 ****
+--- 2146,2157 ----
+ if (h != tabline_height())
+ shell_new_rows();
+ }
++ /* Since goto_tabpage_tp above did not trigger *Enter autocommands, do
++ * that now. */
++ #ifdef FEAT_AUTOCMD
++ apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
++ apply_autocmds(EVENT_WINENTER, NULL, NULL, FALSE, curbuf);
++ #endif
+ return TRUE;
+ }
+ return FALSE;
+***************
+*** 3556,3562 ****
+ }
+
+ /* Failed, get back the previous Tab page */
+! enter_tabpage(curtab, curbuf);
+ return FAIL;
+ }
+
+--- 3564,3570 ----
+ }
+
+ /* Failed, get back the previous Tab page */
+! enter_tabpage(curtab, curbuf, TRUE);
+ return FAIL;
+ }
+
+***************
+*** 3709,3719 ****
+ /*
+ * Start using tab page "tp".
+ * Only to be used after leave_tabpage() or freeing the current tab page.
+ */
+ static void
+! enter_tabpage(tp, old_curbuf)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+--- 3717,3729 ----
+ /*
+ * Start using tab page "tp".
+ * Only to be used after leave_tabpage() or freeing the current tab page.
++ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
+ */
+ static void
+! enter_tabpage(tp, old_curbuf, trigger_autocmds)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
++ int trigger_autocmds;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+***************
+*** 3761,3769 ****
+ #ifdef FEAT_AUTOCMD
+ /* Apply autocommands after updating the display, when 'rows' and
+ * 'columns' have been set correctly. */
+! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
+! if (old_curbuf != curbuf)
+! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
+ #endif
+
+ redraw_all_later(CLEAR);
+--- 3771,3782 ----
+ #ifdef FEAT_AUTOCMD
+ /* Apply autocommands after updating the display, when 'rows' and
+ * 'columns' have been set correctly. */
+! if (trigger_autocmds)
+! {
+! apply_autocmds(EVENT_TABENTER, NULL, NULL, FALSE, curbuf);
+! if (old_curbuf != curbuf)
+! apply_autocmds(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf);
+! }
+ #endif
+
+ redraw_all_later(CLEAR);
+***************
+*** 3839,3845 ****
+ }
+ }
+
+! goto_tabpage_tp(tp);
+
+ #ifdef FEAT_GUI_TABLINE
+ if (gui_use_tabline())
+--- 3852,3858 ----
+ }
+ }
+
+! goto_tabpage_tp(tp, TRUE);
+
+ #ifdef FEAT_GUI_TABLINE
+ if (gui_use_tabline())
+***************
+*** 3849,3859 ****
+
+ /*
+ * Go to tabpage "tp".
+ * Note: doesn't update the GUI tab.
+ */
+ void
+! goto_tabpage_tp(tp)
+ tabpage_T *tp;
+ {
+ /* Don't repeat a message in another tab page. */
+ set_keep_msg(NULL, 0);
+--- 3862,3874 ----
+
+ /*
+ * Go to tabpage "tp".
++ * Only trigger *Enter autocommands when trigger_autocmds is TRUE.
+ * Note: doesn't update the GUI tab.
+ */
+ void
+! goto_tabpage_tp(tp, trigger_autocmds)
+ tabpage_T *tp;
++ int trigger_autocmds;
+ {
+ /* Don't repeat a message in another tab page. */
+ set_keep_msg(NULL, 0);
+***************
+*** 3861,3869 ****
+ if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
+ {
+ if (valid_tabpage(tp))
+! enter_tabpage(tp, curbuf);
+ else
+! enter_tabpage(curtab, curbuf);
+ }
+ }
+
+--- 3876,3884 ----
+ if (tp != curtab && leave_tabpage(tp->tp_curwin->w_buffer) == OK)
+ {
+ if (valid_tabpage(tp))
+! enter_tabpage(tp, curbuf, trigger_autocmds);
+ else
+! enter_tabpage(curtab, curbuf, trigger_autocmds);
+ }
+ }
+
+***************
+*** 3876,3882 ****
+ tabpage_T *tp;
+ win_T *wp;
+ {
+! goto_tabpage_tp(tp);
+ if (curtab == tp && win_valid(wp))
+ {
+ win_enter(wp, TRUE);
+--- 3891,3897 ----
+ tabpage_T *tp;
+ win_T *wp;
+ {
+! goto_tabpage_tp(tp, TRUE);
+ if (curtab == tp && win_valid(wp))
+ {
+ win_enter(wp, TRUE);
+*** ../vim-7.3.550/src/version.c 2012-06-13 14:01:36.000000000 +0200
+--- src/version.c 2012-06-13 14:28:00.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 551,
+ /**/
+
+--
+Give a man a computer program and you give him a headache,
+but teach him to program computers and you give him the power
+to create headaches for others for the rest of his life...
+ R. B. Forest
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.552 b/source/ap/vim/patches/7.3.552
new file mode 100644
index 000000000..e9a560ec5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.552
@@ -0,0 +1,582 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.552
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.552
+Problem: Formatting inside comments does not use the "2" flag in
+ 'formatoptions'.
+Solution: Support the "2" flag. (Tor Perkins)
+Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c,
+ src/testdir/test68.in, src/testdir/test68.ok
+
+
+*** ../vim-7.3.551/src/vim.h 2012-06-06 18:03:01.000000000 +0200
+--- src/vim.h 2012-06-13 16:07:27.000000000 +0200
+***************
+*** 1072,1083 ****
+--- 1072,1085 ----
+ #define INSCHAR_DO_COM 2 /* format comments */
+ #define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */
+ #define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */
++ #define INSCHAR_COM_LIST 16 /* format comments with list/2nd line indent */
+
+ /* flags for open_line() */
+ #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */
+ #define OPENLINE_DO_COM 2 /* format comments */
+ #define OPENLINE_KEEPTRAIL 4 /* keep trailing spaces */
+ #define OPENLINE_MARKFIX 8 /* fix mark positions */
++ #define OPENLINE_COM_LIST 16 /* format comments with list/2nd line indent */
+
+ /*
+ * There are four history tables:
+*** ../vim-7.3.551/src/ops.c 2012-06-13 14:01:36.000000000 +0200
+--- src/ops.c 2012-06-13 16:53:44.000000000 +0200
+***************
+*** 1727,1734 ****
+ * and the delete is within one line. */
+ if ((
+ #ifdef FEAT_CLIPBOARD
+! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
+! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
+ #endif
+ oap->regname == 0) && oap->motion_type != MLINE
+ && oap->line_count == 1)
+--- 1727,1734 ----
+ * and the delete is within one line. */
+ if ((
+ #ifdef FEAT_CLIPBOARD
+! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') ||
+! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') ||
+ #endif
+ oap->regname == 0) && oap->motion_type != MLINE
+ && oap->line_count == 1)
+***************
+*** 4208,4217 ****
+ * "is_comment".
+ * line - line to be processed,
+ * process - if FALSE, will only check whether the line ends with an unclosed
+! * comment,
+ * include_space - whether to also skip space following the comment leader,
+ * is_comment - will indicate whether the current line ends with an unclosed
+! * comment.
+ */
+ static char_u *
+ skip_comment(line, process, include_space, is_comment)
+--- 4208,4217 ----
+ * "is_comment".
+ * line - line to be processed,
+ * process - if FALSE, will only check whether the line ends with an unclosed
+! * comment,
+ * include_space - whether to also skip space following the comment leader,
+ * is_comment - will indicate whether the current line ends with an unclosed
+! * comment.
+ */
+ static char_u *
+ skip_comment(line, process, include_space, is_comment)
+***************
+*** 4723,4731 ****
+ char_u *leader_flags = NULL; /* flags for leader of current line */
+ char_u *next_leader_flags; /* flags for leader of next line */
+ int do_comments; /* format comments */
+ #endif
+ int advance = TRUE;
+! int second_indent = -1;
+ int do_second_indent;
+ int do_number_indent;
+ int do_trail_white;
+--- 4723,4733 ----
+ char_u *leader_flags = NULL; /* flags for leader of current line */
+ char_u *next_leader_flags; /* flags for leader of next line */
+ int do_comments; /* format comments */
++ int do_comments_list = 0; /* format comments with 'n' or '2' */
+ #endif
+ int advance = TRUE;
+! int second_indent = -1; /* indent for second line (comment
+! * aware) */
+ int do_second_indent;
+ int do_number_indent;
+ int do_trail_white;
+***************
+*** 4828,4845 ****
+ if (first_par_line
+ && (do_second_indent || do_number_indent)
+ && prev_is_end_par
+! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count
+ #ifdef FEAT_COMMENTS
+! && leader_len == 0
+! && next_leader_len == 0
+ #endif
+! )
+! {
+! if (do_second_indent
+! && !lineempty(curwin->w_cursor.lnum + 1))
+! second_indent = get_indent_lnum(curwin->w_cursor.lnum + 1);
+ else if (do_number_indent)
+! second_indent = get_number_indent(curwin->w_cursor.lnum);
+ }
+
+ /*
+--- 4830,4875 ----
+ if (first_par_line
+ && (do_second_indent || do_number_indent)
+ && prev_is_end_par
+! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count)
+! {
+! if (do_second_indent && !lineempty(curwin->w_cursor.lnum + 1))
+! {
+ #ifdef FEAT_COMMENTS
+! if (leader_len == 0 && next_leader_len == 0)
+! {
+! /* no comment found */
+ #endif
+! second_indent =
+! get_indent_lnum(curwin->w_cursor.lnum + 1);
+! #ifdef FEAT_COMMENTS
+! }
+! else
+! {
+! second_indent = next_leader_len;
+! do_comments_list = 1;
+! }
+! #endif
+! }
+ else if (do_number_indent)
+! {
+! #ifdef FEAT_COMMENTS
+! if (leader_len == 0 && next_leader_len == 0)
+! {
+! /* no comment found */
+! #endif
+! second_indent =
+! get_number_indent(curwin->w_cursor.lnum);
+! #ifdef FEAT_COMMENTS
+! }
+! else
+! {
+! /* get_number_indent() is now "comment aware"... */
+! second_indent =
+! get_number_indent(curwin->w_cursor.lnum);
+! do_comments_list = 1;
+! }
+! #endif
+! }
+ }
+
+ /*
+***************
+*** 4878,4883 ****
+--- 4908,4915 ----
+ insertchar(NUL, INSCHAR_FORMAT
+ #ifdef FEAT_COMMENTS
+ + (do_comments ? INSCHAR_DO_COM : 0)
++ + (do_comments && do_comments_list
++ ? INSCHAR_COM_LIST : 0)
+ #endif
+ + (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
+ State = old_State;
+*** ../vim-7.3.551/src/edit.c 2012-06-06 16:12:54.000000000 +0200
+--- src/edit.c 2012-06-13 16:54:10.000000000 +0200
+***************
+*** 1463,1469 ****
+ * what check_abbr() expects. */
+ (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+ #endif
+! c) && c != Ctrl_RSB))
+ {
+ insert_special(c, FALSE, FALSE);
+ #ifdef FEAT_RIGHTLEFT
+--- 1463,1469 ----
+ * what check_abbr() expects. */
+ (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) :
+ #endif
+! c) && c != Ctrl_RSB))
+ {
+ insert_special(c, FALSE, FALSE);
+ #ifdef FEAT_RIGHTLEFT
+***************
+*** 5769,5774 ****
+--- 5769,5784 ----
+ # define WHITECHAR(cc) vim_iswhite(cc)
+ #endif
+
++ /*
++ * "flags": INSCHAR_FORMAT - force formatting
++ * INSCHAR_CTRLV - char typed just after CTRL-V
++ * INSCHAR_NO_FEX - don't use 'formatexpr'
++ *
++ * NOTE: passes the flags value straight through to internal_format() which,
++ * beside INSCHAR_FORMAT (above), is also looking for these:
++ * INSCHAR_DO_COM - format comments
++ * INSCHAR_COM_LIST - format comments with num list or 2nd line indent
++ */
+ void
+ insertchar(c, flags, second_indent)
+ int c; /* character to insert or NUL */
+***************
+*** 6011,6016 ****
+--- 6021,6029 ----
+
+ /*
+ * Format text at the current insert position.
++ *
++ * If the INSCHAR_COM_LIST flag is present, then the value of second_indent
++ * will be the comment leader length sent to open_line().
+ */
+ static void
+ internal_format(textwidth, second_indent, flags, format_only, c)
+***************
+*** 6289,6311 ****
+ + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
+ #ifdef FEAT_COMMENTS
+ + (do_comments ? OPENLINE_DO_COM : 0)
+ #endif
+! , old_indent);
+! old_indent = 0;
+
+ replace_offset = 0;
+ if (first_line)
+ {
+! if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
+! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
+! if (second_indent >= 0)
+ {
+ #ifdef FEAT_VREPLACE
+! if (State & VREPLACE_FLAG)
+! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE);
+! else
+ #endif
+! (void)set_indent(second_indent, SIN_CHANGED);
+ }
+ first_line = FALSE;
+ }
+--- 6302,6337 ----
+ + (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
+ #ifdef FEAT_COMMENTS
+ + (do_comments ? OPENLINE_DO_COM : 0)
++ + ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
+ #endif
+! , ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent));
+! if (!(flags & INSCHAR_COM_LIST))
+! old_indent = 0;
+
+ replace_offset = 0;
+ if (first_line)
+ {
+! if (!(flags & INSCHAR_COM_LIST))
+ {
++ /*
++ * This section is for numeric lists w/o comments. If comment
++ * indents are needed with numeric lists (formatoptions=nq),
++ * then the INSCHAR_COM_LIST flag will cause the corresponding
++ * OPENLINE_COM_LIST flag to be passed through to open_line()
++ * (as seen above)...
++ */
++ if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
++ second_indent = get_number_indent(curwin->w_cursor.lnum -1);
++ if (second_indent >= 0)
++ {
+ #ifdef FEAT_VREPLACE
+! if (State & VREPLACE_FLAG)
+! change_indent(INDENT_SET, second_indent,
+! FALSE, NUL, TRUE);
+! else
+ #endif
+! (void)set_indent(second_indent, SIN_CHANGED);
+! }
+ }
+ first_line = FALSE;
+ }
+*** ../vim-7.3.551/src/misc1.c 2012-06-13 13:40:45.000000000 +0200
+--- src/misc1.c 2012-06-13 16:54:59.000000000 +0200
+***************
+*** 423,449 ****
+ {
+ colnr_T col;
+ pos_T pos;
+- regmmatch_T regmatch;
+
+ if (lnum > curbuf->b_ml.ml_line_count)
+ return -1;
+ pos.lnum = 0;
+! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+! if (regmatch.regprog != NULL)
+ {
+! regmatch.rmm_ic = FALSE;
+! regmatch.rmm_maxcol = 0;
+! if (vim_regexec_multi(&regmatch, curwin, curbuf, lnum,
+! (colnr_T)0, NULL))
+ {
+! pos.lnum = regmatch.endpos[0].lnum + lnum;
+! pos.col = regmatch.endpos[0].col;
+ #ifdef FEAT_VIRTUALEDIT
+! pos.coladd = 0;
+ #endif
+ }
+ vim_free(regmatch.regprog);
+ }
+
+ if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
+ return -1;
+--- 423,492 ----
+ {
+ colnr_T col;
+ pos_T pos;
+
+ if (lnum > curbuf->b_ml.ml_line_count)
+ return -1;
+ pos.lnum = 0;
+!
+! #ifdef FEAT_COMMENTS
+! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
+ {
+! regmatch_T regmatch;
+! int lead_len; /* length of comment leader */
+!
+! lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
+! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+! if (regmatch.regprog != NULL)
+ {
+! regmatch.rm_ic = FALSE;
+!
+! /* vim_regexec() expects a pointer to a line. This lets us
+! * start matching for the flp beyond any comment leader... */
+! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
+! {
+! pos.lnum = lnum;
+! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
+! pos.col += lead_len;
+ #ifdef FEAT_VIRTUALEDIT
+! pos.coladd = 0;
+ #endif
++ }
+ }
+ vim_free(regmatch.regprog);
+ }
++ else
++ {
++ /*
++ * What follows is the orig code that is not "comment aware"...
++ *
++ * I'm not sure if regmmatch_T (multi-match) is needed in this case.
++ * It may be true that this section would work properly using the
++ * regmatch_T code above, in which case, these two seperate sections
++ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
++ */
++ #endif
++ regmmatch_T regmatch;
++
++ regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
++
++ if (regmatch.regprog != NULL)
++ {
++ regmatch.rmm_ic = FALSE;
++ regmatch.rmm_maxcol = 0;
++ if (vim_regexec_multi(&regmatch, curwin, curbuf,
++ lnum, (colnr_T)0, NULL))
++ {
++ pos.lnum = regmatch.endpos[0].lnum + lnum;
++ pos.col = regmatch.endpos[0].col;
++ #ifdef FEAT_VIRTUALEDIT
++ pos.coladd = 0;
++ #endif
++ }
++ vim_free(regmatch.regprog);
++ }
++ #ifdef FEAT_COMMENTS
++ }
++ #endif
+
+ if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
+ return -1;
+***************
+*** 502,515 ****
+ * OPENLINE_DO_COM format comments
+ * OPENLINE_KEEPTRAIL keep trailing spaces
+ * OPENLINE_MARKFIX adjust mark positions after the line break
+ *
+ * Return TRUE for success, FALSE for failure
+ */
+ int
+! open_line(dir, flags, old_indent)
+ int dir; /* FORWARD or BACKWARD */
+ int flags;
+! int old_indent; /* indent for after ^^D in Insert mode */
+ {
+ char_u *saved_line; /* copy of the original line */
+ char_u *next_line = NULL; /* copy of the next line */
+--- 545,562 ----
+ * OPENLINE_DO_COM format comments
+ * OPENLINE_KEEPTRAIL keep trailing spaces
+ * OPENLINE_MARKFIX adjust mark positions after the line break
++ * OPENLINE_COM_LIST format comments with list or 2nd line indent
++ *
++ * "second_line_indent": indent for after ^^D in Insert mode or if flag
++ * OPENLINE_COM_LIST
+ *
+ * Return TRUE for success, FALSE for failure
+ */
+ int
+! open_line(dir, flags, second_line_indent)
+ int dir; /* FORWARD or BACKWARD */
+ int flags;
+! int second_line_indent;
+ {
+ char_u *saved_line; /* copy of the original line */
+ char_u *next_line = NULL; /* copy of the next line */
+***************
+*** 650,657 ****
+ * count white space on current line
+ */
+ newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
+! if (newindent == 0)
+! newindent = old_indent; /* for ^^D command in insert mode */
+
+ #ifdef FEAT_SMARTINDENT
+ /*
+--- 697,704 ----
+ * count white space on current line
+ */
+ newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts);
+! if (newindent == 0 && !(flags & OPENLINE_COM_LIST))
+! newindent = second_line_indent; /* for ^^D command in insert mode */
+
+ #ifdef FEAT_SMARTINDENT
+ /*
+***************
+*** 1008,1015 ****
+ if (lead_len)
+ {
+ /* allocate buffer (may concatenate p_exta later) */
+! leader = alloc(lead_len + lead_repl_len + extra_space +
+! extra_len + 1);
+ allocated = leader; /* remember to free it later */
+
+ if (leader == NULL)
+--- 1055,1062 ----
+ if (lead_len)
+ {
+ /* allocate buffer (may concatenate p_exta later) */
+! leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
+! + (second_line_indent > 0 ? second_line_indent : 0));
+ allocated = leader; /* remember to free it later */
+
+ if (leader == NULL)
+***************
+*** 1304,1309 ****
+--- 1351,1370 ----
+ /* concatenate leader and p_extra, if there is a leader */
+ if (lead_len)
+ {
++ if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
++ {
++ int i;
++ int padding = second_line_indent - (newindent + STRLEN(leader));
++
++ /* Here whitespace is inserted after the comment char.
++ * Below, set_indent(newindent, SIN_INSERT) will insert the
++ * whitespace needed before the comment char. */
++ for (i = 0; i < padding; i++)
++ {
++ STRCAT(leader, " ");
++ newcol++;
++ }
++ }
+ STRCAT(leader, p_extra);
+ p_extra = leader;
+ did_ai = TRUE; /* So truncating blanks works with comments */
+***************
+*** 4966,4973 ****
+ char_u *
+ FullName_save(fname, force)
+ char_u *fname;
+! int force; /* force expansion, even when it already looks
+! like a full path name */
+ {
+ char_u *buf;
+ char_u *new_fname = NULL;
+--- 5027,5034 ----
+ char_u *
+ FullName_save(fname, force)
+ char_u *fname;
+! int force; /* force expansion, even when it already looks
+! * like a full path name */
+ {
+ char_u *buf;
+ char_u *new_fname = NULL;
+*** ../vim-7.3.551/src/testdir/test68.in 2010-10-09 17:21:42.000000000 +0200
+--- src/testdir/test68.in 2012-06-13 15:49:38.000000000 +0200
+***************
+*** 51,56 ****
+--- 51,77 ----
+ }
+
+ STARTTEST
++ /^{/+1
++ :set tw=5 fo=qn comments=:#
++ gwap
++ ENDTEST
++
++ {
++ # 1 a b
++ }
++
++ STARTTEST
++ /^{/+1
++ :set tw=5 fo=q2 comments=:#
++ gwap
++ ENDTEST
++
++ {
++ # x
++ # a b
++ }
++
++ STARTTEST
+ /^{/+2
+ :set tw& fo=a
+ I^^
+*** ../vim-7.3.551/src/testdir/test68.ok 2010-10-09 17:21:42.000000000 +0200
+--- src/testdir/test68.ok 2012-06-13 15:49:38.000000000 +0200
+***************
+*** 34,38 ****
+--- 34,50 ----
+ }
+
+
++ {
++ # 1 a
++ # b
++ }
++
++
++ {
++ # x a
++ # b
++ }
++
++
+ { 1aa ^^2bb }
+
+*** ../vim-7.3.551/src/version.c 2012-06-13 14:28:16.000000000 +0200
+--- src/version.c 2012-06-13 16:36:14.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 552,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+31. You code your homework in HTML and give your instructor the URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.553 b/source/ap/vim/patches/7.3.553
new file mode 100644
index 000000000..82c757e10
--- /dev/null
+++ b/source/ap/vim/patches/7.3.553
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.553
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.553
+Problem: With double-width characters and 'listchars' containing "precedes"
+ the text is displayed one cell off.
+Solution: Check for double-width character being overwritten by the
+ "precedes" character. (Yasuhiro Matsumoto)
+Files: src/screen.c
+
+
+*** ../vim-7.3.552/src/screen.c 2012-06-06 19:05:45.000000000 +0200
+--- src/screen.c 2012-06-13 17:55:10.000000000 +0200
+***************
+*** 89,94 ****
+--- 89,97 ----
+
+ #include "vim.h"
+
++ #define MB_FILLER_CHAR '<' /* character used when a double-width character
++ * doesn't fit. */
++
+ /*
+ * The attributes that are actually active for writing to the screen.
+ */
+***************
+*** 4016,4022 ****
+ if (n_skip > 0 && mb_l > 1 && n_extra == 0)
+ {
+ n_extra = 1;
+! c_extra = '<';
+ c = ' ';
+ if (area_attr == 0 && search_attr == 0)
+ {
+--- 4019,4025 ----
+ if (n_skip > 0 && mb_l > 1 && n_extra == 0)
+ {
+ n_extra = 1;
+! c_extra = MB_FILLER_CHAR;
+ c = ' ';
+ if (area_attr == 0 && search_attr == 0)
+ {
+***************
+*** 4576,4581 ****
+--- 4579,4593 ----
+ c = lcs_prec;
+ lcs_prec_todo = NUL;
+ #ifdef FEAT_MBYTE
++ if (has_mbyte && (*mb_char2cells)(mb_c) > 1)
++ {
++ /* Double-width character being overwritten by the "precedes"
++ * character, need to fill up half the character. */
++ c_extra = MB_FILLER_CHAR;
++ n_extra = 1;
++ n_attr = 2;
++ extra_attr = hl_attr(HLF_AT);
++ }
+ mb_c = c;
+ if (enc_utf8 && (*mb_char2len)(c) > 1)
+ {
+*** ../vim-7.3.552/src/version.c 2012-06-13 17:28:51.000000000 +0200
+--- src/version.c 2012-06-13 17:48:45.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 553,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+32. You don't know what sex three of your closest friends are, because they
+ have neutral nicknames and you never bothered to ask.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.554 b/source/ap/vim/patches/7.3.554
new file mode 100644
index 000000000..e8d4d37a9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.554
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.554
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.554 (after 7.3.551)
+Problem: Compiler warning for unused argument.
+Solution: Add UNUSED.
+Files: src/window.c
+
+
+*** ../vim-7.3.553/src/window.c 2012-06-13 14:28:16.000000000 +0200
+--- src/window.c 2012-06-13 17:46:49.000000000 +0200
+***************
+*** 3723,3729 ****
+ enter_tabpage(tp, old_curbuf, trigger_autocmds)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
+! int trigger_autocmds;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+--- 3723,3729 ----
+ enter_tabpage(tp, old_curbuf, trigger_autocmds)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
+! int trigger_autocmds UNUSED;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+*** ../vim-7.3.553/src/version.c 2012-06-13 18:06:32.000000000 +0200
+--- src/version.c 2012-06-13 18:15:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 554,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+33. You name your children Eudora, Mozilla and Dotcom.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.555 b/source/ap/vim/patches/7.3.555
new file mode 100644
index 000000000..acb684522
--- /dev/null
+++ b/source/ap/vim/patches/7.3.555
@@ -0,0 +1,232 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.555
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.555
+Problem: Building on IBM z/OS fails.
+Solution: Adjust configure. Use the QUOTESED value from config.mk instead of
+ the hard coded one in Makefile. (Stephen Bovy)
+Files: src/configure.in, src/auto/configure, src/Makefile
+
+
+*** ../vim-7.3.554/src/configure.in 2012-02-05 22:51:27.000000000 +0100
+--- src/configure.in 2012-06-13 18:52:11.000000000 +0200
+***************
+*** 329,343 ****
+ echo ""
+ echo "------------------------------------------"
+ echo " On z/OS Unix, the environment variable"
+! echo " __CC_${ccn}MODE must be set to \"1\"!"
+ echo " Do:"
+ echo " export _CC_${ccn}MODE=1"
+ echo " and then call configure again."
+ echo "------------------------------------------"
+ exit 1
+ fi
+! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
+! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
+ AC_MSG_RESULT(yes)
+ ;;
+ *) zOSUnix="no";
+--- 329,346 ----
+ echo ""
+ echo "------------------------------------------"
+ echo " On z/OS Unix, the environment variable"
+! echo " _CC_${ccn}MODE must be set to \"1\"!"
+ echo " Do:"
+ echo " export _CC_${ccn}MODE=1"
+ echo " and then call configure again."
+ echo "------------------------------------------"
+ exit 1
+ fi
+! # Set CFLAGS for configure process.
+! # This will be reset later for config.mk.
+! # Use haltonmsg to force error for missing H files.
+! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
+! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
+ AC_MSG_RESULT(yes)
+ ;;
+ *) zOSUnix="no";
+***************
+*** 2378,2387 ****
+ if test -z "$SKIP_MOTIF"; then
+ cppflags_save=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+! AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
+! Xm/UnhighlightT.h Xm/Notebook.h)
+
+! if test $ac_cv_header_Xm_XpmP_h = yes; then
+ dnl Solaris uses XpmAttributes_21, very annoying.
+ AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
+ AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
+--- 2381,2395 ----
+ if test -z "$SKIP_MOTIF"; then
+ cppflags_save=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+! if test "$zOSUnix" = "yes"; then
+! xmheader="Xm/Xm.h"
+! else
+! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
+! Xm/UnhighlightT.h Xm/Notebook.h"
+! fi
+! AC_CHECK_HEADERS($xmheader)
+
+! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
+ dnl Solaris uses XpmAttributes_21, very annoying.
+ AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
+ AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
+***************
+*** 3642,3647 ****
+--- 3650,3660 ----
+ fi
+ AC_SUBST(LINK_AS_NEEDED)
+
++ # IBM z/OS reset CFLAGS for config.mk
++ if test "$zOSUnix" = "yes"; then
++ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
++ fi
++
+ dnl write output files
+ AC_OUTPUT(auto/config.mk:config.mk.in)
+
+*** ../vim-7.3.554/src/auto/configure 2012-02-05 22:51:27.000000000 +0100
+--- src/auto/configure 2012-06-13 18:53:04.000000000 +0200
+***************
+*** 4426,4440 ****
+ echo ""
+ echo "------------------------------------------"
+ echo " On z/OS Unix, the environment variable"
+! echo " __CC_${ccn}MODE must be set to \"1\"!"
+ echo " Do:"
+ echo " export _CC_${ccn}MODE=1"
+ echo " and then call configure again."
+ echo "------------------------------------------"
+ exit 1
+ fi
+! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float\\(IEEE\\)";
+! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ ;;
+--- 4426,4443 ----
+ echo ""
+ echo "------------------------------------------"
+ echo " On z/OS Unix, the environment variable"
+! echo " _CC_${ccn}MODE must be set to \"1\"!"
+ echo " Do:"
+ echo " export _CC_${ccn}MODE=1"
+ echo " and then call configure again."
+ echo "------------------------------------------"
+ exit 1
+ fi
+! # Set CFLAGS for configure process.
+! # This will be reset later for config.mk.
+! # Use haltonmsg to force error for missing H files.
+! CFLAGS="$CFLAGS -D_ALL_SOURCE -Wc,float(ieee),haltonmsg(3296)";
+! LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ $as_echo "yes" >&6; }
+ ;;
+***************
+*** 8697,8704 ****
+ if test -z "$SKIP_MOTIF"; then
+ cppflags_save=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+! for ac_header in Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
+! Xm/UnhighlightT.h Xm/Notebook.h
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+--- 8700,8712 ----
+ if test -z "$SKIP_MOTIF"; then
+ cppflags_save=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+! if test "$zOSUnix" = "yes"; then
+! xmheader="Xm/Xm.h"
+! else
+! xmheader="Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h
+! Xm/UnhighlightT.h Xm/Notebook.h"
+! fi
+! for ac_header in $xmheader
+ do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+***************
+*** 8713,8719 ****
+ done
+
+
+! if test $ac_cv_header_Xm_XpmP_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
+ $as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+--- 8721,8727 ----
+ done
+
+
+! if test "x$ac_cv_header_Xm_XpmP_h" = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XpmAttributes_21 in Xm/XpmP.h" >&5
+ $as_echo_n "checking for XpmAttributes_21 in Xm/XpmP.h... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+***************
+*** 12590,12595 ****
+--- 12598,12608 ----
+ fi
+
+
++ # IBM z/OS reset CFLAGS for config.mk
++ if test "$zOSUnix" = "yes"; then
++ CFLAGS="-D_ALL_SOURCE -Wc,float\(ieee\),dll"
++ fi
++
+ ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
+
+ cat >confcache <<\_ACEOF
+*** ../vim-7.3.554/src/Makefile 2012-03-28 17:17:45.000000000 +0200
+--- src/Makefile 2012-06-13 18:48:13.000000000 +0200
+***************
+*** 875,880 ****
+--- 875,884 ----
+ #CFLAGS = -O -Qtarget=m88110compat
+ #EXTRA_LIBS = -lgen
+
++ # The value of QUOTESED comes from auto/config.mk.
++ # Uncomment the next line to use the default value.
++ # QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
++
+ ##################### end of system specific lines ################### }}}
+
+ ### Names of the programs and targets {{{1
+***************
+*** 2411,2417 ****
+ auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in
+ CC="$(CC) $(OSDEF_CFLAGS)" srcdir=$(srcdir) sh $(srcdir)/osdef.sh
+
+- QUOTESED = sed -e 's/[\\"]/\\&/g' -e 's/\\"/"/' -e 's/\\";$$/";/'
+ auto/pathdef.c: Makefile auto/config.mk
+ -@echo creating $@
+ -@echo '/* pathdef.c */' > $@
+--- 2415,2420 ----
+*** ../vim-7.3.554/src/version.c 2012-06-13 18:15:13.000000000 +0200
+--- src/version.c 2012-06-13 19:13:54.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 555,
+ /**/
+
+--
+My sister Cecilia opened a computer store in Hawaii.
+She sells C shells by the seashore.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.556 b/source/ap/vim/patches/7.3.556
new file mode 100644
index 000000000..068b8d1f8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.556
@@ -0,0 +1,70 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.556
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.556
+Problem: Compiler warnings on 64 bit Windows.
+Solution: Add type casts. (Mike Williams)
+Files: src/misc1.c
+
+
+*** ../vim-7.3.555/src/misc1.c 2012-06-13 17:28:51.000000000 +0200
+--- src/misc1.c 2012-06-14 20:55:47.000000000 +0200
+***************
+*** 445,452 ****
+ if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
+ {
+ pos.lnum = lnum;
+! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len);
+! pos.col += lead_len;
+ #ifdef FEAT_VIRTUALEDIT
+ pos.coladd = 0;
+ #endif
+--- 445,451 ----
+ if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
+ {
+ pos.lnum = lnum;
+! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
+ #ifdef FEAT_VIRTUALEDIT
+ pos.coladd = 0;
+ #endif
+***************
+*** 1354,1360 ****
+ if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
+ {
+ int i;
+! int padding = second_line_indent - (newindent + STRLEN(leader));
+
+ /* Here whitespace is inserted after the comment char.
+ * Below, set_indent(newindent, SIN_INSERT) will insert the
+--- 1353,1360 ----
+ if (flags & OPENLINE_COM_LIST && second_line_indent > 0)
+ {
+ int i;
+! int padding = second_line_indent
+! - (newindent + (int)STRLEN(leader));
+
+ /* Here whitespace is inserted after the comment char.
+ * Below, set_indent(newindent, SIN_INSERT) will insert the
+*** ../vim-7.3.555/src/version.c 2012-06-13 19:19:36.000000000 +0200
+--- src/version.c 2012-06-14 20:54:59.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 556,
+ /**/
+
+--
+He who laughs last, thinks slowest.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.557 b/source/ap/vim/patches/7.3.557
new file mode 100644
index 000000000..663c0720e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.557
@@ -0,0 +1,99 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.557
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.557
+Problem: Crash when an autocommand wipes out a buffer when it is hidden.
+Solution: Restore the current window when needed. (Christian Brabandt)
+Files: src/buffer.c
+
+
+*** ../vim-7.3.556/src/buffer.c 2012-06-13 14:28:16.000000000 +0200
+--- src/buffer.c 2012-06-20 11:49:54.000000000 +0200
+***************
+*** 1363,1368 ****
+--- 1363,1369 ----
+ int action;
+ {
+ buf_T *prevbuf;
++ win_T *prevwin;
+ int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
+ || action == DOBUF_WIPE);
+
+***************
+*** 1402,1423 ****
+ if (buf_valid(prevbuf))
+ #endif
+ {
+ if (prevbuf == curbuf)
+ u_sync(FALSE);
+ close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+ unload ? action : (action == DOBUF_GOTO
+ && !P_HID(prevbuf)
+ && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+ /* An autocommand may have deleted "buf", already entered it (e.g., when
+! * it did ":bunload") or aborted the script processing! */
+! # ifdef FEAT_EVAL
+! if (buf_valid(buf) && buf != curbuf && !aborting())
+! # else
+! if (buf_valid(buf) && buf != curbuf)
+! # endif
+ #endif
+ enter_buffer(buf);
+ }
+--- 1403,1432 ----
+ if (buf_valid(prevbuf))
+ #endif
+ {
++ prevwin = curwin;
+ if (prevbuf == curbuf)
+ u_sync(FALSE);
+ close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+ unload ? action : (action == DOBUF_GOTO
+ && !P_HID(prevbuf)
+ && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
++ if (curwin != prevwin && win_valid(prevwin))
++ /* autocommands changed curwin, Grr! */
++ curwin = prevwin;
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+ /* An autocommand may have deleted "buf", already entered it (e.g., when
+! * it did ":bunload") or aborted the script processing!
+! * If curwin->w_buffer is null, enter_buffer() will make it valid again */
+! if ((buf_valid(buf) && buf != curbuf
+! #ifdef FEAT_EVAL
+! && !aborting()
+! #endif
+! #ifdef FEAT_WINDOWS
+! ) || curwin->w_buffer == NULL
+! #endif
+! )
+ #endif
+ enter_buffer(buf);
+ }
+*** ../vim-7.3.556/src/version.c 2012-06-14 20:59:20.000000000 +0200
+--- src/version.c 2012-06-20 11:53:56.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 557,
+ /**/
+
+--
+Don't read everything you believe.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.558 b/source/ap/vim/patches/7.3.558
new file mode 100644
index 000000000..015bc37da
--- /dev/null
+++ b/source/ap/vim/patches/7.3.558
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.558
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.558
+Problem: Memory access error. (Gary Johnson)
+Solution: Allocate one more byte. (Dominique Pelle)
+Files: src/misc1.c
+
+
+*** ../vim-7.3.557/src/misc1.c 2012-06-14 20:59:20.000000000 +0200
+--- src/misc1.c 2012-06-20 12:34:57.000000000 +0200
+***************
+*** 460,466 ****
+ *
+ * I'm not sure if regmmatch_T (multi-match) is needed in this case.
+ * It may be true that this section would work properly using the
+! * regmatch_T code above, in which case, these two seperate sections
+ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
+ */
+ #endif
+--- 460,466 ----
+ *
+ * I'm not sure if regmmatch_T (multi-match) is needed in this case.
+ * It may be true that this section would work properly using the
+! * regmatch_T code above, in which case, these two separate sections
+ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
+ */
+ #endif
+***************
+*** 1053,1061 ****
+ }
+ if (lead_len)
+ {
+! /* allocate buffer (may concatenate p_exta later) */
+ leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
+! + (second_line_indent > 0 ? second_line_indent : 0));
+ allocated = leader; /* remember to free it later */
+
+ if (leader == NULL)
+--- 1053,1061 ----
+ }
+ if (lead_len)
+ {
+! /* allocate buffer (may concatenate p_extra later) */
+ leader = alloc(lead_len + lead_repl_len + extra_space + extra_len
+! + (second_line_indent > 0 ? second_line_indent : 0) + 1);
+ allocated = leader; /* remember to free it later */
+
+ if (leader == NULL)
+***************
+*** 3342,3348 ****
+ buf = alloc(buflen);
+ else if (maxlen < 10)
+ {
+! /* Need some more space. This migth happen when receiving a long
+ * escape sequence. */
+ buflen += 100;
+ buf = vim_realloc(buf, buflen);
+--- 3342,3348 ----
+ buf = alloc(buflen);
+ else if (maxlen < 10)
+ {
+! /* Need some more space. This might happen when receiving a long
+ * escape sequence. */
+ buflen += 100;
+ buf = vim_realloc(buf, buflen);
+*** ../vim-7.3.557/src/version.c 2012-06-20 11:54:55.000000000 +0200
+--- src/version.c 2012-06-20 12:36:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 558,
+ /**/
+
+--
+George: "I just got a new set of golf clubs for my wife!"
+ John: "Great trade!"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.559 b/source/ap/vim/patches/7.3.559
new file mode 100644
index 000000000..df7673723
--- /dev/null
+++ b/source/ap/vim/patches/7.3.559
@@ -0,0 +1,131 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.559
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.559
+Problem: home_replace() does not work with 8.3 filename.
+Solution: Make ":p" expand 8.3 name to full path. (Yasuhiro Matsumoto)
+Files: src/eval.c, src/misc1.c
+
+
+*** ../vim-7.3.558/src/eval.c 2012-06-13 14:28:16.000000000 +0200
+--- src/eval.c 2012-06-20 13:52:47.000000000 +0200
+***************
+*** 23554,23559 ****
+--- 23554,23580 ----
+ return -1;
+ }
+
++ #ifdef WIN3264
++ # if _WIN32_WINNT >= 0x0500
++ if (vim_strchr(*fnamep, '~') != NULL)
++ {
++ /* Expand 8.3 filename to full path. Needed to make sure the same
++ * file does not have two different names.
++ * Note: problem does not occur if _WIN32_WINNT < 0x0500. */
++ p = alloc(_MAX_PATH + 1);
++ if (p != NULL)
++ {
++ if (GetLongPathName(*fnamep, p, MAXPATHL))
++ {
++ vim_free(*bufp);
++ *bufp = *fnamep = p;
++ }
++ else
++ vim_free(p);
++ }
++ }
++ # endif
++ #endif
+ /* Append a path separator to a directory. */
+ if (mch_isdir(*fnamep))
+ {
+*** ../vim-7.3.558/src/misc1.c 2012-06-20 12:40:01.000000000 +0200
+--- src/misc1.c 2012-06-20 13:57:22.000000000 +0200
+***************
+*** 4499,4505 ****
+ {
+ size_t dirlen = 0, envlen = 0;
+ size_t len;
+! char_u *homedir_env;
+ char_u *p;
+
+ if (src == NULL)
+--- 4499,4505 ----
+ {
+ size_t dirlen = 0, envlen = 0;
+ size_t len;
+! char_u *homedir_env, *homedir_env_orig;
+ char_u *p;
+
+ if (src == NULL)
+***************
+*** 4525,4533 ****
+ dirlen = STRLEN(homedir);
+
+ #ifdef VMS
+! homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
+ #else
+! homedir_env = mch_getenv((char_u *)"HOME");
+ #endif
+
+ if (homedir_env != NULL && *homedir_env == NUL)
+--- 4525,4548 ----
+ dirlen = STRLEN(homedir);
+
+ #ifdef VMS
+! homedir_env_orig = homedir_env = mch_getenv((char_u *)"SYS$LOGIN");
+ #else
+! homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
+! #endif
+! #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
+! if (vim_strchr(homedir_env, '~') != NULL)
+! {
+! int usedlen = 0;
+! int flen;
+! char_u *fbuf = NULL;
+!
+! flen = (int)STRLEN(homedir_env);
+! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
+! flen = (int)STRLEN(homedir_env);
+! if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
+! /* Remove the trailing / that is added to a directory. */
+! homedir_env[flen - 1] = NUL;
+! }
+ #endif
+
+ if (homedir_env != NULL && *homedir_env == NUL)
+***************
+*** 4585,4590 ****
+--- 4600,4608 ----
+ /* if (dstlen == 0) out of space, what to do??? */
+
+ *dst = NUL;
++
++ if (homedir_env != homedir_env_orig)
++ vim_free(homedir_env);
+ }
+
+ /*
+*** ../vim-7.3.558/src/version.c 2012-06-20 12:40:01.000000000 +0200
+--- src/version.c 2012-06-20 14:02:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 559,
+ /**/
+
+--
+The future isn't what it used to be.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.560 b/source/ap/vim/patches/7.3.560
new file mode 100644
index 000000000..7f4641118
--- /dev/null
+++ b/source/ap/vim/patches/7.3.560
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.560
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.560
+Problem: Get an error for a locked argument in extend().
+Solution: Initialize the lock flag for a dictionary. (Yukihiro Nakadaira)
+Files: src/eval.c
+
+
+*** ../vim-7.3.559/src/eval.c 2012-06-20 14:02:23.000000000 +0200
+--- src/eval.c 2012-06-20 14:08:34.000000000 +0200
+***************
+*** 19981,19986 ****
+--- 19981,19987 ----
+ dictitem_T *dict_var;
+ {
+ hash_init(&dict->dv_hashtab);
++ dict->dv_lock = 0;
+ dict->dv_refcount = DO_NOT_FREE_CNT;
+ dict->dv_copyID = 0;
+ dict_var->di_tv.vval.v_dict = dict;
+*** ../vim-7.3.559/src/version.c 2012-06-20 14:02:23.000000000 +0200
+--- src/version.c 2012-06-20 14:09:34.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 560,
+ /**/
+
+--
+"Oh, no! NOT the Spanish Inquisition!"
+"NOBODY expects the Spanish Inquisition!!!"
+ -- Monty Python sketch --
+"Oh, no! NOT another option!"
+"EVERYBODY expects another option!!!"
+ -- Discussion in vim-dev mailing list --
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.561 b/source/ap/vim/patches/7.3.561
new file mode 100644
index 000000000..d51030c4e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.561
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.561
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.561
+Problem: Using refresh: always in a complete function breaks the "."
+ command. (Val Markovic)
+Solution: Add match leader to the redo buffer. (Yasuhiro Matsumoto)
+Files: src/edit.c
+
+
+*** ../vim-7.3.560/src/edit.c 2012-06-13 17:28:51.000000000 +0200
+--- src/edit.c 2012-06-20 14:22:23.000000000 +0200
+***************
+*** 3467,3476 ****
+--- 3467,3480 ----
+ (*mb_char2bytes)(c, buf);
+ buf[cc] = NUL;
+ ins_char_bytes(buf, cc);
++ AppendToRedobuff(buf);
+ }
+ else
+ #endif
++ {
+ ins_char(c);
++ AppendCharToRedobuff(c);
++ }
+
+ /* If we didn't complete finding matches we must search again. */
+ if (ins_compl_need_restart())
+*** ../vim-7.3.560/src/version.c 2012-06-20 14:13:02.000000000 +0200
+--- src/version.c 2012-06-20 14:20:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 561,
+ /**/
+
+--
+Microsoft is to software what McDonalds is to gourmet cooking
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.562 b/source/ap/vim/patches/7.3.562
new file mode 100644
index 000000000..626de4950
--- /dev/null
+++ b/source/ap/vim/patches/7.3.562
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.562
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.562
+Problem: ":profdel" should not work when the +profile feature is disabled.
+Solution: Call ex_ni(). (Yasuhiro Matsumoto)
+Files: src/ex_cmds2.c
+
+
+*** ../vim-7.3.561/src/ex_cmds2.c 2012-06-13 14:28:16.000000000 +0200
+--- src/ex_cmds2.c 2012-06-20 15:43:44.000000000 +0200
+***************
+*** 596,605 ****
+ garray_T *gap;
+
+ gap = &dbg_breakp;
+- #ifdef FEAT_PROFILE
+ if (eap->cmdidx == CMD_profdel)
+ gap = &prof_ga;
+ #endif
+
+ if (vim_isdigit(*eap->arg))
+ {
+--- 596,610 ----
+ garray_T *gap;
+
+ gap = &dbg_breakp;
+ if (eap->cmdidx == CMD_profdel)
++ {
++ #ifdef FEAT_PROFILE
+ gap = &prof_ga;
++ #else
++ ex_ni(eap);
++ return;
+ #endif
++ }
+
+ if (vim_isdigit(*eap->arg))
+ {
+*** ../vim-7.3.561/src/version.c 2012-06-20 14:26:30.000000000 +0200
+--- src/version.c 2012-06-20 15:44:00.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 562,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+42. Your virtual girlfriend finds a new net sweetheart with a larger bandwidth.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.563 b/source/ap/vim/patches/7.3.563
new file mode 100644
index 000000000..c2ebf4105
--- /dev/null
+++ b/source/ap/vim/patches/7.3.563
@@ -0,0 +1,97 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.563
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.563 (after 7.3.557)
+Problem: Can't build with tiny features.
+Solution: Add #ifdef.
+Files: src/buffer.c
+
+
+*** ../vim-7.3.562/src/buffer.c 2012-06-20 11:54:55.000000000 +0200
+--- src/buffer.c 2012-06-20 17:40:59.000000000 +0200
+***************
+*** 1363,1369 ****
+--- 1363,1371 ----
+ int action;
+ {
+ buf_T *prevbuf;
++ #ifdef FEAT_WINDOWS
+ win_T *prevwin;
++ #endif
+ int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
+ || action == DOBUF_WIPE);
+
+***************
+*** 1403,1418 ****
+--- 1405,1424 ----
+ if (buf_valid(prevbuf))
+ #endif
+ {
++ #ifdef FEAT_WINDOWS
+ prevwin = curwin;
++ #endif
+ if (prevbuf == curbuf)
+ u_sync(FALSE);
+ close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
+ unload ? action : (action == DOBUF_GOTO
+ && !P_HID(prevbuf)
+ && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
++ #ifdef FEAT_WINDOWS
+ if (curwin != prevwin && win_valid(prevwin))
+ /* autocommands changed curwin, Grr! */
+ curwin = prevwin;
++ #endif
+ }
+ }
+ #ifdef FEAT_AUTOCMD
+***************
+*** 1420,1431 ****
+ * it did ":bunload") or aborted the script processing!
+ * If curwin->w_buffer is null, enter_buffer() will make it valid again */
+ if ((buf_valid(buf) && buf != curbuf
+! #ifdef FEAT_EVAL
+ && !aborting()
+! #endif
+! #ifdef FEAT_WINDOWS
+ ) || curwin->w_buffer == NULL
+! #endif
+ )
+ #endif
+ enter_buffer(buf);
+--- 1426,1437 ----
+ * it did ":bunload") or aborted the script processing!
+ * If curwin->w_buffer is null, enter_buffer() will make it valid again */
+ if ((buf_valid(buf) && buf != curbuf
+! # ifdef FEAT_EVAL
+ && !aborting()
+! # endif
+! # ifdef FEAT_WINDOWS
+ ) || curwin->w_buffer == NULL
+! # endif
+ )
+ #endif
+ enter_buffer(buf);
+*** ../vim-7.3.562/src/version.c 2012-06-20 15:48:53.000000000 +0200
+--- src/version.c 2012-06-20 17:54:01.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 563,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+45. You buy a Captain Kirk chair with a built-in keyboard and mouse.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.564 b/source/ap/vim/patches/7.3.564
new file mode 100644
index 000000000..e806b8e46
--- /dev/null
+++ b/source/ap/vim/patches/7.3.564
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.564
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.564 (after 7.3.559)
+Problem: Warning for pointer conversion.
+Solution: Add type cast.
+Files: src/misc1.c
+
+
+*** ../vim-7.3.563/src/misc1.c 2012-06-20 14:02:23.000000000 +0200
+--- src/misc1.c 2012-06-20 17:41:22.000000000 +0200
+***************
+*** 4537,4543 ****
+ char_u *fbuf = NULL;
+
+ flen = (int)STRLEN(homedir_env);
+! (void)modify_fname(":p", &usedlen, &homedir_env, &fbuf, &flen);
+ flen = (int)STRLEN(homedir_env);
+ if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
+ /* Remove the trailing / that is added to a directory. */
+--- 4537,4544 ----
+ char_u *fbuf = NULL;
+
+ flen = (int)STRLEN(homedir_env);
+! (void)modify_fname((char_u *)":p", &usedlen,
+! &homedir_env, &fbuf, &flen);
+ flen = (int)STRLEN(homedir_env);
+ if (flen > 0 && vim_ispathsep(homedir_env[flen - 1]))
+ /* Remove the trailing / that is added to a directory. */
+*** ../vim-7.3.563/src/version.c 2012-06-20 17:54:34.000000000 +0200
+--- src/version.c 2012-06-20 17:55:26.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 564,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+46. Your wife makes a new rule: "The computer cannot come to bed."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.565 b/source/ap/vim/patches/7.3.565
new file mode 100644
index 000000000..171520b36
--- /dev/null
+++ b/source/ap/vim/patches/7.3.565
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.566
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.566
+Problem: Can't generate proto file for Python 3.
+Solution: Add PYTHON3_CFLAGS to LINT_CFLAGS.
+Files: src/Makefile
+
+
+*** ../vim-7.3.564/src/Makefile 2012-06-13 19:19:36.000000000 +0200
+--- src/Makefile 2012-06-20 18:36:14.000000000 +0200
+***************
+*** 1339,1345 ****
+ # with "-E".
+ OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
+
+! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
+
+ LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
+
+--- 1339,1345 ----
+ # with "-E".
+ OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
+
+! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(RUBY_CFLAGS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) $(PYTHON3_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
+
+ LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
+
+*** ../vim-7.3.564/src/version.c 2012-06-20 17:56:06.000000000 +0200
+--- src/version.c 2012-06-20 18:39:04.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 565,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+47. You are so familiar with the WWW that you find the search engines useless.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.566 b/source/ap/vim/patches/7.3.566
new file mode 100644
index 000000000..a0600e812
--- /dev/null
+++ b/source/ap/vim/patches/7.3.566
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.566
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.566 (after 7.3.561)
+Problem: Redo after completion does not work correctly when refresh: always
+ is not used. (Raymond Ko)
+Solution: Check the compl_opt_refresh_always flag. (Christian Brabandt)
+Files: src/edit.c
+
+
+*** ../vim-7.3.565/src/edit.c 2012-06-20 14:26:30.000000000 +0200
+--- src/edit.c 2012-06-20 22:52:03.000000000 +0200
+***************
+*** 3467,3479 ****
+ (*mb_char2bytes)(c, buf);
+ buf[cc] = NUL;
+ ins_char_bytes(buf, cc);
+! AppendToRedobuff(buf);
+ }
+ else
+ #endif
+ {
+ ins_char(c);
+! AppendCharToRedobuff(c);
+ }
+
+ /* If we didn't complete finding matches we must search again. */
+--- 3467,3481 ----
+ (*mb_char2bytes)(c, buf);
+ buf[cc] = NUL;
+ ins_char_bytes(buf, cc);
+! if (compl_opt_refresh_always)
+! AppendToRedobuff(buf);
+ }
+ else
+ #endif
+ {
+ ins_char(c);
+! if (compl_opt_refresh_always)
+! AppendCharToRedobuff(c);
+ }
+
+ /* If we didn't complete finding matches we must search again. */
+***************
+*** 3481,3487 ****
+ ins_compl_restart();
+
+ /* When 'always' is set, don't reset compl_leader. While completing,
+! * cursor don't point original position, changing compl_leader would
+ * break redo. */
+ if (!compl_opt_refresh_always)
+ {
+--- 3483,3489 ----
+ ins_compl_restart();
+
+ /* When 'always' is set, don't reset compl_leader. While completing,
+! * cursor doesn't point original position, changing compl_leader would
+ * break redo. */
+ if (!compl_opt_refresh_always)
+ {
+*** ../vim-7.3.565/src/version.c 2012-06-20 18:39:12.000000000 +0200
+--- src/version.c 2012-06-20 22:54:27.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 566,
+ /**/
+
+--
+CVS sux, men don't like commitment
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.567 b/source/ap/vim/patches/7.3.567
new file mode 100644
index 000000000..62399f18a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.567
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.567
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.567
+Problem: Missing copyright notice.
+Solution: Add Vim copyright notice. (Taro Muraoka)
+Files: src/dehqx.py
+
+
+*** ../vim-7.3.566/src/dehqx.py 2010-08-15 21:57:32.000000000 +0200
+--- src/dehqx.py 2012-06-29 11:27:41.000000000 +0200
+***************
+*** 1,7 ****
+ # Python script to get both the data and resource fork from a BinHex encoded
+ # file.
+! # Author: Taro Muraoka
+! # Last Change: 2003 Oct 25
+
+ import sys
+ import binhex
+--- 1,10 ----
+ # Python script to get both the data and resource fork from a BinHex encoded
+ # file.
+! # Author: MURAOKA Taro <koron.kaoriya@gmail.com>
+! # Last Change: 2012 Jun 29
+! #
+! # Copyright (C) 2003,12 MURAOKA Taro <koron.kaoriya@gmail.com>
+! # THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
+
+ import sys
+ import binhex
+*** ../vim-7.3.566/src/version.c 2012-06-20 22:55:56.000000000 +0200
+--- src/version.c 2012-06-29 11:45:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 567,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+66. You create a homepage with the impression to cure the afflicted...but
+ your hidden agenda is to receive more e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.568 b/source/ap/vim/patches/7.3.568
new file mode 100644
index 000000000..ef4fcfe51
--- /dev/null
+++ b/source/ap/vim/patches/7.3.568
@@ -0,0 +1,138 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.568
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.568
+Problem: Bad indents for #ifdefs.
+Solution: Add and remove spaces. (Elias Diem)
+Files: src/globals.h
+
+
+*** ../vim-7.3.567/src/globals.h 2012-02-11 23:45:30.000000000 +0100
+--- src/globals.h 2012-06-29 12:32:14.000000000 +0200
+***************
+*** 513,520 ****
+ # define ONE_CLIPBOARD
+ # endif
+
+! #define CLIP_UNNAMED 1
+! #define CLIP_UNNAMED_PLUS 2
+ EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
+
+ EXTERN int clip_autoselect INIT(= FALSE);
+--- 513,520 ----
+ # define ONE_CLIPBOARD
+ # endif
+
+! # define CLIP_UNNAMED 1
+! # define CLIP_UNNAMED_PLUS 2
+ EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
+
+ EXTERN int clip_autoselect INIT(= FALSE);
+***************
+*** 737,745 ****
+ #endif
+
+ EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
+! # ifdef DO_INIT
+ = INIT_POS_T(0, 0, 0)
+! # endif
+ ;
+
+ /*
+--- 737,745 ----
+ #endif
+
+ EXTERN pos_T saved_cursor /* w_cursor before formatting text. */
+! #ifdef DO_INIT
+ = INIT_POS_T(0, 0, 0)
+! #endif
+ ;
+
+ /*
+***************
+*** 807,815 ****
+ # endif
+ EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
+
+! #if defined(WIN3264) && defined(FEAT_MBYTE)
+ EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
+! #endif
+
+ /*
+ * To speed up BYTELEN() we fill a table with the byte lengths whenever
+--- 807,815 ----
+ # endif
+ EXTERN int has_mbyte INIT(= 0); /* any multi-byte encoding */
+
+! # if defined(WIN3264) && defined(FEAT_MBYTE)
+ EXTERN int wide_WindowProc INIT(= FALSE); /* use wide WindowProc() */
+! # endif
+
+ /*
+ * To speed up BYTELEN() we fill a table with the byte lengths whenever
+***************
+*** 1099,1106 ****
+ EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
+ EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
+ EXTERN int wild_menu_showing INIT(= 0);
+! #define WM_SHOWN 1 /* wildmenu showing */
+! #define WM_SCROLLED 2 /* wildmenu showing with scroll */
+ #endif
+
+ #ifdef MSWIN
+--- 1099,1106 ----
+ EXTERN int save_p_ls INIT(= -1); /* Save 'laststatus' setting */
+ EXTERN int save_p_wmh INIT(= -1); /* Save 'winminheight' setting */
+ EXTERN int wild_menu_showing INIT(= 0);
+! # define WM_SHOWN 1 /* wildmenu showing */
+! # define WM_SCROLLED 2 /* wildmenu showing with scroll */
+ #endif
+
+ #ifdef MSWIN
+***************
+*** 1310,1318 ****
+ EXTERN Atom commProperty INIT(= None);
+ EXTERN char_u *serverDelayedStartName INIT(= NULL);
+ # else
+! # ifdef PROTO
+ typedef int HWND;
+! # endif
+ EXTERN HWND clientWindow INIT(= 0);
+ # endif
+ #endif
+--- 1310,1318 ----
+ EXTERN Atom commProperty INIT(= None);
+ EXTERN char_u *serverDelayedStartName INIT(= NULL);
+ # else
+! # ifdef PROTO
+ typedef int HWND;
+! # endif
+ EXTERN HWND clientWindow INIT(= 0);
+ # endif
+ #endif
+*** ../vim-7.3.567/src/version.c 2012-06-29 11:46:28.000000000 +0200
+--- src/version.c 2012-06-29 12:34:21.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 568,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+67. Your hard drive crashes. You haven't logged in for two hours. You start
+ to twitch. You pick up the phone and manually dial your ISP's access
+ number. You try to hum to communicate with the modem. You succeed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.569 b/source/ap/vim/patches/7.3.569
new file mode 100644
index 000000000..435733fee
--- /dev/null
+++ b/source/ap/vim/patches/7.3.569
@@ -0,0 +1,4762 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.569
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.569
+Problem: Evaluating Vim expression in Python is insufficient.
+Solution: Add vim.bindeval(). Also add pyeval() and py3eval(). (ZyX)
+Files: runtime/doc/eval.txt, runtime/doc/if_pyth.txt, src/eval.c,
+ src/if_lua.c, src/if_py_both.h, src/if_python.c, src/if_python3.c,
+ src/proto/eval.pro, src/proto/if_python.pro,
+ src/proto/if_python3.pro, src/testdir/Make_amiga.mak,
+ src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
+ src/testdir/Make_os2.mak, src/testdir/Makefile,
+ src/testdir/test86.in, src/testdir/test86.ok,
+ src/testdir/test87.in, src/testdir/test87.ok
+
+
+*** ../vim-7.3.568/runtime/doc/eval.txt 2012-03-07 19:16:49.000000000 +0100
+--- runtime/doc/eval.txt 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 1836,1844 ****
+ localtime() Number current time
+ log( {expr}) Float natural logarithm (base e) of {expr}
+ log10( {expr}) Float logarithm of Float {expr} to base 10
+ map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
+ maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
+! String rhs of mapping {name} in mode {mode}
+ mapcheck( {name}[, {mode} [, {abbr}]])
+ String check for mappings matching {name}
+ match( {expr}, {pat}[, {start}[, {count}]])
+--- 1847,1857 ----
+ localtime() Number current time
+ log( {expr}) Float natural logarithm (base e) of {expr}
+ log10( {expr}) Float logarithm of Float {expr} to base 10
++ luaeval( {expr}[, {expr}]) any evaluate |Lua| expression
+ map( {expr}, {string}) List/Dict change each item in {expr} to {expr}
+ maparg( {name}[, {mode} [, {abbr} [, {dict}]]])
+! String or Dict
+! rhs of mapping {name} in mode {mode}
+ mapcheck( {name}[, {mode} [, {abbr}]])
+ String check for mappings matching {name}
+ match( {expr}, {pat}[, {start}[, {count}]])
+***************
+*** 1867,1872 ****
+--- 1880,1887 ----
+ prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum}
+ printf( {fmt}, {expr1}...) String format text
+ pumvisible() Number whether popup menu is visible
++ pyeval( {expr}) any evaluate |Python| expression
++ py3eval( {expr}) any evaluate |python3| expression
+ range( {expr} [, {max} [, {stride}]])
+ List items from {expr} to {max}
+ readfile( {fname} [, {binary} [, {max}]])
+***************
+*** 3980,3985 ****
+--- 4003,4022 ----
+ < -2.0
+ {only available when compiled with the |+float| feature}
+
++ luaeval({expr}[, {expr}]) *luaeval()*
++ Evaluate Lua expression {expr} and return its result converted
++ to Vim data structures. Second {expr} may hold additional
++ argument accessible as _A inside first {expr}.
++ Strings are returned as they are.
++ Boolean objects are converted to numbers.
++ Numbers are converted to |Float| values if vim was compiled
++ with |+float| and to numbers otherwise.
++ Dictionaries and lists obtained by vim.eval() are returned
++ as-is.
++ Other objects are returned as zero without any errors.
++ See |lua-luaeval| for more details.
++ {only available when compiled with the |+lua| feature}
++
+ map({expr}, {string}) *map()*
+ {expr} must be a |List| or a |Dictionary|.
+ Replace each item in {expr} with the result of evaluating
+***************
+*** 4574,4579 ****
+--- 4612,4640 ----
+ This can be used to avoid some things that would remove the
+ popup menu.
+
++ *E860* *E861*
++ py3eval({expr}) *py3eval()*
++ Evaluate Python expression {expr} and return its result
++ converted to Vim data structures.
++ Numbers and strings are returned as they are (strings are
++ copied though, unicode strings are additionally converted to
++ 'encoding').
++ Lists are represented as Vim |List| type.
++ Dictionaries are represented as Vim |Dictionary| type with
++ keys converted to strings.
++ {only available when compiled with the |+python3| feature}
++
++ *E858* *E859*
++ pyeval({expr}) *pyeval()*
++ Evaluate Python expression {expr} and return its result
++ converted to Vim data structures.
++ Numbers and strings are returned as they are (strings are
++ copied though).
++ Lists are represented as Vim |List| type.
++ Dictionaries are represented as Vim |Dictionary| type with
++ keys converted to strings.
++ {only available when compiled with the |+python| feature}
++
+ *E726* *E727*
+ range({expr} [, {max} [, {stride}]]) *range()*
+ Returns a |List| with Numbers:
+***************
+*** 4807,4812 ****
+--- 4868,4877 ----
+ Search for regexp pattern {pattern}. The search starts at the
+ cursor position (you can use |cursor()| to set it).
+
++ If there is no match a 0 is returned and the cursor doesn't
++ move. No error message is given.
++ When a match has been found its line number is returned.
++
+ {flags} is a String, which can contain these character flags:
+ 'b' search backward instead of forward
+ 'c' accept a match at the cursor position
+*** ../vim-7.3.568/runtime/doc/if_pyth.txt 2010-08-15 21:57:12.000000000 +0200
+--- runtime/doc/if_pyth.txt 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 1,4 ****
+! *if_pyth.txt* For Vim version 7.3. Last change: 2010 Aug 13
+
+
+ VIM REFERENCE MANUAL by Paul Moore
+--- 1,4 ----
+! *if_pyth.txt* For Vim version 7.3. Last change: 2012 Feb 04
+
+
+ VIM REFERENCE MANUAL by Paul Moore
+***************
+*** 6,18 ****
+
+ The Python Interface to Vim *python* *Python*
+
+! 1. Commands |python-commands|
+! 2. The vim module |python-vim|
+! 3. Buffer objects |python-buffer|
+! 4. Range objects |python-range|
+! 5. Window objects |python-window|
+! 6. Dynamic loading |python-dynamic|
+! 7. Python 3 |python3|
+
+ {Vi does not have any of these commands}
+
+--- 6,19 ----
+
+ The Python Interface to Vim *python* *Python*
+
+! 1. Commands |python-commands|
+! 2. The vim module |python-vim|
+! 3. Buffer objects |python-buffer|
+! 4. Range objects |python-range|
+! 5. Window objects |python-window|
+! 6. pyeval(), py3eval() Vim functions |python-pyeval|
+! 7. Dynamic loading |python-dynamic|
+! 8. Python 3 |python3|
+
+ {Vi does not have any of these commands}
+
+***************
+*** 150,155 ****
+--- 151,172 ----
+ [{'cmd': '/^eval_expr(arg, nextcmd)$/', 'static': 0, 'name':
+ 'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}]
+
++ vim.bindeval(str) *python-bindeval*
++ Like |python-eval|, but
++ 1. if expression evaluates to |List| or |Dictionary| it is returned as
++ vimlist or vimdictionary python type that are connected to original
++ list or dictionary. Thus modifications to these objects imply
++ modifications of the original.
++ 2. if expression evaluates to a function reference, then it returns
++ callable vimfunction object. Use self keyword argument to assign
++ |self| object for dictionary functions.
++
++ Note: this function has the same behavior as |lua-eval| (except that
++ lua does not support running vim functions), |python-eval| is
++ kept for backwards compatibility in order not to make scripts
++ relying on outputs of vim.eval() being a copy of original or
++ vim.eval("1") returning a string.
++
+
+
+ Error object of the "vim" module
+***************
+*** 222,229 ****
+ - from indexing vim.buffers (|python-buffers|)
+ - from the "buffer" attribute of a window (|python-window|)
+
+! Buffer objects have one read-only attribute - name - the full file name for
+! the buffer. They also have three methods (append, mark, and range; see below).
+
+ You can also treat buffer objects as sequence objects. In this context, they
+ act as if they were lists (yes, they are mutable) of strings, with each
+--- 239,247 ----
+ - from indexing vim.buffers (|python-buffers|)
+ - from the "buffer" attribute of a window (|python-window|)
+
+! Buffer objects have two read-only attributes - name - the full file name for
+! the buffer, and number - the buffer number. They also have three methods
+! (append, mark, and range; see below).
+
+ You can also treat buffer objects as sequence objects. In this context, they
+ act as if they were lists (yes, they are mutable) of strings, with each
+***************
+*** 318,324 ****
+ The width attribute is writable only if the screen is split vertically.
+
+ ==============================================================================
+! 6. Dynamic loading *python-dynamic*
+
+ On MS-Windows the Python library can be loaded dynamically. The |:version|
+ output then includes |+python/dyn|.
+--- 336,348 ----
+ The width attribute is writable only if the screen is split vertically.
+
+ ==============================================================================
+! 6. pyeval() and py3eval() Vim functions *python-pyeval*
+!
+! To facilitate bi-directional interface, you can use |pyeval()| and |py3eval()|
+! functions to evaluate Python expressions and pass their values to VimL.
+!
+! ==============================================================================
+! 7. Dynamic loading *python-dynamic*
+
+ On MS-Windows the Python library can be loaded dynamically. The |:version|
+ output then includes |+python/dyn|.
+***************
+*** 335,347 ****
+ sure edit "gvim.exe" and search for "python\d*.dll\c".
+
+ ==============================================================================
+! 7. Python 3 *python3*
+
+ *:py3* *:python3*
+ The |:py3| and |:python3| commands work similar to |:python|.
+ *:py3file*
+ The |:py3file| command works similar to |:pyfile|.
+
+ Vim can be built in four ways (:version output):
+ 1. No Python support (-python, -python3)
+ 2. Python 2 support only (+python or +python/dyn, -python3)
+--- 359,372 ----
+ sure edit "gvim.exe" and search for "python\d*.dll\c".
+
+ ==============================================================================
+! 8. Python 3 *python3*
+
+ *:py3* *:python3*
+ The |:py3| and |:python3| commands work similar to |:python|.
+ *:py3file*
+ The |:py3file| command works similar to |:pyfile|.
+
++
+ Vim can be built in four ways (:version output):
+ 1. No Python support (-python, -python3)
+ 2. Python 2 support only (+python or +python/dyn, -python3)
+***************
+*** 355,361 ****
+ When doing this on Linux/Unix systems and importing global symbols, this leads
+ to a crash when the second Python version is used. So either global symbols
+ are loaded but only one Python version is activated, or no global symbols are
+! loaded. The latter makes Python's "import" fail on libaries that expect the
+ symbols to be provided by Vim.
+ *E836* *E837*
+ Vim's configuration script makes a guess for all libraries based on one
+--- 380,386 ----
+ When doing this on Linux/Unix systems and importing global symbols, this leads
+ to a crash when the second Python version is used. So either global symbols
+ are loaded but only one Python version is activated, or no global symbols are
+! loaded. The latter makes Python's "import" fail on libraries that expect the
+ symbols to be provided by Vim.
+ *E836* *E837*
+ Vim's configuration script makes a guess for all libraries based on one
+***************
+*** 377,382 ****
+--- 402,419 ----
+ 3. You undefine PY_NO_RTLD_GLOBAL in auto/config.h after configuration. This
+ may crash Vim though.
+
++ *has-python*
++ You can test what Python version is available with: >
++ if has('python')
++ echo 'there is Python 2.x'
++ elseif has('python3')
++ echo 'there is Python 3.x'
++ endif
++
++ Note however, that when Python 2 and 3 are both available and loaded
++ dynamically, these has() calls will try to load them. If only one can be
++ loaded at a time, just checking if Python 2 or 3 are available will prevent
++ the other one from being available.
+
+ ==============================================================================
+ vim:tw=78:ts=8:ft=help:norl:
+*** ../vim-7.3.568/src/eval.c 2012-06-20 14:13:02.000000000 +0200
+--- src/eval.c 2012-06-20 18:29:15.000000000 +0200
+***************
+*** 424,453 ****
+ static int get_lit_string_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
+ static int get_list_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate));
+ static int rettv_list_alloc __ARGS((typval_T *rettv));
+- static listitem_T *listitem_alloc __ARGS((void));
+ static void listitem_free __ARGS((listitem_T *item));
+- static void listitem_remove __ARGS((list_T *l, listitem_T *item));
+ static long list_len __ARGS((list_T *l));
+ static int list_equal __ARGS((list_T *l1, list_T *l2, int ic, int recursive));
+ static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic, int recursive));
+ static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic, int recursive));
+- static listitem_T *list_find __ARGS((list_T *l, long n));
+ static long list_find_nr __ARGS((list_T *l, long idx, int *errorp));
+ static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
+- static void list_append __ARGS((list_T *l, listitem_T *item));
+ static int list_append_number __ARGS((list_T *l, varnumber_T n));
+- static int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
+ static int list_extend __ARGS((list_T *l1, list_T *l2, listitem_T *bef));
+ static int list_concat __ARGS((list_T *l1, list_T *l2, typval_T *tv));
+ static list_T *list_copy __ARGS((list_T *orig, int deep, int copyID));
+- static void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
+ static char_u *list2string __ARGS((typval_T *tv, int copyID));
+ static int list_join_inner __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo_style, int copyID, garray_T *join_gap));
+ static int list_join __ARGS((garray_T *gap, list_T *l, char_u *sep, int echo, int copyID));
+ static int free_unref_items __ARGS((int copyID));
+- static void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
+- static void set_ref_in_list __ARGS((list_T *l, int copyID));
+- static void set_ref_in_item __ARGS((typval_T *tv, int copyID));
+ static int rettv_dict_alloc __ARGS((typval_T *rettv));
+ static void dict_free __ARGS((dict_T *d, int recurse));
+ static dictitem_T *dictitem_copy __ARGS((dictitem_T *org));
+--- 424,444 ----
+***************
+*** 654,659 ****
+--- 645,656 ----
+ static void f_prevnonblank __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_printf __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_pumvisible __ARGS((typval_T *argvars, typval_T *rettv));
++ #ifdef FEAT_PYTHON3
++ static void f_py3eval __ARGS((typval_T *argvars, typval_T *rettv));
++ #endif
++ #ifdef FEAT_PYTHON
++ static void f_pyeval __ARGS((typval_T *argvars, typval_T *rettv));
++ #endif
+ static void f_range __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_readfile __ARGS((typval_T *argvars, typval_T *rettv));
+ static void f_reltime __ARGS((typval_T *argvars, typval_T *rettv));
+***************
+*** 824,831 ****
+ static char_u *autoload_name __ARGS((char_u *name));
+ static void cat_func_name __ARGS((char_u *buf, ufunc_T *fp));
+ static void func_free __ARGS((ufunc_T *fp));
+- static void func_unref __ARGS((char_u *name));
+- static void func_ref __ARGS((char_u *name));
+ static void call_user_func __ARGS((ufunc_T *fp, int argcount, typval_T *argvars, typval_T *rettv, linenr_T firstline, linenr_T lastline, dict_T *selfdict));
+ static int can_free_funccal __ARGS((funccall_T *fc, int copyID)) ;
+ static void free_funccal __ARGS((funccall_T *fc, int free_val));
+--- 821,826 ----
+***************
+*** 5927,5933 ****
+ /*
+ * Allocate a list item.
+ */
+! static listitem_T *
+ listitem_alloc()
+ {
+ return (listitem_T *)alloc(sizeof(listitem_T));
+--- 5922,5928 ----
+ /*
+ * Allocate a list item.
+ */
+! listitem_T *
+ listitem_alloc()
+ {
+ return (listitem_T *)alloc(sizeof(listitem_T));
+***************
+*** 5947,5953 ****
+ /*
+ * Remove a list item from a List and free it. Also clears the value.
+ */
+! static void
+ listitem_remove(l, item)
+ list_T *l;
+ listitem_T *item;
+--- 5942,5948 ----
+ /*
+ * Remove a list item from a List and free it. Also clears the value.
+ */
+! void
+ listitem_remove(l, item)
+ list_T *l;
+ listitem_T *item;
+***************
+*** 6123,6129 ****
+ * A negative index is counted from the end; -1 is the last item.
+ * Returns NULL when "n" is out of range.
+ */
+! static listitem_T *
+ list_find(l, n)
+ list_T *l;
+ long n;
+--- 6118,6124 ----
+ * A negative index is counted from the end; -1 is the last item.
+ * Returns NULL when "n" is out of range.
+ */
+! listitem_T *
+ list_find(l, n)
+ list_T *l;
+ long n;
+***************
+*** 6265,6271 ****
+ /*
+ * Append item "item" to the end of list "l".
+ */
+! static void
+ list_append(l, item)
+ list_T *l;
+ listitem_T *item;
+--- 6260,6266 ----
+ /*
+ * Append item "item" to the end of list "l".
+ */
+! void
+ list_append(l, item)
+ list_T *l;
+ listitem_T *item;
+***************
+*** 6378,6384 ****
+ * If "item" is NULL append at the end.
+ * Return FAIL when out of memory.
+ */
+! static int
+ list_insert_tv(l, tv, item)
+ list_T *l;
+ typval_T *tv;
+--- 6373,6379 ----
+ * If "item" is NULL append at the end.
+ * Return FAIL when out of memory.
+ */
+! int
+ list_insert_tv(l, tv, item)
+ list_T *l;
+ typval_T *tv;
+***************
+*** 6523,6529 ****
+ * Remove items "item" to "item2" from list "l".
+ * Does not free the listitem or the value!
+ */
+! static void
+ list_remove(l, item, item2)
+ list_T *l;
+ listitem_T *item;
+--- 6518,6524 ----
+ * Remove items "item" to "item2" from list "l".
+ * Does not free the listitem or the value!
+ */
+! void
+ list_remove(l, item, item2)
+ list_T *l;
+ listitem_T *item;
+***************
+*** 6785,6790 ****
+--- 6780,6793 ----
+ set_ref_in_lua(copyID);
+ #endif
+
++ #ifdef FEAT_PYTHON
++ set_ref_in_python(copyID);
++ #endif
++
++ #ifdef FEAT_PYTHON3
++ set_ref_in_python3(copyID);
++ #endif
++
+ /*
+ * 2. Free lists and dictionaries that are not referenced.
+ */
+***************
+*** 6870,6876 ****
+ /*
+ * Mark all lists and dicts referenced through hashtab "ht" with "copyID".
+ */
+! static void
+ set_ref_in_ht(ht, copyID)
+ hashtab_T *ht;
+ int copyID;
+--- 6873,6879 ----
+ /*
+ * Mark all lists and dicts referenced through hashtab "ht" with "copyID".
+ */
+! void
+ set_ref_in_ht(ht, copyID)
+ hashtab_T *ht;
+ int copyID;
+***************
+*** 6890,6896 ****
+ /*
+ * Mark all lists and dicts referenced through list "l" with "copyID".
+ */
+! static void
+ set_ref_in_list(l, copyID)
+ list_T *l;
+ int copyID;
+--- 6893,6899 ----
+ /*
+ * Mark all lists and dicts referenced through list "l" with "copyID".
+ */
+! void
+ set_ref_in_list(l, copyID)
+ list_T *l;
+ int copyID;
+***************
+*** 6904,6910 ****
+ /*
+ * Mark all lists and dicts referenced through typval "tv" with "copyID".
+ */
+! static void
+ set_ref_in_item(tv, copyID)
+ typval_T *tv;
+ int copyID;
+--- 6907,6913 ----
+ /*
+ * Mark all lists and dicts referenced through typval "tv" with "copyID".
+ */
+! void
+ set_ref_in_item(tv, copyID)
+ typval_T *tv;
+ int copyID;
+***************
+*** 7986,7991 ****
+--- 7989,8000 ----
+ {"prevnonblank", 1, 1, f_prevnonblank},
+ {"printf", 2, 19, f_printf},
+ {"pumvisible", 0, 0, f_pumvisible},
++ #ifdef FEAT_PYTHON3
++ {"py3eval", 1, 1, f_py3eval},
++ #endif
++ #ifdef FEAT_PYTHON
++ {"pyeval", 1, 1, f_pyeval},
++ #endif
+ {"range", 1, 3, f_range},
+ {"readfile", 1, 3, f_readfile},
+ {"reltime", 0, 2, f_reltime},
+***************
+*** 9150,9155 ****
+--- 9159,9203 ----
+ #endif
+ }
+
++ int
++ func_call(name, args, selfdict, rettv)
++ char_u *name;
++ typval_T *args;
++ dict_T *selfdict;
++ typval_T *rettv;
++ {
++ listitem_T *item;
++ typval_T argv[MAX_FUNC_ARGS + 1];
++ int argc = 0;
++ int dummy;
++ int r = 0;
++
++ for (item = args->vval.v_list->lv_first; item != NULL;
++ item = item->li_next)
++ {
++ if (argc == MAX_FUNC_ARGS)
++ {
++ EMSG(_("E699: Too many arguments"));
++ break;
++ }
++ /* Make a copy of each argument. This is needed to be able to set
++ * v_lock to VAR_FIXED in the copy without changing the original list.
++ */
++ copy_tv(&item->li_tv, &argv[argc++]);
++ }
++
++ if (item == NULL)
++ r = call_func(name, (int)STRLEN(name), rettv, argc, argv,
++ curwin->w_cursor.lnum, curwin->w_cursor.lnum,
++ &dummy, TRUE, selfdict);
++
++ /* Free the arguments. */
++ while (argc > 0)
++ clear_tv(&argv[--argc]);
++
++ return r;
++ }
++
+ /*
+ * "call(func, arglist)" function
+ */
+***************
+*** 9159,9168 ****
+ typval_T *rettv;
+ {
+ char_u *func;
+- typval_T argv[MAX_FUNC_ARGS + 1];
+- int argc = 0;
+- listitem_T *item;
+- int dummy;
+ dict_T *selfdict = NULL;
+
+ if (argvars[1].v_type != VAR_LIST)
+--- 9207,9212 ----
+***************
+*** 9190,9217 ****
+ selfdict = argvars[2].vval.v_dict;
+ }
+
+! for (item = argvars[1].vval.v_list->lv_first; item != NULL;
+! item = item->li_next)
+! {
+! if (argc == MAX_FUNC_ARGS)
+! {
+! EMSG(_("E699: Too many arguments"));
+! break;
+! }
+! /* Make a copy of each argument. This is needed to be able to set
+! * v_lock to VAR_FIXED in the copy without changing the original list.
+! */
+! copy_tv(&item->li_tv, &argv[argc++]);
+! }
+!
+! if (item == NULL)
+! (void)call_func(func, (int)STRLEN(func), rettv, argc, argv,
+! curwin->w_cursor.lnum, curwin->w_cursor.lnum,
+! &dummy, TRUE, selfdict);
+!
+! /* Free the arguments. */
+! while (argc > 0)
+! clear_tv(&argv[--argc]);
+ }
+
+ #ifdef FEAT_FLOAT
+--- 9234,9240 ----
+ selfdict = argvars[2].vval.v_dict;
+ }
+
+! (void)func_call(func, &argvars[1], selfdict, rettv);
+ }
+
+ #ifdef FEAT_FLOAT
+***************
+*** 14424,14429 ****
+--- 14447,14486 ----
+ #endif
+ }
+
++ #ifdef FEAT_PYTHON3
++ /*
++ * "py3eval()" function
++ */
++ static void
++ f_py3eval(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ char_u *str;
++ char_u buf[NUMBUFLEN];
++
++ str = get_tv_string_buf(&argvars[0], buf);
++ do_py3eval(str, rettv);
++ }
++ #endif
++
++ #ifdef FEAT_PYTHON
++ /*
++ * "pyeval()" function
++ */
++ static void
++ f_pyeval(argvars, rettv)
++ typval_T *argvars;
++ typval_T *rettv;
++ {
++ char_u *str;
++ char_u buf[NUMBUFLEN];
++
++ str = get_tv_string_buf(&argvars[0], buf);
++ do_pyeval(str, rettv);
++ }
++ #endif
++
+ /*
+ * "range()" function
+ */
+***************
+*** 22139,22145 ****
+ * Unreference a Function: decrement the reference count and free it when it
+ * becomes zero. Only for numbered functions.
+ */
+! static void
+ func_unref(name)
+ char_u *name;
+ {
+--- 22196,22202 ----
+ * Unreference a Function: decrement the reference count and free it when it
+ * becomes zero. Only for numbered functions.
+ */
+! void
+ func_unref(name)
+ char_u *name;
+ {
+***************
+*** 22163,22169 ****
+ /*
+ * Count a reference to a Function.
+ */
+! static void
+ func_ref(name)
+ char_u *name;
+ {
+--- 22220,22226 ----
+ /*
+ * Count a reference to a Function.
+ */
+! void
+ func_ref(name)
+ char_u *name;
+ {
+*** ../vim-7.3.568/src/if_lua.c 2012-04-06 14:30:55.000000000 +0200
+--- src/if_lua.c 2012-06-20 18:16:33.000000000 +0200
+***************
+*** 199,207 ****
+ lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
+ lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
+ void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
+! lua_CFunction k);
+ int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
+! int ctx, lua_CFunction k);
+ void (*dll_lua_getglobal) (lua_State *L, const char *var);
+ void (*dll_lua_setglobal) (lua_State *L, const char *var);
+ #endif
+--- 199,207 ----
+ lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum);
+ lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum);
+ void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx,
+! lua_CFunction k);
+ int (*dll_lua_pcallk) (lua_State *L, int nargs, int nresults, int errfunc,
+! int ctx, lua_CFunction k);
+ void (*dll_lua_getglobal) (lua_State *L, const char *var);
+ void (*dll_lua_setglobal) (lua_State *L, const char *var);
+ #endif
+***************
+*** 394,400 ****
+ luaL_typeerror (lua_State *L, int narg, const char *tname)
+ {
+ const char *msg = lua_pushfstring(L, "%s expected, got %s",
+! tname, luaL_typename(L, narg));
+ return luaL_argerror(L, narg, msg);
+ }
+ #endif
+--- 394,400 ----
+ luaL_typeerror (lua_State *L, int narg, const char *tname)
+ {
+ const char *msg = lua_pushfstring(L, "%s expected, got %s",
+! tname, luaL_typename(L, narg));
+ return luaL_argerror(L, narg, msg);
+ }
+ #endif
+***************
+*** 646,786 ****
+ return 1; \
+ }
+
+-
+- /* adapted from eval.c */
+-
+- #define listitem_alloc() (listitem_T *)alloc(sizeof(listitem_T))
+-
+- static listitem_T *
+- list_find (list_T *l, long n)
+- {
+- listitem_T *li;
+- if (l == NULL || n < -l->lv_len || n >= l->lv_len)
+- return NULL;
+- if (n < 0) /* search backward? */
+- for (li = l->lv_last; n < -1; li = li->li_prev)
+- n++;
+- else /* search forward */
+- for (li = l->lv_first; n > 0; li = li->li_next)
+- n--;
+- return li;
+- }
+-
+- static void
+- list_remove (list_T *l, listitem_T *li)
+- {
+- listwatch_T *lw;
+- --l->lv_len;
+- /* fix watchers */
+- for (lw = l->lv_watch; lw != NULL; lw = lw->lw_next)
+- if (lw->lw_item == li)
+- lw->lw_item = li->li_next;
+- /* fix list pointers */
+- if (li->li_next == NULL) /* last? */
+- l->lv_last = li->li_prev;
+- else
+- li->li_next->li_prev = li->li_prev;
+- if (li->li_prev == NULL) /* first? */
+- l->lv_first = li->li_next;
+- else
+- li->li_prev->li_next = li->li_next;
+- l->lv_idx_item = NULL;
+- }
+-
+- static void
+- list_append(list_T *l, listitem_T *item)
+- {
+- if (l->lv_last == NULL) /* empty list? */
+- l->lv_first = item;
+- else
+- l->lv_last->li_next = item;
+- item->li_prev = l->lv_last;
+- item->li_next = NULL;
+- l->lv_last = item;
+- ++l->lv_len;
+- }
+-
+- static int
+- list_insert_tv(list_T *l, typval_T *tv, listitem_T *item)
+- {
+- listitem_T *ni = listitem_alloc();
+-
+- if (ni == NULL)
+- return FAIL;
+- copy_tv(tv, &ni->li_tv);
+- if (item == NULL)
+- list_append(l, ni);
+- else
+- {
+- ni->li_prev = item->li_prev;
+- ni->li_next = item;
+- if (item->li_prev == NULL)
+- {
+- l->lv_first = ni;
+- ++l->lv_idx;
+- }
+- else
+- {
+- item->li_prev->li_next = ni;
+- l->lv_idx_item = NULL;
+- }
+- item->li_prev = ni;
+- ++l->lv_len;
+- }
+- return OK;
+- }
+-
+- /* set references */
+-
+- static void set_ref_in_tv (typval_T *tv, int copyID);
+-
+- static void
+- set_ref_in_dict(dict_T *d, int copyID)
+- {
+- hashtab_T *ht = &d->dv_hashtab;
+- int n = ht->ht_used;
+- hashitem_T *hi;
+- for (hi = ht->ht_array; n > 0; ++hi)
+- if (!HASHITEM_EMPTY(hi))
+- {
+- dictitem_T *di = dict_lookup(hi);
+- set_ref_in_tv(&di->di_tv, copyID);
+- --n;
+- }
+- }
+-
+- static void
+- set_ref_in_list(list_T *l, int copyID)
+- {
+- listitem_T *li;
+- for (li = l->lv_first; li != NULL; li = li->li_next)
+- set_ref_in_tv(&li->li_tv, copyID);
+- }
+-
+- static void
+- set_ref_in_tv(typval_T *tv, int copyID)
+- {
+- if (tv->v_type == VAR_LIST)
+- {
+- list_T *l = tv->vval.v_list;
+- if (l != NULL && l->lv_copyID != copyID)
+- {
+- l->lv_copyID = copyID;
+- set_ref_in_list(l, copyID);
+- }
+- }
+- else if (tv->v_type == VAR_DICT)
+- {
+- dict_T *d = tv->vval.v_dict;
+- if (d != NULL && d->dv_copyID != copyID)
+- {
+- d->dv_copyID = copyID;
+- set_ref_in_dict(d, copyID);
+- }
+- }
+- }
+-
+-
+ /* ======= List type ======= */
+
+ static luaV_List *
+--- 646,651 ----
+***************
+*** 876,882 ****
+ if (li == NULL) return 0;
+ if (lua_isnil(L, 3)) /* remove? */
+ {
+! list_remove(l, li);
+ clear_tv(&li->li_tv);
+ vim_free(li);
+ }
+--- 741,747 ----
+ if (li == NULL) return 0;
+ if (lua_isnil(L, 3)) /* remove? */
+ {
+! list_remove(l, li, li);
+ clear_tv(&li->li_tv);
+ vim_free(li);
+ }
+***************
+*** 904,911 ****
+ typval_T v;
+ lua_settop(L, 2);
+ luaV_totypval(L, 2, &v);
+! copy_tv(&v, &li->li_tv);
+! list_append(l, li);
+ }
+ lua_settop(L, 1);
+ return 1;
+--- 769,775 ----
+ typval_T v;
+ lua_settop(L, 2);
+ luaV_totypval(L, 2, &v);
+! list_append_tv(l, &v);
+ }
+ lua_settop(L, 1);
+ return 1;
+***************
+*** 1682,1688 ****
+ tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
+ }
+ lua_pop(L, 2); /* metatable and value */
+! set_ref_in_tv(&tv, copyID);
+ }
+ return 0;
+ }
+--- 1546,1552 ----
+ tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */
+ }
+ lua_pop(L, 2); /* metatable and value */
+! set_ref_in_item(&tv, copyID);
+ }
+ return 0;
+ }
+*** ../vim-7.3.568/src/if_py_both.h 2012-04-20 13:31:16.000000000 +0200
+--- src/if_py_both.h 2012-06-29 12:03:52.000000000 +0200
+***************
+*** 1,4 ****
+! /* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+--- 1,4 ----
+! /* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+***************
+*** 105,111 ****
+ return NULL;
+ Py_INCREF(list);
+
+! if (!PyList_Check(list)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+--- 105,112 ----
+ return NULL;
+ Py_INCREF(list);
+
+! if (!PyList_Check(list))
+! {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+***************
+*** 119,125 ****
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len)) {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+--- 120,127 ----
+ char *str = NULL;
+ PyInt len;
+
+! if (!PyArg_Parse(line, "et#", ENC_OPT, &str, &len))
+! {
+ PyErr_SetString(PyExc_TypeError, _("writelines() requires list of strings"));
+ Py_DECREF(list);
+ return NULL;
+***************
+*** 297,303 ****
+ {
+ PyObject *result;
+ PyObject *newObj;
+! char ptrBuf[NUMBUFLEN];
+
+ /* Avoid infinite recursion */
+ if (depth > 100)
+--- 299,305 ----
+ {
+ PyObject *result;
+ PyObject *newObj;
+! char ptrBuf[sizeof(void *) * 2 + 3];
+
+ /* Avoid infinite recursion */
+ if (depth > 100)
+***************
+*** 312,320 ****
+ if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL)
+ || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL))
+ {
+! sprintf(ptrBuf, PRINTF_DECIMAL_LONG_U,
+! our_tv->v_type == VAR_LIST ? (long_u)our_tv->vval.v_list
+! : (long_u)our_tv->vval.v_dict);
+ result = PyDict_GetItemString(lookupDict, ptrBuf);
+ if (result != NULL)
+ {
+--- 314,322 ----
+ if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL)
+ || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL))
+ {
+! sprintf(ptrBuf, "%p",
+! our_tv->v_type == VAR_LIST ? (void *)our_tv->vval.v_list
+! : (void *)our_tv->vval.v_dict);
+ result = PyDict_GetItemString(lookupDict, ptrBuf);
+ if (result != NULL)
+ {
+***************
+*** 374,509 ****
+ hashitem_T *hi;
+ dictitem_T *di;
+
+! PyDict_SetItemString(lookupDict, ptrBuf, result);
+
+! for (hi = ht->ht_array; todo > 0; ++hi)
+ {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! --todo;
+!
+! di = dict_lookup(hi);
+! newObj = VimToPython(&di->di_tv, depth + 1, lookupDict);
+! PyDict_SetItemString(result, (char *)hi->hi_key, newObj);
+! Py_DECREF(newObj);
+! }
+ }
+ }
+ }
+! else
+ {
+! Py_INCREF(Py_None);
+! result = Py_None;
+ }
+
+! return result;
+ }
+- #endif
+
+ static PyObject *
+! VimEval(PyObject *self UNUSED, PyObject *args UNUSED)
+ {
+! #ifdef FEAT_EVAL
+! char *expr;
+! typval_T *our_tv;
+! PyObject *result;
+! PyObject *lookup_dict;
+
+! if (!PyArg_ParseTuple(args, "s", &expr))
+ return NULL;
+
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! our_tv = eval_expr((char_u *)expr, NULL);
+!
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! if (our_tv == NULL)
+ {
+! PyErr_SetVim(_("invalid expression"));
+ return NULL;
+ }
+
+- /* Convert the Vim type into a Python type. Create a dictionary that's
+- * used to check for recursive loops. */
+ lookup_dict = PyDict_New();
+! result = VimToPython(our_tv, 1, lookup_dict);
+ Py_DECREF(lookup_dict);
+
+!
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! free_tv(our_tv);
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! return result;
+! #else
+! PyErr_SetVim(_("expressions disabled at compile time"));
+! return NULL;
+! #endif
+ }
+
+! /*
+! * Vim module - Definitions
+! */
+!
+! static struct PyMethodDef VimMethods[] = {
+! /* name, function, calling, documentation */
+! {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
+! {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
+! { NULL, NULL, 0, NULL }
+ };
+
+ typedef struct
+ {
+ PyObject_HEAD
+! buf_T *buf;
+! }
+! BufferObject;
+
+! #define INVALID_BUFFER_VALUE ((buf_T *)(-1))
+!
+! /*
+! * Buffer list object - Implementation
+! */
+
+! static PyInt
+! BufListLength(PyObject *self UNUSED)
+ {
+! buf_T *b = firstbuf;
+! PyInt n = 0;
+
+! while (b)
+ {
+! ++n;
+! b = b->b_next;
+ }
+!
+! return n;
+ }
+
+ static PyObject *
+! BufListItem(PyObject *self UNUSED, PyInt n)
+ {
+! buf_T *b;
+
+! for (b = firstbuf; b; b = b->b_next, --n)
+ {
+! if (n == 0)
+! return BufferNew(b);
+ }
+
+! PyErr_SetString(PyExc_IndexError, _("no such buffer"));
+! return NULL;
+ }
+
+! typedef struct
+! {
+! PyObject_HEAD
+! win_T *win;
+! } WindowObject;
+
+ #define INVALID_WINDOW_VALUE ((win_T *)(-1))
+
+--- 376,1325 ----
+ hashitem_T *hi;
+ dictitem_T *di;
+
+! PyDict_SetItemString(lookupDict, ptrBuf, result);
+!
+! for (hi = ht->ht_array; todo > 0; ++hi)
+! {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! --todo;
+!
+! di = dict_lookup(hi);
+! newObj = VimToPython(&di->di_tv, depth + 1, lookupDict);
+! PyDict_SetItemString(result, (char *)hi->hi_key, newObj);
+! Py_DECREF(newObj);
+! }
+! }
+! }
+! }
+! else
+! {
+! Py_INCREF(Py_None);
+! result = Py_None;
+! }
+!
+! return result;
+! }
+! #endif
+!
+! static PyObject *
+! VimEval(PyObject *self UNUSED, PyObject *args UNUSED)
+! {
+! #ifdef FEAT_EVAL
+! char *expr;
+! typval_T *our_tv;
+! PyObject *result;
+! PyObject *lookup_dict;
+!
+! if (!PyArg_ParseTuple(args, "s", &expr))
+! return NULL;
+!
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! our_tv = eval_expr((char_u *)expr, NULL);
+!
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! if (our_tv == NULL)
+! {
+! PyErr_SetVim(_("invalid expression"));
+! return NULL;
+! }
+!
+! /* Convert the Vim type into a Python type. Create a dictionary that's
+! * used to check for recursive loops. */
+! lookup_dict = PyDict_New();
+! result = VimToPython(our_tv, 1, lookup_dict);
+! Py_DECREF(lookup_dict);
+!
+!
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! free_tv(our_tv);
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! return result;
+! #else
+! PyErr_SetVim(_("expressions disabled at compile time"));
+! return NULL;
+! #endif
+! }
+!
+! static PyObject *ConvertToPyObject(typval_T *);
+!
+! static PyObject *
+! VimEvalPy(PyObject *self UNUSED, PyObject *args UNUSED)
+! {
+! #ifdef FEAT_EVAL
+! char *expr;
+! typval_T *our_tv;
+! PyObject *result;
+!
+! if (!PyArg_ParseTuple(args, "s", &expr))
+! return NULL;
+!
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! our_tv = eval_expr((char_u *)expr, NULL);
+!
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! if (our_tv == NULL)
+! {
+! PyErr_SetVim(_("invalid expression"));
+! return NULL;
+! }
+!
+! result = ConvertToPyObject(our_tv);
+! Py_BEGIN_ALLOW_THREADS
+! Python_Lock_Vim();
+! free_tv(our_tv);
+! Python_Release_Vim();
+! Py_END_ALLOW_THREADS
+!
+! return result;
+! #else
+! PyErr_SetVim(_("expressions disabled at compile time"));
+! return NULL;
+! #endif
+! }
+!
+! static PyObject *
+! VimStrwidth(PyObject *self UNUSED, PyObject *args)
+! {
+! char *expr;
+!
+! if (!PyArg_ParseTuple(args, "s", &expr))
+! return NULL;
+!
+! return PyLong_FromLong(mb_string2cells((char_u *)expr, STRLEN(expr)));
+! }
+!
+! /*
+! * Vim module - Definitions
+! */
+!
+! static struct PyMethodDef VimMethods[] = {
+! /* name, function, calling, documentation */
+! {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
+! {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
+! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
+! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
+! { NULL, NULL, 0, NULL }
+! };
+!
+! typedef struct
+! {
+! PyObject_HEAD
+! buf_T *buf;
+! } BufferObject;
+!
+! #define INVALID_BUFFER_VALUE ((buf_T *)(-1))
+!
+! /*
+! * Buffer list object - Implementation
+! */
+!
+! static PyInt
+! BufListLength(PyObject *self UNUSED)
+! {
+! buf_T *b = firstbuf;
+! PyInt n = 0;
+!
+! while (b)
+! {
+! ++n;
+! b = b->b_next;
+! }
+!
+! return n;
+! }
+!
+! static PyObject *
+! BufListItem(PyObject *self UNUSED, PyInt n)
+! {
+! buf_T *b;
+!
+! for (b = firstbuf; b; b = b->b_next, --n)
+! {
+! if (n == 0)
+! return BufferNew(b);
+! }
+!
+! PyErr_SetString(PyExc_IndexError, _("no such buffer"));
+! return NULL;
+! }
+!
+! typedef struct
+! {
+! PyObject_HEAD
+! win_T *win;
+! } WindowObject;
+!
+! static int ConvertFromPyObject(PyObject *, typval_T *);
+! static int _ConvertFromPyObject(PyObject *, typval_T *, PyObject *);
+!
+! typedef struct pylinkedlist_S {
+! struct pylinkedlist_S *pll_next;
+! struct pylinkedlist_S *pll_prev;
+! PyObject *pll_obj;
+! } pylinkedlist_T;
+!
+! static pylinkedlist_T *lastdict = NULL;
+! static pylinkedlist_T *lastlist = NULL;
+!
+! static void
+! pyll_remove(pylinkedlist_T *ref, pylinkedlist_T **last)
+! {
+! if (ref->pll_prev == NULL)
+! {
+! if (ref->pll_next == NULL)
+! {
+! *last = NULL;
+! return;
+! }
+! }
+! else
+! ref->pll_prev->pll_next = ref->pll_next;
+!
+! if (ref->pll_next == NULL)
+! *last = ref->pll_prev;
+! else
+! ref->pll_next->pll_prev = ref->pll_prev;
+! }
+!
+! static void
+! pyll_add(PyObject *self, pylinkedlist_T *ref, pylinkedlist_T **last)
+! {
+! if (*last == NULL)
+! ref->pll_prev = NULL;
+! else
+! {
+! (*last)->pll_next = ref;
+! ref->pll_prev = *last;
+! }
+! ref->pll_next = NULL;
+! ref->pll_obj = self;
+! *last = ref;
+! }
+!
+! static PyTypeObject DictionaryType;
+!
+! typedef struct
+! {
+! PyObject_HEAD
+! dict_T *dict;
+! pylinkedlist_T ref;
+! } DictionaryObject;
+!
+! static PyObject *
+! DictionaryNew(dict_T *dict)
+! {
+! DictionaryObject *self;
+!
+! self = PyObject_NEW(DictionaryObject, &DictionaryType);
+! if (self == NULL)
+! return NULL;
+! self->dict = dict;
+! ++dict->dv_refcount;
+!
+! pyll_add((PyObject *)(self), &self->ref, &lastdict);
+!
+! return (PyObject *)(self);
+! }
+!
+! static int
+! pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
+! {
+! dict_T *d;
+! char_u *key;
+! dictitem_T *di;
+! PyObject *keyObject;
+! PyObject *valObject;
+! Py_ssize_t iter = 0;
+!
+! d = dict_alloc();
+! if (d == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+!
+! tv->v_type = VAR_DICT;
+! tv->vval.v_dict = d;
+!
+! while (PyDict_Next(obj, &iter, &keyObject, &valObject))
+! {
+! DICTKEY_DECL
+!
+! if (keyObject == NULL)
+! return -1;
+! if (valObject == NULL)
+! return -1;
+!
+! DICTKEY_GET(-1)
+!
+! di = dictitem_alloc(key);
+!
+! DICTKEY_UNREF
+!
+! if (di == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+! di->di_tv.v_lock = 0;
+!
+! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1)
+! {
+! vim_free(di);
+! return -1;
+! }
+! if (dict_add(d, di) == FAIL)
+! {
+! vim_free(di);
+! PyErr_SetVim(_("failed to add key to dictionary"));
+! return -1;
+! }
+! }
+! return 0;
+! }
+!
+! static int
+! pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
+! {
+! dict_T *d;
+! char_u *key;
+! dictitem_T *di;
+! PyObject *list;
+! PyObject *litem;
+! PyObject *keyObject;
+! PyObject *valObject;
+! Py_ssize_t lsize;
+!
+! d = dict_alloc();
+! if (d == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+!
+! tv->v_type = VAR_DICT;
+! tv->vval.v_dict = d;
+!
+! list = PyMapping_Items(obj);
+! lsize = PyList_Size(list);
+! while (lsize--)
+! {
+! DICTKEY_DECL
+!
+! litem = PyList_GetItem(list, lsize);
+! if (litem == NULL)
+! {
+! Py_DECREF(list);
+! return -1;
+! }
+!
+! keyObject = PyTuple_GetItem(litem, 0);
+! if (keyObject == NULL)
+! {
+! Py_DECREF(list);
+! Py_DECREF(litem);
+! return -1;
+! }
+!
+! DICTKEY_GET(-1)
+!
+! valObject = PyTuple_GetItem(litem, 1);
+! if (valObject == NULL)
+! {
+! Py_DECREF(list);
+! Py_DECREF(litem);
+! return -1;
+! }
+!
+! di = dictitem_alloc(key);
+!
+! DICTKEY_UNREF
+!
+! if (di == NULL)
+! {
+! Py_DECREF(list);
+! Py_DECREF(litem);
+! PyErr_NoMemory();
+! return -1;
+! }
+! di->di_tv.v_lock = 0;
+!
+! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1)
+! {
+! vim_free(di);
+! Py_DECREF(list);
+! Py_DECREF(litem);
+! return -1;
+! }
+! if (dict_add(d, di) == FAIL)
+! {
+! vim_free(di);
+! Py_DECREF(list);
+! Py_DECREF(litem);
+! PyErr_SetVim(_("failed to add key to dictionary"));
+! return -1;
+! }
+! Py_DECREF(litem);
+! }
+! Py_DECREF(list);
+! return 0;
+! }
+!
+! static PyInt
+! DictionaryLength(PyObject *self)
+! {
+! return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used)));
+! }
+!
+! static PyObject *
+! DictionaryItem(PyObject *self, PyObject *keyObject)
+! {
+! char_u *key;
+! dictitem_T *val;
+! DICTKEY_DECL
+!
+! DICTKEY_GET(NULL)
+!
+! val = dict_find(((DictionaryObject *) (self))->dict, key, -1);
+!
+! DICTKEY_UNREF
+!
+! return ConvertToPyObject(&val->di_tv);
+! }
+!
+! static PyInt
+! DictionaryAssItem(PyObject *self, PyObject *keyObject, PyObject *valObject)
+! {
+! char_u *key;
+! typval_T tv;
+! dict_T *d = ((DictionaryObject *)(self))->dict;
+! dictitem_T *di;
+! DICTKEY_DECL
+!
+! if (d->dv_lock)
+! {
+! PyErr_SetVim(_("dict is locked"));
+! return -1;
+! }
+!
+! DICTKEY_GET(-1)
+!
+! di = dict_find(d, key, -1);
+!
+! if (valObject == NULL)
+! {
+! if (di == NULL)
+! {
+! PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
+! return -1;
+! }
+! hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
+! hash_remove(&d->dv_hashtab, hi);
+! dictitem_free(di);
+! return 0;
+! }
+!
+! if (ConvertFromPyObject(valObject, &tv) == -1)
+! {
+! return -1;
+! }
+!
+! if (di == NULL)
+! {
+! di = dictitem_alloc(key);
+! if (di == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+! di->di_tv.v_lock = 0;
+!
+! if (dict_add(d, di) == FAIL)
+! {
+! vim_free(di);
+! PyErr_SetVim(_("failed to add key to dictionary"));
+! return -1;
+! }
+! }
+! else
+! clear_tv(&di->di_tv);
+!
+! DICTKEY_UNREF
+!
+! copy_tv(&tv, &di->di_tv);
+! return 0;
+! }
+!
+! static PyObject *
+! DictionaryListKeys(PyObject *self)
+! {
+! dict_T *dict = ((DictionaryObject *)(self))->dict;
+! long_u todo = dict->dv_hashtab.ht_used;
+! Py_ssize_t i = 0;
+! PyObject *r;
+! hashitem_T *hi;
+!
+! r = PyList_New(todo);
+! for (hi = dict->dv_hashtab.ht_array; todo > 0; ++hi)
+! {
+! if (!HASHITEM_EMPTY(hi))
+! {
+! PyList_SetItem(r, i, PyBytes_FromString((char *)(hi->hi_key)));
+! --todo;
+! ++i;
+! }
+! }
+! return r;
+! }
+!
+! static struct PyMethodDef DictionaryMethods[] = {
+! {"keys", (PyCFunction)DictionaryListKeys, METH_NOARGS, ""},
+! { NULL, NULL, 0, NULL }
+! };
+!
+! static PyTypeObject ListType;
+!
+! typedef struct
+! {
+! PyObject_HEAD
+! list_T *list;
+! pylinkedlist_T ref;
+! } ListObject;
+!
+! static PyObject *
+! ListNew(list_T *list)
+! {
+! ListObject *self;
+!
+! self = PyObject_NEW(ListObject, &ListType);
+! if (self == NULL)
+! return NULL;
+! self->list = list;
+! ++list->lv_refcount;
+!
+! pyll_add((PyObject *)(self), &self->ref, &lastlist);
+!
+! return (PyObject *)(self);
+! }
+!
+! static int
+! list_py_concat(list_T *l, PyObject *obj, PyObject *lookupDict)
+! {
+! Py_ssize_t i;
+! Py_ssize_t lsize = PySequence_Size(obj);
+! PyObject *litem;
+! listitem_T *li;
+!
+! for(i=0; i<lsize; i++)
+! {
+! li = listitem_alloc();
+! if (li == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+! li->li_tv.v_lock = 0;
+!
+! litem = PySequence_GetItem(obj, i);
+! if (litem == NULL)
+! return -1;
+! if (_ConvertFromPyObject(litem, &li->li_tv, lookupDict) == -1)
+! return -1;
+!
+! list_append(l, li);
+! }
+! return 0;
+! }
+!
+! static int
+! pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
+! {
+! list_T *l;
+!
+! l = list_alloc();
+! if (l == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+!
+! tv->v_type = VAR_LIST;
+! tv->vval.v_list = l;
+!
+! if (list_py_concat(l, obj, lookupDict) == -1)
+! return -1;
+!
+! return 0;
+! }
+!
+! static int
+! pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict)
+! {
+! PyObject *iterator = PyObject_GetIter(obj);
+! PyObject *item;
+! list_T *l;
+! listitem_T *li;
+!
+! l = list_alloc();
+!
+! if (l == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+!
+! tv->vval.v_list = l;
+! tv->v_type = VAR_LIST;
+!
+!
+! if (iterator == NULL)
+! return -1;
+!
+! while ((item = PyIter_Next(obj)))
+! {
+! li = listitem_alloc();
+! if (li == NULL)
+! {
+! PyErr_NoMemory();
+! return -1;
+! }
+! li->li_tv.v_lock = 0;
+!
+! if (_ConvertFromPyObject(item, &li->li_tv, lookupDict) == -1)
+! return -1;
+!
+! list_append(l, li);
+!
+! Py_DECREF(item);
+! }
+!
+! Py_DECREF(iterator);
+! return 0;
+! }
+!
+! static PyInt
+! ListLength(PyObject *self)
+! {
+! return ((PyInt) (((ListObject *) (self))->list->lv_len));
+! }
+!
+! static PyObject *
+! ListItem(PyObject *self, Py_ssize_t index)
+! {
+! listitem_T *li;
+!
+! if (index>=ListLength(self))
+! {
+! PyErr_SetString(PyExc_IndexError, "list index out of range");
+! return NULL;
+! }
+! li = list_find(((ListObject *) (self))->list, (long) index);
+! if (li == NULL)
+! {
+! PyErr_SetVim(_("internal error: failed to get vim list item"));
+! return NULL;
+! }
+! return ConvertToPyObject(&li->li_tv);
+! }
+!
+! #define PROC_RANGE \
+! if (last < 0) {\
+! if (last < -size) \
+! last = 0; \
+! else \
+! last += size; \
+! } \
+! if (first < 0) \
+! first = 0; \
+! if (first > size) \
+! first = size; \
+! if (last > size) \
+! last = size;
+!
+! static PyObject *
+! ListSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last)
+! {
+! PyInt i;
+! PyInt size = ListLength(self);
+! PyInt n;
+! PyObject *list;
+! int reversed = 0;
+!
+! PROC_RANGE
+! if (first >= last)
+! first = last;
+!
+! n = last-first;
+! list = PyList_New(n);
+! if (list == NULL)
+! return NULL;
+!
+! for (i = 0; i < n; ++i)
+! {
+! PyObject *item = ListItem(self, i);
+! if (item == NULL)
+! {
+! Py_DECREF(list);
+! return NULL;
+! }
+!
+! if ((PyList_SetItem(list, ((reversed)?(n-i-1):(i)), item)))
+! {
+! Py_DECREF(item);
+! Py_DECREF(list);
+! return NULL;
+! }
+! }
+!
+! return list;
+! }
+!
+! static int
+! ListAssItem(PyObject *self, Py_ssize_t index, PyObject *obj)
+! {
+! typval_T tv;
+! list_T *l = ((ListObject *) (self))->list;
+! listitem_T *li;
+! Py_ssize_t length = ListLength(self);
+!
+! if (l->lv_lock)
+! {
+! PyErr_SetVim(_("list is locked"));
+! return -1;
+! }
+! if (index>length || (index==length && obj==NULL))
+! {
+! PyErr_SetString(PyExc_IndexError, "list index out of range");
+! return -1;
+! }
+!
+! if (obj == NULL)
+! {
+! li = list_find(l, (long) index);
+! list_remove(l, li, li);
+! clear_tv(&li->li_tv);
+! vim_free(li);
+! return 0;
+! }
+!
+! if (ConvertFromPyObject(obj, &tv) == -1)
+! return -1;
+!
+! if (index == length)
+! {
+! if (list_append_tv(l, &tv) == FAIL)
+! {
+! PyErr_SetVim(_("Failed to add item to list"));
+! return -1;
+! }
+! }
+! else
+! {
+! li = list_find(l, (long) index);
+! clear_tv(&li->li_tv);
+! copy_tv(&tv, &li->li_tv);
+! }
+! return 0;
+! }
+!
+! static int
+! ListAssSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj)
+! {
+! PyInt size = ListLength(self);
+! Py_ssize_t i;
+! Py_ssize_t lsize;
+! PyObject *litem;
+! listitem_T *li;
+! listitem_T *next;
+! typval_T v;
+! list_T *l = ((ListObject *) (self))->list;
+!
+! if (l->lv_lock)
+! {
+! PyErr_SetVim(_("list is locked"));
+! return -1;
+! }
+!
+! PROC_RANGE
+
+! if (first == size)
+! li = NULL;
+! else
+! {
+! li = list_find(l, (long) first);
+! if (li == NULL)
+! {
+! PyErr_SetVim(_("internal error: no vim list item"));
+! return -1;
+! }
+! if (last > first)
+! {
+! i = last - first;
+! while (i-- && li != NULL)
+ {
+! next = li->li_next;
+! listitem_remove(l, li);
+! li = next;
+ }
+ }
+ }
+!
+! if (obj == NULL)
+! return 0;
+!
+! if (!PyList_Check(obj))
+ {
+! PyErr_SetString(PyExc_TypeError, _("can only assign lists to slice"));
+! return -1;
+ }
+
+! lsize = PyList_Size(obj);
+!
+! for(i=0; i<lsize; i++)
+! {
+! litem = PyList_GetItem(obj, i);
+! if (litem == NULL)
+! return -1;
+! if (ConvertFromPyObject(litem, &v) == -1)
+! return -1;
+! if (list_insert_tv(l, &v, li) == FAIL)
+! {
+! PyErr_SetVim(_("internal error: failed to add item to list"));
+! return -1;
+! }
+! }
+! return 0;
+ }
+
+ static PyObject *
+! ListConcatInPlace(PyObject *self, PyObject *obj)
+ {
+! list_T *l = ((ListObject *) (self))->list;
+! PyObject *lookup_dict;
+
+! if (l->lv_lock)
+! {
+! PyErr_SetVim(_("list is locked"));
+ return NULL;
++ }
+
+! if (!PySequence_Check(obj))
+ {
+! PyErr_SetString(PyExc_TypeError, _("can only concatenate with lists"));
+ return NULL;
+ }
+
+ lookup_dict = PyDict_New();
+! if (list_py_concat(l, obj, lookup_dict) == -1)
+! {
+! Py_DECREF(lookup_dict);
+! return NULL;
+! }
+ Py_DECREF(lookup_dict);
+
+! Py_INCREF(self);
+! return self;
+ }
+
+! static struct PyMethodDef ListMethods[] = {
+! {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""},
+! { NULL, NULL, 0, NULL }
+ };
+
+ typedef struct
+ {
+ PyObject_HEAD
+! char_u *name;
+! } FunctionObject;
+
+! static PyTypeObject FunctionType;
+
+! static PyObject *
+! FunctionNew(char_u *name)
+ {
+! FunctionObject *self;
+
+! self = PyObject_NEW(FunctionObject, &FunctionType);
+! if (self == NULL)
+! return NULL;
+! self->name = PyMem_New(char_u, STRLEN(name) + 1);
+! if (self->name == NULL)
+ {
+! PyErr_NoMemory();
+! return NULL;
+ }
+! STRCPY(self->name, name);
+! func_ref(name);
+! return (PyObject *)(self);
+ }
+
+ static PyObject *
+! FunctionCall(PyObject *self, PyObject *argsObject, PyObject *kwargs)
+ {
+! FunctionObject *this = (FunctionObject *)(self);
+! char_u *name = this->name;
+! typval_T args;
+! typval_T selfdicttv;
+! typval_T rettv;
+! dict_T *selfdict = NULL;
+! PyObject *selfdictObject;
+! PyObject *result;
+! int error;
+
+! if (ConvertFromPyObject(argsObject, &args) == -1)
+! return NULL;
+!
+! if (kwargs != NULL)
+ {
+! selfdictObject = PyDict_GetItemString(kwargs, "self");
+! if (selfdictObject != NULL)
+! {
+! if (!PyDict_Check(selfdictObject))
+! {
+! PyErr_SetString(PyExc_TypeError, _("'self' argument must be a dictionary"));
+! clear_tv(&args);
+! return NULL;
+! }
+! if (ConvertFromPyObject(selfdictObject, &selfdicttv) == -1)
+! return NULL;
+! selfdict = selfdicttv.vval.v_dict;
+! }
+ }
+
+! error = func_call(name, &args, selfdict, &rettv);
+! if (error != OK)
+! {
+! result = NULL;
+! PyErr_SetVim(_("failed to run function"));
+! }
+! else
+! result = ConvertToPyObject(&rettv);
+!
+! /* FIXME Check what should really be cleared. */
+! clear_tv(&args);
+! clear_tv(&rettv);
+! /*
+! * if (selfdict!=NULL)
+! * clear_tv(selfdicttv);
+! */
+!
+! return result;
+ }
+
+! static struct PyMethodDef FunctionMethods[] = {
+! {"__call__", (PyCFunction)FunctionCall, METH_VARARGS|METH_KEYWORDS, ""},
+! { NULL, NULL, 0, NULL }
+! };
+
+ #define INVALID_WINDOW_VALUE ((win_T *)(-1))
+
+***************
+*** 1567,1569 ****
+--- 2383,2638 ----
+ { NULL, NULL, 0, NULL }
+ };
+
++ static void
++ set_ref_in_py(const int copyID)
++ {
++ pylinkedlist_T *cur;
++ dict_T *dd;
++ list_T *ll;
++
++ if (lastdict != NULL)
++ for(cur = lastdict ; cur != NULL ; cur = cur->pll_prev)
++ {
++ dd = ((DictionaryObject *) (cur->pll_obj))->dict;
++ if (dd->dv_copyID != copyID)
++ {
++ dd->dv_copyID = copyID;
++ set_ref_in_ht(&dd->dv_hashtab, copyID);
++ }
++ }
++
++ if (lastlist != NULL)
++ for(cur = lastlist ; cur != NULL ; cur = cur->pll_prev)
++ {
++ ll = ((ListObject *) (cur->pll_obj))->list;
++ if (ll->lv_copyID != copyID)
++ {
++ ll->lv_copyID = copyID;
++ set_ref_in_list(ll, copyID);
++ }
++ }
++ }
++
++ static int
++ set_string_copy(char_u *str, typval_T *tv)
++ {
++ tv->vval.v_string = vim_strsave(str);
++ if (tv->vval.v_string == NULL)
++ {
++ PyErr_NoMemory();
++ return -1;
++ }
++ return 0;
++ }
++
++ #ifdef FEAT_EVAL
++ typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *);
++
++ static int
++ convert_dl(PyObject *obj, typval_T *tv,
++ pytotvfunc py_to_tv, PyObject *lookupDict)
++ {
++ PyObject *capsule;
++ char hexBuf[sizeof(void *) * 2 + 3];
++
++ sprintf(hexBuf, "%p", obj);
++
++ capsule = PyDict_GetItemString(lookupDict, hexBuf);
++ if (capsule == NULL)
++ {
++ capsule = PyCapsule_New(tv, NULL, NULL);
++ PyDict_SetItemString(lookupDict, hexBuf, capsule);
++ Py_DECREF(capsule);
++ if (py_to_tv(obj, tv, lookupDict) == -1)
++ {
++ tv->v_type = VAR_UNKNOWN;
++ return -1;
++ }
++ /* As we are not using copy_tv which increments reference count we must
++ * do it ourself. */
++ switch(tv->v_type)
++ {
++ case VAR_DICT: ++tv->vval.v_dict->dv_refcount; break;
++ case VAR_LIST: ++tv->vval.v_list->lv_refcount; break;
++ }
++ }
++ else
++ {
++ typval_T *v = PyCapsule_GetPointer(capsule, NULL);
++ copy_tv(v, tv);
++ }
++ return 0;
++ }
++
++ static int
++ ConvertFromPyObject(PyObject *obj, typval_T *tv)
++ {
++ PyObject *lookup_dict;
++ int r;
++
++ lookup_dict = PyDict_New();
++ r = _ConvertFromPyObject(obj, tv, lookup_dict);
++ Py_DECREF(lookup_dict);
++ return r;
++ }
++
++ static int
++ _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookupDict)
++ {
++ if (obj->ob_type == &DictionaryType)
++ {
++ tv->v_type = VAR_DICT;
++ tv->vval.v_dict = (((DictionaryObject *)(obj))->dict);
++ ++tv->vval.v_dict->dv_refcount;
++ }
++ else if (obj->ob_type == &ListType)
++ {
++ tv->v_type = VAR_LIST;
++ tv->vval.v_list = (((ListObject *)(obj))->list);
++ ++tv->vval.v_list->lv_refcount;
++ }
++ else if (obj->ob_type == &FunctionType)
++ {
++ if (set_string_copy(((FunctionObject *) (obj))->name, tv) == -1)
++ return -1;
++
++ tv->v_type = VAR_FUNC;
++ func_ref(tv->vval.v_string);
++ }
++ #if PY_MAJOR_VERSION >= 3
++ else if (PyBytes_Check(obj))
++ {
++ char_u *result = (char_u *) PyBytes_AsString(obj);
++
++ if (result == NULL)
++ return -1;
++
++ if (set_string_copy(result, tv) == -1)
++ return -1;
++
++ tv->v_type = VAR_STRING;
++ }
++ else if (PyUnicode_Check(obj))
++ {
++ PyObject *bytes;
++ char_u *result;
++
++ bytes = PyString_AsBytes(obj);
++ if (bytes == NULL)
++ return -1;
++
++ result = (char_u *) PyBytes_AsString(bytes);
++ if (result == NULL)
++ return -1;
++
++ if (set_string_copy(result, tv) == -1)
++ {
++ Py_XDECREF(bytes);
++ return -1;
++ }
++ Py_XDECREF(bytes);
++
++ tv->v_type = VAR_STRING;
++ }
++ #else
++ else if (PyUnicode_Check(obj))
++ {
++ PyObject *bytes;
++ char_u *result;
++
++ bytes = PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, NULL);
++ if (bytes == NULL)
++ return -1;
++
++ result=(char_u *) PyString_AsString(bytes);
++ if (result == NULL)
++ return -1;
++
++ if (set_string_copy(result, tv) == -1)
++ {
++ Py_XDECREF(bytes);
++ return -1;
++ }
++ Py_XDECREF(bytes);
++
++ tv->v_type = VAR_STRING;
++ }
++ else if (PyString_Check(obj))
++ {
++ char_u *result = (char_u *) PyString_AsString(obj);
++
++ if (result == NULL)
++ return -1;
++
++ if (set_string_copy(result, tv) == -1)
++ return -1;
++
++ tv->v_type = VAR_STRING;
++ }
++ else if (PyInt_Check(obj))
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = (varnumber_T) PyInt_AsLong(obj);
++ }
++ #endif
++ else if (PyLong_Check(obj))
++ {
++ tv->v_type = VAR_NUMBER;
++ tv->vval.v_number = (varnumber_T) PyLong_AsLong(obj);
++ }
++ else if (PyDict_Check(obj))
++ return convert_dl(obj, tv, pydict_to_tv, lookupDict);
++ #ifdef FEAT_FLOAT
++ else if (PyFloat_Check(obj))
++ {
++ tv->v_type = VAR_FLOAT;
++ tv->vval.v_float = (float_T) PyFloat_AsDouble(obj);
++ }
++ #endif
++ else if (PyIter_Check(obj))
++ return convert_dl(obj, tv, pyiter_to_tv, lookupDict);
++ else if (PySequence_Check(obj))
++ return convert_dl(obj, tv, pyseq_to_tv, lookupDict);
++ else if (PyMapping_Check(obj))
++ return convert_dl(obj, tv, pymap_to_tv, lookupDict);
++ else
++ {
++ PyErr_SetString(PyExc_TypeError, _("unable to convert to vim structure"));
++ return -1;
++ }
++ return 0;
++ }
++
++ static PyObject *
++ ConvertToPyObject(typval_T *tv)
++ {
++ if (tv == NULL)
++ {
++ PyErr_SetVim(_("NULL reference passed"));
++ return NULL;
++ }
++ switch (tv->v_type)
++ {
++ case VAR_STRING:
++ return PyBytes_FromString((char *) tv->vval.v_string);
++ case VAR_NUMBER:
++ return PyLong_FromLong((long) tv->vval.v_number);
++ #ifdef FEAT_FLOAT
++ case VAR_FLOAT:
++ return PyFloat_FromDouble((double) tv->vval.v_float);
++ #endif
++ case VAR_LIST:
++ return ListNew(tv->vval.v_list);
++ case VAR_DICT:
++ return DictionaryNew(tv->vval.v_dict);
++ case VAR_FUNC:
++ return FunctionNew(tv->vval.v_string);
++ case VAR_UNKNOWN:
++ Py_INCREF(Py_None);
++ return Py_None;
++ default:
++ PyErr_SetVim(_("internal error: invalid value type"));
++ return NULL;
++ }
++ }
++ #endif
+*** ../vim-7.3.568/src/if_python.c 2011-08-28 16:00:14.000000000 +0200
+--- src/if_python.c 2012-06-29 12:47:48.000000000 +0200
+***************
+*** 1,4 ****
+! /* vi:set ts=8 sts=4 sw=4:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+--- 1,4 ----
+! /* vi:set ts=8 sts=4 sw=4 noet:
+ *
+ * VIM - Vi IMproved by Bram Moolenaar
+ *
+***************
+*** 56,61 ****
+--- 56,63 ----
+
+ static void init_structs(void);
+
++ #define PyBytes_FromString PyString_FromString
++
+ /* No-op conversion functions, use with care! */
+ #define PyString_AsBytes(obj) (obj)
+ #define PyString_FreeBytes(obj)
+***************
+*** 122,132 ****
+--- 124,136 ----
+ /* This makes if_python.c compile without warnings against Python 2.5
+ * on Win32 and Win64. */
+ # undef PyRun_SimpleString
++ # undef PyRun_String
+ # undef PyArg_Parse
+ # undef PyArg_ParseTuple
+ # undef Py_BuildValue
+ # undef Py_InitModule4
+ # undef Py_InitModule4_64
++ # undef PyObject_CallMethod
+
+ /*
+ * Wrapper defines
+***************
+*** 134,139 ****
+--- 138,144 ----
+ # define PyArg_Parse dll_PyArg_Parse
+ # define PyArg_ParseTuple dll_PyArg_ParseTuple
+ # define PyMem_Free dll_PyMem_Free
++ # define PyMem_Malloc dll_PyMem_Malloc
+ # define PyDict_SetItemString dll_PyDict_SetItemString
+ # define PyErr_BadArgument dll_PyErr_BadArgument
+ # define PyErr_Clear dll_PyErr_Clear
+***************
+*** 150,172 ****
+--- 155,202 ----
+ # endif
+ # define PyInt_AsLong dll_PyInt_AsLong
+ # define PyInt_FromLong dll_PyInt_FromLong
++ # define PyLong_AsLong dll_PyLong_AsLong
++ # define PyLong_FromLong dll_PyLong_FromLong
+ # define PyInt_Type (*dll_PyInt_Type)
++ # define PyLong_Type (*dll_PyLong_Type)
+ # define PyList_GetItem dll_PyList_GetItem
+ # define PyList_Append dll_PyList_Append
+ # define PyList_New dll_PyList_New
+ # define PyList_SetItem dll_PyList_SetItem
+ # define PyList_Size dll_PyList_Size
+ # define PyList_Type (*dll_PyList_Type)
++ # define PySequence_Check dll_PySequence_Check
++ # define PySequence_Size dll_PySequence_Size
++ # define PySequence_GetItem dll_PySequence_GetItem
++ # define PyTuple_Size dll_PyTuple_Size
++ # define PyTuple_GetItem dll_PyTuple_GetItem
++ # define PyTuple_Type (*dll_PyTuple_Type)
+ # define PyImport_ImportModule dll_PyImport_ImportModule
+ # define PyDict_New dll_PyDict_New
+ # define PyDict_GetItemString dll_PyDict_GetItemString
++ # define PyDict_Next dll_PyDict_Next
++ # ifdef PyMapping_Items
++ # define PY_NO_MAPPING_ITEMS
++ # else
++ # define PyMapping_Items dll_PyMapping_Items
++ # endif
++ # define PyObject_CallMethod dll_PyObject_CallMethod
++ # define PyMapping_Check dll_PyMapping_Check
++ # define PyIter_Next dll_PyIter_Next
+ # define PyModule_GetDict dll_PyModule_GetDict
+ # define PyRun_SimpleString dll_PyRun_SimpleString
++ # define PyRun_String dll_PyRun_String
+ # define PyString_AsString dll_PyString_AsString
+ # define PyString_FromString dll_PyString_FromString
+ # define PyString_FromStringAndSize dll_PyString_FromStringAndSize
+ # define PyString_Size dll_PyString_Size
+ # define PyString_Type (*dll_PyString_Type)
++ # define PyUnicode_Type (*dll_PyUnicode_Type)
++ # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
++ # define PyFloat_AsDouble dll_PyFloat_AsDouble
++ # define PyFloat_FromDouble dll_PyFloat_FromDouble
++ # define PyFloat_Type (*dll_PyFloat_Type)
++ # define PyImport_AddModule (*dll_PyImport_AddModule)
+ # define PySys_SetObject dll_PySys_SetObject
+ # define PySys_SetArgv dll_PySys_SetArgv
+ # define PyType_Type (*dll_PyType_Type)
+***************
+*** 179,186 ****
+--- 209,218 ----
+ # define Py_Finalize dll_Py_Finalize
+ # define Py_IsInitialized dll_Py_IsInitialized
+ # define _PyObject_New dll__PyObject_New
++ # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
+ # define _Py_NoneStruct (*dll__Py_NoneStruct)
+ # define PyObject_Init dll__PyObject_Init
++ # define PyObject_GetIter dll_PyObject_GetIter
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
+ # define PyType_IsSubtype dll_PyType_IsSubtype
+ # endif
+***************
+*** 188,193 ****
+--- 220,227 ----
+ # define PyObject_Malloc dll_PyObject_Malloc
+ # define PyObject_Free dll_PyObject_Free
+ # endif
++ # define PyCapsule_New dll_PyCapsule_New
++ # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
+
+ /*
+ * Pointers for dynamic link
+***************
+*** 195,200 ****
+--- 229,235 ----
+ static int(*dll_PyArg_Parse)(PyObject *, char *, ...);
+ static int(*dll_PyArg_ParseTuple)(PyObject *, char *, ...);
+ static int(*dll_PyMem_Free)(void *);
++ static void* (*dll_PyMem_Malloc)(size_t);
+ static int(*dll_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+ static int(*dll_PyErr_BadArgument)(void);
+ static void(*dll_PyErr_Clear)(void);
+***************
+*** 208,233 ****
+ # ifdef PY_CAN_RECURSE
+ static PyGILState_STATE (*dll_PyGILState_Ensure)(void);
+ static void (*dll_PyGILState_Release)(PyGILState_STATE);
+! #endif
+ static long(*dll_PyInt_AsLong)(PyObject *);
+ static PyObject*(*dll_PyInt_FromLong)(long);
+ static PyTypeObject* dll_PyInt_Type;
+ static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
+ static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
+ static PyObject*(*dll_PyList_New)(PyInt size);
+ static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
+ static PyInt(*dll_PyList_Size)(PyObject *);
+ static PyTypeObject* dll_PyList_Type;
+ static PyObject*(*dll_PyImport_ImportModule)(const char *);
+ static PyObject*(*dll_PyDict_New)(void);
+ static PyObject*(*dll_PyDict_GetItemString)(PyObject *, const char *);
+ static PyObject*(*dll_PyModule_GetDict)(PyObject *);
+ static int(*dll_PyRun_SimpleString)(char *);
+ static char*(*dll_PyString_AsString)(PyObject *);
+ static PyObject*(*dll_PyString_FromString)(const char *);
+ static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
+ static PyInt(*dll_PyString_Size)(PyObject *);
+ static PyTypeObject* dll_PyString_Type;
+ static int(*dll_PySys_SetObject)(char *, PyObject *);
+ static int(*dll_PySys_SetArgv)(int, char **);
+ static PyTypeObject* dll_PyType_Type;
+--- 243,290 ----
+ # ifdef PY_CAN_RECURSE
+ static PyGILState_STATE (*dll_PyGILState_Ensure)(void);
+ static void (*dll_PyGILState_Release)(PyGILState_STATE);
+! # endif
+ static long(*dll_PyInt_AsLong)(PyObject *);
+ static PyObject*(*dll_PyInt_FromLong)(long);
++ static long(*dll_PyLong_AsLong)(PyObject *);
++ static PyObject*(*dll_PyLong_FromLong)(long);
+ static PyTypeObject* dll_PyInt_Type;
++ static PyTypeObject* dll_PyLong_Type;
+ static PyObject*(*dll_PyList_GetItem)(PyObject *, PyInt);
+ static PyObject*(*dll_PyList_Append)(PyObject *, PyObject *);
+ static PyObject*(*dll_PyList_New)(PyInt size);
+ static int(*dll_PyList_SetItem)(PyObject *, PyInt, PyObject *);
+ static PyInt(*dll_PyList_Size)(PyObject *);
+ static PyTypeObject* dll_PyList_Type;
++ static int (*dll_PySequence_Check)(PyObject *);
++ static PyInt(*dll_PySequence_Size)(PyObject *);
++ static PyObject*(*dll_PySequence_GetItem)(PyObject *, PyInt);
++ static PyInt(*dll_PyTuple_Size)(PyObject *);
++ static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt);
++ static PyTypeObject* dll_PyTuple_Type;
+ static PyObject*(*dll_PyImport_ImportModule)(const char *);
+ static PyObject*(*dll_PyDict_New)(void);
+ static PyObject*(*dll_PyDict_GetItemString)(PyObject *, const char *);
++ static int (*dll_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
++ # ifndef PY_NO_MAPPING_ITEMS
++ static PyObject* (*dll_PyMapping_Items)(PyObject *);
++ # endif
++ static PyObject* (*dll_PyObject_CallMethod)(PyObject *, char *, PyObject *);
++ static int (*dll_PyMapping_Check)(PyObject *);
++ static PyObject* (*dll_PyIter_Next)(PyObject *);
+ static PyObject*(*dll_PyModule_GetDict)(PyObject *);
+ static int(*dll_PyRun_SimpleString)(char *);
++ static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *);
+ static char*(*dll_PyString_AsString)(PyObject *);
+ static PyObject*(*dll_PyString_FromString)(const char *);
+ static PyObject*(*dll_PyString_FromStringAndSize)(const char *, PyInt);
+ static PyInt(*dll_PyString_Size)(PyObject *);
+ static PyTypeObject* dll_PyString_Type;
++ static PyTypeObject* dll_PyUnicode_Type;
++ static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
++ static double(*dll_PyFloat_AsDouble)(PyObject *);
++ static PyObject*(*dll_PyFloat_FromDouble)(double);
++ static PyTypeObject* dll_PyFloat_Type;
+ static int(*dll_PySys_SetObject)(char *, PyObject *);
+ static int(*dll_PySys_SetArgv)(int, char **);
+ static PyTypeObject* dll_PyType_Type;
+***************
+*** 235,246 ****
+--- 292,306 ----
+ static PyObject*(*dll_Py_BuildValue)(char *, ...);
+ static PyObject*(*dll_Py_FindMethod)(struct PyMethodDef[], PyObject *, char *);
+ static PyObject*(*dll_Py_InitModule4)(char *, struct PyMethodDef *, char *, PyObject *, int);
++ static PyObject*(*dll_PyImport_AddModule)(char *);
+ static void(*dll_Py_SetPythonHome)(char *home);
+ static void(*dll_Py_Initialize)(void);
+ static void(*dll_Py_Finalize)(void);
+ static int(*dll_Py_IsInitialized)(void);
+ static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
+ static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
++ static PyObject* (*dll_PyObject_GetIter)(PyObject *);
++ static iternextfunc dll__PyObject_NextNotImplemented;
+ static PyObject* dll__Py_NoneStruct;
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
+ static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
+***************
+*** 249,254 ****
+--- 309,316 ----
+ static void* (*dll_PyObject_Malloc)(size_t);
+ static void (*dll_PyObject_Free)(void*);
+ # endif
++ static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
++ static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
+
+ static HINSTANCE hinstPython = 0; /* Instance of python.dll */
+
+***************
+*** 278,283 ****
+--- 340,346 ----
+ {"PyArg_Parse", (PYTHON_PROC*)&dll_PyArg_Parse},
+ {"PyArg_ParseTuple", (PYTHON_PROC*)&dll_PyArg_ParseTuple},
+ {"PyMem_Free", (PYTHON_PROC*)&dll_PyMem_Free},
++ {"PyMem_Malloc", (PYTHON_PROC*)&dll_PyMem_Malloc},
+ {"PyDict_SetItemString", (PYTHON_PROC*)&dll_PyDict_SetItemString},
+ {"PyErr_BadArgument", (PYTHON_PROC*)&dll_PyErr_BadArgument},
+ {"PyErr_Clear", (PYTHON_PROC*)&dll_PyErr_Clear},
+***************
+*** 294,316 ****
+--- 357,402 ----
+ # endif
+ {"PyInt_AsLong", (PYTHON_PROC*)&dll_PyInt_AsLong},
+ {"PyInt_FromLong", (PYTHON_PROC*)&dll_PyInt_FromLong},
++ {"PyLong_AsLong", (PYTHON_PROC*)&dll_PyLong_AsLong},
++ {"PyLong_FromLong", (PYTHON_PROC*)&dll_PyLong_FromLong},
+ {"PyInt_Type", (PYTHON_PROC*)&dll_PyInt_Type},
++ {"PyLong_Type", (PYTHON_PROC*)&dll_PyLong_Type},
+ {"PyList_GetItem", (PYTHON_PROC*)&dll_PyList_GetItem},
+ {"PyList_Append", (PYTHON_PROC*)&dll_PyList_Append},
+ {"PyList_New", (PYTHON_PROC*)&dll_PyList_New},
+ {"PyList_SetItem", (PYTHON_PROC*)&dll_PyList_SetItem},
+ {"PyList_Size", (PYTHON_PROC*)&dll_PyList_Size},
+ {"PyList_Type", (PYTHON_PROC*)&dll_PyList_Type},
++ {"PySequence_GetItem", (PYTHON_PROC*)&dll_PySequence_GetItem},
++ {"PySequence_Size", (PYTHON_PROC*)&dll_PySequence_Size},
++ {"PySequence_Check", (PYTHON_PROC*)&dll_PySequence_Check},
++ {"PyTuple_GetItem", (PYTHON_PROC*)&dll_PyTuple_GetItem},
++ {"PyTuple_Size", (PYTHON_PROC*)&dll_PyTuple_Size},
++ {"PyTuple_Type", (PYTHON_PROC*)&dll_PyTuple_Type},
+ {"PyImport_ImportModule", (PYTHON_PROC*)&dll_PyImport_ImportModule},
+ {"PyDict_GetItemString", (PYTHON_PROC*)&dll_PyDict_GetItemString},
++ {"PyDict_Next", (PYTHON_PROC*)&dll_PyDict_Next},
+ {"PyDict_New", (PYTHON_PROC*)&dll_PyDict_New},
++ # ifndef PY_NO_MAPPING_ITEMS
++ {"PyMapping_Items", (PYTHON_PROC*)&dll_PyMapping_Items},
++ # endif
++ {"PyObject_CallMethod", (PYTHON_PROC*)&dll_PyObject_CallMethod},
++ {"PyMapping_Check", (PYTHON_PROC*)&dll_PyMapping_Check},
++ {"PyIter_Next", (PYTHON_PROC*)&dll_PyIter_Next},
+ {"PyModule_GetDict", (PYTHON_PROC*)&dll_PyModule_GetDict},
+ {"PyRun_SimpleString", (PYTHON_PROC*)&dll_PyRun_SimpleString},
++ {"PyRun_String", (PYTHON_PROC*)&dll_PyRun_String},
+ {"PyString_AsString", (PYTHON_PROC*)&dll_PyString_AsString},
+ {"PyString_FromString", (PYTHON_PROC*)&dll_PyString_FromString},
+ {"PyString_FromStringAndSize", (PYTHON_PROC*)&dll_PyString_FromStringAndSize},
+ {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
+ {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
++ {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
++ {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
++ {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
++ {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
++ {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
++ {"PyImport_AddModule", (PYTHON_PROC*)&dll_PyImport_AddModule},
+ {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
+ {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
+ {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
+***************
+*** 328,333 ****
+--- 414,421 ----
+ {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
+ {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
+ {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
++ {"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
++ {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
+ {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
+ {"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
+***************
+*** 336,341 ****
+--- 424,431 ----
+ {"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
+ {"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
+ # endif
++ {"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
++ {"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
+ {"", NULL},
+ };
+
+***************
+*** 434,443 ****
+--- 524,548 ----
+
+ static PyObject *BufferNew (buf_T *);
+ static PyObject *WindowNew(win_T *);
++ static PyObject *DictionaryNew(dict_T *);
+ static PyObject *LineToString(const char *);
+
+ static PyTypeObject RangeType;
+
++ static int initialised = 0;
++ #define PYINITIALISED initialised
++
++ /* Add conversion from PyInt? */
++ #define DICTKEY_GET(err) \
++ if (!PyString_Check(keyObject)) \
++ { \
++ PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
++ return err; \
++ } \
++ key = (char_u *) PyString_AsString(keyObject);
++ #define DICTKEY_UNREF
++ #define DICTKEY_DECL
++
+ /*
+ * Include the code shared with if_python3.c
+ */
+***************
+*** 451,456 ****
+--- 556,563 ----
+ static PyInt RangeStart;
+ static PyInt RangeEnd;
+
++ static PyObject *globals;
++
+ static void PythonIO_Flush(void);
+ static int PythonIO_Init(void);
+ static int PythonMod_Init(void);
+***************
+*** 466,473 ****
+ * 1. Python interpreter main program.
+ */
+
+- static int initialised = 0;
+-
+ #if PYTHON_API_VERSION < 1007 /* Python 1.4 */
+ typedef PyObject PyThreadState;
+ #endif
+--- 573,578 ----
+***************
+*** 581,586 ****
+--- 686,693 ----
+ if (PythonMod_Init())
+ goto fail;
+
++ globals = PyModule_GetDict(PyImport_AddModule("__main__"));
++
+ /* Remove the element from sys.path that was added because of our
+ * argv[0] value in PythonMod_Init(). Previously we used an empty
+ * string, but dependinding on the OS we then get an empty entry or
+***************
+*** 609,615 ****
+ * External interface
+ */
+ static void
+! DoPythonCommand(exarg_T *eap, const char *cmd)
+ {
+ #ifndef PY_CAN_RECURSE
+ static int recursive = 0;
+--- 716,722 ----
+ * External interface
+ */
+ static void
+! DoPythonCommand(exarg_T *eap, const char *cmd, typval_T *rettv)
+ {
+ #ifndef PY_CAN_RECURSE
+ static int recursive = 0;
+***************
+*** 639,646 ****
+ if (Python_Init())
+ goto theend;
+
+! RangeStart = eap->line1;
+! RangeEnd = eap->line2;
+ Python_Release_Vim(); /* leave vim */
+
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+--- 746,761 ----
+ if (Python_Init())
+ goto theend;
+
+! if (rettv == NULL)
+! {
+! RangeStart = eap->line1;
+! RangeEnd = eap->line2;
+! }
+! else
+! {
+! RangeStart = (PyInt) curwin->w_cursor.lnum;
+! RangeEnd = RangeStart;
+! }
+ Python_Release_Vim(); /* leave vim */
+
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+***************
+*** 658,664 ****
+
+ Python_RestoreThread(); /* enter python */
+
+! PyRun_SimpleString((char *)(cmd));
+
+ Python_SaveThread(); /* leave python */
+
+--- 773,795 ----
+
+ Python_RestoreThread(); /* enter python */
+
+! if (rettv == NULL)
+! PyRun_SimpleString((char *)(cmd));
+! else
+! {
+! PyObject *r;
+!
+! r = PyRun_String((char *)(cmd), Py_eval_input, globals, globals);
+! if (r == NULL)
+! EMSG(_("E858: Eval did not return a valid python object"));
+! else
+! {
+! if (ConvertFromPyObject(r, rettv) == -1)
+! EMSG(_("E859: Failed to convert returned python object to vim value"));
+! Py_DECREF(r);
+! }
+! PyErr_Clear();
+! }
+
+ Python_SaveThread(); /* leave python */
+
+***************
+*** 680,686 ****
+ #ifndef PY_CAN_RECURSE
+ --recursive;
+ #endif
+! return; /* keeps lint happy */
+ }
+
+ /*
+--- 811,817 ----
+ #ifndef PY_CAN_RECURSE
+ --recursive;
+ #endif
+! return;
+ }
+
+ /*
+***************
+*** 695,703 ****
+ if (!eap->skip)
+ {
+ if (script == NULL)
+! DoPythonCommand(eap, (char *)eap->arg);
+ else
+! DoPythonCommand(eap, (char *)script);
+ }
+ vim_free(script);
+ }
+--- 826,834 ----
+ if (!eap->skip)
+ {
+ if (script == NULL)
+! DoPythonCommand(eap, (char *)eap->arg, NULL);
+ else
+! DoPythonCommand(eap, (char *)script, NULL);
+ }
+ vim_free(script);
+ }
+***************
+*** 743,749 ****
+ *p++ = '\0';
+
+ /* Execute the file */
+! DoPythonCommand(eap, buffer);
+ }
+
+ /******************************************************
+--- 874,880 ----
+ *p++ = '\0';
+
+ /* Execute the file */
+! DoPythonCommand(eap, buffer, NULL);
+ }
+
+ /******************************************************
+***************
+*** 765,778 ****
+ static int
+ OutputSetattr(PyObject *self, char *name, PyObject *val)
+ {
+! if (val == NULL) {
+ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+ return -1;
+ }
+
+ if (strcmp(name, "softspace") == 0)
+ {
+! if (!PyInt_Check(val)) {
+ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+ return -1;
+ }
+--- 896,911 ----
+ static int
+ OutputSetattr(PyObject *self, char *name, PyObject *val)
+ {
+! if (val == NULL)
+! {
+ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+ return -1;
+ }
+
+ if (strcmp(name, "softspace") == 0)
+ {
+! if (!PyInt_Check(val))
+! {
+ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+ return -1;
+ }
+***************
+*** 800,805 ****
+--- 933,941 ----
+ * 3. Implementation of the Vim module for Python
+ */
+
++ static PyObject *ConvertToPyObject(typval_T *);
++ static int ConvertFromPyObject(PyObject *, typval_T *);
++
+ /* Window type - Implementation functions
+ * --------------------------------------
+ */
+***************
+*** 1441,1446 ****
+--- 1577,1748 ----
+ return result;
+ }
+
++ static void DictionaryDestructor(PyObject *);
++ static PyObject *DictionaryGetattr(PyObject *, char*);
++
++ static PyMappingMethods DictionaryAsMapping = {
++ (PyInquiry) DictionaryLength,
++ (binaryfunc) DictionaryItem,
++ (objobjargproc) DictionaryAssItem,
++ };
++
++ static PyTypeObject DictionaryType = {
++ PyObject_HEAD_INIT(0)
++ 0,
++ "vimdictionary",
++ sizeof(DictionaryObject),
++ 0,
++
++ (destructor) DictionaryDestructor,
++ (printfunc) 0,
++ (getattrfunc) DictionaryGetattr,
++ (setattrfunc) 0,
++ (cmpfunc) 0,
++ (reprfunc) 0,
++
++ 0, /* as number */
++ 0, /* as sequence */
++ &DictionaryAsMapping, /* as mapping */
++
++ (hashfunc) 0,
++ (ternaryfunc) 0,
++ (reprfunc) 0,
++ };
++
++ static void
++ DictionaryDestructor(PyObject *self)
++ {
++ DictionaryObject *this = ((DictionaryObject *) (self));
++
++ pyll_remove(&this->ref, &lastdict);
++ dict_unref(this->dict);
++
++ Py_DECREF(self);
++ }
++
++ static PyObject *
++ DictionaryGetattr(PyObject *self, char *name)
++ {
++ return Py_FindMethod(DictionaryMethods, self, name);
++ }
++
++ static void ListDestructor(PyObject *);
++ static PyObject *ListGetattr(PyObject *, char *);
++
++ static PySequenceMethods ListAsSeq = {
++ (PyInquiry) ListLength,
++ (binaryfunc) 0,
++ (PyIntArgFunc) 0,
++ (PyIntArgFunc) ListItem,
++ (PyIntIntArgFunc) ListSlice,
++ (PyIntObjArgProc) ListAssItem,
++ (PyIntIntObjArgProc) ListAssSlice,
++ (objobjproc) 0,
++ #if PY_MAJOR_VERSION >= 2
++ (binaryfunc) ListConcatInPlace,
++ 0,
++ #endif
++ };
++
++ static PyTypeObject ListType = {
++ PyObject_HEAD_INIT(0)
++ 0,
++ "vimlist",
++ sizeof(ListObject),
++ 0,
++
++ (destructor) ListDestructor,
++ (printfunc) 0,
++ (getattrfunc) ListGetattr,
++ (setattrfunc) 0,
++ (cmpfunc) 0,
++ (reprfunc) 0,
++
++ 0, /* as number */
++ &ListAsSeq, /* as sequence */
++ 0, /* as mapping */
++
++ (hashfunc) 0,
++ (ternaryfunc) 0,
++ (reprfunc) 0,
++ };
++
++ static void
++ ListDestructor(PyObject *self)
++ {
++ ListObject *this = ((ListObject *) (self));
++
++ pyll_remove(&this->ref, &lastlist);
++ list_unref(this->list);
++
++ Py_DECREF(self);
++ }
++
++ static PyObject *
++ ListGetattr(PyObject *self, char *name)
++ {
++ return Py_FindMethod(ListMethods, self, name);
++ }
++
++ static void FunctionDestructor(PyObject *);
++ static PyObject *FunctionGetattr(PyObject *, char *);
++
++ static PyTypeObject FunctionType = {
++ PyObject_HEAD_INIT(0)
++ 0,
++ "vimfunction",
++ sizeof(FunctionObject),
++ 0,
++
++ (destructor) FunctionDestructor,
++ (printfunc) 0,
++ (getattrfunc) FunctionGetattr,
++ (setattrfunc) 0,
++ (cmpfunc) 0,
++ (reprfunc) 0,
++
++ 0, /* as number */
++ 0, /* as sequence */
++ 0, /* as mapping */
++
++ (hashfunc) 0,
++ (ternaryfunc) FunctionCall,
++ (reprfunc) 0,
++ };
++
++ static void
++ FunctionDestructor(PyObject *self)
++ {
++ FunctionObject *this = (FunctionObject *) (self);
++
++ func_unref(this->name);
++ PyMem_Del(this->name);
++
++ Py_DECREF(self);
++ }
++
++ static PyObject *
++ FunctionGetattr(PyObject *self, char *name)
++ {
++ FunctionObject *this = (FunctionObject *)(self);
++
++ if (strcmp(name, "name") == 0)
++ return PyString_FromString((char *)(this->name));
++ else
++ return Py_FindMethod(FunctionMethods, self, name);
++ }
++
++ void
++ do_pyeval (char_u *str, typval_T *rettv)
++ {
++ DoPythonCommand(NULL, (char *) str, rettv);
++ switch(rettv->v_type)
++ {
++ case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
++ case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
++ case VAR_FUNC: func_ref(rettv->vval.v_string); break;
++ }
++ }
+
+ /* Don't generate a prototype for the next function, it generates an error on
+ * newer Python versions. */
+***************
+*** 1453,1458 ****
+--- 1755,1766 ----
+ }
+ #endif /* Python 1.4 */
+
++ void
++ set_ref_in_python (int copyID)
++ {
++ set_ref_in_py(copyID);
++ }
++
+ static void
+ init_structs(void)
+ {
+*** ../vim-7.3.568/src/if_python3.c 2012-02-04 20:17:21.000000000 +0100
+--- src/if_python3.c 2012-06-29 11:54:10.000000000 +0200
+***************
+*** 77,83 ****
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+--- 77,83 ----
+
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+! #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
+ #define PyString_FreeBytes(obj) Py_XDECREF(bytes)
+ #define PyString_AsString(obj) PyBytes_AsString(obj)
+ #define PyString_Size(obj) PyBytes_GET_SIZE(bytes)
+***************
+*** 109,114 ****
+--- 109,115 ----
+ # undef PyArg_ParseTuple
+ # define PyArg_ParseTuple py3_PyArg_ParseTuple
+ # define PyMem_Free py3_PyMem_Free
++ # define PyMem_Malloc py3_PyMem_Malloc
+ # define PyDict_SetItemString py3_PyDict_SetItemString
+ # define PyErr_BadArgument py3_PyErr_BadArgument
+ # define PyErr_Clear py3_PyErr_Clear
+***************
+*** 128,141 ****
+--- 129,155 ----
+ # define PyList_New py3_PyList_New
+ # define PyList_SetItem py3_PyList_SetItem
+ # define PyList_Size py3_PyList_Size
++ # define PySequence_Check py3_PySequence_Check
++ # define PySequence_Size py3_PySequence_Size
++ # define PySequence_GetItem py3_PySequence_GetItem
++ # define PyTuple_Size py3_PyTuple_Size
++ # define PyTuple_GetItem py3_PyTuple_GetItem
+ # define PySlice_GetIndicesEx py3_PySlice_GetIndicesEx
+ # define PyImport_ImportModule py3_PyImport_ImportModule
++ # define PyImport_AddModule py3_PyImport_AddModule
+ # define PyObject_Init py3__PyObject_Init
+ # define PyDict_New py3_PyDict_New
+ # define PyDict_GetItemString py3_PyDict_GetItemString
++ # define PyDict_Next py3_PyDict_Next
++ # define PyMapping_Check py3_PyMapping_Check
++ # define PyMapping_Items py3_PyMapping_Items
++ # define PyIter_Next py3_PyIter_Next
++ # define PyObject_GetIter py3_PyObject_GetIter
+ # define PyModule_GetDict py3_PyModule_GetDict
+ #undef PyRun_SimpleString
+ # define PyRun_SimpleString py3_PyRun_SimpleString
++ #undef PyRun_String
++ # define PyRun_String py3_PyRun_String
+ # define PySys_SetObject py3_PySys_SetObject
+ # define PySys_SetArgv py3_PySys_SetArgv
+ # define PyType_Type (*py3_PyType_Type)
+***************
+*** 147,152 ****
+--- 161,167 ----
+ # define Py_Finalize py3_Py_Finalize
+ # define Py_IsInitialized py3_Py_IsInitialized
+ # define _Py_NoneStruct (*py3__Py_NoneStruct)
++ # define _PyObject_NextNotImplemented (*py3__PyObject_NextNotImplemented)
+ # define PyModule_AddObject py3_PyModule_AddObject
+ # define PyImport_AppendInittab py3_PyImport_AppendInittab
+ # define _PyUnicode_AsString py3__PyUnicode_AsString
+***************
+*** 154,161 ****
+--- 169,181 ----
+ # define PyUnicode_AsEncodedString py3_PyUnicode_AsEncodedString
+ # undef PyBytes_AsString
+ # define PyBytes_AsString py3_PyBytes_AsString
++ # undef PyBytes_FromString
++ # define PyBytes_FromString py3_PyBytes_FromString
++ # define PyFloat_FromDouble py3_PyFloat_FromDouble
++ # define PyFloat_AsDouble py3_PyFloat_AsDouble
+ # define PyObject_GenericGetAttr py3_PyObject_GenericGetAttr
+ # define PySlice_Type (*py3_PySlice_Type)
++ # define PyFloat_Type (*py3_PyFloat_Type)
+ # define PyErr_NewException py3_PyErr_NewException
+ # ifdef Py_DEBUG
+ # define _Py_NegativeRefcount py3__Py_NegativeRefcount
+***************
+*** 174,179 ****
+--- 194,202 ----
+ # define PyUnicode_FromString py3_PyUnicode_FromString
+ # undef PyUnicode_Decode
+ # define PyUnicode_Decode py3_PyUnicode_Decode
++ # define PyType_IsSubtype py3_PyType_IsSubtype
++ # define PyCapsule_New py3_PyCapsule_New
++ # define PyCapsule_GetPointer py3_PyCapsule_GetPointer
+
+ # ifdef Py_DEBUG
+ # undef PyObject_NEW
+***************
+*** 194,215 ****
+--- 217,250 ----
+ static int (*py3_PySys_SetObject)(char *, PyObject *);
+ static PyObject* (*py3_PyList_Append)(PyObject *, PyObject *);
+ static Py_ssize_t (*py3_PyList_Size)(PyObject *);
++ static int (*py3_PySequence_Check)(PyObject *);
++ static Py_ssize_t (*py3_PySequence_Size)(PyObject *);
++ static PyObject* (*py3_PySequence_GetItem)(PyObject *, Py_ssize_t);
++ static Py_ssize_t (*py3_PyTuple_Size)(PyObject *);
++ static PyObject* (*py3_PyTuple_GetItem)(PyObject *, Py_ssize_t);
++ static int (*py3_PyMapping_Check)(PyObject *);
++ static PyObject* (*py3_PyMapping_Items)(PyObject *);
+ static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length,
+ Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength);
+ static PyObject* (*py3_PyErr_NoMemory)(void);
+ static void (*py3_Py_Finalize)(void);
+ static void (*py3_PyErr_SetString)(PyObject *, const char *);
+ static int (*py3_PyRun_SimpleString)(char *);
++ static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *);
+ static PyObject* (*py3_PyList_GetItem)(PyObject *, Py_ssize_t);
+ static PyObject* (*py3_PyImport_ImportModule)(const char *);
++ static PyObject* (*py3_PyImport_AddModule)(const char *);
+ static int (*py3_PyErr_BadArgument)(void);
+ static PyTypeObject* py3_PyType_Type;
+ static PyObject* (*py3_PyErr_Occurred)(void);
+ static PyObject* (*py3_PyModule_GetDict)(PyObject *);
+ static int (*py3_PyList_SetItem)(PyObject *, Py_ssize_t, PyObject *);
+ static PyObject* (*py3_PyDict_GetItemString)(PyObject *, const char *);
++ static int (*py3_PyDict_Next)(PyObject *, Py_ssize_t *, PyObject **, PyObject **);
+ static PyObject* (*py3_PyLong_FromLong)(long);
+ static PyObject* (*py3_PyDict_New)(void);
++ static PyObject* (*py3_PyIter_Next)(PyObject *);
++ static PyObject* (*py3_PyObject_GetIter)(PyObject *);
+ static PyObject* (*py3_Py_BuildValue)(char *, ...);
+ static int (*py3_PyType_Ready)(PyTypeObject *type);
+ static int (*py3_PyDict_SetItemString)(PyObject *dp, char *key, PyObject *item);
+***************
+*** 224,244 ****
+--- 259,287 ----
+ static int (*py3_PyArg_Parse)(PyObject *, char *, ...);
+ static int (*py3_PyArg_ParseTuple)(PyObject *, char *, ...);
+ static int (*py3_PyMem_Free)(void *);
++ static void* (*py3_PyMem_Malloc)(size_t);
+ static int (*py3_Py_IsInitialized)(void);
+ static void (*py3_PyErr_Clear)(void);
+ static PyObject*(*py3__PyObject_Init)(PyObject *, PyTypeObject *);
++ static iternextfunc py3__PyObject_NextNotImplemented;
+ static PyObject* py3__Py_NoneStruct;
+ static int (*py3_PyModule_AddObject)(PyObject *m, const char *name, PyObject *o);
+ static int (*py3_PyImport_AppendInittab)(const char *name, PyObject* (*initfunc)(void));
+ static char* (*py3__PyUnicode_AsString)(PyObject *unicode);
+ static PyObject* (*py3_PyUnicode_AsEncodedString)(PyObject *unicode, const char* encoding, const char* errors);
+ static char* (*py3_PyBytes_AsString)(PyObject *bytes);
++ static PyObject* (*py3_PyBytes_FromString)(char *str);
++ static PyObject* (*py3_PyFloat_FromDouble)(double num);
++ static double (*py3_PyFloat_AsDouble)(PyObject *);
+ static PyObject* (*py3_PyObject_GenericGetAttr)(PyObject *obj, PyObject *name);
+ static PyObject* (*py3_PyModule_Create2)(struct PyModuleDef* module, int module_api_version);
+ static PyObject* (*py3_PyType_GenericAlloc)(PyTypeObject *type, Py_ssize_t nitems);
+ static PyObject* (*py3_PyType_GenericNew)(PyTypeObject *type, PyObject *args, PyObject *kwds);
+ static PyTypeObject* py3_PySlice_Type;
++ static PyTypeObject* py3_PyFloat_Type;
+ static PyObject* (*py3_PyErr_NewException)(char *name, PyObject *base, PyObject *dict);
++ static PyObject* (*py3_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
++ static void* (*py3_PyCapsule_GetPointer)(PyObject *, char *);
+ # ifdef Py_DEBUG
+ static void (*py3__Py_NegativeRefcount)(const char *fname, int lineno, PyObject *op);
+ static Py_ssize_t* py3__Py_RefTotal;
+***************
+*** 249,254 ****
+--- 292,298 ----
+ static void (*py3_PyObject_Free)(void*);
+ static void* (*py3_PyObject_Malloc)(size_t);
+ # endif
++ static int (*py3_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
+
+ static HINSTANCE hinstPy3 = 0; /* Instance of python.dll */
+
+***************
+*** 280,304 ****
+--- 324,361 ----
+ {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
+ {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
+ {"PyMem_Free", (PYTHON_PROC*)&py3_PyMem_Free},
++ {"PyMem_Malloc", (PYTHON_PROC*)&py3_PyMem_Malloc},
+ {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
+ {"PyGILState_Ensure", (PYTHON_PROC*)&py3_PyGILState_Ensure},
+ {"PyGILState_Release", (PYTHON_PROC*)&py3_PyGILState_Release},
+ {"PySys_SetObject", (PYTHON_PROC*)&py3_PySys_SetObject},
+ {"PyList_Append", (PYTHON_PROC*)&py3_PyList_Append},
+ {"PyList_Size", (PYTHON_PROC*)&py3_PyList_Size},
++ {"PySequence_Check", (PYTHON_PROC*)&py3_PySequence_Check},
++ {"PySequence_Size", (PYTHON_PROC*)&py3_PySequence_Size},
++ {"PySequence_GetItem", (PYTHON_PROC*)&py3_PySequence_GetItem},
++ {"PyTuple_Size", (PYTHON_PROC*)&py3_PyTuple_Size},
++ {"PyTuple_GetItem", (PYTHON_PROC*)&py3_PyTuple_GetItem},
+ {"PySlice_GetIndicesEx", (PYTHON_PROC*)&py3_PySlice_GetIndicesEx},
+ {"PyErr_NoMemory", (PYTHON_PROC*)&py3_PyErr_NoMemory},
+ {"Py_Finalize", (PYTHON_PROC*)&py3_Py_Finalize},
+ {"PyErr_SetString", (PYTHON_PROC*)&py3_PyErr_SetString},
+ {"PyRun_SimpleString", (PYTHON_PROC*)&py3_PyRun_SimpleString},
++ {"PyRun_String", (PYTHON_PROC*)&py3_PyRun_String},
+ {"PyList_GetItem", (PYTHON_PROC*)&py3_PyList_GetItem},
+ {"PyImport_ImportModule", (PYTHON_PROC*)&py3_PyImport_ImportModule},
++ {"PyImport_AddModule", (PYTHON_PROC*)&py3_PyImport_AddModule},
+ {"PyErr_BadArgument", (PYTHON_PROC*)&py3_PyErr_BadArgument},
+ {"PyType_Type", (PYTHON_PROC*)&py3_PyType_Type},
+ {"PyErr_Occurred", (PYTHON_PROC*)&py3_PyErr_Occurred},
+ {"PyModule_GetDict", (PYTHON_PROC*)&py3_PyModule_GetDict},
+ {"PyList_SetItem", (PYTHON_PROC*)&py3_PyList_SetItem},
+ {"PyDict_GetItemString", (PYTHON_PROC*)&py3_PyDict_GetItemString},
++ {"PyDict_Next", (PYTHON_PROC*)&py3_PyDict_Next},
++ {"PyMapping_Check", (PYTHON_PROC*)&py3_PyMapping_Check},
++ {"PyMapping_Items", (PYTHON_PROC*)&py3_PyMapping_Items},
++ {"PyIter_Next", (PYTHON_PROC*)&py3_PyIter_Next},
++ {"PyObject_GetIter", (PYTHON_PROC*)&py3_PyObject_GetIter},
+ {"PyLong_FromLong", (PYTHON_PROC*)&py3_PyLong_FromLong},
+ {"PyDict_New", (PYTHON_PROC*)&py3_PyDict_New},
+ {"Py_BuildValue", (PYTHON_PROC*)&py3_Py_BuildValue},
+***************
+*** 311,316 ****
+--- 368,374 ----
+ {"PyEval_SaveThread", (PYTHON_PROC*)&py3_PyEval_SaveThread},
+ {"PyArg_Parse", (PYTHON_PROC*)&py3_PyArg_Parse},
+ {"Py_IsInitialized", (PYTHON_PROC*)&py3_Py_IsInitialized},
++ {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&py3__PyObject_NextNotImplemented},
+ {"_Py_NoneStruct", (PYTHON_PROC*)&py3__Py_NoneStruct},
+ {"PyErr_Clear", (PYTHON_PROC*)&py3_PyErr_Clear},
+ {"PyObject_Init", (PYTHON_PROC*)&py3__PyObject_Init},
+***************
+*** 318,328 ****
+--- 376,390 ----
+ {"PyImport_AppendInittab", (PYTHON_PROC*)&py3_PyImport_AppendInittab},
+ {"_PyUnicode_AsString", (PYTHON_PROC*)&py3__PyUnicode_AsString},
+ {"PyBytes_AsString", (PYTHON_PROC*)&py3_PyBytes_AsString},
++ {"PyBytes_FromString", (PYTHON_PROC*)&py3_PyBytes_FromString},
++ {"PyFloat_FromDouble", (PYTHON_PROC*)&py3_PyFloat_FromDouble},
++ {"PyFloat_AsDouble", (PYTHON_PROC*)&py3_PyFloat_AsDouble},
+ {"PyObject_GenericGetAttr", (PYTHON_PROC*)&py3_PyObject_GenericGetAttr},
+ {"PyModule_Create2", (PYTHON_PROC*)&py3_PyModule_Create2},
+ {"PyType_GenericAlloc", (PYTHON_PROC*)&py3_PyType_GenericAlloc},
+ {"PyType_GenericNew", (PYTHON_PROC*)&py3_PyType_GenericNew},
+ {"PySlice_Type", (PYTHON_PROC*)&py3_PySlice_Type},
++ {"PyFloat_Type", (PYTHON_PROC*)&py3_PyFloat_Type},
+ {"PyErr_NewException", (PYTHON_PROC*)&py3_PyErr_NewException},
+ # ifdef Py_DEBUG
+ {"_Py_NegativeRefcount", (PYTHON_PROC*)&py3__Py_NegativeRefcount},
+***************
+*** 334,339 ****
+--- 396,404 ----
+ {"PyObject_Malloc", (PYTHON_PROC*)&py3_PyObject_Malloc},
+ {"PyObject_Free", (PYTHON_PROC*)&py3_PyObject_Free},
+ # endif
++ {"PyType_IsSubtype", (PYTHON_PROC*)&py3_PyType_IsSubtype},
++ {"PyCapsule_New", (PYTHON_PROC*)&py3_PyCapsule_New},
++ {"PyCapsule_GetPointer", (PYTHON_PROC*)&py3_PyCapsule_GetPointer},
+ {"", NULL},
+ };
+
+***************
+*** 472,482 ****
+--- 537,577 ----
+
+ static PyTypeObject RangeType;
+
++ static int py3initialised = 0;
++
++ #define PYINITIALISED py3initialised
++
++ /* Add conversion from PyInt? */
++ #define DICTKEY_GET(err) \
++ if (PyBytes_Check(keyObject)) \
++ key = (char_u *) PyBytes_AsString(keyObject); \
++ else if (PyUnicode_Check(keyObject)) \
++ { \
++ bytes = PyString_AsBytes(keyObject); \
++ if (bytes == NULL) \
++ return err; \
++ key = (char_u *) PyBytes_AsString(bytes); \
++ if (key == NULL) \
++ return err; \
++ } \
++ else \
++ { \
++ PyErr_SetString(PyExc_TypeError, _("only string keys are allowed")); \
++ return err; \
++ }
++ #define DICTKEY_UNREF \
++ if (bytes != NULL) \
++ Py_XDECREF(bytes);
++
++ #define DICTKEY_DECL PyObject *bytes = NULL;
++
+ /*
+ * Include the code shared with if_python.c
+ */
+ #include "if_py_both.h"
+
++ #define PY3OBJ_DELETED(obj) (obj->ob_base.ob_refcnt<=0)
++
+ static void
+ call_PyObject_Free(void *p)
+ {
+***************
+*** 506,511 ****
+--- 601,608 ----
+ static Py_ssize_t RangeStart;
+ static Py_ssize_t RangeEnd;
+
++ static PyObject *globals;
++
+ static int PythonIO_Init(void);
+ static void PythonIO_Fini(void);
+ PyMODINIT_FUNC Py3Init_vim(void);
+***************
+*** 514,521 ****
+ * 1. Python interpreter main program.
+ */
+
+- static int py3initialised = 0;
+-
+ static PyGILState_STATE pygilstate = PyGILState_UNLOCKED;
+
+ void
+--- 611,616 ----
+***************
+*** 593,598 ****
+--- 688,695 ----
+
+ PyImport_AppendInittab("vim", Py3Init_vim);
+
++ globals = PyModule_GetDict(PyImport_AddModule("__main__"));
++
+ /* Remove the element from sys.path that was added because of our
+ * argv[0] value in Py3Init_vim(). Previously we used an empty
+ * string, but dependinding on the OS we then get an empty entry or
+***************
+*** 629,635 ****
+ * External interface
+ */
+ static void
+! DoPy3Command(exarg_T *eap, const char *cmd)
+ {
+ #if defined(MACOS) && !defined(MACOS_X_UNIX)
+ GrafPtr oldPort;
+--- 726,732 ----
+ * External interface
+ */
+ static void
+! DoPy3Command(exarg_T *eap, const char *cmd, typval_T *rettv)
+ {
+ #if defined(MACOS) && !defined(MACOS_X_UNIX)
+ GrafPtr oldPort;
+***************
+*** 649,656 ****
+ if (Python3_Init())
+ goto theend;
+
+! RangeStart = eap->line1;
+! RangeEnd = eap->line2;
+ Python_Release_Vim(); /* leave vim */
+
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+--- 746,761 ----
+ if (Python3_Init())
+ goto theend;
+
+! if (rettv == NULL)
+! {
+! RangeStart = eap->line1;
+! RangeEnd = eap->line2;
+! }
+! else
+! {
+! RangeStart = (PyInt) curwin->w_cursor.lnum;
+! RangeEnd = RangeStart;
+! }
+ Python_Release_Vim(); /* leave vim */
+
+ #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
+***************
+*** 674,680 ****
+ (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+ cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
+ Py_XDECREF(cmdstr);
+! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+ Py_XDECREF(cmdbytes);
+
+ PyGILState_Release(pygilstate);
+--- 779,802 ----
+ (char *)ENC_OPT, CODEC_ERROR_HANDLER);
+ cmdbytes = PyUnicode_AsEncodedString(cmdstr, "utf-8", CODEC_ERROR_HANDLER);
+ Py_XDECREF(cmdstr);
+! if (rettv == NULL)
+! PyRun_SimpleString(PyBytes_AsString(cmdbytes));
+! else
+! {
+! PyObject *r;
+!
+! r = PyRun_String(PyBytes_AsString(cmdbytes), Py_eval_input,
+! globals, globals);
+! if (r == NULL)
+! EMSG(_("E860: Eval did not return a valid python 3 object"));
+! else
+! {
+! if (ConvertFromPyObject(r, rettv) == -1)
+! EMSG(_("E861: Failed to convert returned python 3 object to vim value"));
+! Py_DECREF(r);
+! }
+! PyErr_Clear();
+! }
+ Py_XDECREF(cmdbytes);
+
+ PyGILState_Release(pygilstate);
+***************
+*** 709,717 ****
+ if (!eap->skip)
+ {
+ if (script == NULL)
+! DoPy3Command(eap, (char *)eap->arg);
+ else
+! DoPy3Command(eap, (char *)script);
+ }
+ vim_free(script);
+ }
+--- 831,839 ----
+ if (!eap->skip)
+ {
+ if (script == NULL)
+! DoPy3Command(eap, (char *)eap->arg, NULL);
+ else
+! DoPy3Command(eap, (char *)script, NULL);
+ }
+ vim_free(script);
+ }
+***************
+*** 772,778 ****
+
+
+ /* Execute the file */
+! DoPy3Command(eap, buffer);
+ }
+
+ /******************************************************
+--- 894,900 ----
+
+
+ /* Execute the file */
+! DoPy3Command(eap, buffer, NULL);
+ }
+
+ /******************************************************
+***************
+*** 802,815 ****
+ if (PyUnicode_Check(nameobj))
+ name = _PyUnicode_AsString(nameobj);
+
+! if (val == NULL) {
+ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+ return -1;
+ }
+
+ if (strcmp(name, "softspace") == 0)
+ {
+! if (!PyLong_Check(val)) {
+ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+ return -1;
+ }
+--- 924,939 ----
+ if (PyUnicode_Check(nameobj))
+ name = _PyUnicode_AsString(nameobj);
+
+! if (val == NULL)
+! {
+ PyErr_SetString(PyExc_AttributeError, _("can't delete OutputObject attributes"));
+ return -1;
+ }
+
+ if (strcmp(name, "softspace") == 0)
+ {
+! if (!PyLong_Check(val))
+! {
+ PyErr_SetString(PyExc_TypeError, _("softspace must be an integer"));
+ return -1;
+ }
+***************
+*** 1030,1049 ****
+ static PyObject *
+ BufferSubscript(PyObject *self, PyObject* idx)
+ {
+! if (PyLong_Check(idx)) {
+ long _idx = PyLong_AsLong(idx);
+ return BufferItem(self,_idx);
+! } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+! &step, &slicelen) < 0) {
+ return NULL;
+ }
+ return BufferSlice(self, start, stop);
+! } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+--- 1154,1178 ----
+ static PyObject *
+ BufferSubscript(PyObject *self, PyObject* idx)
+ {
+! if (PyLong_Check(idx))
+! {
+ long _idx = PyLong_AsLong(idx);
+ return BufferItem(self,_idx);
+! } else if (PySlice_Check(idx))
+! {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+! &step, &slicelen) < 0)
+! {
+ return NULL;
+ }
+ return BufferSlice(self, start, stop);
+! }
+! else
+! {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+***************
+*** 1052,1075 ****
+ static Py_ssize_t
+ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
+ {
+! if (PyLong_Check(idx)) {
+ long n = PyLong_AsLong(idx);
+ return RBAsItem((BufferObject *)(self), n, val, 1,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+! } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+! &step, &slicelen) < 0) {
+ return -1;
+ }
+ return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+! } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return -1;
+ }
+--- 1181,1209 ----
+ static Py_ssize_t
+ BufferAsSubscript(PyObject *self, PyObject* idx, PyObject* val)
+ {
+! if (PyLong_Check(idx))
+! {
+ long n = PyLong_AsLong(idx);
+ return RBAsItem((BufferObject *)(self), n, val, 1,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+! } else if (PySlice_Check(idx))
+! {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count+1,
+ &start, &stop,
+! &step, &slicelen) < 0)
+! {
+ return -1;
+ }
+ return RBAsSlice((BufferObject *)(self), start, stop, val, 1,
+ (PyInt)((BufferObject *)(self))->buf->b_ml.ml_line_count,
+ NULL);
+! }
+! else
+! {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return -1;
+ }
+***************
+*** 1142,1161 ****
+ static PyObject *
+ RangeSubscript(PyObject *self, PyObject* idx)
+ {
+! if (PyLong_Check(idx)) {
+ long _idx = PyLong_AsLong(idx);
+ return RangeItem(self,_idx);
+! } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+! &step, &slicelen) < 0) {
+ return NULL;
+ }
+ return RangeSlice(self, start, stop);
+! } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+--- 1276,1300 ----
+ static PyObject *
+ RangeSubscript(PyObject *self, PyObject* idx)
+ {
+! if (PyLong_Check(idx))
+! {
+ long _idx = PyLong_AsLong(idx);
+ return RangeItem(self,_idx);
+! } else if (PySlice_Check(idx))
+! {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+! &step, &slicelen) < 0)
+! {
+ return NULL;
+ }
+ return RangeSlice(self, start, stop);
+! }
+! else
+! {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return NULL;
+ }
+***************
+*** 1164,1183 ****
+ static Py_ssize_t
+ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
+ {
+! if (PyLong_Check(idx)) {
+ long n = PyLong_AsLong(idx);
+ return RangeAsItem(self, n, val);
+! } else if (PySlice_Check(idx)) {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+! &step, &slicelen) < 0) {
+ return -1;
+ }
+ return RangeAsSlice(self, start, stop, val);
+! } else {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return -1;
+ }
+--- 1303,1327 ----
+ static Py_ssize_t
+ RangeAsSubscript(PyObject *self, PyObject *idx, PyObject *val)
+ {
+! if (PyLong_Check(idx))
+! {
+ long n = PyLong_AsLong(idx);
+ return RangeAsItem(self, n, val);
+! } else if (PySlice_Check(idx))
+! {
+ Py_ssize_t start, stop, step, slicelen;
+
+ if (PySlice_GetIndicesEx((PyObject *)idx,
+ ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1,
+ &start, &stop,
+! &step, &slicelen) < 0)
+! {
+ return -1;
+ }
+ return RangeAsSlice(self, start, stop, val);
+! }
+! else
+! {
+ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
+ return -1;
+ }
+***************
+*** 1390,1395 ****
+--- 1534,1680 ----
+ }
+ }
+
++ /* Dictionary object - Definitions
++ */
++
++ static PyInt DictionaryLength(PyObject *);
++
++ static PyMappingMethods DictionaryAsMapping = {
++ /* mp_length */ (lenfunc) DictionaryLength,
++ /* mp_subscript */ (binaryfunc) DictionaryItem,
++ /* mp_ass_subscript */ (objobjargproc) DictionaryAssItem,
++ };
++
++ static PyTypeObject DictionaryType;
++
++ static void
++ DictionaryDestructor(PyObject *self)
++ {
++ DictionaryObject *this = (DictionaryObject *)(self);
++
++ pyll_remove(&this->ref, &lastdict);
++ dict_unref(this->dict);
++
++ Py_TYPE(self)->tp_free((PyObject*)self);
++ }
++
++ /* List object - Definitions
++ */
++
++ static PyInt ListLength(PyObject *);
++ static PyObject *ListItem(PyObject *, Py_ssize_t);
++
++ static PySequenceMethods ListAsSeq = {
++ (lenfunc) ListLength, /* sq_length, len(x) */
++ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */
++ (ssizeargfunc) 0, /* RangeRepeat, sq_repeat, x*n */
++ (ssizeargfunc) ListItem, /* sq_item, x[i] */
++ (void *) 0, /* was_sq_slice, x[i:j] */
++ (ssizeobjargproc) ListAssItem, /* sq_as_item, x[i]=v */
++ (void *) 0, /* was_sq_ass_slice, x[i:j]=v */
++ 0, /* sq_contains */
++ (binaryfunc) ListConcatInPlace,/* sq_inplace_concat */
++ 0, /* sq_inplace_repeat */
++ };
++
++ static PyObject *ListSubscript(PyObject *, PyObject *);
++ static Py_ssize_t ListAsSubscript(PyObject *, PyObject *, PyObject *);
++
++ static PyMappingMethods ListAsMapping = {
++ /* mp_length */ (lenfunc) ListLength,
++ /* mp_subscript */ (binaryfunc) ListSubscript,
++ /* mp_ass_subscript */ (objobjargproc) ListAsSubscript,
++ };
++
++ static PyTypeObject ListType;
++
++ static PyObject *
++ ListSubscript(PyObject *self, PyObject* idxObject)
++ {
++ if (PyLong_Check(idxObject))
++ {
++ long idx = PyLong_AsLong(idxObject);
++ return ListItem(self, idx);
++ }
++ else if (PySlice_Check(idxObject))
++ {
++ Py_ssize_t start, stop, step, slicelen;
++
++ if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop,
++ &step, &slicelen) < 0)
++ return NULL;
++ return ListSlice(self, start, stop);
++ }
++ else
++ {
++ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++ return NULL;
++ }
++ }
++
++ static Py_ssize_t
++ ListAsSubscript(PyObject *self, PyObject *idxObject, PyObject *obj)
++ {
++ if (PyLong_Check(idxObject))
++ {
++ long idx = PyLong_AsLong(idxObject);
++ return ListAssItem(self, idx, obj);
++ }
++ else if (PySlice_Check(idxObject))
++ {
++ Py_ssize_t start, stop, step, slicelen;
++
++ if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop,
++ &step, &slicelen) < 0)
++ return -1;
++ return ListAssSlice(self, start, stop, obj);
++ }
++ else
++ {
++ PyErr_SetString(PyExc_IndexError, "Index must be int or slice");
++ return -1;
++ }
++ }
++
++ static void
++ ListDestructor(PyObject *self)
++ {
++ ListObject *this = (ListObject *)(self);
++
++ pyll_remove(&this->ref, &lastlist);
++ list_unref(this->list);
++
++ Py_TYPE(self)->tp_free((PyObject*)self);
++ }
++
++ /* Function object - Definitions
++ */
++
++ static void
++ FunctionDestructor(PyObject *self)
++ {
++ FunctionObject *this = (FunctionObject *) (self);
++
++ func_unref(this->name);
++ PyMem_Del(this->name);
++
++ Py_TYPE(self)->tp_free((PyObject*)self);
++ }
++
++ static PyObject *
++ FunctionGetattro(PyObject *self, PyObject *nameobj)
++ {
++ FunctionObject *this = (FunctionObject *)(self);
++ char *name = "";
++ if (PyUnicode_Check(nameobj))
++ name = _PyUnicode_AsString(nameobj);
++
++ if (strcmp(name, "name") == 0)
++ return PyUnicode_FromString((char *)(this->name));
++
++ return PyObject_GenericGetAttr(self, nameobj);
++ }
++
+ /* External interface
+ */
+
+***************
+*** 1449,1454 ****
+--- 1734,1742 ----
+ PyType_Ready(&BufListType);
+ PyType_Ready(&WinListType);
+ PyType_Ready(&CurrentType);
++ PyType_Ready(&DictionaryType);
++ PyType_Ready(&ListType);
++ PyType_Ready(&FunctionType);
+
+ /* Set sys.argv[] to avoid a crash in warn(). */
+ PySys_SetArgv(1, argv);
+***************
+*** 1517,1522 ****
+--- 1805,1828 ----
+ return result;
+ }
+
++ void
++ do_py3eval (char_u *str, typval_T *rettv)
++ {
++ DoPy3Command(NULL, (char *) str, rettv);
++ switch(rettv->v_type)
++ {
++ case VAR_DICT: ++rettv->vval.v_dict->dv_refcount; break;
++ case VAR_LIST: ++rettv->vval.v_list->lv_refcount; break;
++ case VAR_FUNC: func_ref(rettv->vval.v_string); break;
++ }
++ }
++
++ void
++ set_ref_in_python3 (int copyID)
++ {
++ set_ref_in_py(copyID);
++ }
++
+ static void
+ init_structs(void)
+ {
+***************
+*** 1598,1603 ****
+--- 1904,1938 ----
+ CurrentType.tp_flags = Py_TPFLAGS_DEFAULT;
+ CurrentType.tp_doc = "vim current object";
+
++ vim_memset(&DictionaryType, 0, sizeof(DictionaryType));
++ DictionaryType.tp_name = "vim.dictionary";
++ DictionaryType.tp_basicsize = sizeof(DictionaryObject);
++ DictionaryType.tp_dealloc = DictionaryDestructor;
++ DictionaryType.tp_as_mapping = &DictionaryAsMapping;
++ DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT;
++ DictionaryType.tp_doc = "dictionary pushing modifications to vim structure";
++ DictionaryType.tp_methods = DictionaryMethods;
++
++ vim_memset(&ListType, 0, sizeof(ListType));
++ ListType.tp_name = "vim.list";
++ ListType.tp_dealloc = ListDestructor;
++ ListType.tp_basicsize = sizeof(ListObject);
++ ListType.tp_as_sequence = &ListAsSeq;
++ ListType.tp_as_mapping = &ListAsMapping;
++ ListType.tp_flags = Py_TPFLAGS_DEFAULT;
++ ListType.tp_doc = "list pushing modifications to vim structure";
++ ListType.tp_methods = ListMethods;
++
++ vim_memset(&FunctionType, 0, sizeof(FunctionType));
++ FunctionType.tp_name = "vim.list";
++ FunctionType.tp_basicsize = sizeof(FunctionObject);
++ FunctionType.tp_getattro = FunctionGetattro;
++ FunctionType.tp_dealloc = FunctionDestructor;
++ FunctionType.tp_call = FunctionCall;
++ FunctionType.tp_flags = Py_TPFLAGS_DEFAULT;
++ FunctionType.tp_doc = "object that calls vim function";
++ FunctionType.tp_methods = FunctionMethods;
++
+ vim_memset(&vimmodule, 0, sizeof(vimmodule));
+ vimmodule.m_name = "vim";
+ vimmodule.m_doc = vim_module_doc;
+*** ../vim-7.3.568/src/proto/eval.pro 2011-09-14 16:52:02.000000000 +0200
+--- src/proto/eval.pro 2012-06-20 18:20:28.000000000 +0200
+***************
+*** 46,57 ****
+--- 46,66 ----
+ list_T *list_alloc __ARGS((void));
+ void list_unref __ARGS((list_T *l));
+ void list_free __ARGS((list_T *l, int recurse));
++ listitem_T *listitem_alloc __ARGS((void));
++ void listitem_remove __ARGS((list_T *l, listitem_T *item));
+ dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
++ listitem_T *list_find __ARGS((list_T *l, long n));
+ char_u *list_find_str __ARGS((list_T *l, long idx));
++ void list_append __ARGS((list_T *l, listitem_T *item));
+ int list_append_tv __ARGS((list_T *l, typval_T *tv));
+ int list_append_dict __ARGS((list_T *list, dict_T *dict));
+ int list_append_string __ARGS((list_T *l, char_u *str, int len));
++ int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item));
++ void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2));
+ int garbage_collect __ARGS((void));
++ void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID));
++ void set_ref_in_list __ARGS((list_T *l, int copyID));
++ void set_ref_in_item __ARGS((typval_T *tv, int copyID));
+ dict_T *dict_alloc __ARGS((void));
+ void dict_unref __ARGS((dict_T *d));
+ dictitem_T *dictitem_alloc __ARGS((char_u *key));
+***************
+*** 64,69 ****
+--- 73,79 ----
+ long get_dict_number __ARGS((dict_T *d, char_u *key));
+ char_u *get_function_name __ARGS((expand_T *xp, int idx));
+ char_u *get_expr_name __ARGS((expand_T *xp, int idx));
++ int func_call __ARGS((char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv));
+ long do_searchpair __ARGS((char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit));
+ void set_vim_var_nr __ARGS((int idx, long val));
+ long get_vim_var_nr __ARGS((int idx));
+***************
+*** 94,99 ****
+--- 104,111 ----
+ void func_dump_profile __ARGS((FILE *fd));
+ char_u *get_user_func_name __ARGS((expand_T *xp, int idx));
+ void ex_delfunction __ARGS((exarg_T *eap));
++ void func_unref __ARGS((char_u *name));
++ void func_ref __ARGS((char_u *name));
+ void ex_return __ARGS((exarg_T *eap));
+ int do_return __ARGS((exarg_T *eap, int reanimate, int is_cmd, void *rettv));
+ void discard_pending_return __ARGS((void *rettv));
+*** ../vim-7.3.568/src/proto/if_python.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_python.pro 2012-06-20 18:23:06.000000000 +0200
+***************
+*** 6,9 ****
+--- 6,11 ----
+ void ex_pyfile __ARGS((exarg_T *eap));
+ void python_buffer_free __ARGS((buf_T *buf));
+ void python_window_free __ARGS((win_T *win));
++ void do_pyeval __ARGS((char_u *str, typval_T *rettv));
++ void set_ref_in_python __ARGS((int copyID));
+ /* vim: set ft=c : */
+*** ../vim-7.3.568/src/proto/if_python3.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/if_python3.pro 2012-06-20 18:34:26.000000000 +0200
+***************
+*** 6,9 ****
+--- 6,11 ----
+ void ex_py3file __ARGS((exarg_T *eap));
+ void python3_buffer_free __ARGS((buf_T *buf));
+ void python3_window_free __ARGS((win_T *win));
++ void do_py3eval __ARGS((char_u *str, typval_T *rettv));
++ void set_ref_in_python3 __ARGS((int copyID));
+ /* vim: set ft=c : */
+*** ../vim-7.3.568/src/testdir/Make_amiga.mak 2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_amiga.mak 2012-06-20 18:43:05.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,20 ----
+ # test27 can't edit file with "*"
+ # test52 only for Win32
+ # test85 no Lua interface
++ # test86, 87 no Python interface
+
+ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+ test7.out test8.out test9.out \
+*** ../vim-7.3.568/src/testdir/Make_dos.mak 2012-04-13 19:11:16.000000000 +0200
+--- src/testdir/Make_dos.mak 2012-06-20 18:43:45.000000000 +0200
+***************
+*** 30,36 ****
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 30,36 ----
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out test86.out test87.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.568/src/testdir/Make_ming.mak 2012-04-13 19:11:16.000000000 +0200
+--- src/testdir/Make_ming.mak 2012-06-20 18:44:12.000000000 +0200
+***************
+*** 50,56 ****
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 50,56 ----
+ test68.out test69.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out test86.out test87.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.3.568/src/testdir/Make_os2.mak 2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Make_os2.mak 2012-06-20 18:44:32.000000000 +0200
+***************
+*** 14,19 ****
+--- 14,20 ----
+ # test27 can't edit file with "*" in file name
+ # test52 only for Win32
+ # test85 no Lua interface
++ # test86, 87 no Python interface
+
+ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
+ test7.out test8.out test9.out \
+*** ../vim-7.3.568/src/testdir/Makefile 2012-04-05 16:56:38.000000000 +0200
+--- src/testdir/Makefile 2012-06-29 11:56:00.000000000 +0200
+***************
+*** 27,33 ****
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 27,33 ----
+ test69.out test70.out test71.out test72.out test73.out \
+ test74.out test75.out test76.out test77.out test78.out \
+ test79.out test80.out test81.out test82.out test83.out \
+! test84.out test85.out test86.out test87.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.3.568/src/testdir/test86.in 2012-06-20 20:19:31.000000000 +0200
+--- src/testdir/test86.in 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 0 ****
+--- 1,211 ----
++ Tests for various python features. vim: set ft=vim :
++
++ STARTTEST
++ :so small.vim
++ :if !has('python') | e! test.ok | wq! test.out | endif
++ :py import vim
++ :fun Test()
++ :let l = []
++ :py l=vim.bindeval('l')
++ :py f=vim.bindeval('function("strlen")')
++ :" Extending List directly with different types
++ :py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
++ :$put =string(l)
++ :$put =string(l[-1])
++ :try
++ : $put =string(l[-4])
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :" List assignment
++ :py l[0]=0
++ :$put =string(l)
++ :py l[-2]=f
++ :$put =string(l)
++ :"
++ :" Extending Dictionary directly with different types
++ :let d = {}
++ :py d=vim.bindeval('d')
++ :py d['1']='asd'
++ :py d['b']=[1, 2, f]
++ :py d['-1']={'a': 1}
++ :let dkeys = []
++ :py dk=vim.bindeval('dkeys')
++ :py dkeys=d.keys()
++ :py dkeys.sort()
++ :py dk.extend(dkeys)
++ :$put =string(dkeys)
++ :for [key, val] in sort(items(d))
++ : $put =string(key) . ' : ' . string(val)
++ : unlet key val
++ :endfor
++ :"
++ :" removing items with del
++ :py del l[2]
++ :$put =string(l)
++ :let l = range(8)
++ :py l=vim.bindeval('l')
++ :try
++ : py del l[:3]
++ : py del l[1:]
++ :catch
++ : $put =v:exception
++ :endtry
++ :$put =string(l)
++ :"
++ :py del d['-1']
++ :$put =string(d)
++ :"
++ :" removing items out of range: silently skip items that don't exist
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :" The following two ranges delete nothing as they match empty list:
++ :py del l[2:1]
++ :$put =string(l)
++ :py del l[2:2]
++ :$put =string(l)
++ :py del l[2:3]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[2:4]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[2:5]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[2:6]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :" The following two ranges delete nothing as they match empty list:
++ :py del l[-1:2]
++ :$put =string(l)
++ :py del l[-2:2]
++ :$put =string(l)
++ :py del l[-3:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[-4:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[-5:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py del l[-6:2]
++ :$put =string(l)
++ :"
++ :" Slice assignment to a list
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[0:0]=['a']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[1:2]=['b']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[2:4]=['c']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[4:4]=['d']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[-1:2]=['e']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[-10:2]=['f']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :py l[2:-10]=['g']
++ :$put =string(l)
++ :let l = []
++ :py l=vim.bindeval('l')
++ :py l[0:0]=['h']
++ :$put =string(l)
++ :"
++ :" Locked variables
++ :let l = [0, 1, 2, 3]
++ :py l=vim.bindeval('l')
++ :lockvar! l
++ :py l[2]='i'
++ :$put =string(l)
++ :unlockvar! l
++ :"
++ :" Function calls
++ :function New(...)
++ :return ['NewStart']+a:000+['NewEnd']
++ :endfunction
++ :function DictNew(...) dict
++ :return ['DictNewStart']+a:000+['DictNewEnd', self]
++ :endfunction
++ :let l=[function('New'), function('DictNew')]
++ :py l=vim.bindeval('l')
++ :py l.extend(list(l[0](1, 2, 3)))
++ :$put =string(l)
++ :py l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
++ :$put =string(l)
++ :py l.extend([l[0].name])
++ :$put =string(l)
++ :try
++ : py l[1](1, 2, 3)
++ :catch
++ : $put =v:exception[:16]
++ :endtry
++ :delfunction New
++ :try
++ : py l[0](1, 2, 3)
++ :catch
++ : $put =v:exception[:16]
++ :endtry
++ :if has('float')
++ : let l=[0.0]
++ : py l=vim.bindeval('l')
++ : py l.extend([0.0])
++ : $put =string(l)
++ :else
++ : $put ='[0.0, 0.0]'
++ :endif
++ :"
++ :" pyeval()
++ :let l=pyeval('range(3)')
++ :$put =string(l)
++ :let d=pyeval('{"a": "b", "c": 1, "d": ["e"]}')
++ :$put =sort(items(d))
++ :try
++ : let undef=pyeval('undefined_name')
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :try
++ : let vim=pyeval('vim')
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :if has('float')
++ : let f=pyeval('0.0')
++ : $put =string(f)
++ :else
++ : $put ='0.0'
++ :endif
++ :endfun
++ :"
++ :call Test()
++ :"
++ :delfunc Test
++ :call garbagecollect(1)
++ :"
++ :/^start:/,$wq! test.out
++ ENDTEST
++
++ start:
+*** ../vim-7.3.568/src/testdir/test86.ok 2012-06-20 20:19:31.000000000 +0200
+--- src/testdir/test86.ok 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 0 ****
+--- 1,47 ----
++ start:
++ [1, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
++ [1, 2, function('strlen'), {'a': 1}]
++ Vim(put):E684:
++ [0, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
++ [0, function('strlen'), [1, 2, function('strlen'), {'a': 1}]]
++ ['-1', '1', 'b']
++ '-1' : {'a': 1}
++ '1' : 'asd'
++ 'b' : [1, 2, function('strlen')]
++ [0, function('strlen')]
++ [3]
++ {'1': 'asd', 'b': [1, 2, function('strlen')]}
++ [0, 1, 2, 3]
++ [0, 1, 2, 3]
++ [0, 1, 3]
++ [0, 1]
++ [0, 1]
++ [0, 1]
++ [0, 1, 2, 3]
++ [0, 1, 2, 3]
++ [0, 2, 3]
++ [2, 3]
++ [2, 3]
++ [2, 3]
++ ['a', 0, 1, 2, 3]
++ [0, 'b', 2, 3]
++ [0, 1, 'c']
++ [0, 1, 2, 3, 'd']
++ [0, 1, 2, 'e', 3]
++ ['f', 2, 3]
++ [0, 1, 'g', 2, 3]
++ ['h']
++ [0, 1, 2, 3]
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
++ Vim(python):E725:
++ Vim(python):E117:
++ [0.0, 0.0]
++ [0, 1, 2]
++ ['a', 'b']
++ ['c', 1]
++ ['d', ['e']]
++ Vim(let):E858:
++ Vim(let):E859:
++ 0.0
+*** ../vim-7.3.568/src/testdir/test87.in 2012-06-20 20:19:31.000000000 +0200
+--- src/testdir/test87.in 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 0 ****
+--- 1,211 ----
++ Tests for various python features. vim: set ft=vim :
++
++ STARTTEST
++ :so small.vim
++ :if !has('python3') | e! test.ok | wq! test.out | endif
++ :py3 import vim
++ :fun Test()
++ :let l = []
++ :py3 l=vim.bindeval('l')
++ :py3 f=vim.bindeval('function("strlen")')
++ :" Extending List directly with different types
++ :py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
++ :$put =string(l)
++ :$put =string(l[-1])
++ :try
++ : $put =string(l[-4])
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :" List assignment
++ :py3 l[0]=0
++ :$put =string(l)
++ :py3 l[-2]=f
++ :$put =string(l)
++ :"
++ :" Extending Dictionary directly with different types
++ :let d = {}
++ :py3 d=vim.bindeval('d')
++ :py3 d['1']='asd'
++ :py3 d['b']=[1, 2, f]
++ :py3 d['-1']={'a': 1}
++ :let dkeys = []
++ :py3 dk=vim.bindeval('dkeys')
++ :py3 dkeys=d.keys()
++ :py3 dkeys.sort()
++ :py3 dk+=dkeys
++ :$put =string(dkeys)
++ :for [key, val] in sort(items(d))
++ : $put =string(key) . ' : ' . string(val)
++ : unlet key val
++ :endfor
++ :"
++ :" removing items with del
++ :py3 del l[2]
++ :$put =string(l)
++ :let l = range(8)
++ :py3 l=vim.bindeval('l')
++ :try
++ : py3 del l[:3]
++ : py3 del l[1:]
++ :catch
++ : $put =v:exception
++ :endtry
++ :$put =string(l)
++ :"
++ :py3 del d['-1']
++ :$put =string(d)
++ :"
++ :" removing items out of range: silently skip items that don't exist
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :" The following two ranges delete nothing as they match empty list:
++ :py3 del l[2:1]
++ :$put =string(l)
++ :py3 del l[2:2]
++ :$put =string(l)
++ :py3 del l[2:3]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[2:4]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[2:5]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[2:6]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :" The following two ranges delete nothing as they match empty list:
++ :py3 del l[-1:2]
++ :$put =string(l)
++ :py3 del l[-2:2]
++ :$put =string(l)
++ :py3 del l[-3:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[-4:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[-5:2]
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 del l[-6:2]
++ :$put =string(l)
++ :"
++ :" Slice assignment to a list
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[0:0]=['a']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[1:2]=['b']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[2:4]=['c']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[4:4]=['d']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[-1:2]=['e']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[-10:2]=['f']
++ :$put =string(l)
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :py3 l[2:-10]=['g']
++ :$put =string(l)
++ :let l = []
++ :py3 l=vim.bindeval('l')
++ :py3 l[0:0]=['h']
++ :$put =string(l)
++ :"
++ :" Locked variables
++ :let l = [0, 1, 2, 3]
++ :py3 l=vim.bindeval('l')
++ :lockvar! l
++ :py3 l[2]='i'
++ :$put =string(l)
++ :unlockvar! l
++ :"
++ :" Function calls
++ :function New(...)
++ :return ['NewStart']+a:000+['NewEnd']
++ :endfunction
++ :function DictNew(...) dict
++ :return ['DictNewStart']+a:000+['DictNewEnd', self]
++ :endfunction
++ :let l=[function('New'), function('DictNew')]
++ :py3 l=vim.bindeval('l')
++ :py3 l.extend(list(l[0](1, 2, 3)))
++ :$put =string(l)
++ :py3 l.extend(list(l[1](1, 2, 3, self={'a': 'b'})))
++ :$put =string(l)
++ :py3 l+=[l[0].name]
++ :$put =string(l)
++ :try
++ : py3 l[1](1, 2, 3)
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :delfunction New
++ :try
++ : py3 l[0](1, 2, 3)
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :if has('float')
++ : let l=[0.0]
++ : py3 l=vim.bindeval('l')
++ : py3 l.extend([0.0])
++ : $put =string(l)
++ :else
++ : $put ='[0.0, 0.0]'
++ :endif
++ :"
++ :" py3eval()
++ :let l=py3eval('[0, 1, 2]')
++ :$put =string(l)
++ :let d=py3eval('{"a": "b", "c": 1, "d": ["e"]}')
++ :$put =sort(items(d))
++ :try
++ : let undef=py3eval('undefined_name')
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :try
++ : let vim=py3eval('vim')
++ :catch
++ : $put =v:exception[:13]
++ :endtry
++ :if has('float')
++ : let f=py3eval('0.0')
++ : $put =string(f)
++ :else
++ : $put ='0.0'
++ :endif
++ :endfun
++ :"
++ :call Test()
++ :"
++ :delfunc Test
++ :call garbagecollect(1)
++ :"
++ :/^start:/,$wq! test.out
++ ENDTEST
++
++ start:
+*** ../vim-7.3.568/src/testdir/test87.ok 2012-06-20 20:19:31.000000000 +0200
+--- src/testdir/test87.ok 2012-06-20 18:01:02.000000000 +0200
+***************
+*** 0 ****
+--- 1,47 ----
++ start:
++ [1, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
++ [1, 2, function('strlen'), {'a': 1}]
++ Vim(put):E684:
++ [0, 'as''d', [1, 2, function('strlen'), {'a': 1}]]
++ [0, function('strlen'), [1, 2, function('strlen'), {'a': 1}]]
++ ['-1', '1', 'b']
++ '-1' : {'a': 1}
++ '1' : 'asd'
++ 'b' : [1, 2, function('strlen')]
++ [0, function('strlen')]
++ [3]
++ {'1': 'asd', 'b': [1, 2, function('strlen')]}
++ [0, 1, 2, 3]
++ [0, 1, 2, 3]
++ [0, 1, 3]
++ [0, 1]
++ [0, 1]
++ [0, 1]
++ [0, 1, 2, 3]
++ [0, 1, 2, 3]
++ [0, 2, 3]
++ [2, 3]
++ [2, 3]
++ [2, 3]
++ ['a', 0, 1, 2, 3]
++ [0, 'b', 2, 3]
++ [0, 1, 'c']
++ [0, 1, 2, 3, 'd']
++ [0, 1, 2, 'e', 3]
++ ['f', 2, 3]
++ [0, 1, 'g', 2, 3]
++ ['h']
++ [0, 1, 2, 3]
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd']
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}]
++ [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New']
++ Vim(py3):E725:
++ Vim(py3):E117:
++ [0.0, 0.0]
++ [0, 1, 2]
++ ['a', 'b']
++ ['c', 1]
++ ['d', ['e']]
++ Vim(let):E860:
++ Vim(let):E861:
++ 0.0
+*** ../vim-7.3.568/src/version.c 2012-06-29 12:35:40.000000000 +0200
+--- src/version.c 2012-06-29 12:47:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 569,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+69. Yahoo welcomes you with your own start page
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.570 b/source/ap/vim/patches/7.3.570
new file mode 100644
index 000000000..c644194d5
--- /dev/null
+++ b/source/ap/vim/patches/7.3.570
@@ -0,0 +1,145 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.570
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.570
+Problem: ":vimgrep" does not obey 'wildignore'.
+Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
+Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c
+
+
+*** ../vim-7.3.569/src/ex_cmds2.c 2012-06-20 15:48:53.000000000 +0200
+--- src/ex_cmds2.c 2012-06-29 12:43:34.000000000 +0200
+***************
+*** 1850,1871 ****
+ #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
+ /*
+ * Parse a list of arguments (file names), expand them and return in
+! * "fnames[fcountp]".
+ * Return FAIL or OK.
+ */
+ int
+! get_arglist_exp(str, fcountp, fnamesp)
+ char_u *str;
+ int *fcountp;
+ char_u ***fnamesp;
+ {
+ garray_T ga;
+ int i;
+
+ if (get_arglist(&ga, str) == FAIL)
+ return FAIL;
+! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
+! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+ ga_clear(&ga);
+ return i;
+ }
+--- 1850,1877 ----
+ #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
+ /*
+ * Parse a list of arguments (file names), expand them and return in
+! * "fnames[fcountp]". When "wig" is TRUE, removes files matching 'wildignore'.
+ * Return FAIL or OK.
+ */
+ int
+! get_arglist_exp(str, fcountp, fnamesp, wig)
+ char_u *str;
+ int *fcountp;
+ char_u ***fnamesp;
++ int wig;
+ {
+ garray_T ga;
+ int i;
+
+ if (get_arglist(&ga, str) == FAIL)
+ return FAIL;
+! if (wig == TRUE)
+! i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
+! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+! else
+! i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
+! fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+!
+ ga_clear(&ga);
+ return i;
+ }
+*** ../vim-7.3.569/src/proto/ex_cmds2.pro 2011-05-19 18:26:34.000000000 +0200
+--- src/proto/ex_cmds2.pro 2012-06-29 12:43:49.000000000 +0200
+***************
+*** 42,48 ****
+ int check_fname __ARGS((void));
+ int buf_write_all __ARGS((buf_T *buf, int forceit));
+ int get_arglist __ARGS((garray_T *gap, char_u *str));
+! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp));
+ void set_arglist __ARGS((char_u *str));
+ void check_arg_idx __ARGS((win_T *win));
+ void ex_args __ARGS((exarg_T *eap));
+--- 42,48 ----
+ int check_fname __ARGS((void));
+ int buf_write_all __ARGS((buf_T *buf, int forceit));
+ int get_arglist __ARGS((garray_T *gap, char_u *str));
+! int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp, int wig));
+ void set_arglist __ARGS((char_u *str));
+ void check_arg_idx __ARGS((win_T *win));
+ void ex_args __ARGS((exarg_T *eap));
+*** ../vim-7.3.569/src/quickfix.c 2012-06-01 18:34:37.000000000 +0200
+--- src/quickfix.c 2012-06-29 12:43:49.000000000 +0200
+***************
+*** 3189,3195 ****
+ ;
+
+ /* parse the list of arguments */
+! if (get_arglist_exp(p, &fcount, &fnames) == FAIL)
+ goto theend;
+ if (fcount == 0)
+ {
+--- 3189,3195 ----
+ ;
+
+ /* parse the list of arguments */
+! if (get_arglist_exp(p, &fcount, &fnames, TRUE) == FAIL)
+ goto theend;
+ if (fcount == 0)
+ {
+*** ../vim-7.3.569/src/spell.c 2012-06-01 17:49:51.000000000 +0200
+--- src/spell.c 2012-06-29 12:43:49.000000000 +0200
+***************
+*** 8553,8559 ****
+ }
+
+ /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
+! if (get_arglist_exp(arg, &fcount, &fnames) == OK)
+ {
+ mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
+ FreeWild(fcount, fnames);
+--- 8553,8559 ----
+ }
+
+ /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
+! if (get_arglist_exp(arg, &fcount, &fnames, FALSE) == OK)
+ {
+ mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
+ FreeWild(fcount, fnames);
+*** ../vim-7.3.569/src/version.c 2012-06-29 12:54:32.000000000 +0200
+--- src/version.c 2012-06-29 12:56:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 570,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+70. ISDN lines are added to your house on a hourly basis
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.571 b/source/ap/vim/patches/7.3.571
new file mode 100644
index 000000000..ad62ffc2b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.571
@@ -0,0 +1,117 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.571
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.571
+Problem: Duplicated condition.
+Solution: Remove one. (Dominique Pelle)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.570/src/os_win32.c 2012-02-29 13:58:43.000000000 +0100
+--- src/os_win32.c 2012-06-29 13:10:54.000000000 +0200
+***************
+*** 308,314 ****
+ # ifndef GETTEXT_DLL
+ # define GETTEXT_DLL "libintl.dll"
+ # endif
+! /* Dummy funcitons */
+ static char *null_libintl_gettext(const char *);
+ static char *null_libintl_textdomain(const char *);
+ static char *null_libintl_bindtextdomain(const char *, const char *);
+--- 308,314 ----
+ # ifndef GETTEXT_DLL
+ # define GETTEXT_DLL "libintl.dll"
+ # endif
+! /* Dummy functions */
+ static char *null_libintl_gettext(const char *);
+ static char *null_libintl_textdomain(const char *);
+ static char *null_libintl_bindtextdomain(const char *, const char *);
+***************
+*** 1409,1415 ****
+
+
+ /*
+! * mch_inchar(): low-level input funcion.
+ * Get one or more characters from the keyboard or the mouse.
+ * If time == 0, do not wait for characters.
+ * If time == n, wait a short time for characters.
+--- 1409,1415 ----
+
+
+ /*
+! * mch_inchar(): low-level input function.
+ * Get one or more characters from the keyboard or the mouse.
+ * If time == 0, do not wait for characters.
+ * If time == n, wait a short time for characters.
+***************
+*** 3451,3464 ****
+ * to avoid to perform a blocking read */
+ ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
+ NULL, /* optional buffer */
+! 0, /* buffe size */
+ NULL, /* number of read bytes */
+ &availableBytes, /* available bytes total */
+ NULL); /* byteLeft */
+
+ repeatCount = 0;
+ /* We got real data in the pipe, read it */
+! while (ret != 0 && availableBytes > 0 && availableBytes > 0)
+ {
+ repeatCount++;
+ toRead =
+--- 3451,3464 ----
+ * to avoid to perform a blocking read */
+ ret = PeekNamedPipe(g_hChildStd_OUT_Rd, /* pipe to query */
+ NULL, /* optional buffer */
+! 0, /* buffer size */
+ NULL, /* number of read bytes */
+ &availableBytes, /* available bytes total */
+ NULL); /* byteLeft */
+
+ repeatCount = 0;
+ /* We got real data in the pipe, read it */
+! while (ret != 0 && availableBytes > 0)
+ {
+ repeatCount++;
+ toRead =
+***************
+*** 3638,3644 ****
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+
+! // this command can be litigeous, handle inheritence was
+ // deactivated for pending temp file, but, if we deactivate
+ // it, the pipes don't work for some reason.
+ TRUE, /* Inherit handles, first deactivated,
+--- 3638,3644 ----
+ NULL, /* Process security attributes */
+ NULL, /* Thread security attributes */
+
+! // this command can be litigious, handle inheritance was
+ // deactivated for pending temp file, but, if we deactivate
+ // it, the pipes don't work for some reason.
+ TRUE, /* Inherit handles, first deactivated,
+*** ../vim-7.3.570/src/version.c 2012-06-29 12:57:03.000000000 +0200
+--- src/version.c 2012-06-29 13:12:31.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 571,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+71. You wonder how people walk
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.572 b/source/ap/vim/patches/7.3.572
new file mode 100644
index 000000000..14fc127ec
--- /dev/null
+++ b/source/ap/vim/patches/7.3.572
@@ -0,0 +1,59 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.572
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.572
+Problem: Duplicate statement in if and else. (Dominique Pelle)
+Solution: Remove the condition and add a TODO.
+Files: src/gui_xmebw.c
+
+
+*** ../vim-7.3.571/src/gui_xmebw.c 2010-08-15 21:57:29.000000000 +0200
+--- src/gui_xmebw.c 2012-06-29 13:17:15.000000000 +0200
+***************
+*** 375,385 ****
+
+ XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
+
+! if (eb->enhancedbutton.label_location == (int)XmTOP
+! || eb->enhancedbutton.label_location == (int)XmBOTTOM)
+! shift = eb->primitive.shadow_thickness / 2;
+! else
+! shift = eb->primitive.shadow_thickness / 2;
+
+ if (shift < 1)
+ shift = 1;
+--- 375,382 ----
+
+ XGetGeometry(dpy, pix, &root, &x, &y, &width, &height, &border, &depth);
+
+! /* TODO: does the shift depend on label_location somehow? */
+! shift = eb->primitive.shadow_thickness / 2;
+
+ if (shift < 1)
+ shift = 1;
+*** ../vim-7.3.571/src/version.c 2012-06-29 13:13:59.000000000 +0200
+--- src/version.c 2012-06-29 13:18:41.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 572,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+72. Somebody at IRC just mentioned a way to obtain full motion video without
+ a PC using a wireless protocol called NTSC, you wonder how you never
+ heard about it
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.573 b/source/ap/vim/patches/7.3.573
new file mode 100644
index 000000000..7734a76a0
--- /dev/null
+++ b/source/ap/vim/patches/7.3.573
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.573
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.573
+Problem: Using array index before bounds checking.
+Solution: Swap the parts of the condition. (Dominique Pelle)
+Files: src/ops.c
+
+
+*** ../vim-7.3.572/src/ops.c 2012-06-13 17:28:51.000000000 +0200
+--- src/ops.c 2012-06-29 13:27:11.000000000 +0200
+***************
+*** 6458,6464 ****
+ long chars = 0;
+ int is_word = 0;
+
+! for (i = 0; line[i] && i < limit; )
+ {
+ if (is_word)
+ {
+--- 6458,6464 ----
+ long chars = 0;
+ int is_word = 0;
+
+! for (i = 0; i < limit && line[i] != NUL; )
+ {
+ if (is_word)
+ {
+*** ../vim-7.3.572/src/version.c 2012-06-29 13:19:23.000000000 +0200
+--- src/version.c 2012-06-29 13:27:59.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 573,
+ /**/
+
+--
+"Thou shalt not follow the Null Pointer, for at its end Chaos and
+Madness lie."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.574 b/source/ap/vim/patches/7.3.574
new file mode 100644
index 000000000..e23d818f1
--- /dev/null
+++ b/source/ap/vim/patches/7.3.574
@@ -0,0 +1,88 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.574
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.574
+Problem: When pasting a register in the search command line a CTRL-L
+ character is not pasted. (Dominique Pelle)
+Solution: Escape the CTRL-L. (Christian Brabandt)
+Files: src/ex_getln.c
+
+
+*** ../vim-7.3.573/src/ex_getln.c 2012-06-06 12:02:57.000000000 +0200
+--- src/ex_getln.c 2012-06-29 13:39:03.000000000 +0200
+***************
+*** 3133,3139 ****
+ else
+ #endif
+ c = *s++;
+! if (cv == Ctrl_V || c == ESC || c == Ctrl_C || c == CAR || c == NL
+ #ifdef UNIX
+ || c == intr_char
+ #endif
+--- 3133,3140 ----
+ else
+ #endif
+ c = *s++;
+! if (cv == Ctrl_V || c == ESC || c == Ctrl_C
+! || c == CAR || c == NL || c == Ctrl_L
+ #ifdef UNIX
+ || c == intr_char
+ #endif
+***************
+*** 4692,4698 ****
+ if (tab[i].ic)
+ regmatch.rm_ic = TRUE;
+ ret = ExpandGeneric(xp, &regmatch, num_file, file,
+! tab[i].func, tab[i].escaped);
+ break;
+ }
+ }
+--- 4693,4699 ----
+ if (tab[i].ic)
+ regmatch.rm_ic = TRUE;
+ ret = ExpandGeneric(xp, &regmatch, num_file, file,
+! tab[i].func, tab[i].escaped);
+ break;
+ }
+ }
+***************
+*** 5125,5131 ****
+ vim_free(matches);
+ }
+ if (ga.ga_len == 0)
+! return FAIL;
+
+ /* Sort and remove duplicates which can happen when specifying multiple
+ * directories in dirnames. */
+--- 5126,5132 ----
+ vim_free(matches);
+ }
+ if (ga.ga_len == 0)
+! return FAIL;
+
+ /* Sort and remove duplicates which can happen when specifying multiple
+ * directories in dirnames. */
+*** ../vim-7.3.573/src/version.c 2012-06-29 13:34:15.000000000 +0200
+--- src/version.c 2012-06-29 13:38:22.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 574,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+73. You give your dog used motherboards instead of bones
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.575 b/source/ap/vim/patches/7.3.575
new file mode 100644
index 000000000..f5d80d724
--- /dev/null
+++ b/source/ap/vim/patches/7.3.575
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.575
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.575
+Problem: "ygt" tries to yank instead of giving an error. (Daniel Mueller)
+Solution: Check for a pending operator.
+Files: src/normal.c
+
+
+*** ../vim-7.3.574/src/normal.c 2012-06-06 16:12:54.000000000 +0200
+--- src/normal.c 2012-06-29 13:50:26.000000000 +0200
+***************
+*** 8393,8402 ****
+
+ #ifdef FEAT_WINDOWS
+ case 't':
+! goto_tabpage((int)cap->count0);
+ break;
+ case 'T':
+! goto_tabpage(-(int)cap->count1);
+ break;
+ #endif
+
+--- 8393,8404 ----
+
+ #ifdef FEAT_WINDOWS
+ case 't':
+! if (!checkclearop(oap))
+! goto_tabpage((int)cap->count0);
+ break;
+ case 'T':
+! if (!checkclearop(oap))
+! goto_tabpage(-(int)cap->count1);
+ break;
+ #endif
+
+*** ../vim-7.3.574/src/version.c 2012-06-29 13:44:37.000000000 +0200
+--- src/version.c 2012-06-29 13:52:01.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 575,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+74. Your most erotic dreams are about cybersex
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.576 b/source/ap/vim/patches/7.3.576
new file mode 100644
index 000000000..bc226d90c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.576
@@ -0,0 +1,255 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.576
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.576
+Problem: Formatting of lists inside comments is not right yet.
+Solution: Use another solution and add a test. (Tor Perkins)
+Files: src/edit.c, src/misc1.c, src/testdir/test68.in,
+ src/testdir/test69.ok
+
+
+*** ../vim-7.3.575/src/edit.c 2012-06-20 22:55:56.000000000 +0200
+--- src/edit.c 2012-06-29 14:10:36.000000000 +0200
+***************
+*** 6320,6333 ****
+ if (!(flags & INSCHAR_COM_LIST))
+ {
+ /*
+! * This section is for numeric lists w/o comments. If comment
+! * indents are needed with numeric lists (formatoptions=nq),
+! * then the INSCHAR_COM_LIST flag will cause the corresponding
+! * OPENLINE_COM_LIST flag to be passed through to open_line()
+! * (as seen above)...
+ */
+ if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
+! second_indent = get_number_indent(curwin->w_cursor.lnum -1);
+ if (second_indent >= 0)
+ {
+ #ifdef FEAT_VREPLACE
+--- 6320,6334 ----
+ if (!(flags & INSCHAR_COM_LIST))
+ {
+ /*
+! * This section is for auto-wrap of numeric lists. When not
+! * in insert mode (i.e. format_lines()), the INSCHAR_COM_LIST
+! * flag will be set and open_line() will handle it (as seen
+! * above). The code here (and in get_number_indent()) will
+! * recognize comments if needed...
+ */
+ if (second_indent < 0 && has_format_option(FO_Q_NUMBER))
+! second_indent =
+! get_number_indent(curwin->w_cursor.lnum - 1);
+ if (second_indent >= 0)
+ {
+ #ifdef FEAT_VREPLACE
+***************
+*** 6336,6342 ****
+--- 6337,6367 ----
+ FALSE, NUL, TRUE);
+ else
+ #endif
++ #ifdef FEAT_COMMENTS
++ if (leader_len > 0 && second_indent - leader_len > 0)
++ {
++ int i;
++ int padding = second_indent - leader_len;
++
++ /* We started at the first_line of a numbered list
++ * that has a comment. the open_line() function has
++ * inserted the proper comment leader and positioned
++ * the cursor at the end of the split line. Now we
++ * add the additional whitespace needed after the
++ * comment leader for the numbered list. */
++ for (i = 0; i < padding; i++)
++ {
++ ins_str((char_u *)" ");
++ changed_bytes(curwin->w_cursor.lnum, leader_len);
++ }
++ }
++ else
++ {
++ #endif
+ (void)set_indent(second_indent, SIN_CHANGED);
++ #ifdef FEAT_COMMENTS
++ }
++ #endif
+ }
+ }
+ first_line = FALSE;
+*** ../vim-7.3.575/src/misc1.c 2012-06-20 17:56:06.000000000 +0200
+--- src/misc1.c 2012-06-29 14:10:12.000000000 +0200
+***************
+*** 424,491 ****
+ colnr_T col;
+ pos_T pos;
+
+ if (lnum > curbuf->b_ml.ml_line_count)
+ return -1;
+ pos.lnum = 0;
+
+ #ifdef FEAT_COMMENTS
+! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER))
+! {
+! regmatch_T regmatch;
+! int lead_len; /* length of comment leader */
+!
+ lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
+- regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+- if (regmatch.regprog != NULL)
+- {
+- regmatch.rm_ic = FALSE;
+-
+- /* vim_regexec() expects a pointer to a line. This lets us
+- * start matching for the flp beyond any comment leader... */
+- if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
+- {
+- pos.lnum = lnum;
+- pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
+- #ifdef FEAT_VIRTUALEDIT
+- pos.coladd = 0;
+ #endif
+! }
+! }
+! vim_free(regmatch.regprog);
+! }
+! else
+ {
+! /*
+! * What follows is the orig code that is not "comment aware"...
+! *
+! * I'm not sure if regmmatch_T (multi-match) is needed in this case.
+! * It may be true that this section would work properly using the
+! * regmatch_T code above, in which case, these two separate sections
+! * should be consolidated w/ FEAT_COMMENTS making lead_len > 0...
+! */
+! #endif
+! regmmatch_T regmatch;
+
+! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+!
+! if (regmatch.regprog != NULL)
+ {
+! regmatch.rmm_ic = FALSE;
+! regmatch.rmm_maxcol = 0;
+! if (vim_regexec_multi(&regmatch, curwin, curbuf,
+! lnum, (colnr_T)0, NULL))
+! {
+! pos.lnum = regmatch.endpos[0].lnum + lnum;
+! pos.col = regmatch.endpos[0].col;
+ #ifdef FEAT_VIRTUALEDIT
+! pos.coladd = 0;
+ #endif
+- }
+- vim_free(regmatch.regprog);
+ }
+- #ifdef FEAT_COMMENTS
+ }
+! #endif
+
+ if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
+ return -1;
+--- 424,458 ----
+ colnr_T col;
+ pos_T pos;
+
++ regmatch_T regmatch;
++ int lead_len = 0; /* length of comment leader */
++
+ if (lnum > curbuf->b_ml.ml_line_count)
+ return -1;
+ pos.lnum = 0;
+
+ #ifdef FEAT_COMMENTS
+! /* In format_lines() (i.e. not insert mode), fo+=q is needed too... */
+! if ((State & INSERT) || has_format_option(FO_Q_COMS))
+ lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
+ #endif
+! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
+! if (regmatch.regprog != NULL)
+ {
+! regmatch.rm_ic = FALSE;
+
+! /* vim_regexec() expects a pointer to a line. This lets us
+! * start matching for the flp beyond any comment leader... */
+! if (vim_regexec(&regmatch, ml_get(lnum) + lead_len, (colnr_T)0))
+ {
+! pos.lnum = lnum;
+! pos.col = (colnr_T)(*regmatch.endp - ml_get(lnum));
+ #ifdef FEAT_VIRTUALEDIT
+! pos.coladd = 0;
+ #endif
+ }
+ }
+! vim_free(regmatch.regprog);
+
+ if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL)
+ return -1;
+*** ../vim-7.3.575/src/testdir/test68.in 2012-06-13 17:28:51.000000000 +0200
+--- src/testdir/test68.in 2012-06-29 14:27:27.000000000 +0200
+***************
+*** 52,57 ****
+--- 52,68 ----
+
+ STARTTEST
+ /^{/+1
++ :set tw=5 fo=tcn comments=:#
++ A bjA b
++ ENDTEST
++
++ {
++ 1 a
++ # 1 a
++ }
++
++ STARTTEST
++ /^{/+1
+ :set tw=5 fo=qn comments=:#
+ gwap
+ ENDTEST
+***************
+*** 83,88 ****
+--- 94,107 ----
+ }
+
+ STARTTEST
++ /^#/
++ :setl tw=12 fo=tqnc comments=:#
++ A foobar
++ ENDTEST
++
++ # 1 xxxxx
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/^Results/,$wq! test.out
+ ENDTEST
+*** ../vim-7.3.575/src/version.c 2012-06-29 13:56:01.000000000 +0200
+--- src/version.c 2012-06-29 15:03:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 576,
+ /**/
+
+--
+Proof techniques #2: Proof by Oddity.
+ SAMPLE: To prove that horses have an infinite number of legs.
+(1) Horses have an even number of legs.
+(2) They have two legs in back and fore legs in front.
+(3) This makes a total of six legs, which certainly is an odd number of
+ legs for a horse.
+(4) But the only number that is both odd and even is infinity.
+(5) Therefore, horses must have an infinite number of legs.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.577 b/source/ap/vim/patches/7.3.577
new file mode 100644
index 000000000..2929b22d3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.577
@@ -0,0 +1,273 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.577
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.577
+Problem: Size of memory does not fit in 32 bit unsigned.
+Solution: Use Kbyte instead of byte. Call GlobalMemoryStatusEx() instead of
+ GlobalMemoryStatus() when available.
+Files: src/misc2.c, src/option.c, src/os_amiga.c, src/os_msdos.c,
+ src/os_win16.c, src/os_win32.c
+
+
+*** ../vim-7.3.576/src/misc2.c 2012-02-29 13:58:43.000000000 +0100
+--- src/misc2.c 2012-06-29 15:30:54.000000000 +0200
+***************
+*** 815,820 ****
+--- 815,821 ----
+ #else
+ # define KEEP_ROOM (2 * 8192L)
+ #endif
++ #define KEEP_ROOM_KB (KEEP_ROOM / 1024L)
+
+ /*
+ * Note: if unsigned is 16 bits we can only allocate up to 64K with alloc().
+***************
+*** 940,946 ****
+ allocated = 0;
+ # endif
+ /* 3. check for available memory: call mch_avail_mem() */
+! if (mch_avail_mem(TRUE) < KEEP_ROOM && !releasing)
+ {
+ free((char *)p); /* System is low... no go! */
+ p = NULL;
+--- 941,947 ----
+ allocated = 0;
+ # endif
+ /* 3. check for available memory: call mch_avail_mem() */
+! if (mch_avail_mem(TRUE) < KEEP_ROOM_KB && !releasing)
+ {
+ free((char *)p); /* System is low... no go! */
+ p = NULL;
+*** ../vim-7.3.576/src/option.c 2012-03-28 19:58:34.000000000 +0200
+--- src/option.c 2012-06-29 15:31:46.000000000 +0200
+***************
+*** 3154,3160 ****
+ {
+ #ifdef HAVE_AVAIL_MEM
+ /* Use amount of memory available at this moment. */
+! n = (mch_avail_mem(FALSE) >> 11);
+ #else
+ # ifdef HAVE_TOTAL_MEM
+ /* Use amount of memory available to Vim. */
+--- 3154,3160 ----
+ {
+ #ifdef HAVE_AVAIL_MEM
+ /* Use amount of memory available at this moment. */
+! n = (mch_avail_mem(FALSE) >> 1);
+ #else
+ # ifdef HAVE_TOTAL_MEM
+ /* Use amount of memory available to Vim. */
+***************
+*** 6702,6708 ****
+ {
+ for (s = *varp; *s;)
+ {
+! while(*s == ',' || *s == ' ')
+ s++;
+ if (!*s)
+ break;
+--- 6702,6708 ----
+ {
+ for (s = *varp; *s;)
+ {
+! while (*s == ',' || *s == ' ')
+ s++;
+ if (!*s)
+ break;
+***************
+*** 7391,7397 ****
+ new_unnamed |= CLIP_UNNAMED;
+ p += 7;
+ }
+! else if (STRNCMP(p, "unnamedplus", 11) == 0
+ && (p[11] == ',' || p[11] == NUL))
+ {
+ new_unnamed |= CLIP_UNNAMED_PLUS;
+--- 7391,7397 ----
+ new_unnamed |= CLIP_UNNAMED;
+ p += 7;
+ }
+! else if (STRNCMP(p, "unnamedplus", 11) == 0
+ && (p[11] == ',' || p[11] == NUL))
+ {
+ new_unnamed |= CLIP_UNNAMED_PLUS;
+*** ../vim-7.3.576/src/os_amiga.c 2011-10-20 18:24:16.000000000 +0200
+--- src/os_amiga.c 2012-06-29 15:33:59.000000000 +0200
+***************
+*** 191,206 ****
+ }
+
+ /*
+! * Return amount of memory still available.
+ */
+ long_u
+ mch_avail_mem(special)
+ int special;
+ {
+ #ifdef __amigaos4__
+! return (long_u)AvailMem(MEMF_ANY);
+ #else
+! return (long_u)AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY);
+ #endif
+ }
+
+--- 191,206 ----
+ }
+
+ /*
+! * Return amount of memory still available in Kbyte.
+ */
+ long_u
+ mch_avail_mem(special)
+ int special;
+ {
+ #ifdef __amigaos4__
+! return (long_u)AvailMem(MEMF_ANY) >> 10;
+ #else
+! return (long_u)(AvailMem(special ? (long)MEMF_CHIP : (long)MEMF_ANY)) >> 10;
+ #endif
+ }
+
+*** ../vim-7.3.576/src/os_msdos.c 2011-06-19 01:14:22.000000000 +0200
+--- src/os_msdos.c 2012-06-29 15:33:26.000000000 +0200
+***************
+*** 550,564 ****
+ #endif
+
+ /*
+! * Return amount of memory currently available.
+ */
+ long_u
+ mch_avail_mem(int special)
+ {
+ #ifdef DJGPP
+! return _go32_dpmi_remaining_virtual_memory();
+ #else
+! return coreleft();
+ #endif
+ }
+
+--- 550,564 ----
+ #endif
+
+ /*
+! * Return amount of memory currently available in Kbyte.
+ */
+ long_u
+ mch_avail_mem(int special)
+ {
+ #ifdef DJGPP
+! return _go32_dpmi_remaining_virtual_memory() >> 10;
+ #else
+! return coreleft() >> 10;
+ #endif
+ }
+
+*** ../vim-7.3.576/src/os_win16.c 2011-10-20 18:24:16.000000000 +0200
+--- src/os_win16.c 2012-06-29 15:34:18.000000000 +0200
+***************
+*** 379,391 ****
+
+
+ /*
+! * How much memory is available?
+ */
+ long_u
+ mch_avail_mem(
+ int special)
+ {
+! return GetFreeSpace(0);
+ }
+
+
+--- 379,391 ----
+
+
+ /*
+! * How much memory is available in Kbyte?
+ */
+ long_u
+ mch_avail_mem(
+ int special)
+ {
+! return GetFreeSpace(0) >> 10;
+ }
+
+
+*** ../vim-7.3.576/src/os_win32.c 2012-06-29 13:13:59.000000000 +0200
+--- src/os_win32.c 2012-06-29 15:39:52.000000000 +0200
+***************
+*** 4992,5009 ****
+
+
+ /*
+! * How much memory is available?
+ * Return sum of available physical and page file memory.
+ */
+ /*ARGSUSED*/
+ long_u
+ mch_avail_mem(int special)
+ {
+! MEMORYSTATUS ms;
+
+! ms.dwLength = sizeof(MEMORYSTATUS);
+! GlobalMemoryStatus(&ms);
+! return (long_u) (ms.dwAvailPhys + ms.dwAvailPageFile);
+ }
+
+ #ifdef FEAT_MBYTE
+--- 4992,5020 ----
+
+
+ /*
+! * How much memory is available in Kbyte?
+ * Return sum of available physical and page file memory.
+ */
+ /*ARGSUSED*/
+ long_u
+ mch_avail_mem(int special)
+ {
+! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
+! {
+! MEMORYSTATUS ms;
+
+! ms.dwLength = sizeof(MEMORYSTATUS);
+! GlobalMemoryStatus(&ms);
+! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
+! }
+! else
+! {
+! MEMORYSTATUSEX ms;
+!
+! ms.dwLength = sizeof(MEMORYSTATUSEX);
+! GlobalMemoryStatusEx(&ms);
+! return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
+! }
+ }
+
+ #ifdef FEAT_MBYTE
+*** ../vim-7.3.576/src/version.c 2012-06-29 15:04:34.000000000 +0200
+--- src/version.c 2012-06-29 15:45:44.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 577,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+75. You start wondering whether you could actually upgrade your brain
+ with a Pentium Pro microprocessor 80. The upgrade works just fine.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.578 b/source/ap/vim/patches/7.3.578
new file mode 100644
index 000000000..9b0aedd26
--- /dev/null
+++ b/source/ap/vim/patches/7.3.578
@@ -0,0 +1,80 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.578
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.578
+Problem: Misplaced declaration.
+Solution: Move declaration to start of block.
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.577/src/if_py_both.h 2012-06-29 12:54:32.000000000 +0200
+--- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
+***************
+*** 818,838 ****
+
+ if (valObject == NULL)
+ {
+ if (di == NULL)
+ {
+ PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
+ return -1;
+ }
+! hashitem_T *hi = hash_find(&d->dv_hashtab, di->di_key);
+ hash_remove(&d->dv_hashtab, hi);
+ dictitem_free(di);
+ return 0;
+ }
+
+ if (ConvertFromPyObject(valObject, &tv) == -1)
+- {
+ return -1;
+- }
+
+ if (di == NULL)
+ {
+--- 818,838 ----
+
+ if (valObject == NULL)
+ {
++ hashitem_T *hi;
++
+ if (di == NULL)
+ {
+ PyErr_SetString(PyExc_IndexError, _("no such key in dictionary"));
+ return -1;
+ }
+! hi = hash_find(&d->dv_hashtab, di->di_key);
+ hash_remove(&d->dv_hashtab, hi);
+ dictitem_free(di);
+ return 0;
+ }
+
+ if (ConvertFromPyObject(valObject, &tv) == -1)
+ return -1;
+
+ if (di == NULL)
+ {
+*** ../vim-7.3.577/src/version.c 2012-06-29 15:51:26.000000000 +0200
+--- src/version.c 2012-06-29 16:18:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 578,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+77. The phone company asks you to test drive their new PBX system
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.579 b/source/ap/vim/patches/7.3.579
new file mode 100644
index 000000000..ed618fe72
--- /dev/null
+++ b/source/ap/vim/patches/7.3.579
@@ -0,0 +1,232 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.579
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.579 (after 7.3.569)
+Problem: Can't compile with Python 2.5.
+Solution: Use PyCObject when Capsules are not available.
+Files: src/if_py_both.h, src/if_python.c, src/if_python3.c
+
+
+*** ../vim-7.3.578/src/if_py_both.h 2012-06-29 16:19:46.000000000 +0200
+--- src/if_py_both.h 2012-06-29 16:15:29.000000000 +0200
+***************
+*** 56,62 ****
+ /* name, function, calling, documentation */
+ {"write", OutputWrite, 1, ""},
+ {"writelines", OutputWritelines, 1, ""},
+! {"flush", OutputFlush, 1, ""},
+ { NULL, NULL, 0, NULL}
+ };
+
+--- 56,62 ----
+ /* name, function, calling, documentation */
+ {"write", OutputWrite, 1, ""},
+ {"writelines", OutputWritelines, 1, ""},
+! {"flush", OutputFlush, 1, ""},
+ { NULL, NULL, 0, NULL}
+ };
+
+***************
+*** 506,513 ****
+ /* name, function, calling, documentation */
+ {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
+ {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
+! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
+! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
+ { NULL, NULL, 0, NULL }
+ };
+
+--- 506,513 ----
+ /* name, function, calling, documentation */
+ {"command", VimCommand, 1, "Execute a Vim ex-mode command" },
+ {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" },
+! {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"},
+! {"strwidth", VimStrwidth, 1, "Screen string width, counts <Tab> as having width 1"},
+ { NULL, NULL, 0, NULL }
+ };
+
+***************
+*** 2432,2448 ****
+--- 2432,2463 ----
+ convert_dl(PyObject *obj, typval_T *tv,
+ pytotvfunc py_to_tv, PyObject *lookupDict)
+ {
++ # ifdef PY_USE_CAPSULE
+ PyObject *capsule;
++ # else
++ PyCObject *cobject;
++ # endif
+ char hexBuf[sizeof(void *) * 2 + 3];
+
+ sprintf(hexBuf, "%p", obj);
+
++ # ifdef PY_USE_CAPSULE
+ capsule = PyDict_GetItemString(lookupDict, hexBuf);
+ if (capsule == NULL)
++ # else
++ cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
++ if (cobject == NULL)
++ # endif
+ {
++ # ifdef PY_USE_CAPSULE
+ capsule = PyCapsule_New(tv, NULL, NULL);
+ PyDict_SetItemString(lookupDict, hexBuf, capsule);
+ Py_DECREF(capsule);
++ # else
++ cobject = PyCObject_FromVoidPtr(tv, NULL);
++ PyDict_SetItemString(lookupDict, hexBuf, cobject);
++ Py_DECREF(cobject);
++ # endif
+ if (py_to_tv(obj, tv, lookupDict) == -1)
+ {
+ tv->v_type = VAR_UNKNOWN;
+***************
+*** 2458,2464 ****
+ }
+ else
+ {
+! typval_T *v = PyCapsule_GetPointer(capsule, NULL);
+ copy_tv(v, tv);
+ }
+ return 0;
+--- 2473,2485 ----
+ }
+ else
+ {
+! typval_T *v;
+!
+! # ifdef PY_USE_CAPSULE
+! v = PyCapsule_GetPointer(capsule, NULL);
+! # else
+! v = PyCObject_AsVoidPtr(cobject);
+! # endif
+ copy_tv(v, tv);
+ }
+ return 0;
+*** ../vim-7.3.578/src/if_python.c 2012-06-29 12:54:32.000000000 +0200
+--- src/if_python.c 2012-06-29 16:17:44.000000000 +0200
+***************
+*** 71,76 ****
+--- 71,80 ----
+ # define PySequenceMethods Py_ssize_t
+ #endif
+
++ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
++ # define PY_USE_CAPSULE
++ #endif
++
+ #if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000
+ # define PyInt Py_ssize_t
+ # define PyInquiry lenfunc
+***************
+*** 220,227 ****
+ # define PyObject_Malloc dll_PyObject_Malloc
+ # define PyObject_Free dll_PyObject_Free
+ # endif
+! # define PyCapsule_New dll_PyCapsule_New
+! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
+
+ /*
+ * Pointers for dynamic link
+--- 224,236 ----
+ # define PyObject_Malloc dll_PyObject_Malloc
+ # define PyObject_Free dll_PyObject_Free
+ # endif
+! # ifdef PY_USE_CAPSULE
+! # define PyCapsule_New dll_PyCapsule_New
+! # define PyCapsule_GetPointer dll_PyCapsule_GetPointer
+! # else
+! # define PyCObject_FromVoidPtr dll_PyCObject_FromVoidPtr
+! # define PyCObject_AsVoidPtr dll_PyCObject_AsVoidPtr
+! # endif
+
+ /*
+ * Pointers for dynamic link
+***************
+*** 309,316 ****
+--- 318,330 ----
+ static void* (*dll_PyObject_Malloc)(size_t);
+ static void (*dll_PyObject_Free)(void*);
+ # endif
++ # ifdef PY_USE_CAPSULE
+ static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
+ static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
++ # else
++ static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
++ static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
++ # endif
+
+ static HINSTANCE hinstPython = 0; /* Instance of python.dll */
+
+***************
+*** 403,409 ****
+ {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
+ {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
+ {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
+! # if (PY_VERSION_HEX >= 0x02050000) && SIZEOF_SIZE_T != SIZEOF_INT
+ {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
+ # else
+ {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
+--- 417,424 ----
+ {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready},
+ {"Py_BuildValue", (PYTHON_PROC*)&dll_Py_BuildValue},
+ {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod},
+! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \
+! && SIZEOF_SIZE_T != SIZEOF_INT
+ {"Py_InitModule4_64", (PYTHON_PROC*)&dll_Py_InitModule4},
+ # else
+ {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
+***************
+*** 424,431 ****
+--- 439,451 ----
+ {"PyObject_Malloc", (PYTHON_PROC*)&dll_PyObject_Malloc},
+ {"PyObject_Free", (PYTHON_PROC*)&dll_PyObject_Free},
+ # endif
++ # ifdef PY_USE_CAPSULE
+ {"PyCapsule_New", (PYTHON_PROC*)&dll_PyCapsule_New},
+ {"PyCapsule_GetPointer", (PYTHON_PROC*)&dll_PyCapsule_GetPointer},
++ # else
++ {"PyCObject_FromVoidPtr", (PYTHON_PROC*)&dll_PyCObject_FromVoidPtr},
++ {"PyCObject_AsVoidPtr", (PYTHON_PROC*)&dll_PyCObject_AsVoidPtr},
++ # endif
+ {"", NULL},
+ };
+
+*** ../vim-7.3.578/src/if_python3.c 2012-06-29 12:54:32.000000000 +0200
+--- src/if_python3.c 2012-06-29 16:16:54.000000000 +0200
+***************
+*** 75,80 ****
+--- 75,83 ----
+ # define CODEC_ERROR_HANDLER NULL
+ #endif
+
++ /* Python 3 does not support CObjects, always use Capsules */
++ #define PY_USE_CAPSULE
++
+ #define PyInt Py_ssize_t
+ #define PyString_Check(obj) PyUnicode_Check(obj)
+ #define PyString_AsBytes(obj) PyUnicode_AsEncodedString(obj, (char *)ENC_OPT, CODEC_ERROR_HANDLER)
+*** ../vim-7.3.578/src/version.c 2012-06-29 16:19:46.000000000 +0200
+--- src/version.c 2012-06-29 16:21:25.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 579,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+78. You find yourself dialing IP numbers on the phone.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.580 b/source/ap/vim/patches/7.3.580
new file mode 100644
index 000000000..c2c2a5371
--- /dev/null
+++ b/source/ap/vim/patches/7.3.580
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.580
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.580
+Problem: Warning on 64 bit MS-Windows.
+Solution: Add type cast. (Mike Williams)
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.579/src/if_py_both.h 2012-06-29 16:28:23.000000000 +0200
+--- src/if_py_both.h 2012-06-29 17:49:59.000000000 +0200
+***************
+*** 495,501 ****
+ if (!PyArg_ParseTuple(args, "s", &expr))
+ return NULL;
+
+! return PyLong_FromLong(mb_string2cells((char_u *)expr, STRLEN(expr)));
+ }
+
+ /*
+--- 495,501 ----
+ if (!PyArg_ParseTuple(args, "s", &expr))
+ return NULL;
+
+! return PyLong_FromLong(mb_string2cells((char_u *)expr, (int)STRLEN(expr)));
+ }
+
+ /*
+*** ../vim-7.3.579/src/version.c 2012-06-29 16:28:23.000000000 +0200
+--- src/version.c 2012-06-29 17:50:36.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 580,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+79. All of your most erotic dreams have a scrollbar at the right side.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.581 b/source/ap/vim/patches/7.3.581
new file mode 100644
index 000000000..553003039
--- /dev/null
+++ b/source/ap/vim/patches/7.3.581
@@ -0,0 +1,117 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.581
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.581
+Problem: Problems compiling with Python.
+Solution: Pick UCS2 or UCS4 function at runtime. (lilydjwg)
+Files: src/if_python.c
+
+
+*** ../vim-7.3.580/src/if_python.c 2012-06-29 16:28:23.000000000 +0200
+--- src/if_python.c 2012-06-29 19:10:53.000000000 +0200
+***************
+*** 196,202 ****
+ # define PyString_Size dll_PyString_Size
+ # define PyString_Type (*dll_PyString_Type)
+ # define PyUnicode_Type (*dll_PyUnicode_Type)
+! # define PyUnicodeUCS4_AsEncodedString (*dll_PyUnicodeUCS4_AsEncodedString)
+ # define PyFloat_AsDouble dll_PyFloat_AsDouble
+ # define PyFloat_FromDouble dll_PyFloat_FromDouble
+ # define PyFloat_Type (*dll_PyFloat_Type)
+--- 196,203 ----
+ # define PyString_Size dll_PyString_Size
+ # define PyString_Type (*dll_PyString_Type)
+ # define PyUnicode_Type (*dll_PyUnicode_Type)
+! # undef PyUnicode_AsEncodedString
+! # define PyUnicode_AsEncodedString py_PyUnicode_AsEncodedString
+ # define PyFloat_AsDouble dll_PyFloat_AsDouble
+ # define PyFloat_FromDouble dll_PyFloat_FromDouble
+ # define PyFloat_Type (*dll_PyFloat_Type)
+***************
+*** 290,296 ****
+ static PyInt(*dll_PyString_Size)(PyObject *);
+ static PyTypeObject* dll_PyString_Type;
+ static PyTypeObject* dll_PyUnicode_Type;
+! static PyObject *(*PyUnicodeUCS4_AsEncodedString)(PyObject *, char *, char *);
+ static double(*dll_PyFloat_AsDouble)(PyObject *);
+ static PyObject*(*dll_PyFloat_FromDouble)(double);
+ static PyTypeObject* dll_PyFloat_Type;
+--- 291,297 ----
+ static PyInt(*dll_PyString_Size)(PyObject *);
+ static PyTypeObject* dll_PyString_Type;
+ static PyTypeObject* dll_PyUnicode_Type;
+! static PyObject *(*py_PyUnicode_AsEncodedString)(PyObject *, char *, char *);
+ static double(*dll_PyFloat_AsDouble)(PyObject *);
+ static PyObject*(*dll_PyFloat_FromDouble)(double);
+ static PyTypeObject* dll_PyFloat_Type;
+***************
+*** 406,412 ****
+ {"PyString_Size", (PYTHON_PROC*)&dll_PyString_Size},
+ {"PyString_Type", (PYTHON_PROC*)&dll_PyString_Type},
+ {"PyUnicode_Type", (PYTHON_PROC*)&dll_PyUnicode_Type},
+- {"PyUnicodeUCS4_AsEncodedString", (PYTHON_PROC*)&dll_PyUnicodeUCS4_AsEncodedString},
+ {"PyFloat_Type", (PYTHON_PROC*)&dll_PyFloat_Type},
+ {"PyFloat_AsDouble", (PYTHON_PROC*)&dll_PyFloat_AsDouble},
+ {"PyFloat_FromDouble", (PYTHON_PROC*)&dll_PyFloat_FromDouble},
+--- 407,412 ----
+***************
+*** 471,476 ****
+--- 471,477 ----
+ python_runtime_link_init(char *libname, int verbose)
+ {
+ int i;
++ void *ucs_as_encoded_string;
+
+ #if !(defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)) && defined(UNIX) && defined(FEAT_PYTHON3)
+ /* Can't have Python and Python3 loaded at the same time.
+***************
+*** 506,511 ****
+--- 507,531 ----
+ return FAIL;
+ }
+ }
++
++ /* Load unicode functions separately as only the ucs2 or the ucs4 functions
++ * will be present in the library. */
++ ucs_as_encoded_string = symbol_from_dll(hinstPython,
++ "PyUnicodeUCS2_AsEncodedString");
++ if (ucs_as_encoded_string == NULL)
++ ucs_as_encoded_string = symbol_from_dll(hinstPython,
++ "PyUnicodeUCS4_AsEncodedString");
++ if (ucs_as_encoded_string != NULL)
++ py_PyUnicode_AsEncodedString = ucs_as_encoded_string;
++ else
++ {
++ close_dll(hinstPython);
++ hinstPython = 0;
++ if (verbose)
++ EMSG2(_(e_loadfunc), "PyUnicode_UCSX_*");
++ return FAIL;
++ }
++
+ return OK;
+ }
+
+*** ../vim-7.3.580/src/version.c 2012-06-29 17:51:58.000000000 +0200
+--- src/version.c 2012-06-29 19:13:47.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 581,
+ /**/
+
+--
+ASCII stupid question, get a stupid ANSI.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.582 b/source/ap/vim/patches/7.3.582
new file mode 100644
index 000000000..4e118a7df
--- /dev/null
+++ b/source/ap/vim/patches/7.3.582
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.582
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.582 (after 7.3.576)
+Problem: Missing parts of the test OK file.
+Solution: Add the missing parts.
+Files: src/testdir/test68.ok
+
+
+*** ../vim-7.3.581/src/testdir/test68.ok 2012-06-13 17:28:51.000000000 +0200
+--- src/testdir/test68.ok 2012-06-29 15:00:13.000000000 +0200
+***************
+*** 35,40 ****
+--- 35,48 ----
+
+
+ {
++ 1 a
++ b
++ # 1 a
++ # b
++ }
++
++
++ {
+ # 1 a
+ # b
+ }
+***************
+*** 48,50 ****
+--- 56,62 ----
+
+ { 1aa ^^2bb }
+
++
++ # 1 xxxxx
++ # foobar
++
+*** ../vim-7.3.581/src/version.c 2012-06-29 19:14:48.000000000 +0200
+--- src/version.c 2012-06-29 23:57:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 582,
+ /**/
+
+--
+If your nose runs, and your feet smell, you might be upside down.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.583 b/source/ap/vim/patches/7.3.583
new file mode 100644
index 000000000..2ea7f9d26
--- /dev/null
+++ b/source/ap/vim/patches/7.3.583
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.583
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.583
+Problem: PyObject_NextNotImplemented is not defined before Python 2.7.
+ (Danek Duvall)
+Solution: Add #ifdefs.
+Files: src/if_python.c
+
+
+*** ../vim-7.3.582/src/if_python.c 2012-06-29 19:14:48.000000000 +0200
+--- src/if_python.c 2012-06-30 12:59:38.000000000 +0200
+***************
+*** 214,220 ****
+ # define Py_Finalize dll_Py_Finalize
+ # define Py_IsInitialized dll_Py_IsInitialized
+ # define _PyObject_New dll__PyObject_New
+! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
+ # define _Py_NoneStruct (*dll__Py_NoneStruct)
+ # define PyObject_Init dll__PyObject_Init
+ # define PyObject_GetIter dll_PyObject_GetIter
+--- 214,222 ----
+ # define Py_Finalize dll_Py_Finalize
+ # define Py_IsInitialized dll_Py_IsInitialized
+ # define _PyObject_New dll__PyObject_New
+! # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+! # define _PyObject_NextNotImplemented (*dll__PyObject_NextNotImplemented)
+! # endif
+ # define _Py_NoneStruct (*dll__Py_NoneStruct)
+ # define PyObject_Init dll__PyObject_Init
+ # define PyObject_GetIter dll_PyObject_GetIter
+***************
+*** 310,316 ****
+--- 312,320 ----
+ static PyObject*(*dll__PyObject_New)(PyTypeObject *, PyObject *);
+ static PyObject*(*dll__PyObject_Init)(PyObject *, PyTypeObject *);
+ static PyObject* (*dll_PyObject_GetIter)(PyObject *);
++ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ static iternextfunc dll__PyObject_NextNotImplemented;
++ # endif
+ static PyObject* dll__Py_NoneStruct;
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
+ static int (*dll_PyType_IsSubtype)(PyTypeObject *, PyTypeObject *);
+***************
+*** 430,436 ****
+--- 434,442 ----
+ {"_PyObject_New", (PYTHON_PROC*)&dll__PyObject_New},
+ {"PyObject_Init", (PYTHON_PROC*)&dll__PyObject_Init},
+ {"PyObject_GetIter", (PYTHON_PROC*)&dll_PyObject_GetIter},
++ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02070000
+ {"_PyObject_NextNotImplemented", (PYTHON_PROC*)&dll__PyObject_NextNotImplemented},
++ # endif
+ {"_Py_NoneStruct", (PYTHON_PROC*)&dll__Py_NoneStruct},
+ # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02020000
+ {"PyType_IsSubtype", (PYTHON_PROC*)&dll_PyType_IsSubtype},
+*** ../vim-7.3.582/src/version.c 2012-06-29 23:57:50.000000000 +0200
+--- src/version.c 2012-06-30 13:20:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 583,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+90. Instead of calling you to dinner, your spouse sends e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.584 b/source/ap/vim/patches/7.3.584
new file mode 100644
index 000000000..d7f1bdeb4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.584
@@ -0,0 +1,134 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.584
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.584
+Problem: PyCObject is not always defined.
+Solution: Use PyObject instead.
+Files: src/if_py_both.h, src/if_python.c
+
+
+*** ../vim-7.3.583/src/if_py_both.h 2012-06-29 17:51:58.000000000 +0200
+--- src/if_py_both.h 2012-06-30 13:25:24.000000000 +0200
+***************
+*** 2432,2463 ****
+ convert_dl(PyObject *obj, typval_T *tv,
+ pytotvfunc py_to_tv, PyObject *lookupDict)
+ {
+- # ifdef PY_USE_CAPSULE
+ PyObject *capsule;
+- # else
+- PyCObject *cobject;
+- # endif
+ char hexBuf[sizeof(void *) * 2 + 3];
+
+ sprintf(hexBuf, "%p", obj);
+
+ # ifdef PY_USE_CAPSULE
+ capsule = PyDict_GetItemString(lookupDict, hexBuf);
+- if (capsule == NULL)
+ # else
+! cobject = (PyCObject *)PyDict_GetItemString(lookupDict, hexBuf);
+! if (cobject == NULL)
+ # endif
+ {
+ # ifdef PY_USE_CAPSULE
+ capsule = PyCapsule_New(tv, NULL, NULL);
+- PyDict_SetItemString(lookupDict, hexBuf, capsule);
+- Py_DECREF(capsule);
+ # else
+! cobject = PyCObject_FromVoidPtr(tv, NULL);
+! PyDict_SetItemString(lookupDict, hexBuf, cobject);
+! Py_DECREF(cobject);
+ # endif
+ if (py_to_tv(obj, tv, lookupDict) == -1)
+ {
+ tv->v_type = VAR_UNKNOWN;
+--- 2432,2456 ----
+ convert_dl(PyObject *obj, typval_T *tv,
+ pytotvfunc py_to_tv, PyObject *lookupDict)
+ {
+ PyObject *capsule;
+ char hexBuf[sizeof(void *) * 2 + 3];
+
+ sprintf(hexBuf, "%p", obj);
+
+ # ifdef PY_USE_CAPSULE
+ capsule = PyDict_GetItemString(lookupDict, hexBuf);
+ # else
+! capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf);
+ # endif
++ if (capsule == NULL)
+ {
+ # ifdef PY_USE_CAPSULE
+ capsule = PyCapsule_New(tv, NULL, NULL);
+ # else
+! capsule = PyCObject_FromVoidPtr(tv, NULL);
+ # endif
++ PyDict_SetItemString(lookupDict, hexBuf, capsule);
++ Py_DECREF(capsule);
+ if (py_to_tv(obj, tv, lookupDict) == -1)
+ {
+ tv->v_type = VAR_UNKNOWN;
+***************
+*** 2478,2484 ****
+ # ifdef PY_USE_CAPSULE
+ v = PyCapsule_GetPointer(capsule, NULL);
+ # else
+! v = PyCObject_AsVoidPtr(cobject);
+ # endif
+ copy_tv(v, tv);
+ }
+--- 2471,2477 ----
+ # ifdef PY_USE_CAPSULE
+ v = PyCapsule_GetPointer(capsule, NULL);
+ # else
+! v = PyCObject_AsVoidPtr(capsule);
+ # endif
+ copy_tv(v, tv);
+ }
+*** ../vim-7.3.583/src/if_python.c 2012-06-30 13:21:03.000000000 +0200
+--- src/if_python.c 2012-06-30 13:23:22.000000000 +0200
+***************
+*** 327,334 ****
+ static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
+ static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
+ # else
+! static PyCObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
+! static void* (*dll_PyCObject_AsVoidPtr)(PyCObject *);
+ # endif
+
+ static HINSTANCE hinstPython = 0; /* Instance of python.dll */
+--- 327,334 ----
+ static PyObject* (*dll_PyCapsule_New)(void *, char *, PyCapsule_Destructor);
+ static void* (*dll_PyCapsule_GetPointer)(PyObject *, char *);
+ # else
+! static PyObject* (*dll_PyCObject_FromVoidPtr)(void *cobj, void (*destr)(void *));
+! static void* (*dll_PyCObject_AsVoidPtr)(PyObject *);
+ # endif
+
+ static HINSTANCE hinstPython = 0; /* Instance of python.dll */
+*** ../vim-7.3.583/src/version.c 2012-06-30 13:21:03.000000000 +0200
+--- src/version.c 2012-06-30 13:33:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 584,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+91. It's Saturday afternoon in the middle of May and you
+ are on computer.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.585 b/source/ap/vim/patches/7.3.585
new file mode 100644
index 000000000..6509780c7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.585
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.585
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.585
+Problem: Calling changed_bytes() too often.
+Solution: Move changed_bytes() out of a loop. (Tor Perkins)
+Files: src/edit.c
+
+
+*** ../vim-7.3.584/src/edit.c 2012-06-29 15:04:34.000000000 +0200
+--- src/edit.c 2012-07-06 13:29:25.000000000 +0200
+***************
+*** 6350,6359 ****
+ * add the additional whitespace needed after the
+ * comment leader for the numbered list. */
+ for (i = 0; i < padding; i++)
+- {
+ ins_str((char_u *)" ");
+! changed_bytes(curwin->w_cursor.lnum, leader_len);
+! }
+ }
+ else
+ {
+--- 6350,6357 ----
+ * add the additional whitespace needed after the
+ * comment leader for the numbered list. */
+ for (i = 0; i < padding; i++)
+ ins_str((char_u *)" ");
+! changed_bytes(curwin->w_cursor.lnum, leader_len);
+ }
+ else
+ {
+*** ../vim-7.3.584/src/version.c 2012-07-06 13:36:02.000000000 +0200
+--- src/version.c 2012-07-06 13:35:03.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 585,
+ /**/
+
+--
+From "know your smileys":
+ :'-D Laughing so much that they're crying
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.586 b/source/ap/vim/patches/7.3.586
new file mode 100644
index 000000000..889ebd137
--- /dev/null
+++ b/source/ap/vim/patches/7.3.586
@@ -0,0 +1,103 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.586
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.586
+Problem: When compiling with Cygwin or MingW MEMORYSTATUSEX is not defined.
+Solution: Set the default for WINVER to 0x0500.
+Files: src/Make_ming.mak, src/Make_cyg.mak
+
+
+*** ../vim-7.3.585/src/Make_ming.mak 2012-04-20 16:13:21.000000000 +0200
+--- src/Make_ming.mak 2012-06-30 21:23:55.000000000 +0200
+***************
+*** 52,58 ****
+ OLE=no
+ # Set the default $(WINVER) to make it work with pre-Win2k
+ ifndef WINVER
+! WINVER = 0x0400
+ endif
+ # Set to yes to enable Cscope support
+ CSCOPE=yes
+--- 52,58 ----
+ OLE=no
+ # Set the default $(WINVER) to make it work with pre-Win2k
+ ifndef WINVER
+! WINVER = 0x0500
+ endif
+ # Set to yes to enable Cscope support
+ CSCOPE=yes
+*** ../vim-7.3.585/src/Make_cyg.mak 2011-09-30 16:56:00.000000000 +0200
+--- src/Make_cyg.mak 2012-06-30 21:23:42.000000000 +0200
+***************
+*** 1,6 ****
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2010 Nov 03
+ #
+ # Also read INSTALLpc.txt!
+ #
+--- 1,6 ----
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2012 Jun 30
+ #
+ # Also read INSTALLpc.txt!
+ #
+***************
+*** 48,54 ****
+ # -L/lib/w32api to EXTRA_LIBS.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+! # WINVER Lowest Win32 version to support. (0x0400)
+ # CSCOPE no or yes: to include cscope interface support (yes)
+ # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
+ # NETBEANS no or yes: to include netbeans interface support (yes when GUI
+--- 48,54 ----
+ # -L/lib/w32api to EXTRA_LIBS.
+ # POSTSCRIPT no or yes: set to yes for PostScript printing (no)
+ # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG)
+! # WINVER Lowest Win32 version to support. (0x0500)
+ # CSCOPE no or yes: to include cscope interface support (yes)
+ # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED)
+ # NETBEANS no or yes: to include netbeans interface support (yes when GUI
+***************
+*** 85,91 ****
+ endif
+
+ ifndef WINVER
+! WINVER = 0x0400
+ endif
+
+ ifndef CSCOPE
+--- 85,91 ----
+ endif
+
+ ifndef WINVER
+! WINVER = 0x0500
+ endif
+
+ ifndef CSCOPE
+*** ../vim-7.3.585/src/version.c 2012-07-06 13:36:36.000000000 +0200
+--- src/version.c 2012-07-06 13:39:41.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 586,
+ /**/
+
+--
+From "know your smileys":
+ :-& Eating spaghetti
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.587 b/source/ap/vim/patches/7.3.587
new file mode 100644
index 000000000..22252318b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.587
@@ -0,0 +1,84 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.587
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.587
+Problem: Compiler warning for local var shadowing global var.
+Solution: Rename the var and move it to an inner block. (Christian Brabandt)
+Files: src/buffer.c
+
+
+*** ../vim-7.3.586/src/buffer.c 2012-06-20 17:54:34.000000000 +0200
+--- src/buffer.c 2012-07-06 16:19:32.000000000 +0200
+***************
+*** 1363,1371 ****
+ int action;
+ {
+ buf_T *prevbuf;
+- #ifdef FEAT_WINDOWS
+- win_T *prevwin;
+- #endif
+ int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL
+ || action == DOBUF_WIPE);
+
+--- 1363,1368 ----
+***************
+*** 1406,1412 ****
+ #endif
+ {
+ #ifdef FEAT_WINDOWS
+! prevwin = curwin;
+ #endif
+ if (prevbuf == curbuf)
+ u_sync(FALSE);
+--- 1403,1409 ----
+ #endif
+ {
+ #ifdef FEAT_WINDOWS
+! win_T *previouswin = curwin;
+ #endif
+ if (prevbuf == curbuf)
+ u_sync(FALSE);
+***************
+*** 1415,1423 ****
+ && !P_HID(prevbuf)
+ && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ #ifdef FEAT_WINDOWS
+! if (curwin != prevwin && win_valid(prevwin))
+ /* autocommands changed curwin, Grr! */
+! curwin = prevwin;
+ #endif
+ }
+ }
+--- 1412,1420 ----
+ && !P_HID(prevbuf)
+ && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE);
+ #ifdef FEAT_WINDOWS
+! if (curwin != previouswin && win_valid(previouswin))
+ /* autocommands changed curwin, Grr! */
+! curwin = previouswin;
+ #endif
+ }
+ }
+*** ../vim-7.3.586/src/version.c 2012-07-06 13:40:44.000000000 +0200
+--- src/version.c 2012-07-06 16:19:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 587,
+ /**/
+
+--
+There's no place like $(HOME)!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.588 b/source/ap/vim/patches/7.3.588
new file mode 100644
index 000000000..6dfabd073
--- /dev/null
+++ b/source/ap/vim/patches/7.3.588
@@ -0,0 +1,85 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.588
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.588
+Problem: Crash on NULL pointer.
+Solution: Fix the immediate problem by checking for NULL. (Lech Lorens)
+Files: src/window.c
+
+
+*** ../vim-7.3.587/src/window.c 2012-06-13 18:15:13.000000000 +0200
+--- src/window.c 2012-07-06 16:32:59.000000000 +0200
+***************
+*** 2184,2190 ****
+ }
+
+ #ifdef FEAT_AUTOCMD
+! if (win->w_closing || win->w_buffer->b_closing)
+ return; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+--- 2184,2190 ----
+ }
+
+ #ifdef FEAT_AUTOCMD
+! if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
+ return; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+***************
+*** 3723,3729 ****
+ enter_tabpage(tp, old_curbuf, trigger_autocmds)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
+! int trigger_autocmds UNUSED;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+--- 3723,3729 ----
+ enter_tabpage(tp, old_curbuf, trigger_autocmds)
+ tabpage_T *tp;
+ buf_T *old_curbuf UNUSED;
+! int trigger_autocmds UNUSED;
+ {
+ int old_off = tp->tp_firstwin->w_winrow;
+ win_T *next_prevwin = tp->tp_prevwin;
+***************
+*** 3868,3874 ****
+ void
+ goto_tabpage_tp(tp, trigger_autocmds)
+ tabpage_T *tp;
+! int trigger_autocmds;
+ {
+ /* Don't repeat a message in another tab page. */
+ set_keep_msg(NULL, 0);
+--- 3868,3874 ----
+ void
+ goto_tabpage_tp(tp, trigger_autocmds)
+ tabpage_T *tp;
+! int trigger_autocmds;
+ {
+ /* Don't repeat a message in another tab page. */
+ set_keep_msg(NULL, 0);
+*** ../vim-7.3.587/src/version.c 2012-07-06 16:21:58.000000000 +0200
+--- src/version.c 2012-07-06 16:37:47.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 588,
+ /**/
+
+--
+Momento mori, ergo carpe diem
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.589 b/source/ap/vim/patches/7.3.589
new file mode 100644
index 000000000..fdda2b95f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.589
@@ -0,0 +1,69 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.589
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.589
+Problem: Crash when $HOME is not set.
+Solution: Check for a NULL pointer. (Chris Webb)
+Files: src/misc1.c
+
+
+*** ../vim-7.3.588/src/misc1.c 2012-06-29 15:04:34.000000000 +0200
+--- src/misc1.c 2012-07-06 16:44:39.000000000 +0200
+***************
+*** 4496,4503 ****
+ #else
+ homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
+ #endif
+ #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
+! if (vim_strchr(homedir_env, '~') != NULL)
+ {
+ int usedlen = 0;
+ int flen;
+--- 4496,4507 ----
+ #else
+ homedir_env_orig = homedir_env = mch_getenv((char_u *)"HOME");
+ #endif
++ /* Empty is the same as not set. */
++ if (homedir_env != NULL && *homedir_env == NUL)
++ homedir_env = NULL;
++
+ #if defined(FEAT_MODIFY_FNAME) || defined(WIN3264)
+! if (homedir_env != NULL && vim_strchr(homedir_env, '~') != NULL)
+ {
+ int usedlen = 0;
+ int flen;
+***************
+*** 4513,4520 ****
+ }
+ #endif
+
+- if (homedir_env != NULL && *homedir_env == NUL)
+- homedir_env = NULL;
+ if (homedir_env != NULL)
+ envlen = STRLEN(homedir_env);
+
+--- 4517,4522 ----
+*** ../vim-7.3.588/src/version.c 2012-07-06 16:39:43.000000000 +0200
+--- src/version.c 2012-07-06 16:45:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 589,
+ /**/
+
+--
+I AM THANKFUL...
+...for the taxes that I pay because it means that I am employed.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.590 b/source/ap/vim/patches/7.3.590
new file mode 100644
index 000000000..4e524f79b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.590
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.590
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.590
+Problem: The '< and '> marks cannot be set directly.
+Solution: Allow setting '< and '>. (Christian Brabandt)
+Files: src/mark.c
+
+
+*** ../vim-7.3.589/src/mark.c 2011-02-25 15:11:17.000000000 +0100
+--- src/mark.c 2012-07-06 17:47:23.000000000 +0200
+***************
+*** 98,103 ****
+--- 98,116 ----
+ return OK;
+ }
+
++ #ifdef FEAT_VISUAL
++ if (c == '<')
++ {
++ curbuf->b_visual.vi_start = *pos;
++ return OK;
++ }
++ if (c == '>')
++ {
++ curbuf->b_visual.vi_end = *pos;
++ return OK;
++ }
++ #endif
++
+ #ifndef EBCDIC
+ if (c > 'z') /* some islower() and isupper() cannot handle
+ characters above 127 */
+*** ../vim-7.3.589/src/version.c 2012-07-06 16:49:37.000000000 +0200
+--- src/version.c 2012-07-06 17:49:00.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 590,
+ /**/
+
+--
+The primary purpose of the DATA statement is to give names to constants;
+instead of referring to pi as 3.141592653589793 at every appearance, the
+variable PI can be given that value with a DATA statement and used instead
+of the longer form of the constant. This also simplifies modifying the
+program, should the value of pi change.
+ -- FORTRAN manual for Xerox Computers
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.591 b/source/ap/vim/patches/7.3.591
new file mode 100644
index 000000000..180fe6080
--- /dev/null
+++ b/source/ap/vim/patches/7.3.591
@@ -0,0 +1,208 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.591
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.591
+Problem: Can only move to a tab by absolute number.
+Solution: Move a number of tabs to the left or the right. (Lech Lorens)
+Files: runtime/doc/tabpage.txt, src/ex_cmds.h, src/ex_docmd.c,
+ src/testdir/test62.in, src/testdir/test62.ok, src/window.c
+
+
+*** ../vim-7.3.590/runtime/doc/tabpage.txt 2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/tabpage.txt 2012-07-06 18:10:06.000000000 +0200
+***************
+*** 173,182 ****
+--- 173,192 ----
+ REORDERING TAB PAGES:
+
+ :tabm[ove] [N] *:tabm* *:tabmove*
++ :[N]tabm[ove]
+ Move the current tab page to after tab page N. Use zero to
+ make the current tab page the first one. Without N the tab
+ page is made the last one.
+
++ :tabm[ove] +[N]
++ :tabm[ove] -[N]
++ Move the current tab page N places to the right (with +) or to
++ the left (with -).
++
++ Note that although it is possible to move a tab behind the N-th one by using
++ :Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For
++ clarification what +N means in this context see |[range]|.
++
+
+ LOOPING OVER TAB PAGES:
+
+*** ../vim-7.3.590/src/ex_cmds.h 2012-05-18 18:47:11.000000000 +0200
+--- src/ex_cmds.h 2012-07-06 18:10:13.000000000 +0200
+***************
+*** 944,950 ****
+ EX(CMD_tabfirst, "tabfirst", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabmove, "tabmove", ex_tabmove,
+! RANGE|NOTADR|ZEROR|COUNT|TRLBAR|ZEROR),
+ EX(CMD_tablast, "tablast", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabnext, "tabnext", ex_tabnext,
+--- 944,950 ----
+ EX(CMD_tabfirst, "tabfirst", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabmove, "tabmove", ex_tabmove,
+! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR),
+ EX(CMD_tablast, "tablast", ex_tabnext,
+ TRLBAR),
+ EX(CMD_tabnext, "tabnext", ex_tabnext,
+*** ../vim-7.3.590/src/ex_docmd.c 2012-06-06 19:02:40.000000000 +0200
+--- src/ex_docmd.c 2012-07-06 18:16:25.000000000 +0200
+***************
+*** 7478,7484 ****
+ ex_tabmove(eap)
+ exarg_T *eap;
+ {
+! tabpage_move(eap->addr_count == 0 ? 9999 : (int)eap->line2);
+ }
+
+ /*
+--- 7478,7519 ----
+ ex_tabmove(eap)
+ exarg_T *eap;
+ {
+! int tab_number = 9999;
+!
+! if (eap->arg && *eap->arg != NUL)
+! {
+! char_u *p = eap->arg;
+! int relative = 0; /* argument +N/-N means: move N places to the
+! * right/left relative to the current position. */
+!
+! if (*eap->arg == '-')
+! {
+! relative = -1;
+! p = eap->arg + 1;
+! }
+! else if (*eap->arg == '+')
+! {
+! relative = 1;
+! p = eap->arg + 1;
+! }
+! else
+! p = eap->arg;
+!
+! if (p == skipdigits(p))
+! {
+! /* No numbers as argument. */
+! eap->errmsg = e_invarg;
+! return;
+! }
+!
+! tab_number = getdigits(&p);
+! if (relative != 0)
+! tab_number = tab_number * relative + tabpage_index(curtab) - 1;;
+! }
+! else if (eap->addr_count != 0)
+! tab_number = eap->line2;
+!
+! tabpage_move(tab_number);
+ }
+
+ /*
+*** ../vim-7.3.590/src/testdir/test62.in 2012-03-07 22:55:17.000000000 +0100
+--- src/testdir/test62.in 2012-07-06 18:10:13.000000000 +0200
+***************
+*** 93,98 ****
+--- 93,126 ----
+ :endif
+ :"
+ :"
++ :for i in range(9) | tabnew | endfor
++ 1gt
++ Go=tabpagenr() 
++ :tabmove 5
++ i=tabpagenr() 
++ :tabmove -2
++ i=tabpagenr() 
++ :tabmove +4
++ i=tabpagenr() 
++ :tabmove
++ i=tabpagenr() 
++ :tabmove -20
++ i=tabpagenr() 
++ :tabmove +20
++ i=tabpagenr() 
++ :3tabmove
++ i=tabpagenr() 
++ :7tabmove 5
++ i=tabpagenr() 
++ :let a='No error caught.'
++ :try
++ :tabmove foo
++ :catch E474
++ :let a='E474 caught.'
++ :endtry
++ i=a 
++ :"
++ :"
+ :/^Results/,$w! test.out
+ :qa!
+ ENDTEST
+*** ../vim-7.3.590/src/testdir/test62.ok 2012-02-22 19:13:00.000000000 +0100
+--- src/testdir/test62.ok 2012-07-06 18:10:13.000000000 +0200
+***************
+*** 8,10 ****
+--- 8,20 ----
+ tab drop 1: pass
+ tab drop 2: pass
+ tab drop 3: pass
++ 1
++ 6
++ 4
++ 8
++ 10
++ 1
++ 10
++ 4
++ 6
++ E474 caught.
+*** ../vim-7.3.590/src/window.c 2012-07-06 16:39:43.000000000 +0200
+--- src/window.c 2012-07-06 18:10:13.000000000 +0200
+***************
+*** 3929,3935 ****
+ }
+
+ /* Re-insert it at the specified position. */
+! if (n == 0)
+ {
+ curtab->tp_next = first_tabpage;
+ first_tabpage = curtab;
+--- 3929,3935 ----
+ }
+
+ /* Re-insert it at the specified position. */
+! if (n <= 0)
+ {
+ curtab->tp_next = first_tabpage;
+ first_tabpage = curtab;
+*** ../vim-7.3.590/src/version.c 2012-07-06 17:51:24.000000000 +0200
+--- src/version.c 2012-07-06 18:11:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 591,
+ /**/
+
+--
+Bare feet magnetize sharp metal objects so they point upward from the
+floor -- especially in the dark.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.592 b/source/ap/vim/patches/7.3.592
new file mode 100644
index 000000000..be13ef744
--- /dev/null
+++ b/source/ap/vim/patches/7.3.592
@@ -0,0 +1,126 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.592
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.592
+Problem: Vim on GTK does not support g:browsefilter.
+Solution: Add a GtkFileFilter to the file chooser. (Christian Brabandt)
+Files: src/gui_gtk.c
+
+
+*** ../vim-7.3.591/src/gui_gtk.c 2012-06-06 16:14:36.000000000 +0200
+--- src/gui_gtk.c 2012-07-10 13:08:06.000000000 +0200
+***************
+*** 840,846 ****
+ char_u *dflt,
+ char_u *ext UNUSED,
+ char_u *initdir,
+! char_u *filter UNUSED)
+ {
+ #ifdef USE_FILE_CHOOSER
+ GtkWidget *fc;
+--- 840,846 ----
+ char_u *dflt,
+ char_u *ext UNUSED,
+ char_u *initdir,
+! char_u *filter)
+ {
+ #ifdef USE_FILE_CHOOSER
+ GtkWidget *fc;
+***************
+*** 848,853 ****
+--- 848,854 ----
+ char_u dirbuf[MAXPATHL];
+ guint log_handler;
+ const gchar *domain = "Gtk";
++ GtkFileFilter *gfilter;
+
+ title = CONVERT_TO_UTF8(title);
+
+***************
+*** 879,884 ****
+--- 880,924 ----
+ NULL);
+ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc),
+ (const gchar *)dirbuf);
++
++ if (filter != NULL && *filter != NUL)
++ {
++ int i = 0;
++ char_u *patt;
++ char_u *p = filter;
++
++ gfilter = gtk_file_filter_new();
++ patt = alloc(STRLEN(filter));
++ while (p != NULL && *p != NUL)
++ {
++ if (*p == '\n' || *p == ';' || *p == '\t')
++ {
++ STRNCPY(patt, filter, i);
++ patt[i] = '\0';
++ if (*p == '\t')
++ gtk_file_filter_set_name(gfilter, (gchar *)patt);
++ else
++ {
++ gtk_file_filter_add_pattern(gfilter, (gchar *)patt);
++ if (*p == '\n')
++ {
++ gtk_file_chooser_add_filter((GtkFileChooser *)fc,
++ gfilter);
++ if (*(p + 1) != NUL)
++ gfilter = gtk_file_filter_new();
++ }
++ }
++ filter = ++p;
++ i = 0;
++ }
++ else
++ {
++ p++;
++ i++;
++ }
++ }
++ vim_free(patt);
++ }
+ if (saving && dflt != NULL && *dflt != NUL)
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(fc), (char *)dflt);
+
+***************
+*** 1304,1310 ****
+ gtk_widget_show(entry);
+
+ /* Make Enter work like pressing OK. */
+! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
+
+ text = CONVERT_TO_UTF8(textfield);
+ gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
+--- 1344,1350 ----
+ gtk_widget_show(entry);
+
+ /* Make Enter work like pressing OK. */
+! gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE);
+
+ text = CONVERT_TO_UTF8(textfield);
+ gtk_entry_set_text(GTK_ENTRY(entry), (const char *)text);
+*** ../vim-7.3.591/src/version.c 2012-07-06 18:27:34.000000000 +0200
+--- src/version.c 2012-07-10 13:00:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 592,
+ /**/
+
+--
+To be rich is not the end, but only a change of worries.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.593 b/source/ap/vim/patches/7.3.593
new file mode 100644
index 000000000..b8f26748f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.593
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.593
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.593
+Problem: No easy way to decide if b:browsefilter will work.
+Solution: Add the browsefilter feature.
+Files: src/gui_gtk.c, src/eval.c, src/vim.h
+
+
+*** ../vim-7.3.592/src/gui_gtk.c 2012-07-10 13:12:46.000000000 +0200
+--- src/gui_gtk.c 2012-07-10 13:40:38.000000000 +0200
+***************
+*** 779,787 ****
+ /*
+ * Implementation of the file selector related stuff
+ */
+- #if GTK_CHECK_VERSION(2,4,0)
+- # define USE_FILE_CHOOSER
+- #endif
+
+ #ifndef USE_FILE_CHOOSER
+ static void
+--- 779,784 ----
+*** ../vim-7.3.592/src/eval.c 2012-06-29 12:54:32.000000000 +0200
+--- src/eval.c 2012-07-10 13:34:10.000000000 +0200
+***************
+*** 12044,12049 ****
+--- 12044,12054 ----
+ "all_builtin_terms",
+ # endif
+ #endif
++ #if defined(FEAT_BROWSE) && (defined(USE_FILE_CHOOSER) \
++ || defined(FEAT_GUI_W32) \
++ || defined(FEAT_GUI_MOTIF))
++ "browsefilter",
++ #endif
+ #ifdef FEAT_BYTEOFF
+ "byte_offset",
+ #endif
+*** ../vim-7.3.592/src/vim.h 2012-06-13 17:28:51.000000000 +0200
+--- src/vim.h 2012-07-10 13:30:44.000000000 +0200
+***************
+*** 2125,2130 ****
+--- 2125,2136 ----
+ # endif
+ #endif
+
++ #if defined(FEAT_BROWSE) && defined(GTK_CHECK_VERSION)
++ # if GTK_CHECK_VERSION(2,4,0)
++ # define USE_FILE_CHOOSER
++ # endif
++ #endif
++
+ #ifndef FEAT_NETBEANS_INTG
+ # undef NBDEBUG
+ #endif
+*** ../vim-7.3.592/src/version.c 2012-07-10 13:12:46.000000000 +0200
+--- src/version.c 2012-07-10 13:34:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 593,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+102. When filling out your driver's license application, you give
+ your IP address.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.594 b/source/ap/vim/patches/7.3.594
new file mode 100644
index 000000000..3f7d3b261
--- /dev/null
+++ b/source/ap/vim/patches/7.3.594
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.594
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.594
+Problem: The X command server doesn't work perfectly. It sends an empty
+ reply for as-keys requests.
+Solution: Remove duplicate ga_init2(). Do not send a reply for as-keys
+ requests. (Brian Burns)
+Files: src/if_xcmdsrv.c
+
+
+*** ../vim-7.3.593/src/if_xcmdsrv.c 2010-08-15 21:57:27.000000000 +0200
+--- src/if_xcmdsrv.c 2012-07-10 14:15:59.000000000 +0200
+***************
+*** 655,661 ****
+ if (SendInit(dpy) < 0)
+ return NULL;
+ }
+- ga_init2(&ga, 1, 100);
+
+ /*
+ * Read the registry property.
+--- 655,660 ----
+***************
+*** 1198,1206 ****
+ if ((*p == 'c' || *p == 'k') && (p[1] == 0))
+ {
+ Window resWindow;
+! char_u *name, *script, *serial, *end, *res;
+ Bool asKeys = *p == 'k';
+- garray_T reply;
+ char_u *enc;
+
+ /*
+--- 1197,1204 ----
+ if ((*p == 'c' || *p == 'k') && (p[1] == 0))
+ {
+ Window resWindow;
+! char_u *name, *script, *serial, *end;
+ Bool asKeys = *p == 'k';
+ char_u *enc;
+
+ /*
+***************
+*** 1256,1305 ****
+ if (script == NULL || name == NULL)
+ continue;
+
+! /*
+! * Initialize the result property, so that we're ready at any
+! * time if we need to return an error.
+! */
+! if (resWindow != None)
+! {
+! ga_init2(&reply, 1, 100);
+ #ifdef FEAT_MBYTE
+! ga_grow(&reply, 50 + STRLEN(p_enc));
+! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
+ 0, 0, p_enc, 0, serial, 0);
+! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
+ #else
+! ga_grow(&reply, 50);
+! sprintf(reply.ga_data, "%cr%c-s %s%c-r ", 0, 0, serial, 0);
+! reply.ga_len = 10 + STRLEN(serial);
+ #endif
+! }
+! res = NULL;
+! if (serverName != NULL && STRICMP(name, serverName) == 0)
+! {
+! script = serverConvert(enc, script, &tofree);
+! if (asKeys)
+! server_to_input_buf(script);
+! else
+! res = eval_client_expr_to_string(script);
+! vim_free(tofree);
+! }
+! if (resWindow != None)
+! {
+! if (res != NULL)
+! ga_concat(&reply, res);
+! else if (asKeys == 0)
+! {
+! ga_concat(&reply, (char_u *)_(e_invexprmsg));
+! ga_append(&reply, 0);
+! ga_concat(&reply, (char_u *)"-c 1");
+! }
+! ga_append(&reply, NUL);
+! (void)AppendPropCarefully(dpy, resWindow, commProperty,
+! reply.ga_data, reply.ga_len);
+! ga_clear(&reply);
+! }
+! vim_free(res);
+ }
+ else if (*p == 'r' && p[1] == 0)
+ {
+--- 1254,1305 ----
+ if (script == NULL || name == NULL)
+ continue;
+
+! if (serverName != NULL && STRICMP(name, serverName) == 0)
+! {
+! script = serverConvert(enc, script, &tofree);
+! if (asKeys)
+! server_to_input_buf(script);
+! else
+! {
+! char_u *res;
+!
+! res = eval_client_expr_to_string(script);
+! if (resWindow != None)
+! {
+! garray_T reply;
+!
+! /* Initialize the result property. */
+! ga_init2(&reply, 1, 100);
+ #ifdef FEAT_MBYTE
+! ga_grow(&reply, 50 + STRLEN(p_enc));
+! sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ",
+ 0, 0, p_enc, 0, serial, 0);
+! reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial);
+ #else
+! ga_grow(&reply, 50);
+! sprintf(reply.ga_data, "%cr%c-s %s%c-r ",
+! 0, 0, serial, 0);
+! reply.ga_len = 10 + STRLEN(serial);
+ #endif
+!
+! /* Evaluate the expression and return the result. */
+! if (res != NULL)
+! ga_concat(&reply, res);
+! else
+! {
+! ga_concat(&reply, (char_u *)_(e_invexprmsg));
+! ga_append(&reply, 0);
+! ga_concat(&reply, (char_u *)"-c 1");
+! }
+! ga_append(&reply, NUL);
+! (void)AppendPropCarefully(dpy, resWindow, commProperty,
+! reply.ga_data, reply.ga_len);
+! ga_clear(&reply);
+! }
+! vim_free(res);
+! }
+! vim_free(tofree);
+! }
+ }
+ else if (*p == 'r' && p[1] == 0)
+ {
+*** ../vim-7.3.593/src/version.c 2012-07-10 13:41:09.000000000 +0200
+--- src/version.c 2012-07-10 14:17:50.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 594,
+ /**/
+
+--
+A meeting is an event at which the minutes are kept and the hours are lost.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.595 b/source/ap/vim/patches/7.3.595
new file mode 100644
index 000000000..0fc9b522e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.595
@@ -0,0 +1,154 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.595
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.595
+Problem: The X command server responds slowly
+Solution: Change the loop that waits for replies. (Brian Burns)
+Files: src/if_xcmdsrv.c
+
+
+*** ../vim-7.3.594/src/if_xcmdsrv.c 2012-07-10 14:25:00.000000000 +0200
+--- src/if_xcmdsrv.c 2012-07-10 14:44:13.000000000 +0200
+***************
+*** 572,632 ****
+ {
+ time_t start;
+ time_t now;
+- time_t lastChk = 0;
+ XEvent event;
+! XPropertyEvent *e = (XPropertyEvent *)&event;
+! # define SEND_MSEC_POLL 50
+
+ time(&start);
+! while (endCond(endData) == 0)
+ {
+ time(&now);
+ if (seconds >= 0 && (now - start) >= seconds)
+ break;
+! if (now != lastChk)
+! {
+! lastChk = now;
+! if (!WindowValid(dpy, w))
+! break;
+! /*
+! * Sometimes the PropertyChange event doesn't come.
+! * This can be seen in eg: vim -c 'echo remote_expr("gvim", "3+2")'
+! */
+! serverEventProc(dpy, NULL);
+! }
+ if (localLoop)
+ {
+- /* Just look out for the answer without calling back into Vim */
+ #ifndef HAVE_SELECT
+- struct pollfd fds;
+-
+- fds.fd = ConnectionNumber(dpy);
+- fds.events = POLLIN;
+ if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
+ break;
+ #else
+! fd_set fds;
+! struct timeval tv;
+!
+! tv.tv_sec = 0;
+! tv.tv_usec = SEND_MSEC_POLL * 1000;
+! FD_ZERO(&fds);
+! FD_SET(ConnectionNumber(dpy), &fds);
+! if (select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &tv) < 0)
+ break;
+ #endif
+- while (XEventsQueued(dpy, QueuedAfterReading) > 0)
+- {
+- XNextEvent(dpy, &event);
+- if (event.type == PropertyNotify && e->window == commWindow)
+- serverEventProc(dpy, &event);
+- }
+ }
+ else
+ {
+ if (got_int)
+ break;
+! ui_delay((long)SEND_MSEC_POLL, TRUE);
+ ui_breakcheck();
+ }
+ }
+--- 572,626 ----
+ {
+ time_t start;
+ time_t now;
+ XEvent event;
+!
+! #define UI_MSEC_DELAY 50
+! #define SEND_MSEC_POLL 500
+! #ifndef HAVE_SELECT
+! struct pollfd fds;
+!
+! fds.fd = ConnectionNumber(dpy);
+! fds.events = POLLIN;
+! #else
+! fd_set fds;
+! struct timeval tv;
+!
+! tv.tv_sec = 0;
+! tv.tv_usec = SEND_MSEC_POLL * 1000;
+! FD_ZERO(&fds);
+! FD_SET(ConnectionNumber(dpy), &fds);
+! #endif
+
+ time(&start);
+! while (TRUE)
+ {
++ while (XCheckWindowEvent(dpy, commWindow, PropertyChangeMask, &event))
++ serverEventProc(dpy, &event);
++
++ if (endCond(endData) != 0)
++ break;
++ if (!WindowValid(dpy, w))
++ break;
+ time(&now);
+ if (seconds >= 0 && (now - start) >= seconds)
+ break;
+!
+! /* Just look out for the answer without calling back into Vim */
+ if (localLoop)
+ {
+ #ifndef HAVE_SELECT
+ if (poll(&fds, 1, SEND_MSEC_POLL) < 0)
+ break;
+ #else
+! if (select(FD_SETSIZE, &fds, NULL, NULL, &tv) < 0)
+ break;
+ #endif
+ }
+ else
+ {
+ if (got_int)
+ break;
+! ui_delay((long)UI_MSEC_DELAY, TRUE);
+ ui_breakcheck();
+ }
+ }
+*** ../vim-7.3.594/src/version.c 2012-07-10 14:25:00.000000000 +0200
+--- src/version.c 2012-07-10 14:52:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 595,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+104. When people ask about the Presidential Election you ask "Which country?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.596 b/source/ap/vim/patches/7.3.596
new file mode 100644
index 000000000..59513b2b2
--- /dev/null
+++ b/source/ap/vim/patches/7.3.596
@@ -0,0 +1,171 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.596
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.596
+Problem: Can't remove all signs for a file or buffer.
+Solution: Support "*" for the sign id. (Christian Brabandt)
+Files: runtime/doc/sign.txt, src/buffer.c, src/ex_cmds.c,
+ src/proto/buffer.pro
+
+
+*** ../vim-7.3.595/runtime/doc/sign.txt 2010-08-15 21:57:17.000000000 +0200
+--- runtime/doc/sign.txt 2012-07-10 15:05:19.000000000 +0200
+***************
+*** 150,157 ****
+ Remove the previously placed sign {id} from file {fname}.
+ See remark above about {fname} |:sign-fname|.
+
+ :sign unplace {id} buffer={nr}
+! Same, but use buffer {nr}.
+
+ :sign unplace {id}
+ Remove the previously placed sign {id} from all files it
+--- 153,166 ----
+ Remove the previously placed sign {id} from file {fname}.
+ See remark above about {fname} |:sign-fname|.
+
++ :sign unplace * file={fname}
++ Remove all placed signs in file {fname}.
++
+ :sign unplace {id} buffer={nr}
+! Remove the previously placed sign {id} from buffer {nr}.
+!
+! :sign unplace * buffer={nr}
+! Remove all placed signs in buffer {nr}.
+
+ :sign unplace {id}
+ Remove the previously placed sign {id} from all files it
+*** ../vim-7.3.595/src/buffer.c 2012-07-06 16:21:58.000000000 +0200
+--- src/buffer.c 2012-07-10 15:06:05.000000000 +0200
+***************
+*** 57,63 ****
+
+ #if defined(FEAT_SIGNS)
+ static void insert_sign __ARGS((buf_T *buf, signlist_T *prev, signlist_T *next, int id, linenr_T lnum, int typenr));
+- static void buf_delete_signs __ARGS((buf_T *buf));
+ #endif
+
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+--- 57,62 ----
+***************
+*** 5537,5543 ****
+ /*
+ * Delete signs in buffer "buf".
+ */
+! static void
+ buf_delete_signs(buf)
+ buf_T *buf;
+ {
+--- 5536,5542 ----
+ /*
+ * Delete signs in buffer "buf".
+ */
+! void
+ buf_delete_signs(buf)
+ buf_T *buf;
+ {
+*** ../vim-7.3.595/src/ex_cmds.c 2012-05-18 16:24:06.000000000 +0200
+--- src/ex_cmds.c 2012-07-10 15:14:22.000000000 +0200
+***************
+*** 6997,7002 ****
+--- 6997,7012 ----
+ lnum = atoi((char *)arg);
+ arg = skiptowhite(arg);
+ }
++ else if (STRNCMP(arg, "*", 1) == 0 && idx == SIGNCMD_UNPLACE)
++ {
++ if (id != -1)
++ {
++ EMSG(_(e_invarg));
++ return;
++ }
++ id = -2;
++ arg = skiptowhite(arg + 1);
++ }
+ else if (STRNCMP(arg, "name=", 5) == 0)
+ {
+ arg += 5;
+***************
+*** 7033,7039 ****
+ {
+ EMSG2(_("E158: Invalid buffer name: %s"), arg);
+ }
+! else if (id <= 0)
+ {
+ if (lnum >= 0 || sign_name != NULL)
+ EMSG(_(e_invarg));
+--- 7043,7049 ----
+ {
+ EMSG2(_("E158: Invalid buffer name: %s"), arg);
+ }
+! else if (id <= 0 && !(idx == SIGNCMD_UNPLACE && id == -2))
+ {
+ if (lnum >= 0 || sign_name != NULL)
+ EMSG(_(e_invarg));
+***************
+*** 7074,7084 ****
+ }
+ else if (idx == SIGNCMD_UNPLACE)
+ {
+- /* ":sign unplace {id} file={fname}" */
+ if (lnum >= 0 || sign_name != NULL)
+ EMSG(_(e_invarg));
+ else
+ {
+ lnum = buf_delsign(buf, id);
+ update_debug_sign(buf, lnum);
+ }
+--- 7084,7100 ----
+ }
+ else if (idx == SIGNCMD_UNPLACE)
+ {
+ if (lnum >= 0 || sign_name != NULL)
+ EMSG(_(e_invarg));
++ else if (id == -2)
++ {
++ /* ":sign unplace * file={fname}" */
++ redraw_buf_later(buf, NOT_VALID);
++ buf_delete_signs(buf);
++ }
+ else
+ {
++ /* ":sign unplace {id} file={fname}" */
+ lnum = buf_delsign(buf, id);
+ update_debug_sign(buf, lnum);
+ }
+*** ../vim-7.3.595/src/proto/buffer.pro 2012-02-22 14:58:24.000000000 +0100
+--- src/proto/buffer.pro 2012-07-10 15:06:10.000000000 +0200
+***************
+*** 60,65 ****
+--- 60,66 ----
+ int buf_findsign_id __ARGS((buf_T *buf, linenr_T lnum));
+ int buf_findsigntype_id __ARGS((buf_T *buf, linenr_T lnum, int typenr));
+ int buf_signcount __ARGS((buf_T *buf, linenr_T lnum));
++ void buf_delete_signs __ARGS((buf_T *buf));
+ void buf_delete_all_signs __ARGS((void));
+ void sign_list_placed __ARGS((buf_T *rbuf));
+ void sign_mark_adjust __ARGS((linenr_T line1, linenr_T line2, long amount, long amount_after));
+*** ../vim-7.3.595/src/version.c 2012-07-10 14:56:42.000000000 +0200
+--- src/version.c 2012-07-10 15:16:40.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 596,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+105. When someone asks you for your address, you tell them your URL.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.597 b/source/ap/vim/patches/7.3.597
new file mode 100644
index 000000000..2a4f0b3d7
--- /dev/null
+++ b/source/ap/vim/patches/7.3.597
@@ -0,0 +1,720 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.597
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.597
+Problem: 'clipboard' "autoselect" only applies to the * register. (Sergey
+ Vakulenko)
+Solution: Make 'autoselect' work for the + register. (Christian Brabant)
+ Add the "autoselectplus" option in 'clipboard' and the "P" flag in
+ 'guioptions'.
+Files: runtime/doc/options.txt, src/normal.c, src/ops.c, src/screen.c,
+ src/ui.c, src/globals.h, src/proto/ui.pro, src/option.h, src/gui.c
+
+
+*** ../vim-7.3.596/runtime/doc/options.txt 2012-02-20 22:18:23.000000000 +0100
+--- runtime/doc/options.txt 2012-07-10 15:40:35.000000000 +0200
+***************
+*** 1437,1442 ****
+--- 1452,1458 ----
+ This option is a list of comma separated names.
+ These names are recognized:
+
++ *clipboard-unnamed*
+ unnamed When included, Vim will use the clipboard register '*'
+ for all yank, delete, change and put operations which
+ would normally go to the unnamed register. When a
+***************
+*** 1446,1460 ****
+ explicitly accessed using the "* notation. Also see
+ |gui-clipboard|.
+
+ unnamedplus A variant of "unnamed" flag which uses the clipboard
+ register '+' (|quoteplus|) instead of register '*' for
+ all operations except yank. Yank shall copy the text
+ into register '+' and also into '*' when "unnamed" is
+ included.
+! Only available with the |+x11| feature.
+ Availability can be checked with: >
+ if has('unnamedplus')
+ <
+ autoselect Works like the 'a' flag in 'guioptions': If present,
+ then whenever Visual mode is started, or the Visual
+ area extended, Vim tries to become the owner of the
+--- 1462,1478 ----
+ explicitly accessed using the "* notation. Also see
+ |gui-clipboard|.
+
++ *clipboard-unnamedplus*
+ unnamedplus A variant of "unnamed" flag which uses the clipboard
+ register '+' (|quoteplus|) instead of register '*' for
+ all operations except yank. Yank shall copy the text
+ into register '+' and also into '*' when "unnamed" is
+ included.
+! Only available with the |+X11| feature.
+ Availability can be checked with: >
+ if has('unnamedplus')
+ <
++ *clipboard-autoselect*
+ autoselect Works like the 'a' flag in 'guioptions': If present,
+ then whenever Visual mode is started, or the Visual
+ area extended, Vim tries to become the owner of the
+***************
+*** 1466,1474 ****
+--- 1484,1499 ----
+ "autoselect" flag is used.
+ Also applies to the modeless selection.
+
++ *clipboard-autoselectplus*
++ autoselectplus Like "autoselect" but using the + register instead of
++ the * register. Compare to the 'P' flag in
++ 'guioptions'.
++
++ *clipboard-autoselectml*
+ autoselectml Like "autoselect", but for the modeless selection
+ only. Compare to the 'A' flag in 'guioptions'.
+
++ *clipboard-html*
+ html When the clipboard contains HTML, use this when
+ pasting. When putting text on the clipboard, mark it
+ as HTML. This works to copy rendered HTML from
+***************
+*** 1479,1484 ****
+--- 1504,1510 ----
+ Only supported for GTK version 2 and later.
+ Only available with the |+multi_byte| feature.
+
++ *clipboard-exclude*
+ exclude:{pattern}
+ Defines a pattern that is matched against the name of
+ the terminal 'term'. If there is a match, no
+***************
+*** 3547,3552 ****
+--- 3600,3608 ----
+ windowing system's global selection unless explicitly told to
+ by a yank or delete operation for the "* register.
+ The same applies to the modeless selection.
++ *'go-P'*
++ 'P' Like autoselect but using the "+ register instead of the "*
++ register.
+ *'go-A'*
+ 'A' Autoselect for the modeless selection. Like 'a', but only
+ applies to the modeless selection.
+*** ../vim-7.3.596/src/normal.c 2012-06-29 13:56:01.000000000 +0200
+--- src/normal.c 2012-07-10 15:44:24.000000000 +0200
+***************
+*** 1451,1457 ****
+ * This could call do_pending_operator() recursively, but that's OK
+ * because gui_yank will be TRUE for the nested call.
+ */
+! if (clip_star.available
+ && oap->op_type != OP_NOP
+ && !gui_yank
+ # ifdef FEAT_VISUAL
+--- 1451,1457 ----
+ * This could call do_pending_operator() recursively, but that's OK
+ * because gui_yank will be TRUE for the nested call.
+ */
+! if ((clip_star.available || clip_plus.available)
+ && oap->op_type != OP_NOP
+ && !gui_yank
+ # ifdef FEAT_VISUAL
+*** ../vim-7.3.596/src/ops.c 2012-06-29 13:34:15.000000000 +0200
+--- src/ops.c 2012-07-10 16:20:29.000000000 +0200
+***************
+*** 962,969 ****
+ * selection too. */
+ if (name == '*' && clip_star.available)
+ {
+! if (clip_isautosel())
+! clip_update_selection();
+ may_get_selection(name);
+ }
+ #endif
+--- 962,975 ----
+ * selection too. */
+ if (name == '*' && clip_star.available)
+ {
+! if (clip_isautosel_star())
+! clip_update_selection(&clip_star);
+! may_get_selection(name);
+! }
+! if (name == '+' && clip_plus.available)
+! {
+! if (clip_isautosel_plus())
+! clip_update_selection(&clip_plus);
+ may_get_selection(name);
+ }
+ #endif
+***************
+*** 3190,3196 ****
+
+ clip_own_selection(&clip_plus);
+ clip_gen_set_selection(&clip_plus);
+! if (!clip_isautosel() && !did_star && curr == &(y_regs[PLUS_REGISTER]))
+ {
+ copy_yank_reg(&(y_regs[STAR_REGISTER]));
+ clip_own_selection(&clip_star);
+--- 3196,3203 ----
+
+ clip_own_selection(&clip_plus);
+ clip_gen_set_selection(&clip_plus);
+! if (!clip_isautosel_star() && !did_star
+! && curr == &(y_regs[PLUS_REGISTER]))
+ {
+ copy_yank_reg(&(y_regs[STAR_REGISTER]));
+ clip_own_selection(&clip_star);
+*** ../vim-7.3.596/src/screen.c 2012-06-13 18:06:32.000000000 +0200
+--- src/screen.c 2012-07-10 16:39:01.000000000 +0200
+***************
+*** 519,526 ****
+ # endif
+ # ifdef FEAT_CLIPBOARD
+ /* When Visual area changed, may have to update selection. */
+! if (clip_star.available && clip_isautosel())
+! clip_update_selection();
+ # endif
+ #ifdef FEAT_GUI
+ /* Remove the cursor before starting to do anything, because
+--- 519,528 ----
+ # endif
+ # ifdef FEAT_CLIPBOARD
+ /* When Visual area changed, may have to update selection. */
+! if (clip_star.available && clip_isautosel_star())
+! clip_update_selection(&clip_star);
+! if (clip_plus.available && clip_isautosel_plus())
+! clip_update_selection(&clip_plus);
+ # endif
+ #ifdef FEAT_GUI
+ /* Remove the cursor before starting to do anything, because
+***************
+*** 814,821 ****
+
+ #ifdef FEAT_CLIPBOARD
+ /* When Visual area changed, may have to update selection. */
+! if (clip_star.available && clip_isautosel())
+! clip_update_selection();
+ #endif
+
+ win_update(wp);
+--- 816,825 ----
+
+ #ifdef FEAT_CLIPBOARD
+ /* When Visual area changed, may have to update selection. */
+! if (clip_star.available && clip_isautosel_star())
+! clip_update_selection(&clip_star);
+! if (clip_plus.available && clip_isautosel_plus())
+! clip_update_selection(&clip_plus);
+ #endif
+
+ win_update(wp);
+***************
+*** 3000,3006 ****
+ area_highlighting = TRUE;
+ attr = hl_attr(HLF_V);
+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+! if (clip_star.available && !clip_star.owned && clip_isautosel())
+ attr = hl_attr(HLF_VNC);
+ #endif
+ }
+--- 3004,3013 ----
+ area_highlighting = TRUE;
+ attr = hl_attr(HLF_V);
+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
+! if ((clip_star.available && !clip_star.owned
+! && clip_isautosel_star())
+! || (clip_plus.available && !clip_plus.owned
+! && clip_isautosel_plus()))
+ attr = hl_attr(HLF_VNC);
+ #endif
+ }
+***************
+*** 9060,9066 ****
+ || (wp != NULL && wp->w_width != Columns)
+ # endif
+ )
+! clip_clear_selection();
+ else
+ clip_scroll_selection(-line_count);
+ #endif
+--- 9067,9073 ----
+ || (wp != NULL && wp->w_width != Columns)
+ # endif
+ )
+! clip_clear_selection(&clip_star);
+ else
+ clip_scroll_selection(-line_count);
+ #endif
+***************
+*** 9281,9287 ****
+ || (wp != NULL && wp->w_width != Columns)
+ # endif
+ )
+! clip_clear_selection();
+ else
+ clip_scroll_selection(line_count);
+ #endif
+--- 9288,9294 ----
+ || (wp != NULL && wp->w_width != Columns)
+ # endif
+ )
+! clip_clear_selection(&clip_star);
+ else
+ clip_scroll_selection(line_count);
+ #endif
+*** ../vim-7.3.596/src/ui.c 2012-02-12 01:35:06.000000000 +0100
+--- src/ui.c 2012-07-10 16:43:17.000000000 +0200
+***************
+*** 381,386 ****
+--- 381,388 ----
+
+ #if defined(FEAT_CLIPBOARD) || defined(PROTO)
+
++ static void clip_copy_selection __ARGS((VimClipboard *clip));
++
+ /*
+ * Selection stuff using Visual mode, for cutting and pasting text to other
+ * windows.
+***************
+*** 423,431 ****
+ * this is called whenever VIsual mode is ended.
+ */
+ void
+! clip_update_selection()
+ {
+! pos_T start, end;
+
+ /* If visual mode is only due to a redo command ("."), then ignore it */
+ if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
+--- 425,434 ----
+ * this is called whenever VIsual mode is ended.
+ */
+ void
+! clip_update_selection(clip)
+! VimClipboard *clip;
+ {
+! pos_T start, end;
+
+ /* If visual mode is only due to a redo command ("."), then ignore it */
+ if (!redo_VIsual_busy && VIsual_active && (State & NORMAL))
+***************
+*** 444,460 ****
+ start = curwin->w_cursor;
+ end = VIsual;
+ }
+! if (!equalpos(clip_star.start, start)
+! || !equalpos(clip_star.end, end)
+! || clip_star.vmode != VIsual_mode)
+ {
+! clip_clear_selection();
+! clip_star.start = start;
+! clip_star.end = end;
+! clip_star.vmode = VIsual_mode;
+! clip_free_selection(&clip_star);
+! clip_own_selection(&clip_star);
+! clip_gen_set_selection(&clip_star);
+ }
+ }
+ }
+--- 447,463 ----
+ start = curwin->w_cursor;
+ end = VIsual;
+ }
+! if (!equalpos(clip->start, start)
+! || !equalpos(clip->end, end)
+! || clip->vmode != VIsual_mode)
+ {
+! clip_clear_selection(clip);
+! clip->start = start;
+! clip->end = end;
+! clip->vmode = VIsual_mode;
+! clip_free_selection(clip);
+! clip_own_selection(clip);
+! clip_gen_set_selection(clip);
+ }
+ }
+ }
+***************
+*** 475,481 ****
+ int was_owned = cbd->owned;
+
+ cbd->owned = (clip_gen_own_selection(cbd) == OK);
+! if (!was_owned && cbd == &clip_star)
+ {
+ /* May have to show a different kind of highlighting for the
+ * selected area. There is no specific redraw command for this,
+--- 478,484 ----
+ int was_owned = cbd->owned;
+
+ cbd->owned = (clip_gen_own_selection(cbd) == OK);
+! if (!was_owned && (cbd == &clip_star || cbd == &clip_plus))
+ {
+ /* May have to show a different kind of highlighting for the
+ * selected area. There is no specific redraw command for this,
+***************
+*** 483,489 ****
+ if (cbd->owned
+ && (get_real_state() == VISUAL
+ || get_real_state() == SELECTMODE)
+! && clip_isautosel()
+ && hl_attr(HLF_V) != hl_attr(HLF_VNC))
+ redraw_curbuf_later(INVERTED_ALL);
+ }
+--- 486,493 ----
+ if (cbd->owned
+ && (get_real_state() == VISUAL
+ || get_real_state() == SELECTMODE)
+! && (cbd == &clip_star ? clip_isautosel_star()
+! : clip_isautosel_plus())
+ && hl_attr(HLF_V) != hl_attr(HLF_VNC))
+ redraw_curbuf_later(INVERTED_ALL);
+ }
+***************
+*** 502,513 ****
+ #ifdef FEAT_X11
+ int was_owned = cbd->owned;
+ #endif
+! int visual_selection = (cbd == &clip_star);
+
+ clip_free_selection(cbd);
+ cbd->owned = FALSE;
+ if (visual_selection)
+! clip_clear_selection();
+ clip_gen_lose_selection(cbd);
+ #ifdef FEAT_X11
+ if (visual_selection)
+--- 506,520 ----
+ #ifdef FEAT_X11
+ int was_owned = cbd->owned;
+ #endif
+! int visual_selection = FALSE;
+!
+! if (cbd == &clip_star || cbd == &clip_plus)
+! visual_selection = TRUE;
+
+ clip_free_selection(cbd);
+ cbd->owned = FALSE;
+ if (visual_selection)
+! clip_clear_selection(cbd);
+ clip_gen_lose_selection(cbd);
+ #ifdef FEAT_X11
+ if (visual_selection)
+***************
+*** 518,524 ****
+ if (was_owned
+ && (get_real_state() == VISUAL
+ || get_real_state() == SELECTMODE)
+! && clip_isautosel()
+ && hl_attr(HLF_V) != hl_attr(HLF_VNC))
+ {
+ update_curbuf(INVERTED_ALL);
+--- 525,532 ----
+ if (was_owned
+ && (get_real_state() == VISUAL
+ || get_real_state() == SELECTMODE)
+! && (cbd == &clip_star ?
+! clip_isautosel_star() : clip_isautosel_plus())
+ && hl_attr(HLF_V) != hl_attr(HLF_VNC))
+ {
+ update_curbuf(INVERTED_ALL);
+***************
+*** 534,551 ****
+ #endif
+ }
+
+! void
+! clip_copy_selection()
+! {
+! if (VIsual_active && (State & NORMAL) && clip_star.available)
+! {
+! if (clip_isautosel())
+! clip_update_selection();
+! clip_free_selection(&clip_star);
+! clip_own_selection(&clip_star);
+! if (clip_star.owned)
+! clip_get_selection(&clip_star);
+! clip_gen_set_selection(&clip_star);
+ }
+ }
+
+--- 542,559 ----
+ #endif
+ }
+
+! static void
+! clip_copy_selection(clip)
+! VimClipboard *clip;
+! {
+! if (VIsual_active && (State & NORMAL) && clip->available)
+! {
+! clip_update_selection(clip);
+! clip_free_selection(clip);
+! clip_own_selection(clip);
+! if (clip->owned)
+! clip_get_selection(clip);
+! clip_gen_set_selection(clip);
+ }
+ }
+
+***************
+*** 555,575 ****
+ void
+ clip_auto_select()
+ {
+! if (clip_isautosel())
+! clip_copy_selection();
+ }
+
+ /*
+! * Return TRUE if automatic selection of Visual area is desired.
+ */
+ int
+! clip_isautosel()
+ {
+ return (
+ #ifdef FEAT_GUI
+ gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
+ #endif
+! clip_autoselect);
+ }
+
+
+--- 563,600 ----
+ void
+ clip_auto_select()
+ {
+! if (clip_isautosel_star())
+! clip_copy_selection(&clip_star);
+! if (clip_isautosel_plus())
+! clip_copy_selection(&clip_plus);
+ }
+
+ /*
+! * Return TRUE if automatic selection of Visual area is desired for the *
+! * register.
+ */
+ int
+! clip_isautosel_star()
+ {
+ return (
+ #ifdef FEAT_GUI
+ gui.in_use ? (vim_strchr(p_go, GO_ASEL) != NULL) :
+ #endif
+! clip_autoselect_star);
+! }
+!
+! /*
+! * Return TRUE if automatic selection of Visual area is desired for the +
+! * register.
+! */
+! int
+! clip_isautosel_plus()
+! {
+! return (
+! #ifdef FEAT_GUI
+! gui.in_use ? (vim_strchr(p_go, GO_ASELPLUS) != NULL) :
+! #endif
+! clip_autoselect_plus);
+ }
+
+
+***************
+*** 657,663 ****
+ VimClipboard *cb = &clip_star;
+
+ if (cb->state == SELECT_DONE)
+! clip_clear_selection();
+
+ row = check_row(row);
+ col = check_col(col);
+--- 682,688 ----
+ VimClipboard *cb = &clip_star;
+
+ if (cb->state == SELECT_DONE)
+! clip_clear_selection(cb);
+
+ row = check_row(row);
+ col = check_col(col);
+***************
+*** 749,755 ****
+ printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
+ cb->start.col, cb->end.lnum, cb->end.col);
+ #endif
+! if (clip_isautosel()
+ || (
+ #ifdef FEAT_GUI
+ gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
+--- 774,780 ----
+ printf("Selection ended: (%u,%u) to (%u,%u)\n", cb->start.lnum,
+ cb->start.col, cb->end.lnum, cb->end.col);
+ #endif
+! if (clip_isautosel_star()
+ || (
+ #ifdef FEAT_GUI
+ gui.in_use ? (vim_strchr(p_go, GO_ASELML) != NULL) :
+***************
+*** 932,947 ****
+ * Called from outside to clear selected region from the display
+ */
+ void
+! clip_clear_selection()
+ {
+- VimClipboard *cb = &clip_star;
+
+! if (cb->state == SELECT_CLEARED)
+ return;
+
+! clip_invert_area((int)cb->start.lnum, cb->start.col, (int)cb->end.lnum,
+! cb->end.col, CLIP_CLEAR);
+! cb->state = SELECT_CLEARED;
+ }
+
+ /*
+--- 957,972 ----
+ * Called from outside to clear selected region from the display
+ */
+ void
+! clip_clear_selection(cbd)
+! VimClipboard *cbd;
+ {
+
+! if (cbd->state == SELECT_CLEARED)
+ return;
+
+! clip_invert_area((int)cbd->start.lnum, cbd->start.col, (int)cbd->end.lnum,
+! cbd->end.col, CLIP_CLEAR);
+! cbd->state = SELECT_CLEARED;
+ }
+
+ /*
+***************
+*** 954,960 ****
+ if (clip_star.state == SELECT_DONE
+ && row2 >= clip_star.start.lnum
+ && row1 <= clip_star.end.lnum)
+! clip_clear_selection();
+ }
+
+ /*
+--- 979,985 ----
+ if (clip_star.state == SELECT_DONE
+ && row2 >= clip_star.start.lnum
+ && row1 <= clip_star.end.lnum)
+! clip_clear_selection(&clip_star);
+ }
+
+ /*
+*** ../vim-7.3.596/src/globals.h 2012-06-29 12:35:40.000000000 +0200
+--- src/globals.h 2012-07-10 16:35:13.000000000 +0200
+***************
+*** 517,523 ****
+ # define CLIP_UNNAMED_PLUS 2
+ EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
+
+! EXTERN int clip_autoselect INIT(= FALSE);
+ EXTERN int clip_autoselectml INIT(= FALSE);
+ EXTERN int clip_html INIT(= FALSE);
+ EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
+--- 517,524 ----
+ # define CLIP_UNNAMED_PLUS 2
+ EXTERN int clip_unnamed INIT(= 0); /* above two values or'ed */
+
+! EXTERN int clip_autoselect_star INIT(= FALSE);
+! EXTERN int clip_autoselect_plus INIT(= FALSE);
+ EXTERN int clip_autoselectml INIT(= FALSE);
+ EXTERN int clip_html INIT(= FALSE);
+ EXTERN regprog_T *clip_exclude_prog INIT(= NULL);
+*** ../vim-7.3.596/src/proto/ui.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/ui.pro 2012-07-10 16:37:35.000000000 +0200
+***************
+*** 11,27 ****
+ void ui_new_shellsize __ARGS((void));
+ void ui_breakcheck __ARGS((void));
+ void clip_init __ARGS((int can_use));
+! void clip_update_selection __ARGS((void));
+ void clip_own_selection __ARGS((VimClipboard *cbd));
+ void clip_lose_selection __ARGS((VimClipboard *cbd));
+- void clip_copy_selection __ARGS((void));
+ void clip_auto_select __ARGS((void));
+! int clip_isautosel __ARGS((void));
+ void clip_modeless __ARGS((int button, int is_click, int is_drag));
+ void clip_start_selection __ARGS((int col, int row, int repeated_click));
+ void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
+ void clip_may_redraw_selection __ARGS((int row, int col, int len));
+! void clip_clear_selection __ARGS((void));
+ void clip_may_clear_selection __ARGS((int row1, int row2));
+ void clip_scroll_selection __ARGS((int rows));
+ void clip_copy_modeless_selection __ARGS((int both));
+--- 11,27 ----
+ void ui_new_shellsize __ARGS((void));
+ void ui_breakcheck __ARGS((void));
+ void clip_init __ARGS((int can_use));
+! void clip_update_selection __ARGS((VimClipboard *clip));
+ void clip_own_selection __ARGS((VimClipboard *cbd));
+ void clip_lose_selection __ARGS((VimClipboard *cbd));
+ void clip_auto_select __ARGS((void));
+! int clip_isautosel_star __ARGS((void));
+! int clip_isautosel_plus __ARGS((void));
+ void clip_modeless __ARGS((int button, int is_click, int is_drag));
+ void clip_start_selection __ARGS((int col, int row, int repeated_click));
+ void clip_process_selection __ARGS((int button, int col, int row, int_u repeated_click));
+ void clip_may_redraw_selection __ARGS((int row, int col, int len));
+! void clip_clear_selection __ARGS((VimClipboard *cbd));
+ void clip_may_clear_selection __ARGS((int row1, int row2));
+ void clip_scroll_selection __ARGS((int rows));
+ void clip_copy_modeless_selection __ARGS((int both));
+*** ../vim-7.3.596/src/option.h 2012-06-06 16:12:54.000000000 +0200
+--- src/option.h 2012-07-10 15:54:32.000000000 +0200
+***************
+*** 229,234 ****
+--- 229,235 ----
+ #define GO_MENUS 'm' /* use menu bar */
+ #define GO_NOSYSMENU 'M' /* don't source system menu */
+ #define GO_POINTER 'p' /* pointer enter/leave callbacks */
++ #define GO_ASELPLUS 'P' /* autoselectPlus */
+ #define GO_RIGHT 'r' /* use right scrollbar */
+ #define GO_VRIGHT 'R' /* right scrollbar with vert split */
+ #define GO_TEAROFF 't' /* add tear-off menu items */
+*** ../vim-7.3.596/src/gui.c 2012-05-27 00:37:45.000000000 +0200
+--- src/gui.c 2012-07-10 16:43:34.000000000 +0200
+***************
+*** 3154,3160 ****
+ }
+
+ if (clip_star.state != SELECT_CLEARED && !did_clip)
+! clip_clear_selection();
+ #endif
+
+ /* Don't put events in the input queue now. */
+--- 3154,3160 ----
+ }
+
+ if (clip_star.state != SELECT_CLEARED && !did_clip)
+! clip_clear_selection(&clip_star);
+ #endif
+
+ /* Don't put events in the input queue now. */
+*** ../vim-7.3.596/src/version.c 2012-07-10 15:18:18.000000000 +0200
+--- src/version.c 2012-07-10 16:32:16.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 597,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+106. When told to "go to your room" you inform your parents that you
+ can't...because you were kicked out and banned.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.598 b/source/ap/vim/patches/7.3.598
new file mode 100644
index 000000000..3a38b4a78
--- /dev/null
+++ b/source/ap/vim/patches/7.3.598
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.598
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.598
+Problem: Cannot act upon end of completion. (Taro Muraoka)
+Solution: Add an autocommand event that is triggered when completion has
+ finished. (Idea by Florian Klein)
+Files: src/edit.c, src/fileio.c, src/vim.h
+
+
+*** ../vim-7.3.597/src/edit.c 2012-07-06 13:36:36.000000000 +0200
+--- src/edit.c 2012-07-10 17:02:37.000000000 +0200
+***************
+*** 3824,3829 ****
+--- 3824,3834 ----
+ if (want_cindent && in_cinkeys(KEY_COMPLETE, ' ', inindent(0)))
+ do_c_expr_indent();
+ #endif
++ #ifdef FEAT_AUTOCMD
++ /* Trigger the CompleteDone event to give scripts a chance to act
++ * upon the completion. */
++ apply_autocmds(EVENT_COMPLETEDONE, NULL, NULL, FALSE, curbuf);
++ #endif
+ }
+ }
+
+*** ../vim-7.3.597/src/fileio.c 2012-06-13 14:28:16.000000000 +0200
+--- src/fileio.c 2012-07-10 17:05:51.000000000 +0200
+***************
+*** 7643,7648 ****
+--- 7643,7649 ----
+ {"CmdwinEnter", EVENT_CMDWINENTER},
+ {"CmdwinLeave", EVENT_CMDWINLEAVE},
+ {"ColorScheme", EVENT_COLORSCHEME},
++ {"CompleteDone", EVENT_COMPLETEDONE},
+ {"CursorHold", EVENT_CURSORHOLD},
+ {"CursorHoldI", EVENT_CURSORHOLDI},
+ {"CursorMoved", EVENT_CURSORMOVED},
+*** ../vim-7.3.597/src/vim.h 2012-07-10 13:41:09.000000000 +0200
+--- src/vim.h 2012-07-10 17:06:24.000000000 +0200
+***************
+*** 1241,1246 ****
+--- 1241,1247 ----
+ EVENT_CMDWINENTER, /* after entering the cmdline window */
+ EVENT_CMDWINLEAVE, /* before leaving the cmdline window */
+ EVENT_COLORSCHEME, /* after loading a colorscheme */
++ EVENT_COMPLETEDONE, /* after finishing insert complete */
+ EVENT_FILEAPPENDPOST, /* after appending to a file */
+ EVENT_FILEAPPENDPRE, /* before appending to a file */
+ EVENT_FILEAPPENDCMD, /* append to a file using command */
+*** ../vim-7.3.597/src/version.c 2012-07-10 16:49:08.000000000 +0200
+--- src/version.c 2012-07-10 17:08:41.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 598,
+ /**/
+
+--
+Laughing helps. It's like jogging on the inside.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.599 b/source/ap/vim/patches/7.3.599
new file mode 100644
index 000000000..adfe6f996
--- /dev/null
+++ b/source/ap/vim/patches/7.3.599
@@ -0,0 +1,107 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.599
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.599 (after 7.3.597)
+Problem: Missing change in one file.
+Solution: Patch for changed clip_autoselect().
+Files: src/option.c
+
+
+*** ../vim-7.3.598/src/option.c 2012-06-29 15:51:26.000000000 +0200
+--- src/option.c 2012-07-10 16:35:07.000000000 +0200
+***************
+*** 7377,7383 ****
+ check_clipboard_option()
+ {
+ int new_unnamed = 0;
+! int new_autoselect = FALSE;
+ int new_autoselectml = FALSE;
+ int new_html = FALSE;
+ regprog_T *new_exclude_prog = NULL;
+--- 7377,7384 ----
+ check_clipboard_option()
+ {
+ int new_unnamed = 0;
+! int new_autoselect_star = FALSE;
+! int new_autoselect_plus = FALSE;
+ int new_autoselectml = FALSE;
+ int new_html = FALSE;
+ regprog_T *new_exclude_prog = NULL;
+***************
+*** 7398,7410 ****
+ p += 11;
+ }
+ else if (STRNCMP(p, "autoselect", 10) == 0
+! && (p[10] == ',' || p[10] == NUL))
+ {
+! new_autoselect = TRUE;
+ p += 10;
+ }
+ else if (STRNCMP(p, "autoselectml", 12) == 0
+! && (p[12] == ',' || p[12] == NUL))
+ {
+ new_autoselectml = TRUE;
+ p += 12;
+--- 7399,7417 ----
+ p += 11;
+ }
+ else if (STRNCMP(p, "autoselect", 10) == 0
+! && (p[10] == ',' || p[10] == NUL))
+ {
+! new_autoselect_star = TRUE;
+ p += 10;
+ }
++ else if (STRNCMP(p, "autoselectplus", 14) == 0
++ && (p[14] == ',' || p[14] == NUL))
++ {
++ new_autoselect_plus = TRUE;
++ p += 14;
++ }
+ else if (STRNCMP(p, "autoselectml", 12) == 0
+! && (p[12] == ',' || p[12] == NUL))
+ {
+ new_autoselectml = TRUE;
+ p += 12;
+***************
+*** 7433,7439 ****
+ if (errmsg == NULL)
+ {
+ clip_unnamed = new_unnamed;
+! clip_autoselect = new_autoselect;
+ clip_autoselectml = new_autoselectml;
+ clip_html = new_html;
+ vim_free(clip_exclude_prog);
+--- 7440,7447 ----
+ if (errmsg == NULL)
+ {
+ clip_unnamed = new_unnamed;
+! clip_autoselect_star = new_autoselect_star;
+! clip_autoselect_plus = new_autoselect_plus;
+ clip_autoselectml = new_autoselectml;
+ clip_html = new_html;
+ vim_free(clip_exclude_prog);
+*** ../vim-7.3.598/src/version.c 2012-07-10 17:14:50.000000000 +0200
+--- src/version.c 2012-07-10 18:30:17.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 599,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+108. While reading a magazine, you look for the Zoom icon for a better
+ look at a photograph.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.600 b/source/ap/vim/patches/7.3.600
new file mode 100644
index 000000000..6504da017
--- /dev/null
+++ b/source/ap/vim/patches/7.3.600
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.600
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.600
+Problem: <f-args> is not expanded properly with DBCS encoding.
+Solution: Skip over character instead of byte. (Yukihiro Nakadaira)
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.599/src/ex_docmd.c 2012-07-06 18:27:34.000000000 +0200
+--- src/ex_docmd.c 2012-07-10 19:20:10.000000000 +0200
+***************
+*** 5845,5852 ****
+--- 5845,5858 ----
+ }
+ else
+ {
++ #ifdef FEAT_MBYTE
++ int charlen = (*mb_ptr2len)(p);
++ len += charlen;
++ p += charlen;
++ #else
+ ++len;
+ ++p;
++ #endif
+ }
+ }
+
+***************
+*** 5889,5895 ****
+ }
+ else
+ {
+! *q++ = *p++;
+ }
+ }
+ *q++ = '"';
+--- 5895,5901 ----
+ }
+ else
+ {
+! MB_COPY_CHAR(p, q);
+ }
+ }
+ *q++ = '"';
+*** ../vim-7.3.599/src/version.c 2012-07-10 18:31:49.000000000 +0200
+--- src/version.c 2012-07-10 19:21:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 600,
+ /**/
+
+--
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.601 b/source/ap/vim/patches/7.3.601
new file mode 100644
index 000000000..b61a93316
--- /dev/null
+++ b/source/ap/vim/patches/7.3.601
@@ -0,0 +1,51 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.601
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.601
+Problem: Bad code style.
+Solution: Insert space, remove parens.
+Files: src/farsi.c
+
+
+*** ../vim-7.3.600/src/farsi.c 2010-08-15 21:57:28.000000000 +0200
+--- src/farsi.c 2012-07-12 21:59:15.000000000 +0200
+***************
+*** 1813,1819 ****
+ ptr[i] = toF_leading(ptr[i]);
+ ++i;
+
+! while(canF_Rjoin(ptr[i]) && (i < llen))
+ {
+ ptr[i] = toF_Rjoin(ptr[i]);
+ if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
+--- 1813,1819 ----
+ ptr[i] = toF_leading(ptr[i]);
+ ++i;
+
+! while (canF_Rjoin(ptr[i]) && i < llen)
+ {
+ ptr[i] = toF_Rjoin(ptr[i]);
+ if (F_isterm(ptr[i]) || !F_isalpha(ptr[i]))
+*** ../vim-7.3.600/src/version.c 2012-07-10 19:25:06.000000000 +0200
+--- src/version.c 2012-07-16 17:25:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 601,
+ /**/
+
+--
+There are three kinds of persons: Those who can count and those who can't.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.602 b/source/ap/vim/patches/7.3.602
new file mode 100644
index 000000000..fd5f3cf47
--- /dev/null
+++ b/source/ap/vim/patches/7.3.602
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.602
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.602
+Problem: Missing files in distribution.
+Solution: Update the list of files.
+Files: Filelist
+
+
+*** ../vim-7.3.601/Filelist 2011-10-20 16:35:25.000000000 +0200
+--- Filelist 2012-06-20 12:06:41.000000000 +0200
+***************
+*** 463,468 ****
+--- 463,469 ----
+ runtime/macros/hanoi/hanoi.vim \
+ runtime/macros/hanoi/poster \
+ runtime/macros/justify.vim \
++ runtime/macros/less.bat \
+ runtime/macros/less.sh \
+ runtime/macros/less.vim \
+ runtime/macros/life/click.me \
+***************
+*** 666,671 ****
+--- 667,674 ----
+
+ # generic language files
+ LANG_GEN = \
++ runtime/doc/*-de.1 \
++ runtime/doc/*-de.UTF-8.1 \
+ runtime/doc/*-fr.1 \
+ runtime/doc/*-fr.UTF-8.1 \
+ runtime/doc/*-it.1 \
+*** ../vim-7.3.601/src/version.c 2012-07-16 17:26:18.000000000 +0200
+--- src/version.c 2012-07-16 17:27:31.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 602,
+ /**/
+
+--
+Never eat yellow snow.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.603 b/source/ap/vim/patches/7.3.603
new file mode 100644
index 000000000..00a024b0a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.603
@@ -0,0 +1,370 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.603
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.603
+Problem: It is possible to add replace builtin functions by calling
+ extend() on g:.
+Solution: Add a flag to a dict to indicate it is a scope. Check for
+ existing functions. (ZyX)
+Files: src/buffer.c, src/eval.c, src/proto/eval.pro, src/structs.h,
+ src/testdir/test34.in, src/testdir/test34.ok, src/window.c
+
+
+*** ../vim-7.3.602/src/buffer.c 2012-07-10 15:18:18.000000000 +0200
+--- src/buffer.c 2012-07-16 16:52:58.000000000 +0200
+***************
+*** 1747,1753 ****
+ buf->b_wininfo->wi_win = curwin;
+
+ #ifdef FEAT_EVAL
+! init_var_dict(&buf->b_vars, &buf->b_bufvar); /* init b: variables */
+ #endif
+ #ifdef FEAT_SYN_HL
+ hash_init(&buf->b_s.b_keywtab);
+--- 1747,1754 ----
+ buf->b_wininfo->wi_win = curwin;
+
+ #ifdef FEAT_EVAL
+! /* init b: variables */
+! init_var_dict(&buf->b_vars, &buf->b_bufvar, VAR_SCOPE);
+ #endif
+ #ifdef FEAT_SYN_HL
+ hash_init(&buf->b_s.b_keywtab);
+*** ../vim-7.3.602/src/eval.c 2012-07-10 13:41:09.000000000 +0200
+--- src/eval.c 2012-07-16 17:18:11.000000000 +0200
+***************
+*** 850,857 ****
+ int i;
+ struct vimvar *p;
+
+! init_var_dict(&globvardict, &globvars_var);
+! init_var_dict(&vimvardict, &vimvars_var);
+ vimvardict.dv_lock = VAR_FIXED;
+ hash_init(&compat_hashtab);
+ hash_init(&func_hashtab);
+--- 850,857 ----
+ int i;
+ struct vimvar *p;
+
+! init_var_dict(&globvardict, &globvars_var, VAR_DEF_SCOPE);
+! init_var_dict(&vimvardict, &vimvars_var, VAR_SCOPE);
+ vimvardict.dv_lock = VAR_FIXED;
+ hash_init(&compat_hashtab);
+ hash_init(&func_hashtab);
+***************
+*** 2725,2738 ****
+ lp->ll_dict = lp->ll_tv->vval.v_dict;
+ lp->ll_di = dict_find(lp->ll_dict, key, len);
+
+! /* When assigning to g: check that a function and variable name is
+! * valid. */
+! if (rettv != NULL && lp->ll_dict == &globvardict)
+ {
+! if (rettv->v_type == VAR_FUNC
+ && var_check_func_name(key, lp->ll_di == NULL))
+! return NULL;
+! if (!valid_varname(key))
+ return NULL;
+ }
+
+--- 2725,2750 ----
+ lp->ll_dict = lp->ll_tv->vval.v_dict;
+ lp->ll_di = dict_find(lp->ll_dict, key, len);
+
+! /* When assigning to a scope dictionary check that a function and
+! * variable name is valid (only variable name unless it is l: or
+! * g: dictionary). Disallow overwriting a builtin function. */
+! if (rettv != NULL && lp->ll_dict->dv_scope != 0)
+ {
+! int prevval;
+! int wrong;
+!
+! if (len != -1)
+! {
+! prevval = key[len];
+! key[len] = NUL;
+! }
+! wrong = (lp->ll_dict->dv_scope == VAR_DEF_SCOPE
+! && rettv->v_type == VAR_FUNC
+ && var_check_func_name(key, lp->ll_di == NULL))
+! || !valid_varname(key);
+! if (len != -1)
+! key[len] = prevval;
+! if (wrong)
+ return NULL;
+ }
+
+***************
+*** 6951,6957 ****
+ d = (dict_T *)alloc(sizeof(dict_T));
+ if (d != NULL)
+ {
+! /* Add the list to the list of dicts for garbage collection. */
+ if (first_dict != NULL)
+ first_dict->dv_used_prev = d;
+ d->dv_used_next = first_dict;
+--- 6963,6969 ----
+ d = (dict_T *)alloc(sizeof(dict_T));
+ if (d != NULL)
+ {
+! /* Add the dict to the list of dicts for garbage collection. */
+ if (first_dict != NULL)
+ first_dict->dv_used_prev = d;
+ d->dv_used_next = first_dict;
+***************
+*** 6960,6965 ****
+--- 6972,6978 ----
+
+ hash_init(&d->dv_hashtab);
+ d->dv_lock = 0;
++ d->dv_scope = 0;
+ d->dv_refcount = 0;
+ d->dv_copyID = 0;
+ }
+***************
+*** 10203,10208 ****
+--- 10216,10234 ----
+ {
+ --todo;
+ di1 = dict_find(d1, hi2->hi_key, -1);
++ if (d1->dv_scope != 0)
++ {
++ /* Disallow replacing a builtin function in l: and g:.
++ * Check the key to be valid when adding to any
++ * scope. */
++ if (d1->dv_scope == VAR_DEF_SCOPE
++ && HI2DI(hi2)->di_tv.v_type == VAR_FUNC
++ && var_check_func_name(hi2->hi_key,
++ di1 == NULL))
++ break;
++ if (!valid_varname(hi2->hi_key))
++ break;
++ }
+ if (di1 == NULL)
+ {
+ di1 = dictitem_copy(HI2DI(hi2));
+***************
+*** 20027,20033 ****
+ {
+ sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
+ (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
+! init_var_dict(&sv->sv_dict, &sv->sv_var);
+ ++ga_scripts.ga_len;
+ }
+ }
+--- 20053,20059 ----
+ {
+ sv = SCRIPT_SV(ga_scripts.ga_len + 1) =
+ (scriptvar_T *)alloc_clear(sizeof(scriptvar_T));
+! init_var_dict(&sv->sv_dict, &sv->sv_var, VAR_SCOPE);
+ ++ga_scripts.ga_len;
+ }
+ }
+***************
+*** 20038,20049 ****
+ * point to it.
+ */
+ void
+! init_var_dict(dict, dict_var)
+ dict_T *dict;
+ dictitem_T *dict_var;
+ {
+ hash_init(&dict->dv_hashtab);
+ dict->dv_lock = 0;
+ dict->dv_refcount = DO_NOT_FREE_CNT;
+ dict->dv_copyID = 0;
+ dict_var->di_tv.vval.v_dict = dict;
+--- 20064,20077 ----
+ * point to it.
+ */
+ void
+! init_var_dict(dict, dict_var, scope)
+ dict_T *dict;
+ dictitem_T *dict_var;
++ int scope;
+ {
+ hash_init(&dict->dv_hashtab);
+ dict->dv_lock = 0;
++ dict->dv_scope = scope;
+ dict->dv_refcount = DO_NOT_FREE_CNT;
+ dict->dv_copyID = 0;
+ dict_var->di_tv.vval.v_dict = dict;
+***************
+*** 22304,22310 ****
+ /*
+ * Init l: variables.
+ */
+! init_var_dict(&fc->l_vars, &fc->l_vars_var);
+ if (selfdict != NULL)
+ {
+ /* Set l:self to "selfdict". Use "name" to avoid a warning from
+--- 22332,22338 ----
+ /*
+ * Init l: variables.
+ */
+! init_var_dict(&fc->l_vars, &fc->l_vars_var, VAR_DEF_SCOPE);
+ if (selfdict != NULL)
+ {
+ /* Set l:self to "selfdict". Use "name" to avoid a warning from
+***************
+*** 22325,22331 ****
+ * Set a:0 to "argcount".
+ * Set a:000 to a list with room for the "..." arguments.
+ */
+! init_var_dict(&fc->l_avars, &fc->l_avars_var);
+ add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
+ (varnumber_T)(argcount - fp->uf_args.ga_len));
+ /* Use "name" to avoid a warning from some compiler that checks the
+--- 22353,22359 ----
+ * Set a:0 to "argcount".
+ * Set a:000 to a list with room for the "..." arguments.
+ */
+! init_var_dict(&fc->l_avars, &fc->l_avars_var, VAR_SCOPE);
+ add_nr_var(&fc->l_avars, &fc->fixvar[fixvar_idx++].var, "0",
+ (varnumber_T)(argcount - fp->uf_args.ga_len));
+ /* Use "name" to avoid a warning from some compiler that checks the
+*** ../vim-7.3.602/src/proto/eval.pro 2012-06-29 12:54:32.000000000 +0200
+--- src/proto/eval.pro 2012-07-16 16:55:16.000000000 +0200
+***************
+*** 93,99 ****
+ char_u *get_tv_string_chk __ARGS((typval_T *varp));
+ char_u *get_var_value __ARGS((char_u *name));
+ void new_script_vars __ARGS((scid_T id));
+! void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var));
+ void vars_clear __ARGS((hashtab_T *ht));
+ void copy_tv __ARGS((typval_T *from, typval_T *to));
+ void ex_echo __ARGS((exarg_T *eap));
+--- 93,99 ----
+ char_u *get_tv_string_chk __ARGS((typval_T *varp));
+ char_u *get_var_value __ARGS((char_u *name));
+ void new_script_vars __ARGS((scid_T id));
+! void init_var_dict __ARGS((dict_T *dict, dictitem_T *dict_var, int scope));
+ void vars_clear __ARGS((hashtab_T *ht));
+ void copy_tv __ARGS((typval_T *from, typval_T *to));
+ void ex_echo __ARGS((exarg_T *eap));
+*** ../vim-7.3.602/src/structs.h 2012-06-06 19:02:40.000000000 +0200
+--- src/structs.h 2012-07-16 16:56:43.000000000 +0200
+***************
+*** 1106,1111 ****
+--- 1106,1116 ----
+ #define VAR_DICT 5 /* "v_dict" is used */
+ #define VAR_FLOAT 6 /* "v_float" is used */
+
++ /* Values for "dv_scope". */
++ #define VAR_SCOPE 1 /* a:, v:, s:, etc. scope dictionaries */
++ #define VAR_DEF_SCOPE 2 /* l:, g: scope dictionaries: here funcrefs are not
++ allowed to mask existing functions */
++
+ /* Values for "v_lock". */
+ #define VAR_LOCKED 1 /* locked with lock(), can use unlock() */
+ #define VAR_FIXED 2 /* locked forever */
+***************
+*** 1181,1186 ****
+--- 1186,1192 ----
+ int dv_copyID; /* ID used by deepcopy() */
+ dict_T *dv_copydict; /* copied dict used by deepcopy() */
+ char dv_lock; /* zero, VAR_LOCKED, VAR_FIXED */
++ char dv_scope; /* zero, VAR_SCOPE, VAR_DEF_SCOPE */
+ dict_T *dv_used_next; /* next dict in used dicts list */
+ dict_T *dv_used_prev; /* previous dict in used dicts list */
+ };
+*** ../vim-7.3.602/src/testdir/test34.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test34.in 2012-07-16 16:51:29.000000000 +0200
+***************
+*** 1,5 ****
+--- 1,6 ----
+ Test for user functions.
+ Also test an <expr> mapping calling a function.
++ Also test that a builtin function cannot be replaced.
+
+ STARTTEST
+ :so small.vim
+***************
+*** 58,64 ****
+ ---*---
+ (one
+ (two
+! [(one again:$-5,$w! test.out
+ :delfunc Table
+ :delfunc Compute
+ :delfunc Expr1
+--- 59,68 ----
+ ---*---
+ (one
+ (two
+! [(one again:call append(line('$'), max([1, 2, 3]))
+! :call extend(g:, {'max': function('min')})
+! :call append(line('$'), max([1, 2, 3]))
+! :$-7,$w! test.out
+ :delfunc Table
+ :delfunc Compute
+ :delfunc Expr1
+*** ../vim-7.3.602/src/testdir/test34.ok 2011-10-12 22:02:07.000000000 +0200
+--- src/testdir/test34.ok 2012-07-16 16:43:15.000000000 +0200
+***************
+*** 4,6 ****
+--- 4,8 ----
+ 1. one
+ 2. two
+ 1. one again
++ 3
++ 3
+*** ../vim-7.3.602/src/window.c 2012-07-06 18:27:34.000000000 +0200
+--- src/window.c 2012-07-16 16:53:45.000000000 +0200
+***************
+*** 3468,3474 ****
+ # endif
+ #ifdef FEAT_EVAL
+ /* init t: variables */
+! init_var_dict(&tp->tp_vars, &tp->tp_winvar);
+ #endif
+ tp->tp_ch_used = p_ch;
+ }
+--- 3468,3474 ----
+ # endif
+ #ifdef FEAT_EVAL
+ /* init t: variables */
+! init_var_dict(&tp->tp_vars, &tp->tp_winvar, VAR_SCOPE);
+ #endif
+ tp->tp_ch_used = p_ch;
+ }
+***************
+*** 4410,4416 ****
+ #endif
+ #ifdef FEAT_EVAL
+ /* init w: variables */
+! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar);
+ #endif
+ #ifdef FEAT_FOLDING
+ foldInitWin(new_wp);
+--- 4410,4416 ----
+ #endif
+ #ifdef FEAT_EVAL
+ /* init w: variables */
+! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar, VAR_SCOPE);
+ #endif
+ #ifdef FEAT_FOLDING
+ foldInitWin(new_wp);
+*** ../vim-7.3.602/src/version.c 2012-07-16 17:27:57.000000000 +0200
+--- src/version.c 2012-07-16 17:29:06.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 603,
+ /**/
+
+--
+Birthdays are healthy. The more you have them, the longer you live.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.604 b/source/ap/vim/patches/7.3.604
new file mode 100644
index 000000000..f7e63bd0d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.604
@@ -0,0 +1,60 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.604
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.604
+Problem: inputdialog() doesn't use the cancel argument in the console.
+ (David Fishburn)
+Solution: Use the third argument. (Christian Brabant)
+Files: src/eval.c
+
+
+*** ../vim-7.3.603/src/eval.c 2012-07-16 17:31:48.000000000 +0200
+--- src/eval.c 2012-07-16 19:20:47.000000000 +0200
+***************
+*** 12940,12945 ****
+--- 12940,12946 ----
+ int xp_namelen;
+ long argt;
+
++ /* input() with a third argument: completion */
+ rettv->vval.v_string = NULL;
+
+ xp_name = get_tv_string_buf_chk(&argvars[2], buf);
+***************
+*** 12958,12963 ****
+--- 12959,12969 ----
+ rettv->vval.v_string =
+ getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
+ xp_type, xp_arg);
++ if (rettv->vval.v_string == NULL
++ && argvars[1].v_type != VAR_UNKNOWN
++ && argvars[2].v_type != VAR_UNKNOWN)
++ rettv->vval.v_string = vim_strsave(get_tv_string_buf(
++ &argvars[2], buf));
+
+ vim_free(xp_arg);
+
+*** ../vim-7.3.603/src/version.c 2012-07-16 17:31:48.000000000 +0200
+--- src/version.c 2012-07-16 19:23:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 604,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+135. You cut classes or miss work so you can stay home and browse the web.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.605 b/source/ap/vim/patches/7.3.605
new file mode 100644
index 000000000..703382516
--- /dev/null
+++ b/source/ap/vim/patches/7.3.605
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.605
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.605 (after 7.3.577)
+Problem: MS-Windows: Can't compile with older compilers. (Titov Anatoly)
+Solution: Add #ifdef for MEMORYSTATUSEX.
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.604/src/os_win32.c 2012-06-29 15:51:26.000000000 +0200
+--- src/os_win32.c 2012-07-19 11:35:00.000000000 +0200
+***************
+*** 4999,5020 ****
+ long_u
+ mch_avail_mem(int special)
+ {
+! if (g_PlatformId != VER_PLATFORM_WIN32_NT)
+! {
+! MEMORYSTATUS ms;
+!
+! ms.dwLength = sizeof(MEMORYSTATUS);
+! GlobalMemoryStatus(&ms);
+! return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
+! }
+! else
+ {
+ MEMORYSTATUSEX ms;
+
+ ms.dwLength = sizeof(MEMORYSTATUSEX);
+ GlobalMemoryStatusEx(&ms);
+ return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
+ }
+ }
+
+ #ifdef FEAT_MBYTE
+--- 4999,5025 ----
+ long_u
+ mch_avail_mem(int special)
+ {
+! #ifdef MEMORYSTATUSEX
+! PlatformId();
+! if (g_PlatformId == VER_PLATFORM_WIN32_NT)
+ {
+ MEMORYSTATUSEX ms;
+
++ /* Need to use GlobalMemoryStatusEx() when there is more memory than
++ * what fits in 32 bits. But it's not always available. */
+ ms.dwLength = sizeof(MEMORYSTATUSEX);
+ GlobalMemoryStatusEx(&ms);
+ return (long_u)((ms.ullAvailPhys + ms.ullAvailPageFile) >> 10);
+ }
++ else
++ #endif
++ {
++ MEMORYSTATUS ms;
++
++ ms.dwLength = sizeof(MEMORYSTATUS);
++ GlobalMemoryStatus(&ms);
++ return (long_u)((ms.dwAvailPhys + ms.dwAvailPageFile) >> 10);
++ }
+ }
+
+ #ifdef FEAT_MBYTE
+*** ../vim-7.3.604/src/version.c 2012-07-16 19:27:25.000000000 +0200
+--- src/version.c 2012-07-19 11:36:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 605,
+ /**/
+
+--
+Fingers not found - Pound head on keyboard to continue.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.606 b/source/ap/vim/patches/7.3.606
new file mode 100644
index 000000000..2296653c4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.606
@@ -0,0 +1,76 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.606
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.606
+Problem: CTRL-P completion has a problem with multi-byte characters.
+Solution: Check for next character being NUL properly. (Yasuhiro Matsumoto)
+Files: src/search.c, src/macros.h
+
+
+*** ../vim-7.3.605/src/search.c 2012-06-06 16:12:54.000000000 +0200
+--- src/search.c 2012-07-19 17:09:20.000000000 +0200
+***************
+*** 5141,5147 ****
+ && !(compl_cont_status & CONT_SOL)
+ #endif
+ && *startp != NUL
+! && *(p = startp + 1) != NUL)
+ goto search_line;
+ }
+ line_breakcheck();
+--- 5141,5147 ----
+ && !(compl_cont_status & CONT_SOL)
+ #endif
+ && *startp != NUL
+! && *(p = startp + MB_PTR2LEN(startp)) != NUL)
+ goto search_line;
+ }
+ line_breakcheck();
+*** ../vim-7.3.605/src/macros.h 2010-09-21 16:56:29.000000000 +0200
+--- src/macros.h 2012-07-19 17:08:38.000000000 +0200
+***************
+*** 259,264 ****
+--- 259,266 ----
+ * PTR2CHAR(): get character from pointer.
+ */
+ #ifdef FEAT_MBYTE
++ /* Get the length of the character p points to */
++ # define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1)
+ /* Advance multi-byte pointer, skip over composing chars. */
+ # define mb_ptr_adv(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1
+ /* Advance multi-byte pointer, do not skip over composing chars. */
+***************
+*** 272,277 ****
+--- 274,280 ----
+ # define MB_CHARLEN(p) (has_mbyte ? mb_charlen(p) : (int)STRLEN(p))
+ # define PTR2CHAR(p) (has_mbyte ? mb_ptr2char(p) : (int)*(p))
+ #else
++ # define MB_PTR2LEN(p) 1
+ # define mb_ptr_adv(p) ++p
+ # define mb_cptr_adv(p) ++p
+ # define mb_ptr_back(s, p) --p
+*** ../vim-7.3.605/src/version.c 2012-07-19 11:37:22.000000000 +0200
+--- src/version.c 2012-07-19 17:13:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 606,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+151. You find yourself engaged to someone you've never actually met,
+ except through e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.607 b/source/ap/vim/patches/7.3.607
new file mode 100644
index 000000000..4dbf559dd
--- /dev/null
+++ b/source/ap/vim/patches/7.3.607
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.607
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.607
+Problem: With an 8 color terminal the selected menu item is black on black,
+ because darkGrey as bg is the same as black.
+Solution: Swap fg and bg colors. (James McCoy)
+Files: src/syntax.c
+
+
+*** ../vim-7.3.606/src/syntax.c 2012-06-01 13:18:48.000000000 +0200
+--- src/syntax.c 2012-07-19 17:34:42.000000000 +0200
+***************
+*** 6653,6660 ****
+ "PmenuThumb ctermbg=White guibg=White"),
+ CENT("Pmenu ctermbg=Magenta ctermfg=Black",
+ "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
+! CENT("PmenuSel ctermbg=DarkGrey ctermfg=Black",
+! "PmenuSel ctermbg=DarkGrey ctermfg=Black guibg=DarkGrey"),
+ #endif
+ CENT("Title term=bold ctermfg=LightMagenta",
+ "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+--- 6653,6660 ----
+ "PmenuThumb ctermbg=White guibg=White"),
+ CENT("Pmenu ctermbg=Magenta ctermfg=Black",
+ "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"),
+! CENT("PmenuSel ctermbg=Black ctermfg=DarkGrey",
+! "PmenuSel ctermbg=Black ctermfg=DarkGrey guibg=DarkGrey"),
+ #endif
+ CENT("Title term=bold ctermfg=LightMagenta",
+ "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"),
+*** ../vim-7.3.606/src/version.c 2012-07-19 17:18:21.000000000 +0200
+--- src/version.c 2012-07-19 17:38:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 607,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+152. You find yourself falling for someone you've never seen or hardly
+ know, but, boy can he/she TYPE!!!!!!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.608 b/source/ap/vim/patches/7.3.608
new file mode 100644
index 000000000..148bc494e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.608
@@ -0,0 +1,119 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.608
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.608
+Problem: winrestview() does not always restore the view correctly.
+Solution: Call win_new_height() and win_new_width(). (Lech Lorens)
+Files: src/eval.c, src/proto/window.pro, src/window.c
+
+
+*** ../vim-7.3.607/src/eval.c 2012-07-16 19:27:25.000000000 +0200
+--- src/eval.c 2012-07-19 17:50:16.000000000 +0200
+***************
+*** 18601,18606 ****
+--- 18601,18610 ----
+ curwin->w_skipcol = get_dict_number(dict, (char_u *)"skipcol");
+
+ check_cursor();
++ win_new_height(curwin, curwin->w_height);
++ # ifdef FEAT_VERTSPLIT
++ win_new_width(curwin, W_WIDTH(curwin));
++ # endif
+ changed_window_setting();
+
+ if (curwin->w_topline == 0)
+*** ../vim-7.3.607/src/proto/window.pro 2012-06-13 14:28:16.000000000 +0200
+--- src/proto/window.pro 2012-07-19 18:05:10.000000000 +0200
+***************
+*** 51,56 ****
+--- 51,58 ----
+ void win_setminheight __ARGS((void));
+ void win_drag_status_line __ARGS((win_T *dragwin, int offset));
+ void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
++ void win_new_height __ARGS((win_T *wp, int height));
++ void win_new_width __ARGS((win_T *wp, int width));
+ void win_comp_scroll __ARGS((win_T *wp));
+ void command_height __ARGS((void));
+ void last_status __ARGS((int morewin));
+*** ../vim-7.3.607/src/window.c 2012-07-16 17:31:48.000000000 +0200
+--- src/window.c 2012-07-19 18:05:18.000000000 +0200
+***************
+*** 54,60 ****
+ static void frame_insert __ARGS((frame_T *before, frame_T *frp));
+ static void frame_remove __ARGS((frame_T *frp));
+ #ifdef FEAT_VERTSPLIT
+- static void win_new_width __ARGS((win_T *wp, int width));
+ static void win_goto_ver __ARGS((int up, long count));
+ static void win_goto_hor __ARGS((int left, long count));
+ #endif
+--- 54,59 ----
+***************
+*** 71,77 ****
+
+ static win_T *win_alloc __ARGS((win_T *after, int hidden));
+ static void set_fraction __ARGS((win_T *wp));
+- static void win_new_height __ARGS((win_T *wp, int height));
+
+ #define URL_SLASH 1 /* path_is_url() has found "://" */
+ #define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */
+--- 70,75 ----
+***************
+*** 5557,5563 ****
+ * This takes care of the things inside the window, not what happens to the
+ * window position, the frame or to other windows.
+ */
+! static void
+ win_new_height(wp, height)
+ win_T *wp;
+ int height;
+--- 5555,5561 ----
+ * This takes care of the things inside the window, not what happens to the
+ * window position, the frame or to other windows.
+ */
+! void
+ win_new_height(wp, height)
+ win_T *wp;
+ int height;
+***************
+*** 5697,5703 ****
+ /*
+ * Set the width of a window.
+ */
+! static void
+ win_new_width(wp, width)
+ win_T *wp;
+ int width;
+--- 5695,5701 ----
+ /*
+ * Set the width of a window.
+ */
+! void
+ win_new_width(wp, width)
+ win_T *wp;
+ int width;
+*** ../vim-7.3.607/src/version.c 2012-07-19 17:39:01.000000000 +0200
+--- src/version.c 2012-07-19 17:53:37.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 608,
+ /**/
+
+--
+Although the scythe isn't pre-eminent among the weapons of war, anyone who
+has been on the wrong end of, say, a peasants' revolt will know that in
+skilled hands it is fearsome.
+ -- (Terry Pratchett, Mort)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.609 b/source/ap/vim/patches/7.3.609
new file mode 100644
index 000000000..ed731f509
--- /dev/null
+++ b/source/ap/vim/patches/7.3.609
@@ -0,0 +1,251 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.609
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.609
+Problem: File names in :checkpath! output are garbled.
+Solution: Check for \zs in the pattern. (Lech Lorens)
+Files: src/search.c, src/testdir/test17.in, src/testdir/test17.ok
+
+
+*** ../vim-7.3.608/src/search.c 2012-07-19 17:18:21.000000000 +0200
+--- src/search.c 2012-07-25 13:33:08.000000000 +0200
+***************
+*** 4740,4756 ****
+ * Isolate the file name.
+ * Include the surrounding "" or <> if present.
+ */
+! for (p = incl_regmatch.endp[0]; !vim_isfilec(*p); p++)
+! ;
+! for (i = 0; vim_isfilec(p[i]); i++)
+! ;
+ if (i == 0)
+ {
+ /* Nothing found, use the rest of the line. */
+ p = incl_regmatch.endp[0];
+ i = (int)STRLEN(p);
+ }
+! else
+ {
+ if (p[-1] == '"' || p[-1] == '<')
+ {
+--- 4740,4772 ----
+ * Isolate the file name.
+ * Include the surrounding "" or <> if present.
+ */
+! if (inc_opt != NULL
+! && strstr((char *)inc_opt, "\\zs") != NULL)
+! {
+! /* pattern contains \zs, use the match */
+! p = incl_regmatch.startp[0];
+! i = (int)(incl_regmatch.endp[0]
+! - incl_regmatch.startp[0]);
+! }
+! else
+! {
+! /* find the file name after the end of the match */
+! for (p = incl_regmatch.endp[0];
+! *p && !vim_isfilec(*p); p++)
+! ;
+! for (i = 0; vim_isfilec(p[i]); i++)
+! ;
+! }
+!
+ if (i == 0)
+ {
+ /* Nothing found, use the rest of the line. */
+ p = incl_regmatch.endp[0];
+ i = (int)STRLEN(p);
+ }
+! /* Avoid checking before the start of the line, can
+! * happen if \zs appears in the regexp. */
+! else if (p > line)
+ {
+ if (p[-1] == '"' || p[-1] == '<')
+ {
+*** ../vim-7.3.608/src/testdir/test17.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test17.in 2012-07-25 13:41:43.000000000 +0200
+***************
+*** 1,4 ****
+! Tests for "gf" on ${VAR}
+
+ STARTTEST
+ :so small.vim
+--- 1,6 ----
+! Tests for:
+! - "gf" on ${VAR},
+! - ":checkpath!" with various 'include' settings.
+
+ STARTTEST
+ :so small.vim
+***************
+*** 20,27 ****
+ :endif
+ gf
+ :w! test.out
+! :qa!
+ ENDTEST
+
+ ${CDIR}/test17a.in
+ $TDIR/test17a.in
+--- 22,120 ----
+ :endif
+ gf
+ :w! test.out
+! :brewind
+ ENDTEST
+
+ ${CDIR}/test17a.in
+ $TDIR/test17a.in
++
++ STARTTEST
++ :" check for 'include' without \zs or \ze
++ :lang C
++ :!rm -f ./Xbase.a
++ :!rm -rf ./Xdir1
++ :!mkdir -p Xdir1/dir2
++ :e Xdir1/dir2/foo.a
++ i#include "bar.a"
++ :w
++ :e Xdir1/dir2/bar.a
++ i#include "baz.a"
++ :w
++ :e Xdir1/dir2/baz.a
++ i#include "foo.a"
++ :w
++ :e Xbase.a
++ :set path=Xdir1/dir2
++ i#include <foo.a>
++ :w
++ :redir! >>test.out
++ :checkpath!
++ :redir END
++ :brewind
++ ENDTEST
++
++ STARTTEST
++ :" check for 'include' with \zs and \ze
++ :!rm -f ./Xbase.b
++ :!rm -rf ./Xdir1
++ :!mkdir -p Xdir1/dir2
++ :let &include='^\s*%inc\s*/\zs[^/]\+\ze'
++ :function! DotsToSlashes()
++ : return substitute(v:fname, '\.', '/', 'g') . '.b'
++ :endfunction
++ :let &includeexpr='DotsToSlashes()'
++ :e Xdir1/dir2/foo.b
++ i%inc /bar/
++ :w
++ :e Xdir1/dir2/bar.b
++ i%inc /baz/
++ :w
++ :e Xdir1/dir2/baz.b
++ i%inc /foo/
++ :w
++ :e Xbase.b
++ :set path=Xdir1/dir2
++ i%inc /foo/
++ :w
++ :redir! >>test.out
++ :checkpath!
++ :redir END
++ :brewind
++ ENDTEST
++
++ STARTTEST
++ :" check for 'include' with \zs and no \ze
++ :!rm -f ./Xbase.c
++ :!rm -rf ./Xdir1
++ :!mkdir -p Xdir1/dir2
++ :let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
++ :function! StripNewlineChar()
++ : if v:fname =~ '\n$'
++ : return v:fname[:-2]
++ : endif
++ : return v:fname
++ :endfunction
++ :let &includeexpr='StripNewlineChar()'
++ :e Xdir1/dir2/foo.c
++ i%inc bar.c
++ :w
++ :e Xdir1/dir2/bar.c
++ i%inc baz.c
++ :w
++ :e Xdir1/dir2/baz.c
++ i%inc foo.c
++ :w
++ :e Xdir1/dir2/FALSE.c
++ i%inc foo.c
++ :w
++ :e Xbase.c
++ :set path=Xdir1/dir2
++ i%inc FALSE.c foo.c
++ :w
++ :redir! >>test.out
++ :checkpath!
++ :redir END
++ :brewind
++ :q
++ ENDTEST
++
+*** ../vim-7.3.608/src/testdir/test17.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test17.ok 2012-07-25 13:45:37.000000000 +0200
+***************
+*** 1,3 ****
+--- 1,33 ----
+ This file is just to test "gf" in test 17.
+ The contents is not important.
+ Just testing!
++
++
++ --- Included files in path ---
++ Xdir1/dir2/foo.a
++ Xdir1/dir2/foo.a -->
++ Xdir1/dir2/bar.a
++ Xdir1/dir2/bar.a -->
++ Xdir1/dir2/baz.a
++ Xdir1/dir2/baz.a -->
++ "foo.a" (Already listed)
++
++
++ --- Included files in path ---
++ Xdir1/dir2/foo.b
++ Xdir1/dir2/foo.b -->
++ Xdir1/dir2/bar.b
++ Xdir1/dir2/bar.b -->
++ Xdir1/dir2/baz.b
++ Xdir1/dir2/baz.b -->
++ foo (Already listed)
++
++
++ --- Included files in path ---
++ Xdir1/dir2/foo.c
++ Xdir1/dir2/foo.c -->
++ Xdir1/dir2/bar.c
++ Xdir1/dir2/bar.c -->
++ Xdir1/dir2/baz.c
++ Xdir1/dir2/baz.c -->
++ foo.c^@ (Already listed)
+*** ../vim-7.3.608/src/version.c 2012-07-19 18:05:40.000000000 +0200
+--- src/version.c 2012-07-25 13:38:54.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 609,
+ /**/
+
+--
+"The question of whether computers can think is just like the question
+of whether submarines can swim." -- Edsger W. Dijkstra
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.610 b/source/ap/vim/patches/7.3.610
new file mode 100644
index 000000000..5e48837fa
--- /dev/null
+++ b/source/ap/vim/patches/7.3.610
@@ -0,0 +1,400 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.610
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.610
+Problem: Cannot operate on the text that a search pattern matches.
+Solution: Add the "gn" and "gN" commands. (Christian Brabandt)
+Files: runtime/doc/index.txt, runtime/doc/visual.txt, src/normal.c,
+ src/proto/search.pro, src/search.c, src/testdir/test53.in,
+ src/testdir/test53.ok
+
+
+*** ../vim-7.3.609/runtime/doc/index.txt 2010-08-15 21:57:18.000000000 +0200
+--- runtime/doc/index.txt 2012-07-25 14:27:20.000000000 +0200
+***************
+*** 719,726 ****
+--- 719,729 ----
+ |gH| gH start Select line mode
+ |gI| gI 2 like "I", but always start in column 1
+ |gJ| gJ 2 join lines without inserting space
++ |gN| gN 1,2 find the previous match with the last used
++ search pattern and Visually select it
+ |gP| ["x]gP 2 put the text [from register x] before the
+ cursor N times, leave the cursor after it
++ |gQ| gQ switch to "Ex" mode with Vim editing
+ |gR| gR 2 enter Virtual Replace mode
+ |gU| gU{motion} 2 make Nmove text uppercase
+ |gV| gV don't reselect the previous Visual area
+***************
+*** 750,755 ****
+--- 753,760 ----
+ lines down
+ |gk| gk 1 like "k", but when 'wrap' on go N screen
+ lines up
++ |gn| gn 1,2 find the next match with the last used
++ search pattern and Visually select it
+ |gm| gm 1 go to character at middle of the screenline
+ |go| go 1 cursor to byte N in the buffer
+ |gp| ["x]gp 2 put the text [from register x] after the
+*** ../vim-7.3.609/runtime/doc/visual.txt 2010-08-15 21:57:16.000000000 +0200
+--- runtime/doc/visual.txt 2012-07-25 14:42:22.000000000 +0200
+***************
+*** 94,99 ****
+--- 99,116 ----
+ After using "p" or "P" in Visual mode the text that
+ was put will be selected.
+
++ *gn* *v_gn*
++ gn Search forward for the last used search pattern, like
++ with `n`, and start Visual mode to select the match.
++ If the cursor is on the match, visually selects it.
++ If an operator is pending, operates on the match.
++ E.g., "dgn" deletes the text of the next match.
++ If Visual mode is active, extends the selection
++ until the end of the next match.
++
++ *gN* *v_gN*
++ gN Like |gn| but searches backward, like with `N`.
++
+ *<LeftMouse>*
+ <LeftMouse> Set the current cursor position. If Visual mode is
+ active it is stopped. Only when 'mouse' option is
+*** ../vim-7.3.609/src/normal.c 2012-07-10 16:49:08.000000000 +0200
+--- src/normal.c 2012-07-25 14:31:40.000000000 +0200
+***************
+*** 1780,1789 ****
+ {
+ /* Prepare for redoing. Only use the nchar field for "r",
+ * otherwise it might be the second char of the operator. */
+! prep_redo(oap->regname, 0L, NUL, 'v',
+! get_op_char(oap->op_type),
+! get_extra_op_char(oap->op_type),
+! oap->op_type == OP_REPLACE ? cap->nchar : NUL);
+ if (!redo_VIsual_busy)
+ {
+ redo_VIsual_mode = resel_VIsual_mode;
+--- 1780,1797 ----
+ {
+ /* Prepare for redoing. Only use the nchar field for "r",
+ * otherwise it might be the second char of the operator. */
+! if (cap->cmdchar == 'g' && (cap->nchar == 'n'
+! || cap->nchar == 'N'))
+! /* "gn" and "gN" are a bit different */
+! prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar,
+! get_op_char(oap->op_type),
+! get_extra_op_char(oap->op_type));
+! else
+! prep_redo(oap->regname, 0L, NUL, 'v',
+! get_op_char(oap->op_type),
+! get_extra_op_char(oap->op_type),
+! oap->op_type == OP_REPLACE
+! ? cap->nchar : NUL);
+ if (!redo_VIsual_busy)
+ {
+ redo_VIsual_mode = resel_VIsual_mode;
+***************
+*** 7987,7992 ****
+--- 7995,8011 ----
+ cap->arg = TRUE;
+ nv_visual(cap);
+ break;
++
++ /* "gn", "gN" visually select next/previous search match
++ * "gn" selects next match
++ * "gN" selects previous match
++ */
++ case 'N':
++ case 'n':
++ if (!current_search(cap->count1, cap->nchar == 'n'))
++ beep_flush();
++
++ break;
+ #endif /* FEAT_VISUAL */
+
+ /*
+*** ../vim-7.3.609/src/proto/search.pro 2010-08-15 21:57:28.000000000 +0200
+--- src/proto/search.pro 2012-07-25 14:24:01.000000000 +0200
+***************
+*** 27,32 ****
+--- 27,33 ----
+ int end_word __ARGS((long count, int bigword, int stop, int empty));
+ int bckend_word __ARGS((long count, int bigword, int eol));
+ int current_word __ARGS((oparg_T *oap, long count, int include, int bigword));
++ int current_search __ARGS((long count, int forward));
+ int current_sent __ARGS((oparg_T *oap, long count, int include));
+ int current_block __ARGS((oparg_T *oap, long count, int include, int what, int other));
+ int current_tagblock __ARGS((oparg_T *oap, long count_arg, int include));
+*** ../vim-7.3.609/src/search.c 2012-07-25 13:46:25.000000000 +0200
+--- src/search.c 2012-07-25 14:54:28.000000000 +0200
+***************
+*** 3397,3402 ****
+--- 3397,3547 ----
+ return OK;
+ }
+
++ #if defined(FEAT_VISUAL) || defined(PROTO)
++ /*
++ * Find next search match under cursor, cursor at end.
++ * Used while an operator is pending, and in Visual mode.
++ * TODO: redo only works when used in operator pending mode
++ */
++ int
++ current_search(count, forward)
++ long count;
++ int forward; /* move forward or backwards */
++ {
++ pos_T start_pos; /* position before the pattern */
++ pos_T orig_pos; /* position of the cursor at beginning */
++ pos_T pos; /* position after the pattern */
++ int i;
++ int dir;
++ int result; /* result of various function calls */
++ char_u old_p_ws = p_ws;
++ int visual_active = FALSE;
++ int flags = 0;
++ pos_T save_VIsual;
++
++
++ /* wrapping should not occur */
++ p_ws = FALSE;
++
++ /* Correct cursor when 'selection' is exclusive */
++ if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
++ dec_cursor();
++
++ if (VIsual_active)
++ {
++ orig_pos = curwin->w_cursor;
++ save_VIsual = VIsual;
++ visual_active = TRUE;
++
++ /* just started visual selection, only one character */
++ if (equalpos(VIsual, curwin->w_cursor))
++ visual_active = FALSE;
++
++ pos = curwin->w_cursor;
++ start_pos = VIsual;
++
++ /* make sure, searching further will extend the match */
++ if (VIsual_active)
++ {
++ if (forward)
++ incl(&pos);
++ else
++ decl(&pos);
++ }
++ }
++ else
++ orig_pos = pos = start_pos = curwin->w_cursor;
++
++ /*
++ * The trick is to first search backwards and then search forward again,
++ * so that a match at the current cursor position will be correctly
++ * captured.
++ */
++ for (i = 0; i < 2; i++)
++ {
++ if (i && count == 1)
++ flags = SEARCH_START;
++
++ if (forward)
++ dir = i;
++ else
++ dir = !i;
++ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
++ spats[last_idx].pat, (long) (i ? count : 1),
++ SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
++ RE_SEARCH, 0, NULL);
++
++ /* First search may fail, but then start searching from the
++ * beginning of the file (cursor might be on the search match)
++ * except when Visual mode is active, so that extending the visual
++ * selection works. */
++ if (!result && i) /* not found, abort */
++ {
++ curwin->w_cursor = orig_pos;
++ if (VIsual_active)
++ VIsual = save_VIsual;
++ p_ws = old_p_ws;
++ return FAIL;
++ }
++ else if (!i && !result && !visual_active)
++ {
++ if (forward) /* try again from start of buffer */
++ {
++ clearpos(&pos);
++ }
++ else /* try again from end of buffer */
++ {
++ /* searching backwards, so set pos to last line and col */
++ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
++ pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
++ }
++ }
++
++ }
++
++ start_pos = pos;
++ flags = (forward ? SEARCH_END : 0);
++
++ /* move to match */
++ result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
++ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
++
++ if (!VIsual_active)
++ VIsual = start_pos;
++
++ p_ws = old_p_ws;
++ curwin->w_cursor = pos;
++ VIsual_active = TRUE;
++ VIsual_mode = 'v';
++
++ if (VIsual_active)
++ {
++ redraw_curbuf_later(INVERTED); /* update the inversion */
++ if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
++ inc_cursor();
++ }
++
++ #ifdef FEAT_FOLDING
++ if (fdo_flags & FDO_SEARCH && KeyTyped)
++ foldOpenCursor();
++ #endif
++
++ may_start_select('c');
++ #ifdef FEAT_MOUSE
++ setmouse();
++ #endif
++ #ifdef FEAT_CLIPBOARD
++ /* Make sure the clipboard gets updated. Needed because start and
++ * end are still the same, and the selection needs to be owned */
++ clip_star.vmode = NUL;
++ #endif
++ redraw_curbuf_later(INVERTED);
++ showmode();
++
++ return OK;
++ }
++ #endif /* FEAT_VISUAL */
++
+ /*
+ * Find sentence(s) under the cursor, cursor at end.
+ * When Visual active, extend it by one or more sentences.
+***************
+*** 3420,3426 ****
+
+ #ifdef FEAT_VISUAL
+ /*
+! * When visual area is bigger than one character: Extend it.
+ */
+ if (VIsual_active && !equalpos(start_pos, VIsual))
+ {
+--- 3565,3571 ----
+
+ #ifdef FEAT_VISUAL
+ /*
+! * When the Visual area is bigger than one character: Extend it.
+ */
+ if (VIsual_active && !equalpos(start_pos, VIsual))
+ {
+***************
+*** 3508,3515 ****
+ #endif
+
+ /*
+! * If cursor started on blank, check if it is just before the start of the
+! * next sentence.
+ */
+ while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a macro */
+ incl(&pos);
+--- 3653,3660 ----
+ #endif
+
+ /*
+! * If the cursor started on a blank, check if it is just before the start
+! * of the next sentence.
+ */
+ while (c = gchar_pos(&pos), vim_iswhite(c)) /* vim_iswhite() is a macro */
+ incl(&pos);
+***************
+*** 3558,3564 ****
+ #ifdef FEAT_VISUAL
+ if (VIsual_active)
+ {
+! /* avoid getting stuck with "is" on a single space before a sent. */
+ if (equalpos(start_pos, curwin->w_cursor))
+ goto extend;
+ if (*p_sel == 'e')
+--- 3703,3709 ----
+ #ifdef FEAT_VISUAL
+ if (VIsual_active)
+ {
+! /* Avoid getting stuck with "is" on a single space before a sentence. */
+ if (equalpos(start_pos, curwin->w_cursor))
+ goto extend;
+ if (*p_sel == 'e')
+*** ../vim-7.3.609/src/testdir/test53.in 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test53.in 2012-07-25 15:01:34.000000000 +0200
+***************
+*** 28,33 ****
+--- 28,40 ----
+ :put =matchstr(\"abcd\", \".\", 0, -1) " a
+ :put =match(\"abcd\", \".\", 0, 5) " -1
+ :put =match(\"abcd\", \".\", 0, -1) " 0
++ /^foobar
++ gncsearchmatch/one\_s*two\_s
++ :1
++ gnd
++ /[a]bcdx
++ :1
++ 2gnd
+ :/^start:/,/^end:/wq! test.out
+ ENDTEST
+
+***************
+*** 45,48 ****
+--- 52,60 ----
+ -<b>asdf<i>Xasdf</i>asdf</b>-
+ -<b>asdX<i>as<b />df</i>asdf</b>-
+ </begin>
++ SEARCH:
++ foobar
++ one
++ two
++ abcdx | abcdx | abcdx
+ end:
+*** ../vim-7.3.609/src/testdir/test53.ok 2010-08-15 21:57:29.000000000 +0200
+--- src/testdir/test53.ok 2012-07-25 14:24:01.000000000 +0200
+***************
+*** 18,21 ****
+--- 18,24 ----
+ a
+ -1
+ 0
++ SEARCH:
++ searchmatch
++ abcdx | | abcdx
+ end:
+*** ../vim-7.3.609/src/version.c 2012-07-25 13:46:25.000000000 +0200
+--- src/version.c 2012-07-25 15:03:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 610,
+ /**/
+
+--
+Did you ever see a "Hit any key to continue" message in a music piece?
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.611 b/source/ap/vim/patches/7.3.611
new file mode 100644
index 000000000..5e366a784
--- /dev/null
+++ b/source/ap/vim/patches/7.3.611
@@ -0,0 +1,58 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.611
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.611
+Problem: Can't use Vim dictionary as self argument in Python.
+Solution: Fix the check for the "self" argument. (ZyX)
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.610/src/if_py_both.h 2012-06-30 13:34:29.000000000 +0200
+--- src/if_py_both.h 2012-07-25 15:32:10.000000000 +0200
+***************
+*** 1284,1292 ****
+ selfdictObject = PyDict_GetItemString(kwargs, "self");
+ if (selfdictObject != NULL)
+ {
+! if (!PyDict_Check(selfdictObject))
+ {
+! PyErr_SetString(PyExc_TypeError, _("'self' argument must be a dictionary"));
+ clear_tv(&args);
+ return NULL;
+ }
+--- 1284,1293 ----
+ selfdictObject = PyDict_GetItemString(kwargs, "self");
+ if (selfdictObject != NULL)
+ {
+! if (!PyMapping_Check(selfdictObject))
+ {
+! PyErr_SetString(PyExc_TypeError,
+! _("'self' argument must be a dictionary"));
+ clear_tv(&args);
+ return NULL;
+ }
+*** ../vim-7.3.610/src/version.c 2012-07-25 15:06:20.000000000 +0200
+--- src/version.c 2012-07-25 15:32:24.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 611,
+ /**/
+
+--
+In Joseph Heller's novel "Catch-22", the main character tries to get out of a
+war by proving he is crazy. But the mere fact he wants to get out of the war
+only shows he isn't crazy -- creating the original "Catch-22".
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.612 b/source/ap/vim/patches/7.3.612
new file mode 100644
index 000000000..7b2207ede
--- /dev/null
+++ b/source/ap/vim/patches/7.3.612
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.612
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.612
+Problem: Auto formatting messes up text when 'fo' contains "2". (ZyX)
+Solution: Decrement "less_cols". (Tor Perkins)
+Files: src/misc1.c, src/testdir/test68.in, src/testdir/test68.ok
+
+
+*** ../vim-7.3.611/src/misc1.c 2012-07-06 16:49:37.000000000 +0200
+--- src/misc1.c 2012-07-25 16:03:58.000000000 +0200
+***************
+*** 1329,1334 ****
+--- 1329,1335 ----
+ for (i = 0; i < padding; i++)
+ {
+ STRCAT(leader, " ");
++ less_cols--;
+ newcol++;
+ }
+ }
+*** ../vim-7.3.611/src/testdir/test68.in 2012-06-29 15:04:34.000000000 +0200
+--- src/testdir/test68.in 2012-07-25 15:57:06.000000000 +0200
+***************
+*** 94,99 ****
+--- 94,109 ----
+ }
+
+ STARTTEST
++ /mno pqr/
++ :setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
++ A vwx yz
++ ENDTEST
++
++ /* abc def ghi jkl
++ * mno pqr stu
++ */
++
++ STARTTEST
+ /^#/
+ :setl tw=12 fo=tqnc comments=:#
+ A foobar
+*** ../vim-7.3.611/src/testdir/test68.ok 2012-06-29 23:57:50.000000000 +0200
+--- src/testdir/test68.ok 2012-07-25 16:03:05.000000000 +0200
+***************
+*** 57,62 ****
+--- 57,68 ----
+ { 1aa ^^2bb }
+
+
++ /* abc def ghi jkl
++ * mno pqr stu
++ * vwx yz
++ */
++
++
+ # 1 xxxxx
+ # foobar
+
+*** ../vim-7.3.611/src/version.c 2012-07-25 15:36:00.000000000 +0200
+--- src/version.c 2012-07-25 16:08:02.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 612,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+169. You hire a housekeeper for your home page.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.613 b/source/ap/vim/patches/7.3.613
new file mode 100644
index 000000000..520e87c38
--- /dev/null
+++ b/source/ap/vim/patches/7.3.613
@@ -0,0 +1,149 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.613
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.613
+Problem: Including Python's config.c in the build causes trouble. It is
+ not clear why it was there.
+Solution: Omit the config file. (James McCoy)
+Files: src/Makefile, src/auto/configure, src/configure.in
+
+
+*** ../vim-7.3.612/src/Makefile 2012-06-20 18:39:12.000000000 +0200
+--- src/Makefile 2012-07-25 16:22:57.000000000 +0200
+***************
+*** 2559,2577 ****
+ objects/if_perlsfio.o: if_perlsfio.c
+ $(CCC) $(PERL_CFLAGS) -o $@ if_perlsfio.c
+
+- objects/py_config.o: $(PYTHON_CONFDIR)/config.c
+- $(CCC) $(PYTHON_CFLAGS) -o $@ $(PYTHON_CONFDIR)/config.c \
+- -I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN
+-
+ objects/py_getpath.o: $(PYTHON_CONFDIR)/getpath.c
+ $(CCC) $(PYTHON_CFLAGS) -o $@ $(PYTHON_CONFDIR)/getpath.c \
+ -I$(PYTHON_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN \
+ $(PYTHON_GETPATH_CFLAGS)
+
+- objects/py3_config.o: $(PYTHON3_CONFDIR)/config.c
+- $(CCC) $(PYTHON3_CFLAGS) -o $@ $(PYTHON3_CONFDIR)/config.c \
+- -I$(PYTHON3_CONFDIR) -DHAVE_CONFIG_H -DNO_MAIN
+-
+ objects/if_python.o: if_python.c if_py_both.h
+ $(CCC) $(PYTHON_CFLAGS) $(PYTHON_CFLAGS_EXTRA) -o $@ if_python.c
+
+--- 2559,2569 ----
+*** ../vim-7.3.612/src/auto/configure 2012-06-13 19:19:36.000000000 +0200
+--- src/auto/configure 2012-07-25 16:23:49.000000000 +0200
+***************
+*** 5357,5367 ****
+ PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ fi
+ PYTHON_SRC="if_python.c"
+! if test "x$MACOSX" = "xyes"; then
+! PYTHON_OBJ="objects/if_python.o"
+! else
+! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
+! fi
+ if test "${vi_cv_var_python_version}" = "1.4"; then
+ PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ fi
+--- 5357,5363 ----
+ PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ fi
+ PYTHON_SRC="if_python.c"
+! PYTHON_OBJ="objects/if_python.o"
+ if test "${vi_cv_var_python_version}" = "1.4"; then
+ PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ fi
+***************
+*** 5656,5666 ****
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+! if test "x$MACOSX" = "xyes"; then
+! PYTHON3_OBJ="objects/if_python3.o"
+! else
+! PYTHON3_OBJ="objects/if_python3.o objects/py3_config.o"
+! fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
+ $as_echo_n "checking if -pthread should be used... " >&6; }
+--- 5652,5658 ----
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+! PYTHON3_OBJ="objects/if_python3.o"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
+ $as_echo_n "checking if -pthread should be used... " >&6; }
+*** ../vim-7.3.612/src/configure.in 2012-06-13 19:19:36.000000000 +0200
+--- src/configure.in 2012-07-25 16:23:41.000000000 +0200
+***************
+*** 916,927 ****
+ PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ fi
+ PYTHON_SRC="if_python.c"
+! dnl For Mac OSX 10.2 config.o is included in the Python library.
+! if test "x$MACOSX" = "xyes"; then
+! PYTHON_OBJ="objects/if_python.o"
+! else
+! PYTHON_OBJ="objects/if_python.o objects/py_config.o"
+! fi
+ if test "${vi_cv_var_python_version}" = "1.4"; then
+ PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ fi
+--- 916,922 ----
+ PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
+ fi
+ PYTHON_SRC="if_python.c"
+! PYTHON_OBJ="objects/if_python.o"
+ if test "${vi_cv_var_python_version}" = "1.4"; then
+ PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
+ fi
+***************
+*** 1106,1117 ****
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+! dnl For Mac OSX 10.2 config.o is included in the Python library.
+! if test "x$MACOSX" = "xyes"; then
+! PYTHON3_OBJ="objects/if_python3.o"
+! else
+! PYTHON3_OBJ="objects/if_python3.o objects/py3_config.o"
+! fi
+
+ dnl On FreeBSD linking with "-pthread" is required to use threads.
+ dnl _THREAD_SAFE must be used for compiling then.
+--- 1101,1107 ----
+ PYTHON3_CFLAGS="-I${vi_cv_path_python3_pfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -I${vi_cv_path_python3_epfx}/include/python${vi_cv_var_python3_version}${vi_cv_var_python3_abiflags} -DPYTHON3_HOME=L\\\"${vi_cv_path_python3_pfx}\\\""
+ fi
+ PYTHON3_SRC="if_python3.c"
+! PYTHON3_OBJ="objects/if_python3.o"
+
+ dnl On FreeBSD linking with "-pthread" is required to use threads.
+ dnl _THREAD_SAFE must be used for compiling then.
+*** ../vim-7.3.612/src/version.c 2012-07-25 16:09:59.000000000 +0200
+--- src/version.c 2012-07-25 16:29:52.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 613,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+170. You introduce your wife as "my_lady@home.wife" and refer to your
+ children as "forked processes."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.614 b/source/ap/vim/patches/7.3.614
new file mode 100644
index 000000000..87d7a4512
--- /dev/null
+++ b/source/ap/vim/patches/7.3.614
@@ -0,0 +1,176 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.614
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.614
+Problem: Number argument gets turned into a number while it should be a
+ string.
+Solution: Add flag to the call_vim_function() call. (Yasuhiro Matsumoto)
+Files: src/edit.c, src/eval.c, src/proto/eval.pro
+
+
+*** ../vim-7.3.613/src/edit.c 2012-07-10 17:14:50.000000000 +0200
+--- src/edit.c 2012-07-25 16:40:07.000000000 +0200
+***************
+*** 3959,3965 ****
+ curbuf_save = curbuf;
+
+ /* Call a function, which returns a list or dict. */
+! if (call_vim_function(funcname, 2, args, FALSE, &rettv) == OK)
+ {
+ switch (rettv.v_type)
+ {
+--- 3959,3965 ----
+ curbuf_save = curbuf;
+
+ /* Call a function, which returns a list or dict. */
+! if (call_vim_function(funcname, 2, args, FALSE, FALSE, &rettv) == OK)
+ {
+ switch (rettv.v_type)
+ {
+*** ../vim-7.3.613/src/eval.c 2012-07-19 18:05:40.000000000 +0200
+--- src/eval.c 2012-07-25 16:42:41.000000000 +0200
+***************
+*** 1564,1574 ****
+ * Returns OK or FAIL.
+ */
+ int
+! call_vim_function(func, argc, argv, safe, rettv)
+ char_u *func;
+ int argc;
+ char_u **argv;
+ int safe; /* use the sandbox */
+ typval_T *rettv;
+ {
+ typval_T *argvars;
+--- 1564,1575 ----
+ * Returns OK or FAIL.
+ */
+ int
+! call_vim_function(func, argc, argv, safe, str_arg_only, rettv)
+ char_u *func;
+ int argc;
+ char_u **argv;
+ int safe; /* use the sandbox */
++ int str_arg_only; /* all arguments are strings */
+ typval_T *rettv;
+ {
+ typval_T *argvars;
+***************
+*** 1593,1600 ****
+ continue;
+ }
+
+! /* Recognize a number argument, the others must be strings. */
+! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL);
+ if (len != 0 && len == (int)STRLEN(argv[i]))
+ {
+ argvars[i].v_type = VAR_NUMBER;
+--- 1594,1604 ----
+ continue;
+ }
+
+! if (str_arg_only)
+! len = 0;
+! else
+! /* Recognize a number argument, the others must be strings. */
+! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL);
+ if (len != 0 && len == (int)STRLEN(argv[i]))
+ {
+ argvars[i].v_type = VAR_NUMBER;
+***************
+*** 1646,1652 ****
+ typval_T rettv;
+ char_u *retval;
+
+! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
+ return NULL;
+
+ retval = vim_strsave(get_tv_string(&rettv));
+--- 1650,1657 ----
+ typval_T rettv;
+ char_u *retval;
+
+! /* All arguments are passed as strings, no conversion to number. */
+! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
+ return NULL;
+
+ retval = vim_strsave(get_tv_string(&rettv));
+***************
+*** 1671,1677 ****
+ typval_T rettv;
+ long retval;
+
+! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
+ return -1;
+
+ retval = get_tv_number_chk(&rettv, NULL);
+--- 1676,1683 ----
+ typval_T rettv;
+ long retval;
+
+! /* All arguments are passed as strings, no conversion to number. */
+! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
+ return -1;
+
+ retval = get_tv_number_chk(&rettv, NULL);
+***************
+*** 1694,1700 ****
+ {
+ typval_T rettv;
+
+! if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
+ return NULL;
+
+ if (rettv.v_type != VAR_LIST)
+--- 1700,1707 ----
+ {
+ typval_T rettv;
+
+! /* All arguments are passed as strings, no conversion to number. */
+! if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
+ return NULL;
+
+ if (rettv.v_type != VAR_LIST)
+*** ../vim-7.3.613/src/proto/eval.pro 2012-07-16 17:31:48.000000000 +0200
+--- src/proto/eval.pro 2012-07-25 16:42:59.000000000 +0200
+***************
+*** 23,29 ****
+ list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+ int get_spellword __ARGS((list_T *list, char_u **pp));
+ typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
+! int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, typval_T *rettv));
+ void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
+--- 23,29 ----
+ list_T *eval_spell_expr __ARGS((char_u *badword, char_u *expr));
+ int get_spellword __ARGS((list_T *list, char_u **pp));
+ typval_T *eval_expr __ARGS((char_u *arg, char_u **nextcmd));
+! int call_vim_function __ARGS((char_u *func, int argc, char_u **argv, int safe, int str_arg_only, typval_T *rettv));
+ void *call_func_retstr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ long call_func_retnr __ARGS((char_u *func, int argc, char_u **argv, int safe));
+ void *call_func_retlist __ARGS((char_u *func, int argc, char_u **argv, int safe));
+*** ../vim-7.3.613/src/version.c 2012-07-25 16:32:03.000000000 +0200
+--- src/version.c 2012-07-25 16:46:11.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 614,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+171. You invent another person and chat with yourself in empty chat rooms.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.615 b/source/ap/vim/patches/7.3.615
new file mode 100644
index 000000000..96f6885fa
--- /dev/null
+++ b/source/ap/vim/patches/7.3.615
@@ -0,0 +1,107 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.615
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.615
+Problem: Completion for a user command does not recognize backslash before
+ a space.
+Solution: Recognize escaped characters. (Yasuhiro Matsumoto)
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.614/src/ex_docmd.c 2012-07-10 19:25:06.000000000 +0200
+--- src/ex_docmd.c 2012-07-25 17:10:16.000000000 +0200
+***************
+*** 3390,3401 ****
+ return NULL;
+
+ /* Find start of last argument (argument just before cursor): */
+! p = buff + STRLEN(buff);
+! while (p != arg && *p != ' ' && *p != TAB)
+! p--;
+! if (*p == ' ' || *p == TAB)
+! p++;
+ xp->xp_pattern = p;
+
+ if (ea.argt & XFILE)
+ {
+--- 3390,3412 ----
+ return NULL;
+
+ /* Find start of last argument (argument just before cursor): */
+! p = buff;
+ xp->xp_pattern = p;
++ len = STRLEN(buff);
++ while (*p && p < buff + len)
++ {
++ if (*p == ' ' || *p == TAB)
++ {
++ /* argument starts after a space */
++ xp->xp_pattern = ++p;
++ }
++ else
++ {
++ if (*p == '\\' && *(p + 1) != NUL)
++ ++p; /* skip over escaped character */
++ mb_ptr_adv(p);
++ }
++ }
+
+ if (ea.argt & XFILE)
+ {
+***************
+*** 3821,3828 ****
+ if (compl == EXPAND_MAPPINGS)
+ return set_context_in_map_cmd(xp, (char_u *)"map",
+ arg, forceit, FALSE, FALSE, CMD_map);
+! while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL)
+! arg = xp->xp_pattern + 1;
+ xp->xp_pattern = arg;
+ }
+ xp->xp_context = compl;
+--- 3832,3853 ----
+ if (compl == EXPAND_MAPPINGS)
+ return set_context_in_map_cmd(xp, (char_u *)"map",
+ arg, forceit, FALSE, FALSE, CMD_map);
+! /* Find start of last argument. */
+! p = arg;
+! while (*p)
+! {
+! if (*p == ' ')
+! {
+! /* argument starts after a space */
+! arg = p + 1;
+! }
+! else
+! {
+! if (*p == '\\' && *(p + 1) != NUL)
+! ++p; /* skip over escaped character */
+! mb_ptr_adv(p);
+! }
+! }
+ xp->xp_pattern = arg;
+ }
+ xp->xp_context = compl;
+*** ../vim-7.3.614/src/version.c 2012-07-25 16:46:59.000000000 +0200
+--- src/version.c 2012-07-25 17:17:05.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 615,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+172. You join listservers just for the extra e-mail.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.616 b/source/ap/vim/patches/7.3.616
new file mode 100644
index 000000000..5898eafe9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.616
@@ -0,0 +1,46 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.616
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.616 (after 7.3.610)
+Problem: Can't compile without +visual.
+Solution: Add #ifdef.
+Files: src/normal.c
+
+
+*** ../vim-7.3.615/src/normal.c 2012-07-25 15:06:20.000000000 +0200
+--- src/normal.c 2012-07-27 20:52:01.000000000 +0200
+***************
+*** 8002,8008 ****
+--- 8002,8010 ----
+ */
+ case 'N':
+ case 'n':
++ #ifdef FEAT_VISUAL
+ if (!current_search(cap->count1, cap->nchar == 'n'))
++ #endif
+ beep_flush();
+
+ break;
+*** ../vim-7.3.615/src/version.c 2012-07-25 17:22:17.000000000 +0200
+--- src/version.c 2012-07-27 20:52:58.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 616,
+ /**/
+
+--
+The CIA drives around in cars with the "Intel inside" logo.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.617 b/source/ap/vim/patches/7.3.617
new file mode 100644
index 000000000..48062cd2a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.617
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.617
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.617 (after 7.3.615)
+Problem: Hang on completion.
+Solution: Skip over the space. (Yasuhiro Matsumoto)
+Files: src/ex_docmd.c
+
+
+*** ../vim-7.3.616/src/ex_docmd.c 2012-07-25 17:22:17.000000000 +0200
+--- src/ex_docmd.c 2012-07-27 21:07:42.000000000 +0200
+***************
+*** 3837,3852 ****
+ while (*p)
+ {
+ if (*p == ' ')
+- {
+ /* argument starts after a space */
+ arg = p + 1;
+! }
+! else
+! {
+! if (*p == '\\' && *(p + 1) != NUL)
+! ++p; /* skip over escaped character */
+! mb_ptr_adv(p);
+! }
+ }
+ xp->xp_pattern = arg;
+ }
+--- 3837,3847 ----
+ while (*p)
+ {
+ if (*p == ' ')
+ /* argument starts after a space */
+ arg = p + 1;
+! else if (*p == '\\' && *(p + 1) != NUL)
+! ++p; /* skip over escaped character */
+! mb_ptr_adv(p);
+ }
+ xp->xp_pattern = arg;
+ }
+*** ../vim-7.3.616/src/version.c 2012-07-27 21:05:51.000000000 +0200
+--- src/version.c 2012-07-27 21:08:31.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 617,
+ /**/
+
+--
+If Microsoft would build a car...
+... You'd have to press the "Start" button to turn the engine off.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.618 b/source/ap/vim/patches/7.3.618
new file mode 100644
index 000000000..d0cc9c681
--- /dev/null
+++ b/source/ap/vim/patches/7.3.618
@@ -0,0 +1,367 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.618
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.618 (after 7.3.616)
+Problem: Still doesn't compile with small features.
+Solution: Move current_search() out of #ifdef. (Dominique Pelle)
+Files: src/normal.c, src/search.c
+
+
+*** ../vim-7.3.617/src/normal.c 2012-07-27 21:05:51.000000000 +0200
+--- src/normal.c 2012-07-28 13:34:13.000000000 +0200
+***************
+*** 7995,8000 ****
+--- 7995,8001 ----
+ cap->arg = TRUE;
+ nv_visual(cap);
+ break;
++ #endif /* FEAT_VISUAL */
+
+ /* "gn", "gN" visually select next/previous search match
+ * "gn" selects next match
+***************
+*** 8006,8014 ****
+ if (!current_search(cap->count1, cap->nchar == 'n'))
+ #endif
+ beep_flush();
+-
+ break;
+- #endif /* FEAT_VISUAL */
+
+ /*
+ * "gj" and "gk" two new funny movement keys -- up and down
+--- 8007,8013 ----
+*** ../vim-7.3.617/src/search.c 2012-07-25 15:06:20.000000000 +0200
+--- src/search.c 2012-07-28 13:37:19.000000000 +0200
+***************
+*** 3397,3547 ****
+ return OK;
+ }
+
+- #if defined(FEAT_VISUAL) || defined(PROTO)
+- /*
+- * Find next search match under cursor, cursor at end.
+- * Used while an operator is pending, and in Visual mode.
+- * TODO: redo only works when used in operator pending mode
+- */
+- int
+- current_search(count, forward)
+- long count;
+- int forward; /* move forward or backwards */
+- {
+- pos_T start_pos; /* position before the pattern */
+- pos_T orig_pos; /* position of the cursor at beginning */
+- pos_T pos; /* position after the pattern */
+- int i;
+- int dir;
+- int result; /* result of various function calls */
+- char_u old_p_ws = p_ws;
+- int visual_active = FALSE;
+- int flags = 0;
+- pos_T save_VIsual;
+-
+-
+- /* wrapping should not occur */
+- p_ws = FALSE;
+-
+- /* Correct cursor when 'selection' is exclusive */
+- if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
+- dec_cursor();
+-
+- if (VIsual_active)
+- {
+- orig_pos = curwin->w_cursor;
+- save_VIsual = VIsual;
+- visual_active = TRUE;
+-
+- /* just started visual selection, only one character */
+- if (equalpos(VIsual, curwin->w_cursor))
+- visual_active = FALSE;
+-
+- pos = curwin->w_cursor;
+- start_pos = VIsual;
+-
+- /* make sure, searching further will extend the match */
+- if (VIsual_active)
+- {
+- if (forward)
+- incl(&pos);
+- else
+- decl(&pos);
+- }
+- }
+- else
+- orig_pos = pos = start_pos = curwin->w_cursor;
+-
+- /*
+- * The trick is to first search backwards and then search forward again,
+- * so that a match at the current cursor position will be correctly
+- * captured.
+- */
+- for (i = 0; i < 2; i++)
+- {
+- if (i && count == 1)
+- flags = SEARCH_START;
+-
+- if (forward)
+- dir = i;
+- else
+- dir = !i;
+- result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
+- spats[last_idx].pat, (long) (i ? count : 1),
+- SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
+- RE_SEARCH, 0, NULL);
+-
+- /* First search may fail, but then start searching from the
+- * beginning of the file (cursor might be on the search match)
+- * except when Visual mode is active, so that extending the visual
+- * selection works. */
+- if (!result && i) /* not found, abort */
+- {
+- curwin->w_cursor = orig_pos;
+- if (VIsual_active)
+- VIsual = save_VIsual;
+- p_ws = old_p_ws;
+- return FAIL;
+- }
+- else if (!i && !result && !visual_active)
+- {
+- if (forward) /* try again from start of buffer */
+- {
+- clearpos(&pos);
+- }
+- else /* try again from end of buffer */
+- {
+- /* searching backwards, so set pos to last line and col */
+- pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
+- pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
+- }
+- }
+-
+- }
+-
+- start_pos = pos;
+- flags = (forward ? SEARCH_END : 0);
+-
+- /* move to match */
+- result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
+- spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
+-
+- if (!VIsual_active)
+- VIsual = start_pos;
+-
+- p_ws = old_p_ws;
+- curwin->w_cursor = pos;
+- VIsual_active = TRUE;
+- VIsual_mode = 'v';
+-
+- if (VIsual_active)
+- {
+- redraw_curbuf_later(INVERTED); /* update the inversion */
+- if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
+- inc_cursor();
+- }
+-
+- #ifdef FEAT_FOLDING
+- if (fdo_flags & FDO_SEARCH && KeyTyped)
+- foldOpenCursor();
+- #endif
+-
+- may_start_select('c');
+- #ifdef FEAT_MOUSE
+- setmouse();
+- #endif
+- #ifdef FEAT_CLIPBOARD
+- /* Make sure the clipboard gets updated. Needed because start and
+- * end are still the same, and the selection needs to be owned */
+- clip_star.vmode = NUL;
+- #endif
+- redraw_curbuf_later(INVERTED);
+- showmode();
+-
+- return OK;
+- }
+- #endif /* FEAT_VISUAL */
+-
+ /*
+ * Find sentence(s) under the cursor, cursor at end.
+ * When Visual active, extend it by one or more sentences.
+--- 3397,3402 ----
+***************
+*** 4670,4675 ****
+--- 4525,4675 ----
+
+ #endif /* FEAT_TEXTOBJ */
+
++ #if defined(FEAT_VISUAL) || defined(PROTO)
++ /*
++ * Find next search match under cursor, cursor at end.
++ * Used while an operator is pending, and in Visual mode.
++ * TODO: redo only works when used in operator pending mode
++ */
++ int
++ current_search(count, forward)
++ long count;
++ int forward; /* move forward or backwards */
++ {
++ pos_T start_pos; /* position before the pattern */
++ pos_T orig_pos; /* position of the cursor at beginning */
++ pos_T pos; /* position after the pattern */
++ int i;
++ int dir;
++ int result; /* result of various function calls */
++ char_u old_p_ws = p_ws;
++ int visual_active = FALSE;
++ int flags = 0;
++ pos_T save_VIsual;
++
++
++ /* wrapping should not occur */
++ p_ws = FALSE;
++
++ /* Correct cursor when 'selection' is exclusive */
++ if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
++ dec_cursor();
++
++ if (VIsual_active)
++ {
++ orig_pos = curwin->w_cursor;
++ save_VIsual = VIsual;
++ visual_active = TRUE;
++
++ /* just started visual selection, only one character */
++ if (equalpos(VIsual, curwin->w_cursor))
++ visual_active = FALSE;
++
++ pos = curwin->w_cursor;
++ start_pos = VIsual;
++
++ /* make sure, searching further will extend the match */
++ if (VIsual_active)
++ {
++ if (forward)
++ incl(&pos);
++ else
++ decl(&pos);
++ }
++ }
++ else
++ orig_pos = pos = start_pos = curwin->w_cursor;
++
++ /*
++ * The trick is to first search backwards and then search forward again,
++ * so that a match at the current cursor position will be correctly
++ * captured.
++ */
++ for (i = 0; i < 2; i++)
++ {
++ if (i && count == 1)
++ flags = SEARCH_START;
++
++ if (forward)
++ dir = i;
++ else
++ dir = !i;
++ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
++ spats[last_idx].pat, (long) (i ? count : 1),
++ SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
++ RE_SEARCH, 0, NULL);
++
++ /* First search may fail, but then start searching from the
++ * beginning of the file (cursor might be on the search match)
++ * except when Visual mode is active, so that extending the visual
++ * selection works. */
++ if (!result && i) /* not found, abort */
++ {
++ curwin->w_cursor = orig_pos;
++ if (VIsual_active)
++ VIsual = save_VIsual;
++ p_ws = old_p_ws;
++ return FAIL;
++ }
++ else if (!i && !result && !visual_active)
++ {
++ if (forward) /* try again from start of buffer */
++ {
++ clearpos(&pos);
++ }
++ else /* try again from end of buffer */
++ {
++ /* searching backwards, so set pos to last line and col */
++ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
++ pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
++ }
++ }
++
++ }
++
++ start_pos = pos;
++ flags = (forward ? SEARCH_END : 0);
++
++ /* move to match */
++ result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
++ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
++
++ if (!VIsual_active)
++ VIsual = start_pos;
++
++ p_ws = old_p_ws;
++ curwin->w_cursor = pos;
++ VIsual_active = TRUE;
++ VIsual_mode = 'v';
++
++ if (VIsual_active)
++ {
++ redraw_curbuf_later(INVERTED); /* update the inversion */
++ if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
++ inc_cursor();
++ }
++
++ #ifdef FEAT_FOLDING
++ if (fdo_flags & FDO_SEARCH && KeyTyped)
++ foldOpenCursor();
++ #endif
++
++ may_start_select('c');
++ #ifdef FEAT_MOUSE
++ setmouse();
++ #endif
++ #ifdef FEAT_CLIPBOARD
++ /* Make sure the clipboard gets updated. Needed because start and
++ * end are still the same, and the selection needs to be owned */
++ clip_star.vmode = NUL;
++ #endif
++ redraw_curbuf_later(INVERTED);
++ showmode();
++
++ return OK;
++ }
++ #endif /* FEAT_VISUAL */
++
+ #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
+ || defined(PROTO)
+ /*
+*** ../vim-7.3.617/src/version.c 2012-07-27 21:12:03.000000000 +0200
+--- src/version.c 2012-07-29 12:54:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 618,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+185. You order fast food over the Internet
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.619 b/source/ap/vim/patches/7.3.619
new file mode 100644
index 000000000..1fedcc786
--- /dev/null
+++ b/source/ap/vim/patches/7.3.619
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.619
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.619
+Problem: When executing a shell command Vim may become slow to respond.
+Solution: Don't wait after every processed message. (idea by Yasuhiro
+ Matsumoto)
+Files: src/os_win32.c
+
+
+*** ../vim-7.3.618/src/os_win32.c 2012-07-19 11:37:22.000000000 +0200
+--- src/os_win32.c 2012-08-02 12:30:52.000000000 +0200
+***************
+*** 3319,3324 ****
+--- 3319,3326 ----
+ {
+ TranslateMessage(&msg);
+ pDispatchMessage(&msg);
++ delay = 1;
++ continue;
+ }
+ if (WaitForSingleObject(pi.hProcess, delay) != WAIT_TIMEOUT)
+ break;
+*** ../vim-7.3.618/src/version.c 2012-07-29 12:55:21.000000000 +0200
+--- src/version.c 2012-08-02 12:29:08.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 619,
+ /**/
+
+--
+Some of the well know MS-Windows errors:
+ EMULTI Multitasking attempted, system confused
+ EKEYBOARD Keyboard locked, try getting out of this one!
+ EXPLAIN Unexplained error, please tell us what happened
+ EFUTURE Reserved for our future mistakes
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.620 b/source/ap/vim/patches/7.3.620
new file mode 100644
index 000000000..5890f15f9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.620
@@ -0,0 +1,163 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.620
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.620
+Problem: Building with recent Ruby on Win32 doesn't work.
+Solution: Add a separate argument for the API version. (Yasuhiro Matsumoto)
+Files: src/Make_ming.mak, src/Make_mvc.mak
+
+
+*** ../vim-7.3.619/src/Make_ming.mak 2012-07-06 13:40:44.000000000 +0200
+--- src/Make_ming.mak 2012-08-02 17:02:34.000000000 +0200
+***************
+*** 260,266 ****
+ # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
+ # RUBY_VER=[Ruby version, eg 16, 17] (default is 16)
+ # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6)
+! # You must set RUBY_VER_LONG when change RUBY_VER.
+ #RUBY=c:/ruby
+ ifdef RUBY
+ ifndef DYNAMIC_RUBY
+--- 260,268 ----
+ # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically)
+ # RUBY_VER=[Ruby version, eg 16, 17] (default is 16)
+ # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6)
+! # You must set RUBY_VER_LONG when changing RUBY_VER.
+! # You must set RUBY_API_VER version to RUBY_VER_LONG.
+! # Don't set ruby API version to RUBY_VER like 191.
+ #RUBY=c:/ruby
+ ifdef RUBY
+ ifndef DYNAMIC_RUBY
+***************
+*** 273,278 ****
+--- 275,283 ----
+ ifndef RUBY_VER_LONG
+ RUBY_VER_LONG = 1.6
+ endif
++ ifndef RUBY_API_VER
++ RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG))
++ endif
+
+ ifndef RUBY_PLATFORM
+ ifeq ($(RUBY_VER), 16)
+***************
+*** 288,296 ****
+
+ ifndef RUBY_INSTALL_NAME
+ ifeq ($(RUBY_VER), 16)
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
+ else
+! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ endif
+ endif
+
+--- 293,301 ----
+
+ ifndef RUBY_INSTALL_NAME
+ ifeq ($(RUBY_VER), 16)
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
+ else
+! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
+ endif
+ endif
+
+*** ../vim-7.3.619/src/Make_mvc.mak 2012-02-22 16:01:53.000000000 +0100
+--- src/Make_mvc.mak 2012-08-02 17:42:31.000000000 +0200
+***************
+*** 63,68 ****
+--- 63,70 ----
+ # RUBY_VER=[Ruby version, eg 16, 17] (default is 18)
+ # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.8)
+ # You must set RUBY_VER_LONG when change RUBY_VER.
++ # You must set RUBY_API_VER to RUBY_VER_LONG.
++ # Don't set ruby API version to RUBY_VER like 191.
+ #
+ # Tcl interface:
+ # TCL=[Path to Tcl directory]
+***************
+*** 807,834 ****
+ !ifndef RUBY_VER_LONG
+ RUBY_VER_LONG = 1.8
+ !endif
+
+ !if $(RUBY_VER) >= 18
+ !ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i386-mswin32
+ !endif
+ !ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_VER)
+ !endif
+ !else
+ !ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i586-mswin32
+ !endif
+ !ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_VER)
+ !endif
+ !endif # $(RUBY_VER) >= 18
+
+ !message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
+ CFLAGS = $(CFLAGS) -DFEAT_RUBY
+ RUBY_OBJ = $(OUTDIR)\if_ruby.obj
+! !if $(RUBY_VER) >= 190
+! RUBY_INC = /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)\$(RUBY_PLATFORM)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)"
+ !else
+ RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
+ !endif
+--- 813,843 ----
+ !ifndef RUBY_VER_LONG
+ RUBY_VER_LONG = 1.8
+ !endif
++ !ifndef RUBY_API_VER
++ RUBY_API_VER = $(RUBY_VER_LONG:.=)
++ !endif
+
+ !if $(RUBY_VER) >= 18
+ !ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i386-mswin32
+ !endif
+ !ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER)
+ !endif
+ !else
+ !ifndef RUBY_PLATFORM
+ RUBY_PLATFORM = i586-mswin32
+ !endif
+ !ifndef RUBY_INSTALL_NAME
+! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER)
+ !endif
+ !endif # $(RUBY_VER) >= 18
+
+ !message Ruby requested (version $(RUBY_VER)) - root dir is "$(RUBY)"
+ CFLAGS = $(CFLAGS) -DFEAT_RUBY
+ RUBY_OBJ = $(OUTDIR)\if_ruby.obj
+! !if $(RUBY_VER) >= 19
+! RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)" /I "$(RUBY)\include\ruby-$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
+ !else
+ RUBY_INC = /I "$(RUBY)\lib\ruby\$(RUBY_VER_LONG)\$(RUBY_PLATFORM)"
+ !endif
+*** ../vim-7.3.619/src/version.c 2012-08-02 12:31:40.000000000 +0200
+--- src/version.c 2012-08-02 21:20:28.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 620,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+199. You read this entire list of symptoms, looking for something
+ that doesn't describe you.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.621 b/source/ap/vim/patches/7.3.621
new file mode 100644
index 000000000..7e3fe2a55
--- /dev/null
+++ b/source/ap/vim/patches/7.3.621
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.621
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.621
+Problem: Compiler warnings on 64 bit windows.
+Solution: Add type casts. (Mike Williams)
+Files: src/ex_docmd.c, src/search.c
+
+
+*** ../vim-7.3.620/src/ex_docmd.c 2012-07-27 21:12:03.000000000 +0200
+--- src/ex_docmd.c 2012-08-02 21:19:22.000000000 +0200
+***************
+*** 3392,3398 ****
+ /* Find start of last argument (argument just before cursor): */
+ p = buff;
+ xp->xp_pattern = p;
+! len = STRLEN(buff);
+ while (*p && p < buff + len)
+ {
+ if (*p == ' ' || *p == TAB)
+--- 3392,3398 ----
+ /* Find start of last argument (argument just before cursor): */
+ p = buff;
+ xp->xp_pattern = p;
+! len = (int)STRLEN(buff);
+ while (*p && p < buff + len)
+ {
+ if (*p == ' ' || *p == TAB)
+*** ../vim-7.3.620/src/search.c 2012-07-29 12:55:21.000000000 +0200
+--- src/search.c 2012-08-02 21:20:02.000000000 +0200
+***************
+*** 4621,4627 ****
+ {
+ /* searching backwards, so set pos to last line and col */
+ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
+! pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
+ }
+ }
+
+--- 4621,4628 ----
+ {
+ /* searching backwards, so set pos to last line and col */
+ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
+! pos.col = (colnr_T)STRLEN(
+! ml_get(curwin->w_buffer->b_ml.ml_line_count));
+ }
+ }
+
+*** ../vim-7.3.620/src/version.c 2012-08-02 21:21:43.000000000 +0200
+--- src/version.c 2012-08-02 21:23:13.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 621,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+200. You really believe in the concept of a "paperless" office.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.622 b/source/ap/vim/patches/7.3.622
new file mode 100644
index 000000000..a2c260147
--- /dev/null
+++ b/source/ap/vim/patches/7.3.622
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.622
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.622
+Problem: XPM library for Win32 can't be found.
+Solution: Suggest using the one from the Vim ftp site.
+Files: src/Make_mvc.mak
+
+
+*** ../vim-7.3.621/src/Make_mvc.mak 2012-08-02 21:21:43.000000000 +0200
+--- src/Make_mvc.mak 2012-08-02 21:45:52.000000000 +0200
+***************
+*** 281,287 ****
+
+ !ifdef XPM
+ # XPM - Include support for XPM signs
+! # you can get xpm.lib from http://iamphet.nm.ru/xpm or create it yourself
+ XPM_OBJ = $(OBJDIR)/xpm_w32.obj
+ XPM_DEFS = -DFEAT_XPM_W32
+ XPM_LIB = $(XPM)\lib\libXpm.lib
+--- 281,291 ----
+
+ !ifdef XPM
+ # XPM - Include support for XPM signs
+! # You need to download or build xpm.lib somehow.
+! # You can get the most recent version of libXpm-*.zip from
+! # http://cgit.freedesktop.org/xorg/lib/libXpm
+! # from which you must build xpm.lib yourself
+! # OR get and unpack: ftp://ftp.vim.org/pub/vim/pcextra/xpm.zip
+ XPM_OBJ = $(OBJDIR)/xpm_w32.obj
+ XPM_DEFS = -DFEAT_XPM_W32
+ XPM_LIB = $(XPM)\lib\libXpm.lib
+*** ../vim-7.3.621/src/version.c 2012-08-02 21:24:38.000000000 +0200
+--- src/version.c 2012-08-02 21:46:43.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 622,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+202. You're amazed to find out Spam is a food.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.623 b/source/ap/vim/patches/7.3.623
new file mode 100644
index 000000000..72aea71f6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.623
@@ -0,0 +1,92 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.623
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.623
+Problem: Perl 5.14 commands crash Vim on MS-Windows.
+Solution: Use perl_get_sv() instead of GvSV(). (Raymond Ko)
+Files: src/if_perl.xs
+
+
+*** ../vim-7.3.622/src/if_perl.xs 2012-03-16 19:34:43.000000000 +0100
+--- src/if_perl.xs 2012-08-08 13:15:29.000000000 +0200
+***************
+*** 76,81 ****
+--- 76,87 ----
+ # define EXTERN_C
+ #endif
+
++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) && defined(_MSC_VER)
++ /* Using PL_errgv to get the error message after perl_eval_sv() causes a crash
++ * with MSVC and Perl version 5.14. */
++ # define AVOID_PL_ERRGV
++ #endif
++
+ /* Compatibility hacks over */
+
+ static PerlInterpreter *perl_interp = NULL;
+***************
+*** 796,802 ****
+--- 802,812 ----
+
+ SvREFCNT_dec(sv);
+
++ #ifdef AVOID_PL_ERRGV
++ err = SvPV(perl_get_sv("@", GV_ADD), length);
++ #else
+ err = SvPV(GvSV(PL_errgv), length);
++ #endif
+
+ FREETMPS;
+ LEAVE;
+***************
+*** 866,872 ****
+--- 876,886 ----
+ sv_catpvn(sv, "}", 1);
+ perl_eval_sv(sv, G_DISCARD | G_NOARGS);
+ SvREFCNT_dec(sv);
++ #ifdef AVOID_PL_ERRGV
++ str = SvPV(perl_get_sv("@", GV_ADD), length);
++ #else
+ str = SvPV(GvSV(PL_errgv), length);
++ #endif
+ if (length)
+ goto err;
+
+***************
+*** 880,886 ****
+--- 894,904 ----
+ sv_setpv(GvSV(PL_defgv), (char *)ml_get(i));
+ PUSHMARK(sp);
+ perl_call_pv("VIM::perldo", G_SCALAR | G_EVAL);
++ #ifdef AVOID_PL_ERRGV
++ str = SvPV(perl_get_sv("@", GV_ADD), length);
++ #else
+ str = SvPV(GvSV(PL_errgv), length);
++ #endif
+ if (length)
+ break;
+ SPAGAIN;
+*** ../vim-7.3.622/src/version.c 2012-08-02 21:48:20.000000000 +0200
+--- src/version.c 2012-08-08 13:08:10.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 623,
+ /**/
+
+--
+Don't be humble ... you're not that great.
+ -- Golda Meir
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.624 b/source/ap/vim/patches/7.3.624
new file mode 100644
index 000000000..f1150b634
--- /dev/null
+++ b/source/ap/vim/patches/7.3.624
@@ -0,0 +1,52 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.624
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.624
+Problem: When cancelling input() it returns the third argument. That should
+ only happen for inputdialog().
+Solution: Check if inputdialog() was used. (Hirohito Higashi)
+Files: src/eval.c
+
+
+*** ../vim-7.3.623/src/eval.c 2012-07-25 16:46:59.000000000 +0200
+--- src/eval.c 2012-08-08 14:31:48.000000000 +0200
+***************
+*** 12966,12972 ****
+ rettv->vval.v_string =
+ getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
+ xp_type, xp_arg);
+! if (rettv->vval.v_string == NULL
+ && argvars[1].v_type != VAR_UNKNOWN
+ && argvars[2].v_type != VAR_UNKNOWN)
+ rettv->vval.v_string = vim_strsave(get_tv_string_buf(
+--- 12966,12972 ----
+ rettv->vval.v_string =
+ getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
+ xp_type, xp_arg);
+! if (inputdialog && rettv->vval.v_string == NULL
+ && argvars[1].v_type != VAR_UNKNOWN
+ && argvars[2].v_type != VAR_UNKNOWN)
+ rettv->vval.v_string = vim_strsave(get_tv_string_buf(
+*** ../vim-7.3.623/src/version.c 2012-08-08 13:17:26.000000000 +0200
+--- src/version.c 2012-08-08 14:28:46.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 624,
+ /**/
+
+--
+Your fault: core dumped
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.625 b/source/ap/vim/patches/7.3.625
new file mode 100644
index 000000000..5334bc8f9
--- /dev/null
+++ b/source/ap/vim/patches/7.3.625
@@ -0,0 +1,140 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.625
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.625
+Problem: "gn" does not handle zero-width matches correctly.
+Solution: Handle zero-width patterns specially. (Christian Brabandt)
+Files: src/search.c
+
+
+*** ../vim-7.3.624/src/search.c 2012-08-02 21:24:38.000000000 +0200
+--- src/search.c 2012-08-08 15:25:12.000000000 +0200
+***************
+*** 4546,4551 ****
+--- 4546,4554 ----
+ int visual_active = FALSE;
+ int flags = 0;
+ pos_T save_VIsual;
++ regmmatch_T regmatch;
++ int nmatched = 0;
++ int zerowidth = FALSE;
+
+
+ /* wrapping should not occur */
+***************
+*** 4581,4603 ****
+ orig_pos = pos = start_pos = curwin->w_cursor;
+
+ /*
+ * The trick is to first search backwards and then search forward again,
+ * so that a match at the current cursor position will be correctly
+ * captured.
+ */
+ for (i = 0; i < 2; i++)
+ {
+- if (i && count == 1)
+- flags = SEARCH_START;
+-
+ if (forward)
+ dir = i;
+ else
+ dir = !i;
+ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
+ spats[last_idx].pat, (long) (i ? count : 1),
+! SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
+! RE_SEARCH, 0, NULL);
+
+ /* First search may fail, but then start searching from the
+ * beginning of the file (cursor might be on the search match)
+--- 4584,4625 ----
+ orig_pos = pos = start_pos = curwin->w_cursor;
+
+ /*
++ * Check for zero-width pattern.
++ */
++ if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
++ ((SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
++ return FAIL;
++
++ /* Zero-width pattern should match somewhere, then we can check if start
++ * and end are in the same position. */
++ nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
++ curwin->w_cursor.lnum, (colnr_T)0, NULL);
++ if (called_emsg)
++ return FAIL;
++ if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
++ && regmatch.endpos[0].col == regmatch.startpos[0].col)
++ zerowidth = TRUE;
++ vim_free(regmatch.regprog);
++
++ /*
+ * The trick is to first search backwards and then search forward again,
+ * so that a match at the current cursor position will be correctly
+ * captured.
+ */
+ for (i = 0; i < 2; i++)
+ {
+ if (forward)
+ dir = i;
+ else
+ dir = !i;
++
++ flags = 0;
++ if (!dir && !zerowidth)
++ flags = SEARCH_END;
++
+ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
+ spats[last_idx].pat, (long) (i ? count : 1),
+! SEARCH_KEEP | flags, RE_SEARCH, 0, NULL);
+
+ /* First search may fail, but then start searching from the
+ * beginning of the file (cursor might be on the search match)
+***************
+*** 4629,4638 ****
+ }
+
+ start_pos = pos;
+! flags = (forward ? SEARCH_END : 0);
+
+! /* move to match */
+! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
+ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
+
+ if (!VIsual_active)
+--- 4651,4662 ----
+ }
+
+ start_pos = pos;
+! flags = forward ? SEARCH_END : 0;
+
+! /* move to match, except for zero-width matches, in which case, we are
+! * already on the next match */
+! if (!zerowidth)
+! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
+ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
+
+ if (!VIsual_active)
+*** ../vim-7.3.624/src/version.c 2012-08-08 14:33:16.000000000 +0200
+--- src/version.c 2012-08-08 15:21:53.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 625,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+222. You send more than 20 personal e-mails a day.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.626 b/source/ap/vim/patches/7.3.626
new file mode 100644
index 000000000..33b154565
--- /dev/null
+++ b/source/ap/vim/patches/7.3.626
@@ -0,0 +1,49 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.626
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.626
+Problem: Python interface doesn't build with Python 2.4 or older.
+Solution: Define Py_ssize_t. (Benjamin Bannier)
+Files: src/if_py_both.h
+
+
+*** ../vim-7.3.625/src/if_py_both.h 2012-07-25 15:36:00.000000000 +0200
+--- src/if_py_both.h 2012-08-08 15:53:24.000000000 +0200
+***************
+*** 12,17 ****
+--- 12,21 ----
+ * Common code for if_python.c and if_python3.c.
+ */
+
++ #if PY_VERSION_HEX < 0x02050000
++ typedef int Py_ssize_t; /* Python 2.4 and earlier don't have this type. */
++ #endif
++
+ #ifdef FEAT_MBYTE
+ # define ENC_OPT p_enc
+ #else
+*** ../vim-7.3.625/src/version.c 2012-08-08 15:27:54.000000000 +0200
+--- src/version.c 2012-08-08 15:52:07.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 626,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+224. You set up your own Web page. You set up a Web page for each
+ of your kids... and your pets.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.627 b/source/ap/vim/patches/7.3.627
new file mode 100644
index 000000000..97a0298dc
--- /dev/null
+++ b/source/ap/vim/patches/7.3.627
@@ -0,0 +1,102 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.627
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.627
+Problem: When using the "n" flag with the ":s" command a \= substitution
+ will not be evaluated.
+Solution: Do perform the evaluation, so that a function can be invoked at
+ every matching position without changing the text. (Christian
+ Brabandt)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.3.626/src/ex_cmds.c 2012-07-10 15:18:18.000000000 +0200
+--- src/ex_cmds.c 2012-08-08 16:44:16.000000000 +0200
+***************
+*** 4264,4269 ****
+--- 4264,4272 ----
+ int endcolumn = FALSE; /* cursor in last column when done */
+ pos_T old_cursor = curwin->w_cursor;
+ int start_nsubs;
++ #ifdef FEAT_EVAL
++ int save_ma = 0;
++ #endif
+
+ cmd = eap->arg;
+ if (!global_busy)
+***************
+*** 4668,4674 ****
+ }
+ sub_nsubs++;
+ did_sub = TRUE;
+! goto skip;
+ }
+
+ if (do_ask)
+--- 4671,4682 ----
+ }
+ sub_nsubs++;
+ did_sub = TRUE;
+! #ifdef FEAT_EVAL
+! /* Skip the substitution, unless an expression is used,
+! * then it is evaluated in the sandbox. */
+! if (!(sub[0] == '\\' && sub[1] == '='))
+! #endif
+! goto skip;
+ }
+
+ if (do_ask)
+***************
+*** 4840,4849 ****
+--- 4848,4874 ----
+ /*
+ * 3. substitute the string.
+ */
++ #ifdef FEAT_EVAL
++ if (do_count)
++ {
++ /* prevent accidently changing the buffer by a function */
++ save_ma = curbuf->b_p_ma;
++ curbuf->b_p_ma = FALSE;
++ sandbox++;
++ }
++ #endif
+ /* get length of substitution part */
+ sublen = vim_regsub_multi(&regmatch,
+ sub_firstlnum - regmatch.startpos[0].lnum,
+ sub, sub_firstline, FALSE, p_magic, TRUE);
++ #ifdef FEAT_EVAL
++ if (do_count)
++ {
++ curbuf->b_p_ma = save_ma;
++ sandbox--;
++ goto skip;
++ }
++ #endif
+
+ /* When the match included the "$" of the last line it may
+ * go beyond the last line of the buffer. */
+*** ../vim-7.3.626/src/version.c 2012-08-08 16:05:03.000000000 +0200
+--- src/version.c 2012-08-08 16:48:45.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 627,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+225. You sign up for free subscriptions for all the computer magazines
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.628 b/source/ap/vim/patches/7.3.628
new file mode 100644
index 000000000..bab314796
--- /dev/null
+++ b/source/ap/vim/patches/7.3.628
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.628
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.628
+Problem: ":open" does not allow for a !, which results in a confusing error
+ message. (Shawn Wilson)
+Solution: Allow ! on ":open". (Christian Brabandt)
+Files: src/ex_cmds.h
+
+
+*** ../vim-7.3.627/src/ex_cmds.h 2012-07-06 18:27:34.000000000 +0200
+--- src/ex_cmds.h 2012-08-08 17:15:45.000000000 +0200
+***************
+*** 662,668 ****
+ EX(CMD_nunmenu, "nunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_open, "open", ex_open,
+! RANGE|EXTRA),
+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
+ BANG|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_omap, "omap", ex_map,
+--- 662,668 ----
+ EX(CMD_nunmenu, "nunmenu", ex_menu,
+ EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN),
+ EX(CMD_open, "open", ex_open,
+! RANGE|BANG|EXTRA),
+ EX(CMD_oldfiles, "oldfiles", ex_oldfiles,
+ BANG|TRLBAR|SBOXOK|CMDWIN),
+ EX(CMD_omap, "omap", ex_map,
+*** ../vim-7.3.627/src/version.c 2012-08-08 16:50:40.000000000 +0200
+--- src/version.c 2012-08-08 17:30:14.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 628,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+226. You sit down at the computer right after dinner and your spouse
+ says "See you in the morning."
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.629 b/source/ap/vim/patches/7.3.629
new file mode 100644
index 000000000..8e26dd49d
--- /dev/null
+++ b/source/ap/vim/patches/7.3.629
@@ -0,0 +1,437 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.629
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.629
+Problem: There is no way to make 'shiftwidth' follow 'tabstop'.
+Solution: When 'shiftwidth' is zero use the value of 'tabstop'. (Christian
+ Brabandt)
+Files: src/edit.c, src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c,
+ src/option.c, src/proto/option.pro
+
+
+*** ../vim-7.3.628/src/edit.c 2012-07-25 16:46:59.000000000 +0200
+--- src/edit.c 2012-08-08 17:55:37.000000000 +0200
+***************
+*** 8899,8907 ****
+
+ *inserted_space_p = FALSE;
+ if (p_sta && in_indent)
+! ts = curbuf->b_p_sw;
+ else
+! ts = curbuf->b_p_sts;
+ /* Compute the virtual column where we want to be. Since
+ * 'showbreak' may get in the way, need to get the last column of
+ * the previous character. */
+--- 8899,8907 ----
+
+ *inserted_space_p = FALSE;
+ if (p_sta && in_indent)
+! ts = (int)get_sw_value();
+ else
+! ts = (int)curbuf->b_p_sts;
+ /* Compute the virtual column where we want to be. Since
+ * 'showbreak' may get in the way, need to get the last column of
+ * the previous character. */
+***************
+*** 9589,9595 ****
+ * When nothing special, insert TAB like a normal character
+ */
+ if (!curbuf->b_p_et
+! && !(p_sta && ind && curbuf->b_p_ts != curbuf->b_p_sw)
+ && curbuf->b_p_sts == 0)
+ return TRUE;
+
+--- 9589,9595 ----
+ * When nothing special, insert TAB like a normal character
+ */
+ if (!curbuf->b_p_et
+! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value())
+ && curbuf->b_p_sts == 0)
+ return TRUE;
+
+***************
+*** 9605,9611 ****
+ AppendToRedobuff((char_u *)"\t");
+
+ if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
+! temp = (int)curbuf->b_p_sw;
+ else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
+ temp = (int)curbuf->b_p_sts;
+ else /* otherwise use 'tabstop' */
+--- 9605,9611 ----
+ AppendToRedobuff((char_u *)"\t");
+
+ if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
+! temp = (int)get_sw_value();
+ else if (curbuf->b_p_sts > 0) /* use 'softtabstop' when set */
+ temp = (int)curbuf->b_p_sts;
+ else /* otherwise use 'tabstop' */
+*** ../vim-7.3.628/src/ex_getln.c 2012-06-29 13:44:37.000000000 +0200
+--- src/ex_getln.c 2012-08-08 17:39:40.000000000 +0200
+***************
+*** 2268,2277 ****
+
+ if (c1 == Ctrl_T)
+ {
+ p = (char_u *)line_ga.ga_data;
+ p[line_ga.ga_len] = NUL;
+ indent = get_indent_str(p, 8);
+! indent += curbuf->b_p_sw - indent % curbuf->b_p_sw;
+ add_indent:
+ while (get_indent_str(p, 8) < indent)
+ {
+--- 2268,2279 ----
+
+ if (c1 == Ctrl_T)
+ {
++ long sw = get_sw_value();
++
+ p = (char_u *)line_ga.ga_data;
+ p[line_ga.ga_len] = NUL;
+ indent = get_indent_str(p, 8);
+! indent += sw - indent % sw;
+ add_indent:
+ while (get_indent_str(p, 8) < indent)
+ {
+***************
+*** 2323,2329 ****
+ p[line_ga.ga_len] = NUL;
+ indent = get_indent_str(p, 8);
+ --indent;
+! indent -= indent % curbuf->b_p_sw;
+ }
+ while (get_indent_str(p, 8) > indent)
+ {
+--- 2325,2331 ----
+ p[line_ga.ga_len] = NUL;
+ indent = get_indent_str(p, 8);
+ --indent;
+! indent -= indent % get_sw_value();
+ }
+ while (get_indent_str(p, 8) > indent)
+ {
+*** ../vim-7.3.628/src/fold.c 2012-02-29 19:19:57.000000000 +0100
+--- src/fold.c 2012-08-08 17:40:11.000000000 +0200
+***************
+*** 3025,3031 ****
+ flp->lvl = -1;
+ }
+ else
+! flp->lvl = get_indent_buf(buf, lnum) / buf->b_p_sw;
+ if (flp->lvl > flp->wp->w_p_fdn)
+ {
+ flp->lvl = flp->wp->w_p_fdn;
+--- 3025,3031 ----
+ flp->lvl = -1;
+ }
+ else
+! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value();
+ if (flp->lvl > flp->wp->w_p_fdn)
+ {
+ flp->lvl = flp->wp->w_p_fdn;
+*** ../vim-7.3.628/src/misc1.c 2012-07-25 16:09:59.000000000 +0200
+--- src/misc1.c 2012-08-08 17:43:07.000000000 +0200
+***************
+*** 1389,1397 ****
+ #ifdef FEAT_SMARTINDENT
+ if (did_si)
+ {
+ if (p_sr)
+! newindent -= newindent % (int)curbuf->b_p_sw;
+! newindent += (int)curbuf->b_p_sw;
+ }
+ #endif
+ /* Copy the indent */
+--- 1389,1399 ----
+ #ifdef FEAT_SMARTINDENT
+ if (did_si)
+ {
++ int sw = (int)get_sw_value();
++
+ if (p_sr)
+! newindent -= newindent % sw;
+! newindent += sw;
+ }
+ #endif
+ /* Copy the indent */
+***************
+*** 6461,6471 ****
+ int
+ get_c_indent()
+ {
+ /*
+ * spaces from a block's opening brace the prevailing indent for that
+ * block should be
+ */
+! int ind_level = curbuf->b_p_sw;
+
+ /*
+ * spaces from the edge of the line an open brace that's at the end of a
+--- 6463,6476 ----
+ int
+ get_c_indent()
+ {
++ int sw = (int)get_sw_value();
++
+ /*
+ * spaces from a block's opening brace the prevailing indent for that
+ * block should be
+ */
+!
+! int ind_level = sw;
+
+ /*
+ * spaces from the edge of the line an open brace that's at the end of a
+***************
+*** 6512,6523 ****
+ /*
+ * spaces from the switch() indent a "case xx" label should be located
+ */
+! int ind_case = curbuf->b_p_sw;
+
+ /*
+ * spaces from the "case xx:" code after a switch() should be located
+ */
+! int ind_case_code = curbuf->b_p_sw;
+
+ /*
+ * lineup break at end of case in switch() with case label
+--- 6517,6528 ----
+ /*
+ * spaces from the switch() indent a "case xx" label should be located
+ */
+! int ind_case = sw;
+
+ /*
+ * spaces from the "case xx:" code after a switch() should be located
+ */
+! int ind_case_code = sw;
+
+ /*
+ * lineup break at end of case in switch() with case label
+***************
+*** 6528,6572 ****
+ * spaces from the class declaration indent a scope declaration label
+ * should be located
+ */
+! int ind_scopedecl = curbuf->b_p_sw;
+
+ /*
+ * spaces from the scope declaration label code should be located
+ */
+! int ind_scopedecl_code = curbuf->b_p_sw;
+
+ /*
+ * amount K&R-style parameters should be indented
+ */
+! int ind_param = curbuf->b_p_sw;
+
+ /*
+ * amount a function type spec should be indented
+ */
+! int ind_func_type = curbuf->b_p_sw;
+
+ /*
+ * amount a cpp base class declaration or constructor initialization
+ * should be indented
+ */
+! int ind_cpp_baseclass = curbuf->b_p_sw;
+
+ /*
+ * additional spaces beyond the prevailing indent a continuation line
+ * should be located
+ */
+! int ind_continuation = curbuf->b_p_sw;
+
+ /*
+ * spaces from the indent of the line with an unclosed parentheses
+ */
+! int ind_unclosed = curbuf->b_p_sw * 2;
+
+ /*
+ * spaces from the indent of the line with an unclosed parentheses, which
+ * itself is also unclosed
+ */
+! int ind_unclosed2 = curbuf->b_p_sw;
+
+ /*
+ * suppress ignoring spaces from the indent of a line starting with an
+--- 6533,6577 ----
+ * spaces from the class declaration indent a scope declaration label
+ * should be located
+ */
+! int ind_scopedecl = sw;
+
+ /*
+ * spaces from the scope declaration label code should be located
+ */
+! int ind_scopedecl_code = sw;
+
+ /*
+ * amount K&R-style parameters should be indented
+ */
+! int ind_param = sw;
+
+ /*
+ * amount a function type spec should be indented
+ */
+! int ind_func_type = sw;
+
+ /*
+ * amount a cpp base class declaration or constructor initialization
+ * should be indented
+ */
+! int ind_cpp_baseclass = sw;
+
+ /*
+ * additional spaces beyond the prevailing indent a continuation line
+ * should be located
+ */
+! int ind_continuation = sw;
+
+ /*
+ * spaces from the indent of the line with an unclosed parentheses
+ */
+! int ind_unclosed = sw * 2;
+
+ /*
+ * spaces from the indent of the line with an unclosed parentheses, which
+ * itself is also unclosed
+ */
+! int ind_unclosed2 = sw;
+
+ /*
+ * suppress ignoring spaces from the indent of a line starting with an
+***************
+*** 6719,6730 ****
+ if (*options == 's') /* "2s" means two times 'shiftwidth' */
+ {
+ if (options == digits)
+! n = curbuf->b_p_sw; /* just "s" is one 'shiftwidth' */
+ else
+ {
+! n *= curbuf->b_p_sw;
+ if (divider)
+! n += (curbuf->b_p_sw * fraction + divider / 2) / divider;
+ }
+ ++options;
+ }
+--- 6724,6735 ----
+ if (*options == 's') /* "2s" means two times 'shiftwidth' */
+ {
+ if (options == digits)
+! n = sw; /* just "s" is one 'shiftwidth' */
+ else
+ {
+! n *= sw;
+ if (divider)
+! n += (sw * fraction + divider / 2) / divider;
+ }
+ ++options;
+ }
+*** ../vim-7.3.628/src/ops.c 2012-07-10 16:49:08.000000000 +0200
+--- src/ops.c 2012-08-08 17:34:28.000000000 +0200
+***************
+*** 332,338 ****
+ {
+ int count;
+ int i, j;
+! int p_sw = (int)curbuf->b_p_sw;
+
+ count = get_indent(); /* get current indent */
+
+--- 332,338 ----
+ {
+ int count;
+ int i, j;
+! int p_sw = (int)get_sw_value();
+
+ count = get_indent(); /* get current indent */
+
+***************
+*** 388,394 ****
+ int total;
+ char_u *newp, *oldp;
+ int oldcol = curwin->w_cursor.col;
+! int p_sw = (int)curbuf->b_p_sw;
+ int p_ts = (int)curbuf->b_p_ts;
+ struct block_def bd;
+ int incr;
+--- 388,394 ----
+ int total;
+ char_u *newp, *oldp;
+ int oldcol = curwin->w_cursor.col;
+! int p_sw = (int)get_sw_value();
+ int p_ts = (int)curbuf->b_p_ts;
+ struct block_def bd;
+ int incr;
+*** ../vim-7.3.628/src/option.c 2012-07-10 18:31:49.000000000 +0200
+--- src/option.c 2012-08-08 17:45:01.000000000 +0200
+***************
+*** 8125,8131 ****
+ need_mouse_correct = TRUE;
+ #endif
+
+! if (curbuf->b_p_sw <= 0)
+ {
+ errmsg = e_positive;
+ curbuf->b_p_sw = curbuf->b_p_ts;
+--- 8125,8131 ----
+ need_mouse_correct = TRUE;
+ #endif
+
+! if (curbuf->b_p_sw < 0)
+ {
+ errmsg = e_positive;
+ curbuf->b_p_sw = curbuf->b_p_ts;
+***************
+*** 11419,11421 ****
+--- 11419,11431 ----
+ {
+ return check_opt_strings(p, p_ff_values, FALSE);
+ }
++
++ /*
++ * Return the effective shiftwidth value for current buffer, using the
++ * 'tabstop' value when 'shiftwidth' is zero.
++ */
++ long
++ get_sw_value()
++ {
++ return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts;
++ }
+*** ../vim-7.3.628/src/proto/option.pro 2011-01-22 00:11:42.000000000 +0100
+--- src/proto/option.pro 2012-08-08 17:34:33.000000000 +0200
+***************
+*** 56,59 ****
+--- 56,60 ----
+ void save_file_ff __ARGS((buf_T *buf));
+ int file_ff_differs __ARGS((buf_T *buf, int ignore_empty));
+ int check_ff_value __ARGS((char_u *p));
++ long get_sw_value __ARGS((void));
+ /* vim: set ft=c : */
+*** ../vim-7.3.628/src/version.c 2012-08-08 17:31:36.000000000 +0200
+--- src/version.c 2012-08-08 17:57:48.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 629,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+228. You spend Saturday night making the counter on your home page
+ pass that 2000 mark.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.630 b/source/ap/vim/patches/7.3.630
new file mode 100644
index 000000000..d89cfbfe3
--- /dev/null
+++ b/source/ap/vim/patches/7.3.630
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.630
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.630
+Problem: "|" does not behave correctly when 'virtualedit' is set.
+Solution: Call validate_virtcol(). (David Bürgin)
+Files: src/normal.c
+
+
+*** ../vim-7.3.629/src/normal.c 2012-07-29 12:55:21.000000000 +0200
+--- src/normal.c 2012-08-15 13:20:13.000000000 +0200
+***************
+*** 7786,7792 ****
+--- 7786,7795 ----
+ * virtualedit. Recalculate curwin->w_cursor to avoid bad hilighting.
+ */
+ if (c == Ctrl_V && (ve_flags & VE_BLOCK) && gchar_cursor() == TAB)
++ {
++ validate_virtcol();
+ coladvance(curwin->w_virtcol);
++ }
+ #endif
+ VIsual = curwin->w_cursor;
+
+*** ../vim-7.3.629/src/version.c 2012-08-08 18:01:00.000000000 +0200
+--- src/version.c 2012-08-15 13:30:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 630,
+ /**/
+
+--
+"Marriage is when a man and woman become as one; the trouble starts
+when they try to decide which one"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.631 b/source/ap/vim/patches/7.3.631
new file mode 100644
index 000000000..b7bff4fc4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.631
@@ -0,0 +1,322 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.631
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.631
+Problem: Cannot complete user names.
+Solution: Add user name completion. (Dominique Pelle)
+Files: runtime/doc/map.txt, src/auto/configure, src/config.h.in,
+ src/configure.in, src/ex_docmd.c, src/ex_getln.c,
+ src/misc1.c, src/misc2.c, src/proto/misc1.pro, src/vim.h
+
+
+*** ../vim-7.3.630/runtime/doc/map.txt 2012-04-30 18:48:38.000000000 +0200
+--- runtime/doc/map.txt 2012-08-15 13:46:34.000000000 +0200
+***************
+*** 1227,1232 ****
+--- 1244,1250 ----
+ -complete=syntax syntax file names |'syntax'|
+ -complete=tag tags
+ -complete=tag_listfiles tags, file names are shown when CTRL-D is hit
++ -complete=user user names
+ -complete=var user variables
+ -complete=custom,{func} custom completion, defined via {func}
+ -complete=customlist,{func} custom completion, defined via {func}
+*** ../vim-7.3.630/src/auto/configure 2012-07-25 16:32:03.000000000 +0200
+--- src/auto/configure 2012-08-15 13:48:06.000000000 +0200
+***************
+*** 10631,10637 ****
+ fi
+
+ for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+--- 10631,10637 ----
+ fi
+
+ for ac_func in bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+*** ../vim-7.3.630/src/config.h.in 2012-02-05 22:51:27.000000000 +0100
+--- src/config.h.in 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 161,166 ****
+--- 161,167 ----
+ #undef HAVE_FSYNC
+ #undef HAVE_GETCWD
+ #undef HAVE_GETPSEUDOTTY
++ #undef HAVE_GETPWENT
+ #undef HAVE_GETPWNAM
+ #undef HAVE_GETPWUID
+ #undef HAVE_GETRLIMIT
+*** ../vim-7.3.630/src/configure.in 2012-07-25 16:32:03.000000000 +0200
+--- src/configure.in 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 2994,3000 ****
+ dnl Check for functions in one big call, to reduce the size of configure.
+ dnl Can only be used for functions that do not require any include.
+ AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+--- 2994,3000 ----
+ dnl Check for functions in one big call, to reduce the size of configure.
+ dnl Can only be used for functions that do not require any include.
+ AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
+! getpwent getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
+ memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
+ setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
+ sigvec strcasecmp strerror strftime stricmp strncasecmp \
+*** ../vim-7.3.630/src/ex_docmd.c 2012-08-02 21:24:38.000000000 +0200
+--- src/ex_docmd.c 2012-08-15 13:54:29.000000000 +0200
+***************
+*** 3515,3520 ****
+--- 3515,3537 ----
+ #endif
+ }
+ }
++ #if defined(FEAT_CMDL_COMPL)
++ /* Check for user names */
++ if (*xp->xp_pattern == '~')
++ {
++ for (p = xp->xp_pattern + 1; *p != NUL && *p != '/'; ++p)
++ ;
++ /* Complete ~user only if it partially matches a user name.
++ * A full match ~user<Tab> will be replaced by user's home
++ * directory i.e. something like ~user<Tab> -> /home/user/ */
++ if (*p == NUL && p > xp->xp_pattern + 1
++ && match_user(xp->xp_pattern + 1) == 1)
++ {
++ xp->xp_context = EXPAND_USER;
++ ++xp->xp_pattern;
++ }
++ }
++ #endif
+ }
+
+ /*
+***************
+*** 5396,5401 ****
+--- 5413,5419 ----
+ #endif
+ {EXPAND_TAGS, "tag"},
+ {EXPAND_TAGS_LISTFILES, "tag_listfiles"},
++ {EXPAND_USER, "user"},
+ {EXPAND_USER_VARS, "var"},
+ {0, NULL}
+ };
+*** ../vim-7.3.630/src/ex_getln.c 2012-08-08 18:01:00.000000000 +0200
+--- src/ex_getln.c 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 4336,4341 ****
+--- 4336,4342 ----
+ * EXPAND_EXPRESSION Complete internal or user defined function/variable
+ * names in expressions, eg :while s^I
+ * EXPAND_ENV_VARS Complete environment variable names
++ * EXPAND_USER Complete user names
+ */
+ static void
+ set_expand_context(xp)
+***************
+*** 4681,4686 ****
+--- 4682,4688 ----
+ {EXPAND_LOCALES, get_locales, TRUE, FALSE},
+ #endif
+ {EXPAND_ENV_VARS, get_env_name, TRUE, TRUE},
++ {EXPAND_USER, get_users, TRUE, FALSE},
+ };
+ int i;
+
+*** ../vim-7.3.630/src/misc1.c 2012-08-08 18:01:00.000000000 +0200
+--- src/misc1.c 2012-08-15 13:57:53.000000000 +0200
+***************
+*** 18,23 ****
+--- 18,28 ----
+ static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
+ static int copy_indent __ARGS((int size, char_u *src));
+
++ /* All user names (for ~user completion as done by shell). */
++ #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
++ static garray_T ga_users;
++ #endif
++
+ /*
+ * Count the size (in window cells) of the indent in the current line.
+ */
+***************
+*** 3782,3787 ****
+--- 3787,3800 ----
+ {
+ vim_free(homedir);
+ }
++
++ # ifdef FEAT_CMDL_COMPL
++ void
++ free_users()
++ {
++ ga_clear_strings(&ga_users);
++ }
++ # endif
+ #endif
+
+ /*
+***************
+*** 4451,4456 ****
+--- 4464,4543 ----
+ return name;
+ # endif
+ }
++
++ /*
++ * Find all user names for user completion.
++ * Done only once and then cached.
++ */
++ static void
++ init_users() {
++ static int lazy_init_done = FALSE;
++
++ if (lazy_init_done)
++ return;
++
++ lazy_init_done = TRUE;
++ ga_init2(&ga_users, sizeof(char_u *), 20);
++
++ # if defined(HAVE_GETPWENT) && defined(HAVE_PWD_H)
++ {
++ char_u* user;
++ struct passwd* pw;
++
++ setpwent();
++ while ((pw = getpwent()) != NULL)
++ /* pw->pw_name shouldn't be NULL but just in case... */
++ if (pw->pw_name != NULL)
++ {
++ if (ga_grow(&ga_users, 1) == FAIL)
++ break;
++ user = vim_strsave((char_u*)pw->pw_name);
++ if (user == NULL)
++ break;
++ ((char_u **)(ga_users.ga_data))[ga_users.ga_len++] = user;
++ }
++ endpwent();
++ }
++ # endif
++ }
++
++ /*
++ * Function given to ExpandGeneric() to obtain an user names.
++ */
++ char_u*
++ get_users(xp, idx)
++ expand_T *xp UNUSED;
++ int idx;
++ {
++ init_users();
++ if (idx < ga_users.ga_len)
++ return ((char_u **)ga_users.ga_data)[idx];
++ return NULL;
++ }
++
++ /*
++ * Check whether name matches a user name. Return:
++ * 0 if name does not match any user name.
++ * 1 if name partially matches the beginning of a user name.
++ * 2 is name fully matches a user name.
++ */
++ int match_user(name)
++ char_u* name;
++ {
++ int i;
++ int n = (int)STRLEN(name);
++ int result = 0;
++
++ init_users();
++ for (i = 0; i < ga_users.ga_len; i++)
++ {
++ if (STRCMP(((char_u **)ga_users.ga_data)[i], name) == 0)
++ return 2; /* full match */
++ if (STRNCMP(((char_u **)ga_users.ga_data)[i], name, n) == 0)
++ result = 1; /* partial match */
++ }
++ return result;
++ }
+ #endif
+
+ /*
+*** ../vim-7.3.630/src/misc2.c 2012-06-29 15:51:26.000000000 +0200
+--- src/misc2.c 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 1110,1115 ****
+--- 1110,1118 ----
+ free_all_marks();
+ alist_clear(&global_alist);
+ free_homedir();
++ # if defined(FEAT_CMDL_COMPL)
++ free_users();
++ # endif
+ free_search_patterns();
+ free_old_sub();
+ free_last_insert();
+*** ../vim-7.3.630/src/proto/misc1.pro 2012-06-06 16:12:54.000000000 +0200
+--- src/proto/misc1.pro 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 50,55 ****
+--- 50,56 ----
+ void vim_beep __ARGS((void));
+ void init_homedir __ARGS((void));
+ void free_homedir __ARGS((void));
++ void free_users __ARGS((void));
+ char_u *expand_env_save __ARGS((char_u *src));
+ char_u *expand_env_save_opt __ARGS((char_u *src, int one));
+ void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
+***************
+*** 57,62 ****
+--- 58,65 ----
+ char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
+ void vim_setenv __ARGS((char_u *name, char_u *val));
+ char_u *get_env_name __ARGS((expand_T *xp, int idx));
++ char_u *get_users __ARGS((expand_T *xp, int idx));
++ int match_user __ARGS((char_u* name));
+ void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
+ char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
+ int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
+*** ../vim-7.3.630/src/vim.h 2012-07-10 17:14:50.000000000 +0200
+--- src/vim.h 2012-08-15 13:46:35.000000000 +0200
+***************
+*** 782,787 ****
+--- 782,788 ----
+ #define EXPAND_OWNSYNTAX 39
+ #define EXPAND_LOCALES 40
+ #define EXPAND_HISTORY 41
++ #define EXPAND_USER 42
+
+ /* Values for exmode_active (0 is no exmode) */
+ #define EXMODE_NORMAL 1
+*** ../vim-7.3.630/src/version.c 2012-08-15 13:30:55.000000000 +0200
+--- src/version.c 2012-08-15 14:01:12.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 631,
+ /**/
+
+--
+"Marriage is the process of finding out what kind of man your wife
+would have preferred"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.632 b/source/ap/vim/patches/7.3.632
new file mode 100644
index 000000000..9e38969e6
--- /dev/null
+++ b/source/ap/vim/patches/7.3.632
@@ -0,0 +1,537 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.632
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.632
+Problem: Cannot select beyond 222 columns with the mouse in xterm.
+Solution: Add support for SGR mouse tracking. (Hayaki Saito)
+Files: runtime/doc/options.txt, src/feature.h, src/keymap.h, src/misc2.c,
+ src/option.h, src/os_unix.c, src/term.c, src/version.c
+
+
+*** ../vim-7.3.631/runtime/doc/options.txt 2012-07-10 16:49:08.000000000 +0200
+--- runtime/doc/options.txt 2012-08-15 16:04:26.000000000 +0200
+***************
+*** 7383,7388 ****
+--- 7424,7435 ----
+ jsbterm JSB term mouse handling.
+ *pterm-mouse*
+ pterm QNX pterm mouse handling.
++ *urxvt-mouse*
++ urxvt Mouse handling for the urxvt (rxvt-unicode) terminal.
++ *sgr-mouse*
++ sgr Mouse handling for the terminal that emits SGR-styled
++ mouse reporting. Works with xterm version 277 or
++ later.
+
+ The mouse handling must be enabled at compile time |+mouse_xterm|
+ |+mouse_dec| |+mouse_netterm|.
+***************
+*** 7395,7400 ****
+--- 7442,7448 ----
+ or "xterm2" already. The main use of this option is to set it to
+ "xterm", when the terminal name doesn't start with "xterm", but it can
+ handle xterm mouse codes.
++ The "sgr" value will be set if the xterm version is 277 or later.
+ The "xterm2" value will be set if the xterm version is reported to be
+ 95 or higher. This only works when compiled with the |+termresponse|
+ feature and if |t_RV| is set to the escape sequence to request the
+*** ../vim-7.3.631/src/feature.h 2012-04-25 16:50:44.000000000 +0200
+--- src/feature.h 2012-08-15 15:46:07.000000000 +0200
+***************
+*** 1056,1061 ****
+--- 1056,1064 ----
+ # ifdef FEAT_BIG
+ # define FEAT_MOUSE_URXVT
+ # endif
++ # ifdef FEAT_BIG
++ # define FEAT_MOUSE_SGR
++ # endif
+ # if defined(FEAT_NORMAL) && (defined(MSDOS) || defined(WIN3264))
+ # define DOS_MOUSE
+ # endif
+***************
+*** 1077,1082 ****
+--- 1080,1090 ----
+ # define FEAT_MOUSE_XTERM
+ #endif
+
++ /* sgr is a small variation of mouse_xterm, and shares its code */
++ #if defined(FEAT_MOUSE_SGR) && !defined(FEAT_MOUSE_XTERM)
++ # define FEAT_MOUSE_XTERM
++ #endif
++
+ /* Define FEAT_MOUSE when any of the above is defined or FEAT_GUI. */
+ #if !defined(FEAT_MOUSE_TTY) \
+ && (defined(FEAT_MOUSE_XTERM) \
+***************
+*** 1087,1093 ****
+ || defined(FEAT_MOUSE_JSB) \
+ || defined(FEAT_MOUSE_PTERM) \
+ || defined(FEAT_SYSMOUSE) \
+! || defined(FEAT_MOUSE_URXVT))
+ # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
+ #endif
+ #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+--- 1095,1102 ----
+ || defined(FEAT_MOUSE_JSB) \
+ || defined(FEAT_MOUSE_PTERM) \
+ || defined(FEAT_SYSMOUSE) \
+! || defined(FEAT_MOUSE_URXVT) \
+! || defined(FEAT_MOUSE_SGR))
+ # define FEAT_MOUSE_TTY /* include non-GUI mouse support */
+ #endif
+ #if !defined(FEAT_MOUSE) && (defined(FEAT_MOUSE_TTY) || defined(FEAT_GUI))
+*** ../vim-7.3.631/src/keymap.h 2012-01-20 17:15:47.000000000 +0100
+--- src/keymap.h 2012-08-15 15:46:07.000000000 +0200
+***************
+*** 110,115 ****
+--- 110,118 ----
+ /* Used for the urxvt mouse. */
+ #define KS_URXVT_MOUSE 238
+
++ /* Used for the sgr mouse. */
++ #define KS_SGR_MOUSE 237
++
+ /*
+ * Filler used after KS_SPECIAL and others
+ */
+***************
+*** 412,417 ****
+--- 415,421 ----
+ #define K_JSBTERM_MOUSE TERMCAP2KEY(KS_JSBTERM_MOUSE, KE_FILLER)
+ #define K_PTERM_MOUSE TERMCAP2KEY(KS_PTERM_MOUSE, KE_FILLER)
+ #define K_URXVT_MOUSE TERMCAP2KEY(KS_URXVT_MOUSE, KE_FILLER)
++ #define K_SGR_MOUSE TERMCAP2KEY(KS_SGR_MOUSE, KE_FILLER)
+
+ #define K_SELECT TERMCAP2KEY(KS_SELECT, KE_FILLER)
+ #define K_TEAROFF TERMCAP2KEY(KS_TEAROFF, KE_FILLER)
+*** ../vim-7.3.631/src/misc2.c 2012-08-15 14:04:50.000000000 +0200
+--- src/misc2.c 2012-08-15 15:46:07.000000000 +0200
+***************
+*** 2433,2438 ****
+--- 2433,2441 ----
+ #ifdef FEAT_MOUSE_URXVT
+ {K_URXVT_MOUSE, (char_u *)"UrxvtMouse"},
+ #endif
++ #ifdef FEAT_MOUSE_SGR
++ {K_SGR_MOUSE, (char_u *)"SgrMouse"},
++ #endif
+ {K_LEFTMOUSE, (char_u *)"LeftMouse"},
+ {K_LEFTMOUSE_NM, (char_u *)"LeftMouseNM"},
+ {K_LEFTDRAG, (char_u *)"LeftDrag"},
+*** ../vim-7.3.631/src/option.h 2012-07-10 16:49:08.000000000 +0200
+--- src/option.h 2012-08-15 15:46:07.000000000 +0200
+***************
+*** 822,828 ****
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+--- 822,828 ----
+ EXTERN char_u *p_ttym; /* 'ttymouse' */
+ EXTERN unsigned ttym_flags;
+ # ifdef IN_OPTION_C
+! static char *(p_ttym_values[]) = {"xterm", "xterm2", "dec", "netterm", "jsbterm", "pterm", "urxvt", "sgr", NULL};
+ # endif
+ # define TTYM_XTERM 0x01
+ # define TTYM_XTERM2 0x02
+***************
+*** 831,836 ****
+--- 831,837 ----
+ # define TTYM_JSBTERM 0x10
+ # define TTYM_PTERM 0x20
+ # define TTYM_URXVT 0x40
++ # define TTYM_SGR 0x80
+ #endif
+ EXTERN char_u *p_udir; /* 'undodir' */
+ EXTERN long p_ul; /* 'undolevels' */
+*** ../vim-7.3.631/src/os_unix.c 2012-04-20 15:55:10.000000000 +0200
+--- src/os_unix.c 2012-08-15 16:06:54.000000000 +0200
+***************
+*** 2159,2168 ****
+--- 2159,2171 ----
+ * Return 1 for "xterm".
+ * Return 2 for "xterm2".
+ * Return 3 for "urxvt".
++ * Return 4 for "sgr".
+ */
+ int
+ use_xterm_mouse()
+ {
++ if (ttym_flags == TTYM_SGR)
++ return 4;
+ if (ttym_flags == TTYM_URXVT)
+ return 3;
+ if (ttym_flags == TTYM_XTERM2)
+***************
+*** 3339,3345 ****
+ xterm_mouse_vers = use_xterm_mouse();
+
+ # ifdef FEAT_MOUSE_URXVT
+! if (ttym_flags == TTYM_URXVT) {
+ out_str_nf((char_u *)
+ (on
+ ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
+--- 3342,3349 ----
+ xterm_mouse_vers = use_xterm_mouse();
+
+ # ifdef FEAT_MOUSE_URXVT
+! if (ttym_flags == TTYM_URXVT)
+! {
+ out_str_nf((char_u *)
+ (on
+ ? IF_EB("\033[?1015h", ESC_STR "[?1015h")
+***************
+*** 3348,3353 ****
+--- 3352,3368 ----
+ }
+ # endif
+
++ # ifdef FEAT_MOUSE_SGR
++ if (ttym_flags == TTYM_SGR)
++ {
++ out_str_nf((char_u *)
++ (on
++ ? IF_EB("\033[?1006h", ESC_STR "[?1006h")
++ : IF_EB("\033[?1006l", ESC_STR "[?1006l")));
++ ison = on;
++ }
++ # endif
++
+ if (xterm_mouse_vers > 0)
+ {
+ if (on) /* enable mouse events, use mouse tracking if available */
+***************
+*** 3577,3582 ****
+--- 3592,3618 ----
+ else
+ del_mouse_termcode(KS_URXVT_MOUSE);
+ # endif
++ # ifdef FEAT_MOUSE_SGR
++ /* same as the dec mouse */
++ if (use_xterm_mouse() == 4
++ # ifdef FEAT_GUI
++ && !gui.in_use
++ # endif
++ )
++ {
++ set_mouse_termcode(KS_SGR_MOUSE, (char_u *)(term_is_8bit(T_NAME)
++ ? IF_EB("\233<", CSI_STR "<")
++ : IF_EB("\033[<", ESC_STR "[<")));
++
++ if (*p_mouse != NUL)
++ {
++ mch_setmouse(FALSE);
++ setmouse();
++ }
++ }
++ else
++ del_mouse_termcode(KS_SGR_MOUSE);
++ # endif
+ }
+ #endif
+
+*** ../vim-7.3.631/src/term.c 2012-02-05 22:05:44.000000000 +0100
+--- src/term.c 2012-08-15 16:14:09.000000000 +0200
+***************
+*** 1997,2002 ****
+--- 1997,2003 ----
+ # define HMT_JSBTERM 8
+ # define HMT_PTERM 16
+ # define HMT_URXVT 32
++ # define HMT_SGR 64
+ static int has_mouse_termcode = 0;
+ # endif
+
+***************
+*** 2037,2042 ****
+--- 2038,2048 ----
+ has_mouse_termcode |= HMT_URXVT;
+ else
+ # endif
++ # ifdef FEAT_MOUSE_SGR
++ if (n == KS_SGR_MOUSE)
++ has_mouse_termcode |= HMT_SGR;
++ else
++ # endif
+ has_mouse_termcode |= HMT_NORMAL;
+ # endif
+ }
+***************
+*** 2079,2084 ****
+--- 2085,2095 ----
+ has_mouse_termcode &= ~HMT_URXVT;
+ else
+ # endif
++ # ifdef FEAT_MOUSE_SGR
++ if (n == KS_SGR_MOUSE)
++ has_mouse_termcode &= ~HMT_SGR;
++ else
++ # endif
+ has_mouse_termcode &= ~HMT_NORMAL;
+ # endif
+ }
+***************
+*** 4023,4029 ****
+ #ifdef FEAT_TERMRESPONSE
+ if (key_name[0] == NUL
+ /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
+! || key_name[0] == KS_URXVT_MOUSE)
+ {
+ /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
+ * eat other possible responses to t_RV, rxvt returns
+--- 4034,4041 ----
+ #ifdef FEAT_TERMRESPONSE
+ if (key_name[0] == NUL
+ /* URXVT mouse uses <ESC>[#;#;#M, but we are matching <ESC>[ */
+! || key_name[0] == KS_URXVT_MOUSE
+! || key_name[0] == KS_SGR_MOUSE)
+ {
+ /* Check for xterm version string: "<Esc>[>{x};{vers};{y}c". Also
+ * eat other possible responses to t_RV, rxvt returns
+***************
+*** 4061,4066 ****
+--- 4073,4088 ----
+
+ if (tp[1 + (tp[0] != CSI)] == '>' && j == 2)
+ {
++ # ifdef TTYM_SGR
++ if (extra >= 277
++ # ifdef TTYM_URXVT
++ && ttym_flags != TTYM_URXVT
++ # endif
++ )
++ set_option_value((char_u *)"ttym", 0L,
++ (char_u *)"sgr", 0);
++ else
++ # endif
+ /* if xterm version >= 95 use mouse dragging */
+ if (extra >= 95
+ # ifdef TTYM_URXVT
+***************
+*** 4147,4167 ****
+ /*
+ * If it is a mouse click, get the coordinates.
+ */
+! if (key_name[0] == (int)KS_MOUSE
+ # ifdef FEAT_MOUSE_JSB
+! || key_name[0] == (int)KS_JSBTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_NET
+! || key_name[0] == (int)KS_NETTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_DEC
+! || key_name[0] == (int)KS_DEC_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_PTERM
+! || key_name[0] == (int)KS_PTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_URXVT
+! || key_name[0] == (int)KS_URXVT_MOUSE
+ # endif
+ )
+ {
+--- 4169,4192 ----
+ /*
+ * If it is a mouse click, get the coordinates.
+ */
+! if (key_name[0] == KS_MOUSE
+ # ifdef FEAT_MOUSE_JSB
+! || key_name[0] == KS_JSBTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_NET
+! || key_name[0] == KS_NETTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_DEC
+! || key_name[0] == KS_DEC_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_PTERM
+! || key_name[0] == KS_PTERM_MOUSE
+ # endif
+ # ifdef FEAT_MOUSE_URXVT
+! || key_name[0] == KS_URXVT_MOUSE
+! # endif
+! # ifdef FEAT_MOUSE_SGR
+! || key_name[0] == KS_SGR_MOUSE
+ # endif
+ )
+ {
+***************
+*** 4243,4250 ****
+ }
+ }
+
+! # ifdef FEAT_MOUSE_URXVT
+! if (key_name[0] == (int)KS_URXVT_MOUSE)
+ {
+ for (;;)
+ {
+--- 4268,4276 ----
+ }
+ }
+
+! # if defined(FEAT_MOUSE_URXVT) || defined(FEAT_MOUSE_SGR)
+! if (key_name[0] == KS_URXVT_MOUSE
+! || key_name[0] == KS_SGR_MOUSE)
+ {
+ for (;;)
+ {
+***************
+*** 4256,4261 ****
+--- 4282,4301 ----
+ * ^-- row
+ * ^----- column
+ * ^-------- code
++ *
++ * SGR 1006 mouse reporting mode:
++ * Almost identical to xterm mouse mode, except the values
++ * are decimal instead of bytes.
++ *
++ * \033[<%d;%d;%dM
++ * ^-- row
++ * ^----- column
++ * ^-------- code
++ *
++ * \033[<%d;%d;%dm : mouse release event
++ * ^-- row
++ * ^----- column
++ * ^-------- code
+ */
+ p = tp + slen;
+
+***************
+*** 4263,4294 ****
+ if (*p++ != ';')
+ return -1;
+
+ mouse_col = getdigits(&p) - 1;
+ if (*p++ != ';')
+ return -1;
+
+ mouse_row = getdigits(&p) - 1;
+! if (*p++ != 'M')
+ return -1;
+
+ slen += (int)(p - (tp + slen));
+
+ /* skip this one if next one has same code (like xterm
+ * case) */
+ j = termcodes[idx].len;
+! if (STRNCMP(tp, tp + slen, (size_t)j) == 0) {
+! /* check if the command is complete by looking for the
+! * M */
+ int slen2;
+ int cmd_complete = 0;
+! for (slen2 = slen; slen2 < len; slen2++) {
+! if (tp[slen2] == 'M') {
+ cmd_complete = 1;
+ break;
+ }
+ }
+ p += j;
+! if (cmd_complete && getdigits(&p) == mouse_code) {
+ slen += j; /* skip the \033[ */
+ continue;
+ }
+--- 4303,4348 ----
+ if (*p++ != ';')
+ return -1;
+
++ /* when mouse reporting is SGR, add 32 to mouse code */
++ if (key_name[0] == KS_SGR_MOUSE)
++ mouse_code += 32;
++
+ mouse_col = getdigits(&p) - 1;
+ if (*p++ != ';')
+ return -1;
+
+ mouse_row = getdigits(&p) - 1;
+! if (key_name[0] == KS_SGR_MOUSE && *p == 'm')
+! mouse_code |= MOUSE_RELEASE;
+! else if (*p != 'M')
+ return -1;
++ p++;
+
+ slen += (int)(p - (tp + slen));
+
+ /* skip this one if next one has same code (like xterm
+ * case) */
+ j = termcodes[idx].len;
+! if (STRNCMP(tp, tp + slen, (size_t)j) == 0)
+! {
+ int slen2;
+ int cmd_complete = 0;
+!
+! /* check if the command is complete by looking for the
+! * 'M' */
+! for (slen2 = slen; slen2 < len; slen2++)
+! {
+! if (tp[slen2] == 'M'
+! || (key_name[0] == KS_SGR_MOUSE
+! && tp[slen2] == 'm'))
+! {
+ cmd_complete = 1;
+ break;
+ }
+ }
+ p += j;
+! if (cmd_complete && getdigits(&p) == mouse_code)
+! {
+ slen += j; /* skip the \033[ */
+ continue;
+ }
+***************
+*** 4302,4307 ****
+--- 4356,4364 ----
+ #ifdef FEAT_MOUSE_URXVT
+ || key_name[0] == (int)KS_URXVT_MOUSE
+ #endif
++ #ifdef FEAT_MOUSE_SGR
++ || key_name[0] == KS_SGR_MOUSE
++ #endif
+ )
+ {
+ # if !defined(MSWIN) && !defined(MSDOS)
+*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
+--- src/version.c 2012-08-15 15:47:30.000000000 +0200
+***************
+*** 384,389 ****
+--- 384,394 ----
+ # else
+ "-mouse_urxvt",
+ # endif
++ # ifdef FEAT_MOUSE_SGR
++ "+mouse_sgr",
++ # else
++ "-mouse_sgr",
++ # endif
+ #endif
+ #ifdef __QNX__
+ # ifdef FEAT_MOUSE_PTERM
+*** ../vim-7.3.631/src/version.c 2012-08-15 14:04:50.000000000 +0200
+--- src/version.c 2012-08-15 15:47:30.000000000 +0200
+***************
+*** 716,717 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 632,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+243. You unsuccessfully try to download a pizza from www.dominos.com.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.633 b/source/ap/vim/patches/7.3.633
new file mode 100644
index 000000000..899ccb387
--- /dev/null
+++ b/source/ap/vim/patches/7.3.633
@@ -0,0 +1,81 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.633
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.633
+Problem: Selection remains displayed as selected after selecting another
+ text.
+Solution: Call xterm_update() before select(). (Andrew Pimlott)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.632/src/os_unix.c 2012-08-15 16:20:59.000000000 +0200
+--- src/os_unix.c 2012-08-15 17:15:58.000000000 +0200
+***************
+*** 5196,5201 ****
+--- 5196,5205 ----
+ FD_SET(ConnectionNumber(xterm_dpy), &rfds);
+ if (maxfd < ConnectionNumber(xterm_dpy))
+ maxfd = ConnectionNumber(xterm_dpy);
++
++ /* An event may have already been read but not handled. In
++ * particulary, XFlush may cause this. */
++ xterm_update();
+ }
+ # endif
+ # ifdef FEAT_MOUSE_GPM
+***************
+*** 5216,5229 ****
+ maxfd = xsmp_icefd;
+ }
+ # endif
+! #ifdef FEAT_NETBEANS_INTG
+ if (nb_fd != -1)
+ {
+ FD_SET(nb_fd, &rfds);
+ if (maxfd < nb_fd)
+ maxfd = nb_fd;
+ }
+! #endif
+
+ # ifdef OLD_VMS
+ /* Old VMS as v6.2 and older have broken select(). It waits more than
+--- 5220,5233 ----
+ maxfd = xsmp_icefd;
+ }
+ # endif
+! # ifdef FEAT_NETBEANS_INTG
+ if (nb_fd != -1)
+ {
+ FD_SET(nb_fd, &rfds);
+ if (maxfd < nb_fd)
+ maxfd = nb_fd;
+ }
+! # endif
+
+ # ifdef OLD_VMS
+ /* Old VMS as v6.2 and older have broken select(). It waits more than
+*** ../vim-7.3.632/src/version.c 2012-08-15 16:20:59.000000000 +0200
+--- src/version.c 2012-08-15 17:22:17.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 633,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+245. You use Real Audio to listen to a radio station from a distant
+ city rather than turn on your stereo system.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.634 b/source/ap/vim/patches/7.3.634
new file mode 100644
index 000000000..3262bab3c
--- /dev/null
+++ b/source/ap/vim/patches/7.3.634
@@ -0,0 +1,57 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.634
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.634
+Problem: Month/Day format for undo is confusing. (Marcin Szamotulski)
+Solution: Always use Year/Month/Day, should work for everybody.
+Files: src/undo.c
+
+
+*** ../vim-7.3.633/src/undo.c 2012-06-01 13:46:06.000000000 +0200
+--- src/undo.c 2012-08-23 12:43:24.000000000 +0200
+***************
+*** 2880,2890 ****
+ if (time(NULL) - tt < (60L * 60L * 12L))
+ /* within 12 hours */
+ (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
+- else if (time(NULL) - tt < (60L * 60L * 24L * 180L))
+- /* within 6 months */
+- (void)strftime((char *)buf, buflen, "%m/%d %H:%M:%S", curtime);
+ else
+! /* long ago */
+ (void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
+ }
+ else
+--- 2880,2887 ----
+ if (time(NULL) - tt < (60L * 60L * 12L))
+ /* within 12 hours */
+ (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
+ else
+! /* longer ago */
+ (void)strftime((char *)buf, buflen, "%Y/%m/%d %H:%M:%S", curtime);
+ }
+ else
+*** ../vim-7.3.633/src/version.c 2012-08-15 17:26:53.000000000 +0200
+--- src/version.c 2012-08-23 12:58:36.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 634,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+10E. You start counting in hex.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.635 b/source/ap/vim/patches/7.3.635
new file mode 100644
index 000000000..4a677025f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.635
@@ -0,0 +1,50 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.635
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.635
+Problem: Issue 21: System call during startup sets 'lines' to a wrong
+ value. (Karl Yngve)
+Solution: Don't set the shell size while the GUI is still starting up.
+ (Christian Brabandt)
+Files: src/ui.c
+
+
+*** ../vim-7.3.634/src/ui.c 2012-07-10 16:49:08.000000000 +0200
+--- src/ui.c 2012-08-23 13:25:26.000000000 +0200
+***************
+*** 298,303 ****
+--- 298,306 ----
+ int retval;
+
+ #ifdef FEAT_GUI
++ if (gui.starting)
++ /* possibly a system call during startup, check later */
++ return OK;
+ if (gui.in_use)
+ retval = gui_get_shellsize();
+ else
+*** ../vim-7.3.634/src/version.c 2012-08-23 12:58:56.000000000 +0200
+--- src/version.c 2012-08-23 13:27:00.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 635,
+ /**/
+
+--
+ARTHUR: This new learning amazes me, Sir Bedevere. Explain again how sheep's
+ bladders may be employed to prevent earthquakes.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.636 b/source/ap/vim/patches/7.3.636
new file mode 100644
index 000000000..453a7fc99
--- /dev/null
+++ b/source/ap/vim/patches/7.3.636
@@ -0,0 +1,148 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.636
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.636 (after 7.3.625)
+Problem: Not all zero-width matches handled correctly for "gn".
+Solution: Move zero-width detection to a separate function. (Christian
+ Brabandt)
+Files: src/search.c
+
+
+*** ../vim-7.3.635/src/search.c 2012-08-08 15:27:54.000000000 +0200
+--- src/search.c 2012-08-23 15:52:50.000000000 +0200
+***************
+*** 4526,4531 ****
+--- 4526,4533 ----
+ #endif /* FEAT_TEXTOBJ */
+
+ #if defined(FEAT_VISUAL) || defined(PROTO)
++ static int is_zerowidth __ARGS((char_u *pattern));
++
+ /*
+ * Find next search match under cursor, cursor at end.
+ * Used while an operator is pending, and in Visual mode.
+***************
+*** 4546,4556 ****
+ int visual_active = FALSE;
+ int flags = 0;
+ pos_T save_VIsual;
+- regmmatch_T regmatch;
+- int nmatched = 0;
+ int zerowidth = FALSE;
+
+-
+ /* wrapping should not occur */
+ p_ws = FALSE;
+
+--- 4548,4555 ----
+***************
+*** 4583,4606 ****
+ else
+ orig_pos = pos = start_pos = curwin->w_cursor;
+
+! /*
+! * Check for zero-width pattern.
+! */
+! if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH,
+! ((SEARCH_HIS + SEARCH_KEEP)), &regmatch) == FAIL)
+ return FAIL;
+
+- /* Zero-width pattern should match somewhere, then we can check if start
+- * and end are in the same position. */
+- nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
+- curwin->w_cursor.lnum, (colnr_T)0, NULL);
+- if (called_emsg)
+- return FAIL;
+- if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
+- && regmatch.endpos[0].col == regmatch.startpos[0].col)
+- zerowidth = TRUE;
+- vim_free(regmatch.regprog);
+-
+ /*
+ * The trick is to first search backwards and then search forward again,
+ * so that a match at the current cursor position will be correctly
+--- 4582,4592 ----
+ else
+ orig_pos = pos = start_pos = curwin->w_cursor;
+
+! /* Is the pattern is zero-width? */
+! zerowidth = is_zerowidth(spats[last_idx].pat);
+! if (zerowidth == -1)
+ return FAIL;
+
+ /*
+ * The trick is to first search backwards and then search forward again,
+ * so that a match at the current cursor position will be correctly
+***************
+*** 4693,4698 ****
+--- 4679,4721 ----
+
+ return OK;
+ }
++
++ /*
++ * Check if the pattern is zero-width.
++ * Returns TRUE, FALSE or -1 for failure.
++ */
++ static int
++ is_zerowidth(pattern)
++ char_u *pattern;
++ {
++ regmmatch_T regmatch;
++ int nmatched = 0;
++ int result = -1;
++ pos_T pos;
++
++ if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH,
++ SEARCH_KEEP, &regmatch) == FAIL)
++ return -1;
++
++ /* move to match */
++ clearpos(&pos);
++ if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1,
++ SEARCH_KEEP, RE_SEARCH, 0, NULL) != FAIL)
++ {
++ /* Zero-width pattern should match somewhere, then we can check if
++ * start and end are in the same position. */
++ nmatched = vim_regexec_multi(&regmatch, curwin, curbuf,
++ pos.lnum, (colnr_T)0, NULL);
++
++ if (!called_emsg)
++ result = (nmatched != 0
++ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
++ && regmatch.startpos[0].col == regmatch.endpos[0].col);
++ }
++
++ vim_free(regmatch.regprog);
++ return result;
++ }
+ #endif /* FEAT_VISUAL */
+
+ #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
+*** ../vim-7.3.635/src/version.c 2012-08-23 13:28:50.000000000 +0200
+--- src/version.c 2012-08-23 15:25:23.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 636,
+ /**/
+
+--
+Edison's greatest achievement came in 1879, when he invented the
+electric company. Edison's design was a brilliant adaptation of the
+simple electrical circuit: the electric company sends electricity
+through a wire to a customer, then immediately gets the electricity
+back through another wire
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.637 b/source/ap/vim/patches/7.3.637
new file mode 100644
index 000000000..f7f1d903a
--- /dev/null
+++ b/source/ap/vim/patches/7.3.637
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.637
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.637
+Problem: Cannot catch the error caused by a foldopen when there is no fold.
+ (ZyX, Issue 48)
+Solution: Do not break out of the loop early when inside try/catch.
+ (Christian Brabandt) Except when there is a syntax error.
+Files: src/ex_docmd.c, src/globals.h
+
+
+*** ../vim-7.3.636/src/ex_docmd.c 2012-08-15 14:04:50.000000000 +0200
+--- src/ex_docmd.c 2012-08-23 18:39:08.000000000 +0200
+***************
+*** 1295,1301 ****
+ && cstack.cs_trylevel == 0
+ #endif
+ )
+! && !(did_emsg && used_getline
+ && (getline_equal(fgetline, cookie, getexmodeline)
+ || getline_equal(fgetline, cookie, getexline)))
+ && (next_cmdline != NULL
+--- 1295,1308 ----
+ && cstack.cs_trylevel == 0
+ #endif
+ )
+! && !(did_emsg
+! #ifdef FEAT_EVAL
+! /* Keep going when inside try/catch, so that the error can be
+! * dealth with, except when it is a syntax error, it may cause
+! * the :endtry to be missed. */
+! && (cstack.cs_trylevel == 0 || did_emsg_syntax)
+! #endif
+! && used_getline
+ && (getline_equal(fgetline, cookie, getexmodeline)
+ || getline_equal(fgetline, cookie, getexline)))
+ && (next_cmdline != NULL
+***************
+*** 1305,1310 ****
+--- 1312,1318 ----
+ || (flags & DOCMD_REPEAT)));
+
+ vim_free(cmdline_copy);
++ did_emsg_syntax = FALSE;
+ #ifdef FEAT_EVAL
+ free_cmdlines(&lines_ga);
+ ga_clear(&lines_ga);
+***************
+*** 2137,2142 ****
+--- 2145,2151 ----
+ if (!sourcing)
+ append_command(*cmdlinep);
+ errormsg = IObuff;
++ did_emsg_syntax = TRUE;
+ }
+ goto doend;
+ }
+*** ../vim-7.3.636/src/globals.h 2012-07-10 16:49:08.000000000 +0200
+--- src/globals.h 2012-08-23 18:29:09.000000000 +0200
+***************
+*** 183,188 ****
+--- 183,190 ----
+ #endif
+ EXTERN int did_emsg; /* set by emsg() when the message
+ is displayed or thrown */
++ EXTERN int did_emsg_syntax; /* did_emsg set because of a
++ syntax error */
+ EXTERN int called_emsg; /* always set by emsg() */
+ EXTERN int ex_exitval INIT(= 0); /* exit value for ex mode */
+ EXTERN int emsg_on_display INIT(= FALSE); /* there is an error message */
+*** ../vim-7.3.636/src/version.c 2012-08-23 15:53:00.000000000 +0200
+--- src/version.c 2012-08-23 17:59:12.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 637,
+ /**/
+
+--
+GOD: That is your purpose Arthur ... the Quest for the Holy Grail ...
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.638 b/source/ap/vim/patches/7.3.638
new file mode 100644
index 000000000..f88a9399b
--- /dev/null
+++ b/source/ap/vim/patches/7.3.638
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.638
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.638
+Problem: Unecessary redraw of the previous character.
+Solution: Check if the character is double-width. (Jon Long)
+Files: src/screen.c
+
+
+*** ../vim-7.3.637/src/screen.c 2012-07-10 16:49:08.000000000 +0200
+--- src/screen.c 2012-08-23 18:49:33.000000000 +0200
+***************
+*** 5332,5339 ****
+ && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
+ || (ScreenLinesUC[off_from] != 0
+ && comp_char_differs(off_from, off_to))
+! || (cols > 1 && ScreenLines[off_from + 1]
+! != ScreenLines[off_to + 1])))
+ #endif
+ ))
+ return TRUE;
+--- 5332,5340 ----
+ && (ScreenLinesUC[off_from] != ScreenLinesUC[off_to]
+ || (ScreenLinesUC[off_from] != 0
+ && comp_char_differs(off_from, off_to))
+! || ((*mb_off2cells)(off_from, off_from + cols) > 1
+! && ScreenLines[off_from + 1]
+! != ScreenLines[off_to + 1])))
+ #endif
+ ))
+ return TRUE;
+*** ../vim-7.3.637/src/version.c 2012-08-23 18:43:06.000000000 +0200
+--- src/version.c 2012-08-23 18:47:11.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 638,
+ /**/
+
+--
+There is a fine line between courage and foolishness.
+Unfortunately, it's not a fence.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.639 b/source/ap/vim/patches/7.3.639
new file mode 100644
index 000000000..359dc6d88
--- /dev/null
+++ b/source/ap/vim/patches/7.3.639
@@ -0,0 +1,846 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.639
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.639
+Problem: It's not easy to build Vim on Windows with XPM support.
+Solution: Include the required files, they are quite small. Update the
+ MSVC makefile to use them. Binary files are in the next patch.
+ (Sergey Khorev)
+Files: src/xpm/COPYRIGHT, src/xpm/README.txt, src/xpm/include/simx.h,
+ src/xpm/include/xpm.h, src/Make_mvc.mak, src/bigvim.bat,
+ src/bigvim64.bat, Filelist
+
+
+*** ../vim-7.3.638/src/xpm/COPYRIGHT 1970-01-01 01:00:00.000000000 +0100
+--- src/xpm/COPYRIGHT 1998-03-19 23:51:00.000000000 +0100
+***************
+*** 0 ****
+--- 1,31 ----
++ /*
++ * Copyright (C) 1989-95 GROUPE BULL
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to
++ * deal in the Software without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Except as contained in this notice, the name of GROUPE BULL shall not be
++ * used in advertising or otherwise to promote the sale, use or other dealings
++ * in this Software without prior written authorization from GROUPE BULL.
++ */
++
++ Arnaud LE HORS BULL Research FRANCE -- Koala Project
++ (XPM - X PixMap format version 2 & 3)
++ Internet: lehors@sophia.inria.fr
++ Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis,
++ 2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE
++ Voice phone: (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F
+*** ../vim-7.3.638/src/xpm/README.txt 1970-01-01 01:00:00.000000000 +0100
+--- src/xpm/README.txt 2012-08-29 13:29:17.000000000 +0200
+***************
+*** 0 ****
+--- 1,23 ----
++ This is XPM library compiled for Windows which is intended for use with Vim
++ 'signs' feature.
++
++ Libraries in x86 directory were compiled with MSVC6 and MinGW. Proposed
++ commands to compile Vim are:
++
++ Any version of MSVC starting from version 6.0:
++ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes NETBEANS=yes XPM=e:\hg\xpm\x86
++
++ MinGW:
++ mingw32-make -f Make_ming.mak GUI=yes CSCOPE=yes XPM=e:/hg/xpm/x86
++
++ Microsoft Visual C++ on x64 (tested with versions 2008 and 2010):
++ nmake -f Make_mvc.mak GUI=yes CSCOPE=yes XPM=E:\HG\xpm\x64
++
++ To test, open some file in Vim and execute commands below:
++ :exe 'sign define vimxpm icon='.$VIMRUNTIME.'\\vim32x32.xpm'
++ :exe 'sign place 1 line=1 name=vimxpm file='.expand('%:p')
++
++
++ See COPYRIGHT for XPM licence.
++
++ If you have questions please email sergey.khorev@gmail.com.
+*** ../vim-7.3.638/src/xpm/include/simx.h 1970-01-01 01:00:00.000000000 +0100
+--- src/xpm/include/simx.h 1998-03-19 23:51:00.000000000 +0100
+***************
+*** 0 ****
+--- 1,139 ----
++ /*
++ * Copyright (C) 1989-95 GROUPE BULL
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to
++ * deal in the Software without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Except as contained in this notice, the name of GROUPE BULL shall not be
++ * used in advertising or otherwise to promote the sale, use or other dealings
++ * in this Software without prior written authorization from GROUPE BULL.
++ */
++
++ /*****************************************************************************\
++ * simx.h: 0.1a *
++ * *
++ * This emulates some Xlib functionality for MSW. It's not a general solution, *
++ * it is close related to XPM-lib. It is only intended to satisfy what is need *
++ * there. Thus allowing to read XPM files under MS windows. *
++ * *
++ * Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) *
++ \*****************************************************************************/
++
++
++ #ifndef _SIMX_H
++ #define _SIMX_H
++
++ #ifdef FOR_MSW
++
++ #include "windows.h" /* MS windows GDI types */
++
++ /*
++ * minimal portability layer between ansi and KR C
++ */
++ /* this comes from xpm.h, and is here again, to avoid complicated
++ includes, since this is included from xpm.h */
++ /* these defines get undefed at the end of this file */
++ #if __STDC__ || defined(__cplusplus) || defined(c_plusplus)
++ /* ANSI || C++ */
++ #define FUNC(f, t, p) extern t f p
++ #define LFUNC(f, t, p) static t f p
++ #else /* k&R */
++ #define FUNC(f, t, p) extern t f()
++ #define LFUNC(f, t, p) static t f()
++ #endif
++
++
++ FUNC(boundCheckingMalloc, void *, (long s));
++ FUNC(boundCheckingCalloc, void *, (long num, long s));
++ FUNC(boundCheckingRealloc, void *, (void *p, long s));
++
++ /* define MSW types for X window types,
++ I don't know much about MSW, but the following defines do the job */
++
++ typedef HDC Display; /* this should be similar */
++ typedef void *Screen; /* not used */
++ typedef void *Visual; /* not used yet, is for GRAY, COLOR,
++ * MONO */
++
++ typedef void *Colormap; /* should be COLORPALETTE, not done
++ * yet */
++
++ typedef COLORREF Pixel;
++
++ #define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */
++
++ typedef struct {
++ Pixel pixel;
++ BYTE red, green, blue;
++ } XColor;
++
++ typedef struct {
++ HBITMAP bitmap;
++ unsigned int width;
++ unsigned int height;
++ unsigned int depth;
++ } XImage;
++
++ #if defined(__cplusplus) || defined(c_plusplus)
++ extern "C" {
++ #endif
++ /* some replacements for X... functions */
++
++ /* XDefaultXXX */
++ FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen));
++ FUNC(XDefaultScreen, Screen *, (Display *d));
++ FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen));
++ FUNC(XDefaultDepth, int, (Display *d, Screen *s));
++
++ /* color related */
++ FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *));
++ FUNC(XAllocColor, int, (Display *, Colormap *, XColor *));
++ FUNC(XQueryColors, void, (Display *display, Colormap *colormap,
++ XColor *xcolors, int ncolors));
++ FUNC(XFreeColors, int, (Display *d, Colormap cmap,
++ unsigned long pixels[],
++ int npixels, unsigned long planes));
++ /* XImage */
++ FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format,
++ int x, int y, int width, int height,
++ int pad, int foo));
++
++ /* free and destroy bitmap */
++ FUNC(XDestroyImage, void /* ? */ , (XImage *));
++ /* free only, bitmap remains */
++ FUNC(XImageFree, void, (XImage *));
++ #if defined(__cplusplus) || defined(c_plusplus)
++ } /* end of extern "C" */
++ #endif /* cplusplus */
++
++ #define ZPixmap 1 /* not really used */
++ #define XYBitmap 1 /* not really used */
++
++ #ifndef True
++ #define True 1
++ #define False 0
++ #endif
++ #ifndef Bool
++ typedef BOOL Bool; /* take MSW bool */
++ #endif
++ /* make these local here, simx.c gets the same from xpm.h */
++ #undef LFUNC
++ #undef FUNC
++
++ #endif /* def FOR_MSW */
++
++ #endif /* _SIMX_H */
+*** ../vim-7.3.638/src/xpm/include/xpm.h 1970-01-01 01:00:00.000000000 +0100
+--- src/xpm/include/xpm.h 1998-03-19 23:51:00.000000000 +0100
+***************
+*** 0 ****
+--- 1,501 ----
++ /*
++ * Copyright (C) 1989-95 GROUPE BULL
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to
++ * deal in the Software without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
++ * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
++ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ * Except as contained in this notice, the name of GROUPE BULL shall not be
++ * used in advertising or otherwise to promote the sale, use or other dealings
++ * in this Software without prior written authorization from GROUPE BULL.
++ */
++
++ /*****************************************************************************\
++ * xpm.h: *
++ * *
++ * XPM library *
++ * Include file *
++ * *
++ * Developed by Arnaud Le Hors *
++ \*****************************************************************************/
++
++ /*
++ * The code related to FOR_MSW has been added by
++ * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94
++ */
++
++ /*
++ * The code related to AMIGA has been added by
++ * Lorens Younes (d93-hyo@nada.kth.se) 4/96
++ */
++
++ #ifndef XPM_h
++ #define XPM_h
++
++ /*
++ * first some identification numbers:
++ * the version and revision numbers are determined with the following rule:
++ * SO Major number = LIB minor version number.
++ * SO Minor number = LIB sub-minor version number.
++ * e.g: Xpm version 3.2f
++ * we forget the 3 which is the format number, 2 gives 2, and f gives 6.
++ * thus we have XpmVersion = 2 and XpmRevision = 6
++ * which gives SOXPMLIBREV = 2.6
++ *
++ * Then the XpmIncludeVersion number is built from these numbers.
++ */
++ #define XpmFormat 3
++ #define XpmVersion 4
++ #define XpmRevision 11
++ #define XpmIncludeVersion ((XpmFormat * 100 + XpmVersion) * 100 + XpmRevision)
++
++ #ifndef XPM_NUMBERS
++
++ #ifdef FOR_MSW
++ # define SYSV /* uses memcpy string.h etc. */
++ # include <malloc.h>
++ # include "simx.h" /* defines some X stuff using MSW types */
++ #define NEED_STRCASECMP /* at least for MSVC++ */
++ #else /* FOR_MSW */
++ # ifdef AMIGA
++ # include "amigax.h"
++ # else /* not AMIGA */
++ # include <X11/Xlib.h>
++ # include <X11/Xutil.h>
++ # endif /* not AMIGA */
++ #endif /* FOR_MSW */
++
++ /* let's define Pixel if it is not done yet */
++ #if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED)
++ typedef unsigned long Pixel; /* Index into colormap */
++ # define PIXEL_ALREADY_TYPEDEFED
++ #endif
++
++ /* make sure we know whether function prototypes are needed or not */
++ #ifndef NeedFunctionPrototypes
++ # if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
++ # define NeedFunctionPrototypes 1
++ # else
++ # define NeedFunctionPrototypes 0
++ # endif
++ #endif
++
++
++ /* Return ErrorStatus codes:
++ * null if full success
++ * positive if partial success
++ * negative if failure
++ */
++
++ #define XpmColorError 1
++ #define XpmSuccess 0
++ #define XpmOpenFailed -1
++ #define XpmFileInvalid -2
++ #define XpmNoMemory -3
++ #define XpmColorFailed -4
++
++ typedef struct {
++ char *name; /* Symbolic color name */
++ char *value; /* Color value */
++ Pixel pixel; /* Color pixel */
++ } XpmColorSymbol;
++
++ typedef struct {
++ char *name; /* name of the extension */
++ unsigned int nlines; /* number of lines in this extension */
++ char **lines; /* pointer to the extension array of strings */
++ } XpmExtension;
++
++ typedef struct {
++ char *string; /* characters string */
++ char *symbolic; /* symbolic name */
++ char *m_color; /* monochrom default */
++ char *g4_color; /* 4 level grayscale default */
++ char *g_color; /* other level grayscale default */
++ char *c_color; /* color default */
++ } XpmColor;
++
++ typedef struct {
++ unsigned int width; /* image width */
++ unsigned int height; /* image height */
++ unsigned int cpp; /* number of characters per pixel */
++ unsigned int ncolors; /* number of colors */
++ XpmColor *colorTable; /* list of related colors */
++ unsigned int *data; /* image data */
++ } XpmImage;
++
++ typedef struct {
++ unsigned long valuemask; /* Specifies which attributes are defined */
++ char *hints_cmt; /* Comment of the hints section */
++ char *colors_cmt; /* Comment of the colors section */
++ char *pixels_cmt; /* Comment of the pixels section */
++ unsigned int x_hotspot; /* Returns the x hotspot's coordinate */
++ unsigned int y_hotspot; /* Returns the y hotspot's coordinate */
++ unsigned int nextensions; /* number of extensions */
++ XpmExtension *extensions; /* pointer to array of extensions */
++ } XpmInfo;
++
++ typedef int (*XpmAllocColorFunc)(
++ #if NeedFunctionPrototypes
++ Display* /* display */,
++ Colormap /* colormap */,
++ char* /* colorname */,
++ XColor* /* xcolor */,
++ void* /* closure */
++ #endif
++ );
++
++ typedef int (*XpmFreeColorsFunc)(
++ #if NeedFunctionPrototypes
++ Display* /* display */,
++ Colormap /* colormap */,
++ Pixel* /* pixels */,
++ int /* npixels */,
++ void* /* closure */
++ #endif
++ );
++
++ typedef struct {
++ unsigned long valuemask; /* Specifies which attributes are
++ defined */
++
++ Visual *visual; /* Specifies the visual to use */
++ Colormap colormap; /* Specifies the colormap to use */
++ unsigned int depth; /* Specifies the depth */
++ unsigned int width; /* Returns the width of the created
++ pixmap */
++ unsigned int height; /* Returns the height of the created
++ pixmap */
++ unsigned int x_hotspot; /* Returns the x hotspot's
++ coordinate */
++ unsigned int y_hotspot; /* Returns the y hotspot's
++ coordinate */
++ unsigned int cpp; /* Specifies the number of char per
++ pixel */
++ Pixel *pixels; /* List of used color pixels */
++ unsigned int npixels; /* Number of used pixels */
++ XpmColorSymbol *colorsymbols; /* List of color symbols to override */
++ unsigned int numsymbols; /* Number of symbols */
++ char *rgb_fname; /* RGB text file name */
++ unsigned int nextensions; /* Number of extensions */
++ XpmExtension *extensions; /* List of extensions */
++
++ unsigned int ncolors; /* Number of colors */
++ XpmColor *colorTable; /* List of colors */
++ /* 3.2 backward compatibility code */
++ char *hints_cmt; /* Comment of the hints section */
++ char *colors_cmt; /* Comment of the colors section */
++ char *pixels_cmt; /* Comment of the pixels section */
++ /* end 3.2 bc */
++ unsigned int mask_pixel; /* Color table index of transparent
++ color */
++
++ /* Color Allocation Directives */
++ Bool exactColors; /* Only use exact colors for visual */
++ unsigned int closeness; /* Allowable RGB deviation */
++ unsigned int red_closeness; /* Allowable red deviation */
++ unsigned int green_closeness; /* Allowable green deviation */
++ unsigned int blue_closeness; /* Allowable blue deviation */
++ int color_key; /* Use colors from this color set */
++
++ Pixel *alloc_pixels; /* Returns the list of alloc'ed color
++ pixels */
++ int nalloc_pixels; /* Returns the number of alloc'ed
++ color pixels */
++
++ Bool alloc_close_colors; /* Specify whether close colors should
++ be allocated using XAllocColor
++ or not */
++ int bitmap_format; /* Specify the format of 1bit depth
++ images: ZPixmap or XYBitmap */
++
++ /* Color functions */
++ XpmAllocColorFunc alloc_color; /* Application color allocator */
++ XpmFreeColorsFunc free_colors; /* Application color de-allocator */
++ void *color_closure; /* Application private data to pass to
++ alloc_color and free_colors */
++
++ } XpmAttributes;
++
++ /* XpmAttributes value masks bits */
++ #define XpmVisual (1L<<0)
++ #define XpmColormap (1L<<1)
++ #define XpmDepth (1L<<2)
++ #define XpmSize (1L<<3) /* width & height */
++ #define XpmHotspot (1L<<4) /* x_hotspot & y_hotspot */
++ #define XpmCharsPerPixel (1L<<5)
++ #define XpmColorSymbols (1L<<6)
++ #define XpmRgbFilename (1L<<7)
++ /* 3.2 backward compatibility code */
++ #define XpmInfos (1L<<8)
++ #define XpmReturnInfos XpmInfos
++ /* end 3.2 bc */
++ #define XpmReturnPixels (1L<<9)
++ #define XpmExtensions (1L<<10)
++ #define XpmReturnExtensions XpmExtensions
++
++ #define XpmExactColors (1L<<11)
++ #define XpmCloseness (1L<<12)
++ #define XpmRGBCloseness (1L<<13)
++ #define XpmColorKey (1L<<14)
++
++ #define XpmColorTable (1L<<15)
++ #define XpmReturnColorTable XpmColorTable
++
++ #define XpmReturnAllocPixels (1L<<16)
++ #define XpmAllocCloseColors (1L<<17)
++ #define XpmBitmapFormat (1L<<18)
++
++ #define XpmAllocColor (1L<<19)
++ #define XpmFreeColors (1L<<20)
++ #define XpmColorClosure (1L<<21)
++
++
++ /* XpmInfo value masks bits */
++ #define XpmComments XpmInfos
++ #define XpmReturnComments XpmComments
++
++ /* XpmAttributes mask_pixel value when there is no mask */
++ #ifndef FOR_MSW
++ #define XpmUndefPixel 0x80000000
++ #else
++ /* int is only 16 bit for MSW */
++ #define XpmUndefPixel 0x8000
++ #endif
++
++ /*
++ * color keys for visual type, they must fit along with the number key of
++ * each related element in xpmColorKeys[] defined in XpmI.h
++ */
++ #define XPM_MONO 2
++ #define XPM_GREY4 3
++ #define XPM_GRAY4 3
++ #define XPM_GREY 4
++ #define XPM_GRAY 4
++ #define XPM_COLOR 5
++
++
++ /* macros for forward declarations of functions with prototypes */
++ #if NeedFunctionPrototypes
++ #define FUNC(f, t, p) extern t f p
++ #define LFUNC(f, t, p) static t f p
++ #else
++ #define FUNC(f, t, p) extern t f()
++ #define LFUNC(f, t, p) static t f()
++ #endif
++
++
++ /*
++ * functions declarations
++ */
++
++ #ifdef __cplusplus
++ extern "C" {
++ #endif
++
++ /* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */
++ /* Same for Amiga! */
++
++ #if !defined(FOR_MSW) && !defined(AMIGA)
++ FUNC(XpmCreatePixmapFromData, int, (Display *display,
++ Drawable d,
++ char **data,
++ Pixmap *pixmap_return,
++ Pixmap *shapemask_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateDataFromPixmap, int, (Display *display,
++ char ***data_return,
++ Pixmap pixmap,
++ Pixmap shapemask,
++ XpmAttributes *attributes));
++
++ FUNC(XpmReadFileToPixmap, int, (Display *display,
++ Drawable d,
++ char *filename,
++ Pixmap *pixmap_return,
++ Pixmap *shapemask_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmWriteFileFromPixmap, int, (Display *display,
++ char *filename,
++ Pixmap pixmap,
++ Pixmap shapemask,
++ XpmAttributes *attributes));
++ #endif
++
++ FUNC(XpmCreateImageFromData, int, (Display *display,
++ char **data,
++ XImage **image_return,
++ XImage **shapemask_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateDataFromImage, int, (Display *display,
++ char ***data_return,
++ XImage *image,
++ XImage *shapeimage,
++ XpmAttributes *attributes));
++
++ FUNC(XpmReadFileToImage, int, (Display *display,
++ char *filename,
++ XImage **image_return,
++ XImage **shapeimage_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmWriteFileFromImage, int, (Display *display,
++ char *filename,
++ XImage *image,
++ XImage *shapeimage,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateImageFromBuffer, int, (Display *display,
++ char *buffer,
++ XImage **image_return,
++ XImage **shapemask_return,
++ XpmAttributes *attributes));
++ #if !defined(FOR_MSW) && !defined(AMIGA)
++ FUNC(XpmCreatePixmapFromBuffer, int, (Display *display,
++ Drawable d,
++ char *buffer,
++ Pixmap *pixmap_return,
++ Pixmap *shapemask_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateBufferFromImage, int, (Display *display,
++ char **buffer_return,
++ XImage *image,
++ XImage *shapeimage,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateBufferFromPixmap, int, (Display *display,
++ char **buffer_return,
++ Pixmap pixmap,
++ Pixmap shapemask,
++ XpmAttributes *attributes));
++ #endif
++ FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return));
++ FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer));
++
++ FUNC(XpmReadFileToData, int, (char *filename, char ***data_return));
++ FUNC(XpmWriteFileFromData, int, (char *filename, char **data));
++
++ FUNC(XpmAttributesSize, int, ());
++ FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes));
++ FUNC(XpmFreeExtensions, void, (XpmExtension *extensions,
++ int nextensions));
++
++ FUNC(XpmFreeXpmImage, void, (XpmImage *image));
++ FUNC(XpmFreeXpmInfo, void, (XpmInfo *info));
++ FUNC(XpmGetErrorString, char *, (int errcode));
++ FUNC(XpmLibraryVersion, int, ());
++
++ /* XpmImage functions */
++ FUNC(XpmReadFileToXpmImage, int, (char *filename,
++ XpmImage *image,
++ XpmInfo *info));
++
++ FUNC(XpmWriteFileFromXpmImage, int, (char *filename,
++ XpmImage *image,
++ XpmInfo *info));
++ #if !defined(FOR_MSW) && !defined(AMIGA)
++ FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display,
++ Drawable d,
++ XpmImage *image,
++ Pixmap *pixmap_return,
++ Pixmap *shapemask_return,
++ XpmAttributes *attributes));
++ #endif
++ FUNC(XpmCreateImageFromXpmImage, int, (Display *display,
++ XpmImage *image,
++ XImage **image_return,
++ XImage **shapeimage_return,
++ XpmAttributes *attributes));
++
++ FUNC(XpmCreateXpmImageFromImage, int, (Display *display,
++ XImage *image,
++ XImage *shapeimage,
++ XpmImage *xpmimage,
++ XpmAttributes *attributes));
++ #if !defined(FOR_MSW) && !defined(AMIGA)
++ FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display,
++ Pixmap pixmap,
++ Pixmap shapemask,
++ XpmImage *xpmimage,
++ XpmAttributes *attributes));
++ #endif
++ FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return,
++ XpmImage *image,
++ XpmInfo *info));
++
++ FUNC(XpmCreateXpmImageFromData, int, (char **data,
++ XpmImage *image,
++ XpmInfo *info));
++
++ FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer,
++ XpmImage *image,
++ XpmInfo *info));
++
++ FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return,
++ XpmImage *image,
++ XpmInfo *info));
++
++ FUNC(XpmGetParseError, int, (char *filename,
++ int *linenum_return,
++ int *charnum_return));
++
++ FUNC(XpmFree, void, (void *ptr));
++
++ #ifdef __cplusplus
++ } /* for C++ V2.0 */
++ #endif
++
++
++ /* backward compatibility */
++
++ /* for version 3.0c */
++ #define XpmPixmapColorError XpmColorError
++ #define XpmPixmapSuccess XpmSuccess
++ #define XpmPixmapOpenFailed XpmOpenFailed
++ #define XpmPixmapFileInvalid XpmFileInvalid
++ #define XpmPixmapNoMemory XpmNoMemory
++ #define XpmPixmapColorFailed XpmColorFailed
++
++ #define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \
++ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
++ #define XpmWritePixmapFile(dpy, file, pix, mask, att) \
++ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
++
++ /* for version 3.0b */
++ #define PixmapColorError XpmColorError
++ #define PixmapSuccess XpmSuccess
++ #define PixmapOpenFailed XpmOpenFailed
++ #define PixmapFileInvalid XpmFileInvalid
++ #define PixmapNoMemory XpmNoMemory
++ #define PixmapColorFailed XpmColorFailed
++
++ #define ColorSymbol XpmColorSymbol
++
++ #define XReadPixmapFile(dpy, d, file, pix, mask, att) \
++ XpmReadFileToPixmap(dpy, d, file, pix, mask, att)
++ #define XWritePixmapFile(dpy, file, pix, mask, att) \
++ XpmWriteFileFromPixmap(dpy, file, pix, mask, att)
++ #define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \
++ XpmCreatePixmapFromData(dpy, d, data, pix, mask, att)
++ #define XCreateDataFromPixmap(dpy, data, pix, mask, att) \
++ XpmCreateDataFromPixmap(dpy, data, pix, mask, att)
++
++ #endif /* XPM_NUMBERS */
++ #endif
+*** ../vim-7.3.638/src/Make_mvc.mak 2012-08-02 21:48:20.000000000 +0200
+--- src/Make_mvc.mak 2012-08-29 13:46:05.000000000 +0200
+***************
+*** 89,94 ****
+--- 89,96 ----
+ # Netbeans Support: NETBEANS=[yes or no] (default is yes if GUI is yes)
+ #
+ # XPM Image Support: XPM=[path to XPM directory]
++ # Default is "xpm", using the files included in the distribution.
++ # Use "no" to disable this feature.
+ #
+ # Optimization: OPTIMIZE=[SPACE, SPEED, MAXSPEED] (default is MAXSPEED)
+ #
+***************
+*** 279,295 ****
+ NETBEANS_LIB = WSock32.lib
+ !endif
+
+! !ifdef XPM
+ # XPM - Include support for XPM signs
+! # You need to download or build xpm.lib somehow.
+! # You can get the most recent version of libXpm-*.zip from
+! # http://cgit.freedesktop.org/xorg/lib/libXpm
+! # from which you must build xpm.lib yourself
+! # OR get and unpack: ftp://ftp.vim.org/pub/vim/pcextra/xpm.zip
+ XPM_OBJ = $(OBJDIR)/xpm_w32.obj
+ XPM_DEFS = -DFEAT_XPM_W32
+ XPM_LIB = $(XPM)\lib\libXpm.lib
+! XPM_INC = -I $(XPM)\include
+ !endif
+ !endif
+
+--- 281,301 ----
+ NETBEANS_LIB = WSock32.lib
+ !endif
+
+! !ifndef XPM
+! # XPM is not set, use the included xpm files, depending on the architecture.
+! !if ("$(CPU)" == "AMD64") || ("$(CPU)" == "IA64")
+! XPM = xpm\x64
+! !else
+! XPM = xpm\x86
+! !endif
+! !endif
+! !if "$(XPM)" != "no"
+ # XPM - Include support for XPM signs
+! # See the xpm directory for more information.
+ XPM_OBJ = $(OBJDIR)/xpm_w32.obj
+ XPM_DEFS = -DFEAT_XPM_W32
+ XPM_LIB = $(XPM)\lib\libXpm.lib
+! XPM_INC = -I $(XPM)\include -I $(XPM)\..\include
+ !endif
+ !endif
+
+*** ../vim-7.3.638/src/bigvim.bat 2010-08-15 21:57:29.000000000 +0200
+--- src/bigvim.bat 2012-08-29 13:46:18.000000000 +0200
+***************
+*** 1,3 ****
+ :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
+! nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl512 DYNAMIC_PERL=yes PERL_VER=512 PYTHON=e:\python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=e:\python31 DYNAMIC_PYTHON3=yes PYTHON3_VER=31 RUBY=e:\ruby191 DYNAMIC_RUBY=yes RUBY_VER=191 RUBY_VER_LONG=1.9.1 TCL=e:\tcl DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes XPM=e:\xpm
+
+--- 1,5 ----
+ :: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
+! SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\"
+! SET TOOLDIR=E:\
+! %VCDIR%nmake -f Make_mvc.mak GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
+
+*** ../vim-7.3.638/src/bigvim64.bat 2012-08-29 14:16:38.000000000 +0200
+--- src/bigvim64.bat 2012-08-29 13:46:35.000000000 +0200
+***************
+*** 0 ****
+--- 1,6 ----
++ :: command to build big Vim 64 bit with OLE, Perl, Python, Ruby and Tcl
++ :: First run: %VCDIR%\vcvarsall.bat x86_amd64
++ SET VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\"
++ SET TOOLDIR=E:\
++ %VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PERL=E:\perl514 DYNAMIC_PERL=yes PERL_VER=514 PYTHON=%TOOLDIR%python27 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%python32 DYNAMIC_PYTHON3=yes PYTHON3_VER=32 RUBY=%TOOLDIR%ruby192 DYNAMIC_RUBY=yes RUBY_VER=192 RUBY_VER_LONG=1.9.2 TCL=%TOOLDIR%tcl TCL_VER=85 TCL_VER_LONG=8.5 DYNAMIC_TCL=yes %1 IME=yes CSCOPE=yes
++
+*** ../vim-7.3.638/Filelist 2012-07-16 17:27:57.000000000 +0200
+--- Filelist 2012-08-29 13:53:52.000000000 +0200
+***************
+*** 349,354 ****
+--- 349,360 ----
+ src/vim*.ico \
+ src/vim.tlb \
+ src/vimtbar.lib \
++ src/xpm/COPYRIGHT \
++ src/xpm/README.txt \
++ src/xpm/include/*.h \
++ src/xpm/x64/lib/libXpm.lib \
++ src/xpm/x86/lib/libXpm.a \
++ src/xpm/x86/lib/libXpm.lib \
+ src/vimtbar.dll \
+ nsis/icons/*.bmp \
+ nsis/icons/*.ico \
+*** ../vim-7.3.638/src/version.c 2012-08-29 14:17:51.000000000 +0200
+--- src/version.c 2012-08-29 14:14:19.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 639,
+ /**/
+
+--
+A successful man is one who makes more money than his wife can spend.
+A successful woman is one who can find such a man.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.640 b/source/ap/vim/patches/7.3.640
new file mode 100644
index 000000000..984df6400
--- /dev/null
+++ b/source/ap/vim/patches/7.3.640
Binary files differ
diff --git a/source/ap/vim/patches/7.3.641 b/source/ap/vim/patches/7.3.641
new file mode 100644
index 000000000..daacdb4ff
--- /dev/null
+++ b/source/ap/vim/patches/7.3.641
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.641
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.641
+Problem: ":mkview" uses ":normal" instead of ":normal!" for folds. (Dan)
+Solution: Add the bang. (Christian Brabandt)
+Files: src/fold.c
+
+
+*** ../vim-7.3.640/src/fold.c 2012-08-08 18:01:00.000000000 +0200
+--- src/fold.c 2012-08-29 15:17:39.000000000 +0200
+***************
+*** 3373,3379 ****
+ /* open nested folds while this fold is open */
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+! || put_line(fd, "normal zo") == FAIL)
+ return FAIL;
+ if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
+ off + fp->fd_top)
+--- 3373,3379 ----
+ /* open nested folds while this fold is open */
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+! || put_line(fd, "normal! zo") == FAIL)
+ return FAIL;
+ if (put_foldopen_recurse(fd, wp, &fp->fd_nested,
+ off + fp->fd_top)
+***************
+*** 3417,3423 ****
+ {
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+! || fprintf(fd, "normal z%c",
+ fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
+ || put_eol(fd) == FAIL)
+ return FAIL;
+--- 3417,3423 ----
+ {
+ if (fprintf(fd, "%ld", fp->fd_top + off) < 0
+ || put_eol(fd) == FAIL
+! || fprintf(fd, "normal! z%c",
+ fp->fd_flags == FD_CLOSED ? 'c' : 'o') < 0
+ || put_eol(fd) == FAIL)
+ return FAIL;
+*** ../vim-7.3.640/src/version.c 2012-08-29 14:23:06.000000000 +0200
+--- src/version.c 2012-08-29 15:18:26.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 641,
+ /**/
+
+--
+You cannot propel yourself forward by patting yourself on the back.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.642 b/source/ap/vim/patches/7.3.642
new file mode 100644
index 000000000..ddc40321f
--- /dev/null
+++ b/source/ap/vim/patches/7.3.642
@@ -0,0 +1,55 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.642
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.642
+Problem: Segfault with specific autocommands. Was OK after 7.3.449 and
+ before 7.3.545. (Richard Brown)
+Solution: Pass TRUE for abort_if_last in the call to close_buffer().
+ (Christian Brabandt)
+Files: src/window.c
+
+
+*** ../vim-7.3.641/src/window.c 2012-07-19 18:05:40.000000000 +0200
+--- src/window.c 2012-08-29 15:42:15.000000000 +0200
+***************
+*** 2269,2275 ****
+ #ifdef FEAT_AUTOCMD
+ win->w_closing = TRUE;
+ #endif
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, FALSE);
+ #ifdef FEAT_AUTOCMD
+ if (win_valid(win))
+ win->w_closing = FALSE;
+--- 2269,2275 ----
+ #ifdef FEAT_AUTOCMD
+ win->w_closing = TRUE;
+ #endif
+! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0, TRUE);
+ #ifdef FEAT_AUTOCMD
+ if (win_valid(win))
+ win->w_closing = FALSE;
+*** ../vim-7.3.641/src/version.c 2012-08-29 15:22:14.000000000 +0200
+--- src/version.c 2012-08-29 15:49:52.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 642,
+ /**/
+
+--
+The psychic said, "God bless you." I said, "I didn't sneeze." She
+looked deep into my eyes and said, "You will, eventually." And, damn
+if she wasn't right. Two days later, I sneezed. --Ellen Degeneres
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.643 b/source/ap/vim/patches/7.3.643
new file mode 100644
index 000000000..c2f700c58
--- /dev/null
+++ b/source/ap/vim/patches/7.3.643
@@ -0,0 +1,73 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.643
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.643 (after 7.3.635)
+Problem: MS-Windows: When starting gvim maximized 'lines' and 'columns' are
+ wrong. (Christian Robinson)
+Solution: Move the check for gui.starting from ui_get_shellsize() to
+ check_shellsize().
+Files: src/ui.c, src/term.c
+
+
+*** ../vim-7.3.642/src/ui.c 2012-08-23 13:28:50.000000000 +0200
+--- src/ui.c 2012-08-29 16:20:04.000000000 +0200
+***************
+*** 298,306 ****
+ int retval;
+
+ #ifdef FEAT_GUI
+- if (gui.starting)
+- /* possibly a system call during startup, check later */
+- return OK;
+ if (gui.in_use)
+ retval = gui_get_shellsize();
+ else
+--- 298,303 ----
+*** ../vim-7.3.642/src/term.c 2012-08-15 16:20:59.000000000 +0200
+--- src/term.c 2012-08-29 16:22:25.000000000 +0200
+***************
+*** 3006,3012 ****
+ int old_Rows = Rows;
+ int old_Columns = Columns;
+
+! if (!exiting)
+ {
+ (void)ui_get_shellsize();
+ check_shellsize();
+--- 3006,3018 ----
+ int old_Rows = Rows;
+ int old_Columns = Columns;
+
+! if (!exiting
+! #ifdef FEAT_GUI
+! /* Do not get the size when executing a shell command during
+! * startup. */
+! && !gui.starting
+! #endif
+! )
+ {
+ (void)ui_get_shellsize();
+ check_shellsize();
+*** ../vim-7.3.642/src/version.c 2012-08-29 15:50:22.000000000 +0200
+--- src/version.c 2012-08-29 16:25:42.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 643,
+ /**/
+
+--
+Eight Megabytes And Continually Swapping.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.644 b/source/ap/vim/patches/7.3.644
new file mode 100644
index 000000000..6f2630cc4
--- /dev/null
+++ b/source/ap/vim/patches/7.3.644
@@ -0,0 +1,72 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.644
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.644
+Problem: Dead code for BeOS GUI.
+Solution: Remove unused __BEOS__ stuff.
+Files: src/gui.c
+
+
+*** ../vim-7.3.643/src/gui.c 2012-07-10 16:49:08.000000000 +0200
+--- src/gui.c 2012-08-29 16:28:46.000000000 +0200
+***************
+*** 37,44 ****
+ static void gui_set_bg_color __ARGS((char_u *name));
+ static win_T *xy2win __ARGS((int x, int y));
+
+! #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOS_X) \
+! && !defined(__APPLE__)
+ # define MAY_FORK
+ static void gui_do_fork __ARGS((void));
+
+--- 37,43 ----
+ static void gui_set_bg_color __ARGS((char_u *name));
+ static win_T *xy2win __ARGS((int x, int y));
+
+! #if defined(UNIX) && !defined(MACOS_X) && !defined(__APPLE__)
+ # define MAY_FORK
+ static void gui_do_fork __ARGS((void));
+
+***************
+*** 784,794 ****
+ gui_exit(rc)
+ int rc;
+ {
+- #ifndef __BEOS__
+ /* don't free the fonts, it leads to a BUS error
+ * richard@whitequeen.com Jul 99 */
+ free_highlight_fonts();
+- #endif
+ gui.in_use = FALSE;
+ gui_mch_exit(rc);
+ }
+--- 783,791 ----
+*** ../vim-7.3.643/src/version.c 2012-08-29 16:26:01.000000000 +0200
+--- src/version.c 2012-08-29 16:33:30.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 644,
+ /**/
+
+--
+E M A C S
+s e l o h
+c t t n i
+a a t f
+p r t
+e o
+ l
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.645 b/source/ap/vim/patches/7.3.645
new file mode 100644
index 000000000..40d8ee0b8
--- /dev/null
+++ b/source/ap/vim/patches/7.3.645
@@ -0,0 +1,118 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.645
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.645
+Problem: No tests for patch 7.3.625 and 7.3.637.
+Solution: Add more tests for the "gn" command and try/catch. (Christian
+ Brabandt)
+Files: src/testdir/test53.in, src/testdir/test53.ok,
+ src/testdir/test55.in, src/testdir/test55.ok
+
+
+*** ../vim-7.3.644/src/testdir/test53.in 2012-07-25 15:06:20.000000000 +0200
+--- src/testdir/test53.in 2012-08-29 16:37:44.000000000 +0200
+***************
+*** 34,40 ****
+ gnd
+ /[a]bcdx
+ :1
+! 2gnd
+ :/^start:/,/^end:/wq! test.out
+ ENDTEST
+
+--- 34,46 ----
+ gnd
+ /[a]bcdx
+ :1
+! 2gnd/join
+! /$
+! 0gnd
+! /\>\zs
+! 0gnd/^
+! gnd$h/\zs
+! gnd
+ :/^start:/,/^end:/wq! test.out
+ ENDTEST
+
+***************
+*** 57,60 ****
+--- 63,70 ----
+ one
+ two
+ abcdx | abcdx | abcdx
++ join
++ lines
++ zero width pattern
++ delete first and last chars
+ end:
+*** ../vim-7.3.644/src/testdir/test53.ok 2012-07-25 15:06:20.000000000 +0200
+--- src/testdir/test53.ok 2012-08-29 16:37:48.000000000 +0200
+***************
+*** 21,24 ****
+--- 21,27 ----
+ SEARCH:
+ searchmatch
+ abcdx | | abcdx
++ join lines
++ zerowidth pattern
++ elete first and last char
+ end:
+*** ../vim-7.3.644/src/testdir/test55.in 2012-05-18 12:06:58.000000000 +0200
+--- src/testdir/test55.in 2012-08-29 16:50:51.000000000 +0200
+***************
+*** 378,383 ****
+--- 378,393 ----
+ :unlet dict
+ :call garbagecollect(1)
+ :"
++ :" test for patch 7.3.637
++ :let a = 'No error caught'
++ :try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
++ o=a :"
++ :lang C
++ :redir => a
++ :try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
++ :redir END
++ o=a :"
++ :"
+ :/^start:/,$wq! test.out
+ ENDTEST
+
+*** ../vim-7.3.644/src/testdir/test55.ok 2012-05-18 12:06:58.000000000 +0200
+--- src/testdir/test55.ok 2012-08-29 16:51:15.000000000 +0200
+***************
+*** 115,117 ****
+--- 115,123 ----
+ {'a': {'b': 'B'}}
+ Vim(call):E737: a
+ {'a': {'b': 'B'}}
++ Vim(foldopen):E490:
++
++
++ Error detected while processing :
++ E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
++
+*** ../vim-7.3.644/src/version.c 2012-08-29 16:34:23.000000000 +0200
+--- src/version.c 2012-08-29 16:37:20.000000000 +0200
+***************
+*** 721,722 ****
+--- 721,724 ----
+ { /* Add new patch number below this line */
++ /**/
++ 645,
+ /**/
+
+--
+TALL KNIGHT OF NI: Ni!
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/zsh/zsh.SlackBuild b/source/ap/zsh/zsh.SlackBuild
index dc6dcf2a4..7c0a46b3e 100755
--- a/source/ap/zsh/zsh.SlackBuild
+++ b/source/ap/zsh/zsh.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PKGNAM=zsh
-VERSION=${VERSION:-$(echo ${PKGNAM}-4.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo ${PKGNAM}-5.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -68,9 +68,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# fix regex crash:
-zcat $CWD/zsh.regex.oh.bah.diff.gz | patch -p0 --verbose || exit 1
-
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/source/ap/zsh/zsh.regex.oh.bah.diff b/source/ap/zsh/zsh.regex.oh.bah.diff
deleted file mode 100644
index 15e3d5b43..000000000
--- a/source/ap/zsh/zsh.regex.oh.bah.diff
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./Src/text.c.orig 2010-09-14 09:46:26.000000000 -0500
-+++ ./Src/text.c 2011-03-19 18:50:22.270001467 -0500
-@@ -785,8 +785,7 @@
- taddstr(" ");
- taddstr(ecgetstr(state, EC_NODUP, NULL));
- if (ctype == COND_STREQ ||
-- ctype == COND_STRNEQ ||
-- ctype == COND_REGEX)
-+ ctype == COND_STRNEQ)
- state->pc++;
- } else {
- /* Unary test: `-f foo' etc. */
diff --git a/source/a/module-init-tools/module-init-tools.SlackBuild b/source/l/js185/js185.SlackBuild
index a8dc73ab3..515133886 100755
--- a/source/a/module-init-tools/module-init-tools.SlackBuild
+++ b/source/l/js185/js185.SlackBuild
@@ -1,6 +1,8 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Slackware build script for SpiderMonkey
+
+# Copyright 2011 Robby Workman, Northport, Alabama, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -9,7 +11,7 @@
# 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
+# 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,
@@ -20,33 +22,49 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+PKGNAM=js185
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
-VERSION=${VERSION:-$(echo module-init-tools-*.tar.?z* | cut -d - -f 4 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-2}
-
-NUMJOBS=${NUMJOBS:--j7}
+TARNAME=js
+TARVERS=1.8.5
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) export ARCH=i486 ;;
- arm*) export ARCH=arm ;;
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
- *) export ARCH=$( uname -m ) ;;
+ *) ARCH=$( uname -m ) ;;
esac
fi
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-module-init-tools
+PKG=$TMP/package-$PKGNAM
+
+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"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
rm -rf $PKG
mkdir -p $TMP $PKG
-
cd $TMP
-rm -rf module-init-tools-$VERSION
-tar xvf $CWD/module-init-tools-$VERSION.tar.?z* || exit 1
-cd module-init-tools-$VERSION || exit 1
+rm -rf $TARNAME-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $TARNAME-$TARVERS || exit 1
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
@@ -54,56 +72,49 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# 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 || exit 1
+cd js/src
+
+patch -p0 < $CWD/js185-destdir.patch || exit 1
-# Using --bindir=/sbin to make lsmod go there too
-CFLAGS= \
+CXXFLAGS="$SLKCFLAGS" \
+CFLAGS="$SLKCFLAGS" \
./configure \
- --prefix=/ \
- --bindir=/sbin \
- --docdir=/usr/doc/module-init-tools-$VERSION \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
--mandir=/usr/man \
- --enable-zlib \
- --build=$ARCH-slackware-linux
+ --build=$ARCH-slackware-linux \
+ --enable-optimize="-O2" \
+ --enable-threadsafe \
+ --with-system-nspr \
+ --with-nspr-prefix=/usr || exit 1
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-# Create the config directory just in case
-mkdir -p $PKG/etc/modprobe.d/
+# Oops, Makefile missed this:
+cp -a shell/js $PKG/usr/bin
-# Link lsmod into /bin
-mkdir -p $PKG/bin
-( cd $PKG/bin ; ln -sf /sbin/lsmod . )
+# No need for this:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/*.a
-# 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
-)
-
-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
-cp -a \
- AUTHORS CODING COPYING FAQ README TODO \
- $PKG/usr/doc/module-init-tools-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp ../../README README.html $PKG/usr/doc/$PKGNAM-$VERSION
# If there's a ChangeLog, installing at least part of the recent history
# is useful, but don't let it get totally out of control:
if [ -r ChangeLog ]; then
- DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
touch -r ChangeLog $DOCSDIR/ChangeLog
fi
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
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 n $TMP/module-init-tools-$VERSION-$ARCH-$BUILD.txz
-
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/source/a/gdisk/slack-desc b/source/l/js185/slack-desc
index 492b4460e..ac323dafd 100644
--- a/source/a/gdisk/slack-desc
+++ b/source/l/js185/slack-desc
@@ -6,14 +6,14 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-gdisk: gdisk (GPT fdisk)
-gdisk:
-gdisk: GPT fdisk (gdisk) is a partitioning tool for disks using a GPT (GUID
-gdisk: Partition Table). It features a command-line interface, fairly direct
-gdisk: manipulation of partition table structures, recovery tools to help
-gdisk: you deal with corrupt partition tables, and the ability to convert
-gdisk: MBR disks to GPT format.
-gdisk:
-gdisk:
-gdisk: gdisk home: http://www.rodsbooks.com/gdisk/
-gdisk:
+js185: js185 (SpiderMonkey - Mozilla's JavaScript Engine)
+js185:
+js185: SpiderMonkey is Mozilla's JavaScript engine written in C/C++.
+js185: It is used in various Mozilla products (including Firefox) and is
+js185: available under MPL/GPL/LGPL tri-license.
+js185:
+js185: Homepage: http://www.mozilla.org/js/spidermonkey
+js185:
+js185:
+js185:
+js185:
diff --git a/source/a/mdadm/mdadm-3.1.5.tar.bz2.sign b/source/l/libcap/libcap-2.22.tar.bz2.sign
index e5c727688..31eaad16a 100644
--- a/source/a/mdadm/mdadm-3.1.5.tar.bz2.sign
+++ b/source/l/libcap/libcap-2.22.tar.bz2.sign
@@ -2,7 +2,7 @@
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
-iD8DBQBNiYLLyGugalF9Dw4RAjiBAJkB62x+h+B7v24ghmwIUa2p44sWNwCeIZfe
-sW9YOnjL/odR4C9Uuzu5pUQ=
-=qI9A
+iD8DBQBOLVY5yGugalF9Dw4RApFNAJwKUXnGMy+1QbBXJJAY9nCIPEVO5ACfcdWO
+vSlbjNX9WvZ99amrBhK6sag=
+=v2dJ
-----END PGP SIGNATURE-----
diff --git a/source/ap/ntfsprogs/ntfsprogs.SlackBuild b/source/n/iftop/iftop.SlackBuild
index 5c83bd217..0361a4756 100755
--- a/source/ap/ntfsprogs/ntfsprogs.SlackBuild
+++ b/source/n/iftop/iftop.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2006, 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2012 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,9 +20,10 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-PKGNAM=ntfsprogs
-VERSION=${VERSION:-2.0.0}
-BUILD=${BUILD:-2}
+
+PKGNAM=iftop
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -36,6 +37,12 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
+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=""
@@ -50,17 +57,10 @@ else
LIBDIRSUFFIX=""
fi
-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 || exit 1
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
+cd ${PKGNAM}-$VERSION
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -70,33 +70,26 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Configure:
CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
- --bindir=/bin \
--sysconfdir=/etc \
+ --localstatedir=/var \
--mandir=/usr/man \
- --docdir=/usr/doc/$PKGNAM-$VERSION \
- --disable-gnome-vfs \
- --disable-ntfsmount \
- --disable-static \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
--build=$ARCH-slackware-linux
# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1
-mkdir -p $PKG/lib${LIBDIRSUFFIX}
-mv $PKG/usr/lib${LIBDIRSUFFIX}/libntfs.so.* $PKG/lib${LIBDIRSUFFIX}
-( cd $PKG/usr/lib${LIBDIRSUFFIX} ; ln -sf ../../lib${LIBDIRSUFFIX}/libntfs* . )
-
# 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
+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:
+# 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
@@ -105,26 +98,25 @@ if [ -d $PKG/usr/man ]; then
ln -s $( readlink $eachpage ).gz $eachpage.gz
rm $eachpage
done
- gzip -9 *.*
+ 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* CREDITS INSTALL NEWS README TODO* doc \
+ COPYING* NEWS README* TODO \
$PKG/usr/doc/${PKGNAM}-$VERSION
-rm -f $PKG/usr/doc/${PKGNAM}-$VERSION/doc/Makefile*
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc