summaryrefslogtreecommitdiffstats
path: root/source/ap
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap')
-rw-r--r--source/ap/acct/581421-sa-hz-division.patch66
-rwxr-xr-xsource/ap/acct/acct.SlackBuild6
-rwxr-xr-xsource/ap/alsa-utils/alsa-utils.SlackBuild6
-rw-r--r--source/ap/alsa-utils/doinst.sh21
-rw-r--r--source/ap/alsa-utils/rc.alsa30
-rw-r--r--source/ap/alsa-utils/rc.alsa-oss24
-rwxr-xr-xsource/ap/aumix/aumix.SlackBuild83
-rw-r--r--source/ap/aumix/slack-desc19
-rw-r--r--source/ap/dc3dd/slack-desc2
-rwxr-xr-xsource/ap/diffutils/diffutils.SlackBuild13
-rw-r--r--source/ap/diffutils/diffutils.mkdir_p.diff11
-rwxr-xr-xsource/ap/dmapi/dmapi.SlackBuild8
-rw-r--r--source/ap/dmapi/dmapi.destdir.diff36
-rw-r--r--source/ap/ghostscript/cidfmap12
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild37
-rw-r--r--source/ap/ghostscript/ghostscript.gs_sprintf.diff28431
-rw-r--r--source/ap/ghostscript/slack-desc4
-rw-r--r--source/ap/hplip/hplip.56-hpmud.background.diff11
-rwxr-xr-xsource/ap/hplip/hplip.SlackBuild8
-rw-r--r--source/ap/hplip/hplip.no.upgrade.diff16
-rwxr-xr-xsource/ap/itstool/itstool.SlackBuild110
-rw-r--r--source/ap/itstool/slack-desc19
-rwxr-xr-xsource/ap/jed/jed.SlackBuild4
-rw-r--r--source/ap/ksh93/EPL-1.0213
-rwxr-xr-xsource/ap/ksh93/ksh93.SlackBuild23
-rw-r--r--source/ap/ksh93/patches/ksh-20070328-builtins.patch32
-rw-r--r--source/ap/ksh93/patches/ksh-20100826-fixregr.patch68
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-cdfix.patch14
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-cdfix2.patch25
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-tabfix.patch18
-rw-r--r--source/ap/ksh93/patches/ksh-20130214-fixkill.patch21
-rw-r--r--source/ap/ksh93/patches/rmdirfix.patch505
-rw-r--r--source/ap/linuxdoc-tools/ChangeLog.txt28
-rwxr-xr-xsource/ap/linuxdoc-tools/arm/build4
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build156
-rwxr-xr-xsource/ap/linuxdoc-tools/postbuildfixes.sh3
-rw-r--r--source/ap/linuxdoc-tools/sources/docbook2x_0.8.8-8.diff886
-rwxr-xr-xsource/ap/linuxdoc-tools/sources/source.download32
-rwxr-xr-xsource/ap/linuxdoc-tools/trackbuild.linuxdoc-tools5
-rwxr-xr-xsource/ap/lm_sensors/lm_sensors.SlackBuild4
-rwxr-xr-xsource/ap/lsscsi/lsscsi.SlackBuild2
-rwxr-xr-xsource/ap/lxc/lxc.SlackBuild8
-rwxr-xr-xsource/ap/madplay/madplay.SlackBuild2
-rw-r--r--source/ap/man-pages/man-pages-3.53.tar.signbin0 -> 543 bytes
-rwxr-xr-xsource/ap/man-pages/man-pages.SlackBuild4
-rw-r--r--source/ap/mariadb/doinst.sh (renamed from source/ap/mysql/doinst.sh)5
-rwxr-xr-xsource/ap/mariadb/mariadb.SlackBuild (renamed from source/ap/mysql/mysql.SlackBuild)170
-rw-r--r--source/ap/mariadb/mirror.url1
-rw-r--r--source/ap/mariadb/rc.mysqld (renamed from source/ap/mysql/rc.mysqld)11
-rw-r--r--source/ap/mariadb/slack-desc19
-rw-r--r--source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff87
-rw-r--r--source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff66
-rwxr-xr-xsource/ap/mc/mc.SlackBuild11
-rw-r--r--source/ap/mc/mc.image.sh.geeqie.diff18
-rw-r--r--source/ap/mc/mc.save.file.diff37
-rwxr-xr-xsource/ap/moc/moc.SlackBuild4
-rw-r--r--source/ap/mysql/README.mysql-embedded7
-rw-r--r--source/ap/mysql/mirror-url1
-rwxr-xr-xsource/ap/mysql/mysql-embedded.SlackBuild221
-rw-r--r--source/ap/mysql/slack-desc19
-rwxr-xr-xsource/ap/nano/nano.SlackBuild2
-rwxr-xr-xsource/ap/normalize/normalize.SlackBuild2
-rw-r--r--source/ap/pm-utils/49bluetooth-generic8
-rw-r--r--source/ap/pm-utils/README.SLACKWARE33
-rw-r--r--source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch32
-rw-r--r--source/ap/pm-utils/patches/fix-wrong-path-in-intel-audio-powersave.patch (renamed from source/ap/pm-utils/fix-wrong-path-in-intel-audio-powersave.patch)0
-rw-r--r--source/ap/pm-utils/patches/hook-exit-code-log.patch19
-rw-r--r--source/ap/pm-utils/patches/init-logfile-append.patch13
-rw-r--r--source/ap/pm-utils/patches/log-line-spacing-fix.patch14
-rw-r--r--source/ap/pm-utils/patches/use_more_sane_harddrive_defaults.patch (renamed from source/ap/pm-utils/use_more_sane_harddrive_defaults.patch)0
-rwxr-xr-xsource/ap/pm-utils/pm-utils.SlackBuild53
-rwxr-xr-xsource/ap/powertop/powertop.SlackBuild2
-rw-r--r--source/ap/powertop/slack-desc2
-rw-r--r--source/ap/rexima/slack-desc19
-rwxr-xr-xsource/ap/screen/screen.SlackBuild7
-rw-r--r--source/ap/screen/screen.crypt.diff126
-rwxr-xr-xsource/ap/sqlite/sqlite.SlackBuild6
-rw-r--r--source/ap/terminus-font/doinst.sh10
-rw-r--r--source/ap/terminus-font/slack-desc19
-rw-r--r--source/ap/terminus-font/terminus-font.Makefile.paths.diff15
-rwxr-xr-xsource/ap/terminus-font/terminus-font.SlackBuild (renamed from source/ap/rexima/rexima.SlackBuild)55
-rw-r--r--source/ap/tmux/slack-desc19
-rwxr-xr-xsource/ap/tmux/tmux.SlackBuild149
-rw-r--r--source/ap/vim/patches/7.3.00155
-rw-r--r--source/ap/vim/patches/7.3.00255
-rw-r--r--source/ap/vim/patches/7.3.00345
-rw-r--r--source/ap/vim/patches/7.3.00444
-rw-r--r--source/ap/vim/patches/7.3.00596
-rw-r--r--source/ap/vim/patches/7.3.006117
-rw-r--r--source/ap/vim/patches/7.3.007187
-rw-r--r--source/ap/vim/patches/7.3.008439
-rw-r--r--source/ap/vim/patches/7.3.00999
-rw-r--r--source/ap/vim/patches/7.3.010167
-rw-r--r--source/ap/vim/patches/7.3.011290
-rw-r--r--source/ap/vim/patches/7.3.01271
-rw-r--r--source/ap/vim/patches/7.3.013208
-rw-r--r--source/ap/vim/patches/7.3.01487
-rw-r--r--source/ap/vim/patches/7.3.01568
-rw-r--r--source/ap/vim/patches/7.3.016240
-rw-r--r--source/ap/vim/patches/7.3.017124
-rw-r--r--source/ap/vim/patches/7.3.01874
-rw-r--r--source/ap/vim/patches/7.3.01955
-rw-r--r--source/ap/vim/patches/7.3.020131
-rw-r--r--source/ap/vim/patches/7.3.02170
-rw-r--r--source/ap/vim/patches/7.3.02254
-rw-r--r--source/ap/vim/patches/7.3.02369
-rw-r--r--source/ap/vim/patches/7.3.024115
-rw-r--r--source/ap/vim/patches/7.3.025136
-rw-r--r--source/ap/vim/patches/7.3.02661
-rw-r--r--source/ap/vim/patches/7.3.02788
-rw-r--r--source/ap/vim/patches/7.3.028179
-rw-r--r--source/ap/vim/patches/7.3.029177
-rw-r--r--source/ap/vim/patches/7.3.030366
-rw-r--r--source/ap/vim/patches/7.3.031121
-rw-r--r--source/ap/vim/patches/7.3.032704
-rw-r--r--source/ap/vim/patches/7.3.03349
-rw-r--r--source/ap/vim/patches/7.3.034431
-rw-r--r--source/ap/vim/patches/7.3.03558
-rw-r--r--source/ap/vim/patches/7.3.03668
-rw-r--r--source/ap/vim/patches/7.3.037137
-rw-r--r--source/ap/vim/patches/7.3.03876
-rw-r--r--source/ap/vim/patches/7.3.03990
-rw-r--r--source/ap/vim/patches/7.3.04048
-rw-r--r--source/ap/vim/patches/7.3.04157
-rw-r--r--source/ap/vim/patches/7.3.04265
-rw-r--r--source/ap/vim/patches/7.3.043460
-rw-r--r--source/ap/vim/patches/7.3.04458
-rw-r--r--source/ap/vim/patches/7.3.04557
-rw-r--r--source/ap/vim/patches/7.3.04676
-rw-r--r--source/ap/vim/patches/7.3.047172
-rw-r--r--source/ap/vim/patches/7.3.048109
-rw-r--r--source/ap/vim/patches/7.3.049495
-rw-r--r--source/ap/vim/patches/7.3.050199
-rw-r--r--source/ap/vim/patches/7.3.051111
-rw-r--r--source/ap/vim/patches/7.3.052345
-rw-r--r--source/ap/vim/patches/7.3.05389
-rw-r--r--source/ap/vim/patches/7.3.054112
-rw-r--r--source/ap/vim/patches/7.3.055359
-rw-r--r--source/ap/vim/patches/7.3.056542
-rw-r--r--source/ap/vim/patches/7.3.05762
-rw-r--r--source/ap/vim/patches/7.3.058158
-rw-r--r--source/ap/vim/patches/7.3.059116
-rw-r--r--source/ap/vim/patches/7.3.060227
-rw-r--r--source/ap/vim/patches/7.3.06189
-rw-r--r--source/ap/vim/patches/7.3.062609
-rw-r--r--source/ap/vim/patches/7.3.06359
-rw-r--r--source/ap/vim/patches/7.3.06472
-rw-r--r--source/ap/vim/patches/7.3.065120
-rw-r--r--source/ap/vim/patches/7.3.06690
-rw-r--r--source/ap/vim/patches/7.3.06768
-rw-r--r--source/ap/vim/patches/7.3.06850
-rw-r--r--source/ap/vim/patches/7.3.06949
-rw-r--r--source/ap/vim/patches/7.3.07053
-rw-r--r--source/ap/vim/patches/7.3.07165
-rw-r--r--source/ap/vim/patches/7.3.072295
-rw-r--r--source/ap/vim/patches/7.3.07392
-rw-r--r--source/ap/vim/patches/7.3.074235
-rw-r--r--source/ap/vim/patches/7.3.075132
-rw-r--r--source/ap/vim/patches/7.3.076203
-rw-r--r--source/ap/vim/patches/7.3.077134
-rw-r--r--source/ap/vim/patches/7.3.07858
-rw-r--r--source/ap/vim/patches/7.3.07950
-rw-r--r--source/ap/vim/patches/7.3.080205
-rw-r--r--source/ap/vim/patches/7.3.08184
-rw-r--r--source/ap/vim/patches/7.3.08251
-rw-r--r--source/ap/vim/patches/7.3.083362
-rw-r--r--source/ap/vim/patches/7.3.084123
-rw-r--r--source/ap/vim/patches/7.3.085313
-rw-r--r--source/ap/vim/patches/7.3.086138
-rw-r--r--source/ap/vim/patches/7.3.087152
-rw-r--r--source/ap/vim/patches/7.3.088152
-rw-r--r--source/ap/vim/patches/7.3.08952
-rw-r--r--source/ap/vim/patches/7.3.09068
-rw-r--r--source/ap/vim/patches/7.3.091321
-rw-r--r--source/ap/vim/patches/7.3.09262
-rw-r--r--source/ap/vim/patches/7.3.093201
-rw-r--r--source/ap/vim/patches/7.3.09470
-rw-r--r--source/ap/vim/patches/7.3.09570
-rw-r--r--source/ap/vim/patches/7.3.09697
-rw-r--r--source/ap/vim/patches/7.3.09754
-rw-r--r--source/ap/vim/patches/7.3.09861
-rw-r--r--source/ap/vim/patches/7.3.09954
-rw-r--r--source/ap/vim/patches/7.3.10052
-rw-r--r--source/ap/vim/patches/7.3.10192
-rw-r--r--source/ap/vim/patches/7.3.102615
-rw-r--r--source/ap/vim/patches/7.3.103145
-rw-r--r--source/ap/vim/patches/7.3.10450
-rw-r--r--source/ap/vim/patches/7.3.10550
-rw-r--r--source/ap/vim/patches/7.3.10658
-rw-r--r--source/ap/vim/patches/7.3.10758
-rw-r--r--source/ap/vim/patches/7.3.108111
-rw-r--r--source/ap/vim/patches/7.3.109266
-rw-r--r--source/ap/vim/patches/7.3.11076
-rw-r--r--source/ap/vim/patches/7.3.111121
-rw-r--r--source/ap/vim/patches/7.3.11263
-rw-r--r--source/ap/vim/patches/7.3.11355
-rw-r--r--source/ap/vim/patches/7.3.11450
-rw-r--r--source/ap/vim/patches/7.3.11558
-rw-r--r--source/ap/vim/patches/7.3.11658
-rw-r--r--source/ap/vim/patches/7.3.11789
-rw-r--r--source/ap/vim/patches/7.3.11869
-rw-r--r--source/ap/vim/patches/7.3.11952
-rw-r--r--source/ap/vim/patches/7.3.12059
-rw-r--r--source/ap/vim/patches/7.3.12157
-rw-r--r--source/ap/vim/patches/7.3.122100
-rw-r--r--source/ap/vim/patches/7.3.12355
-rw-r--r--source/ap/vim/patches/7.3.124229
-rw-r--r--source/ap/vim/patches/7.3.12566
-rw-r--r--source/ap/vim/patches/7.3.12663
-rw-r--r--source/ap/vim/patches/7.3.12755
-rw-r--r--source/ap/vim/patches/7.3.12858
-rw-r--r--source/ap/vim/patches/7.3.129241
-rw-r--r--source/ap/vim/patches/7.3.13074
-rw-r--r--source/ap/vim/patches/7.3.13147
-rw-r--r--source/ap/vim/patches/7.3.13282
-rw-r--r--source/ap/vim/patches/7.3.133122
-rw-r--r--source/ap/vim/patches/7.3.13451
-rw-r--r--source/ap/vim/patches/7.3.13590
-rw-r--r--source/ap/vim/patches/7.3.13651
-rw-r--r--source/ap/vim/patches/7.3.13781
-rw-r--r--source/ap/vim/patches/7.3.13869
-rw-r--r--source/ap/vim/patches/7.3.139111
-rw-r--r--source/ap/vim/patches/7.3.14058
-rw-r--r--source/ap/vim/patches/7.3.14194
-rw-r--r--source/ap/vim/patches/7.3.14285
-rw-r--r--source/ap/vim/patches/7.3.1431520
-rw-r--r--source/ap/vim/patches/7.3.14480
-rw-r--r--source/ap/vim/patches/7.3.14564
-rw-r--r--source/ap/vim/patches/7.3.146224
-rw-r--r--source/ap/vim/patches/7.3.14753
-rw-r--r--source/ap/vim/patches/7.3.148252
-rw-r--r--source/ap/vim/patches/7.3.14978
-rw-r--r--source/ap/vim/patches/7.3.150113
-rw-r--r--source/ap/vim/patches/7.3.15159
-rw-r--r--source/ap/vim/patches/7.3.152643
-rw-r--r--source/ap/vim/patches/7.3.15366
-rw-r--r--source/ap/vim/patches/7.3.154106
-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.225bin18841 -> 0 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.640bin455297 -> 0 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
-rw-r--r--source/ap/vim/patches/7.4.001489
-rw-r--r--source/ap/vim/patches/7.4.00277
-rw-r--r--source/ap/vim/patches/7.4.003100
-rw-r--r--source/ap/vim/patches/7.4.004232
-rw-r--r--source/ap/vim/patches/7.4.00548
-rw-r--r--source/ap/vim/patches/7.4.00666
-rw-r--r--source/ap/vim/patches/7.4.00795
-rw-r--r--source/ap/vim/patches/7.4.00871
-rw-r--r--source/ap/vim/patches/7.4.00964
-rw-r--r--source/ap/vim/patches/7.4.01079
-rw-r--r--source/ap/vim/patches/7.4.011100
-rw-r--r--source/ap/vim/patches/7.4.012202
-rw-r--r--source/ap/vim/patches/7.4.01399
-rw-r--r--source/ap/vim/patches/7.4.014102
-rw-r--r--source/ap/vim/patches/7.4.015106
-rw-r--r--source/ap/vim/patches/7.4.016221
-rw-r--r--source/ap/vim/patches/7.4.01778
-rw-r--r--source/ap/vim/patches/7.4.01845
-rw-r--r--source/ap/vim/patches/7.4.01961
-rw-r--r--source/ap/vim/patches/7.4.02082
-rw-r--r--source/ap/vim/patches/7.4.02186
-rw-r--r--source/ap/vim/patches/7.4.022148
-rw-r--r--source/ap/vim/patches/7.4.02353
-rw-r--r--source/ap/vim/patches/7.4.02461
-rw-r--r--source/ap/vim/patches/7.4.02562
-rw-r--r--source/ap/vim/patches/7.4.02665
-rw-r--r--source/ap/vim/patches/7.4.02789
-rw-r--r--source/ap/vim/patches/7.4.028753
-rw-r--r--source/ap/vim/patches/7.4.02963
-rw-r--r--source/ap/vim/patches/7.4.030109
-rw-r--r--source/ap/vim/patches/7.4.03154
-rw-r--r--source/ap/vim/patches/7.4.03282
-rw-r--r--source/ap/vim/patches/7.4.033116
-rw-r--r--source/ap/vim/patches/7.4.034180
-rw-r--r--source/ap/vim/patches/7.4.03553
-rw-r--r--source/ap/vim/patches/7.4.036273
-rw-r--r--source/ap/vim/patches/7.4.037130
-rw-r--r--source/ap/vim/patches/7.4.038116
-rw-r--r--source/ap/vim/patches/7.4.039217
-rw-r--r--source/ap/vim/patches/7.4.04068
-rw-r--r--source/ap/vim/patches/7.4.04161
-rw-r--r--source/ap/vim/patches/7.4.04271
-rw-r--r--source/ap/vim/patches/7.4.04389
-rw-r--r--source/ap/vim/patches/7.4.04483
-rw-r--r--source/ap/vim/patches/7.4.045111
-rw-r--r--source/ap/vim/patches/7.4.04680
-rw-r--r--source/ap/vim/patches/7.4.04756
-rw-r--r--source/ap/vim/patches/7.4.04896
-rw-r--r--source/ap/vim/patches/7.4.04967
-rw-r--r--source/ap/vim/patches/7.4.05090
-rwxr-xr-xsource/ap/vim/vim-gvim.SlackBuild17
-rw-r--r--source/ap/vim/vim-runtime-syntax-20110328.diff2487
-rw-r--r--source/ap/vim/vim-runtime-syntax-20131002.diff0
-rwxr-xr-xsource/ap/vim/vim.SlackBuild17
-rwxr-xr-xsource/ap/xfsdump/xfsdump.SlackBuild4
-rw-r--r--source/ap/xfsdump/xfsdump.destdir.diff34
784 files changed, 37594 insertions, 113208 deletions
diff --git a/source/ap/acct/581421-sa-hz-division.patch b/source/ap/acct/581421-sa-hz-division.patch
new file mode 100644
index 000000000..0c15c0171
--- /dev/null
+++ b/source/ap/acct/581421-sa-hz-division.patch
@@ -0,0 +1,66 @@
+From: Dominique Brazziel <dbrazziel@snet.net>
+Subject: Fix for sa reporting 'inf' or 'nan' instead of correct values
+ because of division by clock values.
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581421
+Last-Updated: 2010-07-23
+
+--- acct-6.5.4.orig/sa.c 2010-02-11 20:55:14.000000000 -0500
++++ acct-6.5.4/sa.c 2010-07-22 14:08:26.000000000 -0400
+@@ -417,7 +417,6 @@
+ (void)printf("%s: GNU Accounting Utilities (release %s)\n",
+ program_name, VERSION_STRING);
+ exit(EXIT_SUCCESS);
+- case 4:
+ acct_file_name = optarg;
+ break;
+ case 'j':
+@@ -594,8 +593,11 @@
+ exit(EXIT_FAILURE);
+ }
+
++ /* Set HZ value from system */
++ hzval = sysconf(_SC_CLK_TCK);
++
+ /* Print out some debugging information. */
+-
++
+ if (debugging_enabled)
+ {
+ (void)fprintf (stddebug, "hzval -> %d\n", hzval);
+@@ -1162,31 +1164,30 @@
+ # define CURR_AHZ ((double)(ahz))
+ #endif
+
+-
+ if (debugging_enabled)
+ fprintf (stddebug, "\
+ ----------------------------------------------------------------------\n\
+ acct entries\n\
+ ----------------------------------------------------------------------\n\
+ ");
+-
++
+ /* loop while there are entries to be had */
+ while ((rec = pacct_get_entry ()) != NULL)
+ {
+ #ifdef HAVE_ACUTIME
+- double ut = comp_t_2_double (rec->ac_utime) / (double) hzval;
++ double ut = comp_t_2_double (rec->ac_utime) / CURR_AHZ;
+ #endif
+
+ #ifdef HAVE_ACSTIME
+- double st = comp_t_2_double (rec->ac_stime) / (double) hzval;
++ double st = comp_t_2_double (rec->ac_stime) / CURR_AHZ;
+ #endif
+
+ #ifdef HAVE_ACETIME
+- double et = comp_t_2_double (rec->ac_etime) / (double) hzval;
++ double et = ACETIME_2_DOUBLE (rec->ac_etime) / CURR_AHZ;
+ #endif
+
+ #ifdef HAVE_ACIO
+- double di = comp_t_2_double (rec->ac_io) / (double) hzval;
++ double di = comp_t_2_double (rec->ac_io) / CURR_AHZ;
+ #endif
+
+ #ifdef HAVE_ACMEM
diff --git a/source/ap/acct/acct.SlackBuild b/source/ap/acct/acct.SlackBuild
index bfdd46fd5..43cc97459 100755
--- a/source/ap/acct/acct.SlackBuild
+++ b/source/ap/acct/acct.SlackBuild
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2006, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2013 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=acct
PKGVER=6.5.4
VERSION=6.5.4
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -66,6 +66,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+zcat $CWD/581421-sa-hz-division.patch.gz | patch -p1 || exit 1
+
zcat $CWD/acct.logdir.fhs.diff.gz | patch -p1 || exit 1
# Need this after patching configure.ac:
autoreconf
diff --git a/source/ap/alsa-utils/alsa-utils.SlackBuild b/source/ap/alsa-utils/alsa-utils.SlackBuild
index 3e642d084..2540cc685 100755
--- a/source/ap/alsa-utils/alsa-utils.SlackBuild
+++ b/source/ap/alsa-utils/alsa-utils.SlackBuild
@@ -85,8 +85,10 @@ make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG
mkdir -p $PKG/etc/rc.d
-zcat $CWD/rc.alsa.gz > $PKG/etc/rc.d/rc.alsa
-chmod 0755 $PKG/etc/rc.d/rc.alsa
+zcat $CWD/rc.alsa.gz > $PKG/etc/rc.d/rc.alsa.new
+chmod 0755 $PKG/etc/rc.d/rc.alsa.new
+zcat $CWD/rc.alsa-oss.gz > $PKG/etc/rc.d/rc.alsa-oss.new
+chmod 0644 $PKG/etc/rc.d/rc.alsa-oss.new
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/ap/alsa-utils/doinst.sh b/source/ap/alsa-utils/doinst.sh
index 0ee741506..8a9b28787 100644
--- a/source/ap/alsa-utils/doinst.sh
+++ b/source/ap/alsa-utils/doinst.sh
@@ -4,3 +4,24 @@ fi
# Better a dangling symlink than for nobody to know where this went:
rm -f etc/asound.state
( cd etc && ln -sf ../var/lib/alsa/asound.state . )
+
+# Duplicate permissions from any existing rc scripts:
+if [ -e etc/rc.d/rc.alsa ]; then
+ if [ -x etc/rc.d/rc.alsa ]; then
+ chmod 755 etc/rc.d/rc.alsa.new
+ else
+ chmod 644 etc/rc.d/rc.alsa.new
+ fi
+fi
+if [ -e etc/rc.d/rc.alsa-oss ]; then
+ if [ -x etc/rc.d/rc.alsa-oss ]; then
+ chmod 755 etc/rc.d/rc.alsa-oss.new
+ else
+ chmod 644 etc/rc.d/rc.alsa-oss.new
+ fi
+fi
+
+# Move the scripts into place:
+mv etc/rc.d/rc.alsa.new etc/rc.d/rc.alsa
+mv etc/rc.d/rc.alsa-oss.new etc/rc.d/rc.alsa-oss
+
diff --git a/source/ap/alsa-utils/rc.alsa b/source/ap/alsa-utils/rc.alsa
index 2a984a512..077966da1 100644
--- a/source/ap/alsa-utils/rc.alsa
+++ b/source/ap/alsa-utils/rc.alsa
@@ -1,5 +1,5 @@
#!/bin/sh
-# Load the mixer settings and OSS compatibility for ALSA.
+# Load the mixer settings and OSS compatibility (if enabled) for ALSA.
# (the Advanced Linux Sound Architecture)
# A function to load the ALSA mixer settings:
@@ -13,7 +13,7 @@ load_alsa_mixer() {
if [ ! -r /var/lib/alsa/no.asound.state ]; then
echo "Setting default ALSA mixer settings."
# set default mixer volumes for ALSA
- # Taken from the alsaconfig script.
+ # Taken from the alsaconf script.
amixer -s -q <<EOF
set Master 75% unmute
set Master -12dB
@@ -59,23 +59,13 @@ EOF
fi
}
-# A function to load the ALSA OSS compat modules:
-load_alsa_oss_modules() {
- if modprobe -c | tr _ - | grep -wq snd-pcm-oss ; then
- if ! cat /proc/modules | tr _ - | grep -wq snd-pcm-oss ; then
- echo "Loading OSS compatibility modules for ALSA."
- modprobe snd-pcm-oss
- modprobe snd-seq-oss
- modprobe snd-mixer-oss
- fi
- fi
-}
-
-# If hotplug or something else has loaded the ALSA modules, then
+# If udev or something else has loaded the ALSA modules, then
# simply load the mixer settings and make sure the OSS compat
-# modules are loaded:
+# modules are loaded (if enabled):
if [ -d /proc/asound ]; then
- load_alsa_oss_modules
+ if [ -x /etc/rc.d/rc.alsa-oss ]; then
+ sh /etc/rc.d/rc.alsa-oss
+ fi
load_alsa_mixer
else
# If there are ALSA modules defined in /etc/modprobe.d/*, but
@@ -87,9 +77,11 @@ else
modprobe $module
done
fi
- # If ALSA is now up, then load the mixer settings and OSS modules:
+ # If ALSA is now up, then load the mixer settings and OSS modules (if enabled):
if [ -d /proc/asound ]; then
- load_alsa_oss_modules
+ if [ -x /etc/rc.d/rc.alsa-oss ]; then
+ sh /etc/rc.d/rc.alsa-oss
+ fi
load_alsa_mixer
fi
fi
diff --git a/source/ap/alsa-utils/rc.alsa-oss b/source/ap/alsa-utils/rc.alsa-oss
new file mode 100644
index 000000000..cc27b7624
--- /dev/null
+++ b/source/ap/alsa-utils/rc.alsa-oss
@@ -0,0 +1,24 @@
+#!/bin/sh
+# Load the ALSA OSS kernel modules to support OSS applications.
+# To use this, set this script as executable (chmod 755 rc.alsa-oss)
+# and it will be run from the main rc.alsa script. Unless you know
+# that something requires OSS support, it is better to leave this
+# script disabled. Some applications will try OSS first even though
+# they also support ALSA, and will block other applications from
+# using audio I/O.
+#
+# Many programs that use OSS can be run using the aoss wrapper and
+# will then use ALSA in a non-blocking way (and will not require
+# loading these kernel modules). Consider trying that before enabling
+# these modules. (See "man aoss")
+
+if modprobe -c | tr _ - | grep -wq snd-pcm-oss ; then
+ if ! cat /proc/modules | tr _ - | grep -wq snd-pcm-oss ; then
+ echo "Loading OSS compatibility modules for ALSA."
+ # Use -b to enable blacklisting these modules:
+ modprobe -q -b snd-pcm-oss
+ modprobe -q -b snd-seq-oss
+ modprobe -q -b snd-mixer-oss
+ fi
+fi
+
diff --git a/source/ap/aumix/aumix.SlackBuild b/source/ap/aumix/aumix.SlackBuild
deleted file mode 100755
index e500c0531..000000000
--- a/source/ap/aumix/aumix.SlackBuild
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/sh
-
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
-# All rights reserved.
-#
-# Redistribution and use of this script, with or without modification, is
-# permitted provided that the following conditions are met:
-#
-# 1. Redistributions of this script must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
-# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
-# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-PKGNAM=aumix
-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
- 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
-
-if [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
-else
- SLKCFLAGS="-O2"
-fi
-
-CWD=$(pwd)
-TMP=${TMP:-/tmp}
-PKG=$TMP/package-aumix
-
-rm -rf $PKG
-mkdir -p $TMP $PKG
-
-cd $TMP
-rm -rf aumix-$VERSION
-tar xvf $CWD/aumix-$VERSION.tar.?z* || exit 1
-cd aumix-$VERSION
-chown -R root:root .
-
-CFLAGS="$SLKCFLAGS" \
-./configure \
- --prefix=/usr \
- --mandir=/usr/man \
- --without-gtk1 \
- --build=$ARCH-slackware-linux
-
-make || exit 1
-make install DESTDIR=$PKG
-strip $PKG/usr/bin/*
-mkdir -p $PKG/usr/doc/aumix-$VERSION
-cp -a \
- ABOUT-NLS AUTHORS BUGS COPYING* INSTALL NEWS README* TODO \
- $PKG/usr/doc/aumix-$VERSION
-# This is obsolete (besides being broken)
-rm -f $PKG/usr/bin/xaumix $PKG/usr/man/man1/xaumix.1
-
-# More fluff, doesn't deserve mainsteam placement
-mv $PKG/usr/bin/mute $PKG/usr/doc/aumix-$VERSION/mute.sh
-mv $PKG/usr/man/man1/mute* $PKG/usr/doc/aumix-$VERSION
-
-gzip -9 $PKG/usr/man/man1/*
-mkdir $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
-
-cd $PKG
-makepkg -l y -c n $TMP/aumix-$VERSION-$ARCH-$BUILD.txz
-
diff --git a/source/ap/aumix/slack-desc b/source/ap/aumix/slack-desc
deleted file mode 100644
index 70e780877..000000000
--- a/source/ap/aumix/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------------------------------------------------------|
-aumix: aumix (GTK+/ncurses audio mixer)
-aumix:
-aumix: This is a program for adjusting audio mixers from the command line or
-aumix: scripts, or interactively at the console or a terminal with a
-aumix: full-screen, ncurses-based interface or a GTK-based X interface.
-aumix:
-aumix:
-aumix:
-aumix:
-aumix:
-aumix:
diff --git a/source/ap/dc3dd/slack-desc b/source/ap/dc3dd/slack-desc
index 1dfd5e024..91c44be45 100644
--- a/source/ap/dc3dd/slack-desc
+++ b/source/ap/dc3dd/slack-desc
@@ -14,6 +14,6 @@ dc3dd: dcfldd, but were rewritten for dc3dd. Added features include robust
dc3dd: error handling, logging, progress meter, image verification, split
dc3dd: output and more.
dc3dd:
-dc3dd: http://dc3dd.sourceforge.net/
+dc3dd: http://sourceforge.net/projects/dc3dd/
dc3dd:
dc3dd:
diff --git a/source/ap/diffutils/diffutils.SlackBuild b/source/ap/diffutils/diffutils.SlackBuild
index 2287abb2c..93847dcdc 100755
--- a/source/ap/diffutils/diffutils.SlackBuild
+++ b/source/ap/diffutils/diffutils.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2005-2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2005-2013 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=diffutils
-VERSION=${VERSION:-$(echo diffutils-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo diffutils-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -56,8 +56,8 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf $PKGNAM-$VERSION
-tar xvf $CWD/$PKGNAM-$VERSION.tar.xz
-cd $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
chown -R root:root .
find . \
@@ -70,6 +70,9 @@ zcat $CWD/diffutils-sdiff-no-waitpid.patch.gz | patch -p1 || exit 1
# Prevent ruining sdiff.1 by touching it so it won't "regenerate":
touch man/sdiff.1
+# Fix installation of NLS files:
+zcat $CWD/diffutils.mkdir_p.diff.gz | patch -p1 || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -110,7 +113,7 @@ fi
mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- AUTHORS COPYING NEWS README THANKS TODO \
+ AUTHORS COPYING* NEWS README* THANKS 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:
diff --git a/source/ap/diffutils/diffutils.mkdir_p.diff b/source/ap/diffutils/diffutils.mkdir_p.diff
new file mode 100644
index 000000000..4ebaf69b7
--- /dev/null
+++ b/source/ap/diffutils/diffutils.mkdir_p.diff
@@ -0,0 +1,11 @@
+--- ./po/Makefile.in.in.orig 2013-03-23 09:51:10.000000000 -0500
++++ ./po/Makefile.in.in 2013-10-03 16:25:59.778992814 -0500
+@@ -42,7 +42,7 @@
+ mkinstalldirs = $(SHELL) @install_sh@ -d
+ install_sh = $(SHELL) @install_sh@
+ MKDIR_P = @MKDIR_P@
+-mkdir_p = @mkdir_p@
++mkdir_p = @MKDIR_P@
+
+ GMSGFMT_ = @GMSGFMT@
+ GMSGFMT_no = @GMSGFMT@
diff --git a/source/ap/dmapi/dmapi.SlackBuild b/source/ap/dmapi/dmapi.SlackBuild
index 6efdfa771..63de8c275 100755
--- a/source/ap/dmapi/dmapi.SlackBuild
+++ b/source/ap/dmapi/dmapi.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013 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.2.10
+VERSION=2.2.12
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -59,9 +59,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-# Add DESTDIR support and improve docs install location:
-zcat $CWD/dmapi.destdir.diff.gz | patch -p1 --verbose --backup --suffix=.orig || exit 1
-
# Make sure you have the same version of autoconf as the
# developers did... ;-)
autoconf
@@ -101,6 +98,7 @@ if [ -f $PKG/lib${LIBDIRSUFFIX}/libdm.so.0 ]; then
( cd $PKG/usr/lib${LIBDIRSUFFIX} ; rm -f libdm.so ; ln -sf /lib${LIBDIRSUFFIX}/libdm.so.0 libdm.so )
else
exit 1
+ echo "and fix yer script!!!"
# and fix yer script!!!
fi
# Fix shared library perms:
diff --git a/source/ap/dmapi/dmapi.destdir.diff b/source/ap/dmapi/dmapi.destdir.diff
deleted file mode 100644
index 829d14e7f..000000000
--- a/source/ap/dmapi/dmapi.destdir.diff
+++ /dev/null
@@ -1,36 +0,0 @@
---- ./include/buildmacros.orig 2007-01-22 23:56:41.000000000 -0600
-+++ ./include/buildmacros 2008-04-01 00:04:57.000000000 -0500
-@@ -26,7 +26,7 @@
- $(LFILES:.l=.o) \
- $(YFILES:%.y=%.tab.o)
-
--INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
-+INSTALL = $(TOPDIR)/install-sh
-
- SHELL = /bin/sh
- IMAGES_DIR = $(TOPDIR)/all-images
---- ./include/builddefs.in.orig 2007-05-28 02:00:24.000000000 -0500
-+++ ./include/builddefs.in 2008-04-01 00:04:57.000000000 -0500
-@@ -23,14 +23,14 @@
- PKG_VERSION = @pkg_version@
- PKG_PLATFORM = @pkg_platform@
- PKG_DISTRIBUTION= @pkg_distribution@
--PKG_BIN_DIR = @bindir@
--PKG_SBIN_DIR = @sbindir@
--PKG_LIB_DIR = @libdir@@libdirsuffix@
--PKG_DEVLIB_DIR = @libexecdir@@libdirsuffix@
--PKG_INC_DIR = @includedir@/xfs
--PKG_MAN_DIR = @mandir@
--PKG_DOC_DIR = @datadir@/doc/@pkg_name@
--PKG_LOCALE_DIR = @datadir@/locale
-+PKG_BIN_DIR = $(DESTDIR)@bindir@
-+PKG_SBIN_DIR = $(DESTDIR)@sbindir@
-+PKG_LIB_DIR = $(DESTDIR)@libdir@@libdirsuffix@
-+PKG_DEVLIB_DIR = $(DESTDIR)@libexecdir@@libdirsuffix@
-+PKG_INC_DIR = $(DESTDIR)@includedir@/xfs
-+PKG_MAN_DIR = $(DESTDIR)@mandir@
-+PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@
-+PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale
-
- CC = @cc@
- AWK = @awk@
diff --git a/source/ap/ghostscript/cidfmap b/source/ap/ghostscript/cidfmap
index 0303f66f5..28d69ad88 100644
--- a/source/ap/ghostscript/cidfmap
+++ b/source/ap/ghostscript/cidfmap
@@ -29,17 +29,17 @@
%% cidfmap.zh_CN (simplified Chinese ; zh_CN)
-%% This font will produce better results than the wqy-zenhei.ttf that we use
+%% This font will produce better results than the wqy-zenhei.ttc that we use
%% to get out-of-the-box output.
%% If you install it, uncomment the line below and comment the one below that.
%/BousungEG-Light-GB << /FileType /TrueType /Path (uming.ttf) /CSI [(GB1) 4] >> ;
-/BousungEG-Light-GB << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ;
-%% This font will produce better results than the wqy-zenhei.ttf that we use
+/BousungEG-Light-GB << /FileType /TrueType /Path (wqy-zenhei.ttc) /CSI [(GB1) 4] >> ;
+%% This font will produce better results than the wqy-zenhei.ttc that we use
%% to get out-of-the-box output.
%% If you install it, uncomment the line below and comment the one below that.
%/GBZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(GB1) 4] >> ;
-/GBZenKai-Medium << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ;
-/MSungGBK-Light << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(GB1) 4] >> ;
+/GBZenKai-Medium << /FileType /TrueType /Path (wqy-zenhei.ttc) /CSI [(GB1) 4] >> ;
+/MSungGBK-Light << /FileType /TrueType /Path (wqy-zenhei.ttc) /CSI [(GB1) 4] >> ;
/MSung-Light /MSungGBK-Light ;
/MSung-Medium /GBZenKai-Medium ;
/MHei-Medium /BousungEG-Light-GB ;
@@ -57,7 +57,7 @@
%% interference (or comment the whole block out).
%/BousungEG-Light-GB << /FileType /TrueType /Path (uming.ttf) /CSI [(CNS1) 4] >> ;
%/ZenKai-Medium << /FileType /TrueType /Path (ukai.ttf) /CSI [(CNS1) 4] >> ;
-%/ShanHeiSun-Light << /FileType /TrueType /Path (wqy-zenhei.ttf) /CSI [(CNS1) 4] >> ;
+%/ShanHeiSun-Light << /FileType /TrueType /Path (wqy-zenhei.ttc) /CSI [(CNS1) 4] >> ;
%/STSong-Light /BousungEG-Light-GB ;
%/STKaiti-Regular /ZenKai-Medium-GB ;
%/STFangsong-Light /BousungEG-Light ;
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index 4afef9648..4ce0d69e9 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, 2011, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,11 @@
PKGNAM=ghostscript
-VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-3}
+if [ -r gnu-ghostscript-*.tar.xz ]; then
+ SRCPREFIX="gnu-"
+fi
+VERSION=${VERSION:-$(echo $SRCPREFIX$PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -56,12 +59,18 @@ else
fi
cd $TMP
-rm -rf ${PKGNAM}-${VERSION}
-tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
-cd ${PKGNAM}-$VERSION
+rm -rf ${SRCPREFIX}${PKGNAM}-${VERSION}
+tar xvf $CWD/${SRCPREFIX}${PKGNAM}-$VERSION.tar.xz || exit 1
+cd ${SRCPREFIX}${PKGNAM}-$VERSION
+
+# Use sprintf from Trio library as gs_printf to fix problems with
+# documents using locales where commas are used as decimals:
+zcat $CWD/ghostscript.gs_sprintf.diff.gz | patch -p1 --verbose || exit 1
-## Regenerate ./configure (if patched):
-#sh autogen.sh
+# Regenerate ./configure. Needed if patched, or to prevent libtool mismatch.
+autoreconf --force --install
+( cd jbig2dec ; autoreconf --force --install )
+( cd ijs ; autoreconf --force --install )
# Make sure ownerships and permissions are sane:
chown -R root:root .
@@ -73,9 +82,6 @@ find . \
# Build/install IJS:
( cd ijs
- if [ ! -r configure ]; then
- sh autogen.sh
- fi
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
@@ -118,9 +124,10 @@ make soinstall DESTDIR=$PKG || exit 1
# Replace the default cidfmap with one containing additional
# support for CJK printing:
-if [ -r $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap ]; then
- mv $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.default.ghostscript-${VERSION}
- zcat $CWD/cidfmap.gz > $PKG/usr/share/ghostscript/${VERSION}/Resource/Init/cidfmap.new
+if [ -r $PKG/usr/share/ghostscript/*.*/Resource/Init/cidfmap ]; then
+ SHARE_VERSION=$(echo $PKG/usr/share/ghostscript/*.*/Resource/Init/cidfmap | rev | cut -f 4 -d / | rev)
+ mv $PKG/usr/share/ghostscript/${SHARE_VERSION}/Resource/Init/cidfmap $PKG/usr/share/ghostscript/${SHARE_VERSION}/Resource/Init/cidfmap.default.ghostscript-${VERSION}
+ zcat $CWD/cidfmap.gz > $PKG/usr/share/ghostscript/${SHARE_VERSION}/Resource/Init/cidfmap.new
fi
# Many programs expect to find this filter with the old name:
@@ -163,7 +170,7 @@ fi
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
( cd doc
cp -a \
- COPYING ../LICENSE README \
+ AUTHORS COPYING* ../LICENSE* README* \
$PKG/usr/doc/${PKGNAM}-$VERSION
)
( cd $PKG/usr/doc/${PKGNAM}-$VERSION
diff --git a/source/ap/ghostscript/ghostscript.gs_sprintf.diff b/source/ap/ghostscript/ghostscript.gs_sprintf.diff
new file mode 100644
index 000000000..5e123e13c
--- /dev/null
+++ b/source/ap/ghostscript/ghostscript.gs_sprintf.diff
@@ -0,0 +1,28431 @@
+diff -up ghostscript-9.07/base/fapiufst.c.gs_sprintf ghostscript-9.07/base/fapiufst.c
+--- ghostscript-9.07/base/fapiufst.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/fapiufst.c 2013-05-09 17:02:39.056447042 +0100
+@@ -699,7 +699,7 @@ pack_long(LPUB8 * p, UL32 v)
+ static inline void
+ pack_float(LPUB8 * p, float v)
+ {
+- sprintf((char *)(*p), "%f", v);
++ gs_sprintf((char *)(*p), "%f", v);
+ *p += strlen((const char *)*p) + 1;
+ }
+
+diff -up ghostscript-9.07/base/gdev3b1.c.gs_sprintf ghostscript-9.07/base/gdev3b1.c
+--- ghostscript-9.07/base/gdev3b1.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdev3b1.c 2013-05-09 17:02:39.057447046 +0100
+@@ -538,7 +538,7 @@ att3b1_do_output_page(gx_device *dev, in
+ }
+
+ ut.ut_num = WTXTSLK1;
+- sprintf(ut.ut_text,
++ gs_sprintf(ut.ut_text,
+ "%s %d, top right (%d,%d), size (%d,%d), press '?' for help.",
+ flush ? "Showpage" : "Copypage", att3b1dev->page_num, xorigin, yorigin,
+ att3b1dev->width, att3b1dev->height);
+diff -up ghostscript-9.07/base/gdev8510.c.gs_sprintf ghostscript-9.07/base/gdev8510.c
+--- ghostscript-9.07/base/gdev8510.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdev8510.c 2013-05-09 17:02:39.058447051 +0100
+@@ -129,7 +129,7 @@ m8510_output_run(gx_device_printer *pdev
+ /* Transfer the line of data. */
+ count = out_end - out;
+ if (count) {
+- sprintf(tmp, "\033g%03d", count/8);
++ gs_sprintf(tmp, "\033g%03d", count/8);
+ fwrite(tmp, 1, 5, prn_stream);
+ fwrite(out, 1, count, prn_stream);
+ fwrite("\r", 1, 1, prn_stream);
+diff -up ghostscript-9.07/base/gdevccr.c.gs_sprintf ghostscript-9.07/base/gdevccr.c
+--- ghostscript-9.07/base/gdevccr.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevccr.c 2013-05-09 17:02:39.059447055 +0100
+@@ -207,9 +207,9 @@ static int alloc_rb( gs_memory_t *mem, c
+ int r;
+ for(r=0; r<rows; r++)
+ {
+- sprintf((*rb)[r].cname, "C%02x", r);
+- sprintf((*rb)[r].mname, "M%02x", r);
+- sprintf((*rb)[r].yname, "Y%02x", r);
++ gs_sprintf((*rb)[r].cname, "C%02x", r);
++ gs_sprintf((*rb)[r].mname, "M%02x", r);
++ gs_sprintf((*rb)[r].yname, "Y%02x", r);
+ (*rb)[r].is_used=0;
+ }
+ return 0;
+diff -up ghostscript-9.07/base/gdevdevn.c.gs_sprintf ghostscript-9.07/base/gdevdevn.c
+--- ghostscript-9.07/base/gdevdevn.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevdevn.c 2013-05-09 17:02:39.060447059 +0100
+@@ -2078,7 +2078,7 @@ spotcmyk_print_page(gx_device_printer *
+
+ /* Open the output files for the spot colors */
+ for(i = 0; i < nspot; i++) {
+- sprintf(spotname, "%ss%d", pdevn->fname, i);
++ gs_sprintf(spotname, "%ss%d", pdevn->fname, i);
+ spot_file[i] = gp_fopen(spotname, "wb");
+ if (spot_file[i] == NULL) {
+ code = gs_error_VMerror;
+@@ -2117,7 +2117,7 @@ spotcmyk_print_page(gx_device_printer *
+ return code;
+ }
+ for(i = 0; i < nspot; i++) {
+- sprintf(spotname, "%ss%d", pdevn->fname, i);
++ gs_sprintf(spotname, "%ss%d", pdevn->fname, i);
+ code = devn_write_pcx_file(pdev, spotname, 1, bpc, linelength[i]);
+ if (code < 0)
+ return code;
+@@ -2451,7 +2451,7 @@ devn_write_pcx_file(gx_device_printer *
+ in = gp_fopen(filename, "rb");
+ if (!in)
+ return_error(gs_error_invalidfileaccess);
+- sprintf(outname, "%s.pcx", filename);
++ gs_sprintf(outname, "%s.pcx", filename);
+ out = gp_fopen(outname, "wb");
+ if (!out) {
+ fclose(in);
+diff -up ghostscript-9.07/base/gdevdjet.c.gs_sprintf ghostscript-9.07/base/gdevdjet.c
+--- ghostscript-9.07/base/gdevdjet.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevdjet.c 2013-05-09 17:02:39.061447064 +0100
+@@ -323,9 +323,9 @@ hpjet_make_init(gx_device_printer *pdev,
+ else if (dev->MediaPosition_set && dev->MediaPosition >= 0)
+ paper_source = dev->MediaPosition;
+ if (paper_source >= 0)
+- sprintf(buf, "%s\033&l%dH", str, paper_source);
++ gs_sprintf(buf, "%s\033&l%dH", str, paper_source);
+ else
+- sprintf(buf, "%s", str);
++ gs_sprintf(buf, "%s", str);
+ }
+
+ /* The DeskJet can compress (mode 2) */
+@@ -361,7 +361,7 @@ fs600_print_page_copies(gx_device_printe
+ char base_init[60];
+ char init[80];
+
+- sprintf(base_init, "\033*r0F\033&u%dD", dots_per_inch);
++ gs_sprintf(base_init, "\033*r0F\033&u%dD", dots_per_inch);
+ hpjet_make_init(pdev, init, base_init);
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+ dots_per_inch, PCL_FS600_FEATURES,
+@@ -425,7 +425,7 @@ ljet3d_print_page_copies(gx_device_print
+ bool tumble=dev->Tumble;
+
+ hpjet_make_init(pdev, init, "\033&l-180u36Z\033*r0F");
+- sprintf(even_init, "\033&l180u36Z\033*r0F");
++ gs_sprintf(even_init, "\033&l180u36Z\033*r0F");
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+ 300, PCL_LJ3D_FEATURES, init, even_init, tumble);
+ }
+@@ -440,7 +440,7 @@ ljet4_print_page_copies(gx_device_printe
+ char base_init[60];
+ char init[80];
+
+- sprintf(base_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
++ gs_sprintf(base_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
+ hpjet_make_init(pdev, init, base_init);
+
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+@@ -472,9 +472,9 @@ ljet4d_print_page_copies(gx_device_print
+ in duplex mode we set this parameters for each odd page
+ (paper tray is set by "hpjet_make_init")
+ */
+- sprintf(base_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
++ gs_sprintf(base_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
+ hpjet_make_init(pdev, init, base_init);
+- sprintf(even_init, "\033&l180u36Z\033*r0F\033&u%dD", dots_per_inch);
++ gs_sprintf(even_init, "\033&l180u36Z\033*r0F\033&u%dD", dots_per_inch);
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+ dots_per_inch, PCL_LJ4D_FEATURES,
+ init,even_init,tumble);
+@@ -489,7 +489,7 @@ ljet4pjl_print_page_copies(gx_device_pri
+ { int dots_per_inch = (int)pdev->y_pixels_per_inch;
+ char real_init[60];
+
+- sprintf(real_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
++ gs_sprintf(real_init, "\033&l-180u36Z\033*r0F\033&u%dD", dots_per_inch);
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+ dots_per_inch, PCL_LJ4PJL_FEATURES,
+ real_init, real_init, false);
+diff -up ghostscript-9.07/base/gdevijs.c.gs_sprintf ghostscript-9.07/base/gdevijs.c
+--- ghostscript-9.07/base/gdevijs.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevijs.c 2013-05-09 17:02:39.063447072 +0100
+@@ -674,7 +674,7 @@ gsijs_set_margin_params(gx_device_ijs *i
+ }
+
+ if (code == 0) {
+- sprintf (buf, "%gx%g", ijsdev->MediaSize[0] * (1.0 / 72),
++ gs_sprintf (buf, "%gx%g", ijsdev->MediaSize[0] * (1.0 / 72),
+ ijsdev->MediaSize[1] * (1.0 / 72));
+ code = ijs_client_set_param(ijsdev->ctx, 0, "PaperSize",
+ buf, strlen(buf));
+@@ -715,7 +715,7 @@ gsijs_set_margin_params(gx_device_ijs *i
+ m[1] = ijsdev->MediaSize[1] * (1.0 / 72) -
+ printable_top - printable_height;
+ gx_device_set_margins((gx_device *)ijsdev, m, true);
+- sprintf (buf, "%gx%g", printable_left, printable_top);
++ gs_sprintf (buf, "%gx%g", printable_left, printable_top);
+ code = ijs_client_set_param(ijsdev->ctx, 0, "TopLeft",
+ buf, strlen(buf));
+ }
+@@ -864,7 +864,7 @@ gsijs_open(gx_device *dev)
+ /* Note: dup() may not be portable to all interesting IJS
+ platforms. In that case, this branch should be #ifdef'ed out.
+ */
+- sprintf(buf, "%d", fd);
++ gs_sprintf(buf, "%d", fd);
+ ijs_client_set_param(ijsdev->ctx, 0, "OutputFD", buf, strlen(buf));
+ close(fd);
+ } else {
+@@ -1021,9 +1021,9 @@ gsijs_output_page(gx_device *dev, int nu
+ }
+
+ /* Required page parameters */
+- sprintf(buf, "%d", n_chan);
++ gs_sprintf(buf, "%d", n_chan);
+ gsijs_client_set_param(ijsdev, "NumChan", buf);
+- sprintf(buf, "%d", ijsdev->BitsPerSample);
++ gs_sprintf(buf, "%d", ijsdev->BitsPerSample);
+ gsijs_client_set_param(ijsdev, "BitsPerSample", buf);
+
+ /* This needs to become more sophisticated for DeviceN. */
+@@ -1031,12 +1031,12 @@ gsijs_output_page(gx_device *dev, int nu
+ ((n_chan == 3) ? (krgb_mode ? ((k_bits == 1) ? "KRGB" : "KxRGB") : "DeviceRGB") : "DeviceGray"));
+ gsijs_client_set_param(ijsdev, "ColorSpace", buf);
+
+- sprintf(buf, "%d", ijs_width);
++ gs_sprintf(buf, "%d", ijs_width);
+ gsijs_client_set_param(ijsdev, "Width", buf);
+- sprintf(buf, "%d", ijs_height);
++ gs_sprintf(buf, "%d", ijs_height);
+ gsijs_client_set_param(ijsdev, "Height", buf);
+
+- sprintf(buf, "%gx%g", xres, yres);
++ gs_sprintf(buf, "%gx%g", xres, yres);
+ gsijs_client_set_param(ijsdev, "Dpi", buf);
+
+ #ifdef KRGB_DEBUG
+diff -up ghostscript-9.07/base/gdevl31s.c.gs_sprintf ghostscript-9.07/base/gdevl31s.c
+--- ghostscript-9.07/base/gdevl31s.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevl31s.c 2013-05-09 17:02:39.063447072 +0100
+@@ -184,9 +184,9 @@ lj3100sw_print_page_copies(gx_device_pri
+ if (gdev_prn_file_is_new(pdev)) {
+ lj3100sw_output_section_header(prn_stream, 1, 0, 0);
+ lj3100sw_output_repeated_data_bytes(prn_stream, buffer, &ptr, 0x1b, 12);
+- ptr += sprintf(ptr, "\r\nBD");
++ ptr += gs_sprintf(ptr, "\r\nBD");
+ lj3100sw_output_repeated_data_bytes(prn_stream, buffer, &ptr, 0, 5520);
+- ptr += sprintf(ptr, "%s\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n",
++ ptr += gs_sprintf(ptr, "%s\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n%s %d\r\n",
+ "NJ",
+ "PQ", -1,
+ "RE", high_resolution ? 6 : 2,
+@@ -198,7 +198,7 @@ lj3100sw_print_page_copies(gx_device_pri
+ }
+
+ lj3100sw_output_section_header(prn_stream, 3, ppdev->NumCopies, 0);
+- ptr += sprintf(ptr, "%s %d\r\n%s\r\n",
++ ptr += gs_sprintf(ptr, "%s %d\r\n%s\r\n",
+ "CM", 1,
+ "PD");
+ *ptr++ = 0;
+diff -up ghostscript-9.07/base/gdevp14.c.gs_sprintf ghostscript-9.07/base/gdevp14.c
+--- ghostscript-9.07/base/gdevp14.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevp14.c 2013-05-09 17:02:39.065447081 +0100
+@@ -6427,7 +6427,7 @@ get_param_compressed_color_list_elem(pdf
+ pkeyname_list_elem->next = *pkeyname_list;
+ pkeyname_list_elem->key_name = keyname_buf;
+ *pkeyname_list = pkeyname_list_elem;
+- sprintf(keyname_buf, "%s_%d", keyname, i);
++ gs_sprintf(keyname_buf, "%s_%d", keyname, i);
+ get_param_compressed_color_list_elem(pdev, plist,
+ pcomp_list->u.sub_level_ptrs[i], keyname_buf,
+ pkeyname_list);
+@@ -6498,7 +6498,7 @@ put_param_compressed_color_list_elem(gx_
+ char buff[50];
+ compressed_color_list_t * sub_list_ptr;
+
+- sprintf(buff, "%s_%d", keyname, i);
++ gs_sprintf(buff, "%s_%d", keyname, i);
+ put_param_compressed_color_list_elem(pdev, plist,
+ &sub_list_ptr, buff, num_comps - 1);
+ pcomp_list->u.sub_level_ptrs[i] = sub_list_ptr;
+@@ -6560,7 +6560,7 @@ get_param_spot_color_names(pdf14_clist_d
+ pkeyname_list_elem->next = *pkeyname_list;
+ pkeyname_list_elem->key_name = keyname_buf;
+ *pkeyname_list = pkeyname_list_elem;
+- sprintf(keyname_buf, "PDF14SpotName_%d", i);
++ gs_sprintf(keyname_buf, "PDF14SpotName_%d", i);
+ str.size = separations->names[i].size;
+ str.data = separations->names[i].data;
+ str.persistent = false;
+@@ -6596,7 +6596,7 @@ put_param_pdf14_spot_names(gx_device * p
+ char buff[20];
+ byte * sep_name;
+
+- sprintf(buff, "PDF14SpotName_%d", i);
++ gs_sprintf(buff, "PDF14SpotName_%d", i);
+ code = param_read_string(plist, buff, &str);
+ switch (code) {
+ default:
+diff -up ghostscript-9.07/base/gdevpdfb.c.gs_sprintf ghostscript-9.07/base/gdevpdfb.c
+--- ghostscript-9.07/base/gdevpdfb.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfb.c 2013-05-09 17:02:39.066447085 +0100
+@@ -588,7 +588,7 @@ gdev_pdf_strip_tile_rectangle(gx_device
+ if (image_id) {
+ char buf[MAX_REF_CHARS + 6 + 1]; /* +6 for /R# Do\n */
+
+- sprintf(buf, "/R%ld Do\n", image_id);
++ gs_sprintf(buf, "/R%ld Do\n", image_id);
+ pprintd1(s, "%d>>stream\n", strlen(buf));
+ if (pdev->PDFA != 0)
+ pprints1(s, "%s\nendstream\n", buf);
+diff -up ghostscript-9.07/base/gdevpdf.c.gs_sprintf ghostscript-9.07/base/gdevpdf.c
+--- ghostscript-9.07/base/gdevpdf.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdf.c 2013-05-09 17:02:39.067447089 +0100
+@@ -301,7 +301,7 @@ pdf_initialize_ids(gx_device_pdf * pdev)
+ timeoffset = any_abs(timeoffset) / 60;
+ tms = *localtime(&t);
+
+- sprintf(buf, "(D:%04d%02d%02d%02d%02d%02d%c%02d\'%02d\')",
++ gs_sprintf(buf, "(D:%04d%02d%02d%02d%02d%02d%c%02d\'%02d\')",
+ tms.tm_year + 1900, tms.tm_mon + 1, tms.tm_mday,
+ tms.tm_hour, tms.tm_min, tms.tm_sec,
+ timesign, timeoffset / 60, timeoffset % 60);
+@@ -1277,7 +1277,7 @@ static int write_xref_section(gx_device_
+ * chances of needing to write white space to pad the file out.
+ */
+ if (!pdev->Linearise) {
+- sprintf(str, "%010"PRId64" 00000 n \n", pos);
++ gs_sprintf(str, "%010"PRId64" 00000 n \n", pos);
+ stream_puts(pdev->strm, str);
+ }
+ if (Offsets)
+@@ -1310,7 +1310,7 @@ rewrite_object(gx_device_pdf *const pdev
+ code = fread(&c, 1, 1, linear_params->sfile);
+ read++;
+ } while (c != '\n' && code > 0);
+- sprintf(Scratch, "%d 0 obj\n", pdev->ResourceUsage[object].NewObjectNumber);
++ gs_sprintf(Scratch, "%d 0 obj\n", pdev->ResourceUsage[object].NewObjectNumber);
+ fwrite(Scratch, strlen(Scratch), 1, linear_params->Lin_File.file);
+
+ code = fread(&c, 1, 1, linear_params->sfile);
+@@ -1359,7 +1359,7 @@ rewrite_object(gx_device_pdf *const pdev
+ target++;
+ sscanf(target, "%d 0 R", &ID);
+ fwrite(source, target - source, 1, linear_params->Lin_File.file);
+- sprintf(Buf, "%d 0 R", pdev->ResourceUsage[ID].NewObjectNumber);
++ gs_sprintf(Buf, "%d 0 R", pdev->ResourceUsage[ID].NewObjectNumber);
+ fwrite(Buf, strlen(Buf), 1, linear_params->Lin_File.file);
+ source = next;
+ } else {
+@@ -1544,7 +1544,7 @@ static int pdf_linearise(gx_device_pdf *
+ }
+ #endif
+ /* Linearisation. Part 1, file header */
+- sprintf(Header, "%%PDF-%d.%d\n", level / 10, level % 10);
++ gs_sprintf(Header, "%%PDF-%d.%d\n", level / 10, level % 10);
+ fwrite(Header, strlen(Header), 1, linear_params->Lin_File.file);
+ if (pdev->binary_ok)
+ fwrite(Binary, strlen(Binary), 1, linear_params->Lin_File.file);
+@@ -1556,16 +1556,16 @@ static int pdf_linearise(gx_device_pdf *
+
+ /* Linearisation. Part 2, the Linearisation dictioanry */
+ linear_params->LDictOffset = gp_ftell_64(linear_params->Lin_File.file);
+- sprintf(LDict, "%d 0 obj\n<< \n",
++ gs_sprintf(LDict, "%d 0 obj\n<< \n",
+ LDictObj);
+ fwrite(LDict, strlen(LDict), 1, linear_params->Lin_File.file);
+
+ /* First page cross-reference table here (Part 3) */
+ linear_params->FirstxrefOffset = gp_ftell_64(linear_params->Lin_File.file);
+- sprintf(Header, "xref\n%d %d\n", LDictObj, Part1To6 - LDictObj + 1); /* +1 for the primary hint stream */
++ gs_sprintf(Header, "xref\n%d %d\n", LDictObj, Part1To6 - LDictObj + 1); /* +1 for the primary hint stream */
+ fwrite(Header, strlen(Header), 1, linear_params->Lin_File.file);
+
+- sprintf(Header, "0000000000 00000 n \n");
++ gs_sprintf(Header, "0000000000 00000 n \n");
+
+ for (i = LDictObj;i <= linear_params->LastResource + 2; i++) {
+ fwrite(Header, 20, 1, linear_params->Lin_File.file);
+@@ -1575,7 +1575,7 @@ static int pdf_linearise(gx_device_pdf *
+ * +1 for the linearisation dict and +1 for the primary hint stream.
+ */
+ linear_params->FirsttrailerOffset = gp_ftell_64(linear_params->Lin_File.file);
+- sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R/ID[%s%s]/Prev %d>>\nstartxref\r\n0\n%%%%EOF\n \n",
++ gs_sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R/ID[%s%s]/Prev %d>>\nstartxref\r\n0\n%%%%EOF\n \n",
+ linear_params->LastResource + 3, pdev->ResourceUsage[linear_params->Info_id].NewObjectNumber, pdev->ResourceUsage[linear_params->Catalog_id].NewObjectNumber, fileID, fileID, 0);
+ fwrite(LDict, strlen(LDict), 1, linear_params->Lin_File.file);
+
+@@ -1685,7 +1685,7 @@ static int pdf_linearise(gx_device_pdf *
+ }
+ }
+ /* insert the primary hint stream */
+- sprintf(LDict, "%d 0 obj\n<</Length \n/S >>\nstream\n", HintStreamObj);
++ gs_sprintf(LDict, "%d 0 obj\n<</Length \n/S >>\nstream\n", HintStreamObj);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+ HintStreamStart = gp_ftell_64(linear_params->sfile);
+@@ -1999,7 +1999,7 @@ static int pdf_linearise(gx_device_pdf *
+ flush_hint_stream(linear_params);
+ HintLength = gp_ftell_64(linear_params->sfile) - HintStreamStart;
+
+- sprintf(LDict, "\nendstream\nendobj\n");
++ gs_sprintf(LDict, "\nendstream\nendobj\n");
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+ /* Calculate the length of the primary hint stream */
+ HintStreamLen = gp_ftell_64(linear_params->sfile) - pdev->ResourceUsage[HintStreamObj].LinearisedOffset;
+@@ -2032,23 +2032,23 @@ static int pdf_linearise(gx_device_pdf *
+
+ /* Now the file is long enough, write the xref */
+ mainxref = gp_ftell_64(linear_params->sfile);
+- sprintf(Header, "xref\n0 %d\n", LDictObj);
++ gs_sprintf(Header, "xref\n0 %d\n", LDictObj);
+ fwrite(Header, strlen(Header), 1, linear_params->sfile);
+
+ linear_params->T = gp_ftell_64(linear_params->sfile) - 1;
+- sprintf(Header, "0000000000 65535 f \n");
++ gs_sprintf(Header, "0000000000 65535 f \n");
+ fwrite(Header, strlen(Header), 1, linear_params->sfile);
+
+ for (i = 1;i < LDictObj; i++) {
+ for (j = 0; j < pdev->ResourceUsageSize;j++) {
+ if (pdev->ResourceUsage[j].NewObjectNumber == i) {
+- sprintf(Header, "%010ld 00000 n \n", pdev->ResourceUsage[j].LinearisedOffset + HintStreamLen);
++ gs_sprintf(Header, "%010ld 00000 n \n", pdev->ResourceUsage[j].LinearisedOffset + HintStreamLen);
+ fwrite(Header, 20, 1, linear_params->sfile);
+ }
+ }
+ }
+
+- sprintf(LDict, "trailer\n<</Size %d>>\nstartxref\n%ld\n%%%%EOF\n",
++ gs_sprintf(LDict, "trailer\n<</Size %d>>\nstartxref\n%ld\n%%%%EOF\n",
+ LDictObj, linear_params->FirstxrefOffset);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+@@ -2062,32 +2062,32 @@ static int pdf_linearise(gx_device_pdf *
+ * versions.
+ */
+ gp_fseek_64(linear_params->sfile, linear_params->LDictOffset, SEEK_SET);
+- sprintf(LDict, "%d 0 obj\n<</Linearized 1/L %ld/H[ ", LDictObj, linear_params->FileLength);
++ gs_sprintf(LDict, "%d 0 obj\n<</Linearized 1/L %ld/H[ ", LDictObj, linear_params->FileLength);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+- sprintf(LDict, "%ld", pdev->ResourceUsage[HintStreamObj].LinearisedOffset);
++ gs_sprintf(LDict, "%ld", pdev->ResourceUsage[HintStreamObj].LinearisedOffset);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+- sprintf(LDict, " %ld]", HintStreamLen);
++ gs_sprintf(LDict, " %ld]", HintStreamLen);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+ /* Implementation Note 180 in hte PDF Reference 1.7 says that Acrobat
+ * gets the 'E' value wrong. So its probably not important....
+ */
+- sprintf(LDict, "/O %d/E %ld",pdev->ResourceUsage[pdev->pages[0].Page->id].NewObjectNumber, linear_params->E);
++ gs_sprintf(LDict, "/O %d/E %ld",pdev->ResourceUsage[pdev->pages[0].Page->id].NewObjectNumber, linear_params->E);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+- sprintf(LDict, "/N %d/T %ld>>\nendobj\n", pdev->next_page, linear_params->T);
++ gs_sprintf(LDict, "/N %d/T %ld>>\nendobj\n", pdev->next_page, linear_params->T);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+ /* Return to the secondary xref and write it again filling
+ * in the missing offsets.
+ */
+ gp_fseek_64(linear_params->sfile, linear_params->FirstxrefOffset, SEEK_SET);
+- sprintf(Header, "xref\n%d %d\n", LDictObj, Part1To6 - LDictObj + 1); /* +1 for the primary hint stream */
++ gs_sprintf(Header, "xref\n%d %d\n", LDictObj, Part1To6 - LDictObj + 1); /* +1 for the primary hint stream */
+ fwrite(Header, strlen(Header), 1, linear_params->sfile);
+
+ for (i = LDictObj;i <= linear_params->LastResource + 2; i++) {
+ for (j = 0; j < pdev->ResourceUsageSize;j++) {
+ if (pdev->ResourceUsage[j].NewObjectNumber == i) {
+- sprintf(Header, "%010ld 00000 n \n", pdev->ResourceUsage[j].LinearisedOffset);
++ gs_sprintf(Header, "%010ld 00000 n \n", pdev->ResourceUsage[j].LinearisedOffset);
+ fwrite(Header, 20, 1, linear_params->sfile);
+ }
+ }
+@@ -2097,14 +2097,14 @@ static int pdf_linearise(gx_device_pdf *
+ * in the missing values.
+ */
+ code = gp_fseek_64(linear_params->sfile, linear_params->FirsttrailerOffset, SEEK_SET);
+- sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R/ID[%s%s]/Prev %ld>>\nstartxref\r\n0\n%%%%EOF\n",
++ gs_sprintf(LDict, "\ntrailer\n<</Size %ld/Info %d 0 R/Root %d 0 R/ID[%s%s]/Prev %ld>>\nstartxref\r\n0\n%%%%EOF\n",
+ linear_params->LastResource + 3, pdev->ResourceUsage[linear_params->Info_id].NewObjectNumber, pdev->ResourceUsage[linear_params->Catalog_id].NewObjectNumber, fileID, fileID, (unsigned long)mainxref);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+ code = gp_fseek_64(linear_params->sfile, pdev->ResourceUsage[HintStreamObj].LinearisedOffset, SEEK_SET);
+- sprintf(LDict, "%d 0 obj\n<</Length %10ld", HintStreamObj, HintLength);
++ gs_sprintf(LDict, "%d 0 obj\n<</Length %10ld", HintStreamObj, HintLength);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+- sprintf(LDict, "\n/S %10ld>>\nstream\n", SharedHintOffset);
++ gs_sprintf(LDict, "\n/S %10ld>>\nstream\n", SharedHintOffset);
+ fwrite(LDict, strlen(LDict), 1, linear_params->sfile);
+
+ error:
+@@ -2605,7 +2605,7 @@ pdf_close(gx_device * dev)
+ pprintld1(s, "/Encrypt %ld 0 R ", Encrypt_id);
+ }
+ stream_puts(s, ">>\n");
+- sprintf(xref_str, "startxref\n%"PRId64"\n%%%%EOF\n", xref);
++ gs_sprintf(xref_str, "startxref\n%"PRId64"\n%%%%EOF\n", xref);
+ stream_puts(s, xref_str);
+ }
+ }
+diff -up ghostscript-9.07/base/gdevpdfe.c.gs_sprintf ghostscript-9.07/base/gdevpdfe.c
+--- ghostscript-9.07/base/gdevpdfe.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfe.c 2013-05-09 17:02:39.067447089 +0100
+@@ -205,7 +205,7 @@ pdf_xmp_time(char *buf, int buf_length)
+
+ time(&t);
+ tms = *localtime(&t);
+- sprintf(buf1,
++ gs_sprintf(buf1,
+ "%04d-%02d-%02d",
+ tms.tm_year + 1900, tms.tm_mon + 1, tms.tm_mday);
+ strncpy(buf, buf1, buf_length);
+@@ -860,7 +860,7 @@ pdf_document_metadata(gx_device_pdf *pde
+ code = COS_WRITE_OBJECT(pres->object, pdev, resourceNone);
+ if (code < 0)
+ return code;
+- sprintf(buf, "%ld 0 R", pres->object->id);
++ gs_sprintf(buf, "%ld 0 R", pres->object->id);
+ pdf_record_usage(pdev, pres->object->id, resource_usage_part9_structure);
+
+ code = cos_dict_put_c_key_object(pdev->Catalog, "/Metadata", pres->object);
+diff -up ghostscript-9.07/base/gdevpdfg.c.gs_sprintf ghostscript-9.07/base/gdevpdfg.c
+--- ghostscript-9.07/base/gdevpdfg.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfg.c 2013-05-09 17:02:39.068447094 +0100
+@@ -674,7 +674,7 @@ pdf_write_transfer_map(gx_device_pdf *pd
+ gs_function_free(pfn, false, mem);
+ if (code < 0)
+ return code;
+- sprintf(ids, "%s%s%ld 0 R", key, (key[0] && key[0] != ' ' ? " " : ""), id);
++ gs_sprintf(ids, "%s%s%ld 0 R", key, (key[0] && key[0] != ' ' ? " " : ""), id);
+ return 0;
+ }
+ static int
+@@ -1255,7 +1255,7 @@ pdf_update_halftone(gx_device_pdf *pdev,
+ }
+ if (code < 0)
+ return code;
+- sprintf(hts, "%ld 0 R", id);
++ gs_sprintf(hts, "%ld 0 R", id);
+ pdev->halftone_id = pis->dev_ht->id;
+ return code;
+ }
+@@ -1392,7 +1392,7 @@ pdf_update_alpha(gx_device_pdf *pdev, co
+ if (pis->soft_mask_id == 0)
+ strcpy(buf, "/None");
+ else
+- sprintf(buf, "%ld 0 R", pis->soft_mask_id);
++ gs_sprintf(buf, "%ld 0 R", pis->soft_mask_id);
+ code = pdf_open_gstate(pdev, ppres);
+ if (code < 0)
+ return code;
+@@ -1548,7 +1548,7 @@ pdf_prepare_drawing(gx_device_pdf *pdev,
+ code = pdf_open_gstate(pdev, ppres);
+ if (code < 0)
+ return code;
+- sprintf(buf, "[%d %d]", phase.x, phase.y);
++ gs_sprintf(buf, "[%d %d]", phase.x, phase.y);
+ code = cos_dict_put_string_copy(resource_dict(*ppres), "/HTP", buf);
+ if (code < 0)
+ return code;
+diff -up ghostscript-9.07/base/gdevpdfi.c.gs_sprintf ghostscript-9.07/base/gdevpdfi.c
+--- ghostscript-9.07/base/gdevpdfi.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfi.c 2013-05-09 17:02:39.068447094 +0100
+@@ -1122,7 +1122,7 @@ pdf_end_and_do_image(gx_device_pdf *pdev
+ if (pdev->image_mask_id != gs_no_id) {
+ char buf[20];
+
+- sprintf(buf, "%ld 0 R", pdev->image_mask_id);
++ gs_sprintf(buf, "%ld 0 R", pdev->image_mask_id);
+ code = cos_dict_put_string_copy((cos_dict_t *)pres->object,
+ pdev->image_mask_is_SMask ? "/SMask" : "/Mask", buf);
+ if (code < 0)
+diff -up ghostscript-9.07/base/gdevpdfm.c.gs_sprintf ghostscript-9.07/base/gdevpdfm.c
+--- ghostscript-9.07/base/gdevpdfm.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfm.c 2013-05-09 17:02:39.069447098 +0100
+@@ -153,9 +153,9 @@ pdfmark_make_dest(char dstr[MAX_DEST_STR
+ else if (pdfmark_find_key("/Action", pairs, count, &action) &&
+ pdf_key_eq(&action, "/GoToR")
+ )
+- sprintf(dstr, "[%d ", page - 1);
++ gs_sprintf(dstr, "[%d ", page - 1);
+ else
+- sprintf(dstr, "[%ld 0 R ", pdf_page_id(pdev, page));
++ gs_sprintf(dstr, "[%ld 0 R ", pdf_page_id(pdev, page));
+ len = strlen(dstr);
+ if (len + view_string.size > MAX_DEST_STRING)
+ return_error(gs_error_limitcheck);
+@@ -697,7 +697,7 @@ pdfmark_put_ao_pairs(gx_device_pdf * pde
+ char dstr[1 + (sizeof(long) * 8 / 3 + 1) + 25 + 1];
+ long page_id = pdf_page_id(pdev, pdev->next_page + 1);
+
+- sprintf(dstr, "[%ld 0 R /XYZ null null null]", page_id);
++ gs_sprintf(dstr, "[%ld 0 R /XYZ null null null]", page_id);
+ cos_dict_put_c_key_string(pcd, "/Dest", (const unsigned char*) dstr,
+ strlen(dstr));
+ }
+@@ -1470,7 +1470,7 @@ pdfmark_PS(gx_device_pdf * pdev, gs_para
+ if (level1_id != gs_no_id) {
+ char r[MAX_DEST_STRING];
+
+- sprintf(r, "%ld 0 R", level1_id);
++ gs_sprintf(r, "%ld 0 R", level1_id);
+ code = cos_dict_put_c_key_string(cos_stream_dict(pcs), "/Level1",
+ (byte *)r, strlen(r));
+ if (code < 0)
+diff -up ghostscript-9.07/base/gdevpdfo.c.gs_sprintf ghostscript-9.07/base/gdevpdfo.c
+--- ghostscript-9.07/base/gdevpdfo.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfo.c 2013-05-09 17:02:39.069447098 +0100
+@@ -700,7 +700,7 @@ cos_array_add_int(cos_array_t *pca, int
+ char str[sizeof(int) * 8 / 3 + 3]; /* sign, rounding, 0 terminator */
+ cos_value_t v;
+
+- sprintf(str, "%d", i);
++ gs_sprintf(str, "%d", i);
+ return cos_array_add(pca, cos_string_value(&v, (byte *)str, strlen(str)));
+ }
+ int
+@@ -1081,7 +1081,7 @@ cos_dict_put_c_key_int(cos_dict_t *pcd,
+ {
+ char str[sizeof(int) * 8 / 3 + 3]; /* sign, rounding, 0 terminator */
+
+- sprintf(str, "%d", value);
++ gs_sprintf(str, "%d", value);
+ return cos_dict_put_c_key_string(pcd, key, (byte *)str, strlen(str));
+ }
+ int
+diff -up ghostscript-9.07/base/gdevpdfr.c.gs_sprintf ghostscript-9.07/base/gdevpdfr.c
+--- ghostscript-9.07/base/gdevpdfr.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfr.c 2013-05-09 17:02:39.070447102 +0100
+@@ -140,7 +140,7 @@ pdf_refer_named(gx_device_pdf * pdev, co
+ }
+ if (page_number <= 0)
+ return code;
+- sprintf(page_name_chars, "{Page%d}", page_number);
++ gs_sprintf(page_name_chars, "{Page%d}", page_number);
+ param_string_from_string(pnstr, page_name_chars);
+ pname = &pnstr;
+ code = pdf_find_named(pdev, pname, ppco);
+@@ -452,7 +452,7 @@ pdf_replace_names(gx_device_pdf * pdev,
+
+ size += sname - scan;
+ if (pco) {
+- sprintf(ref, " %ld 0 R ", pco->id);
++ gs_sprintf(ref, " %ld 0 R ", pco->id);
+ size += strlen(ref);
+ }
+ scan = next;
+@@ -480,7 +480,7 @@ pdf_replace_names(gx_device_pdf * pdev,
+ memcpy(sto, scan, copy);
+ sto += copy;
+ if (pco) {
+- sprintf(ref, " %ld 0 R ", pco->id);
++ gs_sprintf(ref, " %ld 0 R ", pco->id);
+ rlen = strlen(ref);
+ memcpy(sto, ref, rlen);
+ sto += rlen;
+diff -up ghostscript-9.07/base/gdevpdft.c.gs_sprintf ghostscript-9.07/base/gdevpdft.c
+--- ghostscript-9.07/base/gdevpdft.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdft.c 2013-05-09 17:02:39.070447102 +0100
+@@ -63,7 +63,7 @@ pdf_make_soft_mask_dict(gx_device_pdf *
+ code = pdf_write_function(pdev, pparams->transfer_function, &id);
+ if (code < 0)
+ return code;
+- sprintf(buf, " %ld 0 R", id);
++ gs_sprintf(buf, " %ld 0 R", id);
+ code = cos_dict_put_c_key_string(soft_mask_dict, "/TR", (const byte *)buf, strlen(buf));
+ if (code < 0)
+ return code;
+@@ -317,7 +317,7 @@ pdf_end_transparency_mask(gs_imager_stat
+ return 0;
+ /* We need to update the 'where_used' field, in case we substituted a resource */
+ pres->where_used |= pdev->used_mask;
+- sprintf(buf, "%ld 0 R", pdf_resource_id(pres));
++ gs_sprintf(buf, "%ld 0 R", pdf_resource_id(pres));
+ code = cos_dict_put_c_key_string((cos_dict_t *)pdev->pres_soft_mask_dict->object,
+ "/G", (const byte *)buf, strlen(buf));
+ if (code < 0)
+diff -up ghostscript-9.07/base/gdevpdfu.c.gs_sprintf ghostscript-9.07/base/gdevpdfu.c
+--- ghostscript-9.07/base/gdevpdfu.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfu.c 2013-05-09 17:02:39.071447106 +0100
+@@ -341,14 +341,14 @@ static int write_tt_encodings(stream *s,
+ char Buffer[256];
+ single_glyph_list_t *entry = (single_glyph_list_t *)&SingleGlyphList;
+
+- sprintf(Buffer, "/AdobeGlyphList mark\n");
++ gs_sprintf(Buffer, "/AdobeGlyphList mark\n");
+ stream_write(s, Buffer, strlen(Buffer));
+ while (entry->Glyph) {
+- sprintf(Buffer, "/%s 16#%04x\n", entry->Glyph, entry->Unicode);
++ gs_sprintf(Buffer, "/%s 16#%04x\n", entry->Glyph, entry->Unicode);
+ stream_write(s, Buffer, strlen(Buffer));
+ entry++;
+ };
+- sprintf(Buffer, ".dicttomark readonly def\n");
++ gs_sprintf(Buffer, ".dicttomark readonly def\n");
+ stream_write(s, Buffer, strlen(Buffer));
+
+ index = 0;
+@@ -425,24 +425,24 @@ int ps2write_dsc_header(gx_device_pdf *
+ pagecount++;
+ }
+ }
+- sprintf(BBox, "%%%%BoundingBox: 0 0 %d %d\n", (int)urx, (int)ury);
++ gs_sprintf(BBox, "%%%%BoundingBox: 0 0 %d %d\n", (int)urx, (int)ury);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+- sprintf(BBox, "%%%%HiResBoundingBox: 0 0 %.2f %.2f\n", urx, ury);
++ gs_sprintf(BBox, "%%%%HiResBoundingBox: 0 0 %.2f %.2f\n", urx, ury);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+ }
+ cre_date_time_len = pdf_get_docinfo_item(pdev, "/CreationDate", cre_date_time, sizeof(cre_date_time) - 1);
+ cre_date_time[cre_date_time_len] = 0;
+- sprintf(BBox, "%%%%Creator: %s %d (%s)\n", gs_product, (int)gs_revision,
++ gs_sprintf(BBox, "%%%%Creator: %s %d (%s)\n", gs_product, (int)gs_revision,
+ pdev->dname);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+ stream_puts(s, "%%LanguageLevel: 2\n");
+- sprintf(BBox, "%%%%CreationDate: %s\n", cre_date_time);
++ gs_sprintf(BBox, "%%%%CreationDate: %s\n", cre_date_time);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+- sprintf(BBox, "%%%%Pages: %d\n", pages);
++ gs_sprintf(BBox, "%%%%Pages: %d\n", pages);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+- sprintf(BBox, "%%%%EndComments\n");
++ gs_sprintf(BBox, "%%%%EndComments\n");
+ stream_write(s, (byte *)BBox, strlen(BBox));
+- sprintf(BBox, "%%%%BeginProlog\n");
++ gs_sprintf(BBox, "%%%%BeginProlog\n");
+ stream_write(s, (byte *)BBox, strlen(BBox));
+ if (pdev->params.CompressPages) {
+ /* When CompressEntireFile is true and ASCII85EncodePages is false,
+@@ -493,7 +493,7 @@ pdfwrite_pdf_open_document(gx_device_pdf
+ pdev->CompressEntireFile = 0;
+ else {
+ stream_write(s, (byte *)"%!\r", 3);
+- sprintf(BBox, "%%%%BoundingBox: 0 0 %d %d\n", width, height);
++ gs_sprintf(BBox, "%%%%BoundingBox: 0 0 %d %d\n", width, height);
+ stream_write(s, (byte *)BBox, strlen(BBox));
+ if (pdev->params.CompressPages || pdev->CompressEntireFile) {
+ /* When CompressEntireFile is true and ASCII85EncodePages is false,
+@@ -1340,7 +1340,7 @@ void
+ pdf_reserve_object_id(gx_device_pdf * pdev, pdf_resource_t *pres, long id)
+ {
+ pres->object->id = (id == 0 ? pdf_obj_ref(pdev) : id);
+- sprintf(pres->rname, "R%ld", pres->object->id);
++ gs_sprintf(pres->rname, "R%ld", pres->object->id);
+ }
+
+ /* Begin an aside (resource, annotation, ...). */
+@@ -1802,9 +1802,9 @@ void
+ pdf_store_default_Producer(char buf[PDF_MAX_PRODUCER])
+ {
+ if ((gs_revision % 100) == 0)
+- sprintf(buf, "(%s %1.1f)", gs_product, gs_revision / 100.0);
++ gs_sprintf(buf, "(%s %1.1f)", gs_product, gs_revision / 100.0);
+ else
+- sprintf(buf, "(%s %1.2f)", gs_product, gs_revision / 100.0);
++ gs_sprintf(buf, "(%s %1.2f)", gs_product, gs_revision / 100.0);
+ }
+
+ /* Write matrix values. */
+@@ -1851,7 +1851,7 @@ pdf_put_name_chars_1_2(stream *s, const
+ case '[': case ']':
+ case '{': case '}':
+ case '/':
+- sprintf(hex, "#%02x", c);
++ gs_sprintf(hex, "#%02x", c);
+ stream_puts(s, hex);
+ break;
+ case 0:
+diff -up ghostscript-9.07/base/gdevpdfv.c.gs_sprintf ghostscript-9.07/base/gdevpdfv.c
+--- ghostscript-9.07/base/gdevpdfv.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdfv.c 2013-05-09 17:02:39.071447106 +0100
+@@ -157,7 +157,7 @@ pdf_pattern(gx_device_pdf *pdev, const g
+
+ if (pcd_XObject == 0)
+ return_error(gs_error_VMerror);
+- sprintf(key, "/R%ld", pcs_image->id);
++ gs_sprintf(key, "/R%ld", pcs_image->id);
+ /* This is non-obvious code. Previously we would put the image object (pcs_image)
+ * into the Resources dit. When we come to write out the Resources dict
+ * that code writes a reference (index 0 R) using the ID from the object.
+@@ -201,7 +201,7 @@ pdf_pattern(gx_device_pdf *pdev, const g
+ {
+ char buf[MAX_REF_CHARS + 6 + 1]; /* +6 for /R# Do\n */
+
+- sprintf(buf, "/R%ld Do\n", pcs_image->id);
++ gs_sprintf(buf, "/R%ld Do\n", pcs_image->id);
+ cos_stream_add_bytes(pcos, (const byte *)buf, strlen(buf));
+ }
+
+@@ -596,7 +596,7 @@ pdf_put_linear_shading(cos_dict_t *pscd,
+ if (Extend[0] | Extend[1]) {
+ char extend_str[1 + 5 + 1 + 5 + 1 + 1]; /* [bool bool] */
+
+- sprintf(extend_str, "[%s %s]",
++ gs_sprintf(extend_str, "[%s %s]",
+ (Extend[0] ? "true" : "false"),
+ (Extend[1] ? "true" : "false"));
+ code = cos_dict_put_c_key_string(pscd, "/Extend",
+diff -up ghostscript-9.07/base/gdevpdtb.c.gs_sprintf ghostscript-9.07/base/gdevpdtb.c
+--- ghostscript-9.07/base/gdevpdtb.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdtb.c 2013-05-09 17:02:39.072447111 +0100
+@@ -345,7 +345,7 @@ pdf_base_font_alloc(gx_device_pdf *pdev,
+ font_name.size -= SUBSET_PREFIX_SIZE;
+ }
+ } else {
+- sprintf(fnbuf, ".F%lx", (ulong)copied);
++ gs_sprintf(fnbuf, ".F%lx", (ulong)copied);
+ font_name.data = (byte *)fnbuf;
+ font_name.size = strlen(fnbuf);
+ }
+@@ -530,7 +530,7 @@ pdf_adjust_font_name(gx_device_pdf *pdev
+ size = i + 1;
+ }
+ /* Create a unique name. */
+- sprintf(suffix, "%c%lx", SUFFIX_CHAR, id);
++ gs_sprintf(suffix, "%c%lx", SUFFIX_CHAR, id);
+ suffix_size = strlen(suffix);
+ data = gs_resize_string(pdev->pdf_memory, chars, size,
+ size + suffix_size,
+diff -up ghostscript-9.07/base/gdevpdtc.c.gs_sprintf ghostscript-9.07/base/gdevpdtc.c
+--- ghostscript-9.07/base/gdevpdtc.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdtc.c 2013-05-09 17:02:39.072447111 +0100
+@@ -338,7 +338,7 @@ attach_cmap_resource(gx_device_pdf *pdev
+ strcpy(pdfont->u.type0.Encoding_name,
+ (pcmap->WMode ? "/Identity-V" : "/Identity-H"));
+ else
+- sprintf(pdfont->u.type0.Encoding_name, "%ld 0 R",
++ gs_sprintf(pdfont->u.type0.Encoding_name, "%ld 0 R",
+ pdf_resource_id(pcmres));
+ pdfont->u.type0.CMapName.data = chars;
+ pdfont->u.type0.CMapName.size = size;
+@@ -349,7 +349,7 @@ attach_cmap_resource(gx_device_pdf *pdev
+ */
+ return_error(gs_error_invalidfont);
+
+- sprintf(pdfont->u.type0.Encoding_name, "/%s", *pcmn);
++ gs_sprintf(pdfont->u.type0.Encoding_name, "/%s", *pcmn);
+ pdfont->u.type0.CMapName.data = (const byte *)*pcmn;
+ pdfont->u.type0.CMapName.size = strlen(*pcmn);
+ pdfont->u.type0.cmap_is_standard = true;
+diff -up ghostscript-9.07/base/gdevpdtf.c.gs_sprintf ghostscript-9.07/base/gdevpdtf.c
+--- ghostscript-9.07/base/gdevpdtf.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdtf.c 2013-05-09 17:02:39.072447111 +0100
+@@ -1152,7 +1152,7 @@ pdf_convert_truetype_font(gx_device_pdf
+ if (code < 0)
+ return 0;
+ pdfont->u.cidfont.CIDSystemInfo_id = pdev->IdentityCIDSystemInfo_id;
+- sprintf(pdfont0->u.type0.Encoding_name, "%ld 0 R", pdf_resource_id(pdev->OneByteIdentityH));
++ gs_sprintf(pdfont0->u.type0.Encoding_name, "%ld 0 R", pdf_resource_id(pdev->OneByteIdentityH));
+ /* Move ToUnicode : */
+ pdfont0->res_ToUnicode = pdfont->res_ToUnicode; pdfont->res_ToUnicode = 0;
+ pdfont0->cmap_ToUnicode = pdfont->cmap_ToUnicode; pdfont->cmap_ToUnicode = 0;
+diff -up ghostscript-9.07/base/gdevpdti.c.gs_sprintf ghostscript-9.07/base/gdevpdti.c
+--- ghostscript-9.07/base/gdevpdti.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdti.c 2013-05-09 17:02:39.073447115 +0100
+@@ -1178,7 +1178,7 @@ pdf_add_resource(gx_device_pdf *pdev, co
+ if (code < 0)
+ return code;
+ }
+- sprintf(buf, "%ld 0 R\n", pres->object->id);
++ gs_sprintf(buf, "%ld 0 R\n", pres->object->id);
+ if (v != NULL) {
+ if (v->value_type != COS_VALUE_OBJECT &&
+ v->value_type != COS_VALUE_RESOURCE)
+diff -up ghostscript-9.07/base/gdevpdtt.c.gs_sprintf ghostscript-9.07/base/gdevpdtt.c
+--- ghostscript-9.07/base/gdevpdtt.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdtt.c 2013-05-09 17:02:39.074447119 +0100
+@@ -2752,7 +2752,7 @@ pdf_choose_output_glyph_hame(gx_device_p
+ p = (byte *)gs_alloc_string(pdev->pdf_memory, gnstr->size, "pdf_text_set_cache");
+ if (p == NULL)
+ return_error(gs_error_VMerror);
+- sprintf(buf, "g%04x", (unsigned int)(glyph & 0xFFFF));
++ gs_sprintf(buf, "g%04x", (unsigned int)(glyph & 0xFFFF));
+ memcpy(p, buf, 5);
+ gnstr->data = p;
+ }
+diff -up ghostscript-9.07/base/gdevpdtw.c.gs_sprintf ghostscript-9.07/base/gdevpdtw.c
+--- ghostscript-9.07/base/gdevpdtw.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpdtw.c 2013-05-09 17:02:39.074447119 +0100
+@@ -925,7 +925,7 @@ pdf_write_OneByteIdentityH(gx_device_pdf
+ code = cos_dict_put_string_copy(pcd, "/CMapName", "/OneByteIdentityH");
+ if (code < 0)
+ return code;
+- sprintf(buf, "%ld 0 R", pdev->IdentityCIDSystemInfo_id);
++ gs_sprintf(buf, "%ld 0 R", pdev->IdentityCIDSystemInfo_id);
+ code = cos_dict_put_string_copy(pcd, "/CIDSystemInfo", buf);
+ if (code < 0)
+ return code;
+diff -up ghostscript-9.07/base/gdevpng.c.gs_sprintf ghostscript-9.07/base/gdevpng.c
+--- ghostscript-9.07/base/gdevpng.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpng.c 2013-05-09 17:02:39.074447119 +0100
+@@ -564,7 +564,7 @@ do_png_print_page(gx_device_png * pdev,
+ }
+ /* add comment */
+ strncpy(software_key, "Software", sizeof(software_key));
+- sprintf(software_text, "%s %d.%02d", gs_product,
++ gs_sprintf(software_text, "%s %d.%02d", gs_product,
+ (int)(gs_revision / 100), (int)(gs_revision % 100));
+ text_png.compression = -1; /* uncompressed */
+ text_png.key = software_key;
+diff -up ghostscript-9.07/base/gdevps.c.gs_sprintf ghostscript-9.07/base/gdevps.c
+--- ghostscript-9.07/base/gdevps.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevps.c 2013-05-09 17:02:39.075447124 +0100
+@@ -526,7 +526,7 @@ psw_image_write(gx_device_pswrite * pdev
+ const char *op;
+
+ if (index >= 0) {
+- sprintf(str, "%d%c", index / 26, index % 26 + 'A');
++ gs_sprintf(str, "%d%c", index / 26, index % 26 + 'A');
+ pprintd2(s, "%d %d ", x, y);
+ pprints2(s, "%s %s\n", str, imagestr);
+ if (s->end_status == ERRC)
+@@ -556,12 +556,12 @@ psw_image_write(gx_device_pswrite * pdev
+ };
+
+ index = image_cache_lookup(pdev, id, width_bits, height, true);
+- sprintf(str, "/%d%c", index / 26, index % 26 + 'A');
++ gs_sprintf(str, "/%d%c", index / 26, index % 26 + 'A');
+ stream_puts(s, str);
+ if (depth != 1)
+ pprintld1(s, " %ld", ((width_bits + 7) >> 3) * (ulong) height);
+ op = cached[encode];
+- sprintf(endstr, "\n%s\n", imagestr);
++ gs_sprintf(endstr, "\n%s\n", imagestr);
+ }
+ if (s->end_status == ERRC)
+ return_error(gs_error_ioerror);
+@@ -1261,7 +1261,7 @@ psw_copy_color(gx_device * dev,
+ return (*dev_proc(dev, fill_rectangle))
+ (dev, x, y, w, h, (bits[0] << 16) + (bits[1] << 8) + bits[2]);
+ }
+- sprintf(op, "%d Ic", depth / 3); /* RGB */
++ gs_sprintf(op, "%d Ic", depth / 3); /* RGB */
+ code = gdev_vector_update_clip_path(vdev, NULL);
+ if (code < 0)
+ return code;
+diff -up ghostscript-9.07/base/gdevpsf1.c.gs_sprintf ghostscript-9.07/base/gdevpsf1.c
+--- ghostscript-9.07/base/gdevpsf1.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpsf1.c 2013-05-09 17:02:39.075447124 +0100
+@@ -646,12 +646,12 @@ write_Private(stream *s, gs_font_type1 *
+ gs_free_object(pfont->memory, SubrsWithMM, "free Subrs record");
+ return code;
+ }
+- sprintf(buf, "dup %d %u -| ", i, code);
++ gs_sprintf(buf, "dup %d %u -| ", i, code);
+ stream_puts(s, buf);
+ write_CharString(s, stripped, code);
+ gs_free_object(pfont->memory, stripped, "free Subrs copy for OtherSubrs");
+ } else {
+- sprintf(buf, "dup %d %u -| ", i, gdata.bits.size);
++ gs_sprintf(buf, "dup %d %u -| ", i, gdata.bits.size);
+ stream_puts(s, buf);
+ write_CharString(s, gdata.bits.data, gdata.bits.size);
+ }
+diff -up ghostscript-9.07/base/gdevpsf2.c.gs_sprintf ghostscript-9.07/base/gdevpsf2.c
+--- ghostscript-9.07/base/gdevpsf2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevpsf2.c 2013-05-09 17:02:39.076447128 +0100
+@@ -274,7 +274,7 @@ cff_put_real(cff_writer_t *pcw, floatp f
+ byte b = 0xff;
+ const char *p;
+
+- sprintf(str, "%g", f);
++ gs_sprintf(str, "%g", f);
+ sputc(pcw->strm, CD_REAL);
+ for (p = str; ; ++p) {
+ int digit;
+diff -up ghostscript-9.07/base/gdevsppr.c.gs_sprintf ghostscript-9.07/base/gdevsppr.c
+--- ghostscript-9.07/base/gdevsppr.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevsppr.c 2013-05-09 17:02:39.076447128 +0100
+@@ -100,7 +100,7 @@ err_code_string(int err_code)
+ {
+ if ((err_code<EMOTOR)||(err_code>ESERIAL))
+ {
+- sprintf(err_buffer,"err_code out of range: %d",err_code);
++ gs_sprintf(err_buffer,"err_code out of range: %d",err_code);
+ return err_buffer;
+ }
+ return errmsg[err_code];
+diff -up ghostscript-9.07/base/gdevsun.c.gs_sprintf ghostscript-9.07/base/gdevsun.c
+--- ghostscript-9.07/base/gdevsun.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevsun.c 2013-05-09 17:02:39.076447128 +0100
+@@ -392,7 +392,7 @@ if ( gs_debug['X'] )
+ /*
+ * Install the colormap.
+ */
+- sprintf(xdev->cmsname, "%s-%d", CMSNAME, getpid());
++ gs_sprintf(xdev->cmsname, "%s-%d", CMSNAME, getpid());
+ pw_setcmsname(xdev->pw, xdev->cmsname);
+ pw_putcolormap(xdev->pw, 0, CMS_SIZE,
+ xdev->red, xdev->green, xdev->blue);
+diff -up ghostscript-9.07/base/gdevsvg.c.gs_sprintf ghostscript-9.07/base/gdevsvg.c
+--- ghostscript-9.07/base/gdevsvg.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevsvg.c 2013-05-09 17:02:39.076447128 +0100
+@@ -374,22 +374,22 @@ svg_write_header(gx_device_svg *svg)
+ return 1;
+
+ /* write the initial boilerplate */
+- sprintf(line, "%s\n", XML_DECL);
++ gs_sprintf(line, "%s\n", XML_DECL);
+ /* svg_write(svg, line); */
+ sputs(s, (byte *)line, strlen(line), &used);
+- sprintf(line, "%s\n", SVG_DOCTYPE);
++ gs_sprintf(line, "%s\n", SVG_DOCTYPE);
+ /* svg_write(svg, line); */
+ sputs(s, (byte *)line, strlen(line), &used);
+- sprintf(line, "<svg xmlns='%s' version='%s'",
++ gs_sprintf(line, "<svg xmlns='%s' version='%s'",
+ SVG_XMLNS, SVG_VERSION);
+ /* svg_write(svg, line); */
+ sputs(s, (byte *)line, strlen(line), &used);
+- sprintf(line, "\n\twidth='%dpt' height='%dpt'>\n",
++ gs_sprintf(line, "\n\twidth='%dpt' height='%dpt'>\n",
+ (int)svg->MediaSize[0], (int)svg->MediaSize[1]);
+ sputs(s, (byte *)line, strlen(line), &used);
+
+ /* Scale drawing so our coordinates are in pixels */
+- sprintf(line, "<g transform='scale(%lf,%lf)'>\n",
++ gs_sprintf(line, "<g transform='scale(%lf,%lf)'>\n",
+ 72.0 / svg->HWResolution[0],
+ 72.0 / svg->HWResolution[1]);
+ /* svg_write(svg, line); */
+@@ -430,19 +430,19 @@ svg_write_state(gx_device_svg *svg)
+ /* write out the new current state */
+ svg_write(svg, "<g ");
+ if (svg->strokecolor != gx_no_color_index) {
+- sprintf(line, " stroke='#%06x'", svg->strokecolor & 0xffffffL);
++ gs_sprintf(line, " stroke='#%06x'", svg->strokecolor & 0xffffffL);
+ svg_write(svg, line);
+ } else {
+ svg_write(svg, " stroke='none'");
+ }
+ if (svg->fillcolor != gx_no_color_index) {
+- sprintf(line, "#%06x", svg->fillcolor & 0xffffffL);
++ gs_sprintf(line, "#%06x", svg->fillcolor & 0xffffffL);
+ svg_write(svg, line);
+ } else {
+ svg_write(svg, " fill='none'");
+ }
+ if (svg->linewidth != 1.0) {
+- sprintf(line, " stroke-width='%lf'", svg->linewidth);
++ gs_sprintf(line, " stroke-width='%lf'", svg->linewidth);
+ svg_write(svg, line);
+ }
+ if (svg->linecap != SVG_DEFAULT_LINECAP) {
+@@ -476,7 +476,7 @@ svg_write_state(gx_device_svg *svg)
+ }
+ }
+ if (svg->miterlimit != SVG_DEFAULT_MITERLIMIT) {
+- sprintf(line, " stroke-miterlimit='%lf'", svg->miterlimit);
++ gs_sprintf(line, " stroke-miterlimit='%lf'", svg->miterlimit);
+ svg_write(svg, line);
+ }
+ svg_write(svg, ">\n");
+@@ -653,7 +653,7 @@ svg_dorect(gx_device_vector *vdev, fixed
+ svg_write(svg, "<clipPath>\n");
+ }
+
+- sprintf(line, "<rect x='%lf' y='%lf' width='%lf' height='%lf'",
++ gs_sprintf(line, "<rect x='%lf' y='%lf' width='%lf' height='%lf'",
+ fixed2float(x0), fixed2float(y0),
+ fixed2float(x1 - x0), fixed2float(y1 - y0));
+ svg_write(svg, line);
+@@ -714,7 +714,7 @@ svg_moveto(gx_device_vector *vdev, float
+ svg_print_path_type(svg, type);
+ if_debug0m('_', svg->memory, "\n");
+
+- sprintf(line, " M%lf,%lf", x, y);
++ gs_sprintf(line, " M%lf,%lf", x, y);
+ svg_write(svg, line);
+
+ return 0;
+@@ -739,7 +739,7 @@ svg_lineto(gx_device_vector *vdev, float
+ svg_print_path_type(svg, type);
+ if_debug0m('_', svg->memory, "\n");
+
+- sprintf(line, " L%lf,%lf", x, y);
++ gs_sprintf(line, " L%lf,%lf", x, y);
+ svg_write(svg, line);
+
+ return 0;
+@@ -766,7 +766,7 @@ svg_curveto(gx_device_vector *vdev, floa
+ svg_print_path_type(svg, type);
+ if_debug0m('_', svg->memory, "\n");
+
+- sprintf(line, " C%lf,%lf %lf,%lf %lf,%lf", x1,y1, x2,y2, x3,y3);
++ gs_sprintf(line, " C%lf,%lf %lf,%lf %lf,%lf", x1,y1, x2,y2, x3,y3);
+ svg_write(svg, line);
+
+ return 0;
+diff -up ghostscript-9.07/base/gdevtifs.c.gs_sprintf ghostscript-9.07/base/gdevtifs.c
+--- ghostscript-9.07/base/gdevtifs.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevtifs.c 2013-05-09 17:02:39.077447132 +0100
+@@ -500,7 +500,7 @@ int tiff_set_fields_for_printer(gx_devic
+
+ strncpy(softwareValue, gs_product, maxSoftware);
+ softwareValue[maxSoftware - 1] = 0;
+- sprintf(revs, " %1.2f", gs_revision / 100.0);
++ gs_sprintf(revs, " %1.2f", gs_revision / 100.0);
+ strncat(softwareValue, revs,
+ maxSoftware - strlen(softwareValue) - 1);
+
+@@ -513,7 +513,7 @@ int tiff_set_fields_for_printer(gx_devic
+
+ time(&t);
+ tms = *localtime(&t);
+- sprintf(dateTimeValue, "%04d:%02d:%02d %02d:%02d:%02d",
++ gs_sprintf(dateTimeValue, "%04d:%02d:%02d %02d:%02d:%02d",
+ tms.tm_year + 1900, tms.tm_mon + 1, tms.tm_mday,
+ tms.tm_hour, tms.tm_min, tms.tm_sec);
+
+diff -up ghostscript-9.07/base/gdevtsep.c.gs_sprintf ghostscript-9.07/base/gdevtsep.c
+--- ghostscript-9.07/base/gdevtsep.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevtsep.c 2013-05-09 17:02:39.077447132 +0100
+@@ -1182,9 +1182,9 @@ tiffsep1_prn_close(gx_device * pdev)
+ while (*fmt != 'l' && *fmt != '%')
+ --fmt;
+ if (*fmt == 'l')
+- sprintf(compname, parsed.fname, count1);
++ gs_sprintf(compname, parsed.fname, count1);
+ else
+- sprintf(compname, parsed.fname, (int)count1);
++ gs_sprintf(compname, parsed.fname, (int)count1);
+ parsed.iodev->procs.delete_file(parsed.iodev, compname);
+ } else {
+ parsed.iodev->procs.delete_file(parsed.iodev, tfdev->fname);
+@@ -1370,7 +1370,7 @@ create_separation_file_name(tiffsep_devi
+ /* Max of 10 chars in %d format */
+ if (max_size < base_filename_length + 11)
+ return_error(gs_error_rangecheck);
+- sprintf(buffer + base_filename_length, "s%d", sep_num);
++ gs_sprintf(buffer + base_filename_length, "s%d", sep_num);
+ }
+ }
+ if (use_sep_name)
+@@ -2385,9 +2385,9 @@ tiffsep1_print_page(gx_device_printer *
+ while (*fmt != 'l' && *fmt != '%')
+ --fmt;
+ if (*fmt == 'l')
+- sprintf(compname, parsed.fname, count1);
++ gs_sprintf(compname, parsed.fname, count1);
+ else
+- sprintf(compname, parsed.fname, (int)count1);
++ gs_sprintf(compname, parsed.fname, (int)count1);
+ parsed.iodev->procs.delete_file(parsed.iodev, compname);
+ /* we always need an open printer (it will get deleted in tiffsep1_prn_close */
+ if ((code = gdev_prn_open_printer((gx_device *)pdev, 1)) < 0)
+diff -up ghostscript-9.07/base/gdevtxtw.c.gs_sprintf ghostscript-9.07/base/gdevtxtw.c
+--- ghostscript-9.07/base/gdevtxtw.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevtxtw.c 2013-05-09 17:02:39.078447137 +0100
+@@ -633,16 +633,16 @@ static int escaped_Unicode (unsigned sho
+ {
+ switch (Unicode)
+ {
+- case 0x3C: sprintf(Buf, "&lt;"); break;
+- case 0x3E: sprintf(Buf, "&gt;"); break;
+- case 0x26: sprintf(Buf, "&amp;"); break;
+- case 0x22: sprintf(Buf, "&quot;"); break;
+- case 0x27: sprintf(Buf, "&apos;"); break;
++ case 0x3C: gs_sprintf(Buf, "&lt;"); break;
++ case 0x3E: gs_sprintf(Buf, "&gt;"); break;
++ case 0x26: gs_sprintf(Buf, "&amp;"); break;
++ case 0x22: gs_sprintf(Buf, "&quot;"); break;
++ case 0x27: gs_sprintf(Buf, "&apos;"); break;
+ default:
+ if (Unicode >= 32 && Unicode <= 127)
+- sprintf(Buf, "%c", Unicode);
++ gs_sprintf(Buf, "%c", Unicode);
+ else
+- sprintf(Buf, "&#x%x;", Unicode);
++ gs_sprintf(Buf, "&#x%x;", Unicode);
+ break;
+ }
+
+@@ -665,13 +665,13 @@ static int decorated_text_output(gx_devi
+ x_entry = tdev->PageData.unsorted_text_list;
+ while (x_entry) {
+ next_x = x_entry->next;
+- sprintf(TextBuffer, "<span bbox=\"%0.0f %0.0f %0.0f %0.0f\" font=\"%s\" size=\"%0.4f\">\n", x_entry->start.x, x_entry->start.y,
++ gs_sprintf(TextBuffer, "<span bbox=\"%0.0f %0.0f %0.0f %0.0f\" font=\"%s\" size=\"%0.4f\">\n", x_entry->start.x, x_entry->start.y,
+ x_entry->end.x, x_entry->end.y, x_entry->FontName,x_entry->size);
+ fwrite(TextBuffer, 1, strlen(TextBuffer), tdev->file);
+ xpos = x_entry->start.x;
+ for (i=0;i<x_entry->Unicode_Text_Size;i++) {
+ escaped_Unicode(x_entry->Unicode_Text[i], (char *)&Escaped);
+- sprintf(TextBuffer, "<char bbox=\"%0.0f %0.0f %0.0f %0.0f\" c=\"%s\">\n", xpos,
++ gs_sprintf(TextBuffer, "<char bbox=\"%0.0f %0.0f %0.0f %0.0f\" c=\"%s\">\n", xpos,
+ x_entry->start.y, xpos + x_entry->Widths[i], x_entry->end.y, Escaped);
+ fwrite(TextBuffer, 1, strlen(TextBuffer), tdev->file);
+ xpos += x_entry->Widths[i];
+@@ -788,13 +788,13 @@ static int decorated_text_output(gx_devi
+ fwrite("<line>\n", sizeof(unsigned char), 7, tdev->file);
+ x_entry = block_line->x_ordered_list;
+ while(x_entry) {
+- sprintf(TextBuffer, "<span bbox=\"%0.0f %0.0f %0.0f %0.0f\" font=\"%s\" size=\"%0.4f\">\n", x_entry->start.x, x_entry->start.y,
++ gs_sprintf(TextBuffer, "<span bbox=\"%0.0f %0.0f %0.0f %0.0f\" font=\"%s\" size=\"%0.4f\">\n", x_entry->start.x, x_entry->start.y,
+ x_entry->end.x, x_entry->end.y, x_entry->FontName,x_entry->size);
+ fwrite(TextBuffer, 1, strlen(TextBuffer), tdev->file);
+ xpos = x_entry->start.x;
+ for (i=0;i<x_entry->Unicode_Text_Size;i++) {
+ escaped_Unicode(x_entry->Unicode_Text[i], (char *)&Escaped);
+- sprintf(TextBuffer, "<char bbox=\"%0.0f %0.0f %0.0f %0.0f\" c=\"%s\">\n", xpos,
++ gs_sprintf(TextBuffer, "<char bbox=\"%0.0f %0.0f %0.0f %0.0f\" c=\"%s\">\n", xpos,
+ x_entry->start.y, xpos + x_entry->Widths[i], x_entry->end.y, Escaped);
+ fwrite(TextBuffer, 1, strlen(TextBuffer), tdev->file);
+ xpos += x_entry->Widths[i];
+diff -up ghostscript-9.07/base/gdevupd.c.gs_sprintf ghostscript-9.07/base/gdevupd.c
+--- ghostscript-9.07/base/gdevupd.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevupd.c 2013-05-09 17:02:39.079447141 +0100
+@@ -6476,7 +6476,7 @@ upd_open_wrtrtl(upd_device *udev)
+ if( (B_PAGEWIDTH & upd->flags) &&
+ ((c == 0x73) || (c == 0x53)) ) { /* esc * r # S */
+
+- sprintf(cv,"%d",upd->pwidth);
++ gs_sprintf(cv,"%d",upd->pwidth);
+ ncv = strlen(cv);
+
+ nbp = (j+1) + ncv + (upd->strings[S_BEGIN].size-i);
+@@ -6494,7 +6494,7 @@ upd_open_wrtrtl(upd_device *udev)
+ } else if((B_PAGELENGTH & upd->flags) &&
+ ((c == 0x74) || (c == 0x54)) ) { /* esc * r # T */
+
+- sprintf(cv,"%d",upd->pheight);
++ gs_sprintf(cv,"%d",upd->pheight);
+ ncv = strlen(cv);
+
+ nbp = (j+1) + ncv + (upd->strings[S_BEGIN].size-i);
+@@ -6523,7 +6523,7 @@ upd_open_wrtrtl(upd_device *udev)
+ if( (B_RESOLUTION & upd->flags) &&
+ ((c == 0x72) || (c == 0x52)) ) { /* esc * t # R */
+
+- sprintf(cv,"%d",(int)
++ gs_sprintf(cv,"%d",(int)
+ ((udev->y_pixels_per_inch < udev->x_pixels_per_inch ?
+ udev->x_pixels_per_inch : udev->y_pixels_per_inch)
+ +0.5));
+@@ -6730,7 +6730,7 @@ upd_open_wrtrtl(upd_device *udev)
+
+ if(B_PAGELENGTH & upd->flags) { /* insert new number */
+
+- sprintf(cv,"%d",(int)
++ gs_sprintf(cv,"%d",(int)
+ (720.0 * udev->height / udev->y_pixels_per_inch + 0.5));
+ ncv = strlen(cv);
+
+@@ -6795,7 +6795,7 @@ upd_open_wrtrtl(upd_device *udev)
+
+ if(B_PAGEWIDTH & upd->flags) { /* insert new number */
+
+- sprintf(cv,"%d",(int)
++ gs_sprintf(cv,"%d",(int)
+ (720.0 * udev->width / udev->x_pixels_per_inch + 0.5));
+ ncv = strlen(cv);
+
+@@ -6890,7 +6890,7 @@ upd_open_wrtrtl(upd_device *udev)
+
+ if(B_RESOLUTION & upd->flags) { /* insert new number */
+
+- sprintf(cv,"%d",(int)
++ gs_sprintf(cv,"%d",(int)
+ ((udev->y_pixels_per_inch < udev->x_pixels_per_inch ?
+ udev->x_pixels_per_inch : udev->y_pixels_per_inch)
+ +0.5));
+@@ -6945,7 +6945,7 @@ It must hold:
+ char tmp[16];
+
+ if(0 < upd->strings[S_YMOVE].size) {
+- sprintf(tmp,"%d",upd->pheight);
++ gs_sprintf(tmp,"%d",upd->pheight);
+ ny = upd->strings[S_YMOVE].size + strlen(tmp);
+ } else {
+ ny = 1 + upd->string_a[SA_WRITECOMP].data[upd->ocomp-1].size;
+@@ -7006,14 +7006,14 @@ upd_wrtrtl(upd_p upd, FILE *out)
+ */
+ if(upd->yscan != upd->yprinter) { /* Adjust Y-Position */
+ if(1 < upd->strings[S_YMOVE].size) {
+- sprintf((char *)upd->outbuf+ioutbuf,
++ gs_sprintf((char *)upd->outbuf+ioutbuf,
+ (const char *) upd->strings[S_YMOVE].data,
+ upd->yscan - upd->yprinter);
+ ioutbuf += strlen((char *)upd->outbuf+ioutbuf);
+ } else {
+ while(upd->yscan > upd->yprinter) {
+ for(icomp = 0; icomp < upd->ocomp; ++icomp) {
+- sprintf((char *)upd->outbuf+ioutbuf,
++ gs_sprintf((char *)upd->outbuf+ioutbuf,
+ (const char *) upd->string_a[SA_WRITECOMP].data[icomp].data,0);
+ ioutbuf += strlen((char *)upd->outbuf+ioutbuf);
+ }
+diff -up ghostscript-9.07/base/gdevwpr2.c.gs_sprintf ghostscript-9.07/base/gdevwpr2.c
+--- ghostscript-9.07/base/gdevwpr2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevwpr2.c 2013-05-09 17:02:39.080447145 +0100
+@@ -548,7 +548,7 @@ win_pr2_print_page(gx_device_printer * p
+ }
+
+ if (!wdev->nocancel) {
+- sprintf(dlgtext, "Printing page %d", (int)(pdev->PageCount) + 1);
++ gs_sprintf(dlgtext, "Printing page %d", (int)(pdev->PageCount) + 1);
+ SetWindowText(GetDlgItem(wdev->hDlgModeless, CANCEL_PRINTING), dlgtext);
+ ShowWindow(wdev->hDlgModeless, SW_SHOW);
+ }
+@@ -577,7 +577,7 @@ win_pr2_print_page(gx_device_printer * p
+
+ if (!wdev->nocancel) {
+ /* inform user of progress */
+- sprintf(dlgtext, "%d%% done", (int)(y * 100L / scan_lines));
++ gs_sprintf(dlgtext, "%d%% done", (int)(y * 100L / scan_lines));
+ SetWindowText(GetDlgItem(wdev->hDlgModeless, CANCEL_PCDONE), dlgtext);
+ }
+ /* process message loop */
+@@ -1488,9 +1488,9 @@ win_pr2_print_setup_interaction(gx_devic
+
+ wdev->user_changed_settings = TRUE;
+ if (wdev->use_old_spool_name) {
+- sprintf(wdev->fname, "\\\\spool\\%s", (char*)(devnames)+(devnames->wDeviceOffset));
++ gs_sprintf(wdev->fname, "\\\\spool\\%s", (char*)(devnames)+(devnames->wDeviceOffset));
+ } else {
+- sprintf(wdev->fname, "%%printer%%%s", (char*)(devnames)+(devnames->wDeviceOffset));
++ gs_sprintf(wdev->fname, "%%printer%%%s", (char*)(devnames)+(devnames->wDeviceOffset));
+ }
+
+ if (mode == 3) {
+diff -up ghostscript-9.07/base/gdevxini.c.gs_sprintf ghostscript-9.07/base/gdevxini.c
+--- ghostscript-9.07/base/gdevxini.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gdevxini.c 2013-05-09 17:02:39.080447145 +0100
+@@ -377,7 +377,7 @@ gdev_x_open(gx_device_X * xdev)
+ char gstr[40];
+ int bitmask;
+
+- sprintf(gstr, "%dx%d+%d+%d", sizehints.width,
++ gs_sprintf(gstr, "%dx%d+%d+%d", sizehints.width,
+ sizehints.height, sizehints.x, sizehints.y);
+ bitmask = XWMGeometry(xdev->dpy, DefaultScreen(xdev->dpy),
+ xdev->geometry, gstr, xdev->borderWidth,
+diff -up ghostscript-9.07/base/gp_macio.c.gs_sprintf ghostscript-9.07/base/gp_macio.c
+--- ghostscript-9.07/base/gp_macio.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gp_macio.c 2013-05-09 17:02:39.080447145 +0100
+@@ -162,7 +162,7 @@ getenv(const char * env) {
+ convertSpecToPath(&pFile, fpath, 256);
+ // sprintf(fpath,"%s",fpath);
+ p = (char*)malloc((size_t) ( 4*strlen(fpath) + 40));
+- sprintf(p,"%s,%sGhostscript:lib,%sGhostscript:fonts",
++ gs_sprintf(p,"%s,%sGhostscript:lib,%sGhostscript:fonts",
+ (char *)&fpath[0],(char *)&fpath[0],
+ (char *)&fpath[0] );
+
+@@ -402,9 +402,9 @@ gp_open_scratch_file (const gs_memory_t
+ }
+ FSMakeFSSpec(foundVRefNum, foundDirID,thepfname, &fSpec);
+ convertSpecToPath(&fSpec, thefname, sizeof(thefname) - 1);
+- sprintf(fname,"%s",thefname);
++ gs_sprintf(fname,"%s",thefname);
+ } else {
+- sprintf((char*)&thefname[0],"%s\0",fname);
++ gs_sprintf((char*)&thefname[0],"%s\0",fname);
+ memmove((char*)&thepfname[1],(char *)&thefname[0],strlen(thefname));
+ thepfname[0]=strlen(thefname);
+ }
+@@ -535,9 +535,9 @@ gp_fopen (const char * fname, const char
+ //(*pgsdll_callback) (GSDLL_STDOUT, thefname, strlen(fname));
+ if ( strrchr(fname,':') == NULL )
+ // sprintf((char *)&thefname[0],"%s%s\0",g_homeDir,fname);
+- sprintf((char *)&thefname[0],"%s%s\0","",fname);
++ gs_sprintf((char *)&thefname[0],"%s%s\0","",fname);
+ else
+- sprintf((char*)&thefname[0],"%s\0",fname);
++ gs_sprintf((char*)&thefname[0],"%s\0",fname);
+
+ fid = fopen(thefname,mode);
+
+diff -up ghostscript-9.07/base/gp_mswin.c.gs_sprintf ghostscript-9.07/base/gp_mswin.c
+--- ghostscript-9.07/base/gp_mswin.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gp_mswin.c 2013-05-09 17:02:39.081447150 +0100
+@@ -316,7 +316,7 @@ get_queues(void)
+ char buf[256];
+
+ free(enumbuffer);
+- sprintf(buf, "EnumPrinters() failed, error code = %d", GetLastError());
++ gs_sprintf(buf, "EnumPrinters() failed, error code = %d", GetLastError());
+ MessageBox((HWND) NULL, buf, szAppName, MB_OK | MB_ICONSTOP);
+ return NULL;
+ }
+@@ -423,7 +423,7 @@ gp_printfile_win32(const char *filename,
+ if (!gp_OpenPrinter(port, &printer)) {
+ char buf[256];
+
+- sprintf(buf, "OpenPrinter() failed for \042%s\042, error code = %d", port, GetLastError());
++ gs_sprintf(buf, "OpenPrinter() failed for \042%s\042, error code = %d", port, GetLastError());
+ MessageBox((HWND) NULL, buf, szAppName, MB_OK | MB_ICONSTOP);
+ free(buffer);
+ return FALSE;
+@@ -436,7 +436,7 @@ gp_printfile_win32(const char *filename,
+ if (!StartDocPrinter(printer, 1, (LPBYTE) & di)) {
+ char buf[256];
+
+- sprintf(buf, "StartDocPrinter() failed, error code = %d", GetLastError());
++ gs_sprintf(buf, "StartDocPrinter() failed, error code = %d", GetLastError());
+ MessageBox((HWND) NULL, buf, szAppName, MB_OK | MB_ICONSTOP);
+ AbortPrinter(printer);
+ free(buffer);
+@@ -457,7 +457,7 @@ gp_printfile_win32(const char *filename,
+ if (!EndDocPrinter(printer)) {
+ char buf[256];
+
+- sprintf(buf, "EndDocPrinter() failed, error code = %d", GetLastError());
++ gs_sprintf(buf, "EndDocPrinter() failed, error code = %d", GetLastError());
+ MessageBox((HWND) NULL, buf, szAppName, MB_OK | MB_ICONSTOP);
+ AbortPrinter(printer);
+ return FALSE;
+@@ -465,7 +465,7 @@ gp_printfile_win32(const char *filename,
+ if (!ClosePrinter(printer)) {
+ char buf[256];
+
+- sprintf(buf, "ClosePrinter() failed, error code = %d", GetLastError());
++ gs_sprintf(buf, "ClosePrinter() failed, error code = %d", GetLastError());
+ MessageBox((HWND) NULL, buf, szAppName, MB_OK | MB_ICONSTOP);
+ return FALSE;
+ }
+diff -up ghostscript-9.07/base/gp_wgetv.c.gs_sprintf ghostscript-9.07/base/gp_wgetv.c
+--- ghostscript-9.07/base/gp_wgetv.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gp_wgetv.c 2013-05-09 17:02:39.081447150 +0100
+@@ -181,9 +181,9 @@ gp_getenv(const char *name, char *ptr, i
+ char key[256];
+ char dotversion[16];
+
+- sprintf(dotversion, "%d.%02d", (int)(gs_revision / 100),
++ gs_sprintf(dotversion, "%d.%02d", (int)(gs_revision / 100),
+ (int)(gs_revision % 100));
+- sprintf(key, "Software\\%s\\%s", gs_productfamily, dotversion);
++ gs_sprintf(key, "Software\\%s\\%s", gs_productfamily, dotversion);
+ #else
+ wchar_t key[256];
+ wchar_t dotversion[16];
+@@ -224,7 +224,7 @@ gp_serialnumber(void)
+ #ifdef WINDOWS_NO_UNICODE
+ char key[256];
+
+- sprintf(key, "Software\\Microsoft\\MSLicensing\\HardwareID");
++ gs_sprintf(key, "Software\\Microsoft\\MSLicensing\\HardwareID");
+ #else /* WINDOWS_NO_UNICODE */
+ wchar_t key[256];
+
+diff -up ghostscript-9.07/base/gsalloc.c.gs_sprintf ghostscript-9.07/base/gsalloc.c
+--- ghostscript-9.07/base/gsalloc.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsalloc.c 2013-05-09 17:02:39.081447150 +0100
+@@ -2045,7 +2045,7 @@ debug_dump_contents(const gs_memory_t *m
+ }
+ continue;
+ }
+- sprintf(label, "0x%lx:", (ulong) block);
++ gs_sprintf(label, "0x%lx:", (ulong) block);
+ debug_indent(mem, indent);
+ dmputs(mem, label);
+ for (i = 0; i < block_size; ++i) {
+diff -up ghostscript-9.07/base/gsdevice.c.gs_sprintf ghostscript-9.07/base/gsdevice.c
+--- ghostscript-9.07/base/gsdevice.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsdevice.c 2013-05-09 17:02:39.082447154 +0100
+@@ -1011,11 +1011,11 @@ gx_device_open_output_file(const gx_devi
+ while (*fmt != 'l' && *fmt != '%')
+ --fmt;
+ if (*fmt == 'l')
+- sprintf(pfname, parsed.fname, count1);
++ gs_sprintf(pfname, parsed.fname, count1);
+ else
+- sprintf(pfname, parsed.fname, (int)count1);
++ gs_sprintf(pfname, parsed.fname, (int)count1);
+ } else if (parsed.len && strchr(parsed.fname, '%')) /* filename with "%%" but no "%nnd" */
+- sprintf(pfname, parsed.fname);
++ gs_sprintf(pfname, parsed.fname);
+ else
+ pfname[0] = 0; /* 0 to use "fname", not "pfname" */
+ if (pfname[0]) {
+diff -up ghostscript-9.07/base/gsdparam.c.gs_sprintf ghostscript-9.07/base/gsdparam.c
+--- ghostscript-9.07/base/gsdparam.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsdparam.c 2013-05-09 17:02:39.082447154 +0100
+@@ -377,7 +377,7 @@ gdev_write_input_media(int index, gs_par
+ int code;
+ gs_param_string as;
+
+- sprintf(key, "%d", index);
++ gs_sprintf(key, "%d", index);
+ mdict.size = 4;
+ code = param_begin_write_dict(pdict->list, key, &mdict, false);
+ if (code < 0)
+@@ -465,7 +465,7 @@ gdev_write_output_media(int index, gs_pa
+ gs_param_dict mdict;
+ int code;
+
+- sprintf(key, "%d", index);
++ gs_sprintf(key, "%d", index);
+ mdict.size = 4;
+ code = param_begin_write_dict(pdict->list, key, &mdict, false);
+ if (code < 0)
+diff -up ghostscript-9.07/base/gsfcmap.c.gs_sprintf ghostscript-9.07/base/gsfcmap.c
+--- ghostscript-9.07/base/gsfcmap.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsfcmap.c 2013-05-09 17:02:39.082447154 +0100
+@@ -567,7 +567,7 @@ gs_cmap_ToUnicode_alloc(gs_memory_t *mem
+ char sid[10], *pref = "aux-";
+ int sid_len, pref_len = strlen(pref);
+
+- sprintf(sid, "%d", id);
++ gs_sprintf(sid, "%d", id);
+ sid_len = strlen(sid);
+ name_len = pref_len + sid_len;
+ cmap_name = gs_alloc_string(mem, name_len, "gs_cmap_ToUnicode_alloc");
+diff -up ghostscript-9.07/base/gsicc_create.c.gs_sprintf ghostscript-9.07/base/gsicc_create.c
+--- ghostscript-9.07/base/gsicc_create.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsicc_create.c 2013-05-09 17:02:39.083447158 +0100
+@@ -451,7 +451,7 @@ save_profile(unsigned char *buffer, char
+ char full_file_name[50];
+ FILE *fid;
+
+- sprintf(full_file_name,"%d)Profile_%s.icc",icc_debug_index,filename);
++ gs_sprintf(full_file_name,"%d)Profile_%s.icc",icc_debug_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fwrite(buffer,sizeof(unsigned char),buffer_size,fid);
+ fclose(fid);
+diff -up ghostscript-9.07/base/gsicc_manage.c.gs_sprintf ghostscript-9.07/base/gsicc_manage.c
+--- ghostscript-9.07/base/gsicc_manage.c.gs_sprintf 2013-05-09 17:02:39.043446986 +0100
++++ ghostscript-9.07/base/gsicc_manage.c 2013-05-09 17:02:39.083447158 +0100
+@@ -550,8 +550,8 @@ gsicc_set_srcgtag_struct(gsicc_manager_t
+ srcgtag = gsicc_new_srcgtag_profile(mem);
+ /* Now parse through the data opening the profiles that are needed */
+ /* First create the format that we should read for the key */
+- sprintf(str_format_key, "%%%ds", GSICC_SRCGTAG_MAX_KEY);
+- sprintf(str_format_file, "%%%ds", FILENAME_MAX);
++ gs_sprintf(str_format_key, "%%%ds", GSICC_SRCGTAG_MAX_KEY);
++ gs_sprintf(str_format_file, "%%%ds", FILENAME_MAX);
+ curr_ptr = buffer_ptr;
+ /* Initialize that we want color management. Then if profile is not
+ present we know we did not want anything special done with that
+@@ -1296,13 +1296,13 @@ gsicc_set_device_profile_colorants(gx_de
+ DEFAULT_ICC_PROCESS_LENGTH - 1; /* -1 due to no comma at end */
+ name_str = (char*) gs_alloc_bytes(dev->memory, total_len+1,
+ "gsicc_set_device_profile_colorants");
+- sprintf(name_str, DEFAULT_ICC_PROCESS);
++ gs_sprintf(name_str, DEFAULT_ICC_PROCESS);
+ for (kk = 0; kk < num_comps-5; kk++) {
+- sprintf(temp_str,"ICC_COLOR_%d,",kk);
++ gs_sprintf(temp_str,"ICC_COLOR_%d,",kk);
+ strcat(name_str,temp_str);
+ }
+ /* Last one no comma */
+- sprintf(temp_str,"ICC_COLOR_%d",kk);
++ gs_sprintf(temp_str,"ICC_COLOR_%d",kk);
+ strcat(name_str,temp_str);
+ }
+ str_len = strlen(name_str);
+@@ -2344,7 +2344,7 @@ dump_icc_buffer(int buffersize, char fil
+ char full_file_name[50];
+ FILE *fid;
+
+- sprintf(full_file_name,"%d)%s_debug.icc",global_icc_index,filename);
++ gs_sprintf(full_file_name,"%d)%s_debug.icc",global_icc_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fwrite(Buffer,sizeof(unsigned char),buffersize,fid);
+ fclose(fid);
+diff -up ghostscript-9.07/base/gsiodisk.c.gs_sprintf ghostscript-9.07/base/gsiodisk.c
+--- ghostscript-9.07/base/gsiodisk.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gsiodisk.c 2013-05-09 17:02:39.084447162 +0100
+@@ -415,7 +415,7 @@ MapFileOpen(const char * rootpath, const
+
+ if (strlen(rootpath) + strlen(filename) >= BUFFER_LENGTH)
+ return NULL;
+- sprintf(fullname, "%s%s", rootpath, filename);
++ gs_sprintf(fullname, "%s%s", rootpath, filename);
+ return gp_fopen(fullname, attributes);
+ }
+
+@@ -516,7 +516,7 @@ MapFileUnlink(const char * rootpath, con
+
+ if (strlen(rootpath) + strlen(filename) >= BUFFER_LENGTH)
+ return;
+- sprintf(fullname, "%s%s", rootpath, filename);
++ gs_sprintf(fullname, "%s%s", rootpath, filename);
+ unlink(fullname);
+ }
+
+@@ -537,8 +537,8 @@ MapFileRename(const char * rootpath, con
+ return;
+ if (strlen(rootpath) + strlen(newfilename) >= BUFFER_LENGTH)
+ return;
+- sprintf(oldfullname, "%s%s", rootpath, oldfilename);
+- sprintf(newfullname, "%s%s", rootpath, newfilename);
++ gs_sprintf(oldfullname, "%s%s", rootpath, oldfilename);
++ gs_sprintf(newfullname, "%s%s", rootpath, newfilename);
+ rename(oldfullname, newfullname);
+ }
+
+@@ -711,7 +711,7 @@ map_file_name_get(const char * root_name
+ if (d != -1) {
+ /* 20 characters are enough for even a 64 bit integer */
+ if ((strlen(root_name) + 20) < BUFFER_LENGTH) {
+- sprintf(osname, "%s%d", root_name, d);
++ gs_sprintf(osname, "%s%d", root_name, d);
+ return true;
+ }
+ }
+diff -up ghostscript-9.07/base/gs.mak.gs_sprintf ghostscript-9.07/base/gs.mak
+--- ghostscript-9.07/base/gs.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gs.mak 2013-05-09 17:02:39.084447162 +0100
+@@ -239,6 +239,8 @@ LCUPSGENDIR=$(GLGENDIR)
+ LCUPSOBJDIR=$(GLOBJDIR)
+ LCUPSIGENDIR=$(GLGENDIR)
+ LCUPSIOBJDIR=$(GLOBJDIR)
++
++TRIOOBJDIR=$(GLOBJDIR)
+ #**************** END PATCHES
+
+ GSGEN=$(GLGENDIR)$(D)
+diff -up ghostscript-9.07/base/gspmdrv.c.gs_sprintf ghostscript-9.07/base/gspmdrv.c
+--- ghostscript-9.07/base/gspmdrv.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gspmdrv.c 2013-05-09 17:02:39.084447162 +0100
+@@ -345,11 +345,11 @@ write_profile(void)
+ {
+ char profile[64];
+
+- sprintf(profile, "%d %d", option.img_origin.x, option.img_origin.y);
++ gs_sprintf(profile, "%d %d", option.img_origin.x, option.img_origin.y);
+ PrfWriteProfileString(HINI_USERPROFILE, section, "Origin", profile);
+- sprintf(profile, "%d %d", option.img_size.x, option.img_size.y);
++ gs_sprintf(profile, "%d %d", option.img_size.x, option.img_size.y);
+ PrfWriteProfileString(HINI_USERPROFILE, section, "Size", profile);
+- sprintf(profile, "%d", option.img_max);
++ gs_sprintf(profile, "%d", option.img_max);
+ PrfWriteProfileString(HINI_USERPROFILE, section, "Maximized", profile);
+ }
+
+@@ -489,26 +489,26 @@ init_display(int argc, char *argv[])
+ find_hwnd_gs(argv[2]);
+
+ if (!rc) {
+- sprintf(name, SHARED_NAME, argv[2]);
++ gs_sprintf(name, SHARED_NAME, argv[2]);
+ rc = DosGetNamedSharedMem((PVOID *) & bitmap.pbmi, name, PAG_READ | PAG_WRITE);
+ if (rc) {
+- sprintf(buf, "Failed to open: bmp shared memory \"%s\" rc = %d", argv[0], rc);
++ gs_sprintf(buf, "Failed to open: bmp shared memory \"%s\" rc = %d", argv[0], rc);
+ error_message(buf);
+ }
+ }
+ if (!rc) {
+- sprintf(name, SYNC_NAME, argv[2]);
++ gs_sprintf(name, SYNC_NAME, argv[2]);
+ rc = DosOpenEventSem(name, &update_event_sem);
+ if (rc) {
+- sprintf(buf, "Failed to open: update event semaphore \"%s\" rc = %d", argv[1], rc);
++ gs_sprintf(buf, "Failed to open: update event semaphore \"%s\" rc = %d", argv[1], rc);
+ error_message(buf);
+ }
+ }
+ if (!rc) {
+- sprintf(name, MUTEX_NAME, argv[2]);
++ gs_sprintf(name, MUTEX_NAME, argv[2]);
+ rc = DosOpenMutexSem(name, &bmp_mutex_sem);
+ if (rc) {
+- sprintf(buf, "Failed to open: bmp mutex semaphore \"%s\" rc = %d", argv[1], rc);
++ gs_sprintf(buf, "Failed to open: bmp mutex semaphore \"%s\" rc = %d", argv[1], rc);
+ error_message(buf);
+ }
+ }
+@@ -535,19 +535,19 @@ init_bitmap(int argc, char *argv[])
+ if ((rc = DosOpen(argv[2], &hf, &action, 0, FILE_NORMAL, FILE_OPEN,
+ OPEN_ACCESS_READONLY | OPEN_SHARE_DENYREADWRITE, 0))
+ != (APIRET) 0) {
+- sprintf(buf, "Error opening: %s", argv[2]);
++ gs_sprintf(buf, "Error opening: %s", argv[2]);
+ error_message(buf);
+ return rc;
+ }
+ rc = DosSetFilePtr(hf, 0, FILE_END, &length);
+ if (rc) {
+- sprintf(buf, "failed seeking to EOF: error = %d", rc);
++ gs_sprintf(buf, "failed seeking to EOF: error = %d", rc);
+ error_message(buf);
+ return rc;
+ }
+ rc = DosSetFilePtr(hf, 0, FILE_BEGIN, &count);
+ if (rc) {
+- sprintf(buf, "failed seeking to BOF: error = %d", rc);
++ gs_sprintf(buf, "failed seeking to BOF: error = %d", rc);
+ error_message(buf);
+ return rc;
+ };
+@@ -555,14 +555,14 @@ init_bitmap(int argc, char *argv[])
+ /* allocate memory for bitmap */
+ if ((rc = DosAllocMem((PPVOID) & bbuffer, length, PAG_READ | PAG_WRITE | PAG_COMMIT))
+ != (APIRET) 0) {
+- sprintf(buf, "failed allocating memory");
++ gs_sprintf(buf, "failed allocating memory");
+ error_message(buf);
+ return rc;
+ }
+ rc = DosRead(hf, bbuffer, length, &count);
+ DosClose(hf);
+ if (rc) {
+- sprintf(buf, "failed reading bitmap, error = %u, count = %u", rc, count);
++ gs_sprintf(buf, "failed reading bitmap, error = %u, count = %u", rc, count);
+ error_message(buf);
+ return rc;
+ }
+@@ -573,7 +573,7 @@ init_bitmap(int argc, char *argv[])
+ scan_bitmap(&bitmap);
+ bitmap.valid = TRUE;
+
+- sprintf(buf, "bitmap width = %d, height = %d", bitmap.width, bitmap.height);
++ gs_sprintf(buf, "bitmap width = %d, height = %d", bitmap.width, bitmap.height);
+ message_box(buf, 0);
+ return rc;
+ }
+@@ -805,7 +805,7 @@ make_bitmap(BMAP * pbm, ULONG left, ULON
+ char buf[256];
+
+ eid = WinGetLastError(hab);
+- sprintf(buf, "make_bitmap: GpiDrawBits rc = %08x, eid = %08x", rc, eid);
++ gs_sprintf(buf, "make_bitmap: GpiDrawBits rc = %08x, eid = %08x", rc, eid);
+ message_box(buf, 0);
+ }
+ }
+diff -up ghostscript-9.07/base/gssprintf.c.gs_sprintf ghostscript-9.07/base/gssprintf.c
+--- ghostscript-9.07/base/gssprintf.c.gs_sprintf 2013-05-09 17:02:39.085447167 +0100
++++ ghostscript-9.07/base/gssprintf.c 2013-05-09 17:02:39.084447162 +0100
+@@ -0,0 +1,60 @@
++/* Copyright (C) 2001-2012 Artifex Software, Inc.
++ All Rights Reserved.
++
++ This software is provided AS-IS with no warranty, either express or
++ implied.
++
++ This software is distributed under license and may not be copied,
++ modified or distributed except as expressly authorized under the terms
++ of the license contained in the file LICENSE in this distribution.
++
++ Refer to licensing information at http://www.artifex.com or contact
++ Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
++ CA 94903, U.S.A., +1(415)492-9861, for further information.
++*/
++
++
++/* Simple interface to a sprintf/sscanf without locale */
++#include "gssprintf.h"
++#include "trio.h"
++#include "triop.h"
++#include "triodef.h"
++#include "trionan.h"
++#include "triostr.h"
++
++int
++gs_vsnprintf(char *buf, int n, const char *format, va_list ap)
++{
++ return(trio_vsnprintf(buf, n, format, ap));
++}
++
++int
++gs_snprintf(char *buf, int n, const char *format, ...)
++{
++ int len;
++ va_list ap;
++
++ va_start(ap, format);
++ len = trio_vsnprintf(buf, n, format, ap);
++ va_end(ap);
++ return len;
++}
++
++int
++gs_vsprintf(char *buf, const char *format, va_list ap)
++{
++ return(trio_vsprintf(buf, format, ap));
++}
++
++int
++gs_sprintf(char *buf, const char *format, ...)
++{
++ int len;
++ va_list ap;
++
++ va_start(ap, format);
++ len = trio_vsprintf(buf, format, ap);
++ va_end(ap);
++
++ return(len);
++}
+diff -up ghostscript-9.07/base/gssprintf.h.gs_sprintf ghostscript-9.07/base/gssprintf.h
+--- ghostscript-9.07/base/gssprintf.h.gs_sprintf 2013-05-09 17:02:39.085447167 +0100
++++ ghostscript-9.07/base/gssprintf.h 2013-05-09 17:02:39.085447167 +0100
+@@ -0,0 +1,33 @@
++/* Copyright (C) 2001-2012 Artifex Software, Inc.
++ All Rights Reserved.
++
++ This software is provided AS-IS with no warranty, either express or
++ implied.
++
++ This software is distributed under license and may not be copied,
++ modified or distributed except as expressly authorized under the terms
++ of the license contained in the file LICENSE in this distribution.
++
++ Refer to licensing information at http://www.artifex.com or contact
++ Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
++ CA 94903, U.S.A., +1(415)492-9861, for further information.
++*/
++
++#ifndef gssprintf_INCLUDED
++# define gssprintf_INCLUDED
++
++#include <stdarg.h>
++
++int
++gs_vsnprintf(char *zBuf, int n, const char *zFormat, va_list ap);
++
++int
++gs_snprintf(char *zBuf, int n, const char *zFormat, ...);
++
++int
++gs_vsprintf(char *zBuf, const char *zFormat, va_list ap);
++
++int
++gs_sprintf(char *zBuf, const char *zFormat, ...);
++
++#endif
+diff -up ghostscript-9.07/base/gxblend1.c.gs_sprintf ghostscript-9.07/base/gxblend1.c
+--- ghostscript-9.07/base/gxblend1.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxblend1.c 2013-05-09 17:02:39.085447167 +0100
+@@ -643,7 +643,7 @@ dump_planar_rgba(gs_memory_t *mem, const
+ info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
+
+ /* add comment */
+- sprintf(software_text, "%s %d.%02d", gs_product,
++ gs_sprintf(software_text, "%s %d.%02d", gs_product,
+ (int)(gs_revision / 100), (int)(gs_revision % 100));
+ text_png.compression = -1; /* uncompressed */
+ text_png.key = (char *)software_key; /* not const, unfortunately */
+diff -up ghostscript-9.07/base/gxblend.c.gs_sprintf ghostscript-9.07/base/gxblend.c
+--- ghostscript-9.07/base/gxblend.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxblend.c 2013-05-09 17:02:39.085447167 +0100
+@@ -1573,7 +1573,7 @@ dump_raw_buffer(int num_rows, int width,
+ /* FIXME: GRAY + ALPHA + SHAPE + TAGS will be interpreted as RGB + ALPHA */
+ if ((n_chan == 2) || (n_chan == 3)) {
+ int x;
+- sprintf(full_file_name,"%02d)%s.pam",global_index,filename);
++ gs_sprintf(full_file_name,"%02d)%s.pam",global_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fprintf(fid, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 4\nMAXVAL 255\nTUPLTYPE GRAYSCALE_ALPHA\nENDHDR\n",
+ width, num_rows);
+@@ -1583,7 +1583,7 @@ dump_raw_buffer(int num_rows, int width,
+ fputc(Buffer[z*plane_stride + y*rowstride + x], fid);
+ fclose(fid);
+ if (n_chan == 3) {
+- sprintf(full_file_name,"%02d)%s_shape.pam",global_index,filename);
++ gs_sprintf(full_file_name,"%02d)%s_shape.pam",global_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fprintf(fid, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 1\nMAXVAL 255\nTUPLTYPE GRAYSCALE\nENDHDR\n",
+ width, num_rows);
+@@ -1595,7 +1595,7 @@ dump_raw_buffer(int num_rows, int width,
+ }
+ if ((n_chan == 4) || (n_chan == 5) || (n_chan == 6)) {
+ int x;
+- sprintf(full_file_name,"%02d)%s.pam",global_index,filename);
++ gs_sprintf(full_file_name,"%02d)%s.pam",global_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fprintf(fid, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 4\nMAXVAL 255\nTUPLTYPE RGB_ALPHA\nENDHDR\n",
+ width, num_rows);
+@@ -1605,7 +1605,7 @@ dump_raw_buffer(int num_rows, int width,
+ fputc(Buffer[z*plane_stride + y*rowstride + x], fid);
+ fclose(fid);
+ if (n_chan > 4) {
+- sprintf(full_file_name,"%02d)%s_shape.pam",global_index,filename);
++ gs_sprintf(full_file_name,"%02d)%s_shape.pam",global_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fprintf(fid, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 1\nMAXVAL 255\nTUPLTYPE GRAYSCALE\nENDHDR\n",
+ width, num_rows);
+@@ -1615,7 +1615,7 @@ dump_raw_buffer(int num_rows, int width,
+ fclose(fid);
+ }
+ if (n_chan == 6) {
+- sprintf(full_file_name,"%02d)%s_tags.pam",global_index,filename);
++ gs_sprintf(full_file_name,"%02d)%s_tags.pam",global_index,filename);
+ fid = fopen(full_file_name,"wb");
+ fprintf(fid, "P7\nWIDTH %d\nHEIGHT %d\nDEPTH 1\nMAXVAL 255\nTUPLTYPE GRAYSCALE\nENDHDR\n",
+ width, num_rows);
+@@ -1628,7 +1628,7 @@ dump_raw_buffer(int num_rows, int width,
+ }
+ #endif
+ max_bands = ( n_chan < 57 ? n_chan : 56); /* Photoshop handles at most 56 bands */
+- sprintf(full_file_name,"%02d)%s_%dx%dx%d.raw",global_index,filename,width,num_rows,max_bands);
++ gs_sprintf(full_file_name,"%02d)%s_%dx%dx%d.raw",global_index,filename,width,num_rows,max_bands);
+ fid = fopen(full_file_name,"wb");
+
+ for (z = 0; z < max_bands; ++z) {
+diff -up ghostscript-9.07/base/gxclmem.c.gs_sprintf ghostscript-9.07/base/gxclmem.c
+--- ghostscript-9.07/base/gxclmem.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxclmem.c 2013-05-09 17:02:39.086447171 +0100
+@@ -401,7 +401,7 @@ memfile_fopen(char fname[gp_file_name_si
+
+ /* Return the address of this memfile as a string for use in future clist_fopen calls */
+ fname[0] = 0xff; /* a flag that this is a memfile name */
+- sprintf(fname+1, "%p", f);
++ gs_sprintf(fname+1, "%p", f);
+
+ #ifdef DEBUG
+ tot_compressed = 0;
+diff -up ghostscript-9.07/base/gxhintn.c.gs_sprintf ghostscript-9.07/base/gxhintn.c
+--- ghostscript-9.07/base/gxhintn.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxhintn.c 2013-05-09 17:02:39.086447171 +0100
+@@ -387,7 +387,7 @@ static void t1_hinter__paint_glyph(t1_hi
+
+ for(j = beg_pole; j <= end_pole; j++) {
+ vd_circle(X(j), Y(j), 3, RGB(0,0,255));
+- sprintf(buf, "%d", j);
++ gs_sprintf(buf, "%d", j);
+ vd_text(self->pole[j].gx, self->pole[j].gy, buf, RGB(0,0,0));
+ if (self->pole[j + 1].type == offcurve)
+ j+=2;
+diff -up ghostscript-9.07/base/gxpath.c.gs_sprintf ghostscript-9.07/base/gxpath.c
+--- ghostscript-9.07/base/gxpath.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxpath.c 2013-05-09 17:02:39.086447171 +0100
+@@ -1035,7 +1035,7 @@ gx_print_segment(const gs_memory_t *mem,
+ double py = fixed2float(pseg->pt.y);
+ char out[80];
+
+- sprintf(out, "0x%lx<0x%lx,0x%lx>:%u",
++ gs_sprintf(out, "0x%lx<0x%lx,0x%lx>:%u",
+ (ulong) pseg, (ulong) pseg->prev, (ulong) pseg->next, pseg->notes);
+ switch (pseg->type) {
+ case s_start:{
+diff -up ghostscript-9.07/base/gxpcmap.c.gs_sprintf ghostscript-9.07/base/gxpcmap.c
+--- ghostscript-9.07/base/gxpcmap.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/gxpcmap.c 2013-05-09 17:02:39.087447175 +0100
+@@ -1147,10 +1147,10 @@ dump_raw_pattern(int height, int width,
+ is_planar = dev_proc(mdev, dev_spec_op)(mdev, gxdso_is_native_planar, NULL, 0) > 0;
+ max_bands = ( n_chan < 57 ? n_chan : 56); /* Photoshop handles at most 56 bands */
+ if (is_planar) {
+- sprintf(full_file_name,"%d)PATTERN_PLANE_%dx%dx%d.raw",global_pat_index,
++ gs_sprintf(full_file_name,"%d)PATTERN_PLANE_%dx%dx%d.raw",global_pat_index,
+ width,height,max_bands);
+ } else {
+- sprintf(full_file_name,"%d)PATTERN_CHUNK_%dx%dx%d.raw",global_pat_index,
++ gs_sprintf(full_file_name,"%d)PATTERN_CHUNK_%dx%dx%d.raw",global_pat_index,
+ width,height,max_bands);
+ }
+ fid = fopen(full_file_name,"wb");
+diff -up ghostscript-9.07/base/lib.mak.gs_sprintf ghostscript-9.07/base/lib.mak
+--- ghostscript-9.07/base/lib.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/lib.mak 2013-05-09 17:02:39.088447180 +0100
+@@ -98,6 +98,9 @@ std_h=$(GLSRC)std.h $(arch_h) $(stdpre_h
+
+ vmsmath_h=$(GLSRC)vmsmath.h
+
++# declare here for use by string__h
++gssprintf_h=$(GLSRC)gssprintf.h
++
+ dos__h=$(GLSRC)dos_.h
+ ctype__h=$(GLSRC)ctype_.h $(std_h)
+ dirent__h=$(GLSRC)dirent_.h $(std_h) $(gconfig__h)
+@@ -110,7 +113,7 @@ math__h=$(GLSRC)math_.h $(std_h) $(vmsma
+ memory__h=$(GLSRC)memory_.h $(std_h)
+ setjmp__h=$(GLSRC)setjmp_.h
+ stat__h=$(GLSRC)stat_.h $(std_h)
+-stdio__h=$(GLSRC)stdio_.h $(std_h)
++stdio__h=$(GLSRC)stdio_.h $(std_h) $(gssprintf_h)
+ string__h=$(GLSRC)string_.h $(std_h)
+ time__h=$(GLSRC)time_.h $(std_h) $(gconfig__h)
+ unistd__h=$(GLSRC)unistd_.h $(std_h)
+@@ -151,6 +154,7 @@ gx_h=$(GLSRC)gx.h $(stdio__h) $(gdebug_h
+ $(gsio_h) $(gsmemory_h) $(gstypes_h) $(gserrors_h)
+ gxsync_h=$(GLSRC)gxsync.h $(gpsync_h) $(gsmemory_h)
+ gxclthrd_h=$(GLSRC)gxclthrd.h $(gxsync_h)
++
+ # Out of order
+ gsmemlok_h=$(GLSRC)gsmemlok.h $(gsmemory_h) $(gxsync_h)
+ gsnotify_h=$(GLSRC)gsnotify.h $(gsstype_h)
+@@ -320,6 +324,10 @@ $(AUX)gsutil.$(OBJ) : $(GLSRC)gsutil.c $
+ $(gsrect_h) $(gsuid_h) $(gsutil_h) $(gzstate_h) $(gxdcolor_h) $(MAKEDIRS)
+ $(GLCCAUX) $(AUXO_)gsutil.$(OBJ) $(C_) $(GLSRC)gsutil.c
+
++$(GLOBJ)gssprintf.$(OBJ) : $(GLSRC)gssprintf.c $(gssprintf_h) $(triodef_h) $(trio_h) \
++$(triop_h) $(triostr_h) $(trionan_h)
++ $(GLCC) $(I_)$(TRIOSRCDIR)$(_I) $(GLO_)gssprintf.$(OBJ) $(C_) $(GLSRC)gssprintf.c
++
+ # MD5 digest
+ md5_h=$(GLSRC)md5.h
+ # We have to use a slightly different compilation approach in order to
+@@ -1309,7 +1317,7 @@ LIB10s=$(GLOBJ)gsmalloc.$(OBJ) $(GLOBJ)m
+ LIB11s=$(GLOBJ)gsmemory.$(OBJ) $(GLOBJ)gsmemret.$(OBJ) $(GLOBJ)gsmisc.$(OBJ) $(GLOBJ)gsnotify.$(OBJ) $(GLOBJ)gslibctx.$(OBJ)
+ LIB12s=$(GLOBJ)gspaint.$(OBJ) $(GLOBJ)gsparam.$(OBJ) $(GLOBJ)gspath.$(OBJ)
+ LIB13s=$(GLOBJ)gsserial.$(OBJ) $(GLOBJ)gsstate.$(OBJ) $(GLOBJ)gstext.$(OBJ)\
+- $(GLOBJ)gsutil.$(OBJ)
++ $(GLOBJ)gsutil.$(OBJ) $(TRIOOBJS) $(GLOBJ)gssprintf.$(OBJ)
+ LIB1x=$(GLOBJ)gxacpath.$(OBJ) $(GLOBJ)gxbcache.$(OBJ) $(GLOBJ)gxccache.$(OBJ)
+ LIB2x=$(GLOBJ)gxccman.$(OBJ) $(GLOBJ)gxchar.$(OBJ) $(GLOBJ)gxcht.$(OBJ)
+ LIB3x=$(GLOBJ)gxclip.$(OBJ) $(GLOBJ)gxcmap.$(OBJ) $(GLOBJ)gxcpath.$(OBJ)
+diff -up ghostscript-9.07/base/md5main.c.gs_sprintf ghostscript-9.07/base/md5main.c
+--- ghostscript-9.07/base/md5main.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/md5main.c 2013-05-09 17:02:39.088447180 +0100
+@@ -87,7 +87,7 @@ do_test(void)
+ gs_md5_append(&state, (const gs_md5_byte_t *)test[i], strlen(test[i]));
+ gs_md5_finish(&state, digest);
+ for (di = 0; di < 16; ++di)
+- sprintf(hex_output + di * 2, "%02x", digest[di]);
++ gs_sprintf(hex_output + di * 2, "%02x", digest[di]);
+ if (strcmp(hex_output, test[i + 1])) {
+ printf("MD5 (\"%s\") = ", test[i]);
+ puts(hex_output);
+diff -up ghostscript-9.07/base/mkromfs.c.gs_sprintf ghostscript-9.07/base/mkromfs.c
+--- ghostscript-9.07/base/mkromfs.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/mkromfs.c 2013-05-09 17:02:39.088447180 +0100
+@@ -64,6 +64,8 @@
+ *
+ */
+
++/* prevent gp.h redefining sprintf */
++#define sprintf sprintf
+ #include "stdpre.h"
+ #include "stdint_.h"
+ #include "time_.h"
+diff -up ghostscript-9.07/base/sdcparam.c.gs_sprintf ghostscript-9.07/base/sdcparam.c
+--- ghostscript-9.07/base/sdcparam.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/sdcparam.c 2013-05-09 17:02:39.088447180 +0100
+@@ -200,7 +200,7 @@ s_DCT_get_quantization_tables(gs_param_l
+ gs_param_string str;
+ gs_param_float_array fa;
+
+- sprintf(key, "%d", i);
++ gs_sprintf(key, "%d", i);
+ if (QFactor == 1.0) {
+ code = quant_param_string(&str, DCTSIZE2,
+ table_ptrs[comp_info[i].quant_tbl_no]->quantval,
+@@ -474,7 +474,7 @@ s_DCT_put_quantization_tables(gs_param_l
+ char istr[5]; /* i converted to string key */
+ UINT16 values[DCTSIZE2];
+
+- sprintf(istr, "%d", i);
++ gs_sprintf(istr, "%d", i);
+ code = quant_params(quant_tables.list, istr, DCTSIZE2, values,
+ pdct->QFactor);
+ if (code < 0)
+@@ -566,7 +566,7 @@ s_DCT_put_huffman_tables(gs_param_list *
+ UINT8 counts[16], values[256];
+
+ /* Collect the Huffman parameters. */
+- sprintf(istr, "%d", i);
++ gs_sprintf(istr, "%d", i);
+ code = s_DCT_byte_params(huff_tables.list, istr, 0, 16, counts);
+ if (code < 0)
+ return code;
+diff -up ghostscript-9.07/base/sjbig2.c.gs_sprintf ghostscript-9.07/base/sjbig2.c
+--- ghostscript-9.07/base/sjbig2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/sjbig2.c 2013-05-09 17:02:39.089447184 +0100
+@@ -65,7 +65,7 @@ s_jbig2decode_error(void *error_callback
+ default: type = "unknown message:"; break;;
+ }
+ if (seg_idx == -1) segment[0] = '\0';
+- else sprintf(segment, "(segment 0x%02x)", seg_idx);
++ else gs_sprintf(segment, "(segment 0x%02x)", seg_idx);
+
+ if (state)
+ {
+diff -up ghostscript-9.07/base/spprint.c.gs_sprintf ghostscript-9.07/base/spprint.c
+--- ghostscript-9.07/base/spprint.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/spprint.c 2013-05-09 17:02:39.089447184 +0100
+@@ -83,7 +83,7 @@ pprintd1(stream * s, const char *format,
+ if (*fp == 0 || fp[1] != 'd') /* shouldn't happen! */
+ lprintf1("Bad format in pprintd1: %s\n", format);
+ #endif
+- sprintf(str, "%d", v);
++ gs_sprintf(str, "%d", v);
+ pputs_short(s, str);
+ return pprintf_scan(s, fp + 2);
+ }
+@@ -115,12 +115,12 @@ pprintg1(stream * s, const char *format,
+ if (*fp == 0 || fp[1] != 'g') /* shouldn't happen! */
+ lprintf1("Bad format in pprintg: %s\n", format);
+ #endif
+- sprintf(str, "%f", 1.5);
++ gs_sprintf(str, "%f", 1.5);
+ dot = str[1]; /* locale-dependent */
+- sprintf(str, "%g", v);
++ gs_sprintf(str, "%g", v);
+ if (strchr(str, 'e')) {
+ /* Bad news. Try again using f-format. */
+- sprintf(str, (fabs(v) > 1 ? "%1.1f" : "%1.8f"), v);
++ gs_sprintf(str, (fabs(v) > 1 ? "%1.1f" : "%1.8f"), v);
+ }
+ /* Juggling locales isn't thread-safe. Posix me harder. */
+ if (dot != '.') {
+@@ -165,7 +165,7 @@ pprintld1(stream * s, const char *format
+ if (*fp == 0 || fp[1] != 'l' || fp[2] != 'd') /* shouldn't happen! */
+ lprintf1("Bad format in pprintld: %s\n", format);
+ #endif
+- sprintf(str, "%ld", v);
++ gs_sprintf(str, "%ld", v);
+ pputs_short(s, str);
+ return pprintf_scan(s, fp + 3);
+ }
+diff -up ghostscript-9.07/base/trio.mak.gs_sprintf ghostscript-9.07/base/trio.mak
+--- ghostscript-9.07/base/trio.mak.gs_sprintf 2013-05-09 17:02:39.089447184 +0100
++++ ghostscript-9.07/base/trio.mak 2013-05-09 17:02:39.089447184 +0100
+@@ -0,0 +1,57 @@
++# Copyright (C) 2001-2012 Artifex Software, Inc.
++# All Rights Reserved.
++#
++# This software is provided AS-IS with no warranty, either express or
++# implied.
++#
++# This software is distributed under license and may not be copied,
++# modified or distributed except as expressly authorized under the terms
++# of the license contained in the file LICENSE in this distribution.
++#
++# Refer to licensing information at http://www.artifex.com or contact
++# Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael,
++# CA 94903, U.S.A., +1(415)492-9861, for further information.
++#
++# makefile for trio - locale-less s(n)printf/s(n)canf
++#
++# Users of this makefile must define the following:
++# TRIO_CFLAGS - Compiler flags for building the source,
++# TRIOSRCDIR - the expat source top-level directory,
++# TIOOBJDIR - directory for object files.
++
++# Define the name of this makefile
++TRIO_MAK=$(GLSRCDIR)$(D)trio.mak
++
++# local aliases
++TRIOSRC=$(TRIOSRCDIR)$(D)
++TRIOOBJ=$(TRIOOBJDIR)$(D)
++TRIOO_=$(O_)$(TRIOOBJ)
++
++TRIOCFLAGS=$(CFLAGS) $(TRIO_CFLAGS) $(D_)TRIO_EMBED_STRING$(_D) $(D_)TRIO_FEATURE_CLOSURE=0$(_D) \
++$(D_)TRIO_FEATURE_DYNAMICSTRING=0$(_D) $(D_)TRIO_MINIMAL=0$(_D) \
++$(D_)TRIO_FEATURE_USER_DEFINED=0$(_D) $(D_)TRIO_EXTENSION=0$(_D)\
++$(D_)TRIO_FUNC_TO_FLOAT$(_D) $(I_)$(TRIOSRCDIR)$(_I) \
++$(D_)TRIO_MALLOC=no_malloc$(_D) $(D_)TRIO_REALLOC=no_realloc$(_D) $(D_)TRIO_FREE=no_free$(_D)
++
++
++# NB: we can't use the normal $(CC_) here because msvccmd.mak
++# adds /Za which conflicts with the trio source.
++TRIOCC=$(CC) $(TRIOCFLAGS)
++
++TRIOOBJS=$(TRIOOBJ)triostr.$(OBJ) $(TRIOOBJ)trio.$(OBJ) $(TRIOOBJ)trionan.$(OBJ)
++
++triodef_h=$(TRIOSRC)triodef.h
++trio_h=$(TRIOSRC)trio.h
++triop_h=$(TRIOSRC)triop.h
++triostr_h=$(TRIOSRC)triostr.h
++
++TRIOHDRS=$(triodef_h) $(trio_h) $(triop_h) $(triostr_h)
++
++$(TRIOOBJ)triostr.$(OBJ) : $(TRIOSRC)triostr.c $(TRIOHDRS) $(TRIO_MAK)
++ $(TRIOCC) $(TRIOO_)triostr.$(OBJ) $(C_) $(TRIOSRC)triostr.c
++
++$(TRIOOBJ)trio.$(OBJ) : $(TRIOSRC)trio.c $(TRIOHDRS) $(TRIO_MAK)
++ $(TRIOCC) $(TRIOO_)trio.$(OBJ) $(C_) $(TRIOSRC)trio.c
++
++$(TRIOOBJ)trionan.$(OBJ) : $(TRIOSRC)trionan.c $(TRIOHDRS) $(TRIO_MAK)
++ $(TRIOCC) $(TRIOO_)trionan.$(OBJ) $(C_) $(TRIOSRC)trionan.c
+diff -up ghostscript-9.07/base/unixansi.mak.gs_sprintf ghostscript-9.07/base/unixansi.mak
+--- ghostscript-9.07/base/unixansi.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/unixansi.mak 2013-05-09 17:02:39.089447184 +0100
+@@ -152,6 +152,8 @@ TIFFPLATFORM=unix
+ TIFFCONFIG_SUFFIX=.unix
+ LIBTIFF_NAME=tiff
+
++TRIOSRCDIR=trio
++
+ # Define the directory where the zlib sources are stored.
+ # See zlib.mak for more information.
+
+@@ -392,6 +394,7 @@ CC_SHARED=$(CC_)
+
+ include $(GLSRCDIR)/unixhead.mak
+ include $(GLSRCDIR)/gs.mak
++include $(GLSRCDIR)/trio.mak
+ # psromfs.mak must precede lib.mak
+ include $(PSSRCDIR)/psromfs.mak
+ include $(GLSRCDIR)/lib.mak
+diff -up ghostscript-9.07/base/unix-gcc.mak.gs_sprintf ghostscript-9.07/base/unix-gcc.mak
+--- ghostscript-9.07/base/unix-gcc.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/unix-gcc.mak 2013-05-09 17:02:39.089447184 +0100
+@@ -165,6 +165,8 @@ TIFFPLATFORM=unix
+ TIFFCONFIG_SUFFIX=.unix
+ LIBTIFF_NAME=tiff
+
++TRIOSRCDIR=trio
++
+ # Define the directory where the zlib sources are stored.
+ # See zlib.mak for more information.
+
+@@ -461,6 +463,7 @@ MAKEDIRSTOP=directories
+
+ include $(GLSRCDIR)/unixhead.mak
+ include $(GLSRCDIR)/gs.mak
++include $(GLSRCDIR)/trio.mak
+ # psromfs.mak must precede lib.mak
+ include $(PSSRCDIR)/psromfs.mak
+ include $(GLSRCDIR)/lib.mak
+diff -up ghostscript-9.07/base/winlib.mak.gs_sprintf ghostscript-9.07/base/winlib.mak
+--- ghostscript-9.07/base/winlib.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/winlib.mak 2013-05-09 17:02:39.090447188 +0100
+@@ -133,6 +133,7 @@ BEGINFILES=$(GLGENDIR)\ccf32.tr\
+ #!include $(COMMONDIR)/pcdefs.mak
+ #!include $(COMMONDIR)/generic.mak
+ !include $(GLSRCDIR)\gs.mak
++!include $(GLSRCDIR)\trio.mak
+ !include $(GLSRCDIR)\lib.mak
+ !include $(GLSRCDIR)\freetype.mak
+ !if "$(UFST_BRIDGE)"=="1"
+diff -up ghostscript-9.07/base/wrfont.c.gs_sprintf ghostscript-9.07/base/wrfont.c
+--- ghostscript-9.07/base/wrfont.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/wrfont.c 2013-05-09 17:02:39.090447188 +0100
+@@ -72,7 +72,7 @@ WRF_wfloat(WRF_output * a_output, double
+ {
+ char buffer[32];
+
+- sprintf(buffer, "%f", a_float);
++ gs_sprintf(buffer, "%f", a_float);
+ WRF_wstring(a_output, buffer);
+ }
+
+@@ -81,6 +81,6 @@ WRF_wint(WRF_output * a_output, long a_i
+ {
+ char buffer[32];
+
+- sprintf(buffer, "%ld", a_int);
++ gs_sprintf(buffer, "%ld", a_int);
+ WRF_wstring(a_output, buffer);
+ }
+diff -up ghostscript-9.07/base/write_t1.c.gs_sprintf ghostscript-9.07/base/write_t1.c
+--- ghostscript-9.07/base/write_t1.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/write_t1.c 2013-05-09 17:02:39.090447188 +0100
+@@ -300,7 +300,7 @@ write_main_dictionary(gs_fapi_font * a_f
+ if (x)
+ entries++;
+
+- sprintf(Buffer, "/FontInfo %d dict dup begin\n", entries);
++ gs_sprintf(Buffer, "/FontInfo %d dict dup begin\n", entries);
+ WRF_wstring(a_output, Buffer);
+ x = a_fapi_font->get_word(a_fapi_font,
+ gs_fapi_font_feature_BlendAxisTypes_count,
+@@ -330,7 +330,7 @@ write_main_dictionary(gs_fapi_font * a_f
+ x1 = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_BlendDesignPositionsArrayValue,
+ i * 8 + j);
+- sprintf(Buffer, "%f ", x1);
++ gs_sprintf(Buffer, "%f ", x1);
+ WRF_wstring(a_output, Buffer);
+ }
+ WRF_wstring(a_output, "]");
+@@ -352,12 +352,12 @@ write_main_dictionary(gs_fapi_font * a_f
+ x1 = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_BlendDesignPositionsArrayValue,
+ i * 64 + j * 64);
+- sprintf(Buffer, "%f ", x1);
++ gs_sprintf(Buffer, "%f ", x1);
+ WRF_wstring(a_output, Buffer);
+ x1 = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_BlendDesignPositionsArrayValue,
+ i * 64 + j * 64 + 1);
+- sprintf(Buffer, "%f ", x1);
++ gs_sprintf(Buffer, "%f ", x1);
+ WRF_wstring(a_output, Buffer);
+ WRF_wstring(a_output, "]");
+ }
+@@ -397,7 +397,7 @@ write_main_dictionary(gs_fapi_font * a_f
+ for (i = 0; i < x; i++) {
+ x1 = a_fapi_font->get_float(a_fapi_font,
+ gs_fapi_font_feature_WeightVector, i);
+- sprintf(Buffer, "%f ", x1);
++ gs_sprintf(Buffer, "%f ", x1);
+ WRF_wstring(a_output, Buffer);
+ }
+ WRF_wstring(a_output, "] def\n");
+diff -up ghostscript-9.07/base/write_t2.c.gs_sprintf ghostscript-9.07/base/write_t2.c
+--- ghostscript-9.07/base/write_t2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/base/write_t2.c 2013-05-09 17:02:39.090447188 +0100
+@@ -70,7 +70,7 @@ write_type2_float(WRF_output * a_output,
+ int high = true;
+ char c = 0;
+
+- sprintf(buffer, "%f", a_float);
++ gs_sprintf(buffer, "%f", a_float);
+ WRF_wbyte(a_output, 30);
+ for (;;) {
+ char n = 0;
+diff -up ghostscript-9.07/contrib/eplaser/gdevescv.c.gs_sprintf ghostscript-9.07/contrib/eplaser/gdevescv.c
+--- ghostscript-9.07/contrib/eplaser/gdevescv.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/eplaser/gdevescv.c 2013-05-09 17:02:39.091447193 +0100
+@@ -545,7 +545,7 @@ escv_vector_dopath(gx_device_vector * vd
+ y = fixed2float(vs[1]) / scale.y;
+
+ /* ¥µ¥Ö¥Ñ¥¹³«»Ï̀¿Îá p1 */
+- (void)sprintf(obuf, ESC_GS "0;%d;%dmvpG", (int)x, (int)y);
++ (void)gs_sprintf(obuf, ESC_GS "0;%d;%dmvpG", (int)x, (int)y);
+ lputs(s, obuf);
+
+ if (first)
+@@ -556,11 +556,11 @@ escv_vector_dopath(gx_device_vector * vd
+ cnt = 1;
+ for (pseg = cenum.pseg; pseg != 0 && pseg->type == s_line; cnt++, pseg = pseg->next);
+
+- (void)sprintf(obuf, ESC_GS "0;%d", cnt);
++ (void)gs_sprintf(obuf, ESC_GS "0;%d", cnt);
+ lputs(s, obuf);
+
+ do {
+- (void)sprintf(obuf, ";%d;%d",
++ (void)gs_sprintf(obuf, ";%d;%d",
+ (int)(fixed2float(vs[0]) / scale.x),
+ (int)(fixed2float(vs[1]) / scale.y));
+ lputs(s, obuf);
+@@ -577,11 +577,11 @@ escv_vector_dopath(gx_device_vector * vd
+ case gs_pe_curveto:
+ cnt = 1;
+ for (pseg = cenum.pseg; pseg != 0 && pseg->type == s_curve; cnt++, pseg = pseg->next);
+- (void)sprintf(obuf, ESC_GS "0;%d", cnt * 3);
++ (void)gs_sprintf(obuf, ESC_GS "0;%d", cnt * 3);
+ lputs(s, obuf);
+
+ do {
+- (void)sprintf(obuf, ";%d;%d;%d;%d;%d;%d",
++ (void)gs_sprintf(obuf, ";%d;%d;%d;%d;%d;%d",
+ (int)(fixed2float(vs[0]) / scale.x), (int)(fixed2float(vs[1]) / scale.y),
+ (int)(fixed2float(vs[2]) / scale.x), (int)(fixed2float(vs[3]) / scale.y),
+ (int)(fixed2float(vs[4]) / scale.x), (int)(fixed2float(vs[5]) / scale.y));
+@@ -637,7 +637,7 @@ escv_vector_dorect(gx_device_vector * vd
+
+ scale = vdev->scale;
+
+- (void)sprintf(obuf, ESC_GS "0;%d;%d;%d;%d;0;0rrpG",
++ (void)gs_sprintf(obuf, ESC_GS "0;%d;%d;%d;%d;0;0rrpG",
+ (int)(fixed2float(x0) / scale.x),
+ (int)(fixed2float(y0) / scale.y),
+ (int)(fixed2float(x1) / scale.x),
+@@ -1116,7 +1116,7 @@ escv_beginpage(gx_device_vector * vdev)
+ lputs(s, " PU=15");
+ }
+ } else if (pdev->cassetFeed) {
+- (void)sprintf(ebuf, " PU=%d", pdev->cassetFeed);
++ (void)gs_sprintf(ebuf, " PU=%d", pdev->cassetFeed);
+ lputs(s, ebuf);
+ } else {
+ lputs(s, " PU=AU");
+@@ -1146,14 +1146,14 @@ escv_beginpage(gx_device_vector * vdev)
+
+ /* lp8000c not have QT */
+ if (strcmp(pdev->dname, "lp8000c") == 0) {
+- (void)sprintf(ebuf, " QT=1 CO=%d", pdev->NumCopies);
++ (void)gs_sprintf(ebuf, " QT=1 CO=%d", pdev->NumCopies);
+ } else {
+ if (pdev->Collate) {
+ /* CO is 1, when set QT */
+- (void)sprintf(ebuf, " QT=%d CO=1", pdev->NumCopies);
++ (void)gs_sprintf(ebuf, " QT=%d CO=1", pdev->NumCopies);
+ } else {
+ /* QT is 1, when not specified QT */
+- (void)sprintf(ebuf, " QT=1 CO=%d", pdev->NumCopies);
++ (void)gs_sprintf(ebuf, " QT=1 CO=%d", pdev->NumCopies);
+ }
+ }
+ lputs(s, ebuf);
+@@ -1162,7 +1162,7 @@ escv_beginpage(gx_device_vector * vdev)
+ }
+
+ if (pdev->toner_density) {
+- (void)sprintf(ebuf, " DL=%d", pdev->toner_density);
++ (void)gs_sprintf(ebuf, " DL=%d", pdev->toner_density);
+ lputs(s, ebuf);
+ }
+
+@@ -1320,7 +1320,7 @@ escv_setlinewidth(gx_device_vector * vde
+ /* ESC/Page ¤Ç¤ÏÀ₫Éư¡¿½ªĂ¼¡¿ÀܹçÉô¤ÎÀßÄê¤Ï£±¤Ä¤Î¥³¥̃¥ó¥É¤Ë¤Ê¤Ă¤Æ¤¤¤ë¤¿¤áÊƯ»ư¤·¤Æ¤ª¤¯¡£ */
+ pdev -> lwidth = width;
+
+- (void)sprintf(obuf, ESC_GS "%d;%d;%dlwG",
++ (void)gs_sprintf(obuf, ESC_GS "%d;%d;%dlwG",
+ (int)(pdev -> lwidth),
+ (int)(pdev -> cap),
+ (int)(pdev -> join));
+@@ -1341,7 +1341,7 @@ escv_setlinecap(gx_device_vector * vdev,
+
+ if (pdev -> cap >= 3) return -1;
+
+- (void)sprintf(obuf, ESC_GS "%d;%d;%dlwG",
++ (void)gs_sprintf(obuf, ESC_GS "%d;%d;%dlwG",
+ (int)(pdev -> lwidth),
+ (int)(pdev -> cap),
+ (int)(pdev -> join));
+@@ -1372,7 +1372,7 @@ escv_setlinejoin(gx_device_vector * vdev
+ return -1;
+ }
+
+- (void)sprintf(obuf, ESC_GS "%d;%d;%dlwG",
++ (void)gs_sprintf(obuf, ESC_GS "%d;%d;%dlwG",
+ (int)(pdev -> lwidth),
+ (int)(pdev -> cap),
+ (int)(pdev -> join));
+@@ -1394,14 +1394,14 @@ escv_setmiterlimit(gx_device_vector * vd
+ if (pdev -> join != 3) {
+ /* ¶¯À©Åª¤ËÀܹçÉô»ØÄê¤̣¹Ô¤¦ */
+ pdev -> join = 3;
+- (void)sprintf(obuf, ESC_GS "%d;%d;%dlwG",
++ (void)gs_sprintf(obuf, ESC_GS "%d;%d;%dlwG",
+ (int)(pdev -> lwidth),
+ (int)(pdev -> cap),
+ (int)(pdev -> join));
+ lputs(s, obuf);
+ }
+
+- (void)sprintf(obuf, ESC_GS "1;%dmlG", (int)limit);
++ (void)gs_sprintf(obuf, ESC_GS "1;%dmlG", (int)limit);
+ lputs(s, obuf);
+
+ return 0;
+@@ -1433,7 +1433,7 @@ escv_setfillcolor(gx_device_vector * vde
+
+ if( 0 == pdev->colormode ) { /* ESC/Page (Monochrome) */
+
+- (void)sprintf(obuf, /*ESC_GS "1owE"*/ ESC_GS "0;0;100spE" ESC_GS "1;0;%ldccE" ,color);
++ (void)gs_sprintf(obuf, /*ESC_GS "1owE"*/ ESC_GS "0;0;100spE" ESC_GS "1;0;%ldccE" ,color);
+ lputs(s, obuf);
+
+ if (vdev->x_pixels_per_inch == 1200) {
+@@ -1447,7 +1447,7 @@ escv_setfillcolor(gx_device_vector * vde
+ } else { /* ESC/Page-Color */
+
+ /* ¥Ñ¥¿¡¼¥ó£Ï£Î»ØÄê¡¿¥½¥ê¥Ă¥É¥Ñ¥¿¡¼¥ó»ØÄê */
+- (void)sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE",
++ (void)gs_sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE",
+ (unsigned char)(color >> 16 & 0xff),
+ (unsigned char)(color >> 8 & 0xff),
+ (unsigned char)(color & 0xff));
+@@ -1477,7 +1477,7 @@ escv_setstrokecolor(gx_device_vector * v
+
+ pdev->current_color = color;
+
+- (void)sprintf(obuf, /*ESC_GS "1owE"*/ ESC_GS "0;0;100spE" ESC_GS "1;1;%ldccE" , color);
++ (void)gs_sprintf(obuf, /*ESC_GS "1owE"*/ ESC_GS "0;0;100spE" ESC_GS "1;1;%ldccE" , color);
+ lputs(s, obuf);
+
+ if (vdev->x_pixels_per_inch == 1200) {
+@@ -1494,7 +1494,7 @@ escv_setstrokecolor(gx_device_vector * v
+
+ pdev->current_color = color;
+ /* ¥Ñ¥¿¡¼¥ó£Ï£Î¿§»ØÄê¡¿¥½¥ê¥Ă¥É¥Ñ¥¿¡¼¥ó»ØÄê */
+- (void)sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE" ESC_GS "2;2;1;0;0cpE",
++ (void)gs_sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE" ESC_GS "2;2;1;0;0cpE",
+ (unsigned char)(color >> 16 & 0xff),
+ (unsigned char)(color >> 8 & 0xff),
+ (unsigned char)(color & 0xff));
+@@ -1538,11 +1538,11 @@ escv_setdash(gx_device_vector * vdev, co
+ if (count) {
+ if (count == 1) {
+ #if GS_VERSION_MAJOR == 5
+- (void)sprintf(obuf, ESC_GS "1;%d;%ddlG",
++ (void)gs_sprintf(obuf, ESC_GS "1;%d;%ddlG",
+ (int)(pattern[0] * scale / vdev->x_pixels_per_inch + 0.5),
+ (int)(pattern[0] * scale / vdev->x_pixels_per_inch + 0.5));
+ #else
+- (void)sprintf(obuf, ESC_GS "1;%d;%ddlG", (int) pattern[0], (int) pattern[0]);
++ (void)gs_sprintf(obuf, ESC_GS "1;%d;%ddlG", (int) pattern[0], (int) pattern[0]);
+ #endif
+ lputs(s, obuf);
+ } else {
+@@ -1554,10 +1554,10 @@ escv_setdash(gx_device_vector * vdev, co
+ lputs(s, ESC_GS "1");
+ for (i = 0; i < count; ++i) {
+ #if GS_VERSION_MAJOR == 5
+- (void)sprintf(obuf, ";%d", (int)(pattern[i] * scale / vdev->x_pixels_per_inch + 0.5));
++ (void)gs_sprintf(obuf, ";%d", (int)(pattern[i] * scale / vdev->x_pixels_per_inch + 0.5));
+
+ #else
+- (void)sprintf(obuf, ";%d", (int) pattern[i]);
++ (void)gs_sprintf(obuf, ";%d", (int) pattern[i]);
+ #endif
+ lputs(s, obuf);
+ }
+@@ -1608,7 +1608,7 @@ escv_moveto(gx_device_vector * vdev,
+ char obuf[64];
+
+ /* ¥µ¥Ö¥Ñ¥¹³«»Ï̀¿Îá */
+- (void)sprintf(obuf, ESC_GS "0;%d;%dmvpG", (int)x1, (int)y1);
++ (void)gs_sprintf(obuf, ESC_GS "0;%d;%dmvpG", (int)x1, (int)y1);
+ lputs(s, obuf);
+
+ return 0;
+@@ -1622,7 +1622,7 @@ escv_lineto(gx_device_vector * vdev,
+ gx_device_escv *pdev = (gx_device_escv *) vdev;
+ char obuf[64];
+
+- (void)sprintf(obuf, ESC_GS "0;1;%d;%dlnpG", (int)x1, (int)y1);
++ (void)gs_sprintf(obuf, ESC_GS "0;1;%d;%dlnpG", (int)x1, (int)y1);
+ lputs(s, obuf);
+ pdev->ispath = 1;
+
+@@ -1639,7 +1639,7 @@ escv_curveto(gx_device_vector * vdev, fl
+ char obuf[128];
+
+ /* ¥Ù¥¸¥§¶ÊÀ₫ */
+- (void)sprintf(obuf, ESC_GS "0;3;%d;%d;%d;%d;%d;%dbzpG",
++ (void)gs_sprintf(obuf, ESC_GS "0;3;%d;%d;%d;%d;%d;%dbzpG",
+ (int)x1, (int)y1, (int)x2, (int)y2, (int)x3, (int)y3);
+ lputs(s, obuf);
+ pdev->ispath = 1;
+@@ -2176,7 +2176,7 @@ escv_copy_mono(gx_device * dev, const by
+ if( 0 == pdev->colormode ) { /* ESC/Page (Monochrome) */
+
+ /* lputs(s, ESC_GS "1owE");*/
+- (void)sprintf(obuf, ESC_GS "1;1;%ldccE", c_color);
++ (void)gs_sprintf(obuf, ESC_GS "1;1;%ldccE", c_color);
+ lputs(s, obuf);
+
+ if (vdev->x_pixels_per_inch == 1200) {
+@@ -2263,7 +2263,7 @@ escv_copy_mono(gx_device * dev, const by
+ } else { /* ESC/Page-Color */
+
+ /* ¥Ñ¥¿¡¼¥ó£Ï£Î»ØÄê¡¿¥½¥ê¥Ă¥É¥Ñ¥¿¡¼¥ó»ØÄê */
+- (void)sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE",
++ (void)gs_sprintf(obuf, ESC_GS "1;2;3;%d;%d;%dfpE",
+ (unsigned char)(c_color >> 16 & 0xff),
+ (unsigned char)(c_color >> 8 & 0xff),
+ (unsigned char)(c_color & 0xff));
+@@ -2388,7 +2388,7 @@ escv_fill_mask(gx_device * dev,
+ if (!gx_dc_is_pure(pdcolor)) return_error(gs_error_rangecheck);
+ pdev->current_color = color;
+
+- (void)sprintf(obuf, ESC_GS "0;0;100spE" ESC_GS "1;1;%ldccE" ,color);
++ (void)gs_sprintf(obuf, ESC_GS "0;0;100spE" ESC_GS "1;1;%ldccE" ,color);
+ lputs(s, obuf);
+
+ if (vdev->x_pixels_per_inch == 1200) {
+@@ -2428,7 +2428,7 @@ escv_fill_mask(gx_device * dev,
+ memcpy(buf + i * width_bytes, data + (data_x >> 3) + i * raster, width_bytes);
+ }
+
+- (void)sprintf(obuf, ESC_GS "%d;%d;%d;%d;0db{F", num_bytes, (int)(id & VCACHE), w, h);
++ (void)gs_sprintf(obuf, ESC_GS "%d;%d;%d;%d;0db{F", num_bytes, (int)(id & VCACHE), w, h);
+ lputs(s, obuf);
+ put_bytes(s, buf, num_bytes);
+
+@@ -2436,9 +2436,9 @@ escv_fill_mask(gx_device * dev,
+ pdev -> id_cache[id & VCACHE] = id;
+ }
+
+- (void)sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
++ (void)gs_sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
+ lputs(s, obuf);
+- (void)sprintf(obuf, ESC_GS "%lddbF", id & VCACHE);
++ (void)gs_sprintf(obuf, ESC_GS "%lddbF", id & VCACHE);
+ lputs(s, obuf);
+
+ return 0;
+@@ -2603,7 +2603,7 @@ escv_begin_image(gx_device * dev,
+ if( 0 == pdev->colormode ) { /* ESC/Page (Monochrome) */
+
+ /* lputs(s, ESC_GS "1owE");*/
+- (void)sprintf(obuf, ESC_GS "1;1;%ldccE", color);
++ (void)gs_sprintf(obuf, ESC_GS "1;1;%ldccE", color);
+ lputs(s, obuf);
+
+ if (vdev->x_pixels_per_inch == 1200) {
+@@ -2908,7 +2908,7 @@ static void escv_write_begin(gx_device *
+
+ if( 0 == pdev->colormode ) { /* ESC/Page (Monochrome) */
+
+- (void)sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
++ (void)gs_sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
+ lputs(s, obuf);
+
+ comp = 10;
+@@ -2916,34 +2916,34 @@ static void escv_write_begin(gx_device *
+ if (bits == 1) {
+ if (strcmp(pdev->dname, "lp1800") == 0 ||
+ strcmp(pdev->dname, "lp9600") == 0) {
+- (void)sprintf(obuf, ESC_GS "0bcI");
++ (void)gs_sprintf(obuf, ESC_GS "0bcI");
+ }else{
+- (void)sprintf(obuf, ESC_GS "5;%d;%d;%d;%d;%dsrI", sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "5;%d;%d;%d;%d;%dsrI", sw, sh, dw, dh, roll);
+ }
+ } else if (bits == 4) {
+ if (pdev -> c4map) {
+ pdev -> c4map = FALSE;
+ }
+- (void)sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ } else if (bits == 8) {
+ if (pdev -> c8map) {
+ pdev -> c8map = FALSE;
+ }
+- (void)sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ } else {
+ /* 24 bit */
+- (void)sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "1;1;1;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ }
+
+ } else { /* ESC/Page-Color */
+
+- (void)sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
++ (void)gs_sprintf(obuf, ESC_GS "%dX" ESC_GS "%dY", x, y);
+ lputs(s, obuf);
+
+ comp = 0;
+
+ if (bits == 1) {
+- (void)sprintf(obuf, ESC_GS "2;201;1;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "2;201;1;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ } else if (bits == 4) {
+ if (pdev -> c4map) {
+ /* ¥«¥é¡¼¥̃¥Ă¥×ÅĐÏ¿ */
+@@ -2959,7 +2959,7 @@ static void escv_write_begin(gx_device *
+ gs_free_object(vdev->memory, tmp, "escv_write_begin(tmp4)");
+ pdev -> c4map = FALSE;
+ }
+- (void)sprintf(obuf, ESC_GS "2;203;2;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "2;203;2;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ } else if (bits == 8) {
+ if (pdev -> c8map) {
+ /* ¥«¥é¡¼¥̃¥Ă¥×ÅĐÏ¿ */
+@@ -2975,10 +2975,10 @@ static void escv_write_begin(gx_device *
+ gs_free_object(vdev->memory, tmp, "escv_write_begin(tmp)");
+ pdev -> c8map = FALSE;
+ }
+- (void)sprintf(obuf, ESC_GS "2;204;4;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "2;204;4;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ } else {
+ /* 24 bit */
+- (void)sprintf(obuf, ESC_GS "2;102;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
++ (void)gs_sprintf(obuf, ESC_GS "2;102;0;%d;%d;%d;%d;%d;%dscrI", comp, sw, sh, dw, dh, roll);
+ }
+
+ } /* ESC/Page-Color */
+@@ -3045,12 +3045,12 @@ static void escv_write_data(gx_device *d
+ if(bits == 1){
+ if (strcmp(pdev->dname, "lp1800") == 0 || \
+ strcmp(pdev->dname, "lp9600") == 0) {
+- (void)sprintf(obuf, ESC_GS "%d;1;%d;%d;0db{I", bsize, w, ras);
++ (void)gs_sprintf(obuf, ESC_GS "%d;1;%d;%d;0db{I", bsize, w, ras);
+ }else{
+- (void)sprintf(obuf, ESC_GS "%d;%du{I", bsize, ras);
++ (void)gs_sprintf(obuf, ESC_GS "%d;%du{I", bsize, ras);
+ }
+ }else{
+- (void)sprintf(obuf, ESC_GS "%d;%dcu{I", bsize, ras);
++ (void)gs_sprintf(obuf, ESC_GS "%d;%dcu{I", bsize, ras);
+ }
+ lputs(s, obuf);
+
+@@ -3077,7 +3077,7 @@ static void escv_write_data(gx_device *d
+ buf = tmps;
+ }
+
+- (void)sprintf(obuf, ESC_GS "%d;%dcu{I", bsize, ras);
++ (void)gs_sprintf(obuf, ESC_GS "%d;%dcu{I", bsize, ras);
+ lputs(s, obuf);
+ put_bytes(s, buf, bsize);
+
+diff -up ghostscript-9.07/contrib/gdevcd8.c.gs_sprintf ghostscript-9.07/contrib/gdevcd8.c
+--- ghostscript-9.07/contrib/gdevcd8.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/gdevcd8.c 2013-05-09 17:02:39.092447197 +0100
+@@ -2439,7 +2439,7 @@ do_gcr(int bytecount, byte * inbyte, con
+ #if 0
+ if ((*cyan > 0) && (*magenta > 0) && (*yellow > 0))
+ {
+- sprintf(output, "%3d %3d %3d %3d - ", *cyan, *magenta, *yellow, *black);
++ gs_sprintf(output, "%3d %3d %3d %3d - ", *cyan, *magenta, *yellow, *black);
+ debug_print_string(output, strlen(output));
+ }
+ #endif /* 0 */
+@@ -2486,7 +2486,7 @@ do_gcr(int bytecount, byte * inbyte, con
+ #if 0
+ if (ucr > 0)
+ {
+- sprintf(output, "%3d %3d %3d %3d - %5d\n", *cyan, *magenta, *yellow, *black, ucr);
++ gs_sprintf(output, "%3d %3d %3d %3d - %5d\n", *cyan, *magenta, *yellow, *black, ucr);
+ debug_print_string(output, strlen(output));
+ }
+ #endif /* 0 */
+diff -up ghostscript-9.07/contrib/gdevdj9.c.gs_sprintf ghostscript-9.07/contrib/gdevdj9.c
+--- ghostscript-9.07/contrib/gdevdj9.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/gdevdj9.c 2013-05-09 17:02:39.092447197 +0100
+@@ -2563,7 +2563,7 @@ static int cdj970_write_header (gx_devic
+
+ memset (startbuffer, 0, 1260);
+
+- sprintf (&(startbuffer[600]), "\033E\033%%-12345X@PJL JOB NAME = \"GHOST BY RENE HARSCH\"\n@PJL ENTER LANGUAGE=PCL3GUI\n");
++ gs_sprintf (&(startbuffer[600]), "\033E\033%%-12345X@PJL JOB NAME = \"GHOST BY RENE HARSCH\"\n@PJL ENTER LANGUAGE=PCL3GUI\n");
+
+ fwrite (startbuffer, sizeof(char), 678, prn_stream);
+
+diff -up ghostscript-9.07/contrib/gdevhl12.c.gs_sprintf ghostscript-9.07/contrib/gdevhl12.c
+--- ghostscript-9.07/contrib/gdevhl12.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/gdevhl12.c 2013-05-09 17:02:39.092447197 +0100
+@@ -662,7 +662,7 @@ hl1250_print_page_copies(gx_device_print
+ (-120, 0) compared to the one in the ljet4 driver (-180, 36)
+ (X, Y coordinates here are specified in 1/720-inch units). */
+
+- sprintf(page_init, "\033&l-120U\033*r0F\033&u%dD%s", y_dpi, tray_pcl);
++ gs_sprintf(page_init, "\033&l-120U\033*r0F\033&u%dD%s", y_dpi, tray_pcl);
+ return dljet_mono_print_page_copies(pdev, prn_stream, num_copies,
+ y_dpi, PCL_LJ4_FEATURES,
+ page_init, page_init, false);
+diff -up ghostscript-9.07/contrib/gdevxes.c.gs_sprintf ghostscript-9.07/contrib/gdevxes.c
+--- ghostscript-9.07/contrib/gdevxes.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/gdevxes.c 2013-05-09 17:02:39.092447197 +0100
+@@ -173,7 +173,7 @@ sixel_print_page(gx_device_printer *pdev
+ if ( tmp[l] == last ) {
+ count++;
+ if (count==32767) {
+- run[sprintf(run, "%d", count)]='\0';
++ run[gs_sprintf(run, "%d", count)]='\0';
+ for (t=run; *t; t++)fputc( *t, prn_stream );
+ fputc( last, prn_stream );
+ last = '\0';
+@@ -186,7 +186,7 @@ sixel_print_page(gx_device_printer *pdev
+ case 0: break;
+ case 1: fputc( last, prn_stream );
+ break;
+- default:run[sprintf(run, "%d", count)]='\0';
++ default:run[gs_sprintf(run, "%d", count)]='\0';
+ for (t=run; *t; t++) fputc( *t, prn_stream );
+ fputc( last, prn_stream );
+ break;
+@@ -203,7 +203,7 @@ sixel_print_page(gx_device_printer *pdev
+ case 0: break;
+ case 1: fputc( last, prn_stream );
+ break;
+- default:run[sprintf(run, "%d", count)]='\0';
++ default:run[gs_sprintf(run, "%d", count)]='\0';
+ for (t=run; *t; t++) fputc( *t, prn_stream );
+ fputc( last, prn_stream );
+ break;
+diff -up ghostscript-9.07/contrib/gomni.c.gs_sprintf ghostscript-9.07/contrib/gomni.c
+--- ghostscript-9.07/contrib/gomni.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/gomni.c 2013-05-09 17:02:39.093447201 +0100
+@@ -790,7 +790,7 @@ SetupDevice (gx_device *pgxdev, gs_param
+ "Devicestring");
+ if (pszDeviceLib)
+ {
+- sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cOmnilib);
++ gs_sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cOmnilib);
+
+ pDev->hmodOmni = g_module_open (pszDeviceLib, (GModuleFlags)0);
+
+@@ -817,7 +817,7 @@ SetupDevice (gx_device *pgxdev, gs_param
+ "Devicestring");
+ if (pszDeviceLib)
+ {
+- sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cOmnilib);
++ gs_sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cOmnilib);
+
+ pModule = g_module_open (pszDeviceLib, (GModuleFlags)0);
+
+@@ -1053,7 +1053,7 @@ SetupDevice (gx_device *pgxdev, gs_param
+
+ if (pszDeviceLib)
+ {
+- sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cDialogName);
++ gs_sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cDialogName);
+
+ if (fDebugOutput) dprintf1 ("attempting to load - %s\n", pszDeviceLib);
+
+@@ -1079,7 +1079,7 @@ SetupDevice (gx_device *pgxdev, gs_param
+
+ if (pszDeviceLib)
+ {
+- sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cDialogName);
++ gs_sprintf (pszDeviceLib, "%s%s", apszLibraryPaths[i], cDialogName);
+
+ pModule = g_module_open (pszDeviceLib, (GModuleFlags)0);
+
+diff -up ghostscript-9.07/contrib/japanese/dviprlib.c.gs_sprintf ghostscript-9.07/contrib/japanese/dviprlib.c
+--- ghostscript-9.07/contrib/japanese/dviprlib.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/dviprlib.c 2013-05-09 17:02:39.093447201 +0100
+@@ -106,7 +106,7 @@ dviprt_read_S_cfg(dviprt_cfg_t *pcfg,dvi
+ goto not_cfg;
+ pcfg->version = rbuf[2] | ((uint)rbuf[3] << 8);
+ if (pcfg->version > CFG_VERSION) {
+- sprintf(dviprt_message_buffer,
++ gs_sprintf(dviprt_message_buffer,
+ "This *.CFG file is too new version(ver.%u).\n",pcfg->version);
+ dviprt_printcfgerror(pinfo,dviprt_message_buffer,-1);
+ return CFG_ERROR_OTHER;
+@@ -129,7 +129,7 @@ dviprt_read_S_cfg(dviprt_cfg_t *pcfg,dvi
+ if (n >= CFG_INTEGER_TYPE_COUNT) {
+ ptype = "integer";
+ unknown_no:
+- sprintf(dviprt_message_buffer,
++ gs_sprintf(dviprt_message_buffer,
+ "Unknown %s type value No.%d is found.\n",ptype,n);
+ dviprt_printcfgerror(pinfo,dviprt_message_buffer,-1);
+ return CFG_ERROR_OTHER;
+@@ -346,7 +346,7 @@ dviprt_read_QR_cfg(dviprt_cfg_t *pcfg,dv
+ ptr++;
+ break;
+ default:
+- sprintf(dviprt_message_buffer,"Unknown format %02X",type);
++ gs_sprintf(dviprt_message_buffer,"Unknown format %02X",type);
+ dviprt_printcfgerror(pinfo,dviprt_message_buffer,-1);
+ goto ex_func;
+ }
+@@ -587,7 +587,7 @@ dviprt_readsrc(char *fname,dviprt_cfg_t
+ while (*pbuf && isspace(*pbuf)) pbuf++;
+ if (pitem->spec_f) {
+ dviprt_printcfgerror(&info,NULL,0);
+- sprintf(dviprt_message_buffer,
++ gs_sprintf(dviprt_message_buffer,
+ "Item `%s' is specified twice.\n",pitem->name);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ code = CFG_ERROR_SYNTAX;
+@@ -691,7 +691,7 @@ dviprt_readsrc(char *fname,dviprt_cfg_t
+ code = 0;
+ for (pitem = dviprt_items;pitem->name;pitem++) {
+ if (!pitem->spec_f && pitem->req_f) {
+- sprintf(dviprt_message_buffer,"%s not found.\n",pitem->name);
++ gs_sprintf(dviprt_message_buffer,"%s not found.\n",pitem->name);
+ dviprt_printcfgerror(&info,dviprt_message_buffer,-1);
+ code++;
+ }
+@@ -749,14 +749,14 @@ dviprt_readsrc(char *fname,dviprt_cfg_t
+
+ for (pitem = dviprt_items;pitem->type>=0;pitem++) {
+ if (pitem->spec_f == 0) {
+- sprintf(dviprt_message_buffer,": %s:",pitem->name);
++ gs_sprintf(dviprt_message_buffer,": %s:",pitem->name);
+ switch (pitem->type) {
+ case T_INTEGER:
+ if (pcfg->integer[pitem->no] >= 0) {
+ uint v = pcfg->integer[pitem->no];
+ dviprt_printmessage(fname,-1);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+- sprintf(dviprt_message_buffer," %d\n",v);
++ gs_sprintf(dviprt_message_buffer," %d\n",v);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ }
+ break;
+@@ -802,7 +802,7 @@ dviprt_set_integer(dviprt_cfg_item_t *pi
+ out_of_range:
+ dviprt_printtokenerror(pinfo,buf,strlen(buf),ERROR_OUTOFRANGE);
+ dviprt_printcfgerror(pinfo,"",-1);
+- sprintf(dviprt_message_buffer,
++ gs_sprintf(dviprt_message_buffer,
+ "(%u <= value <= %u).\n",(uint)min,(uint)max);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ return CFG_ERROR_RANGE;
+@@ -1108,10 +1108,10 @@ dviprt_set_rpexpr(dviprt_cfg_item_t *pit
+ pitem->no != CFG_AFTER_BIT_IMAGE) {
+ unavailable_value:
+ dviprt_printcfgerror(pinfo,"",-1);
+- sprintf(dviprt_message_buffer,"Variable `%c' in ",(int)*pbuf);
++ gs_sprintf(dviprt_message_buffer,"Variable `%c' in ",(int)*pbuf);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ dviprt_printmessage(pbuf,(int)(pend-pbuf));
+- sprintf(dviprt_message_buffer," cannot be used in %s.\n",pitem->name);
++ gs_sprintf(dviprt_message_buffer," cannot be used in %s.\n",pitem->name);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ return CFG_ERROR_RANGE;
+ }
+@@ -1144,7 +1144,7 @@ dviprt_set_rpexpr(dviprt_cfg_item_t *pit
+ case '^': op = CFG_OP_XOR; break;
+ default:
+ dviprt_printcfgerror(pinfo,NULL,0);
+- sprintf(dviprt_message_buffer,"Unknown operator %c in ",(int)*pbuf);
++ gs_sprintf(dviprt_message_buffer,"Unknown operator %c in ",(int)*pbuf);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ dviprt_printmessage(pbuf,(int)(pend-pbuf));
+ dviprt_printmessage(".\n",-1);
+@@ -1520,7 +1520,7 @@ dviprt_printcfgerrorheader(dviprt_cfg_i
+ dviprt_printmessage(fn,-1);
+ dviprt_printmessage(": ",-1);
+ if (pinfo->line_no>0) {
+- sprintf(dviprt_message_buffer,"%d: ",pinfo->line_no);
++ gs_sprintf(dviprt_message_buffer,"%d: ",pinfo->line_no);
+ dviprt_printmessage(dviprt_message_buffer,-1);
+ }
+ }
+@@ -2210,9 +2210,9 @@ dviprt_output_expr(dviprt_print *pprint,
+ if (cols == 0)
+ strcpy(fmtbuf,"%");
+ else
+- sprintf(fmtbuf,"%%0%d",cols);
++ gs_sprintf(fmtbuf,"%%0%d",cols);
+ strcat(fmtbuf,f);
+- sprintf(valbuf,fmtbuf,stack[stack_p]);
++ gs_sprintf(valbuf,fmtbuf,stack[stack_p]);
+ cols = strlen(valbuf);
+ if (fmt & CFG_FMT_ISO_BIT)
+ valbuf[cols-1] |= 0x10;
+diff -up ghostscript-9.07/contrib/japanese/gdevfmlbp.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevfmlbp.c
+--- ghostscript-9.07/contrib/japanese/gdevfmlbp.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevfmlbp.c 2013-05-09 17:02:39.094447206 +0100
+@@ -112,7 +112,7 @@ gdev_fmlbp_paper_size(gx_device_printer
+ height_inches = t;
+ landscape = 1;
+ }
+- sprintf(paper, "%s;%d",
++ gs_sprintf(paper, "%s;%d",
+ (height_inches >= 15.9 ? PAPER_SIZE_A3 :
+ height_inches >= 11.8 ?
+ (width_inches >= 9.2 ? PAPER_SIZE_B4 : PAPER_SIZE_LEGAL) :
+@@ -136,7 +136,7 @@ static void goto_xy(FILE *prn_stream,int
+
+ fputc(CEX,prn_stream);
+ fputc('"',prn_stream);
+- sprintf(buff,"%d",x);
++ gs_sprintf((char *)buff,"%d",x);
+ while (*p)
+ {
+ if (!*(p+1)) fputc((*p)+0x30,prn_stream);
+@@ -146,7 +146,7 @@ static void goto_xy(FILE *prn_stream,int
+ }
+
+ p=buff;
+- sprintf(buff,"%d",y);
++ gs_sprintf((char *)buff,"%d",y);
+ while (*p)
+ {
+ if (!*(p+1)) fputc((*p)+0x40,prn_stream);
+diff -up ghostscript-9.07/contrib/japanese/gdevfmpr.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevfmpr.c
+--- ghostscript-9.07/contrib/japanese/gdevfmpr.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevfmpr.c 2013-05-09 17:02:39.094447206 +0100
+@@ -184,13 +184,13 @@ fmpr_print_page(gx_device_printer *pdev,
+ }
+ out_beg -= (out_beg - out) % bytes_per_column;
+
+- sprintf(prn_buf, "\033[%da",
++ gs_sprintf(prn_buf, "\033[%da",
+ (out_beg - out) / bytes_per_column);
+ prn_puts(pdev, prn_buf);
+
+ /* Dot graphics */
+ size = out_end - out_beg + 1;
+- sprintf(prn_buf, "\033Q%d W", size / bytes_per_column);
++ gs_sprintf(prn_buf, "\033Q%d W", size / bytes_per_column);
+ prn_puts(pdev, prn_buf);
+ prn_write(pdev, out_beg, size);
+
+diff -up ghostscript-9.07/contrib/japanese/gdevj100.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevj100.c
+--- ghostscript-9.07/contrib/japanese/gdevj100.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevj100.c 2013-05-09 17:02:39.094447206 +0100
+@@ -128,12 +128,12 @@ jj100_print_page(gx_device_printer *pdev
+
+ /* Vertical tab to the appropriate position. */
+ while(skip > 15) {
+- sprintf(prn_buf, "\037%c", 16 + 15);
++ gs_sprintf(prn_buf, "\037%c", 16 + 15);
+ fputs(prn_buf, pdev->file);
+ skip -= 15;
+ }
+ if(skip > 0) {
+- sprintf(prn_buf, "\037%c", 16 + skip);
++ gs_sprintf(prn_buf, "\037%c", 16 + skip);
+ fputs(prn_buf, pdev->file);
+ }
+
+@@ -170,13 +170,13 @@ jj100_print_page(gx_device_printer *pdev
+ out_beg -= (out_beg - out) % (bytes_per_column * 2);
+
+ /* Dot addressing */
+- sprintf(prn_buf, "\033F%04d",
++ gs_sprintf(prn_buf, "\033F%04d",
+ (out_beg - out) / bytes_per_column / 2);
+ fputs(prn_buf, pdev->file);
+
+ /* Dot graphics */
+ size = out_end - out_beg + 1;
+- sprintf(prn_buf, "\034bP,48,%04d.", size / bytes_per_column);
++ gs_sprintf(prn_buf, "\034bP,48,%04d.", size / bytes_per_column);
+ fputs(prn_buf, pdev->file);
+ fwrite(out_beg, 1, size, pdev->file);
+
+diff -up ghostscript-9.07/contrib/japanese/gdevlbp3.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevlbp3.c
+--- ghostscript-9.07/contrib/japanese/gdevlbp3.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevlbp3.c 2013-05-09 17:02:39.094447206 +0100
+@@ -81,7 +81,7 @@ lbp310PrintPage(gx_device_printer *pDev,
+ DataSize = CompressImage(pDev, &Box, fp, "\x1b[1;%d;%d;11;%d;.r");
+
+ /* ----==== Set size ====---- */
+- sprintf(Buf, "0%ld", DataSize);
++ gs_sprintf((char *)Buf, "0%ld", DataSize);
+ i = (DataSize+strlen(Buf)+1)&1;
+ /* ----==== escape to LIPS ====---- */
+ fprintf(fp, "\x80%s\x80\x80\x80\x80\x0c",Buf+i);
+@@ -110,7 +110,7 @@ lbp320PrintPage(gx_device_printer *pDev,
+ DataSize = CompressImage(pDev, &Box, fp, "\x1b[1;%d;%d;11;%d;.&r");
+
+ /* ----==== Set size ====---- */
+- sprintf(Buf, "000%ld", DataSize);
++ gs_sprintf((char *)Buf, "000%ld", DataSize);
+ i = (DataSize+strlen(Buf)+1)&3;
+ /* ----==== escape to LIPS ====---- */
+ fprintf(fp, "\x80%s\x80\x80\x80\x80\x0c",Buf+i);
+diff -up ghostscript-9.07/contrib/japanese/gdevmag.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevmag.c
+--- ghostscript-9.07/contrib/japanese/gdevmag.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevmag.c 2013-05-09 17:02:39.094447206 +0100
+@@ -137,8 +137,8 @@ mag_print_page(gx_device_printer *pdev,
+
+ if (user == 0) user = "Unknown";
+ strcpy(check,magic);
+- sprintf(check+strlen(check),"%-18s",user);
+- sprintf(check+31," Ghostscript with %s driver\x1a", pdev->dname);
++ gs_sprintf(check+strlen(check),"%-18s",user);
++ gs_sprintf(check+31," Ghostscript with %s driver\x1a", pdev->dname);
+
+ /* check sizes of flag and pixel data. */
+ pixel_bytes = 0;
+diff -up ghostscript-9.07/contrib/japanese/gdevnpdl.c.gs_sprintf ghostscript-9.07/contrib/japanese/gdevnpdl.c
+--- ghostscript-9.07/contrib/japanese/gdevnpdl.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/japanese/gdevnpdl.c 2013-05-09 17:02:39.094447206 +0100
+@@ -592,31 +592,31 @@ npdl_print_page_copies(gx_device_printer
+ /* Check paper size */
+ switch (npdl_get_paper_size((gx_device *) pdev)) {
+ case PAPER_SIZE_POSTCARD:
+- sprintf(paper_command, "PC");
++ gs_sprintf(paper_command, "PC");
+ break;
+ case PAPER_SIZE_A5:
+- sprintf(paper_command, "A5");
++ gs_sprintf(paper_command, "A5");
+ break;
+ case PAPER_SIZE_A4:
+- sprintf(paper_command, "A4");
++ gs_sprintf(paper_command, "A4");
+ break;
+ case PAPER_SIZE_A3:
+- sprintf(paper_command, "A3");
++ gs_sprintf(paper_command, "A3");
+ break;
+ case PAPER_SIZE_B5:
+- sprintf(paper_command, "B5");
++ gs_sprintf(paper_command, "B5");
+ break;
+ case PAPER_SIZE_B4:
+- sprintf(paper_command, "B4");
++ gs_sprintf(paper_command, "B4");
+ break;
+ case PAPER_SIZE_LETTER:
+- sprintf(paper_command, "LT");
++ gs_sprintf(paper_command, "LT");
+ break;
+ case PAPER_SIZE_ENV4:
+- sprintf(paper_command, "ENV4");
++ gs_sprintf(paper_command, "ENV4");
+ break;
+ case PAPER_SIZE_BPOSTCARD:
+- sprintf(paper_command, "UPPC");
++ gs_sprintf(paper_command, "UPPC");
+ break;
+ }
+
+diff -up ghostscript-9.07/contrib/lips4/gdevl4r.c.gs_sprintf ghostscript-9.07/contrib/lips4/gdevl4r.c
+--- ghostscript-9.07/contrib/lips4/gdevl4r.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/lips4/gdevl4r.c 2013-05-09 17:02:39.095447210 +0100
+@@ -775,9 +775,9 @@ lips2p_image_out(gx_device_printer * pde
+ move_cap(pdev, prn_stream, x, y);
+
+ Len = lips_mode3format_encode(lprn->TmpBuf, lprn->CompBuf, width / 8 * height);
+- sprintf(raw_str, "%c%d;%d;%d.r", LIPS_CSI,
++ gs_sprintf(raw_str, "%c%d;%d;%d.r", LIPS_CSI,
+ width / 8 * height, width / 8, (int)pdev->x_pixels_per_inch);
+- sprintf(comp_str, "%c%d;%d;%d;9;%d.r", LIPS_CSI,
++ gs_sprintf(comp_str, "%c%d;%d;%d;9;%d.r", LIPS_CSI,
+ Len, width / 8, (int)pdev->x_pixels_per_inch, height);
+
+ if (Len < width / 8 * height - strlen(comp_str) + strlen(raw_str)) {
+@@ -806,11 +806,11 @@ lips4_image_out(gx_device_printer * pdev
+ Len = lips_packbits_encode(lprn->TmpBuf, lprn->CompBuf, width / 8 * height);
+ Len_rle = lips_rle_encode(lprn->TmpBuf, lprn->CompBuf2, width / 8 * height);
+
+- sprintf(raw_str, "%c%d;%d;%d.r", LIPS_CSI,
++ gs_sprintf(raw_str, "%c%d;%d;%d.r", LIPS_CSI,
+ width / 8 * height, width / 8, (int)pdev->x_pixels_per_inch);
+
+ if (Len < Len_rle) {
+- sprintf(comp_str, "%c%d;%d;%d;11;%d.r", LIPS_CSI,
++ gs_sprintf(comp_str, "%c%d;%d;%d;11;%d.r", LIPS_CSI,
+ Len, width / 8, (int)pdev->x_pixels_per_inch, height);
+ if (Len < width / 8 * height - strlen(comp_str) + strlen(raw_str)) {
+ fprintf(prn_stream, "%s", comp_str);
+@@ -821,7 +821,7 @@ lips4_image_out(gx_device_printer * pdev
+ fwrite(lprn->TmpBuf, 1, width / 8 * height, prn_stream);
+ }
+ } else {
+- sprintf(comp_str, "%c%d;%d;%d;10;%d.r", LIPS_CSI,
++ gs_sprintf(comp_str, "%c%d;%d;%d;10;%d.r", LIPS_CSI,
+ Len, width / 8, (int)pdev->x_pixels_per_inch, height);
+ if (Len_rle < width / 8 * height - strlen(comp_str) + strlen(raw_str)) {
+ fprintf(prn_stream, "%s", comp_str);
+diff -up ghostscript-9.07/contrib/lips4/gdevl4v.c.gs_sprintf ghostscript-9.07/contrib/lips4/gdevl4v.c
+--- ghostscript-9.07/contrib/lips4/gdevl4v.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/lips4/gdevl4v.c 2013-05-09 17:02:39.095447210 +0100
+@@ -459,17 +459,17 @@ lips4v_set_cap(gx_device * dev, int x, i
+ int dy = y - pdev->prev_y;
+
+ if (dx > 0) {
+- sprintf(cap, "%c%da", LIPS_CSI, dx);
++ gs_sprintf(cap, "%c%da", LIPS_CSI, dx);
+ lputs(s, cap);
+ } else if (dx < 0) {
+- sprintf(cap, "%c%dj", LIPS_CSI, -dx);
++ gs_sprintf(cap, "%c%dj", LIPS_CSI, -dx);
+ lputs(s, cap);
+ }
+ if (dy > 0) {
+- sprintf(cap, "%c%dk", LIPS_CSI, dy);
++ gs_sprintf(cap, "%c%dk", LIPS_CSI, dy);
+ lputs(s, cap);
+ } else if (dy < 0) {
+- sprintf(cap, "%c%de", LIPS_CSI, -dy);
++ gs_sprintf(cap, "%c%de", LIPS_CSI, -dy);
+ lputs(s, cap);
+ }
+ pdev->prev_x = x;
+@@ -544,10 +544,10 @@ lips4v_copy_text_char(gx_device * dev, c
+ if (download) {
+ if (ccode % 128 == 0 && ccode == pdev->count) {
+ /* ʸ»ú¥»¥Ă¥ÈÅĐÏ¿Êä½ờ¿Îá */
+- sprintf(cset_sub, "%c%dx%c", LIPS_DCS, ccode / 128, LIPS_ST);
++ gs_sprintf(cset_sub, "%c%dx%c", LIPS_DCS, ccode / 128, LIPS_ST);
+ lputs(s, cset_sub);
+ /* ʸ»ú¥»¥Ă¥ÈÅĐÏ¿̀¿Îá */
+- sprintf(cset,
++ gs_sprintf(cset,
+ "%c%d;1;0;0;3840;8;400;100;0;0;200;%d;%d;0;0;;;;;%d.p",
+ LIPS_CSI,
+ size + 9, cell_length, /* Cell Width */
+@@ -556,7 +556,7 @@ lips4v_copy_text_char(gx_device * dev, c
+ lputs(s, cset);
+ } else {
+ /* 1ʸ»úÅĐÏ¿̀¿Îá */
+- sprintf(cset,
++ gs_sprintf(cset,
+ "%c%d;%d;8;%d.q", LIPS_CSI,
+ size + 9, ccode / 128, (int)dev->x_pixels_per_inch);
+ lputs(s, cset);
+@@ -575,13 +575,13 @@ lips4v_copy_text_char(gx_device * dev, c
+ /* ʸ»ú¥»¥Ă¥È¡¦¥¢¥µ¥¤¥óÈÖ¹æÁªẬ̀¿Îá2 */
+ if (download) {
+ if (pdev->current_font != ccode / 128) {
+- sprintf(cset_number, "%c%d%%v", LIPS_CSI, ccode / 128);
++ gs_sprintf(cset_number, "%c%d%%v", LIPS_CSI, ccode / 128);
+ lputs(s, cset_number);
+ pdev->current_font = ccode / 128;
+ }
+ } else {
+ if (pdev->current_font != ccode / 128) {
+- sprintf(cset_number, "%c%d%%v", LIPS_CSI, ccode / 128);
++ gs_sprintf(cset_number, "%c%d%%v", LIPS_CSI, ccode / 128);
+ lputs(s, cset_number);
+ pdev->current_font = ccode / 128;
+ }
+@@ -592,7 +592,7 @@ lips4v_copy_text_char(gx_device * dev, c
+ if (pdev->color_info.depth == 8) {
+ sputc(s, LIPS_CSI);
+ lputs(s, "?10;2;");
+- sprintf(text_color, "%d",
++ gs_sprintf(text_color, "%d",
+ (int)(pdev->color_info.max_gray - pdev->current_color));
+ } else {
+ int r = (pdev->current_color >> 16) * 1000.0 / 255.0;
+@@ -601,7 +601,7 @@ lips4v_copy_text_char(gx_device * dev, c
+
+ sputc(s, LIPS_CSI);
+ lputs(s, "?10;;");
+- sprintf(text_color, "%d;%d;%d", r, g, b);
++ gs_sprintf(text_color, "%d;%d;%d", r, g, b);
+ }
+ lputs(s, text_color);
+ lputs(s, "%p");
+@@ -717,16 +717,16 @@ lips4v_beginpage(gx_device_vector * vdev
+ lputs(s, "@PJL SET RESOLUTION = QUICK\n");
+ lputs(s, l4v_file_header2);
+ if (pdev->toner_density) {
+- sprintf(toner_d, "@PJL SET TONER-DENSITY=%d\n",
++ gs_sprintf(toner_d, "@PJL SET TONER-DENSITY=%d\n",
+ pdev->toner_density);
+ lputs(s, toner_d);
+ }
+ if (pdev->toner_saving_set) {
+ lputs(s, "@PJL SET TONER-SAVING=");
+ if (pdev->toner_saving)
+- sprintf(toner_s, "ON\n");
++ gs_sprintf(toner_s, "ON\n");
+ else
+- sprintf(toner_s, "OFF\n");
++ gs_sprintf(toner_s, "OFF\n");
+ lputs(s, toner_s);
+ }
+ lputs(s, l4v_file_header3);
+@@ -737,7 +737,7 @@ lips4v_beginpage(gx_device_vector * vdev
+ return_error(gs_error_rangecheck);
+
+ /* set reaolution (dpi) */
+- sprintf(dpi_char, "%d", dpi);
++ gs_sprintf(dpi_char, "%d", dpi);
+ lputs(s, dpi_char);
+
+ if (pdev->color_info.depth == 8)
+@@ -746,7 +746,7 @@ lips4v_beginpage(gx_device_vector * vdev
+ lputs(s, l4vcolor_file_header);
+
+ /* username */
+- sprintf(username, "%c2y%s%c", LIPS_DCS, pdev->Username, LIPS_ST);
++ gs_sprintf(username, "%c2y%s%c", LIPS_DCS, pdev->Username, LIPS_ST);
+ lputs(s, username);
+ }
+ if (strcmp(pdev->mediaType, "PlainPaper") == 0) {
+@@ -773,13 +773,13 @@ lips4v_beginpage(gx_device_vector * vdev
+ && strcmp(pdev->mediaType, LIPS_MEDIATYPE_DEFAULT) != 0)) {
+ /* Use ManualFeed */
+ if (pdev->prev_feed_mode != 10) {
+- sprintf(feedmode, "%c10q", LIPS_CSI);
++ gs_sprintf(feedmode, "%c10q", LIPS_CSI);
+ lputs(s, feedmode);
+ pdev->prev_feed_mode = 10;
+ }
+ } else {
+ if (pdev->prev_feed_mode != pdev->cassetFeed) {
+- sprintf(feedmode, "%c%dq", LIPS_CSI, pdev->cassetFeed);
++ gs_sprintf(feedmode, "%c%dq", LIPS_CSI, pdev->cassetFeed);
+ lputs(s, feedmode);
+ pdev->prev_feed_mode = pdev->cassetFeed;
+ }
+@@ -791,10 +791,10 @@ lips4v_beginpage(gx_device_vector * vdev
+ if (pdev->prev_paper_size != paper_size) {
+ if (paper_size == USER_SIZE) {
+ /* modified by shige 06/27 2003
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+@@ -802,27 +802,27 @@ lips4v_beginpage(gx_device_vector * vdev
+ lputs(s, paper);
+ } else if (paper_size == USER_SIZE + LANDSCAPE) {
+ /* modified by shige 06/27 2003
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ gs_sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ gs_sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+ LIPS_WIDTH_MAX_720 : (height * 10));
+ lputs(s, paper);
+ } else {
+- sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
++ gs_sprintf(paper, "%c%dp", LIPS_CSI, paper_size);
+ lputs(s, paper);
+ }
+ } else if (paper_size == USER_SIZE) {
+ if (pdev->prev_paper_width != width ||
+ pdev->prev_paper_height != height)
+ /* modified by shige 06/27 2003
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+ /* modified by shige 11/09 2003
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (height * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (height * 10),
+ (width * 10 > LIPS_WIDTH_MAX_720)?
+@@ -832,10 +832,10 @@ lips4v_beginpage(gx_device_vector * vdev
+ if (pdev->prev_paper_width != width ||
+ pdev->prev_paper_height != height)
+ /* modified by shige 06/27 2003
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
++ gs_sprintf(paper, "%c81;%d;%dp", LIPS_CSI, height * 10, width * 10); */
+ /* modified by shige 11/09 2003
+- sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
+- sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
++ gs_sprintf(paper, "%c81;%d;%dp", LIPS_CSI, width * 10, height * 10); */
++ gs_sprintf(paper, "%c80;%d;%dp", LIPS_CSI,
+ (width * 10 > LIPS_HEIGHT_MAX_720)?
+ LIPS_HEIGHT_MAX_720 : (width * 10),
+ (height * 10 > LIPS_WIDTH_MAX_720)?
+@@ -847,32 +847,32 @@ lips4v_beginpage(gx_device_vector * vdev
+ pdev->prev_paper_height = height;
+
+ if (pdev->faceup) {
+- sprintf(faceup_char, "%c11;12;12~", LIPS_CSI);
++ gs_sprintf(faceup_char, "%c11;12;12~", LIPS_CSI);
+ lputs(s, faceup_char);
+ }
+ /* N-up Printing Setting */
+ if (pdev->first_page) {
+ if (pdev->nup != 1) {
+- sprintf(nup_char, "%c%d1;;%do", LIPS_CSI, pdev->nup, paper_size);
++ gs_sprintf(nup_char, "%c%d1;;%do", LIPS_CSI, pdev->nup, paper_size);
+ lputs(s, nup_char);
+ }
+ }
+ /* Duplex Setting */
+ if (dupset && dup) {
+ if (pdev->prev_duplex_mode == 0 || pdev->prev_duplex_mode == 1) {
+- sprintf(duplex_char, "%c2;#x", LIPS_CSI); /* duplex */
++ gs_sprintf(duplex_char, "%c2;#x", LIPS_CSI); /* duplex */
+ lputs(s, duplex_char);
+ if (!tum) {
+ /* long edge binding */
+ if (pdev->prev_duplex_mode != 2) {
+- sprintf(tumble_char, "%c0;#w", LIPS_CSI);
++ gs_sprintf(tumble_char, "%c0;#w", LIPS_CSI);
+ lputs(s, tumble_char);
+ }
+ pdev->prev_duplex_mode = 2;
+ } else {
+ /* short edge binding */
+ if (pdev->prev_duplex_mode != 3) {
+- sprintf(tumble_char, "%c2;#w", LIPS_CSI);
++ gs_sprintf(tumble_char, "%c2;#w", LIPS_CSI);
+ lputs(s, tumble_char);
+ }
+ pdev->prev_duplex_mode = 3;
+@@ -880,7 +880,7 @@ lips4v_beginpage(gx_device_vector * vdev
+ }
+ } else if (dupset && !dup) {
+ if (pdev->prev_duplex_mode != 1) {
+- sprintf(duplex_char, "%c0;#x", LIPS_CSI); /* simplex */
++ gs_sprintf(duplex_char, "%c0;#x", LIPS_CSI); /* simplex */
+ lputs(s, duplex_char);
+ }
+ pdev->prev_duplex_mode = 1;
+@@ -893,9 +893,9 @@ lips4v_beginpage(gx_device_vector * vdev
+ /* size unit (dpi) */
+ sputc(s, LIPS_CSI);
+ lputs(s, "11h");
+- sprintf(unit, "%c?7;%d I", LIPS_CSI, (int)pdev->x_pixels_per_inch);
++ gs_sprintf(unit, "%c?7;%d I", LIPS_CSI, (int)pdev->x_pixels_per_inch);
+ lputs(s, unit);
+- sprintf(page_header, "%c[0&}#%c", LIPS_ESC, LIPS_IS2);
++ gs_sprintf(page_header, "%c[0&}#%c", LIPS_ESC, LIPS_IS2);
+ lputs(s, page_header); /* vector mode */
+
+ lputs(s, "!0"); /* size unit (dpi) */
+@@ -904,10 +904,10 @@ lips4v_beginpage(gx_device_vector * vdev
+ sputc(s, LIPS_IS2);
+
+ if (pdev->color_info.depth == 8) {
+- sprintf(l4vmono_page_header, "!13%c$%c", LIPS_IS2, LIPS_IS2);
++ gs_sprintf(l4vmono_page_header, "!13%c$%c", LIPS_IS2, LIPS_IS2);
+ lputs(s, l4vmono_page_header);
+ } else {
+- sprintf(l4vcolor_page_header, "!11%c$%c", LIPS_IS2, LIPS_IS2);
++ gs_sprintf(l4vcolor_page_header, "!11%c$%c", LIPS_IS2, LIPS_IS2);
+ lputs(s, l4vcolor_page_header);
+ }
+
+@@ -1010,7 +1010,7 @@ lips4v_setlinecap(gx_device_vector * vde
+ break;
+ }
+ /* À₫Ă¼·Á¾ơ»ØÄề¿Îá */
+- sprintf(c, "}E%d%c", line_cap, LIPS_IS2);
++ gs_sprintf(c, "}E%d%c", line_cap, LIPS_IS2);
+ lputs(s, c);
+
+ pdev->linecap = cap;
+@@ -1050,7 +1050,7 @@ lips4v_setlinejoin(gx_device_vector * vd
+ break;
+ }
+
+- sprintf(c, "}F%d%c", lips_join, LIPS_IS2);
++ gs_sprintf(c, "}F%d%c", lips_join, LIPS_IS2);
+ lputs(s, c);
+
+ return 0;
+@@ -1486,7 +1486,7 @@ lips4v_output_page(gx_device * dev, int
+ if (num_copies > 255)
+ num_copies = 255;
+ if (pdev->prev_num_copies != num_copies) {
+- sprintf(str, "%c%dv", LIPS_CSI, num_copies);
++ gs_sprintf(str, "%c%dv", LIPS_CSI, num_copies);
+ lputs(s, str);
+ pdev->prev_num_copies = num_copies;
+ }
+diff -up ghostscript-9.07/contrib/pcl3/src/gdevpcl3.c.gs_sprintf ghostscript-9.07/contrib/pcl3/src/gdevpcl3.c
+--- ghostscript-9.07/contrib/pcl3/src/gdevpcl3.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/contrib/pcl3/src/gdevpcl3.c 2013-05-09 17:02:39.095447210 +0100
+@@ -302,7 +302,7 @@ static void get_string_for_int(int in_va
+ else {
+ static char buffer[22]; /* Must be sufficient for an 'int' */
+
+- sprintf(buffer, "%d", in_value);
++ gs_sprintf(buffer, "%d", in_value);
+ assert(strlen(buffer) < sizeof(buffer));
+ out_value->data = (const byte *)buffer;
+ out_value->size = strlen(buffer);
+diff -up ghostscript-9.07/cups/gdevcups.c.gs_sprintf ghostscript-9.07/cups/gdevcups.c
+--- ghostscript-9.07/cups/gdevcups.c.gs_sprintf 2013-05-09 17:02:39.048447008 +0100
++++ ghostscript-9.07/cups/gdevcups.c 2013-05-09 17:02:39.096447214 +0100
+@@ -60,6 +60,9 @@
+ * cups_print_planar() - Print a page of planar pixels.
+ */
+
++/* prevent gp.h redefining fopen */
++#define sprintf sprintf
++
+ /*
+ * Include necessary headers...
+ */
+diff -up ghostscript-9.07/base/Makefile.in.gs_sprintf ghostscript-9.07/base/Makefile.in
+--- ghostscript-9.07/base/Makefile.in.gs_sprintf 2013-05-09 17:02:46.190477741 +0100
++++ ghostscript-9.07/base/Makefile.in 2013-05-09 17:03:22.377633508 +0100
+@@ -302,6 +302,8 @@ LCUPSISRCDIR=cups
+ CUPS_CC=$(CC)
+
+
++TRIOSRCDIR=trio
++
+ # Define how to build the library archives. (These are not used in any
+ # standard configuration.)
+
+@@ -583,6 +585,7 @@ MAKEDIRSTOP=
+ INSTALL_CONTRIB=@INSTALL_CONTRIB@
+ include $(GLSRCDIR)/unixhead.mak
+ include $(GLSRCDIR)/gs.mak
++include $(GLSRCDIR)/trio.mak
+ # psromfs.mak must precede lib.mak
+ include $(PSSRCDIR)/psromfs.mak
+ include $(GLSRCDIR)/lib.mak
+diff -up ghostscript-9.07/psi/dmmain.c.gs_sprintf ghostscript-9.07/psi/dmmain.c
+--- ghostscript-9.07/psi/dmmain.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dmmain.c 2013-05-09 17:02:39.096447214 +0100
+@@ -644,8 +644,8 @@ void main(void)
+ argv[1] = ddevice;
+ argv[2] = dformat;
+
+- sprintf(ddevice, "-sDEVICE=display");
+- sprintf(dformat, "-dDisplayFormat=%d", display_format);
++ gs_sprintf(ddevice, "-sDEVICE=display");
++ gs_sprintf(dformat, "-dDisplayFormat=%d", display_format);
+
+ /* Run Ghostscript */
+ if (gsapi_new_instance(&instance, NULL) < 0)
+diff -up ghostscript-9.07/psi/dpmain.c.gs_sprintf ghostscript-9.07/psi/dpmain.c
+--- ghostscript-9.07/psi/dpmain.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dpmain.c 2013-05-09 17:02:39.097447219 +0100
+@@ -100,9 +100,9 @@ gs_free_dll(void)
+ return TRUE;
+ rc = DosFreeModule(gsdll.hmodule);
+ if (rc) {
+- sprintf(buf, "DosFreeModule returns %d\n", rc);
++ gs_sprintf(buf, "DosFreeModule returns %d\n", rc);
+ gs_addmess(buf);
+- sprintf(buf, "Unloaded GSDLL\n\n");
++ gs_sprintf(buf, "Unloaded GSDLL\n\n");
+ gs_addmess(buf);
+ }
+ return !rc;
+@@ -150,7 +150,7 @@ gs_load_dll(void)
+ dllname = szDllName;
+ #ifdef DEBUG
+ if (debug) {
+- sprintf(buf, "Trying to load %s\n", dllname);
++ gs_sprintf(buf, "Trying to load %s\n", dllname);
+ gs_addmess(buf);
+ }
+ #endif
+@@ -172,7 +172,7 @@ gs_load_dll(void)
+ dllname = fullname;
+ #ifdef DEBUG
+ if (debug) {
+- sprintf(buf, "Trying to load %s\n", dllname);
++ gs_sprintf(buf, "Trying to load %s\n", dllname);
+ gs_addmess(buf);
+ }
+ #endif
+@@ -183,7 +183,7 @@ gs_load_dll(void)
+ dllname = shortname;
+ #ifdef DEBUG
+ if (debug) {
+- sprintf(buf, "Trying to load %s\n", dllname);
++ gs_sprintf(buf, "Trying to load %s\n", dllname);
+ gs_addmess(buf);
+ }
+ #endif
+@@ -197,21 +197,21 @@ gs_load_dll(void)
+ #endif
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_REVISION",
+ (PFN *) (&gsdll.revision))) != 0) {
+- sprintf(buf, "Can't find GSAPI_REVISION, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_REVISION, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ /* check DLL version */
+ if (gsdll.revision(&rv, sizeof(rv)) != 0) {
+- sprintf(buf, "Unable to identify Ghostscript DLL revision - it must be newer than needed.\n");
++ gs_sprintf(buf, "Unable to identify Ghostscript DLL revision - it must be newer than needed.\n");
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+
+ if (rv.revision != GS_REVISION) {
+- sprintf(buf, "Wrong version of DLL found.\n Found version %ld\n Need version %ld\n", rv.revision, (long)GS_REVISION);
++ gs_sprintf(buf, "Wrong version of DLL found.\n Found version %ld\n Need version %ld\n", rv.revision, (long)GS_REVISION);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+@@ -219,35 +219,35 @@ gs_load_dll(void)
+
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_NEW_INSTANCE",
+ (PFN *) (&gsdll.new_instance))) != 0) {
+- sprintf(buf, "Can't find GSAPI_NEW_INSTANCE, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_NEW_INSTANCE, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_DELETE_INSTANCE",
+ (PFN *) (&gsdll.delete_instance))) != 0) {
+- sprintf(buf, "Can't find GSAPI_DELETE_INSTANCE, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_DELETE_INSTANCE, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_SET_STDIO",
+ (PFN *) (&gsdll.set_stdio))) != 0) {
+- sprintf(buf, "Can't find GSAPI_SET_STDIO, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_SET_STDIO, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_SET_DISPLAY_CALLBACK",
+ (PFN *) (&gsdll.set_display_callback))) != 0) {
+- sprintf(buf, "Can't find GSAPI_SET_DISPLAY_CALLBACK, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_SET_DISPLAY_CALLBACK, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_SET_POLL",
+ (PFN *) (&gsdll.set_poll))) != 0) {
+- sprintf(buf, "Can't find GSAPI_SET_POLL, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_SET_POLL, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+@@ -255,27 +255,27 @@ gs_load_dll(void)
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0,
+ "GSAPI_INIT_WITH_ARGS",
+ (PFN *) (&gsdll.init_with_args))) != 0) {
+- sprintf(buf, "Can't find GSAPI_INIT_WITH_ARGS, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_INIT_WITH_ARGS, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_RUN_STRING",
+ (PFN *) (&gsdll.run_string))) != 0) {
+- sprintf(buf, "Can't find GSAPI_RUN_STRING, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_RUN_STRING, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ if ((rc = DosQueryProcAddr(gsdll.hmodule, 0, "GSAPI_EXIT",
+ (PFN *) (&gsdll.exit))) != 0) {
+- sprintf(buf, "Can't find GSAPI_EXIT, rc = %d\n", rc);
++ gs_sprintf(buf, "Can't find GSAPI_EXIT, rc = %d\n", rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+ return FALSE;
+ }
+ } else {
+- sprintf(buf, "Can't load Ghostscript DLL %s \nDosLoadModule rc = %d\n",
++ gs_sprintf(buf, "Can't load Ghostscript DLL %s \nDosLoadModule rc = %d\n",
+ szDllName, rc);
+ gs_addmess(buf);
+ gs_load_dll_cleanup();
+@@ -373,10 +373,10 @@ static int run_gspmdrv(IMAGE *img)
+ if (debug)
+ fprintf(stdout, "run_gspmdrv: starting\n");
+ #endif
+- sprintf(id, ID_NAME, img->pid, (ULONG)img->device);
++ gs_sprintf(id, ID_NAME, img->pid, (ULONG)img->device);
+
+ /* Create termination queue - used to find out when gspmdrv terminates */
+- sprintf(term_queue_name, "\\QUEUES\\TERMQ_%s", id);
++ gs_sprintf(term_queue_name, "\\QUEUES\\TERMQ_%s", id);
+ if (DosCreateQueue(&(img->term_queue), QUE_FIFO, term_queue_name)) {
+ fprintf(stdout, "run_gspmdrv: failed to create termination queue\n");
+ return e_limitcheck;
+@@ -404,7 +404,7 @@ static int run_gspmdrv(IMAGE *img)
+ /* arguments are: */
+ /* (1) -d (display) option */
+ /* (2) id string */
+- sprintf(arg, "-d %s", id);
++ gs_sprintf(arg, "-d %s", id);
+
+ /* because gspmdrv.exe is a different EXE type to gs.exe,
+ * we must use start session not DosExecPgm() */
+@@ -592,17 +592,17 @@ int display_open(void *handle, void *dev
+ return e_limitcheck;
+ }
+ img->pid = pppib->pib_ulppid; /* use parent (CMD.EXE) pid */
+- sprintf(id, ID_NAME, img->pid, (ULONG) img->device);
++ gs_sprintf(id, ID_NAME, img->pid, (ULONG) img->device);
+
+ /* Create update event semaphore */
+- sprintf(name, SYNC_NAME, id);
++ gs_sprintf(name, SYNC_NAME, id);
+ if (DosCreateEventSem(name, &(img->sync_event), 0, FALSE)) {
+ fprintf(stdout, "display_open: failed to create event semaphore %s\n", name);
+ return e_limitcheck;
+ }
+ /* Create mutex - used for preventing gspmdrv from accessing */
+ /* bitmap while we are changing the bitmap size. Initially unowned. */
+- sprintf(name, MUTEX_NAME, id);
++ gs_sprintf(name, MUTEX_NAME, id);
+ if (DosCreateMutexSem(name, &(img->bmp_mutex), 0, FALSE)) {
+ DosCloseEventSem(img->sync_event);
+ fprintf(stdout, "display_open: failed to create mutex semaphore %s\n", name);
+@@ -612,7 +612,7 @@ int display_open(void *handle, void *dev
+ /* Shared memory is common to all processes so we don't want to
+ * allocate too much.
+ */
+- sprintf(name, SHARED_NAME, id);
++ gs_sprintf(name, SHARED_NAME, id);
+ if (DosAllocSharedMem((PPVOID) & img->bitmap, name,
+ 13 * 1024 * 1024, PAG_READ | PAG_WRITE)) {
+ fprintf(stdout, "display_open: failed allocating shared BMP memory %s\n", name);
+@@ -1020,7 +1020,7 @@ main(int argc, char *argv[])
+ else if (depth >= 4)
+ format = DISPLAY_COLORS_NATIVE | DISPLAY_ALPHA_NONE |
+ DISPLAY_DEPTH_4 | DISPLAY_LITTLEENDIAN | DISPLAY_BOTTOMFIRST;
+- sprintf(dformat, "-dDisplayFormat=%d", format);
++ gs_sprintf(dformat, "-dDisplayFormat=%d", format);
+ }
+ nargc = argc + 1;
+
+diff -up ghostscript-9.07/psi/dscparse.c.gs_sprintf ghostscript-9.07/psi/dscparse.c
+--- ghostscript-9.07/psi/dscparse.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dscparse.c 2013-05-09 17:02:39.097447219 +0100
+@@ -38,7 +38,7 @@
+ % %%ViewingOrientation: xx xy yx yy
+ */
+
+-#include <stdio.h> /* for sprintf(), not file I/O */
++#include <stdio_.h> /* for sprintf(), not file I/O */
+ #include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+@@ -584,7 +584,7 @@ dsc_fixup(CDSC *dsc)
+ /* make sure all pages have a label */
+ for (i=0; i<dsc->page_count; i++) {
+ if (strlen(dsc->page[i].label) == 0) {
+- sprintf(buf, "%d", i+1);
++ gs_sprintf(buf, "%d", i+1);
+ if ((dsc->page[i].label = dsc_alloc_string(dsc, buf, (int)strlen(buf)))
+ == (char *)NULL)
+ return CDSC_ERROR; /* no memory */
+@@ -1178,7 +1178,7 @@ dsc_unknown(CDSC *dsc)
+ if (dsc->debug_print_fn) {
+ char line[DSC_LINE_LENGTH];
+ unsigned int length = min(DSC_LINE_LENGTH-1, dsc->line_length);
+- sprintf(line, "Unknown in %s section at line %d:\n ",
++ gs_sprintf(line, "Unknown in %s section at line %d:\n ",
+ dsc_scan_section_name[dsc->scan_section], dsc->line_count);
+ dsc_debug_print(dsc, line);
+ strncpy(line, dsc->line, length);
+@@ -2669,7 +2669,7 @@ dsc_check_match_prompt(CDSC *dsc, const
+ strncpy(buf, dsc->line, dsc->line_length);
+ buf[dsc->line_length] = '\0';
+ }
+- sprintf(buf+strlen(buf), "\n%%%%Begin%.40s: / %%%%End%.40s\n", str, str);
++ gs_sprintf(buf+strlen(buf), "\n%%%%Begin%.40s: / %%%%End%.40s\n", str, str);
+ return dsc_error(dsc, CDSC_MESSAGE_BEGIN_END, buf, (int)strlen(buf));
+ }
+ return CDSC_RESPONSE_CANCEL;
+diff -up ghostscript-9.07/psi/dwimg.c.gs_sprintf ghostscript-9.07/psi/dwimg.c
+--- ghostscript-9.07/psi/dwimg.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dwimg.c 2013-05-09 17:02:39.098447223 +0100
+@@ -36,6 +36,11 @@
+
+ #define STRICT
+ #include <windows.h>
++
++
++/* prevent gp.h redefining sprintf */
++#define sprintf sprintf
++
+ #include "stdio_.h"
+
+ #include "dwres.h"
+diff -up ghostscript-9.07/psi/dwmainc.c.gs_sprintf ghostscript-9.07/psi/dwmainc.c
+--- ghostscript-9.07/psi/dwmainc.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dwmainc.c 2013-05-09 17:02:39.098447223 +0100
+@@ -13,6 +13,8 @@
+ CA 94903, U.S.A., +1(415)492-9861, for further information.
+ */
+
++/* prevent gp.h redefining sprintf */
++#define sprintf sprintf
+
+ /* dwmainc.c */
+
+diff -up ghostscript-9.07/psi/dxmain.c.gs_sprintf ghostscript-9.07/psi/dxmain.c
+--- ghostscript-9.07/psi/dxmain.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/dxmain.c 2013-05-09 17:02:39.098447223 +0100
+@@ -1160,7 +1160,7 @@ int main(int argc, char *argv[])
+ use_gui = gtk_init_check(&argc, &argv);
+
+ /* insert display device parameters as first arguments */
+- sprintf(dformat, "-dDisplayFormat=%d",
++ gs_sprintf(dformat, "-dDisplayFormat=%d",
+ DISPLAY_COLORS_RGB | DISPLAY_ALPHA_NONE | DISPLAY_DEPTH_8 |
+ DISPLAY_BIGENDIAN | DISPLAY_TOPFIRST);
+ nargc = argc + 1;
+diff -up ghostscript-9.07/psi/int.mak.gs_sprintf ghostscript-9.07/psi/int.mak
+--- ghostscript-9.07/psi/int.mak.gs_sprintf 2013-05-09 17:02:39.018446879 +0100
++++ ghostscript-9.07/psi/int.mak 2013-05-09 17:02:39.098447223 +0100
+@@ -651,7 +651,7 @@ $(PSOBJ)zdscpars.$(OBJ) : $(PSSRC)zdscpa
+ $(gsstruct_h)
+ $(PSCC) $(PSO_)zdscpars.$(OBJ) $(C_) $(PSSRC)zdscpars.c
+
+-$(PSOBJ)dscparse.$(OBJ) : $(PSSRC)dscparse.c $(dscparse_h)
++$(PSOBJ)dscparse.$(OBJ) : $(PSSRC)dscparse.c $(dscparse_h) $(stdio__h)
+ $(PSCC) $(PSO_)dscparse.$(OBJ) $(C_) $(PSSRC)dscparse.c
+
+ dscparse_=$(PSOBJ)zdscpars.$(OBJ) $(PSOBJ)dscparse.$(OBJ)
+diff -up ghostscript-9.07/psi/iparam.c.gs_sprintf ghostscript-9.07/psi/iparam.c
+--- ghostscript-9.07/psi/iparam.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/iparam.c 2013-05-09 17:02:39.099447227 +0100
+@@ -65,7 +65,7 @@ ref_to_key(const ref * pref, gs_param_ke
+ int len;
+ byte *buf;
+
+- sprintf(istr, "%"PRIpsint, pref->value.intval);
++ gs_sprintf(istr, "%"PRIpsint, pref->value.intval);
+ len = strlen(istr);
+ /* GC will take care of freeing this: */
+ buf = gs_alloc_string(plist->memory, len, "ref_to_key");
+diff -up ghostscript-9.07/psi/iutil2.c.gs_sprintf ghostscript-9.07/psi/iutil2.c
+--- ghostscript-9.07/psi/iutil2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/iutil2.c 2013-05-09 17:02:39.099447227 +0100
+@@ -56,7 +56,7 @@ param_read_password(gs_param_list * plis
+ code = param_read_long(plist, kstr, &ipass);
+ if (code != 0) /* error or missing */
+ return code;
+- sprintf((char *)ppass->data, "%ld", ipass);
++ gs_sprintf((char *)ppass->data, "%ld", ipass);
+ ppass->size = strlen((char *)ppass->data);
+ return 0;
+ }
+diff -up ghostscript-9.07/psi/iutil.c.gs_sprintf ghostscript-9.07/psi/iutil.c
+--- ghostscript-9.07/psi/iutil.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/iutil.c 2013-05-09 17:02:39.099447227 +0100
+@@ -340,10 +340,10 @@ obj_cvp(const ref * op, byte * str, uint
+ float value = op->value.realval;
+ float scanned;
+
+- sprintf(buf, "%g", value);
++ gs_sprintf(buf, "%g", value);
+ sscanf(buf, "%f", &scanned);
+ if (scanned != value)
+- sprintf(buf, "%.9g", value);
++ gs_sprintf(buf, "%.9g", value);
+ ensure_dot(buf);
+ goto rs;
+ }
+@@ -494,7 +494,7 @@ other:
+ data = (const byte *)(op->value.boolval ? "true" : "false");
+ break;
+ case t_integer:
+- sprintf(buf, "%"PRIpsint, op->value.intval);
++ gs_sprintf(buf, "%"PRIpsint, op->value.intval);
+ break;
+ case t_string:
+ check_read(*op);
+@@ -529,7 +529,7 @@ other:
+ break;
+ }
+ /* Internal operator, no name. */
+- sprintf(buf, "@0x%lx", (ulong) op->value.opproc);
++ gs_sprintf(buf, "@0x%lx", (ulong) op->value.opproc);
+ break;
+ }
+ case t_real:
+@@ -542,7 +542,7 @@ other:
+ if (op->value.realval == (float)0.0001) {
+ strcpy(buf, "0.0001");
+ } else {
+- sprintf(buf, "%g", op->value.realval);
++ gs_sprintf(buf, "%g", op->value.realval);
+ }
+ ensure_dot(buf);
+ break;
+@@ -573,9 +573,9 @@ ensure_dot(char *buf)
+ sscanf(pe + 1, "%d", &i);
+ /* MSVC .net 2005 express doesn't support "%+02d" */
+ if (i >= 0)
+- sprintf(pe + 1, "+%02d", i);
++ gs_sprintf(pe + 1, "+%02d", i);
+ else
+- sprintf(pe + 1, "-%02d", -i);
++ gs_sprintf(pe + 1, "-%02d", -i);
+ } else if (strchr(buf, '.') == NULL) {
+ strcat(buf, ".0");
+ }
+diff -up ghostscript-9.07/psi/msvc.mak.gs_sprintf ghostscript-9.07/psi/msvc.mak
+--- ghostscript-9.07/psi/msvc.mak.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/msvc.mak 2013-05-09 17:02:39.099447227 +0100
+@@ -332,6 +332,10 @@ TIFFCONFIG_SUFFIX=.vc
+ TIFFPLATFORM=win32
+ !endif
+
++!ifndef TRIOSRCDIR
++TRIOSRCDIR=trio
++!endif
++
+ # Define the directory where the zlib sources are stored.
+ # See zlib.mak for more information.
+
+diff -up ghostscript-9.07/psi/zbfont.c.gs_sprintf ghostscript-9.07/psi/zbfont.c
+--- ghostscript-9.07/psi/zbfont.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/zbfont.c 2013-05-09 17:02:39.099447227 +0100
+@@ -109,7 +109,7 @@ zfont_encode_char(gs_font *pfont, gs_cha
+
+ if (gspace == GLYPH_SPACE_NOGEN)
+ return gs_no_glyph;
+- sprintf(buf, "j%ld", chr); /* 'j' is arbutrary. */
++ gs_sprintf(buf, "j%ld", chr); /* 'j' is arbutrary. */
+ code = name_ref(pfont->memory, (const byte *)buf, strlen(buf), &tname, 1);
+ if (code < 0) {
+ /* Can't propagate the error due to interface limitation,
+@@ -131,7 +131,7 @@ zfont_glyph_name(gs_font *font, gs_glyph
+ char cid_name[sizeof(gs_glyph) * 3 + 1];
+ int code;
+
+- sprintf(cid_name, "%lu", (ulong) index);
++ gs_sprintf(cid_name, "%lu", (ulong) index);
+ code = name_ref(font->memory, (const byte *)cid_name, strlen(cid_name),
+ &nref, 1);
+ if (code < 0)
+diff -up ghostscript-9.07/psi/zdouble.c.gs_sprintf ghostscript-9.07/psi/zdouble.c
+--- ghostscript-9.07/psi/zdouble.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/zdouble.c 2013-05-09 17:02:39.100447231 +0100
+@@ -323,7 +323,7 @@ zcvsd(i_ctx_t *i_ctx_p)
+ len = r_size(op - 1);
+ if (len > MAX_CHARS)
+ return_error(e_limitcheck);
+- sprintf(buf, "%f", 1.5);
++ gs_sprintf(buf, "%f", 1.5);
+ dot = buf[1]; /* locale-dependent */
+ memcpy(str, op[-1].value.bytes, len);
+ /*
+@@ -406,7 +406,7 @@ zdcvs(i_ctx_t *i_ctx_p)
+ if (code < 0)
+ return code;
+ check_write_type(*op, t_string);
+- sprintf(str, "%f", 1.5);
++ gs_sprintf(str, "%f", 1.5);
+ dot = str[1]; /* locale-dependent */
+ /*
+ * To get fully accurate output results for IEEE double-
+@@ -420,10 +420,10 @@ zdcvs(i_ctx_t *i_ctx_p)
+ {
+ double scanned;
+
+- sprintf(str, "%g", num);
++ gs_sprintf(str, "%g", num);
+ sscanf(str, "%lf", &scanned);
+ if (scanned != num)
+- sprintf(str, "%.16g", num);
++ gs_sprintf(str, "%.16g", num);
+ }
+ len = strlen(str);
+ if (len > r_size(op))
+diff -up ghostscript-9.07/psi/zfapi.c.gs_sprintf ghostscript-9.07/psi/zfapi.c
+--- ghostscript-9.07/psi/zfapi.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/zfapi.c 2013-05-09 17:02:39.100447231 +0100
+@@ -583,11 +583,11 @@ FAPI_FF_get_word(gs_fapi_font *ff, gs_fa
+ length += r_size(&string) + 1;
+ break;
+ case t_real:
+- sprintf(Buffer, "%f", Element.value.realval);
++ gs_sprintf(Buffer, "%f", Element.value.realval);
+ length += strlen(Buffer) + 1;
+ break;
+ case t_integer:
+- sprintf(Buffer, "%"PRIpsint, Element.value.intval);
++ gs_sprintf(Buffer, "%"PRIpsint, Element.value.intval);
+ length += strlen(Buffer) + 1;
+ break;
+ case t_operator:
+@@ -823,12 +823,12 @@ FAPI_FF_get_proc(gs_fapi_font *ff, gs_fa
+ ptr += r_size(&string);
+ break;
+ case t_real:
+- sprintf(Buf, "%f", Element.value.realval);
++ gs_sprintf(Buf, "%f", Element.value.realval);
+ strcpy(ptr, Buf);
+ ptr += strlen(Buf);
+ break;
+ case t_integer:
+- sprintf(Buf, "%"PRIpsint, Element.value.intval);
++ gs_sprintf(Buf, "%"PRIpsint, Element.value.intval);
+ strcpy(ptr, Buf);
+ ptr += strlen(Buf);
+ break;
+diff -up ghostscript-9.07/psi/zfont2.c.gs_sprintf ghostscript-9.07/psi/zfont2.c
+--- ghostscript-9.07/psi/zfont2.c.gs_sprintf 2013-02-14 07:58:13.000000000 +0000
++++ ghostscript-9.07/psi/zfont2.c 2013-05-09 17:02:39.101447236 +0100
+@@ -2666,7 +2666,7 @@ parse_font(i_ctx_t *i_ctx_p, ref *topdi
+ return sid;
+ if ((code = make_name_from_sid(i_ctx_p, &name, strings, data, sid)) < 0) {
+ char buf[40];
+- int len = sprintf(buf, "sid-%d", sid);
++ int len = gs_sprintf(buf, "sid-%d", sid);
+
+ if ((code = name_ref(imemory, (unsigned char *)buf, len, &name, 1)) < 0)
+ return code;
+diff -up ghostscript-9.07/trio/autogen.sh.gs_sprintf ghostscript-9.07/trio/autogen.sh
+--- ghostscript-9.07/trio/autogen.sh.gs_sprintf 2013-05-09 17:02:39.101447236 +0100
++++ ghostscript-9.07/trio/autogen.sh 2013-05-09 17:02:39.101447236 +0100
+@@ -0,0 +1,3 @@
++#!/bin/sh
++autoconf
++rm -rf autom4te.cache
+diff -up ghostscript-9.07/trio/CHANGES.gs_sprintf ghostscript-9.07/trio/CHANGES
+--- ghostscript-9.07/trio/CHANGES.gs_sprintf 2013-05-09 17:02:39.101447236 +0100
++++ ghostscript-9.07/trio/CHANGES 2013-05-09 17:02:39.101447236 +0100
+@@ -0,0 +1,785 @@
++CHANGES -- trio
++
++
++The changes listed without a name attributed to them were most likely done by
++Bjorn Reese and/or Daniel Stenberg.
++
++Version 1.14 - 2010/01/26
++-------------------------
++* David Byron
++ Added trio_xstring_append_max.
++
++* Fixed compilation problem on Cygwin due to lack of long double math
++ (reported by Matthias Andree).
++
++* David Boyce
++ Added #undef of standard stdio function names before assigning trio functions
++ to them.
++
++* Matthias Andree
++ Upgraded configure.in to use new macros instead of obsoleted macros.
++
++* Matthias Andree
++ Added VPATH to Makefile.in
++
++* Tom Honermann
++ Fixed problem with subnormal numbers which caused an infinite loop outputting
++ leading spaces.
++
++* Adam McLaurin
++ Improved parsing performance by avoiding memset() and memcpy() on character
++ arrays.
++
++* Gideon Smeding
++ Fixed %u scanning of signed numbers.
++
++* Gideon Smeding
++ Fixed group scanning for non-matching input.
++
++* Fixed missing undo of look-ahead reading for scanf functions. This does only
++ work for the scanf* and fscanf* functions, not dscanf* and cscanf* functions
++ (reported by Gideon Smeding).
++
++* If the format string is empty, scanf does not attempt to read any input.
++
++* Ralf Junker
++ Fixed Borland compilation for user-defined specifiers.
++
++
++Version 1.13 - 2008/11/09
++-------------------------
++* Ives Aerts
++ Added the $<format|skip> format for user-defined specifiers, which is
++ compatible with compiler warnings about mismatches between specifiers and
++ arguments.
++
++* Added TRIO_DEPRECATED flag (reported by David Boyce)
++
++* Fixed rounding adjustment for long double (reported as bug item #2136686).
++
++* Added Makefile dependency for test target (reported as bug item #2136636).
++
++* David Boyce
++ Fixed long long support for MSVC.
++
++* Fixed potential problem with read after buffer end for non-zero terminated
++ strings (reported as bug item #1828465).
++
++* Andreas Stricker
++ Added WinCE support.
++
++* Fixed number of significant digits for %g.
++
++
++Version 1.12 - 2006/10/22
++-------------------------
++* Fixed scanning of floats (reported by Bernd Ahlers).
++
++* Fixed configure.in for GCC on Tru64 and MIPSpro on IRIX (reported by Andreas
++ Maus).
++
++* Olli Savia
++ Added support for LynxOS.
++
++
++Version 1.11 - 2006/04/08
++-------------------------
++* Mark Pickelmann
++ Fixed trio_unregister. If the first element was removed, the remaining
++ list would be removed as well.
++
++* Fixed unintended formatting of %e that would result in non-zero numbers
++ starting with zero (reported by Mark Pickelmann and Gisli Ottarsson).
++
++* Fixed compilation with Sun Workshop 6 (reported by Matthias Andree).
++
++* Fixed accuracy for denormalized numbers (bug item #758327).
++
++* Glen Davidson
++ Fixed scanning of floating-point numbers without a decimal-point (bug item
++ #1370427).
++
++* David Byron
++ Fixed more compiler warnings.
++
++* Fixed compilation of trio_to_long_double and TRIO_FEATURE_FLOAT (reported by
++ David Byron).
++
++* Fixed precision of large floating-point numbers (bug item #1314524).
++
++* Karl Bochert
++ Fixed trio_fpclassify_and_signbit to only restore the floating-point
++ precision.
++
++* Fixed detection of need for ieee option on FreeBSD/Alpha.
++
++* Added TRIO_SNPRINTF_ONLY compilation.
++
++* Fixed trio_to_double by not using strtod() on Tru64/DECC because it does not
++ support hex-floats.
++
++* Fixed crash on 64 bits machines related to a previous workaround in version
++ 1.9 for uninitialized va_list (reported by Nicolai Tufar, suggestion by
++ Douglas Gwyn).
++
++* Patrick Jessee
++ Fixed width calculation for %g.
++
++* Added macros for internal features.
++
++* Jon Foster
++ Added macros for conditional compilation of many features. Documented all
++ the features.
++
++* Karl Bochert
++ Fixed problem with Borland C++, which changes the floating-point precision
++ for certain math functions (log10() and _fpclass()).
++
++* Karl Bochert
++ Fixed compilation warnings on Borland C++.
++
++* Removed any occurrence of #elif because Borland C++ reports wrong line
++ numbers when they are present (reported by Karl Bochert).
++
++* David Byron
++ Added trio_asprintfv.
++
++* Brian Chapman
++ Fixed Mac OS X compilation.
++
++* David Byron
++ Fixed several compiler warnings.
++
++* Fixed printing of out-of-range arguments for %hhd and %hd. These arguments
++ can be out of range because of default integer promotion.
++
++* Bob Friesenhahn
++ Fixed installation of header files.
++
++* Joe Orton
++ Added SHELL to Makefile.in to avoid problems with CShells.
++
++* Shaun Tancheff
++ Fixed regresion tests for MSVC.
++
++* Craig Berry
++ Fixed the VMS C99 workaround.
++
++
++Version 1.10 - 2003/03/06
++-------------------------
++* Rearranged some include files to accommodate large file support (reported by
++ Albert Chin-A-Young).
++
++* Added support for SunOS 4.1.x lack of strerror, tolower, and toupper
++ (reported by Peter McCluskey).
++
++* Fixed pedantic compilation with TRIO_MINIMAL.
++
++* Jose Kahan
++ Moved <limits.h> to avoid redefinition problems.
++
++* Fixed hex-float exponents (reported by Matthias Clasen).
++
++* Fixed handling of negative width and precision via paramters (reported by
++ Jacob Navia).
++
++* Nigel Hall
++ Fixed TRIO_VA_START for VMS.
++
++* Rune Enggaard Lausen
++ Fixed compilation for Borland C++ Builder.
++
++* Fixed precision of hex-float numbers (reported by James Antill).
++
++* Fixed plus sign only to be added for signed numbers.
++
++* Fixed printing of integers with value and precision of zero (reported by
++ James Antill).
++
++* Fixed %#.o to only print one zero if the value is zero (reported by James
++ Antill).
++
++* Rewrote check for IEEE compilation option to remove dependency on additional
++ scripts.
++
++* Mehdi Lavasani
++ Makefile install target fixed to work with older install programs.
++
++* Collapsed the DECC, MSVC, HP-UX, and AIX code for trio_fpclassify_and_sign()
++ with further preprocessing.
++
++
++Version 1.9 - 2002/10/13
++------------------------
++* Fixed trio_fpclassify_and_signbit on AIX 3.2
++
++* Added configure check for -ieee/-mieee compilation option for Alpha machines.
++
++* Craig Berry
++ Fixed compilation on VMS.
++
++* Albert Chin-A-Young
++ Fixed incorrect conditional expression in trio_isinf.
++
++* Fixed the warnings about uninitialized va_list in the printfv and scanfv
++ family without the use of compiler specific pragmas (suggested by Ian
++ Pilcher).
++
++* Fixed space flag for floating-point numbers (reported by Ian Main).
++
++
++Version 1.8 - 2002/07/10
++------------------------
++* Fixed infinite loop in multibyte handling (reported by Gisli Ottarsson).
++
++* Added the customizable cprintf/cscanf family which enables to user to specify
++ input and output stream functions (suggested by Florian Schulze).
++
++* Fixed trio_isinf by removing the HP-UX workaround, and instead making sure
++ that the C99 macro will adhere to the trio return values (reported by Luke
++ Dunstan).
++
++* Alexander Lukyanov
++ Fixed boundary case for scanning and EOF.
++
++* Jacob Navia
++ Enabled the L modifier for formatting.
++
++* Added TRIO_MINIMAL to build trio without the string functions.
++
++* Added the R modifier to print rounded floating-point numbers.
++
++* Added trio_to_long_double and long double scanning (the L modifier).
++
++* Added trio_locale_decimal_point, trio_locale_thousand_separator,
++ trio_locale_grouping to overwrite locale settings.
++
++* Rewrote TrioWriteDouble to avoid temporary buffers and thus the danger of
++ buffer overflows (for instance %.5000f).
++
++* Improved floating-point formatting accuracy.
++
++* Fixed formatting of non-decimal exponents.
++
++* Fixed thousand separator checking.
++
++* Fixed %f scanning to get a float and %lf to get a double.
++
++* Fixed WIN32 compilation (reported by Emmanuel Mogenet)
++
++* Fixed regression test cases to exclude disabled features.
++
++
++Version 1.7 - 2002/05/07
++------------------------
++* Fixed trio_to_double to handle hex-floats properly.
++
++* Fixed printing of %a-format to be like %e, not like %g.
++
++* Fixed floating-point printing of values beyond the machine accuracy.
++
++* Fixed %f for printing with large precision.
++
++* Fixed the usage of C99 nan(), which caused a crash on OSF/1 (reported by
++ Georg Bolz)
++
++* Joe Orton
++ Fixed %p on 64-bit platforms.
++
++* Made trio compile with K&R compilers.
++
++* Emmanuel Mogenet
++ Fixed bug in trio_asprintf.
++
++* Emmanuel Mogenet
++ Various WIN32 fixes.
++
++* Joe Orton
++ Fixed trio_isinf() on HP-UX, and added test cases.
++
++* Joe Orton
++ Fixed non-portable use of $^ in Makefile.
++
++* Joe Orton
++ Added autoconf.
++
++* Alexander Lukyanov
++ Fixed a number of bugs in the scanning of EOF and the count specifier.
++
++* Richard Jinks
++ Added trio_nzero
++
++* Fixed incorrect handling of return code from TrioReadChar (reported by
++ Henrik Löf)
++
++* Fixed parsing of character class expressions.
++
++* Fixed trio_to_double which did not work with long fractions.
++
++* Fixed %f for printing of large numbers.
++
++* Fixed %#s to handle whitespaces as non-printable characters.
++
++* Added trio_isfinite, trio_signbit, and trio_fpclassify.
++
++* Added new test cases.
++
++
++Version 1.6 - 2002/01/13
++------------------------
++* Added dynamic string functions.
++
++* Rewrote and extended documentation in JavaDoc (using Doxygen).
++
++* Moved and renamed strio functions to triostr.
++
++* Robert Collins
++ Added definition for Cygwin.
++
++* Markus Henke
++ Added long double workaround for the HP C/iX compiler.
++
++* Marc Verwerft
++ Improved error handling for dynamically allocated strings.
++
++* John Fotheringham
++ Made trionan compile on OpenVMS.
++
++* Added 'd' and 'D' as exponent letters when using TRIO_MICROSOFT.
++
++* Fixed uninitial memory read for the parameter modifiers.
++
++
++Version 1.5 - 2001/09/08
++------------------------
++* Merged with libxml changes.
++
++* Moved NaN and Inf handling to separate file to enable reuse in other
++ projects.
++
++* Igor Zlatkovic
++ Fixed TrioGenerateNan for MSVC.
++
++* Fixed lots of preprocessor macros and internal data structure names.
++
++
++Version 1.4 - 2001/06/03
++------------------------
++* Added hex-float (%a and %A) for scanning.
++
++* Added wide character arguments (%ls, %ws, %S, %lc, %wc, and %C) for both
++ printf and scanf.
++
++* Added mutex callbacks for user-specified specifiers to enable applications to
++ add thread-safety. These are registered with trio_register, where the
++ namespace is set to either ":enter" to lock a mutex, or ":leave" to unlock a
++ mutex.
++
++* Added equivalence class expressions for scanning. For example, %[[=a=]] scans
++ for all letters in the same equivalence class as the letter 'a' as defined
++ by the locale.
++
++* Changed character class expressions for scanning. The expressions must now
++ be embedded withing an extra set of brackets, e.g. %[[:alpha:]]. This was
++ done to adhere to the syntax of UNIX98 regular expressions.
++
++* Added the possibility to specify standard support (TRIO_C99 etc.) as compiler
++ options.
++
++* Fixed conversion of hex-float in StrToDouble.
++
++* Fixed formatting of hex-float numbers.
++
++* Stan Boehm
++ Fixed crash on QNX, which happend because some buffers on the stack were too
++ big.
++
++* Fixed default precision for %f and %g (reported by Jose Ortiz)
++
++* Howard Kapustein
++ Added the I8, I16, I32, and I64 modifiers.
++
++* Jose Ortiz
++ Fixed rounding problem for %e.
++
++* Jose Ortiz
++ Fixed various problems with the xlC and Sun C++ compilers.
++
++
++Version 1.3 - 2001/05/16
++------------------------
++* trio's treatment of the field width when the %e code was used was not
++ correct (reported by Gisli Ottarsson). It turns out the fraction part should
++ be zero-padded by default and the exponent part should be zero-prefixed if
++ it is only one digit. At least that's how the GNU and Sun libc's work. The
++ trio floating point output looks identical to them now.
++
++* Fixed group scanning with modifiers.
++
++* Fixed compilation for 64-bit Digital Unix.
++
++* Igor Zlatkovic
++ Fixed compilation of dprintf, which uses read/write, for MSVC.
++
++* Fixed various compilation problems on Digital Unix (mainly associated with
++ va_list).
++
++
++Version 1.2 - 2001/04/11
++------------------------
++* Added autoconf integration. If compiled with HAVE_CONFIG_H the following
++ happens. Firstly, <config.h> is included. Secondly, trio will only be
++ compiled if WITH_TRIO is defined herein. Thirdly, if TRIO_REPLACE_STDIO is
++ defined, only stdio functions that have not been detected by autoconf, i.e.
++ those not defined by HAVE_PRINTF or similar, will be replaced by trio
++ functions (suggested by Daniel Veillard).
++
++* Fixed '%m.nf' output. Previously trio did not treat the width properly
++ in all cases (reported by Gisli Ottarsson).
++
++* Added explicit promotion for the scanfv family.
++
++* Fixed more C++ compilation warnings.
++
++
++Version 1.1 - 2001/02/25
++------------------------
++* Added explicit promotion for the printfv familiy. A float must be specified
++ by %hf.
++
++* Fixed positionals for printfv (reported by Gisli Ottarsson).
++
++* Fixed an integer to pointer conversion problem on the SGI MIPS C compiler
++ (reported by Gisli Ottarsson).
++
++* Fixed ANSI C++ warnings (type casting, and namespace is a reserved keyword).
++
++* Added \n to all examples in the documentation to prevent confusion.
++
++* Fixed StrSubstringMax
++
++
++Version 1.0 - 2000/12/10
++------------------------
++* Bumped Version number.
++
++
++Version 0.25 - 2000/12/09
++-------------------------
++* Wrote more documentation.
++
++* Improved NaN support and added NaN to regression test.
++
++* Fixed C99 support.
++
++* Added missing getter/setter functions.
++
++
++Version 0.24 - 2000/12/02
++-------------------------
++* Added callback functionality for the user-defined specifier (<>). All
++ the necessary functions are defined in triop.h header file. See the
++ documentation for trio_register for further detail.
++
++* Wrote initial documentation on the callback functionality.
++
++* Added the printfv and scanfv family of functions, which takes a pointer
++ array rather than variadic arguments. Each pointer in the array must point
++ to the associated data (requested by Bruce Korb).
++
++* As indicated in version 0.21 the extension modifiers (<>) have now been
++ completely removed.
++
++* Added skipping of thousand-separators in floating-point number scanning.
++
++
++Version 0.23 - 2000/10/21
++-------------------------
++* Added width to scanning of floating-point numbers.
++
++* Wrote more documentation on trio_printf.
++
++* Fixed problem with trailing zeroes after decimal-point.
++
++
++Version 0.22 - 2000/08/06
++-------------------------
++* Added LC_CTYPE locale dependent character class expressions to scan lists.
++ Included are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:],
++ [:lower:], [:print:], [:punct:], [:space:], [:upper:], [:xdigit:]
++
++* Added C escapes to alternative string formatting and scanning.
++
++* Added StrSubstringMax.
++
++* Wrote a little more documentation.
++
++* Fixed scanf return values.
++
++* Fixed a sign error for non-ascii characters.
++
++
++Version 0.21 - 2000/07/19
++-------------------------
++* Converted the documentation to TeX. With latex2man the documentation can
++ automatically be converted into man pages.
++
++* Added trio_scanf, trio_vscanf, trio_fscanf, and trio_vfscanf.
++
++* Added trio_dprintf, trio_vdprintf, trio_dscanf, and trio_vdscanf. These
++ functions can be used to write and read directly to pipes and sockets (the
++ assume blocking sockets). Stdio buffering is surpassed, so the functions are
++ async-safe. However, reading from stdin (STDIN_FILENO) or writing to stdout
++ (STDOUT_FILENO) reintroduces the buffering.
++
++* Paul Janzen
++ Added trio_asprintf and trio_vasprintf, which are compatible with the GNU
++ and BSD interfaces.
++
++* Added scanlist ranges for group scanning (%[]).
++
++* Added width for scanning (missing for floating-point numbers though).
++
++* Added variable size modifier (&) to handle system defined types of unknown
++ size. This modifier makes certain assumptions about the integer sizes, which
++ may not be valid on any machine. Consequently, the modifier will remain
++ undocumented, as it may be removed later.
++
++* Added \777 and \xFF to alternative string scanning (%#s)
++
++* Added the TRIO_REPLACE_STDIO check in the header.
++
++* Improved performance of the multibyte character parsing.
++
++* Fixed positionals (%n$) which had stopped working.
++
++* Fixed hh and ll modifiers to allow exactly two letters and no more.
++
++* Fixed ANSI C++ warnings. Also fixed the compiler warning about casting
++ between integer and pointer (this has been annoying me for ages).
++
++* Fixed snprintf and vsnprintf with zero buffer size.
++
++* Fixed NAN problems (reported by Keith Briggs).
++
++* Fixed parsing of multibyte characters. The format string was not correctly
++ advanced in case of a multibyte character.
++
++* Renamed many of the internal functions to have more consistant names.
++
++* Removed the <quote=c> and <fill=c> modifiers. They are not really worth
++ including. The other <> modifiers may disappear as well.
++
++
++Version 0.20 - 2000/06/05
++-------------------------
++* Added intmax_t and ptrdiff_t support.
++
++* Added support for LC_NUMERIC grouping.
++
++* Added double-dot notation for the conversion base. The style is now
++ %width.precision.base, where any argument can be a number, an asterix
++ indicating a parameter, or be omitted entirely. For example, %*..2i is
++ to specify binary numbers without precision, and with width as a parameter
++ on the va_list.
++
++* Added sticky modifier (!), which makes subsequent specifiers of the same
++ type reuse the current modifiers. Inspired by a suggestion from Gary Porter.
++
++* Added group scanning (%[]). Scanlist ranges and multibyte sequences are not
++ supported yet.
++
++* Added count scanning (%n).
++
++* Changed the number scanning to accept thousand separators and any base.
++
++* Fixed positional for parameters. It is possible to write something like
++ %3$*1$.*2$d (which happens to be the same as %*.*d).
++
++* Fixed precision of integers.
++
++* Fixed parameter flags. Before trio could only handle one parameter flag per
++ specifier, although two (three with double-dot base) were possible.
++
++* Fixed isinf() for those platforms where it is unimplemented.
++
++
++Version 0.18 - 2000/05/27
++-------------------------
++* Rewrote the entire floating-point formatting function (Danny Dulai had
++ reported several errors and even supplied some patches, which unfortunately
++ were lost due to the refactoring).
++
++* Removed the use of strlen() in the declaration of a stack array. This
++ caused problems on some compilers (besides it isn't really ANSI C compliant
++ anyways). Using some arbitrarily chosen maximum value; should examine if
++ some standard defines an upper limit on the length of decimal-point and
++ thousands-separator (sizeof(wchar_t) perhaps?)
++
++* Changed the parsing of the format string to be multibyte aware.
++
++
++Version 0.17 - 2000/05/19
++-------------------------
++* Added INF, -INF, and NAN for floating-point numbers.
++
++* Fixed %#.9g -- alternative with precision.
++
++* Ken Gibson
++ Fixed printing of negative hex numbers
++
++* Joerg (last name unknown)
++ Fixed convertion of non-ASCII characters
++
++
++Version 0.16 - 1999/08/06
++-------------------------
++* Changed the constness of the second argument of StrFloat and StrDouble. The
++ lack of parameter overloading in C is the reason for the strange use of
++ constness in strtof and strtod.
++
++* Cleaned up constness.
++
++
++Version 0.15 - 1999/07/23
++-------------------------
++* Fixed the internal representation of numbers from signed to unsigned. Signed
++ numbers posed a problem for large unsigned numbers (reported by Tero)
++
++* Fixed a tiny bug in trio_vsprintfcat
++
++* Changed the meaning of the max argument of StrAppendMax to be consistant
++ with StrFormatAppendMax. Now it is the maximal size of the entire target
++ buffer, not just the appended size. This makes it easier to avoid buffer
++ overflows (requested by Tero)
++
++
++Version 0.14 - 1999/05/16
++-------------------------
++* Added size_t support (just waiting for a C99 compliant compiler to add
++ ptrdiff_t and intmax_t)
++
++* Rewrote TrioOutStreamDouble so it does not use the libc sprintf to emulate
++ floating-point anylonger.
++
++* Fixed width, precision, and adjustment for numbers and doubles.
++
++
++Version 0.13 - 1999/05/06
++-------------------------
++* Fixed zero padding for %d. Now %d will only zero pad if explicitly requested
++ to do so with the 0 flag (reported by Tero).
++
++* Fixed an incorrect while() condition in TrioGetString (reported by Tero).
++
++
++Version 0.12 - 1999/04/19
++-------------------------
++* Fixed incorrect zero padding of pointers
++
++* Added StrHash with STRIO_HASH_PLAIN
++
++* Added StrFormatDateMax
++
++
++Version 0.11 - 1999/03/25
++-------------------------
++* Made it compile under cygwin
++
++* Fixed a bug were TrioPreprocess would return an error if no formatting chars
++ were found (reported by Tero).
++
++
++Version - 1999/03/19
++--------------------
++* Added trio_strerror and TRIO_ERROR_NAME.
++
++* Changed the error codes to be positive (as errno)
++
++* Fixed two reads of uninitialized memory reported by Purify
++
++* Added binary specifiers 'b' and 'B' (like SCO.) ThousandSeparator can be
++ used to separate nibbles (4 bit)
++
++* Renamed all Internal* functions to Trio*, which seems like a better
++ namespace (even though it is of no practical interest because these
++ functions are not visible beyond the scope of this file.)
++
++
++Version - 1999/03/12
++--------------------
++* Added hex-float format for StrToDouble
++
++* Double references and gaps in the arguments are not allowed (for the %n$
++ format) and in both cases an error code is returned.
++
++* Added StrToDouble (and StrToFloat)
++
++
++Version - 1999/03/08
++--------------------
++* Added InStream and OutStream to the trio_T structure.
++
++* Started work on TrioScan.
++
++* Return values for errors changed. Two macros to unpack the error code has
++ been added to the header.
++
++* Shortshort (hh) flag added.
++
++* %#s also quotes the quote-char now.
++
++* Removed the 'errorInFormat' boolean, which isn't used anymore after the
++ functions bail out with an error instead.
++
++
++Version - 1999/03/04
++--------------------
++* More than MAX_PARAMETERS parametes will now cause the TrioPreprocess()
++ function to return error.
++
++* Unknown flags and/or specifiers cause errors too.
++
++* Added trio_snprintfcat and trio_vsnprintfcat and the defined name
++ StrFormatAppendMax. They append a formatted string to the end of a string.
++
++* Define MAX_PARAMETERS to 128 at all times instead of using NL_ARGMAX when
++ that exists.
++
++* Added platform fixes for Amiga as suggested by Tero Jänkä <tesaja@utu.fi>
++
++
++Version - 1999/01/31
++--------------------
++* vaprintf did add a zero byte even when it had failed.
++
++* Cleaned up the code for locale handling and thousand separator
++
++* Added trio_aprintf() and trio_vaprintf(). They return an allocated string.
++
++* Added thousands separator for numbers
++
++* Added floating point support for *printf
++
++
++Version - 1998/10/20
++--------------------
++* StrMatchCase() called StrMatch() instead of itself recursively
++
++* Rewrote the implementation of *printf and *scanf and put all the code in
++ this file. Extended qualifiers and qualifiers from other standards were
++ added.
++
++* Added StrSpanFunction, StrToLong, and StrToUnsignedLong
++
++
++Version - 1998/05/23
++--------------------
++* Made the StrEqual* functions resistant to NULL pointers
++
++* Turns out strdup() is no standard at all, and some platforms (I seem to
++ recall HP-UX) has problems with it. Made our own StrDuplicate() instead.
++
++* Added StrFormat() and StrFormatMax() to serve as sprintf() and snprintf()
++ respectively.
+diff -up ghostscript-9.07/trio/compare.c.gs_sprintf ghostscript-9.07/trio/compare.c
+--- ghostscript-9.07/trio/compare.c.gs_sprintf 2013-05-09 17:02:39.101447236 +0100
++++ ghostscript-9.07/trio/compare.c 2013-05-09 17:02:39.101447236 +0100
+@@ -0,0 +1,53 @@
++#include "trio.h"
++
++#define compare(format, value) printf("FORMAT: %s\n", format); printf("TRIO: "); trio_printf(format,value); printf("\nLIBC: "); \
++printf(format,value); printf("\n\n");
++
++int main()
++{
++ compare("\"%e\"",2.342E+02);
++ compare("\"%10.4e\"",-2.342E-02);
++ compare("\"%11.4e\"",-2.342E-02);
++ compare("\"%12.4e\"",-2.342E-02);
++ compare("\"%13.4e\"",-2.342E-02);
++ compare("\"%14.4e\"",-2.342E-02);
++ compare("\"%15.4e\"",-2.342E-02);
++ compare("\"%16.4e\"",-2.342E-02);
++ compare("\"%16.4e\"",-2.342E-22);
++ compare("\"%G\"",-2.342E-02);
++ compare("\"%G\"",3.1415e-6);
++ compare("%016e", 3141.5);
++ compare("%16e", 3141.5);
++ compare("%-16e", 3141.5);
++ compare("%010.3e", 3141.5);
++
++ compare("*%5f*", 3.3);
++ compare("*%5f*", 3.0);
++ compare("*%5f*", .999999E-4);
++ compare("*%5f*", .99E-3);
++ compare("*%5f*", 3333.0);
++
++ compare("*%5g*", 3.3);
++ compare("*%5g*", 3.0);
++ compare("*%5g*", .999999E-4);
++ compare("*%5g*", .99E-3);
++ compare("*%5g*", 3333.0);
++ compare("*%5g*", 0.01);
++
++ compare("*%5.g*", 3.3);
++ compare("*%5.g*", 3.0);
++ compare("*%5.g*", .999999E-4);
++ compare("*%5.g*", 1.0E-4);
++ compare("*%5.g*", .99E-3);
++ compare("*%5.g*", 3333.0);
++ compare("*%5.g*", 0.01);
++
++ compare("*%5.2g*", 3.3);
++ compare("*%5.2g*", 3.0);
++ compare("*%5.2g*", .999999E-4);
++ compare("*%5.2g*", .99E-3);
++ compare("*%5.2g*", 3333.0);
++ compare("*%5.2g*", 0.01);
++
++ return 0;
++}
+diff -up ghostscript-9.07/trio/configure.in.gs_sprintf ghostscript-9.07/trio/configure.in
+--- ghostscript-9.07/trio/configure.in.gs_sprintf 2013-05-09 17:02:39.101447236 +0100
++++ ghostscript-9.07/trio/configure.in 2013-05-09 17:02:39.101447236 +0100
+@@ -0,0 +1,54 @@
++dnl
++dnl Configuration for trio
++dnl
++
++AC_INIT
++AC_CONFIG_SRCDIR([triodef.h])
++AC_PREREQ(2.55) dnl autoconf 2.55 was released in 2002
++
++AC_PROG_CC
++ifdef([AC_PROG_CC_STDC], [AC_PROG_CC_STDC])
++AC_LANG([C])
++
++AC_PROG_INSTALL
++AC_PROG_RANLIB
++
++dnl
++dnl Alpha floating-point compiler option.
++dnl
++
++AC_MSG_CHECKING(for IEEE compilation options)
++AC_CACHE_VAL(ac_cv_ieee_option, [
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(,[[[
++ #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && (defined(VMS) || defined(__VMS)))
++ # error "Option needed"
++ typedef int option_needed[-1];
++ #endif
++ ]]]),
++ ac_cv_ieee_option="/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE",
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(,[[[
++ #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__) && !defined(__GNUC__))) && !(defined(VMS) || defined(__VMS)) && !defined(_CFE))
++ # error "Option needed"
++ typedef int option_needed[-1];
++ #endif
++ ]]]),
++ ac_cv_ieee_option="-ieee",
++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM(,[[[
++ #if !(defined(__alpha) && (defined(__GNUC__) && (defined(__osf__) || defined(__linux__))))
++ # error "Option needed"
++ typedef int option_needed[-1];
++ #endif
++ ]]]),
++ ac_cv_ieee_option="-mieee",
++ ac_cv_ieee_option="none"
++ )
++ )
++ )
++])
++AC_MSG_RESULT($ac_cv_ieee_option)
++if test $ac_cv_ieee_option != none; then
++ CFLAGS="${CFLAGS} ${ac_cv_ieee_option}"
++fi
++
++AC_CONFIG_FILES([Makefile])
++AC_OUTPUT
+diff -up ghostscript-9.07/trio/doc/doc_dynamic.h.gs_sprintf ghostscript-9.07/trio/doc/doc_dynamic.h
+--- ghostscript-9.07/trio/doc/doc_dynamic.h.gs_sprintf 2013-05-09 17:02:39.102447240 +0100
++++ ghostscript-9.07/trio/doc/doc_dynamic.h 2013-05-09 17:02:39.102447240 +0100
+@@ -0,0 +1,31 @@
++/*************************************************************************
++ *
++ * $Id: doc_dynamic.h,v 1.1 2001/12/27 17:29:20 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/** @addtogroup DynamicStrings Dynamic String Functions.
++Dynamic string functions.
++
++@b SYNOPSIS
++
++@verbatim
++cc ... -ltrio -lm
++
++#include <triostr.h>
++@endverbatim
++
++@b DESCRIPTION
++
++*/
+diff -up ghostscript-9.07/trio/doc/doc.h.gs_sprintf ghostscript-9.07/trio/doc/doc.h
+--- ghostscript-9.07/trio/doc/doc.h.gs_sprintf 2013-05-09 17:02:39.102447240 +0100
++++ ghostscript-9.07/trio/doc/doc.h 2013-05-09 17:02:39.102447240 +0100
+@@ -0,0 +1,172 @@
++/*************************************************************************
++ *
++ * $Id: doc.h,v 1.20 2006/08/18 11:32:08 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/**
++@mainpage
++
++@author Bjørn Reese
++@author Daniel Stenberg
++
++@section intro Introduction
++
++Trio is a fully matured and stable set of printf and string functions
++designed be used by applications with focus on portability or with the
++need for additional features that are not supported by standard stdio
++implementation.
++
++There are several cases where you may want to consider using trio:
++
++@li Portability across heterogeneous platforms.
++@li Embedded systems without stdio support.
++@li Extendability of unsupported features.
++@li Your native version does not do everything you need.
++
++When you write applications that must be portable to a wide range of
++platforms you often have to deal with inadequate implementations of the
++stdio library functions. Most notably is the lack of secure formatting
++functions, such as snprintf, or the lack of parameter reordering commonly
++used for the internationalization of applications, such as the <num>$
++modifier. Sometimes the feature you need is simply not present in stdio.
++So you end up spending much effort on determining which platforms supports
++what, and to write your own versions of various features. This is where
++trio can help you. Trio is a platform-independent implementation of the
++stdio printf and scanf functions and the string library functions.
++
++The functionality described in the stdio standards is a compromise, and
++does unfortunately not include a mechanism to extend the functionality for
++an individual application. Oftentimes an application has the need for an
++extra feature, and the application code can become much more clear and
++readable by using an extension mechanism. Trio supports a range of useful
++extensions such as user-defined specifiers, passing of arguments in arrays,
++localized string scanning, thousand-separators, and arbitrary integer bases.
++
++Trio fully implements the C99 (ISO/IEC 9899:1999) and UNIX98 (the Single
++Unix Specification, Version 2) standards, as well as many features from
++other implemenations, e.g. the GNU libc and BSD4.
++
++@section examples Examples
++
++@subsection ex1 Binary Numbers
++Output an integer as a binary number using a trio extension.
++@verbatim
++ trio_printf("%..2i\n", number);
++@endverbatim
++
++@subsection ex2 Thousand-separator
++Output a number with thousand-separator using a trio extension.
++@verbatim
++ trio_printf("%'f\n", 12345.6);
++@endverbatim
++The thousand-separator described by the locale is used.
++
++@subsection ex3 Fixed Length Array and Sticky Modifier
++Output an fixed length array of floating-point numbers.
++@verbatim
++ double array[] = {1.0, 2.0, 3.0};
++ printf("%.2f %.2f %.2f\n", array[0], array[1], array[2]);
++@endverbatim
++The same with two trio extensions (arguments are passed in an array, and
++the first formatting specifier sets the sticky option so we do not have
++to type all the formatting modifiers for the remaining formatting specifiers)
++@verbatim
++ trio_printfv("%!.2f %f %f\n", array);
++@endverbatim
++Another, and more powerful, application of being able to pass arguments in
++an array is the creation of the printf/scanf statement at run-time, where
++the formatting string, and thus the argument list, is based on an external
++configuration file.
++
++@subsection ex4 Localized scanning
++Parse a string consisting of one or more upper-case alphabetic characters
++followed by one or more numeric characters.
++@verbatim
++ sscanf(buffer, "%[A-Z]%[0-9]", alphabetic, numeric);
++@endverbatim
++The same but with locale using a trio extension.
++@verbatim
++ trio_sscanf(buffer, "%[[:upper:]]%[[:digit:]]", alphabetic, numeric);
++@endverbatim
++
++@section legal Legal Issues
++Trio is distributed under the following license, which allows practically
++anybody to use it in almost any kind of software, including proprietary
++software, without difficulty.
++
++"Copyright (C) 1998-2001 Bjorn Reese and Daniel Stenberg.
++
++Permission to use, copy, modify, and distribute this software for any
++purpose with or without fee is hereby granted, provided that the above
++copyright notice and this permission notice appear in all copies.
++
++THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER."
++
++@section contribution Contribution
++
++@subsection contribute Contribute
++We appreciate any type of contribution, from ideas over improvements to
++error corrections.
++
++The project space contains references to bug and feature tracking,
++mailing-list, and the CVS repository. We prefer communication via the
++mailing-list, but do not require you to be subscribed, because trio is a
++small project.
++
++The project space is located at http://sourceforge.net/projects/ctrio/
++
++@subsection contributors Contributors
++We have received contributions from the following persons (in alphabetic
++order sorted by surname)
++
++@li Craig Berry
++@li Karl Bochert
++@li Stan Boehm
++@li David Byron
++@li Brian Chapman
++@li Robert Collins
++@li Danny Dulai
++@li Bob Friesenhahn
++@li Jon Foster
++@li John Fotheringham
++@li Markus Henke
++@li Ken Gibson
++@li Paul Janzen
++@li Patrick Jessee
++@li Richard Jinks
++@li Tero Jänkä
++@li Howard Kapustein
++@li Rune Enggaard Lausen
++@li Mehdi Lavasani
++@li Alexander Lukyanov
++@li Andreas Maus
++@li Mikey Menezes
++@li Emmanuel Mogenet
++@li Jacob Navia
++@li Jose Ortiz
++@li Joe Orton
++@li Gisli Ottarsson
++@li Mark Pickelmann
++@li Olli Savia
++@li Shaun Tancheff
++@li Marc Werwerft
++@li Igor Zlatkovic
++
++Please let us know, and accept our apology, if we have omitted anybody.
++
++*/
+diff -up ghostscript-9.07/trio/doc/doc_printf.h.gs_sprintf ghostscript-9.07/trio/doc/doc_printf.h
+--- ghostscript-9.07/trio/doc/doc_printf.h.gs_sprintf 2013-05-09 17:02:39.102447240 +0100
++++ ghostscript-9.07/trio/doc/doc_printf.h 2013-05-09 17:02:39.102447240 +0100
+@@ -0,0 +1,532 @@
++/*************************************************************************
++ *
++ * $Id: doc_printf.h,v 1.5 2008/10/12 12:09:51 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/** @addtogroup Printf Formatted Printing Functions.
++Variations of formatted printing functions.
++
++@b SYNOPSIS
++
++@verbatim
++cc ... -ltrio -lm
++
++#include <trio.h>
++@endverbatim
++
++@b DESCRIPTION
++
++This documentation is incomplete.
++The documentation of the printf family in [C99] and [UNIX98] also applies
++to the trio counterparts.
++
++All these functions outputs a string which is formatted according to the
++@p format string and the consecutive arguments. The @p format string is
++described in the Formatting section below.
++
++@ref trio_printf, @ref trio_vprintf, and @ref trio_printfv writes the
++output to the standard output stream (stdout).
++
++@ref trio_fprintf, @ref trio_vfprintf, and @ref trio_fprintfv writes the
++output to a given output stream.
++
++@ref trio_dprintf, @ref trio_vdprintf, and @ref trio_dprintfv writes the
++output to a file descriptor (this includes, for example, sockets).
++
++@ref trio_sprintf, @ref trio_vsprintf, and @ref trio_sprintfv writes the
++output into @p buffer.
++
++@ref trio_snprintf, @ref trio_vsnprintf, and @ref trio_snprintfv writes @p
++max - 1 characters into @p buffer followed by a terminating zero character.
++If @p max is 1, then @p buffer will be an empty string. If @p max is 0,
++then @p buffer is left untouched, and can consequently be NULL. The number
++of characters that would have been written to @p buffer, had there been
++sufficient space, is returned.
++
++@ref trio_snprintfcat appends the formatted text at the end of @p buffer.
++
++@ref trio_asprintf, @ref trio_vasprintf, and @ref trio_asprintfv allocates
++and returns an allocated string in @p buffer containing the formatted text.
++
++@b FORMATTING
++
++The @p format string can contain normal text and conversion indicators.
++The normal text can be any character except the nil character (\000 =
++'\0') and the percent character (\045 = '%'). Conversion indicators
++consists of an indication character (%), followed by zero or more conversion
++modifiers, and exactly one conversion specifier.
++
++@b Modifiers
++
++Some modifiers exhibit the same behaviour for all specifiers, other modifiers
++indicate different behaviours for different specifiers, and other modifiers
++are only applicable to certain specifiers. The relationship is described for
++each modifier. The number 9 is used to denotes an arbitrary integer.
++
++@em Positional ( @c 9$ ) [UNIX98]
++
++Normally the arguments supplied to these functions are interpreted
++incrementially from left to right. Arguments can be referenced specifically in
++the format string. The modifier n$ selects the nth argument. The first
++argument is referred as 1$. If this modifier is used, it must be the first
++modifier after the indication character. n$ can also be used for argument
++width, precision, and base.
++
++The performance penalty of using positionals is almost neglible (contrary to
++most other printf implementations).
++
++@li @em Reference @em Mix.
++Mixing normal and positional specifiers is allowed [TRIO]. For example,
++@verbatim
++ trio_printf("%d %3$d %2$d\n", 1, 2, 3);
++@endverbatim
++results in
++@verbatim
++ 1 3 2
++@endverbatim
++Arguments for the printf family are passed on the stack. On most platforms it
++is not possible to determine the size of individual stack elements, so it is
++essential that the format string corresponds exactly to the passed arguments.
++If this is not the case, incorrect values may be put into the result.
++
++@li @em Reference @em Gap.
++For the same reason it is also essential that the format string does not
++contain any &quot;gaps&quot; in the positional arguments. For example,
++@verbatim
++ trio_printf("%1$d %3$d\n", 1, 2, 3);
++@endverbatim
++is NOT allowed. The format string parser has no knowledge about whether the
++second argument is, say, an integer or a long double (which have different
++sizes).
++@verbatim
++@endverbatim
++[UNIX98] describes this as unspecified behaviour. [TRIO] will detect reference
++gaps and return an error.
++
++@li @em Double @em Reference.
++It is also not allowed to reference an argument twice or more. For example,
++@verbatim
++ trio_printf("%1$d %1$lf\n", 1);
++@endverbatim
++is NOT allowed, because it references the first argument as two differently
++sized objects.
++@verbatim
++@endverbatim
++[UNIX98] describes this as unspecified behaviour. [TRIO] will detect double
++references and return an error.
++
++The following two statements are equivalent
++@verbatim
++ trio_printf("|%d %s\n|", 42, "meanings");
++ |42 meanings|
++
++ trio_printf("|%1$d %2$s|\n", 42, "meanings");
++ |42 meanings|
++@endverbatim
++
++@em Width ( @c 9 )
++
++Specifies the minimum width of a field. If the fields has less characters than
++specified by the width, the field will be left adjusted and padded by spaces.
++The adjustment and padding can be changed by the Alignment ( @c - ) and
++Padding ( @c 0 ) modifiers.
++
++The width is specified as a number. If an asterix ( @c * ) is used instead, the
++width will be read from the argument list.
++
++Prefixes, such as 0x for hexadecimal integers, are part of width.
++@verbatim
++ trio_printf("|%10i|\n", 42);
++ | 42|
++@endverbatim
++
++@em Precision ( @c .9 )
++
++The precision has different semantics for the various data types.
++The precision specifies the maximum number of printed characters for strings,
++the number of digits after the decimal-point for floating-point numbers,
++the number of significant digits for the @c g (and @c G) representation of
++floating-point numbers, the minimum number of printed digits for integers.
++@verbatim
++ trio_printf("|%10.8i|%.8i|\n", 42, 42);
++ | 00000042|00000042|
++@endverbatim
++
++@em Base ( @c ..9 ) [TRIO]
++
++Sets the base that the associated integer must be converted to. The base can
++be between 2 and 36 (both included).
++@verbatim
++ trio_printf("|%10.8.2i|%10..2i|%..2i|\n", 42, 42, 42);
++ | 00101010| 101010|101010|
++
++ trio_printf("|%*.8.*i|\n", 10, 2, 42);
++ | 00101010|
++@endverbatim
++
++@em Padding ( @c 0 )
++
++Integer and floating point numbers are prepended by zeros. The number of
++leading zeros are determined by the precision. If precision is not present,
++width is used instead.
++
++@em Short ( @c h )
++
++Integer arguments are read as an ( @c unsigned ) @c short @c int. String
++and character arguments are read as @c char @c * and @c char respectively.
++
++@em Short @em short ( @c hh ) [C99, GNU]
++
++The argument is read as an ( @c unsigned ) @c char.
++
++@em Fixed @em Size ( @c I ) [MSVC]
++
++The argument is read as a fixed sized integer. The modifier is followed by
++a number, which specifies the number of bits in the integer, and can be one
++of the following
++
++@li @c I8
++@li @c I16
++@li @c I32
++@li @c I64 (if 64-bits integers are supported)
++
++Works only for integers (i, u, d, o, x, X)
++
++@em Largest ( @c j ) [C99]
++
++The argument is read as an @c intmax_t / @c uintmax_t, which is defined to
++be the largest signed/unsigned integer.
++
++@em Long ( @c l )
++
++An integral argument is read as an ( @c unsigned ) @c long @c int. A string
++argument is read as a @c wchar_t @c *, and output as a multi-byte character
++sequence.
++
++@em Long @em long ( @c ll ) [C99, UNIX98, GNU]
++
++The argument is read as an ( @c unsigned ) @c long @c long @c int.
++
++@em Long @em double ( @c L ) [C99, UNIX98, GNU]
++
++The argument is read as a @c long @c double.
++
++@em ptrdiff_t ( @c t ) [C99]
++
++The argument is read as a @c ptrdiff_t, which is defined to be the signed
++integer type of the result of subtracting two pointers.
++
++@em Quad ( @c q ) [BSD, GNU]
++
++Corresponds to the long long modifier ( @c ll ).
++
++@em Wide ( @c w ) [MISC]
++
++For a string argument this is equivalent to using the long modifier ( @c l ).
++
++@em size_t ( @c z ) [C99]
++
++The argument is read as a @c size_t, which is defined to be the type
++returned by the @c sizeof operator.
++
++@em size_t ( @c Z ) [GNU]
++
++Corresponds to the size_t modifier ( @c z ).
++
++@em Alternative ( @c # )
++
++Prepend radix indicator for hexadecimal, octal, and binary integer numbers
++and for pointers.
++Always add a decimal-point for floating-point numbers.
++Escape non-printable characters for strings.
++
++@em Spacing ( )
++
++Prepend leading spaces when necessary.
++
++@em Sign ( @c + )
++
++Always prepend a sign to numbers. Normally only the negative sign is prepended
++to a number. With this modifier the positive sign may also be prepended.
++
++@em Alignment ( @c - )
++
++The output will be left-justified in the field specified by the width.
++
++@em Argument ( @c * )
++
++Width, precision, or base is read from the argument list, rather than from
++the formatting string.
++
++@em Quote / @em Grouping ( @c ' ) [MISC]
++
++Groups integers and the integer-part of floating-point numbers according to
++the locale. Quote strings and characters.
++
++@em Sticky ( @c ! ) [TRIO]
++
++The modifiers listed for the current specifier will be reused by subsequent
++specifiers of the same group.
++The following specifier groups exists
++@li Integer ( @c i, @c u, @c d, @c o, @c x, @c X )
++@li Floating-point ( @c f, @c F, @c e, @c E, @c g, @c G, @c a, @c A )
++@li Character ( @c c )
++@li String ( @c s )
++@li Pointer ( @c p )
++@li Count ( @c n )
++@li Errno ( @c m )
++@li Group ( @c [] )
++
++The sticky modifiers are active until superseeded by other sticky modifiers,
++or the end of the format string is reached.
++Local modifiers overrides sticky modifiers for the given specifier only.
++@verbatim
++ trio_printf("|%!08#x|%04x|%x|\n", 42, 42, 42);
++ |0x00002a|0x2a|0x00002a|
++@endverbatim
++
++@b Specifiers
++
++@em Percent ( @c % )
++
++Produce a percent ( @c % ) character. This is used to quote the indication
++character. No modifiers are allowed.
++The full syntax is @c %%.
++@verbatim
++ trio_printf("Percent is %%\n");
++ Percent is %
++@endverbatim
++
++@em Hex @em floats ( @c a, @c A ) [C99]
++
++Output a hexadecimal (base 16) representation of a floating point number. The
++number is automatically preceeded by @c 0x ( or @c 0X ). The exponent is
++@c p ( or @c P ).
++@verbatim
++ trio_printf("|%a|%A|\n", 3.1415, 3.1415e20);
++ |0x3.228bc|0X3.228BCP+14|
++@endverbatim
++
++@em Binary @em numbers ( @c b, @c B ) [MISC - SCO UnixWare 7]
++
++DEPRECATED: Use Base modifier @c %..2i instead.
++
++@em Character ( @c c )
++
++Output a single character.
++
++@li Quote ( @c ' ) [TRIO].
++Quote the character.
++
++@em Decimal ( @c d )
++
++Output a decimal (base 10) representation of a number.
++
++@li Grouping ( @c ' ) [TRIO].
++The number is separated by the locale thousand separator.
++@verbatim
++ trio_printf("|%'ld|\n", 1234567);
++ |1,234,567|
++@endverbatim
++
++@em Floating-point ( @c e, @c E)
++
++Output a decimal floating-point number.
++The style is @c [-]9.99e[-]9, where
++@li @c [-]9.99 is the mantissa (as described for the @c f, @c F specifier), and
++@li @c e[-]9 is the exponent indicator (either @c e or @c E, depending on the
++floating-point specifier), followed by an optional sign and the exponent
++
++If the precision is wider than the maximum number of digits that can be
++represented by the floating-point unit, then the number will be adequately
++rounded. For example, assuming DBL_DIG is 15
++@verbatim
++ trio_printf("|%.18e|\n", (1.0 / 3.0));
++ |3.333333333333333000e-01|
++@endverbatim
++
++@em Floating-point ( @c f, @c F )
++
++Output a decimal floating-point number.
++The style is @c [-]9.99, where
++@li @c [-] is an optional sign (either @c + or @c -),
++@li @c 9 is the integer-part (possibly interspersed with thousand-separators),
++@li @c . is the decimal-point (depending on the locale), and
++@li @c 99 is the fractional-part.
++
++If more digits are needed to output the number, than can be represented with
++the accuracy of the floating-point unit, then the number will be adequately
++rounded. For example, assuming that DBL_DIG is 15
++@verbatim
++ trio_printf("|%f|\n", (2.0 / 3.0) * 1E18);
++ |666666666666666700.000000|
++@endverbatim
++
++The following modifiers holds a special meaning for this specifier
++@li Alternative ( @c # ) [C99].
++Add decimal point.
++@li Grouping ( @c ' ) [TRIO].
++Group integer part of number into thousands (according to locale).
++
++@em Floating-point ( @c g, @c G)
++
++Output a decimal floating-point representation of a number. The format of
++either the @c f, @c F specifier or the @c e, @c E specifier is used, whatever
++produces the shortest result.
++
++@em Integer ( @c i )
++
++Output a signed integer. Default base is 10.
++
++@em Errno ( @c m ) [GNU]
++
++@em Count ( @c n )
++
++Insert into the location pointed to by the argument, the number of octets
++written to the output so far.
++
++@em Octal ( @c o )
++
++Output an octal (base 8) representation of a number.
++
++@em Pointer ( @c p )
++
++Ouput the address of the argument. The address is printed as a hexadecimal
++number. If the argument is the NULL pointer the text @c (nil) will be used
++instead.
++@li Alternative ( @c # ) [TRIO].
++Prepend 0x
++
++@em String ( @c s, @c S )
++
++Output a string. The argument must point to a zero terminated string. If the
++argument is the NULL pointer the text @c (nil) will be used instead.
++@c S is equivalent to @c ls.
++@li Alternative ( @c # ) [TRIO].
++Escape non-printable characters.
++
++Non-printable characters are converted into C escapes, or hexadecimal numbers
++where no C escapes exists for the character. The C escapes, the hexadecimal
++number, and all backslashes are prepended by a backslash ( @c \ ).
++The supported C escapes are
++@li @c \a (\007) = alert
++@li @c \b (\010) = backspace
++@li @c \f (\014) = formfeed
++@li @c \n (\012) = newline
++@li @c \r (\015) = carriage return
++@li @c \t (\011) = horizontal tab
++@li @c \v (\013) = vertical tab
++
++@verbatim
++ trio_printf("|One %s Three|One %'s Three|\n", "Two", "Two");
++ |One Two Three|One "Two" Three|
++
++ trio_printf("|Argument missing %s|\n", NULL);
++ |Argument missing (nil)|
++
++ trio_printf("|%#s|\n", "\007 \a.");
++ |\a \a.|
++@endverbatim
++
++@em Unsigned ( @c u )
++
++Output an unsigned integer. Default base is 10.
++
++@em Hex ( @c x, @c X )
++
++Output a hexadecimal (base 16) representation of a number.
++
++@li Alternative ( @c # ).
++Preceed the number by @c 0x ( or @c 0X ). The two characters are counted
++as part of the width.
++
++@em User-defined ( @c <> )
++
++Invoke user-defined formatting.
++See @ref trio_register for further information.
++
++@b RETURN @b VALUES
++
++All functions returns the number of outputted characters. If an error occured
++then a negative error code is returned [TRIO]. Note that this is a deviation
++from the standard, which simply returns -1 (or EOF) and errno set
++appropriately.
++The error condition can be detected by checking whether the function returns
++a negative number or not, and the number can be parsed with the following
++macros. The error codes are primarily intended as debugging aide for the
++developer.
++
++@li TRIO_EINVAL: Invalid argument.
++@li TRIO_ETOOMANY: Too many arguments.
++@li TRIO_EDBLREF: Double argument reference.
++@li TRIO_EGAP: Argument reference gap.
++@li TRIO_ENOMEM: Out of memory.
++@li TRIO_ERANGE: Invalid range.
++@li TRIO_ERRNO: The error is specified by the errno variable.
++
++Example:
++@verbatim
++ int rc;
++
++ rc = trio_printf("%r\n", 42);
++ if (rc < 0) {
++ if (TRIO_ERROR_CODE(rc) != TRIO_EOF) {
++ trio_printf("Error: %s at position %d\n",
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ }
++ }
++@endverbatim
++
++@b SEE @b ALSO
++
++@e trio_scanf, @e trio_register.
++
++@b NOTES
++
++The printfv family uses an array rather than the stack to pass arguments.
++This means that @c short @c int and @c float values will not be handled by
++the default argument promotion in C. Instead, these values must be explicitly
++converted with the Short (h) modifier in both cases.
++
++Example:
++@verbatim
++ void *array[2];
++ float float_number = 42.0;
++ short short_number = 42;
++
++ array[0] = &float_number;
++ array[1] = &short_number;
++
++ trio_printfv("%hf %hd\n", array); /* CORRECT */
++ trio_printfv("%f %d\n", array); /* WRONG */
++@endverbatim
++
++@b CONFORMING @b TO
++
++Throughout this document the following abbreviations have been used to
++indicate what standard a feature conforms to. If nothing else is indicated
++ANSI C (C89) is assumed.
++
++@li [C89] ANSI X3.159-1989
++@li [C99] ISO/IEC 9899:1999
++@li [UNIX98] The Single UNIX Specification, Version 2
++@li [BSD] 4.4BSD
++@li [GNU] GNU libc
++@li [MSVC] Microsoft Visual C
++@li [MISC] Other non-standard sources
++@li [TRIO] Extensions specific for this package
++
++*/
+diff -up ghostscript-9.07/trio/doc/doc_register.h.gs_sprintf ghostscript-9.07/trio/doc/doc_register.h
+--- ghostscript-9.07/trio/doc/doc_register.h.gs_sprintf 2013-05-09 17:02:39.102447240 +0100
++++ ghostscript-9.07/trio/doc/doc_register.h 2013-05-09 17:02:39.102447240 +0100
+@@ -0,0 +1,384 @@
++/*************************************************************************
++ *
++ * $Id: doc_register.h,v 1.3 2008/10/12 12:09:51 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/** @addtogroup UserDefined User-defined Formatted Printing Functions.
++Functions for using customized formatting specifiers.
++
++@b SYNOPSIS
++
++@verbatim
++cc ... -ltrio -lm
++
++#include <trio.h>
++#include <triop.h>
++@endverbatim
++
++@b DESCRIPTION
++
++This documentation is incomplete.
++
++@b User-defined @b Specifier
++
++The user-defined specifier consists of a start character (\074 = '<'), an
++optional namespace string followed by a namespace separator (\072 = ':'),
++a format string, an optional skipping separator (\174 = '|'), and an end
++character (\076 = '>').
++
++The namespace string can consist of alphanumeric characters, and is used to
++define a named reference (see below). The namespace is case-sensitive. If no
++namespace is specified, then we use an unnamed reference (see below).
++
++The format can consist of any character except the end character ('>'), the
++namespace separator (':'), the skipping separator ('|'), and the nil character
++(\000).
++
++Any modifier can be used together with the user-defined specifier.
++
++There are two formats for invoking a user-defined specifier. The first format
++is an extension of the normal printf/scanf formatting. It uses the percent
++character (\045 = '%') followed by optional qualifiers and a specifier. For
++example:
++
++@verbatim
++ trio_printf("%<format>\n", my_handle, my_data);
++@endverbatim
++
++Some C compilers can issue a warning if there is a mismatch between specifiers
++and arguments. Unfortunately, these warnings does not work with the first
++format for user-defined specifiers. Therefore the second format has been
++introduced. The second format can only be applied to user-defined specifiers.
++
++The second format starts with a dollar character (\044 = '$') instead of the
++percent character, and is followed by optional qualifiers and the user-defined
++specifier. If the specifier contains a pipe character (\174 = '|'), then
++everything between the pipe character and the end character ('>') is ignored.
++The ignored part can be used to list the normal specifiers that the C compiler
++uses to determine mismatches. For example:
++
++@verbatim
++ trio_printf("$<format|%p%p>\n", my_handle, my_data);
++@endverbatim
++
++@b Registering
++
++A user-defined specifier must be registered before it can be used.
++Unregistered user-defined specifiers are ignored. The @ref trio_register
++function is used to register a user-defined specifier. It takes two argument,
++a callback function and a namespace, and it returns a handle. The handle must
++be used to unregister the specifier later.
++
++The following example registers a user-define specifier with the "my_namespace"
++namespace:
++
++@verbatim
++ my_handle = trio_register(my_callback, "my_namespace");
++@endverbatim
++
++There can only be one user-defined specifier with a given namespace. There
++can be an unlimited number (subject to maximum length of the namespace) of
++different user-defined specifiers.
++
++Passing NULL as the namespace argument results in an anonymous reference.
++There can be an unlimited number of anonymous references.
++
++@b REFERENCES
++
++There are two ways that a registered callback can be called. Either the
++user-defined specifier must contain the registered namespace in the format
++string, or the handle is passed as an argument to the formatted printing
++function.
++
++If the namespace is used, then a user-defined pointer must be passed as an
++argument:
++
++@verbatim
++ trio_printf("%<my_namespace:format>\n", my_data);
++@endverbatim
++
++If the handle is used, then the user-defined specifier must not contain a
++namespace. Instead the handle must be passed as an argument, followed by a
++user-defined pointer:
++
++@verbatim
++ trio_printf("%<format>\n", my_handle, my_data);
++@endverbatim
++
++The two examples above are equivalent.
++
++There must be exactly one user-defined pointer per user-defined specifier.
++This pointer can be used within the callback function with the
++@ref trio_get_argument getter function (see below).
++
++The format string is optional. It can be used within the callback function
++with the @ref trio_get_format getter function.
++
++@b Anonymous @b References
++Anonymous references are specified by passing NULL as the namespace.
++
++The handle must be passed as an argument followed by a user-defined pointer.
++No namespace can be specified.
++
++@verbatim
++ anon_handle = trio_register(callback, NULL);
++ trio_printf("%<format>\n", anon_handle, my_data);
++@endverbatim
++
++@b Restrictions
++
++@li The length of the namespace string cannot exceed 63 characters.
++@li The length of the user-defined format string cannot exceed 255 characters.
++@li User-defined formatting cannot re-define existing specifiers.
++This restriction was imposed because the existing formatting specifiers have
++a well-defined behaviour, and any re-definition would apply globally to an
++application (imagine a third-party library changing the behaviour of a
++specifier that is crusial to your application).
++
++@b CALLBACK @b FUNCTION
++
++The callback function will be called if a matching user-defined specifier
++is found within the formatting string. The callback function takes one input
++parameter, an opaque reference which is needed by the private functions. It
++returns an @c int, which is currently ignored. The prototype is
++
++@verbatim
++ int (*trio_callback_t)(void *ref);
++@endverbatim
++
++See the Example section for full examples.
++
++@b PRINTING @b FUNCTIONS
++
++The following printing functions must only be used inside a callback function.
++These functions will print to the same output medium as the printf function
++which invoked the callback function. For example, if the user-defined
++specifier is used in an sprintf function, then these print functions will
++output their result to the same string.
++
++@b Elementary @b Printing
++
++There are a number of function to print elementary data types.
++
++@li @ref trio_print_int Print a signed integer. For example:
++@verbatim
++ trio_print_int(42);
++@endverbatim
++@li @ref trio_print_uint Print an unsigned integer.
++@li @ref trio_print_double Print a floating-point number.
++@li @ref trio_print_string Print a string. For example:
++@verbatim
++ trio_print_string("Hello World");
++ trio_print_string(trio_get_format());
++@endverbatim
++@li @ref trio_print_pointer Print a pointer.
++
++@b Formatted @b Printing
++
++The functions @ref trio_print_ref, @ref trio_vprint_ref, and
++@ref trio_printv_ref outputs a formatted string just like its printf
++equivalents.
++
++@verbatim
++ trio_print_ref(ref, "There are %d towels\n", 42);
++ trio_print_ref(ref, "%<recursive>\n", recursive_writer, trio_get_argument(ref));
++@endverbatim
++
++@b GETTER @b AND @b SETTER @b FUNCTIONS
++
++The following getter and setter functions must only be used inside a callback
++function. They can either operate on the modifiers or on special data.
++
++@b Modifiers
++
++The value of a modifier, or a boolean indication of its presence or absence,
++can be found or set with the getter and setter functions.
++The generic prototypes of the these getter and setter functions are
++
++@verbatim
++ int trio_get_???(void *ref);
++ void trio_set_???(void *ref, int);
++@endverbatim
++
++where @c ??? refers to a modifier. For example, to get the width of the
++user-defined specifier use
++
++@verbatim
++ int width = trio_get_width(ref);
++@endverbatim
++
++@b Special @b Data
++
++Consider the following user-defined specifier, in its two possible referencing
++presentations.
++
++@verbatim
++ trio_printf("%<format>\n", namespace_writer, argument);
++ trio_printf("%<namespace:format>\n", argument);
++@endverbatim
++
++@ref trio_get_format will get the @p format string, and
++@ref trio_get_argument} will get the @p argument parameter.
++There are no associated setter functions.
++
++@b EXAMPLES
++
++The following examples show various types of user-defined specifiers. Although
++each specifier is demonstrated in isolation, they can all co-exist within the
++same application.
++
++@b Time @b Example
++
++Print the time in the format "HOUR:MINUTE:SECOND" if "time" is specified inside
++the user-defined specifier.
++
++@verbatim
++ static int time_print(void *ref)
++ {
++ const char *format;
++ time_t *data;
++ char buffer[256];
++
++ format = trio_get_format(ref);
++ if ((format) && (strcmp(format, "time") == 0)) {
++ data = trio_get_argument(ref);
++ if (data == NULL)
++ return -1;
++ strftime(buffer, sizeof(buffer), "%H:%M:%S", localtime(data));
++ trio_print_string(ref, buffer);
++ }
++ return 0;
++ }
++@endverbatim
++
++@verbatim
++ int main(void)
++ {
++ void *handle;
++ time_t now = time(NULL);
++
++ handle = trio_register(time_print, "my_time");
++
++ trio_printf("%<time>\n", handle, &now);
++ trio_printf("%<my_time:time>\n", &now);
++
++ trio_unregister(handle);
++ return 0;
++ }
++@endverbatim
++
++@b Complex @b Numbers @b Example
++
++Consider a complex number consisting of a real part, re, and an imaginary part,
++im.
++
++@verbatim
++ struct Complex {
++ double re;
++ double im;
++ };
++@endverbatim
++
++This example can print such a complex number in one of two formats.
++The default format is "re + i im". If the alternative modifier is used, then
++the format is "r exp(i theta)", where r is the length of the complex vector
++(re, im) and theta is its angle.
++
++@verbatim
++ static int complex_print(void *ref)
++ {
++ struct Complex *data;
++ const char *format;
++
++ data = (struct Complex *)trio_get_argument(ref);
++ if (data) {
++ format = trio_get_format(ref);
++
++ if (trio_get_alternative(ref)) {
++ double r, theta;
++
++ r = sqrt(pow(data->re, 2) + pow(data->im, 2));
++ theta = acos(data->re / r);
++ trio_print_ref(ref, "%#f exp(i %#f)", r, theta);
++
++ } else {
++ trio_print_ref(ref, "%#f + i %#f", data->re, data->im);
++ }
++ }
++ return 0;
++ }
++@endverbatim
++
++@verbatim
++ int main(void)
++ {
++ void *handle;
++
++ handle = trio_register(complex_print, "complex");
++
++ /* Normal format. With handle and the with namespace */
++ trio_printf("%<>\n", handle, &complex);
++ trio_printf("%<complex:>\n", &complex);
++ /* In exponential notation */
++ trio_printf("%#<>\n", handle, &complex);
++ trio_printf("%#<complex:unused data>\n", &complex);
++
++ trio_unregister(handle);
++ return 0;
++ }
++@endverbatim
++
++@b RETURN @b VALUES
++
++@ref trio_register returns a handle, or NULL if an error occured.
++
++@b SEE @b ALSO
++
++@ref trio_printf
++
++@b NOTES
++
++User-defined specifiers, @ref trio_register, and @ref trio_unregister are
++not thread-safe. In multi-threaded applications they must be guarded by
++mutexes. Trio provides two special callback functions, called ":enter" and
++":leave", which are invoked every time a thread-unsafe operation is attempted.
++As the thread model is determined by the application, these callback functions
++must be implemented by the application.
++
++The following callback functions are for demonstration-purposes only.
++Replace their bodies with locking and unlocking of a mutex to achieve
++thread-safety.
++@verbatim
++ static int enter_region(void *ref)
++ {
++ fprintf(stderr, "Enter Region\n");
++ return 1;
++ }
++
++ static int leave_region(void *ref)
++ {
++ fprintf(stderr, "Leave Region\n");
++ return 1;
++ }
++@endverbatim
++These two callbacks must be registered before other callbacks are registered.
++@verbatim
++ trio_register(enter_region, ":enter");
++ trio_register(leave_region, ":leave");
++
++ another_handle = trio_register(another_callback, NULL);
++@endverbatim
++
++*/
+diff -up ghostscript-9.07/trio/doc/doc_scanf.h.gs_sprintf ghostscript-9.07/trio/doc/doc_scanf.h
+--- ghostscript-9.07/trio/doc/doc_scanf.h.gs_sprintf 2013-05-09 17:02:39.102447240 +0100
++++ ghostscript-9.07/trio/doc/doc_scanf.h 2013-05-09 17:02:39.102447240 +0100
+@@ -0,0 +1,120 @@
++/*************************************************************************
++ *
++ * $Id: doc_scanf.h,v 1.1 2001/12/27 17:29:20 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/** @addtogroup Scanf Formatted Scanning Functions.
++Variations of formatted scanning functions.
++
++@b SYNOPSIS
++
++@verbatim
++cc ... -ltrio -lm
++
++#include <trio.h>
++@endverbatim
++
++@b DESCRIPTION
++
++This documentation is incomplete.
++The documentation of the scanf family in [C99] and [UNIX98] also applies
++to the trio counterparts.
++
++@b SCANNING
++
++The scanning is controlled by the format string.
++The format string can contain normal text and conversion indicators.
++The normal text can be any character except the nil character
++(\000) and the percent character (\045 = '\%').
++Conversion indicators consists of an indication character (%), followed by
++zero or more conversion modifiers, and exactly one conversion specifier.
++
++@b Modifiers
++
++@em Positional ( @c 9$ ) [UNIX98]
++
++See @ref trio_printf.
++
++@b Specifiers
++
++@em Percent ( @c % )
++
++@em Character ( @c c )
++
++@em Decimal ( @c d )
++
++@em Floating-point ( @c a, @c A, @c e, @c E, @c f, @c F, @c g, @c G )
++
++@em Integer ( @c i )
++
++@em Count ( @c n )
++
++@em Octal ( @c o )
++
++@em Pointer ( @c p )
++
++@em String ( @c s )
++
++@em Unsigned ( @c u )
++
++@em Hex ( @c x, @c X )
++
++@em Scanlist ( @c [] )
++
++Scanlist Exclusion (@c ^ )
++
++Scanlist Range ( @c - ) [TRIO]
++
++@li Only increasing ranges, i.e. @c [a-b], but not @c [b-a].
++@li Transitive ranges, ie. @c [a-b-c] equals @c [a-c].
++@li Trailing minus, ie. @c [a-] is interpreted as an @c a and a @c -.
++@li Duplicates are ignored.
++
++Scanlist Equivalence Class Expression ( @c [= @c =] ) [TRIO]
++
++Locale dependent (LC_COLLATE).
++Only one expression can appear inside the delimiters.
++@li @c [=a=] All letters in the same equivalence class as the letter @c a.
++@verbatim
++ trio_scanf("%[[=a=]b]\n", buffer);
++ trio_scanf("%[[=a=][=b=]]\n", buffer);
++@endverbatim
++
++Scanlist Character Class Expression ( @c [: @c :]) [TRIO]
++Locale dependent (LC_CTYPE).
++Only one expression can appear inside the delimiters.
++@li @c [:alnum:] Same as @c [:alpha:] and @c [:digit:]
++@li @c [:alpha:] Same as @c [:lower:] and @c [:upper:]
++@li @c [:cntrl:] Control characters
++@li @c [:digit:] Decimal digits
++@li @c [:graph:] Printable characters except space
++@li @c [:lower:] Lower case alphabetic letters
++@li @c [:print:] Printable characters
++@li @c [:punct:] Punctuation
++@li @c [:space:] Whitespace characters
++@li @c [:upper:] Upper case alphabetic letters
++@li @c [:xdigit:] Hexadecimal digits
++@verbatim
++ trio_scanf("%[[:alnum:]]\n", buffer);
++ trio_scanf("%[[:alpha:][:digit:]]\n", buffer);
++@endverbatim
++
++@b RETURN @b VALUES
++
++@b SEE @b ALSO
++
++@ref trio_printf
++
++*/
+diff -up ghostscript-9.07/trio/doc/doc_static.h.gs_sprintf ghostscript-9.07/trio/doc/doc_static.h
+--- ghostscript-9.07/trio/doc/doc_static.h.gs_sprintf 2013-05-09 17:02:39.103447244 +0100
++++ ghostscript-9.07/trio/doc/doc_static.h 2013-05-09 17:02:39.103447244 +0100
+@@ -0,0 +1,61 @@
++/*************************************************************************
++ *
++ * $Id: doc_static.h,v 1.1 2001/12/27 17:29:20 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/** @addtogroup StaticStrings Static String Functions.
++Replacements for the standard C string functions.
++
++@b SYNOPSIS
++
++@verbatim
++cc ... -ltrio -lm
++
++#include <triostr.h>
++@endverbatim
++
++@b DESCRIPTION
++
++This package renames, fixes, and extends the standard C string handling
++functions.
++
++@b Naming
++
++Renaming is done to provide more clear names, to provide a consistant naming
++and argument policy, and to hide portability issues.
++
++@li All functions starts with "trio_".
++@li Target is always the first argument, if present, except where the target
++is optional, such as @ref trio_to_double.
++@li Functions requiring a size for target includes "_max" in its name, and
++the size is always the second argument.
++@li Functions performing case-sensitive operations includes "_case" in its
++name.
++
++@b Fixing
++
++Fixing is done to avoid subtle error conditions.
++For example, @c strncpy does not terminate the result with a zero if the
++source string is bigger than the maximal length, so technically the result
++is not a C string anymore. @ref trio_copy_max makes sure that the result
++is zero terminated.
++
++@b Extending
++
++Extending is done to provide a richer set of fundamental functions.
++This includes functionality such as wildcard matching ( @c trio_match )
++and calculation of hash values ( @c trio_hash ).
++
++*/
+diff -up ghostscript-9.07/trio/doc/footer.html.gs_sprintf ghostscript-9.07/trio/doc/footer.html
+--- ghostscript-9.07/trio/doc/footer.html.gs_sprintf 2013-05-09 17:02:39.103447244 +0100
++++ ghostscript-9.07/trio/doc/footer.html 2013-05-09 17:02:39.103447244 +0100
+@@ -0,0 +1,4 @@
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/doc/header.html.gs_sprintf ghostscript-9.07/trio/doc/header.html
+--- ghostscript-9.07/trio/doc/header.html.gs_sprintf 2013-05-09 17:02:39.103447244 +0100
++++ ghostscript-9.07/trio/doc/header.html 2013-05-09 17:02:39.103447244 +0100
+@@ -0,0 +1,8 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
+diff -up ghostscript-9.07/trio/doc/trio.cfg.gs_sprintf ghostscript-9.07/trio/doc/trio.cfg
+--- ghostscript-9.07/trio/doc/trio.cfg.gs_sprintf 2013-05-09 17:02:39.103447244 +0100
++++ ghostscript-9.07/trio/doc/trio.cfg 2013-05-09 17:02:39.103447244 +0100
+@@ -0,0 +1,873 @@
++# Doxyfile 1.2.12
++
++# This file describes the settings to be used by the documentation system
++# doxygen (www.doxygen.org) for a project
++#
++# All text after a hash (#) is considered a comment and will be ignored
++# The format is:
++# TAG = value [value, ...]
++# For lists items can also be appended using:
++# TAG += value [value, ...]
++# Values that contain spaces should be placed between quotes (" ")
++
++#---------------------------------------------------------------------------
++# General configuration options
++#---------------------------------------------------------------------------
++
++# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
++# by quotes) that should identify the project.
++
++PROJECT_NAME = TRIO
++
++# The PROJECT_NUMBER tag can be used to enter a project or revision number.
++# This could be handy for archiving the generated documentation or
++# if some version control system is used.
++
++PROJECT_NUMBER =
++
++# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
++# base path where the generated documentation will be put.
++# If a relative path is entered, it will be relative to the location
++# where doxygen was started. If left blank the current directory will be used.
++
++OUTPUT_DIRECTORY =
++
++# The OUTPUT_LANGUAGE tag is used to specify the language in which all
++# documentation generated by doxygen is written. Doxygen will use this
++# information to generate all constant output in the proper language.
++# The default language is English, other supported languages are:
++# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French,
++# German, Hungarian, Italian, Japanese, Korean, Norwegian, Polish,
++# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish.
++
++OUTPUT_LANGUAGE = English
++
++# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
++# documentation are documented, even if no documentation was available.
++# Private class members and static file members will be hidden unless
++# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
++
++EXTRACT_ALL = NO
++
++# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
++# will be included in the documentation.
++
++EXTRACT_PRIVATE = NO
++
++# If the EXTRACT_STATIC tag is set to YES all static members of a file
++# will be included in the documentation.
++
++EXTRACT_STATIC = NO
++
++# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
++# undocumented members of documented classes, files or namespaces.
++# If set to NO (the default) these members will be included in the
++# various overviews, but no documentation section is generated.
++# This option has no effect if EXTRACT_ALL is enabled.
++
++HIDE_UNDOC_MEMBERS = YES
++
++# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
++# undocumented classes that are normally visible in the class hierarchy.
++# If set to NO (the default) these class will be included in the various
++# overviews. This option has no effect if EXTRACT_ALL is enabled.
++
++HIDE_UNDOC_CLASSES = YES
++
++# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
++# include brief member descriptions after the members that are listed in
++# the file and class documentation (similar to JavaDoc).
++# Set to NO to disable this.
++
++BRIEF_MEMBER_DESC = YES
++
++# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
++# the brief description of a member or function before the detailed description.
++# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
++# brief descriptions will be completely suppressed.
++
++REPEAT_BRIEF = YES
++
++# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
++# Doxygen will generate a detailed section even if there is only a brief
++# description.
++
++ALWAYS_DETAILED_SEC = NO
++
++# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
++# path before files name in the file list and in the header files. If set
++# to NO the shortest path that makes the file name unique will be used.
++
++FULL_PATH_NAMES = NO
++
++# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
++# can be used to strip a user defined part of the path. Stripping is
++# only done if one of the specified strings matches the left-hand part of
++# the path. It is allowed to use relative paths in the argument list.
++
++STRIP_FROM_PATH =
++
++# The INTERNAL_DOCS tag determines if documentation
++# that is typed after a \internal command is included. If the tag is set
++# to NO (the default) then the documentation will be excluded.
++# Set it to YES to include the internal documentation.
++
++INTERNAL_DOCS = NO
++
++# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
++# doxygen to hide any special comment blocks from generated source code
++# fragments. Normal C and C++ comments will always remain visible.
++
++STRIP_CODE_COMMENTS = YES
++
++# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
++# file names in lower case letters. If set to YES upper case letters are also
++# allowed. This is useful if you have classes or files whose names only differ
++# in case and if your file system supports case sensitive file names. Windows
++# users are adviced to set this option to NO.
++
++CASE_SENSE_NAMES = NO
++
++# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
++# (but less readable) file names. This can be useful is your file systems
++# doesn't support long names like on DOS, Mac, or CD-ROM.
++
++SHORT_NAMES = NO
++
++# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
++# will show members with their full class and namespace scopes in the
++# documentation. If set to YES the scope will be hidden.
++
++HIDE_SCOPE_NAMES = NO
++
++# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
++# will generate a verbatim copy of the header file for each class for
++# which an include is specified. Set to NO to disable this.
++
++VERBATIM_HEADERS = NO
++
++# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
++# will put list of the files that are included by a file in the documentation
++# of that file.
++
++SHOW_INCLUDE_FILES = NO
++
++# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
++# will interpret the first line (until the first dot) of a JavaDoc-style
++# comment as the brief description. If set to NO, the JavaDoc
++# comments will behave just like the Qt-style comments (thus requiring an
++# explict @brief command for a brief description.
++
++JAVADOC_AUTOBRIEF = YES
++
++# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
++# member inherits the documentation from any documented member that it
++# reimplements.
++
++INHERIT_DOCS = YES
++
++# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
++# is inserted in the documentation for inline members.
++
++INLINE_INFO = YES
++
++# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
++# will sort the (detailed) documentation of file and class members
++# alphabetically by member name. If set to NO the members will appear in
++# declaration order.
++
++SORT_MEMBER_DOCS = YES
++
++# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
++# tag is set to YES, then doxygen will reuse the documentation of the first
++# member in the group (if any) for the other members of the group. By default
++# all members of a group must be documented explicitly.
++
++DISTRIBUTE_GROUP_DOC = NO
++
++# The TAB_SIZE tag can be used to set the number of spaces in a tab.
++# Doxygen uses this value to replace tabs by spaces in code fragments.
++
++TAB_SIZE = 8
++
++# The GENERATE_TODOLIST tag can be used to enable (YES) or
++# disable (NO) the todo list. This list is created by putting \todo
++# commands in the documentation.
++
++GENERATE_TODOLIST = YES
++
++# The GENERATE_TESTLIST tag can be used to enable (YES) or
++# disable (NO) the test list. This list is created by putting \test
++# commands in the documentation.
++
++GENERATE_TESTLIST = YES
++
++# The GENERATE_BUGLIST tag can be used to enable (YES) or
++# disable (NO) the bug list. This list is created by putting \bug
++# commands in the documentation.
++
++GENERATE_BUGLIST = YES
++
++# This tag can be used to specify a number of aliases that acts
++# as commands in the documentation. An alias has the form "name=value".
++# For example adding "sideeffect=\par Side Effects:\n" will allow you to
++# put the command \sideeffect (or @sideeffect) in the documentation, which
++# will result in a user defined paragraph with heading "Side Effects:".
++# You can put \n's in the value part of an alias to insert newlines.
++
++ALIASES =
++
++# The ENABLED_SECTIONS tag can be used to enable conditional
++# documentation sections, marked by \if sectionname ... \endif.
++
++ENABLED_SECTIONS =
++
++# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
++# the initial value of a variable or define consist of for it to appear in
++# the documentation. If the initializer consists of more lines than specified
++# here it will be hidden. Use a value of 0 to hide initializers completely.
++# The appearance of the initializer of individual variables and defines in the
++# documentation can be controlled using \showinitializer or \hideinitializer
++# command in the documentation regardless of this setting.
++
++MAX_INITIALIZER_LINES = 30
++
++# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
++# only. Doxygen will then generate output that is more tailored for C.
++# For instance some of the names that are used will be different. The list
++# of all members will be omitted, etc.
++
++OPTIMIZE_OUTPUT_FOR_C = YES
++
++# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
++# at the bottom of the documentation of classes and structs. If set to YES the
++# list will mention the files that were used to generate the documentation.
++
++SHOW_USED_FILES = YES
++
++#---------------------------------------------------------------------------
++# configuration options related to warning and progress messages
++#---------------------------------------------------------------------------
++
++# The QUIET tag can be used to turn on/off the messages that are generated
++# by doxygen. Possible values are YES and NO. If left blank NO is used.
++
++QUIET = NO
++
++# The WARNINGS tag can be used to turn on/off the warning messages that are
++# generated by doxygen. Possible values are YES and NO. If left blank
++# NO is used.
++
++WARNINGS = YES
++
++# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
++# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
++# automatically be disabled.
++
++WARN_IF_UNDOCUMENTED = YES
++
++# The WARN_FORMAT tag determines the format of the warning messages that
++# doxygen can produce. The string should contain the $file, $line, and $text
++# tags, which will be replaced by the file and line number from which the
++# warning originated and the warning text.
++
++WARN_FORMAT =
++
++# The WARN_LOGFILE tag can be used to specify a file to which warning
++# and error messages should be written. If left blank the output is written
++# to stderr.
++
++WARN_LOGFILE =
++
++#---------------------------------------------------------------------------
++# configuration options related to the input files
++#---------------------------------------------------------------------------
++
++# The INPUT tag can be used to specify the files and/or directories that contain
++# documented source files. You may enter file names like "myfile.cpp" or
++# directories like "/usr/src/myproject". Separate the files or directories
++# with spaces.
++
++INPUT = . doc
++
++# If the value of the INPUT tag contains directories, you can use the
++# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
++# and *.h) to filter out the source-files in the directories. If left
++# blank file matching one of the following patterns are included:
++# *.c *.cc *.cxx *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
++# *.h++ *.idl
++
++FILE_PATTERNS = *.h *.c
++
++# The RECURSIVE tag can be used to turn specify whether or not subdirectories
++# should be searched for input files as well. Possible values are YES and NO.
++# If left blank NO is used.
++
++RECURSIVE = NO
++
++# The EXCLUDE tag can be used to specify files and/or directories that should
++# excluded from the INPUT source files. This way you can easily exclude a
++# subdirectory from a directory tree whose root is specified with the INPUT tag.
++
++EXCLUDE =
++
++# If the value of the INPUT tag contains directories, you can use the
++# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
++# certain files from those directories.
++
++EXCLUDE_PATTERNS =
++
++# The EXAMPLE_PATH tag can be used to specify one or more files or
++# directories that contain example code fragments that are included (see
++# the \include command).
++
++EXAMPLE_PATH = doc
++
++# If the value of the EXAMPLE_PATH tag contains directories, you can use the
++# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
++# and *.h) to filter out the source-files in the directories. If left
++# blank all files are included.
++
++EXAMPLE_PATTERNS =
++
++# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
++# searched for input files to be used with the \include or \dontinclude
++# commands irrespective of the value of the RECURSIVE tag.
++# Possible values are YES and NO. If left blank NO is used.
++
++EXAMPLE_RECURSIVE = NO
++
++# The IMAGE_PATH tag can be used to specify one or more files or
++# directories that contain image that are included in the documentation (see
++# the \image command).
++
++IMAGE_PATH =
++
++# The INPUT_FILTER tag can be used to specify a program that doxygen should
++# invoke to filter for each input file. Doxygen will invoke the filter program
++# by executing (via popen()) the command <filter> <input-file>, where <filter>
++# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
++# input file. Doxygen will then use the output that the filter program writes
++# to standard output.
++
++INPUT_FILTER =
++
++# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
++# INPUT_FILTER) will be used to filter the input files when producing source
++# files to browse.
++
++FILTER_SOURCE_FILES = NO
++
++#---------------------------------------------------------------------------
++# configuration options related to source browsing
++#---------------------------------------------------------------------------
++
++# If the SOURCE_BROWSER tag is set to YES then a list of source files will
++# be generated. Documented entities will be cross-referenced with these sources.
++
++SOURCE_BROWSER = NO
++
++# Setting the INLINE_SOURCES tag to YES will include the body
++# of functions and classes directly in the documentation.
++
++INLINE_SOURCES = NO
++
++# If the REFERENCED_BY_RELATION tag is set to YES (the default)
++# then for each documented function all documented
++# functions referencing it will be listed.
++
++REFERENCED_BY_RELATION = YES
++
++# If the REFERENCES_RELATION tag is set to YES (the default)
++# then for each documented function all documented entities
++# called/used by that function will be listed.
++
++REFERENCES_RELATION = YES
++
++#---------------------------------------------------------------------------
++# configuration options related to the alphabetical class index
++#---------------------------------------------------------------------------
++
++# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
++# of all compounds will be generated. Enable this if the project
++# contains a lot of classes, structs, unions or interfaces.
++
++ALPHABETICAL_INDEX = NO
++
++# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
++# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
++# in which this list will be split (can be a number in the range [1..20])
++
++COLS_IN_ALPHA_INDEX = 5
++
++# In case all classes in a project start with a common prefix, all
++# classes will be put under the same header in the alphabetical index.
++# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
++# should be ignored while generating the index headers.
++
++IGNORE_PREFIX =
++
++#---------------------------------------------------------------------------
++# configuration options related to the HTML output
++#---------------------------------------------------------------------------
++
++# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
++# generate HTML output.
++
++GENERATE_HTML = YES
++
++# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
++# If a relative path is entered the value of OUTPUT_DIRECTORY will be
++# put in front of it. If left blank `html' will be used as the default path.
++
++HTML_OUTPUT =
++
++# The HTML_HEADER tag can be used to specify a personal HTML header for
++# each generated HTML page. If it is left blank doxygen will generate a
++# standard header.
++
++HTML_HEADER = doc/header.html
++
++# The HTML_FOOTER tag can be used to specify a personal HTML footer for
++# each generated HTML page. If it is left blank doxygen will generate a
++# standard footer.
++
++HTML_FOOTER = doc/footer.html
++
++# The HTML_STYLESHEET tag can be used to specify a user defined cascading
++# style sheet that is used by each HTML page. It can be used to
++# fine-tune the look of the HTML output. If the tag is left blank doxygen
++# will generate a default style sheet
++
++HTML_STYLESHEET = doc/trio.css
++
++# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
++# files or namespaces will be aligned in HTML using tables. If set to
++# NO a bullet list will be used.
++
++HTML_ALIGN_MEMBERS = YES
++
++# If the GENERATE_HTMLHELP tag is set to YES, additional index files
++# will be generated that can be used as input for tools like the
++# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
++# of the generated HTML documentation.
++
++GENERATE_HTMLHELP = NO
++
++# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
++# controls if a separate .chi index file is generated (YES) or that
++# it should be included in the master .chm file (NO).
++
++GENERATE_CHI = NO
++
++# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
++# controls whether a binary table of contents is generated (YES) or a
++# normal table of contents (NO) in the .chm file.
++
++BINARY_TOC = NO
++
++# The TOC_EXPAND flag can be set to YES to add extra items for group members
++# to the contents of the Html help documentation and to the tree view.
++
++TOC_EXPAND = NO
++
++# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
++# top of each HTML page. The value NO (the default) enables the index and
++# the value YES disables it.
++
++DISABLE_INDEX = NO
++
++# This tag can be used to set the number of enum values (range [1..20])
++# that doxygen will group on one line in the generated HTML documentation.
++
++ENUM_VALUES_PER_LINE = 4
++
++# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
++# generated containing a tree-like index structure (just like the one that
++# is generated for HTML Help). For this to work a browser that supports
++# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
++# or Internet explorer 4.0+). Note that for large projects the tree generation
++# can take a very long time. In such cases it is better to disable this feature.
++# Windows users are probably better off using the HTML help feature.
++
++GENERATE_TREEVIEW = NO
++
++# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
++# used to set the initial width (in pixels) of the frame in which the tree
++# is shown.
++
++TREEVIEW_WIDTH = 250
++
++#---------------------------------------------------------------------------
++# configuration options related to the LaTeX output
++#---------------------------------------------------------------------------
++
++# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
++# generate Latex output.
++
++GENERATE_LATEX = NO
++
++# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
++# If a relative path is entered the value of OUTPUT_DIRECTORY will be
++# put in front of it. If left blank `latex' will be used as the default path.
++
++LATEX_OUTPUT =
++
++# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
++# LaTeX documents. This may be useful for small projects and may help to
++# save some trees in general.
++
++COMPACT_LATEX = NO
++
++# The PAPER_TYPE tag can be used to set the paper type that is used
++# by the printer. Possible values are: a4, a4wide, letter, legal and
++# executive. If left blank a4wide will be used.
++
++PAPER_TYPE = a4wide
++
++# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
++# packages that should be included in the LaTeX output.
++
++EXTRA_PACKAGES =
++
++# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
++# the generated latex document. The header should contain everything until
++# the first chapter. If it is left blank doxygen will generate a
++# standard header. Notice: only use this tag if you know what you are doing!
++
++LATEX_HEADER =
++
++# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
++# is prepared for conversion to pdf (using ps2pdf). The pdf file will
++# contain links (just like the HTML output) instead of page references
++# This makes the output suitable for online browsing using a pdf viewer.
++
++PDF_HYPERLINKS = NO
++
++# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
++# plain latex in the generated Makefile. Set this option to YES to get a
++# higher quality PDF documentation.
++
++USE_PDFLATEX = NO
++
++# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
++# command to the generated LaTeX files. This will instruct LaTeX to keep
++# running if errors occur, instead of asking the user for help.
++# This option is also used when generating formulas in HTML.
++
++LATEX_BATCHMODE = NO
++
++#---------------------------------------------------------------------------
++# configuration options related to the RTF output
++#---------------------------------------------------------------------------
++
++# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
++# The RTF output is optimised for Word 97 and may not look very pretty with
++# other RTF readers or editors.
++
++GENERATE_RTF = NO
++
++# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
++# If a relative path is entered the value of OUTPUT_DIRECTORY will be
++# put in front of it. If left blank `rtf' will be used as the default path.
++
++RTF_OUTPUT =
++
++# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
++# RTF documents. This may be useful for small projects and may help to
++# save some trees in general.
++
++COMPACT_RTF = NO
++
++# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
++# will contain hyperlink fields. The RTF file will
++# contain links (just like the HTML output) instead of page references.
++# This makes the output suitable for online browsing using WORD or other
++# programs which support those fields.
++# Note: wordpad (write) and others do not support links.
++
++RTF_HYPERLINKS = NO
++
++# Load stylesheet definitions from file. Syntax is similar to doxygen's
++# config file, i.e. a series of assigments. You only have to provide
++# replacements, missing definitions are set to their default value.
++
++RTF_STYLESHEET_FILE =
++
++# Set optional variables used in the generation of an rtf document.
++# Syntax is similar to doxygen's config file.
++
++RTF_EXTENSIONS_FILE =
++
++#---------------------------------------------------------------------------
++# configuration options related to the man page output
++#---------------------------------------------------------------------------
++
++# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
++# generate man pages
++
++GENERATE_MAN = NO
++
++# The MAN_OUTPUT tag is used to specify where the man pages will be put.
++# If a relative path is entered the value of OUTPUT_DIRECTORY will be
++# put in front of it. If left blank `man' will be used as the default path.
++
++MAN_OUTPUT =
++
++# The MAN_EXTENSION tag determines the extension that is added to
++# the generated man pages (default is the subroutine's section .3)
++
++MAN_EXTENSION =
++
++# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
++# then it will generate one additional man file for each entity
++# documented in the real man page(s). These additional files
++# only source the real man page, but without them the man command
++# would be unable to find the correct page. The default is NO.
++
++MAN_LINKS = NO
++
++#---------------------------------------------------------------------------
++# configuration options related to the XML output
++#---------------------------------------------------------------------------
++
++# If the GENERATE_XML tag is set to YES Doxygen will
++# generate an XML file that captures the structure of
++# the code including all documentation. Note that this
++# feature is still experimental and incomplete at the
++# moment.
++
++GENERATE_XML = NO
++
++#---------------------------------------------------------------------------
++# Configuration options related to the preprocessor
++#---------------------------------------------------------------------------
++
++# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
++# evaluate all C-preprocessor directives found in the sources and include
++# files.
++
++ENABLE_PREPROCESSING = YES
++
++# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
++# names in the source code. If set to NO (the default) only conditional
++# compilation will be performed. Macro expansion can be done in a controlled
++# way by setting EXPAND_ONLY_PREDEF to YES.
++
++MACRO_EXPANSION = YES
++
++# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
++# then the macro expansion is limited to the macros specified with the
++# PREDEFINED and EXPAND_AS_PREDEFINED tags.
++
++EXPAND_ONLY_PREDEF = YES
++
++# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
++# in the INCLUDE_PATH (see below) will be search if a #include is found.
++
++SEARCH_INCLUDES = YES
++
++# The INCLUDE_PATH tag can be used to specify one or more directories that
++# contain include files that are not input files but should be processed by
++# the preprocessor.
++
++INCLUDE_PATH =
++
++# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
++# patterns (like *.h and *.hpp) to filter out the header-files in the
++# directories. If left blank, the patterns specified with FILE_PATTERNS will
++# be used.
++
++INCLUDE_FILE_PATTERNS =
++
++# The PREDEFINED tag can be used to specify one or more macro names that
++# are defined before the preprocessor is started (similar to the -D option of
++# gcc). The argument of the tag is a list of macros of the form: name
++# or name=definition (no spaces). If the definition and the = are
++# omitted =1 is assumed.
++
++PREDEFINED = __STDC__=1 TRIO_DOCUMENTATION= TRIO_PUBLIC= TRIO_PRIVATE=static TRIO_CONST=const TRIO_VOLATILE=volatile TRIO_SIGNED=signed TRIO_INLINE=inline TRIO_NOARGS=void TRIO_ARGS1(z,a)=(a) TRIO_ARGS2(z,a,b)=(a,b) TRIO_ARGS3(z,a,b,c)=(a,b,c) TRIO_ARGS4(z,a,b,c,d)=(a,b,c,d) TRIO_ARGS5(z,a,b,c,d,e)=(a,b,c,d,e) TRIO_ARGS6(z,a,b,c,d,e,f)=(a,b,c,d,e,f) TRIO_VARGS2(z,a,b)=(a,b) TRIO_VARGS3(z,a,b,c)=(a,b,c) TRIO_VARGS4(z,a,b,c,d)=(a,b,c,d) TRIO_VARGS5(z,a,b,c,d,e)=(a,b,c,d,e)
++
++# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
++# this tag can be used to specify a list of macro names that should be expanded.
++# The macro definition that is found in the sources will be used.
++# Use the PREDEFINED tag if you want to use a different macro definition.
++
++EXPAND_AS_DEFINED =
++
++# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
++# doxygen's preprocessor will remove all function-like macros that are alone
++# on a line and do not end with a semicolon. Such function macros are typically
++# used for boiler-plate code, and will confuse the parser if not removed.
++
++SKIP_FUNCTION_MACROS = YES
++
++#---------------------------------------------------------------------------
++# Configuration::addtions related to external references
++#---------------------------------------------------------------------------
++
++# The TAGFILES tag can be used to specify one or more tagfiles.
++
++TAGFILES =
++
++# When a file name is specified after GENERATE_TAGFILE, doxygen will create
++# a tag file that is based on the input files it reads.
++
++GENERATE_TAGFILE =
++
++# If the ALLEXTERNALS tag is set to YES all external classes will be listed
++# in the class index. If set to NO only the inherited external classes
++# will be listed.
++
++ALLEXTERNALS = NO
++
++# The PERL_PATH should be the absolute path and name of the perl script
++# interpreter (i.e. the result of `which perl').
++
++PERL_PATH =
++
++#---------------------------------------------------------------------------
++# Configuration options related to the dot tool
++#---------------------------------------------------------------------------
++
++# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
++# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
++# super classes. Setting the tag to NO turns the diagrams off. Note that this
++# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
++# recommended to install and use dot, since it yield more powerful graphs.
++
++CLASS_DIAGRAMS = YES
++
++# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
++# available from the path. This tool is part of Graphviz, a graph visualization
++# toolkit from AT&T and Lucent Bell Labs. The other options in this section
++# have no effect if this option is set to NO (the default)
++
++HAVE_DOT = NO
++
++# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
++# will generate a graph for each documented class showing the direct and
++# indirect inheritance relations. Setting this tag to YES will force the
++# the CLASS_DIAGRAMS tag to NO.
++
++CLASS_GRAPH = YES
++
++# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
++# will generate a graph for each documented class showing the direct and
++# indirect implementation dependencies (inheritance, containment, and
++# class references variables) of the class with other documented classes.
++
++COLLABORATION_GRAPH = YES
++
++# If set to YES, the inheritance and collaboration graphs will show the
++# relations between templates and their instances.
++
++TEMPLATE_RELATIONS = YES
++
++# If set to YES, the inheritance and collaboration graphs will hide
++# inheritance and usage relations if the target is undocumented
++# or is not a class.
++
++HIDE_UNDOC_RELATIONS = YES
++
++# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
++# tags are set to YES then doxygen will generate a graph for each documented
++# file showing the direct and indirect include dependencies of the file with
++# other documented files.
++
++INCLUDE_GRAPH = YES
++
++# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
++# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
++# documented header file showing the documented files that directly or
++# indirectly include this file.
++
++INCLUDED_BY_GRAPH = YES
++
++# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
++# will graphical hierarchy of all classes instead of a textual one.
++
++GRAPHICAL_HIERARCHY = YES
++
++# The tag DOT_PATH can be used to specify the path where the dot tool can be
++# found. If left blank, it is assumed the dot tool can be found on the path.
++
++DOT_PATH =
++
++# The DOTFILE_DIRS tag can be used to specify one or more directories that
++# contain dot files that are included in the documentation (see the
++# \dotfile command).
++
++DOTFILE_DIRS =
++
++# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
++# (in pixels) of the graphs generated by dot. If a graph becomes larger than
++# this value, doxygen will try to truncate the graph, so that it fits within
++# the specified constraint. Beware that most browsers cannot cope with very
++# large images.
++
++MAX_DOT_GRAPH_WIDTH = 1024
++
++# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
++# (in pixels) of the graphs generated by dot. If a graph becomes larger than
++# this value, doxygen will try to truncate the graph, so that it fits within
++# the specified constraint. Beware that most browsers cannot cope with very
++# large images.
++
++MAX_DOT_GRAPH_HEIGHT = 1024
++
++# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
++# generate a legend page explaining the meaning of the various boxes and
++# arrows in the dot generated graphs.
++
++GENERATE_LEGEND = YES
++
++# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
++# remove the intermedate dot files that are used to generate
++# the various graphs.
++
++DOT_CLEANUP = YES
++
++#---------------------------------------------------------------------------
++# Configuration::addtions related to the search engine
++#---------------------------------------------------------------------------
++
++# The SEARCHENGINE tag specifies whether or not a search engine should be
++# used. If set to NO the values of all tags below this one will be ignored.
++
++SEARCHENGINE = NO
++
++# The CGI_NAME tag should be the name of the CGI script that
++# starts the search engine (doxysearch) with the correct parameters.
++# A script with this name will be generated by doxygen.
++
++CGI_NAME =
++
++# The CGI_URL tag should be the absolute URL to the directory where the
++# cgi binaries are located. See the documentation of your http daemon for
++# details.
++
++CGI_URL =
++
++# The DOC_URL tag should be the absolute URL to the directory where the
++# documentation is located. If left blank the absolute path to the
++# documentation, with file:// prepended to it, will be used.
++
++DOC_URL =
++
++# The DOC_ABSPATH tag should be the absolute path to the directory where the
++# documentation is located. If left blank the directory on the local machine
++# will be used.
++
++DOC_ABSPATH =
++
++# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
++# is installed.
++
++BIN_ABSPATH =
++
++# The EXT_DOC_PATHS tag can be used to specify one or more paths to
++# documentation generated for other projects. This allows doxysearch to search
++# the documentation for these projects as well.
++
++EXT_DOC_PATHS =
+diff -up ghostscript-9.07/trio/doc/trio.css.gs_sprintf ghostscript-9.07/trio/doc/trio.css
+--- ghostscript-9.07/trio/doc/trio.css.gs_sprintf 2013-05-09 17:02:39.103447244 +0100
++++ ghostscript-9.07/trio/doc/trio.css 2013-05-09 17:02:39.103447244 +0100
+@@ -0,0 +1,35 @@
++/* HTML tags */
++
++BODY {
++ background-color: white;
++ color: darkblue;
++}
++
++TD { color: darkblue; }
++
++H1 { text-align: center; }
++
++H3 { font-style: italic; }
++
++HR {
++ width: 85%;
++ align: center;
++}
++
++.copyright { color: darkblue; }
++
++/* Links */
++
++:link { color: blue; }
++
++:visited { color: purple; }
++
++:active { color: red; }
++
++.el:link { font-style: italic; }
++
++/* Examples */
++
++DIV.fragment {
++ color: maroon;
++}
+diff -up ghostscript-9.07/trio/example.c.gs_sprintf ghostscript-9.07/trio/example.c
+--- ghostscript-9.07/trio/example.c.gs_sprintf 2013-05-09 17:02:39.104447249 +0100
++++ ghostscript-9.07/trio/example.c 2013-05-09 17:02:39.104447249 +0100
+@@ -0,0 +1,543 @@
++/*************************************************************************
++ * For testing purposes
++ */
++
++#include <stdarg.h>
++#include <limits.h>
++#include <math.h>
++#include <unistd.h>
++/* #include <nan.h> */
++#include <wchar.h>
++#include "strio.h"
++#include "trio.h"
++#undef printf
++
++#if !defined(USE_LONGLONG)
++# if defined(__GNUC__) && !defined(__STRICT_ANSI__)
++# define USE_LONGLONG
++# elif defined(__SUNPRO_C)
++# define USE_LONGLONG
++# endif
++#endif
++
++#if defined(USE_LONGLONG)
++# define LONGLONG long long
++#else
++# define LONGLONG long
++#endif
++
++#if defined(TRIO_C99)
++# define LONGEST intmax_t
++#else
++# define LONGEST LONGLONG
++#endif
++
++static const char rcsid[] = "@(#)$Id: example.c,v 1.9 2001/11/25 13:47:38 breese Exp $";
++
++/*************************************************************************
++ *
++ */
++void Dump(char *buffer, int rc)
++{
++ if (rc < 0)
++ {
++ printf("Err = %d (%s), Pos = %d\n",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ }
++ else
++ printf("buffer[% 3d] = \"%s\"\n", rc, buffer);
++}
++
++/*************************************************************************
++ *
++ */
++int main(void)
++{
++ char buffer[512];
++ int rc;
++ LONGLONG int dummy;
++ char *fool;
++ int num;
++ int num2;
++ int count;
++ double dnum;
++ char *end;
++ char text[256];
++ char ch;
++ int nerrors = 0;
++ void *p1;
++ char *p2;
++
++ printf("%s\n", rcsid);
++
++/* printf("%d %u %d %u\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* trio_printf("%d %u %d %u\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* printf("%d %u\n", INT_MIN, INT_MIN); */
++/* trio_printf("%d %u\n", INT_MIN, INT_MIN); */
++
++/* printf("%ld %lu %ld %lu\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* trio_printf("%ld %lu %ld %lu\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* printf("%ld %lu\n", INT_MIN, INT_MIN); */
++/* trio_printf("%ld %lu\n", INT_MIN, INT_MIN); */
++
++/* printf("%lld %llu %lld %llu\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* trio_printf("%lld %llu %lld %llu\n", */
++/* INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
++/* printf("%lld %llu\n", INT_MIN, INT_MIN); */
++/* trio_printf("%lld %llu\n", INT_MIN, INT_MIN); */
++
++/* return 0; */
++
++
++/* dnum = StrToDouble("3.14e+44", (const char **)&end); */
++/* printf("double = %e (%s)\n", dnum, end); */
++/* dnum = StrToDouble("0xA3.14p44", (const char **)&end); */
++/* printf("double = %e (%s)\n", dnum, end); */
++
++ /* trio_printf("%.*stext\n", 0, "-----"); */ /* fails */
++
++/* trio_printf("%Zd\n", (size_t)sizeof(char)); */
++
++/* rc = StrFormat(buffer, "%a", 3.14e+44); */
++/* Dump(buffer, rc); */
++
++ /* rc = StrFormat(buffer, "Filled string: %-16<fill=_>s", "test"); */
++
++/* errno = EINTR; */
++/* rc = StrFormat(buffer, "Error: %m"); */
++
++/* rc = StrFormat(buffer, "Count %lln", &dummy); */
++/* printf("dummy = %lld\n", dummy); */
++
++/* rc = StrFormat(buffer, "Char %<quote='>c", 'X'); */
++
++/* rc = StrFormatMax(buffer, 20, "Here goes %-20<adjust=_>s", "test"); */
++
++/* rc = StrFormat(buffer, "Hex-float %a", 3.1415); */
++/* Dump(buffer, rc); */
++/* rc = StrFormat(buffer, "Hex-float %A", 3.1415e20); */
++/* Dump(buffer, rc); */
++/* rc = StrFormat(buffer, "Double %#g", 3.1415e20); */
++/* Dump(buffer, rc); */
++/* rc = StrFormat(buffer, "Double %.3f", 3.1415); */
++/* Dump(buffer, rc); */
++/* rc = StrFormat(buffer, "Double %+e", 3.1415); */
++/* Dump(buffer, rc); */
++
++/* printf("'%.2f'\n", 99.99999); */
++/* trio_printf("'%.2f'\n", 99.99999); */
++/* printf("'%f'\n", 0.0); */
++/* trio_printf("'%f'\n", 0.0); */
++/* printf("'%f'\n", 3141.0); */
++/* trio_printf("'%f'\n", 3141.0); */
++/* printf("'%#f'\n", 3141.0); */
++/* trio_printf("'%#f'\n", 3141.0); */
++/* printf("'%'f'\n", 31415.2); */
++/* trio_printf("'%'f'\n", 31415.2); */
++/* printf("'%-16e'\n", 3141.5); */
++/* trio_printf("'%-16e'\n", 3141.5); */
++/* printf("'%#f'\n", 3141.0); */
++/* trio_printf("'%#f'\n", 3141.0); */
++/* printf("'%f'\n", 3141.5); */
++/* trio_printf("'%f'\n", 3141.5); */
++/* printf("'%#.6g'\n", 3141.5); */
++/* trio_printf("'%#.6g'\n", 3141.5); */
++
++/* printf("'%20e'\n", 314.5); */
++/* trio_printf("'%20e'\n", 314.5); */
++
++/* printf("'%-16e'\n", 3141.5); */
++/* trio_printf("'%-16e'\n", 3141.5); */
++
++/* printf("'%#.4g'\n", 314151.5); */
++/* trio_printf("'%#.4g'\n", 314151.5); */
++
++/* printf("'%#.4g'\n", 0.0); */
++/* trio_printf("'%#.4g'\n", 0.0); */
++
++/* printf("'%#.4g'\n", 11.0); */
++/* trio_printf("'%#.4g'\n", 11.0); */
++
++/* printf("%f\n", HUGE_VAL); */
++/* trio_printf("%f\n", HUGE_VAL); */
++/* printf("%f\n", -HUGE_VAL); */
++/* trio_printf("%f\n", -HUGE_VAL); */
++/* #define NAN (cos(HUGE_VAL)) */
++/* printf("%f\n", NAN); */
++/* trio_printf("%f\n", NAN); */
++
++/* printf("'%+06d'\n", 1234); */
++/* trio_printf("'%+06d'\n", 1234); */
++/* printf("'%-#6.3x'\n", 12); */
++/* trio_printf("'%-#06.3x'\n", 12); */
++/* printf("'%+6d'\n", 1234); */
++/* trio_printf("'%+6d'\n", 1234); */
++/* printf("'%-08d'\n", 12); */
++/* trio_printf("'%-08d'\n", 12); */
++/* printf("'%08.6d'\n", 12); */
++/* trio_printf("'%08.6d'\n", 12); */
++/* printf("'%4d'\n", 123456); */
++/* trio_printf("'%4d'\n", 123456); */
++/* printf("'%.4d'\n", 12); */
++/* trio_printf("'%.4d'\n", 12); */
++
++/* trio_printf("%!#08x %04x %..10x\n", 42, 42, 42); */
++/* trio_printf("%*.*.*i\n", 8, 4, 2, 23); */
++/* trio_printf("%8.4.2i %<base=2>08i %.8.2i %..2i\n", 23, 23, 23, 23); */
++
++/* trio_printf("%8i\n", 42); */
++/* trio_printf("%.7i\n", 42); */
++/* trio_printf("%..2i\n", 42); */
++/* trio_printf("%8.7i\n", 42); */
++/* trio_printf("%8..2i\n", 42); */
++/* trio_printf("%8.7.2i\n", 42); */
++/* trio_printf("%*.*.*i\n", 8, 7, 2, 42); */
++
++/* { */
++/* LONGLONG ll = 1234567890; */
++/* rc = trio_printf("%&i %d\n", sizeof(ll), ll, 42); */
++/* Dump(buffer, rc); */
++/* } */
++/* { */
++/* char ch = 12; */
++/* rc = trio_printf("%&i %d\n", sizeof(ch), ch, 42); */
++/* Dump(buffer, rc); */
++/* } */
++/* { */
++/* pid_t pid = 99; */
++/* rc = trio_printf("%&i %d\n", sizeof(pid), pid, 42); */
++/* Dump(buffer, rc); */
++/* } */
++
++/* rc = trio_printf("%*.*.*i\n", 6, 4, 10, 12); */
++/* Dump(buffer, rc); */
++/* rc = trio_printf("%1$0*3$.*2$d\n", 3141, 6, 10); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_asprintf(&end, "%s%n", "0123456789", &num); */
++/* printf("%d %d '%s'\n", rc, num, end); */
++/* if (end) */
++/* free(end); */
++
++/* trio_printf("%016e\n", 3141.5); */
++/* trio_printf("%'f\n", 424242.42); */
++/* trio_printf("%#.4f\n", 0.0); */
++/* trio_printf("%'d\n", 424242); */
++
++/* rc = trio_sprintf(buffer, "%4$d %3$*8$d %2$.*7$d %1$*6$.*5$d\n", */
++/* 123, */
++/* 1234, */
++/* 12345, */
++/* 123456, */
++/* 5, 6, 7, 8 */
++/* ); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%2$s %1$#s", "111", "222"); */
++/* Dump(buffer, rc); */
++
++/* trio_printf(" %x %!#x %g %09x %x\n", 123456, 123456, 123456.0, 123456, 123456); */
++/* trio_printf("%!'i %f %i\n", 12345, 12345.0, 12345); */
++/* trio_printf("%!<base=2>i %i\n", 23, 23); */
++
++/* rc = trio_sprintf(buffer, "%I32d", 12345); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%I32I8d", 12345); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "*%5f*", 3.3); */
++/* Dump(buffer, rc); */
++
++/* { */
++/* wchar_t *wstring = L"some data"; */
++/* wchar_t wbuffer[512]; */
++
++/* rc = trio_sprintf(buffer, "%ls", wstring); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sscanf(buffer, "%ls", wbuffer); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%ls", wbuffer); */
++/* Dump(buffer, rc); */
++/* } */
++
++ /* rc = StrFormat(buffer, "\040-\040\040-\n"); */
++
++/* rc = StrFormat(buffer, "%.*s@%s", 3, "Daniel", "Fool"); */
++/* rc = StrFormatAppendMax(buffer, 512, " %s is a doh", "Simpson"); */
++
++/* rc = StrFormat(buffer, "hello %1$d %1$d", 31, 32); */
++/* Dump(buffer, rc); */
++/* rc = StrFormat(buffer, "%2$d %3$d", 31, 32, 33); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%d say %g hey %s", 42, 3.14, "text"); */
++/* Dump(buffer, rc); */
++/* trio_sscanf(buffer, "%d %*s %e hey %s", &num, &dnum, text); */
++/* printf("num = %d, dnum = %e, text = \"%s\"\n", num, dnum, text); */
++
++/* rc = trio_sprintf(buffer, "%g", HUGE_VAL); */
++/* Dump(buffer, rc); */
++/* trio_sscanf(buffer, "%f", &dnum); */
++/* printf("dnum = %e\n", dnum); */
++
++/* rc = trio_sprintf(buffer, "%g", -HUGE_VAL); */
++/* Dump(buffer, rc); */
++/* trio_sscanf(buffer, "%f", &dnum); */
++/* printf("dnum = %e\n", dnum); */
++
++/* #if defined(NAN) */
++/* rc = trio_sprintf(buffer, "%g", NAN); */
++/* Dump(buffer, rc); */
++/* if ((rc = trio_sscanf(buffer, "%f", &dnum)) < 0) */
++/* Dump(buffer, rc); */
++/* else */
++/* printf("dnum = %e\n", dnum); */
++/* #endif */
++
++/* rc = trio_sprintf(buffer, "%*d", 6, 1234); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "'%!08.6d' '%!d' '%d'", 4, 6, 8); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%0g", 0.123); */
++/* Dump(buffer, rc); */
++
++/* { */
++/* void *argarray[4]; */
++/* int value = 42; */
++/* double number = 123.456; */
++/* float small_number = 123.456; */
++
++/* argarray[0] = &value; */
++/* argarray[1] = "my string"; */
++/* rc = trio_sprintfv(buffer, "%d %s", argarray); */
++/* Dump(buffer, rc); */
++/* rc = trio_snprintfv(buffer, 8, "%d %s", argarray); */
++/* Dump(buffer, rc); */
++
++/* argarray[0] = &num; */
++/* argarray[1] = text; */
++/* rc = trio_sscanfv(buffer, "%d %s", argarray); */
++/* Dump(buffer, rc); */
++/* printf("num = %d text = \"%s\"\n", num, text); */
++
++/* argarray[0] = &number; */
++/* argarray[1] = &small_number; */
++/* rc = trio_sprintfv(buffer, "%f %hf", argarray); */
++/* Dump(buffer, rc); */
++/* printf("number = %f small_number = \"%f\"\n", number, small_number); */
++/* } */
++
++#if 0
++ rc = trio_sprintf(buffer, "abcba");
++ Dump(buffer, rc);
++ trio_sscanf(buffer, "%[ab]", text);
++ printf("text = \"%s\"\n", text);
++ trio_sscanf(buffer, "%*[ab]c%[^\n]", text);
++ printf("text = \"%s\"\n", text);
++
++ trio_sprintf(buffer, "aabcdba aaa");
++ rc = trio_sscanf(buffer, "%s", text);
++ Dump(buffer, rc);
++ printf("text = \"%s\"\n", text);
++ rc = trio_sscanf(buffer, "%*1[aA]%[a-c]", text);
++ Dump(buffer, rc);
++ printf("text = \"%s\"\n", text);
++
++ rc = trio_sprintf(buffer, "10021");
++ rc = trio_sscanf(buffer, "%b%n%d", &num, &count, &num2);
++ Dump(buffer, rc);
++ printf("num = %d %d %d\n", num, num2, count);
++#endif
++
++/* rc = trio_sprintf(buffer, "%'d", 10000); */
++/* rc = trio_sscanf(buffer, "%'d", &num); */
++/* Dump(buffer, rc); */
++/* printf("num = %d\n", num); */
++
++/* rc = trio_dprintf(STDOUT_FILENO, "%s\n", "hello there"); */
++/* Dump(buffer, rc); */
++/* rc = trio_dscanf(STDIN_FILENO, "%s", buffer); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_scanf("%s", buffer); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "Ttext"); */
++/* Dump(buffer, rc); */
++/* trio_sscanf(buffer, "%*[Tt]e%c", &ch); */
++/* printf("ch = %c\n", ch); */
++
++/* printf("%p\n", &main); */
++/* rc = trio_sprintf(buffer, "%p %p", &main, NULL); */
++/* Dump(buffer, rc); */
++/* trio_sscanf(buffer, "%p %p", &p1, &p2); */
++/* printf("pointer = %p %p\n", p1, p2); */
++
++/* rc = trio_sprintf(buffer, "%@.@.@i", 8, 7, 2, 42); */
++/* Dump(buffer, rc); */
++/* trio_sprintf(buffer, "abcdefghijklmnopqrstuvwxyz"); */
++/* rc = trio_sscanf(buffer, "%100s", text); */
++/* Dump(text, rc); */
++/* rc = trio_sscanf(buffer, "%@s", 100, text); */
++/* Dump(text, rc); */
++
++/* rc = trio_sprintf(buffer, "%..2i", 42); */
++/* Dump(buffer, rc); */
++/* rc = trio_sscanf(buffer, "%..2i", &num); */
++/* printf("%d\n", num); */
++/* rc = trio_sscanf(buffer, "%..@i", 2, &num); */
++/* printf("%d\n", num); */
++
++/* { */
++/* int num1, num2, num3, num4; */
++
++/* rc = trio_sprintf(buffer, "123_456 [12%%-34%%]"); */
++/* Dump(buffer, rc); */
++/* rc = trio_sscanf(buffer, "%5i%*1s%5i%*1s%5i%*2s%5i", */
++/* &num1, &num2, &num3, &num4); */
++/* Dump(buffer, rc); */
++/* printf("%d %d %d %d %d\n", rc, num1, num2, num3, num4); */
++/* rc = trio_sscanf(buffer, "%d_%d [%d%%-%d%%]", */
++/* &num1, &num2, &num3, &num4); */
++/* Dump(buffer, rc); */
++/* printf("%d %d %d %d %d\n", rc, num1, num2, num3, num4); */
++/* } */
++
++/* rc = trio_sprintf(buffer, "01 3456789"); */
++/* Dump(buffer, rc); */
++/* memset(&text, 0, sizeof(text)); */
++/* rc = trio_sscanf(buffer, "%4c", &text); */
++/* Dump(text, rc); */
++/* memset(&text, 0, sizeof(text)); */
++/* rc = sscanf(buffer, "%4c", &text); */
++/* Dump(text, rc); */
++
++/* rc = trio_sprintf(buffer, "12345 6"); */
++/* Dump(buffer, rc); */
++/* rc = trio_sscanf(buffer, "%2d", &num); */
++/* Dump(buffer, rc); */
++/* printf("%d\n", num); */
++/* rc = sscanf(buffer, "%2d", &num); */
++/* Dump(buffer, rc); */
++/* printf("%d\n", num); */
++
++/* rc = trio_sprintf(buffer, "aa\\x0abb"); */
++/* Dump(buffer, rc); */
++/* rc = trio_sscanf(buffer, "aa%#sbb", &text); */
++/* Dump(text, rc); */
++
++/* rc = trio_sscanf("0 ", "%f", &dnum, text); */
++/* printf("%d %f\n", rc, dnum); */
++/* rc = sscanf("0 ", "%f %s", &dnum, text); */
++/* printf("%d %f\n", rc, dnum); */
++
++/* rc = trio_sscanf("lære", "%[:alpha:]", text); */
++/* Dump(text, rc); */
++
++/* rc = trio_sscanf("-0.123e3", "%8e", &dnum); */
++/* printf("%d %f\n", rc, dnum); */
++
++/* rc = trio_sscanf("123,456.78", "%'f", &dnum); */
++/* printf("%d %f\n", rc, dnum); */
++
++/* rc = trio_sscanf("1.e-6","%g", &dnum); */
++/* printf("%d %g\n", rc, dnum); */
++/* rc = trio_sscanf("1e-6","%g", &dnum); */
++/* printf("%d %g\n", rc, dnum); */
++
++/* rc = trio_sprintf(buffer, "%0.40e\n", 14.0); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%010.3e\n", 3141.5); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%e", 0.6); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%e", 0.5); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#11.5g", 1e5); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%010.3e", 3141.5); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%11.5g", 1e-5); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%g", 1.79769e+308); */
++/* printf("%d \"%s\"\n", rc, buffer); */
++/* trio_sscanf(buffer, "%g", &dnum); */
++/* printf("%d %g\n", rc, dnum); */
++
++/* rc = trio_snprintf(0, 0, "text"); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%.16.2f", (float)41.8713); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%.16.2f", (float)41.8687); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%.16.2f", (float)41.8684); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#.4g", 1e-3); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#.2g", (double)0.01); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)1.0); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)0.9999999999999999); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)0.1); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)0.0999999999999999); */
++/* Dump(buffer, rc); */
++
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)0.01); */
++/* Dump(buffer, rc); */
++/* rc = trio_sprintf(buffer, "%#11.5g", (double)0.0099999999999999); */
++/* Dump(buffer, rc); */
++
++/* char * buf = "aaaaaaaaaaaaaaaaaaaaaaaaa"; */
++/* int buf_len = 4; */
++/* rc = trio_sprintf(buffer, ">%.*s\n", buf_len, buf); */
++
++/* rc = trio_sprintf(buffer, "$d", 1); */
++/* Dump(buffer, rc); */
++
++/* trio_sprintf(buffer, "%lld.%ld%s", 0LL, 0L, ","); */
++/* Dump(buffer, rc); */
++
++/* trio_sprintf(buffer, "%+.14e", (double)1.27299014704543e-313); */
++/* Dump(buffer, rc); */
++
++/* rc = scanf(""); */
++/* rc = trio_scanf(""); */
++
++/* trio_sprintf(buffer, "abcd"); */
++/* rc = trio_sscanf(buffer, "%c", &ch); */
++/* printf("%d %c\n", rc, ch); */
++
++/* for(unsigned int i = 0U ; i < 100000U ; ++i) */
++/* { */
++/* trio_sprintf(buffer, "The next value of '%s' is %d (ln: %d) ('%s')\n", */
++/* "i", i+1, __LINE__, "foo bar"); */
++/* } */
++
++ rc = trio_snprintf(NULL, 0, "%s", "not used");
++ Dump(buffer, rc);
++
++ return 0;
++}
+diff -up ghostscript-9.07/trio/FILES.gs_sprintf ghostscript-9.07/trio/FILES
+--- ghostscript-9.07/trio/FILES.gs_sprintf 2013-05-09 17:02:39.104447249 +0100
++++ ghostscript-9.07/trio/FILES 2013-05-09 17:02:39.104447249 +0100
+@@ -0,0 +1,33 @@
++FILES
++README
++CHANGES
++Makefile.in
++maketgz
++strio.h
++trio.c
++trio.h
++triodef.h
++trionan.c
++trionan.h
++triop.h
++triostr.c
++triostr.h
++compare.c
++example.c
++regression.c
++configure
++configure.in
++install-sh
++autogen.sh
++doc/doc.h
++doc/doc_dynamic.h
++doc/doc_printf.h
++doc/doc_register.h
++doc/doc_scanf.h
++doc/doc_static.h
++doc/footer.html
++doc/header.html
++doc/trio.cfg
++doc/trio.css
++html/trio.css
++html/*.html
+diff -up ghostscript-9.07/trio/html/group___dynamic_strings.html.gs_sprintf ghostscript-9.07/trio/html/group___dynamic_strings.html
+--- ghostscript-9.07/trio/html/group___dynamic_strings.html.gs_sprintf 2013-05-09 17:02:39.104447249 +0100
++++ ghostscript-9.07/trio/html/group___dynamic_strings.html 2013-05-09 17:02:39.104447249 +0100
+@@ -0,0 +1,300 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>Dynamic String Functions.</h1>Dynamic string functions.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING trio_string_t *&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a0">trio_string_create</a> (int initial_size)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Create a new dynamic string.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING void&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a1">trio_string_destroy</a> (trio_string_t *self)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Deallocate the dynamic string and its contents.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a2">trio_string_extract</a> (trio_string_t *self)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Extract the content.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING void&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a3">trio_xstring_set</a> (trio_string_t *self, char *buffer)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Set the content of the dynamic string.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a6">trio_string_append</a> (trio_string_t *self, trio_string_t *other)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Append the second string to the first.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___dynamic_strings.html#a9">trio_string_contains</a> (trio_string_t *self, trio_string_t *other)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Search for the first occurrence of second parameter in the first.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Dynamic string functions.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;triostr.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b> <hr><h2>Function Documentation</h2>
++<a name="a6" doxytag="triostr-macro.c::trio_string_append"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_string_append </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_string_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>self</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_string_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>other</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Append the second string to the first.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>self</em>&nbsp;</td><td>
++Dynamic string to be modified. </td></tr>
++<tr><td valign=top><em>other</em>&nbsp;</td><td>
++Dynamic string to copy from. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure. </dl> </td>
++ </tr>
++</table>
++<a name="a9" doxytag="triostr-macro.c::trio_string_contains"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_string_contains </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_string_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>self</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_string_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>other</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Search for the first occurrence of second parameter in the first.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>self</em>&nbsp;</td><td>
++Dynamic string to be modified. </td></tr>
++<tr><td valign=top><em>other</em>&nbsp;</td><td>
++Dynamic string to copy from. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure. </dl> </td>
++ </tr>
++</table>
++<a name="a0" doxytag="triostr-macro.c::trio_string_create"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING trio_string_t* trio_string_create </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>initial_size</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Create a new dynamic string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>initial_size</em>&nbsp;</td><td>
++Initial size of the buffer. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Newly allocated dynamic string, or NULL if memory allocation failed. </dl> </td>
++ </tr>
++</table>
++<a name="a1" doxytag="triostr-macro.c::trio_string_destroy"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING void trio_string_destroy </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_string_t *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>self</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Deallocate the dynamic string and its contents.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>self</em>&nbsp;</td><td>
++Dynamic string </td></tr>
++</table>
++</dl> </td>
++ </tr>
++</table>
++<a name="a2" doxytag="triostr-macro.c::trio_string_extract"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_string_extract </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_string_t *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>self</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Extract the content.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>self</em>&nbsp;</td><td>
++Dynamic String </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Content of dynamic string.</dl>The content is removed from the dynamic string. This enables destruction of the dynamic string without deallocation of the content. </td>
++ </tr>
++</table>
++<a name="a3" doxytag="triostr-macro.c::trio_xstring_set"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING void trio_xstring_set </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_string_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>self</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Set the content of the dynamic string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>self</em>&nbsp;</td><td>
++Dynamic String </td></tr>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++The new content.</td></tr>
++</table>
++</dl>Sets the content of the dynamic string to a copy <code>buffer</code>. An existing content will be deallocated first, if necessary.
++<p>
++<dl compact><dt><b>Remarks: </b></dt><dd>
++ This function will make a copy of <code>buffer</code>. You are responsible for deallocating <code>buffer</code> yourself. </dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/group___printf.html.gs_sprintf ghostscript-9.07/trio/html/group___printf.html
+--- ghostscript-9.07/trio/html/group___printf.html.gs_sprintf 2013-05-09 17:02:39.105447253 +0100
++++ ghostscript-9.07/trio/html/group___printf.html 2013-05-09 17:02:39.105447253 +0100
+@@ -0,0 +1,1404 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>Formatted Printing Functions.</h1>Variations of formatted printing functions.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a0">trio_printf</a> (const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to standard output stream.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a1">trio_vprintf</a> (const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to standard output stream.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a2">trio_printfv</a> (const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to standard output stream.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a3">trio_fprintf</a> (FILE *file, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a4">trio_vfprintf</a> (FILE *file, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a5">trio_fprintfv</a> (FILE *file, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a6">trio_dprintf</a> (int fd, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file descriptor.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a7">trio_vdprintf</a> (int fd, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file descriptor.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a8">trio_dprintfv</a> (int fd, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to file descriptor.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a12">trio_sprintf</a> (char *buffer, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to string.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a13">trio_vsprintf</a> (char *buffer, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to string.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a14">trio_sprintfv</a> (char *buffer, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print to string.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a15">trio_snprintf</a> (char *buffer, size_t max, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print at most <code>max</code> characters to string.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a16">trio_vsnprintf</a> (char *buffer, size_t max, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print at most <code>max</code> characters to string.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a17">trio_snprintfv</a> (char *buffer, size_t max, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Print at most <code>max</code> characters to string.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a22">trio_asprintf</a> (char **result, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Allocate and print to string.</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a23">trio_vasprintf</a> (char **result, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Allocate and print to string.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___printf.html#a24">trio_asprintfv</a> (char **result, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Allocate and print to string.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Variations of formatted printing functions.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;trio.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b>
++<p>
++This documentation is incomplete. The documentation of the printf family in [C99] and [UNIX98] also applies to the trio counterparts.
++<p>
++All these functions outputs a string which is formatted according to the <code>format</code> string and the consecutive arguments. The <code>format</code> string is described in the Formatting section below.
++<p>
++<a class="el" href="group___printf.html#a218">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a219">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a220">Formatted Printing Functions.</a> writes the output to the standard output stream (stdout).
++<p>
++<a class="el" href="group___printf.html#a221">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a222">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a223">Formatted Printing Functions.</a> writes the output to a given output stream.
++<p>
++<a class="el" href="group___printf.html#a224">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a225">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a226">Formatted Printing Functions.</a> writes the output to a file descriptor (this includes, for example, sockets).
++<p>
++<a class="el" href="group___printf.html#a230">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a231">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a232">Formatted Printing Functions.</a> writes the output into <code>buffer</code>.
++<p>
++<a class="el" href="group___printf.html#a233">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a234">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a235">Formatted Printing Functions.</a> writes <code>max</code> - 1 characters into <code>buffer</code> followed by a terminating zero character. If <code>max</code> is 1, then <code>buffer</code> will be an empty string. If <code>max</code> is 0, then <code>buffer</code> is left untouched, and can consequently be NULL. The number of characters that would have been written to <code>buffer</code>, had there been sufficient space, is returned.
++<p>
++trio_snprintfcat appends the formatted text at the end of <code>buffer</code>.
++<p>
++<a class="el" href="group___printf.html#a240">Formatted Printing Functions.</a>, <a class="el" href="group___printf.html#a241">Formatted Printing Functions.</a>, and <a class="el" href="group___printf.html#a242">Formatted Printing Functions.</a> allocates and returns an allocated string in <code>buffer</code> containing the formatted text.
++<p>
++<b>FORMATTING</b>
++<p>
++The <code>format</code> string can contain normal text and conversion indicators. The normal text can be any character except the nil character (\000 = '\0') and the percent character (\045 = '%'). Conversion indicators consists of an indication character (%), followed by zero or more conversion modifiers, and exactly one conversion specifier.
++<p>
++<b>Modifiers</b>
++<p>
++Some modifiers exhibit the same behaviour for all specifiers, other modifiers indicate different behaviours for different specifiers, and other modifiers are only applicable to certain specifiers. The relationship is described for each modifier. The number 9 is used to denotes an arbitrary integer.
++<p>
++<em>Positional</em> ( <code>9$</code> ) [UNIX98]
++<p>
++Normally the arguments supplied to these functions are interpreted incrementially from left to right. Arguments can be referenced specifically in the format string. The modifier n$ selects the nth argument. The first argument is referred as 1$. If this modifier is used, it must be the first modifier after the indication character. n$ can also be used for argument width, precision, and base.
++<p>
++The performance penalty of using positionals is almost neglible (contrary to most other printf implementations).
++<p>
++<ul>
++<li> <em>Reference</em> <em>Mix</em>. Mixing normal and positional specifiers is allowed [TRIO]. For example, <div class="fragment"><pre>
++ trio_printf("%d %3$d %2$d\n", 1, 2, 3);
++</pre></div> results in <div class="fragment"><pre>
++ 1 3 2
++</pre></div> Arguments for the printf family are passed on the stack. On most platforms it is not possible to determine the size of individual stack elements, so it is essential that the format string corresponds exactly to the passed arguments. If this is not the case, incorrect values may be put into the result.</ul>
++<ul>
++<li> <em>Reference</em> <em>Gap</em>. For the same reason it is also essential that the format string does not contain any "gaps" in the positional arguments. For example, <div class="fragment"><pre>
++ trio_printf("%1$d %3$d\n", 1, 2, 3);
++</pre></div> is NOT allowed. The format string parser has no knowledge about whether the second argument is, say, an integer or a long double (which have different sizes). <div class="fragment"><pre>
++</pre></div> [UNIX98] describes this as unspecified behaviour. [TRIO] will detect reference gaps and return an error.</ul>
++<ul>
++<li> <em>Double</em> <em>Reference</em>. It is also not allowed to reference an argument twice or more. For example, <div class="fragment"><pre>
++ trio_printf("%1$d %1$lf\n", 1);
++</pre></div> is NOT allowed, because it references the first argument as two differently sized objects. <div class="fragment"><pre>
++</pre></div> [UNIX98] describes this as unspecified behaviour. [TRIO] will detect double references and return an error.</ul>
++The following two statements are equivalent <div class="fragment"><pre>
++ trio_printf("|%d %s\n|", 42, "meanings");
++ |42 meanings|
++
++ trio_printf("|%1$d %2$s|\n", 42, "meanings");
++ |42 meanings|
++</pre></div>
++<p>
++<em>Width</em> ( <code>9</code> )
++<p>
++Specifies the minimum width of a field. If the fields has less characters than specified by the width, the field will be left adjusted and padded by spaces. The adjustment and padding can be changed by the Alignment ( <code>-</code> ) and Padding ( <code>0</code> ) modifiers.
++<p>
++The width is specified as a number. If an asterix ( <code>*</code> ) is used instead, the width will be read from the argument list.
++<p>
++Prefixes, such as 0x for hexadecimal integers, are part of width. <div class="fragment"><pre>
++ trio_printf("|%10i|\n", 42);
++ | 42|
++</pre></div>
++<p>
++<em>Precision</em> ( .<code>9</code> )
++<p>
++The precision has different semantics for the various data types. The precision specifies the maximum number of printed characters for strings, the number of digits after the decimal-point for floating-point numbers, the number of significant digits for the <code>g</code> (and <code>G)</code> representation of floating-point numbers, the minimum number of printed digits for integers. <div class="fragment"><pre>
++ trio_printf("|%10.8i|%.8i|\n", 42, 42);
++ | 00000042|00000042|
++</pre></div>
++<p>
++<em>Base</em> ( ..<code>9</code> ) [TRIO]
++<p>
++Sets the base that the associated integer must be converted to. The base can be between 2 and 36 (both included). <div class="fragment"><pre>
++ trio_printf("|%10.8.2i|%10..2i|%..2i|\n", 42, 42, 42);
++ | 00101010| 101010|101010|
++
++ trio_printf("|%*.8.*i|\n", 10, 2, 42);
++ | 00101010|
++</pre></div>
++<p>
++<em>Padding</em> ( <code>0</code> )
++<p>
++Integer and floating point numbers are prepended by zeros. The number of leading zeros are determined by the precision. If precision is not present, width is used instead.
++<p>
++<em>Short</em> ( <code>h</code> )
++<p>
++Integer arguments are read as an ( <code>unsigned</code> ) <code>short</code> <code>int</code>. String and character arguments are read as <code>char</code> <code>*</code> and <code>char</code> respectively.
++<p>
++<em>Short</em> <em>short</em> ( <code>hh</code> ) [C99, GNU]
++<p>
++The argument is read as an ( <code>unsigned</code> ) <code>char</code>.
++<p>
++<em>Fixed</em> <em>Size</em> ( <code>I</code> ) [MSVC]
++<p>
++The argument is read as a fixed sized integer. The modifier is followed by a number, which specifies the number of bits in the integer, and can be one of the following
++<p>
++<ul>
++<li> <code>I8</code> <li> <code>I16</code> <li> <code>I32</code> <li> <code>I64</code> (if 64-bits integers are supported)</ul>
++Works only for integers (i, u, d, o, x, X)
++<p>
++<em>Largest</em> ( <code>j</code> ) [C99]
++<p>
++The argument is read as an <code>intmax_t</code> / <code>uintmax_t</code>, which is defined to be the largest signed/unsigned integer.
++<p>
++<em>Long</em> ( <code>l</code> )
++<p>
++An integral argument is read as an ( <code>unsigned</code> ) <code>long</code> <code>int</code>. A string argument is read as a <code>wchar_t</code> <code>*</code>, and output as a multi-byte character sequence.
++<p>
++<em>Long</em> <em>long</em> ( <code>ll</code> ) [C99, UNIX98, GNU]
++<p>
++The argument is read as an ( <code>unsigned</code> ) <code>long</code> <code>long</code> <code>int</code>.
++<p>
++<em>Long</em> <em>double</em> ( <code>L</code> ) [C99, UNIX98, GNU]
++<p>
++The argument is read as a <code>long</code> <code>double</code>.
++<p>
++<em>ptrdiff_t</em> ( <code>t</code> ) [C99]
++<p>
++The argument is read as a <code>ptrdiff_t</code>, which is defined to be the signed integer type of the result of subtracting two pointers.
++<p>
++<em>Quad</em> ( <code>q</code> ) [BSD, GNU]
++<p>
++Corresponds to the long long modifier ( <code>ll</code> ).
++<p>
++<em>Wide</em> ( <code>w</code> ) [MISC]
++<p>
++For a string argument this is equivalent to using the long modifier ( <code>l</code> ).
++<p>
++<em>size_t</em> ( <code>z</code> ) [C99]
++<p>
++The argument is read as a <code>size_t</code>, which is defined to be the type returned by the <code>sizeof</code> operator.
++<p>
++<em>size_t</em> ( <code>Z</code> ) [GNU]
++<p>
++Corresponds to the size_t modifier ( <code>z</code> ).
++<p>
++<em>Alternative</em> ( <code>#</code> )
++<p>
++Prepend radix indicator for hexadecimal, octal, and binary integer numbers and for pointers. Always add a decimal-point for floating-point numbers. Escape non-printable characters for strings.
++<p>
++<em>Spacing</em> ( )
++<p>
++Prepend leading spaces when necessary.
++<p>
++<em>Sign</em> ( <code>+</code> )
++<p>
++Always prepend a sign to numbers. Normally only the negative sign is prepended to a number. With this modifier the positive sign may also be prepended.
++<p>
++<em>Alignment</em> ( <code>-</code> )
++<p>
++The output will be left-justified in the field specified by the width.
++<p>
++<em>Argument</em> ( <code>*</code> )
++<p>
++Width, precision, or base is read from the argument list, rather than from the formatting string.
++<p>
++<em>Quote</em> / <em>Grouping</em> ( ' <code>)</code> [MISC]
++<p>
++Groups integers and the integer-part of floating-point numbers according to the locale. Quote strings and characters.
++<p>
++<em>Sticky</em> ( <code>!</code> ) [TRIO]
++<p>
++The modifiers listed for the current specifier will be reused by subsequent specifiers of the same group. The following specifier groups exists <ul>
++<li> Integer ( <code>i</code>, <code>u</code>, <code>d</code>, <code>o</code>, <code>x</code>, <code>X</code> ) <li> Floating-point ( <code>f</code>, <code>F</code>, <code>e</code>, <code>E</code>, <code>g</code>, <code>G</code>, <code>a</code>, <code>A</code> ) <li> Character ( <code>c</code> ) <li> String ( <code>s</code> ) <li> Pointer ( <code>p</code> ) <li> Count ( <code>n</code> ) <li> Errno ( <code>m</code> ) <li> Group ( <code>[]</code> )</ul>
++The sticky modifiers are active until superseeded by other sticky modifiers, or the end of the format string is reached. Local modifiers overrides sticky modifiers for the given specifier only. <div class="fragment"><pre>
++ trio_printf("|%!08#x|%04x|%x|\n", 42, 42, 42);
++ |0x00002a|0x2a|0x00002a|
++</pre></div>
++<p>
++<b>Specifiers</b>
++<p>
++<em>Percent</em> ( <code>%</code> )
++<p>
++Produce a percent ( <code>%</code> ) character. This is used to quote the indication character. No modifiers are allowed. The full syntax is <code>%%</code>. <div class="fragment"><pre>
++ trio_printf("Percent is %%\n");
++ Percent is %
++</pre></div>
++<p>
++<em>Hex</em> <em>floats</em> ( <code>a</code>, <code>A</code> ) [C99]
++<p>
++Output a hexadecimal (base 16) representation of a floating point number. The number is automatically preceeded by <code>0x</code> ( or <code>0X</code> ). The exponent is <code>p</code> ( or <code>P</code> ). <div class="fragment"><pre>
++ trio_printf("|%a|%A|\n", 3.1415, 3.1415e20);
++ |0x3.228bc|0X3.228BCP+14|
++</pre></div>
++<p>
++<em>Binary</em> <em>numbers</em> ( <code>b</code>, <code>B</code> ) [MISC - SCO UnixWare 7]
++<p>
++DEPRECATED: Use Base modifier <code>%..2i</code> instead.
++<p>
++<em>Character</em> ( <code>c</code> )
++<p>
++Output a single character.
++<p>
++<ul>
++<li> Quote ( ' <code>)</code> [TRIO]. Quote the character.</ul>
++<em>Decimal</em> ( <code>d</code> )
++<p>
++Output a decimal (base 10) representation of a number.
++<p>
++<ul>
++<li> Grouping ( ' <code>)</code> [TRIO]. The number is separated by the locale thousand separator. <div class="fragment"><pre>
++ trio_printf("|%'ld|\n", 1234567);
++ |1,234,567|
++</pre></div></ul>
++<em>Floating-point</em> ( <code>e</code>, <code>E)</code>
++<p>
++Output a decimal floating-point number. The style is <code>[-]9.99e[-]9</code>, where <ul>
++<li> <code>[-]9.99</code> is the mantissa (as described for the <code>f</code>, <code>F</code> specifier), and <li> <code>e[-]9</code> is the exponent indicator (either <code>e</code> or <code>E</code>, depending on the floating-point specifier), followed by an optional sign and the exponent</ul>
++If the precision is wider than the maximum number of digits that can be represented by the floating-point unit, then the number will be adequately rounded. For example, assuming DBL_DIG is 15 <div class="fragment"><pre>
++ trio_printf("|%.18e|\n", (1.0 / 3.0));
++ |3.333333333333333000e-01|
++</pre></div>
++<p>
++<em>Floating-point</em> ( <code>f</code>, <code>F</code> )
++<p>
++Output a decimal floating-point number. The style is <code>[-]9.99</code>, where <ul>
++<li> <code>[-]</code> is an optional sign (either <code>+</code> or <code>-)</code>, <li> <code>9</code> is the integer-part (possibly interspersed with thousand-separators), <li> . <code>is</code> the decimal-point (depending on the locale), and <li> <code>99</code> is the fractional-part.</ul>
++If more digits are needed to output the number, than can be represented with the accuracy of the floating-point unit, then the number will be adequately rounded. For example, assuming that DBL_DIG is 15 <div class="fragment"><pre>
++ trio_printf("|%f|\n", (2.0 / 3.0) * 1E18);
++ |666666666666666700.000000|
++</pre></div>
++<p>
++The following modifiers holds a special meaning for this specifier <ul>
++<li> Alternative ( <code>#</code> ) [C99]. Add decimal point. <li> Grouping ( ' <code>)</code> [TRIO]. Group integer part of number into thousands (according to locale).</ul>
++<em>Floating-point</em> ( <code>g</code>, <code>G)</code>
++<p>
++Output a decimal floating-point representation of a number. The format of either the <code>f</code>, <code>F</code> specifier or the <code>e</code>, <code>E</code> specifier is used, whatever produces the shortest result.
++<p>
++<em>Integer</em> ( <code>i</code> )
++<p>
++Output a signed integer. Default base is 10.
++<p>
++<em>Errno</em> ( <code>m</code> ) [GNU]
++<p>
++<em>Count</em> ( <code>n</code> )
++<p>
++Insert into the location pointed to by the argument, the number of octets written to the output so far.
++<p>
++<em>Octal</em> ( <code>o</code> )
++<p>
++Output an octal (base 8) representation of a number.
++<p>
++<em>Pointer</em> ( <code>p</code> )
++<p>
++Ouput the address of the argument. The address is printed as a hexadecimal number. If the argument is the NULL pointer the text <code>(nil)</code> will be used instead. <ul>
++<li> Alternative ( <code>#</code> ) [TRIO]. Prepend 0x</ul>
++<em>String</em> ( <code>s</code>, <code>S</code> )
++<p>
++Output a string. The argument must point to a zero terminated string. If the argument is the NULL pointer the text <code>(nil)</code> will be used instead. <code>S</code> is equivalent to <code>ls</code>. <ul>
++<li> Alternative ( <code>#</code> ) [TRIO]. Escape non-printable characters.</ul>
++Non-printable characters are converted into C escapes, or hexadecimal numbers where no C escapes exists for the character. The C escapes, the hexadecimal number, and all backslashes are prepended by a backslash ( <code>\</code> ). The supported C escapes are <ul>
++<li> <code>\a</code> (\007) = alert <li> <code>\b</code> (\010) = backspace <li> <code>\f</code> (\014) = formfeed <li> <code>\n</code> (\012) = newline <li> <code>\r</code> (\015) = carriage return <li> <code>\t</code> (\011) = horizontal tab <li> <code>\v</code> (\013) = vertical tab</ul>
++<div class="fragment"><pre>
++ trio_printf("|One %s Three|One %'s Three|\n", "Two", "Two");
++ |One Two Three|One "Two" Three|
++
++ trio_printf("|Argument missing %s|\n", NULL);
++ |Argument missing (nil)|
++
++ trio_printf("|%#s|\n", "\007 \a.");
++ |\a \a.|
++</pre></div>
++<p>
++<em>Unsigned</em> ( <code>u</code> )
++<p>
++Output an unsigned integer. Default base is 10.
++<p>
++<em>Hex</em> ( <code>x</code>, <code>X</code> )
++<p>
++Output a hexadecimal (base 16) representation of a number.
++<p>
++<ul>
++<li> Alternative ( <code>#</code> ). Preceed the number by <code>0x</code> ( or <code>0X</code> ). The two characters are counted as part of the width.</ul>
++<em>User-defined</em> ( <code>&lt;&gt;</code> )
++<p>
++Invoke user-defined formatting. See <a class="el" href="group___user_defined.html#a243">User-defined Formatted Printing Functions.</a> for further information.
++<p>
++<b>RETURN</b> <b>VALUES</b>
++<p>
++All functions returns the number of outputted characters. If an error occured then a negative error code is returned [TRIO]. Note that this is a deviation from the standard, which simply returns -1 (or EOF) and errno set appropriately. The error condition can be detected by checking whether the function returns a negative number or not, and the number can be parsed with the following macros. The error codes are primarily intended as debugging aide for the developer.
++<p>
++<ul>
++<li> TRIO_EINVAL: Invalid argument. <li> TRIO_ETOOMANY: Too many arguments. <li> TRIO_EDBLREF: Double argument reference. <li> TRIO_EGAP: Argument reference gap. <li> TRIO_ENOMEM: Out of memory. <li> TRIO_ERANGE: Invalid range. <li> TRIO_ERRNO: The error is specified by the errno variable.</ul>
++Example: <div class="fragment"><pre>
++ int rc;
++
++ rc = trio_printf("%r\n", 42);
++ if (rc &lt; 0) {
++ if (TRIO_ERROR_CODE(rc) != TRIO_EOF) {
++ trio_printf("Error: %s at position %d\n",
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ }
++ }
++</pre></div>
++<p>
++<b>SEE</b> <b>ALSO</b>
++<p>
++<em>trio_scanf</em>, <em>trio_register</em>.
++<p>
++<b>NOTES</b>
++<p>
++The printfv family uses an array rather than the stack to pass arguments. This means that <code>short</code> <code>int</code> and <code>float</code> values will not be handled by the default argument promotion in C. Instead, these values must be explicitly converted with the Short (h) modifier in both cases.
++<p>
++Example: <div class="fragment"><pre>
++ void *array[2];
++ float float_number = 42.0;
++ short short_number = 42;
++
++ array[0] = &amp;float_number;
++ array[1] = &amp;short_number;
++
++ trio_printfv("%hf %hd\n", array); /* CORRECT
++ trio_printfv("%f %d\n", array); /* WRONG
++</pre></div>
++<p>
++<b>CONFORMING</b> <b>TO</b>
++<p>
++Throughout this document the following abbreviations have been used to indicate what standard a feature conforms to. If nothing else is indicated ANSI C (C89) is assumed.
++<p>
++<ul>
++<li> [C89] ANSI X3.159-1989 <li> [C99] ISO/IEC 9899:1999 <li> [UNIX98] The Single UNIX Specification, Version 2 <li> [BSD] 4.4BSD <li> [GNU] GNU libc <li> [MSVC] Microsoft Visual C <li> [MISC] Other non-standard sources <li> [TRIO] Extensions specific for this package </ul>
++<hr><h2>Function Documentation</h2>
++<a name="a22" doxytag="trio-cdetect.c::trio_asprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_asprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Allocate and print to string.
++<p>
++The memory allocated and returned by <code>result</code> must be freed by the calling application.<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>result</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a24" doxytag="trio-cdetect.c::trio_asprintfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_asprintfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Allocate and print to string.
++<p>
++The memory allocated and returned by <code>result</code> must be freed by the calling application.<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>result</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a6" doxytag="trio-cdetect.c::trio_dprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_dprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a8" doxytag="trio-cdetect.c::trio_dprintfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_dprintfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a3" doxytag="trio-cdetect.c::trio_fprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_fprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a5" doxytag="trio-cdetect.c::trio_fprintfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_fprintfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a0" doxytag="trio-cdetect.c::trio_printf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_printf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to standard output stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a2" doxytag="trio-cdetect.c::trio_printfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_printfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to standard output stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a15" doxytag="trio-cdetect.c::trio_snprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_snprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print at most <code>max</code> characters to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to print. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a17" doxytag="trio-cdetect.c::trio_snprintfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_snprintfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print at most <code>max</code> characters to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to print. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a12" doxytag="trio-cdetect.c::trio_sprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_sprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a14" doxytag="trio-cdetect.c::trio_sprintfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_sprintfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a23" doxytag="trio-cdetect.c::trio_vasprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vasprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>result</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Allocate and print to string.
++<p>
++The memory allocated and returned by <code>result</code> must be freed by the calling application.<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>result</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a7" doxytag="trio-cdetect.c::trio_vdprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vdprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a4" doxytag="trio-cdetect.c::trio_vfprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vfprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a1" doxytag="trio-cdetect.c::trio_vprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to standard output stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a16" doxytag="trio-cdetect.c::trio_vsnprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vsnprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print at most <code>max</code> characters to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to print. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a13" doxytag="trio-cdetect.c::trio_vsprintf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vsprintf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Print to string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Output string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of printed characters. </dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/group___scanf.html.gs_sprintf ghostscript-9.07/trio/html/group___scanf.html
+--- ghostscript-9.07/trio/html/group___scanf.html.gs_sprintf 2013-05-09 17:02:39.105447253 +0100
++++ ghostscript-9.07/trio/html/group___scanf.html 2013-05-09 17:02:39.105447253 +0100
+@@ -0,0 +1,766 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>Formatted Scanning Functions.</h1>Variations of formatted scanning functions.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a0">trio_scanf</a> (const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from standard input stream.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a1">trio_vscanf</a> (const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from standard input stream.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a2">trio_scanfv</a> (const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from standard input stream.</em> <a href="#a2"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a3">trio_fscanf</a> (FILE *file, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file.</em> <a href="#a3"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a4">trio_vfscanf</a> (FILE *file, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a5">trio_fscanfv</a> (FILE *file, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a6">trio_dscanf</a> (int fd, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file descriptor.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a7">trio_vdscanf</a> (int fd, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file descriptor.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a8">trio_dscanfv</a> (int fd, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from file descriptor.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a12">trio_sscanf</a> (const char *buffer, const char *format,...)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from string.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a13">trio_vsscanf</a> (const char *buffer, const char *format, va_list args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from string.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="group___scanf.html#a14">trio_sscanfv</a> (const char *buffer, const char *format, trio_pointer_t *args)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Scan characters from string.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Variations of formatted scanning functions.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;trio.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b>
++<p>
++This documentation is incomplete. The documentation of the scanf family in [C99] and [UNIX98] also applies to the trio counterparts.
++<p>
++<b>SCANNING</b>
++<p>
++The scanning is controlled by the format string. The format string can contain normal text and conversion indicators. The normal text can be any character except the nil character (\000) and the percent character (\045 = '%'). Conversion indicators consists of an indication character (%), followed by zero or more conversion modifiers, and exactly one conversion specifier.
++<p>
++<b>Modifiers</b>
++<p>
++<em>Positional</em> ( <code>9$</code> ) [UNIX98]
++<p>
++See <a class="el" href="group___printf.html#a218">Formatted Printing Functions.</a>.
++<p>
++<b>Specifiers</b>
++<p>
++<em>Percent</em> ( <code>%</code> )
++<p>
++<em>Character</em> ( <code>c</code> )
++<p>
++<em>Decimal</em> ( <code>d</code> )
++<p>
++<em>Floating-point</em> ( <code>a</code>, <code>A</code>, <code>e</code>, <code>E</code>, <code>f</code>, <code>F</code>, <code>g</code>, <code>G</code> )
++<p>
++<em>Integer</em> ( <code>i</code> )
++<p>
++<em>Count</em> ( <code>n</code> )
++<p>
++<em>Octal</em> ( <code>o</code> )
++<p>
++<em>Pointer</em> ( <code>p</code> )
++<p>
++<em>String</em> ( <code>s</code> )
++<p>
++<em>Unsigned</em> ( <code>u</code> )
++<p>
++<em>Hex</em> ( <code>x</code>, <code>X</code> )
++<p>
++<em>Scanlist</em> ( <code>[]</code> )
++<p>
++Scanlist Exclusion (<code>^</code> )
++<p>
++Scanlist Range ( <code>-</code> ) [TRIO]
++<p>
++<ul>
++<li> Only increasing ranges, i.e. <code>[a-b]</code>, but not <code>[b-a]</code>. <li> Transitive ranges, ie. <code>[a-b-c]</code> equals <code>[a-c]</code>. <li> Trailing minus, ie. <code>[a-]</code> is interpreted as an <code>a</code> and a <code>-</code>. <li> Duplicates are ignored.</ul>
++Scanlist Equivalence Class Expression ( <code>[</code>= =<code>]</code> ) [TRIO]
++<p>
++Locale dependent (LC_COLLATE). Only one expression can appear inside the delimiters. <ul>
++<li> <code>[=a=]</code> All letters in the same equivalence class as the letter <code>a</code>. <div class="fragment"><pre>
++ trio_scanf("%[[=a=]b]\n", buffer);
++ trio_scanf("%[[=a=][=b=]]\n", buffer);
++</pre></div></ul>
++Scanlist Character Class Expression ( <code>[</code>: :<code>])</code> [TRIO] Locale dependent (LC_CTYPE). Only one expression can appear inside the delimiters. <ul>
++<li> <code>[:alnum:]</code> Same as <code>[:alpha:]</code> and <code>[:digit:]</code> <li> <code>[:alpha:]</code> Same as <code>[:lower:]</code> and <code>[:upper:]</code> <li> <code>[:cntrl:]</code> Control characters <li> <code>[:digit:]</code> Decimal digits <li> <code>[:graph:]</code> Printable characters except space <li> <code>[:lower:]</code> Lower case alphabetic letters <li> <code>[:print:]</code> Printable characters <li> <code>[:punct:]</code> Punctuation <li> <code>[:space:]</code> Whitespace characters <li> <code>[:upper:]</code> Upper case alphabetic letters <li> <code>[:xdigit:]</code> Hexadecimal digits <div class="fragment"><pre>
++ trio_scanf("%[[:alnum:]]\n", buffer);
++ trio_scanf("%[[:alpha:][:digit:]]\n", buffer);
++</pre></div></ul>
++<b>RETURN</b> <b>VALUES</b>
++<p>
++<b>SEE</b> <b>ALSO</b>
++<p>
++<a class="el" href="group___printf.html#a218">Formatted Printing Functions.</a> <hr><h2>Function Documentation</h2>
++<a name="a6" doxytag="trio-cdetect.c::trio_dscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_dscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a8" doxytag="trio-cdetect.c::trio_dscanfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_dscanfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a3" doxytag="trio-cdetect.c::trio_fscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_fscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a5" doxytag="trio-cdetect.c::trio_fscanfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_fscanfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a0" doxytag="trio-cdetect.c::trio_scanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_scanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from standard input stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a2" doxytag="trio-cdetect.c::trio_scanfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_scanfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from standard input stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a12" doxytag="trio-cdetect.c::trio_sscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_sscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>...&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp;</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Input string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>...</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a14" doxytag="trio-cdetect.c::trio_sscanfv"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_sscanfv </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>trio_pointer_t *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Input string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a7" doxytag="trio-cdetect.c::trio_vdscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vdscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file descriptor.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>fd</em>&nbsp;</td><td>
++File descriptor. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a4" doxytag="trio-cdetect.c::trio_vfscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vfscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">FILE *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from file.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>file</em>&nbsp;</td><td>
++File pointer. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a1" doxytag="trio-cdetect.c::trio_vscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from standard input stream.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<a name="a13" doxytag="trio-cdetect.c::trio_vsscanf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> int trio_vsscanf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>buffer</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>va_list&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>args</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Scan characters from string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>buffer</em>&nbsp;</td><td>
++Input string. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>args</em>&nbsp;</td><td>
++Arguments. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of scanned characters. </dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/group___special_quantities.html.gs_sprintf ghostscript-9.07/trio/html/group___special_quantities.html
+--- ghostscript-9.07/trio/html/group___special_quantities.html.gs_sprintf 2013-05-09 17:02:39.106447257 +0100
++++ ghostscript-9.07/trio/html/group___special_quantities.html 2013-05-09 17:02:39.106447257 +0100
+@@ -0,0 +1,377 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>Special Quantifies.</h1>Functions to detect and fabricate special quantities in floating-point numbers.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN int&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a4">trio_isnan</a> (double number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Check for NaN.</em> <a href="#a4"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN int&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a5">trio_isinf</a> (double number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Check for infinity.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN int&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a6">trio_isfinite</a> (double number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Check for finity.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN int&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a7">trio_signbit</a> (double number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Examine the sign of a number.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN int&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a8">trio_fpclassify</a> (double number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Examine the class of a number.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN double&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a9">trio_nzero</a> (void)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Generate negative zero.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN double&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a10">trio_pinf</a> (void)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Generate positive infinity.</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN double&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a11">trio_ninf</a> (void)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Generate negative infinity.</em> <a href="#a11"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_NAN double&nbsp;</td><td valign=bottom><a class="el" href="group___special_quantities.html#a12">trio_nan</a> (void)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Generate NaN.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Functions to detect and fabricate special quantities in floating-point numbers.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;trionan.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b>
++<p>
++Certain arithmetical operations does not result in normal numbers. Instead they result in special quantities that must be handled differently by the floating-point hardware. These includes Infinity and Not-A-Number (NaN).
++<p>
++For example, 0/0 (zero divided by zero) yields NaN. Any operation which involves a NaN will result in NaN. Any comparison involving NaN will be unsuccessful, even if NaN is compared to NaN.
++<p>
++These special quantities are represented with special bit patterns by the floating-point hardware, and this bit patterns depend on the hardware. There may even be hardware that does not support special quantities, so the functions in this module are not guaranteed to work on all platforms.
++<p>
++The approach used in this module is to (in decreasing order of importance) <ul>
++<li> Use C99 functionality when available. <li> Use IEEE 754-1985 bit patterns if possible. <li> Use platform-specific techniques.</ul>
++<b>NOTES</b>
++<p>
++This module does not depend on the rest of trio, and can thus be reused separately. The following files are necessary: <ul>
++<li> <code>triodef.h</code> <li> <code>trionan.h</code> <li> <code>trionan.c</code> </ul>
++<hr><h2>Function Documentation</h2>
++<a name="a8" doxytag="trionan-macro.c::trio_fpclassify"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN int trio_fpclassify </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">double&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Examine the class of a number.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>number</em>&nbsp;</td><td>
++An arbitrary floating-point number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Enumerable value indicating the class of <code>number</code> </dl> </td>
++ </tr>
++</table>
++<a name="a6" doxytag="trionan-macro.c::trio_isfinite"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN int trio_isfinite </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">double&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Check for finity.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>number</em>&nbsp;</td><td>
++An arbitrary floating-point number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating whether or not the number is a finite. </dl> </td>
++ </tr>
++</table>
++<a name="a5" doxytag="trionan-macro.c::trio_isinf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN int trio_isinf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">double&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Check for infinity.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>number</em>&nbsp;</td><td>
++An arbitrary floating-point number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++1 if positive infinity, -1 if negative infinity, 0 otherwise. </dl> </td>
++ </tr>
++</table>
++<a name="a4" doxytag="trionan-macro.c::trio_isnan"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN int trio_isnan </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">double&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Check for NaN.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>number</em>&nbsp;</td><td>
++An arbitrary floating-point number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating whether or not the number is a NaN. </dl> </td>
++ </tr>
++</table>
++<a name="a12" doxytag="trionan-macro.c::trio_nan"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN double trio_nan </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">void&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Generate NaN.
++<p>
++<dl compact><dt><b>Returns: </b></dt><dd>
++Floating-point representation of NaN. </dl> </td>
++ </tr>
++</table>
++<a name="a11" doxytag="trionan-macro.c::trio_ninf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN double trio_ninf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">void&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Generate negative infinity.
++<p>
++<dl compact><dt><b>Returns: </b></dt><dd>
++Floating-point value of negative infinity. </dl> </td>
++ </tr>
++</table>
++<a name="a9" doxytag="trionan-macro.c::trio_nzero"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN double trio_nzero </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">void&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Generate negative zero.
++<p>
++<dl compact><dt><b>Returns: </b></dt><dd>
++Floating-point representation of negative zero. </dl> </td>
++ </tr>
++</table>
++<a name="a10" doxytag="trionan-macro.c::trio_pinf"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN double trio_pinf </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">void&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Generate positive infinity.
++<p>
++<dl compact><dt><b>Returns: </b></dt><dd>
++Floating-point representation of positive infinity. </dl> </td>
++ </tr>
++</table>
++<a name="a7" doxytag="trionan-macro.c::trio_signbit"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_NAN int trio_signbit </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">double&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Examine the sign of a number.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>number</em>&nbsp;</td><td>
++An arbitrary floating-point number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating whether or not the number has the sign bit set (i.e. is negative). </dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/group___static_strings.html.gs_sprintf ghostscript-9.07/trio/html/group___static_strings.html
+--- ghostscript-9.07/trio/html/group___static_strings.html.gs_sprintf 2013-05-09 17:02:39.107447262 +0100
++++ ghostscript-9.07/trio/html/group___static_strings.html 2013-05-09 17:02:39.107447262 +0100
+@@ -0,0 +1,1864 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>Static String Functions.</h1>Replacements for the standard C string functions.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a5">trio_create</a> (size_t size)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Create new string.</em> <a href="#a5"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING void&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a6">trio_destroy</a> (char *string)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Destroy string.</em> <a href="#a6"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING size_t&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a7">trio_length</a> (const char *string)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Count the number of characters in a string.</em> <a href="#a7"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a8">trio_append</a> (char *target, const char *source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Append <code>source</code> at the end of <code>target</code>.</em> <a href="#a8"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a9">trio_append_max</a> (char *target, size_t max, const char *source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Append at most <code>max</code> characters from <code>source</code> to <code>target</code>.</em> <a href="#a9"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a10">trio_contains</a> (const char *string, const char *substring)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Determine if a string contains a substring.</em> <a href="#a10"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a11">trio_copy</a> (char *target, const char *source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Copy <code>source</code> to <code>target</code>.</em> <a href="#a11"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a12">trio_copy_max</a> (char *target, size_t max, const char *source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Copy at most <code>max</code> characters from <code>source</code> to <code>target</code>.</em> <a href="#a12"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a13">trio_duplicate</a> (const char *source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Duplicate <code>source</code>.</em> <a href="#a13"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a14">trio_duplicate_max</a> (const char *source, size_t max)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Duplicate at most <code>max</code> characters of <code>source</code>.</em> <a href="#a14"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a15">trio_equal</a> (const char *first, const char *second)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare if two strings are equal.</em> <a href="#a15"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a16">trio_equal_case</a> (const char *first, const char *second)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare if two strings are equal.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a17">trio_equal_case_max</a> (const char *first, size_t max, const char *second)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare if two strings up until the first <code>max</code> characters are equal.</em> <a href="#a17"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a18">trio_equal_locale</a> (const char *first, const char *second)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare if two strings are equal.</em> <a href="#a18"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a19">trio_equal_max</a> (const char *first, size_t max, const char *second)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare if two strings up until the first <code>max</code> characters are equal.</em> <a href="#a19"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING const char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a20">trio_error</a> (int error_number)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Provide a textual description of an error code (errno).</em> <a href="#a20"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING size_t&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a21">trio_format_date_max</a> (char *target, size_t max, const char *format, const struct tm *datetime)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Format the date/time according to <code>format</code>.</em> <a href="#a21"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING unsigned <br>
++long&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a22">trio_hash</a> (const char *string, int type)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Calculate a hash value for a string.</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a23">trio_index</a> (const char *string, int character)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Find first occurrence of a character in a string.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a24">trio_index_last</a> (const char *string, int character)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Find last occurrence of a character in a string.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a25">trio_lower</a> (char *target)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert the alphabetic letters in the string to lower-case.</em> <a href="#a25"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a26">trio_match</a> (const char *string, const char *pattern)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare two strings using wildcards.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a27">trio_match_case</a> (const char *string, const char *pattern)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Compare two strings using wildcards.</em> <a href="#a27"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING size_t&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a28">trio_span_function</a> (char *target, const char *source, int(*Function)(int))</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Execute a function on each character in string.</em> <a href="#a28"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a29">trio_substring</a> (const char *string, const char *substring)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Search for a substring in a string.</em> <a href="#a29"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a30">trio_substring_max</a> (const char *string, size_t max, const char *substring)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Search for a substring in the first <code>max</code> characters of a string.</em> <a href="#a30"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING char *&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a31">trio_tokenize</a> (char *string, const char *delimiters)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Tokenize string.</em> <a href="#a31"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING trio_long_double_t&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a32">trio_to_long_double</a> (const char *source, char **endp)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert string to floating-point number.</em> <a href="#a32"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING double&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a33">trio_to_double</a> (const char *source, char **endp)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert string to floating-point number.</em> <a href="#a33"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING float&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a34">trio_to_float</a> (const char *source, char **endp)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert string to floating-point number.</em> <a href="#a34"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING long&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a35">trio_to_long</a> (const char *string, char **endp, int base)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert string to signed integer.</em> <a href="#a35"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a36">trio_to_lower</a> (int source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert one alphabetic letter to lower-case.</em> <a href="#a36"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING unsigned <br>
++long&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a37">trio_to_unsigned_long</a> (const char *string, char **endp, int base)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert string to unsigned integer.</em> <a href="#a37"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a38">trio_to_upper</a> (int source)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert one alphabetic letter to upper-case.</em> <a href="#a38"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING int&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a39">trio_upper</a> (char *target)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Convert the alphabetic letters in the string to upper-case.</em> <a href="#a39"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>TRIO_PUBLIC_STRING size_t&nbsp;</td><td valign=bottom><a class="el" href="group___static_strings.html#a40">trio_length_max</a> (const char *string, size_t max)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Count at most <code>max</code> characters in a string.</em> <a href="#a40"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Replacements for the standard C string functions.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;triostr.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b>
++<p>
++This package renames, fixes, and extends the standard C string handling functions.
++<p>
++<b>Naming</b>
++<p>
++Renaming is done to provide more clear names, to provide a consistant naming and argument policy, and to hide portability issues.
++<p>
++<ul>
++<li> All functions starts with "trio_". <li> Target is always the first argument, if present, except where the target is optional, such as <a class="el" href="group___static_strings.html#a33">Static String Functions.</a>. <li> Functions requiring a size for target includes "_max" in its name, and the size is always the second argument. <li> Functions performing case-sensitive operations includes "_case" in its name.</ul>
++<b>Fixing</b>
++<p>
++Fixing is done to avoid subtle error conditions. For example, <code>strncpy</code> does not terminate the result with a zero if the source string is bigger than the maximal length, so technically the result is not a C string anymore. <a class="el" href="group___static_strings.html#a12">Static String Functions.</a> makes sure that the result is zero terminated.
++<p>
++<b>Extending</b>
++<p>
++Extending is done to provide a richer set of fundamental functions. This includes functionality such as wildcard matching ( <code>trio_match</code> ) and calculation of hash values ( <code>trio_hash</code> ). <hr><h2>Function Documentation</h2>
++<a name="a8" doxytag="triostr-macro.c::trio_append"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_append </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Append <code>source</code> at the end of <code>target</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl><dl compact><dt><b>Precondition: </b></dt><dd>
++<code>target</code> must point to a memory chunk with sufficient room to contain the <code>target</code> string and <code>source</code> string. <dd>
++No boundary checking is performed, so insufficient memory will result in a buffer overrun. </dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a9" doxytag="triostr-macro.c::trio_append_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_append_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Append at most <code>max</code> characters from <code>source</code> to <code>target</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to append. </td></tr>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl><dl compact><dt><b>Precondition: </b></dt><dd>
++<code>target</code> must point to a memory chuck with sufficient room to contain the <code>target</code> string and the <code>source</code> string (at most <code>max</code> characters). <dd>
++No boundary checking is performed, so insufficient memory will result in a buffer overrun. </dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a10" doxytag="triostr-macro.c::trio_contains"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_contains </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>substring</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Determine if a string contains a substring.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>substring</em>&nbsp;</td><td>
++String to be found. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure. </dl> </td>
++ </tr>
++</table>
++<a name="a11" doxytag="triostr-macro.c::trio_copy"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_copy </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Copy <code>source</code> to <code>target</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl><dl compact><dt><b>Precondition: </b></dt><dd>
++<code>target</code> must point to a memory chunk with sufficient room to contain the <code>source</code> string. <dd>
++No boundary checking is performed, so insufficient memory will result in a buffer overrun. </dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a12" doxytag="triostr-macro.c::trio_copy_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_copy_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Copy at most <code>max</code> characters from <code>source</code> to <code>target</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to append. </td></tr>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl><dl compact><dt><b>Precondition: </b></dt><dd>
++<code>target</code> must point to a memory chunk with sufficient room to contain the <code>source</code> string (at most <code>max</code> characters). <dd>
++No boundary checking is performed, so insufficient memory will result in a buffer overrun. </dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a5" doxytag="triostr-macro.c::trio_create"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_create </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">size_t&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>size</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Create new string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>size</em>&nbsp;</td><td>
++Size of new string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Pointer to string, or NULL if allocation failed. </dl> </td>
++ </tr>
++</table>
++<a name="a6" doxytag="triostr-macro.c::trio_destroy"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING void trio_destroy </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>string</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Destroy string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be freed. </td></tr>
++</table>
++</dl> </td>
++ </tr>
++</table>
++<a name="a13" doxytag="triostr-macro.c::trio_duplicate"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_duplicate </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>source</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Duplicate <code>source</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A copy of the <code>source</code> string.</dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a14" doxytag="triostr-macro.c::trio_duplicate_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_duplicate_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Duplicate at most <code>max</code> characters of <code>source</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to duplicate. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A copy of the <code>source</code> string.</dl><dl compact><dt><b>Postcondition: </b></dt><dd>
++<code>target</code> will be zero terminated. </dl> </td>
++ </tr>
++</table>
++<a name="a15" doxytag="triostr-macro.c::trio_equal"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_equal </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>first</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>second</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare if two strings are equal.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>first</em>&nbsp;</td><td>
++First string. </td></tr>
++<tr><td valign=top><em>second</em>&nbsp;</td><td>
++Second string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean indicating whether the two strings are equal or not.</dl>Case-insensitive comparison. </td>
++ </tr>
++</table>
++<a name="a16" doxytag="triostr-macro.c::trio_equal_case"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_equal_case </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>first</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>second</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare if two strings are equal.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>first</em>&nbsp;</td><td>
++First string. </td></tr>
++<tr><td valign=top><em>second</em>&nbsp;</td><td>
++Second string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean indicating whether the two strings are equal or not.</dl>Case-sensitive comparison. </td>
++ </tr>
++</table>
++<a name="a17" doxytag="triostr-macro.c::trio_equal_case_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_equal_case_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>first</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>second</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare if two strings up until the first <code>max</code> characters are equal.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>first</em>&nbsp;</td><td>
++First string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to compare. </td></tr>
++<tr><td valign=top><em>second</em>&nbsp;</td><td>
++Second string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean indicating whether the two strings are equal or not.</dl>Case-sensitive comparison. </td>
++ </tr>
++</table>
++<a name="a18" doxytag="triostr-macro.c::trio_equal_locale"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_equal_locale </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>first</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>second</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare if two strings are equal.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>first</em>&nbsp;</td><td>
++First string. </td></tr>
++<tr><td valign=top><em>second</em>&nbsp;</td><td>
++Second string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean indicating whether the two strings are equal or not.</dl>Collating characters are considered equal. </td>
++ </tr>
++</table>
++<a name="a19" doxytag="triostr-macro.c::trio_equal_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_equal_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>first</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>second</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare if two strings up until the first <code>max</code> characters are equal.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>first</em>&nbsp;</td><td>
++First string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to compare. </td></tr>
++<tr><td valign=top><em>second</em>&nbsp;</td><td>
++Second string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean indicating whether the two strings are equal or not.</dl>Case-insensitive comparison. </td>
++ </tr>
++</table>
++<a name="a20" doxytag="triostr-macro.c::trio_error"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING const char* trio_error </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>error_number</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Provide a textual description of an error code (errno).
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>error_number</em>&nbsp;</td><td>
++Error number. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Textual description of <code>error_number</code>. </dl> </td>
++ </tr>
++</table>
++<a name="a21" doxytag="triostr-macro.c::trio_format_date_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING size_t trio_format_date_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>format</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const struct tm *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>datetime</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Format the date/time according to <code>format</code>.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to format. </td></tr>
++<tr><td valign=top><em>format</em>&nbsp;</td><td>
++Formatting string. </td></tr>
++<tr><td valign=top><em>datetime</em>&nbsp;</td><td>
++Date/time structure. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of formatted characters.</dl>The formatting string accepts the same specifiers as the standard C function strftime. </td>
++ </tr>
++</table>
++<a name="a22" doxytag="triostr-macro.c::trio_hash"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING unsigned long trio_hash </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>type</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Calculate a hash value for a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be calculated on. </td></tr>
++<tr><td valign=top><em>type</em>&nbsp;</td><td>
++Hash function. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Calculated hash value.</dl><code>type</code> can be one of the following <ul>
++<li> <code>TRIO_HASH_PLAIN</code> Plain hash function. </ul>
++ </td>
++ </tr>
++</table>
++<a name="a23" doxytag="triostr-macro.c::trio_index"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_index </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>character</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Find first occurrence of a character in a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>character</em>&nbsp;</td><td>
++Character to be found. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A pointer to the found character, or NULL if character was not found. </dl> </td>
++ </tr>
++</table>
++<a name="a24" doxytag="triostr-macro.c::trio_index_last"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_index_last </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>character</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Find last occurrence of a character in a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>character</em>&nbsp;</td><td>
++Character to be found. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A pointer to the found character, or NULL if character was not found. </dl> </td>
++ </tr>
++</table>
++<a name="a7" doxytag="triostr-macro.c::trio_length"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING size_t trio_length </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>string</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Count the number of characters in a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to measure. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of characters in <code>string</code>. </dl> </td>
++ </tr>
++</table>
++<a name="a40" doxytag="triostr.c::trio_length_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING size_t trio_length_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Count at most <code>max</code> characters in a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to measure. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum number of characters to count. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++The maximum value of <code>max</code> and number of characters in <code>string</code>. </dl> </td>
++ </tr>
++</table>
++<a name="a25" doxytag="triostr-macro.c::trio_lower"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_lower </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>target</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert the alphabetic letters in the string to lower-case.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of processed characters (converted or not). </dl> </td>
++ </tr>
++</table>
++<a name="a26" doxytag="triostr-macro.c::trio_match"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_match </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>pattern</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare two strings using wildcards.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>pattern</em>&nbsp;</td><td>
++Pattern, including wildcards, to search for. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl>Case-insensitive comparison.
++<p>
++The following wildcards can be used <ul>
++<li> <code>*</code> Match any number of characters. <li> ? <code>Match</code> a single character. </ul>
++ </td>
++ </tr>
++</table>
++<a name="a27" doxytag="triostr-macro.c::trio_match_case"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_match_case </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>pattern</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Compare two strings using wildcards.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>pattern</em>&nbsp;</td><td>
++Pattern, including wildcards, to search for. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Boolean value indicating success or failure.</dl>Case-sensitive comparison.
++<p>
++The following wildcards can be used <ul>
++<li> <code>*</code> Match any number of characters. <li> ? <code>Match</code> a single character. </ul>
++ </td>
++ </tr>
++</table>
++<a name="a28" doxytag="triostr-macro.c::trio_span_function"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING size_t trio_span_function </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>target</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int(*&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>Function</em>)(int)</td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Execute a function on each character in string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++Target string. </td></tr>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++Source string. </td></tr>
++<tr><td valign=top><em>Function</em>&nbsp;</td><td>
++Function to be executed. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Number of processed characters. </dl> </td>
++ </tr>
++</table>
++<a name="a29" doxytag="triostr-macro.c::trio_substring"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_substring </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>substring</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Search for a substring in a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>substring</em>&nbsp;</td><td>
++String to be found. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Pointer to first occurrence of <code>substring</code> in <code>string</code>, or NULL if no match was found. </dl> </td>
++ </tr>
++</table>
++<a name="a30" doxytag="triostr-macro.c::trio_substring_max"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_substring_max </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>size_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>max</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>substring</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Search for a substring in the first <code>max</code> characters of a string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be searched. </td></tr>
++<tr><td valign=top><em>max</em>&nbsp;</td><td>
++Maximum characters to be searched. </td></tr>
++<tr><td valign=top><em>substring</em>&nbsp;</td><td>
++String to be found. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Pointer to first occurrence of <code>substring</code> in <code>string</code>, or NULL if no match was found. </dl> </td>
++ </tr>
++</table>
++<a name="a33" doxytag="triostr-macro.c::trio_to_double"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING double trio_to_double </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>endp</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert string to floating-point number.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++<tr><td valign=top><em>endp</em>&nbsp;</td><td>
++Pointer to end of the converted string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A floating-point number.</dl>See <a class="el" href="group___static_strings.html#a32">Static String Functions.</a>. </td>
++ </tr>
++</table>
++<a name="a34" doxytag="triostr-macro.c::trio_to_float"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING float trio_to_float </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>endp</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert string to floating-point number.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++<tr><td valign=top><em>endp</em>&nbsp;</td><td>
++Pointer to end of the converted string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A floating-point number.</dl>See <a class="el" href="group___static_strings.html#a32">Static String Functions.</a>. </td>
++ </tr>
++</table>
++<a name="a35" doxytag="triostr-macro.c::trio_to_long"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING long trio_to_long </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>endp</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>base</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert string to signed integer.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++<tr><td valign=top><em>endp</em>&nbsp;</td><td>
++Pointer to end of converted string. </td></tr>
++<tr><td valign=top><em>base</em>&nbsp;</td><td>
++Radix number of number. </td></tr>
++</table>
++</dl> </td>
++ </tr>
++</table>
++<a name="a32" doxytag="triostr-macro.c::trio_to_long_double"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING trio_long_double_t trio_to_long_double </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>source</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>endp</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert string to floating-point number.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++<tr><td valign=top><em>endp</em>&nbsp;</td><td>
++Pointer to end of the converted string. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++A floating-point number.</dl>The following Extended Backus-Naur form is used <div class="fragment"><pre>
++ double ::= [ &lt;sign&gt; ]
++ ( &lt;number&gt; |
++ &lt;number&gt; &lt;decimal_point&gt; &lt;number&gt; |
++ &lt;decimal_point&gt; &lt;number&gt; )
++ [ &lt;exponential&gt; [ &lt;sign&gt; ] &lt;number&gt; ]
++ number ::= 1*( &lt;digit&gt; )
++ digit ::= ( '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' )
++ exponential ::= ( 'e' | 'E' )
++ sign ::= ( '-' | '+' )
++ decimal_point ::= '.'
++ </pre></div> </td>
++ </tr>
++</table>
++<a name="a36" doxytag="triostr-macro.c::trio_to_lower"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_to_lower </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>source</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert one alphabetic letter to lower-case.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++The letter to be converted. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++The converted letter. </dl> </td>
++ </tr>
++</table>
++<a name="a37" doxytag="triostr-macro.c::trio_to_unsigned_long"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING unsigned long trio_to_unsigned_long </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>char **&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>endp</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>int&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>base</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert string to unsigned integer.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be converted. </td></tr>
++<tr><td valign=top><em>endp</em>&nbsp;</td><td>
++Pointer to end of converted string. </td></tr>
++<tr><td valign=top><em>base</em>&nbsp;</td><td>
++Radix number of number. </td></tr>
++</table>
++</dl> </td>
++ </tr>
++</table>
++<a name="a38" doxytag="triostr-macro.c::trio_to_upper"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_to_upper </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">int&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>source</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert one alphabetic letter to upper-case.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>source</em>&nbsp;</td><td>
++The letter to be converted. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++The converted letter. </dl> </td>
++ </tr>
++</table>
++<a name="a31" doxytag="triostr-macro.c::trio_tokenize"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING char* trio_tokenize </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>string</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>delimiters</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Tokenize string.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>string</em>&nbsp;</td><td>
++String to be tokenized. </td></tr>
++<tr><td valign=top><em>delimiters</em>&nbsp;</td><td>
++String containing list of delimiting characters. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Start of new token.</dl><dl compact><dt><b>Warning: </b></dt><dd>
++<code>string</code> will be destroyed. </dl> </td>
++ </tr>
++</table>
++<a name="a39" doxytag="triostr-macro.c::trio_upper"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> TRIO_PUBLIC_STRING int trio_upper </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">char *&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>target</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Convert the alphabetic letters in the string to upper-case.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>target</em>&nbsp;</td><td>
++The string to be converted. </td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++The number of processed characters (converted or not). </dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/group___user_defined.html.gs_sprintf ghostscript-9.07/trio/html/group___user_defined.html
+--- ghostscript-9.07/trio/html/group___user_defined.html.gs_sprintf 2013-05-09 17:02:39.107447262 +0100
++++ ghostscript-9.07/trio/html/group___user_defined.html 2013-05-09 17:02:39.107447262 +0100
+@@ -0,0 +1,391 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>User-defined Formatted Printing Functions.</h1>Functions for using customized formatting specifiers.
++<a href="#_details">More...</a><table border=0 cellpadding=0 cellspacing=0>
++<tr><td></td></tr>
++<tr><td colspan=2><br><h2>Functions</h2></td></tr>
++<tr><td nowrap align=right valign=top>trio_pointer_t&nbsp;</td><td valign=bottom><a class="el" href="group___user_defined.html#a0">trio_register</a> (trio_callback_t callback, const char *name)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Register new user-defined specifier.</em> <a href="#a0"></a><em></em></font><br><br></td></tr>
++<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="group___user_defined.html#a1">trio_unregister</a> (trio_pointer_t handle)</td></tr>
++<tr><td>&nbsp;</td><td><font size=-1><em>Unregister an existing user-defined specifier.</em> <a href="#a1"></a><em></em></font><br><br></td></tr>
++</table>
++<hr><a name="_details"></a><h2>Detailed Description</h2>
++Functions for using customized formatting specifiers.
++<p>
++<b>SYNOPSIS</b>
++<p>
++<div class="fragment"><pre>
++cc ... -ltrio -lm
++
++#include &lt;trio.h&gt;
++#include &lt;triop.h&gt;
++</pre></div>
++<p>
++<b>DESCRIPTION</b>
++<p>
++This documentation is incomplete.
++<p>
++<b>User-defined</b> <b>Specifier</b>
++<p>
++The user-defined specifier consists of a start character (\074 = '&lt;'), an optional namespace string followed by a namespace separator (\072 = ':'), a format string, an optional skipping separator (\174 = '|'), and an end character (\076 = '&gt;').
++<p>
++The namespace string can consist of alphanumeric characters, and is used to define a named reference (see below). The namespace is case-sensitive. If no namespace is specified, then we use an unnamed reference (see below).
++<p>
++The format can consist of any character except the end character ('&gt;'), the namespace separator (':'), the skipping separator ('|'), and the nil character (\000).
++<p>
++Any modifier can be used together with the user-defined specifier.
++<p>
++There are two formats for invoking a user-defined specifier. The first format is an extension of the normal printf/scanf formatting. It uses the percent character (\045 = '%') followed by optional qualifiers and a specifier. For example:
++<p>
++<div class="fragment"><pre>
++ trio_printf("%&lt;format&gt;\n", my_handle, my_data);
++</pre></div>
++<p>
++Some C compilers can issue a warning if there is a mismatch between specifiers and arguments. Unfortunately, these warnings does not work with the first format for user-defined specifiers. Therefore the second format has been introduced. The second format can only be applied to user-defined specifiers.
++<p>
++The second format starts with a dollar character (\044 = '$') instead of the percent character, and is followed by optional qualifiers and the user-defined specifier. If the specifier contains a pipe character (\174 = '|'), then everything between the pipe character and the end character ('&gt;') is ignored. The ignored part can be used to list the normal specifiers that the C compiler uses to determine mismatches. For example:
++<p>
++<div class="fragment"><pre>
++ trio_printf("$&lt;format|%p%p&gt;\n", my_handle, my_data);
++</pre></div>
++<p>
++<b>Registering</b>
++<p>
++A user-defined specifier must be registered before it can be used. Unregistered user-defined specifiers are ignored. The <a class="el" href="group___user_defined.html#a243">User-defined Formatted Printing Functions.</a> function is used to register a user-defined specifier. It takes two argument, a callback function and a namespace, and it returns a handle. The handle must be used to unregister the specifier later.
++<p>
++The following example registers a user-define specifier with the "my_namespace" namespace:
++<p>
++<div class="fragment"><pre>
++ my_handle = trio_register(my_callback, "my_namespace");
++</pre></div>
++<p>
++There can only be one user-defined specifier with a given namespace. There can be an unlimited number (subject to maximum length of the namespace) of different user-defined specifiers.
++<p>
++Passing NULL as the namespace argument results in an anonymous reference. There can be an unlimited number of anonymous references.
++<p>
++<b>REFERENCES</b>
++<p>
++There are two ways that a registered callback can be called. Either the user-defined specifier must contain the registered namespace in the format string, or the handle is passed as an argument to the formatted printing function.
++<p>
++If the namespace is used, then a user-defined pointer must be passed as an argument:
++<p>
++<div class="fragment"><pre>
++ trio_printf("%&lt;my_namespace:format&gt;\n", my_data);
++</pre></div>
++<p>
++If the handle is used, then the user-defined specifier must not contain a namespace. Instead the handle must be passed as an argument, followed by a user-defined pointer:
++<p>
++<div class="fragment"><pre>
++ trio_printf("%&lt;format&gt;\n", my_handle, my_data);
++</pre></div>
++<p>
++The two examples above are equivalent.
++<p>
++There must be exactly one user-defined pointer per user-defined specifier. This pointer can be used within the callback function with the trio_get_argument getter function (see below).
++<p>
++The format string is optional. It can be used within the callback function with the trio_get_format getter function.
++<p>
++<b>Anonymous</b> <b>References</b> Anonymous references are specified by passing NULL as the namespace.
++<p>
++The handle must be passed as an argument followed by a user-defined pointer. No namespace can be specified.
++<p>
++<div class="fragment"><pre>
++ anon_handle = trio_register(callback, NULL);
++ trio_printf("%&lt;format&gt;\n", anon_handle, my_data);
++</pre></div>
++<p>
++<b>Restrictions</b>
++<p>
++<ul>
++<li> The length of the namespace string cannot exceed 63 characters. <li> The length of the user-defined format string cannot exceed 255 characters. <li> User-defined formatting cannot re-define existing specifiers. This restriction was imposed because the existing formatting specifiers have a well-defined behaviour, and any re-definition would apply globally to an application (imagine a third-party library changing the behaviour of a specifier that is crusial to your application).</ul>
++<b>CALLBACK</b> <b>FUNCTION</b>
++<p>
++The callback function will be called if a matching user-defined specifier is found within the formatting string. The callback function takes one input parameter, an opaque reference which is needed by the private functions. It returns an <code>int</code>, which is currently ignored. The prototype is
++<p>
++<div class="fragment"><pre>
++ int (*trio_callback_t)(void *ref);
++</pre></div>
++<p>
++See the Example section for full examples.
++<p>
++<b>PRINTING</b> <b>FUNCTIONS</b>
++<p>
++The following printing functions must only be used inside a callback function. These functions will print to the same output medium as the printf function which invoked the callback function. For example, if the user-defined specifier is used in an sprintf function, then these print functions will output their result to the same string.
++<p>
++<b>Elementary</b> <b>Printing</b>
++<p>
++There are a number of function to print elementary data types.
++<p>
++<ul>
++<li> trio_print_int Print a signed integer. For example: <div class="fragment"><pre>
++ trio_print_int(42);
++</pre></div> <li> trio_print_uint Print an unsigned integer. <li> trio_print_double Print a floating-point number. <li> trio_print_string Print a string. For example: <div class="fragment"><pre>
++ trio_print_string("Hello World");
++ trio_print_string(trio_get_format());
++</pre></div> <li> trio_print_pointer Print a pointer.</ul>
++<b>Formatted</b> <b>Printing</b>
++<p>
++The functions trio_print_ref, trio_vprint_ref, and trio_printv_ref outputs a formatted string just like its printf equivalents.
++<p>
++<div class="fragment"><pre>
++ trio_print_ref(ref, "There are %d towels\n", 42);
++ trio_print_ref(ref, "%&lt;recursive&gt;\n", recursive_writer, trio_get_argument(ref));
++</pre></div>
++<p>
++<b>GETTER</b> <b>AND</b> <b>SETTER</b> <b>FUNCTIONS</b>
++<p>
++The following getter and setter functions must only be used inside a callback function. They can either operate on the modifiers or on special data.
++<p>
++<b>Modifiers</b>
++<p>
++The value of a modifier, or a boolean indication of its presence or absence, can be found or set with the getter and setter functions. The generic prototypes of the these getter and setter functions are
++<p>
++<div class="fragment"><pre>
++ int trio_get_???(void *ref);
++ void trio_set_???(void *ref, int);
++</pre></div>
++<p>
++where ??? <code>refers</code> to a modifier. For example, to get the width of the user-defined specifier use
++<p>
++<div class="fragment"><pre>
++ int width = trio_get_width(ref);
++</pre></div>
++<p>
++<b>Special</b> <b>Data</b>
++<p>
++Consider the following user-defined specifier, in its two possible referencing presentations.
++<p>
++<div class="fragment"><pre>
++ trio_printf("%&lt;format&gt;\n", namespace_writer, argument);
++ trio_printf("%&lt;namespace:format&gt;\n", argument);
++</pre></div>
++<p>
++trio_get_format will get the <code>format</code> string, and trio_get_argument} will get the <code>argument</code> parameter. There are no associated setter functions.
++<p>
++<b>EXAMPLES</b>
++<p>
++The following examples show various types of user-defined specifiers. Although each specifier is demonstrated in isolation, they can all co-exist within the same application.
++<p>
++<b>Time</b> <b>Example</b>
++<p>
++Print the time in the format "HOUR:MINUTE:SECOND" if "time" is specified inside the user-defined specifier.
++<p>
++<div class="fragment"><pre>
++ static int time_print(void *ref)
++ {
++ const char *format;
++ time_t *data;
++ char buffer[256];
++
++ format = trio_get_format(ref);
++ if ((format) &amp;&amp; (strcmp(format, "time") == 0)) {
++ data = trio_get_argument(ref);
++ if (data == NULL)
++ return -1;
++ strftime(buffer, sizeof(buffer), "%H:%M:%S", localtime(data));
++ trio_print_string(ref, buffer);
++ }
++ return 0;
++ }
++</pre></div>
++<p>
++<div class="fragment"><pre>
++ int main(void)
++ {
++ void *handle;
++ time_t now = time(NULL);
++
++ handle = trio_register(time_print, "my_time");
++
++ trio_printf("%&lt;time&gt;\n", handle, &amp;now);
++ trio_printf("%&lt;my_time:time&gt;\n", &amp;now);
++
++ trio_unregister(handle);
++ return 0;
++ }
++</pre></div>
++<p>
++<b>Complex</b> <b>Numbers</b> <b>Example</b>
++<p>
++Consider a complex number consisting of a real part, re, and an imaginary part, im.
++<p>
++<div class="fragment"><pre>
++ struct Complex {
++ double re;
++ double im;
++ };
++</pre></div>
++<p>
++This example can print such a complex number in one of two formats. The default format is "re + i im". If the alternative modifier is used, then the format is "r exp(i theta)", where r is the length of the complex vector (re, im) and theta is its angle.
++<p>
++<div class="fragment"><pre>
++ static int complex_print(void *ref)
++ {
++ struct Complex *data;
++ const char *format;
++
++ data = (struct Complex *)trio_get_argument(ref);
++ if (data) {
++ format = trio_get_format(ref);
++
++ if (trio_get_alternative(ref)) {
++ double r, theta;
++
++ r = sqrt(pow(data-&gt;re, 2) + pow(data-&gt;im, 2));
++ theta = acos(data-&gt;re / r);
++ trio_print_ref(ref, "%#f exp(i %#f)", r, theta);
++
++ } else {
++ trio_print_ref(ref, "%#f + i %#f", data-&gt;re, data-&gt;im);
++ }
++ }
++ return 0;
++ }
++</pre></div>
++<p>
++<div class="fragment"><pre>
++ int main(void)
++ {
++ void *handle;
++
++ handle = trio_register(complex_print, "complex");
++
++ /* Normal format. With handle and the with namespace
++ trio_printf("%&lt;&gt;\n", handle, &amp;complex);
++ trio_printf("%&lt;complex:&gt;\n", &amp;complex);
++ /* In exponential notation
++ trio_printf("%#&lt;&gt;\n", handle, &amp;complex);
++ trio_printf("%#&lt;complex:unused data&gt;\n", &amp;complex);
++
++ trio_unregister(handle);
++ return 0;
++ }
++</pre></div>
++<p>
++<b>RETURN</b> <b>VALUES</b>
++<p>
++<a class="el" href="group___user_defined.html#a243">User-defined Formatted Printing Functions.</a> returns a handle, or NULL if an error occured.
++<p>
++<b>SEE</b> <b>ALSO</b>
++<p>
++<a class="el" href="group___printf.html#a218">Formatted Printing Functions.</a>
++<p>
++<b>NOTES</b>
++<p>
++User-defined specifiers, <a class="el" href="group___user_defined.html#a243">User-defined Formatted Printing Functions.</a>, and <a class="el" href="group___user_defined.html#a244">User-defined Formatted Printing Functions.</a> are not thread-safe. In multi-threaded applications they must be guarded by mutexes. Trio provides two special callback functions, called ":enter" and ":leave", which are invoked every time a thread-unsafe operation is attempted. As the thread model is determined by the application, these callback functions must be implemented by the application.
++<p>
++The following callback functions are for demonstration-purposes only. Replace their bodies with locking and unlocking of a mutex to achieve thread-safety. <div class="fragment"><pre>
++ static int enter_region(void *ref)
++ {
++ fprintf(stderr, "Enter Region\n");
++ return 1;
++ }
++
++ static int leave_region(void *ref)
++ {
++ fprintf(stderr, "Leave Region\n");
++ return 1;
++ }
++</pre></div> These two callbacks must be registered before other callbacks are registered. <div class="fragment"><pre>
++ trio_register(enter_region, ":enter");
++ trio_register(leave_region, ":leave");
++
++ another_handle = trio_register(another_callback, NULL);
++</pre></div> <hr><h2>Function Documentation</h2>
++<a name="a0" doxytag="trio-cdetect.c::trio_register"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> trio_pointer_t trio_register </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_callback_t&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>callback</em>, </td>
++ </tr>
++ <tr>
++ <td></td>
++ <td></td>
++ <td class="md" nowrap>const char *&nbsp;</td>
++ <td class="mdname" nowrap>&nbsp; <em>name</em></td>
++ </tr>
++ <tr>
++ <td></td>
++ <td class="md">)&nbsp;</td>
++ <td class="md" colspan="2"></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Register new user-defined specifier.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>callback</em>&nbsp;</td><td>
++</td></tr>
++<tr><td valign=top><em>name</em>&nbsp;</td><td>
++</td></tr>
++</table>
++</dl><dl compact><dt><b>Returns: </b></dt><dd>
++Handle. </dl> </td>
++ </tr>
++</table>
++<a name="a1" doxytag="trio-cdetect.c::trio_unregister"></a><p>
++<table width="100%" cellpadding="2" cellspacing="0" border="0">
++ <tr>
++ <td class="md">
++ <table cellpadding="0" cellspacing="0" border="0">
++ <tr>
++ <td class="md" nowrap valign="top"> void trio_unregister </td>
++ <td class="md" valign="top">(&nbsp;</td>
++ <td class="md" nowrap valign="top">trio_pointer_t&nbsp;</td>
++ <td class="mdname1" valign="top" nowrap>&nbsp; <em>handle</em> </td>
++ <td class="md" valign="top">)&nbsp;</td>
++ <td class="md" nowrap></td>
++ </tr>
++
++ </table>
++ </td>
++ </tr>
++</table>
++<table cellspacing=5 cellpadding=0 border=0>
++ <tr>
++ <td>
++ &nbsp;
++ </td>
++ <td>
++
++<p>
++Unregister an existing user-defined specifier.
++<p>
++<dl compact><dt><b>Parameters: </b></dt><dd>
++<table border=0 cellspacing=2 cellpadding=0>
++<tr><td valign=top><em>handle</em>&nbsp;</td><td>
++</td></tr>
++</table>
++</dl> </td>
++ </tr>
++</table>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/index.html.gs_sprintf ghostscript-9.07/trio/html/index.html
+--- ghostscript-9.07/trio/html/index.html.gs_sprintf 2013-05-09 17:02:39.107447262 +0100
++++ ghostscript-9.07/trio/html/index.html 2013-05-09 17:02:39.107447262 +0100
+@@ -0,0 +1,89 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>TRIO Documentation</h1>
++<p>
++
++<p>
++<dl compact><dt><b>Author: </b></dt><dd>
++Bjørn Reese , Daniel Stenberg</dl><h2><a name="intro">Introduction</a>
++</h2>
++<p>
++Trio is a fully matured and stable set of printf and string functions designed be used by applications with focus on portability or with the need for additional features that are not supported by standard stdio implementation.
++<p>
++There are several cases where you may want to consider using trio:
++<p>
++<ul>
++<li> Portability across heterogeneous platforms. <li> Embedded systems without stdio support. <li> Extendability of unsupported features. <li> Your native version does not do everything you need.</ul>
++When you write applications that must be portable to a wide range of platforms you often have to deal with inadequate implementations of the stdio library functions. Most notably is the lack of secure formatting functions, such as snprintf, or the lack of parameter reordering commonly used for the internationalization of applications, such as the &lt;num&gt;$ modifier. Sometimes the feature you need is simply not present in stdio. So you end up spending much effort on determining which platforms supports what, and to write your own versions of various features. This is where trio can help you. Trio is a platform-independent implementation of the stdio printf and scanf functions and the string library functions.
++<p>
++The functionality described in the stdio standards is a compromise, and does unfortunately not include a mechanism to extend the functionality for an individual application. Oftentimes an application has the need for an extra feature, and the application code can become much more clear and readable by using an extension mechanism. Trio supports a range of useful extensions such as user-defined specifiers, passing of arguments in arrays, localized string scanning, thousand-separators, and arbitrary integer bases.
++<p>
++Trio fully implements the C99 (ISO/IEC 9899:1999) and UNIX98 (the Single Unix Specification, Version 2) standards, as well as many features from other implemenations, e.g. the GNU libc and BSD4.
++<p>
++<h2><a name="examples">Examples</a>
++</h2>
++<p>
++<h3><a name="ex1">Binary Numbers</a>
++</h3> Output an integer as a binary number using a trio extension. <div class="fragment"><pre>
++ trio_printf("%..2i\n", number);
++</pre></div>
++<p>
++<h3><a name="ex2">Thousand-separator</a>
++</h3> Output a number with thousand-separator using a trio extension. <div class="fragment"><pre>
++ trio_printf("%'f\n", 12345.6);
++</pre></div> The thousand-separator described by the locale is used.
++<p>
++<h3><a name="ex3">Fixed Length Array and Sticky Modifier</a>
++</h3> Output an fixed length array of floating-point numbers. <div class="fragment"><pre>
++ double array[] = {1.0, 2.0, 3.0};
++ printf("%.2f %.2f %.2f\n", array[0], array[1], array[2]);
++</pre></div> The same with two trio extensions (arguments are passed in an array, and the first formatting specifier sets the sticky option so we do not have to type all the formatting modifiers for the remaining formatting specifiers) <div class="fragment"><pre>
++ trio_printfv("%!.2f %f %f\n", array);
++</pre></div> Another, and more powerful, application of being able to pass arguments in an array is the creation of the printf/scanf statement at run-time, where the formatting string, and thus the argument list, is based on an external configuration file.
++<p>
++<h3><a name="ex4">Localized scanning</a>
++</h3> Parse a string consisting of one or more upper-case alphabetic characters followed by one or more numeric characters. <div class="fragment"><pre>
++ sscanf(buffer, "%[A-Z]%[0-9]", alphabetic, numeric);
++</pre></div> The same but with locale using a trio extension. <div class="fragment"><pre>
++ trio_sscanf(buffer, "%[[:upper:]]%[[:digit:]]", alphabetic, numeric);
++</pre></div>
++<p>
++<h2><a name="legal">Legal Issues</a>
++</h2> Trio is distributed under the following license, which allows practically anybody to use it in almost any kind of software, including proprietary software, without difficulty.
++<p>
++"Copyright (C) 1998-2001 Bjorn Reese and Daniel Stenberg.
++<p>
++Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
++<p>
++THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER."
++<p>
++<h2><a name="contribution">Contribution</a>
++</h2>
++<p>
++<h3><a name="contribute">Contribute</a>
++</h3> We appreciate any type of contribution, from ideas over improvements to error corrections.
++<p>
++The project space contains references to bug and feature tracking, mailing-list, and the CVS repository. We prefer communication via the mailing-list, but do not require you to be subscribed, because trio is a small project.
++<p>
++The project space is located at <a href="http://sourceforge.net/projects/ctrio/">http://sourceforge.net/projects/ctrio/</a>
++<p>
++<h3><a name="contributors">Contributors</a>
++</h3> We have received contributions from the following persons (in alphabetic order sorted by surname)
++<p>
++<ul>
++<li> Craig Berry <li> Karl Bochert <li> Stan Boehm <li> David Byron <li> Brian Chapman <li> Robert Collins <li> Danny Dulai <li> Bob Friesenhahn <li> Jon Foster <li> John Fotheringham <li> Markus Henke <li> Ken Gibson <li> Paul Janzen <li> Patrick Jessee <li> Richard Jinks <li> Tero Jänkä <li> Howard Kapustein <li> Rune Enggaard Lausen <li> Mehdi Lavasani <li> Alexander Lukyanov <li> Andreas Maus <li> Mikey Menezes <li> Emmanuel Mogenet <li> Jacob Navia <li> Jose Ortiz <li> Joe Orton <li> Gisli Ottarsson <li> Mark Pickelmann <li> Olli Savia <li> Shaun Tancheff <li> Marc Werwerft <li> Igor Zlatkovic</ul>
++Please let us know, and accept our apology, if we have omitted anybody.
++<p>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/modules.html.gs_sprintf ghostscript-9.07/trio/html/modules.html
+--- ghostscript-9.07/trio/html/modules.html.gs_sprintf 2013-05-09 17:02:39.107447262 +0100
++++ ghostscript-9.07/trio/html/modules.html 2013-05-09 17:02:39.107447262 +0100
+@@ -0,0 +1,23 @@
++<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
++<html>
++<head>
++ <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
++ <title>TRIO</title>
++ <link href="trio.css" rel="stylesheet" type="text/css">
++</head>
++<body>
++<!-- Generated by Doxygen 1.2.18 -->
++<center>
++<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; </center>
++<hr><h1>TRIO Modules</h1>Here is a list of all modules:<ul>
++<li><a class="el" href="group___printf.html">Formatted Printing Functions.</a>
++<li><a class="el" href="group___user_defined.html">User-defined Formatted Printing Functions.</a>
++<li><a class="el" href="group___scanf.html">Formatted Scanning Functions.</a>
++<li><a class="el" href="group___special_quantities.html">Special Quantifies.</a>
++<li><a class="el" href="group___static_strings.html">Static String Functions.</a>
++<li><a class="el" href="group___dynamic_strings.html">Dynamic String Functions.</a>
++</ul>
++<HR>
++<center class="copyright">Copyright (C) 2001 - 2006 Bj&oslash;rn Reese and Daniel Stenberg.</center>
++</body>
++</html>
+diff -up ghostscript-9.07/trio/html/trio.css.gs_sprintf ghostscript-9.07/trio/html/trio.css
+--- ghostscript-9.07/trio/html/trio.css.gs_sprintf 2013-05-09 17:02:39.107447262 +0100
++++ ghostscript-9.07/trio/html/trio.css 2013-05-09 17:02:39.107447262 +0100
+@@ -0,0 +1,35 @@
++/* HTML tags */
++
++BODY {
++ background-color: white;
++ color: darkblue;
++}
++
++TD { color: darkblue; }
++
++H1 { text-align: center; }
++
++H3 { font-style: italic; }
++
++HR {
++ width: 85%;
++ align: center;
++}
++
++.copyright { color: darkblue; }
++
++/* Links */
++
++:link { color: blue; }
++
++:visited { color: purple; }
++
++:active { color: red; }
++
++.el:link { font-style: italic; }
++
++/* Examples */
++
++DIV.fragment {
++ color: maroon;
++}
+diff -up ghostscript-9.07/trio/install-sh.gs_sprintf ghostscript-9.07/trio/install-sh
+--- ghostscript-9.07/trio/install-sh.gs_sprintf 2013-05-09 17:02:39.108447266 +0100
++++ ghostscript-9.07/trio/install-sh 2013-05-09 17:02:39.108447266 +0100
+@@ -0,0 +1,250 @@
++#!/bin/sh
++#
++# install - install a program, script, or datafile
++# This comes from X11R5 (mit/util/scripts/install.sh).
++#
++# Copyright 1991 by the Massachusetts Institute of Technology
++#
++# Permission to use, copy, modify, distribute, and sell this software and its
++# documentation for any purpose is hereby granted without fee, provided that
++# the above copyright notice appear in all copies and that both that
++# copyright notice and this permission notice appear in supporting
++# documentation, and that the name of M.I.T. not be used in advertising or
++# publicity pertaining to distribution of the software without specific,
++# written prior permission. M.I.T. makes no representations about the
++# suitability of this software for any purpose. It is provided "as is"
++# without express or implied warranty.
++#
++# Calling this script install-sh is preferred over install.sh, to prevent
++# `make' implicit rules from creating a file called install from it
++# when there is no Makefile.
++#
++# This script is compatible with the BSD install script, but was written
++# from scratch. It can only install one file at a time, a restriction
++# shared with many OS's install programs.
++
++
++# set DOITPROG to echo to test this script
++
++# Don't use :- since 4.3BSD and earlier shells don't like it.
++doit="${DOITPROG-}"
++
++
++# put in absolute paths if you don't have them in your path; or use env. vars.
++
++mvprog="${MVPROG-mv}"
++cpprog="${CPPROG-cp}"
++chmodprog="${CHMODPROG-chmod}"
++chownprog="${CHOWNPROG-chown}"
++chgrpprog="${CHGRPPROG-chgrp}"
++stripprog="${STRIPPROG-strip}"
++rmprog="${RMPROG-rm}"
++mkdirprog="${MKDIRPROG-mkdir}"
++
++transformbasename=""
++transform_arg=""
++instcmd="$mvprog"
++chmodcmd="$chmodprog 0755"
++chowncmd=""
++chgrpcmd=""
++stripcmd=""
++rmcmd="$rmprog -f"
++mvcmd="$mvprog"
++src=""
++dst=""
++dir_arg=""
++
++while [ x"$1" != x ]; do
++ case $1 in
++ -c) instcmd="$cpprog"
++ shift
++ continue;;
++
++ -d) dir_arg=true
++ shift
++ continue;;
++
++ -m) chmodcmd="$chmodprog $2"
++ shift
++ shift
++ continue;;
++
++ -o) chowncmd="$chownprog $2"
++ shift
++ shift
++ continue;;
++
++ -g) chgrpcmd="$chgrpprog $2"
++ shift
++ shift
++ continue;;
++
++ -s) stripcmd="$stripprog"
++ shift
++ continue;;
++
++ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
++ shift
++ continue;;
++
++ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
++ shift
++ continue;;
++
++ *) if [ x"$src" = x ]
++ then
++ src=$1
++ else
++ # this colon is to work around a 386BSD /bin/sh bug
++ :
++ dst=$1
++ fi
++ shift
++ continue;;
++ esac
++done
++
++if [ x"$src" = x ]
++then
++ echo "install: no input file specified"
++ exit 1
++else
++ true
++fi
++
++if [ x"$dir_arg" != x ]; then
++ dst=$src
++ src=""
++
++ if [ -d $dst ]; then
++ instcmd=:
++ else
++ instcmd=mkdir
++ fi
++else
++
++# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
++# might cause directories to be created, which would be especially bad
++# if $src (and thus $dsttmp) contains '*'.
++
++ if [ -f $src -o -d $src ]
++ then
++ true
++ else
++ echo "install: $src does not exist"
++ exit 1
++ fi
++
++ if [ x"$dst" = x ]
++ then
++ echo "install: no destination specified"
++ exit 1
++ else
++ true
++ fi
++
++# If destination is a directory, append the input filename; if your system
++# does not like double slashes in filenames, you may need to add some logic
++
++ if [ -d $dst ]
++ then
++ dst="$dst"/`basename $src`
++ else
++ true
++ fi
++fi
++
++## this sed command emulates the dirname command
++dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
++
++# Make sure that the destination directory exists.
++# this part is taken from Noah Friedman's mkinstalldirs script
++
++# Skip lots of stat calls in the usual case.
++if [ ! -d "$dstdir" ]; then
++defaultIFS='
++'
++IFS="${IFS-${defaultIFS}}"
++
++oIFS="${IFS}"
++# Some sh's can't handle IFS=/ for some reason.
++IFS='%'
++set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
++IFS="${oIFS}"
++
++pathcomp=''
++
++while [ $# -ne 0 ] ; do
++ pathcomp="${pathcomp}${1}"
++ shift
++
++ if [ ! -d "${pathcomp}" ] ;
++ then
++ $mkdirprog "${pathcomp}"
++ else
++ true
++ fi
++
++ pathcomp="${pathcomp}/"
++done
++fi
++
++if [ x"$dir_arg" != x ]
++then
++ $doit $instcmd $dst &&
++
++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
++else
++
++# If we're going to rename the final executable, determine the name now.
++
++ if [ x"$transformarg" = x ]
++ then
++ dstfile=`basename $dst`
++ else
++ dstfile=`basename $dst $transformbasename |
++ sed $transformarg`$transformbasename
++ fi
++
++# don't allow the sed command to completely eliminate the filename
++
++ if [ x"$dstfile" = x ]
++ then
++ dstfile=`basename $dst`
++ else
++ true
++ fi
++
++# Make a temp file name in the proper directory.
++
++ dsttmp=$dstdir/#inst.$$#
++
++# Move or copy the file name to the temp name
++
++ $doit $instcmd $src $dsttmp &&
++
++ trap "rm -f ${dsttmp}" 0 &&
++
++# and set any options; do chmod last to preserve setuid bits
++
++# If any of these fail, we abort the whole thing. If we want to
++# ignore errors from any of these, just make sure not to ignore
++# errors from the above "$doit $instcmd $src $dsttmp" command.
++
++ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
++ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
++ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
++ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
++
++# Now rename the file to the real destination.
++
++ $doit $rmcmd -f $dstdir/$dstfile &&
++ $doit $mvcmd $dsttmp $dstdir/$dstfile
++
++fi &&
++
++
++exit 0
+diff -up ghostscript-9.07/trio/Makefile.in.gs_sprintf ghostscript-9.07/trio/Makefile.in
+--- ghostscript-9.07/trio/Makefile.in.gs_sprintf 2013-05-09 17:02:39.108447266 +0100
++++ ghostscript-9.07/trio/Makefile.in 2013-05-09 17:02:39.108447266 +0100
+@@ -0,0 +1,73 @@
++SHELL = @SHELL@
++CC = @CC@
++CFLAGS = @CFLAGS@ -I. -DDEBUG
++OBJS = triostr.o trio.o trionan.o
++TARGETLIB = libtrio.a
++TARGETINCS = trio.h triop.h triodef.h trionan.h triostr.h
++LDFLAGS = -L. -ltrio -lm
++AR = ar
++RANLIB = @RANLIB@
++ERASE = rm -f
++MKDIR = mkdir -p
++GENDOC = doxygen
++srcdir = @srcdir@
++# VPATH doesn't seem to work with /usr/xpg4/bin/make on Solaris
++# (use /usr/ccs/bin/make), and doesn't work on older Solaris make
++# such as Solaris 2.6.
++VPATH = @srcdir@
++
++# Installation settings
++INSTALL = @INSTALL@
++INSTALL_DATA = @INSTALL_DATA@
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++includedir = @includedir@
++libdir = @libdir@
++
++all: $(TARGETLIB) $(TARGET)
++
++.PHONY: all check test install doc clean
++
++$(srcdir)/configure: configure.in
++ cd $(srcdir) && autoconf
++
++Makefile: Makefile.in config.status
++ CONFIG_COMMANDS= CONFIG_LINKS= CONFIG_HEADERS= \
++ CONFIG_FILES=Makefile ./config.status
++
++config.status: configure
++ ./config.status --recheck
++
++check: test
++test: regression
++ ./regression
++
++install: $(TARGETLIB)
++ $(MKDIR) $(libdir)
++ $(MKDIR) $(includedir)
++ $(INSTALL_DATA) $(TARGETLIB) $(libdir)/$(TARGETLIB)
++ for i in $(TARGETINCS);do \
++ (set -x;$(INSTALL_DATA) $(srcdir)/$$i $(includedir)); \
++ done
++
++regression: regression.o $(TARGETLIB)
++ $(CC) $(CFLAGS) regression.o $(LDFLAGS) -o $@
++
++example: example.o $(TARGETLIB)
++ $(CC) $(CFLAGS) example.o $(LDFLAGS) -o $@
++
++compare: compare.o $(TARGETLIB)
++ $(CC) $(CFLAGS) compare.o $(LDFLAGS) -o $@
++
++userdef: userdef.o $(TARGETLIB)
++ $(CC) $(CFLAGS) userdef.o $(LDFLAGS) -o $@
++
++$(TARGETLIB): $(OBJS)
++ $(AR) ruv $(TARGETLIB) $(OBJS)
++ $(RANLIB) $(TARGETLIB)
++
++doc::
++ (cd $(srcdir) && $(GENDOC) doc/trio.cfg)
++
++clean:
++ $(ERASE) *~ core core.* regression example $(TOBJS) $(OBJS) $(TARGET) $(TARGETLIB) example.o regression.o
+diff -up ghostscript-9.07/trio/maketgz.gs_sprintf ghostscript-9.07/trio/maketgz
+--- ghostscript-9.07/trio/maketgz.gs_sprintf 2013-05-09 17:02:39.108447266 +0100
++++ ghostscript-9.07/trio/maketgz 2013-05-09 17:02:39.108447266 +0100
+@@ -0,0 +1,46 @@
++#! /bin/sh
++# Script to build archives with
++#
++
++echo "Version number?"
++read version
++
++# get current dir
++dir=`pwd`
++
++# Get basename
++orig=`basename $dir`
++
++# Get the left part of the dash (-)
++new=`echo $orig | cut -d- -f1`
++
++# Build new directory name
++n=$new-$version;
++
++# Tell the world what we're doing
++echo "creates $n.tar.gz";
++
++if [ -r $n ]; then
++ echo "Directory already exists!"
++ exit
++fi
++
++# Create the new dir
++mkdir $n
++
++# Copy all relevant files, with path and permissions!
++tar -cf - `cat FILES` | (cd $n; tar -xBpf -) || exit 1
++
++(cd $n && sh autogen.sh) || exit 1
++
++# Make a tar archive of it all
++tar -cvf $n.tar $n
++
++# gzip the archive
++gzip $n.tar
++
++# Make it world readable
++chmod a+r $n.tar.gz ;
++
++# Delete the temp dir
++rm -rf $n
+diff -up ghostscript-9.07/trio/README.gs_sprintf ghostscript-9.07/trio/README
+--- ghostscript-9.07/trio/README.gs_sprintf 2013-05-09 17:02:39.108447266 +0100
++++ ghostscript-9.07/trio/README 2013-05-09 17:02:39.108447266 +0100
+@@ -0,0 +1,38 @@
++README -- trio
++
++Trio is a package with portable string functions. Including printf() clones
++and others.
++
++ Copyright (C) 1998-2001 by Bjorn Reese and Daniel Stenberg.
++
++ Permission to use, copy, modify, and distribute this software for any
++ purpose with or without fee is hereby granted, provided that the above
++ copyright notice and this permission notice appear in all copies.
++
++ THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++
++Trio is intended to be an integral part of another application, so we
++have not done anything to create a proper installation.
++
++Compile with 'make' (edit the Makefile if you want a release build)
++
++Test the package with 'make test'
++
++Install by copying trio.h, triop.h, and libtrio.a (and man/man?/* if
++you want documentation) to the appropriate directories.
++
++Catch some usage examples in example.c
++
++Send feedback and patches to the mailing list, subscription and other
++information is found here:
++
++ http://lists.sourceforge.net/lists/listinfo/ctrio-talk
++
++Enjoy!
++
++Trio web page
++
++ http://daniel.haxx.se/trio/
+diff -up ghostscript-9.07/trio/regression.c.gs_sprintf ghostscript-9.07/trio/regression.c
+--- ghostscript-9.07/trio/regression.c.gs_sprintf 2013-05-09 17:02:39.109447270 +0100
++++ ghostscript-9.07/trio/regression.c 2013-05-09 17:02:39.109447270 +0100
+@@ -0,0 +1,1640 @@
++/*************************************************************************
++ * Regression test
++ */
++
++#include "triodef.h"
++#if defined(TRIO_COMPILER_ANCIENT)
++# include <varargs.h>
++#else
++# include <stdarg.h>
++#endif
++#include <math.h>
++#include <limits.h>
++#include <float.h>
++#include <errno.h>
++
++#include "trio.h"
++#include "triop.h"
++#if defined(TRIO_EMBED_NAN)
++# define TRIO_PUBLIC_NAN static
++# define TRIO_FUNC_NINF
++# define TRIO_FUNC_PINF
++# define TRIO_FUNC_NAN
++# define TRIO_FUNC_ISINF
++# define TRIO_FUNC_ISNAN
++# if TRIO_FEATURE_FLOAT
++# define TRIO_FUNC_NZERO
++# endif
++#endif
++#include "trionan.h"
++#if defined(TRIO_EMBED_STRING)
++# define TRIO_PUBLIC_STRING static
++# define TRIO_FUNC_EQUAL_CASE
++#endif
++#include "triostr.h"
++#undef printf
++
++#if TRIO_FEATURE_WIDECHAR
++# include <wchar.h>
++#endif
++
++#define QUOTE(x) #x
++
++#define DOUBLE_EQUAL(x,y) (((x)>(y)-DBL_EPSILON) && ((x)<(y)+DBL_EPSILON))
++#define FLOAT_EQUAL(x,y) (((x)>(y)-FLT_EPSILON) && ((x)<(y)+FLT_EPSILON))
++
++static TRIO_CONST char rcsid[] = "@(#)$Id: regression.c,v 1.67 2010/01/26 13:02:02 breese Exp $";
++
++#if defined(TRIO_EMBED_NAN)
++# include "trionan.c"
++#endif
++#if defined(TRIO_EMBED_STRING)
++# include "triostr.c"
++#endif
++
++/*************************************************************************
++ *
++ */
++static void
++Dump
++TRIO_ARGS2((buffer, rc),
++ char *buffer,
++ int rc)
++{
++ if (rc < 0)
++ {
++ printf("Err = %d (%s), Pos = %d\n",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ }
++ else if (buffer)
++ printf("buffer[% 3d] = \"%s\"\n", rc, buffer);
++}
++
++/*************************************************************************
++ *
++ */
++static void
++Report0
++TRIO_ARGS2((file, line),
++ TRIO_CONST char *file,
++ int line)
++{
++ printf("Verification failed in %s:%d.\n", file, line);
++}
++
++/*************************************************************************
++ *
++ */
++static void
++Report
++TRIO_ARGS4((file, line, expected, got),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *expected,
++ TRIO_CONST char *got)
++{
++ Report0(file, line);
++ printf(" Expected \"%s\"\n", expected);
++ printf(" Got \"%s\"\n", got);
++}
++
++/*************************************************************************
++ *
++ */
++int
++Verify
++TRIO_VARGS5((file, line, result, fmt, va_alist),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *result,
++ TRIO_CONST char *fmt,
++ TRIO_VA_DECL)
++{
++ int rc;
++ va_list args;
++ char buffer[4096];
++
++ TRIO_VA_START(args, fmt);
++ rc = trio_vsnprintf(buffer, sizeof(buffer), fmt, args);
++ if (rc < 0)
++ Dump(buffer, rc);
++ TRIO_VA_END(args);
++
++ if (!trio_equal_case(result, buffer))
++ {
++ Report(file, line, result, buffer);
++ return 1;
++ }
++ return 0;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyReturnValues(TRIO_NOARGS)
++{
++ int nerrors = 0;
++ int rc;
++ int count;
++ char *expected;
++ char buffer[4096];
++ char result[4096];
++
++ rc = trio_sprintf(buffer, "%s%n", "0123456789", &count);
++ trio_sprintf(result, "%d %d %s", rc, count, buffer);
++ expected = "10 10 0123456789";
++ if (!trio_equal_case(result, expected))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, expected, result);
++ }
++
++ rc = trio_snprintf(buffer, sizeof(buffer), "%s%n", "0123456789", &count);
++ trio_sprintf(result, "%d %d %s", rc, count, buffer);
++ expected = "10 10 0123456789";
++ if (!trio_equal_case(result, expected))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, expected, result);
++ }
++
++ rc = trio_snprintf(buffer, 4, "%s%n", "0123456789", &count);
++ trio_sprintf(result, "%d %d %s", rc, count, buffer);
++ expected = "10 3 012";
++ if (!trio_equal_case(result, expected))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, expected, result);
++ }
++
++ /* The output buffer contains the empty string */
++ rc = trio_snprintf(buffer, 1, "%s%n", "0123456789", &count);
++ trio_sprintf(result, "%d %d %s", rc, count, buffer);
++ expected = "10 0 ";
++ if (!trio_equal_case(result, expected))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, expected, result);
++ }
++
++ /* The output buffer should be left untouched when max size is 0 */
++ trio_sprintf(buffer, "DO NOT TOUCH");
++ rc = trio_snprintf(buffer, 0, "%s%n", "0123456789", &count);
++ trio_sprintf(result, "%d %d %s", rc, count, buffer);
++ expected = "10 0 DO NOT TOUCH";
++ if (!trio_equal_case(result, expected))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, expected, result);
++ }
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++#define TEST_STRING "0123456789"
++
++int
++VerifyAllocate(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if TRIO_FEATURE_DYNAMICSTRING
++ int rc;
++ char *string;
++ int count;
++ int test_size = sizeof(TEST_STRING) - 1;
++
++ /* Allocate a string with the result */
++ rc = trio_asprintf(&string, "%s%n", TEST_STRING, &count);
++ if (rc < 0)
++ {
++ nerrors++;
++ Dump(string, rc);
++ }
++ else if (count != test_size)
++ {
++ nerrors++;
++ printf("Validation failed in %s:%d\n", __FILE__, __LINE__);
++ printf(" Expected %%n = %d\n", test_size);
++ printf(" Got %%n = %d\n", count);
++ }
++ else if (!trio_equal_case(string, TEST_STRING))
++ {
++ nerrors++;
++ Report(__FILE__, __LINE__, TEST_STRING, string);
++ }
++ if (string)
++ free(string);
++#endif
++
++ return nerrors;
++}
++
++
++/*************************************************************************
++ *
++ */
++int
++VerifyFormattingStrings(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++ /* Normal text */
++ nerrors += Verify(__FILE__, __LINE__, "Hello world",
++ "Hello world");
++ /* String */
++ nerrors += Verify(__FILE__, __LINE__, "Hello world",
++ "%s", "Hello world");
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyFormattingIntegers(TRIO_NOARGS)
++{
++ int nerrors = 0;
++ char buffer[256];
++
++ /* Integer */
++ nerrors += Verify(__FILE__, __LINE__, "Number 42",
++ "Number %d", 42);
++ nerrors += Verify(__FILE__, __LINE__, "Number -42",
++ "Number %d", -42);
++ nerrors += Verify(__FILE__, __LINE__, "Number 42",
++ "Number %ld", 42L);
++ nerrors += Verify(__FILE__, __LINE__, "Number -42",
++ "Number %ld", -42L);
++ /* Integer width */
++ nerrors += Verify(__FILE__, __LINE__, " 1234",
++ "%6d", 1234);
++ nerrors += Verify(__FILE__, __LINE__, " 1234",
++ "%*d", 6, 1234);
++ /* Integer width overrun */
++ nerrors += Verify(__FILE__, __LINE__, "123456",
++ "%4d", 123456);
++ /* Integer precision */
++ nerrors += Verify(__FILE__, __LINE__, "0012",
++ "%.4d", 12);
++ nerrors += Verify(__FILE__, __LINE__, "0012",
++ "%.*d", 4, 12);
++ nerrors += Verify(__FILE__, __LINE__, " 0012",
++ "%6.*d", 4, 12);
++ nerrors += Verify(__FILE__, __LINE__, " 0012",
++ "%*.*d", 6, 4, 12);
++ nerrors += Verify(__FILE__, __LINE__, " 0012",
++ "%*.*.*d", 6, 4, 2, 12);
++ nerrors += Verify(__FILE__, __LINE__, " 0012",
++ "%*.*.*i", 6, 4, 10, 12);
++ /* Integer sign, zero-padding, and width */
++ nerrors += Verify(__FILE__, __LINE__, "+01234",
++ "%+06d", 1234);
++ nerrors += Verify(__FILE__, __LINE__, " 01234",
++ "% 06d", 1234);
++ nerrors += Verify(__FILE__, __LINE__, "+01234",
++ "% +06d", 1234);
++ /* Integer adjust, zero-padding, and width */
++ nerrors += Verify(__FILE__, __LINE__, "12 ",
++ "%-08d", 12);
++ /* Integer zero-padding, width, and precision */
++ nerrors += Verify(__FILE__, __LINE__, " 000012",
++ "%08.6d", 12);
++ /* Integer base */
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%u", 42);
++ nerrors += Verify(__FILE__, __LINE__, "-1",
++ "%d", -1);
++ nerrors += Verify(__FILE__, __LINE__, "52",
++ "%o", 42);
++ nerrors += Verify(__FILE__, __LINE__, "052",
++ "%#o", 42);
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%#o", 0);
++ nerrors += Verify(__FILE__, __LINE__, "2a",
++ "%x", 42);
++ nerrors += Verify(__FILE__, __LINE__, "2A",
++ "%X", 42);
++ nerrors += Verify(__FILE__, __LINE__, "0x2a",
++ "%#x", 42);
++ nerrors += Verify(__FILE__, __LINE__, "0X2A",
++ "%#X", 42);
++ nerrors += Verify(__FILE__, __LINE__, "0x00c ",
++ "%-#6.3x", 12);
++ nerrors += Verify(__FILE__, __LINE__, "",
++ "%.d", 0);
++ nerrors += Verify(__FILE__, __LINE__, "",
++ "%#.d", 0);
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%.d", 42);
++ nerrors += Verify(__FILE__, __LINE__, "",
++ "%.o", 0);
++ nerrors += Verify(__FILE__, __LINE__, " 0000",
++ "%8.4o", 0);
++ nerrors += Verify(__FILE__, __LINE__, " 0",
++ "%8o", 0);
++ nerrors += Verify(__FILE__, __LINE__, "00000000",
++ "%08o", 0);
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%#.o", 0);
++ nerrors += Verify(__FILE__, __LINE__, "52",
++ "%.o", 42);
++ nerrors += Verify(__FILE__, __LINE__, "",
++ "%.x", 0);
++ nerrors += Verify(__FILE__, __LINE__, "",
++ "%#.x", 0);
++ nerrors += Verify(__FILE__, __LINE__, "2a",
++ "%.x", 42);
++ sprintf(buffer, "%u", UINT_MAX);
++ nerrors += Verify(__FILE__, __LINE__, buffer,
++ "%u", -1);
++ sprintf(buffer, "%x", UINT_MAX);
++ nerrors += Verify(__FILE__, __LINE__, buffer,
++ "%x", -1);
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyFormattingFloats(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++#if TRIO_FEATURE_FLOAT
++ /* Double */
++ nerrors += Verify(__FILE__, __LINE__, "3141.000000",
++ "%f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3141.500000",
++ "%f", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, "3.141000e+03",
++ "%e", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, " -2.3420e-02",
++ "%16.4e", -2.342E-02);
++ nerrors += Verify(__FILE__, __LINE__, " -2.3420e-22",
++ "%16.4e", -2.342E-22);
++ nerrors += Verify(__FILE__, __LINE__, " 2.3420e-02",
++ "% 16.4e", 2.342E-02);
++ nerrors += Verify(__FILE__, __LINE__, " 2.3420e-02",
++ "% 1.4e", 2.342E-02);
++ nerrors += Verify(__FILE__, __LINE__, "3.141000E-44",
++ "%E", 3.141e-44);
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%g", 0.0);
++ nerrors += Verify(__FILE__, __LINE__, "-0",
++ "%g", trio_nzero());
++ nerrors += Verify(__FILE__, __LINE__, "3141.5",
++ "%g", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, "3.1415E-06",
++ "%G", 3.1415e-6);
++ nerrors += Verify(__FILE__, __LINE__, "+3141.000000",
++ "%+f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "-3141.000000",
++ "%+f", -3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "0.333333",
++ "%f", 1.0/3.0);
++ nerrors += Verify(__FILE__, __LINE__, "0.666667",
++ "%f", 2.0/3.0);
++ /* Beyond accuracy */
++ nerrors += Verify(__FILE__, __LINE__, "0.000000",
++ "%f", 1.234567890123456789e-20);
++# if defined(TRIO_BREESE)
++ nerrors += Verify(__FILE__, __LINE__, "1.3999999999999999111821580299875",
++ "%.32g", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.39999999999999991118215802998748",
++ "%.32f", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.3999999999999999111821580300",
++ "%.28f", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.399999999999999911182158",
++ "%.24f", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.39999999999999991",
++ "%.17f", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.40000000000000",
++ "%.14f", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "39413.800000000002910383045673370361",
++ "%.30f", 39413.80);
++# endif
++ /* 2^-1 + 2^-15 */
++ nerrors += Verify(__FILE__, __LINE__, "0.500030517578125",
++ "%.*g", DBL_DIG + 10, 0.500030517578125);
++ /* Double decimal point */
++ nerrors += Verify(__FILE__, __LINE__, "3141",
++ "%.0f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3142",
++ "%.0f", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, "3141",
++ "%.f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "12",
++ "%.f", 12.34);
++ nerrors += Verify(__FILE__, __LINE__, "3141.000",
++ "%.3f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3141.000000",
++ "%#f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "0.0000",
++ "%#.4f", 0.0);
++ nerrors += Verify(__FILE__, __LINE__, "0.000",
++ "%#.4g", 0.0);
++ nerrors += Verify(__FILE__, __LINE__, "0.001000",
++ "%#.4g", 1e-3);
++ nerrors += Verify(__FILE__, __LINE__, "3141.0000",
++ "%#.4f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3141.",
++ "%#.0f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3141.",
++ "%#.f", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "11.0000",
++ "%#.4f", 11.0);
++ nerrors += Verify(__FILE__, __LINE__, "100.00",
++ "%.2f", 99.9999);
++ nerrors += Verify(__FILE__, __LINE__, "3e+03",
++ "%.e", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "3.e+03",
++ "%#.e", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "1.23457e+06",
++ "%g", 1234567.0);
++ nerrors += Verify(__FILE__, __LINE__, "1e+02",
++ "%.2g", 99.9999);
++ nerrors += Verify(__FILE__, __LINE__, "1.0e+02",
++ "%#.2g", 99.9999);
++ nerrors += Verify(__FILE__, __LINE__, "0.123",
++ "%0g", 0.123);
++ nerrors += Verify(__FILE__, __LINE__, "1.00e+00",
++ "%.2e", 0.9999);
++ nerrors += Verify(__FILE__, __LINE__, "1",
++ "%.2g", 0.9999);
++ nerrors += Verify(__FILE__, __LINE__, "2",
++ "%.0g", 1.5);
++ nerrors += Verify(__FILE__, __LINE__, "2",
++ "%.g", 1.5);
++ nerrors += Verify(__FILE__, __LINE__, "0.01",
++ "%.2g", 0.01);
++ nerrors += Verify(__FILE__, __LINE__, "0.010",
++ "%#.2g", 0.01);
++ nerrors += Verify(__FILE__, __LINE__, "1e-04",
++ "%5.g", 0.999999e-4);
++ /* Double width and precision */
++ nerrors += Verify(__FILE__, __LINE__, " 1e-05",
++ "%11.5g", 1e-5);
++ nerrors += Verify(__FILE__, __LINE__, " 0.0001",
++ "%11.5g", 1e-4);
++ nerrors += Verify(__FILE__, __LINE__, " 0.001",
++ "%11.5g", 1e-3);
++ nerrors += Verify(__FILE__, __LINE__, " 0.01",
++ "%11.5g", 1e-2);
++ nerrors += Verify(__FILE__, __LINE__, " 0.1",
++ "%11.5g", 1e-1);
++ nerrors += Verify(__FILE__, __LINE__, " 1",
++ "%11.5g", 1e0);
++ nerrors += Verify(__FILE__, __LINE__, " 10",
++ "%11.5g", 1e1);
++ nerrors += Verify(__FILE__, __LINE__, " 100",
++ "%11.5g", 1e2);
++ nerrors += Verify(__FILE__, __LINE__, " 1000",
++ "%11.5g", 1e3);
++ nerrors += Verify(__FILE__, __LINE__, " 10000",
++ "%11.5g", 1e4);
++ nerrors += Verify(__FILE__, __LINE__, " 1e+05",
++ "%11.5g", 1e5);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e-05",
++ "%11.2g", 0.99e-4);
++ nerrors += Verify(__FILE__, __LINE__, " 0.00099",
++ "%11.2g", 0.99e-3);
++ nerrors += Verify(__FILE__, __LINE__, " 0.0099",
++ "%11.2g", 0.99e-2);
++ nerrors += Verify(__FILE__, __LINE__, " 0.099",
++ "%11.2g", 0.99e-1);
++ nerrors += Verify(__FILE__, __LINE__, " 0.99",
++ "%11.2g", 0.99e0);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9",
++ "%11.2g", 0.99e1);
++ nerrors += Verify(__FILE__, __LINE__, " 99",
++ "%11.2g", 0.99e2);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+02",
++ "%11.2g", 0.99e3);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+03",
++ "%11.2g", 0.99e4);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+04",
++ "%11.2g", 0.99e5);
++ /* Double width, precision, and alternative */
++ nerrors += Verify(__FILE__, __LINE__, " 1.0000e-05",
++ "%#11.5g", 1e-5);
++ nerrors += Verify(__FILE__, __LINE__, " 0.00010000",
++ "%#11.5g", 1e-4);
++ nerrors += Verify(__FILE__, __LINE__, " 0.0010000",
++ "%#11.5g", 1e-3);
++ nerrors += Verify(__FILE__, __LINE__, " 0.0010000",
++ "%#11.5g", 0.999999e-3);
++ nerrors += Verify(__FILE__, __LINE__, " 0.010000",
++ "%#11.5g", 1e-2);
++ nerrors += Verify(__FILE__, __LINE__, " 0.010000",
++ "%#11.5g", 0.999999e-2);
++ nerrors += Verify(__FILE__, __LINE__, " 0.10000",
++ "%#11.5g", 1e-1);
++ nerrors += Verify(__FILE__, __LINE__, " 0.10000",
++ "%#11.5g", 0.999999e-1);
++ nerrors += Verify(__FILE__, __LINE__, " 1.0000",
++ "%#11.5g", 1e0);
++ nerrors += Verify(__FILE__, __LINE__, " 1.0000",
++ "%#11.5g", 0.999999e0);
++ nerrors += Verify(__FILE__, __LINE__, " 10.000",
++ "%#11.5g", 1e1);
++ nerrors += Verify(__FILE__, __LINE__, " 100.00",
++ "%#11.5g", 1e2);
++ nerrors += Verify(__FILE__, __LINE__, " 1000.0",
++ "%#11.5g", 1e3);
++ nerrors += Verify(__FILE__, __LINE__, " 10000.",
++ "%#11.5g", 1e4);
++ nerrors += Verify(__FILE__, __LINE__, " 1.0000e+05",
++ "%#11.5g", 1e5);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e-05",
++ "%#11.2g", 0.99e-4);
++ nerrors += Verify(__FILE__, __LINE__, " 0.00099",
++ "%#11.2g", 0.99e-3);
++ nerrors += Verify(__FILE__, __LINE__, " 0.0099",
++ "%#11.2g", 0.99e-2);
++ nerrors += Verify(__FILE__, __LINE__, " 0.099",
++ "%#11.2g", 0.99e-1);
++ nerrors += Verify(__FILE__, __LINE__, " 0.99",
++ "%#11.2g", 0.99e0);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9",
++ "%#11.2g", 0.99e1);
++ nerrors += Verify(__FILE__, __LINE__, " 99.",
++ "%#11.2g", 0.99e2);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+02",
++ "%#11.2g", 0.99e3);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+03",
++ "%#11.2g", 0.99e4);
++ nerrors += Verify(__FILE__, __LINE__, " 9.9e+04",
++ "%#11.2g", 0.99e5);
++ /* Double width, precision, and zero padding */
++ nerrors += Verify(__FILE__, __LINE__, "00003.141500e+03",
++ "%016e", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, " 3.141500e+03",
++ "%16e", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, "3.141500e+03 ",
++ "%-16e", 3141.5);
++ nerrors += Verify(__FILE__, __LINE__, "03.142e+03",
++ "%010.3e", 3141.5);
++#if !defined(TRIO_COMPILER_ANCIENT)
++ /* Long double */
++ nerrors += Verify(__FILE__, __LINE__, "1.400000",
++ "%Lf", 1.4L);
++#endif
++
++ /* Special cases */
++ nerrors += Verify(__FILE__, __LINE__, "1.00",
++ "%.2f", 0.999);
++ nerrors += Verify(__FILE__, __LINE__, "100",
++ "%.0f", 99.9);
++ nerrors += Verify(__FILE__, __LINE__, "inf",
++ "%f", trio_pinf());
++ nerrors += Verify(__FILE__, __LINE__, "-inf",
++ "%f", trio_ninf());
++ nerrors += Verify(__FILE__, __LINE__, "INF",
++ "%F", trio_pinf());
++ nerrors += Verify(__FILE__, __LINE__, "-INF",
++ "%F", trio_ninf());
++ /* May fail if NaN is unsupported */
++ nerrors += Verify(__FILE__, __LINE__, "nan",
++ "%f", trio_nan());
++ nerrors += Verify(__FILE__, __LINE__, "NAN",
++ "%F", trio_nan());
++
++# if TRIO_FEATURE_HEXFLOAT
++ nerrors += Verify(__FILE__, __LINE__, "0x2.ap+4",
++ "%a", 42.0);
++ nerrors += Verify(__FILE__, __LINE__, "-0x2.ap+4",
++ "%a", -42.0);
++ nerrors += Verify(__FILE__, __LINE__, "0x1.8p+0",
++ "%a", 1.5);
++ nerrors += Verify(__FILE__, __LINE__, "0x1.6666666666666p+0",
++ "%a", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "0xc.45p+8",
++ "%a", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "0XC.45P+8",
++ "%A", 3141.0);
++ nerrors += Verify(__FILE__, __LINE__, "0xb.351c434a98fa8p-148",
++ "%a", 3.141e-44);
++# endif
++
++#endif /* TRIO_FEATURE_FLOAT */
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++#if TRIO_EXTENSION
++int number_writer(void *ref)
++{
++ const char *format;
++ int *data;
++
++ format = trio_get_format(ref);
++ if ((format) && trio_equal(format, "integer"))
++ {
++ data = trio_get_argument(ref);
++ if (data)
++ {
++ trio_print_int(ref, *data);
++ }
++ }
++ return 0;
++}
++
++#endif
++
++int
++VerifyFormattingUserDefined(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if TRIO_EXTENSION
++ void *number_handle;
++ int integer = 123;
++
++ number_handle = trio_register(number_writer, "number");
++
++ /* Old style */
++ nerrors += Verify(__FILE__, __LINE__, "123",
++ "%<number:integer>", &integer);
++
++ /* New style */
++ nerrors += Verify(__FILE__, __LINE__, "123",
++ "$<number:integer|%p>", &integer);
++ nerrors += Verify(__FILE__, __LINE__, "123",
++ "$<integer|%p%p>", number_handle, &integer);
++ nerrors += Verify(__FILE__, __LINE__, "$<integer|123",
++ "$<integer|%d", 123);
++ nerrors += Verify(__FILE__, __LINE__, "$integer|123>",
++ "$integer|%d>", 123);
++
++ trio_unregister(number_handle);
++#endif
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyFormattingRegression(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++#if TRIO_FEATURE_FLOAT
++ /* 0.6 was formatted as 0.600000e+00 */
++ nerrors += Verify(__FILE__, __LINE__, "5.000000e-01",
++ "%e", 0.5);
++ nerrors += Verify(__FILE__, __LINE__, "6.000000e-01",
++ "%e", 0.6);
++#endif
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyFormatting(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if TRIO_FEATURE_SIZE_T || TRIO_FEATURE_SIZE_T_UPPER
++ char buffer[256];
++#endif
++
++ nerrors += VerifyFormattingStrings();
++ nerrors += VerifyFormattingIntegers();
++ nerrors += VerifyFormattingFloats();
++ nerrors += VerifyFormattingRegression();
++ nerrors += VerifyFormattingUserDefined();
++
++ /* Pointer */
++ if (sizeof(void *) == 4)
++ {
++ nerrors += Verify(__FILE__, __LINE__, "Pointer 0x01234567",
++ "Pointer %p", 0x1234567);
++ }
++#if defined(TRIO_COMPILER_SUPPORTS_LL)
++ else if (sizeof(void *) == 8)
++ {
++ nerrors += Verify(__FILE__, __LINE__, "Pointer 0x0123456789012345",
++ "Pointer %p", 0x123456789012345LL);
++ }
++#endif
++ /* Nil pointer */
++ nerrors += Verify(__FILE__, __LINE__, "Pointer (nil)",
++ "Pointer %p", NULL);
++
++ /* Char width alignment */
++ nerrors += Verify(__FILE__, __LINE__, "Char X .",
++ "Char %-4c.", 'X');
++ /* String width / precision */
++ nerrors += Verify(__FILE__, __LINE__, " testing",
++ "%8s", "testing");
++ nerrors += Verify(__FILE__, __LINE__, "testing ",
++ "%-8s", "testing");
++ nerrors += Verify(__FILE__, __LINE__, " testing",
++ "%*s", 8, "testing");
++ nerrors += Verify(__FILE__, __LINE__, "testing ",
++ "%*s", -8, "testing");
++ nerrors += Verify(__FILE__, __LINE__, "test",
++ "%.4s", "testing");
++ nerrors += Verify(__FILE__, __LINE__, "test",
++ "%.*s", 4, "testing");
++ nerrors += Verify(__FILE__, __LINE__, "testing",
++ "%.*s", -4, "testing");
++#if TRIO_FEATURE_POSITIONAL
++ /* Positional */
++ nerrors += Verify(__FILE__, __LINE__, "222 111",
++ "%2$s %1$s", "111", "222");
++ nerrors += Verify(__FILE__, __LINE__, "123456 12345 0001234 00123",
++ "%4$d %3$*8$d %2$.*7$d %1$*6$.*5$d",
++ 123, 1234, 12345, 123456, 5, 6, 7, 8);
++#endif
++
++#if TRIO_FEATURE_SIZE_T_UPPER
++ nerrors += Verify(__FILE__, __LINE__, "256",
++ "%Zd", sizeof(buffer));
++#endif
++
++#if TRIO_FEATURE_ERRNO
++ errno = EINTR;
++# if defined(TRIO_PLATFORM_LYNX)
++# if defined(PREDEF_STANDARD_POSIX_1996)
++ nerrors += Verify(__FILE__, __LINE__, "Interrupted system call ",
++ "%m");
++# else
++ nerrors += Verify(__FILE__, __LINE__, "System call interrupted",
++ "%m");
++# endif
++# else
++ nerrors += Verify(__FILE__, __LINE__, "Interrupted system call",
++ "%m");
++# endif
++#endif
++
++#if TRIO_FEATURE_QUAD
++# if defined(TRIO_COMPILER_SUPPORTS_LL)
++ /* This may fail if the preprocessor does not recognize LL */
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%qd", 42LL);
++# endif
++#endif
++
++#if TRIO_FEATURE_SIZE_T
++ nerrors += Verify(__FILE__, __LINE__, "256",
++ "%zd", sizeof(buffer));
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%td", 42);
++#endif
++#if TRIO_FEATURE_INTMAX_T
++# if defined(TRIO_COMPILER_SUPPORTS_LL)
++ /* Some compilers may not handle the LL suffix correctly */
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%jd", 42LL);
++# endif
++#endif
++
++#if TRIO_FEATURE_WIDECHAR
++ nerrors += Verify(__FILE__, __LINE__, "Hello World",
++ "%ls", L"Hello World");
++ nerrors += Verify(__FILE__, __LINE__, "\\aHello World",
++ "%#ls", L"\aHello World");
++ nerrors += Verify(__FILE__, __LINE__, "A",
++ "%lc", L'A');
++ nerrors += Verify(__FILE__, __LINE__, "\\a",
++ "%#lc", L'\a');
++#endif
++
++#if TRIO_FEATURE_FIXED_SIZE
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%I8d", 42);
++ nerrors += Verify(__FILE__, __LINE__, "ffffffff",
++ "%I16x", -1);
++#endif
++
++#if TRIO_EXTENSION
++ nerrors += Verify(__FILE__, __LINE__, " 42 86",
++ "%!4d %d", 42, 86);
++ nerrors += Verify(__FILE__, __LINE__, "0042 0086",
++ "%!04d %d", 42, 86);
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%&d", sizeof(long), 42L);
++ /* Non-printable string */
++ nerrors += Verify(__FILE__, __LINE__, "NonPrintable \\x01 \\a \\\\",
++ "NonPrintable %#s", "\01 \07 \\");
++ nerrors += Verify(__FILE__, __LINE__, "\\a \\b \\t \\n \\v \\f \\r",
++ "%#s", "\007 \010 \011 \012 \013 \014 \015");
++ /* Quote flag */
++ nerrors += Verify(__FILE__, __LINE__, "Another \"quoted\" string",
++ "Another %'s string", "quoted");
++ /* Integer base */
++ nerrors += Verify(__FILE__, __LINE__, "Number 42 == 1120 (base 3)",
++ "Number %d == %..3i (base 3)", 42, 42);
++ /* Integer base (specifier base must be used instead of base modifier) */
++ nerrors += Verify(__FILE__, __LINE__, "42",
++ "%..3d", 42);
++ nerrors += Verify(__FILE__, __LINE__, "52",
++ "%..3o", 42);
++ nerrors += Verify(__FILE__, __LINE__, "2a",
++ "%..3x", 42);
++ /* Integer thousand separator */
++ nerrors += Verify(__FILE__, __LINE__, "Number 100",
++ "Number %'d", 100);
++ nerrors += Verify(__FILE__, __LINE__, "Number 1,000,000",
++ "Number %'d", 1000000);
++# if TRIO_FEATURE_FLOAT
++ /* Float thousand separator */
++ nerrors += Verify(__FILE__, __LINE__, "31,415.200000",
++ "%'f", 31415.2);
++ nerrors += Verify(__FILE__, __LINE__, "1,000,000.000000",
++ "%'f", 1000000.0);
++ /* Rounding modifier */
++ nerrors += Verify(__FILE__, __LINE__, "1.4",
++ "%.32Rf", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "1.4",
++ "%.17Rf", 1.4);
++ nerrors += Verify(__FILE__, __LINE__, "39413.8",
++ "%.30Rf", 39413.80);
++# if !defined(TRIO_COMPILER_ANCIENT)
++ /* Long double */
++ nerrors += Verify(__FILE__, __LINE__, "1.4",
++ "%RLf", 1.4L);
++ nerrors += Verify(__FILE__, __LINE__, "1.4",
++ "%.30RLf", 1.4L);
++# endif
++# endif
++#endif
++
++#if defined(TRIO_BREESE)
++ /*
++ * These results depends on issues beyond our control. For example,
++ * the accuracy of floating-point numbers depends on the underlying
++ * floating-point hardware (e.g. whether IEEE 754 double or extended-
++ * double format is used).
++ *
++ * These tests are therefore not part of the normal regression test,
++ * but we keep them here for development purposes.
++ */
++ nerrors += Verify(__FILE__, __LINE__, "123456789012345680868.000000",
++ "%f", 1.234567890123456789e20);
++ nerrors += Verify(__FILE__, __LINE__, "1.23456789012345677901e-20",
++ "%.20e", 1.2345678901234567e-20);
++ nerrors += Verify(__FILE__, __LINE__, "0.666666666666666629659233",
++ "%.*g", DBL_DIG + 10, 2.0/3.0);
++ nerrors += Verify(__FILE__, __LINE__, "123456789012345700000",
++ "%Rf", 1.234567890123456789e20);
++# if !defined(TRIO_COMPILER_ANCIENT)
++ nerrors += Verify(__FILE__, __LINE__, "0.666666666666666667",
++ "%RLf", (2.0L/3.0L));
++ nerrors += Verify(__FILE__, __LINE__, "0.666666666666666667",
++ "%.30RLf", (2.0L/3.0L));
++# endif
++#endif
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyErrors(TRIO_NOARGS)
++{
++ char buffer[512];
++ int rc;
++ int nerrors = 0;
++
++ /* Error: Invalid argument 1 */
++ rc = trio_snprintf(buffer, sizeof(buffer), "%d %r", 42, "text");
++#if TRIO_FEATURE_ERRORCODE
++# if TRIO_FEATURE_STRERR
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d (%s), Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2 (Invalid argument), Pos = 5",
++ "%s", buffer);
++# else
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d, Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2, Pos = 5",
++ "%s", buffer);
++# endif
++#else
++ nerrors += (rc != -1);
++#endif
++
++ /* Error: Invalid argument 2 */
++ rc = trio_snprintf(buffer, sizeof(buffer), "%#");
++#if TRIO_FEATURE_ERRORCODE
++# if TRIO_FEATURE_STRERR
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d (%s), Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2 (Invalid argument), Pos = 3",
++ "%s", buffer);
++# else
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d, Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2, Pos = 3",
++ "%s", buffer);
++# endif
++#else
++ nerrors += (rc != -1);
++#endif
++
++ /* Error: Invalid argument 3 */
++ rc = trio_snprintf(buffer, sizeof(buffer), "%hhhd", 42);
++#if TRIO_FEATURE_ERRORCODE
++# if TRIO_FEATURE_STRERR
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d (%s), Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2 (Invalid argument), Pos = 4",
++ "%s", buffer);
++# else
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d, Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_POSITION(rc));
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2, Pos = 4",
++ "%s", buffer);
++# endif
++#else
++ nerrors += (rc != -1);
++#endif
++
++ /* Error: Double reference */
++ rc = trio_snprintf(buffer, sizeof(buffer), "hello %1$d %1$d", 31, 32);
++#if TRIO_FEATURE_ERRORCODE
++# if TRIO_FEATURE_STRERR
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d (%s), Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++# if TRIO_UNIX98
++ nerrors += Verify(__FILE__, __LINE__, "Err = 4 (Double reference), Pos = 0",
++ "%s", buffer);
++# else
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2 (Invalid argument), Pos = 9",
++ "%s", buffer);
++# endif
++# else
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d, Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_POSITION(rc));
++# if TRIO_UNIX98
++ nerrors += Verify(__FILE__, __LINE__, "Err = 4, Pos = 0",
++ "%s", buffer);
++# else
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2, Pos = 9",
++ "%s", buffer);
++# endif
++# endif
++#else
++ nerrors += (rc != -1);
++#endif
++
++ /* Error: Reference gap */
++ rc = trio_snprintf(buffer, sizeof(buffer), "%3$d %1$d", 31, 32, 33);
++#if TRIO_FEATURE_ERRORCODE
++# if TRIO_FEATURE_STRERR
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d (%s), Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_NAME(rc),
++ TRIO_ERROR_POSITION(rc));
++# if TRIO_UNIX98
++ nerrors += Verify(__FILE__, __LINE__, "Err = 5 (Reference gap), Pos = 1",
++ "%s", buffer);
++# else
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2 (Invalid argument), Pos = 3",
++ "%s", buffer);
++# endif
++# else
++ trio_snprintf(buffer, sizeof(buffer), "Err = %d, Pos = %d",
++ TRIO_ERROR_CODE(rc),
++ TRIO_ERROR_POSITION(rc));
++# if TRIO_UNIX98
++ nerrors += Verify(__FILE__, __LINE__, "Err = 5, Pos = 1",
++ "%s", buffer);
++# else
++ nerrors += Verify(__FILE__, __LINE__, "Err = 2, Pos = 3",
++ "%s", buffer);
++# endif
++# endif
++#else
++ nerrors += (rc != -1);
++#endif
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++#if TRIO_FEATURE_SCANF
++int
++VerifyScanningOneInteger
++TRIO_ARGS5((file, line, expected, format, original),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *expected,
++ TRIO_CONST char *format,
++ int original)
++{
++ int number;
++ char data[512];
++
++ trio_snprintf(data, sizeof(data), format, original);
++ trio_sscanf(data, format, &number);
++ return Verify(file, line, expected, format, number);
++}
++
++int
++VerifyScanningIntegers(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "42",
++ "%i", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "42",
++ "%d", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "-42",
++ "%d", -42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "2147483647",
++ "%d", 2147483647);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "42",
++ "%u", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "2a",
++ "%x", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "52",
++ "%o", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "101010",
++ "%..2i", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "0x2a",
++ "%#x", 42);
++ nerrors += VerifyScanningOneInteger(__FILE__, __LINE__, "052",
++ "%#o", 42);
++
++ return nerrors;
++}
++#endif
++
++/*************************************************************************
++ *
++ */
++#if TRIO_FEATURE_SCANF
++int
++VerifyScanningOneFloat
++TRIO_ARGS5((file, line, expected, format, original),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *expected,
++ TRIO_CONST char *format,
++ double original)
++{
++ float number;
++ char data[512];
++
++ trio_snprintf(data, sizeof(data), format, original);
++ trio_sscanf(data, format, &number);
++ return Verify(file, line, expected, format, number);
++}
++
++int
++VerifyScanningOneDouble
++TRIO_ARGS5((file, line, expected, format, original),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *expected,
++ TRIO_CONST char *format,
++ double original)
++{
++ double number;
++ char data[512];
++
++ trio_snprintf(data, sizeof(data), format, original);
++ trio_sscanf(data, format, &number);
++ return Verify(file, line, expected, format, number);
++}
++
++int
++VerifyScanningFloats(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++#if TRIO_FEATURE_FLOAT
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "42.000000",
++ "%f", 42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "-42.000000",
++ "%f", -42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "4.200000e+01",
++ "%e", 42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "4.200000E+01",
++ "%E", 42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "42",
++ "%g", 42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.23457e+06",
++ "%g", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.23457e-06",
++ "%g", 1.234567e-6);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.23457E+06",
++ "%G", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.234567e+06",
++ "%12e", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.234500e+00",
++ "%6e", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.234567e+06",
++ "%.6e", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.2345670000e+06",
++ "%.10e", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1.23457e+06",
++ "%.6g", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "1234567",
++ "%.10g", 1234567.0);
++# if TRIO_FEATURE_HEXFLOAT
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "0x2.ap+4",
++ "%a", 42.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "0x1.2d687p+20",
++ "%a", 1234567.0);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "0X1.2D687P+20",
++ "%A", 1234567.0);
++# endif
++ nerrors += VerifyScanningOneDouble(__FILE__, __LINE__, "1.79769e+308",
++ "%lg", 1.79769e+308);
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "nan",
++ "%f", trio_nan());
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "NAN",
++ "%F", trio_nan());
++ nerrors += VerifyScanningOneFloat(__FILE__, __LINE__, "-inf",
++ "%f", trio_ninf());
++#endif
++
++ return nerrors;
++}
++#endif
++
++/*************************************************************************
++ *
++ */
++#if TRIO_FEATURE_SCANF
++int
++VerifyScanningOneString
++TRIO_ARGS5((file, line, expected, format, original),
++ TRIO_CONST char *file,
++ int line,
++ TRIO_CONST char *expected,
++ TRIO_CONST char *format,
++ char *original)
++{
++ char string[512];
++ char data[512];
++
++ trio_snprintf(data, sizeof(data), "%s", original);
++ string[0] = 0;
++ trio_sscanf(data, format, string);
++ return Verify(file, line, expected, "%s", string);
++}
++
++int
++VerifyScanningStrings(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "",
++ "hello", "hello");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "",
++ "", "");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "hello",
++ "%s", "hello");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "hello",
++ "%s", "hello world");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "hello world",
++ "%[^\n]", "hello world");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "(nil)",
++ "%s", NULL);
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "hello",
++ "%20s", "hello");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "he",
++ "%2s", "hello");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "ab",
++ "%[ab]", "abcba");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "abcba",
++ "%[abc]", "abcba");
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "abcba",
++ "%[a-c]", "abcba");
++#if TRIO_EXTENSION
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "abcba",
++ "%[[:alpha:]]", "abcba");
++#endif
++ nerrors += VerifyScanningOneString(__FILE__, __LINE__, "ba",
++ "%*[ab]c%[^\n]", "abcba");
++
++ return nerrors;
++}
++#endif
++
++/*************************************************************************
++ *
++ */
++#if TRIO_FEATURE_SCANF
++int
++VerifyScanningRegression(TRIO_NOARGS)
++{
++ int nerrors = 0;
++ int rc;
++#if TRIO_FEATURE_FLOAT
++ int offset;
++ double dnumber;
++# if defined(TRIO_BREESE)
++ trio_long_double_t ldnumber;
++# endif
++#endif
++ long lnumber;
++ int number;
++ char ch;
++ char buffer[4096];
++ FILE *stream;
++
++#if TRIO_FEATURE_FLOAT
++ rc = trio_sscanf("1.5", "%lf%n", &dnumber, &offset);
++ nerrors += Verify(__FILE__, __LINE__, "1 3 1.500000",
++ "%d %d %f", rc, offset, dnumber);
++#endif
++ rc = trio_sscanf("q 123", "%c%ld", &ch, &lnumber);
++ nerrors += Verify(__FILE__, __LINE__, "q 123",
++ "%c %ld", ch, lnumber);
++ rc = trio_sscanf("abc", "%*s%n", &number);
++ nerrors += Verify(__FILE__, __LINE__, "0 3",
++ "%d %d", rc, number);
++ rc = trio_sscanf("abc def", "%*s%n", &number);
++ nerrors += Verify(__FILE__, __LINE__, "0 3",
++ "%d %d", rc, number);
++#if TRIO_FEATURE_FLOAT
++ rc = trio_sscanf("0.141882295971771490", "%lf", &dnumber);
++ /* FIXME: Verify */
++#endif
++ number = 33;
++ rc = trio_sscanf("total 1", "total %d", &number);
++ nerrors += Verify(__FILE__, __LINE__, "1 1",
++ "%d %d", rc, number);
++#if defined(TRIO_BREESE)
++# if TRIO_FEATURE_FLOAT
++ nerrors += Verify(__FILE__, __LINE__, "1 0.141882295971771488",
++ "%d %.18f", rc, dnumber);
++ rc = trio_sscanf("0.141882295971771490", "%Lf", &ldnumber);
++ nerrors += Verify(__FILE__, __LINE__, "1 0.141882295971771490",
++ "%d %.18Lf", rc, ldnumber);
++# endif
++#endif
++#if TRIO_FEATURE_FLOAT
++ rc = trio_sscanf("1.e-6", "%lg", &dnumber);
++ nerrors += Verify(__FILE__, __LINE__, "1e-06",
++ "%g", dnumber);
++ rc = trio_sscanf("1e-6", "%lg", &dnumber);
++ nerrors += Verify(__FILE__, __LINE__, "1e-06",
++ "%g", dnumber);
++#endif
++
++ /* Do not overwrite result on matching error */
++ ch = 'a';
++ rc = trio_sscanf("0123456789", "%1[c]", &ch);
++ nerrors += Verify(__FILE__, __LINE__, "a",
++ "%c", ch);
++
++ /* Scan plus prefix for unsigned integer */
++ rc = trio_sscanf("+42", "%u", &number);
++ nerrors += Verify(__FILE__, __LINE__, "1 42",
++ "%d %u", rc, number);
++
++ /* Scan minus prefix even for unsigned integer */
++ rc = trio_sscanf("-42", "%u", &number);
++ sprintf(buffer, "1 %u", -42U);
++ nerrors += Verify(__FILE__, __LINE__, buffer,
++ "%d %u", rc, number);
++
++ /* A scangroup match failure should not bind its argument,
++ * i.e., it shouldn't match the empty string. */
++ sprintf(buffer, "SPQR");
++ rc = trio_sscanf("asdf", "%[c]", buffer);
++ nerrors += Verify(__FILE__, __LINE__, "0 SPQR",
++ "%d %s", rc, buffer);
++
++ /* Even whitespace scanning shouldn't try to read past EOF */
++ stream = tmpfile();
++ trio_fprintf(stream, "");
++ rewind(stream);
++ rc = trio_fscanf(stream, " ");
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%d", rc);
++ fclose(stream);
++
++ /* Idem, after a succesfull read */
++ stream = tmpfile();
++ trio_fprintf(stream, "123");
++ rewind(stream);
++ rc = trio_fscanf(stream, "%i ", &number);
++ nerrors += Verify(__FILE__, __LINE__, "1 123",
++ "%d %i", rc, number);
++ fclose(stream);
++
++ /* The scanner should unget its read-ahead char */
++ stream = tmpfile();
++ trio_fprintf(stream, "123");
++ rewind(stream);
++ trio_fscanf(stream, "%*c");
++ trio_fscanf(stream, "%c", &ch);
++ nerrors += Verify(__FILE__, __LINE__, "2",
++ "%c", ch);
++ fclose(stream);
++
++ return nerrors;
++}
++#endif
++
++/*************************************************************************
++ *
++ */
++int
++VerifyScanning(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if TRIO_FEATURE_SCANF
++ nerrors += VerifyScanningIntegers();
++ nerrors += VerifyScanningFloats();
++ nerrors += VerifyScanningStrings();
++ nerrors += VerifyScanningRegression();
++#endif
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyStrings(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if !defined(TRIO_MINIMAL)
++ char buffer[512];
++#if TRIO_FEATURE_FLOAT
++ double dnumber;
++ float fnumber;
++#endif
++ char *end;
++
++ /* Comparison */
++ trio_copy(buffer, "Find me now");
++ if (trio_length(buffer) != sizeof("Find me now") - 1) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_equal(buffer, "Find me now")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_equal_case(buffer, "Find me now")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_equal_case(buffer, "FIND ME NOW")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_equal_max(buffer, sizeof("Find me") - 1, "Find ME")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_contains(buffer, "me")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_contains(buffer, "and me")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_substring(buffer, "me") == NULL) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_substring_max(buffer, 4, "me") != NULL) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_match(buffer, "* me *")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_match_case(buffer, "* ME *")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_index(buffer, 'n') == NULL) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_index(buffer, '_') != NULL) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_index_last(buffer, 'n') == NULL) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++
++ /* Append */
++ trio_copy(buffer, "Find me now");
++ if (!trio_append(buffer, " and again")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_equal(buffer, "Find me now and again")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_append_max(buffer, 0, "should not appear")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (!trio_equal(buffer, "Find me now and again")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++
++ /* To upper/lower */
++ trio_copy(buffer, "Find me now");
++ trio_upper(buffer);
++ if (!trio_equal_case(buffer, "FIND ME NOW")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ trio_lower(buffer);
++ if (!trio_equal_case(buffer, "find me now")) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++
++#if TRIO_FEATURE_FLOAT
++ /* Double conversion */
++ trio_copy(buffer, "3.1415");
++ dnumber = trio_to_double(buffer, NULL);
++ if (!DOUBLE_EQUAL(dnumber, 3.1415)) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ fnumber = trio_to_float(buffer, NULL);
++ if (!FLOAT_EQUAL(fnumber, 3.1415)) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++#endif
++
++ /* Long conversion */
++ trio_copy(buffer, "3.1415");
++ if (trio_to_long(buffer, NULL, 10) != 3L) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ if (trio_to_long(buffer, NULL, 4) != 3L) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++ trio_to_long(buffer, &end, 2);
++ if (end != buffer) {
++ nerrors++;
++ Report0(__FILE__, __LINE__);
++ }
++
++#endif /* !defined(TRIO_MINIMAL) */
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyDynamicStrings(TRIO_NOARGS)
++{
++ int nerrors = 0;
++#if !defined(TRIO_MINIMAL)
++ trio_string_t *string;
++ const char no_terminate[5] = { 'h', 'e', 'l', 'l', 'o' };
++
++ string = trio_xstring_duplicate("Find me now");
++ if (string == NULL) {
++ nerrors++;
++ goto error;
++ }
++ if (!trio_xstring_equal(string, "FIND ME NOW"))
++ nerrors++;
++ if (!trio_xstring_append(string, " and again") ||
++ !trio_xstring_equal(string, "FIND ME NOW AND AGAIN"))
++ nerrors++;
++ if (!trio_xstring_contains(string, "me"))
++ nerrors++;
++ if (trio_xstring_contains(string, "ME"))
++ nerrors++;
++ if (!trio_xstring_match(string, "* me *"))
++ nerrors++;
++ if (trio_xstring_match_case(string, "* ME *"))
++ nerrors++;
++ if (!trio_xstring_append_max(string, no_terminate, 5) ||
++ !trio_xstring_equal(string, "FIND ME NOW AND AGAINhello"))
++ nerrors++;
++
++ error:
++ if (string)
++ trio_string_destroy(string);
++
++#endif /* !defined(TRIO_MINIMAL) */
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++VerifyNaN(TRIO_NOARGS)
++{
++ double ninf_number = trio_ninf();
++ double pinf_number = trio_pinf();
++ double nan_number = trio_nan();
++ int nerrors = 0;
++
++ nerrors += Verify(__FILE__, __LINE__, "-1",
++ "%d", trio_isinf(ninf_number));
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%d", trio_isinf(42.0));
++ nerrors += Verify(__FILE__, __LINE__, "1",
++ "%d", trio_isinf(pinf_number));
++ nerrors += Verify(__FILE__, __LINE__, "1",
++ "%d", trio_isnan(nan_number));
++ nerrors += Verify(__FILE__, __LINE__, "0",
++ "%d", trio_isnan(42.0));
++
++ return nerrors;
++}
++
++/*************************************************************************
++ *
++ */
++int
++main(TRIO_NOARGS)
++{
++ int nerrors = 0;
++
++ printf("%s\n", rcsid);
++
++#if TRIO_EXTENSION
++ /* Override system locale settings */
++ trio_locale_set_decimal_point(".");
++ trio_locale_set_thousand_separator(",");
++ trio_locale_set_grouping("\3");
++#endif
++
++ printf("Verifying strings\n");
++ nerrors += VerifyStrings();
++
++ printf("Verifying dynamic strings\n");
++ nerrors += VerifyDynamicStrings();
++
++ printf("Verifying special quantities\n");
++ nerrors += VerifyNaN();
++
++ printf("Verifying formatting\n");
++ nerrors += VerifyFormatting();
++
++ printf("Verifying scanning\n");
++ nerrors += VerifyScanning();
++
++ printf("Verifying return values\n");
++ nerrors += VerifyErrors();
++ nerrors += VerifyReturnValues();
++
++ printf("Verifying allocation\n");
++ nerrors += VerifyAllocate();
++
++ if (nerrors == 0)
++ printf("Regression test succeeded\n");
++ else
++ printf("Regression test failed in %d instance(s)\n", nerrors);
++
++ return nerrors ? 1 : 0;
++}
+diff -up ghostscript-9.07/trio/strio.h.gs_sprintf ghostscript-9.07/trio/strio.h
+--- ghostscript-9.07/trio/strio.h.gs_sprintf 2013-05-09 17:02:39.109447270 +0100
++++ ghostscript-9.07/trio/strio.h 2013-05-09 17:02:39.109447270 +0100
+@@ -0,0 +1,73 @@
++/*************************************************************************
++ *
++ * $Id: strio.h,v 1.11 2001/12/27 17:29:20 breese Exp $
++ *
++ * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************
++ *
++ * This maintains backwards compatibility with the strio functions.
++ *
++ ************************************************************************/
++
++#ifndef TRIO_STRIO_H
++#define TRIO_STRIO_H
++
++#if !(defined(DEBUG) || defined(NDEBUG))
++# define NDEBUG
++#endif
++#include "triostr.h"
++
++enum {
++ STRIO_HASH_NONE = TRIO_HASH_NONE,
++ STRIO_HASH_PLAIN = TRIO_HASH_PLAIN,
++ STRIO_HASH_TWOSIGNED = TRIO_HASH_TWOSIGNED
++};
++
++#define StrAlloc(n) trio_create(n)
++#define StrAppend(x,y) ((void)trio_append((x),(y)),(x))
++#define StrAppendMax(x,n,y) ((void)trio_append_max((x),(n),(y)),(x))
++#define StrContains(x,y) trio_contains((x),(y))
++#define StrCopy(x,y) ((void)trio_copy((x),(y)),(x))
++#define StrCopyMax(x,n,y) ((void)trio_copy_max((x),(n),(y)),(x))
++#define StrDuplicate(x) trio_duplicate(x)
++#define StrDuplicateMax(x,n) trio_duplicate((x),(n))
++#define StrEqual(x,y) trio_equal((x),(y))
++#define StrEqualCase(x,y) trio_equal_case((x),(y))
++#define StrEqualCaseMax(x,n,y) trio_equal_case_max((x),(n),(y))
++#define StrEqualLocale(x,y) trio_equal_locale((x),(y))
++#define StrEqualMax(x,n,y) trio_equal_max((x),(n),(y))
++#define StrError(n) trio_error(n)
++#define StrFree(x) trio_destroy(x)
++#define StrFormat trio_sprintf
++#define StrFormatAlloc trio_aprintf
++#define StrFormatAppendMax trio_snprintfcat
++#define StrFormatDateMax(x,n,y,t) trio_format_date_max((x),(n),(y),(t))
++#define StrFormatMax trio_snprintf
++#define StrHash(x,n) trio_hash((x),(n))
++#define StrIndex(x,y) trio_index((x),(y))
++#define StrIndexLast(x,y) trio_index_last((x),(y))
++#define StrLength(x) trio_length((x))
++#define StrMatch(x,y) trio_match((x),(y))
++#define StrMatchCase(x,y) trio_match_case((x),(y))
++#define StrScan trio_sscanf
++#define StrSpanFunction(x,f) trio_span_function((x),(f))
++#define StrSubstring(x,y) trio_substring((x),(y))
++#define StrSubstringMax(x,n,y) trio_substring_max((x),(n),(y))
++#define StrToDouble(x,y) trio_to_double((x),(y))
++#define StrToFloat(x,y) trio_to_float((x),(y))
++#define StrTokenize(x,y) trio_tokenize((x),(y))
++#define StrToLong(x,y,n) trio_to_long((x),(y),(n))
++#define StrToUnsignedLong(x,y,n) trio_to_unsigned_long((x),(n),(y))
++#define StrToUpper(x) trio_upper(x)
++
++#endif /* TRIO_STRIO_H */
+diff -up ghostscript-9.07/trio/trio.c.gs_sprintf ghostscript-9.07/trio/trio.c
+--- ghostscript-9.07/trio/trio.c.gs_sprintf 2013-05-09 17:02:39.111447279 +0100
++++ ghostscript-9.07/trio/trio.c 2013-05-09 17:02:39.111447279 +0100
+@@ -0,0 +1,7771 @@
++/*************************************************************************
++ *
++ * $Id: trio.c,v 1.129 2009/09/20 11:37:15 breese Exp $
++ *
++ * Copyright (C) 1998, 2009 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ *************************************************************************
++ *
++ * A note to trio contributors:
++ *
++ * Avoid heap allocation at all costs to ensure that the trio functions
++ * are async-safe. The exceptions are the printf/fprintf functions, which
++ * uses fputc, and the asprintf functions and the <alloc> modifier, which
++ * by design are required to allocate form the heap.
++ *
++ ************************************************************************/
++
++/*
++ * TODO:
++ * - Scan is probably too permissive about its modifiers.
++ * - C escapes in %#[] ?
++ * - Multibyte characters (done for format parsing, except scan groups)
++ * - Complex numbers? (C99 _Complex)
++ * - Boolean values? (C99 _Bool)
++ * - C99 NaN(n-char-sequence) missing. The n-char-sequence can be used
++ * to print the mantissa, e.g. NaN(0xc000000000000000)
++ * - Should we support the GNU %a alloc modifier? GNU has an ugly hack
++ * for %a, because C99 used %a for other purposes. If specified as
++ * %as or %a[ it is interpreted as the alloc modifier, otherwise as
++ * the C99 hex-float. This means that you cannot scan %as as a hex-float
++ * immediately followed by an 's'.
++ * - Scanning of collating symbols.
++ */
++
++/*************************************************************************
++ * Trio include files
++ */
++#include "triodef.h"
++#include "trio.h"
++#include "triop.h"
++
++#if defined(TRIO_EMBED_NAN)
++# define TRIO_PUBLIC_NAN static
++# if TRIO_FEATURE_FLOAT
++# define TRIO_FUNC_NAN
++# define TRIO_FUNC_NINF
++# define TRIO_FUNC_PINF
++# define TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT
++# define TRIO_FUNC_ISINF
++# endif
++#endif
++#include "trionan.h"
++
++#if defined(TRIO_EMBED_STRING)
++# define TRIO_PUBLIC_STRING static
++# define TRIO_FUNC_LENGTH
++# define TRIO_FUNC_LENGTH_MAX
++# define TRIO_FUNC_TO_LONG
++# if TRIO_FEATURE_LOCALE
++# define TRIO_FUNC_COPY_MAX
++# endif
++# if TRIO_FEATURE_DYNAMICSTRING
++# define TRIO_FUNC_XSTRING_DUPLICATE
++# endif
++# if TRIO_EXTENSION && TRIO_FEATURE_SCANF
++# define TRIO_FUNC_EQUAL_LOCALE
++# endif
++# if TRIO_FEATURE_ERRNO
++# define TRIO_FUNC_ERROR
++# endif
++# if TRIO_FEATURE_FLOAT && TRIO_FEATURE_SCANF
++# define TRIO_FUNC_TO_DOUBLE
++# endif
++# if TRIO_FEATURE_DYNAMICSTRING
++# define TRIO_FUNC_STRING_EXTRACT
++# endif
++# if TRIO_FEATURE_DYNAMICSTRING
++# define TRIO_FUNC_STRING_TERMINATE
++# endif
++# if TRIO_FEATURE_USER_DEFINED
++# define TRIO_FUNC_DUPLICATE
++# endif
++# if TRIO_FEATURE_DYNAMICSTRING
++# define TRIO_FUNC_STRING_DESTROY
++# endif
++# if TRIO_FEATURE_USER_DEFINED
++# define TRIO_FUNC_DESTROY
++# endif
++# if TRIO_FEATURE_USER_DEFINED || (TRIO_FEATURE_FLOAT && TRIO_FEATURE_SCANF)
++# define TRIO_FUNC_EQUAL
++# endif
++# if TRIO_FEATURE_USER_DEFINED || TRIO_FEATURE_SCANF
++# define TRIO_FUNC_EQUAL_CASE
++# endif
++# if (TRIO_EXTENSION && TRIO_FEATURE_SCANF)
++# define TRIO_FUNC_EQUAL_MAX
++# endif
++# if TRIO_FEATURE_SCANF
++# define TRIO_FUNC_TO_UPPER
++# endif
++# if TRIO_FEATURE_DYNAMICSTRING
++# define TRIO_FUNC_XSTRING_APPEND_CHAR
++# endif
++#endif
++#include "triostr.h"
++
++/**************************************************************************
++ *
++ * Definitions
++ *
++ *************************************************************************/
++
++#include <limits.h>
++#if TRIO_FEATURE_FLOAT
++# include <math.h>
++# include <float.h>
++#endif
++
++#if defined(__STDC_ISO_10646__) || defined(MB_LEN_MAX) || defined(USE_MULTIBYTE) || TRIO_FEATURE_WIDECHAR
++# if !defined(TRIO_PLATFORM_WINCE)
++# define TRIO_COMPILER_SUPPORTS_MULTIBYTE
++# if !defined(MB_LEN_MAX)
++# define MB_LEN_MAX 6
++# endif
++# endif
++#endif
++
++#if (defined(TRIO_COMPILER_VISUALC) && (TRIO_COMPILER_VISUALC - 0 >= 1100)) || defined(TRIO_COMPILER_BORLAND)
++# define TRIO_COMPILER_SUPPORTS_VISUALC_INT
++#endif
++
++#if TRIO_FEATURE_FLOAT
++# if defined(PREDEF_STANDARD_C99) \
++ || defined(PREDEF_STANDARD_UNIX03)
++# if !defined(HAVE_FLOORL) && !defined(TRIO_NO_FLOORL)
++# define HAVE_FLOORL
++# endif
++# if !defined(HAVE_CEILL) && !defined(TRIO_NO_CEILL)
++# define HAVE_CEILL
++# endif
++# if !defined(HAVE_POWL) && !defined(TRIO_NO_POWL)
++# define HAVE_POWL
++# endif
++# if !defined(HAVE_FMODL) && !defined(TRIO_NO_FMODL)
++# define HAVE_FMODL
++# endif
++# if !defined(HAVE_LOG10L) && !defined(TRIO_NO_LOG10L)
++# define HAVE_LOG10L
++# endif
++# endif
++# if defined(TRIO_COMPILER_VISUALC)
++# if defined(floorl)
++# define HAVE_FLOORL
++# endif
++# if defined(ceill)
++# define HAVE_CEILL
++# endif
++# if defined(powl)
++# define HAVE_POWL
++# endif
++# if defined(fmodl)
++# define HAVE_FMODL
++# endif
++# if defined(log10l)
++# define HAVE_LOG10L
++# endif
++# endif
++#endif
++
++/*************************************************************************
++ * Generic definitions
++ */
++
++#if !(defined(DEBUG) || defined(NDEBUG))
++# define NDEBUG
++#endif
++
++#include <assert.h>
++#include <ctype.h>
++#if defined(PREDEF_STANDARD_C99) && !defined(isascii)
++# define isascii(x) ((x) & 0x7F)
++#endif
++#if defined(TRIO_COMPILER_ANCIENT)
++# include <varargs.h>
++#else
++# include <stdarg.h>
++#endif
++#include <stddef.h>
++#if defined(TRIO_PLATFORM_WINCE)
++extern int errno;
++#else
++# include <errno.h>
++#endif
++
++#ifndef NULL
++# define NULL 0
++#endif
++#define NIL ((char)0)
++#ifndef FALSE
++# define FALSE (1 == 0)
++# define TRUE (! FALSE)
++#endif
++#define BOOLEAN_T int
++
++/* mincore() can be used for debugging purposes */
++#define VALID(x) (NULL != (x))
++
++#if TRIO_FEATURE_ERRORCODE
++ /*
++ * Encode the error code and the position. This is decoded
++ * with TRIO_ERROR_CODE and TRIO_ERROR_POSITION.
++ */
++# define TRIO_ERROR_RETURN(x,y) (- ((x) + ((y) << 8)))
++#else
++# define TRIO_ERROR_RETURN(x,y) (-1)
++#endif
++
++typedef unsigned long trio_flags_t;
++
++
++/*************************************************************************
++ * Platform specific definitions
++ */
++#if defined(TRIO_PLATFORM_UNIX)
++# include <unistd.h>
++# include <signal.h>
++# include <locale.h>
++# if !defined(TRIO_FEATURE_LOCALE)
++# define USE_LOCALE
++# endif
++#endif /* TRIO_PLATFORM_UNIX */
++#if defined(TRIO_PLATFORM_VMS)
++# include <unistd.h>
++#endif
++#if defined(TRIO_PLATFORM_WIN32)
++# if defined(TRIO_PLATFORM_WINCE)
++int read(int handle, char *buffer, unsigned int length);
++int write(int handle, const char *buffer, unsigned int length);
++# else
++# include <io.h>
++# define read _read
++# define write _write
++# endif
++#endif /* TRIO_PLATFORM_WIN32 */
++
++#if TRIO_FEATURE_WIDECHAR
++# if defined(PREDEF_STANDARD_C94)
++# include <wchar.h>
++# include <wctype.h>
++typedef wchar_t trio_wchar_t;
++typedef wint_t trio_wint_t;
++# else
++typedef char trio_wchar_t;
++typedef int trio_wint_t;
++# define WCONST(x) L ## x
++# define WEOF EOF
++# define iswalnum(x) isalnum(x)
++# define iswalpha(x) isalpha(x)
++# define iswcntrl(x) iscntrl(x)
++# define iswdigit(x) isdigit(x)
++# define iswgraph(x) isgraph(x)
++# define iswlower(x) islower(x)
++# define iswprint(x) isprint(x)
++# define iswpunct(x) ispunct(x)
++# define iswspace(x) isspace(x)
++# define iswupper(x) isupper(x)
++# define iswxdigit(x) isxdigit(x)
++# endif
++#endif
++
++
++/*************************************************************************
++ * Compiler dependent definitions
++ */
++
++/* Support for long long */
++#ifndef __cplusplus
++# if !defined(USE_LONGLONG)
++# if defined(TRIO_COMPILER_GCC) && !defined(__STRICT_ANSI__)
++# define USE_LONGLONG
++# else
++# if defined(TRIO_COMPILER_SUNPRO)
++# define USE_LONGLONG
++# else
++# if defined(TRIO_COMPILER_MSVC) && (_MSC_VER >= 1400)
++# define USE_LONGLONG
++# else
++# if defined(_LONG_LONG) || defined(_LONGLONG)
++# define USE_LONGLONG
++# endif
++# endif
++# endif
++# endif
++# endif
++#endif
++
++/* The extra long numbers */
++#if defined(USE_LONGLONG)
++typedef signed long long int trio_longlong_t;
++typedef unsigned long long int trio_ulonglong_t;
++#else
++# if defined(TRIO_COMPILER_SUPPORTS_VISUALC_INT)
++typedef signed __int64 trio_longlong_t;
++typedef unsigned __int64 trio_ulonglong_t;
++# else
++typedef TRIO_SIGNED long int trio_longlong_t;
++typedef unsigned long int trio_ulonglong_t;
++# endif
++#endif
++
++/* Maximal and fixed integer types */
++#if defined(PREDEF_STANDARD_C99)
++# include <stdint.h>
++typedef intmax_t trio_intmax_t;
++typedef uintmax_t trio_uintmax_t;
++typedef int8_t trio_int8_t;
++typedef int16_t trio_int16_t;
++typedef int32_t trio_int32_t;
++typedef int64_t trio_int64_t;
++#else
++# if defined(PREDEF_STANDARD_UNIX98)
++# include <inttypes.h>
++typedef intmax_t trio_intmax_t;
++typedef uintmax_t trio_uintmax_t;
++typedef int8_t trio_int8_t;
++typedef int16_t trio_int16_t;
++typedef int32_t trio_int32_t;
++typedef int64_t trio_int64_t;
++# else
++# if defined(TRIO_COMPILER_SUPPORTS_VISUALC_INT)
++typedef trio_longlong_t trio_intmax_t;
++typedef trio_ulonglong_t trio_uintmax_t;
++typedef __int8 trio_int8_t;
++typedef __int16 trio_int16_t;
++typedef __int32 trio_int32_t;
++typedef __int64 trio_int64_t;
++# else
++typedef trio_longlong_t trio_intmax_t;
++typedef trio_ulonglong_t trio_uintmax_t;
++# if defined(TRIO_INT8_T)
++typedef TRIO_INT8_T trio_int8_t;
++# else
++typedef TRIO_SIGNED char trio_int8_t;
++# endif
++# if defined(TRIO_INT16_T)
++typedef TRIO_INT16_T trio_int16_t;
++# else
++typedef TRIO_SIGNED short trio_int16_t;
++# endif
++# if defined(TRIO_INT32_T)
++typedef TRIO_INT32_T trio_int32_t;
++# else
++typedef TRIO_SIGNED int trio_int32_t;
++# endif
++# if defined(TRIO_INT64_T)
++typedef TRIO_INT64_T trio_int64_t;
++# else
++typedef trio_longlong_t trio_int64_t;
++# endif
++# endif
++# endif
++#endif
++
++#if defined(HAVE_FLOORL)
++# define trio_floor(x) floorl((x))
++#else
++# define trio_floor(x) floor((double)(x))
++#endif
++
++#if defined(HAVE_CEILL)
++# define trio_ceil(x) ceill((x))
++#else
++# define trio_ceil(x) ceil((double)(x))
++#endif
++
++#if defined(HAVE_FMODL)
++# define trio_fmod(x,y) fmodl((x),(y))
++#else
++# define trio_fmod(x,y) fmod((double)(x),(double)(y))
++#endif
++
++#if defined(HAVE_POWL)
++# define trio_pow(x,y) powl((x),(y))
++#else
++# define trio_pow(x,y) pow((double)(x),(double)(y))
++#endif
++
++#if defined(HAVE_LOG10L)
++# define trio_log10(x) log10l((x))
++#else
++# define trio_log10(x) log10((double)(x))
++#endif
++
++#if TRIO_FEATURE_FLOAT
++# define TRIO_FABS(x) (((x) < 0.0) ? -(x) : (x))
++#endif
++
++/*************************************************************************
++ * Internal Definitions
++ */
++
++#if TRIO_FEATURE_FLOAT
++
++# if !defined(DECIMAL_DIG)
++# define DECIMAL_DIG DBL_DIG
++# endif
++
++/* Long double sizes */
++# ifdef LDBL_DIG
++# define MAX_MANTISSA_DIGITS LDBL_DIG
++# define MAX_EXPONENT_DIGITS 4
++# define MAX_DOUBLE_DIGITS LDBL_MAX_10_EXP
++# else
++# define MAX_MANTISSA_DIGITS DECIMAL_DIG
++# define MAX_EXPONENT_DIGITS 3
++# define MAX_DOUBLE_DIGITS DBL_MAX_10_EXP
++# endif
++
++# if defined(TRIO_COMPILER_ANCIENT) || !defined(LDBL_DIG)
++# undef LDBL_DIG
++# undef LDBL_MANT_DIG
++# undef LDBL_EPSILON
++# define LDBL_DIG DBL_DIG
++# define LDBL_MANT_DIG DBL_MANT_DIG
++# define LDBL_EPSILON DBL_EPSILON
++# endif
++
++#endif /* TRIO_FEATURE_FLOAT */
++
++/* The maximal number of digits is for base 2 */
++#define MAX_CHARS_IN(x) (sizeof(x) * CHAR_BIT)
++/* The width of a pointer. The number of bits in a hex digit is 4 */
++#define POINTER_WIDTH ((sizeof("0x") - 1) + sizeof(trio_pointer_t) * CHAR_BIT / 4)
++
++#if TRIO_FEATURE_FLOAT
++/* Infinite and Not-A-Number for floating-point */
++# define INFINITE_LOWER "inf"
++# define INFINITE_UPPER "INF"
++# define LONG_INFINITE_LOWER "infinite"
++# define LONG_INFINITE_UPPER "INFINITE"
++# define NAN_LOWER "nan"
++# define NAN_UPPER "NAN"
++#endif
++
++/* Various constants */
++enum {
++ TYPE_PRINT = 1,
++#if TRIO_FEATURE_SCANF
++ TYPE_SCAN = 2,
++#endif
++
++ /* Flags. FLAGS_LAST must be less than ULONG_MAX */
++ FLAGS_NEW = 0,
++ FLAGS_STICKY = 1,
++ FLAGS_SPACE = 2 * FLAGS_STICKY,
++ FLAGS_SHOWSIGN = 2 * FLAGS_SPACE,
++ FLAGS_LEFTADJUST = 2 * FLAGS_SHOWSIGN,
++ FLAGS_ALTERNATIVE = 2 * FLAGS_LEFTADJUST,
++ FLAGS_SHORT = 2 * FLAGS_ALTERNATIVE,
++ FLAGS_SHORTSHORT = 2 * FLAGS_SHORT,
++ FLAGS_LONG = 2 * FLAGS_SHORTSHORT,
++ FLAGS_QUAD = 2 * FLAGS_LONG,
++ FLAGS_LONGDOUBLE = 2 * FLAGS_QUAD,
++ FLAGS_SIZE_T = 2 * FLAGS_LONGDOUBLE,
++ FLAGS_PTRDIFF_T = 2 * FLAGS_SIZE_T,
++ FLAGS_INTMAX_T = 2 * FLAGS_PTRDIFF_T,
++ FLAGS_NILPADDING = 2 * FLAGS_INTMAX_T,
++ FLAGS_UNSIGNED = 2 * FLAGS_NILPADDING,
++ FLAGS_UPPER = 2 * FLAGS_UNSIGNED,
++ FLAGS_WIDTH = 2 * FLAGS_UPPER,
++ FLAGS_WIDTH_PARAMETER = 2 * FLAGS_WIDTH,
++ FLAGS_PRECISION = 2 * FLAGS_WIDTH_PARAMETER,
++ FLAGS_PRECISION_PARAMETER = 2 * FLAGS_PRECISION,
++ FLAGS_BASE = 2 * FLAGS_PRECISION_PARAMETER,
++ FLAGS_BASE_PARAMETER = 2 * FLAGS_BASE,
++ FLAGS_FLOAT_E = 2 * FLAGS_BASE_PARAMETER,
++ FLAGS_FLOAT_G = 2 * FLAGS_FLOAT_E,
++ FLAGS_QUOTE = 2 * FLAGS_FLOAT_G,
++ FLAGS_WIDECHAR = 2 * FLAGS_QUOTE,
++ FLAGS_IGNORE = 2 * FLAGS_WIDECHAR,
++ FLAGS_IGNORE_PARAMETER = 2 * FLAGS_IGNORE,
++ FLAGS_VARSIZE_PARAMETER = 2 * FLAGS_IGNORE_PARAMETER,
++ FLAGS_FIXED_SIZE = 2 * FLAGS_VARSIZE_PARAMETER,
++ FLAGS_LAST = FLAGS_FIXED_SIZE,
++ /* Reused flags */
++ FLAGS_EXCLUDE = FLAGS_SHORT,
++ FLAGS_USER_DEFINED = FLAGS_IGNORE,
++ FLAGS_USER_DEFINED_PARAMETER = FLAGS_IGNORE_PARAMETER,
++ FLAGS_ROUNDING = FLAGS_INTMAX_T,
++ /* Compounded flags */
++ FLAGS_ALL_VARSIZES = FLAGS_LONG | FLAGS_QUAD | FLAGS_INTMAX_T | FLAGS_PTRDIFF_T | FLAGS_SIZE_T,
++ FLAGS_ALL_SIZES = FLAGS_ALL_VARSIZES | FLAGS_SHORTSHORT | FLAGS_SHORT,
++
++ NO_POSITION = -1,
++ NO_WIDTH = 0,
++ NO_PRECISION = -1,
++ NO_SIZE = -1,
++
++ /* Do not change these */
++ NO_BASE = -1,
++ MIN_BASE = 2,
++ MAX_BASE = 36,
++ BASE_BINARY = 2,
++ BASE_OCTAL = 8,
++ BASE_DECIMAL = 10,
++ BASE_HEX = 16,
++
++ /* Maximal number of allowed parameters */
++ MAX_PARAMETERS = 64,
++ /* Maximal number of characters in class */
++ MAX_CHARACTER_CLASS = UCHAR_MAX + 1,
++
++#if TRIO_FEATURE_USER_DEFINED
++ /* Maximal string lengths for user-defined specifiers */
++ MAX_USER_NAME = 64,
++ MAX_USER_DATA = 256,
++#endif
++
++ /* Maximal length of locale separator strings */
++ MAX_LOCALE_SEPARATOR_LENGTH = MB_LEN_MAX,
++ /* Maximal number of integers in grouping */
++ MAX_LOCALE_GROUPS = 64
++};
++
++#define NO_GROUPING ((int)CHAR_MAX)
++
++/* Fundamental formatting parameter types */
++#define FORMAT_SENTINEL -1 /* marks end of parameters array */
++#define FORMAT_UNKNOWN 0
++#define FORMAT_INT 1
++#define FORMAT_DOUBLE 2
++#define FORMAT_CHAR 3
++#define FORMAT_STRING 4
++#define FORMAT_POINTER 5
++#define FORMAT_COUNT 6
++#define FORMAT_PARAMETER 7
++#define FORMAT_GROUP 8
++#define FORMAT_ERRNO 9
++#define FORMAT_USER_DEFINED 10
++
++/* Character constants */
++#define CHAR_IDENTIFIER '%'
++#define CHAR_ALT_IDENTIFIER '$'
++#define CHAR_BACKSLASH '\\'
++#define CHAR_QUOTE '\"'
++#define CHAR_ADJUST ' '
++
++#if TRIO_EXTENSION
++/* Character class expressions */
++# define CLASS_ALNUM "[:alnum:]"
++# define CLASS_ALPHA "[:alpha:]"
++# define CLASS_BLANK "[:blank:]"
++# define CLASS_CNTRL "[:cntrl:]"
++# define CLASS_DIGIT "[:digit:]"
++# define CLASS_GRAPH "[:graph:]"
++# define CLASS_LOWER "[:lower:]"
++# define CLASS_PRINT "[:print:]"
++# define CLASS_PUNCT "[:punct:]"
++# define CLASS_SPACE "[:space:]"
++# define CLASS_UPPER "[:upper:]"
++# define CLASS_XDIGIT "[:xdigit:]"
++#endif
++
++/*
++ * SPECIFIERS:
++ *
++ *
++ * a Hex-float
++ * A Hex-float
++ * c Character
++ * C Widechar character (wint_t)
++ * d Decimal
++ * e Float
++ * E Float
++ * F Float
++ * F Float
++ * g Float
++ * G Float
++ * i Integer
++ * m Error message
++ * n Count
++ * o Octal
++ * p Pointer
++ * s String
++ * S Widechar string (wchar_t *)
++ * u Unsigned
++ * x Hex
++ * X Hex
++ * [] Group
++ * <> User-defined
++ *
++ * Reserved:
++ *
++ * D Binary Coded Decimal %D(length,precision) (OS/390)
++ */
++#define SPECIFIER_CHAR 'c'
++#define SPECIFIER_STRING 's'
++#define SPECIFIER_DECIMAL 'd'
++#define SPECIFIER_INTEGER 'i'
++#define SPECIFIER_UNSIGNED 'u'
++#define SPECIFIER_OCTAL 'o'
++#define SPECIFIER_HEX 'x'
++#define SPECIFIER_HEX_UPPER 'X'
++#if TRIO_FEATURE_FLOAT
++# define SPECIFIER_FLOAT_E 'e'
++# define SPECIFIER_FLOAT_E_UPPER 'E'
++# define SPECIFIER_FLOAT_F 'f'
++# define SPECIFIER_FLOAT_F_UPPER 'F'
++# define SPECIFIER_FLOAT_G 'g'
++# define SPECIFIER_FLOAT_G_UPPER 'G'
++#endif
++#define SPECIFIER_POINTER 'p'
++#if TRIO_FEATURE_SCANF
++# define SPECIFIER_GROUP '['
++# define SPECIFIER_UNGROUP ']'
++#endif
++#define SPECIFIER_COUNT 'n'
++#if TRIO_UNIX98
++# define SPECIFIER_CHAR_UPPER 'C'
++# define SPECIFIER_STRING_UPPER 'S'
++#endif
++#define SPECIFIER_HEXFLOAT 'a'
++#define SPECIFIER_HEXFLOAT_UPPER 'A'
++#define SPECIFIER_ERRNO 'm'
++#if TRIO_FEATURE_BINARY
++# define SPECIFIER_BINARY 'b'
++# define SPECIFIER_BINARY_UPPER 'B'
++#endif
++#if TRIO_FEATURE_USER_DEFINED
++# define SPECIFIER_USER_DEFINED_BEGIN '<'
++# define SPECIFIER_USER_DEFINED_END '>'
++# define SPECIFIER_USER_DEFINED_SEPARATOR ':'
++# define SPECIFIER_USER_DEFINED_EXTRA '|'
++#endif
++
++/*
++ * QUALIFIERS:
++ *
++ *
++ * Numbers = d,i,o,u,x,X
++ * Float = a,A,e,E,f,F,g,G
++ * String = s
++ * Char = c
++ *
++ *
++ * 9$ Position
++ * Use the 9th parameter. 9 can be any number between 1 and
++ * the maximal argument
++ *
++ * 9 Width
++ * Set width to 9. 9 can be any number, but must not be postfixed
++ * by '$'
++ *
++ * h Short
++ * Numbers:
++ * (unsigned) short int
++ *
++ * hh Short short
++ * Numbers:
++ * (unsigned) char
++ *
++ * l Long
++ * Numbers:
++ * (unsigned) long int
++ * String:
++ * as the S specifier
++ * Char:
++ * as the C specifier
++ *
++ * ll Long Long
++ * Numbers:
++ * (unsigned) long long int
++ *
++ * L Long Double
++ * Float
++ * long double
++ *
++ * # Alternative
++ * Float:
++ * Decimal-point is always present
++ * String:
++ * non-printable characters are handled as \number
++ *
++ * Spacing
++ *
++ * + Sign
++ *
++ * - Alignment
++ *
++ * . Precision
++ *
++ * * Parameter
++ * print: use parameter
++ * scan: no parameter (ignore)
++ *
++ * q Quad
++ *
++ * Z size_t
++ *
++ * w Widechar
++ *
++ * ' Thousands/quote
++ * Numbers:
++ * Integer part grouped in thousands
++ * Binary numbers:
++ * Number grouped in nibbles (4 bits)
++ * String:
++ * Quoted string
++ *
++ * j intmax_t
++ * t prtdiff_t
++ * z size_t
++ *
++ * ! Sticky
++ * @ Parameter (for both print and scan)
++ *
++ * I n-bit Integer
++ * Numbers:
++ * The following options exists
++ * I8 = 8-bit integer
++ * I16 = 16-bit integer
++ * I32 = 32-bit integer
++ * I64 = 64-bit integer
++ */
++#define QUALIFIER_POSITION '$'
++#define QUALIFIER_SHORT 'h'
++#define QUALIFIER_LONG 'l'
++#define QUALIFIER_LONG_UPPER 'L'
++#define QUALIFIER_ALTERNATIVE '#'
++#define QUALIFIER_SPACE ' '
++#define QUALIFIER_PLUS '+'
++#define QUALIFIER_MINUS '-'
++#define QUALIFIER_DOT '.'
++#define QUALIFIER_STAR '*'
++#define QUALIFIER_CIRCUMFLEX '^' /* For scanlists */
++#define QUALIFIER_SIZE_T 'z'
++#define QUALIFIER_PTRDIFF_T 't'
++#define QUALIFIER_INTMAX_T 'j'
++#define QUALIFIER_QUAD 'q'
++#define QUALIFIER_SIZE_T_UPPER 'Z'
++#if TRIO_MISC
++# define QUALIFIER_WIDECHAR 'w'
++#endif
++#define QUALIFIER_FIXED_SIZE 'I'
++#define QUALIFIER_QUOTE '\''
++#define QUALIFIER_STICKY '!'
++#define QUALIFIER_VARSIZE '&' /* This should remain undocumented */
++#define QUALIFIER_ROUNDING_UPPER 'R'
++#if TRIO_EXTENSION
++# define QUALIFIER_PARAM '@' /* Experimental */
++# define QUALIFIER_COLON ':' /* For scanlists */
++# define QUALIFIER_EQUAL '=' /* For scanlists */
++#endif
++
++
++/*************************************************************************
++ *
++ * Internal Structures
++ *
++ *************************************************************************/
++
++/* Parameters */
++typedef struct {
++ /* An indication of which entry in the data union is used */
++ int type;
++ /* The flags */
++ trio_flags_t flags;
++ /* The width qualifier */
++ int width;
++ /* The precision qualifier */
++ int precision;
++ /* The base qualifier */
++ int base;
++ /* Base from specifier */
++ int baseSpecifier;
++ /* The size for the variable size qualifier */
++ int varsize;
++ /* Offset of the first character of the specifier */
++ int beginOffset;
++ /* Offset of the first character after the specifier */
++ int endOffset;
++ /* Position in the argument list that this parameter refers to */
++ int position;
++ /* The data from the argument list */
++ union {
++ char *string;
++#if TRIO_FEATURE_WIDECHAR
++ trio_wchar_t *wstring;
++#endif
++ trio_pointer_t pointer;
++ union {
++ trio_intmax_t as_signed;
++ trio_uintmax_t as_unsigned;
++ } number;
++#if TRIO_FEATURE_FLOAT
++ double doubleNumber;
++ double *doublePointer;
++ trio_long_double_t longdoubleNumber;
++ trio_long_double_t *longdoublePointer;
++#endif
++ int errorNumber;
++ } data;
++#if TRIO_FEATURE_USER_DEFINED
++ /* For the user-defined specifier */
++ union {
++ char namespace[MAX_USER_NAME];
++ int handler; /* if flags & FLAGS_USER_DEFINED_PARAMETER */
++ } user_defined;
++ char user_data[MAX_USER_DATA];
++#endif
++} trio_parameter_t;
++
++/* Container for customized functions */
++typedef struct {
++ union {
++ trio_outstream_t out;
++ trio_instream_t in;
++ } stream;
++ trio_pointer_t closure;
++} trio_custom_t;
++
++/* General trio "class" */
++typedef struct _trio_class_t {
++ /*
++ * The function to write characters to a stream.
++ */
++ void (*OutStream) TRIO_PROTO((struct _trio_class_t *, int));
++ /*
++ * The function to read characters from a stream.
++ */
++ void (*InStream) TRIO_PROTO((struct _trio_class_t *, int *));
++ /*
++ * The function to undo read characters from a stream.
++ */
++ void (*UndoStream) TRIO_PROTO((struct _trio_class_t *));
++ /*
++ * The current location in the stream.
++ */
++ trio_pointer_t location;
++ /*
++ * The character currently being processed.
++ */
++ int current;
++ /*
++ * The number of characters that would have been written/read
++ * if there had been sufficient space.
++ */
++ int processed;
++ union {
++ /*
++ * The number of characters that are actually written. Processed and
++ * committed will only differ for the *nprintf functions.
++ */
++ int committed;
++ /*
++ * The number of look-ahead characters read.
++ */
++ int cached;
++ } actually;
++ /*
++ * The upper limit of characters that may be written/read.
++ */
++ int max;
++ /*
++ * The last output error that was detected.
++ */
++ int error;
++} trio_class_t;
++
++/* References (for user-defined callbacks) */
++typedef struct _trio_reference_t {
++ trio_class_t *data;
++ trio_parameter_t *parameter;
++} trio_reference_t;
++
++#if TRIO_FEATURE_USER_DEFINED
++/* Registered entries (for user-defined callbacks) */
++typedef struct _trio_userdef_t {
++ struct _trio_userdef_t *next;
++ trio_callback_t callback;
++ char *name;
++} trio_userdef_t;
++#endif
++
++/*************************************************************************
++ *
++ * Internal Variables
++ *
++ *************************************************************************/
++
++static TRIO_CONST char rcsid[] = "@(#)$Id: trio.c,v 1.129 2009/09/20 11:37:15 breese Exp $";
++
++#if TRIO_FEATURE_FLOAT
++/*
++ * Need this to workaround a parser bug in HP C/iX compiler that fails
++ * to resolves macro definitions that includes type 'long double',
++ * e.g: va_arg(arg_ptr, long double)
++ */
++# if defined(TRIO_PLATFORM_MPEIX)
++static TRIO_CONST trio_long_double_t ___dummy_long_double = 0;
++# endif
++#endif
++
++static TRIO_CONST char internalNullString[] = "(nil)";
++
++#if defined(USE_LOCALE)
++static struct lconv *internalLocaleValues = NULL;
++#endif
++
++/*
++ * UNIX98 says "in a locale where the radix character is not defined,
++ * the radix character defaults to a period (.)"
++ */
++#if TRIO_FEATURE_FLOAT || TRIO_FEATURE_LOCALE || defined(USE_LOCALE)
++static int internalDecimalPointLength = 1;
++static char internalDecimalPoint = '.';
++static char internalDecimalPointString[MAX_LOCALE_SEPARATOR_LENGTH + 1] = ".";
++#endif
++#if TRIO_FEATURE_QUOTE || TRIO_FEATURE_LOCALE || TRIO_EXTENSION
++static int internalThousandSeparatorLength = 1;
++static char internalThousandSeparator[MAX_LOCALE_SEPARATOR_LENGTH + 1] = ",";
++static char internalGrouping[MAX_LOCALE_GROUPS] = { (char)NO_GROUPING };
++#endif
++
++static TRIO_CONST char internalDigitsLower[] = "0123456789abcdefghijklmnopqrstuvwxyz";
++static TRIO_CONST char internalDigitsUpper[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
++#if TRIO_FEATURE_SCANF
++static BOOLEAN_T internalDigitsUnconverted = TRUE;
++static int internalDigitArray[128];
++# if TRIO_EXTENSION
++static BOOLEAN_T internalCollationUnconverted = TRUE;
++static char internalCollationArray[MAX_CHARACTER_CLASS][MAX_CHARACTER_CLASS];
++# endif
++#endif
++
++#if TRIO_FEATURE_USER_DEFINED
++static TRIO_VOLATILE trio_callback_t internalEnterCriticalRegion = NULL;
++static TRIO_VOLATILE trio_callback_t internalLeaveCriticalRegion = NULL;
++static trio_userdef_t *internalUserDef = NULL;
++#endif
++
++
++/*************************************************************************
++ *
++ * Internal Functions
++ *
++ ************************************************************************/
++
++#if defined(TRIO_EMBED_NAN)
++# include "trionan.c"
++#endif
++
++#if defined(TRIO_EMBED_STRING)
++# include "triostr.c"
++#endif
++
++/*************************************************************************
++ * TrioInitializeParameter
++ *
++ * Description:
++ * Initialize a trio_parameter_t struct.
++ */
++TRIO_PRIVATE void
++TrioInitializeParameter
++TRIO_ARGS1((parameter),
++ trio_parameter_t *parameter)
++{
++ parameter->type = FORMAT_UNKNOWN;
++ parameter->flags = 0;
++ parameter->width = 0;
++ parameter->precision = 0;
++ parameter->base = 0;
++ parameter->baseSpecifier = 0;
++ parameter->varsize = 0;
++ parameter->beginOffset = 0;
++ parameter->endOffset = 0;
++ parameter->position = 0;
++ parameter->data.pointer = 0;
++#if TRIO_FEATURE_USER_DEFINED
++ parameter->user_defined.handler = 0;
++ parameter->user_data[0] = 0;
++#endif
++}
++
++/*************************************************************************
++ * TrioCopyParameter
++ *
++ * Description:
++ * Copies one trio_parameter_t struct to another.
++ */
++TRIO_PRIVATE void
++TrioCopyParameter
++TRIO_ARGS2((target, source),
++ trio_parameter_t *target,
++ TRIO_CONST trio_parameter_t *source)
++{
++#if TRIO_FEATURE_USER_DEFINED
++ size_t i;
++#endif
++
++ target->type = source->type;
++ target->flags = source->flags;
++ target->width = source->width;
++ target->precision = source->precision;
++ target->base = source->base;
++ target->baseSpecifier = source->baseSpecifier;
++ target->varsize = source->varsize;
++ target->beginOffset = source->beginOffset;
++ target->endOffset = source->endOffset;
++ target->position = source->position;
++ target->data = source->data;
++
++#if TRIO_FEATURE_USER_DEFINED
++ target->user_defined = source->user_defined;
++
++ for (i = 0U; i < sizeof(target->user_data); ++i)
++ {
++ if ((target->user_data[i] = source->user_data[i]) == NIL)
++ break;
++ }
++#endif
++}
++
++/*************************************************************************
++ * TrioIsQualifier
++ *
++ * Description:
++ * Remember to add all new qualifiers to this function.
++ * QUALIFIER_POSITION must not be added.
++ */
++TRIO_PRIVATE BOOLEAN_T
++TrioIsQualifier
++TRIO_ARGS1((character),
++ TRIO_CONST char character)
++{
++ /* QUALIFIER_POSITION is not included */
++ switch (character)
++ {
++ case '0': case '1': case '2': case '3': case '4':
++ case '5': case '6': case '7': case '8': case '9':
++ case QUALIFIER_PLUS:
++ case QUALIFIER_MINUS:
++ case QUALIFIER_SPACE:
++ case QUALIFIER_DOT:
++ case QUALIFIER_STAR:
++ case QUALIFIER_ALTERNATIVE:
++ case QUALIFIER_SHORT:
++ case QUALIFIER_LONG:
++ case QUALIFIER_CIRCUMFLEX:
++ case QUALIFIER_LONG_UPPER:
++ case QUALIFIER_SIZE_T:
++ case QUALIFIER_PTRDIFF_T:
++ case QUALIFIER_INTMAX_T:
++ case QUALIFIER_QUAD:
++ case QUALIFIER_SIZE_T_UPPER:
++#if defined(QUALIFIER_WIDECHAR)
++ case QUALIFIER_WIDECHAR:
++#endif
++ case QUALIFIER_QUOTE:
++ case QUALIFIER_STICKY:
++ case QUALIFIER_VARSIZE:
++#if defined(QUALIFIER_PARAM)
++ case QUALIFIER_PARAM:
++#endif
++ case QUALIFIER_FIXED_SIZE:
++ case QUALIFIER_ROUNDING_UPPER:
++ return TRUE;
++ default:
++ return FALSE;
++ }
++}
++
++/*************************************************************************
++ * TrioSetLocale
++ */
++#if defined(USE_LOCALE)
++TRIO_PRIVATE void
++TrioSetLocale(TRIO_NOARGS)
++{
++ internalLocaleValues = (struct lconv *)localeconv();
++ if (internalLocaleValues)
++ {
++ if ((internalLocaleValues->decimal_point) &&
++ (internalLocaleValues->decimal_point[0] != NIL))
++ {
++ internalDecimalPointLength = trio_length(internalLocaleValues->decimal_point);
++ if (internalDecimalPointLength == 1)
++ {
++ internalDecimalPoint = internalLocaleValues->decimal_point[0];
++ }
++ else
++ {
++ internalDecimalPoint = NIL;
++ trio_copy_max(internalDecimalPointString,
++ sizeof(internalDecimalPointString),
++ internalLocaleValues->decimal_point);
++ }
++ }
++# if TRIO_EXTENSION
++ if ((internalLocaleValues->thousands_sep) &&
++ (internalLocaleValues->thousands_sep[0] != NIL))
++ {
++ trio_copy_max(internalThousandSeparator,
++ sizeof(internalThousandSeparator),
++ internalLocaleValues->thousands_sep);
++ internalThousandSeparatorLength = trio_length(internalThousandSeparator);
++ }
++# endif
++# if TRIO_EXTENSION
++ if ((internalLocaleValues->grouping) &&
++ (internalLocaleValues->grouping[0] != NIL))
++ {
++ trio_copy_max(internalGrouping,
++ sizeof(internalGrouping),
++ internalLocaleValues->grouping);
++ }
++# endif
++ }
++}
++#endif /* defined(USE_LOCALE) */
++
++#if TRIO_FEATURE_FLOAT && TRIO_FEATURE_QUOTE
++TRIO_PRIVATE int
++TrioCalcThousandSeparatorLength
++TRIO_ARGS1((digits),
++ int digits)
++{
++ int count = 0;
++ int step = NO_GROUPING;
++ char *groupingPointer = internalGrouping;
++
++ while (digits > 0)
++ {
++ if (*groupingPointer == CHAR_MAX)
++ {
++ /* Disable grouping */
++ break; /* while */
++ }
++ else if (*groupingPointer == 0)
++ {
++ /* Repeat last group */
++ if (step == NO_GROUPING)
++ {
++ /* Error in locale */
++ break; /* while */
++ }
++ }
++ else
++ {
++ step = *groupingPointer++;
++ }
++ if (digits > step)
++ count += internalThousandSeparatorLength;
++ digits -= step;
++ }
++ return count;
++}
++#endif /* TRIO_FEATURE_FLOAT && TRIO_FEATURE_QUOTE */
++
++#if TRIO_FEATURE_QUOTE
++TRIO_PRIVATE BOOLEAN_T
++TrioFollowedBySeparator
++TRIO_ARGS1((position),
++ int position)
++{
++ int step = 0;
++ char *groupingPointer = internalGrouping;
++
++ position--;
++ if (position == 0)
++ return FALSE;
++ while (position > 0)
++ {
++ if (*groupingPointer == CHAR_MAX)
++ {
++ /* Disable grouping */
++ break; /* while */
++ }
++ else if (*groupingPointer != 0)
++ {
++ step = *groupingPointer++;
++ }
++ if (step == 0)
++ break;
++ position -= step;
++ }
++ return (position == 0);
++}
++#endif /* TRIO_FEATURE_QUOTE */
++
++/*************************************************************************
++ * TrioGetPosition
++ *
++ * Get the %n$ position.
++ */
++TRIO_PRIVATE int
++TrioGetPosition
++TRIO_ARGS2((format, offsetPointer),
++ TRIO_CONST char *format,
++ int *offsetPointer)
++{
++#if TRIO_FEATURE_POSITIONAL
++ char *tmpformat;
++ int number = 0;
++ int offset = *offsetPointer;
++
++ number = (int)trio_to_long(&format[offset], &tmpformat, BASE_DECIMAL);
++ offset = (int)(tmpformat - format);
++ if ((number != 0) && (QUALIFIER_POSITION == format[offset++]))
++ {
++ *offsetPointer = offset;
++ /*
++ * number is decreased by 1, because n$ starts from 1, whereas
++ * the array it is indexing starts from 0.
++ */
++ return number - 1;
++ }
++#endif
++ return NO_POSITION;
++}
++
++/*************************************************************************
++ * TrioFindNamespace
++ *
++ * Find registered user-defined specifier.
++ * The prev argument is used for optimization only.
++ */
++#if TRIO_FEATURE_USER_DEFINED
++TRIO_PRIVATE trio_userdef_t *
++TrioFindNamespace
++TRIO_ARGS2((name, prev),
++ TRIO_CONST char *name,
++ trio_userdef_t **prev)
++{
++ trio_userdef_t *def;
++
++ if (internalEnterCriticalRegion)
++ (void)internalEnterCriticalRegion(NULL);
++
++ for (def = internalUserDef; def; def = def->next)
++ {
++ /* Case-sensitive string comparison */
++ if (trio_equal_case(def->name, name))
++ break;
++
++ if (prev)
++ *prev = def;
++ }
++
++ if (internalLeaveCriticalRegion)
++ (void)internalLeaveCriticalRegion(NULL);
++
++ return def;
++}
++#endif
++
++/*************************************************************************
++ * TrioPower
++ *
++ * Description:
++ * Calculate pow(base, exponent), where number and exponent are integers.
++ */
++#if TRIO_FEATURE_FLOAT
++TRIO_PRIVATE trio_long_double_t
++TrioPower
++TRIO_ARGS2((number, exponent),
++ int number,
++ int exponent)
++{
++ trio_long_double_t result;
++
++ if (number == 10)
++ {
++ switch (exponent)
++ {
++ /* Speed up calculation of common cases */
++ case 0:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E-1);
++ break;
++ case 1:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+0);
++ break;
++ case 2:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+1);
++ break;
++ case 3:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+2);
++ break;
++ case 4:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+3);
++ break;
++ case 5:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+4);
++ break;
++ case 6:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+5);
++ break;
++ case 7:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+6);
++ break;
++ case 8:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+7);
++ break;
++ case 9:
++ result = (trio_long_double_t)number * TRIO_SUFFIX_LONG(1E+8);
++ break;
++ default:
++ result = trio_pow((trio_long_double_t)number,
++ (trio_long_double_t)exponent);
++ break;
++ }
++ }
++ else
++ {
++ return trio_pow((trio_long_double_t)number,
++ (trio_long_double_t)exponent);
++ }
++ return result;
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * TrioLogarithm
++ */
++#if TRIO_FEATURE_FLOAT
++TRIO_PRIVATE trio_long_double_t
++TrioLogarithm
++TRIO_ARGS2((number, base),
++ trio_long_double_t number,
++ int base)
++{
++ trio_long_double_t result;
++
++ if (number <= 0.0)
++ {
++ /* xlC crashes on log(0) */
++ result = (number == 0.0) ? trio_ninf() : trio_nan();
++ }
++ else
++ {
++ if (base == 10)
++ {
++ result = trio_log10(number);
++ }
++ else
++ {
++ result = trio_log10(number) / trio_log10((double)base);
++ }
++ }
++ return result;
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * TrioLogarithmBase
++ */
++#if TRIO_FEATURE_FLOAT
++TRIO_PRIVATE double
++TrioLogarithmBase
++TRIO_ARGS1((base),
++ int base)
++{
++ switch (base)
++ {
++ case BASE_BINARY : return 1.0;
++ case BASE_OCTAL : return 3.0;
++ case BASE_DECIMAL: return 3.321928094887362345;
++ case BASE_HEX : return 4.0;
++ default : return TrioLogarithm((double)base, 2);
++ }
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * TrioParseQualifiers
++ *
++ * Description:
++ * Parse the qualifiers of a potential conversion specifier
++ */
++TRIO_PRIVATE int
++TrioParseQualifiers
++TRIO_ARGS4((type, format, offset, parameter),
++ int type,
++ TRIO_CONST char *format,
++ int offset,
++ trio_parameter_t *parameter)
++{
++ char ch;
++ int dots = 0; /* Count number of dots in modifier part */
++ char *tmpformat;
++
++ parameter->beginOffset = offset - 1;
++ parameter->flags = FLAGS_NEW;
++ parameter->position = TrioGetPosition(format, &offset);
++
++ /* Default values */
++ parameter->width = NO_WIDTH;
++ parameter->precision = NO_PRECISION;
++ parameter->base = NO_BASE;
++ parameter->varsize = NO_SIZE;
++
++ while (TrioIsQualifier(format[offset]))
++ {
++ ch = format[offset++];
++
++ switch (ch)
++ {
++ case QUALIFIER_SPACE:
++ parameter->flags |= FLAGS_SPACE;
++ break;
++
++ case QUALIFIER_PLUS:
++ parameter->flags |= FLAGS_SHOWSIGN;
++ break;
++
++ case QUALIFIER_MINUS:
++ parameter->flags |= FLAGS_LEFTADJUST;
++ parameter->flags &= ~FLAGS_NILPADDING;
++ break;
++
++ case QUALIFIER_ALTERNATIVE:
++ parameter->flags |= FLAGS_ALTERNATIVE;
++ break;
++
++ case QUALIFIER_DOT:
++ if (dots == 0) /* Precision */
++ {
++ dots++;
++
++ /* Skip if no precision */
++ if (QUALIFIER_DOT == format[offset])
++ break;
++
++ /* After the first dot we have the precision */
++ parameter->flags |= FLAGS_PRECISION;
++ if ((QUALIFIER_STAR == format[offset])
++#if defined(QUALIFIER_PARAM)
++ || (QUALIFIER_PARAM == format[offset])
++#endif
++ )
++ {
++ offset++;
++ parameter->flags |= FLAGS_PRECISION_PARAMETER;
++ parameter->precision = TrioGetPosition(format, &offset);
++ }
++ else
++ {
++ parameter->precision = trio_to_long(&format[offset],
++ &tmpformat,
++ BASE_DECIMAL);
++ offset = (int)(tmpformat - format);
++ }
++ }
++ else if (dots == 1) /* Base */
++ {
++ dots++;
++
++ /* After the second dot we have the base */
++ parameter->flags |= FLAGS_BASE;
++ if ((QUALIFIER_STAR == format[offset])
++#if defined(QUALIFIER_PARAM)
++ || (QUALIFIER_PARAM == format[offset])
++#endif
++ )
++ {
++ offset++;
++ parameter->flags |= FLAGS_BASE_PARAMETER;
++ parameter->base = TrioGetPosition(format, &offset);
++ }
++ else
++ {
++ parameter->base = trio_to_long(&format[offset],
++ &tmpformat,
++ BASE_DECIMAL);
++ if (parameter->base > MAX_BASE)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ offset = (int)(tmpformat - format);
++ }
++ }
++ else
++ {
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ }
++ break; /* QUALIFIER_DOT */
++
++#if defined(QUALIFIER_PARAM)
++ case QUALIFIER_PARAM:
++ parameter->type = TYPE_PRINT;
++ /* FALLTHROUGH */
++#endif
++ case QUALIFIER_STAR:
++ /* This has different meanings for print and scan */
++ if (TYPE_PRINT == type)
++ {
++ /* Read with from parameter */
++ int width = TrioGetPosition(format, &offset);
++ parameter->flags |= (FLAGS_WIDTH | FLAGS_WIDTH_PARAMETER);
++ if (NO_POSITION != width)
++ parameter->width = width;
++ /* else keep parameter->width = NO_WIDTH which != NO_POSITION */
++ }
++#if TRIO_FEATURE_SCANF
++ else
++ {
++ /* Scan, but do not store result */
++ parameter->flags |= FLAGS_IGNORE;
++ }
++#endif
++ break; /* QUALIFIER_STAR */
++
++ case '0':
++ if (! (parameter->flags & FLAGS_LEFTADJUST))
++ parameter->flags |= FLAGS_NILPADDING;
++ /* FALLTHROUGH */
++ case '1': case '2': case '3': case '4':
++ case '5': case '6': case '7': case '8': case '9':
++ parameter->flags |= FLAGS_WIDTH;
++ /*
++ * &format[offset - 1] is used to "rewind" the read
++ * character from format
++ */
++ parameter->width = trio_to_long(&format[offset - 1],
++ &tmpformat,
++ BASE_DECIMAL);
++ offset = (int)(tmpformat - format);
++ break;
++
++ case QUALIFIER_SHORT:
++ if (parameter->flags & FLAGS_SHORTSHORT)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ else if (parameter->flags & FLAGS_SHORT)
++ parameter->flags |= FLAGS_SHORTSHORT;
++ else
++ parameter->flags |= FLAGS_SHORT;
++ break;
++
++ case QUALIFIER_LONG:
++ if (parameter->flags & FLAGS_QUAD)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ else if (parameter->flags & FLAGS_LONG)
++ parameter->flags |= FLAGS_QUAD;
++ else
++ parameter->flags |= FLAGS_LONG;
++ break;
++
++#if TRIO_FEATURE_LONGDOUBLE
++ case QUALIFIER_LONG_UPPER:
++ parameter->flags |= FLAGS_LONGDOUBLE;
++ break;
++#endif
++
++#if TRIO_FEATURE_SIZE_T
++ case QUALIFIER_SIZE_T:
++ parameter->flags |= FLAGS_SIZE_T;
++ /* Modify flags for later truncation of number */
++ if (sizeof(size_t) == sizeof(trio_ulonglong_t))
++ parameter->flags |= FLAGS_QUAD;
++ else if (sizeof(size_t) == sizeof(long))
++ parameter->flags |= FLAGS_LONG;
++ break;
++#endif
++
++#if TRIO_FEATURE_PTRDIFF_T
++ case QUALIFIER_PTRDIFF_T:
++ parameter->flags |= FLAGS_PTRDIFF_T;
++ if (sizeof(ptrdiff_t) == sizeof(trio_ulonglong_t))
++ parameter->flags |= FLAGS_QUAD;
++ else if (sizeof(ptrdiff_t) == sizeof(long))
++ parameter->flags |= FLAGS_LONG;
++ break;
++#endif
++
++#if TRIO_FEATURE_INTMAX_T
++ case QUALIFIER_INTMAX_T:
++ parameter->flags |= FLAGS_INTMAX_T;
++ if (sizeof(trio_intmax_t) == sizeof(trio_ulonglong_t))
++ parameter->flags |= FLAGS_QUAD;
++ else if (sizeof(trio_intmax_t) == sizeof(long))
++ parameter->flags |= FLAGS_LONG;
++ break;
++#endif
++
++#if TRIO_FEATURE_QUAD
++ case QUALIFIER_QUAD:
++ parameter->flags |= FLAGS_QUAD;
++ break;
++#endif
++
++#if TRIO_FEATURE_FIXED_SIZE
++ case QUALIFIER_FIXED_SIZE:
++ if (parameter->flags & FLAGS_FIXED_SIZE)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++
++ if (parameter->flags & (FLAGS_ALL_SIZES |
++ FLAGS_LONGDOUBLE |
++ FLAGS_WIDECHAR |
++ FLAGS_VARSIZE_PARAMETER))
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++
++ if ((format[offset] == '6') &&
++ (format[offset + 1] == '4'))
++ {
++ parameter->varsize = sizeof(trio_int64_t);
++ offset += 2;
++ }
++ else if ((format[offset] == '3') &&
++ (format[offset + 1] == '2'))
++ {
++ parameter->varsize = sizeof(trio_int32_t);
++ offset += 2;
++ }
++ else if ((format[offset] == '1') &&
++ (format[offset + 1] == '6'))
++ {
++ parameter->varsize = sizeof(trio_int16_t);
++ offset += 2;
++ }
++ else if (format[offset] == '8')
++ {
++ parameter->varsize = sizeof(trio_int8_t);
++ offset++;
++ }
++ else
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++
++ parameter->flags |= FLAGS_FIXED_SIZE;
++ break;
++#endif /* TRIO_FEATURE_FIXED_SIZE */
++
++#if defined(QUALIFIER_WIDECHAR)
++ case QUALIFIER_WIDECHAR:
++ parameter->flags |= FLAGS_WIDECHAR;
++ break;
++#endif
++
++#if TRIO_FEATURE_SIZE_T_UPPER
++ case QUALIFIER_SIZE_T_UPPER:
++ break;
++#endif
++
++#if TRIO_FEATURE_QUOTE
++ case QUALIFIER_QUOTE:
++ parameter->flags |= FLAGS_QUOTE;
++ break;
++#endif
++
++#if TRIO_FEATURE_STICKY
++ case QUALIFIER_STICKY:
++ parameter->flags |= FLAGS_STICKY;
++ break;
++#endif
++
++#if TRIO_FEATURE_VARSIZE
++ case QUALIFIER_VARSIZE:
++ parameter->flags |= FLAGS_VARSIZE_PARAMETER;
++ break;
++#endif
++
++#if TRIO_FEATURE_ROUNDING
++ case QUALIFIER_ROUNDING_UPPER:
++ parameter->flags |= FLAGS_ROUNDING;
++ break;
++#endif
++
++ default:
++ /* Bail out completely to make the error more obvious */
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ }
++ } /* while qualifier */
++
++ parameter->endOffset = offset;
++
++ return 0;
++}
++
++/*************************************************************************
++ * TrioParseSpecifier
++ *
++ * Description:
++ * Parse the specifier part of a potential conversion specifier
++ */
++TRIO_PRIVATE int
++TrioParseSpecifier
++TRIO_ARGS4((type, format, offset, parameter),
++ int type,
++ TRIO_CONST char *format,
++ int offset,
++ trio_parameter_t *parameter)
++{
++ parameter->baseSpecifier = NO_BASE;
++
++ switch (format[offset++])
++ {
++#if defined(SPECIFIER_CHAR_UPPER)
++ case SPECIFIER_CHAR_UPPER:
++ parameter->flags |= FLAGS_WIDECHAR;
++ /* FALLTHROUGH */
++#endif
++ case SPECIFIER_CHAR:
++ if (parameter->flags & FLAGS_LONG)
++ parameter->flags |= FLAGS_WIDECHAR;
++ else if (parameter->flags & FLAGS_SHORT)
++ parameter->flags &= ~FLAGS_WIDECHAR;
++ parameter->type = FORMAT_CHAR;
++ break;
++
++#if defined(SPECIFIER_STRING_UPPER)
++ case SPECIFIER_STRING_UPPER:
++ parameter->flags |= FLAGS_WIDECHAR;
++ /* FALLTHROUGH */
++#endif
++ case SPECIFIER_STRING:
++ if (parameter->flags & FLAGS_LONG)
++ parameter->flags |= FLAGS_WIDECHAR;
++ else if (parameter->flags & FLAGS_SHORT)
++ parameter->flags &= ~FLAGS_WIDECHAR;
++ parameter->type = FORMAT_STRING;
++ break;
++
++#if defined(SPECIFIER_GROUP)
++ case SPECIFIER_GROUP:
++ if (TYPE_SCAN == type)
++ {
++ int depth = 1;
++ parameter->type = FORMAT_GROUP;
++ if (format[offset] == QUALIFIER_CIRCUMFLEX)
++ offset++;
++ if (format[offset] == SPECIFIER_UNGROUP)
++ offset++;
++ if (format[offset] == QUALIFIER_MINUS)
++ offset++;
++ /* Skip nested brackets */
++ while (format[offset] != NIL)
++ {
++ if (format[offset] == SPECIFIER_GROUP)
++ {
++ depth++;
++ }
++ else if (format[offset] == SPECIFIER_UNGROUP)
++ {
++ if (--depth <= 0)
++ {
++ offset++;
++ break;
++ }
++ }
++ offset++;
++ }
++ }
++ break;
++#endif /* defined(SPECIFIER_GROUP) */
++
++ case SPECIFIER_INTEGER:
++ parameter->type = FORMAT_INT;
++ break;
++
++ case SPECIFIER_UNSIGNED:
++ parameter->flags |= FLAGS_UNSIGNED;
++ parameter->type = FORMAT_INT;
++ break;
++
++ case SPECIFIER_DECIMAL:
++ parameter->baseSpecifier = BASE_DECIMAL;
++ parameter->type = FORMAT_INT;
++ break;
++
++ case SPECIFIER_OCTAL:
++ parameter->flags |= FLAGS_UNSIGNED;
++ parameter->baseSpecifier = BASE_OCTAL;
++ parameter->type = FORMAT_INT;
++ break;
++
++#if TRIO_FEATURE_BINARY
++ case SPECIFIER_BINARY_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++ case SPECIFIER_BINARY:
++ parameter->flags |= FLAGS_NILPADDING;
++ parameter->baseSpecifier = BASE_BINARY;
++ parameter->type = FORMAT_INT;
++ break;
++#endif
++
++ case SPECIFIER_HEX_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++ case SPECIFIER_HEX:
++ parameter->flags |= FLAGS_UNSIGNED;
++ parameter->baseSpecifier = BASE_HEX;
++ parameter->type = FORMAT_INT;
++ break;
++
++#if defined(SPECIFIER_FLOAT_E)
++# if defined(SPECIFIER_FLOAT_E_UPPER)
++ case SPECIFIER_FLOAT_E_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++# endif
++ case SPECIFIER_FLOAT_E:
++ parameter->flags |= FLAGS_FLOAT_E;
++ parameter->type = FORMAT_DOUBLE;
++ break;
++#endif
++
++#if defined(SPECIFIER_FLOAT_G)
++# if defined(SPECIFIER_FLOAT_G_UPPER)
++ case SPECIFIER_FLOAT_G_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++# endif
++ case SPECIFIER_FLOAT_G:
++ parameter->flags |= FLAGS_FLOAT_G;
++ parameter->type = FORMAT_DOUBLE;
++ break;
++#endif
++
++#if defined(SPECIFIER_FLOAT_F)
++# if defined(SPECIFIER_FLOAT_F_UPPER)
++ case SPECIFIER_FLOAT_F_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++# endif
++ case SPECIFIER_FLOAT_F:
++ parameter->type = FORMAT_DOUBLE;
++ break;
++#endif
++
++#if defined(TRIO_COMPILER_VISUALC)
++# pragma warning( push )
++# pragma warning( disable : 4127 ) /* Conditional expression is constant */
++#endif
++ case SPECIFIER_POINTER:
++ if (sizeof(trio_pointer_t) == sizeof(trio_ulonglong_t))
++ parameter->flags |= FLAGS_QUAD;
++ else if (sizeof(trio_pointer_t) == sizeof(long))
++ parameter->flags |= FLAGS_LONG;
++ parameter->type = FORMAT_POINTER;
++ break;
++#if defined(TRIO_COMPILER_VISUALC)
++# pragma warning( pop )
++#endif
++
++ case SPECIFIER_COUNT:
++ parameter->type = FORMAT_COUNT;
++ break;
++
++#if TRIO_FEATURE_HEXFLOAT
++ case SPECIFIER_HEXFLOAT_UPPER:
++ parameter->flags |= FLAGS_UPPER;
++ /* FALLTHROUGH */
++ case SPECIFIER_HEXFLOAT:
++ parameter->baseSpecifier = BASE_HEX;
++ parameter->type = FORMAT_DOUBLE;
++ break;
++#endif
++
++#if TRIO_FEATURE_ERRNO
++ case SPECIFIER_ERRNO:
++ parameter->type = FORMAT_ERRNO;
++ break;
++#endif
++
++#if TRIO_FEATURE_USER_DEFINED
++ case SPECIFIER_USER_DEFINED_BEGIN:
++ {
++ unsigned int max;
++ int without_namespace = TRUE;
++ char* tmpformat = (char *)&format[offset];
++ int ch;
++
++ parameter->type = FORMAT_USER_DEFINED;
++ parameter->user_defined.namespace[0] = NIL;
++
++ while ((ch = format[offset]) != NIL)
++ {
++ offset++;
++ if ((ch == SPECIFIER_USER_DEFINED_END) || (ch == SPECIFIER_USER_DEFINED_EXTRA))
++ {
++ if (without_namespace)
++ /* No namespace, handler will be passed as an argument */
++ parameter->flags |= FLAGS_USER_DEFINED_PARAMETER;
++
++ /* Copy the user data */
++ max = (unsigned int)(&format[offset] - tmpformat);
++ if (max > MAX_USER_DATA)
++ max = MAX_USER_DATA;
++ trio_copy_max(parameter->user_data, max, tmpformat);
++
++ /* Skip extra data (which is only there to keep the compiler happy) */
++ while ((ch != NIL) && (ch != SPECIFIER_USER_DEFINED_END))
++ ch = format[offset++];
++
++ break; /* while */
++ }
++
++ if (ch == SPECIFIER_USER_DEFINED_SEPARATOR)
++ {
++ without_namespace = FALSE;
++ /* Copy the namespace for later looking-up */
++ max = (int)(&format[offset] - tmpformat);
++ if (max > MAX_USER_NAME)
++ max = MAX_USER_NAME;
++ trio_copy_max(parameter->user_defined.namespace, max, tmpformat);
++ tmpformat = (char *)&format[offset];
++ }
++ }
++
++ if (ch != SPECIFIER_USER_DEFINED_END)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ }
++ break;
++#endif /* TRIO_FEATURE_USER_DEFINED */
++
++ default:
++ /* Bail out completely to make the error more obvious */
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ }
++
++ parameter->endOffset = offset;
++
++ return 0;
++}
++
++/*************************************************************************
++ * TrioParse
++ *
++ * Description:
++ * Parse the format string
++ */
++TRIO_PRIVATE int
++TrioParse
++TRIO_ARGS5((type, format, parameters, arglist, argarray),
++ int type,
++ TRIO_CONST char *format,
++ trio_parameter_t *parameters,
++ va_list arglist,
++ trio_pointer_t *argarray)
++{
++ /* Count the number of times a parameter is referenced */
++ unsigned short usedEntries[MAX_PARAMETERS];
++ /* Parameter counters */
++ int parameterPosition;
++ int maxParam = -1;
++ /* Utility variables */
++ int offset; /* Offset into formatting string */
++ BOOLEAN_T positional; /* Does the specifier have a positional? */
++#if TRIO_FEATURE_STICKY
++ BOOLEAN_T gotSticky = FALSE; /* Are there any sticky modifiers at all? */
++#endif
++ /*
++ * indices specifies the order in which the parameters must be
++ * read from the va_args (this is necessary to handle positionals)
++ */
++ int indices[MAX_PARAMETERS];
++ int pos = 0;
++ /* Various variables */
++#if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE)
++ int charlen;
++#endif
++ int save_errno;
++ int i = -1;
++ int num;
++ trio_parameter_t workParameter;
++ int status;
++
++ /*
++ * The 'parameters' array is not initialized, but we need to
++ * know which entries we have used.
++ */
++ memset(usedEntries, 0, sizeof(usedEntries));
++
++ save_errno = errno;
++ offset = 0;
++ parameterPosition = 0;
++#if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE)
++ charlen = mblen(NULL, 0);
++#endif
++
++ while (format[offset])
++ {
++ TrioInitializeParameter(&workParameter);
++
++#if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE)
++ if (! isascii(format[offset]))
++ {
++ /*
++ * Multibyte characters cannot be legal specifiers or
++ * modifiers, so we skip over them.
++ */
++ charlen = mblen(&format[offset], MB_LEN_MAX);
++ offset += (charlen > 0) ? charlen : 1;
++ continue; /* while */
++ }
++#endif /* TRIO_COMPILER_SUPPORTS_MULTIBYTE */
++
++ switch(format[offset++]) {
++
++ case CHAR_IDENTIFIER:
++ {
++ if (CHAR_IDENTIFIER == format[offset])
++ {
++ /* skip double "%" */
++ offset++;
++ continue; /* while */
++ }
++
++ status = TrioParseQualifiers(type, format, offset, &workParameter);
++ if (status < 0)
++ return status; /* Return qualifier syntax error */
++
++ status = TrioParseSpecifier(type, format, workParameter.endOffset, &workParameter);
++ if (status < 0)
++ return status; /* Return specifier syntax error */
++ }
++ break;
++
++#if TRIO_EXTENSION
++ case CHAR_ALT_IDENTIFIER:
++ {
++ status = TrioParseQualifiers(type, format, offset, &workParameter);
++ if (status < 0)
++ continue; /* False alert, not a user defined specifier */
++
++ status = TrioParseSpecifier(type, format, workParameter.endOffset, &workParameter);
++ if ((status < 0) || (FORMAT_USER_DEFINED != workParameter.type))
++ continue; /* False alert, not a user defined specifier */
++ }
++ break;
++#endif
++
++ default:
++ continue; /* while */
++ }
++
++ /* now handle the parsed conversion specification */
++ positional = (NO_POSITION != workParameter.position);
++
++ /*
++ * Parameters only need the type and value. The value is
++ * read later.
++ */
++ if (workParameter.flags & FLAGS_WIDTH_PARAMETER)
++ {
++ if (workParameter.width == NO_WIDTH)
++ {
++ workParameter.width = parameterPosition++;
++ }
++ else
++ {
++ if (! positional)
++ workParameter.position = workParameter.width + 1;
++ }
++
++ usedEntries[workParameter.width] += 1;
++ if (workParameter.width > maxParam)
++ maxParam = workParameter.width;
++ parameters[pos].type = FORMAT_PARAMETER;
++ parameters[pos].flags = 0;
++ indices[workParameter.width] = pos;
++ workParameter.width = pos++;
++ }
++ if (workParameter.flags & FLAGS_PRECISION_PARAMETER)
++ {
++ if (workParameter.precision == NO_PRECISION)
++ {
++ workParameter.precision = parameterPosition++;
++ }
++ else
++ {
++ if (! positional)
++ workParameter.position = workParameter.precision + 1;
++ }
++
++ usedEntries[workParameter.precision] += 1;
++ if (workParameter.precision > maxParam)
++ maxParam = workParameter.precision;
++ parameters[pos].type = FORMAT_PARAMETER;
++ parameters[pos].flags = 0;
++ indices[workParameter.precision] = pos;
++ workParameter.precision = pos++;
++ }
++ if (workParameter.flags & FLAGS_BASE_PARAMETER)
++ {
++ if (workParameter.base == NO_BASE)
++ {
++ workParameter.base = parameterPosition++;
++ }
++ else
++ {
++ if (! positional)
++ workParameter.position = workParameter.base + 1;
++ }
++
++ usedEntries[workParameter.base] += 1;
++ if (workParameter.base > maxParam)
++ maxParam = workParameter.base;
++ parameters[pos].type = FORMAT_PARAMETER;
++ parameters[pos].flags = 0;
++ indices[workParameter.base] = pos;
++ workParameter.base = pos++;
++ }
++#if TRIO_FEATURE_VARSIZE
++ if (workParameter.flags & FLAGS_VARSIZE_PARAMETER)
++ {
++ workParameter.varsize = parameterPosition++;
++
++ usedEntries[workParameter.varsize] += 1;
++ if (workParameter.varsize > maxParam)
++ maxParam = workParameter.varsize;
++ parameters[pos].type = FORMAT_PARAMETER;
++ parameters[pos].flags = 0;
++ indices[workParameter.varsize] = pos;
++ workParameter.varsize = pos++;
++ }
++#endif
++#if TRIO_FEATURE_USER_DEFINED
++ if (workParameter.flags & FLAGS_USER_DEFINED_PARAMETER)
++ {
++ workParameter.user_defined.handler = parameterPosition++;
++
++ usedEntries[workParameter.user_defined.handler] += 1;
++ if (workParameter.user_defined.handler > maxParam)
++ maxParam = workParameter.user_defined.handler;
++ parameters[pos].type = FORMAT_PARAMETER;
++ parameters[pos].flags = FLAGS_USER_DEFINED;
++ indices[workParameter.user_defined.handler] = pos;
++ workParameter.user_defined.handler = pos++;
++ }
++#endif
++
++ if (NO_POSITION == workParameter.position)
++ {
++ workParameter.position = parameterPosition++;
++ }
++
++ if (workParameter.position > maxParam)
++ maxParam = workParameter.position;
++
++ if (workParameter.position >= MAX_PARAMETERS)
++ {
++ /* Bail out completely to make the error more obvious */
++ return TRIO_ERROR_RETURN(TRIO_ETOOMANY, offset);
++ }
++
++ indices[workParameter.position] = pos;
++
++ /* Count the number of times this entry has been used */
++ usedEntries[workParameter.position] += 1;
++
++ /* Find last sticky parameters */
++#if TRIO_FEATURE_STICKY
++ if (workParameter.flags & FLAGS_STICKY)
++ {
++ gotSticky = TRUE;
++ }
++ else if (gotSticky)
++ {
++ for (i = pos - 1; i >= 0; i--)
++ {
++ if (parameters[i].type == FORMAT_PARAMETER)
++ continue;
++ if ((parameters[i].flags & FLAGS_STICKY) &&
++ (parameters[i].type == workParameter.type))
++ {
++ /* Do not overwrite current qualifiers */
++ workParameter.flags |= (parameters[i].flags & (unsigned long)~FLAGS_STICKY);
++ if (workParameter.width == NO_WIDTH)
++ workParameter.width = parameters[i].width;
++ if (workParameter.precision == NO_PRECISION)
++ workParameter.precision = parameters[i].precision;
++ if (workParameter.base == NO_BASE)
++ workParameter.base = parameters[i].base;
++ break;
++ }
++ }
++ }
++#endif
++
++ if (workParameter.base == NO_BASE)
++ workParameter.base = BASE_DECIMAL;
++
++ offset = workParameter.endOffset;
++
++ TrioCopyParameter(&parameters[pos++], &workParameter);
++ } /* while format characters left */
++
++ parameters[pos].type = FORMAT_SENTINEL; /* end parameter array with sentinel */
++ parameters[pos].beginOffset = offset;
++
++ for (num = 0; num <= maxParam; num++)
++ {
++ if (usedEntries[num] != 1)
++ {
++ if (usedEntries[num] == 0) /* gap detected */
++ return TRIO_ERROR_RETURN(TRIO_EGAP, num);
++ else /* double references detected */
++ return TRIO_ERROR_RETURN(TRIO_EDBLREF, num);
++ }
++
++ i = indices[num];
++
++ /*
++ * FORMAT_PARAMETERS are only present if they must be read,
++ * so it makes no sense to check the ignore flag (besides,
++ * the flags variable is not set for that particular type)
++ */
++ if ((parameters[i].type != FORMAT_PARAMETER) &&
++ (parameters[i].flags & FLAGS_IGNORE))
++ continue; /* for all arguments */
++
++ /*
++ * The stack arguments are read according to ANSI C89
++ * default argument promotions:
++ *
++ * char = int
++ * short = int
++ * unsigned char = unsigned int
++ * unsigned short = unsigned int
++ * float = double
++ *
++ * In addition to the ANSI C89 these types are read (the
++ * default argument promotions of C99 has not been
++ * considered yet)
++ *
++ * long long
++ * long double
++ * size_t
++ * ptrdiff_t
++ * intmax_t
++ */
++ switch (parameters[i].type)
++ {
++ case FORMAT_GROUP:
++ case FORMAT_STRING:
++#if TRIO_FEATURE_WIDECHAR
++ if (parameters[i].flags & FLAGS_WIDECHAR)
++ {
++ parameters[i].data.wstring = (argarray == NULL)
++ ? va_arg(arglist, trio_wchar_t *)
++ : (trio_wchar_t *)(argarray[num]);
++ }
++ else
++#endif
++ {
++ parameters[i].data.string = (argarray == NULL)
++ ? va_arg(arglist, char *)
++ : (char *)(argarray[num]);
++ }
++ break;
++
++#if TRIO_FEATURE_USER_DEFINED
++ case FORMAT_USER_DEFINED:
++#endif
++ case FORMAT_POINTER:
++ case FORMAT_COUNT:
++ case FORMAT_UNKNOWN:
++ parameters[i].data.pointer = (argarray == NULL)
++ ? va_arg(arglist, trio_pointer_t )
++ : argarray[num];
++ break;
++
++ case FORMAT_CHAR:
++ case FORMAT_INT:
++#if TRIO_FEATURE_SCANF
++ if (TYPE_SCAN == type)
++ {
++ if (argarray == NULL)
++ parameters[i].data.pointer =
++ (trio_pointer_t)va_arg(arglist, trio_pointer_t);
++ else
++ {
++ if (parameters[i].type == FORMAT_CHAR)
++ parameters[i].data.pointer =
++ (trio_pointer_t)((char *)argarray[num]);
++ else if (parameters[i].flags & FLAGS_SHORT)
++ parameters[i].data.pointer =
++ (trio_pointer_t)((short *)argarray[num]);
++ else
++ parameters[i].data.pointer =
++ (trio_pointer_t)((int *)argarray[num]);
++ }
++ }
++ else
++#endif /* TRIO_FEATURE_SCANF */
++ {
++#if TRIO_FEATURE_VARSIZE || TRIO_FEATURE_FIXED_SIZE
++ if (parameters[i].flags
++ & (FLAGS_VARSIZE_PARAMETER | FLAGS_FIXED_SIZE))
++ {
++ int varsize;
++ if (parameters[i].flags & FLAGS_VARSIZE_PARAMETER)
++ {
++ /*
++ * Variable sizes are mapped onto the fixed sizes, in
++ * accordance with integer promotion.
++ *
++ * Please note that this may not be portable, as we
++ * only guess the size, not the layout of the numbers.
++ * For example, if int is little-endian, and long is
++ * big-endian, then this will fail.
++ */
++ varsize = (int)parameters[parameters[i].varsize].data.number.as_unsigned;
++ }
++ else
++ {
++ /* Used for the I<bits> modifiers */
++ varsize = parameters[i].varsize;
++ }
++ parameters[i].flags &= ~FLAGS_ALL_VARSIZES;
++
++ if (varsize <= (int)sizeof(int))
++ ;
++ else if (varsize <= (int)sizeof(long))
++ parameters[i].flags |= FLAGS_LONG;
++#if TRIO_FEATURE_INTMAX_T
++ else if (varsize <= (int)sizeof(trio_longlong_t))
++ parameters[i].flags |= FLAGS_QUAD;
++ else
++ parameters[i].flags |= FLAGS_INTMAX_T;
++#else
++ else
++ parameters[i].flags |= FLAGS_QUAD;
++#endif
++ }
++#endif /* TRIO_FEATURE_VARSIZE */
++#if TRIO_FEATURE_SIZE_T || TRIO_FEATURE_SIZE_T_UPPER
++ if (parameters[i].flags & FLAGS_SIZE_T)
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, size_t)
++ : (trio_uintmax_t)(*((size_t *)argarray[num]));
++ else
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++ if (parameters[i].flags & FLAGS_PTRDIFF_T)
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, ptrdiff_t)
++ : (trio_uintmax_t)(*((ptrdiff_t *)argarray[num]));
++ else
++#endif
++#if TRIO_FEATURE_INTMAX_T
++ if (parameters[i].flags & FLAGS_INTMAX_T)
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, trio_intmax_t)
++ : (trio_uintmax_t)(*((trio_intmax_t *)argarray[num]));
++ else
++#endif
++ if (parameters[i].flags & FLAGS_QUAD)
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, trio_ulonglong_t)
++ : (trio_uintmax_t)(*((trio_ulonglong_t *)argarray[num]));
++ else if (parameters[i].flags & FLAGS_LONG)
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, long)
++ : (trio_uintmax_t)(*((long *)argarray[num]));
++ else
++ {
++ if (argarray == NULL)
++ parameters[i].data.number.as_unsigned = (trio_uintmax_t)va_arg(arglist, int);
++ else
++ {
++ if (parameters[i].type == FORMAT_CHAR)
++ parameters[i].data.number.as_unsigned = (trio_uintmax_t)(*((char *)argarray[num]));
++ else if (parameters[i].flags & FLAGS_SHORT)
++ parameters[i].data.number.as_unsigned = (trio_uintmax_t)(*((short *)argarray[num]));
++ else
++ parameters[i].data.number.as_unsigned = (trio_uintmax_t)(*((int *)argarray[num]));
++ }
++ }
++ }
++ break;
++
++ case FORMAT_PARAMETER:
++ /*
++ * The parameter for the user-defined specifier is a pointer,
++ * whereas the rest (width, precision, base) uses an integer.
++ */
++ if (parameters[i].flags & FLAGS_USER_DEFINED)
++ parameters[i].data.pointer = (argarray == NULL)
++ ? va_arg(arglist, trio_pointer_t )
++ : argarray[num];
++ else
++ parameters[i].data.number.as_unsigned = (argarray == NULL)
++ ? (trio_uintmax_t)va_arg(arglist, int)
++ : (trio_uintmax_t)(*((int *)argarray[num]));
++ break;
++
++#if TRIO_FEATURE_FLOAT
++ case FORMAT_DOUBLE:
++# if TRIO_FEATURE_SCANF
++ if (TYPE_SCAN == type)
++ {
++ if (parameters[i].flags & FLAGS_LONGDOUBLE)
++ parameters[i].data.longdoublePointer = (argarray == NULL)
++ ? va_arg(arglist, trio_long_double_t *)
++ : (trio_long_double_t *)argarray[num];
++ else
++ {
++ if (parameters[i].flags & FLAGS_LONG)
++ parameters[i].data.doublePointer = (argarray == NULL)
++ ? va_arg(arglist, double *)
++ : (double *)argarray[num];
++ else
++ parameters[i].data.doublePointer = (argarray == NULL)
++ ? (double *)va_arg(arglist, float *)
++ : (double *)((float *)argarray[num]);
++ }
++ }
++ else
++# endif /* TRIO_FEATURE_SCANF */
++ {
++ if (parameters[i].flags & FLAGS_LONGDOUBLE)
++ parameters[i].data.longdoubleNumber = (argarray == NULL)
++ ? va_arg(arglist, trio_long_double_t)
++ : (trio_long_double_t)(*((trio_long_double_t *)argarray[num]));
++ else
++ {
++ if (argarray == NULL)
++ parameters[i].data.longdoubleNumber =
++ (trio_long_double_t)va_arg(arglist, double);
++ else
++ {
++ if (parameters[i].flags & FLAGS_SHORT)
++ parameters[i].data.longdoubleNumber =
++ (trio_long_double_t)(*((float *)argarray[num]));
++ else
++ parameters[i].data.longdoubleNumber =
++ (trio_long_double_t)(*((double *)argarray[num]));
++ }
++ }
++ }
++ break;
++#endif /* TRIO_FEATURE_FLOAT */
++
++#if TRIO_FEATURE_ERRNO
++ case FORMAT_ERRNO:
++ parameters[i].data.errorNumber = save_errno;
++ break;
++#endif
++
++ default:
++ break;
++ }
++ } /* for all specifiers */
++ return num;
++}
++
++
++/*************************************************************************
++ *
++ * FORMATTING
++ *
++ ************************************************************************/
++
++
++/*************************************************************************
++ * TrioWriteNumber
++ *
++ * Description:
++ * Output a number.
++ * The complexity of this function is a result of the complexity
++ * of the dependencies of the flags.
++ */
++TRIO_PRIVATE void
++TrioWriteNumber
++TRIO_ARGS6((self, number, flags, width, precision, base),
++ trio_class_t *self,
++ trio_uintmax_t number,
++ trio_flags_t flags,
++ int width,
++ int precision,
++ int base)
++{
++ BOOLEAN_T isNegative;
++ BOOLEAN_T isNumberZero;
++ BOOLEAN_T isPrecisionZero;
++ BOOLEAN_T ignoreNumber;
++ char buffer[MAX_CHARS_IN(trio_uintmax_t) * (1 + MAX_LOCALE_SEPARATOR_LENGTH) + 1];
++ char *bufferend;
++ char *pointer;
++ TRIO_CONST char *digits;
++ int i;
++#if TRIO_FEATURE_QUOTE
++ int length;
++ char *p;
++#endif
++ int count;
++ int digitOffset;
++
++ assert(VALID(self));
++ assert(VALID(self->OutStream));
++ assert(((base >= MIN_BASE) && (base <= MAX_BASE)) || (base == NO_BASE));
++
++ digits = (flags & FLAGS_UPPER) ? internalDigitsUpper : internalDigitsLower;
++ if (base == NO_BASE)
++ base = BASE_DECIMAL;
++
++ isNumberZero = (number == 0);
++ isPrecisionZero = (precision == 0);
++ ignoreNumber = (isNumberZero
++ && isPrecisionZero
++ && !((flags & FLAGS_ALTERNATIVE) && (base == BASE_OCTAL)));
++
++ if (flags & FLAGS_UNSIGNED)
++ {
++ isNegative = FALSE;
++ flags &= ~FLAGS_SHOWSIGN;
++ }
++ else
++ {
++ isNegative = ((trio_intmax_t)number < 0);
++ if (isNegative)
++ number = -((trio_intmax_t)number);
++ }
++
++ if (flags & FLAGS_QUAD)
++ number &= (trio_ulonglong_t)-1;
++ else if (flags & FLAGS_LONG)
++ number &= (unsigned long)-1;
++ else
++ number &= (unsigned int)-1;
++
++ /* Build number */
++ pointer = bufferend = &buffer[sizeof(buffer) - 1];
++ *pointer-- = NIL;
++ for (i = 1; i < (int)sizeof(buffer); i++)
++ {
++ digitOffset = number % base;
++ *pointer-- = digits[digitOffset];
++ number /= base;
++ if (number == 0)
++ break;
++
++#if TRIO_FEATURE_QUOTE
++ if ((flags & FLAGS_QUOTE) && TrioFollowedBySeparator(i + 1))
++ {
++ /*
++ * We are building the number from the least significant
++ * to the most significant digit, so we have to copy the
++ * thousand separator backwards
++ */
++ length = internalThousandSeparatorLength;
++ if (((int)(pointer - buffer) - length) > 0)
++ {
++ p = &internalThousandSeparator[length - 1];
++ while (length-- > 0)
++ *pointer-- = *p--;
++ }
++ }
++#endif
++ }
++
++ if (! ignoreNumber)
++ {
++ /* Adjust width */
++ width -= (bufferend - pointer) - 1;
++ }
++
++ /* Adjust precision */
++ if (NO_PRECISION != precision)
++ {
++ precision -= (bufferend - pointer) - 1;
++ if (precision < 0)
++ precision = 0;
++ flags |= FLAGS_NILPADDING;
++ }
++
++ /* Calculate padding */
++ count = (! ((flags & FLAGS_LEFTADJUST) || (precision == NO_PRECISION)))
++ ? precision
++ : 0;
++
++ /* Adjust width further */
++ if (isNegative || (flags & FLAGS_SHOWSIGN) || (flags & FLAGS_SPACE))
++ width--;
++ if ((flags & FLAGS_ALTERNATIVE) && !isNumberZero)
++ {
++ switch (base)
++ {
++ case BASE_BINARY:
++ case BASE_HEX:
++ width -= 2;
++ break;
++ case BASE_OCTAL:
++ if (!(flags & FLAGS_NILPADDING) || (count == 0))
++ width--;
++ break;
++ default:
++ break;
++ }
++ }
++
++ /* Output prefixes spaces if needed */
++ if (! ((flags & FLAGS_LEFTADJUST) ||
++ ((flags & FLAGS_NILPADDING) && (precision == NO_PRECISION))))
++ {
++ while (width-- > count)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++
++ /* width has been adjusted for signs and alternatives */
++ if (isNegative)
++ self->OutStream(self, '-');
++ else if (flags & FLAGS_SHOWSIGN)
++ self->OutStream(self, '+');
++ else if (flags & FLAGS_SPACE)
++ self->OutStream(self, ' ');
++
++ /* Prefix is not written when the value is zero */
++ if ((flags & FLAGS_ALTERNATIVE) && !isNumberZero)
++ {
++ switch (base)
++ {
++ case BASE_BINARY:
++ self->OutStream(self, '0');
++ self->OutStream(self, (flags & FLAGS_UPPER) ? 'B' : 'b');
++ break;
++
++ case BASE_OCTAL:
++ if (!(flags & FLAGS_NILPADDING) || (count == 0))
++ self->OutStream(self, '0');
++ break;
++
++ case BASE_HEX:
++ self->OutStream(self, '0');
++ self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x');
++ break;
++
++ default:
++ break;
++ } /* switch base */
++ }
++
++ /* Output prefixed zero padding if needed */
++ if (flags & FLAGS_NILPADDING)
++ {
++ if (precision == NO_PRECISION)
++ precision = width;
++ while (precision-- > 0)
++ {
++ self->OutStream(self, '0');
++ width--;
++ }
++ }
++
++ if (! ignoreNumber)
++ {
++ /* Output the number itself */
++ while (*(++pointer))
++ {
++ self->OutStream(self, *pointer);
++ }
++ }
++
++ /* Output trailing spaces if needed */
++ if (flags & FLAGS_LEFTADJUST)
++ {
++ while (width-- > 0)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++}
++
++/*************************************************************************
++ * TrioWriteStringCharacter
++ *
++ * Description:
++ * Output a single character of a string
++ */
++TRIO_PRIVATE void
++TrioWriteStringCharacter
++TRIO_ARGS3((self, ch, flags),
++ trio_class_t *self,
++ int ch,
++ trio_flags_t flags)
++{
++ if (flags & FLAGS_ALTERNATIVE)
++ {
++ if (! isprint(ch))
++ {
++ /*
++ * Non-printable characters are converted to C escapes or
++ * \number, if no C escape exists.
++ */
++ self->OutStream(self, CHAR_BACKSLASH);
++ switch (ch)
++ {
++ case '\007': self->OutStream(self, 'a'); break;
++ case '\b': self->OutStream(self, 'b'); break;
++ case '\f': self->OutStream(self, 'f'); break;
++ case '\n': self->OutStream(self, 'n'); break;
++ case '\r': self->OutStream(self, 'r'); break;
++ case '\t': self->OutStream(self, 't'); break;
++ case '\v': self->OutStream(self, 'v'); break;
++ case '\\': self->OutStream(self, '\\'); break;
++ default:
++ self->OutStream(self, 'x');
++ TrioWriteNumber(self, (trio_uintmax_t)ch,
++ FLAGS_UNSIGNED | FLAGS_NILPADDING,
++ 2, 2, BASE_HEX);
++ break;
++ }
++ }
++ else if (ch == CHAR_BACKSLASH)
++ {
++ self->OutStream(self, CHAR_BACKSLASH);
++ self->OutStream(self, CHAR_BACKSLASH);
++ }
++ else
++ {
++ self->OutStream(self, ch);
++ }
++ }
++ else
++ {
++ self->OutStream(self, ch);
++ }
++}
++
++/*************************************************************************
++ * TrioWriteString
++ *
++ * Description:
++ * Output a string
++ */
++TRIO_PRIVATE void
++TrioWriteString
++TRIO_ARGS5((self, string, flags, width, precision),
++ trio_class_t *self,
++ TRIO_CONST char *string,
++ trio_flags_t flags,
++ int width,
++ int precision)
++{
++ int length;
++ int ch;
++
++ assert(VALID(self));
++ assert(VALID(self->OutStream));
++
++ if (string == NULL)
++ {
++ string = internalNullString;
++ length = sizeof(internalNullString) - 1;
++#if TRIO_FEATURE_QUOTE
++ /* Disable quoting for the null pointer */
++ flags &= (~FLAGS_QUOTE);
++#endif
++ width = 0;
++ }
++ else
++ {
++ if (precision == 0)
++ {
++ length = trio_length(string);
++ }
++ else
++ {
++ length = trio_length_max(string, precision);
++ }
++ }
++ if ((NO_PRECISION != precision) &&
++ (precision < length))
++ {
++ length = precision;
++ }
++ width -= length;
++
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ self->OutStream(self, CHAR_QUOTE);
++#endif
++
++ if (! (flags & FLAGS_LEFTADJUST))
++ {
++ while (width-- > 0)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++
++ while (length-- > 0)
++ {
++ /* The ctype parameters must be an unsigned char (or EOF) */
++ ch = (int)((unsigned char)(*string++));
++ TrioWriteStringCharacter(self, ch, flags);
++ }
++
++ if (flags & FLAGS_LEFTADJUST)
++ {
++ while (width-- > 0)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ self->OutStream(self, CHAR_QUOTE);
++#endif
++}
++
++/*************************************************************************
++ * TrioWriteWideStringCharacter
++ *
++ * Description:
++ * Output a wide string as a multi-byte sequence
++ */
++#if TRIO_FEATURE_WIDECHAR
++TRIO_PRIVATE int
++TrioWriteWideStringCharacter
++TRIO_ARGS4((self, wch, flags, width),
++ trio_class_t *self,
++ trio_wchar_t wch,
++ trio_flags_t flags,
++ int width)
++{
++ int size;
++ int i;
++ int ch;
++ char *string;
++ char buffer[MB_LEN_MAX + 1];
++
++ if (width == NO_WIDTH)
++ width = sizeof(buffer);
++
++ size = wctomb(buffer, wch);
++ if ((size <= 0) || (size > width) || (buffer[0] == NIL))
++ return 0;
++
++ string = buffer;
++ i = size;
++ while ((width >= i) && (width-- > 0) && (i-- > 0))
++ {
++ /* The ctype parameters must be an unsigned char (or EOF) */
++ ch = (int)((unsigned char)(*string++));
++ TrioWriteStringCharacter(self, ch, flags);
++ }
++ return size;
++}
++#endif /* TRIO_FEATURE_WIDECHAR */
++
++/*************************************************************************
++ * TrioWriteWideString
++ *
++ * Description:
++ * Output a wide character string as a multi-byte string
++ */
++#if TRIO_FEATURE_WIDECHAR
++TRIO_PRIVATE void
++TrioWriteWideString
++TRIO_ARGS5((self, wstring, flags, width, precision),
++ trio_class_t *self,
++ TRIO_CONST trio_wchar_t *wstring,
++ trio_flags_t flags,
++ int width,
++ int precision)
++{
++ int length;
++ int size;
++
++ assert(VALID(self));
++ assert(VALID(self->OutStream));
++
++#if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE)
++ /* Required by TrioWriteWideStringCharacter */
++ length = mblen(NULL, 0);
++#endif
++
++ if (wstring == NULL)
++ {
++ TrioWriteString(self, NULL, flags, width, precision);
++ return;
++ }
++
++ if (NO_PRECISION == precision)
++ {
++ length = INT_MAX;
++ }
++ else
++ {
++ length = precision;
++ width -= length;
++ }
++
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ self->OutStream(self, CHAR_QUOTE);
++#endif
++
++ if (! (flags & FLAGS_LEFTADJUST))
++ {
++ while (width-- > 0)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++
++ while (length > 0)
++ {
++ size = TrioWriteWideStringCharacter(self, *wstring++, flags, length);
++ if (size == 0)
++ break; /* while */
++ length -= size;
++ }
++
++ if (flags & FLAGS_LEFTADJUST)
++ {
++ while (width-- > 0)
++ self->OutStream(self, CHAR_ADJUST);
++ }
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ self->OutStream(self, CHAR_QUOTE);
++#endif
++}
++#endif /* TRIO_FEATURE_WIDECHAR */
++
++/*************************************************************************
++ * TrioWriteDouble
++ *
++ * http://wwwold.dkuug.dk/JTC1/SC22/WG14/www/docs/dr_211.htm
++ *
++ * "5.2.4.2.2 paragraph #4
++ *
++ * The accuracy [...] is implementation defined, as is the accuracy
++ * of the conversion between floating-point internal representations
++ * and string representations performed by the libray routine in
++ * <stdio.h>"
++ */
++/* FIXME: handle all instances of constant long-double number (L)
++ * and *l() math functions.
++ */
++#if TRIO_FEATURE_FLOAT
++TRIO_PRIVATE void
++TrioWriteDouble
++TRIO_ARGS6((self, number, flags, width, precision, base),
++ trio_class_t *self,
++ trio_long_double_t number,
++ trio_flags_t flags,
++ int width,
++ int precision,
++ int base)
++{
++ trio_long_double_t integerNumber;
++ trio_long_double_t fractionNumber;
++ trio_long_double_t workNumber;
++ int integerDigits;
++ int fractionDigits;
++ int exponentDigits;
++ int workDigits;
++ int baseDigits;
++ int integerThreshold;
++ int fractionThreshold;
++ int expectedWidth;
++ int exponent = 0;
++ unsigned int uExponent = 0;
++ int exponentBase;
++ trio_long_double_t dblBase;
++ trio_long_double_t dblFractionBase;
++ trio_long_double_t integerAdjust;
++ trio_long_double_t fractionAdjust;
++ trio_long_double_t workFractionNumber;
++ trio_long_double_t workFractionAdjust;
++ int fractionDigitsInspect;
++ BOOLEAN_T isNegative;
++ BOOLEAN_T isExponentNegative = FALSE;
++ BOOLEAN_T requireTwoDigitExponent;
++ BOOLEAN_T isHex;
++ TRIO_CONST char *digits;
++# if TRIO_FEATURE_QUOTE
++ char *groupingPointer;
++# endif
++ int i;
++ int offset;
++ BOOLEAN_T hasOnlyZeroes;
++ int leadingFractionZeroes = -1;
++ register int trailingZeroes;
++ BOOLEAN_T keepTrailingZeroes;
++ BOOLEAN_T keepDecimalPoint;
++ trio_long_double_t epsilon;
++ BOOLEAN_T adjustNumber = FALSE;
++
++ assert(VALID(self));
++ assert(VALID(self->OutStream));
++ assert(((base >= MIN_BASE) && (base <= MAX_BASE)) || (base == NO_BASE));
++
++ /* Determine sign and look for special quantities */
++ switch (trio_fpclassify_and_signbit(number, &isNegative))
++ {
++ case TRIO_FP_NAN:
++ TrioWriteString(self,
++ (flags & FLAGS_UPPER)
++ ? NAN_UPPER
++ : NAN_LOWER,
++ flags, width, precision);
++ return;
++
++ case TRIO_FP_INFINITE:
++ if (isNegative)
++ {
++ /* Negative infinity */
++ TrioWriteString(self,
++ (flags & FLAGS_UPPER)
++ ? "-" INFINITE_UPPER
++ : "-" INFINITE_LOWER,
++ flags, width, precision);
++ return;
++ }
++ else
++ {
++ /* Positive infinity */
++ TrioWriteString(self,
++ (flags & FLAGS_UPPER)
++ ? INFINITE_UPPER
++ : INFINITE_LOWER,
++ flags, width, precision);
++ return;
++ }
++
++ default:
++ /* Finitude */
++ break;
++ }
++
++ /* Normal numbers */
++ if (flags & FLAGS_LONGDOUBLE)
++ {
++ baseDigits = (base == 10)
++ ? LDBL_DIG
++ : (int)trio_floor(LDBL_MANT_DIG / TrioLogarithmBase(base));
++ epsilon = LDBL_EPSILON;
++ }
++ else if (flags & FLAGS_SHORT)
++ {
++ baseDigits = (base == BASE_DECIMAL)
++ ? FLT_DIG
++ : (int)trio_floor(FLT_MANT_DIG / TrioLogarithmBase(base));
++ epsilon = FLT_EPSILON;
++ }
++ else
++ {
++ baseDigits = (base == BASE_DECIMAL)
++ ? DBL_DIG
++ : (int)trio_floor(DBL_MANT_DIG / TrioLogarithmBase(base));
++ epsilon = DBL_EPSILON;
++ }
++
++ digits = (flags & FLAGS_UPPER) ? internalDigitsUpper : internalDigitsLower;
++ isHex = (base == BASE_HEX);
++ if (base == NO_BASE)
++ base = BASE_DECIMAL;
++ dblBase = (trio_long_double_t)base;
++ keepTrailingZeroes = !( (flags & FLAGS_ROUNDING) ||
++ ( (flags & FLAGS_FLOAT_G) &&
++ !(flags & FLAGS_ALTERNATIVE) ) );
++
++# if TRIO_FEATURE_ROUNDING
++ if (flags & FLAGS_ROUNDING)
++ {
++ precision = baseDigits;
++ }
++# endif
++
++ if (precision == NO_PRECISION)
++ {
++ if (isHex)
++ {
++ keepTrailingZeroes = FALSE;
++ precision = FLT_MANT_DIG;
++ }
++ else
++ {
++ precision = FLT_DIG;
++ }
++ }
++
++ if (isNegative)
++ {
++ number = -number;
++ }
++
++ if (isHex)
++ {
++ flags |= FLAGS_FLOAT_E;
++ }
++
++ reprocess:
++
++ if (flags & FLAGS_FLOAT_G)
++ {
++ if (precision == 0)
++ precision = 1;
++
++#if 0 /* GS Modification */
++ if ( (number < TRIO_SUFFIX_LONG(1.0E-4)) ||
++ (number >= TrioPower(base, (trio_long_double_t)precision)) )
++#else /* GS Modification */
++ /* This gives us a better match to the trip over point that we want */
++ if ( (number < TRIO_SUFFIX_LONG(9.9999989999999991e-05)) ||
++ (number >= TrioPower(base, (trio_long_double_t)precision)) )
++#endif /* GS Modification */
++ {
++ /* Use scientific notation */
++ flags |= FLAGS_FLOAT_E;
++ }
++ else if (number < 1.0)
++ {
++ /*
++ * Use normal notation. If the integer part of the number is
++ * zero, then adjust the precision to include leading fractional
++ * zeros.
++ */
++ workNumber = TrioLogarithm(number, base);
++ workNumber = TRIO_FABS(workNumber);
++ if (workNumber - trio_floor(workNumber) < epsilon)
++ workNumber--;
++ leadingFractionZeroes = (int)trio_floor(workNumber);
++ }
++ }
++
++ if (flags & FLAGS_FLOAT_E)
++ {
++ /* Scale the number */
++ workNumber = TrioLogarithm(number, base);
++ if (trio_isinf(workNumber) == -1)
++ {
++ exponent = 0;
++ /* Undo setting */
++ if (flags & FLAGS_FLOAT_G)
++ flags &= ~FLAGS_FLOAT_E;
++ }
++ else
++ {
++ exponent = (int)trio_floor(workNumber);
++ workNumber = number;
++ /*
++ * The expression A * 10^-B is equivalent to A / 10^B but the former
++ * usually gives better accuracy.
++ */
++ workNumber *= TrioPower(dblBase, (trio_long_double_t)-exponent);
++ if (trio_isinf(workNumber)) {
++ /*
++ * Scaling is done it two steps to avoid problems with subnormal
++ * numbers.
++ */
++ workNumber /= TrioPower(dblBase, (trio_long_double_t)(exponent / 2));
++ workNumber /= TrioPower(dblBase, (trio_long_double_t)(exponent - (exponent / 2)));
++ }
++ number = workNumber;
++ isExponentNegative = (exponent < 0);
++ uExponent = (isExponentNegative) ? -exponent : exponent;
++ if (isHex)
++ uExponent *= 4; /* log16(2) */
++#if TRIO_FEATURE_QUOTE
++ /* No thousand separators */
++ flags &= ~FLAGS_QUOTE;
++#endif
++ }
++ }
++
++ integerNumber = trio_floor(number);
++ fractionNumber = number - integerNumber;
++
++ /*
++ * Truncated number.
++ *
++ * Precision is number of significant digits for FLOAT_G and number of
++ * fractional digits for others.
++ */
++ integerDigits = 1;
++ if (integerNumber > epsilon)
++ {
++ integerDigits += (int)TrioLogarithm(integerNumber, base);
++ }
++
++ fractionDigits = precision;
++ if (flags & FLAGS_FLOAT_G)
++ {
++ if (leadingFractionZeroes > 0)
++ {
++ fractionDigits += leadingFractionZeroes;
++ }
++ if ((integerNumber > epsilon) || (number <= epsilon))
++ {
++ fractionDigits -= integerDigits;
++ }
++ }
++
++ dblFractionBase = TrioPower(base, fractionDigits);
++
++ if (integerNumber < 1.0)
++ {
++ workNumber = number * dblFractionBase + TRIO_SUFFIX_LONG(0.5);
++ if (trio_floor(number * dblFractionBase) != trio_floor(workNumber))
++ {
++ adjustNumber = TRUE;
++ /* Remove a leading fraction zero if fraction is rounded up */
++ if ((int)TrioLogarithm(number * dblFractionBase, base) != (int)TrioLogarithm(workNumber, base))
++ {
++ --leadingFractionZeroes;
++ }
++ }
++ workNumber /= dblFractionBase;
++ }
++ else
++ {
++ workNumber = number + TRIO_SUFFIX_LONG(0.5) / dblFractionBase;
++ adjustNumber = (trio_floor(number) != trio_floor(workNumber));
++ }
++ if (adjustNumber)
++ {
++ if ((flags & FLAGS_FLOAT_G) && !(flags & FLAGS_FLOAT_E))
++ {
++ /* The adjustment may require a change to scientific notation */
++ if ( (workNumber < TRIO_SUFFIX_LONG(1.0E-4)) ||
++ (workNumber >= TrioPower(base, (trio_long_double_t)precision)) )
++ {
++ /* Use scientific notation */
++ flags |= FLAGS_FLOAT_E;
++ goto reprocess;
++ }
++ }
++
++ if (flags & FLAGS_FLOAT_E)
++ {
++ workDigits = 1 + TrioLogarithm(trio_floor(workNumber), base);
++ if (integerDigits == workDigits)
++ {
++ /* Adjust if the same number of digits are used */
++ number += TRIO_SUFFIX_LONG(0.5) / dblFractionBase;
++ integerNumber = trio_floor(number);
++ fractionNumber = number - integerNumber;
++ }
++ else
++ {
++ /* Adjust if number was rounded up one digit (ie. 0.99 to 1.00) */
++ exponent++;
++ isExponentNegative = (exponent < 0);
++ uExponent = (isExponentNegative) ? -exponent : exponent;
++ if (isHex)
++ uExponent *= 4; /* log16(2) */
++ workNumber = (number + TRIO_SUFFIX_LONG(0.5) / dblFractionBase) / dblBase;
++ integerNumber = trio_floor(workNumber);
++ fractionNumber = workNumber - integerNumber;
++ }
++ }
++ else
++ {
++ if (workNumber > 1.0)
++ {
++ /* Adjust if number was rounded up one digit (ie. 99 to 100) */
++ integerNumber = trio_floor(workNumber);
++ fractionNumber = 0.0;
++ integerDigits = (integerNumber > epsilon)
++ ? 1 + (int)TrioLogarithm(integerNumber, base)
++ : 1;
++ if (flags & FLAGS_FLOAT_G)
++ {
++ if (flags & FLAGS_ALTERNATIVE)
++ {
++ if ((integerNumber > epsilon) || (number <= epsilon))
++ {
++ fractionDigits -= integerDigits;
++ }
++ }
++ else
++ {
++ fractionDigits = 0;
++ }
++ }
++ }
++ else
++ {
++ integerNumber = trio_floor(workNumber);
++ fractionNumber = workNumber - integerNumber;
++ if (flags & FLAGS_FLOAT_G)
++ {
++ if (flags & FLAGS_ALTERNATIVE)
++ {
++ fractionDigits = precision;
++ if (leadingFractionZeroes > 0)
++ {
++ fractionDigits += leadingFractionZeroes;
++ }
++ if ((integerNumber > epsilon) || (number <= epsilon))
++ {
++ fractionDigits -= integerDigits;
++ }
++ }
++ }
++ }
++ }
++ }
++
++ /* Estimate accuracy */
++ integerAdjust = fractionAdjust = TRIO_SUFFIX_LONG(0.5);
++# if TRIO_FEATURE_ROUNDING
++ if (flags & FLAGS_ROUNDING)
++ {
++ if (integerDigits > baseDigits)
++ {
++ integerThreshold = baseDigits;
++ fractionDigits = 0;
++ dblFractionBase = 1.0;
++ fractionThreshold = 0;
++ precision = 0; /* Disable decimal-point */
++ integerAdjust = TrioPower(base, integerDigits - integerThreshold - 1);
++ fractionAdjust = 0.0;
++ }
++ else
++ {
++ integerThreshold = integerDigits;
++ fractionThreshold = fractionDigits - integerThreshold;
++ fractionAdjust = 1.0;
++ }
++ }
++ else
++# endif
++ {
++ integerThreshold = INT_MAX;
++ fractionThreshold = INT_MAX;
++ }
++
++ /*
++ * Calculate expected width.
++ * sign + integer part + thousands separators + decimal point
++ * + fraction + exponent
++ */
++ fractionAdjust /= dblFractionBase;
++ hasOnlyZeroes = (trio_floor((fractionNumber + fractionAdjust) *
++ dblFractionBase) < epsilon);
++ keepDecimalPoint = ( (flags & FLAGS_ALTERNATIVE) ||
++ !((precision == 0) ||
++ (!keepTrailingZeroes && hasOnlyZeroes)) );
++
++ expectedWidth = integerDigits + fractionDigits;
++
++ if (!keepTrailingZeroes)
++ {
++ trailingZeroes = 0;
++ workFractionNumber = fractionNumber;
++ workFractionAdjust = fractionAdjust;
++ fractionDigitsInspect = fractionDigits;
++
++ if (integerDigits > integerThreshold)
++ {
++ fractionDigitsInspect = 0;
++ }
++ else if (fractionThreshold <= fractionDigits)
++ {
++ fractionDigitsInspect = fractionThreshold + 1;
++ }
++
++ trailingZeroes = fractionDigits - fractionDigitsInspect;
++ for (i = 0; i < fractionDigitsInspect; i++)
++ {
++ workFractionNumber *= dblBase;
++ workFractionAdjust *= dblBase;
++ workNumber = trio_floor(workFractionNumber + workFractionAdjust);
++ workFractionNumber -= workNumber;
++ offset = (int)trio_fmod(workNumber, dblBase);
++ if (offset == 0)
++ {
++ trailingZeroes++;
++ }
++ else
++ {
++ trailingZeroes = 0;
++ }
++ }
++ expectedWidth -= trailingZeroes;
++ }
++
++ if (keepDecimalPoint)
++ {
++ expectedWidth += internalDecimalPointLength;
++ }
++
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ {
++ expectedWidth += TrioCalcThousandSeparatorLength(integerDigits);
++ }
++#endif
++
++ if (isNegative || (flags & FLAGS_SHOWSIGN) || (flags & FLAGS_SPACE))
++ {
++ expectedWidth += sizeof("-") - 1;
++ }
++
++ exponentDigits = 0;
++ if (flags & FLAGS_FLOAT_E)
++ {
++ exponentDigits = (uExponent == 0)
++ ? 1
++ : (int)trio_ceil(TrioLogarithm((double)(uExponent + 1),
++ (isHex) ? 10 : base));
++ }
++ requireTwoDigitExponent = ((base == BASE_DECIMAL) && (exponentDigits == 1));
++ if (exponentDigits > 0)
++ {
++ expectedWidth += exponentDigits;
++ expectedWidth += (requireTwoDigitExponent
++ ? sizeof("E+0") - 1
++ : sizeof("E+") - 1);
++ }
++
++ if (isHex)
++ {
++ expectedWidth += sizeof("0X") - 1;
++ }
++
++ /* Output prefixing */
++ if (flags & FLAGS_NILPADDING)
++ {
++ /* Leading zeros must be after sign */
++ if (isNegative)
++ self->OutStream(self, '-');
++ else if (flags & FLAGS_SHOWSIGN)
++ self->OutStream(self, '+');
++ else if (flags & FLAGS_SPACE)
++ self->OutStream(self, ' ');
++ if (isHex)
++ {
++ self->OutStream(self, '0');
++ self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x');
++ }
++ if (!(flags & FLAGS_LEFTADJUST))
++ {
++ for (i = expectedWidth; i < width; i++)
++ {
++ self->OutStream(self, '0');
++ }
++ }
++ }
++ else
++ {
++ /* Leading spaces must be before sign */
++ if (!(flags & FLAGS_LEFTADJUST))
++ {
++ for (i = expectedWidth; i < width; i++)
++ {
++ self->OutStream(self, CHAR_ADJUST);
++ }
++ }
++ if (isNegative)
++ self->OutStream(self, '-');
++ else if (flags & FLAGS_SHOWSIGN)
++ self->OutStream(self, '+');
++ else if (flags & FLAGS_SPACE)
++ self->OutStream(self, ' ');
++ if (isHex)
++ {
++ self->OutStream(self, '0');
++ self->OutStream(self, (flags & FLAGS_UPPER) ? 'X' : 'x');
++ }
++ }
++
++ /* Output the integer part and thousand separators */
++ for (i = 0; i < integerDigits; i++)
++ {
++ workNumber = trio_floor(((integerNumber + integerAdjust)
++ / TrioPower(base, integerDigits - i - 1)));
++ if (i > integerThreshold)
++ {
++ /* Beyond accuracy */
++ self->OutStream(self, digits[0]);
++ }
++ else
++ {
++ self->OutStream(self, digits[(int)trio_fmod(workNumber, dblBase)]);
++ }
++
++#if TRIO_FEATURE_QUOTE
++ if (((flags & (FLAGS_FLOAT_E | FLAGS_QUOTE)) == FLAGS_QUOTE)
++ && TrioFollowedBySeparator(integerDigits - i))
++ {
++ for (groupingPointer = internalThousandSeparator;
++ *groupingPointer != NIL;
++ groupingPointer++)
++ {
++ self->OutStream(self, *groupingPointer);
++ }
++ }
++#endif
++ }
++
++ /* Insert decimal point and build the fraction part */
++ trailingZeroes = 0;
++
++ if (keepDecimalPoint)
++ {
++ if (internalDecimalPoint)
++ {
++ self->OutStream(self, internalDecimalPoint);
++ }
++ else
++ {
++ for (i = 0; i < internalDecimalPointLength; i++)
++ {
++ self->OutStream(self, internalDecimalPointString[i]);
++ }
++ }
++ }
++
++ for (i = 0; i < fractionDigits; i++)
++ {
++ if ((integerDigits > integerThreshold) || (i > fractionThreshold))
++ {
++ /* Beyond accuracy */
++ trailingZeroes++;
++ }
++ else
++ {
++ fractionNumber *= dblBase;
++ fractionAdjust *= dblBase;
++ workNumber = trio_floor(fractionNumber + fractionAdjust);
++ if (workNumber > fractionNumber)
++ {
++ /* fractionNumber should never become negative */
++ fractionNumber = 0.0;
++ fractionAdjust = 0.0;
++ }
++ else
++ {
++ fractionNumber -= workNumber;
++ }
++ offset = (int)trio_fmod(workNumber, dblBase);
++ if (offset == 0)
++ {
++ trailingZeroes++;
++ }
++ else
++ {
++ while (trailingZeroes > 0)
++ {
++ /* Not trailing zeroes after all */
++ self->OutStream(self, digits[0]);
++ trailingZeroes--;
++ }
++ self->OutStream(self, digits[offset]);
++ }
++ }
++ }
++
++ if (keepTrailingZeroes)
++ {
++ while (trailingZeroes > 0)
++ {
++ self->OutStream(self, digits[0]);
++ trailingZeroes--;
++ }
++ }
++
++ /* Output exponent */
++ if (exponentDigits > 0)
++ {
++ self->OutStream(self,
++ isHex
++ ? ((flags & FLAGS_UPPER) ? 'P' : 'p')
++ : ((flags & FLAGS_UPPER) ? 'E' : 'e'));
++ self->OutStream(self, (isExponentNegative) ? '-' : '+');
++
++ /* The exponent must contain at least two digits */
++ if (requireTwoDigitExponent)
++ self->OutStream(self, '0');
++
++ if (isHex)
++ base = 10;
++ exponentBase = (int)TrioPower(base, exponentDigits - 1);
++ for (i = 0; i < exponentDigits; i++)
++ {
++ self->OutStream(self, digits[(uExponent / exponentBase) % base]);
++ exponentBase /= base;
++ }
++ }
++ /* Output trailing spaces */
++ if (flags & FLAGS_LEFTADJUST)
++ {
++ for (i = expectedWidth; i < width; i++)
++ {
++ self->OutStream(self, CHAR_ADJUST);
++ }
++ }
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * TrioFormatProcess
++ *
++ * Description:
++ * This is the main engine for formatting output
++ */
++TRIO_PRIVATE int
++TrioFormatProcess
++TRIO_ARGS3((data, format, parameters),
++ trio_class_t *data,
++ TRIO_CONST char *format,
++ trio_parameter_t *parameters)
++{
++ int i;
++#if TRIO_FEATURE_ERRNO
++ TRIO_CONST char *string;
++#endif
++ trio_pointer_t pointer;
++ trio_flags_t flags;
++ int width;
++ int precision;
++ int base;
++ int offset;
++
++ offset = 0;
++ i = 0;
++
++ for (;;)
++ {
++ /* Skip the parameter entries */
++ while (parameters[i].type == FORMAT_PARAMETER)
++ i++;
++
++ /* Copy non conversion-specifier part of format string */
++ while (offset < parameters[i].beginOffset)
++ {
++ if (CHAR_IDENTIFIER == format[offset] && CHAR_IDENTIFIER == format[offset + 1])
++ {
++ data->OutStream(data, CHAR_IDENTIFIER);
++ offset += 2;
++ }
++ else
++ {
++ data->OutStream(data, format[offset++]);
++ }
++ }
++
++ /* Abort if we reached end of format string */
++ if (parameters[i].type == FORMAT_SENTINEL)
++ break;
++
++ /* Ouput parameter */
++ flags = parameters[i].flags;
++
++ /* Find width */
++ width = parameters[i].width;
++ if (flags & FLAGS_WIDTH_PARAMETER)
++ {
++ /* Get width from parameter list */
++ width = (int)parameters[width].data.number.as_signed;
++ if (width < 0)
++ {
++ /*
++ * A negative width is the same as the - flag and
++ * a positive width.
++ */
++ flags |= FLAGS_LEFTADJUST;
++ flags &= ~FLAGS_NILPADDING;
++ width = -width;
++ }
++ }
++
++ /* Find precision */
++ if (flags & FLAGS_PRECISION)
++ {
++ precision = parameters[i].precision;
++ if (flags & FLAGS_PRECISION_PARAMETER)
++ {
++ /* Get precision from parameter list */
++ precision = (int)parameters[precision].data.number.as_signed;
++ if (precision < 0)
++ {
++ /*
++ * A negative precision is the same as no
++ * precision
++ */
++ precision = NO_PRECISION;
++ }
++ }
++ }
++ else
++ {
++ precision = NO_PRECISION;
++ }
++
++ /* Find base */
++ if (NO_BASE != parameters[i].baseSpecifier)
++ {
++ /* Base from specifier has priority */
++ base = parameters[i].baseSpecifier;
++ }
++ else if (flags & FLAGS_BASE_PARAMETER)
++ {
++ /* Get base from parameter list */
++ base = parameters[i].base;
++ base = (int)parameters[base].data.number.as_signed;
++ }
++ else
++ {
++ /* Use base from format string */
++ base = parameters[i].base;
++ }
++
++ switch (parameters[i].type)
++ {
++ case FORMAT_CHAR:
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ data->OutStream(data, CHAR_QUOTE);
++#endif
++ if (! (flags & FLAGS_LEFTADJUST))
++ {
++ while (--width > 0)
++ data->OutStream(data, CHAR_ADJUST);
++ }
++#if TRIO_FEATURE_WIDECHAR
++ if (flags & FLAGS_WIDECHAR)
++ {
++ TrioWriteWideStringCharacter(data,
++ (trio_wchar_t)parameters[i].data.number.as_signed,
++ flags,
++ NO_WIDTH);
++ }
++ else
++#endif
++ {
++ TrioWriteStringCharacter(data,
++ (int)parameters[i].data.number.as_signed,
++ flags);
++ }
++
++ if (flags & FLAGS_LEFTADJUST)
++ {
++ while(--width > 0)
++ data->OutStream(data, CHAR_ADJUST);
++ }
++#if TRIO_FEATURE_QUOTE
++ if (flags & FLAGS_QUOTE)
++ data->OutStream(data, CHAR_QUOTE);
++#endif
++
++ break; /* FORMAT_CHAR */
++
++ case FORMAT_INT:
++ TrioWriteNumber(data,
++ parameters[i].data.number.as_unsigned,
++ flags,
++ width,
++ precision,
++ base);
++
++ break; /* FORMAT_INT */
++
++#if TRIO_FEATURE_FLOAT
++ case FORMAT_DOUBLE:
++ TrioWriteDouble(data,
++ parameters[i].data.longdoubleNumber,
++ flags,
++ width,
++ precision,
++ base);
++ break; /* FORMAT_DOUBLE */
++#endif
++
++ case FORMAT_STRING:
++#if TRIO_FEATURE_WIDECHAR
++ if (flags & FLAGS_WIDECHAR)
++ {
++ TrioWriteWideString(data,
++ parameters[i].data.wstring,
++ flags,
++ width,
++ precision);
++ }
++ else
++#endif
++ {
++ TrioWriteString(data,
++ parameters[i].data.string,
++ flags,
++ width,
++ precision);
++ }
++ break; /* FORMAT_STRING */
++
++ case FORMAT_POINTER:
++ {
++ trio_reference_t reference;
++
++ reference.data = data;
++ reference.parameter = &parameters[i];
++ trio_print_pointer(&reference, parameters[i].data.pointer);
++ }
++ break; /* FORMAT_POINTER */
++
++ case FORMAT_COUNT:
++ pointer = parameters[i].data.pointer;
++ if (NULL != pointer)
++ {
++ /*
++ * C99 paragraph 7.19.6.1.8 says "the number of
++ * characters written to the output stream so far by
++ * this call", which is data->actually.committed
++ */
++#if TRIO_FEATURE_SIZE_T || TRIO_FEATURE_SIZE_T_UPPER
++ if (flags & FLAGS_SIZE_T)
++ *(size_t *)pointer = (size_t)data->actually.committed;
++ else
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++ if (flags & FLAGS_PTRDIFF_T)
++ *(ptrdiff_t *)pointer = (ptrdiff_t)data->actually.committed;
++ else
++#endif
++#if TRIO_FEATURE_INTMAX_T
++ if (flags & FLAGS_INTMAX_T)
++ *(trio_intmax_t *)pointer = (trio_intmax_t)data->actually.committed;
++ else
++#endif
++ if (flags & FLAGS_QUAD)
++ {
++ *(trio_ulonglong_t *)pointer = (trio_ulonglong_t)data->actually.committed;
++ }
++ else if (flags & FLAGS_LONG)
++ {
++ *(long int *)pointer = (long int)data->actually.committed;
++ }
++ else if (flags & FLAGS_SHORT)
++ {
++ *(short int *)pointer = (short int)data->actually.committed;
++ }
++ else
++ {
++ *(int *)pointer = (int)data->actually.committed;
++ }
++ }
++ break; /* FORMAT_COUNT */
++
++ case FORMAT_PARAMETER:
++ break; /* FORMAT_PARAMETER */
++
++#if TRIO_FEATURE_ERRNO
++ case FORMAT_ERRNO:
++ string = trio_error(parameters[i].data.errorNumber);
++ if (string)
++ {
++ TrioWriteString(data,
++ string,
++ flags,
++ width,
++ precision);
++ }
++ else
++ {
++ data->OutStream(data, '#');
++ TrioWriteNumber(data,
++ (trio_uintmax_t)parameters[i].data.errorNumber,
++ flags,
++ width,
++ precision,
++ BASE_DECIMAL);
++ }
++ break; /* FORMAT_ERRNO */
++#endif /* TRIO_FEATURE_ERRNO */
++
++#if TRIO_FEATURE_USER_DEFINED
++ case FORMAT_USER_DEFINED:
++ {
++ trio_reference_t reference;
++ trio_userdef_t *def = NULL;
++
++ if (parameters[i].flags & FLAGS_USER_DEFINED_PARAMETER)
++ {
++ /* Use handle */
++ if ((i > 0) ||
++ (parameters[i - 1].type == FORMAT_PARAMETER))
++ def = (trio_userdef_t *)parameters[i - 1].data.pointer;
++ }
++ else
++ {
++ /* Look up namespace */
++ def = TrioFindNamespace(parameters[i].user_defined.namespace, NULL);
++ }
++ if (def)
++ {
++ reference.data = data;
++ reference.parameter = &parameters[i];
++ def->callback(&reference);
++ }
++ }
++ break;
++#endif /* TRIO_FEATURE_USER_DEFINED */
++
++ default:
++ break;
++ } /* switch parameter type */
++
++ /* Prepare for next */
++ offset = parameters[i].endOffset;
++ i++;
++ }
++
++ return data->processed;
++}
++
++/*************************************************************************
++ * TrioFormatRef
++ */
++#if TRIO_EXTENSION
++TRIO_PRIVATE int
++TrioFormatRef
++TRIO_ARGS4((reference, format, arglist, argarray),
++ trio_reference_t *reference,
++ TRIO_CONST char *format,
++ va_list arglist,
++ trio_pointer_t *argarray)
++{
++ int status;
++ trio_parameter_t parameters[MAX_PARAMETERS];
++
++ status = TrioParse(TYPE_PRINT, format, parameters, arglist, argarray);
++ if (status < 0)
++ return status;
++
++ status = TrioFormatProcess(reference->data, format, parameters);
++ if (reference->data->error != 0)
++ {
++ status = reference->data->error;
++ }
++ return status;
++}
++#endif /* TRIO_EXTENSION */
++
++/*************************************************************************
++ * TrioFormat
++ */
++TRIO_PRIVATE int
++TrioFormat
++TRIO_ARGS6((destination, destinationSize, OutStream, format, arglist, argarray),
++ trio_pointer_t destination,
++ size_t destinationSize,
++ void (*OutStream) TRIO_PROTO((trio_class_t *, int)),
++ TRIO_CONST char *format,
++ va_list arglist,
++ trio_pointer_t *argarray)
++{
++ int status;
++ trio_class_t data;
++ trio_parameter_t parameters[MAX_PARAMETERS];
++
++ assert(VALID(OutStream));
++ assert(VALID(format));
++
++ memset(&data, 0, sizeof(data));
++ data.OutStream = OutStream;
++ data.location = destination;
++ data.max = destinationSize;
++ data.error = 0;
++
++#if defined(USE_LOCALE)
++ if (NULL == internalLocaleValues)
++ {
++ TrioSetLocale();
++ }
++#endif
++
++ status = TrioParse(TYPE_PRINT, format, parameters, arglist, argarray);
++ if (status < 0)
++ return status;
++
++ status = TrioFormatProcess(&data, format, parameters);
++ if (data.error != 0)
++ {
++ status = data.error;
++ }
++ return status;
++}
++
++/*************************************************************************
++ * TrioOutStreamFile
++ */
++#if TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO
++TRIO_PRIVATE void
++TrioOutStreamFile
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ FILE *file;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ file = (FILE *)self->location;
++ self->processed++;
++ if (fputc(output, file) == EOF)
++ {
++ self->error = TRIO_ERROR_RETURN(TRIO_EOF, 0);
++ }
++ else
++ {
++ self->actually.committed++;
++ }
++}
++#endif /* TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO */
++
++/*************************************************************************
++ * TrioOutStreamFileDescriptor
++ */
++#if TRIO_FEATURE_FD
++TRIO_PRIVATE void
++TrioOutStreamFileDescriptor
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ int fd;
++ char ch;
++
++ assert(VALID(self));
++
++ fd = *((int *)self->location);
++ ch = (char)output;
++ self->processed++;
++ if (write(fd, &ch, sizeof(char)) == -1)
++ {
++ self->error = TRIO_ERROR_RETURN(TRIO_ERRNO, 0);
++ }
++ else
++ {
++ self->actually.committed++;
++ }
++}
++#endif /* TRIO_FEATURE_FD */
++
++/*************************************************************************
++ * TrioOutStreamCustom
++ */
++#if TRIO_FEATURE_CLOSURE
++TRIO_PRIVATE void
++TrioOutStreamCustom
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ int status;
++ trio_custom_t *data;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ data = (trio_custom_t *)self->location;
++ if (data->stream.out)
++ {
++ status = (data->stream.out)(data->closure, output);
++ if (status >= 0)
++ {
++ self->actually.committed++;
++ }
++ else
++ {
++ if (self->error == 0)
++ {
++ self->error = TRIO_ERROR_RETURN(TRIO_ECUSTOM, -status);
++ }
++ }
++ }
++ self->processed++;
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++/*************************************************************************
++ * TrioOutStreamString
++ */
++TRIO_PRIVATE void
++TrioOutStreamString
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ char **buffer;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ buffer = (char **)self->location;
++ **buffer = (char)output;
++ (*buffer)++;
++ self->processed++;
++ self->actually.committed++;
++}
++
++/*************************************************************************
++ * TrioOutStreamStringMax
++ */
++TRIO_PRIVATE void
++TrioOutStreamStringMax
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ char **buffer;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ buffer = (char **)self->location;
++
++ if (self->processed < self->max)
++ {
++ **buffer = (char)output;
++ (*buffer)++;
++ self->actually.committed++;
++ }
++ self->processed++;
++}
++
++/*************************************************************************
++ * TrioOutStreamStringDynamic
++ */
++#if TRIO_FEATURE_DYNAMICSTRING
++TRIO_PRIVATE void
++TrioOutStreamStringDynamic
++TRIO_ARGS2((self, output),
++ trio_class_t *self,
++ int output)
++{
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ if (self->error == 0)
++ {
++ trio_xstring_append_char((trio_string_t *)self->location,
++ (char)output);
++ self->actually.committed++;
++ }
++ /* The processed variable must always be increased */
++ self->processed++;
++}
++#endif /* TRIO_FEATURE_DYNAMICSTRING */
++
++/*************************************************************************
++ *
++ * Formatted printing functions
++ *
++ ************************************************************************/
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_printf.h"
++#endif
++/** @addtogroup Printf
++ @{
++*/
++
++/*************************************************************************
++ * printf
++ */
++
++/**
++ Print to standard output stream.
++
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_printf
++TRIO_VARGS2((format, va_alist),
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioFormat(stdout, 0, TrioOutStreamFile, format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/**
++ Print to standard output stream.
++
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_vprintf
++TRIO_ARGS2((format, args),
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(format));
++
++ return TrioFormat(stdout, 0, TrioOutStreamFile, format, args, NULL);
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/**
++ Print to standard output stream.
++
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_printfv
++TRIO_ARGS2((format, args),
++ TRIO_CONST char *format,
++ trio_pointer_t * args)
++{
++ static va_list unused;
++
++ assert(VALID(format));
++
++ return TrioFormat(stdout, 0, TrioOutStreamFile, format, unused, args);
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/*************************************************************************
++ * fprintf
++ */
++
++/**
++ Print to file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_fprintf
++TRIO_VARGS3((file, format, va_alist),
++ FILE *file,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(file));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioFormat(file, 0, TrioOutStreamFile, format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/**
++ Print to file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_vfprintf
++TRIO_ARGS3((file, format, args),
++ FILE *file,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(file));
++ assert(VALID(format));
++
++ return TrioFormat(file, 0, TrioOutStreamFile, format, args, NULL);
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/**
++ Print to file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_fprintfv
++TRIO_ARGS3((file, format, args),
++ FILE *file,
++ TRIO_CONST char *format,
++ trio_pointer_t * args)
++{
++ static va_list unused;
++
++ assert(VALID(file));
++ assert(VALID(format));
++
++ return TrioFormat(file, 0, TrioOutStreamFile, format, unused, args);
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/*************************************************************************
++ * dprintf
++ */
++
++/**
++ Print to file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_dprintf
++TRIO_VARGS3((fd, format, va_alist),
++ int fd,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_FD */
++
++/**
++ Print to file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_vdprintf
++TRIO_ARGS3((fd, format, args),
++ int fd,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(format));
++
++ return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, args, NULL);
++}
++#endif /* TRIO_FEATURE_FD */
++
++/**
++ Print to file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_dprintfv
++TRIO_ARGS3((fd, format, args),
++ int fd,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++
++ assert(VALID(format));
++
++ return TrioFormat(&fd, 0, TrioOutStreamFileDescriptor, format, unused, args);
++}
++#endif /* TRIO_FEATURE_FD */
++
++/*************************************************************************
++ * cprintf
++ */
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_cprintf
++TRIO_VARGS4((stream, closure, format, va_alist),
++ trio_outstream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ data.stream.out = stream;
++ data.closure = closure;
++ status = TrioFormat(&data, 0, TrioOutStreamCustom, format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_vcprintf
++TRIO_ARGS4((stream, closure, format, args),
++ trio_outstream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ data.stream.out = stream;
++ data.closure = closure;
++ return TrioFormat(&data, 0, TrioOutStreamCustom, format, args, NULL);
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_cprintfv
++TRIO_ARGS4((stream, closure, format, args),
++ trio_outstream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ void **args)
++{
++ static va_list unused;
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ data.stream.out = stream;
++ data.closure = closure;
++ return TrioFormat(&data, 0, TrioOutStreamCustom, format, unused, args);
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++/*************************************************************************
++ * sprintf
++ */
++
++/**
++ Print to string.
++
++ @param buffer Output string.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_sprintf
++TRIO_VARGS3((buffer, format, va_alist),
++ char *buffer,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioFormat(&buffer, 0, TrioOutStreamString, format, args, NULL);
++ *buffer = NIL; /* Terminate with NIL character */
++ TRIO_VA_END(args);
++ return status;
++}
++
++/**
++ Print to string.
++
++ @param buffer Output string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_vsprintf
++TRIO_ARGS3((buffer, format, args),
++ char *buffer,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ int status;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ status = TrioFormat(&buffer, 0, TrioOutStreamString, format, args, NULL);
++ *buffer = NIL;
++ return status;
++}
++
++/**
++ Print to string.
++
++ @param buffer Output string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_sprintfv
++TRIO_ARGS3((buffer, format, args),
++ char *buffer,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++ int status;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ status = TrioFormat(&buffer, 0, TrioOutStreamString, format, unused, args);
++ *buffer = NIL;
++ return status;
++}
++
++/*************************************************************************
++ * snprintf
++ */
++
++/**
++ Print at most @p max characters to string.
++
++ @param buffer Output string.
++ @param max Maximum number of characters to print.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_snprintf
++TRIO_VARGS4((buffer, max, format, va_alist),
++ char *buffer,
++ size_t max,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(buffer) || (max == 0));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioFormat(&buffer, max > 0 ? max - 1 : 0,
++ TrioOutStreamStringMax, format, args, NULL);
++ if (max > 0)
++ *buffer = NIL;
++ TRIO_VA_END(args);
++ return status;
++}
++
++/**
++ Print at most @p max characters to string.
++
++ @param buffer Output string.
++ @param max Maximum number of characters to print.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_vsnprintf
++TRIO_ARGS4((buffer, max, format, args),
++ char *buffer,
++ size_t max,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ int status;
++
++ assert(VALID(buffer) || (max == 0));
++ assert(VALID(format));
++
++ status = TrioFormat(&buffer, max > 0 ? max - 1 : 0,
++ TrioOutStreamStringMax, format, args, NULL);
++ if (max > 0)
++ *buffer = NIL;
++ return status;
++}
++
++/**
++ Print at most @p max characters to string.
++
++ @param buffer Output string.
++ @param max Maximum number of characters to print.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++TRIO_PUBLIC int
++trio_snprintfv
++TRIO_ARGS4((buffer, max, format, args),
++ char *buffer,
++ size_t max,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++ int status;
++
++ assert(VALID(buffer) || (max == 0));
++ assert(VALID(format));
++
++ status = TrioFormat(&buffer, max > 0 ? max - 1 : 0,
++ TrioOutStreamStringMax, format, unused, args);
++ if (max > 0)
++ *buffer = NIL;
++ return status;
++}
++
++/*************************************************************************
++ * snprintfcat
++ * Appends the new string to the buffer string overwriting the '\0'
++ * character at the end of buffer.
++ */
++#if TRIO_EXTENSION
++TRIO_PUBLIC int
++trio_snprintfcat
++TRIO_VARGS4((buffer, max, format, va_alist),
++ char *buffer,
++ size_t max,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++ size_t buf_len;
++
++ TRIO_VA_START(args, format);
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ buf_len = trio_length(buffer);
++ buffer = &buffer[buf_len];
++
++ status = TrioFormat(&buffer, max - 1 - buf_len,
++ TrioOutStreamStringMax, format, args, NULL);
++ TRIO_VA_END(args);
++ *buffer = NIL;
++ return status;
++}
++#endif
++
++#if TRIO_EXTENSION
++TRIO_PUBLIC int
++trio_vsnprintfcat
++TRIO_ARGS4((buffer, max, format, args),
++ char *buffer,
++ size_t max,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ int status;
++ size_t buf_len;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ buf_len = trio_length(buffer);
++ buffer = &buffer[buf_len];
++ status = TrioFormat(&buffer, max - 1 - buf_len,
++ TrioOutStreamStringMax, format, args, NULL);
++ *buffer = NIL;
++ return status;
++}
++#endif
++
++/*************************************************************************
++ * trio_aprintf
++ */
++
++#if TRIO_DEPRECATED && TRIO_FEATURE_DYNAMICSTRING
++TRIO_PUBLIC char *
++trio_aprintf
++TRIO_VARGS2((format, va_alist),
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ va_list args;
++ trio_string_t *info;
++ char *result = NULL;
++
++ assert(VALID(format));
++
++ info = trio_xstring_duplicate("");
++ if (info)
++ {
++ TRIO_VA_START(args, format);
++ (void)TrioFormat(info, 0, TrioOutStreamStringDynamic,
++ format, args, NULL);
++ TRIO_VA_END(args);
++
++ trio_string_terminate(info);
++ result = trio_string_extract(info);
++ trio_string_destroy(info);
++ }
++ return result;
++}
++#endif /* TRIO_DEPRECATED && TRIO_FEATURE_DYNAMICSTRING */
++
++#if TRIO_DEPRECATED && TRIO_FEATURE_DYNAMICSTRING
++TRIO_PUBLIC char *
++trio_vaprintf
++TRIO_ARGS2((format, args),
++ TRIO_CONST char *format,
++ va_list args)
++{
++ trio_string_t *info;
++ char *result = NULL;
++
++ assert(VALID(format));
++
++ info = trio_xstring_duplicate("");
++ if (info)
++ {
++ (void)TrioFormat(info, 0, TrioOutStreamStringDynamic,
++ format, args, NULL);
++ trio_string_terminate(info);
++ result = trio_string_extract(info);
++ trio_string_destroy(info);
++ }
++ return result;
++}
++#endif /* TRIO_DEPRECATED && TRIO_FEATURE_DYNAMICSTRING */
++
++/**
++ Allocate and print to string.
++ The memory allocated and returned by @p result must be freed by the
++ calling application.
++
++ @param result Output string.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_DYNAMICSTRING
++TRIO_PUBLIC int
++trio_asprintf
++TRIO_VARGS3((result, format, va_alist),
++ char **result,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ va_list args;
++ int status;
++ trio_string_t *info;
++
++ assert(VALID(format));
++
++ *result = NULL;
++
++ info = trio_xstring_duplicate("");
++ if (info == NULL)
++ {
++ status = TRIO_ERROR_RETURN(TRIO_ENOMEM, 0);
++ }
++ else
++ {
++ TRIO_VA_START(args, format);
++ status = TrioFormat(info, 0, TrioOutStreamStringDynamic,
++ format, args, NULL);
++ TRIO_VA_END(args);
++ if (status >= 0)
++ {
++ trio_string_terminate(info);
++ *result = trio_string_extract(info);
++ }
++ trio_string_destroy(info);
++ }
++ return status;
++}
++#endif /* TRIO_FEATURE_DYNAMICSTRING */
++
++/**
++ Allocate and print to string.
++ The memory allocated and returned by @p result must be freed by the
++ calling application.
++
++ @param result Output string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_DYNAMICSTRING
++TRIO_PUBLIC int
++trio_vasprintf
++TRIO_ARGS3((result, format, args),
++ char **result,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ int status;
++ trio_string_t *info;
++
++ assert(VALID(format));
++
++ *result = NULL;
++
++ info = trio_xstring_duplicate("");
++ if (info == NULL)
++ {
++ status = TRIO_ERROR_RETURN(TRIO_ENOMEM, 0);
++ }
++ else
++ {
++ status = TrioFormat(info, 0, TrioOutStreamStringDynamic,
++ format, args, NULL);
++ if (status >= 0)
++ {
++ trio_string_terminate(info);
++ *result = trio_string_extract(info);
++ }
++ trio_string_destroy(info);
++ }
++ return status;
++}
++#endif /* TRIO_FEATURE_DYNAMICSTRING */
++
++/**
++ Allocate and print to string.
++ The memory allocated and returned by @p result must be freed by the
++ calling application.
++
++ @param result Output string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of printed characters.
++ */
++#if TRIO_FEATURE_DYNAMICSTRING
++TRIO_PUBLIC int
++trio_asprintfv
++TRIO_ARGS3((result, format, args),
++ char **result,
++ TRIO_CONST char *format,
++ trio_pointer_t * args)
++{
++ static va_list unused;
++ int status;
++ trio_string_t *info;
++
++ assert(VALID(format));
++
++ *result = NULL;
++
++ info = trio_xstring_duplicate("");
++ if (info == NULL)
++ {
++ status = TRIO_ERROR_RETURN(TRIO_ENOMEM, 0);
++ }
++ else
++ {
++ status = TrioFormat(info, 0, TrioOutStreamStringDynamic,
++ format, unused, args);
++ if (status >= 0)
++ {
++ trio_string_terminate(info);
++ *result = trio_string_extract(info);
++ }
++ trio_string_destroy(info);
++ }
++ return status;
++}
++#endif /* TRIO_FEATURE_DYNAMICSTRING */
++
++/** @} End of Printf documentation module */
++
++/*************************************************************************
++ *
++ * CALLBACK
++ *
++ ************************************************************************/
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_register.h"
++#endif
++/**
++ @addtogroup UserDefined
++ @{
++*/
++
++#if TRIO_FEATURE_USER_DEFINED
++
++/*************************************************************************
++ * trio_register
++ */
++
++/**
++ Register new user-defined specifier.
++
++ @param callback
++ @param name
++ @return Handle.
++ */
++TRIO_PUBLIC trio_pointer_t
++trio_register
++TRIO_ARGS2((callback, name),
++ trio_callback_t callback,
++ TRIO_CONST char *name)
++{
++ trio_userdef_t *def;
++ trio_userdef_t *prev = NULL;
++
++ if (callback == NULL)
++ return NULL;
++
++ if (name)
++ {
++ /* Handle built-in namespaces */
++ if (name[0] == ':')
++ {
++ if (trio_equal(name, ":enter"))
++ {
++ internalEnterCriticalRegion = callback;
++ }
++ else if (trio_equal(name, ":leave"))
++ {
++ internalLeaveCriticalRegion = callback;
++ }
++ return NULL;
++ }
++
++ /* Bail out if namespace is too long */
++ if (trio_length(name) >= MAX_USER_NAME)
++ return NULL;
++
++ /* Bail out if namespace already is registered */
++ def = TrioFindNamespace(name, &prev);
++ if (def)
++ return NULL;
++ }
++
++ def = (trio_userdef_t *)TRIO_MALLOC(sizeof(trio_userdef_t));
++ if (def)
++ {
++ if (internalEnterCriticalRegion)
++ (void)internalEnterCriticalRegion(NULL);
++
++ if (name)
++ {
++ /* Link into internal list */
++ if (prev == NULL)
++ internalUserDef = def;
++ else
++ prev->next = def;
++ }
++ /* Initialize */
++ def->callback = callback;
++ def->name = (name == NULL)
++ ? NULL
++ : trio_duplicate(name);
++ def->next = NULL;
++
++ if (internalLeaveCriticalRegion)
++ (void)internalLeaveCriticalRegion(NULL);
++ }
++ return (trio_pointer_t)def;
++}
++
++/**
++ Unregister an existing user-defined specifier.
++
++ @param handle
++ */
++void
++trio_unregister
++TRIO_ARGS1((handle),
++ trio_pointer_t handle)
++{
++ trio_userdef_t *self = (trio_userdef_t *)handle;
++ trio_userdef_t *def;
++ trio_userdef_t *prev = NULL;
++
++ assert(VALID(self));
++
++ if (self->name)
++ {
++ def = TrioFindNamespace(self->name, &prev);
++ if (def)
++ {
++ if (internalEnterCriticalRegion)
++ (void)internalEnterCriticalRegion(NULL);
++
++ if (prev == NULL)
++ internalUserDef = internalUserDef->next;
++ else
++ prev->next = def->next;
++
++ if (internalLeaveCriticalRegion)
++ (void)internalLeaveCriticalRegion(NULL);
++ }
++ trio_destroy(self->name);
++ }
++ TRIO_FREE(self);
++}
++
++/*************************************************************************
++ * trio_get_format [public]
++ */
++TRIO_CONST char *
++trio_get_format
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++#if TRIO_FEATURE_USER_DEFINED
++ assert(((trio_reference_t *)ref)->parameter->type == FORMAT_USER_DEFINED);
++#endif
++
++ return (((trio_reference_t *)ref)->parameter->user_data);
++}
++
++/*************************************************************************
++ * trio_get_argument [public]
++ */
++TRIO_CONST trio_pointer_t
++trio_get_argument
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++#if TRIO_FEATURE_USER_DEFINED
++ assert(((trio_reference_t *)ref)->parameter->type == FORMAT_USER_DEFINED);
++#endif
++
++ return ((trio_reference_t *)ref)->parameter->data.pointer;
++}
++
++/*************************************************************************
++ * trio_get_width / trio_set_width [public]
++ */
++int
++trio_get_width
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return ((trio_reference_t *)ref)->parameter->width;
++}
++
++void
++trio_set_width
++TRIO_ARGS2((ref, width),
++ trio_pointer_t ref,
++ int width)
++{
++ ((trio_reference_t *)ref)->parameter->width = width;
++}
++
++/*************************************************************************
++ * trio_get_precision / trio_set_precision [public]
++ */
++int
++trio_get_precision
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->precision);
++}
++
++void
++trio_set_precision
++TRIO_ARGS2((ref, precision),
++ trio_pointer_t ref,
++ int precision)
++{
++ ((trio_reference_t *)ref)->parameter->precision = precision;
++}
++
++/*************************************************************************
++ * trio_get_base / trio_set_base [public]
++ */
++int
++trio_get_base
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->base);
++}
++
++void
++trio_set_base
++TRIO_ARGS2((ref, base),
++ trio_pointer_t ref,
++ int base)
++{
++ ((trio_reference_t *)ref)->parameter->base = base;
++}
++
++/*************************************************************************
++ * trio_get_long / trio_set_long [public]
++ */
++int
++trio_get_long
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_LONG)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_long
++TRIO_ARGS2((ref, is_long),
++ trio_pointer_t ref,
++ int is_long)
++{
++ if (is_long)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_LONG;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_LONG;
++}
++
++/*************************************************************************
++ * trio_get_longlong / trio_set_longlong [public]
++ */
++int
++trio_get_longlong
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_QUAD)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_longlong
++TRIO_ARGS2((ref, is_longlong),
++ trio_pointer_t ref,
++ int is_longlong)
++{
++ if (is_longlong)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_QUAD;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_QUAD;
++}
++
++/*************************************************************************
++ * trio_get_longdouble / trio_set_longdouble [public]
++ */
++# if TRIO_FEATURE_FLOAT
++int
++trio_get_longdouble
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_LONGDOUBLE)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_longdouble
++TRIO_ARGS2((ref, is_longdouble),
++ trio_pointer_t ref,
++ int is_longdouble)
++{
++ if (is_longdouble)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_LONGDOUBLE;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_LONGDOUBLE;
++}
++# endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * trio_get_short / trio_set_short [public]
++ */
++int
++trio_get_short
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_SHORT)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_short
++TRIO_ARGS2((ref, is_short),
++ trio_pointer_t ref,
++ int is_short)
++{
++ if (is_short)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_SHORT;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_SHORT;
++}
++
++/*************************************************************************
++ * trio_get_shortshort / trio_set_shortshort [public]
++ */
++int
++trio_get_shortshort
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_SHORTSHORT)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_shortshort
++TRIO_ARGS2((ref, is_shortshort),
++ trio_pointer_t ref,
++ int is_shortshort)
++{
++ if (is_shortshort)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_SHORTSHORT;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_SHORTSHORT;
++}
++
++/*************************************************************************
++ * trio_get_alternative / trio_set_alternative [public]
++ */
++int
++trio_get_alternative
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_ALTERNATIVE)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_alternative
++TRIO_ARGS2((ref, is_alternative),
++ trio_pointer_t ref,
++ int is_alternative)
++{
++ if (is_alternative)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_ALTERNATIVE;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_ALTERNATIVE;
++}
++
++/*************************************************************************
++ * trio_get_alignment / trio_set_alignment [public]
++ */
++int
++trio_get_alignment
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_LEFTADJUST)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_alignment
++TRIO_ARGS2((ref, is_leftaligned),
++ trio_pointer_t ref,
++ int is_leftaligned)
++{
++ if (is_leftaligned)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_LEFTADJUST;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_LEFTADJUST;
++}
++
++/*************************************************************************
++ * trio_get_spacing /trio_set_spacing [public]
++ */
++int
++trio_get_spacing
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_SPACE)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_spacing
++TRIO_ARGS2((ref, is_space),
++ trio_pointer_t ref,
++ int is_space)
++{
++ if (is_space)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_SPACE;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_SPACE;
++}
++
++/*************************************************************************
++ * trio_get_sign / trio_set_sign [public]
++ */
++int
++trio_get_sign
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_SHOWSIGN)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_sign
++TRIO_ARGS2((ref, is_sign),
++ trio_pointer_t ref,
++ int is_sign)
++{
++ if (is_sign)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_SHOWSIGN;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_SHOWSIGN;
++}
++
++/*************************************************************************
++ * trio_get_padding / trio_set_padding [public]
++ */
++int
++trio_get_padding
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_NILPADDING)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_padding
++TRIO_ARGS2((ref, is_padding),
++ trio_pointer_t ref,
++ int is_padding)
++{
++ if (is_padding)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_NILPADDING;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_NILPADDING;
++}
++
++/*************************************************************************
++ * trio_get_quote / trio_set_quote [public]
++ */
++# if TRIO_FEATURE_QUOTE
++int
++trio_get_quote
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_QUOTE)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_quote
++TRIO_ARGS2((ref, is_quote),
++ trio_pointer_t ref,
++ int is_quote)
++{
++ if (is_quote)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_QUOTE;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_QUOTE;
++}
++#endif /* TRIO_FEATURE_QUOTE */
++
++/*************************************************************************
++ * trio_get_upper / trio_set_upper [public]
++ */
++int
++trio_get_upper
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_UPPER)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_upper
++TRIO_ARGS2((ref, is_upper),
++ trio_pointer_t ref,
++ int is_upper)
++{
++ if (is_upper)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_UPPER;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_UPPER;
++}
++
++/*************************************************************************
++ * trio_get_largest / trio_set_largest [public]
++ */
++#if TRIO_FEATURE_INTMAX_T
++int
++trio_get_largest
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_INTMAX_T)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_largest
++TRIO_ARGS2((ref, is_largest),
++ trio_pointer_t ref,
++ int is_largest)
++{
++ if (is_largest)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_INTMAX_T;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_INTMAX_T;
++}
++#endif /* TRIO_FEATURE_INTMAX_T */
++
++/*************************************************************************
++ * trio_get_ptrdiff / trio_set_ptrdiff [public]
++ */
++#if TRIO_FEATURE_PTRDIFF_T
++int
++trio_get_ptrdiff
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_PTRDIFF_T)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_ptrdiff
++TRIO_ARGS2((ref, is_ptrdiff),
++ trio_pointer_t ref,
++ int is_ptrdiff)
++{
++ if (is_ptrdiff)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_PTRDIFF_T;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_PTRDIFF_T;
++}
++#endif /* TRIO_FEATURE_PTRDIFF_T */
++
++/*************************************************************************
++ * trio_get_size / trio_set_size [public]
++ */
++#if TRIO_FEATURE_SIZE_T
++int
++trio_get_size
++TRIO_ARGS1((ref),
++ trio_pointer_t ref)
++{
++ return (((trio_reference_t *)ref)->parameter->flags & FLAGS_SIZE_T)
++ ? TRUE
++ : FALSE;
++}
++
++void
++trio_set_size
++TRIO_ARGS2((ref, is_size),
++ trio_pointer_t ref,
++ int is_size)
++{
++ if (is_size)
++ ((trio_reference_t *)ref)->parameter->flags |= FLAGS_SIZE_T;
++ else
++ ((trio_reference_t *)ref)->parameter->flags &= ~FLAGS_SIZE_T;
++}
++#endif /* TRIO_FEATURE_SIZE_T */
++
++/*************************************************************************
++ * trio_print_int [public]
++ */
++void
++trio_print_int
++TRIO_ARGS2((ref, number),
++ trio_pointer_t ref,
++ int number)
++{
++ trio_reference_t *self = (trio_reference_t *)ref;
++
++ TrioWriteNumber(self->data,
++ (trio_uintmax_t)number,
++ self->parameter->flags,
++ self->parameter->width,
++ self->parameter->precision,
++ self->parameter->base);
++}
++
++/*************************************************************************
++ * trio_print_uint [public]
++ */
++void
++trio_print_uint
++TRIO_ARGS2((ref, number),
++ trio_pointer_t ref,
++ unsigned int number)
++{
++ trio_reference_t *self = (trio_reference_t *)ref;
++
++ TrioWriteNumber(self->data,
++ (trio_uintmax_t)number,
++ self->parameter->flags | FLAGS_UNSIGNED,
++ self->parameter->width,
++ self->parameter->precision,
++ self->parameter->base);
++}
++
++/*************************************************************************
++ * trio_print_double [public]
++ */
++#if TRIO_FEATURE_FLOAT
++void
++trio_print_double
++TRIO_ARGS2((ref, number),
++ trio_pointer_t ref,
++ double number)
++{
++ trio_reference_t *self = (trio_reference_t *)ref;
++
++ TrioWriteDouble(self->data,
++ number,
++ self->parameter->flags,
++ self->parameter->width,
++ self->parameter->precision,
++ self->parameter->base);
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * trio_print_string [public]
++ */
++void
++trio_print_string
++TRIO_ARGS2((ref, string),
++ trio_pointer_t ref,
++ TRIO_CONST char *string)
++{
++ trio_reference_t *self = (trio_reference_t *)ref;
++
++ TrioWriteString(self->data,
++ string,
++ self->parameter->flags,
++ self->parameter->width,
++ self->parameter->precision);
++}
++
++/*************************************************************************
++ * trio_print_ref [public]
++ */
++int
++trio_print_ref
++TRIO_VARGS3((ref, format, va_alist),
++ trio_pointer_t ref,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list arglist;
++
++ assert(VALID(format));
++
++ TRIO_VA_START(arglist, format);
++ status = TrioFormatRef((trio_reference_t *)ref, format, arglist, NULL);
++ TRIO_VA_END(arglist);
++ return status;
++}
++
++/*************************************************************************
++ * trio_vprint_ref [public]
++ */
++int
++trio_vprint_ref
++TRIO_ARGS3((ref, format, arglist),
++ trio_pointer_t ref,
++ TRIO_CONST char *format,
++ va_list arglist)
++{
++ assert(VALID(format));
++
++ return TrioFormatRef((trio_reference_t *)ref, format, arglist, NULL);
++}
++
++/*************************************************************************
++ * trio_printv_ref [public]
++ */
++int
++trio_printv_ref
++TRIO_ARGS3((ref, format, argarray),
++ trio_pointer_t ref,
++ TRIO_CONST char *format,
++ trio_pointer_t *argarray)
++{
++ static va_list unused;
++
++ assert(VALID(format));
++
++ return TrioFormatRef((trio_reference_t *)ref, format, unused, argarray);
++}
++
++#endif
++
++/*************************************************************************
++ * trio_print_pointer [public]
++ */
++void
++trio_print_pointer
++TRIO_ARGS2((ref, pointer),
++ trio_pointer_t ref,
++ trio_pointer_t pointer)
++{
++ trio_reference_t *self = (trio_reference_t *)ref;
++ trio_flags_t flags;
++ trio_uintmax_t number;
++
++ if (NULL == pointer)
++ {
++ TRIO_CONST char *string = internalNullString;
++ while (*string)
++ self->data->OutStream(self->data, *string++);
++ }
++ else
++ {
++ /*
++ * The subtraction of the null pointer is a workaround
++ * to avoid a compiler warning. The performance overhead
++ * is negligible (and likely to be removed by an
++ * optimizing compiler). The (char *) casting is done
++ * to please ANSI C++.
++ */
++ number = (trio_uintmax_t)((char *)pointer - (char *)0);
++ /* Shrink to size of pointer */
++ number &= (trio_uintmax_t)-1;
++ flags = self->parameter->flags;
++ flags |= (FLAGS_UNSIGNED | FLAGS_ALTERNATIVE |
++ FLAGS_NILPADDING);
++ TrioWriteNumber(self->data,
++ number,
++ flags,
++ POINTER_WIDTH,
++ NO_PRECISION,
++ BASE_HEX);
++ }
++}
++
++/** @} End of UserDefined documentation module */
++
++/*************************************************************************
++ *
++ * LOCALES
++ *
++ ************************************************************************/
++
++/*************************************************************************
++ * trio_locale_set_decimal_point
++ *
++ * Decimal point can only be one character. The input argument is a
++ * string to enable multibyte characters. At most MB_LEN_MAX characters
++ * will be used.
++ */
++#if TRIO_FEATURE_LOCALE
++TRIO_PUBLIC void
++trio_locale_set_decimal_point
++TRIO_ARGS1((decimalPoint),
++ char *decimalPoint)
++{
++#if defined(USE_LOCALE)
++ if (NULL == internalLocaleValues)
++ {
++ TrioSetLocale();
++ }
++#endif
++ internalDecimalPointLength = trio_length(decimalPoint);
++ if (internalDecimalPointLength == 1)
++ {
++ internalDecimalPoint = *decimalPoint;
++ }
++ else
++ {
++ internalDecimalPoint = NIL;
++ trio_copy_max(internalDecimalPointString,
++ sizeof(internalDecimalPointString),
++ decimalPoint);
++ }
++}
++#endif
++
++/*************************************************************************
++ * trio_locale_set_thousand_separator
++ *
++ * See trio_locale_set_decimal_point
++ */
++#if TRIO_FEATURE_LOCALE || TRIO_EXTENSION
++TRIO_PUBLIC void
++trio_locale_set_thousand_separator
++TRIO_ARGS1((thousandSeparator),
++ char *thousandSeparator)
++{
++# if defined(USE_LOCALE)
++ if (NULL == internalLocaleValues)
++ {
++ TrioSetLocale();
++ }
++# endif
++ trio_copy_max(internalThousandSeparator,
++ sizeof(internalThousandSeparator),
++ thousandSeparator);
++ internalThousandSeparatorLength = trio_length(internalThousandSeparator);
++}
++#endif
++
++/*************************************************************************
++ * trio_locale_set_grouping
++ *
++ * Array of bytes. Reversed order.
++ *
++ * CHAR_MAX : No further grouping
++ * 0 : Repeat last group for the remaining digits (not necessary
++ * as C strings are zero-terminated)
++ * n : Set current group to n
++ *
++ * Same order as the grouping attribute in LC_NUMERIC.
++ */
++#if TRIO_FEATURE_LOCALE || TRIO_EXTENSION
++TRIO_PUBLIC void
++trio_locale_set_grouping
++TRIO_ARGS1((grouping),
++ char *grouping)
++{
++# if defined(USE_LOCALE)
++ if (NULL == internalLocaleValues)
++ {
++ TrioSetLocale();
++ }
++# endif
++ trio_copy_max(internalGrouping,
++ sizeof(internalGrouping),
++ grouping);
++}
++#endif
++
++
++/*************************************************************************
++ *
++ * SCANNING
++ *
++ ************************************************************************/
++
++#if TRIO_FEATURE_SCANF
++
++/*************************************************************************
++ * TrioSkipWhitespaces
++ */
++TRIO_PRIVATE int
++TrioSkipWhitespaces
++TRIO_ARGS1((self),
++ trio_class_t *self)
++{
++ int ch;
++
++ ch = self->current;
++ while (isspace(ch))
++ {
++ self->InStream(self, &ch);
++ }
++ return ch;
++}
++
++/*************************************************************************
++ * TrioGetCollation
++ */
++#if TRIO_EXTENSION
++TRIO_PRIVATE void
++TrioGetCollation(TRIO_NOARGS)
++{
++ int i;
++ int j;
++ int k;
++ char first[2];
++ char second[2];
++
++ /* This is computationally expensive */
++ first[1] = NIL;
++ second[1] = NIL;
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ {
++ k = 0;
++ first[0] = (char)i;
++ for (j = 0; j < MAX_CHARACTER_CLASS; j++)
++ {
++ second[0] = (char)j;
++ if (trio_equal_locale(first, second))
++ internalCollationArray[i][k++] = (char)j;
++ }
++ internalCollationArray[i][k] = NIL;
++ }
++}
++#endif
++
++/*************************************************************************
++ * TrioGetCharacterClass
++ *
++ * FIXME:
++ * multibyte
++ */
++TRIO_PRIVATE int
++TrioGetCharacterClass
++TRIO_ARGS4((format, offsetPointer, flagsPointer, characterclass),
++ TRIO_CONST char *format,
++ int *offsetPointer,
++ trio_flags_t *flagsPointer,
++ int *characterclass)
++{
++ int offset = *offsetPointer;
++ int i;
++ char ch;
++ char range_begin;
++ char range_end;
++
++ *flagsPointer &= ~FLAGS_EXCLUDE;
++
++ if (format[offset] == QUALIFIER_CIRCUMFLEX)
++ {
++ *flagsPointer |= FLAGS_EXCLUDE;
++ offset++;
++ }
++ /*
++ * If the ungroup character is at the beginning of the scanlist,
++ * it will be part of the class, and a second ungroup character
++ * must follow to end the group.
++ */
++ if (format[offset] == SPECIFIER_UNGROUP)
++ {
++ characterclass[(int)SPECIFIER_UNGROUP]++;
++ offset++;
++ }
++ /*
++ * Minus is used to specify ranges. To include minus in the class,
++ * it must be at the beginning of the list
++ */
++ if (format[offset] == QUALIFIER_MINUS)
++ {
++ characterclass[(int)QUALIFIER_MINUS]++;
++ offset++;
++ }
++ /* Collect characters */
++ for (ch = format[offset];
++ (ch != SPECIFIER_UNGROUP) && (ch != NIL);
++ ch = format[++offset])
++ {
++ switch (ch)
++ {
++ case QUALIFIER_MINUS: /* Scanlist ranges */
++
++ /*
++ * Both C99 and UNIX98 describes ranges as implementation-
++ * defined.
++ *
++ * We support the following behaviour (although this may
++ * change as we become wiser)
++ * - only increasing ranges, ie. [a-b] but not [b-a]
++ * - transitive ranges, ie. [a-b-c] == [a-c]
++ * - trailing minus, ie. [a-] is interpreted as an 'a'
++ * and a '-'
++ * - duplicates (although we can easily convert these
++ * into errors)
++ */
++ range_begin = format[offset - 1];
++ range_end = format[++offset];
++ if (range_end == SPECIFIER_UNGROUP)
++ {
++ /* Trailing minus is included */
++ characterclass[(int)ch]++;
++ ch = range_end;
++ break; /* for */
++ }
++ if (range_end == NIL)
++ return TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ if (range_begin > range_end)
++ return TRIO_ERROR_RETURN(TRIO_ERANGE, offset);
++
++ for (i = (int)range_begin; i <= (int)range_end; i++)
++ characterclass[i]++;
++
++ ch = range_end;
++ break;
++
++#if TRIO_EXTENSION
++
++ case SPECIFIER_GROUP:
++
++ switch (format[offset + 1])
++ {
++ case QUALIFIER_DOT: /* Collating symbol */
++ /*
++ * FIXME: This will be easier to implement when multibyte
++ * characters have been implemented. Until now, we ignore
++ * this feature.
++ */
++ for (i = offset + 2; ; i++)
++ {
++ if (format[i] == NIL)
++ /* Error in syntax */
++ return -1;
++ else if (format[i] == QUALIFIER_DOT)
++ break; /* for */
++ }
++ if (format[++i] != SPECIFIER_UNGROUP)
++ return -1;
++
++ offset = i;
++ break;
++
++ case QUALIFIER_EQUAL: /* Equivalence class expressions */
++ {
++ unsigned int j;
++ unsigned int k;
++
++ if (internalCollationUnconverted)
++ {
++ /* Lazy evaluation of collation array */
++ TrioGetCollation();
++ internalCollationUnconverted = FALSE;
++ }
++ for (i = offset + 2; ; i++)
++ {
++ if (format[i] == NIL)
++ /* Error in syntax */
++ return -1;
++ else if (format[i] == QUALIFIER_EQUAL)
++ break; /* for */
++ else
++ {
++ /* Mark any equivalent character */
++ k = (unsigned int)format[i];
++ for (j = 0; internalCollationArray[k][j] != NIL; j++)
++ characterclass[(int)internalCollationArray[k][j]]++;
++ }
++ }
++ if (format[++i] != SPECIFIER_UNGROUP)
++ return -1;
++
++ offset = i;
++ }
++ break;
++
++ case QUALIFIER_COLON: /* Character class expressions */
++
++ if (trio_equal_max(CLASS_ALNUM, sizeof(CLASS_ALNUM) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isalnum(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_ALNUM) - 1;
++ }
++ else if (trio_equal_max(CLASS_ALPHA, sizeof(CLASS_ALPHA) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isalpha(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_ALPHA) - 1;
++ }
++ else if (trio_equal_max(CLASS_CNTRL, sizeof(CLASS_CNTRL) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (iscntrl(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_CNTRL) - 1;
++ }
++ else if (trio_equal_max(CLASS_DIGIT, sizeof(CLASS_DIGIT) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isdigit(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_DIGIT) - 1;
++ }
++ else if (trio_equal_max(CLASS_GRAPH, sizeof(CLASS_GRAPH) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isgraph(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_GRAPH) - 1;
++ }
++ else if (trio_equal_max(CLASS_LOWER, sizeof(CLASS_LOWER) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (islower(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_LOWER) - 1;
++ }
++ else if (trio_equal_max(CLASS_PRINT, sizeof(CLASS_PRINT) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isprint(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_PRINT) - 1;
++ }
++ else if (trio_equal_max(CLASS_PUNCT, sizeof(CLASS_PUNCT) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (ispunct(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_PUNCT) - 1;
++ }
++ else if (trio_equal_max(CLASS_SPACE, sizeof(CLASS_SPACE) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isspace(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_SPACE) - 1;
++ }
++ else if (trio_equal_max(CLASS_UPPER, sizeof(CLASS_UPPER) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isupper(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_UPPER) - 1;
++ }
++ else if (trio_equal_max(CLASS_XDIGIT, sizeof(CLASS_XDIGIT) - 1,
++ &format[offset]))
++ {
++ for (i = 0; i < MAX_CHARACTER_CLASS; i++)
++ if (isxdigit(i))
++ characterclass[i]++;
++ offset += sizeof(CLASS_XDIGIT) - 1;
++ }
++ else
++ {
++ characterclass[(int)ch]++;
++ }
++ break;
++
++ default:
++ characterclass[(int)ch]++;
++ break;
++ }
++ break;
++
++#endif /* TRIO_EXTENSION */
++
++ default:
++ characterclass[(int)ch]++;
++ break;
++ }
++ }
++ return 0;
++}
++
++/*************************************************************************
++ * TrioReadNumber
++ *
++ * We implement our own number conversion in preference of strtol and
++ * strtoul, because we must handle 'long long' and thousand separators.
++ */
++TRIO_PRIVATE BOOLEAN_T
++TrioReadNumber
++TRIO_ARGS5((self, target, flags, width, base),
++ trio_class_t *self,
++ trio_uintmax_t *target,
++ trio_flags_t flags,
++ int width,
++ int base)
++{
++ trio_uintmax_t number = 0;
++ int digit;
++ int count;
++ BOOLEAN_T isNegative = FALSE;
++ BOOLEAN_T gotNumber = FALSE;
++ int j;
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++ assert((base >= MIN_BASE && base <= MAX_BASE) || (base == NO_BASE));
++
++ if (internalDigitsUnconverted)
++ {
++ /* Lazy evaluation of digits array */
++ memset(internalDigitArray, -1, sizeof(internalDigitArray));
++ for (j = 0; j < (int)sizeof(internalDigitsLower) - 1; j++)
++ {
++ internalDigitArray[(int)internalDigitsLower[j]] = j;
++ internalDigitArray[(int)internalDigitsUpper[j]] = j;
++ }
++ internalDigitsUnconverted = FALSE;
++ }
++
++ TrioSkipWhitespaces(self);
++
++ /* Leading sign */
++ if (self->current == '+')
++ {
++ self->InStream(self, NULL);
++ }
++ else if (self->current == '-')
++ {
++ self->InStream(self, NULL);
++ isNegative = TRUE;
++ }
++
++ count = self->processed;
++
++ if (flags & FLAGS_ALTERNATIVE)
++ {
++ switch (base)
++ {
++ case NO_BASE:
++ case BASE_OCTAL:
++ case BASE_HEX:
++ case BASE_BINARY:
++ if (self->current == '0')
++ {
++ self->InStream(self, NULL);
++ if (self->current)
++ {
++ if ((base == BASE_HEX) &&
++ (trio_to_upper(self->current) == 'X'))
++ {
++ self->InStream(self, NULL);
++ }
++ else if ((base == BASE_BINARY) &&
++ (trio_to_upper(self->current) == 'B'))
++ {
++ self->InStream(self, NULL);
++ }
++ }
++ }
++ else
++ return FALSE;
++ break;
++ default:
++ break;
++ }
++ }
++
++ while (((width == NO_WIDTH) || (self->processed - count < width)) &&
++ (! ((self->current == EOF) || isspace(self->current))))
++ {
++ if (isascii(self->current))
++ {
++ digit = internalDigitArray[self->current];
++ /* Abort if digit is not allowed in the specified base */
++ if ((digit == -1) || (digit >= base))
++ break;
++ }
++#if TRIO_FEATURE_QUOTE
++ else if (flags & FLAGS_QUOTE)
++ {
++ /* Compare with thousands separator */
++ for (j = 0; internalThousandSeparator[j] && self->current; j++)
++ {
++ if (internalThousandSeparator[j] != self->current)
++ break;
++
++ self->InStream(self, NULL);
++ }
++ if (internalThousandSeparator[j])
++ break; /* Mismatch */
++ else
++ continue; /* Match */
++ }
++#endif
++ else
++ break;
++
++ number *= base;
++ number += digit;
++ gotNumber = TRUE; /* we need at least one digit */
++
++ self->InStream(self, NULL);
++ }
++
++ /* Was anything read at all? */
++ if (!gotNumber)
++ return FALSE;
++
++ if (target)
++ *target = (isNegative) ? (trio_uintmax_t)(-((trio_intmax_t)number)) : number;
++ return TRUE;
++}
++
++/*************************************************************************
++ * TrioReadChar
++ */
++TRIO_PRIVATE int
++TrioReadChar
++TRIO_ARGS4((self, target, flags, width),
++ trio_class_t *self,
++ char *target,
++ trio_flags_t flags,
++ int width)
++{
++ int i;
++ char ch;
++ trio_uintmax_t number;
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++
++ for (i = 0;
++ (self->current != EOF) && (i < width);
++ i++)
++ {
++ ch = (char)self->current;
++ self->InStream(self, NULL);
++ if ((flags & FLAGS_ALTERNATIVE) && (ch == CHAR_BACKSLASH))
++ {
++ switch (self->current)
++ {
++ case '\\': ch = '\\'; break;
++ case 'a': ch = '\007'; break;
++ case 'b': ch = '\b'; break;
++ case 'f': ch = '\f'; break;
++ case 'n': ch = '\n'; break;
++ case 'r': ch = '\r'; break;
++ case 't': ch = '\t'; break;
++ case 'v': ch = '\v'; break;
++ default:
++ if (isdigit(self->current))
++ {
++ /* Read octal number */
++ if (!TrioReadNumber(self, &number, 0, 3, BASE_OCTAL))
++ return 0;
++ ch = (char)number;
++ }
++ else if (trio_to_upper(self->current) == 'X')
++ {
++ /* Read hexadecimal number */
++ self->InStream(self, NULL);
++ if (!TrioReadNumber(self, &number, 0, 2, BASE_HEX))
++ return 0;
++ ch = (char)number;
++ }
++ else
++ {
++ ch = (char)self->current;
++ }
++ break;
++ }
++ }
++
++ if (target)
++ target[i] = ch;
++ }
++ return i + 1;
++}
++
++/*************************************************************************
++ * TrioReadString
++ */
++TRIO_PRIVATE BOOLEAN_T
++TrioReadString
++TRIO_ARGS4((self, target, flags, width),
++ trio_class_t *self,
++ char *target,
++ trio_flags_t flags,
++ int width)
++{
++ int i;
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++
++ TrioSkipWhitespaces(self);
++
++ /*
++ * Continue until end of string is reached, a whitespace is encountered,
++ * or width is exceeded
++ */
++ for (i = 0;
++ ((width == NO_WIDTH) || (i < width)) &&
++ (! ((self->current == EOF) || isspace(self->current)));
++ i++)
++ {
++ if (TrioReadChar(self, (target ? &target[i] : 0), flags, 1) == 0)
++ break; /* for */
++ }
++ if (target)
++ target[i] = NIL;
++ return TRUE;
++}
++
++/*************************************************************************
++ * TrioReadWideChar
++ */
++#if TRIO_FEATURE_WIDECHAR
++TRIO_PRIVATE int
++TrioReadWideChar
++TRIO_ARGS4((self, target, flags, width),
++ trio_class_t *self,
++ trio_wchar_t *target,
++ trio_flags_t flags,
++ int width)
++{
++ int i;
++ int j;
++ int size;
++ int amount = 0;
++ trio_wchar_t wch;
++ char buffer[MB_LEN_MAX + 1];
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++
++ for (i = 0;
++ (self->current != EOF) && (i < width);
++ i++)
++ {
++ if (isascii(self->current))
++ {
++ if (TrioReadChar(self, buffer, flags, 1) == 0)
++ return 0;
++ buffer[1] = NIL;
++ }
++ else
++ {
++ /*
++ * Collect a multibyte character, by enlarging buffer until
++ * it contains a fully legal multibyte character, or the
++ * buffer is full.
++ */
++ j = 0;
++ do
++ {
++ buffer[j++] = (char)self->current;
++ buffer[j] = NIL;
++ self->InStream(self, NULL);
++ }
++ while ((j < (int)sizeof(buffer)) && (mblen(buffer, (size_t)j) != j));
++ }
++ if (target)
++ {
++ size = mbtowc(&wch, buffer, sizeof(buffer));
++ if (size > 0)
++ target[i] = wch;
++ }
++ amount += size;
++ self->InStream(self, NULL);
++ }
++ return amount;
++}
++#endif /* TRIO_FEATURE_WIDECHAR */
++
++/*************************************************************************
++ * TrioReadWideString
++ */
++#if TRIO_FEATURE_WIDECHAR
++TRIO_PRIVATE BOOLEAN_T
++TrioReadWideString
++TRIO_ARGS4((self, target, flags, width),
++ trio_class_t *self,
++ trio_wchar_t *target,
++ trio_flags_t flags,
++ int width)
++{
++ int i;
++ int size;
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++
++ TrioSkipWhitespaces(self);
++
++#if defined(TRIO_COMPILER_SUPPORTS_MULTIBYTE)
++ /* Required by TrioReadWideChar */
++ size = mblen(NULL, 0);
++#endif
++
++ /*
++ * Continue until end of string is reached, a whitespace is encountered,
++ * or width is exceeded
++ */
++ for (i = 0;
++ ((width == NO_WIDTH) || (i < width)) &&
++ (! ((self->current == EOF) || isspace(self->current)));
++ )
++ {
++ size = TrioReadWideChar(self, &target[i], flags, 1);
++ if (size == 0)
++ break; /* for */
++
++ i += size;
++ }
++ if (target)
++ target[i] = WCONST('\0');
++ return TRUE;
++}
++#endif /* TRIO_FEATURE_WIDECHAR */
++
++/*************************************************************************
++ * TrioReadGroup
++ *
++ * Reads non-empty character groups.
++ *
++ * FIXME: characterclass does not work with multibyte characters
++ */
++TRIO_PRIVATE BOOLEAN_T
++TrioReadGroup
++TRIO_ARGS5((self, target, characterclass, flags, width),
++ trio_class_t *self,
++ char *target,
++ int *characterclass,
++ trio_flags_t flags,
++ int width)
++{
++ int ch;
++ int i;
++
++ assert(VALID(self));
++ assert(VALID(self->InStream));
++
++ ch = self->current;
++ for (i = 0;
++ ((width == NO_WIDTH) || (i < width)) &&
++ (! ((ch == EOF) ||
++ (((flags & FLAGS_EXCLUDE) != 0) ^ (characterclass[ch] == 0))));
++ i++)
++ {
++ if (target)
++ target[i] = (char)ch;
++ self->InStream(self, &ch);
++ }
++
++ if (i == 0)
++ return FALSE;
++
++ /* Terminate the string if input saved */
++ if (target)
++ target[i] = NIL;
++ return TRUE;
++}
++
++/*************************************************************************
++ * TrioReadDouble
++ *
++ * FIXME:
++ * add long double
++ * handle base
++ */
++#if TRIO_FEATURE_FLOAT
++TRIO_PRIVATE BOOLEAN_T
++TrioReadDouble
++TRIO_ARGS4((self, target, flags, width),
++ trio_class_t *self,
++ trio_pointer_t target,
++ trio_flags_t flags,
++ int width)
++{
++ int ch;
++ char doubleString[512];
++ int offset = 0;
++ int start;
++# if TRIO_FEATURE_QUOTE
++ int j;
++# endif
++ BOOLEAN_T isHex = FALSE;
++ trio_long_double_t infinity;
++
++ doubleString[0] = 0;
++
++ if ((width == NO_WIDTH) || (width > (int)sizeof(doubleString) - 1))
++ width = sizeof(doubleString) - 1;
++
++ TrioSkipWhitespaces(self);
++
++ /*
++ * Read entire double number from stream. trio_to_double requires
++ * a string as input, but InStream can be anything, so we have to
++ * collect all characters.
++ */
++ ch = self->current;
++ if ((ch == '+') || (ch == '-'))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ width--;
++ }
++
++ start = offset;
++ switch (ch)
++ {
++ case 'n':
++ case 'N':
++ /* Not-a-number */
++ if (offset != 0)
++ break;
++ /* FALLTHROUGH */
++ case 'i':
++ case 'I':
++ /* Infinity */
++ while (isalpha(ch) && (offset - start < width))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++ doubleString[offset] = NIL;
++
++ /* Case insensitive string comparison */
++ if (trio_equal(&doubleString[start], INFINITE_UPPER) ||
++ trio_equal(&doubleString[start], LONG_INFINITE_UPPER))
++ {
++ infinity = ((start == 1) && (doubleString[0] == '-'))
++ ? trio_ninf()
++ : trio_pinf();
++ if (flags & FLAGS_LONGDOUBLE)
++ {
++ *((trio_long_double_t *)target) = infinity;
++ }
++ else if (flags & FLAGS_LONG)
++ {
++ *((double *)target) = infinity;
++ }
++ else
++ {
++ *((float *)target) = infinity;
++ }
++ return TRUE;
++ }
++ if (trio_equal(doubleString, NAN_UPPER))
++ {
++ /* NaN must not have a preceeding + nor - */
++ if (flags & FLAGS_LONGDOUBLE)
++ {
++ *((trio_long_double_t *)target) = trio_nan();
++ }
++ else if (flags & FLAGS_LONG)
++ {
++ *((double *)target) = trio_nan();
++ }
++ else
++ {
++ *((float *)target) = trio_nan();
++ }
++ return TRUE;
++ }
++ return FALSE;
++
++ case '0':
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ if (trio_to_upper(ch) == 'X')
++ {
++ isHex = TRUE;
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++ break;
++
++ default:
++ break;
++ }
++
++ while ((ch != EOF) && (offset - start < width))
++ {
++ /* Integer part */
++ if (isHex ? isxdigit(ch) : isdigit(ch))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++# if TRIO_FEATURE_QUOTE
++ else if (flags & FLAGS_QUOTE)
++ {
++ /* Compare with thousands separator */
++ for (j = 0; internalThousandSeparator[j] && self->current; j++)
++ {
++ if (internalThousandSeparator[j] != self->current)
++ break;
++
++ self->InStream(self, &ch);
++ }
++ if (internalThousandSeparator[j])
++ break; /* Mismatch */
++ else
++ continue; /* Match */
++ }
++# endif
++ else
++ break; /* while */
++ }
++ if (ch == '.')
++ {
++ /* Decimal part */
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ while ((isHex ? isxdigit(ch) : isdigit(ch)) &&
++ (offset - start < width))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++ }
++ if (isHex ? (trio_to_upper(ch) == 'P') : (trio_to_upper(ch) == 'E'))
++ {
++ /* Exponent */
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ if ((ch == '+') || (ch == '-'))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++ while (isdigit(ch) && (offset - start < width))
++ {
++ doubleString[offset++] = (char)ch;
++ self->InStream(self, &ch);
++ }
++ }
++
++ if ((offset == start) || (*doubleString == NIL))
++ return FALSE;
++
++ doubleString[offset] = 0;
++
++ if (flags & FLAGS_LONGDOUBLE)
++ {
++ *((trio_long_double_t *)target) = trio_to_long_double(doubleString, NULL);
++ }
++ else if (flags & FLAGS_LONG)
++ {
++ *((double *)target) = trio_to_double(doubleString, NULL);
++ }
++ else
++ {
++ *((float *)target) = trio_to_float(doubleString, NULL);
++ }
++ return TRUE;
++}
++#endif /* TRIO_FEATURE_FLOAT */
++
++/*************************************************************************
++ * TrioReadPointer
++ */
++TRIO_PRIVATE BOOLEAN_T
++TrioReadPointer
++TRIO_ARGS3((self, target, flags),
++ trio_class_t *self,
++ trio_pointer_t *target,
++ trio_flags_t flags)
++{
++ trio_uintmax_t number;
++ char buffer[sizeof(internalNullString)];
++
++ flags |= (FLAGS_UNSIGNED | FLAGS_ALTERNATIVE | FLAGS_NILPADDING);
++
++ if (TrioReadNumber(self,
++ &number,
++ flags,
++ POINTER_WIDTH,
++ BASE_HEX))
++ {
++ if (target)
++ {
++#if defined(TRIO_COMPILER_GCC) || defined(TRIO_COMPILER_MIPSPRO)
++ /*
++ * The strange assignment of number is a workaround for a compiler
++ * warning
++ */
++ *target = &((char *)0)[number];
++#else
++ *target = (trio_pointer_t)number;
++#endif
++ }
++ return TRUE;
++ }
++ else if (TrioReadString(self,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : buffer,
++ 0,
++ sizeof(internalNullString) - 1))
++ {
++ if (trio_equal_case(buffer, internalNullString))
++ {
++ if (target)
++ *target = NULL;
++ return TRUE;
++ }
++ }
++ return FALSE;
++}
++
++/*************************************************************************
++ * TrioScanProcess
++ */
++TRIO_PRIVATE int
++TrioScanProcess
++TRIO_ARGS3((data, format, parameters),
++ trio_class_t *data,
++ TRIO_CONST char *format,
++ trio_parameter_t *parameters)
++{
++ int status;
++ int assignment;
++ int ch;
++ int offset; /* Offset of format string */
++ int i; /* Offset of current parameter */
++ trio_flags_t flags;
++ int width;
++ int base;
++ trio_pointer_t pointer;
++
++ /* Return on empty format string */
++ if (format[0] == NIL)
++ return 0;
++
++ status = 0;
++ assignment = 0;
++ i = 0;
++ offset = 0;
++ data->InStream(data, &ch);
++
++ for (;;)
++ {
++ /* Skip the parameter entries */
++ while (parameters[i].type == FORMAT_PARAMETER)
++ {
++ assert(i <= MAX_PARAMETERS);
++ i++;
++ }
++
++ /* Compare non conversion-specifier part of format string */
++ while (offset < parameters[i].beginOffset)
++ {
++ if ((CHAR_IDENTIFIER == format[offset]) &&
++ (CHAR_IDENTIFIER == format[offset + 1]))
++ {
++ /* Two % in format matches one % in input stream */
++ if (CHAR_IDENTIFIER == ch)
++ {
++ data->InStream(data, &ch);
++ offset += 2;
++ continue; /* while format chars left */
++ }
++ else
++ {
++ status = TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ goto end;
++ }
++ }
++ else /* Not an % identifier */
++ {
++ if (isspace((int)format[offset]))
++ {
++ /* Whitespaces may match any amount of whitespaces */
++ ch = TrioSkipWhitespaces(data);
++ }
++ else if (ch == format[offset])
++ {
++ data->InStream(data, &ch);
++ }
++ else
++ {
++ status = assignment;
++ goto end;
++ }
++
++ offset++;
++ }
++ }
++
++ if (parameters[i].type == FORMAT_SENTINEL)
++ break;
++
++ if ((EOF == ch) && (parameters[i].type != FORMAT_COUNT))
++ {
++ status = (assignment > 0) ? assignment : EOF;
++ goto end;
++ }
++
++ flags = parameters[i].flags;
++
++ /* Find width */
++ width = parameters[i].width;
++ if (flags & FLAGS_WIDTH_PARAMETER)
++ {
++ /* Get width from parameter list */
++ width = (int)parameters[width].data.number.as_signed;
++ }
++
++ /* Find base */
++ if (NO_BASE != parameters[i].baseSpecifier)
++ {
++ /* Base from specifier has priority */
++ base = parameters[i].baseSpecifier;
++ }
++ else if (flags & FLAGS_BASE_PARAMETER)
++ {
++ /* Get base from parameter list */
++ base = parameters[i].base;
++ base = (int)parameters[base].data.number.as_signed;
++ }
++ else
++ {
++ /* Use base from format string */
++ base = parameters[i].base;
++ }
++
++ switch (parameters[i].type)
++ {
++ case FORMAT_INT:
++ {
++ trio_uintmax_t number;
++
++ if (0 == base)
++ base = BASE_DECIMAL;
++
++ if (!TrioReadNumber(data,
++ &number,
++ flags,
++ width,
++ base))
++ {
++ status = assignment;
++ goto end;
++ }
++
++ if (!(flags & FLAGS_IGNORE))
++ {
++ assignment++;
++
++ pointer = parameters[i].data.pointer;
++#if TRIO_FEATURE_SIZE_T || TRIO_FEATURE_SIZE_T_UPPER
++ if (flags & FLAGS_SIZE_T)
++ *(size_t *)pointer = (size_t)number;
++ else
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++ if (flags & FLAGS_PTRDIFF_T)
++ *(ptrdiff_t *)pointer = (ptrdiff_t)number;
++ else
++#endif
++#if TRIO_FEATURE_INTMAX_T
++ if (flags & FLAGS_INTMAX_T)
++ *(trio_intmax_t *)pointer = (trio_intmax_t)number;
++ else
++#endif
++ if (flags & FLAGS_QUAD)
++ *(trio_ulonglong_t *)pointer = (trio_ulonglong_t)number;
++ else if (flags & FLAGS_LONG)
++ *(long int *)pointer = (long int)number;
++ else if (flags & FLAGS_SHORT)
++ *(short int *)pointer = (short int)number;
++ else
++ *(int *)pointer = (int)number;
++ }
++ }
++ break; /* FORMAT_INT */
++
++ case FORMAT_STRING:
++#if TRIO_FEATURE_WIDECHAR
++ if (flags & FLAGS_WIDECHAR)
++ {
++ if (!TrioReadWideString(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : parameters[i].data.wstring,
++ flags,
++ width))
++ {
++ status = assignment;
++ goto end;
++ }
++ }
++ else
++#endif
++ {
++ if (!TrioReadString(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : parameters[i].data.string,
++ flags,
++ width))
++ {
++ status = assignment;
++ goto end;
++ }
++ }
++ if (!(flags & FLAGS_IGNORE))
++ assignment++;
++ break; /* FORMAT_STRING */
++
++#if TRIO_FEATURE_FLOAT
++ case FORMAT_DOUBLE:
++ {
++ if (flags & FLAGS_IGNORE)
++ {
++ pointer = NULL;
++ }
++ else
++ {
++ pointer = (flags & FLAGS_LONGDOUBLE)
++ ? (trio_pointer_t)parameters[i].data.longdoublePointer
++ : (trio_pointer_t)parameters[i].data.doublePointer;
++ }
++ if (!TrioReadDouble(data, pointer, flags, width))
++ {
++ status = assignment;
++ goto end;
++ }
++ if (!(flags & FLAGS_IGNORE))
++ {
++ assignment++;
++ }
++ break; /* FORMAT_DOUBLE */
++ }
++#endif
++
++ case FORMAT_GROUP:
++ {
++ int characterclass[MAX_CHARACTER_CLASS + 1];
++
++ /* Skip over modifiers */
++ while (format[offset] != SPECIFIER_GROUP)
++ {
++ offset++;
++ }
++ /* Skip over group specifier */
++ offset++;
++
++ memset(characterclass, 0, sizeof(characterclass));
++ status = TrioGetCharacterClass(format,
++ &offset,
++ &flags,
++ characterclass);
++ if (status < 0)
++ goto end;
++
++ if (!TrioReadGroup(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : parameters[i].data.string,
++ characterclass,
++ flags,
++ parameters[i].width))
++ {
++ status = assignment;
++ goto end;
++ }
++ if (!(flags & FLAGS_IGNORE))
++ assignment++;
++ }
++ break; /* FORMAT_GROUP */
++
++ case FORMAT_COUNT:
++ pointer = parameters[i].data.pointer;
++ if (NULL != pointer)
++ {
++ int count = data->processed;
++ if (ch != EOF)
++ count--; /* a character is read, but is not consumed yet */
++#if TRIO_FEATURE_SIZE_T || TRIO_FEATURE_SIZE_T_UPPER
++ if (flags & FLAGS_SIZE_T)
++ *(size_t *)pointer = (size_t)count;
++ else
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++ if (flags & FLAGS_PTRDIFF_T)
++ *(ptrdiff_t *)pointer = (ptrdiff_t)count;
++ else
++#endif
++#if TRIO_FEATURE_INTMAX_T
++ if (flags & FLAGS_INTMAX_T)
++ *(trio_intmax_t *)pointer = (trio_intmax_t)count;
++ else
++#endif
++ if (flags & FLAGS_QUAD)
++ {
++ *(trio_ulonglong_t *)pointer = (trio_ulonglong_t)count;
++ }
++ else if (flags & FLAGS_LONG)
++ {
++ *(long int *)pointer = (long int)count;
++ }
++ else if (flags & FLAGS_SHORT)
++ {
++ *(short int *)pointer = (short int)count;
++ }
++ else
++ {
++ *(int *)pointer = (int)count;
++ }
++ }
++ break; /* FORMAT_COUNT */
++
++ case FORMAT_CHAR:
++#if TRIO_FEATURE_WIDECHAR
++ if (flags & FLAGS_WIDECHAR)
++ {
++ if (TrioReadWideChar(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : parameters[i].data.wstring,
++ flags,
++ (width == NO_WIDTH) ? 1 : width) == 0)
++ {
++ status = assignment;
++ goto end;
++ }
++ }
++ else
++#endif
++ {
++ if (TrioReadChar(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : parameters[i].data.string,
++ flags,
++ (width == NO_WIDTH) ? 1 : width) == 0)
++ {
++ status = assignment;
++ goto end;
++ }
++ }
++ if (!(flags & FLAGS_IGNORE))
++ assignment++;
++ break; /* FORMAT_CHAR */
++
++ case FORMAT_POINTER:
++ if (!TrioReadPointer(data,
++ (flags & FLAGS_IGNORE)
++ ? NULL
++ : (trio_pointer_t *)parameters[i].data.pointer,
++ flags))
++ {
++ status = assignment;
++ goto end;
++ }
++ if (!(flags & FLAGS_IGNORE))
++ assignment++;
++ break; /* FORMAT_POINTER */
++
++ case FORMAT_PARAMETER:
++ break; /* FORMAT_PARAMETER */
++
++ default:
++ status = TRIO_ERROR_RETURN(TRIO_EINVAL, offset);
++ goto end;
++ }
++
++ ch = data->current;
++ offset = parameters[i].endOffset;
++ i++;
++ }
++
++ status = assignment;
++ end:
++ if (data->UndoStream)
++ data->UndoStream(data);
++ return status;
++}
++
++/*************************************************************************
++ * TrioScan
++ */
++TRIO_PRIVATE int
++TrioScan
++TRIO_ARGS7((source, sourceSize, InStream, UndoStream, format, arglist, argarray),
++ trio_pointer_t source,
++ size_t sourceSize,
++ void (*InStream) TRIO_PROTO((trio_class_t *, int *)),
++ void (*UndoStream) TRIO_PROTO((trio_class_t *)),
++ TRIO_CONST char *format,
++ va_list arglist,
++ trio_pointer_t *argarray)
++{
++ int status;
++ trio_parameter_t parameters[MAX_PARAMETERS];
++ trio_class_t data;
++
++ assert(VALID(InStream));
++ assert(VALID(format));
++
++ memset(&data, 0, sizeof(data));
++ data.InStream = InStream;
++ data.UndoStream = UndoStream;
++ data.location = (trio_pointer_t)source;
++ data.max = sourceSize;
++ data.error = 0;
++
++#if defined(USE_LOCALE)
++ if (NULL == internalLocaleValues)
++ {
++ TrioSetLocale();
++ }
++#endif
++
++ status = TrioParse(TYPE_SCAN, format, parameters, arglist, argarray);
++ if (status < 0)
++ return status;
++
++ status = TrioScanProcess(&data, format, parameters);
++ if (data.error != 0)
++ {
++ status = data.error;
++ }
++ return status;
++}
++
++/*************************************************************************
++ * TrioInStreamFile
++ */
++#if TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO
++TRIO_PRIVATE void
++TrioInStreamFile
++TRIO_ARGS2((self, intPointer),
++ trio_class_t *self,
++ int *intPointer)
++{
++ FILE *file = (FILE *)self->location;
++
++ assert(VALID(self));
++ assert(VALID(file));
++
++ self->actually.cached = 0;
++
++ /* The initial value of self->current is zero */
++ if (self->current == EOF)
++ {
++ self->error = (ferror(file))
++ ? TRIO_ERROR_RETURN(TRIO_ERRNO, 0)
++ : TRIO_ERROR_RETURN(TRIO_EOF, 0);
++ }
++ else
++ {
++ self->processed++;
++ self->actually.cached++;
++ }
++
++ self->current = fgetc(file);
++
++ if (VALID(intPointer))
++ {
++ *intPointer = self->current;
++ }
++}
++#endif /* TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO */
++
++/*************************************************************************
++ * TrioUndoStreamFile
++ */
++#if TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO
++TRIO_PRIVATE void
++TrioUndoStreamFile
++TRIO_ARGS1((self),
++ trio_class_t *self)
++{
++ FILE *file = (FILE *)self->location;
++
++ assert(VALID(self));
++ assert(VALID(file));
++
++ if (self->actually.cached > 0)
++ {
++ assert(self->actually.cached == 1);
++
++ self->current = ungetc(self->current, file);
++ self->actually.cached = 0;
++ }
++}
++#endif /* TRIO_FEATURE_FILE || TRIO_FEATURE_STDIO */
++
++/*************************************************************************
++ * TrioInStreamFileDescriptor
++ */
++#if TRIO_FEATURE_FD
++TRIO_PRIVATE void
++TrioInStreamFileDescriptor
++TRIO_ARGS2((self, intPointer),
++ trio_class_t *self,
++ int *intPointer)
++{
++ int fd = *((int *)self->location);
++ int size;
++ unsigned char input;
++
++ assert(VALID(self));
++
++ self->actually.cached = 0;
++
++ size = read(fd, &input, sizeof(char));
++ if (size == -1)
++ {
++ self->error = TRIO_ERROR_RETURN(TRIO_ERRNO, 0);
++ self->current = EOF;
++ }
++ else
++ {
++ self->current = (size == 0) ? EOF : input;
++ }
++ if (self->current != EOF)
++ {
++ self->actually.cached++;
++ self->processed++;
++ }
++
++ if (VALID(intPointer))
++ {
++ *intPointer = self->current;
++ }
++}
++#endif /* TRIO_FEATURE_FD */
++
++/*************************************************************************
++ * TrioInStreamCustom
++ */
++#if TRIO_FEATURE_CLOSURE
++TRIO_PRIVATE void
++TrioInStreamCustom
++TRIO_ARGS2((self, intPointer),
++ trio_class_t *self,
++ int *intPointer)
++{
++ trio_custom_t *data;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ self->actually.cached = 0;
++
++ data = (trio_custom_t *)self->location;
++
++ self->current = (data->stream.in == NULL)
++ ? NIL
++ : (data->stream.in)(data->closure);
++
++ if (self->current == NIL)
++ {
++ self->current = EOF;
++ }
++ else
++ {
++ self->processed++;
++ self->actually.cached++;
++ }
++
++ if (VALID(intPointer))
++ {
++ *intPointer = self->current;
++ }
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++/*************************************************************************
++ * TrioInStreamString
++ */
++TRIO_PRIVATE void
++TrioInStreamString
++TRIO_ARGS2((self, intPointer),
++ trio_class_t *self,
++ int *intPointer)
++{
++ unsigned char **buffer;
++
++ assert(VALID(self));
++ assert(VALID(self->location));
++
++ self->actually.cached = 0;
++
++ buffer = (unsigned char **)self->location;
++ self->current = (*buffer)[0];
++ if (self->current == NIL)
++ {
++ self->current = EOF;
++ }
++ else
++ {
++ (*buffer)++;
++ self->processed++;
++ self->actually.cached++;
++ }
++
++ if (VALID(intPointer))
++ {
++ *intPointer = self->current;
++ }
++}
++
++/*************************************************************************
++ *
++ * Formatted scanning functions
++ *
++ ************************************************************************/
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_scanf.h"
++#endif
++/** @addtogroup Scanf
++ @{
++*/
++
++/*************************************************************************
++ * scanf
++ */
++
++/**
++ Scan characters from standard input stream.
++
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_scanf
++TRIO_VARGS2((format, va_alist),
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioScan((trio_pointer_t)stdin, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/**
++ Scan characters from standard input stream.
++
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_vscanf
++TRIO_ARGS2((format, args),
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)stdin, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, args, NULL);
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/**
++ Scan characters from standard input stream.
++
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_STDIO
++TRIO_PUBLIC int
++trio_scanfv
++TRIO_ARGS2((format, args),
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)stdin, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, unused, args);
++}
++#endif /* TRIO_FEATURE_STDIO */
++
++/*************************************************************************
++ * fscanf
++ */
++
++/**
++ Scan characters from file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_fscanf
++TRIO_VARGS3((file, format, va_alist),
++ FILE *file,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(file));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioScan((trio_pointer_t)file, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/**
++ Scan characters from file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_vfscanf
++TRIO_ARGS3((file, format, args),
++ FILE *file,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(file));
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)file, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, args, NULL);
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/**
++ Scan characters from file.
++
++ @param file File pointer.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FILE
++TRIO_PUBLIC int
++trio_fscanfv
++TRIO_ARGS3((file, format, args),
++ FILE *file,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++
++ assert(VALID(file));
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)file, 0,
++ TrioInStreamFile,
++ TrioUndoStreamFile,
++ format, unused, args);
++}
++#endif /* TRIO_FEATURE_FILE */
++
++/*************************************************************************
++ * dscanf
++ */
++
++/**
++ Scan characters from file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_dscanf
++TRIO_VARGS3((fd, format, va_alist),
++ int fd,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioScan((trio_pointer_t)&fd, 0,
++ TrioInStreamFileDescriptor,
++ NULL,
++ format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_FD */
++
++/**
++ Scan characters from file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_vdscanf
++TRIO_ARGS3((fd, format, args),
++ int fd,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)&fd, 0,
++ TrioInStreamFileDescriptor,
++ NULL,
++ format, args, NULL);
++}
++#endif /* TRIO_FEATURE_FD */
++
++/**
++ Scan characters from file descriptor.
++
++ @param fd File descriptor.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++#if TRIO_FEATURE_FD
++TRIO_PUBLIC int
++trio_dscanfv
++TRIO_ARGS3((fd, format, args),
++ int fd,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)&fd, 0,
++ TrioInStreamFileDescriptor,
++ NULL,
++ format, unused, args);
++}
++#endif /* TRIO_FEATURE_FD */
++
++/*************************************************************************
++ * cscanf
++ */
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_cscanf
++TRIO_VARGS4((stream, closure, format, va_alist),
++ trio_instream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ data.stream.in = stream;
++ data.closure = closure;
++ status = TrioScan(&data, 0, TrioInStreamCustom, NULL, format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_vcscanf
++TRIO_ARGS4((stream, closure, format, args),
++ trio_instream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ data.stream.in = stream;
++ data.closure = closure;
++ return TrioScan(&data, 0, TrioInStreamCustom, NULL, format, args, NULL);
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++#if TRIO_FEATURE_CLOSURE
++TRIO_PUBLIC int
++trio_cscanfv
++TRIO_ARGS4((stream, closure, format, args),
++ trio_instream_t stream,
++ trio_pointer_t closure,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++ trio_custom_t data;
++
++ assert(VALID(stream));
++ assert(VALID(format));
++
++ data.stream.in = stream;
++ data.closure = closure;
++ return TrioScan(&data, 0, TrioInStreamCustom, NULL, format, unused, args);
++}
++#endif /* TRIO_FEATURE_CLOSURE */
++
++/*************************************************************************
++ * sscanf
++ */
++
++/**
++ Scan characters from string.
++
++ @param buffer Input string.
++ @param format Formatting string.
++ @param ... Arguments.
++ @return Number of scanned characters.
++ */
++TRIO_PUBLIC int
++trio_sscanf
++TRIO_VARGS3((buffer, format, va_alist),
++ TRIO_CONST char *buffer,
++ TRIO_CONST char *format,
++ TRIO_VA_DECL)
++{
++ int status;
++ va_list args;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ TRIO_VA_START(args, format);
++ status = TrioScan((trio_pointer_t)&buffer, 0,
++ TrioInStreamString,
++ NULL,
++ format, args, NULL);
++ TRIO_VA_END(args);
++ return status;
++}
++
++/**
++ Scan characters from string.
++
++ @param buffer Input string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++TRIO_PUBLIC int
++trio_vsscanf
++TRIO_ARGS3((buffer, format, args),
++ TRIO_CONST char *buffer,
++ TRIO_CONST char *format,
++ va_list args)
++{
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)&buffer, 0,
++ TrioInStreamString,
++ NULL,
++ format, args, NULL);
++}
++
++/**
++ Scan characters from string.
++
++ @param buffer Input string.
++ @param format Formatting string.
++ @param args Arguments.
++ @return Number of scanned characters.
++ */
++TRIO_PUBLIC int
++trio_sscanfv
++TRIO_ARGS3((buffer, format, args),
++ TRIO_CONST char *buffer,
++ TRIO_CONST char *format,
++ trio_pointer_t *args)
++{
++ static va_list unused;
++
++ assert(VALID(buffer));
++ assert(VALID(format));
++
++ return TrioScan((trio_pointer_t)&buffer, 0,
++ TrioInStreamString,
++ NULL,
++ format, unused, args);
++}
++
++#endif /* TRIO_FEATURE_SCANF */
++
++/** @} End of Scanf documentation module */
++
++/*************************************************************************
++ * trio_strerror
++ */
++TRIO_PUBLIC TRIO_CONST char *
++trio_strerror
++TRIO_ARGS1((errorcode),
++ int errorcode)
++{
++#if TRIO_FEATURE_STRERR
++ /* Textual versions of the error codes */
++ switch (TRIO_ERROR_CODE(errorcode))
++ {
++ case TRIO_EOF:
++ return "End of file";
++ case TRIO_EINVAL:
++ return "Invalid argument";
++ case TRIO_ETOOMANY:
++ return "Too many arguments";
++ case TRIO_EDBLREF:
++ return "Double reference";
++ case TRIO_EGAP:
++ return "Reference gap";
++ case TRIO_ENOMEM:
++ return "Out of memory";
++ case TRIO_ERANGE:
++ return "Invalid range";
++ case TRIO_ECUSTOM:
++ return "Custom error";
++ default:
++ return "Unknown";
++ }
++#else
++ return "Unknown";
++#endif
++}
+diff -up ghostscript-9.07/trio/triodef.h.gs_sprintf ghostscript-9.07/trio/triodef.h
+--- ghostscript-9.07/trio/triodef.h.gs_sprintf 2013-05-09 17:02:39.112447283 +0100
++++ ghostscript-9.07/trio/triodef.h 2013-05-09 17:02:39.111447279 +0100
+@@ -0,0 +1,336 @@
++/*************************************************************************
++ *
++ * $Id: triodef.h,v 1.35 2009/09/20 11:37:14 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++#ifndef TRIO_TRIODEF_H
++#define TRIO_TRIODEF_H
++
++/*************************************************************************
++ * Compiler support detection
++ */
++
++#if defined(__GNUC__)
++# define TRIO_COMPILER_GCC
++#endif
++
++#if defined(__SUNPRO_CC)
++# define TRIO_COMPILER_SUNPRO __SUNPRO_CC
++#else
++# if defined(__SUNPRO_C)
++# define TRIO_COMPILER_SUNPRO __SUNPRO_C
++# endif
++#endif
++
++#if defined(__xlC__) || defined(__IBMC__) || defined(__IBMCPP__)
++# define TRIO_COMPILER_XLC
++#else
++# if defined(_AIX) && !defined(__GNUC__)
++# define TRIO_COMPILER_XLC /* Workaround for old xlc */
++# endif
++#endif
++
++#if defined(__DECC) || defined(__DECCXX)
++# define TRIO_COMPILER_DECC
++#else
++# if defined(__osf__) && defined(__LANGUAGE_C__) && !defined(__GNUC__)
++# define TRIO_COMPILER_DECC /* Workaround for old DEC C compilers */
++# endif
++#endif
++
++#if defined(__HP_aCC) || defined(__HP_cc)
++# define TRIO_COMPILER_HP
++#endif
++
++#if defined(sgi) || defined(__sgi)
++# define TRIO_COMPILER_MIPSPRO
++#endif
++
++#if defined(_MSC_VER)
++# define TRIO_COMPILER_MSVC
++#endif
++
++#if defined(__BORLANDC__)
++# define TRIO_COMPILER_BCB
++#endif
++
++/*************************************************************************
++ * Platform support detection
++ */
++
++#if defined(VMS) || defined(__VMS)
++# define TRIO_PLATFORM_VMS
++#endif
++
++#if defined(unix) || defined(__unix) || defined(__unix__)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(TRIO_COMPILER_XLC) || defined(_AIX)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(TRIO_COMPILER_DECC) || defined(__osf___)
++# if !defined(TRIO_PLATFORM_VMS)
++# define TRIO_PLATFORM_UNIX
++# endif
++#endif
++
++#if defined(__NetBSD__)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(__Lynx__)
++# define TRIO_PLATFORM_UNIX
++# define TRIO_PLATFORM_LYNX
++#endif
++
++#if defined(__APPLE__) && defined(__MACH__)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(__QNX__)
++# define TRIO_PLATFORM_UNIX
++# define TRIO_PLATFORM_QNX
++#endif
++
++#if defined(__CYGWIN__)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(AMIGA) && defined(TRIO_COMPILER_GCC)
++# define TRIO_PLATFORM_UNIX
++#endif
++
++#if defined(TRIO_COMPILER_MSVC) || defined(WIN32) || defined(_WIN32)
++# define TRIO_PLATFORM_WIN32
++#endif
++
++#if defined(_WIN32_WCE)
++# define TRIO_PLATFORM_WINCE
++#endif
++
++#if defined(mpeix) || defined(__mpexl)
++# define TRIO_PLATFORM_MPEIX
++#endif
++
++#if defined(_AIX)
++# define TRIO_PLATFORM_AIX
++#endif
++
++#if defined(__hpux)
++# define TRIO_PLATFORM_HPUX
++#endif
++
++#if defined(sun) || defined(__sun__)
++# if defined(__SVR4) || defined(__svr4__)
++# define TRIO_PLATFORM_SOLARIS
++# else
++# define TRIO_PLATFORM_SUNOS
++# endif
++#endif
++
++/*************************************************************************
++ * Standards support detection
++ */
++
++#if defined(__STDC__) \
++ || defined(_MSC_EXTENSIONS) \
++ || defined(TRIO_COMPILER_BCB)
++# define PREDEF_STANDARD_C89
++#endif
++#if defined(__STDC_VERSION__)
++# define PREDEF_STANDARD_C90
++#endif
++#if defined (__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199409L)
++# define PREDEF_STANDARD_C94
++#endif
++#if defined (__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)
++# define PREDEF_STANDARD_C99
++#endif
++
++#if defined(TRIO_COMPILER_SUNPRO) && (TRIO_COMPILER_SUNPRO >= 0x420)
++# if !defined(PREDEF_STANDARD_C94)
++# define PREDEF_STANDARD_C94
++# endif
++#endif
++
++#if defined(__cplusplus)
++# define PREDEF_STANDARD_CXX
++#endif
++#if defined(__cplusplus) && __cplusplus - 0 >= 199711L
++# define PREDEF_STANDARD_CXX89
++#endif
++
++#if defined(TRIO_PLATFORM_UNIX)
++# include <unistd.h>
++#endif
++
++#if defined(_POSIX_VERSION)
++# define PREDEF_STANDARD_POSIX _POSIX_VERSION
++# if (_POSIX_VERSION >= 199506L)
++# define PREDEF_STANDARD_POSIX_1996
++# endif
++#endif
++
++#if (_XOPEN_VERSION - 0 >= 3) || defined(_XOPEN_XPG3)
++# define PREDEF_STANDARD_XPG3
++#endif
++#if (_XOPEN_VERSION - 0 >= 4) || defined(_XOPEN_XPG4)
++# define PREDEF_STANDARD_XPG4
++#endif
++#if (_XOPEN_VERSION - 0 > 4) \
++ || (defined(_XOPEN_UNIX) && (_XOPEN_VERSION - 0 == 4))
++# define PREDEF_STANDARD_UNIX95
++#endif
++#if (_XOPEN_VERSION - 0 >= 500)
++# define PREDEF_STANDARD_UNIX98
++#endif
++#if (_XOPEN_VERSION - 0 >= 600)
++# define PREDEF_STANDARD_UNIX03
++#endif
++
++/*************************************************************************
++ * Generic defines
++ */
++
++#if !defined(TRIO_PUBLIC)
++# define TRIO_PUBLIC
++#endif
++#if !defined(TRIO_PRIVATE)
++# define TRIO_PRIVATE static
++#endif
++
++#if !(defined(PREDEF_STANDARD_C89) || defined(PREDEF_STANDARD_CXX))
++# define TRIO_COMPILER_ANCIENT
++#endif
++
++#if defined(TRIO_COMPILER_ANCIENT)
++# define TRIO_CONST
++# define TRIO_VOLATILE
++# define TRIO_SIGNED
++typedef double trio_long_double_t;
++typedef char * trio_pointer_t;
++# define TRIO_SUFFIX_LONG(x) x
++# define TRIO_PROTO(x) ()
++# define TRIO_NOARGS
++# define TRIO_ARGS1(list,a1) list a1;
++# define TRIO_ARGS2(list,a1,a2) list a1; a2;
++# define TRIO_ARGS3(list,a1,a2,a3) list a1; a2; a3;
++# define TRIO_ARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4;
++# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5;
++# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) list a1; a2; a3; a4; a5; a6;
++# define TRIO_ARGS7(list,a1,a2,a3,a4,a5,a6,a7) list a1; a2; a3; a4; a5; a6; a7;
++# define TRIO_VARGS2(list,a1,a2) list a1; a2
++# define TRIO_VARGS3(list,a1,a2,a3) list a1; a2; a3
++# define TRIO_VARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4
++# define TRIO_VARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5
++# define TRIO_VA_DECL va_dcl
++# define TRIO_VA_START(x,y) va_start(x)
++# define TRIO_VA_END(x) va_end(x)
++#else /* ANSI C */
++# define TRIO_CONST const
++# define TRIO_VOLATILE volatile
++# define TRIO_SIGNED signed
++typedef long double trio_long_double_t;
++typedef void * trio_pointer_t;
++# define TRIO_SUFFIX_LONG(x) x ## L
++# define TRIO_PROTO(x) x
++# define TRIO_NOARGS void
++# define TRIO_ARGS1(list,a1) (a1)
++# define TRIO_ARGS2(list,a1,a2) (a1,a2)
++# define TRIO_ARGS3(list,a1,a2,a3) (a1,a2,a3)
++# define TRIO_ARGS4(list,a1,a2,a3,a4) (a1,a2,a3,a4)
++# define TRIO_ARGS5(list,a1,a2,a3,a4,a5) (a1,a2,a3,a4,a5)
++# define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) (a1,a2,a3,a4,a5,a6)
++# define TRIO_ARGS7(list,a1,a2,a3,a4,a5,a6,a7) (a1,a2,a3,a4,a5,a6,a7)
++# define TRIO_VARGS2 TRIO_ARGS2
++# define TRIO_VARGS3 TRIO_ARGS3
++# define TRIO_VARGS4 TRIO_ARGS4
++# define TRIO_VARGS5 TRIO_ARGS5
++# define TRIO_VA_DECL ...
++# define TRIO_VA_START(x,y) va_start(x,y)
++# define TRIO_VA_END(x) va_end(x)
++#endif
++
++#if defined(PREDEF_STANDARD_C99) || defined(PREDEF_STANDARD_CXX)
++# define TRIO_INLINE inline
++#else
++# if defined(TRIO_COMPILER_GCC)
++# define TRIO_INLINE __inline__
++# endif
++# if defined(TRIO_COMPILER_MSVC)
++# define TRIO_INLINE _inline
++# endif
++# if defined(TRIO_COMPILER_BCB)
++# define TRIO_INLINE __inline
++# endif
++#endif
++#if !defined(TRIO_INLINE)
++# define TRIO_INLINE
++#endif
++
++/*************************************************************************
++ * Workarounds
++ */
++
++#if defined(TRIO_PLATFORM_VMS)
++/*
++ * Computations done with constants at compile time can trigger these
++ * even when compiling with IEEE enabled.
++ */
++# pragma message disable (UNDERFLOW, FLOATOVERFL)
++
++# if (__CRTL_VER < 80210001)
++/*
++ * Although the compiler supports C99 language constructs, the C
++ * run-time library does not contain all C99 functions.
++ */
++# if defined(PREDEF_STANDARD_C99)
++# undef PREDEF_STANDARD_C99
++# endif
++# endif
++#endif
++
++/*
++ * Not all preprocessors supports the LL token.
++ */
++#if defined(TRIO_COMPILER_MSVC) || defined(TRIO_COMPILER_BCB)
++#else
++# define TRIO_COMPILER_SUPPORTS_LL
++#endif
++
++#if defined(__CYGWIN__)
++/*
++ * Cygwin defines the macros for hosted C99, but does not support certain
++ * long double math functions.
++ */
++# include <cygwin/version.h>
++# define TRIO_CYGWIN_VERSION_API CYGWIN_VERSION_API_MAJOR * 1000 + \
++ CYGWIN_VERSION_API_MINOR
++/*
++ * Please change the version number below when the Cygwin API supports
++ * long double math functions (powl, fmodl, etc.)
++ */
++# if TRIO_CYGWIN_VERSION_API < 99999999
++# define TRIO_NO_FLOORL 1
++# define TRIO_NO_CEILL 1
++# define TRIO_NO_POWL 1
++# define TRIO_NO_FMODL 1
++# define TRIO_NO_LOG10L 1
++# endif
++#endif
++
++#endif /* TRIO_TRIODEF_H */
+diff -up ghostscript-9.07/trio/trio.h.gs_sprintf ghostscript-9.07/trio/trio.h
+--- ghostscript-9.07/trio/trio.h.gs_sprintf 2013-05-09 17:02:39.112447283 +0100
++++ ghostscript-9.07/trio/trio.h 2013-05-09 17:02:39.112447283 +0100
+@@ -0,0 +1,235 @@
++/*************************************************************************
++ *
++ * $Id: trio.h,v 1.19 2009/09/13 10:12:22 breese Exp $
++ *
++ * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ *************************************************************************
++ *
++ * http://ctrio.sourceforge.net/
++ *
++ ************************************************************************/
++
++#ifndef TRIO_TRIO_H
++#define TRIO_TRIO_H
++
++#if !defined(WITHOUT_TRIO)
++
++/*
++ * Use autoconf defines if present. Packages using trio must define
++ * HAVE_CONFIG_H as a compiler option themselves.
++ */
++#if defined(HAVE_CONFIG_H)
++# include <config.h>
++#endif
++
++#include "triop.h"
++
++#include <stdio.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*
++ * Error codes.
++ *
++ * Remember to add a textual description to trio_strerror.
++ */
++enum {
++ TRIO_EOF = 1,
++ TRIO_EINVAL = 2,
++ TRIO_ETOOMANY = 3,
++ TRIO_EDBLREF = 4,
++ TRIO_EGAP = 5,
++ TRIO_ENOMEM = 6,
++ TRIO_ERANGE = 7,
++ TRIO_ERRNO = 8,
++ TRIO_ECUSTOM = 9
++};
++
++/* Error macros */
++#define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF)
++#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
++#define TRIO_ERROR_NAME(x) trio_strerror(x)
++
++typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int));
++typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t));
++
++TRIO_CONST char *trio_strerror TRIO_PROTO((int));
++
++/*************************************************************************
++ * Print Functions
++ */
++
++int trio_printf TRIO_PROTO((TRIO_CONST char *format, ...));
++int trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
++int trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args));
++
++int trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
++int trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
++int trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
++
++int trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
++int trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
++int trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
++
++int trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, ...));
++int trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, va_list args));
++int trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, void **args));
++
++int trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...));
++int trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args));
++int trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args));
++
++int trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
++int trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
++ va_list args));
++int trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
++ void **args));
++
++int trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
++int trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
++ va_list args));
++
++#if defined(TRIO_DEPRECATED)
++char *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...));
++char *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
++#endif
++
++int trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...));
++int trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args));
++int trio_asprintfv TRIO_PROTO((char **result, TRIO_CONST char *format, trio_pointer_t * args));
++
++/*************************************************************************
++ * Scan Functions
++ */
++int trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...));
++int trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args));
++int trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args));
++
++int trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
++int trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
++int trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
++
++int trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
++int trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
++int trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
++
++int trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, ...));
++int trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, va_list args));
++int trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
++ TRIO_CONST char *format, void **args));
++
++int trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...));
++int trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args));
++int trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args));
++
++/*************************************************************************
++ * Locale Functions
++ */
++void trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint));
++void trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator));
++void trio_locale_set_grouping TRIO_PROTO((char *grouping));
++
++/*************************************************************************
++ * Renaming
++ */
++#ifdef TRIO_REPLACE_STDIO
++/* Replace the <stdio.h> functions */
++#ifndef HAVE_PRINTF
++# undef printf
++# define printf trio_printf
++#endif
++#ifndef HAVE_VPRINTF
++# undef vprintf
++# define vprintf trio_vprintf
++#endif
++#ifndef HAVE_FPRINTF
++# undef fprintf
++# define fprintf trio_fprintf
++#endif
++#ifndef HAVE_VFPRINTF
++# undef vfprintf
++# define vfprintf trio_vfprintf
++#endif
++#ifndef HAVE_SPRINTF
++# undef sprintf
++# define sprintf trio_sprintf
++#endif
++#ifndef HAVE_VSPRINTF
++# undef vsprintf
++# define vsprintf trio_vsprintf
++#endif
++#ifndef HAVE_SNPRINTF
++# undef snprintf
++# define snprintf trio_snprintf
++#endif
++#ifndef HAVE_VSNPRINTF
++# undef vsnprintf
++# define vsnprintf trio_vsnprintf
++#endif
++#ifndef HAVE_SCANF
++# undef scanf
++# define scanf trio_scanf
++#endif
++#ifndef HAVE_VSCANF
++# undef vscanf
++# define vscanf trio_vscanf
++#endif
++#ifndef HAVE_FSCANF
++# undef fscanf
++# define fscanf trio_fscanf
++#endif
++#ifndef HAVE_VFSCANF
++# undef vfscanf
++# define vfscanf trio_vfscanf
++#endif
++#ifndef HAVE_SSCANF
++# undef sscanf
++# define sscanf trio_sscanf
++#endif
++#ifndef HAVE_VSSCANF
++# undef vsscanf
++# define vsscanf trio_vsscanf
++#endif
++/* These aren't stdio functions, but we make them look similar */
++#undef dprintf
++#define dprintf trio_dprintf
++#undef vdprintf
++#define vdprintf trio_vdprintf
++#undef aprintf
++#define aprintf trio_aprintf
++#undef vaprintf
++#define vaprintf trio_vaprintf
++#undef asprintf
++#define asprintf trio_asprintf
++#undef vasprintf
++#define vasprintf trio_vasprintf
++#undef dscanf
++#define dscanf trio_dscanf
++#undef vdscanf
++#define vdscanf trio_vdscanf
++#endif
++
++#ifdef __cplusplus
++} /* extern "C" */
++#endif
++
++#endif /* WITHOUT_TRIO */
++
++#endif /* TRIO_TRIO_H */
+diff -up ghostscript-9.07/trio/trionan.c.gs_sprintf ghostscript-9.07/trio/trionan.c
+--- ghostscript-9.07/trio/trionan.c.gs_sprintf 2013-05-09 17:02:39.112447283 +0100
++++ ghostscript-9.07/trio/trionan.c 2013-05-09 17:02:39.112447283 +0100
+@@ -0,0 +1,1257 @@
++/*************************************************************************
++ *
++ * $Id: trionan.c,v 1.33 2005/05/29 11:57:25 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************
++ *
++ * Functions to handle special quantities in floating-point numbers
++ * (that is, NaNs and infinity). They provide the capability to detect
++ * and fabricate special quantities.
++ *
++ * Although written to be as portable as possible, it can never be
++ * guaranteed to work on all platforms, as not all hardware supports
++ * special quantities.
++ *
++ * The approach used here (approximately) is to:
++ *
++ * 1. Use C99 functionality when available.
++ * 2. Use IEEE 754 bit-patterns if possible.
++ * 3. Use platform-specific techniques.
++ *
++ ************************************************************************/
++
++/*************************************************************************
++ * Include files
++ */
++#include "triodef.h"
++#include "trionan.h"
++
++#include <math.h>
++#include <string.h>
++#include <limits.h>
++#if !defined(TRIO_PLATFORM_SYMBIAN)
++# include <float.h>
++#endif
++#if defined(TRIO_PLATFORM_UNIX)
++# include <signal.h>
++#endif
++#if defined(TRIO_COMPILER_DECC)
++# include <fp_class.h>
++#endif
++#include <assert.h>
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_nan.h"
++#endif
++/** @addtogroup SpecialQuantities
++ @{
++*/
++
++/*************************************************************************
++ * Definitions
++ */
++
++#if !defined(TRIO_PUBLIC_NAN)
++# define TRIO_PUBLIC_NAN TRIO_PUBLIC
++#endif
++#if !defined(TRIO_PRIVATE_NAN)
++# define TRIO_PRIVATE_NAN TRIO_PRIVATE
++#endif
++
++#define TRIO_TRUE (1 == 1)
++#define TRIO_FALSE (0 == 1)
++
++/*
++ * We must enable IEEE floating-point on Alpha
++ */
++#if defined(__alpha) && !defined(_IEEE_FP)
++# if defined(TRIO_COMPILER_DECC)
++# if defined(TRIO_PLATFORM_VMS)
++# error "Must be compiled with option /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE"
++# else
++# if !defined(_CFE)
++# error "Must be compiled with option -ieee"
++# endif
++# endif
++# else
++# if defined(TRIO_COMPILER_GCC)
++# error "Must be compiled with option -mieee"
++# endif
++# endif
++#endif /* __alpha && ! _IEEE_FP */
++
++/*
++ * In ANSI/IEEE 754-1985 64-bits double format numbers have the
++ * following properties (amoungst others)
++ *
++ * o FLT_RADIX == 2: binary encoding
++ * o DBL_MAX_EXP == 1024: 11 bits exponent, where one bit is used
++ * to indicate special numbers (e.g. NaN and Infinity), so the
++ * maximum exponent is 10 bits wide (2^10 == 1024).
++ * o DBL_MANT_DIG == 53: The mantissa is 52 bits wide, but because
++ * numbers are normalized the initial binary 1 is represented
++ * implicitly (the so-called "hidden bit"), which leaves us with
++ * the ability to represent 53 bits wide mantissa.
++ */
++#if defined(__STDC_IEC_559__)
++# define TRIO_IEEE_754
++#else
++# if (FLT_RADIX - 0 == 2) && (DBL_MAX_EXP - 0 == 1024) && (DBL_MANT_DIG - 0 == 53)
++# define TRIO_IEEE_754
++# endif
++#endif
++
++/*
++ * Determine which fpclassify_and_sign() function to use.
++ */
++#if defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)
++# if defined(PREDEF_STANDARD_C99) && defined(fpclassify)
++# define TRIO_FUNC_C99_FPCLASSIFY_AND_SIGNBIT
++# else
++# if defined(TRIO_COMPILER_DECC)
++# define TRIO_FUNC_DECC_FPCLASSIFY_AND_SIGNBIT
++# else
++# if defined(TRIO_COMPILER_VISUALC) || defined(TRIO_COMPILER_BORLAND)
++# define TRIO_FUNC_MS_FPCLASSIFY_AND_SIGNBIT
++# else
++# if defined(TRIO_COMPILER_HP) && defined(FP_PLUS_NORM)
++# define TRIO_FUNC_HP_FPCLASSIFY_AND_SIGNBIT
++# else
++# if defined(TRIO_COMPILER_XLC) && defined(FP_PLUS_NORM)
++# define TRIO_FUNC_XLC_FPCLASSIFY_AND_SIGNBIT
++# else
++# define TRIO_FUNC_INTERNAL_FPCLASSIFY_AND_SIGNBIT
++# endif
++# endif
++# endif
++# endif
++# endif
++#endif
++
++/*
++ * Determine how to generate negative zero.
++ */
++#if defined(TRIO_FUNC_NZERO)
++# if defined(TRIO_IEEE_754)
++# define TRIO_NZERO_IEEE_754
++# else
++# define TRIO_NZERO_FALLBACK
++# endif
++#endif
++
++/*
++ * Determine how to generate positive infinity.
++ */
++#if defined(TRIO_FUNC_PINF)
++# if defined(INFINITY) && defined(__STDC_IEC_559__)
++# define TRIO_PINF_C99_MACRO
++# else
++# if defined(TRIO_IEEE_754)
++# define TRIO_PINF_IEEE_754
++# else
++# define TRIO_PINF_FALLBACK
++# endif
++# endif
++#endif
++
++/*
++ * Determine how to generate NaN.
++ */
++#if defined(TRIO_FUNC_NAN)
++# if defined(PREDEF_STANDARD_C99) && !defined(TRIO_COMPILER_DECC)
++# define TRIO_NAN_C99_FUNCTION
++# else
++# if defined(NAN) && defined(__STDC_IEC_559__)
++# define TRIO_NAN_C99_MACRO
++# else
++# if defined(TRIO_IEEE_754)
++# define TRIO_NAN_IEEE_754
++# else
++# define TRIO_NAN_FALLBACK
++# endif
++# endif
++# endif
++#endif
++
++/*
++ * Resolve internal dependencies.
++ */
++#if defined(TRIO_FUNC_INTERNAL_FPCLASSIFY_AND_SIGNBIT)
++# define TRIO_FUNC_INTERNAL_ISNAN
++# define TRIO_FUNC_INTERNAL_ISINF
++# if defined(TRIO_IEEE_754)
++# define TRIO_FUNC_INTERNAL_IS_SPECIAL_QUANTITY
++# define TRIO_FUNC_INTERNAL_IS_NEGATIVE
++# endif
++#endif
++
++#if defined(TRIO_NZERO_IEEE_754) \
++ || defined(TRIO_PINF_IEEE_754) \
++ || defined(TRIO_NAN_IEEE_754)
++# define TRIO_FUNC_INTERNAL_MAKE_DOUBLE
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_ISNAN)
++# if defined(PREDEF_STANDARD_XPG3)
++# define TRIO_INTERNAL_ISNAN_XPG3
++# else
++# if defined(TRIO_IEEE_754)
++# define TRIO_INTERNAL_ISNAN_IEEE_754
++# else
++# define TRIO_INTERNAL_ISNAN_FALLBACK
++# endif
++# endif
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_ISINF)
++# if defined(TRIO_IEEE_754)
++# define TRIO_INTERNAL_ISINF_IEEE_754
++# else
++# define TRIO_INTERNAL_ISINF_FALLBACK
++# endif
++#endif
++
++/*************************************************************************
++ * Constants
++ */
++
++#if !defined(TRIO_EMBED_NAN)
++static TRIO_CONST char rcsid[] = "@(#)$Id: trionan.c,v 1.33 2005/05/29 11:57:25 breese Exp $";
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_MAKE_DOUBLE) \
++ || defined(TRIO_FUNC_INTERNAL_IS_SPECIAL_QUANTITY) \
++ || defined(TRIO_FUNC_INTERNAL_IS_NEGATIVE)
++/*
++ * Endian-agnostic indexing macro.
++ *
++ * The value of internalEndianMagic, when converted into a 64-bit
++ * integer, becomes 0x0706050403020100 (we could have used a 64-bit
++ * integer value instead of a double, but not all platforms supports
++ * that type). The value is automatically encoded with the correct
++ * endianess by the compiler, which means that we can support any
++ * kind of endianess. The individual bytes are then used as an index
++ * for the IEEE 754 bit-patterns and masks.
++ */
++#define TRIO_DOUBLE_INDEX(x) (((unsigned char *)&internalEndianMagic)[7-(x)])
++static TRIO_CONST double internalEndianMagic = 7.949928895127363e-275;
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_IS_SPECIAL_QUANTITY)
++/* Mask for the exponent */
++static TRIO_CONST unsigned char ieee_754_exponent_mask[] = {
++ 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++
++/* Mask for the mantissa */
++static TRIO_CONST unsigned char ieee_754_mantissa_mask[] = {
++ 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
++};
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_IS_NEGATIVE)
++/* Mask for the sign bit */
++static TRIO_CONST unsigned char ieee_754_sign_mask[] = {
++ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++#endif
++
++#if defined(TRIO_NZERO_IEEE_754)
++/* Bit-pattern for negative zero */
++static TRIO_CONST unsigned char ieee_754_negzero_array[] = {
++ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++#endif
++
++#if defined(TRIO_PINF_IEEE_754)
++/* Bit-pattern for infinity */
++static TRIO_CONST unsigned char ieee_754_infinity_array[] = {
++ 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++#endif
++
++#if defined(TRIO_NAN_IEEE_754)
++/* Bit-pattern for quiet NaN */
++static TRIO_CONST unsigned char ieee_754_qnan_array[] = {
++ 0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
++};
++#endif
++
++
++/*************************************************************************
++ * Internal functions
++ */
++
++/*
++ * internal_make_double
++ */
++#if defined(TRIO_FUNC_INTERNAL_MAKE_DOUBLE)
++
++TRIO_PRIVATE_NAN double
++internal_make_double
++TRIO_ARGS1((values),
++ TRIO_CONST unsigned char *values)
++{
++ TRIO_VOLATILE double result;
++ int i;
++
++ for (i = 0; i < (int)sizeof(double); i++) {
++ ((TRIO_VOLATILE unsigned char *)&result)[TRIO_DOUBLE_INDEX(i)] = values[i];
++ }
++ return result;
++}
++
++#endif
++
++/*
++ * internal_is_special_quantity
++ */
++#if defined(TRIO_FUNC_INTERNAL_IS_SPECIAL_QUANTITY)
++
++TRIO_PRIVATE_NAN int
++internal_is_special_quantity
++TRIO_ARGS2((number, has_mantissa),
++ double number,
++ int *has_mantissa)
++{
++ unsigned int i;
++ unsigned char current;
++ int is_special_quantity = TRIO_TRUE;
++
++ *has_mantissa = 0;
++
++ for (i = 0; i < (unsigned int)sizeof(double); i++) {
++ current = ((unsigned char *)&number)[TRIO_DOUBLE_INDEX(i)];
++ is_special_quantity
++ &= ((current & ieee_754_exponent_mask[i]) == ieee_754_exponent_mask[i]);
++ *has_mantissa |= (current & ieee_754_mantissa_mask[i]);
++ }
++ return is_special_quantity;
++}
++
++#endif
++
++/*
++ * internal_is_negative
++ */
++#if defined(TRIO_FUNC_INTERNAL_IS_NEGATIVE)
++
++TRIO_PRIVATE_NAN int
++internal_is_negative
++TRIO_ARGS1((number),
++ double number)
++{
++ unsigned int i;
++ int is_negative = TRIO_FALSE;
++
++ for (i = 0; i < (unsigned int)sizeof(double); i++) {
++ is_negative |= (((unsigned char *)&number)[TRIO_DOUBLE_INDEX(i)]
++ & ieee_754_sign_mask[i]);
++ }
++ return is_negative;
++}
++
++#endif
++
++#if defined(TRIO_FUNC_C99_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++c99_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ *is_negative = signbit(number);
++ switch (fpclassify(number)) {
++ case FP_NAN:
++ return TRIO_FP_NAN;
++ case FP_INFINITE:
++ return TRIO_FP_INFINITE;
++ case FP_SUBNORMAL:
++ return TRIO_FP_SUBNORMAL;
++ case FP_ZERO:
++ return TRIO_FP_ZERO;
++ default:
++ return TRIO_FP_NORMAL;
++ }
++}
++
++#endif /* TRIO_FUNC_C99_FPCLASSIFY_AND_SIGNBIT */
++
++#if defined(TRIO_FUNC_DECC_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++decc_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ switch (fp_class(number)) {
++ case FP_QNAN:
++ case FP_SNAN:
++ *is_negative = TRIO_FALSE; /* NaN has no sign */
++ return TRIO_FP_NAN;
++ case FP_POS_INF:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_INFINITE;
++ case FP_NEG_INF:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_INFINITE;
++ case FP_POS_DENORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_NEG_DENORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_POS_ZERO:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_ZERO;
++ case FP_NEG_ZERO:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_ZERO;
++ case FP_POS_NORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_NORMAL;
++ case FP_NEG_NORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_NORMAL;
++ default:
++ *is_negative = (number < 0.0);
++ return TRIO_FP_NORMAL;
++ }
++}
++
++#endif /* TRIO_FUNC_DECC_FPCLASSIFY_AND_SIGNBIT */
++
++#if defined(TRIO_FUNC_MS_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PRIVATE_NAN int
++ms_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ int result;
++# if defined(TRIO_COMPILER_BORLAND)
++ /*
++ * The floating-point precision may be changed by the Borland _fpclass()
++ * function, so we have to save and restore the floating-point control mask.
++ */
++ unsigned int mask;
++ /* Remember the old mask */
++ mask = _control87(0, 0);
++# endif
++
++ switch (_fpclass(number)) {
++ case _FPCLASS_QNAN:
++ case _FPCLASS_SNAN:
++ *is_negative = TRIO_FALSE; /* NaN has no sign */
++ result = TRIO_FP_NAN;
++ break;
++ case _FPCLASS_PINF:
++ *is_negative = TRIO_FALSE;
++ result = TRIO_FP_INFINITE;
++ break;
++ case _FPCLASS_NINF:
++ *is_negative = TRIO_TRUE;
++ result = TRIO_FP_INFINITE;
++ break;
++ case _FPCLASS_PD:
++ *is_negative = TRIO_FALSE;
++ result = TRIO_FP_SUBNORMAL;
++ break;
++ case _FPCLASS_ND:
++ *is_negative = TRIO_TRUE;
++ result = TRIO_FP_SUBNORMAL;
++ break;
++ case _FPCLASS_PZ:
++ *is_negative = TRIO_FALSE;
++ result = TRIO_FP_ZERO;
++ break;
++ case _FPCLASS_NZ:
++ *is_negative = TRIO_TRUE;
++ result = TRIO_FP_ZERO;
++ break;
++ case _FPCLASS_PN:
++ *is_negative = TRIO_FALSE;
++ result = TRIO_FP_NORMAL;
++ break;
++ case _FPCLASS_NN:
++ *is_negative = TRIO_TRUE;
++ result = TRIO_FP_NORMAL;
++ break;
++ default:
++ *is_negative = (number < 0.0);
++ result = TRIO_FP_NORMAL;
++ break;
++ }
++
++# if defined(TRIO_COMPILER_BORLAND)
++ /* Restore the old precision */
++ (void)_control87(mask, MCW_PC);
++# endif
++
++ return result;
++}
++
++#endif /* TRIO_FUNC_MS_FPCLASSIFY_AND_SIGNBIT */
++
++#if defined(TRIO_FUNC_HP_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++hp_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ /*
++ * HP-UX 9.x and 10.x have an fpclassify() function, that is different
++ * from the C99 fpclassify() macro supported on HP-UX 11.x.
++ */
++ switch (fpclassify(number)) {
++ case FP_QNAN:
++ case FP_SNAN:
++ *is_negative = TRIO_FALSE; /* NaN has no sign */
++ return TRIO_FP_NAN;
++ case FP_PLUS_INF:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_INFINITE;
++ case FP_MINUS_INF:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_INFINITE;
++ case FP_PLUS_DENORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_MINUS_DENORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_PLUS_ZERO:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_ZERO;
++ case FP_MINUS_ZERO:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_ZERO;
++ case FP_PLUS_NORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_NORMAL;
++ case FP_MINUS_NORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_NORMAL;
++ default:
++ *is_negative = (number < 0.0);
++ return TRIO_FP_NORMAL;
++ }
++}
++
++#endif /* TRIO_FUNC_HP_FPCLASSIFY_AND_SIGNBIT */
++
++#if defined(TRIO_FUNC_XLC_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++xlc_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ /*
++ * AIX has class() for C, and _class() for C++
++ */
++# if defined(__cplusplus)
++# define AIX_CLASS(n) _class(n)
++# else
++# define AIX_CLASS(n) class(n)
++# endif
++
++ switch (AIX_CLASS(number)) {
++ case FP_QNAN:
++ case FP_SNAN:
++ *is_negative = TRIO_FALSE; /* NaN has no sign */
++ return TRIO_FP_NAN;
++ case FP_PLUS_INF:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_INFINITE;
++ case FP_MINUS_INF:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_INFINITE;
++ case FP_PLUS_DENORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_MINUS_DENORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_SUBNORMAL;
++ case FP_PLUS_ZERO:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_ZERO;
++ case FP_MINUS_ZERO:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_ZERO;
++ case FP_PLUS_NORM:
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_NORMAL;
++ case FP_MINUS_NORM:
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_NORMAL;
++ default:
++ *is_negative = (number < 0.0);
++ return TRIO_FP_NORMAL;
++ }
++}
++
++#endif /* TRIO_FUNC_XLC_FPCLASSIFY_AND_SIGNBIT */
++
++#if defined(TRIO_FUNC_INTERNAL_ISNAN)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++internal_isnan
++TRIO_ARGS1((number),
++ double number)
++{
++# if defined(TRIO_INTERNAL_ISNAN_XPG3) || defined(TRIO_PLATFORM_SYMBIAN)
++ /*
++ * XPG3 defines isnan() as a function.
++ */
++ return isnan(number);
++
++# endif
++
++# if defined(TRIO_INTERNAL_ISNAN_IEEE_754)
++
++ /*
++ * Examine IEEE 754 bit-pattern. A NaN must have a special exponent
++ * pattern, and a non-empty mantissa.
++ */
++ int has_mantissa;
++ int is_special_quantity;
++
++ is_special_quantity = internal_is_special_quantity(number, &has_mantissa);
++
++ return (is_special_quantity && has_mantissa);
++
++# endif
++
++# if defined(TRIO_INTERNAL_ISNAN_FALLBACK)
++
++ /*
++ * Fallback solution
++ */
++ int status;
++ double integral, fraction;
++
++# if defined(TRIO_PLATFORM_UNIX)
++ void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN);
++# endif
++
++ status = (/*
++ * NaN is the only number which does not compare to itself
++ */
++ ((TRIO_VOLATILE double)number != (TRIO_VOLATILE double)number) ||
++ /*
++ * Fallback solution if NaN compares to NaN
++ */
++ ((number != 0.0) &&
++ (fraction = modf(number, &integral),
++ integral == fraction)));
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal(SIGFPE, signal_handler);
++# endif
++
++ return status;
++
++# endif
++}
++
++#endif /* TRIO_FUNC_INTERNAL_ISNAN */
++
++#if defined(TRIO_FUNC_INTERNAL_ISINF)
++
++TRIO_PRIVATE_NAN TRIO_INLINE int
++internal_isinf
++TRIO_ARGS1((number),
++ double number)
++{
++# if defined(TRIO_PLATFORM_SYMBIAN)
++
++ return isinf(number);
++
++# endif
++
++# if defined(TRIO_INTERNAL_ISINF_IEEE_754)
++ /*
++ * Examine IEEE 754 bit-pattern. Infinity must have a special exponent
++ * pattern, and an empty mantissa.
++ */
++ int has_mantissa;
++ int is_special_quantity;
++
++ is_special_quantity = internal_is_special_quantity(number, &has_mantissa);
++
++ return (is_special_quantity && !has_mantissa)
++ ? ((number < 0.0) ? -1 : 1)
++ : 0;
++
++# endif
++
++# if defined(TRIO_INTERNAL_ISINF_FALLBACK)
++
++ /*
++ * Fallback solution.
++ */
++ int status;
++
++# if defined(TRIO_PLATFORM_UNIX)
++ void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN);
++# endif
++
++ double infinity = trio_pinf();
++
++ status = ((number == infinity)
++ ? 1
++ : ((number == -infinity) ? -1 : 0));
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal(SIGFPE, signal_handler);
++# endif
++
++ return status;
++
++# endif
++}
++
++#endif /* TRIO_FUNC_INTERNAL_ISINF */
++
++/*************************************************************************
++ * Public functions
++ */
++
++#if defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)
++
++TRIO_PUBLIC_NAN int
++trio_fpclassify_and_signbit
++TRIO_ARGS2((number, is_negative),
++ double number,
++ int *is_negative)
++{
++ /* The TRIO_FUNC_xxx_FPCLASSIFY_AND_SIGNBIT macros are mutually exclusive */
++
++#if defined(TRIO_FUNC_C99_FPCLASSIFY_AND_SIGNBIT)
++
++ return c99_fpclassify_and_signbit(number, is_negative);
++
++#endif
++
++#if defined(TRIO_FUNC_DECC_FPCLASSIFY_AND_SIGNBIT)
++
++ return decc_fpclassify_and_signbit(number, is_negative);
++
++#endif
++
++#if defined(TRIO_FUNC_MS_FPCLASSIFY_AND_SIGNBIT)
++
++ return ms_fpclassify_and_signbit(number, is_negative);
++
++#endif
++
++#if defined(TRIO_FUNC_HP_FPCLASSIFY_AND_SIGNBIT)
++
++ return hp_fpclassify_and_signbit(number, is_negative);
++
++#endif
++
++#if defined(TRIO_FUNC_XLC_FPCLASSIFY_AND_SIGNBIT)
++
++ return xlc_fpclassify_and_signbit(number, is_negative);
++
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_FPCLASSIFY_AND_SIGNBIT)
++
++ /*
++ * Fallback solution.
++ */
++ int rc;
++
++ if (number == 0.0) {
++ /*
++ * In IEEE 754 the sign of zero is ignored in comparisons, so we
++ * have to handle this as a special case by examining the sign bit
++ * directly.
++ */
++# if defined(TRIO_IEEE_754)
++ *is_negative = internal_is_negative(number);
++# else
++ *is_negative = TRIO_FALSE; /* FIXME */
++# endif
++ return TRIO_FP_ZERO;
++ }
++ if (internal_isnan(number)) {
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_NAN;
++ }
++ rc = internal_isinf(number);
++ if (rc != 0) {
++ *is_negative = (rc == -1);
++ return TRIO_FP_INFINITE;
++ }
++ if ((number > 0.0) && (number < DBL_MIN)) {
++ *is_negative = TRIO_FALSE;
++ return TRIO_FP_SUBNORMAL;
++ }
++ if ((number < 0.0) && (number > -DBL_MIN)) {
++ *is_negative = TRIO_TRUE;
++ return TRIO_FP_SUBNORMAL;
++ }
++ *is_negative = (number < 0.0);
++ return TRIO_FP_NORMAL;
++
++#endif
++}
++
++#endif
++
++/**
++ Check for NaN.
++
++ @param number An arbitrary floating-point number.
++ @return Boolean value indicating whether or not the number is a NaN.
++*/
++#if defined(TRIO_FUNC_ISNAN)
++
++TRIO_PUBLIC_NAN int
++trio_isnan
++TRIO_ARGS1((number),
++ double number)
++{
++ int dummy;
++
++ return (trio_fpclassify_and_signbit(number, &dummy) == TRIO_FP_NAN);
++}
++
++#endif
++
++/**
++ Check for infinity.
++
++ @param number An arbitrary floating-point number.
++ @return 1 if positive infinity, -1 if negative infinity, 0 otherwise.
++*/
++#if defined(TRIO_FUNC_ISINF)
++
++TRIO_PUBLIC_NAN int
++trio_isinf
++TRIO_ARGS1((number),
++ double number)
++{
++ int is_negative;
++
++ if (trio_fpclassify_and_signbit(number, &is_negative) == TRIO_FP_INFINITE)
++ {
++ return (is_negative) ? -1 : 1;
++ }
++ else
++ {
++ return 0;
++ }
++}
++
++#endif
++
++/**
++ Check for finity.
++
++ @param number An arbitrary floating-point number.
++ @return Boolean value indicating whether or not the number is a finite.
++*/
++#if defined(TRIO_FUNC_ISFINITE)
++
++TRIO_PUBLIC_NAN int
++trio_isfinite
++TRIO_ARGS1((number),
++ double number)
++{
++ int dummy;
++
++ switch (trio_fpclassify_and_signbit(number, &dummy))
++ {
++ case TRIO_FP_INFINITE:
++ case TRIO_FP_NAN:
++ return 0;
++ default:
++ return 1;
++ }
++}
++
++#endif
++
++/**
++ Examine the sign of a number.
++
++ @param number An arbitrary floating-point number.
++ @return Boolean value indicating whether or not the number has the
++ sign bit set (i.e. is negative).
++*/
++#if defined(TRIO_FUNC_SIGNBIT)
++
++TRIO_PUBLIC_NAN int
++trio_signbit
++TRIO_ARGS1((number),
++ double number)
++{
++ int is_negative;
++
++ (void)trio_fpclassify_and_signbit(number, &is_negative);
++ return is_negative;
++}
++
++#endif
++
++/**
++ Examine the class of a number.
++
++ @param number An arbitrary floating-point number.
++ @return Enumerable value indicating the class of @p number
++*/
++#if defined(TRIO_FUNC_FPCLASSIFY)
++
++TRIO_PUBLIC_NAN int
++trio_fpclassify
++TRIO_ARGS1((number),
++ double number)
++{
++ int dummy;
++
++ return trio_fpclassify_and_signbit(number, &dummy);
++}
++
++#endif
++
++/**
++ Generate negative zero.
++
++ @return Floating-point representation of negative zero.
++*/
++#if defined(TRIO_FUNC_NZERO)
++
++TRIO_PUBLIC_NAN double
++trio_nzero(TRIO_NOARGS)
++{
++# if defined(TRIO_NZERO_IEEE_754)
++
++ return internal_make_double(ieee_754_negzero_array);
++
++# endif
++
++# if defined(TRIO_NZERO_FALLBACK)
++
++ TRIO_VOLATILE double zero = 0.0;
++
++ return -zero;
++
++# endif
++}
++
++#endif
++
++/**
++ Generate positive infinity.
++
++ @return Floating-point representation of positive infinity.
++*/
++#if defined(TRIO_FUNC_PINF)
++
++TRIO_PUBLIC_NAN double
++trio_pinf(TRIO_NOARGS)
++{
++ /* Cache the result */
++ static double pinf_value = 0.0;
++
++ if (pinf_value == 0.0) {
++
++# if defined(TRIO_PINF_C99_MACRO)
++
++ pinf_value = (double)INFINITY;
++
++# endif
++
++# if defined(TRIO_PINF_IEEE_754)
++
++ pinf_value = internal_make_double(ieee_754_infinity_array);
++
++# endif
++
++# if defined(TRIO_PINF_FALLBACK)
++ /*
++ * If HUGE_VAL is different from DBL_MAX, then HUGE_VAL is used
++ * as infinity. Otherwise we have to resort to an overflow
++ * operation to generate infinity.
++ */
++# if defined(TRIO_PLATFORM_UNIX)
++ void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN);
++# endif
++
++ pinf_value = HUGE_VAL;
++ if (HUGE_VAL == DBL_MAX) {
++ /* Force overflow */
++ pinf_value += HUGE_VAL;
++ }
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal(SIGFPE, signal_handler);
++# endif
++
++# endif
++ }
++ return pinf_value;
++}
++
++#endif
++
++/**
++ Generate negative infinity.
++
++ @return Floating-point value of negative infinity.
++*/
++#if defined(TRIO_FUNC_NINF)
++
++TRIO_PUBLIC_NAN double
++trio_ninf(TRIO_NOARGS)
++{
++ static double ninf_value = 0.0;
++
++ if (ninf_value == 0.0) {
++ /*
++ * Negative infinity is calculated by negating positive infinity,
++ * which can be done because it is legal to do calculations on
++ * infinity (for example, 1 / infinity == 0).
++ */
++ ninf_value = -trio_pinf();
++ }
++ return ninf_value;
++}
++
++#endif
++
++/**
++ Generate NaN.
++
++ @return Floating-point representation of NaN.
++*/
++#if defined(TRIO_FUNC_NAN)
++
++TRIO_PUBLIC_NAN double
++trio_nan(TRIO_NOARGS)
++{
++ /* Cache the result */
++ static double nan_value = 0.0;
++
++ if (nan_value == 0.0) {
++
++# if defined(TRIO_NAN_C99_FUNCTION) || defined(TRIO_PLATFORM_SYMBIAN)
++
++ nan_value = nan("");
++
++# endif
++
++# if defined(TRIO_NAN_C99_MACRO)
++
++ nan_value = (double)NAN;
++
++# endif
++
++# if defined(TRIO_NAN_IEEE_754)
++
++ nan_value = internal_make_double(ieee_754_qnan_array);
++
++# endif
++
++# if defined(TRIO_NAN_FALLBACK)
++ /*
++ * There are several ways to generate NaN. The one used here is
++ * to divide infinity by infinity. I would have preferred to add
++ * negative infinity to positive infinity, but that yields wrong
++ * result (infinity) on FreeBSD.
++ *
++ * This may fail if the hardware does not support NaN, or if
++ * the Invalid Operation floating-point exception is unmasked.
++ */
++# if defined(TRIO_PLATFORM_UNIX)
++ void (*signal_handler)(int) = signal(SIGFPE, SIG_IGN);
++# endif
++
++ nan_value = trio_pinf() / trio_pinf();
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal(SIGFPE, signal_handler);
++# endif
++
++# endif
++ }
++ return nan_value;
++}
++
++#endif
++
++/** @} SpecialQuantities */
++
++/*************************************************************************
++ * For test purposes.
++ *
++ * Add the following compiler option to include this test code.
++ *
++ * Unix : -DSTANDALONE
++ * VMS : /DEFINE=(STANDALONE)
++ */
++#if defined(STANDALONE)
++# include <stdio.h>
++
++static TRIO_CONST char *
++getClassification
++TRIO_ARGS1((type),
++ int type)
++{
++ switch (type) {
++ case TRIO_FP_INFINITE:
++ return "FP_INFINITE";
++ case TRIO_FP_NAN:
++ return "FP_NAN";
++ case TRIO_FP_NORMAL:
++ return "FP_NORMAL";
++ case TRIO_FP_SUBNORMAL:
++ return "FP_SUBNORMAL";
++ case TRIO_FP_ZERO:
++ return "FP_ZERO";
++ default:
++ return "FP_UNKNOWN";
++ }
++}
++
++static void
++print_class
++TRIO_ARGS2((prefix, number),
++ TRIO_CONST char *prefix,
++ double number)
++{
++ printf("%-6s: %s %-15s %g\n",
++ prefix,
++ trio_signbit(number) ? "-" : "+",
++ getClassification(trio_fpclassify(number)),
++ number);
++}
++
++int main(TRIO_NOARGS)
++{
++ double my_nan;
++ double my_pinf;
++ double my_ninf;
++# if defined(TRIO_PLATFORM_UNIX)
++ void (*signal_handler) TRIO_PROTO((int));
++# endif
++
++ my_nan = trio_nan();
++ my_pinf = trio_pinf();
++ my_ninf = trio_ninf();
++
++ print_class("Nan", my_nan);
++ print_class("PInf", my_pinf);
++ print_class("NInf", my_ninf);
++ print_class("PZero", 0.0);
++ print_class("NZero", -0.0);
++ print_class("PNorm", 1.0);
++ print_class("NNorm", -1.0);
++ print_class("PSub", 1.01e-307 - 1.00e-307);
++ print_class("NSub", 1.00e-307 - 1.01e-307);
++
++ printf("NaN : %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_nan,
++ ((unsigned char *)&my_nan)[0],
++ ((unsigned char *)&my_nan)[1],
++ ((unsigned char *)&my_nan)[2],
++ ((unsigned char *)&my_nan)[3],
++ ((unsigned char *)&my_nan)[4],
++ ((unsigned char *)&my_nan)[5],
++ ((unsigned char *)&my_nan)[6],
++ ((unsigned char *)&my_nan)[7],
++ trio_isnan(my_nan), trio_isinf(my_nan), trio_isfinite(my_nan));
++ printf("PInf: %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_pinf,
++ ((unsigned char *)&my_pinf)[0],
++ ((unsigned char *)&my_pinf)[1],
++ ((unsigned char *)&my_pinf)[2],
++ ((unsigned char *)&my_pinf)[3],
++ ((unsigned char *)&my_pinf)[4],
++ ((unsigned char *)&my_pinf)[5],
++ ((unsigned char *)&my_pinf)[6],
++ ((unsigned char *)&my_pinf)[7],
++ trio_isnan(my_pinf), trio_isinf(my_pinf), trio_isfinite(my_pinf));
++ printf("NInf: %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_ninf,
++ ((unsigned char *)&my_ninf)[0],
++ ((unsigned char *)&my_ninf)[1],
++ ((unsigned char *)&my_ninf)[2],
++ ((unsigned char *)&my_ninf)[3],
++ ((unsigned char *)&my_ninf)[4],
++ ((unsigned char *)&my_ninf)[5],
++ ((unsigned char *)&my_ninf)[6],
++ ((unsigned char *)&my_ninf)[7],
++ trio_isnan(my_ninf), trio_isinf(my_ninf), trio_isfinite(my_ninf));
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal_handler = signal(SIGFPE, SIG_IGN);
++# endif
++
++ my_pinf = DBL_MAX + DBL_MAX;
++ my_ninf = -my_pinf;
++ my_nan = my_pinf / my_pinf;
++
++# if defined(TRIO_PLATFORM_UNIX)
++ signal(SIGFPE, signal_handler);
++# endif
++
++ printf("NaN : %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_nan,
++ ((unsigned char *)&my_nan)[0],
++ ((unsigned char *)&my_nan)[1],
++ ((unsigned char *)&my_nan)[2],
++ ((unsigned char *)&my_nan)[3],
++ ((unsigned char *)&my_nan)[4],
++ ((unsigned char *)&my_nan)[5],
++ ((unsigned char *)&my_nan)[6],
++ ((unsigned char *)&my_nan)[7],
++ trio_isnan(my_nan), trio_isinf(my_nan), trio_isfinite(my_nan));
++ printf("PInf: %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_pinf,
++ ((unsigned char *)&my_pinf)[0],
++ ((unsigned char *)&my_pinf)[1],
++ ((unsigned char *)&my_pinf)[2],
++ ((unsigned char *)&my_pinf)[3],
++ ((unsigned char *)&my_pinf)[4],
++ ((unsigned char *)&my_pinf)[5],
++ ((unsigned char *)&my_pinf)[6],
++ ((unsigned char *)&my_pinf)[7],
++ trio_isnan(my_pinf), trio_isinf(my_pinf), trio_isfinite(my_pinf));
++ printf("NInf: %4g 0x%02x%02x%02x%02x%02x%02x%02x%02x (%2d, %2d, %2d)\n",
++ my_ninf,
++ ((unsigned char *)&my_ninf)[0],
++ ((unsigned char *)&my_ninf)[1],
++ ((unsigned char *)&my_ninf)[2],
++ ((unsigned char *)&my_ninf)[3],
++ ((unsigned char *)&my_ninf)[4],
++ ((unsigned char *)&my_ninf)[5],
++ ((unsigned char *)&my_ninf)[6],
++ ((unsigned char *)&my_ninf)[7],
++ trio_isnan(my_ninf), trio_isinf(my_ninf), trio_isfinite(my_ninf));
++
++ return 0;
++}
++#endif
+diff -up ghostscript-9.07/trio/trionan.h.gs_sprintf ghostscript-9.07/trio/trionan.h
+--- ghostscript-9.07/trio/trionan.h.gs_sprintf 2013-05-09 17:02:39.112447283 +0100
++++ ghostscript-9.07/trio/trionan.h 2013-05-09 17:02:39.112447283 +0100
+@@ -0,0 +1,183 @@
++/*************************************************************************
++ *
++ * $Id: trionan.h,v 1.9 2005/03/27 18:52:45 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese <breese@users.sourceforge.net>
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++#ifndef TRIO_TRIONAN_H
++#define TRIO_TRIONAN_H
++
++#include "triodef.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#if !defined(TRIO_PUBLIC_NAN)
++# if !defined(TRIO_PUBLIC)
++# define TRIO_PUBLIC
++# endif
++# define TRIO_PUBLIC_NAN TRIO_PUBLIC
++#endif
++
++enum {
++ TRIO_FP_INFINITE,
++ TRIO_FP_NAN,
++ TRIO_FP_NORMAL,
++ TRIO_FP_SUBNORMAL,
++ TRIO_FP_ZERO
++};
++
++/*************************************************************************
++ * Dependencies
++ */
++
++#if defined(TRIO_EMBED_NAN)
++
++/*
++ * The application that trionan is embedded in must define which functions
++ * it uses.
++ *
++ * The following resolves internal dependencies.
++ */
++
++# if defined(TRIO_FUNC_ISNAN) \
++ || defined(TRIO_FUNC_ISINF)
++# if !defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)
++# define TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT
++# endif
++# endif
++
++# if defined(TRIO_FUNC_NAN)
++# if !defined(TRIO_FUNC_PINF)
++# define TRIO_FUNC_PINF
++# endif
++# endif
++
++# if defined(TRIO_FUNC_NINF)
++# if !defined(TRIO_FUNC_PINF)
++# define TRIO_FUNC_PINF
++# endif
++# endif
++
++#else
++
++/*
++ * When trionan is not embedded all all functions are defined.
++ */
++
++# define TRIO_FUNC_NAN
++# define TRIO_FUNC_PINF
++# define TRIO_FUNC_NINF
++# define TRIO_FUNC_NZERO
++# define TRIO_FUNC_ISNAN
++# define TRIO_FUNC_ISINF
++# define TRIO_FUNC_ISFINITE
++# define TRIO_FUNC_SIGNBIT
++# define TRIO_FUNC_FPCLASSIFY
++# define TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT
++
++#endif
++
++/*************************************************************************
++ * Functions
++ */
++
++/*
++ * Return NaN (Not-a-Number).
++ */
++#if defined(TRIO_FUNC_NAN)
++TRIO_PUBLIC_NAN double
++trio_nan
++TRIO_PROTO((void));
++#endif
++
++/*
++ * Return positive infinity.
++ */
++#if defined(TRIO_FUNC_PINF)
++TRIO_PUBLIC_NAN double
++trio_pinf
++TRIO_PROTO((void));
++#endif
++
++/*
++ * Return negative infinity.
++ */
++#if defined(TRIO_FUNC_NINF)
++TRIO_PUBLIC_NAN double
++trio_ninf
++TRIO_PROTO((void));
++#endif
++
++/*
++ * Return negative zero.
++ */
++#if defined(TRIO_FUNC_NZERO)
++TRIO_PUBLIC_NAN double
++trio_nzero
++TRIO_PROTO((TRIO_NOARGS));
++#endif
++
++/*
++ * If number is a NaN return non-zero, otherwise return zero.
++ */
++#if defined(TRIO_FUNC_ISNAN)
++TRIO_PUBLIC_NAN int
++trio_isnan
++TRIO_PROTO((double number));
++#endif
++
++/*
++ * If number is positive infinity return 1, if number is negative
++ * infinity return -1, otherwise return 0.
++ */
++#if defined(TRIO_FUNC_ISINF)
++TRIO_PUBLIC_NAN int
++trio_isinf
++TRIO_PROTO((double number));
++#endif
++
++/*
++ * If number is finite return non-zero, otherwise return zero.
++ */
++#if defined(TRIO_FUNC_ISFINITE)
++TRIO_PUBLIC_NAN int
++trio_isfinite
++TRIO_PROTO((double number));
++#endif
++
++#if defined(TRIO_FUNC_SIGNBIT)
++TRIO_PUBLIC_NAN int
++trio_signbit
++TRIO_PROTO((double number));
++#endif
++
++#if defined(TRIO_FUNC_FPCLASSIFY)
++TRIO_PUBLIC_NAN int
++trio_fpclassify
++TRIO_PROTO((double number));
++#endif
++
++#if defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)
++TRIO_PUBLIC_NAN int
++trio_fpclassify_and_signbit
++TRIO_PROTO((double number, int *is_negative));
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* TRIO_TRIONAN_H */
+diff -up ghostscript-9.07/trio/triop.h.gs_sprintf ghostscript-9.07/trio/triop.h
+--- ghostscript-9.07/trio/triop.h.gs_sprintf 2013-05-09 17:02:39.113447287 +0100
++++ ghostscript-9.07/trio/triop.h 2013-05-09 17:02:39.113447287 +0100
+@@ -0,0 +1,472 @@
++/*************************************************************************
++ *
++ * $Id: triop.h,v 1.18 2009/07/05 10:14:07 breese Exp $
++ *
++ * Copyright (C) 2000 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************
++ *
++ * Private functions, types, etc. used for callback functions.
++ *
++ * The ref pointer is an opaque type and should remain as such.
++ * Private data must only be accessible through the getter and
++ * setter functions.
++ *
++ ************************************************************************/
++
++#ifndef TRIO_TRIOP_H
++#define TRIO_TRIOP_H
++
++#include "triodef.h"
++
++#include <stdlib.h>
++#if defined(TRIO_COMPILER_ANCIENT)
++# include <varargs.h>
++#else
++# include <stdarg.h>
++#endif
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++/*************************************************************************
++ * Supported standards
++ */
++
++/*
++ * TRIO_C99 (=0 or =1)
++ *
++ * Define this to 0 to disable C99 format specifier extensions, or
++ * define to 1 to enable them. The format specifiers that are
++ * disabled by this switch are labelled with [C99] in the format
++ * specifier documentation.
++ */
++#if !defined(TRIO_C99)
++# define TRIO_C99 1
++#endif
++
++/*
++ * TRIO_BSD (=0 or =1)
++ *
++ * Define this to 0 to disable BSD format specifier extensions, or
++ * define to 1 to enable them. The format specifiers that are
++ * disabled by this switch are labelled with [BSD] in the format
++ * specifier documentation.
++ */
++#if !defined(TRIO_BSD)
++# define TRIO_BSD 1
++#endif
++
++/*
++ * TRIO_GNU (=0 or =1)
++ *
++ * Define this to 0 to disable GNU format specifier extensions, or
++ * define to 1 to enable them. The format specifiers that are
++ * disabled by this switch are labelled with [GNU] in the format
++ * specifier documentation.
++ */
++#if !defined(TRIO_GNU)
++# define TRIO_GNU 1
++#endif
++
++/*
++ * TRIO_MISC (=0 or =1)
++ *
++ * Define this to 0 to disable miscellaneous format specifier
++ * extensions, or define to 1 to enable them. The format specifiers
++ * that are disabled by this switch are labelled with [MISC] in the
++ * format specifier documentation.
++ */
++#if !defined(TRIO_MISC)
++# define TRIO_MISC 1
++#endif
++
++/*
++ * TRIO_UNIX98 (=0 or =1)
++ *
++ * Define this to 0 to disable UNIX98 format specifier extensions,
++ * or define to 1 to enable them. The format specifiers that are
++ * disabled by this switch are labelled with [UNIX98] in the format
++ * specifier documentation.
++ */
++#if !defined(TRIO_UNIX98)
++# define TRIO_UNIX98 1
++#endif
++
++/*
++ * TRIO_MICROSOFT (=0 or =1)
++ *
++ * Define this to 0 to disable Microsoft Visual C format specifier
++ * extensions, or define to 1 to enable them. The format specifiers
++ * that are disabled by this switch are labelled with [MSVC] in the
++ * format specifier documentation.
++ */
++#if !defined(TRIO_MICROSOFT)
++# define TRIO_MICROSOFT 1
++#endif
++
++/*
++ * TRIO_EXTENSION (=0 or =1)
++ *
++ * Define this to 0 to disable Trio-specific extensions, or define
++ * to 1 to enable them. This has two effects: it controls whether
++ * or not the Trio user-defined formating mechanism
++ * (trio_register() etc) is supported, and it enables or disables
++ * Trio's own format specifier extensions. The format specifiers
++ * that are disabled by this switch are labelled with [TRIO] in
++ * the format specifier documentation.
++ */
++#if !defined(TRIO_EXTENSION)
++# define TRIO_EXTENSION 1
++#endif
++
++/*
++ * TRIO_DEPRECATED (=0 or =1)
++ *
++ * Define this to 0 to disable deprecated functionality, or define
++ * to 1 to enable them.
++ */
++#if !defined(TRIO_DEPRECATED)
++# define TRIO_DEPRECATED 1
++#endif
++
++/*************************************************************************
++ * Features
++ */
++
++#if defined(TRIO_SNPRINTF_ONLY)
++# define TRIO_FEATURE_SCANF 0
++# define TRIO_FEATURE_FILE 0
++# define TRIO_FEATURE_STDIO 0
++# define TRIO_FEATURE_FD 0
++# define TRIO_FEATURE_DYNAMICSTRING 0
++# define TRIO_FEATURE_CLOSURE 0
++# define TRIO_FEATURE_STRERR 0
++# define TRIO_FEATURE_LOCALE 0
++# define TRIO_EMBED_NAN 1
++# define TRIO_EMBED_STRING 1
++#endif
++
++/*
++ * TRIO_FEATURE_SCANF (=0 or =1)
++ *
++ * Define this to 0 to disable all the scanf() variants, or define to 1
++ * to enable them.
++ */
++#if !defined(TRIO_FEATURE_SCANF)
++# define TRIO_FEATURE_SCANF 1
++#endif
++
++/*
++ * TRIO_FEATURE_FILE (=0 or =1)
++ *
++ * Define this to 0 to disable compilation of the trio_fprintf() and
++ * trio_fscanf() family of functions, or define to 1 to enable them.
++ *
++ * This may be useful on an embedded platform with no filesystem.
++ * Note that trio_printf() uses fwrite to write to stdout, so if you
++ * do not have an implementation of fwrite() at all then you must also
++ * define TRIO_FEATURE_STDIO to 0.
++ */
++#if !defined(TRIO_FEATURE_FILE)
++# define TRIO_FEATURE_FILE 1
++#endif
++
++/*
++ * TRIO_FEATURE_STDIO (=0 or =1)
++ *
++ * Define this to 0 to disable compilation of the trio_printf() and
++ * trio_scanf() family of functions, or define to 1 to enable them.
++ *
++ * This may be useful on an embedded platform with no standard I/O.
++ */
++#if !defined(TRIO_FEATURE_STDIO)
++# define TRIO_FEATURE_STDIO 1
++#endif
++
++/*
++ * TRIO_FEATURE_FD (=0 or =1)
++ *
++ * Define this to 0 to disable compilation of the trio_dprintf() and
++ * trio_dscanf() family of functions, or define to 1 to enable them.
++ *
++ * This may be useful on an embedded platform with no filesystem, or on
++ * a platform that supports file I/O using FILE* but not using raw file
++ * descriptors.
++ */
++#if !defined(TRIO_FEATURE_FD)
++# define TRIO_FEATURE_FD 1
++#endif
++
++/*
++ * TRIO_FEATURE_DYNAMICSTRING (=0 or =1)
++ *
++ * Define this to 0 to disable compilation of the trio_aprintf()
++ * family of functions, or define to 1 to enable them.
++ *
++ * If you define both this and TRIO_MINIMAL to 0, then Trio will never
++ * call malloc or free.
++ */
++#if !defined(TRIO_FEATURE_DYNAMICSTRING)
++# define TRIO_FEATURE_DYNAMICSTRING 1
++#endif
++
++/*
++ * TRIO_FEATURE_CLOSURE (=0 or =1)
++ *
++ * Define this to 0 to disable compilation of the trio_cprintf() and
++ * trio_cscanf() family of functions, or define to 1 to enable them.
++ *
++ * These functions are rarely needed. This saves a (small) amount of code.
++ */
++#if !defined(TRIO_FEATURE_CLOSURE)
++# define TRIO_FEATURE_CLOSURE 1
++#endif
++
++/*
++ * TRIO_FEATURE_ERRORCODE (=0 or =1)
++ *
++ * Define this to 0 to return -1 from the print and scan function on
++ * error, or define to 1 to return a negative number with debugging
++ * information as part of the return code.
++ *
++ * If enabled, the return code will be a negative number, which encodes
++ * an error code and an error location. These can be decoded with the
++ * TRIO_ERROR_CODE and TRIO_ERROR_POSITION macros.
++ */
++#if defined(TRIO_ERRORS)
++# define TRIO_FEATURE_ERRORCODE TRIO_ERRORS
++#endif
++#if !defined(TRIO_FEATURE_ERRORCODE)
++# define TRIO_FEATURE_ERRORCODE 1
++#endif
++
++/*
++ * TRIO_FEATURE_STRERR (=0 or =1)
++ *
++ * Define this to 0 if you do not use trio_strerror(), or define to 1 if
++ * you do use it.
++ *
++ * This saves a (small) amount of code.
++ */
++#if !defined(TRIO_FEATURE_STRERR)
++# define TRIO_FEATURE_STRERR 1
++#endif
++
++/*
++ * TRIO_FEATURE_FLOAT (=0 or =1)
++ *
++ * Define this to 0 to disable all floating-point support, or define
++ * to 1 to enable it.
++ *
++ * This is useful in restricted embedded platforms that do not support
++ * floating-point. Obviously you cannot use floating-point format
++ * specifiers if you define this.
++ *
++ * Do not compile trionan.c if you disable this.
++ */
++#if !defined(TRIO_FEATURE_FLOAT)
++# define TRIO_FEATURE_FLOAT 1
++#endif
++
++/*
++ * TRIO_FEATURE_LOCALE (=0 or =1)
++ *
++ * Define this to 0 to disable customized locale support, or define
++ * to 1 to enable it.
++ *
++ * This saves a (small) amount of code.
++ */
++#if !defined(TRIO_FEATURE_LOCALE)
++# define TRIO_FEATURE_LOCALE 1
++#endif
++
++/*
++ * TRIO_MINIMAL
++ *
++ * Define this to disable building the public trionan.h and triostr.h.
++ * If you define this, then you must not compile trionan.c and triostr.c
++ * separately.
++ */
++#if defined(TRIO_MINIMAL)
++# if !defined(TRIO_EMBED_NAN)
++# define TRIO_EMBED_NAN
++# endif
++# if !defined(TRIO_EMBED_STRING)
++# define TRIO_EMBED_STRING
++# endif
++#endif
++
++/* Does not work yet. Do not enable */
++#ifndef TRIO_FEATURE_WIDECHAR
++# define TRIO_FEATURE_WIDECHAR 0
++#endif
++
++/*************************************************************************
++ * Mapping standards to internal features
++ */
++
++#if !defined(TRIO_FEATURE_HEXFLOAT)
++# define TRIO_FEATURE_HEXFLOAT (TRIO_C99 && TRIO_FEATURE_FLOAT)
++#endif
++
++#if !defined(TRIO_FEATURE_LONGDOUBLE)
++# define TRIO_FEATURE_LONGDOUBLE TRIO_FEATURE_FLOAT
++#endif
++
++#if !defined(TRIO_FEATURE_ERRNO)
++# define TRIO_FEATURE_ERRNO TRIO_GNU
++#endif
++
++#if !defined(TRIO_FEATURE_QUAD)
++# define TRIO_FEATURE_QUAD (TRIO_BSD || TRIO_GNU)
++#endif
++
++#if !defined(TRIO_FEATURE_SIZE_T)
++# define TRIO_FEATURE_SIZE_T TRIO_C99
++#endif
++
++#if !defined(TRIO_FEATURE_SIZE_T_UPPER)
++# define TRIO_FEATURE_SIZE_T_UPPER TRIO_GNU
++#endif
++
++#if !defined(TRIO_FEATURE_PTRDIFF_T)
++# define TRIO_FEATURE_PTRDIFF_T TRIO_C99
++#endif
++
++#if !defined(TRIO_FEATURE_INTMAX_T)
++# define TRIO_FEATURE_INTMAX_T TRIO_C99
++#endif
++
++#if !defined(TRIO_FEATURE_FIXED_SIZE)
++# define TRIO_FEATURE_FIXED_SIZE TRIO_MICROSOFT
++#endif
++
++#if !defined(TRIO_FEATURE_POSITIONAL)
++# define TRIO_FEATURE_POSITIONAL TRIO_UNIX98
++#endif
++
++#if !defined(TRIO_FEATURE_USER_DEFINED)
++# define TRIO_FEATURE_USER_DEFINED TRIO_EXTENSION
++#endif
++
++#if !defined(TRIO_FEATURE_BINARY)
++# define TRIO_FEATURE_BINARY TRIO_EXTENSION
++#endif
++
++#if !defined(TRIO_FEATURE_QUOTE)
++# define TRIO_FEATURE_QUOTE TRIO_EXTENSION
++#endif
++
++#if !defined(TRIO_FEATURE_STICKY)
++# define TRIO_FEATURE_STICKY TRIO_EXTENSION
++#endif
++
++#if !defined(TRIO_FEATURE_VARSIZE)
++# define TRIO_FEATURE_VARSIZE TRIO_EXTENSION
++#endif
++
++#if !defined(TRIO_FEATURE_ROUNDING)
++# define TRIO_FEATURE_ROUNDING TRIO_EXTENSION
++#endif
++
++/*************************************************************************
++ * Memory handling
++ */
++#ifndef TRIO_MALLOC
++# define TRIO_MALLOC(n) malloc(n)
++#endif
++#ifndef TRIO_REALLOC
++# define TRIO_REALLOC(x,n) realloc((x),(n))
++#endif
++#ifndef TRIO_FREE
++# define TRIO_FREE(x) free(x)
++#endif
++
++
++/*************************************************************************
++ * User-defined specifiers
++ */
++
++typedef int (*trio_callback_t) TRIO_PROTO((trio_pointer_t));
++
++trio_pointer_t trio_register TRIO_PROTO((trio_callback_t callback, const char *name));
++void trio_unregister TRIO_PROTO((trio_pointer_t handle));
++
++TRIO_CONST char *trio_get_format TRIO_PROTO((trio_pointer_t ref));
++TRIO_CONST trio_pointer_t trio_get_argument TRIO_PROTO((trio_pointer_t ref));
++
++/* Modifiers */
++int trio_get_width TRIO_PROTO((trio_pointer_t ref));
++void trio_set_width TRIO_PROTO((trio_pointer_t ref, int width));
++int trio_get_precision TRIO_PROTO((trio_pointer_t ref));
++void trio_set_precision TRIO_PROTO((trio_pointer_t ref, int precision));
++int trio_get_base TRIO_PROTO((trio_pointer_t ref));
++void trio_set_base TRIO_PROTO((trio_pointer_t ref, int base));
++int trio_get_padding TRIO_PROTO((trio_pointer_t ref));
++void trio_set_padding TRIO_PROTO((trio_pointer_t ref, int is_padding));
++int trio_get_short TRIO_PROTO((trio_pointer_t ref)); /* h */
++void trio_set_shortshort TRIO_PROTO((trio_pointer_t ref, int is_shortshort));
++int trio_get_shortshort TRIO_PROTO((trio_pointer_t ref)); /* hh */
++void trio_set_short TRIO_PROTO((trio_pointer_t ref, int is_short));
++int trio_get_long TRIO_PROTO((trio_pointer_t ref)); /* l */
++void trio_set_long TRIO_PROTO((trio_pointer_t ref, int is_long));
++int trio_get_longlong TRIO_PROTO((trio_pointer_t ref)); /* ll */
++void trio_set_longlong TRIO_PROTO((trio_pointer_t ref, int is_longlong));
++int trio_get_longdouble TRIO_PROTO((trio_pointer_t ref)); /* L */
++void trio_set_longdouble TRIO_PROTO((trio_pointer_t ref, int is_longdouble));
++int trio_get_alternative TRIO_PROTO((trio_pointer_t ref)); /* # */
++void trio_set_alternative TRIO_PROTO((trio_pointer_t ref, int is_alternative));
++int trio_get_alignment TRIO_PROTO((trio_pointer_t ref)); /* - */
++void trio_set_alignment TRIO_PROTO((trio_pointer_t ref, int is_leftaligned));
++int trio_get_spacing TRIO_PROTO((trio_pointer_t ref)); /* (space) */
++void trio_set_spacing TRIO_PROTO((trio_pointer_t ref, int is_space));
++int trio_get_sign TRIO_PROTO((trio_pointer_t ref)); /* + */
++void trio_set_sign TRIO_PROTO((trio_pointer_t ref, int is_showsign));
++#if TRIO_FEATURE_QUOTE
++int trio_get_quote TRIO_PROTO((trio_pointer_t ref)); /* ' */
++void trio_set_quote TRIO_PROTO((trio_pointer_t ref, int is_quote));
++#endif
++int trio_get_upper TRIO_PROTO((trio_pointer_t ref));
++void trio_set_upper TRIO_PROTO((trio_pointer_t ref, int is_upper));
++#if TRIO_FEATURE_INTMAX_T
++int trio_get_largest TRIO_PROTO((trio_pointer_t ref)); /* j */
++void trio_set_largest TRIO_PROTO((trio_pointer_t ref, int is_largest));
++#endif
++#if TRIO_FEATURE_PTRDIFF_T
++int trio_get_ptrdiff TRIO_PROTO((trio_pointer_t ref)); /* t */
++void trio_set_ptrdiff TRIO_PROTO((trio_pointer_t ref, int is_ptrdiff));
++#endif
++#if TRIO_FEATURE_SIZE_T
++int trio_get_size TRIO_PROTO((trio_pointer_t ref)); /* z / Z */
++void trio_set_size TRIO_PROTO((trio_pointer_t ref, int is_size));
++#endif
++
++/* Printing */
++int trio_print_ref TRIO_PROTO((trio_pointer_t ref, const char *format, ...));
++int trio_vprint_ref TRIO_PROTO((trio_pointer_t ref, const char *format, va_list args));
++int trio_printv_ref TRIO_PROTO((trio_pointer_t ref, const char *format, trio_pointer_t *args));
++
++void trio_print_int TRIO_PROTO((trio_pointer_t ref, int number));
++void trio_print_uint TRIO_PROTO((trio_pointer_t ref, unsigned int number));
++/* void trio_print_long TRIO_PROTO((trio_pointer_t ref, long number)); */
++/* void trio_print_ulong TRIO_PROTO((trio_pointer_t ref, unsigned long number)); */
++void trio_print_double TRIO_PROTO((trio_pointer_t ref, double number));
++void trio_print_string TRIO_PROTO((trio_pointer_t ref, TRIO_CONST char *string));
++void trio_print_pointer TRIO_PROTO((trio_pointer_t ref, trio_pointer_t pointer));
++
++#ifdef __cplusplus
++} /* extern "C" */
++#endif
++
++#endif /* TRIO_TRIOP_H */
+diff -up ghostscript-9.07/trio/triostr.c.gs_sprintf ghostscript-9.07/trio/triostr.c
+--- ghostscript-9.07/trio/triostr.c.gs_sprintf 2013-05-09 17:02:39.113447287 +0100
++++ ghostscript-9.07/trio/triostr.c 2013-05-09 17:02:39.113447287 +0100
+@@ -0,0 +1,2385 @@
++/*************************************************************************
++ *
++ * $Id: triostr.c,v 1.36 2010/01/26 13:02:02 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++/*************************************************************************
++ * Include files
++ */
++
++#if defined(HAVE_CONFIG_H)
++# include <config.h>
++#endif
++#include <assert.h>
++#include <stdlib.h>
++#include <string.h>
++#include <ctype.h>
++#include "triodef.h"
++#include "triostr.h"
++#if defined(TRIO_FUNC_TO_LONG_DOUBLE)
++# define USE_MATH
++#endif
++#if defined(USE_MATH)
++# include <math.h>
++#endif
++
++/*************************************************************************
++ * Definitions
++ */
++
++#if !defined(TRIO_PUBLIC_STRING)
++# define TRIO_PUBLIC_STRING TRIO_PUBLIC
++#endif
++#if !defined(TRIO_PRIVATE_STRING)
++# define TRIO_PRIVATE_STRING TRIO_PRIVATE
++#endif
++
++#if !defined(NULL)
++# define NULL 0
++#endif
++#if !defined(NIL)
++# define NIL ((char)0)
++#endif
++#if !defined(FALSE)
++# define FALSE (1 == 0)
++# define TRUE (! FALSE)
++#endif
++#if !defined(BOOLEAN_T)
++# define BOOLEAN_T int
++#endif
++
++#if defined(USE_MATH)
++# if defined(PREDEF_STANDARD_C99)
++# if defined(TRIO_COMPILER_DECC)
++# if (TRIO_COMPILER_DECC - 0 > 80000000)
++/*
++ * The OSF/1 runtime that comes with the DECC compiler does not support
++ * hexfloats conversion.
++ */
++# define USE_STRTOD
++# define USE_STRTOF
++# endif
++# else
++# define USE_STRTOD
++# define USE_STRTOF
++# endif
++# else
++# if defined(TRIO_COMPILER_VISUALC)
++# define USE_STRTOD
++# endif
++#endif
++#endif
++
++#if defined(TRIO_PLATFORM_UNIX)
++# if defined(PREDEF_STANDARD_UNIX95)
++# define USE_STRCASECMP
++# define USE_STRNCASECMP
++# endif
++# if defined(TRIO_PLATFORM_SUNOS)
++# define USE_SYS_ERRLIST
++# else
++# define USE_STRERROR
++# endif
++# if defined(TRIO_PLATFORM_QNX)
++# define strcasecmp(x,y) stricmp(x,y)
++# define strncasecmp(x,y,n) strnicmp(x,y,n)
++# endif
++#endif
++
++#if defined(TRIO_PLATFORM_WIN32)
++# define USE_STRCASECMP
++# if defined(TRIO_PLATFORM_WINCE)
++# define strcasecmp(x,y) _stricmp(x,y)
++# else
++# define strcasecmp(x,y) strcmpi(x,y)
++# endif
++#endif
++
++#if !defined(HAVE_CONFIG_H)
++# if !(defined(TRIO_PLATFORM_SUNOS))
++# define HAVE_TOLOWER
++# define HAVE_TOUPPER
++# endif
++#endif
++
++#if defined(USE_MATH) && !defined(TRIO_NO_POWL)
++# if !defined(HAVE_POWL)
++# if defined(PREDEF_STANDARD_C99) \
++ || defined(PREDEF_STANDARD_UNIX03)
++# define HAVE_POWL
++# else
++# if defined(TRIO_COMPILER_VISUALC)
++# if defined(powl)
++# define HAVE_POWL
++# endif
++# endif
++# endif
++# endif
++#endif
++
++#if defined(HAVE_POWL)
++# define trio_powl(x,y) powl((x),(y))
++#else
++# define trio_powl(x,y) pow((double)(x),(double)(y))
++#endif
++
++#if defined(TRIO_FUNC_TO_UPPER) \
++ || (defined(TRIO_FUNC_EQUAL) && !defined(USE_STRCASECMP)) \
++ || (defined(TRIO_FUNC_EQUAL_MAX) && !defined(USE_STRNCASECMP)) \
++ || defined(TRIO_FUNC_MATCH) \
++ || defined(TRIO_FUNC_TO_LONG_DOUBLE) \
++ || defined(TRIO_FUNC_UPPER)
++# define TRIO_FUNC_INTERNAL_TO_UPPER
++#endif
++
++/*************************************************************************
++ * Structures
++ */
++
++struct _trio_string_t
++{
++ char *content;
++ size_t length;
++ size_t allocated;
++};
++
++/*************************************************************************
++ * Constants
++ */
++
++#if !defined(TRIO_EMBED_STRING)
++static TRIO_CONST char rcsid[] = "@(#)$Id: triostr.c,v 1.36 2010/01/26 13:02:02 breese Exp $";
++#endif
++
++/*************************************************************************
++ * Static String Functions
++ */
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_static.h"
++#endif
++/** @addtogroup StaticStrings
++ @{
++*/
++
++/*
++ * internal_duplicate_max
++ */
++#if defined(TRIO_FUNC_DUPLICATE) \
++ || defined(TRIO_FUNC_DUPLICATE_MAX) \
++ || defined(TRIO_FUNC_STRING_DUPLICATE) \
++ || defined(TRIO_FUNC_XSTRING_DUPLICATE)
++
++TRIO_PRIVATE_STRING char *
++internal_duplicate_max
++TRIO_ARGS2((source, size),
++ TRIO_CONST char *source,
++ size_t size)
++{
++ char *target;
++
++ assert(source);
++
++ /* Make room for string plus a terminating zero */
++ size++;
++ target = trio_create(size);
++ if (target)
++ {
++ trio_copy_max(target, size, source);
++ }
++ return target;
++}
++
++#endif
++
++/*
++ * internal_string_alloc
++ */
++#if defined(TRIO_FUNC_STRING_CREATE) \
++ || defined(TRIO_FUNC_STRING_DUPLICATE) \
++ || defined(TRIO_FUNC_XSTRING_DUPLICATE)
++
++TRIO_PRIVATE_STRING trio_string_t *
++internal_string_alloc(TRIO_NOARGS)
++{
++ trio_string_t *self;
++
++ self = (trio_string_t *)TRIO_MALLOC(sizeof(trio_string_t));
++ if (self)
++ {
++ self->content = NULL;
++ self->length = 0;
++ self->allocated = 0;
++ }
++ return self;
++}
++
++#endif
++
++/*
++ * internal_string_grow
++ *
++ * The size of the string will be increased by 'delta' characters. If
++ * 'delta' is zero, the size will be doubled.
++ */
++#if defined(TRIO_FUNC_STRING_CREATE) \
++ || defined(TRIO_FUNC_STRING_APPEND) \
++ || defined(TRIO_FUNC_XSTRING_APPEND) \
++ || defined(TRIO_FUNC_XSTRING_APPEND_CHAR)
++
++TRIO_PRIVATE_STRING BOOLEAN_T
++internal_string_grow
++TRIO_ARGS2((self, delta),
++ trio_string_t *self,
++ size_t delta)
++{
++ BOOLEAN_T status = FALSE;
++ char *new_content;
++ size_t new_size;
++
++ new_size = (delta == 0)
++ ? ( (self->allocated == 0) ? 1 : self->allocated * 2 )
++ : self->allocated + delta;
++
++ new_content = (char *)TRIO_REALLOC(self->content, new_size);
++ if (new_content)
++ {
++ self->content = new_content;
++ self->allocated = new_size;
++ status = TRUE;
++ }
++ return status;
++}
++
++#endif
++
++/*
++ * internal_string_grow_to
++ *
++ * The size of the string will be increased to 'length' plus one characters.
++ * If 'length' is less than the original size, the original size will be
++ * used (that is, the size of the string is never decreased).
++ */
++#if defined(TRIO_FUNC_STRING_APPEND) \
++ || defined(TRIO_FUNC_XSTRING_APPEND) \
++ || defined(TRIO_FUNC_XSTRING_APPEND_MAX)
++
++TRIO_PRIVATE_STRING BOOLEAN_T
++internal_string_grow_to
++TRIO_ARGS2((self, length),
++ trio_string_t *self,
++ size_t length)
++{
++ length++; /* Room for terminating zero */
++ return (self->allocated < length)
++ ? internal_string_grow(self, length - self->allocated)
++ : TRUE;
++}
++
++#endif
++
++#if defined(TRIO_FUNC_INTERNAL_TO_UPPER)
++
++TRIO_PRIVATE_STRING TRIO_INLINE int
++internal_to_upper
++TRIO_ARGS1((source),
++ int source)
++{
++# if defined(HAVE_TOUPPER)
++
++ return toupper(source);
++
++# else
++
++ /* Does not handle locales or non-contiguous alphabetic characters */
++ return ((source >= (int)'a') && (source <= (int)'z'))
++ ? source - 'a' + 'A'
++ : source;
++
++# endif
++}
++
++#endif
++
++
++/**
++ Create new string.
++
++ @param size Size of new string.
++ @return Pointer to string, or NULL if allocation failed.
++*/
++#if defined(TRIO_FUNC_CREATE)
++
++TRIO_PUBLIC_STRING char *
++trio_create
++TRIO_ARGS1((size),
++ size_t size)
++{
++ return (char *)TRIO_MALLOC(size);
++}
++
++#endif
++
++/**
++ Destroy string.
++
++ @param string String to be freed.
++*/
++#if defined(TRIO_FUNC_DESTROY)
++
++TRIO_PUBLIC_STRING void
++trio_destroy
++TRIO_ARGS1((string),
++ char *string)
++{
++ if (string)
++ {
++ TRIO_FREE(string);
++ }
++}
++
++#endif
++
++/**
++ Count the number of characters in a string.
++
++ @param string String to measure.
++ @return Number of characters in @p string.
++*/
++#if defined(TRIO_FUNC_LENGTH)
++
++TRIO_PUBLIC_STRING size_t
++trio_length
++TRIO_ARGS1((string),
++ TRIO_CONST char *string)
++{
++ return strlen(string);
++}
++
++#endif
++
++/**
++ Count at most @p max characters in a string.
++
++ @param string String to measure.
++ @param max Maximum number of characters to count.
++ @return The maximum value of @p max and number of characters in @p string.
++*/
++#if defined(TRIO_FUNC_LENGTH_MAX)
++
++TRIO_PUBLIC_STRING size_t
++trio_length_max
++TRIO_ARGS2((string, max),
++ TRIO_CONST char *string,
++ size_t max)
++{
++ size_t i;
++
++ for (i = 0; i < max; ++i)
++ {
++ if (string[i] == 0)
++ break;
++ }
++ return i;
++}
++
++#endif
++
++/**
++ Append @p source at the end of @p target.
++
++ @param target Target string.
++ @param source Source string.
++ @return Boolean value indicating success or failure.
++
++ @pre @p target must point to a memory chunk with sufficient room to
++ contain the @p target string and @p source string.
++ @pre No boundary checking is performed, so insufficient memory will
++ result in a buffer overrun.
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_APPEND)
++
++TRIO_PUBLIC_STRING int
++trio_append
++TRIO_ARGS2((target, source),
++ char *target,
++ TRIO_CONST char *source)
++{
++ assert(target);
++ assert(source);
++
++ return (strcat(target, source) != NULL);
++}
++
++#endif
++
++/**
++ Append at most @p max characters from @p source to @p target.
++
++ @param target Target string.
++ @param max Maximum number of characters to append.
++ @param source Source string.
++ @return Boolean value indicating success or failure.
++
++ @pre @p target must point to a memory chuck with sufficient room to
++ contain the @p target string and the @p source string (at most @p max
++ characters).
++ @pre No boundary checking is performed, so insufficient memory will
++ result in a buffer overrun.
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_APPEND_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_append_max
++TRIO_ARGS3((target, max, source),
++ char *target,
++ size_t max,
++ TRIO_CONST char *source)
++{
++ size_t length;
++
++ assert(target);
++ assert(source);
++
++ length = trio_length(target);
++
++ if (max > length)
++ {
++ strncat(target, source, max - length - 1);
++ }
++ return TRUE;
++}
++
++#endif
++
++/**
++ Determine if a string contains a substring.
++
++ @param string String to be searched.
++ @param substring String to be found.
++ @return Boolean value indicating success or failure.
++*/
++#if defined(TRIO_FUNC_CONTAINS)
++
++TRIO_PUBLIC_STRING int
++trio_contains
++TRIO_ARGS2((string, substring),
++ TRIO_CONST char *string,
++ TRIO_CONST char *substring)
++{
++ assert(string);
++ assert(substring);
++
++ return (0 != strstr(string, substring));
++}
++
++#endif
++
++/**
++ Copy @p source to @p target.
++
++ @param target Target string.
++ @param source Source string.
++ @return Boolean value indicating success or failure.
++
++ @pre @p target must point to a memory chunk with sufficient room to
++ contain the @p source string.
++ @pre No boundary checking is performed, so insufficient memory will
++ result in a buffer overrun.
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_COPY)
++
++TRIO_PUBLIC_STRING int
++trio_copy
++TRIO_ARGS2((target, source),
++ char *target,
++ TRIO_CONST char *source)
++{
++ assert(target);
++ assert(source);
++
++ (void)strcpy(target, source);
++ return TRUE;
++}
++
++#endif
++
++/**
++ Copy at most @p max - 1 characters from @p source to @p target.
++
++ @param target Target string.
++ @param max Maximum number of characters to append (one of which is
++ a NUL terminator). In other words @p source must point to at least
++ @p max - 1 bytes, but @p target must point to at least @p max
++ bytes.
++ @param source Source string.
++ @return Boolean value indicating success or failure.
++
++ @pre @p target must point to a memory chunk with sufficient room to
++ contain the @p source string and a NUL terminator (at most @p max
++ bytes total).
++ @pre No boundary checking is performed, so insufficient memory will
++ result in a buffer overrun.
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_COPY_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_copy_max
++TRIO_ARGS3((target, max, source),
++ char *target,
++ size_t max,
++ TRIO_CONST char *source)
++{
++ assert(target);
++ assert(source);
++ assert(max > 0); /* Includes != 0 */
++
++ (void)strncpy(target, source, max - 1);
++ target[max - 1] = (char)0;
++ return TRUE;
++}
++
++#endif
++
++/**
++ Duplicate @p source.
++
++ @param source Source string.
++ @return A copy of the @p source string.
++
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_DUPLICATE)
++
++TRIO_PUBLIC_STRING char *
++trio_duplicate
++TRIO_ARGS1((source),
++ TRIO_CONST char *source)
++{
++ return internal_duplicate_max(source, trio_length(source));
++}
++
++#endif
++
++/**
++ Duplicate at most @p max characters of @p source.
++
++ @param source Source string.
++ @param max Maximum number of characters to duplicate.
++ @return A copy of the @p source string.
++
++ @post @p target will be zero terminated.
++*/
++#if defined(TRIO_FUNC_DUPLICATE_MAX)
++
++TRIO_PUBLIC_STRING char *
++trio_duplicate_max
++TRIO_ARGS2((source, max),
++ TRIO_CONST char *source,
++ size_t max)
++{
++ size_t length;
++
++ assert(source);
++ assert(max > 0);
++
++ length = trio_length(source);
++ if (length > max)
++ {
++ length = max;
++ }
++ return internal_duplicate_max(source, length);
++}
++
++#endif
++
++/**
++ Compare if two strings are equal.
++
++ @param first First string.
++ @param second Second string.
++ @return Boolean indicating whether the two strings are equal or not.
++
++ Case-insensitive comparison.
++*/
++#if defined(TRIO_FUNC_EQUAL)
++
++TRIO_PUBLIC_STRING int
++trio_equal
++TRIO_ARGS2((first, second),
++ TRIO_CONST char *first,
++ TRIO_CONST char *second)
++{
++ assert(first);
++ assert(second);
++
++ if ((first != NULL) && (second != NULL))
++ {
++# if defined(USE_STRCASECMP)
++ return (0 == strcasecmp(first, second));
++# else
++ while ((*first != NIL) && (*second != NIL))
++ {
++ if (internal_to_upper(*first) != internal_to_upper(*second))
++ {
++ break;
++ }
++ first++;
++ second++;
++ }
++ return ((*first == NIL) && (*second == NIL));
++# endif
++ }
++ return FALSE;
++}
++
++#endif
++
++/**
++ Compare if two strings are equal.
++
++ @param first First string.
++ @param second Second string.
++ @return Boolean indicating whether the two strings are equal or not.
++
++ Case-sensitive comparison.
++*/
++#if defined(TRIO_FUNC_EQUAL_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_equal_case
++TRIO_ARGS2((first, second),
++ TRIO_CONST char *first,
++ TRIO_CONST char *second)
++{
++ assert(first);
++ assert(second);
++
++ if ((first != NULL) && (second != NULL))
++ {
++ return (0 == strcmp(first, second));
++ }
++ return FALSE;
++}
++
++#endif
++
++/**
++ Compare if two strings up until the first @p max characters are equal.
++
++ @param first First string.
++ @param max Maximum number of characters to compare.
++ @param second Second string.
++ @return Boolean indicating whether the two strings are equal or not.
++
++ Case-sensitive comparison.
++*/
++#if defined(TRIO_FUNC_EQUAL_CASE_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_equal_case_max
++TRIO_ARGS3((first, max, second),
++ TRIO_CONST char *first,
++ size_t max,
++ TRIO_CONST char *second)
++{
++ assert(first);
++ assert(second);
++
++ if ((first != NULL) && (second != NULL))
++ {
++ return (0 == strncmp(first, second, max));
++ }
++ return FALSE;
++}
++
++#endif
++
++/**
++ Compare if two strings are equal.
++
++ @param first First string.
++ @param second Second string.
++ @return Boolean indicating whether the two strings are equal or not.
++
++ Collating characters are considered equal.
++*/
++#if defined(TRIO_FUNC_EQUAL_LOCALE)
++
++TRIO_PUBLIC_STRING int
++trio_equal_locale
++TRIO_ARGS2((first, second),
++ TRIO_CONST char *first,
++ TRIO_CONST char *second)
++{
++ assert(first);
++ assert(second);
++
++# if defined(LC_COLLATE)
++ return (strcoll(first, second) == 0);
++# else
++ return trio_equal(first, second);
++# endif
++}
++
++#endif
++
++/**
++ Compare if two strings up until the first @p max characters are equal.
++
++ @param first First string.
++ @param max Maximum number of characters to compare.
++ @param second Second string.
++ @return Boolean indicating whether the two strings are equal or not.
++
++ Case-insensitive comparison.
++*/
++#if defined(TRIO_FUNC_EQUAL_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_equal_max
++TRIO_ARGS3((first, max, second),
++ TRIO_CONST char *first,
++ size_t max,
++ TRIO_CONST char *second)
++{
++ assert(first);
++ assert(second);
++
++ if ((first != NULL) && (second != NULL))
++ {
++# if defined(USE_STRNCASECMP)
++ return (0 == strncasecmp(first, second, max));
++# else
++ /* Not adequately tested yet */
++ size_t cnt = 0;
++ while ((*first != NIL) && (*second != NIL) && (cnt <= max))
++ {
++ if (internal_to_upper(*first) != internal_to_upper(*second))
++ {
++ break;
++ }
++ first++;
++ second++;
++ cnt++;
++ }
++ return ((cnt == max) || ((*first == NIL) && (*second == NIL)));
++# endif
++ }
++ return FALSE;
++}
++
++#endif
++
++/**
++ Provide a textual description of an error code (errno).
++
++ @param error_number Error number.
++ @return Textual description of @p error_number.
++*/
++#if defined(TRIO_FUNC_ERROR)
++
++TRIO_PUBLIC_STRING TRIO_CONST char *
++trio_error
++TRIO_ARGS1((error_number),
++ int error_number)
++{
++# if defined(USE_STRERROR)
++
++ return strerror(error_number);
++
++# else
++# if defined(USE_SYS_ERRLIST)
++
++ extern char *sys_errlist[];
++ extern int sys_nerr;
++
++ return ((error_number < 0) || (error_number >= sys_nerr))
++ ? "unknown"
++ : sys_errlist[error_number];
++
++# else
++
++ return "unknown";
++
++# endif
++# endif
++}
++
++#endif
++
++/**
++ Format the date/time according to @p format.
++
++ @param target Target string.
++ @param max Maximum number of characters to format.
++ @param format Formatting string.
++ @param datetime Date/time structure.
++ @return Number of formatted characters.
++
++ The formatting string accepts the same specifiers as the standard C
++ function strftime.
++*/
++#if defined(TRIO_FUNC_FORMAT_DATE_MAX)
++
++TRIO_PUBLIC_STRING size_t
++trio_format_date_max
++TRIO_ARGS4((target, max, format, datetime),
++ char *target,
++ size_t max,
++ TRIO_CONST char *format,
++ TRIO_CONST struct tm *datetime)
++{
++ assert(target);
++ assert(format);
++ assert(datetime);
++ assert(max > 0);
++
++ return strftime(target, max, format, datetime);
++}
++
++#endif
++
++/**
++ Calculate a hash value for a string.
++
++ @param string String to be calculated on.
++ @param type Hash function.
++ @return Calculated hash value.
++
++ @p type can be one of the following
++ @li @c TRIO_HASH_PLAIN Plain hash function.
++*/
++#if defined(TRIO_FUNC_HASH)
++
++TRIO_PUBLIC_STRING unsigned long
++trio_hash
++TRIO_ARGS2((string, type),
++ TRIO_CONST char *string,
++ int type)
++{
++ unsigned long value = 0L;
++ char ch;
++
++ assert(string);
++
++ switch (type)
++ {
++ case TRIO_HASH_PLAIN:
++ while ( (ch = *string++) != NIL )
++ {
++ value *= 31;
++ value += (unsigned long)ch;
++ }
++ break;
++ default:
++ assert(FALSE);
++ break;
++ }
++ return value;
++}
++
++#endif
++
++/**
++ Find first occurrence of a character in a string.
++
++ @param string String to be searched.
++ @param character Character to be found.
++ @return A pointer to the found character, or NULL if character was not found.
++ */
++#if defined(TRIO_FUNC_INDEX)
++
++TRIO_PUBLIC_STRING char *
++trio_index
++TRIO_ARGS2((string, character),
++ TRIO_CONST char *string,
++ int character)
++{
++ assert(string);
++
++ return strchr(string, character);
++}
++
++#endif
++
++/**
++ Find last occurrence of a character in a string.
++
++ @param string String to be searched.
++ @param character Character to be found.
++ @return A pointer to the found character, or NULL if character was not found.
++ */
++#if defined(TRIO_FUNC_INDEX_LAST)
++
++TRIO_PUBLIC_STRING char *
++trio_index_last
++TRIO_ARGS2((string, character),
++ TRIO_CONST char *string,
++ int character)
++{
++ assert(string);
++
++ return strchr(string, character);
++}
++
++#endif
++
++/**
++ Convert the alphabetic letters in the string to lower-case.
++
++ @param target String to be converted.
++ @return Number of processed characters (converted or not).
++*/
++#if defined(TRIO_FUNC_LOWER)
++
++TRIO_PUBLIC_STRING int
++trio_lower
++TRIO_ARGS1((target),
++ char *target)
++{
++ assert(target);
++
++ return trio_span_function(target, target, trio_to_lower);
++}
++
++#endif
++
++/**
++ Compare two strings using wildcards.
++
++ @param string String to be searched.
++ @param pattern Pattern, including wildcards, to search for.
++ @return Boolean value indicating success or failure.
++
++ Case-insensitive comparison.
++
++ The following wildcards can be used
++ @li @c * Match any number of characters.
++ @li @c ? Match a single character.
++*/
++#if defined(TRIO_FUNC_MATCH)
++
++TRIO_PUBLIC_STRING int
++trio_match
++TRIO_ARGS2((string, pattern),
++ TRIO_CONST char *string,
++ TRIO_CONST char *pattern)
++{
++ assert(string);
++ assert(pattern);
++
++ for (; ('*' != *pattern); ++pattern, ++string)
++ {
++ if (NIL == *string)
++ {
++ return (NIL == *pattern);
++ }
++ if ((internal_to_upper((int)*string) != internal_to_upper((int)*pattern))
++ && ('?' != *pattern))
++ {
++ return FALSE;
++ }
++ }
++ /* two-line patch to prevent *too* much recursiveness: */
++ while ('*' == pattern[1])
++ pattern++;
++
++ do
++ {
++ if ( trio_match(string, &pattern[1]) )
++ {
++ return TRUE;
++ }
++ }
++ while (*string++);
++
++ return FALSE;
++}
++
++#endif
++
++/**
++ Compare two strings using wildcards.
++
++ @param string String to be searched.
++ @param pattern Pattern, including wildcards, to search for.
++ @return Boolean value indicating success or failure.
++
++ Case-sensitive comparison.
++
++ The following wildcards can be used
++ @li @c * Match any number of characters.
++ @li @c ? Match a single character.
++*/
++#if defined(TRIO_FUNC_MATCH_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_match_case
++TRIO_ARGS2((string, pattern),
++ TRIO_CONST char *string,
++ TRIO_CONST char *pattern)
++{
++ assert(string);
++ assert(pattern);
++
++ for (; ('*' != *pattern); ++pattern, ++string)
++ {
++ if (NIL == *string)
++ {
++ return (NIL == *pattern);
++ }
++ if ((*string != *pattern)
++ && ('?' != *pattern))
++ {
++ return FALSE;
++ }
++ }
++ /* two-line patch to prevent *too* much recursiveness: */
++ while ('*' == pattern[1])
++ pattern++;
++
++ do
++ {
++ if ( trio_match_case(string, &pattern[1]) )
++ {
++ return TRUE;
++ }
++ }
++ while (*string++);
++
++ return FALSE;
++}
++
++#endif
++
++/**
++ Execute a function on each character in string.
++
++ @param target Target string.
++ @param source Source string.
++ @param Function Function to be executed.
++ @return Number of processed characters.
++*/
++#if defined(TRIO_FUNC_SPAN_FUNCTION)
++
++TRIO_PUBLIC_STRING size_t
++trio_span_function
++TRIO_ARGS3((target, source, Function),
++ char *target,
++ TRIO_CONST char *source,
++ int (*Function) TRIO_PROTO((int)))
++{
++ size_t count = 0;
++
++ assert(target);
++ assert(source);
++ assert(Function);
++
++ while (*source != NIL)
++ {
++ *target++ = Function(*source++);
++ count++;
++ }
++ return count;
++}
++
++#endif
++
++/**
++ Search for a substring in a string.
++
++ @param string String to be searched.
++ @param substring String to be found.
++ @return Pointer to first occurrence of @p substring in @p string, or NULL
++ if no match was found.
++*/
++#if defined(TRIO_FUNC_SUBSTRING)
++
++TRIO_PUBLIC_STRING char *
++trio_substring
++TRIO_ARGS2((string, substring),
++ TRIO_CONST char *string,
++ TRIO_CONST char *substring)
++{
++ assert(string);
++ assert(substring);
++
++ return strstr(string, substring);
++}
++
++#endif
++
++/**
++ Search for a substring in the first @p max characters of a string.
++
++ @param string String to be searched.
++ @param max Maximum characters to be searched.
++ @param substring String to be found.
++ @return Pointer to first occurrence of @p substring in @p string, or NULL
++ if no match was found.
++*/
++#if defined(TRIO_FUNC_SUBSTRING_MAX)
++
++TRIO_PUBLIC_STRING char *
++trio_substring_max
++TRIO_ARGS3((string, max, substring),
++ TRIO_CONST char *string,
++ size_t max,
++ TRIO_CONST char *substring)
++{
++ size_t count;
++ size_t size;
++ char *result = NULL;
++
++ assert(string);
++ assert(substring);
++
++ size = trio_length(substring);
++ if (size <= max)
++ {
++ for (count = 0; count <= max - size; count++)
++ {
++ if (trio_equal_max(substring, size, &string[count]))
++ {
++ result = (char *)&string[count];
++ break;
++ }
++ }
++ }
++ return result;
++}
++
++#endif
++
++/**
++ Tokenize string.
++
++ @param string String to be tokenized.
++ @param delimiters String containing list of delimiting characters.
++ @return Start of new token.
++
++ @warning @p string will be destroyed.
++*/
++#if defined(TRIO_FUNC_TOKENIZE)
++
++TRIO_PUBLIC_STRING char *
++trio_tokenize
++TRIO_ARGS2((string, delimiters),
++ char *string,
++ TRIO_CONST char *delimiters)
++{
++ assert(delimiters);
++
++ return strtok(string, delimiters);
++}
++
++#endif
++
++/**
++ Convert string to floating-point number.
++
++ @param source String to be converted.
++ @param endp Pointer to end of the converted string.
++ @return A floating-point number.
++
++ The following Extended Backus-Naur form is used
++ @verbatim
++ double ::= [ <sign> ]
++ ( <number> |
++ <number> <decimal_point> <number> |
++ <decimal_point> <number> )
++ [ <exponential> [ <sign> ] <number> ]
++ number ::= 1*( <digit> )
++ digit ::= ( '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' )
++ exponential ::= ( 'e' | 'E' )
++ sign ::= ( '-' | '+' )
++ decimal_point ::= '.'
++ @endverbatim
++*/
++#if defined(TRIO_FUNC_TO_LONG_DOUBLE)
++
++/* FIXME: Add EBNF for hex-floats */
++TRIO_PUBLIC_STRING trio_long_double_t
++trio_to_long_double
++TRIO_ARGS2((source, endp),
++ TRIO_CONST char *source,
++ char **endp)
++{
++# if defined(USE_STRTOLD)
++ return strtold(source, endp);
++# else
++ int isNegative = FALSE;
++ int isExponentNegative = FALSE;
++ trio_long_double_t integer = 0.0;
++ trio_long_double_t fraction = 0.0;
++ unsigned long exponent = 0;
++ trio_long_double_t base;
++ trio_long_double_t fracdiv = 1.0;
++ trio_long_double_t value = 0.0;
++
++ /* First try hex-floats */
++ if ((source[0] == '0') && ((source[1] == 'x') || (source[1] == 'X')))
++ {
++ base = 16.0;
++ source += 2;
++ while (isxdigit((int)*source))
++ {
++ integer *= base;
++ integer += (isdigit((int)*source)
++ ? (*source - '0')
++ : 10 + (internal_to_upper((int)*source) - 'A'));
++ source++;
++ }
++ if (*source == '.')
++ {
++ source++;
++ while (isxdigit((int)*source))
++ {
++ fracdiv /= base;
++ fraction += fracdiv * (isdigit((int)*source)
++ ? (*source - '0')
++ : 10 + (internal_to_upper((int)*source) - 'A'));
++ source++;
++ }
++ if ((*source == 'p') || (*source == 'P'))
++ {
++ source++;
++ if ((*source == '+') || (*source == '-'))
++ {
++ isExponentNegative = (*source == '-');
++ source++;
++ }
++ while (isdigit((int)*source))
++ {
++ exponent *= 10;
++ exponent += (*source - '0');
++ source++;
++ }
++ }
++ }
++ /* For later use with exponent */
++ base = 2.0;
++ }
++ else /* Then try normal decimal floats */
++ {
++ base = 10.0;
++ isNegative = (*source == '-');
++ /* Skip sign */
++ if ((*source == '+') || (*source == '-'))
++ source++;
++
++ /* Integer part */
++ while (isdigit((int)*source))
++ {
++ integer *= base;
++ integer += (*source - '0');
++ source++;
++ }
++
++ if (*source == '.')
++ {
++ source++; /* skip decimal point */
++ while (isdigit((int)*source))
++ {
++ fracdiv /= base;
++ fraction += (*source - '0') * fracdiv;
++ source++;
++ }
++ }
++ if ((*source == 'e')
++ || (*source == 'E')
++# if TRIO_MICROSOFT
++ || (*source == 'd')
++ || (*source == 'D')
++# endif
++ )
++ {
++ source++; /* Skip exponential indicator */
++ isExponentNegative = (*source == '-');
++ if ((*source == '+') || (*source == '-'))
++ source++;
++ while (isdigit((int)*source))
++ {
++ exponent *= (int)base;
++ exponent += (*source - '0');
++ source++;
++ }
++ }
++ }
++
++ value = integer + fraction;
++ if (exponent != 0)
++ {
++ if (isExponentNegative)
++ value /= trio_powl(base, (trio_long_double_t)exponent);
++ else
++ value *= trio_powl(base, (trio_long_double_t)exponent);
++ }
++ if (isNegative)
++ value = -value;
++
++ if (endp)
++ *endp = (char *)source;
++ return value;
++# endif
++}
++
++#endif
++
++/**
++ Convert string to floating-point number.
++
++ @param source String to be converted.
++ @param endp Pointer to end of the converted string.
++ @return A floating-point number.
++
++ See @ref trio_to_long_double.
++*/
++#if defined(TRIO_FUNC_TO_DOUBLE)
++
++TRIO_PUBLIC_STRING double
++trio_to_double
++TRIO_ARGS2((source, endp),
++ TRIO_CONST char *source,
++ char **endp)
++{
++#if defined(USE_STRTOD)
++ return strtod(source, endp);
++#else
++ return (double)trio_to_long_double(source, endp);
++#endif
++}
++
++#endif
++
++/**
++ Convert string to floating-point number.
++
++ @param source String to be converted.
++ @param endp Pointer to end of the converted string.
++ @return A floating-point number.
++
++ See @ref trio_to_long_double.
++*/
++#if defined(TRIO_FUNC_TO_FLOAT)
++
++TRIO_PUBLIC_STRING float
++trio_to_float
++TRIO_ARGS2((source, endp),
++ TRIO_CONST char *source,
++ char **endp)
++{
++# if defined(USE_STRTOF)
++ return strtof(source, endp);
++# else
++ return (float)trio_to_long_double(source, endp);
++# endif
++}
++
++#endif
++
++/**
++ Convert string to signed integer.
++
++ @param string String to be converted.
++ @param endp Pointer to end of converted string.
++ @param base Radix number of number.
++*/
++#if defined(TRIO_FUNC_TO_LONG)
++
++TRIO_PUBLIC_STRING long
++trio_to_long
++TRIO_ARGS3((string, endp, base),
++ TRIO_CONST char *string,
++ char **endp,
++ int base)
++{
++ assert(string);
++ assert((base >= 2) && (base <= 36));
++
++ return strtol(string, endp, base);
++}
++
++#endif
++
++/**
++ Convert one alphabetic letter to lower-case.
++
++ @param source The letter to be converted.
++ @return The converted letter.
++*/
++#if defined(TRIO_FUNC_TO_LOWER)
++
++TRIO_PUBLIC_STRING int
++trio_to_lower
++TRIO_ARGS1((source),
++ int source)
++{
++# if defined(HAVE_TOLOWER)
++
++ return tolower(source);
++
++# else
++
++ /* Does not handle locales or non-contiguous alphabetic characters */
++ return ((source >= (int)'A') && (source <= (int)'Z'))
++ ? source - 'A' + 'a'
++ : source;
++
++# endif
++}
++
++#endif
++
++/**
++ Convert string to unsigned integer.
++
++ @param string String to be converted.
++ @param endp Pointer to end of converted string.
++ @param base Radix number of number.
++*/
++#if defined(TRIO_FUNC_TO_UNSIGNED_LONG)
++
++TRIO_PUBLIC_STRING unsigned long
++trio_to_unsigned_long
++TRIO_ARGS3((string, endp, base),
++ TRIO_CONST char *string,
++ char **endp,
++ int base)
++{
++ assert(string);
++ assert((base >= 2) && (base <= 36));
++
++ return strtoul(string, endp, base);
++}
++
++#endif
++
++/**
++ Convert one alphabetic letter to upper-case.
++
++ @param source The letter to be converted.
++ @return The converted letter.
++*/
++#if defined(TRIO_FUNC_TO_UPPER)
++
++TRIO_PUBLIC_STRING int
++trio_to_upper
++TRIO_ARGS1((source),
++ int source)
++{
++ return internal_to_upper(source);
++}
++
++#endif
++
++/**
++ Convert the alphabetic letters in the string to upper-case.
++
++ @param target The string to be converted.
++ @return The number of processed characters (converted or not).
++*/
++#if defined(TRIO_FUNC_UPPER)
++
++TRIO_PUBLIC_STRING int
++trio_upper
++TRIO_ARGS1((target),
++ char *target)
++{
++ assert(target);
++
++ return trio_span_function(target, target, internal_to_upper);
++}
++
++#endif
++
++/** @} End of StaticStrings */
++
++
++/*************************************************************************
++ * Dynamic String Functions
++ */
++
++#if defined(TRIO_DOCUMENTATION)
++# include "doc/doc_dynamic.h"
++#endif
++/** @addtogroup DynamicStrings
++ @{
++*/
++
++/**
++ Create a new dynamic string.
++
++ @param initial_size Initial size of the buffer.
++ @return Newly allocated dynamic string, or NULL if memory allocation failed.
++*/
++#if defined(TRIO_FUNC_STRING_CREATE)
++
++TRIO_PUBLIC_STRING trio_string_t *
++trio_string_create
++TRIO_ARGS1((initial_size),
++ int initial_size)
++{
++ trio_string_t *self;
++
++ self = internal_string_alloc();
++ if (self)
++ {
++ if (internal_string_grow(self,
++ (size_t)((initial_size > 0) ? initial_size : 1)))
++ {
++ self->content[0] = (char)0;
++ self->allocated = initial_size;
++ }
++ else
++ {
++ trio_string_destroy(self);
++ self = NULL;
++ }
++ }
++ return self;
++}
++
++#endif
++
++/**
++ Deallocate the dynamic string and its contents.
++
++ @param self Dynamic string
++*/
++#if defined(TRIO_FUNC_STRING_DESTROY)
++
++TRIO_PUBLIC_STRING void
++trio_string_destroy
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ assert(self);
++
++ if (self)
++ {
++ trio_destroy(self->content);
++ TRIO_FREE(self);
++ }
++}
++
++#endif
++
++/**
++ Get a pointer to the content.
++
++ @param self Dynamic string.
++ @param offset Offset into content.
++ @return Pointer to the content.
++
++ @p Offset can be zero, positive, or negative. If @p offset is zero,
++ then the start of the content will be returned. If @p offset is positive,
++ then a pointer to @p offset number of characters from the beginning of the
++ content is returned. If @p offset is negative, then a pointer to @p offset
++ number of characters from the ending of the string, starting at the
++ terminating zero, is returned.
++*/
++#if defined(TRIO_FUNC_STRING_GET)
++
++TRIO_PUBLIC_STRING char *
++trio_string_get
++TRIO_ARGS2((self, offset),
++ trio_string_t *self,
++ int offset)
++{
++ char *result = NULL;
++
++ assert(self);
++
++ if (self->content != NULL)
++ {
++ if (self->length == 0)
++ {
++ (void)trio_string_length(self);
++ }
++ if (offset >= 0)
++ {
++ if (offset > (int)self->length)
++ {
++ offset = self->length;
++ }
++ }
++ else
++ {
++ offset += self->length + 1;
++ if (offset < 0)
++ {
++ offset = 0;
++ }
++ }
++ result = &(self->content[offset]);
++ }
++ return result;
++}
++
++#endif
++
++/**
++ Extract the content.
++
++ @param self Dynamic String
++ @return Content of dynamic string.
++
++ The content is removed from the dynamic string. This enables destruction
++ of the dynamic string without deallocation of the content.
++*/
++#if defined(TRIO_FUNC_STRING_EXTRACT)
++
++TRIO_PUBLIC_STRING char *
++trio_string_extract
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ char *result;
++
++ assert(self);
++
++ result = self->content;
++ /* FIXME: Allocate new empty buffer? */
++ self->content = NULL;
++ self->length = self->allocated = 0;
++ return result;
++}
++
++#endif
++
++/**
++ Set the content of the dynamic string.
++
++ @param self Dynamic String
++ @param buffer The new content.
++
++ Sets the content of the dynamic string to a copy @p buffer.
++ An existing content will be deallocated first, if necessary.
++
++ @remark
++ This function will make a copy of @p buffer.
++ You are responsible for deallocating @p buffer yourself.
++*/
++#if defined(TRIO_FUNC_XSTRING_SET)
++
++TRIO_PUBLIC_STRING void
++trio_xstring_set
++TRIO_ARGS2((self, buffer),
++ trio_string_t *self,
++ char *buffer)
++{
++ assert(self);
++
++ trio_destroy(self->content);
++ self->content = trio_duplicate(buffer);
++}
++
++#endif
++
++/*
++ * trio_string_size
++ */
++#if defined(TRIO_FUNC_STRING_SIZE)
++
++TRIO_PUBLIC_STRING int
++trio_string_size
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ assert(self);
++
++ return self->allocated;
++}
++
++#endif
++
++/*
++ * trio_string_terminate
++ */
++#if defined(TRIO_FUNC_STRING_TERMINATE)
++
++TRIO_PUBLIC_STRING void
++trio_string_terminate
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ trio_xstring_append_char(self, 0);
++}
++
++#endif
++
++/**
++ Append the second string to the first.
++
++ @param self Dynamic string to be modified.
++ @param other Dynamic string to copy from.
++ @return Boolean value indicating success or failure.
++*/
++#if defined(TRIO_FUNC_STRING_APPEND)
++
++TRIO_PUBLIC_STRING int
++trio_string_append
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ size_t length;
++
++ assert(self);
++ assert(other);
++
++ length = self->length + other->length;
++ if (!internal_string_grow_to(self, length))
++ goto error;
++ trio_copy(&self->content[self->length], other->content);
++ self->length = length;
++ return TRUE;
++
++ error:
++ return FALSE;
++}
++
++#endif
++
++
++/*
++ * trio_xstring_append
++ */
++#if defined(TRIO_FUNC_XSTRING_APPEND)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_append
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ size_t length;
++
++ assert(self);
++ assert(other);
++
++ length = self->length + trio_length(other);
++ if (!internal_string_grow_to(self, length))
++ goto error;
++ trio_copy(&self->content[self->length], other);
++ self->length = length;
++ return TRUE;
++
++ error:
++ return FALSE;
++}
++
++#endif
++
++/*
++ * trio_xstring_append_char
++ */
++#if defined(TRIO_FUNC_XSTRING_APPEND_CHAR)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_append_char
++TRIO_ARGS2((self, character),
++ trio_string_t *self,
++ char character)
++{
++ assert(self);
++
++ if ((int)self->length >= trio_string_size(self))
++ {
++ if (!internal_string_grow(self, 0))
++ goto error;
++ }
++ self->content[self->length] = character;
++ self->length++;
++ return TRUE;
++
++ error:
++ return FALSE;
++}
++
++#endif
++
++/*
++ * trio_xstring_append_max
++ */
++#if defined(TRIO_FUNC_XSTRING_APPEND_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_append_max
++TRIO_ARGS3((self, other, max),
++ trio_string_t *self,
++ TRIO_CONST char *other,
++ size_t max)
++{
++ size_t length;
++
++ assert(self);
++ assert(other);
++
++ length = self->length + trio_length_max(other, max);
++ if (!internal_string_grow_to(self, length))
++ goto error;
++
++ /*
++ * Pass max + 1 since trio_copy_max copies one character less than
++ * this from the source to make room for a terminating zero.
++ */
++ trio_copy_max(&self->content[self->length], max + 1, other);
++ self->length = length;
++ return TRUE;
++
++ error:
++ return FALSE;
++}
++
++#endif
++
++/**
++ Search for the first occurrence of second parameter in the first.
++
++ @param self Dynamic string to be modified.
++ @param other Dynamic string to copy from.
++ @return Boolean value indicating success or failure.
++*/
++#if defined(TRIO_FUNC_STRING_CONTAINS)
++
++TRIO_PUBLIC_STRING int
++trio_string_contains
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_contains(self->content, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_contains
++ */
++#if defined(TRIO_FUNC_XSTRING_CONTAINS)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_contains
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_contains(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_copy
++ */
++#if defined(TRIO_FUNC_STRING_COPY)
++
++TRIO_PUBLIC_STRING int
++trio_string_copy
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ self->length = 0;
++ return trio_string_append(self, other);
++}
++
++#endif
++
++
++/*
++ * trio_xstring_copy
++ */
++#if defined(TRIO_FUNC_XSTRING_COPY)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_copy
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ self->length = 0;
++ return trio_xstring_append(self, other);
++}
++
++#endif
++
++/*
++ * trio_string_duplicate
++ */
++#if defined(TRIO_FUNC_STRING_DUPLICATE)
++
++TRIO_PUBLIC_STRING trio_string_t *
++trio_string_duplicate
++TRIO_ARGS1((other),
++ trio_string_t *other)
++{
++ trio_string_t *self;
++
++ assert(other);
++
++ self = internal_string_alloc();
++ if (self)
++ {
++ self->content = internal_duplicate_max(other->content, other->length);
++ if (self->content)
++ {
++ self->length = other->length;
++ self->allocated = self->length + 1;
++ }
++ else
++ {
++ self->length = self->allocated = 0;
++ }
++ }
++ return self;
++}
++
++#endif
++
++/*
++ * trio_xstring_duplicate
++ */
++#if defined(TRIO_FUNC_XSTRING_DUPLICATE)
++
++TRIO_PUBLIC_STRING trio_string_t *
++trio_xstring_duplicate
++TRIO_ARGS1((other),
++ TRIO_CONST char *other)
++{
++ trio_string_t *self;
++
++ assert(other);
++
++ self = internal_string_alloc();
++ if (self)
++ {
++ self->content = internal_duplicate_max(other, trio_length(other));
++ if (self->content)
++ {
++ self->length = trio_length(self->content);
++ self->allocated = self->length + 1;
++ }
++ else
++ {
++ self->length = self->allocated = 0;
++ }
++ }
++ return self;
++}
++
++#endif
++
++/*
++ * trio_string_equal
++ */
++#if defined(TRIO_FUNC_STRING_EQUAL)
++
++TRIO_PUBLIC_STRING int
++trio_string_equal
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal(self->content, other->content);
++}
++
++#endif
++
++
++/*
++ * trio_xstring_equal
++ */
++#if defined(TRIO_FUNC_XSTRING_EQUAL)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_equal
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_equal_max
++ */
++#if defined(TRIO_FUNC_STRING_EQUAL_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_string_equal_max
++TRIO_ARGS3((self, max, other),
++ trio_string_t *self,
++ size_t max,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_max(self->content, max, other->content);
++}
++#endif
++
++/*
++ * trio_xstring_equal_max
++ */
++#if defined(TRIO_FUNC_XSTRING_EQUAL_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_max
++TRIO_ARGS3((self, max, other),
++ trio_string_t *self,
++ size_t max,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_max(self->content, max, other);
++}
++
++#endif
++
++/*
++ * trio_string_equal_case
++ */
++#if defined(TRIO_FUNC_STRING_EQUAL_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_string_equal_case
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_case(self->content, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_equal_case
++ */
++#if defined(TRIO_FUNC_XSTRING_EQUAL_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_case
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_case(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_equal_case_max
++ */
++#if defined(TRIO_FUNC_STRING_EQUAL_CASE_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_string_equal_case_max
++TRIO_ARGS3((self, max, other),
++ trio_string_t *self,
++ size_t max,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_case_max(self->content, max, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_equal_case_max
++ */
++#if defined(TRIO_FUNC_XSTRING_EQUAL_CASE_MAX)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_case_max
++TRIO_ARGS3((self, max, other),
++ trio_string_t *self,
++ size_t max,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_equal_case_max(self->content, max, other);
++}
++
++#endif
++
++/*
++ * trio_string_format_data_max
++ */
++#if defined(TRIO_FUNC_STRING_FORMAT_DATE_MAX)
++
++TRIO_PUBLIC_STRING size_t
++trio_string_format_date_max
++TRIO_ARGS4((self, max, format, datetime),
++ trio_string_t *self,
++ size_t max,
++ TRIO_CONST char *format,
++ TRIO_CONST struct tm *datetime)
++{
++ assert(self);
++
++ return trio_format_date_max(self->content, max, format, datetime);
++}
++
++#endif
++
++/*
++ * trio_string_index
++ */
++#if defined(TRIO_FUNC_STRING_INDEX)
++
++TRIO_PUBLIC_STRING char *
++trio_string_index
++TRIO_ARGS2((self, character),
++ trio_string_t *self,
++ int character)
++{
++ assert(self);
++
++ return trio_index(self->content, character);
++}
++
++#endif
++
++/*
++ * trio_string_index_last
++ */
++#if defined(TRIO_FUNC_STRING_INDEX_LAST)
++
++TRIO_PUBLIC_STRING char *
++trio_string_index_last
++TRIO_ARGS2((self, character),
++ trio_string_t *self,
++ int character)
++{
++ assert(self);
++
++ return trio_index_last(self->content, character);
++}
++
++#endif
++
++/*
++ * trio_string_length
++ */
++#if defined(TRIO_FUNC_STRING_LENGTH)
++
++TRIO_PUBLIC_STRING int
++trio_string_length
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ assert(self);
++
++ if (self->length == 0)
++ {
++ self->length = trio_length(self->content);
++ }
++ return self->length;
++}
++
++#endif
++
++/*
++ * trio_string_lower
++ */
++#if defined(TRIO_FUNC_STRING_LOWER)
++
++TRIO_PUBLIC_STRING int
++trio_string_lower
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ assert(self);
++
++ return trio_lower(self->content);
++}
++
++#endif
++
++/*
++ * trio_string_match
++ */
++#if defined(TRIO_FUNC_STRING_MATCH)
++
++TRIO_PUBLIC_STRING int
++trio_string_match
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_match(self->content, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_match
++ */
++#if defined(TRIO_FUNC_XSTRING_MATCH)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_match
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_match(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_match_case
++ */
++#if defined(TRIO_FUNC_STRING_MATCH_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_string_match_case
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_match_case(self->content, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_match_case
++ */
++#if defined(TRIO_FUNC_XSTRING_MATCH_CASE)
++
++TRIO_PUBLIC_STRING int
++trio_xstring_match_case
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_match_case(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_substring
++ */
++#if defined(TRIO_FUNC_STRING_SUBSTRING)
++
++TRIO_PUBLIC_STRING char *
++trio_string_substring
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ trio_string_t *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_substring(self->content, other->content);
++}
++
++#endif
++
++/*
++ * trio_xstring_substring
++ */
++#if defined(TRIO_FUNC_XSTRING_SUBSTRING)
++
++TRIO_PUBLIC_STRING char *
++trio_xstring_substring
++TRIO_ARGS2((self, other),
++ trio_string_t *self,
++ TRIO_CONST char *other)
++{
++ assert(self);
++ assert(other);
++
++ return trio_substring(self->content, other);
++}
++
++#endif
++
++/*
++ * trio_string_upper
++ */
++#if defined(TRIO_FUNC_STRING_UPPER)
++
++TRIO_PUBLIC_STRING int
++trio_string_upper
++TRIO_ARGS1((self),
++ trio_string_t *self)
++{
++ assert(self);
++
++ return trio_upper(self->content);
++}
++
++#endif
++
++/** @} End of DynamicStrings */
+diff -up ghostscript-9.07/trio/triostr.h.gs_sprintf ghostscript-9.07/trio/triostr.h
+--- ghostscript-9.07/trio/triostr.h.gs_sprintf 2013-05-09 17:02:39.114447292 +0100
++++ ghostscript-9.07/trio/triostr.h 2013-05-09 17:02:39.114447292 +0100
+@@ -0,0 +1,681 @@
++/*************************************************************************
++ *
++ * $Id: triostr.h,v 1.18 2010/01/26 13:02:02 breese Exp $
++ *
++ * Copyright (C) 2001 Bjorn Reese and Daniel Stenberg.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
++ * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
++ * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
++ * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
++ *
++ ************************************************************************/
++
++#ifndef TRIO_TRIOSTR_H
++#define TRIO_TRIOSTR_H
++
++/*
++ * Documentation is located in triostr.c
++ */
++
++#include <assert.h>
++#include <stdlib.h>
++#include <string.h>
++#include <time.h>
++#include "triodef.h"
++#include "triop.h"
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++enum {
++ TRIO_HASH_NONE = 0,
++ TRIO_HASH_PLAIN,
++ TRIO_HASH_TWOSIGNED
++};
++
++#if !defined(TRIO_PUBLIC_STRING)
++# if !defined(TRIO_PUBLIC)
++# define TRIO_PUBLIC
++# endif
++# define TRIO_PUBLIC_STRING TRIO_PUBLIC
++#endif
++
++/*************************************************************************
++ * Dependencies
++ */
++
++#if defined(TRIO_EMBED_STRING)
++
++/*
++ * The application that triostr is embedded in must define which functions
++ * it uses.
++ *
++ * The following resolves internal dependencies.
++ */
++
++# if defined(TRIO_FUNC_XSTRING_SET)
++# if !defined(TRIO_FUNC_DUPLICATE)
++# define TRIO_FUNC_DUPLICATE
++# endif
++# endif
++
++# if defined(TRIO_FUNC_DUPLICATE) \
++ || defined(TRIO_FUNC_DUPLICATE_MAX) \
++ || defined(TRIO_FUNC_STRING_DUPLICATE) \
++ || defined(TRIO_FUNC_XSTRING_DUPLICATE)
++# if !defined(TRIO_FUNC_CREATE)
++# define TRIO_FUNC_CREATE
++# endif
++# if !defined(TRIO_FUNC_COPY_MAX)
++# define TRIO_FUNC_COPY_MAX
++# endif
++# endif
++
++# if defined(TRIO_FUNC_STRING_CREATE)
++# if !defined(TRIO_FUNC_STRING_DESTROY)
++# define TRIO_FUNC_STRING_DESTROY
++# endif
++# endif
++
++# if defined(TRIO_FUNC_STRING_DESTROY) \
++ || defined(TRIO_FUNC_XSTRING_SET)
++# if !defined(TRIO_FUNC_DESTROY)
++# define TRIO_FUNC_DESTROY
++# endif
++# endif
++
++# if defined(TRIO_FUNC_EQUAL_LOCALE) \
++ || defined(TRIO_FUNC_STRING_EQUAL) \
++ || defined(TRIO_FUNC_XSTRING_EQUAL)
++# if !defined(TRIO_FUNC_EQUAL)
++# define TRIO_FUNC_EQUAL
++# endif
++# endif
++
++# if defined(TRIO_FUNC_EQUAL_CASE) \
++ || defined(TRIO_FUNC_STRING_EQUAL_CASE) \
++ || defined(TRIO_FUNC_XSTRING_EQUAL_CASE)
++# if !defined(TRIO_FUNC_EQUAL_CASE)
++# define TRIO_FUNC_EQUAL_CASE
++# endif
++# endif
++
++# if defined(TRIO_FUNC_SUBSTRING_MAX) \
++ || defined(TRIO_FUNC_STRING_EQUAL_MAX) \
++ || defined(TRIO_FUNC_XSTRING_EQUAL_MAX)
++# if !defined(TRIO_FUNC_EQUAL_MAX)
++# define TRIO_FUNC_EQUAL_MAX
++# endif
++# endif
++
++# if defined(TRIO_FUNC_TO_DOUBLE) \
++ || defined(TRIO_FUNC_TO_FLOAT)
++# if !defined(TRIO_FUNC_TO_LONG_DOUBLE)
++# define TRIO_FUNC_TO_LONG_DOUBLE
++# endif
++# endif
++
++# if defined(TRIO_FUNC_STRING_TERMINATE)
++# if !defined(TRIO_FUNC_XSTRING_APPEND_CHAR)
++# define TRIO_FUNC_XSTRING_APPEND_CHAR
++# endif
++# endif
++
++# if defined(TRIO_FUNC_XSTRING_APPEND_CHAR)
++# if !defined(TRIO_FUNC_STRING_SIZE)
++# define TRIO_FUNC_STRING_SIZE
++# endif
++# endif
++
++#else
++
++/*
++ * When triostr is not embedded all functions are defined.
++ */
++
++# define TRIO_FUNC_APPEND
++# define TRIO_FUNC_APPEND_MAX
++# define TRIO_FUNC_CONTAINS
++# define TRIO_FUNC_COPY
++# define TRIO_FUNC_COPY_MAX
++# define TRIO_FUNC_CREATE
++# define TRIO_FUNC_DESTROY
++# define TRIO_FUNC_DUPLICATE
++# define TRIO_FUNC_DUPLICATE_MAX
++# define TRIO_FUNC_EQUAL
++# define TRIO_FUNC_EQUAL_CASE
++# define TRIO_FUNC_EQUAL_CASE_MAX
++# define TRIO_FUNC_EQUAL_LOCALE
++# define TRIO_FUNC_EQUAL_MAX
++# define TRIO_FUNC_ERROR
++# if !defined(TRIO_PLATFORM_WINCE)
++# define TRIO_FUNC_FORMAT_DATE_MAX
++# endif
++# define TRIO_FUNC_HASH
++# define TRIO_FUNC_INDEX
++# define TRIO_FUNC_INDEX_LAST
++# define TRIO_FUNC_LENGTH
++# define TRIO_FUNC_LENGTH_MAX
++# define TRIO_FUNC_LOWER
++# define TRIO_FUNC_MATCH
++# define TRIO_FUNC_MATCH_CASE
++# define TRIO_FUNC_SPAN_FUNCTION
++# define TRIO_FUNC_SUBSTRING
++# define TRIO_FUNC_SUBSTRING_MAX
++# define TRIO_FUNC_TO_DOUBLE
++# define TRIO_FUNC_TO_FLOAT
++# define TRIO_FUNC_TO_LONG
++# define TRIO_FUNC_TO_LONG_DOUBLE
++# define TRIO_FUNC_TO_LOWER
++# define TRIO_FUNC_TO_UNSIGNED_LONG
++# define TRIO_FUNC_TO_UPPER
++# define TRIO_FUNC_TOKENIZE
++# define TRIO_FUNC_UPPER
++
++# define TRIO_FUNC_STRING_APPEND
++# define TRIO_FUNC_STRING_CONTAINS
++# define TRIO_FUNC_STRING_COPY
++# define TRIO_FUNC_STRING_CREATE
++# define TRIO_FUNC_STRING_DESTROY
++# define TRIO_FUNC_STRING_DUPLICATE
++# define TRIO_FUNC_STRING_EQUAL
++# define TRIO_FUNC_STRING_EQUAL_CASE
++# define TRIO_FUNC_STRING_EQUAL_CASE_MAX
++# define TRIO_FUNC_STRING_EQUAL_MAX
++# define TRIO_FUNC_STRING_EXTRACT
++# if !defined(TRIO_PLATFORM_WINCE)
++# define TRIO_FUNC_STRING_FORMAT_DATE_MAX
++# endif
++# define TRIO_FUNC_STRING_GET
++# define TRIO_FUNC_STRING_INDEX
++# define TRIO_FUNC_STRING_INDEX_LAST
++# define TRIO_FUNC_STRING_LENGTH
++# define TRIO_FUNC_STRING_LOWER
++# define TRIO_FUNC_STRING_MATCH
++# define TRIO_FUNC_STRING_MATCH_CASE
++# define TRIO_FUNC_STRING_SIZE
++# define TRIO_FUNC_STRING_SUBSTRING
++# define TRIO_FUNC_STRING_TERMINATE
++# define TRIO_FUNC_STRING_UPPER
++
++# define TRIO_FUNC_XSTRING_APPEND
++# define TRIO_FUNC_XSTRING_APPEND_CHAR
++# define TRIO_FUNC_XSTRING_APPEND_MAX
++# define TRIO_FUNC_XSTRING_CONTAINS
++# define TRIO_FUNC_XSTRING_COPY
++# define TRIO_FUNC_XSTRING_DUPLICATE
++# define TRIO_FUNC_XSTRING_EQUAL
++# define TRIO_FUNC_XSTRING_EQUAL_CASE
++# define TRIO_FUNC_XSTRING_EQUAL_CASE_MAX
++# define TRIO_FUNC_XSTRING_EQUAL_MAX
++# define TRIO_FUNC_XSTRING_MATCH
++# define TRIO_FUNC_XSTRING_MATCH_CASE
++# define TRIO_FUNC_XSTRING_SET
++# define TRIO_FUNC_XSTRING_SUBSTRING
++
++#endif
++
++
++/*************************************************************************
++ * String functions
++ */
++
++#if defined(TRIO_FUNC_APPEND)
++TRIO_PUBLIC_STRING int
++trio_append
++TRIO_PROTO((char *target, TRIO_CONST char *source));
++#endif
++
++#if defined(TRIO_FUNC_APPEND_MAX)
++TRIO_PUBLIC_STRING int
++trio_append_max
++TRIO_PROTO((char *target, size_t max, TRIO_CONST char *source));
++#endif
++
++#if defined(TRIO_FUNC_CONTAINS)
++TRIO_PUBLIC_STRING int
++trio_contains
++TRIO_PROTO((TRIO_CONST char *string, TRIO_CONST char *substring));
++#endif
++
++#if defined(TRIO_FUNC_COPY)
++TRIO_PUBLIC_STRING int
++trio_copy
++TRIO_PROTO((char *target, TRIO_CONST char *source));
++#endif
++
++#if defined(TRIO_FUNC_COPY_MAX)
++TRIO_PUBLIC_STRING int
++trio_copy_max
++TRIO_PROTO((char *target, size_t max, TRIO_CONST char *source));
++#endif
++
++#if defined(TRIO_FUNC_CREATE)
++TRIO_PUBLIC_STRING char *
++trio_create
++TRIO_PROTO((size_t size));
++#endif
++
++#if defined(TRIO_FUNC_DESTROY)
++TRIO_PUBLIC_STRING void
++trio_destroy
++TRIO_PROTO((char *string));
++#endif
++
++#if defined(TRIO_FUNC_DUPLICATE)
++TRIO_PUBLIC_STRING char *
++trio_duplicate
++TRIO_PROTO((TRIO_CONST char *source));
++#endif
++
++#if defined(TRIO_FUNC_DUPLICATE_MAX)
++TRIO_PUBLIC_STRING char *
++trio_duplicate_max
++TRIO_PROTO((TRIO_CONST char *source, size_t max));
++#endif
++
++#if defined(TRIO_FUNC_EQUAL)
++TRIO_PUBLIC_STRING int
++trio_equal
++TRIO_PROTO((TRIO_CONST char *first, TRIO_CONST char *second));
++#endif
++
++#if defined(TRIO_FUNC_EQUAL_CASE)
++TRIO_PUBLIC_STRING int
++trio_equal_case
++TRIO_PROTO((TRIO_CONST char *first, TRIO_CONST char *second));
++#endif
++
++#if defined(TRIO_FUNC_EQUAL_CASE_MAX)
++TRIO_PUBLIC_STRING int
++trio_equal_case_max
++TRIO_PROTO((TRIO_CONST char *first, size_t max, TRIO_CONST char *second));
++#endif
++
++#if defined(TRIO_FUNC_EQUAL_LOCALE)
++TRIO_PUBLIC_STRING int
++trio_equal_locale
++TRIO_PROTO((TRIO_CONST char *first, TRIO_CONST char *second));
++#endif
++
++#if defined(TRIO_FUNC_EQUAL_MAX)
++TRIO_PUBLIC_STRING int
++trio_equal_max
++TRIO_PROTO((TRIO_CONST char *first, size_t max, TRIO_CONST char *second));
++#endif
++
++#if defined(TRIO_FUNC_ERROR)
++TRIO_PUBLIC_STRING TRIO_CONST char *
++trio_error
++TRIO_PROTO((int));
++#endif
++
++#if defined(TRIO_FUNC_FORMAT_DATE_MAX)
++TRIO_PUBLIC_STRING size_t
++trio_format_date_max
++TRIO_PROTO((char *target, size_t max, TRIO_CONST char *format, TRIO_CONST struct tm *datetime));
++#endif
++
++#if defined(TRIO_FUNC_HASH)
++TRIO_PUBLIC_STRING unsigned long
++trio_hash
++TRIO_PROTO((TRIO_CONST char *string, int type));
++#endif
++
++#if defined(TRIO_FUNC_INDEX)
++TRIO_PUBLIC_STRING char *
++trio_index
++TRIO_PROTO((TRIO_CONST char *string, int character));
++#endif
++
++#if defined(TRIO_FUNC_INDEX_LAST)
++TRIO_PUBLIC_STRING char *
++trio_index_last
++TRIO_PROTO((TRIO_CONST char *string, int character));
++#endif
++
++#if defined(TRIO_FUNC_LENGTH)
++TRIO_PUBLIC_STRING size_t
++trio_length
++TRIO_PROTO((TRIO_CONST char *string));
++#endif
++
++#if defined(TRIO_FUNC_LENGTH_MAX)
++TRIO_PUBLIC_STRING size_t
++trio_length_max
++TRIO_PROTO((TRIO_CONST char *string, size_t max));
++#endif
++
++#if defined(TRIO_FUNC_LOWER)
++TRIO_PUBLIC_STRING int
++trio_lower
++TRIO_PROTO((char *target));
++#endif
++
++#if defined(TRIO_FUNC_MATCH)
++TRIO_PUBLIC_STRING int
++trio_match
++TRIO_PROTO((TRIO_CONST char *string, TRIO_CONST char *pattern));
++#endif
++
++#if defined(TRIO_FUNC_MATCH_CASE)
++TRIO_PUBLIC_STRING int
++trio_match_case
++TRIO_PROTO((TRIO_CONST char *string, TRIO_CONST char *pattern));
++#endif
++
++#if defined(TRIO_FUNC_SPAN_FUNCTION)
++TRIO_PUBLIC_STRING size_t
++trio_span_function
++TRIO_PROTO((char *target, TRIO_CONST char *source, int (*Function) TRIO_PROTO((int))));
++#endif
++
++#if defined(TRIO_FUNC_SUBSTRING)
++TRIO_PUBLIC_STRING char *
++trio_substring
++TRIO_PROTO((TRIO_CONST char *string, TRIO_CONST char *substring));
++#endif
++
++#if defined(TRIO_FUNC_SUBSTRING_MAX)
++TRIO_PUBLIC_STRING char *
++trio_substring_max
++TRIO_PROTO((TRIO_CONST char *string, size_t max, TRIO_CONST char *substring));
++#endif
++
++#if defined(TRIO_FUNC_TO_DOUBLE)
++TRIO_PUBLIC_STRING double
++trio_to_double
++TRIO_PROTO((TRIO_CONST char *source, char **endp));
++#endif
++
++#if defined(TRIO_FUNC_TO_FLOAT)
++TRIO_PUBLIC_STRING float
++trio_to_float
++TRIO_PROTO((TRIO_CONST char *source, char **endp));
++#endif
++
++#if defined(TRIO_FUNC_TO_LONG)
++TRIO_PUBLIC_STRING long
++trio_to_long
++TRIO_PROTO((TRIO_CONST char *source, char **endp, int base));
++#endif
++
++#if defined(TRIO_FUNC_TO_LOWER)
++TRIO_PUBLIC_STRING int
++trio_to_lower
++TRIO_PROTO((int source));
++#endif
++
++#if defined(TRIO_FUNC_TO_LONG_DOUBLE)
++TRIO_PUBLIC_STRING trio_long_double_t
++trio_to_long_double
++TRIO_PROTO((TRIO_CONST char *source, char **endp));
++#endif
++
++#if defined(TRIO_FUNC_TO_UNSIGNED_LONG)
++TRIO_PUBLIC_STRING unsigned long
++trio_to_unsigned_long
++TRIO_PROTO((TRIO_CONST char *source, char **endp, int base));
++#endif
++
++#if defined(TRIO_FUNC_TO_UPPER)
++TRIO_PUBLIC_STRING int
++trio_to_upper
++TRIO_PROTO((int source));
++#endif
++
++#if defined(TRIO_FUNC_TOKENIZE)
++TRIO_PUBLIC_STRING char *
++trio_tokenize
++TRIO_PROTO((char *string, TRIO_CONST char *delimiters));
++#endif
++
++#if defined(TRIO_FUNC_UPPER)
++TRIO_PUBLIC_STRING int
++trio_upper
++TRIO_PROTO((char *target));
++#endif
++
++/*************************************************************************
++ * Dynamic string functions
++ */
++
++/*
++ * Opaque type for dynamic strings
++ */
++
++typedef struct _trio_string_t trio_string_t;
++
++#if defined(TRIO_FUNC_STRING_APPEND)
++TRIO_PUBLIC_STRING int
++trio_string_append
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_CONTAINS)
++TRIO_PUBLIC_STRING int
++trio_string_contains
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_COPY)
++TRIO_PUBLIC_STRING int
++trio_string_copy
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_CREATE)
++TRIO_PUBLIC_STRING trio_string_t *
++trio_string_create
++TRIO_PROTO((int initial_size));
++#endif
++
++#if defined(TRIO_FUNC_STRING_DESTROY)
++TRIO_PUBLIC_STRING void
++trio_string_destroy
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_DUPLICATE)
++TRIO_PUBLIC_STRING trio_string_t *
++trio_string_duplicate
++TRIO_PROTO((trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_EQUAL)
++TRIO_PUBLIC_STRING int
++trio_string_equal
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_EQUAL_MAX)
++TRIO_PUBLIC_STRING int
++trio_string_equal_max
++TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *second));
++#endif
++
++#if defined(TRIO_FUNC_STRING_EQUAL_CASE)
++TRIO_PUBLIC_STRING int
++trio_string_equal_case
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_EQUAL_CASE_MAX)
++TRIO_PUBLIC_STRING int
++trio_string_equal_case_max
++TRIO_PROTO((trio_string_t *self, size_t max, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_EXTRACT)
++TRIO_PUBLIC_STRING char *
++trio_string_extract
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_FORMAT_DATE_MAX)
++TRIO_PUBLIC_STRING size_t
++trio_string_format_date_max
++TRIO_PROTO((trio_string_t *self, size_t max, TRIO_CONST char *format, TRIO_CONST struct tm *datetime));
++#endif
++
++#if defined(TRIO_FUNC_STRING_GET)
++TRIO_PUBLIC_STRING char *
++trio_string_get
++TRIO_PROTO((trio_string_t *self, int offset));
++#endif
++
++#if defined(TRIO_FUNC_STRING_INDEX)
++TRIO_PUBLIC_STRING char *
++trio_string_index
++TRIO_PROTO((trio_string_t *self, int character));
++#endif
++
++#if defined(TRIO_FUNC_STRING_INDEX_LAST)
++TRIO_PUBLIC_STRING char *
++trio_string_index_last
++TRIO_PROTO((trio_string_t *self, int character));
++#endif
++
++#if defined(TRIO_FUNC_STRING_LENGTH)
++TRIO_PUBLIC_STRING int
++trio_string_length
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_LOWER)
++TRIO_PUBLIC_STRING int
++trio_string_lower
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_MATCH)
++TRIO_PUBLIC_STRING int
++trio_string_match
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_MATCH_CASE)
++TRIO_PUBLIC_STRING int
++trio_string_match_case
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_SIZE)
++TRIO_PUBLIC_STRING int
++trio_string_size
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_SUBSTRING)
++TRIO_PUBLIC_STRING char *
++trio_string_substring
++TRIO_PROTO((trio_string_t *self, trio_string_t *other));
++#endif
++
++#if defined(TRIO_FUNC_STRING_TERMINATE)
++TRIO_PUBLIC_STRING void
++trio_string_terminate
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_STRING_UPPER)
++TRIO_PUBLIC_STRING int
++trio_string_upper
++TRIO_PROTO((trio_string_t *self));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_APPEND)
++TRIO_PUBLIC_STRING int
++trio_xstring_append
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_APPEND_CHAR)
++TRIO_PUBLIC_STRING int
++trio_xstring_append_char
++TRIO_PROTO((trio_string_t *self, char character));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_APPEND_MAX)
++TRIO_PUBLIC_STRING int
++trio_xstring_append_max
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other, size_t max));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_CONTAINS)
++TRIO_PUBLIC_STRING int
++trio_xstring_contains
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_COPY)
++TRIO_PUBLIC_STRING int
++trio_xstring_copy
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_DUPLICATE)
++TRIO_PUBLIC_STRING trio_string_t *
++trio_xstring_duplicate
++TRIO_PROTO((TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_EQUAL)
++TRIO_PUBLIC_STRING int
++trio_xstring_equal
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_EQUAL_MAX)
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_max
++TRIO_PROTO((trio_string_t *self, size_t max, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_EQUAL_CASE)
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_case
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_EQUAL_CASE_MAX)
++TRIO_PUBLIC_STRING int
++trio_xstring_equal_case_max
++TRIO_PROTO((trio_string_t *self, size_t max, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_MATCH)
++TRIO_PUBLIC_STRING int
++trio_xstring_match
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_MATCH_CASE)
++TRIO_PUBLIC_STRING int
++trio_xstring_match_case
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_SET)
++TRIO_PUBLIC_STRING void
++trio_xstring_set
++TRIO_PROTO((trio_string_t *self, char *buffer));
++#endif
++
++#if defined(TRIO_FUNC_XSTRING_SUBSTRING)
++TRIO_PUBLIC_STRING char *
++trio_xstring_substring
++TRIO_PROTO((trio_string_t *self, TRIO_CONST char *other));
++#endif
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* TRIO_TRIOSTR_H */
diff --git a/source/ap/ghostscript/slack-desc b/source/ap/ghostscript/slack-desc
index 1ac40827a..41ffbcbe4 100644
--- a/source/ap/ghostscript/slack-desc
+++ b/source/ap/ghostscript/slack-desc
@@ -6,9 +6,9 @@
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
-ghostscript: ghostscript (GPL Ghostscript)
+ghostscript: ghostscript (Postscript and PDF interpreter)
ghostscript:
-ghostscript: GPL Ghostscript is an interpreter of Adobe Systems' PostScript(tm)
+ghostscript: Ghostscript is an interpreter of Adobe Systems' PostScript(tm)
ghostscript: and Portable Document Format (PDF) languages. Ghostscript is an
ghostscript: essential part of the printing subsystem, taking PostScript output
ghostscript: from applications and converting it into an appropriate printer or
diff --git a/source/ap/hplip/hplip.56-hpmud.background.diff b/source/ap/hplip/hplip.56-hpmud.background.diff
new file mode 100644
index 000000000..5684687b6
--- /dev/null
+++ b/source/ap/hplip/hplip.56-hpmud.background.diff
@@ -0,0 +1,11 @@
+--- ./data/rules/56-hpmud.rules.orig 2013-08-07 01:02:33.000000000 -0500
++++ ./data/rules/56-hpmud.rules 2013-08-25 14:46:44.223976578 -0500
+@@ -12,7 +12,7 @@
+
+
+ # This rule will add the printer and install plugin
+-ENV{hp_test}=="yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c 'if [ -f /usr/bin/systemctl ]; then /usr/bin/systemctl --no-block start hplip-printer@$env{BUSNUM}:$env{DEVNUM}.service; else /usr/bin/nohup /usr/bin/hp-config_usb_printer $env{BUSNUM}:$env{DEVNUM} ; fi'"
++ENV{hp_test}=="yes", PROGRAM="/bin/sh -c 'logger -p user.info loading HP Device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c 'if [ -f /usr/bin/systemctl ]; then /usr/bin/systemctl --no-block start hplip-printer@$env{BUSNUM}:$env{DEVNUM}.service; else /usr/bin/nohup /usr/bin/hp-config_usb_printer $env{BUSNUM}:$env{DEVNUM} & ; fi'"
+
+ # If sane-bankends is installed add hpaio backend support to dll.conf if needed.
+ ENV{sane_hpaio}=="yes", RUN+="/bin/sh -c 'grep -q ^#hpaio /etc/sane.d/dll.conf;if [ $$? -eq 0 ];then sed -i -e s/^#hpaio/hpaio/ /etc/sane.d/dll.conf;else grep -q ^hpaio /etc/sane.d/dll.conf;if [ $$? -ne 0 ];then echo hpaio >>/etc/sane.d/dll.conf;fi;fi'"
diff --git a/source/ap/hplip/hplip.SlackBuild b/source/ap/hplip/hplip.SlackBuild
index b85e79146..08a62d885 100755
--- a/source/ap/hplip/hplip.SlackBuild
+++ b/source/ap/hplip/hplip.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for hplip
# Copyright 2006-2010 Robby Workman, Northport, Alabama, USA
-# Copyright 2006-2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006-2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -65,6 +65,11 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
cd $PKGNAM-$VERSION || exit 1
+zcat $CWD/hplip.no.upgrade.diff.gz | patch -p1 --verbose || exit 1
+# Upstream added nohup to the rule, but didn't background with '&'.
+# Fix this to prevent a startup delay:
+zcat $CWD/hplip.56-hpmud.background.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 \) \
@@ -101,6 +106,7 @@ CXXFLAGS="$SLKCFLAGS" \
--enable-network-build=yes \
--enable-qt4 \
--enable-policykit \
+ --enable-cups-ppd-install \
--build=$ARCH-slackware-linux \
--host=$ARCH-slackware-linux \
|| exit 1
diff --git a/source/ap/hplip/hplip.no.upgrade.diff b/source/ap/hplip/hplip.no.upgrade.diff
new file mode 100644
index 000000000..ebb1743c6
--- /dev/null
+++ b/source/ap/hplip/hplip.no.upgrade.diff
@@ -0,0 +1,16 @@
+--- ./upgrade.py.orig 2013-03-08 01:15:32.000000000 -0600
++++ ./upgrade.py 2013-03-19 23:41:06.360870795 -0500
+@@ -214,6 +214,13 @@
+ try:
+ change_spinner_state(False)
+ core = CoreInstall(MODE_CHECK)
++
++ # To reenable upgrade in Slackware (although it probably won't work),
++ # delete the following 3 lines:
++ log.info("HPLIP upgrade function is disabled in Slackware.")
++ log.info("Not attempting to download upgrades.")
++ clean_exit(0)
++
+ if not utils.check_network_connection():
+ log.error("Either Internet is not working or Wget is not installed.")
+ clean_exit(0)
diff --git a/source/ap/itstool/itstool.SlackBuild b/source/ap/itstool/itstool.SlackBuild
new file mode 100755
index 000000000..b55789368
--- /dev/null
+++ b/source/ap/itstool/itstool.SlackBuild
@@ -0,0 +1,110 @@
+#!/bin/sh
+
+# Copyright 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+PKGNAM=itstool
+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
+ case "$(uname -m)" in
+ i?86) ARCH=i486 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+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
+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 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+# 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
+
+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
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a AUTHORS COPYING* 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
+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/ap/itstool/slack-desc b/source/ap/itstool/slack-desc
new file mode 100644
index 000000000..3a2bec749
--- /dev/null
+++ b/source/ap/itstool/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------------------------------------------------------|
+itstool: itstool (Translate XML documents with PO files)
+itstool:
+itstool: ITS Tool allows you to translate your XML documents with PO
+itstool: files, using rules from the W3C Internationalization Tag Set
+itstool: (ITS) to determine what to translate and how to separate it
+itstool: into PO file messages.
+itstool:
+itstool: Homepage: http://itstool.org/
+itstool:
+itstool:
+itstool:
diff --git a/source/ap/jed/jed.SlackBuild b/source/ap/jed/jed.SlackBuild
index d6da7b486..99c0dbbed 100755
--- a/source/ap/jed/jed.SlackBuild
+++ b/source/ap/jed/jed.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013 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=0.99-19
PKGVER=0.99_19
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/ksh93/EPL-1.0 b/source/ap/ksh93/EPL-1.0
new file mode 100644
index 000000000..76abcb3dc
--- /dev/null
+++ b/source/ap/ksh93/EPL-1.0
@@ -0,0 +1,213 @@
+
+ Eclipse Public License, Version 1.0 (EPL-1.0)
+
+
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE
+ PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+ 1. DEFINITIONS
+
+ "Contribution" means:
+
+ a) in the case of the initial Contributor, the initial code and
+ documentation distributed under this Agreement, and
+ b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+ distributed by that particular Contributor. A Contribution 'originates'
+ from a Contributor if it was added to the Program by such Contributor
+ itself or anyone acting on such Contributor's behalf. Contributions do not
+ include additions to the Program which: (i) are separate modules of
+ software distributed in conjunction with the Program under their own
+ license agreement, and (ii) are not derivative works of the Program.
+
+ "Contributor" means any person or entity that distributes the Program.
+
+ "Licensed Patents " mean patent claims licensable by a Contributor which
+ are necessarily infringed by the use or sale of its Contribution alone or
+ when combined with the Program.
+
+ "Program" means the Contributions distributed in accordance with this
+ Agreement.
+
+ "Recipient" means anyone who receives the Program under this Agreement,
+ including all Contributors.
+
+ 2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare derivative works of, publicly display,
+ publicly perform, distribute and sublicense the Contribution of such
+ Contributor, if any, and such derivative works, in source code and
+ object code form.
+ b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent license
+ under Licensed Patents to make, use, sell, offer to sell, import and
+ otherwise transfer the Contribution of such Contributor, if any, in
+ source code and object code form. This patent license shall apply to the
+ combination of the Contribution and the Program if, at the time the
+ Contribution is added by the Contributor, such addition of the
+ Contribution causes such combination to be covered by the Licensed
+ Patents. The patent license shall not apply to any other combinations
+ which include the Contribution. No hardware per se is licensed
+ hereunder.
+ c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity. Each
+ Contributor disclaims any liability to Recipient for claims brought by
+ any other entity based on infringement of intellectual property rights
+ or otherwise. As a condition to exercising the rights and licenses
+ granted hereunder, each Recipient hereby assumes sole responsibility to
+ secure any other intellectual property rights needed, if any. For
+ example, if a third party patent license is required to allow Recipient
+ to distribute the Program, it is Recipient's responsibility to acquire
+ that license before distributing the Program.
+ d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+
+ 3. REQUIREMENTS
+
+ A Contributor may choose to distribute the Program in object code form
+ under its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+ b) its license agreement:
+ i) effectively disclaims on behalf of all Contributors all warranties
+ and conditions, express and implied, including warranties or conditions
+ of title and non-infringement, and implied warranties or conditions of
+ merchantability and fitness for a particular purpose;
+ ii) effectively excludes on behalf of all Contributors all liability for
+ damages, including direct, indirect, special, incidental and
+ consequential damages, such as lost profits;
+ iii) states that any provisions which differ from this Agreement are
+ offered by that Contributor alone and not by any other party; and
+ iv) states that source code for the Program is available from such
+ Contributor, and informs licensees how to obtain it in a reasonable
+ manner on or through a medium customarily used for software exchange.
+
+ When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+ b) a copy of this Agreement must be included with each copy of the
+ Program.
+
+ Contributors may not remove or alter any copyright notices contained
+ within the Program.
+
+ Each Contributor must identify itself as the originator of its
+ Contribution, if any, in a manner that reasonably allows subsequent
+ Recipients to identify the originator of the Contribution.
+
+ 4. COMMERCIAL DISTRIBUTION
+
+ Commercial distributors of software may accept certain responsibilities
+ with respect to end users, business partners and the like. While this
+ license is intended to facilitate the commercial use of the Program, the
+ Contributor who includes the Program in a commercial product offering
+ should do so in a manner which does not create potential liability for
+ other Contributors. Therefore, if a Contributor includes the Program in a
+ commercial product offering, such Contributor ("Commercial Contributor")
+ hereby agrees to defend and indemnify every other Contributor
+ ("Indemnified Contributor") against any losses, damages and costs
+ (collectively "Losses") arising from claims, lawsuits and other legal
+ actions brought by a third party against the Indemnified Contributor to
+ the extent caused by the acts or omissions of such Commercial Contributor
+ in connection with its distribution of the Program in a commercial product
+ offering. The obligations in this section do not apply to any claims or
+ Losses relating to any actual or alleged intellectual property
+ infringement. In order to qualify, an Indemnified Contributor must: a)
+ promptly notify the Commercial Contributor in writing of such claim, and
+ b) allow the Commercial Contributor to control, and cooperate with the
+ Commercial Contributor in, the defense and any related settlement
+ negotiations. The Indemnified Contributor may participate in any such
+ claim at its own expense.
+
+ For example, a Contributor might include the Program in a commercial
+ product offering, Product X. That Contributor is then a Commercial
+ Contributor. If that Commercial Contributor then makes performance claims,
+ or offers warranties related to Product X, those performance claims and
+ warranties are such Commercial Contributor's responsibility alone. Under
+ this section, the Commercial Contributor would have to defend claims
+ against the other Contributors related to those performance claims and
+ warranties, and if a court requires any other Contributor to pay any
+ damages as a result, the Commercial Contributor must pay those damages.
+
+ 5. NO WARRANTY
+
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED
+ ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER
+ EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR
+ CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
+ PARTICULAR PURPOSE. Each Recipient is solely responsible for determining
+ the appropriateness of using and distributing the Program and assumes all
+ risks associated with its exercise of rights under this Agreement ,
+ including but not limited to the risks and costs of program errors,
+ compliance with applicable laws, damage to or loss of data, programs or
+ equipment, and unavailability or interruption of operations.
+
+ 6. DISCLAIMER OF LIABILITY
+
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+ CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+ WITHOUT LIMITATION LOST PROFITS), 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 OR DISTRIBUTION
+ OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF
+ ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ 7. GENERAL
+
+ If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this Agreement, and without further action by
+ the parties hereto, such provision shall be reformed to the minimum extent
+ necessary to make such provision valid and enforceable.
+
+ If Recipient institutes patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+ (excluding combinations of the Program with other software or hardware)
+ infringes such Recipient's patent(s), then such Recipient's rights granted
+ under Section 2(b) shall terminate as of the date such litigation is
+ filed.
+
+ All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and
+ does not cure such failure in a reasonable period of time after becoming
+ aware of such noncompliance. If all Recipient's rights under this
+ Agreement terminate, Recipient agrees to cease use and distribution of the
+ Program as soon as reasonably practicable. However, Recipient's
+ obligations under this Agreement and any licenses granted by Recipient
+ relating to the Program shall continue and survive.
+
+ Everyone is permitted to copy and distribute copies of this Agreement, but
+ in order to avoid inconsistency the Agreement is copyrighted and may only
+ be modified in the following manner. The Agreement Steward reserves the
+ right to publish new versions (including revisions) of this Agreement from
+ time to time. No one other than the Agreement Steward has the right to
+ modify this Agreement. The Eclipse Foundation is the initial Agreement
+ Steward. The Eclipse Foundation may assign the responsibility to serve as
+ the Agreement Steward to a suitable separate entity. Each new version of
+ the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be distributed subject to the version
+ of the Agreement under which it was received. In addition, after a new
+ version of the Agreement is published, Contributor may elect to distribute
+ the Program (including its Contributions) under the new version. Except as
+ expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+ rights or licenses to the intellectual property of any Contributor under
+ this Agreement, whether expressly, by implication, estoppel or otherwise.
+ All rights in the Program not expressly granted under this Agreement are
+ reserved.
+
+ This Agreement is governed by the laws of the State of New York and the
+ intellectual property laws of the United States of America. No party to
+ this Agreement will bring a legal action under this Agreement more than
+ one year after the cause of action arose. Each party waives its rights to
+ a jury trial in any resulting litigation.
+
diff --git a/source/ap/ksh93/ksh93.SlackBuild b/source/ap/ksh93/ksh93.SlackBuild
index 43023ae6c..5eacc82af 100755
--- a/source/ap/ksh93/ksh93.SlackBuild
+++ b/source/ap/ksh93/ksh93.SlackBuild
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright 2001 BSDi, Inc. Concord, CA, USA
# Copyright 2004 Slackware Linux, Inc. Concord, CA, USA
-# Copyright 2007, 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2007, 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,8 +22,8 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=2010-06-21
-PKGVER=2010_06_21
+VERSION=2012-08-01
+PKGVER=2012_08_01
# Not packaged?
#KSHLOCALE=2010-02-02
BUILD=${BUILD:-1}
@@ -68,6 +68,15 @@ find . \
-exec chmod 644 {} \;
/bin/ksh bin/package read || exit 1
+
+zcat $CWD/patches/ksh-20070328-builtins.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/ksh-20100826-fixregr.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/rmdirfix.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/ksh-20120801-cdfix.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/ksh-20120801-tabfix.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/ksh-20120801-cdfix2.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/patches/ksh-20130214-fixkill.patch.gz | patch -p1 --verbose || exit 1
+
/bin/ksh bin/package make || exit 1
mkdir -p $PKG/bin
@@ -115,16 +124,20 @@ chown -R root:root $PKG/usr/share
mkdir -p $PKG/usr/doc/ksh93-$VERSION
( cd src/cmd/ksh93
- cp -a COMPATIBILITY DESIGN OBSOLETE PROMO.mm README RELEASE* \
+ cp -a COMPATIBILITY DESIGN OBSOLETE PROMO.mm README RELEASE* TYPES \
$PKG/usr/doc/ksh93-$VERSION
)
( cd /tmp/build-ksh93/ast-base
mkdir -p $PKG/usr/doc/ksh93-$VERSION/LICENSE
cp -a README $PKG/usr/doc/ksh93-$VERSION/LICENSE
+ cp -a $CWD/EPL-1.0 $PKG/usr/doc/ksh93-$VERSION
+ chmod 644 $PKG/usr/doc/ksh93-$VERSION/EPL-1.0
+ # ast-ksh-locale is still covered by the CPL:
cp -a $CWD/CPL $PKG/usr/doc/ksh93-$VERSION
chmod 644 $PKG/usr/doc/ksh93-$VERSION/CPL
chown root:root $PKG/usr/doc/ksh93-$VERSION/CPL
- cp -a lib/package/LICENSES/ast $PKG/usr/doc/ksh93-$VERSION/LICENSE/LICENSE.ast )
+ #cp -a lib/package/LICENSES/ast $PKG/usr/doc/ksh93-$VERSION/LICENSE/LICENSE.ast
+ cp -a lib/package/*.lic $PKG/usr/doc/ksh93-$VERSION/LICENSE/LICENSE.ast )
chown -R root:root $PKG/usr/doc/ksh93-$VERSION
find $PKG/usr/doc/ksh93-$VERSION -type f -exec chmod 644 "{}" \;
diff --git a/source/ap/ksh93/patches/ksh-20070328-builtins.patch b/source/ap/ksh93/patches/ksh-20070328-builtins.patch
new file mode 100644
index 000000000..5c6b21c2f
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20070328-builtins.patch
@@ -0,0 +1,32 @@
+diff -up ksh-20120620/src/cmd/ksh93/data/builtins.c.builtins ksh-20120620/src/cmd/ksh93/data/builtins.c
+--- ksh-20120620/src/cmd/ksh93/data/builtins.c.builtins 2012-06-19 10:02:12.000000000 +0200
++++ ksh-20120620/src/cmd/ksh93/data/builtins.c 2012-06-22 12:35:05.587717588 +0200
+@@ -131,20 +131,28 @@ const struct shtable3 shtab_builtins[] =
+ #undef mktemp /* undo possible map-libc mktemp => _ast_mktemp */
+ #include SHOPT_CMDLIB_HDR
+ #else
++#if 1
+ CMDLIST(basename)
+ CMDLIST(chmod)
+ CMDLIST(dirname)
+ CMDLIST(getconf)
+ CMDLIST(head)
++#if 0
++does not work when ACLs are used
+ CMDLIST(mkdir)
++#endif
+ CMDLIST(logname)
++#if 1
++//does not work in chrooted environments, because /dev/fd/? is missing
+ CMDLIST(cat)
++#endif
+ CMDLIST(cmp)
+ CMDLIST(cut)
+ CMDLIST(uname)
+ CMDLIST(wc)
+ CMDLIST(sync)
+ #endif
++#endif
+ #if SHOPT_REGRESS
+ "__regress__", NV_BLTIN|BLT_ENV, bltin(__regress__),
+ #endif
diff --git a/source/ap/ksh93/patches/ksh-20100826-fixregr.patch b/source/ap/ksh93/patches/ksh-20100826-fixregr.patch
new file mode 100644
index 000000000..87cb13c6e
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20100826-fixregr.patch
@@ -0,0 +1,68 @@
+diff -up ksh-20120801/src/cmd/ksh93/tests/builtins.sh.fixregr ksh-20120801/src/cmd/ksh93/tests/builtins.sh
+--- ksh-20120801/src/cmd/ksh93/tests/builtins.sh.fixregr 2012-07-16 17:23:56.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/tests/builtins.sh 2012-08-08 12:29:00.733243019 +0200
+@@ -303,9 +303,9 @@ then err_exit "printf '%..*s' not workin
+ fi
+ [[ $(printf '%q\n') == '' ]] || err_exit 'printf "%q" with missing arguments'
+ # we won't get hit by the one second boundary twice, right?
+-[[ $(printf '%T\n' now) == "$(date)" ]] ||
+-[[ $(printf '%T\n' now) == "$(date)" ]] ||
+-err_exit 'printf "%T" now'
++[[ $(printf '%T\n' now | sed 's/GMT/UTC/') == "$(date)" ]] ||
++[[ $(printf '%T\n' now | sed 's/GMT/UTC/') == "$(date)" ]] ||
++err_exit 'printf "%T" now = '"$(printf '%T\n' now) != $(date)"
+ behead()
+ {
+ read line
+diff -up ksh-20120801/src/cmd/ksh93/tests/locale.sh.fixregr ksh-20120801/src/cmd/ksh93/tests/locale.sh
+--- ksh-20120801/src/cmd/ksh93/tests/locale.sh.fixregr 2012-06-26 21:57:46.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/tests/locale.sh 2012-08-08 12:29:20.039405240 +0200
+@@ -104,6 +104,7 @@ if (( $($SHELL -c $'export LC_ALL='$loca
+ then LC_ALL=$locale $SHELL -c b1=$'"\342\202\254\342\202\254\342\202\254\342\202\254w\342\202\254\342\202\254\342\202\254\342\202\254"; [[ ${b1:4:1} == w ]]' || err_exit 'multibyte ${var:offset:len} not working correctly'
+ fi
+
++locale=en_US.UTF-8
+ #$SHELL -c 'export LANG='$locale'; printf "\u[20ac]\u[20ac]" > $tmp/two_euro_chars.txt'
+ printf $'\342\202\254\342\202\254' > $tmp/two_euro_chars.txt
+ exp="6 2 6"
+@@ -111,11 +112,11 @@ set -- $($SHELL -c "
+ unset LC_CTYPE
+ export LANG=$locale
+ export LC_ALL=C
+- command wc -C < $tmp/two_euro_chars.txt
++ command wc -m < $tmp/two_euro_chars.txt
+ unset LC_ALL
+- command wc -C < $tmp/two_euro_chars.txt
++ command wc -m < $tmp/two_euro_chars.txt
+ export LC_ALL=C
+- command wc -C < $tmp/two_euro_chars.txt
++ command wc -m < $tmp/two_euro_chars.txt
+ ")
+ got=$*
+ [[ $got == $exp ]] || err_exit "command wc LC_ALL default failed -- expected '$exp', got '$got'"
+@@ -134,6 +135,8 @@ set -- $($SHELL -c "
+ got=$*
+ [[ $got == $exp ]] || err_exit "builtin wc LC_ALL default failed -- expected '$exp', got '$got'"
+
++locale=C_EU.UTF-8
++
+ # multibyte char straddling buffer boundary
+
+ {
+@@ -190,6 +193,7 @@ do exp=$1
+ done
+
+ # setocale(LC_ALL,"") after setlocale() initialization
++locale=en_US.UTF-8
+
+ printf 'f1\357\274\240f2\n' > input1
+ printf 't2\357\274\240f1\n' > input2
+@@ -336,7 +340,7 @@ then LC_ALL=en_US.UTF-8
+ [[ $(print -r -- "$x") == $'hello\u[20ac]\xee world' ]] || err_exit '%q with unicode and non-unicode not working'
+ if [[ $(whence od) ]]
+ then got='68 65 6c 6c 6f e2 82 ac ee 20 77 6f 72 6c 64 0a'
+- [[ $(print -r -- "$x" | od -An -tx1) == "$got" ]] || err_exit "incorrect string from printf %q"
++ [[ $(print -r -- "$x" | od -An -tx1) =~ $got ]] || err_exit "incorrect string from printf %q"
+ fi
+
+ fi
diff --git a/source/ap/ksh93/patches/ksh-20120801-cdfix.patch b/source/ap/ksh93/patches/ksh-20120801-cdfix.patch
new file mode 100644
index 000000000..59265dda5
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20120801-cdfix.patch
@@ -0,0 +1,14 @@
+diff -up ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c
+--- ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix 2013-02-01 16:04:55.507150242 +0100
++++ ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c 2013-02-01 16:06:39.361007641 +0100
+@@ -214,7 +214,10 @@ int b_cd(int argc, char *argv[],Shbltin_
+ if(*++dp=='.' && (*++dp=='/' || *dp==0))
+ n++;
+ else if(*dp && *dp!='/')
++ {
++ dp--;
+ break;
++ }
+ if(*dp==0)
+ break;
+ }
diff --git a/source/ap/ksh93/patches/ksh-20120801-cdfix2.patch b/source/ap/ksh93/patches/ksh-20120801-cdfix2.patch
new file mode 100644
index 000000000..84bb49125
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20120801-cdfix2.patch
@@ -0,0 +1,25 @@
+diff -up ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix2 ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c
+--- ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.cdfix2 2013-02-01 16:46:50.441771371 +0100
++++ ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c 2013-02-01 16:57:43.241784024 +0100
+@@ -61,6 +61,7 @@ int sh_diropenat(Shell_t *shp, int dir,
+ {
+ int fd,shfd;
+ int savederrno=errno;
++ struct stat fs;
+ #ifndef AT_FDCWD
+ NOT_USED(dir);
+ #endif
+@@ -133,6 +134,13 @@ int sh_diropenat(Shell_t *shp, int dir,
+
+ if(fd < 0)
+ return fd;
++
++ if (!fstat(fd, &fs) && !S_ISDIR(fs.st_mode))
++ {
++ close(fd);
++ errno = ENOTDIR;
++ return -1;
++ }
+
+ /* Move fd to a number > 10 and *register* the fd number with the shell */
+ shfd = sh_fcntl(fd, F_dupfd_cloexec, 10);
diff --git a/source/ap/ksh93/patches/ksh-20120801-tabfix.patch b/source/ap/ksh93/patches/ksh-20120801-tabfix.patch
new file mode 100644
index 000000000..962763ed6
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20120801-tabfix.patch
@@ -0,0 +1,18 @@
+diff -up ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix ksh-20120801/src/cmd/ksh93/edit/emacs.c
+--- ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix 2012-07-17 22:44:44.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/edit/emacs.c 2013-03-07 15:58:59.902161711 +0100
+@@ -1011,10 +1011,13 @@ static int escape(register Emacs_t* ep,r
+ ep->ed->e_tabcount=0;
+ else
+ {
++ int oldi = i;
+ i=ed_getchar(ep->ed,0);
+ ed_ungetchar(ep->ed,i);
+- if(isdigit(i))
++ if(isdigit(i) && oldi=='=')
+ ed_ungetchar(ep->ed,ESC);
++ else if (isdigit(i) || i=='\t')
++ ep->ed->e_tabcount=0;
+ }
+ }
+ else
diff --git a/source/ap/ksh93/patches/ksh-20130214-fixkill.patch b/source/ap/ksh93/patches/ksh-20130214-fixkill.patch
new file mode 100644
index 000000000..0862880dd
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20130214-fixkill.patch
@@ -0,0 +1,21 @@
+diff -up ksh-20130214/src/cmd/ksh93/sh/jobs.c.fixkill ksh-20130214/src/cmd/ksh93/sh/jobs.c
+--- ksh-20130214/src/cmd/ksh93/sh/jobs.c.fixkill 2012-09-26 17:43:04.000000000 +0200
++++ ksh-20130214/src/cmd/ksh93/sh/jobs.c 2013-02-22 16:38:05.080161740 +0100
+@@ -1104,6 +1104,8 @@ static struct process *job_bystring(regi
+
+ int job_kill(register struct process *pw,register int sig)
+ {
++ if(pw==0)
++ goto error;
+ Shell_t *shp = pw->p_shp;
+ register pid_t pid;
+ register int r;
+@@ -1127,8 +1129,6 @@ int job_kill(register struct process *pw
+ #endif /* SIGTSTP */
+ job_lock();
+ errno = ECHILD;
+- if(pw==0)
+- goto error;
+ pid = pw->p_pid;
+ #if SHOPT_COSHELL
+ if(pw->p_cojob)
diff --git a/source/ap/ksh93/patches/rmdirfix.patch b/source/ap/ksh93/patches/rmdirfix.patch
new file mode 100644
index 000000000..132de7dba
--- /dev/null
+++ b/source/ap/ksh93/patches/rmdirfix.patch
@@ -0,0 +1,505 @@
+diff -up ksh20120801/src/cmd/ksh93/sh/subshell.c.orig ksh20120801/src/cmd/ksh93/sh/subshell.c
+--- ksh20120801/src/cmd/ksh93/sh/subshell.c.orig 2012-07-17 23:54:21.000000000 +0200
++++ ksh20120801/src/cmd/ksh93/sh/subshell.c 2012-10-24 15:03:44.436870792 +0200
+@@ -40,14 +40,6 @@
+ # define PIPE_BUF 512
+ #endif
+
+-#ifndef O_SEARCH
+-# ifdef O_PATH
+-# define O_SEARCH O_PATH
+-# else
+-# define O_SEARCH 0
+-# endif
+-#endif
+-
+ /*
+ * Note that the following structure must be the same
+ * size as the Dtlink_t structure
+@@ -84,7 +76,7 @@ static struct subshell
+ char *pwd; /* present working directory */
+ const char *shpwd; /* saved pointer to sh.pwd */
+ void *jobs; /* save job info */
+- int pwdfd; /* file descritor for pwd */
++ int shpwdfd;/* fd for present working directory */
+ mode_t mask; /* saved umask */
+ short tmpfd; /* saved tmp file descriptor */
+ short pipefd; /* read fd if pipe is created */
+@@ -101,7 +93,6 @@ static struct subshell
+ int subdup;
+ char subshare;
+ char comsub;
+- char pwdclose;
+ #if SHOPT_COSHELL
+ void *coshell;
+ #endif /* SHOPT_COSHELL */
+@@ -518,7 +509,6 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
+ shp->pathinit = 0;
+ }
+ sp->pathlist = path_dup((Pathcomp_t*)shp->pathlist);
+- sp->pwdfd = -1;
+ if(!shp->pwd)
+ path_pwd(shp,0);
+ sp->bckpid = shp->bckpid;
+@@ -531,39 +521,14 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
+ shp->subshare = comsub==2 || (comsub==1 && sh_isoption(SH_SUBSHARE));
+ if(comsub)
+ shp->comsub = comsub;
++ sp->shpwdfd=-1;
+ if(!comsub || !shp->subshare)
+ {
+- struct subshell *xp;
+ sp->shpwd = shp->pwd;
+-#ifdef _lib_fchdir
+- for(xp=sp->prev; xp; xp=xp->prev)
+- {
+- if(xp->pwdfd>0 && strcmp(xp->pwd,shp->pwd)==0)
+- {
+- sp->pwdfd = xp->pwdfd;
+- break;
+- }
+- }
+- if(sp->pwdfd<0)
+- {
+- int n = open(".",O_RDONLY);
+- if(O_SEARCH && errno==EACCES)
+- n = open(".",O_RDONLY);
+- if(n>=0)
+- {
+- sp->pwdfd = n;
+- if(n<10)
+- {
+- sp->pwdfd = fcntl(n,F_DUPFD,10);
+- close(n);
+- }
+- if(sp->pwdfd>0)
+- {
+- fcntl(sp->pwdfd,F_SETFD,FD_CLOEXEC);
+- sp->pwdclose = 1;
+- }
+- }
+- }
++ sp->shpwdfd=((shp->pwdfd >= 0))?sh_fcntl(shp->pwdfd, F_dupfd_cloexec, 10):-1;
++#ifdef O_SEARCH
++ if(sp->shpwdfd<0)
++ errormsg(SH_DICT,ERROR_system(1), "Can't obtain directory fd.");
+ #endif
+ sp->pwd = (shp->pwd?strdup(shp->pwd):0);
+ sp->mask = shp->mask;
+@@ -741,14 +706,11 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
+ Namval_t *pwdnod = sh_scoped(shp,PWDNOD);
+ if(shp->pwd)
+ {
+- if(sp->pwdfd >=0)
+- {
+- if(fchdir(sp->pwdfd)<0)
+- chdir(sp->pwd);
+- }
+- else
+- chdir(sp->pwd);
+ shp->pwd=sp->pwd;
++#ifndef O_SEARCH
++ if (sp->shpwdfd < 0)
++ chdir(shp->pwd);
++#endif
+ path_newdir(shp,shp->pathlist);
+ }
+ if(nv_isattr(pwdnod,NV_NOFREE))
+@@ -762,8 +724,6 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
+ }
+ else
+ free((void*)sp->pwd);
+- if(sp->pwdclose)
+- close(sp->pwdfd);
+ if(sp->mask!=shp->mask)
+ umask(shp->mask=sp->mask);
+ if(shp->coutpipe!=sp->coutpipe)
+@@ -775,6 +735,13 @@ Sfio_t *sh_subshell(Shell_t *shp,Shnode_
+ shp->cpipe[1] = sp->cpipe;
+ shp->coutpipe = sp->coutpipe;
+ }
++ if(sp->shpwdfd >=0)
++ {
++ if(shp->pwdfd >=0)
++ sh_close(shp->pwdfd);
++ shp->pwdfd=sp->shpwdfd;
++ fchdir(shp->pwdfd);
++ }
+ shp->subshare = sp->subshare;
+ shp->comsub = sp->comsub;
+ shp->subdup = sp->subdup;
+diff -up ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.orig ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c
+--- ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c.orig 2012-08-02 16:50:40.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/bltins/cd_pwd.c 2012-10-24 15:37:46.814469045 +0200
+@@ -38,6 +38,10 @@
+ #include "builtins.h"
+ #include <ls.h>
+
++#ifndef EINTR_REPEAT
++# define EINTR_REPEAT(expr) while((expr) && (errno == EINTR)) errno=0;
++#endif
++
+ /*
+ * Invalidate path name bindings to relative paths
+ */
+@@ -49,6 +53,95 @@ static void rehash(register Namval_t *np
+ _nv_unset(np,0);
+ }
+
++/*
++ * Obtain a file handle to the directory "path" relative to directory
++ * "dir", or open a NFSv4 xattr directory handle for file dir/path.
++ */
++int sh_diropenat(Shell_t *shp, int dir, const char *path, bool xattr)
++{
++ int fd,shfd;
++ int savederrno=errno;
++#ifndef AT_FDCWD
++ NOT_USED(dir);
++#endif
++#ifndef O_XATTR
++ NOT_USED(xattr);
++#endif
++
++#ifdef O_XATTR
++ if(xattr)
++ {
++ int apfd; /* attribute parent fd */
++ /* open parent node... */
++ EINTR_REPEAT((apfd = openat(dir, path, O_RDONLY|O_NONBLOCK|O_cloexec)) < 0);
++ if(apfd < 0)
++ return -1;
++
++ /* ... and then open a fd to the attribute directory */
++ EINTR_REPEAT((fd = openat(apfd, e_dot, O_XATTR|O_cloexec)) < 0);
++
++ savederrno = errno;
++ EINTR_REPEAT(close(apfd) < 0);
++ errno = savederrno;
++ }
++ else
++#endif
++ {
++#ifdef AT_FDCWD
++ /*
++ * Open directory. First we try without |O_SEARCH| and
++ * if this fails with EACCESS we try with |O_SEARCH|
++ * again.
++ * This is required ...
++ * - ... because some platforms may require that it can
++ * only be used for directories while some filesystems
++ * (e.g. Reiser4 or HSM systems) allow a |fchdir()| into
++ * files, too)
++ * - ... to preserve the semantics of "cd", e.g.
++ * otherwise "cd" would return [No access] instead of
++ * [Not a directory] for files on filesystems which do
++ * not allow a "cd" into files.
++ * - ... to allow that a
++ * $ redirect {n}</etc ; cd /dev/fd/$n # works on most
++ * platforms.
++ */
++ EINTR_REPEAT((fd = openat(dir, path, O_RDONLY|O_NONBLOCK|O_cloexec)) < 0);
++# ifdef O_SEARCH
++ if((fd < 0) && (errno == EACCES))
++ {
++ EINTR_REPEAT((fd = openat(dir, path, O_SEARCH|O_cloexec)) < 0)
++ }
++# endif
++#else
++ /*
++ * Version of openat() call above for systems without
++ * openat API. This only works because we basically
++ * gurantee that |dir| is always the same place as
++ * |cwd| on such machines (but this won't be the case
++ * in the future).
++ */
++ /*
++ * This |fchdir()| call is not needed (yet) since
++ * all consumers do not use |dir| when |AT_FDCWD|
++ * is not available.
++ *
++ * fchdir(dir);
++ */
++ EINTR_REPEAT((fd = open(path, O_cloexec)) < 0);
++#endif
++ }
++
++ if(fd < 0)
++ return fd;
++
++ /* Move fd to a number > 10 and *register* the fd number with the shell */
++ shfd = sh_fcntl(fd, F_dupfd_cloexec, 10);
++ savederrno=errno;
++ sh_close(fd);
++ errno=savederrno;
++ return(shfd);
++}
++
+ int b_cd(int argc, char *argv[],Shbltin_t *context)
+ {
+ register char *dir;
+@@ -56,18 +149,20 @@ int b_cd(int argc, char *argv[],Shbltin_
+ register const char *dp;
+ register Shell_t *shp = context->shp;
+ int saverrno=0;
+- int rval,flag=0;
++ int rval;
++ bool flag=false,xattr=false;
+ char *oldpwd;
++ int newdirfd;
+ Namval_t *opwdnod, *pwdnod;
+ if(sh_isoption(SH_RESTRICTED))
+ errormsg(SH_DICT,ERROR_exit(1),e_restricted+4);
+ while((rval = optget(argv,sh_optcd))) switch(rval)
+ {
+ case 'L':
+- flag = 0;
++ flag = false;
+ break;
+ case 'P':
+- flag = 1;
++ flag = true;
+ break;
+ case ':':
+ errormsg(SH_DICT,2, "%s", opt_info.arg);
+@@ -179,14 +274,72 @@ int b_cd(int argc, char *argv[],Shbltin_
+ continue;
+ #endif /* SHOPT_FS_3D */
+ }
++ rval = newdirfd = sh_diropenat(shp, shp->pwdfd,
++ path_relative(shp,stakptr(PATH_OFFSET)), xattr);
++ if(newdirfd >=0)
++ {
++ /* chdir for directories on HSM/tapeworms may take minutes */
++ if(fchdir(newdirfd) >= 0)
++ {
++ if(shp->pwdfd >= 0)
++ sh_close(shp->pwdfd);
++ shp->pwdfd=newdirfd;
++ goto success;
++ }
++ }
++#ifndef O_SEARCH
++ else
++ {
+ if((rval=chdir(path_relative(shp,stakptr(PATH_OFFSET)))) >= 0)
+- goto success;
+- if(errno!=ENOENT && saverrno==0)
++ {
++ if(shp->pwdfd >= 0)
++ {
++ sh_close(shp->pwdfd);
++#ifdef AT_FDCWD
++ shp->pwdfd = AT_FDCWD;
++#else
++ shp->pwdfd = -1;
++#endif
++ }
++ }
++ }
++#endif
++ if(saverrno==0)
+ saverrno=errno;
++ if(newdirfd >=0)
++ sh_close(newdirfd);
+ }
+ while(cdpath);
+ if(rval<0 && *dir=='/' && *(path_relative(shp,stakptr(PATH_OFFSET)))!='/')
+- rval = chdir(dir);
++ {
++ rval = newdirfd = sh_diropenat(shp,
++ shp->pwdfd,
++ dir, xattr);
++ if(newdirfd >=0)
++ {
++ /* chdir for directories on HSM/tapeworms may take minutes */
++ if(fchdir(newdirfd) >= 0)
++ {
++ if(shp->pwdfd >= 0)
++ sh_close(shp->pwdfd);
++ shp->pwdfd=newdirfd;
++ goto success;
++ }
++ }
++#ifndef O_SEARCH
++ else
++ {
++ if(chdir(dir) >=0)
++ {
++ if(shp->pwdfd >= 0)
++ {
++ sh_close(shp->pwdfd);
++ shp->pwdfd=-1;
++ }
++ }
++ }
++#endif
++ }
+ /* use absolute chdir() if relative chdir() fails */
+ if(rval<0)
+ {
+@@ -213,7 +366,7 @@ success:
+ if(*dir != '/')
+ return(0);
+ nv_putval(opwdnod,oldpwd,NV_RDONLY);
+- flag = strlen(dir);
++ flag = (strlen(dir)>0)?true:false;
+ /* delete trailing '/' */
+ while(--flag>0 && dir[flag]=='/')
+ dir[flag] = 0;
+diff -up ksh-20120801/src/cmd/ksh93/include/shell.h.orig ksh-20120801/src/cmd/ksh93/include/shell.h
+--- ksh-20120801/src/cmd/ksh93/include/shell.h.orig 2012-07-17 22:07:40.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/include/shell.h 2012-10-24 15:42:10.756987230 +0200
+@@ -145,6 +145,7 @@ struct Shell_s
+ unsigned char trapnote; /* set when trap/signal is pending */
+ char shcomp; /* set when runing shcomp */
+ short subshell; /* set for virtual subshell */
++ int pwdfd; /* file descriptor for pwd */
+ #ifdef _SH_PRIVATE
+ _SH_PRIVATE
+ #endif /* _SH_PRIVATE */
+diff -up ksh-20120801/src/cmd/ksh93/sh/init.c.orig ksh-20120801/src/cmd/ksh93/sh/init.c
+--- ksh-20120801/src/cmd/ksh93/sh/init.c.orig 2012-05-11 19:19:10.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/sh/init.c 2012-10-24 15:31:59.659485151 +0200
+@@ -1365,6 +1365,18 @@ Shell_t *sh_init(register int argc,regis
+ }
+ }
+ sh_ioinit(shp);
++#ifdef AT_FDCWD
++ shp->pwdfd = sh_diropenat(shp, AT_FDCWD, e_dot, false);
++#else
++ /* Systems without AT_FDCWD/openat() do not use the |dir| argument */
++ shp->pwdfd = sh_diropenat(shp, -1, e_dot, false);
++#endif
++#ifdef O_SEARCH
++ /* This should _never_ happen, guranteed by design and goat sacrifice */
++ if(shp->pwdfd < 0)
++ errormsg(SH_DICT,ERROR_system(1), "Can't obtain directory fd.");
++#endif
++
+ /* initialize signal handling */
+ sh_siginit(shp);
+ stakinstall(NIL(Stak_t*),nospace);
+diff -up ksh-20120801/src/cmd/ksh93/sh/xec.c.orig ksh-20120801/src/cmd/ksh93/sh/xec.c
+--- ksh-20120801/src/cmd/ksh93/sh/xec.c.orig 2012-07-23 16:49:32.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/sh/xec.c 2012-10-24 15:35:02.209539671 +0200
+@@ -1348,8 +1348,12 @@ int sh_exec(register const Shnode_t *t,
+ {
+ if(!shp->pwd)
+ path_pwd(shp,0);
+- if(shp->pwd)
+- stat(".",&statb);
++#ifndef O_SEARCH
++ else if (shp->pwdfd>=0)
++ fstat(shp->pwdfd,&statb);
++ else if (shp->pwd)
++ stat(e_dot,&statb);
++#endif
+ sfsync(NULL);
+ share = sfset(sfstdin,SF_SHARE,0);
+ sh_onstate(SH_STOPOK);
+@@ -1428,14 +1432,32 @@ int sh_exec(register const Shnode_t *t,
+ sh_offstate(SH_NOFORK);
+ if(!(nv_isattr(np,BLT_ENV)))
+ {
+- if(shp->pwd)
++#ifdef O_SEARCH
++ while((fchdir(shp->pwdfd) < 0) && errno==EINTR)
++ errno = 0;
++#else
++ if(shp->pwd || (shp->pwdfd >= 0))
+ {
+ struct stat stata;
+ stat(".",&stata);
+ /* restore directory changed */
+ if(statb.st_ino!=stata.st_ino || statb.st_dev!=stata.st_dev)
+- chdir(shp->pwd);
++ {
++ /* chdir for directories on HSM/tapeworms may take minutes */
++ int err=errno;
++ if(shp->pwdfd >= 0)
++ {
++ while((fchdir(shp->pwdfd) < 0) && errno==EINTR)
++ errno = err;
++ }
++ else
++ {
++ while((chdir(shp->pwd) < 0) && errno==EINTR)
++ errno = err;
++ }
++ }
+ }
++#endif /* O_SEARCH */
+ sh_offstate(SH_STOPOK);
+ if(share&SF_SHARE)
+ sfset(sfstdin,SF_PUBLIC|SF_SHARE,1);
+diff -up ksh-20120801/src/lib/libast/features/common.orig ksh-20120801/src/lib/libast/features/common
+--- ksh-20120801/src/lib/libast/features/common.orig 2011-12-12 20:55:33.000000000 +0100
++++ ksh-20120801/src/lib/libast/features/common 2012-10-24 15:54:35.433885131 +0200
+@@ -463,6 +463,66 @@ typ uintptr_t stdint.h inttypes.h no{
+ typedef unsigned _ast_int4_t uintptr_t;
+ #endif
+ }end
++typ _Bool = uint8_t
++cat{
++ #if defined(_STDC_C99) || __STDC_VERSION__ >= 199901L
++ #include <stdbool.h>
++ #else
++ #define bool _Bool
++ #define false 0
++ #define true 1
++ #endif
++}end
++tst key __thread -lpthread note{ __thread keyword exists and works with -lpthread }end execute{
++ #include <pthread.h>
++
++ #define INITIAL 1
++ #define LOOP 100
++
++ static __thread int specific = INITIAL;
++ static int global = 0;
++
++ static void* worker(void* arg)
++ {
++ int k;
++ int v;
++ v = (int)(arg - 0);
++ for (k = 0; k < LOOP; ++k)
++ {
++ specific += v;
++ usleep(1);
++ }
++ if (specific != (INITIAL + LOOP * v))
++ global = 1;
++ return 0;
++ }
++ int main()
++ {
++ pthread_t th[2];
++
++ if (pthread_create(&th[0], 0, worker, (void*)0 + 5) ||
++ pthread_create(&th[1], 0, worker, (void*)0 + 7))
++ {
++ NOTE("pthread_create failed");
++ return 1;
++ }
++ pthread_join(th[0], 0);
++ pthread_join(th[1], 0);
++ if (global)
++ {
++ NOTE("__thread variable not thread specific");
++ return 1;
++ }
++ if (specific != INITIAL)
++ {
++ NOTE("main __thread variable changed by another thread");
++ return 1;
++ }
++ return 0;
++ }
++}end no{
++ #define __thread /* __thread keyword does not exist or does not work with -lpthread */
++}end
+
+ tst - -DTRY=1 - -DTRY=1 -Dvoid=char - -DTRY=2 - -DTRY=3 - -DTRY=4 output{
+ #if _STD_ && _hdr_stdarg
diff --git a/source/ap/linuxdoc-tools/ChangeLog.txt b/source/ap/linuxdoc-tools/ChangeLog.txt
index 0c971b356..cf2cf9a20 100644
--- a/source/ap/linuxdoc-tools/ChangeLog.txt
+++ b/source/ap/linuxdoc-tools/ChangeLog.txt
@@ -1,3 +1,31 @@
+Sun Jun 23 20:56:24 BST 2013
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.68, build 4.
+ * Added docbook2X-0.8.8
+ * Added dependencies for docbook2X:
+ perl-XML-SAX-0.99
+ perl-XML-NamespaceSupport-1.11
+ perl-XML-SAX-Base-1.08
+ * Upgraded to gtk-doc-1.19
+
+Fri Jun 5 21:51:02 UTC 2013
+ Patrick Volkerding <volkerdi@slackware.com>
+ linuxdoc-tools 0.9.68, build 3.
+ Rebuild for perl-5.18.0.
+
+Fri Apr 5 21:51:02 UTC 2013
+ Patrick Volkerding <volkerdi@slackware.com>
+ linuxdoc-tools 0.9.68, build 2.
+ * Create a symlink VERSION.xsl -> VERSION
+
+Tue Apr 2 19:54:49 BST 2013
+ Stuart Winter <mozes@slackware.com>
+ linuxdoc-tools 0.9.68, build 1.
+ * Upgraded to linuxdoc-tools 0.9.68
+ * Upgraded to AsciiDoc-8.6.8
+ * Upgraded to DocBook XSL Stylesheets 1.78.1
+ * Removed dangling symlinks from /usr/doc.
+
Fri Jun 29 17:34:25 BST 2012
Stuart Winter <mozes@slackware.com>
linuxdoc-tools 0.9.67, build 2.
diff --git a/source/ap/linuxdoc-tools/arm/build b/source/ap/linuxdoc-tools/arm/build
index f5a418d96..f217b40f9 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.67}
+export VERSION=${VERSION:-0.9.68}
export PKGARCH=${PKGARCH:-arm}
-export BUILD=${BUILD:-2}
+export BUILD=${BUILD:-4}
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 27f3a53ca..520e8a2a5 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -17,20 +17,21 @@
LINUXDOCTOOLSVER=$PKGVERSION
# Bundled package versions:
+ASCIIDOCVER=8.6.8
+DSSSLSTYLESHEETSVER=1.79
+XSLSTYLESHEETSVER=1.78.1
+DOCBOOKUTILSVER=0.6.14
SGMLDTD3VER=3.1
SGMLDTD4VER=4.5
XMLDTDVER=4.5
-XSLSTYLESHEETSVER=1.76.1
-DSSSLSTYLESHEETSVER=1.79
-SGMLCOMMONVER=0.6.3
-OPENJADEVER=1.3.3-pre1
-OPENSPVER=1.5.2
GNOMEDOCUTILSVER=0.20.10
-GTKDOCVER=1.18
+GTKDOCVER=1.19
SGMLSPLVER=1.03ii
+OPENJADEVER=1.3.3-pre1
+OPENSPVER=1.5.2
+SGMLCOMMONVER=0.6.3
XMLTOVER=0.0.25
-ASCIIDOCVER=8.6.7
-DOCBOOKUTILSVER=0.6.14
+DOCBOOK2XVER=0.8.8
# Determine the general CFLAGS for the known architectures:
case $ARCH in
@@ -38,6 +39,10 @@ case $ARCH in
export LIBDIRSUFFIX=""
export HOSTTARGET="-gnueabi"
;;
+ armv7hl) export SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
+ export LIBDIRSUFFIX=""
+ export HOSTTARGET="-gnueabi"
+ ;;
i486) export SLKCFLAGS="-O2 -march=i486 -mtune=i686"
export LIBDIRSUFFIX=""
export HOSTTARGET=""
@@ -483,11 +488,15 @@ for i in \
docbook-utils-sgmlinclude.patch \
docbook-utils-rtfmanpage.patch \
docbook-utils-papersize.patch \
- docbook-utils-nofinalecho.patch ; do
+ docbook-utils-nofinalecho.patch \
+ docbook-utils-newgrep.patch ; do
patch --verbose -p1 < ../$i
done || exit 1
# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CPPFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -698,12 +707,12 @@ find . \
# Apply patches:
for i in \
- docbook-xsl-mandir.patch \
- docbook-xsl-list-item-body.patch \
+ docbook-xsl-pagesetup.patch \
docbook-xsl-marginleft.patch \
docbook-xsl-newmethods.patch \
docbook-xsl-non-constant-expressions.patch \
- docbook-xsl-pagesetup.patch ; do
+ docbook-xsl-list-item-body.patch \
+ docbook-xsl-mandir.patch ; do
patch --verbose -p1 < ../$i
done || exit 1
@@ -721,6 +730,12 @@ mkdir -vpm755 /usr/share/xml/docbook/stylesheet
rm -fv docbook-xsl
ln -vfs ../xsl-stylesheets-$XSLSTYLESHEETSVER docbook-xsl )
+# Some stylesheets will look for VERSION.xsl rather than VERSION.
+# They are the same in the sources, so make a compatibility symlink:
+if [ ! -r /usr/share/xml/docbook/stylesheet/docbook-xsl/VERSION.xsl ]; then
+ ( cd /usr/share/xml/docbook/stylesheet/docbook-xsl ; ln -sf VERSION VERSION.xsl )
+fi
+
# Create config files:
if [ ! -d /etc/xml ]; then install -v -m755 -d /etc/xml; fi
if [ ! -f /etc/xml/catalog ]; then
@@ -758,9 +773,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 . \
@@ -769,6 +784,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
+# Apply patches:
+patch -p1 < ../xmlto-noextensions.patch || exit 1
+
# Configure:
./configure \
--prefix=/usr \
@@ -847,8 +865,9 @@ export PATH=$( echo $PATH | sed -e 's?:/usr/share/texmf/bin??g' -e 's?/usr/share
# Apply patches (these are included in the source rpm):
for i in \
linuxdoc-tools-0.9.13-letter.patch \
+ linuxdoc-tools-0.9.68-flex.patch \
linuxdoc-tools-0.9.20-lib64.patch ; do
- patch --verbose -p1 < ../$i
+ patch --verbose -p1 < ../$i
done || exit 1
# Find out what our Vendor perl directory is:
@@ -856,6 +875,9 @@ eval $(perl '-V:installvendorlib')
mkdir -p $PKG/$installvendorlib
# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CPPFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--with-perllibdir=$installvendorlib \
@@ -920,6 +942,8 @@ find . \
# Configure:
CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CPPFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
@@ -956,10 +980,11 @@ find . \
-exec chmod 644 {} \;
# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CPPFLAGS="$SLKCFLAGS" \
./configure \
- --prefix=/usr \
- --disable-scrollkeeper \
- || exit 1
+ --prefix=/usr || exit 1
# Build:
make || exit 1
@@ -973,6 +998,99 @@ cp -fav \
AUTHORS COPYING INSTALL MAINTAINERS NEWS README TODO \
/usr/doc/gtk-doc-$GTKDOCVER
+####################### Build docbook2X ###############################
+
+cd $TMP
+
+# Build supporting PERL libraries first:
+( mkdir XML-NamespaceSupport && cd XML-NamespaceSupport
+ rpm2cpio $CWD/sources/perl-XML-NamespaceSupport-*.src.rpm | cpio -di
+ tar xvf XML-NamespaceSupport-*.tar.gz
+ cd XML-NamespaceSupport* || exit 1
+ perl Makefile.PL INSTALLDIRS=vendor
+ # Make sure the man pages go where we want them:
+ fgrep -lr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g'
+ make || exit 1
+ make test || exit 1
+ make pure_install || exit 1 || exit 1 ) || exit 1
+
+( mkdir perl-XML-SAX-Base && cd perl-XML-SAX-Base
+ rpm2cpio $CWD/sources/perl-XML-SAX-Base-*.src.rpm | cpio -di
+ tar xvf XML-SAX-Base-*z
+ cd XML-SAX-Base-* || exit 1
+ perl Makefile.PL INSTALLDIRS=vendor
+ fgrep -lr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g'
+ make || exit 1
+ make test || exit 1
+ make pure_install || exit 1 ) || exit 1
+
+( mkdir XML-SAX && cd XML-SAX
+ rpm2cpio $CWD/sources/perl-XML-SAX-[0-9]*.src.rpm | cpio -di
+ tar xvf XML-SAX-*nopatents.tar*
+ cd XML-SAX-* || exit 1
+ patch -p1 < ../perl-XML-SAX-0.99-rt20126.patch || exit 1
+ # Answer Y to updating ParserDetails.ini:
+ yes | perl Makefile.PL INSTALLDIRS=vendor
+ fgrep -lr -- '/share/man/' . | xargs sed -i 's?/share/man/?/man/?g'
+ make || exit 1
+ make test || exit 1
+ make pure_install || exit 1
+ # We need to make a ParserDetails.ini file, as suggested here:
+ # http://perl-xml.sourceforge.net/faq/#parserdetails.ini
+ perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()" ) || exit 1
+
+# Build docbook2X:
+# Extract source:
+tar xvf $CWD/sources/docbook2x*.orig.tar.xz
+cd docbook2X-* || 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 {} \;
+
+# Apply patches:
+xz -dc $CWD/sources/docbook2x*diff* | patch -p1 || exit 1
+for i in \
+ 01_fix_static_datadir_evaluation.dpatch \
+ 02_fix_418703_dont_use_abbreviated_sfnet_address.dpatch \
+ 03_fix_420153_filename_whitespace_handling \
+ 04_fix_442782_preprocessor_declaration_syntax.dpatch \
+ 05_fix_439214_error_on_missing_refentry.dpatch ; do
+ patch --verbose -p1 < debian/patches/$i || exit 1
+done
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+CPPFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --docdir=/usr/doc/docbook2X-$DOCBOOK2XVER \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --disable-maintainer-mode \
+ --disable-dependency-tracking \
+ --program-transform-name="s/^docbook2/docbook2x-/" \
+ --with-html-xsl \
+ --build=$ARCH-slackware-linux$HOSTTARGET || exit 1
+
+# Build:
+make || exit 1
+
+# Install:
+make install || exit 1
+mv -fv /usr/share/doc/docbook2X /usr/doc/docbook2X-$DOCBOOK2XVER
+
+# Copy docs:
+mkdir -vpm755 /usr/doc/docbook2X-$DOCBOOK2XVER
+cp -fav \
+ AUTHORS COPYING ChangeLog NEWS README THANKS TODO \
+ /usr/doc/docbook2X-$DOCBOOK2XVER
+
#######################################################################
# Install the package description:
diff --git a/source/ap/linuxdoc-tools/postbuildfixes.sh b/source/ap/linuxdoc-tools/postbuildfixes.sh
index 8781faf7d..c3d99e0ed 100755
--- a/source/ap/linuxdoc-tools/postbuildfixes.sh
+++ b/source/ap/linuxdoc-tools/postbuildfixes.sh
@@ -32,6 +32,9 @@ find . -name perllocal.pod -print0 | xargs -0 rm -f
# We don't need setuid for anything in this package:
chmod -R a-s .
+# Remove dangling symlinks from /usr/doc. asciidoc-8.6.7 was a culprit.
+find usr/doc -xtype l -print0 | xargs -0 rm -fv
+
# Ensure some permissions.
# I don't know why but these dirs are installed chmod 1755:
#drwxr-xr-t root/root 0 2006-05-27 15:42:44 var/lib/texmf/
diff --git a/source/ap/linuxdoc-tools/sources/docbook2x_0.8.8-8.diff b/source/ap/linuxdoc-tools/sources/docbook2x_0.8.8-8.diff
new file mode 100644
index 000000000..90188b436
--- /dev/null
+++ b/source/ap/linuxdoc-tools/sources/docbook2x_0.8.8-8.diff
@@ -0,0 +1,886 @@
+--- docbook2x-0.8.8.orig/debian/changelog
++++ docbook2x-0.8.8/debian/changelog
+@@ -0,0 +1,219 @@
++docbook2x (0.8.8-8) unstable; urgency=low
++
++ * debian/rules (binary-post-install): Fix manpages to talk about the renamed
++ commands.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 06 Sep 2008 10:59:50 +0200
++
++docbook2x (0.8.8-7) unstable; urgency=low
++
++ * debian/docbook2x.doc-base (Section): Fixed accordingly to version 0.8.10
++ of the doc-base manual.
++ * debian/watch: Fixed.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Tue, 08 Jul 2008 14:53:08 +0200
++
++docbook2x (0.8.8-6) unstable; urgency=low
++
++ * debian/compat: Raised to v5.
++ * debian/control: Added DM-Upload-Allowed for DM status.
++ (Build-Depends): Raised debhelper to v5.
++ (Standards-Version): Raised to 3.7.3.
++ * debian/copyright: Fixed typo. Thanks to lintian.
++ * debian/docbook2x.doc-base (Document): Fixed uppercase letter. Thanks to
++ lintian.
++ * debian/patches/05_fix_439214_error_on_missing_refentry.dpatch: Added.
++ - xslt/man/docbook.xsl: Print a warning if no refentry element can be
++ found (closes: #439214).
++ * debian/patches/00list: Adjusted.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Wed, 13 Feb 2008 18:08:08 +0100
++
++docbook2x (0.8.8-5) unstable; urgency=low
++
++ * debian/control: Homepage field transition.
++ * debian/rules (DEB_CONFIGURE_EXTRA_FLAGS): Added --with-html-xsl configure
++ option to prevent docbook2X FTBFS building twice in a row. Thanks to
++ Steven Cheng, Patrick Winnertz and Lucas Nussbaum (closes: #441700).
++ * debian/watch: Added.
++ * debian/patches/01_fix_static_datadir_evaluation.dpatch: Adjusted.
++ - Removed change in configure.ac to avoid rerunning all the autotools.
++ * debian/patches/04_fix_442782_preprocessor_declaration_syntax.dpatch: Added.
++ - Fixes preprocessor declaration syntax to be '\" (closes: #442782).
++ Thanks to Colin Watson for the report and the patch.
++ * debian/patches/00list: Adjusted.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sun, 25 Nov 2007 03:40:18 +0000
++
++docbook2x (0.8.8-4) unstable; urgency=high
++
++ [ Daniel Leidert ]
++ * debian/control (Depends): Added xsltproc. Thanks to Peter Eisentraut and
++ Adeodato SimĂ³ for the hint (closes: #420345). Further added the necessary
++ sp | opensp and texinfo dependencies.
++ * debian/patches/03_fix_420153_filename_whitespace_handling.dpatch: Added.
++ - First normalize the refentrytitle content and then replace spaces with
++ underlines to create the manpage filename (closes: #420153). Thanks to
++ Peter Eisentraut for reporting this issue.
++ * debian/patches/00list: Adjusted.
++ - Added 03_fix_420153_filename_whitespace_handling.dpatch.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sat, 21 Apr 2007 21:05:46 +0200
++
++docbook2x (0.8.8-3) unstable; urgency=high
++
++ [ Daniel Leidert ]
++ * debian/control (Depends): Added ${misc:Depends} variable to fix missing
++ dependency on xml-core (closes: #419419). Thanks to Kurt Roeckx for the
++ report.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sun, 15 Apr 2007 19:10:50 +0200
++
++docbook2x (0.8.8-2) unstable; urgency=high
++
++ [ Daniel Leidert ]
++ * debian/control (Build-Depends): Added xml-core and re-added dpatch..
++ * debian/docbook2x.xmlcatalogs: Added to register XML catalogs.
++ * debian/rules: Re-added dpatch ruleset.
++ (binary-install/docbook2x): Register the XML catalogs shipped with the
++ package source (closes: #418703).
++ * debian/patches/01_fix_static_datadir_evaluation.dpatch: Added. Fixes the
++ broken ${datadir} evaluation in configure(.ac) that leads to an unusable
++ package.
++ * debian/patches/02_fix_418703_dont_use_abbreviated_sfnet_address.dpatch:
++ Added. Don't use the short sf.net URLs. This with the above issue probably
++ caused bug #418703. However, having the catalogs registered was already in
++ TODO.
++ * debian/patches/00list: Adjusted.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Thu, 12 Apr 2007 16:27:10 +0200
++
++docbook2x (0.8.8-1) unstable; urgency=low
++
++ * New upstream version 0.8.8.
++ * Upload to unstable (closes: #409524).
++
++ [ Daniel Leidert ]
++ * debian/control: Added XS-Vcs-Browser and XS-Vcs-Svn fields.
++ (Build-Depends): Removed dpatch dependency.
++ * debian/rules: Removed dpatch ruleset inclusion.
++ (binary-install/docbook2x): Added the upstream changelog as well.
++ * debian/patches/00list:
++ * debian/patches/01_add_missing_documentation.dpatch: Removed. Fixed
++ upstream.
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Tue, 10 Apr 2007 22:54:42 +0200
++
++docbook2x (0.8.7-1) experimental; urgency=low
++
++ * New upstream release 0.8.7 (closes: #292046).
++ - This release also doesn't fail to build any longer with the latest
++ libxml-sax-perl (closes: #409524).
++
++ [ Daniel Leidert ]
++ * debian/control (Uploaders): Added myself.
++ (Build-Depends): Added dpatch, opensp, sp and xsltproc and removed
++ libxslt1-dev.
++ (Build-Conflicts): Added tidy to avoid further tests.
++ * debian/copyright: Small update.
++ * debian/docbook2x.doc-base: Added for registering the docbook2X HTML docs
++ with doc-base.
++ * debian/rules: Removed simple-patchsys.mk inclusion and made the makefile
++ smaller. Added the dpatch ruleset to apply changes.
++ (common-install-prehook-arch, binary-install): Fixed. The info files come
++ with a INFO-DIR-SECTION entry. Further there is also info documentation
++ for the xslt stylesheets.
++ (binary-post-install): Removed a lot of obsolete stuff. The Perl stuff is
++ not longer installed. No CVS content is installed.
++ (binary-post-install, DEB_CONFIGURE_EXTRA_FLAGS): Replaced the manual
++ program/man-page renaming with adding --program-transform-name to
++ configure flags.
++ (clean): Removed unused stuff and improved the rest a bit.
++ * debian/patches/01_add_missing_documentation.dpatch: Added.
++ - This patch adds the missing docbook2{man,texi}.html files to the
++ documentation.
++ * debian/patches/00list: Added. Apply patch(es).
++
++ -- Daniel Leidert (dale) <daniel.leidert@wgdd.de> Sun, 25 Feb 2007 22:28:34 +0100
++
++docbook2x (0.8.3-1) unstable; urgency=low
++
++ * New upstream release. Removed all the patches that used to be in
++ debian/patches, since they have been applied upstream.
++ * debian/control:
++ - In Build-Depends, dropped libxml-perl and added libxml-sax-perl.
++ - Added Build-Conflicts on libxml2-utils, because the presence of
++ /usr/bin/xmllint triggers unecessary buildings in the doc
++ directory.
++ * debian/rules: Added an extra clean target for files left after building
++ the upstream package that are not removed by make clean. Also, make
++ sure that debian/examples is clean.
++
++ -- Rafael Laboissiere <rafael@debian.org> Sun, 18 Jul 2004 22:24:57 +0200
++
++docbook2x (0.8.2-6) unstable; urgency=low
++
++ * debian/control: Added dependencies on ${perl:Depends}, libxml-perl,
++ and libtext-wrapi18n-perl. The variable ${perl:Depends} is set by
++ dh_perl.
++
++ -- Rafael Laboissiere <rafael@debian.org> Thu, 29 Apr 2004 14:32:06 +0200
++
++docbook2x (0.8.2-5) unstable; urgency=low
++
++ * debian/patches/50-malocc-return.patch: Added this patch to fix a
++ serious upstream bug which was preventing the package of being built
++ by the ia64, hppa, sparc, and powerpc build daemons.
++
++ -- Rafael Laboissiere <rafael@debian.org> Thu, 29 Apr 2004 12:12:12 +0200
++
++docbook2x (0.8.2-4) unstable; urgency=low
++
++ * debian/control: Added build-dependency on texinfo, since the makeinfo
++ program is needed for building the package.
++
++ -- Rafael Laboissiere <rafael@debian.org> Sun, 25 Apr 2004 21:29:15 +0200
++
++docbook2x (0.8.2-3) unstable; urgency=low
++
++ * debian/control: Added build-dependency on libxml-perl.
++
++ -- Rafael Laboissiere <rafael@debian.org> Sun, 25 Apr 2004 17:09:09 +0200
++
++docbook2x (0.8.2-2) unstable; urgency=low
++
++ * debian/patches/50-gentext-dingbat-template.patch: Patch for
++ xslt/common/gentext.xsl, defining the lacking gentext-dingbat template
++ (closes: #245340).
++ * debian/patches/50-i-element.patch: Patch for xslt/texi/biblio.xsl,
++ fixing wrong <I> elements (closes: #245343).
++ * debian/patches/50-xml-fixes.patch: Patch for fixing XML problems in
++ the upstream files doc/docbook2X.xml and doc/faq.xml.
++ * debian/rules:
++ - Include cdbs' simple-patchsys.mk for coping with the patches above.
++ - Removed hard-coded Perl version from some installation directories
++ names. There is now a PERL_INSTALLPRIVLIB variable, properly
++ initialized through the Perl Config module (closes: #245291).
++ - Install Perl module in standard place, complying with the Debian
++ Perl Policy (closes: #245305).
++ - Run make clean in perl/XML/Handler directory to avoid inclusion of
++ extraneous patches in the Debian diff.gz file. Remove also
++ Makefile.old.
++ * debian/control:
++ - Added versioned build-dependency on libxslt1-dev. Also, changed
++ Build-Depends-Indep to Build-Depends, since the package is
++ Architecture: any (closes: #245285).
++ - Cite upstream URL homepage in debian/control in accordance with the
++ Debian Best Packaging Practices manual (closes: #245447)
++ - Added Uploaders field with Ardo, Wolfgang, and Rafael.
++
++ -- Rafael Laboissiere <rafael@debian.org> Sun, 25 Apr 2004 14:45:14 +0200
++
++docbook2x (0.8.2-1) unstable; urgency=low
++
++ * Initial package. Closes: #185295.
++ * The file install.xml is missing from the upstream archive, but is
++ available at the web site.
++ * Beware: <qandaset> can only be handled with defaultlabel attribute.
++
++ -- W. Borgert <debacle@debian.org> Sat, 13 Mar 2004 09:41:07 +0000
+--- docbook2x-0.8.8.orig/debian/control
++++ docbook2x-0.8.8/debian/control
+@@ -0,0 +1,23 @@
++Source: docbook2x
++Section: text
++Priority: optional
++Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org>
++Uploaders: Ardo van Rangelrooij <ardo@debian.org>, W. Borgert <debacle@debian.org>, Rafael Laboissiere <rafael@debian.org>, Daniel Leidert (dale) <daniel.leidert@wgdd.de>
++Build-Depends: debhelper (>= 5), cdbs (>= 0.4.21), dpatch, libxml-sax-perl, opensp, sp, texinfo, xml-core, xsltproc
++Build-Conflicts: libxml2-utils, tidy
++Standards-Version: 3.7.3
++Homepage: http://docbook2x.sourceforge.net
++Vcs-Browser: http://svn.debian.org/wsvn/debian-xml-sgml/packages/docbook2x/trunk/
++Vcs-Svn: svn://svn.debian.org/svn/debian-xml-sgml/packages/docbook2x/
++DM-Upload-Allowed: yes
++
++Package: docbook2x
++Architecture: any
++Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, libxml-sax-expat-perl, libtext-wrapi18n-perl, opensp | sp, texinfo, xsltproc
++Recommends: docbook-xml, docbook-xsl
++Description: Converts DocBook/XML documents into man pages and TeXinfo
++ The main tools are:
++ * docbook2x-man: converts a DocBook/XML refentry into a manual page,
++ with table support
++ * docbook2x-texi: converts a DocBook/XML refentry into an info page,
++ most usable for Emacs users
+--- docbook2x-0.8.8.orig/debian/compat
++++ docbook2x-0.8.8/debian/compat
+@@ -0,0 +1 @@
++5
+--- docbook2x-0.8.8.orig/debian/TODO
++++ docbook2x-0.8.8/debian/TODO
+@@ -0,0 +1,22 @@
++Things that should (IMHO definitely) be done in the near future:
++
++ * make the package XML policy compliant.
++
++ - move the stylesheets and DTDs into /usr/share/xml
++
++ * solve the conflict with the docbook-utils package binaries
++ (including: man-pages and docs currently use the names chosen by upstream,
++ not "our" tranformed binary names)
++
++ * the man-pages contain references to files in /usr/share
++ [.. citing Steve Cheng ..] So you have two choices:
++
++ 1. You can either use a sed script afterwards to fix the paths in the
++ installed man pages (and HTML, Texinfo documentation).
++
++ 2. Or, force the rebuild of the documentation at your end.
++ After running the configure --with-html-xsl, touch doc/docbook2X.xml and
++ then make. (Note: don't use VPATH builds in this situation; it breaks.)
++ Of course you will need the xsltproc and the DocBook XSL stylesheets for
++ this procedure. [..]
++
+--- docbook2x-0.8.8.orig/debian/watch
++++ docbook2x-0.8.8/debian/watch
+@@ -0,0 +1,4 @@
++# See uscan(1) for format
++
++version=3
++http://sf.net/docbook2x/docbook2X-([\d\.]+)\.tar\.gz
+--- docbook2x-0.8.8.orig/debian/docbook2x.doc-base
++++ docbook2x-0.8.8/debian/docbook2x.doc-base
+@@ -0,0 +1,13 @@
++Document: docbook2x
++Title: docbook2X user documentation
++Author: Steve Cheng <stevecheng@users.sourceforge.net>
++Abstract: docbook2X converts DocBook documents into man pages and
++ Texinfo documents. This documentation contains the man-pages, a
++ quick start guide, the FAQ and some information about the
++ project (history).
++Section: Text
++
++Format: HTML
++Index: /usr/share/doc/docbook2x/docbook2X/docbook2X.html
++Files: /usr/share/doc/docbook2x/docbook2X/*.html
++
+--- docbook2x-0.8.8.orig/debian/docbook2x.xmlcatalogs
++++ docbook2x-0.8.8/debian/docbook2x.xmlcatalogs
+@@ -0,0 +1,19 @@
++root;public;-//Steve Cheng//DTD
++root;public;-//Steve Cheng//DOCUMENT DocBook
++
++root;system;http://docbook2x.sf.net/latest/
++root;system;http://docbook2x.sourceforge.net/latest/
++
++local;dtd/catalog.xml;/usr/share/docbook2X/dtd/catalog.xml
++local;xslt/catalog.xml;/usr/share/docbook2X/xslt/catalog.xml
++
++package;public;-//Steve Cheng//DTD Man-XML V0.8.6//EN;/usr/share/docbook2X/dtd/catalog.xml
++package;public;-//Steve Cheng//DTD Texi-XML V0.8.6//EN;/usr/share/docbook2X/dtd/catalog.xml
++package;system;http://docbook2x.sourceforge.net/latest/dtd/;/usr/share/docbook2X/dtd/catalog.xml
++package;system;http://docbook2x.sf.net/latest/dtd/;/usr/share/docbook2X/dtd/catalog.xml
++
++package;public;-//Steve Cheng//DOCUMENT DocBook Texinfo Stylesheet//EN;/usr/share/docbook2X/xslt/catalog.xml
++package;public;-//Steve Cheng//DOCUMENT DocBook Man-page Stylesheet//EN;/usr/share/docbook2X/xslt/catalog.xml
++package;system;http://docbook2x.sourceforge.net/latest/xslt/;/usr/share/docbook2X/xslt/catalog.xml
++package;system;http://docbook2x.sf.net/latest/xslt/;/usr/share/docbook2X/xslt/catalog.xml
++
+--- docbook2x-0.8.8.orig/debian/docbook2x.examples
++++ docbook2x-0.8.8/debian/docbook2x.examples
+@@ -0,0 +1 @@
++debian/examples/*
+--- docbook2x-0.8.8.orig/debian/copyright
++++ docbook2x-0.8.8/debian/copyright
+@@ -0,0 +1,67 @@
++This package was debianized by W. Borgert <debacle@debian.org> on
++Sat, 2004-03-13 17:04:55 GMT 2004.
++
++It was downloaded from Sourceforge:
++
++ <URL:http://docbook2x.sourceforge.net/>
++
++Upstream Author:
++
++ Steve Cheng <stevecheng@users.sourceforge.net>
++
++Copyright:
++
++ Copyright (C) 2000-2006 Steve Cheng <stevecheng@users.sourceforge.net>.
++
++ Parts have been derived from the docbook-xsl stylesheet distribution, that
++ is:
++
++ Copyright (C) 1999, 2000, 2001, 2002 Norman Walsh.
++
++License and Warranty for docbook2X:
++
++ Permission is hereby granted, free of charge, to any person obtaining
++ a copy of this software and associated documentation files (the
++ "Software"), to deal in the Software without restriction, including
++ without limitation the rights to use, copy, modify, merge, publish,
++ distribute, sublicense, and/or sell copies of the Software, and to
++ permit persons to whom the Software is furnished to do so, subject to
++ the following conditions:
++
++ The above copyright notice and this permission notice shall be included
++ in all copies or substantial portions of the Software.
++
++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++ IN NO EVENT SHALL THE AUTHOR(S) 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 DEALNGS IN THE SOFTWARE.
++
++License and Warranty for derived parts:
++
++ 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 al copies or substantial portions of the Software.
++
++ Except as contained in this notice, the names of individuals
++ credited with contribution to this software shall not be used in
++ advertising or otherwise to promote the sale, use or other
++ dealings in this Software without prior written authorization
++ from the individuals in question.
++
++ Any stylesheet derived from this Software that is publicly
++ distributed will be identified with a different name and the
++ version strings in any derived Software will be changed s that
++ no possibility of confusion between the derived package and this
++ Software will exist.
++
+--- docbook2x-0.8.8.orig/debian/rules
++++ docbook2x-0.8.8/debian/rules
+@@ -0,0 +1,38 @@
++#!/usr/bin/make -f
++
++include /usr/share/cdbs/1/rules/debhelper.mk
++include /usr/share/cdbs/1/rules/dpatch.mk
++include /usr/share/cdbs/1/class/autotools.mk
++
++
++PACKAGE := docbook2x
++
++DEB_CONFIGURE_EXTRA_FLAGS := --program-transform-name="s/^docbook2/docbook2x-/" --with-html-xsl
++
++
++common-install-prehook-arch::
++ sed "s/^INFO-DIR-SECTION Document Preparation/INFO-DIR-SECTION Text/" \
++ doc/docbook2X.info > debian/docbook2X.info
++ sed "s/^INFO-DIR-SECTION Document Preparation/INFO-DIR-SECTION Text/" \
++ xslt/documentation/docbook2man-xslt.info > debian/docbook2man-xslt.info
++ sed "s/^INFO-DIR-SECTION Document Preparation/INFO-DIR-SECTION Text/" \
++ xslt/documentation/docbook2texi-xslt.info > debian/docbook2texi-xslt.info
++
++binary-install/docbook2x::
++ dh_installinfo -pdocbook2x debian/docbook2X.info \
++ debian/docbook2man-xslt.info \
++ debian/docbook2texi-xslt.info
++ dh_installchangelogs doc/changes.html
++ dh_installxmlcatalogs
++
++binary-post-install/docbook2x::
++ mv $(CURDIR)/debian/$(PACKAGE)/usr/share/doc/docbook2X \
++ $(CURDIR)/debian/$(PACKAGE)/usr/share/doc/docbook2x
++ sed -i -e 's/docbook2man/docbook2x\\-man/g' \
++ $(CURDIR)/debian/$(PACKAGE)/usr/share/man/man1/docbook2x-man.1
++ sed -i -e 's/docbook2texi/docbook2x\\-texi/g' \
++ $(CURDIR)/debian/$(PACKAGE)/usr/share/man/man1/docbook2x-texi.1
++
++clean::
++ make -C debian/examples clean
++ rm -f debian/docbook2X.info
+--- docbook2x-0.8.8.orig/debian/patches/00list
++++ docbook2x-0.8.8/debian/patches/00list
+@@ -0,0 +1,5 @@
++01_fix_static_datadir_evaluation
++02_fix_418703_dont_use_abbreviated_sfnet_address
++03_fix_420153_filename_whitespace_handling
++04_fix_442782_preprocessor_declaration_syntax
++05_fix_439214_error_on_missing_refentry
+--- docbook2x-0.8.8.orig/debian/patches/03_fix_420153_filename_whitespace_handling
++++ docbook2x-0.8.8/debian/patches/03_fix_420153_filename_whitespace_handling
+@@ -0,0 +1,43 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 03_fix_420153_filename_whitespace_handling.dpatch by
++## Daniel Leidert (dale) <daniel.leidert@wgdd.de>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Peter Eisentraut reported a regression in the whitespace handling of
++## DP: refentrytitle content during filename creation:
++## DP: http://bugs.debian.org/420153. The problem is, that upstream first
++## DP: replaces all spaces (but not linebreaks btw) with underlines and then
++## DP: it tries to normalize the result. This means, that a linebreak with
++## DP: additional whitespaces results in manpage names like 'foo_ ____bar.9'.
++## DP: So what we basically do in this patch is, that we first normalize the
++## DP: refentrytitle and then replace any spaces left with underlines.
++
++@DPATCH@
++diff -urNad docbook2x-0.8.8~/xslt/man/manpage.xsl docbook2x-0.8.8/xslt/man/manpage.xsl
++--- docbook2x-0.8.8~/xslt/man/manpage.xsl 2006-04-20 15:45:55.000000000 +0200
+++++ docbook2x-0.8.8/xslt/man/manpage.xsl 2007-04-20 16:19:28.000000000 +0200
++@@ -30,7 +30,7 @@
++
++ <xsl:template name="manpage-filename">
++ <xsl:param name="filename" />
++- <xsl:value-of select="normalize-space(translate($filename, &quot; /&quot;, &quot;__&quot;))" />
+++ <xsl:value-of select="translate(normalize-space($filename), ' /', '__')" />
++ </xsl:template>
++
++
++diff -urNad docbook2x-0.8.8~/xslt/man/refentry.xsl docbook2x-0.8.8/xslt/man/refentry.xsl
++--- docbook2x-0.8.8~/xslt/man/refentry.xsl 2006-04-21 04:39:55.000000000 +0200
+++++ docbook2x-0.8.8/xslt/man/refentry.xsl 2007-04-20 16:21:53.000000000 +0200
++@@ -38,7 +38,11 @@
++ <xsl:template name="refentry-filename">
++ <xsl:param name="title" />
++
++- <xsl:variable name="title2" select="translate($title, &quot; /&quot;, &quot;__&quot;)" />
+++ <xsl:variable name="title2">
+++ <xsl:call-template name="manpage-filename">
+++ <xsl:with-param name="filename" select="$title" />
+++ </xsl:call-template>
+++ </xsl:variable>
++
++ <!-- not using gentext here since man page names tend not to have
++ accented chars / non-Latin chars ...
+--- docbook2x-0.8.8.orig/debian/patches/02_fix_418703_dont_use_abbreviated_sfnet_address.dpatch
++++ docbook2x-0.8.8/debian/patches/02_fix_418703_dont_use_abbreviated_sfnet_address.dpatch
+@@ -0,0 +1,27 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 02_fix_418703_dont_use_abbreviated_sfnet_address.dpatch by Daniel Leidert (dale) <daniel.leidert@wgdd.de>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Ondrej Certik reported a resolver issue: http://bugs.debian.org/418703.
++## DP: The error seems to be caused by using the abbreviated sf.net URLs. But
++## DP: it is possible, that this issue only occurs together with the issue
++## DP: described in 01_fix_static_datadir_evaluation.dpatch, because the path
++## DP: to the catalog also suffers from this issue.
++
++@DPATCH@
++diff -urNad docbook2x-0.8.8~/perl/db2x_xsltproc.pl docbook2x-0.8.8/perl/db2x_xsltproc.pl
++--- docbook2x-0.8.8~/perl/db2x_xsltproc.pl 2004-08-18 16:21:52.000000000 +0200
+++++ docbook2x-0.8.8/perl/db2x_xsltproc.pl 2007-04-12 16:07:20.000000000 +0200
++@@ -110,10 +110,10 @@
++
++ if($options->{'stylesheet'} eq 'texi') {
++ $options->{'stylesheet'} =
++- "http://docbook2x.sf.net/latest/xslt/texi/docbook.xsl";
+++ "http://docbook2x.sourceforge.net/latest/xslt/texi/docbook.xsl";
++ } elsif($options->{'stylesheet'} eq 'man') {
++ $options->{'stylesheet'} =
++- "http://docbook2x.sf.net/latest/xslt/man/docbook.xsl";
+++ "http://docbook2x.sourceforge.net/latest/xslt/man/docbook.xsl";
++ }
++
++ if(scalar(@argv) != 1) {
+--- docbook2x-0.8.8.orig/debian/patches/04_fix_442782_preprocessor_declaration_syntax.dpatch
++++ docbook2x-0.8.8/debian/patches/04_fix_442782_preprocessor_declaration_syntax.dpatch
+@@ -0,0 +1,90 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 04_fix_442782_preprocessor_declaration_syntax.dpatch by Colin Watson <cjwatson@debian.org>.
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: Conventionally, preprocessor declarations should start with
++## DP: '\"
++## DP: rather than
++## DP: .\"
++## DP: Current man-db only supports the first (and recommended) syntax. So
++## DP: Colin Watson provided this patch to fix docbook2x.
++## DP:
++## DP: <URL:http://bugs.debian.org/442782>
++## DP: <URL:http://lists.gnu.org/archive/html/groff/2007-11/msg00023.html>
++
++@DPATCH@
++diff -urNad trunk~/perl/db2x_manxml.pl trunk/perl/db2x_manxml.pl
++--- trunk~/perl/db2x_manxml.pl 2006-04-22 17:21:32.000000000 +0200
+++++ trunk/perl/db2x_manxml.pl 2007-11-24 01:27:37.000000000 +0100
++@@ -342,6 +342,25 @@
++ $self->{line_start} = 1;
++ }
++
+++#
+++# Print a comment in the output, without causing a break.
+++# Params: comment - the comment text.
+++# May use any characters; they need not be escaped.
+++#
+++sub comment_nobreak
+++{
+++ my ($self, $comment) = @_;
+++ $self->write("\n") unless $self->{line_start};
+++
+++ foreach my $line (split(/\n/, $comment)) {
+++ $self->write('\'\" ');
+++ $self->write($line);
+++ $self->write("\n");
+++ }
+++
+++ $self->{line_start} = 1;
+++}
+++
++
++ #
++ # Use a roff "escape" i.e. commands embedded in text starting with \
++@@ -510,16 +529,20 @@
++
++ $self->{'adjust-stack'} = [ 'b' ];
++
++- $self->{rw}->comment($elem->attr('preprocessors'))
++- if($elem->attr('preprocessors') ne '');
++-
+++ my $preprocessors = $elem->attr('preprocessors');
++ # I've dug through the Internet to see if there was any
++ # standard way to specify encoding with man pages.
++ # The following seems to be a reasonable proposal:
++ # <URL:http://mail.nl.linux.org/linux-utf8/2001-04/msg00168.html>
++ my $encoding = $self->{options}->{'encoding'};
++ $encoding =~ s#//TRANSLIT$##i;
++- $self->{rw}->comment("-*- coding: $encoding -*-");
+++ $encoding = "-*- coding: $encoding -*-";
+++ if ($preprocessors eq '') {
+++ $preprocessors = $encoding;
+++ } else {
+++ $preprocessors = "$preprocessors $encoding";
+++ }
+++ $self->{rw}->comment_nobreak($preprocessors);
++
++ # Define escapes for switching to and from monospace fonts (groff only)
++ $self->{rw}->request(qw{ .if \n(.g .ds T< \\\\FC});
++diff -urNad trunk~/xslt/backend/db2x_manxml.xsl trunk/xslt/backend/db2x_manxml.xsl
++--- trunk~/xslt/backend/db2x_manxml.xsl 2006-04-23 16:44:52.000000000 +0200
+++++ trunk/xslt/backend/db2x_manxml.xsl 2007-11-24 01:27:37.000000000 +0100
++@@ -528,7 +528,7 @@
++ <exslt:document method="text"
++ encoding="{$encoding}"
++ href="{$path}">
++- <xsl:text>.\" -*- coding: </xsl:text>
+++ <xsl:text>'\" -*- coding: </xsl:text>
++ <xsl:value-of select="$encoding" />
++ <xsl:text> -*-&#10;</xsl:text>
++ <xsl:copy-of select="$content" />
++@@ -538,7 +538,7 @@
++ <saxon:output method="text"
++ encoding="{$encoding}"
++ href="{$path}">
++- <xsl:text>.\" -*- coding: </xsl:text>
+++ <xsl:text>'\" -*- coding: </xsl:text>
++ <xsl:value-of select="$encoding" />
++ <xsl:text> -*-&#10;</xsl:text>
++ <xsl:copy-of select="$content" />
+--- docbook2x-0.8.8.orig/debian/patches/01_fix_static_datadir_evaluation.dpatch
++++ docbook2x-0.8.8/debian/patches/01_fix_static_datadir_evaluation.dpatch
+@@ -0,0 +1,20 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 01_fix_static_datadir_evaluation.dpatch by Daniel Leidert (dale) <daniel.leidert@wgdd.de>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: The evaluation of datadir results in "${prefix}/share" without
++## DP: evaluation of the ${prefix} variable with autoconf 2.60.
++
++@DPATCH@
++diff -urNad docbook2x-0.8.8~/configure docbook2x-0.8.8/configure
++--- docbook2x-0.8.8~/configure 2007-04-12 15:16:48.000000000 +0200
+++++ docbook2x-0.8.8/configure 2007-04-12 16:04:16.000000000 +0200
++@@ -5265,7 +5265,7 @@
++ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
++
++
++-eval static_datadir="$datadir"
+++eval eval static_datadir="$datadir"
++
++ eval static_bindir="$bindir"
++ old_val=""
+--- docbook2x-0.8.8.orig/debian/patches/05_fix_439214_error_on_missing_refentry.dpatch
++++ docbook2x-0.8.8/debian/patches/05_fix_439214_error_on_missing_refentry.dpatch
+@@ -0,0 +1,33 @@
++#! /bin/sh /usr/share/dpatch/dpatch-run
++## 05_fix_439214_error_on_missing_refentry.dpatch by Daniel Leidert <daniel.leidert@wgdd.de>
++##
++## All lines beginning with `## DP:' are a description of the patch.
++## DP: If there is no refentry element, the manpage stylesheets silently
++## DP: "ignores" this. It has been requested to print at least a
++## DP: warning.
++## DP:
++## DP: <URL:http://bugs.debian.org/439214>
++## DP: <URL:http://lists.gnu.org/archive/html/groff/2007-11/msg00023.html>
++
++@DPATCH@
++diff -urNad trunk~/xslt/man/docbook.xsl trunk/xslt/man/docbook.xsl
++--- trunk~/xslt/man/docbook.xsl 2006-04-11 21:00:19.000000000 +0200
+++++ trunk/xslt/man/docbook.xsl 2008-02-05 03:31:48.000000000 +0100
++@@ -111,11 +111,15 @@
++ <xsl:when test="child::refentry">
++ <xsl:apply-templates />
++ </xsl:when>
++-
++- <xsl:otherwise>
+++ <xsl:when test="descendant-or-self::refentry">
++ <manpageset>
++ <xsl:apply-templates select="descendant-or-self::refentry" />
++ </manpageset>
+++ </xsl:when>
+++ <xsl:otherwise>
+++ <xsl:message terminate="no">
+++ <xsl:text>WARNING: Sorry, but I cannot find a refentry element in your source!</xsl:text>
+++ </xsl:message>
++ </xsl:otherwise>
++ </xsl:choose>
++ </xsl:template>
+--- docbook2x-0.8.8.orig/debian/examples/ttcn-el.dbk
++++ docbook2x-0.8.8/debian/examples/ttcn-el.dbk
+@@ -0,0 +1,178 @@
++<?xml version="1.0" encoding="utf-8"?>
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
++"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
++ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
++ <!ENTITY emacs "<abbrev>GNU Emacs</abbrev>">
++ <!ENTITY ttcn3 "<acronym>TTCN-3</acronym>">
++ <!ENTITY ttcnmp "<acronym>TTCN.MP</acronym>">
++]>
++
++<!-- Manual page for ttcn-el, DocBook source file (C) 2000 W. Borgert
++ debacle@debian.org
++
++ $Id: ttcn-el.dbk,v 1.1 2007/02/24 06:33:26 dleidert-guest Exp $ -->
++
++<refentry>
++ <refentryinfo>
++ <title>&emacs; modes for protocol testing languages</title>
++ <titleabbrev>TTCN-3 mode</titleabbrev>
++ <address>
++ <email>debacle@debian.org</email>
++ </address>
++ <author>
++ <firstname>W.</firstname>
++ <surname>Borgert</surname>
++ </author>
++ <copyright>
++ <year>2000</year>
++ <holder>W. Borgert</holder>
++ </copyright>
++ <date>2000-07-28</date>
++ </refentryinfo>
++ <refmeta>
++ <refentrytitle>ttcn-el</refentrytitle>
++
++ <manvolnum>7</manvolnum>
++ <refmiscinfo role="infodirsection">Development</refmiscinfo>
++ </refmeta>
++ <refnamediv>
++ <refname>ttcn-el</refname>
++
++ <refpurpose>&emacs; modes for protocol testing languages.</refpurpose>
++ </refnamediv>
++ <refsynopsisdiv>
++ <cmdsynopsis>
++ <command>ttcn-3-mode</command>
++ </cmdsynopsis>
++ <cmdsynopsis>
++ <command>ttcn-mode</command>
++ </cmdsynopsis>
++ <cmdsynopsis>
++ <command>tm-functions</command>
++ </cmdsynopsis>
++ </refsynopsisdiv>
++ <refsect1>
++ <title>Description</title>
++
++ <para>The programming modes <command>ttcn-3-mode</command>,
++ <command>ttcn-mode</command>, and
++ <command>tm-functions</command> for &emacs; are for programming
++ in the &ttcn3;, core language (Testing and Test Control Notation
++ - 3), &ttcnmp; format (Tree and Tabulart Combined Notation), or
++ the Test Manager scripts, an enhancement to the Forth
++ programming language, used in the Tektronix
++ <productname>K1297</productname> protocol tester.</para>
++
++ <para>The &ttcn3; programming mode
++ (<command>ttcn-3-mode</command>, file
++ <filename>ttcn3.el</filename>) does indentation, code
++ colourisation (so-called font-locking) and gives you an index of
++ test cases and other important definitions via the
++ <guimenu>Module-Index</guimenu>. With the command
++ <command>ttcn3-parse</command> you can run an external
++ TTCN3Parser or ttthreeparser, if available. The keywords are
++ according to the TTCN-3 BNF of 2001-10. To switch off the logo
++ splash screen, set the variable
++ <varname>ttcn3-show-logo</varname> to <constant>nil</constant>
++ in your <filename>~/.emacs</filename> file. The logo is by
++ Patrick Andrieu, the ASCII art version by W. Borgert. This mode
++ is based on <productname>CC Mode</productname>, please look in
++ the <productname>CC Mode</productname> documentation for further
++ information.</para>
++
++ <para>The &ttcnmp; programming mode (<command>ttcn-mode</command>,
++ file <filename>ttcn.el</filename>) is not for writing test
++ suites from scratch, but for fixing small errors or doing little
++ changes or just looking at the MP format. No indentation is
++ done, but some code colourisation, an index, and a menu with
++ some navigation functions are given. Note: For large test
++ suites startup might become very slow.</para>
++
++ <para>If one want that &emacs; treats files with the
++ <filename>.mp</filename> extension automatically as
++ &ttcnmp; files instead of MetaPost files, add the following
++ lines to your <filename>~/.emacs</filename> file:
++ <programlisting>(setq auto-mode-alist
++ (cons '("\\.mp\\'" . ttcn-mode) auto-mode-alist))</programlisting>
++ </para>
++
++ <para>The Test Manager programming functions
++ (<command>tm-functions</command>, file <filename>tm.el</filename>)is
++ an addition to the Forth programming mode
++ (<command>forth-mode</command>, file
++ <filename>forth.el</filename>). It includes only minor
++ additions to the regular Forth mode, i.e. font-locking, index
++ menu, and support of the Test Manager specific words.</para>
++
++ <para>To enable the <command>tm-functions</command> by default,
++ add the following line to your
++ <filename>~/.emacs</filename>:
++ <programlisting>(add-hook 'forth-mode-hook 'tm-functions)
++ </programlisting></para>
++
++ </refsect1>
++ <refsect1>
++ <title>Files</title>
++
++ <para>All lisp source files are in
++ <filename>/usr/share/emacs/site-lisp/ttcn-el/</filename>.</para>
++ </refsect1>
++ <refsect1>
++ <title>Author</title>
++
++ <para>These programmes are made by <author><firstname>W.</firstname>
++ <surname>Borgert</surname></author>
++ &lt;<email>debacle@debian.org</email>&gt;, as well as this
++ documentation.</para>
++
++ </refsect1>
++ <refsect1>
++ <title>Thanks</title>
++
++ <para>All important ideas and some code are taken from other
++ &emacs; modes, and adapted to work with TTCN-3, &ttcnmp; and
++ Test Manager files. Thanks to Csaba Koppany and Theofanis
++ Vassiliou-Gioles for valuable hints on current TTCN-3 keywords
++ and regular expressions.</para>
++
++ </refsect1>
++ <refsect1>
++ <title>Copyright</title>
++
++ <para>Copyright 2000 W. Borgert and released under the
++ <acronym>GNU</acronym> General Public License
++ (<abbrev>GPL</abbrev>). Permission is granted to copy,
++ distribute and/or modify this document under the terms of the
++ <acronym>GNU</acronym> Free Documentation License, Version 1.1;
++ with no Invariant Sections, no Front-Cover Texts and no
++ Back-Cover Texts.</para>
++ </refsect1>
++ <refsect1>
++ <title>Bugs</title>
++
++ <para>The indentation is not correct in many cases.</para>
++ </refsect1>
++ <refsect1>
++ <title>History</title>
++
++ <para>Version 0.6 released on 2001-10-10. Updated
++ keywords.</para>
++
++ <para>Version 0.5 released on 2001-05-05. Updated
++ keywords.</para>
++
++ <para>Version 0.4 released on 2001-02-02. Calls external
++ parser.</para>
++
++ <para>Version 0.3 released on 2001-01-31.
++ <filename>ttcn3.el</filename> should now work with GNU Emacs
++ 21.0 and XEmacs 21.1, too.</para>
++
++ <para>Version 0.2 released on 2000-07-28. Includes updates for
++ &ttcn3; keywords in <filename>ttcn3.el</filename> and makes
++ <filename>tm.el</filename> a function library instead of a major
++ mode.</para>
++
++ <para>Version 0.1 released on 2000-03-31. Initial release.</para>
++ </refsect1>
++</refentry>
+--- docbook2x-0.8.8.orig/debian/examples/Makefile
++++ docbook2x-0.8.8/debian/examples/Makefile
+@@ -0,0 +1,29 @@
++# -*- makefile -*-
++
++# Notes:
++# 1. you must have package libxml2-python2.3 installed
++# 2. your document must have a titleabbrev in the refentryinfo
++# 3. your document must have a refmiscinfo with role=infodirsection
++
++XTR=python -c 'import sys, libxml2; \
++print libxml2.parseFile(sys.argv[1]).xpathEval(sys.argv[2])[0].content'
++
++all: $(patsubst %.dbk,%.info,$(wildcard *.dbk))
++
++%.info: %.dbk
++ docbook2x-texi --info --to-stdout $< | \
++ awk -v base=`basename $< .dbk` \
++ -v sect="`${XTR} $< '//refmiscinfo[@role="infodirsection"]'`" \
++ -v title="`${XTR} $< '/refentry/refentryinfo/titleabbrev'`" \
++ 'BEGIN { p=1 } \
++ /^START-INFO-DIR-ENTRY/ { print \
++ "INFO-DIR-SECTION " sect "\n" $$0; p=0 } \
++ /^END-INFO-DIR-ENTRY/ { p=1 } \
++ /^\* / { if (p==0) { gsub(/.*\./, ""); \
++ print "* " title ": (" base ")." $$0 } } \
++ /^File: stdout,/ { if (p==1) { \
++ gsub(/File: stdout/, "File: " base ".info"); p=2 } } \
++ { if (p) { print } }' > $@
++
++clean::
++ rm -f *.info *~
diff --git a/source/ap/linuxdoc-tools/sources/source.download b/source/ap/linuxdoc-tools/sources/source.download
index c9608b2b2..e82436972 100755
--- a/source/ap/linuxdoc-tools/sources/source.download
+++ b/source/ap/linuxdoc-tools/sources/source.download
@@ -7,13 +7,13 @@
# linuxdoc-tools:
# This provides things such as sgml2txt.
-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
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/l/linuxdoc-tools-0.9.68-3.fc19.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 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
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/o/opensp-1.5.2-16.fc19.src.rpm
# OpenJade:
# http://openjade.sourceforge.net/
@@ -27,7 +27,7 @@ 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/rawhide/source/SRPMS/s/sgml-common-0.6.3-36.fc17.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-39.fc19.src.rpm
# DocBook docs:
@@ -45,12 +45,12 @@ 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/rawhide/source/SRPMS/d/docbook-utils-0.6.14-30.fc17.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-35.fc19.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/rawhide/source/SRPMS/d/docbook-style-xsl-1.76.1-5.fc17.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.78.1-1.fc20.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.
@@ -63,17 +63,18 @@ 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 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
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/g/gnome-doc-utils-0.20.10-4.fc19.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.18/gtk-doc-1.18.tar.bz2
+wget -c http://ftp.acc.umu.se/pub/GNOME/sources/gtk-doc/1.19/gtk-doc-1.19.tar.xz
# http://git.gnome.org/browse/gtk-doc/commit/?id=2bffebcf9c125f5610b8fb660d42c3c5b9dfd4f0
# sgmlspl
# http://www.cs.indiana.edu/~asengupt/sgml/SGMLSpm/DOC/HTML/sgmlspl/sgmlspl.html
+# http://packages.debian.org/search?keywords=sgmlspl&searchon=names&suite=all&section=all
# There's nothing in the FTP download site at this time, so I'll take it from Debian.
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
@@ -82,8 +83,21 @@ wget -c http://ftp.de.debian.org/debian/pool/main/libs/libsgmls-perl/libsgmls-pe
# 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 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
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/x/xmlto-0.0.25-6.fc20.src.rpm
# AsciiDoc
# http://www.methods.co.nz/asciidoc/
-wget -c "http://sourceforge.net/projects/asciidoc/files/asciidoc/8.6.7/asciidoc-8.6.7.tar.gz/download"
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/a/asciidoc-8.6.8-1.fc19.src.rpm
+
+# docbook2X:
+#
+# Pre-requisite PERL modules for docbook2X:
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/p/perl-XML-NamespaceSupport-1.11-10.fc19.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/p/perl-XML-SAX-Base-1.08-7.fc19.src.rpm
+wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/p/perl-XML-SAX-0.99-9.fc19.src.rpm
+#
+#http://packages.debian.org/sid/docbook2x
+# Fedora keep it here, but Debian have a couple of (what look to be useful) patches.
+#wget -c ftp://ftp.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/d/docbook2X-0.8.8-14.fc19.src.rpm
+wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8.orig.tar.gz
+wget -c http://ftp.de.debian.org/debian/pool/main/d/docbook2x/docbook2x_0.8.8-8.diff.gz
diff --git a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
index 3ed08998d..4e3b2b3cf 100755
--- a/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
+++ b/source/ap/linuxdoc-tools/trackbuild.linuxdoc-tools
@@ -25,14 +25,15 @@ PKGNAM=linuxdoc-tools
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i486 ;;
+ armv7hl) export ARCH=armv7hl ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
esac
fi
-export PKGVERSION=0.9.67 # use the version of linuxdoc-tools as the package version.
-BUILD=${BUILD:-2}
+export PKGVERSION=0.9.68 # use the version of linuxdoc-tools as the package version.
+BUILD=${BUILD:-4}
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 cb1b26ccc..b3a41b69a 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, 2012 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2006, 2008, 2009, 2010, 2012, 2013 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.3.2}
+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:
diff --git a/source/ap/lsscsi/lsscsi.SlackBuild b/source/ap/lsscsi/lsscsi.SlackBuild
index 3c034b824..605f4defc 100755
--- a/source/ap/lsscsi/lsscsi.SlackBuild
+++ b/source/ap/lsscsi/lsscsi.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, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
diff --git a/source/ap/lxc/lxc.SlackBuild b/source/ap/lxc/lxc.SlackBuild
index 7b82f89ee..2ae036b6a 100755
--- a/source/ap/lxc/lxc.SlackBuild
+++ b/source/ap/lxc/lxc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011, 2012, 2013 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:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -105,6 +105,10 @@ cp -a \
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION/examples
cp -a doc/examples/*.conf $PKG/usr/doc/${PKGNAM}-$VERSION/examples
+# Fix up man pages to stop 'man' from barfing a warning:
+( cd $PKG/usr/man
+ fgrep -lr -- '-*- coding: us-ascii -*-' . | xargs sed -i '/-*- coding: us-ascii -*-/d' )
+
# Compress and if needed symlink the man pages:
if [ -d $PKG/usr/man ]; then
( cd $PKG/usr/man
diff --git a/source/ap/madplay/madplay.SlackBuild b/source/ap/madplay/madplay.SlackBuild
index 34d32340b..545e9cbe3 100755
--- a/source/ap/madplay/madplay.SlackBuild
+++ b/source/ap/madplay/madplay.SlackBuild
@@ -22,7 +22,7 @@
VERSION=0.15.2b
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/man-pages/man-pages-3.53.tar.sign b/source/ap/man-pages/man-pages-3.53.tar.sign
new file mode 100644
index 000000000..d7c42c0af
--- /dev/null
+++ b/source/ap/man-pages/man-pages-3.53.tar.sign
Binary files differ
diff --git a/source/ap/man-pages/man-pages.SlackBuild b/source/ap/man-pages/man-pages.SlackBuild
index 85cfc0d27..ff779f110 100755
--- a/source/ap/man-pages/man-pages.SlackBuild
+++ b/source/ap/man-pages/man-pages.SlackBuild
@@ -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:-$(echo man-pages-3.*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+VERSION=${VERSION:-$(echo man-pages-3.*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
ARCH=noarch
BUILD=${BUILD:-1}
@@ -34,7 +34,7 @@ mkdir -p $TMP $PKG
cd $TMP
rm -rf man-pages-$VERSION
tar xf $CWD/man-pages-$VERSION.tar.xz
-tar xf $CWD/man-pages-posix-2003-a.tar.bz2
+tar xf $CWD/man-pages-posix-2003-a.tar.xz
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
find man-pages-$VERSION \
diff --git a/source/ap/mysql/doinst.sh b/source/ap/mariadb/doinst.sh
index a5d835faf..0defd2fe1 100644
--- a/source/ap/mysql/doinst.sh
+++ b/source/ap/mariadb/doinst.sh
@@ -20,4 +20,9 @@ fi
config etc/rc.d/rc.mysqld.new
config etc/mysqlaccess.conf.new
+config etc/my.cnf.new
+config etc/my.cnf.d/client.cnf.new
+config etc/my.cnf.d/mysql-clients.cnf.new
+config etc/my.cnf.d/server.cnf.new
+config etc/logrotate.d/mysql.new
diff --git a/source/ap/mysql/mysql.SlackBuild b/source/ap/mariadb/mariadb.SlackBuild
index 6690c0f5e..7ba019593 100755
--- a/source/ap/mysql/mysql.SlackBuild
+++ b/source/ap/mariadb/mariadb.SlackBuild
@@ -1,6 +1,7 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2012, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011, 2012, 2013 Heinz Wiesinger, Amsterdam, The Netherlands
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,12 +23,28 @@
# Build and install MySQL on Slackware
# by: David Cantrell <david@slackware.com>
-# Currently maintained by: Patrick Volkerding <volkerdi@slackware.com>
+# MariaDB conversion by: Heinz Wiesinger <pprkut@liwjatan.at>
+# Also maintained by: Patrick Volkerding <volkerdi@slackware.com>
-
-VERSION=${VERSION:-$(echo mysql-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+PKGNAM=mariadb
+VERSION=${VERSION:-$(echo ${PKGNAM}-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
+# To reduce the package size, the embedded server my be omitted. Currently
+# only amarok uses this. To build without embedded support, set this to NO.
+EMBEDDED=${EMBEDDED:-YES}
+
+# Add a description tag to the $BUILD. This is used by
+# "build_embedded_package.sh" to mark packages containing the embedded server,
+# but can optionally be used with any kind of custom tag desired.
+TAG=${TAG:-}
+
+# Don't keep the large static libraries by default:
+KEEPSTATIC=${KEEPSTATIC:-NO}
+
+# Don't keep the test suite by default:
+KEEPTESTS=${KEEPTESTS:-NO}
+
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -41,28 +58,25 @@ fi
NUMJOBS=${NUMJOBS:-" -j7 "}
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-mysql
+PKG=$TMP/package-${PKGNAM}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
-elif [ "$ARCH" = "s390" ]; then
- SLKCFLAGS="-O2"
+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 mysql-$VERSION
-tar xvf $CWD/mysql-$VERSION.tar.?z* || exit 1
-cd mysql-$VERSION
+rm -rf ${PKGNAM}-$VERSION
+tar xvf $CWD/${PKGNAM}-$VERSION.tar.xz || exit 1
+cd ${PKGNAM}-$VERSION
if ls $CWD/*.diff.gz 1> /dev/null 2> /dev/null ; then
for patch in $CWD/*.diff.gz ; do
@@ -79,10 +93,9 @@ find . \
mkdir build
cd build
-CFLAGS="$SLKCFLAGS" \
-CXXFLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \
-CXX=gcc \
cmake \
+ -DCMAKE_C_FLAGS="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS="$SLKCFLAGS -felide-constructors -fno-exceptions -fno-rtti" \
-DBUILD_CONFIG=mysql_release \
-DFEATURE_SET="community" \
-DINSTALL_LAYOUT="RPM" \
@@ -93,129 +106,84 @@ cmake \
-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" \
+ -DINSTALL_DOCREADMEDIR="doc/${PKGNAM}-$VERSION" \
+ -DINSTALL_DOCDIR="doc/${PKGNAM}-$VERSION" \
-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_EMBEDDED_SERVER=${EMBEDDED} \
-DWITH_READLINE=ON \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
+ -DUSE_ARIA_FOR_TMP_TABLES=ON \
+ -DMANUFACTURER="Slackware" \
..
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
+if [ "$KEEPSTATIC" = "NO" ]; then
+ # Remove large static libraries:
+ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient.a
+ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqlclient_r.a
+ rm -f $PKG/usr/lib${LIBDIRSUFFIX}/libmysqld.a
+fi
-for i in include/atomic/*.h; do
- install -m 644 $i $PKG/usr/include/mysql/private/atomic/
-done
+if [ "$KEEPTESTS" = "NO" ]; then
+ # Do not include the test suite:
+ rm -rf $PKG/usr/mysql-test
+fi
-find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
- | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
+# 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
-# 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:
+# 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 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.
+# This is installed chmod 644 so that the server does not run by default.
zcat $CWD/rc.mysqld.gz > $PKG/etc/rc.d/rc.mysqld.new
+rm -rf $PKG/etc/init.d
-# Install script:
-mkdir -p $PKG/install
-zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
-cat $CWD/slack-desc > $PKG/install/slack-desc
+# Install mysqlaccess.conf
+install -m 644 scripts/mysqlaccess.conf $PKG/etc/mysqlaccess.conf.new
-# 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
+# Mark config files under /etc as .new
+mv $PKG/etc/my.cnf $PKG/etc/my.cnf.new
+mv $PKG/etc/logrotate.d/mysql $PKG/etc/logrotate.d/mysql.new
+for i in client mysql-clients server; do
+ mv $PKG/etc/my.cnf.d/$i.cnf $PKG/etc/my.cnf.d/$i.cnf.new
+done
-# Compress info files, if any:
-if [ -d $PKG/usr/info ]; then
- ( cd $PKG/usr/info
- rm -f dir
- gzip -9 *
- )
-fi
+find $PKG | xargs file | grep -e "executable" -e "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
+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/install
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
-# Build package:
cd $PKG
-/sbin/makepkg -l y -c n $TMP/mysql-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-${BUILD}${TAG}.txz
+
diff --git a/source/ap/mariadb/mirror.url b/source/ap/mariadb/mirror.url
new file mode 100644
index 000000000..675f23368
--- /dev/null
+++ b/source/ap/mariadb/mirror.url
@@ -0,0 +1 @@
+ftp://ftp.osuosl.org:/pub/mariadb/mariadb-5.5.32/kvm-tarbake-jaunty-x86/mariadb-5.5.32.tar.gz
diff --git a/source/ap/mysql/rc.mysqld b/source/ap/mariadb/rc.mysqld
index 300e6eb2d..7c42d03cc 100644
--- a/source/ap/mysql/rc.mysqld
+++ b/source/ap/mariadb/rc.mysqld
@@ -3,16 +3,16 @@
#
# Copyright 2003 Patrick J. Volkerding, Concord, CA
# Copyright 2003 Slackware Linux, Inc., Concord, CA
-# Copyright 2008 Patrick J. Volkerding, Sebeka, MN
+# Copyright 2008, 2013 Patrick J. Volkerding, Sebeka, MN, USA
#
# This program comes with NO WARRANTY, to the extent permitted by law.
# You may redistribute copies of this program under the terms of the
# GNU General Public License.
-# To start MySQL automatically at boot, be sure this script is executable:
+# To start MariaDB automatically at boot, be sure this script is executable:
# chmod 755 /etc/rc.d/rc.mysqld
-# Before you can run MySQL, you must have a database. To install an initial
+# Before you can run MariaDB, you must have a database. To install an initial
# database, do this as root:
#
# mysql_install_db --user=mysql
@@ -31,6 +31,9 @@
# uncommented to improve system security.
SKIP="--skip-networking"
+# Uncomment the next line to use Oracle's InnoDB plugin instead of the included XtraDB
+#INNODB="--ignore-builtin-innodb --plugin-load=innodb=ha_innodb.so"
+
# Start mysqld:
mysqld_start() {
if [ -x /usr/bin/mysqld_safe ]; then
@@ -41,7 +44,7 @@ mysqld_start() {
rm -f /var/run/mysql/mysql.pid
fi
fi
- /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP &
+ /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/run/mysql/mysql.pid $SKIP $INNODB &
fi
}
diff --git a/source/ap/mariadb/slack-desc b/source/ap/mariadb/slack-desc
new file mode 100644
index 000000000..867765fa4
--- /dev/null
+++ b/source/ap/mariadb/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------------------------------------------------------|
+mariadb: mariadb (Drop-in replacement for the MySQL Database Server)
+mariadb:
+mariadb: MariaDB is a backward compatible, drop-in replacement branch of the
+mariadb: MySQL(R) Database Server. It includes all major open source storage
+mariadb: engines, including the Aria storage engine.
+mariadb:
+mariadb: Homepage: http://mariadb.org/
+mariadb:
+mariadb:
+mariadb:
+mariadb:
diff --git a/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff b/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff
new file mode 100644
index 000000000..080d6276f
--- /dev/null
+++ b/source/ap/mc/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff
@@ -0,0 +1,87 @@
+Index: doc/man/mc.1.in
+===================================================================
+--- doc/man/mc.1.in (revision 6da546bcf3a09b7710bc3b69d38e736e3273c34b)
++++ doc/man/mc.1.in (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -173,9 +173,10 @@
+ .PP
+ If both paths are specified, the first path name is the directory to show
+-in the left panel; the second path name is the directory to be shown in
+-the right panel.
++in the active panel; the second path name is the directory to be shown in
++the other panel.
+ .PP
+ If one path is specified, the path name is the directory to show
+-in the active panel; current directory is shown in the passive panel.
++in the active panel; value of "other_dir" from panels.ini is the directory
++to be shown in the passive panel.
+ .PP
+ If no paths are specified, current directory is shown in the active panel;
+Index: doc/man/ru/mc.1.in
+===================================================================
+--- doc/man/ru/mc.1.in (revision 6da546bcf3a09b7710bc3b69d38e736e3273c34b)
++++ doc/man/ru/mc.1.in (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -150,11 +150,12 @@
+ .PP
+ Đ•Ñли Đ² ĐºĐ¾Đ¼Đ°Đ½Đ´Đ½Đ¾Đ¹ ÑÑ‚Ñ€Đ¾ĐºĐµ ÑƒĐºĐ°Đ·Đ°Đ½Ñ‹ Đ´Đ²Đ° ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³Đ°, Đ¿ĐµÑ€Đ²Ñ‹Đ¹ Đ±ÑƒĐ´ĐµÑ‚ Đ¾Ñ‚Đ¾Đ±Ñ€Đ°Đ¶Đ°Ñ‚ÑŒÑÑ
+-Đ² Đ»ĐµĐ²Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸, Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ \- Đ² Đ¿Ñ€Đ°Đ²Đ¾Đ¹.
++Đ² Đ°ĐºÑ‚Đ¸Đ²Đ½Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸, Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ \- Đ² Đ´Ñ€ÑƒĐ³Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸.
+ .PP
+ Đ•Ñли ÑƒĐºĐ°Đ·Đ°Đ½ Ñ‚Đ¾Đ»ÑŒĐºĐ¾ Đ¾Đ´Đ¸Đ½ ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³, Đ¾Đ½ Đ±ÑƒĐ´ĐµÑ‚ Đ¾Ñ‚Đ¾Đ±Ñ€Đ°Đ¶Ñ‘Đ½ Đ² Đ°ĐºÑ‚Đ¸Đ²Đ½Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸,
+-Đ²Đ¾ Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸ Đ±ÑƒĐ´ĐµÑ‚ Đ¾Ñ‚Đ¾Đ±Ñ€Đ°Đ¶Ñ‘Đ½ Ñ‚ĐµĐºÑƒÑ‰Đ¸Đ¹ ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³.
++Đ²Đ¾ Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸ Đ±ÑƒĐ´ĐµÑ‚ Đ¾Ñ‚Đ¾Đ±Ñ€Đ°Đ¶Ñ‘Đ½ ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³, ÑƒĐºĐ°Đ·Đ°Đ½Đ½Ñ‹Đ¹ Đ² Đ¿Đ°Ñ€Đ°Đ¼ĐµÑ‚Ñ€Đµ "other_dir"
++Đ² Ñ„Đ°Đ¹Đ»Đµ panels.ini.
+ .PP
+ Đ•Ñли ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³Đ¸ Đ½Đµ ÑƒĐºĐ°Đ·Đ°Đ½Ñ‹, Đ² Đ°ĐºÑ‚Đ¸Đ²Đ½Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸ Đ±ÑƒĐ´ĐµÑ‚ Đ¾Ñ‚Đ¾Đ±Ñ€Đ°Đ¶Ñ‘Đ½ Ñ‚ĐµĐºÑƒÑ‰Đ¸Đ¹ ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³,
+-Đ° Đ²Đ¾ Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸ \- ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³, ÑƒĐºĐ°Đ·Đ°Đ½Đ½Ñ‹Đ¹ Đ² Đ¿Đ°Ñ€Đ°Đ¼ĐµÑ‚Ñ€Đµ "other_dir" Đ² Ñ„Đ°Đ¹Đ»Đ° panels.ini.
++Đ° Đ²Đ¾ Đ²Ñ‚Đ¾Ñ€Đ¾Đ¹ Đ¿Đ°Đ½ĐµĐ»Đ¸ \- ĐºĐ°Ñ‚Đ°Đ»Đ¾Đ³, ÑƒĐºĐ°Đ·Đ°Đ½Đ½Ñ‹Đ¹ Đ² Đ¿Đ°Ñ€Đ°Đ¼ĐµÑ‚Ñ€Đµ "other_dir" Đ² Ñ„Đ°Đ¹Đ»Đµ panels.ini.
+ .\"NODE "Overview"
+ .SH "Đ“Đ»Đ°Đ²Đ½Đ¾Đµ Đ¾ĐºĐ½Đ¾ Đ¿Ñ€Đ¾Đ³Ñ€Đ°Đ¼Đ¼Ñ‹"
+Index: src/filemanager/midnight.c
+===================================================================
+--- src/filemanager/midnight.c (revision b451e8d13ddf89f1b1a00b1c2f240e4deaf8abe7)
++++ src/filemanager/midnight.c (revision 446748619b5cb77ea63360a81bb16cd2dd2caff7)
+@@ -585,13 +585,13 @@
+ * 'mc' (no arguments): mc_run_param0 == NULL, mc_run_param1 == NULL
+ * active panel uses current directory
+- * passive panel uses "other_dir" from ini
++ * passive panel uses "other_dir" from panels.ini
+ *
+ * 'mc dir1 dir2' (two arguments): mc_run_param0 != NULL, mc_run_param1 != NULL
+- * left panel uses mc_run_param0
+- * right panel uses mc_run_param1
++ * active panel uses mc_run_param0
++ * passive panel uses mc_run_param1
+ *
+ * 'mc dir1' (single argument): mc_run_param0 != NULL, mc_run_param1 == NULL
+- * active panel uses current directory
+- * passive panel uses mc_run_param0
++ * active panel uses mc_run_param0
++ * passive panel uses "other_dir" from panels.ini
+ */
+
+@@ -620,6 +620,6 @@
+ {
+ /* one argument */
+- current_dir = NULL; /* assume current dir */
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = saved_other_dir; /* from ini */
+ }
+ }
+@@ -641,12 +641,12 @@
+ {
+ /* two arguments */
+- current_dir = mc_run_param1;
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = mc_run_param1;
+ }
+ else /* mc_run_param0 != NULL && mc_run_param1 == NULL */
+ {
+ /* one argument */
+- current_dir = NULL; /* assume current dir */ ;
+- other_dir = (char *) mc_run_param0;
++ current_dir = (char *) mc_run_param0;
++ other_dir = saved_other_dir; /* from ini */
+ }
+ }
diff --git a/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff b/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff
new file mode 100644
index 000000000..bfb33b5c1
--- /dev/null
+++ b/source/ap/mc/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff
@@ -0,0 +1,66 @@
+Index: src/filemanager/file.c
+===================================================================
+--- src/filemanager/file.c (revision 0fe4734fd6efb169a4057b84a44c223108b957cb)
++++ src/filemanager/file.c (revision 54a5139eec69438f8771ffddcff96a2e72a197ff)
+@@ -1273,6 +1273,6 @@
+ /** Initialize variables for progress bars */
+ static FileProgressStatus
+-panel_operate_init_totals (FileOperation operation, const WPanel * panel, const char *source,
+- FileOpContext * ctx, filegui_dialog_type_t dialog_type)
++panel_operate_init_totals (const WPanel * panel, const char *source, FileOpContext * ctx,
++ filegui_dialog_type_t dialog_type)
+ {
+ FileProgressStatus status;
+@@ -1283,5 +1283,5 @@
+ #endif
+
+- if (operation != OP_MOVE && verbose && file_op_compute_totals)
++ if (verbose && file_op_compute_totals)
+ {
+ ComputeDirSizeUI *ui;
+@@ -2379,11 +2379,4 @@
+ if (ctx->erase_at_end)
+ {
+- /* remove files after move */
+- if (erase_list != NULL)
+- {
+- file_op_context_destroy_ui (ctx);
+- file_op_context_create_ui (ctx, FALSE, FILEGUI_DIALOG_DELETE_ITEM);
+- }
+-
+ while (erase_list != NULL && return_status != FILE_ABORT)
+ {
+@@ -2793,12 +2786,10 @@
+ if (operation == OP_DELETE)
+ dialog_type = FILEGUI_DIALOG_DELETE_ITEM;
++ else if (single_entry && S_ISDIR (selection (panel)->st.st_mode))
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
++ else if (single_entry || force_single)
++ dialog_type = FILEGUI_DIALOG_ONE_ITEM;
+ else
+- {
+- dialog_type = ((operation != OP_COPY) || single_entry || force_single)
+- ? FILEGUI_DIALOG_ONE_ITEM : FILEGUI_DIALOG_MULTI_ITEM;
+-
+- if (single_entry && (operation == OP_COPY) && S_ISDIR (selection (panel)->st.st_mode))
+- dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+- }
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+ }
+
+@@ -2845,6 +2836,6 @@
+ source_with_vpath = vfs_path_append_new (panel->cwd_vpath, source, (char *) NULL);
+ #endif /* WITH_FULL_PATHS */
+- if (panel_operate_init_totals
+- (operation, panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type)
++ == FILE_CONT)
+ {
+ if (operation == OP_DELETE)
+@@ -2937,5 +2928,5 @@
+ }
+
+- if (panel_operate_init_totals (operation, panel, NULL, ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, NULL, ctx, dialog_type) == FILE_CONT)
+ {
+ /* Loop for every file, perform the actual copy operation */
diff --git a/source/ap/mc/mc.SlackBuild b/source/ap/mc/mc.SlackBuild
index 21d997db6..bb78ba596 100755
--- a/source/ap/mc/mc.SlackBuild
+++ b/source/ap/mc/mc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2011, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -64,12 +64,15 @@ 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.image.sh.geeqie.diff.gz | patch -p1 --verbose || exit 1
+# Upstream bugfix for crash moving directories:
+zcat $CWD/changeset_54a5139eec69438f8771ffddcff96a2e72a197ff.diff.gz | patch -p0 --verbose || exit 1
+
+# Upstream fix for cmdline directory handling:
+zcat $CWD/changeset_446748619b5cb77ea63360a81bb16cd2dd2caff7.diff.gz | patch -p0 --verbose || exit 1
+
if [ ! -x ./configure ]; then
./autogen.sh
fi
diff --git a/source/ap/mc/mc.image.sh.geeqie.diff b/source/ap/mc/mc.image.sh.geeqie.diff
index 413807e92..8a7fe1c56 100644
--- a/source/ap/mc/mc.image.sh.geeqie.diff
+++ b/source/ap/mc/mc.image.sh.geeqie.diff
@@ -1,11 +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
+--- ./misc/ext.d/image.sh.orig 2013-05-29 01:53:42.379848005 -0500
++++ ./misc/ext.d/image.sh 2013-05-29 01:54:54.639853218 -0500
+@@ -39,7 +39,7 @@
+ ;;
+ *)
+ if [ -n "$DISPLAY" ]; then
- (gqview "${MC_EXT_FILENAME}" &)
+ (geeqie "${MC_EXT_FILENAME}" &)
- fi
- ;;
- esac
+ elif see >/dev/null 2>&1; then
+ (see "${MC_EXT_FILENAME}" &)
+ else
diff --git a/source/ap/mc/mc.save.file.diff b/source/ap/mc/mc.save.file.diff
deleted file mode 100644
index f54748c1b..000000000
--- a/source/ap/mc/mc.save.file.diff
+++ /dev/null
@@ -1,37 +0,0 @@
-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 35f6fc5f8..ffd131ea6 100755
--- a/source/ap/moc/moc.SlackBuild
+++ b/source/ap/moc/moc.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2011, 2013 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=moc
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/mysql/README.mysql-embedded b/source/ap/mysql/README.mysql-embedded
deleted file mode 100644
index 21b519e91..000000000
--- a/source/ap/mysql/README.mysql-embedded
+++ /dev/null
@@ -1,7 +0,0 @@
-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/mirror-url b/source/ap/mysql/mirror-url
deleted file mode 100644
index 33ff56b03..000000000
--- a/source/ap/mysql/mirror-url
+++ /dev/null
@@ -1 +0,0 @@
-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
deleted file mode 100755
index f5f178a9b..000000000
--- a/source/ap/mysql/mysql-embedded.SlackBuild
+++ /dev/null
@@ -1,221 +0,0 @@
-#!/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/slack-desc b/source/ap/mysql/slack-desc
deleted file mode 100644
index 29e1b8be4..000000000
--- a/source/ap/mysql/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------------------------------------------------------|
-mysql: mysql (SQL-based relational database server)
-mysql:
-mysql: MySQL is a fast, multi-threaded, multi-user, and robust SQL
-mysql: (Structured Query Language) database server. It comes with a nice API
-mysql: which makes it easy to integrate into other applications.
-mysql:
-mysql: The home page for MySQL is http://www.mysql.com/
-mysql:
-mysql:
-mysql:
-mysql:
diff --git a/source/ap/nano/nano.SlackBuild b/source/ap/nano/nano.SlackBuild
index 0f9e114c6..b1833597b 100755
--- a/source/ap/nano/nano.SlackBuild
+++ b/source/ap/nano/nano.SlackBuild
@@ -23,7 +23,7 @@
PKGNAM=nano
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
diff --git a/source/ap/normalize/normalize.SlackBuild b/source/ap/normalize/normalize.SlackBuild
index 8fe6ff13e..54fbe5f40 100755
--- a/source/ap/normalize/normalize.SlackBuild
+++ b/source/ap/normalize/normalize.SlackBuild
@@ -21,7 +21,7 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
VERSION=0.7.7
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/pm-utils/49bluetooth-generic b/source/ap/pm-utils/49bluetooth-generic
index e62790e77..1c88f198d 100644
--- a/source/ap/pm-utils/49bluetooth-generic
+++ b/source/ap/pm-utils/49bluetooth-generic
@@ -4,10 +4,14 @@
case "$1" in
hibernate|suspend)
- rfkill block bluetooth
+ if [ -d /sys/devices/virtual/misc/rfkill -a -x /usr/sbin/rfkill -a -x /etc/rc.d/rc.bluetooth ]; then
+ rfkill block bluetooth
+ fi
;;
thaw|resume)
- rfkill unblock bluetooth
+ if [ -d /sys/devices/virtual/misc/rfkill -a -x /usr/sbin/rfkill -a -x /etc/rc.d/rc.bluetooth ]; then
+ rfkill unblock bluetooth
+ fi
;;
*)
;;
diff --git a/source/ap/pm-utils/README.SLACKWARE b/source/ap/pm-utils/README.SLACKWARE
index 7f91f2282..1bbfbfe81 100644
--- a/source/ap/pm-utils/README.SLACKWARE
+++ b/source/ap/pm-utils/README.SLACKWARE
@@ -1,5 +1,5 @@
README.SLACKWARE
-20101229 - rworkman@slackware.com
+20130512 - rworkman@slackware.com
===============================================================================
PLEASE READ THIS ENTIRE FILE BEFORE REPORTING PROBLEMS OR ASKING FOR HELP!
@@ -29,7 +29,7 @@ it works at all.
Here's the short version of using suspend to disk:
Stanza in /etc/lilo.conf should look something like this:
- image = /boot/vmlinuz-generic-smp-2.6.35.10-smp
+ image = /boot/vmlinuz-generic-smp-3.8.13-smp
initrd = /boot/initrd.gz
append = "resume=/dev/sda2"
root = /dev/sda1
@@ -43,7 +43,7 @@ Stanza in /etc/lilo.conf should look something like this:
RESUMEDEV="/dev/sda2"
mkinitrd command invocation would be this:
- mkinitrd -c -k 2.6.35.10-smp -F
+ mkinitrd -c -k 3.8.13-smp -F
All of the above assumes at least a cursory understanding of what those
commands and parameters do. If it's not clear, don't attempt it on a
@@ -60,7 +60,11 @@ kde and xfce have one).
/* TODO: these links are now dead. That's mostly okay, because the vast
majority of the hardware out there these days doesn't require any quirks
- at all any more. Hopefully you won't be in the minority :-) */
+ at all any more. Hopefully you won't be in the minority :-)
+ Addendum: it's now been about three years since the above text was
+ written, and I've had zero reports of hardware requiring additional
+ quirks. Just FYI. :-)
+*/
If it doesn't work by default for you, consider having a look at
http://people.freedesktop.org/~hughsient/quirk/quirk-suspend-index.html
@@ -97,11 +101,10 @@ also available; none of these will cause the suspend to fail:
The default powersave hooks are in /usr/lib(64)/pm-utils/power.d/ -- if you
need to override any parameters set in those, you can do so with same-named
-files in /etc/pm/power.d/ (populated with only the parameters you wish to
-change). As an example, if you wanted to change the hdparm setting for
-your hard drive's power management setting: rather than copying the entire
-contents of /usr/lib(64)/pm-utils/power.d/harddrive to /etc/pm/power.d/ and
-editing the copy, you could place only these two lines:
+files in /etc/pm/power.d/ As an example, if you wanted to change the hdparm
+setting for your hard drive's power management setting, you would copy the
+entire file at /usr/lib(64)/pm-utils/power.d/harddrive to /etc/pm/power.d/
+and edit the copy to reflect your needs, e.g.:
DRIVE_POWER_MGMT_BAT=128 # edit value as desired
DRIVE_POWER_MGMT_AC=128 # edit value as desired
@@ -111,20 +114,8 @@ chmod +x) in order to be used by pm-utils; otherwise, they will be ignored.
==============================================================================
-One way to contribute to pm-utils indirectly is by writing and sending any
-needed hooks scripts to upstream projects; as an example, the hook that
-ships with wicd was contributed by me. Ideally, the pm-utils package should
-have a very minimum number of hooks shipped with it, as they should ship with
-the package to which the hook pertains; for example, the grub package would
-ship its own hook.
-
-==============================================================================
-
KNOWN ISSUES
-/* TODO: remove? I've gotten *zero* mails about either of these since
- we've been shipping pm-utils */
-
**** If you encounter either of these, mail rworkman@slackware.com ****
If your alsa drivers don't correctly save and restore state across a sleep /
diff --git a/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch b/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch
new file mode 100644
index 000000000..e09d07669
--- /dev/null
+++ b/source/ap/pm-utils/patches/add-in-kernel-suspend-to-both.patch
@@ -0,0 +1,32 @@
+diff --git a/pm/pm-functions.in b/pm/pm-functions.in
+--- a/pm/pm-functions.in
++++ b/pm/pm-functions.in
+@@ -316,8 +316,28 @@ if [ -z "$HIBERNATE_MODULE" ] && \
+ {
+ [ -n "${HIBERNATE_MODE}" ] && \
+ grep -qw "${HIBERNATE_MODE}" /sys/power/disk && \
++ HIBERNATE_MODE_SAVE=$(cat /sys/power/disk) && \
++ HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE##*[}" && \
++ HIBERNATE_MODE_SAVE="${HIBERNATE_MODE_SAVE%%]*}" && \
+ echo -n "${HIBERNATE_MODE}" > /sys/power/disk
+ echo -n "disk" > /sys/power/state
++ RET=$?
++ echo -n "$HIBERNATE_MODE_SAVE" > /sys/power/disk
++ return "$RET"
++ }
++fi
++
++# for kernels that support suspend to both (i.e. hybrid suspend)
++# since kernel 3.6
++if [ -z "$SUSPEND_HYBRID_MODULE" ] && \
++ [ -f /sys/power/disk ] && \
++ grep -q disk /sys/power/state && \
++ grep -q suspend /sys/power/disk; then
++ SUSPEND_HYBRID_MODULE="kernel"
++ do_suspend_hybrid()
++ {
++ HIBERNATE_MODE="suspend"
++ do_hibernate
+ }
+ fi
+
diff --git a/source/ap/pm-utils/fix-wrong-path-in-intel-audio-powersave.patch b/source/ap/pm-utils/patches/fix-wrong-path-in-intel-audio-powersave.patch
index 900397106..900397106 100644
--- a/source/ap/pm-utils/fix-wrong-path-in-intel-audio-powersave.patch
+++ b/source/ap/pm-utils/patches/fix-wrong-path-in-intel-audio-powersave.patch
diff --git a/source/ap/pm-utils/patches/hook-exit-code-log.patch b/source/ap/pm-utils/patches/hook-exit-code-log.patch
new file mode 100644
index 000000000..7eccd83b0
--- /dev/null
+++ b/source/ap/pm-utils/patches/hook-exit-code-log.patch
@@ -0,0 +1,19 @@
+diff -up pm-utils-1.4.1/pm/pm-functions.in.orig pm-utils-1.4.1/pm/pm-functions.in
+--- pm-utils-1.4.1/pm/pm-functions.in.orig 2011-08-22 14:52:58.976213050 +0200
++++ pm-utils-1.4.1/pm/pm-functions.in 2011-08-22 14:57:26.000000000 +0200
+@@ -195,11 +195,13 @@ hook_ok()
+ _run_hook() {
+ # $1 = hook to run
+ # rest of args passed to hook unchanged.
++ local hook_status
+ log "Running hook $*:"
+ hook_ok "$1" && "$@"
++ hook_status=$?
+ log ""
+- log -n "$*: "
+- hook_exit_status $? && LAST_HOOK="${1##*/}" || inhibit
++ log -n "$*: "
++ hook_exit_status $hook_status && LAST_HOOK="${1##*/}" || inhibit
+ }
+
+ if profiling; then
diff --git a/source/ap/pm-utils/patches/init-logfile-append.patch b/source/ap/pm-utils/patches/init-logfile-append.patch
new file mode 100644
index 000000000..079782630
--- /dev/null
+++ b/source/ap/pm-utils/patches/init-logfile-append.patch
@@ -0,0 +1,13 @@
+--- pm-utils-1.4.1/pm/pm-functions.in.old 2010-07-04 16:50:13.000000000 +0200
++++ pm-utils-1.4.1/pm/pm-functions.in 2010-12-07 16:48:39.555074652 +0100
+@@ -271,7 +271,9 @@
+ return 1
+ fi
+ export LOGGING=true
+- exec > "$1" 2>&1
++ rm -f "$1"
++ touch "$1"
++ exec >> "$1" 2>&1
+ }
+
+ check_suspend() { [ -n "$SUSPEND_MODULE" ]; }
diff --git a/source/ap/pm-utils/patches/log-line-spacing-fix.patch b/source/ap/pm-utils/patches/log-line-spacing-fix.patch
new file mode 100644
index 000000000..cf4fbe382
--- /dev/null
+++ b/source/ap/pm-utils/patches/log-line-spacing-fix.patch
@@ -0,0 +1,14 @@
+diff -up pm-utils-1.4.1/pm/pm-functions.in.orig pm-utils-1.4.1/pm/pm-functions.in
+--- pm-utils-1.4.1/pm/pm-functions.in.orig 2011-11-02 11:43:24.000000000 +0100
++++ pm-utils-1.4.1/pm/pm-functions.in 2011-11-02 11:43:49.987116603 +0100
+@@ -199,9 +199,9 @@ _run_hook() {
+ log "Running hook $*:"
+ hook_ok "$1" && "$@"
+ hook_status=$?
+- log ""
+ log -n "$*: "
+ hook_exit_status $hook_status && LAST_HOOK="${1##*/}" || inhibit
++ log ""
+ }
+
+ if profiling; then
diff --git a/source/ap/pm-utils/use_more_sane_harddrive_defaults.patch b/source/ap/pm-utils/patches/use_more_sane_harddrive_defaults.patch
index 3dcc81566..3dcc81566 100644
--- a/source/ap/pm-utils/use_more_sane_harddrive_defaults.patch
+++ b/source/ap/pm-utils/patches/use_more_sane_harddrive_defaults.patch
diff --git a/source/ap/pm-utils/pm-utils.SlackBuild b/source/ap/pm-utils/pm-utils.SlackBuild
index 1ae12666d..b8c82a8c8 100755
--- a/source/ap/pm-utils/pm-utils.SlackBuild
+++ b/source/ap/pm-utils/pm-utils.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for pm-utils
# Copyright 2008, 2009, 2010 Robby Workman, Northport, Alabama, USA
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2013 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=pm-utils
VERSION=$(echo ${PKGNAM}-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-5}
QUIRKS=20100619 # Version of the quirks database
@@ -72,8 +72,18 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-zcat $CWD/use_more_sane_harddrive_defaults.patch.gz | patch -p1 || exit 1
-zcat $CWD/fix-wrong-path-in-intel-audio-powersave.patch.gz | patch -p1 || exit 1
+zcat $CWD/patches/use_more_sane_harddrive_defaults.patch.gz | patch -p1 || exit 1
+zcat $CWD/patches/fix-wrong-path-in-intel-audio-powersave.patch.gz | patch -p1 || exit 1
+
+# Thanks to Fedora for these:
+# Use append instead of write for init_logfile
+zcat $CWD/patches/init-logfile-append.patch.gz | patch -p1 || exit 1
+# Fix hooks exit code logging
+zcat $CWD/patches/hook-exit-code-log.patch.gz | patch -p1 || exit 1
+# Fix line spacing in logs to be easier to read
+zcat $CWD/patches/log-line-spacing-fix.patch.gz | patch -p1 || exit 1
+# Add support for in-kernel (from kernel 3.6) suspend to both
+zcat $CWD/patches/add-in-kernel-suspend-to-both.patch.gz | patch -p1 || exit 1
CFLAGS="$SLKCFLAGS" \
./configure \
@@ -101,26 +111,29 @@ chown -R root:root $PKG/$PM_UTILS_LIBDIR/video-quirks
chmod 0755 49bluetooth-generic
)
-# Remove the NetworkManager hook since we don't ship it;
-# it should be included with NetworkManager
-rm -f $PKG/usr/lib64/pm-utils/sleep.d/55NetworkManager
+# Remove the NetworkManager hook - recent NM listens to upower events
+# directly to know when the system is suspending/waking
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/sleep.d/55NetworkManager
+
+# Remove hooks which have shown to not reduce, or even increase power
+# usage (thanks to Debian for this, and to Marin Glibic for the referral)
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/power.d/journal-commit
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/power.d/readahead
+
+# HAL is gone, so this should be too:
+rm -f $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/power.d/hal-cd-polling
+
+# Actually, it is a bad thing(tm) for pm-utils to go messing around with all
+# of the user's settings with the hooks in the power.d directory. Anything
+# that wasn't already taken out back behind the shed should be disabled by
+# default:
+chmod 644 $PKG/usr/lib${LIBDIRSUFFIX}/pm-utils/power.d/*
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
-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/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 \
diff --git a/source/ap/powertop/powertop.SlackBuild b/source/ap/powertop/powertop.SlackBuild
index f4f4beaed..e51a09d32 100755
--- a/source/ap/powertop/powertop.SlackBuild
+++ b/source/ap/powertop/powertop.SlackBuild
@@ -27,7 +27,7 @@
PKGNAM=powertop
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/ap/powertop/slack-desc b/source/ap/powertop/slack-desc
index 3bf3aa5da..be30b4781 100644
--- a/source/ap/powertop/slack-desc
+++ b/source/ap/powertop/slack-desc
@@ -15,5 +15,5 @@ powertop: slurping up your battery time. PowerTOP updates its display
powertop: frequently so that you can directly see the impact of any changes you
powertop: are making.
powertop:
-powertop: Homepage: http://www.linuxpowertop.org
+powertop: Homepage: http://01.org/powertop/
powertop:
diff --git a/source/ap/rexima/slack-desc b/source/ap/rexima/slack-desc
deleted file mode 100644
index 8a8adabcc..000000000
--- a/source/ap/rexima/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------------------------------------------------------|
-rexima: rexima (console audio mixer)
-rexima:
-rexima: Rexima is a curses-based interactive audio mixer. It can also be used
-rexima: from the command-line. It's designed to be small, fast, and
-rexima: straightforward. It also offers a command line mode so you can script
-rexima: mixer settings.
-rexima:
-rexima: Rexima was written by Russell Marks.
-rexima:
-rexima:
-rexima:
diff --git a/source/ap/screen/screen.SlackBuild b/source/ap/screen/screen.SlackBuild
index 29ad8c694..b182233c3 100755
--- a/source/ap/screen/screen.SlackBuild
+++ b/source/ap/screen/screen.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010, 2011 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2011, 2013 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:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -58,6 +58,9 @@ 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
+# Patch for newer glibc that might return NULL from crypt():
+zcat $CWD/screen.crypt.diff.gz | patch -p2 --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/screen/screen.crypt.diff b/source/ap/screen/screen.crypt.diff
new file mode 100644
index 000000000..2c80efbbc
--- /dev/null
+++ b/source/ap/screen/screen.crypt.diff
@@ -0,0 +1,126 @@
+From cbaa666d4f21988164068a38ac915f8b4f3c4da3 Mon Sep 17 00:00:00 2001
+From: Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
+Date: Sat, 15 Sep 2012 03:40:23 +0000
+Subject: Guard against NULL returns from crypt().
+
+crypt() can return NULL on an error. Make sure these nulls are
+handled properly instead of crashing. The fix is thanks to a patch
+from Lukás Nykrưn <lnykryn@redhat.com>.
+---
+diff --git a/src/acls.c b/src/acls.c
+index e728bb8..2f8c809 100644
+--- a/src/acls.c
++++ b/src/acls.c
+@@ -455,6 +455,16 @@ int recursive;
+ return gp; /* *gp is NULL */
+ }
+
++static int
++PasswordMatches(pw, password)
++const char *pw, *password;
++{
++ if (!*password)
++ return 0;
++ char *buf = crypt(pw, password);
++ return (buf && !strcmp(buf, password));
++}
++
+ /*
+ * Returns nonzero if failed or already linked.
+ * Both users are created on demand.
+@@ -544,8 +554,7 @@ char *name, *pw1, *pw2;
+
+ if (pw2 && *pw2 && *pw2 != '\377') /* provided a system password */
+ {
+- if (!*pass || /* but needed none */
+- strcmp(crypt(pw2, pass), pass))
++ if (!PasswordMatches(pw2, pass))
+ {
+ debug("System password mismatch\n");
+ sorry++;
+@@ -554,11 +563,10 @@ char *name, *pw1, *pw2;
+ else /* no pasword provided */
+ if (*pass) /* but need one */
+ sorry++;
+-#endif
++#endif /* CHECKLOGIN */
+ if (pw1 && *pw1 && *pw1 != '\377') /* provided a screen password */
+ {
+- if (!*u->u_password || /* but needed none */
+- strcmp(crypt(pw1, u->u_password), u->u_password))
++ if (!PasswordMatches(pw1, u->u_password))
+ {
+ debug("screen password mismatch\n");
+ sorry++;
+diff --git a/src/attacher.c b/src/attacher.c
+index 370d594..4e496be 100644
+--- a/src/attacher.c
++++ b/src/attacher.c
+@@ -882,6 +882,12 @@ screen_builtin_lck()
+ salt[1] = 'A' + (int)((time(0) >> 6) % 26);
+ salt[2] = 0;
+ pass = crypt(mypass, salt);
++ if (!pass)
++ {
++ fprintf(stderr, "crypt() error.\007\n");
++ sleep(2);
++ return;
++ }
+ pass = ppp->pw_passwd = SaveStr(pass);
+ }
+ #endif
+@@ -924,7 +930,8 @@ screen_builtin_lck()
+ if (pam_error == PAM_SUCCESS)
+ break;
+ #else
+- if (!strncmp(crypt(cp1, pass), pass, strlen(pass)))
++ char *buf = crypt(cp1, pass);
++ if (buf && !strncmp(buf, pass, strlen(pass)))
+ break;
+ #endif
+ debug("screen_builtin_lck: NO!!!!!\n");
+diff --git a/src/process.c b/src/process.c
+index bdf9355..30497a3 100644
+--- a/src/process.c
++++ b/src/process.c
+@@ -6360,6 +6360,12 @@ char *data;
+ buf = crypt(u->u_password, salt);
+ bzero(u->u_password, strlen(u->u_password));
+ free((char *)u->u_password);
++ if (!buf)
++ {
++ Msg(0, "[ crypt() error - no secure ]");
++ u->u_password = NullStr;
++ return;
++ }
+ u->u_password = SaveStr(buf);
+ bzero(buf, strlen(buf));
+ #ifdef COPY_PASTE
+diff --git a/src/socket.c b/src/socket.c
+index 8f9a315..a7755a4 100644
+--- a/src/socket.c
++++ b/src/socket.c
+@@ -1565,13 +1565,18 @@ int ilen;
+ c = *(unsigned char *)ibuf++;
+ if (c == '\r' || c == '\n')
+ {
++ char *buf = NULL;
+ up = D_user->u_password;
+ pwdata->buf[l] = 0;
+- if (strncmp(crypt(pwdata->buf, up), up, strlen(up)))
++ buf = crypt(pwdata->buf, up);
++ if (!buf || strncmp(buf, up, strlen(up)))
+ {
+ /* uh oh, user failed */
+ bzero(pwdata->buf, sizeof(pwdata->buf));
+- AddStr("\r\nPassword incorrect.\r\n");
++ if (!buf)
++ AddStr("\r\ncrypt() failed.\r\n");
++ else
++ AddStr("\r\nPassword incorrect.\r\n");
+ D_processinputdata = 0; /* otherwise freed by FreeDis */
+ FreeDisplay();
+ Msg(0, "Illegal reattach attempt from terminal %s.", pwdata->m.m_tty);
+--
+cgit v0.9.0.2
+
diff --git a/source/ap/sqlite/sqlite.SlackBuild b/source/ap/sqlite/sqlite.SlackBuild
index bbb03bd39..e32844448 100755
--- a/source/ap/sqlite/sqlite.SlackBuild
+++ b/source/ap/sqlite/sqlite.SlackBuild
@@ -26,6 +26,10 @@
PKGNAM=sqlite
VERSION=${VERSION:-$(echo $PKGNAM-src-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
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))
+PATCHLEVEL=$(printf %d $(echo $VERSION | cut -b 6,7))
+if [ ! "$PATCHLEVEL" = "0" ]; then
+ OLD_STYLE=${OLD_STYLE}.${PATCHLEVEL}
+fi
BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j7 "}
@@ -64,7 +68,7 @@ SLKCFLAGS="$SLKCFLAGS -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS=1 -D
rm -rf $PKG
mkdir -p $TMP $PKG
cd $TMP
-rm -rf $PKGNAM-$VERSION
+rm -rf $PKGNAM-src-$VERSION
tar xvf $CWD/$PKGNAM-src-$VERSION.tar.?z* || exit 1
cd $PKGNAM-src-$VERSION || exit 1
chown -R root.root .
diff --git a/source/ap/terminus-font/doinst.sh b/source/ap/terminus-font/doinst.sh
new file mode 100644
index 000000000..18d125130
--- /dev/null
+++ b/source/ap/terminus-font/doinst.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+# Update the X font indexes:
+if [ -x /usr/bin/mkfontdir -o -x /usr/X11R6/bin/mkfontdir ]; then
+ ( cd /usr/share/fonts/misc
+ mkfontdir .
+ )
+fi
+if [ -x /usr/bin/fc-cache ]; then
+ /usr/bin/fc-cache -f
+fi
diff --git a/source/ap/terminus-font/slack-desc b/source/ap/terminus-font/slack-desc
new file mode 100644
index 000000000..c168bf532
--- /dev/null
+++ b/source/ap/terminus-font/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------------------------------------------------------|
+terminus-font: terminus-font (a clean fixed width font)
+terminus-font:
+terminus-font: Terminus Font is designed for long (8 and more hours per day)
+terminus-font: work with computers. It is a good choice if you run a Unicode-enabled
+terminus-font: console but the package also contains a non-scalable Unicode-enabled
+terminus-font: font for use in X terminal applications.
+terminus-font:
+terminus-font:
+terminus-font:
+terminus-font: terminus-font home: http://terminus-font.sourceforge.net
+terminus-font:
diff --git a/source/ap/terminus-font/terminus-font.Makefile.paths.diff b/source/ap/terminus-font/terminus-font.Makefile.paths.diff
new file mode 100644
index 000000000..aeee814ef
--- /dev/null
+++ b/source/ap/terminus-font/terminus-font.Makefile.paths.diff
@@ -0,0 +1,15 @@
+--- ./Makefile.orig 2011-07-12 11:13:12.000000000 -0500
++++ ./Makefile 2013-02-19 14:37:14.604914231 -0600
+@@ -81,9 +81,9 @@
+ n12: $(PCF_N12)
+
+ DESTDIR =
+-prefix = /usr/local
+-psfdir = $(prefix)/share/consolefonts
+-x11dir = $(prefix)/share/fonts/terminus
++prefix = /usr
++psfdir = $(prefix)/share/kbd/consolefonts
++x11dir = $(prefix)/share/fonts/misc
+
+ install: $(PSF) $(PCF)
+ mkdir -p $(DESTDIR)$(psfdir)
diff --git a/source/ap/rexima/rexima.SlackBuild b/source/ap/terminus-font/terminus-font.SlackBuild
index 05133e7cd..10498b59a 100755
--- a/source/ap/rexima/rexima.SlackBuild
+++ b/source/ap/terminus-font/terminus-font.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -21,8 +21,9 @@
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VERSION=1.4
-BUILD=${BUILD:-2}
+PKGNAM=terminus-font
+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,15 +37,31 @@ fi
CWD=$(pwd)
TMP=${TMP:-/tmp}
-PKG=$TMP/package-rexima
+PKG=$TMP/package-$PKGNAM
-rm -rf $PKG
-mkdir -p $TMP $PKG
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+rm -rf $PKG
+mkdir -p $PKG
cd $TMP
-rm -rf rexima-$VERSION
-tar xvf $CWD/rexima-$VERSION.tar.gz || exit 1
-cd rexima-$VERSION || exit 1
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1
+cd $PKGNAM-$VERSION
+
+zcat $CWD/terminus-font.Makefile.paths.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 \) \
@@ -53,25 +70,17 @@ find . \
-exec chmod 644 {} \;
make || exit 1
+make install install-uni install-ref DESTDIR=$PKG || exit 1
-strip rexima
-mkdir -p $PKG/usr/bin
-cat rexima > $PKG/usr/bin/rexima
-chmod 755 $PKG/usr/bin/rexima
-
-mkdir -p $PKG/usr/man/man1
-cat rexima.1 | gzip -9c > $PKG/usr/man/man1/rexima.1.gz
-
-mkdir -p $PKG/usr/doc/rexima-$VERSION
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
cp -a \
- COPYING README ChangeLog NEWS \
- $PKG/usr/doc/rexima-$VERSION
-chmod 644 $PKG/usr/doc/rexima-$VERSION/*
+ AUTHORS CHANGES COPYING* INSTALL NEWS OFL.TXT README* \
+ $PKG/usr/doc/$PKGNAM-$VERSION
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
-# Build the package:
cd $PKG
-/sbin/makepkg -l y -c n $TMP/rexima-$VERSION-$ARCH-$BUILD.txz
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-noarch-$BUILD.txz
diff --git a/source/ap/tmux/slack-desc b/source/ap/tmux/slack-desc
new file mode 100644
index 000000000..f04df6c20
--- /dev/null
+++ b/source/ap/tmux/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------------------------------------------------------|
+tmux: tmux (terminal multiplexer)
+tmux:
+tmux: tmux is a terminal multiplexer. It enables a number of terminals
+tmux: (or windows) to be accessed and controlled from a single terminal.
+tmux: tmux is intended to be a simple, modern, BSD-licensed alternative to
+tmux: programs such as GNU screen.
+tmux:
+tmux: Homepage: http://tmux.sourceforge.net
+tmux:
+tmux:
+tmux:
diff --git a/source/ap/tmux/tmux.SlackBuild b/source/ap/tmux/tmux.SlackBuild
new file mode 100755
index 000000000..81974f5da
--- /dev/null
+++ b/source/ap/tmux/tmux.SlackBuild
@@ -0,0 +1,149 @@
+#!/bin/sh
+
+# Copyright 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+PKGNAM=tmux
+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
+ case "$(uname -m)" in
+ i?86) ARCH=i486 ;;
+ arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7lh ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$(uname -m) ;;
+ esac
+ export ARCH
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+if [ "$ARCH" = "i386" ]; then
+ SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "s390" ]; then
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+elif [ "$ARCH" = "armv7hl" ]; then
+ SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
+ LIBDIRSUFFIX=""
+else
+ SLKCFLAGS="-O2"
+ 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.?z* || exit 1
+cd $PKGNAM-$VERSION
+
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Configure:
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --mandir=/usr/man \
+ --infodir=/usr/info \
+ --disable-static \
+ --build=$ARCH-slackware-linux
+
+# Build and install:
+make $NUMJOBS || 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
+)
+
+# Add a documentation directory:
+mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
+cp -a \
+ FAQ README TODO examples \
+ $PKG/usr/doc/${PKGNAM}-$VERSION
+
+# Compress and if needed symlink the man pages:
+if [ -d $PKG/usr/man ]; then
+ ( cd $PKG/usr/man
+ for manpagedir in $(find . -type d -name "man*") ; do
+ ( cd $manpagedir
+ for eachpage in $( find . -type l -maxdepth 1) ; do
+ ln -s $( readlink $eachpage ).gz $eachpage.gz
+ rm $eachpage
+ done
+ gzip -9 *.?
+ )
+ done
+ )
+fi
+
+# Compress info files, if any:
+if [ -d $PKG/usr/info ]; then
+ ( cd $PKG/usr/info
+ rm -f dir
+ gzip -9 *
+ )
+fi
+
+# If there's a CHANGES file, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r CHANGES ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat CHANGES | head -n 1000 > $DOCSDIR/CHANGES
+ touch -r CHANGES $DOCSDIR/CHANGES
+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/ap/vim/patches/7.3.001 b/source/ap/vim/patches/7.3.001
deleted file mode 100644
index 470fec6bb..000000000
--- a/source/ap/vim/patches/7.3.001
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.001
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.001
-Problem: When editing "src/main.c" and 'path' set to "./proto",
- ":find e<C-D" shows ./proto/eval.pro instead of eval.pro.
-Solution: Check for path separator when comparing names. (Nazri Ramliy)
-Files: src/misc1.c
-
-
-*** ../vim-7.3.000/src/misc1.c 2010-08-15 21:57:27.000000000 +0200
---- src/misc1.c 2010-08-16 20:43:25.000000000 +0200
-***************
-*** 9317,9323 ****
- continue; /* it's different when it's shorter */
-
- rival = other_paths[j] + other_path_len - candidate_len;
-! if (fnamecmp(maybe_unique, rival) == 0)
- return FALSE; /* match */
- }
-
---- 9317,9324 ----
- continue; /* it's different when it's shorter */
-
- rival = other_paths[j] + other_path_len - candidate_len;
-! if (fnamecmp(maybe_unique, rival) == 0
-! && (rival == other_paths[j] || vim_ispathsep(*(rival - 1))))
- return FALSE; /* match */
- }
-
-*** ../vim-7.3.000/src/version.c 2010-08-15 21:57:25.000000000 +0200
---- src/version.c 2010-08-16 20:53:09.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 1,
- /**/
-
-
---
-From "know your smileys":
- (:-# Said something he shouldn't have
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.002 b/source/ap/vim/patches/7.3.002
deleted file mode 100644
index 012fed2f9..000000000
--- a/source/ap/vim/patches/7.3.002
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.002
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.002
-Problem: ":find" completion doesn't work when halfway an environment
- variable. (Dominique Pelle)
-Solution: Only use in-path completion when expanding file names. (Nazri
- Ramliy)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.001/src/ex_docmd.c 2010-08-15 21:57:27.000000000 +0200
---- src/ex_docmd.c 2010-08-16 20:51:22.000000000 +0200
-***************
-*** 3465,3471 ****
- case CMD_find:
- case CMD_sfind:
- case CMD_tabfind:
-! xp->xp_context = EXPAND_FILES_IN_PATH;
- break;
- case CMD_cd:
- case CMD_chdir:
---- 3465,3472 ----
- case CMD_find:
- case CMD_sfind:
- case CMD_tabfind:
-! if (xp->xp_context == EXPAND_FILES)
-! xp->xp_context = EXPAND_FILES_IN_PATH;
- break;
- case CMD_cd:
- case CMD_chdir:
-*** ../vim-7.3.001/src/version.c 2010-08-16 21:46:12.000000000 +0200
---- src/version.c 2010-08-16 22:33:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 2,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.003 b/source/ap/vim/patches/7.3.003
deleted file mode 100644
index 8bc9f4710..000000000
--- a/source/ap/vim/patches/7.3.003
+++ /dev/null
@@ -1,45 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.003
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.1.003
-Problem: Crash with specific BufWritePost autocmd. (Peter Odding)
-Solution: Don't free the quickfix title twice. (Lech Lorens)
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.002/src/quickfix.c 2010-08-15 21:57:26.000000000 +0200
---- src/quickfix.c 2010-08-16 21:15:44.000000000 +0200
-***************
-*** 2125,2130 ****
---- 2125,2131 ----
- --qi->qf_lists[idx].qf_count;
- }
- vim_free(qi->qf_lists[idx].qf_title);
-+ qi->qf_lists[idx].qf_title = NULL;
- }
-
- /*
-*** ../vim-7.3.002/src/version.c 2010-08-16 22:33:55.000000000 +0200
---- src/version.c 2010-08-17 20:23:05.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 3,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.004 b/source/ap/vim/patches/7.3.004
deleted file mode 100644
index 9c6318a04..000000000
--- a/source/ap/vim/patches/7.3.004
+++ /dev/null
@@ -1,44 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.004
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.004
-Problem: Crash when using very long regexp. (Peter Odding)
-Solution: Reset reg_toolong. (Carlo Teubner)
-Files: src/regexp.c
-
-
-*** ../vim-7.3.003/src/regexp.c 2010-08-15 21:57:29.000000000 +0200
---- src/regexp.c 2010-09-14 10:51:22.000000000 +0200
-***************
-*** 3538,3543 ****
---- 3538,3544 ----
-
- regline = line;
- reglnum = 0;
-+ reg_toolong = FALSE;
-
- /* Simplest case: Anchored match need be tried only once. */
- if (prog->reganch)
-*** ../vim-7.3.003/src/version.c 2010-08-17 20:23:18.000000000 +0200
---- src/version.c 2010-09-14 10:52:09.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 4,
- /**/
-
---
-I have a watch cat! Just break in and she'll watch.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.005 b/source/ap/vim/patches/7.3.005
deleted file mode 100644
index df2026d2b..000000000
--- a/source/ap/vim/patches/7.3.005
+++ /dev/null
@@ -1,96 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.005
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.005
-Problem: Crash when using undotree(). (Christian Brabandt)
-Solution: Increase the list reference count. Add a test for undotree()
- (Lech Lorens)
-Files: src/eval.c, src/testdir/Makefile, src/testdir/test61.in
-
-
-*** ../vim-7.3.004/src/eval.c 2010-08-15 21:57:26.000000000 +0200
---- src/eval.c 2010-09-14 12:43:04.000000000 +0200
-***************
-*** 7075,7081 ****
- }
-
- /*
-! * Add a list entry to dictionary "d".
- * Returns FAIL when out of memory and when key already exists.
- */
- int
---- 7075,7081 ----
- }
-
- /*
-! * Add a list entry to dictionary "d".
- * Returns FAIL when out of memory and when key already exists.
- */
- int
-***************
-*** 7097,7102 ****
---- 7097,7103 ----
- dictitem_free(item);
- return FAIL;
- }
-+ ++list->lv_refcount;
- return OK;
- }
-
-*** ../vim-7.3.004/src/testdir/Makefile 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Makefile 2010-09-14 12:38:56.000000000 +0200
-***************
-*** 44,50 ****
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.pid* viminfo
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
---- 44,50 ----
- $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG)
-
- clean:
-! -rm -rf *.out *.failed *.rej *.orig test.log tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* valgrind.* viminfo
-
- test1.out: test1.in
- -rm -f $*.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo
-*** ../vim-7.3.004/src/testdir/test61.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test61.in 2010-09-14 12:38:56.000000000 +0200
-***************
-*** 4,9 ****
---- 4,13 ----
- Also tests :earlier and :later.
-
- STARTTEST
-+ :echo undotree().entries
-+ ENDTEST
-+
-+ STARTTEST
- :" Delete three characters and undo
- Gx:set ul=100
- x:set ul=100
-*** ../vim-7.3.004/src/version.c 2010-09-14 10:55:24.000000000 +0200
---- src/version.c 2010-09-14 12:39:59.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 5,
- /**/
-
---
-I'm writing a book. I've got the page numbers done.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.006 b/source/ap/vim/patches/7.3.006
deleted file mode 100644
index 41eb75671..000000000
--- a/source/ap/vim/patches/7.3.006
+++ /dev/null
@@ -1,117 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.006
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.006
-Problem: Can't build some multi-byte code with C89.
-Solution: Move code to after declarations. (Joachim Schmitz)
-Files: src/mbyte.c, src/spell.c
-
-
-*** ../vim-7.3.005/src/mbyte.c 2010-08-15 21:57:28.000000000 +0200
---- src/mbyte.c 2010-09-18 13:32:40.000000000 +0200
-***************
-*** 5167,5182 ****
- void
- xim_set_preedit()
- {
-- if (xic == NULL)
-- return;
--
-- xim_set_focus(TRUE);
--
- XVaNestedList attr_list;
- XRectangle spot_area;
- XPoint over_spot;
- int line_space;
-
- if (!xim_has_focus)
- {
- /* hide XIM cursor */
---- 5167,5182 ----
- void
- xim_set_preedit()
- {
- XVaNestedList attr_list;
- XRectangle spot_area;
- XPoint over_spot;
- int line_space;
-
-+ if (xic == NULL)
-+ return;
-+
-+ xim_set_focus(TRUE);
-+
- if (!xim_has_focus)
- {
- /* hide XIM cursor */
-***************
-*** 5554,5565 ****
- void
- xim_set_status_area()
- {
-- if (xic == NULL)
-- return;
--
- XVaNestedList preedit_list = 0, status_list = 0, list = 0;
- XRectangle pre_area, status_area;
-
- if (input_style & XIMStatusArea)
- {
- if (input_style & XIMPreeditArea)
---- 5554,5565 ----
- void
- xim_set_status_area()
- {
- XVaNestedList preedit_list = 0, status_list = 0, list = 0;
- XRectangle pre_area, status_area;
-
-+ if (xic == NULL)
-+ return;
-+
- if (input_style & XIMStatusArea)
- {
- if (input_style & XIMPreeditArea)
-*** ../vim-7.3.005/src/spell.c 2010-08-15 21:57:32.000000000 +0200
---- src/spell.c 2010-09-18 13:34:11.000000000 +0200
-***************
-*** 4679,4685 ****
- buf_T *buf;
- char_u fname[MAXPATHL];
-
-! /* Go through all buffers and handle 'spelllang'. */ //<VN>
- for (buf = firstbuf; buf != NULL; buf = buf->b_next)
- ga_clear(&buf->b_s.b_langp);
-
---- 4679,4685 ----
- buf_T *buf;
- char_u fname[MAXPATHL];
-
-! /* Go through all buffers and handle 'spelllang'. <VN> */
- for (buf = firstbuf; buf != NULL; buf = buf->b_next)
- ga_clear(&buf->b_s.b_langp);
-
-*** ../vim-7.3.005/src/version.c 2010-09-14 12:47:30.000000000 +0200
---- src/version.c 2010-09-18 13:34:23.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 6,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-163. You go outside for the fresh air (at -30 degrees) but open the
- window first to hear new mail arrive.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.007 b/source/ap/vim/patches/7.3.007
deleted file mode 100644
index 30b3745ca..000000000
--- a/source/ap/vim/patches/7.3.007
+++ /dev/null
@@ -1,187 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.007
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.007
-Problem: Python code defines global "buffer". Re-implements a grow-array.
-Solution: Use a grow-array instead of coding the same functionality. Handle
- out-of-memory situation properly.
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.006/src/if_py_both.h 2010-08-15 21:57:27.000000000 +0200
---- src/if_py_both.h 2010-09-21 16:00:54.000000000 +0200
-***************
-*** 34,39 ****
---- 34,40 ----
- static PyObject *OutputWrite(PyObject *, PyObject *);
- static PyObject *OutputWritelines(PyObject *, PyObject *);
-
-+ /* Function to write a line, points to either msg() or emsg(). */
- typedef void (*writefn)(char_u *);
- static void writer(writefn fn, char_u *str, PyInt n);
-
-***************
-*** 122,173 ****
- return Py_None;
- }
-
-! static char_u *buffer = NULL;
-! static PyInt buffer_len = 0;
-! static PyInt buffer_size = 0;
-!
- static writefn old_fn = NULL;
-
- static void
-- buffer_ensure(PyInt n)
-- {
-- PyInt new_size;
-- char_u *new_buffer;
--
-- if (n < buffer_size)
-- return;
--
-- new_size = buffer_size;
-- while (new_size < n)
-- new_size += 80;
--
-- if (new_size != buffer_size)
-- {
-- new_buffer = alloc((unsigned)new_size);
-- if (new_buffer == NULL)
-- return;
--
-- if (buffer)
-- {
-- memcpy(new_buffer, buffer, buffer_len);
-- vim_free(buffer);
-- }
--
-- buffer = new_buffer;
-- buffer_size = new_size;
-- }
-- }
--
-- static void
- PythonIO_Flush(void)
- {
-! if (old_fn && buffer_len)
- {
-! buffer[buffer_len] = 0;
-! old_fn(buffer);
- }
-!
-! buffer_len = 0;
- }
-
- static void
---- 123,141 ----
- return Py_None;
- }
-
-! /* Buffer IO, we write one whole line at a time. */
-! static garray_T io_ga = {0, 0, 1, 80, NULL};
- static writefn old_fn = NULL;
-
- static void
- PythonIO_Flush(void)
- {
-! if (old_fn != NULL && io_ga.ga_len > 0)
- {
-! ((char_u *)io_ga.ga_data)[io_ga.ga_len] = NUL;
-! old_fn((char_u *)io_ga.ga_data);
- }
-! io_ga.ga_len = 0;
- }
-
- static void
-***************
-*** 175,204 ****
- {
- char_u *ptr;
-
-! if (fn != old_fn && old_fn != NULL)
- PythonIO_Flush();
--
- old_fn = fn;
-
- while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
- {
- PyInt len = ptr - str;
-
-! buffer_ensure(buffer_len + len + 1);
-
-! memcpy(buffer + buffer_len, str, len);
-! buffer_len += len;
-! buffer[buffer_len] = 0;
-! fn(buffer);
- str = ptr + 1;
- n -= len + 1;
-! buffer_len = 0;
- }
-
-! /* Put the remaining text into the buffer for later printing */
-! buffer_ensure(buffer_len + n + 1);
-! memcpy(buffer + buffer_len, str, n);
-! buffer_len += n;
- }
-
- /***************/
---- 143,176 ----
- {
- char_u *ptr;
-
-! /* Flush when switching output function. */
-! if (fn != old_fn)
- PythonIO_Flush();
- old_fn = fn;
-
-+ /* Write each NL separated line. Text after the last NL is kept for
-+ * writing later. */
- while (n > 0 && (ptr = memchr(str, '\n', n)) != NULL)
- {
- PyInt len = ptr - str;
-
-! if (ga_grow(&io_ga, len + 1) == FAIL)
-! break;
-
-! mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
-! ((char *)io_ga.ga_data)[io_ga.ga_len + len] = NUL;
-! fn((char_u *)io_ga.ga_data);
- str = ptr + 1;
- n -= len + 1;
-! io_ga.ga_len = 0;
- }
-
-! /* Put the remaining text into io_ga for later printing. */
-! if (n > 0 && ga_grow(&io_ga, n + 1) == OK)
-! {
-! mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
-! io_ga.ga_len += n;
-! }
- }
-
- /***************/
-*** ../vim-7.3.006/src/version.c 2010-09-18 13:36:41.000000000 +0200
---- src/version.c 2010-09-21 16:49:13.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 7,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-180. You maintain more than six e-mail addresses.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.008 b/source/ap/vim/patches/7.3.008
deleted file mode 100644
index 5df7daa8e..000000000
--- a/source/ap/vim/patches/7.3.008
+++ /dev/null
@@ -1,439 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.008
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.008
-Problem: 'cursorbind' is kept in places where 'scrollbind' is reset.
-Solution: Reset 'cursorbind'.
-Files: src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c,
- src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h,
- src/quickfix.c, src/search.c, src/tag.c, src/window.c
-
-
-*** ../vim-7.3.007/src/buffer.c 2010-08-15 21:57:32.000000000 +0200
---- src/buffer.c 2010-09-21 16:54:19.000000000 +0200
-***************
-*** 1288,1296 ****
- /* Go to the other buffer. */
- set_curbuf(buf, action);
-
-! #if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
- if (action == DOBUF_SPLIT)
-! curwin->w_p_scb = FALSE; /* reset 'scrollbind' */
- #endif
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
---- 1288,1299 ----
- /* Go to the other buffer. */
- set_curbuf(buf, action);
-
-! #if defined(FEAT_LISTCMDS) \
-! && (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
- if (action == DOBUF_SPLIT)
-! {
-! RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
-! }
- #endif
-
- #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
-***************
-*** 1917,1925 ****
- tabpage_new();
- else if (win_split(0, 0) == FAIL) /* Open in a new window */
- return FAIL;
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- }
- }
- #endif
---- 1920,1926 ----
- tabpage_new();
- else if (win_split(0, 0) == FAIL) /* Open in a new window */
- return FAIL;
-! RESET_BINDING(curwin);
- }
- }
- #endif
-*** ../vim-7.3.007/src/diff.c 2010-08-15 21:57:32.000000000 +0200
---- src/diff.c 2010-09-21 16:14:07.000000000 +0200
-***************
-*** 1127,1137 ****
- # endif
-
- wp->w_p_diff = TRUE;
- #ifdef FEAT_CURSORBIND
-- /* Use cursorbind if it's available */
- wp->w_p_crb = TRUE;
- #endif
-- wp->w_p_scb = TRUE;
- wp->w_p_wrap = FALSE;
- # ifdef FEAT_FOLDING
- curwin = wp;
---- 1127,1139 ----
- # endif
-
- wp->w_p_diff = TRUE;
-+ /* Use 'scrollbind' and 'cursorbind' when available */
-+ #ifdef FEAT_SCROLLBIND
-+ wp->w_p_scb = TRUE;
-+ #endif
- #ifdef FEAT_CURSORBIND
- wp->w_p_crb = TRUE;
- #endif
- wp->w_p_wrap = FALSE;
- # ifdef FEAT_FOLDING
- curwin = wp;
-***************
-*** 1177,1186 ****
- {
- /* Set 'diff', 'scrollbind' off and 'wrap' on. */
- wp->w_p_diff = FALSE;
-! #ifdef FEAT_CURSORBIND
-! wp->w_p_crb = FALSE;
-! #endif
-! wp->w_p_scb = FALSE;
- wp->w_p_wrap = TRUE;
- #ifdef FEAT_FOLDING
- curwin = wp;
---- 1179,1185 ----
- {
- /* Set 'diff', 'scrollbind' off and 'wrap' on. */
- wp->w_p_diff = FALSE;
-! RESET_BINDING(wp);
- wp->w_p_wrap = TRUE;
- #ifdef FEAT_FOLDING
- curwin = wp;
-*** ../vim-7.3.007/src/ex_cmds.c 2010-08-15 21:57:26.000000000 +0200
---- src/ex_cmds.c 2010-09-21 16:15:07.000000000 +0200
-***************
-*** 3498,3506 ****
- curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
- curwin->w_p_nu = 0; /* no line numbers */
- curwin->w_p_rnu = 0; /* no relative line numbers */
-! #ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE; /* no scroll binding */
-! #endif
- #ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE; /* no arabic mode */
- #endif
---- 3498,3504 ----
- curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
- curwin->w_p_nu = 0; /* no line numbers */
- curwin->w_p_rnu = 0; /* no relative line numbers */
-! RESET_BINDING(curwin); /* no scroll or cursor binding */
- #ifdef FEAT_ARABIC
- curwin->w_p_arab = FALSE; /* no arabic mode */
- #endif
-***************
-*** 5471,5479 ****
- return FALSE;
- curwin->w_p_pvw = TRUE;
- curwin->w_p_wfh = TRUE;
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE; /* don't take over 'scrollbind' */
-! # endif
- # ifdef FEAT_DIFF
- curwin->w_p_diff = FALSE; /* no 'diff' */
- # endif
---- 5469,5476 ----
- return FALSE;
- curwin->w_p_pvw = TRUE;
- curwin->w_p_wfh = TRUE;
-! RESET_BINDING(curwin); /* don't take over 'scrollbind'
-! and 'cursorbind' */
- # ifdef FEAT_DIFF
- curwin->w_p_diff = FALSE; /* no 'diff' */
- # endif
-*** ../vim-7.3.007/src/ex_cmds2.c 2010-08-15 21:57:31.000000000 +0200
---- src/ex_cmds2.c 2010-09-21 16:15:17.000000000 +0200
-***************
-*** 2165,2173 ****
- {
- if (win_split(0, 0) == FAIL)
- return;
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- }
- else
- #endif
---- 2165,2171 ----
- {
- if (win_split(0, 0) == FAIL)
- return;
-! RESET_BINDING(curwin);
- }
- else
- #endif
-*** ../vim-7.3.007/src/ex_docmd.c 2010-08-16 22:33:55.000000000 +0200
---- src/ex_docmd.c 2010-09-21 16:15:39.000000000 +0200
-***************
-*** 6898,6906 ****
- # ifdef FEAT_WINDOWS
- if (win_split(0, 0) == FAIL)
- return;
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
-
- /* When splitting the window, create a new alist. Otherwise the
- * existing one is overwritten. */
---- 6898,6904 ----
- # ifdef FEAT_WINDOWS
- if (win_split(0, 0) == FAIL)
- return;
-! RESET_BINDING(curwin);
-
- /* When splitting the window, create a new alist. Otherwise the
- * existing one is overwritten. */
-***************
-*** 7300,7306 ****
- || cmdmod.browse
- # endif
- )
-! curwin->w_p_scb = FALSE;
- else
- do_check_scrollbind(FALSE);
- # endif
---- 7298,7306 ----
- || cmdmod.browse
- # endif
- )
-! {
-! RESET_BINDING(curwin);
-! }
- else
- do_check_scrollbind(FALSE);
- # endif
-*** ../vim-7.3.007/src/ex_getln.c 2010-08-15 21:57:28.000000000 +0200
---- src/ex_getln.c 2010-09-21 16:15:55.000000000 +0200
-***************
-*** 6147,6155 ****
- curwin->w_p_rl = cmdmsg_rl;
- cmdmsg_rl = FALSE;
- # endif
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
-
- # ifdef FEAT_AUTOCMD
- /* Do execute autocommands for setting the filetype (load syntax). */
---- 6147,6153 ----
- curwin->w_p_rl = cmdmsg_rl;
- cmdmsg_rl = FALSE;
- # endif
-! RESET_BINDING(curwin);
-
- # ifdef FEAT_AUTOCMD
- /* Do execute autocommands for setting the filetype (load syntax). */
-*** ../vim-7.3.007/src/if_cscope.c 2010-08-15 21:57:32.000000000 +0200
---- src/if_cscope.c 2010-09-21 16:16:26.000000000 +0200
-***************
-*** 1274,1282 ****
- {
- win_split(postponed_split > 0 ? postponed_split : 0,
- postponed_split_flags);
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- postponed_split = 0;
- }
- # endif
---- 1274,1280 ----
- {
- win_split(postponed_split > 0 ? postponed_split : 0,
- postponed_split_flags);
-! RESET_BINDING(curwin);
- postponed_split = 0;
- }
- # endif
-*** ../vim-7.3.007/src/macros.h 2010-08-15 21:57:28.000000000 +0200
---- src/macros.h 2010-09-21 16:13:10.000000000 +0200
-***************
-*** 285,287 ****
---- 285,301 ----
- #else
- # define DO_AUTOCHDIR
- #endif
-+
-+ #if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
-+ # define RESET_BINDING(wp) (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
-+ #else
-+ # if defined(FEAT_SCROLLBIND)
-+ # define RESET_BINDING(wp) (wp)->w_p_scb = FALSE
-+ # else
-+ # if defined(FEAT_CURSORBIND)
-+ # define RESET_BINDING(wp) (wp)->w_p_crb = FALSE
-+ # else
-+ # define RESET_BINDING(wp)
-+ # endif
-+ # endif
-+ #endif
-*** ../vim-7.3.007/src/quickfix.c 2010-08-17 20:23:18.000000000 +0200
---- src/quickfix.c 2010-09-21 16:17:17.000000000 +0200
-***************
-*** 1656,1664 ****
- opened_window = TRUE; /* close it when fail */
- p_swb = empty_option; /* don't split again */
- swb_flags = 0;
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- if (ll_ref != NULL)
- {
- /* The new window should use the location list from the
---- 1656,1662 ----
- opened_window = TRUE; /* close it when fail */
- p_swb = empty_option; /* don't split again */
- swb_flags = 0;
-! RESET_BINDING(curwin);
- if (ll_ref != NULL)
- {
- /* The new window should use the location list from the
-***************
-*** 2334,2342 ****
- win_goto(lastwin);
- if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
- return; /* not enough room for window */
-! #ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! #endif
-
- if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
- {
---- 2332,2338 ----
- win_goto(lastwin);
- if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
- return; /* not enough room for window */
-! RESET_BINDING(curwin);
-
- if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
- {
-*** ../vim-7.3.007/src/search.c 2010-08-15 21:57:32.000000000 +0200
---- src/search.c 2010-09-21 16:17:28.000000000 +0200
-***************
-*** 5075,5083 ****
- if (win_split(0, 0) == FAIL)
- #endif
- break;
-! #ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! #endif
- }
- if (depth == -1)
- {
---- 5075,5081 ----
- if (win_split(0, 0) == FAIL)
- #endif
- break;
-! RESET_BINDING(curwin);
- }
- if (depth == -1)
- {
-*** ../vim-7.3.007/src/tag.c 2010-08-15 21:57:25.000000000 +0200
---- src/tag.c 2010-09-21 16:17:51.000000000 +0200
-***************
-*** 3143,3151 ****
- {
- win_split(postponed_split > 0 ? postponed_split : 0,
- postponed_split_flags);
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- }
- #endif
-
---- 3143,3149 ----
- {
- win_split(postponed_split > 0 ? postponed_split : 0,
- postponed_split_flags);
-! RESET_BINDING(curwin);
- }
- #endif
-
-*** ../vim-7.3.007/src/window.c 2010-08-15 21:57:32.000000000 +0200
---- src/window.c 2010-09-21 16:18:44.000000000 +0200
-***************
-*** 525,533 ****
- setpcmark();
- if (win_split(0, 0) == OK)
- {
-! # ifdef FEAT_SCROLLBIND
-! curwin->w_p_scb = FALSE;
-! # endif
- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
- ECMD_HIDE, NULL);
- if (nchar == 'F' && lnum >= 0)
---- 525,531 ----
- setpcmark();
- if (win_split(0, 0) == OK)
- {
-! RESET_BINDING(curwin);
- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
- ECMD_HIDE, NULL);
- if (nchar == 'F' && lnum >= 0)
-***************
-*** 3277,3285 ****
- if (aucmd_win != NULL)
- {
- win_init_some(aucmd_win, curwin);
-! # ifdef FEAT_SCROLLBIND
-! aucmd_win->w_p_scb = FALSE;
-! # endif
- new_frame(aucmd_win);
- }
- }
---- 3275,3281 ----
- if (aucmd_win != NULL)
- {
- win_init_some(aucmd_win, curwin);
-! RESET_BINDING(aucmd_win);
- new_frame(aucmd_win);
- }
- }
-***************
-*** 3320,3329 ****
- /* First window in new tab page, initialize it from "oldwin". */
- win_init(curwin, oldwin, 0);
-
-! # ifdef FEAT_SCROLLBIND
-! /* We don't want scroll-binding in the first window. */
-! curwin->w_p_scb = FALSE;
-! # endif
- }
- #endif
-
---- 3316,3323 ----
- /* First window in new tab page, initialize it from "oldwin". */
- win_init(curwin, oldwin, 0);
-
-! /* We don't want cursor- and scroll-binding in the first window. */
-! RESET_BINDING(curwin);
- }
- #endif
-
-*** ../vim-7.3.007/src/version.c 2010-09-21 16:49:29.000000000 +0200
---- src/version.c 2010-09-21 16:53:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 8,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-181. You make up words that go with the "happy tune" your modem makes
- while dialing your ISP.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.009 b/source/ap/vim/patches/7.3.009
deleted file mode 100644
index 317677d02..000000000
--- a/source/ap/vim/patches/7.3.009
+++ /dev/null
@@ -1,99 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.009
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.009
-Problem: Win32: Crash on Windows when using a bad argument for strftime().
- (Christian Brabandt)
-Solution: Use the bad_param_handler(). (Mike Williams)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.008/src/os_win32.c 2010-08-15 21:57:27.000000000 +0200
---- src/os_win32.c 2010-09-21 17:02:54.000000000 +0200
-***************
-*** 1615,1620 ****
---- 1615,1649 ----
- return TRUE;
- }
-
-+ #if ((defined(__MINGW32__) || defined (__CYGWIN32__)) && \
-+ __MSVCRT_VERSION__ >= 0x800) || (defined(_MSC_VER) && _MSC_VER >= 1400)
-+ /*
-+ * Bad parameter handler.
-+ *
-+ * Certain MS CRT functions will intentionally crash when passed invalid
-+ * parameters to highlight possible security holes. Setting this function as
-+ * the bad parameter handler will prevent the crash.
-+ *
-+ * In debug builds the parameters contain CRT information that might help track
-+ * down the source of a problem, but in non-debug builds the arguments are all
-+ * NULL/0. Debug builds will also produce assert dialogs from the CRT, it is
-+ * worth allowing these to make debugging of issues easier.
-+ */
-+ static void
-+ bad_param_handler(const wchar_t *expression,
-+ const wchar_t *function,
-+ const wchar_t *file,
-+ unsigned int line,
-+ uintptr_t pReserved)
-+ {
-+ }
-+
-+ # define SET_INVALID_PARAM_HANDLER \
-+ ((void)_set_invalid_parameter_handler(bad_param_handler))
-+ #else
-+ # define SET_INVALID_PARAM_HANDLER
-+ #endif
-+
- #ifdef FEAT_GUI_W32
-
- /*
-***************
-*** 1627,1632 ****
---- 1656,1664 ----
- extern int _fmode;
- #endif
-
-+ /* Silently handle invalid parameters to CRT functions */
-+ SET_INVALID_PARAM_HANDLER;
-+
- /* Let critical errors result in a failure, not in a dialog box. Required
- * for the timestamp test to work on removed floppies. */
- SetErrorMode(SEM_FAILCRITICALERRORS);
-***************
-*** 2103,2108 ****
---- 2135,2143 ----
- extern int _fmode;
- #endif
-
-+ /* Silently handle invalid parameters to CRT functions */
-+ SET_INVALID_PARAM_HANDLER;
-+
- /* Let critical errors result in a failure, not in a dialog box. Required
- * for the timestamp test to work on removed floppies. */
- SetErrorMode(SEM_FAILCRITICALERRORS);
-*** ../vim-7.3.008/src/version.c 2010-09-21 16:56:29.000000000 +0200
---- src/version.c 2010-09-21 17:27:36.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 9,
- /**/
-
---
-Wizards had always known that the act of observation changed the thing that
-was observed, and sometimes forgot that it also changed the observer too.
- Terry Pratchett - Interesting times
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.010 b/source/ap/vim/patches/7.3.010
deleted file mode 100644
index be0167ae0..000000000
--- a/source/ap/vim/patches/7.3.010
+++ /dev/null
@@ -1,167 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.010
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.010
-Problem: Mac GUI: Missing break statements.
-Solution: Add the break statements. (Dominique Pelle)
-Files: src/gui_mac.c
-
-
-*** ../vim-7.3.009/src/gui_mac.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_mac.c 2010-09-21 17:33:13.000000000 +0200
-***************
-*** 1480,1486 ****
- *
- * Returns the index inside the menu wher
- */
-! short /* Shoulde we return MenuItemIndex? */
- gui_mac_get_menu_item_index(vimmenu_T *pMenu)
- {
- short index;
---- 1480,1486 ----
- *
- * Returns the index inside the menu wher
- */
-! short /* Should we return MenuItemIndex? */
- gui_mac_get_menu_item_index(vimmenu_T *pMenu)
- {
- short index;
-***************
-*** 1823,1829 ****
- p.h += gui.scrollbar_width;
- if (gui.which_scrollbars[SBAR_RIGHT])
- p.h += gui.scrollbar_width;
-! /* ideal height is as heigh as we can get */
- p.v = 15 * 1024;
-
- thePart = IsWindowInStandardState(whichWindow, &p, &r)
---- 1823,1829 ----
- p.h += gui.scrollbar_width;
- if (gui.which_scrollbars[SBAR_RIGHT])
- p.h += gui.scrollbar_width;
-! /* ideal height is as high as we can get */
- p.v = 15 * 1024;
-
- thePart = IsWindowInStandardState(whichWindow, &p, &r)
-***************
-*** 4481,4487 ****
- * event arrives. No need to check for input_buf_full because we are
- * returning as soon as it contains a single char.
- */
-! /* TODO: reduce wtime accordinly??? */
- if (wtime > -1)
- sleeppyTick = 60 * wtime / 1000;
- else
---- 4481,4487 ----
- * event arrives. No need to check for input_buf_full because we are
- * returning as soon as it contains a single char.
- */
-! /* TODO: reduce wtime accordingly??? */
- if (wtime > -1)
- sleeppyTick = 60 * wtime / 1000;
- else
-***************
-*** 5723,5735 ****
- iconDITL = GetResource('DITL', 131);
- switch (type)
- {
-! case VIM_GENERIC: useIcon = kNoteIcon;
-! case VIM_ERROR: useIcon = kStopIcon;
-! case VIM_WARNING: useIcon = kCautionIcon;
-! case VIM_INFO: useIcon = kNoteIcon;
-! case VIM_QUESTION: useIcon = kNoteIcon;
-! default: useIcon = kStopIcon;
-! };
- AppendDITL(theDialog, iconDITL, overlayDITL);
- ReleaseResource(iconDITL);
- GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
---- 5723,5735 ----
- iconDITL = GetResource('DITL', 131);
- switch (type)
- {
-! case VIM_GENERIC:
-! case VIM_INFO:
-! case VIM_QUESTION: useIcon = kNoteIcon; break;
-! case VIM_WARNING: useIcon = kCautionIcon; break;
-! case VIM_ERROR: useIcon = kStopIcon; break;
-! default: useIcon = kStopIcon;
-! }
- AppendDITL(theDialog, iconDITL, overlayDITL);
- ReleaseResource(iconDITL);
- GetDialogItem(theDialog, iconItm.idx, &itemType, &itemHandle, &box);
-***************
-*** 5892,5898 ****
-
- return itemHit;
- /*
-! * Usefull thing which could be used
- * SetDialogTimeout(): Auto click a button after timeout
- * SetDialogTracksCursor() : Get the I-beam cursor over input box
- * MoveDialogItem(): Probably better than SetDialogItem
---- 5892,5898 ----
-
- return itemHit;
- /*
-! * Useful thing which could be used
- * SetDialogTimeout(): Auto click a button after timeout
- * SetDialogTracksCursor() : Get the I-beam cursor over input box
- * MoveDialogItem(): Probably better than SetDialogItem
-***************
-*** 6100,6106 ****
- #endif
-
- /*
-! * Transfered from os_mac.c for MacOS X using os_unix.c prep work
- */
-
- int
---- 6100,6106 ----
- #endif
-
- /*
-! * Transferred from os_mac.c for MacOS X using os_unix.c prep work
- */
-
- int
-***************
-*** 6543,6549 ****
- static ControlRef dataBrowser = NULL;
-
- // when the tabline is hidden, vim doesn't call update_tabline(). When
-! // the tabline is shown again, show_tabline() is called before upate_tabline(),
- // and because of this, the tab labels and vims internal tabs are out of sync
- // for a very short time. to prevent inconsistent state, we store the labels
- // of the tabs, not pointers to the tabs (which are invalid for a short time).
---- 6543,6549 ----
- static ControlRef dataBrowser = NULL;
-
- // when the tabline is hidden, vim doesn't call update_tabline(). When
-! // the tabline is shown again, show_tabline() is called before update_tabline(),
- // and because of this, the tab labels and vims internal tabs are out of sync
- // for a very short time. to prevent inconsistent state, we store the labels
- // of the tabs, not pointers to the tabs (which are invalid for a short time).
-*** ../vim-7.3.009/src/version.c 2010-09-21 17:29:19.000000000 +0200
---- src/version.c 2010-09-21 17:33:22.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 10,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-182. You may not know what is happening in the world, but you know
- every bit of net-gossip there is.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.011 b/source/ap/vim/patches/7.3.011
deleted file mode 100644
index 0f40a3f2b..000000000
--- a/source/ap/vim/patches/7.3.011
+++ /dev/null
@@ -1,290 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.011
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.011
-Problem: X11 clipboard doesn't work in Athena/Motif GUI. First selection
- after a shell command doesn't work.
-Solution: When using the GUI use XtLastTimestampProcessed() instead of
- changing a property. (partly by Toni Ronkko)
- When executing a shell command disown the selection.
-Files: src/ui.c, src/os_unix.c
-
-
-*** ../vim-7.3.010/src/ui.c 2010-08-15 21:57:31.000000000 +0200
---- src/ui.c 2010-09-21 22:08:22.000000000 +0200
-***************
-*** 469,475 ****
- */
- #ifdef FEAT_X11
- /* Always own the selection, we might have lost it without being
-! * notified. */
- if (cbd->available)
- {
- int was_owned = cbd->owned;
---- 469,475 ----
- */
- #ifdef FEAT_X11
- /* Always own the selection, we might have lost it without being
-! * notified, e.g. during a ":sh" command. */
- if (cbd->available)
- {
- int was_owned = cbd->owned;
-***************
-*** 1944,1953 ****
- */
-
- static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
--
- static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
--
- static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
-
- /*
- * Property callback to get a timestamp for XtOwnSelection.
---- 1944,1952 ----
- */
-
- static Boolean clip_x11_convert_selection_cb __ARGS((Widget, Atom *, Atom *, Atom *, XtPointer *, long_u *, int *));
- static void clip_x11_lose_ownership_cb __ARGS((Widget, Atom *));
- static void clip_x11_timestamp_cb __ARGS((Widget w, XtPointer n, XEvent *event, Boolean *cont));
-+ static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
-
- /*
- * Property callback to get a timestamp for XtOwnSelection.
-***************
-*** 1985,1992 ****
- return;
-
- /* Get the selection, using the event timestamp. */
-! XtOwnSelection(w, xproperty->atom, xproperty->time,
-! clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb, NULL);
- }
-
- void
---- 1984,2000 ----
- return;
-
- /* Get the selection, using the event timestamp. */
-! if (XtOwnSelection(w, xproperty->atom, xproperty->time,
-! clip_x11_convert_selection_cb, clip_x11_lose_ownership_cb,
-! NULL) == OK)
-! {
-! /* Set the "owned" flag now, there may have been a call to
-! * lose_ownership_cb in between. */
-! if (xproperty->atom == clip_plus.sel_atom)
-! clip_plus.owned = TRUE;
-! else
-! clip_star.owned = TRUE;
-! }
- }
-
- void
-***************
-*** 1997,2004 ****
- /*(XtEventHandler)*/clip_x11_timestamp_cb, (XtPointer)NULL);
- }
-
-- static void clip_x11_request_selection_cb __ARGS((Widget, XtPointer, Atom *, Atom *, XtPointer, long_u *, int *));
--
- static void
- clip_x11_request_selection_cb(w, success, sel_atom, type, value, length,
- format)
---- 2005,2010 ----
-***************
-*** 2336,2342 ****
-
- void
- clip_x11_lose_selection(myShell, cbd)
-! Widget myShell;
- VimClipboard *cbd;
- {
- XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
---- 2342,2348 ----
-
- void
- clip_x11_lose_selection(myShell, cbd)
-! Widget myShell;
- VimClipboard *cbd;
- {
- XtDisownSelection(myShell, cbd->sel_atom, CurrentTime);
-***************
-*** 2344,2357 ****
-
- int
- clip_x11_own_selection(myShell, cbd)
-! Widget myShell;
- VimClipboard *cbd;
- {
-! /* Get the time by a zero-length append, clip_x11_timestamp_cb will be
-! * called with the current timestamp. */
-! 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));
- return OK;
---- 2350,2378 ----
-
- int
- clip_x11_own_selection(myShell, cbd)
-! Widget myShell;
- VimClipboard *cbd;
- {
-! /* When using the GUI we have proper timestamps, use the one of the last
-! * event. When in the console we don't get events (the terminal gets
-! * them), Get the time by a zero-length append, clip_x11_timestamp_cb will
-! * be called with the current timestamp. */
-! #ifdef FEAT_GUI
-! if (gui.in_use)
-! {
-! if (XtOwnSelection(myShell, cbd->sel_atom,
-! 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));
- return OK;
-*** ../vim-7.3.010/src/os_unix.c 2010-08-15 21:57:30.000000000 +0200
---- src/os_unix.c 2010-09-21 21:59:25.000000000 +0200
-***************
-*** 1123,1128 ****
---- 1123,1152 ----
- }
- #endif
-
-+ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+ static void loose_clipboard __ARGS((void));
-+
-+ /*
-+ * Called when Vim is going to sleep or execute a shell command.
-+ * We can't respond to requests for the X selections. Lose them, otherwise
-+ * other applications will hang. But first copy the text to cut buffer 0.
-+ */
-+ static void
-+ loose_clipboard()
-+ {
-+ if (clip_star.owned || clip_plus.owned)
-+ {
-+ x11_export_final_selection();
-+ if (clip_star.owned)
-+ clip_lose_selection(&clip_star);
-+ if (clip_plus.owned)
-+ clip_lose_selection(&clip_plus);
-+ if (x11_display != NULL)
-+ XFlush(x11_display);
-+ }
-+ }
-+ #endif
-+
- /*
- * If the machine has job control, use it to suspend the program,
- * otherwise fake it by starting a new shell.
-***************
-*** 1137,1155 ****
- out_flush(); /* needed to disable mouse on some systems */
-
- # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-! /* Since we are going to sleep, we can't respond to requests for the X
-! * selections. Lose them, otherwise other applications will hang. But
-! * first copy the text to cut buffer 0. */
-! if (clip_star.owned || clip_plus.owned)
-! {
-! x11_export_final_selection();
-! if (clip_star.owned)
-! clip_lose_selection(&clip_star);
-! if (clip_plus.owned)
-! clip_lose_selection(&clip_plus);
-! if (x11_display != NULL)
-! XFlush(x11_display);
-! }
- # endif
-
- # if defined(_REENTRANT) && defined(SIGCONT)
---- 1161,1167 ----
- out_flush(); /* needed to disable mouse on some systems */
-
- # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-! loose_clipboard();
- # endif
-
- # if defined(_REENTRANT) && defined(SIGCONT)
-***************
-*** 3706,3711 ****
---- 3718,3727 ----
- if (options & SHELL_COOKED)
- settmode(TMODE_COOK); /* set to normal mode */
-
-+ # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+ loose_clipboard();
-+ # endif
-+
- # ifdef __EMX__
- if (cmd == NULL)
- x = system(""); /* this starts an interactive shell in emx */
-***************
-*** 3814,3826 ****
- # endif
- int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
-
- out_flush();
- if (options & SHELL_COOKED)
- settmode(TMODE_COOK); /* set to normal mode */
-
-! newcmd = vim_strsave(p_sh);
-! if (newcmd == NULL) /* out of memory */
-! goto error;
-
- /*
- * Do this loop twice:
---- 3830,3846 ----
- # endif
- int did_settmode = FALSE; /* settmode(TMODE_RAW) called */
-
-+ newcmd = vim_strsave(p_sh);
-+ if (newcmd == NULL) /* out of memory */
-+ goto error;
-+
- out_flush();
- if (options & SHELL_COOKED)
- settmode(TMODE_COOK); /* set to normal mode */
-
-! # if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-! loose_clipboard();
-! # endif
-
- /*
- * Do this loop twice:
-*** ../vim-7.3.010/src/version.c 2010-09-21 17:34:26.000000000 +0200
---- src/version.c 2010-09-21 20:45:02.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 11,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-184. You no longer ask prospective dates what their sign is, instead
- your line is "Hi, what's your URL?"
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.012 b/source/ap/vim/patches/7.3.012
deleted file mode 100644
index b0b13ffd9..000000000
--- a/source/ap/vim/patches/7.3.012
+++ /dev/null
@@ -1,71 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.012
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.012
-Problem: Problems building with MingW.
-Solution: Adjust the MingW makefiles. (Jon)
-Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
-
-
-*** ../vim-7.3.011/src/Make_ming.mak 2010-08-15 21:57:32.000000000 +0200
---- src/Make_ming.mak 2010-09-29 12:32:13.000000000 +0200
-***************
-*** 303,309 ****
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres
-
- #>>>>> end of choices
- ###########################################################################
---- 303,309 ----
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -
-
- #>>>>> end of choices
- ###########################################################################
-*** ../vim-7.3.011/src/GvimExt/Make_ming.mak 2010-08-15 21:57:29.000000000 +0200
---- src/GvimExt/Make_ming.mak 2010-09-29 12:31:07.000000000 +0200
-***************
-*** 33,39 ****
- endif
- endif
- CXX := $(CROSS_COMPILE)g++
-! WINDRES := $(CROSS_COMPILE)windres
- LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
---- 33,39 ----
- endif
- endif
- CXX := $(CROSS_COMPILE)g++
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -
- LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-*** ../vim-7.3.011/src/version.c 2010-09-21 22:09:28.000000000 +0200
---- src/version.c 2010-09-29 12:36:42.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 12,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.013 b/source/ap/vim/patches/7.3.013
deleted file mode 100644
index 489aa0eec..000000000
--- a/source/ap/vim/patches/7.3.013
+++ /dev/null
@@ -1,208 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.013
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.013
-Problem: Dynamic loading with Ruby doesn't work for 1.9.2.
-Solution: Handle rb_str2cstr differently. Also support dynamic loading on
- Unix. (Jon Maken)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.012/src/if_ruby.c 2010-08-15 21:57:25.000000000 +0200
---- src/if_ruby.c 2010-09-29 12:49:50.000000000 +0200
-***************
-*** 4,9 ****
---- 4,10 ----
- *
- * Ruby interface by Shugo Maeda
- * with improvements by SegPhault (Ryan Paul)
-+ * with improvements by Jon Maken
- *
- * Do ":help uganda" in Vim to read copying and usage conditions.
- * Do ":help credits" in Vim to see a list of people who contributed.
-***************
-*** 26,37 ****
- # define RUBYEXTERN extern
- #endif
-
- /*
- * This is tricky. In ruby.h there is (inline) function rb_class_of()
- * definition. This function use these variables. But we want function to
- * use dll_* variables.
- */
-- #ifdef DYNAMIC_RUBY
- # define rb_cFalseClass (*dll_rb_cFalseClass)
- # define rb_cFixnum (*dll_rb_cFixnum)
- # define rb_cNilClass (*dll_rb_cNilClass)
---- 27,38 ----
- # define RUBYEXTERN extern
- #endif
-
-+ #ifdef DYNAMIC_RUBY
- /*
- * This is tricky. In ruby.h there is (inline) function rb_class_of()
- * definition. This function use these variables. But we want function to
- * use dll_* variables.
- */
- # define rb_cFalseClass (*dll_rb_cFalseClass)
- # define rb_cFixnum (*dll_rb_cFixnum)
- # define rb_cNilClass (*dll_rb_cNilClass)
-***************
-*** 46,53 ****
---- 47,67 ----
- */
- # define RUBY_EXPORT
- # endif
-+
-+ #if !(defined(WIN32) || defined(_WIN64))
-+ # include <dlfcn.h>
-+ # define HANDLE void*
-+ # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-+ # define symbol_from_dll dlsym
-+ # define close_dll dlclose
-+ #else
-+ # define load_dll LoadLibrary
-+ # define symbol_from_dll GetProcAddress
-+ # define close_dll FreeLibrary
- #endif
-
-+ #endif /* ifdef DYNAMIC_RUBY */
-+
- /* suggested by Ariya Mizutani */
- #if (_MSC_VER == 1200)
- # undef _WIN32_WINNT
-***************
-*** 166,172 ****
- #define rb_obj_as_string dll_rb_obj_as_string
- #define rb_obj_id dll_rb_obj_id
- #define rb_raise dll_rb_raise
-- #define rb_str2cstr dll_rb_str2cstr
- #define rb_str_cat dll_rb_str_cat
- #define rb_str_concat dll_rb_str_concat
- #define rb_str_new dll_rb_str_new
---- 180,185 ----
-***************
-*** 178,187 ****
---- 191,203 ----
- # define rb_str_new2 dll_rb_str_new2
- #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+ # define rb_string_value dll_rb_string_value
- # define rb_string_value_ptr dll_rb_string_value_ptr
- # define rb_float_new dll_rb_float_new
- # define rb_ary_new dll_rb_ary_new
- # define rb_ary_push dll_rb_ary_push
-+ #else
-+ # define rb_str2cstr dll_rb_str2cstr
- #endif
- #ifdef RUBY19_OR_LATER
- # define rb_errinfo dll_rb_errinfo
-***************
-*** 246,252 ****
---- 262,272 ----
- static VALUE (*dll_rb_obj_as_string) (VALUE);
- static VALUE (*dll_rb_obj_id) (VALUE);
- static void (*dll_rb_raise) (VALUE, const char*, ...);
-+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+ static VALUE (*dll_rb_string_value) (volatile VALUE*);
-+ #else
- static char *(*dll_rb_str2cstr) (VALUE,int*);
-+ #endif
- static VALUE (*dll_rb_str_cat) (VALUE, const char*, long);
- static VALUE (*dll_rb_str_concat) (VALUE, VALUE);
- static VALUE (*dll_rb_str_new) (const char*, long);
-***************
-*** 347,353 ****
---- 367,377 ----
- {"rb_obj_as_string", (RUBY_PROC*)&dll_rb_obj_as_string},
- {"rb_obj_id", (RUBY_PROC*)&dll_rb_obj_id},
- {"rb_raise", (RUBY_PROC*)&dll_rb_raise},
-+ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+ {"rb_string_value", (RUBY_PROC*)&dll_rb_string_value},
-+ #else
- {"rb_str2cstr", (RUBY_PROC*)&dll_rb_str2cstr},
-+ #endif
- {"rb_str_cat", (RUBY_PROC*)&dll_rb_str_cat},
- {"rb_str_concat", (RUBY_PROC*)&dll_rb_str_concat},
- {"rb_str_new", (RUBY_PROC*)&dll_rb_str_new},
-***************
-*** 399,405 ****
- {
- if (hinstRuby)
- {
-! FreeLibrary(hinstRuby);
- hinstRuby = 0;
- }
- }
---- 423,429 ----
- {
- if (hinstRuby)
- {
-! close_dll(hinstRuby);
- hinstRuby = 0;
- }
- }
-***************
-*** 416,422 ****
-
- if (hinstRuby)
- return OK;
-! hinstRuby = LoadLibrary(libname);
- if (!hinstRuby)
- {
- if (verbose)
---- 440,446 ----
-
- if (hinstRuby)
- return OK;
-! hinstRuby = load_dll(libname);
- if (!hinstRuby)
- {
- if (verbose)
-***************
-*** 426,435 ****
-
- for (i = 0; ruby_funcname_table[i].ptr; ++i)
- {
-! if (!(*ruby_funcname_table[i].ptr = GetProcAddress(hinstRuby,
- ruby_funcname_table[i].name)))
- {
-! FreeLibrary(hinstRuby);
- hinstRuby = 0;
- if (verbose)
- EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
---- 450,459 ----
-
- for (i = 0; ruby_funcname_table[i].ptr; ++i)
- {
-! if (!(*ruby_funcname_table[i].ptr = symbol_from_dll(hinstRuby,
- ruby_funcname_table[i].name)))
- {
-! close_dll(hinstRuby);
- hinstRuby = 0;
- if (verbose)
- EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
-*** ../vim-7.3.012/src/version.c 2010-09-29 12:37:53.000000000 +0200
---- src/version.c 2010-09-29 13:00:42.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 13,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.014 b/source/ap/vim/patches/7.3.014
deleted file mode 100644
index a60d4769e..000000000
--- a/source/ap/vim/patches/7.3.014
+++ /dev/null
@@ -1,87 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.014
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.014
-Problem: Ending a line in a backslash inside an ":append" or ":insert"
- command in Ex mode doesn't work properly. (Ray Frush)
-Solution: Halve the number of backslashes, only insert a NUL after an odd
- number of backslashes.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.013/src/ex_getln.c 2010-09-21 16:56:29.000000000 +0200
---- src/ex_getln.c 2010-09-29 15:47:56.000000000 +0200
-***************
-*** 2342,2356 ****
- windgoto(msg_row, msg_col);
- pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
-
-! /* we are done when a NL is entered, but not when it comes after a
-! * backslash */
-! if (line_ga.ga_len > 0 && pend[-1] == '\n'
-! && (line_ga.ga_len <= 1 || pend[-2] != '\\'))
-! {
-! --line_ga.ga_len;
-! --pend;
-! *pend = NUL;
-! break;
- }
- }
-
---- 2342,2372 ----
- windgoto(msg_row, msg_col);
- pend = (char_u *)(line_ga.ga_data) + line_ga.ga_len;
-
-! /* We are done when a NL is entered, but not when it comes after an
-! * odd number of backslashes, that results in a NUL. */
-! if (line_ga.ga_len > 0 && pend[-1] == '\n')
-! {
-! int bcount = 0;
-!
-! while (line_ga.ga_len - 2 >= bcount && pend[-2 - bcount] == '\\')
-! ++bcount;
-!
-! if (bcount > 0)
-! {
-! /* Halve the number of backslashes: "\NL" -> "NUL", "\\NL" ->
-! * "\NL", etc. */
-! line_ga.ga_len -= (bcount + 1) / 2;
-! pend -= (bcount + 1) / 2;
-! pend[-1] = '\n';
-! }
-!
-! if ((bcount & 1) == 0)
-! {
-! --line_ga.ga_len;
-! --pend;
-! *pend = NUL;
-! break;
-! }
- }
- }
-
-*** ../vim-7.3.013/src/version.c 2010-09-29 13:02:48.000000000 +0200
---- src/version.c 2010-09-29 15:45:57.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 14,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.015 b/source/ap/vim/patches/7.3.015
deleted file mode 100644
index 0b5f66060..000000000
--- a/source/ap/vim/patches/7.3.015
+++ /dev/null
@@ -1,68 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.015
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.015
-Problem: Test is using error message that no longer exists.
-Solution: Change E106 to E121. (Dominique Pelle)
-Files: src/testdir/test49.vim
-
-
-*** ../vim-7.3.014/src/testdir/test49.vim 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test49.vim 2010-09-29 16:52:06.000000000 +0200
-***************
-*** 1,6 ****
- " Vim script language tests
- " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-! " Last Change: 2006 Apr 28
-
- "-------------------------------------------------------------------------------
- " Test environment {{{1
---- 1,6 ----
- " Vim script language tests
- " Author: Servatius Brandt <Servatius.Brandt@fujitsu-siemens.com>
-! " Last Change: 2010 Sep 29
-
- "-------------------------------------------------------------------------------
- " Test environment {{{1
-***************
-*** 8711,8717 ****
- endif
- else
- if cmd == "let"
-! let match = MATCH(0, thrmsg, 'E106', "Unknown variable")
- elseif cmd == "unlet"
- let match = MATCH(0, thrmsg, 'E108', "No such variable")
- endif
---- 8711,8717 ----
- endif
- else
- if cmd == "let"
-! let match = MATCH(0, thrmsg, 'E121', "Undefined variable")
- elseif cmd == "unlet"
- let match = MATCH(0, thrmsg, 'E108', "No such variable")
- endif
-*** ../vim-7.3.014/src/version.c 2010-09-29 15:50:14.000000000 +0200
---- src/version.c 2010-09-29 16:55:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 15,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.016 b/source/ap/vim/patches/7.3.016
deleted file mode 100644
index 1d087d5ad..000000000
--- a/source/ap/vim/patches/7.3.016
+++ /dev/null
@@ -1,240 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.016
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.016
-Problem: Netbeans doesn't work under Athena.
-Solution: Support Athena, just like Motif. (Xavier de Gaye)
-Files: runtime/doc/netbeans.txt, src/gui.c, src/main.c, src/netbeans.c
-
-
-*** ../vim-7.3.015/runtime/doc/netbeans.txt 2010-08-15 21:57:13.000000000 +0200
---- runtime/doc/netbeans.txt 2010-09-29 17:13:43.000000000 +0200
-***************
-*** 1,4 ****
-! *netbeans.txt* For Vim version 7.3. Last change: 2010 Jul 20
-
-
- VIM REFERENCE MANUAL by Gordon Prieur et al.
---- 1,4 ----
-! *netbeans.txt* For Vim version 7.3. Last change: 2010 Aug 20
-
-
- VIM REFERENCE MANUAL by Gordon Prieur et al.
-***************
-*** 118,124 ****
- uncommenting a line with "--disable-netbeans" in the Makefile.
-
- Currently the NetBeans interface is supported by Vim running in a terminal and
-! by GVim when it is run with one of the following GUIs: GTK, GNOME, and Motif.
-
- If Motif support is required the user must supply XPM libraries. See
- |workshop-xpm| for details on obtaining the latest version of XPM.
---- 118,125 ----
- uncommenting a line with "--disable-netbeans" in the Makefile.
-
- Currently the NetBeans interface is supported by Vim running in a terminal and
-! by GVim when it is run with one of the following GUIs: GTK, GNOME, Windows,
-! Athena and Motif.
-
- If Motif support is required the user must supply XPM libraries. See
- |workshop-xpm| for details on obtaining the latest version of XPM.
-*** ../vim-7.3.015/src/gui.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui.c 2010-09-29 17:13:43.000000000 +0200
-***************
-*** 2352,2358 ****
- if (draw_sign)
- /* Draw the sign on top of the spaces. */
- gui_mch_drawsign(gui.row, col, gui.highlight_mask);
-! # if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_MOTIF) \
- || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
- if (multi_sign)
- netbeans_draw_multisign_indicator(gui.row);
---- 2352,2358 ----
- if (draw_sign)
- /* Draw the sign on top of the spaces. */
- gui_mch_drawsign(gui.row, col, gui.highlight_mask);
-! # if defined(FEAT_NETBEANS_INTG) && (defined(FEAT_GUI_X11) \
- || defined(FEAT_GUI_GTK) || defined(FEAT_GUI_W32))
- if (multi_sign)
- netbeans_draw_multisign_indicator(gui.row);
-*** ../vim-7.3.015/src/main.c 2010-08-15 21:57:28.000000000 +0200
---- src/main.c 2010-09-29 17:13:43.000000000 +0200
-***************
-*** 940,946 ****
- if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
- {
- # ifdef FEAT_GUI
-! # if !defined(FEAT_GUI_MOTIF) && !defined(FEAT_GUI_GTK) \
- && !defined(FEAT_GUI_W32)
- if (gui.in_use)
- {
---- 940,946 ----
- if (netbeansArg != NULL && strncmp("-nb", netbeansArg, 3) == 0)
- {
- # ifdef FEAT_GUI
-! # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
- && !defined(FEAT_GUI_W32)
- if (gui.in_use)
- {
-*** ../vim-7.3.015/src/netbeans.c 2010-08-15 21:57:26.000000000 +0200
---- src/netbeans.c 2010-09-29 17:13:43.000000000 +0200
-***************
-*** 87,93 ****
- static void nb_init_graphics __ARGS((void));
- static void coloncmd __ARGS((char *cmd, ...));
- static void nb_set_curbuf __ARGS((buf_T *buf));
-! #ifdef FEAT_GUI_MOTIF
- static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
- #endif
- #ifdef FEAT_GUI_GTK
---- 87,93 ----
- static void nb_init_graphics __ARGS((void));
- static void coloncmd __ARGS((char *cmd, ...));
- static void nb_set_curbuf __ARGS((buf_T *buf));
-! #ifdef FEAT_GUI_X11
- static void messageFromNetbeans __ARGS((XtPointer, int *, XtInputId *));
- #endif
- #ifdef FEAT_GUI_GTK
-***************
-*** 112,118 ****
- static NBSOCK nbsock = -1; /* socket fd for Netbeans connection */
- #define NETBEANS_OPEN (nbsock != -1)
-
-! #ifdef FEAT_GUI_MOTIF
- static XtInputId inputHandler = (XtInputId)NULL; /* Cookie for input */
- #endif
- #ifdef FEAT_GUI_GTK
---- 112,118 ----
- static NBSOCK nbsock = -1; /* socket fd for Netbeans connection */
- #define NETBEANS_OPEN (nbsock != -1)
-
-! #ifdef FEAT_GUI_X11
- static XtInputId inputHandler = (XtInputId)NULL; /* Cookie for input */
- #endif
- #ifdef FEAT_GUI_GTK
-***************
-*** 143,149 ****
-
- netbeans_send_disconnect();
-
-! #ifdef FEAT_GUI_MOTIF
- if (inputHandler != (XtInputId)NULL)
- {
- XtRemoveInput(inputHandler);
---- 143,149 ----
-
- netbeans_send_disconnect();
-
-! #ifdef FEAT_GUI_X11
- if (inputHandler != (XtInputId)NULL)
- {
- XtRemoveInput(inputHandler);
-***************
-*** 700,706 ****
- /*
- * Read a command from netbeans.
- */
-! #ifdef FEAT_GUI_MOTIF
- static void
- messageFromNetbeans(XtPointer clientData UNUSED,
- int *unused1 UNUSED,
---- 700,706 ----
- /*
- * Read a command from netbeans.
- */
-! #ifdef FEAT_GUI_X11
- static void
- messageFromNetbeans(XtPointer clientData UNUSED,
- int *unused1 UNUSED,
-***************
-*** 2937,2943 ****
- if (!NB_HAS_GUI || !NETBEANS_OPEN)
- return;
-
-! # ifdef FEAT_GUI_MOTIF
- /* tell notifier we are interested in being called
- * when there is input on the editor connection socket
- */
---- 2937,2943 ----
- if (!NB_HAS_GUI || !NETBEANS_OPEN)
- return;
-
-! # ifdef FEAT_GUI_X11
- /* tell notifier we are interested in being called
- * when there is input on the editor connection socket
- */
-***************
-*** 3027,3033 ****
- }
- }
-
-! #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_W32) || defined(PROTO)
- /*
- * Tell netbeans that the window was moved or resized.
- */
---- 3027,3033 ----
- }
- }
-
-! #if defined(FEAT_GUI_X11) || defined(FEAT_GUI_W32) || defined(PROTO)
- /*
- * Tell netbeans that the window was moved or resized.
- */
-***************
-*** 3458,3464 ****
- return FALSE;
- }
-
-! #if defined(FEAT_GUI_MOTIF) || defined(PROTO)
- /*
- * We have multiple signs to draw at the same location. Draw the
- * multi-sign indicator instead. This is the Motif version.
---- 3458,3464 ----
- return FALSE;
- }
-
-! #if defined(FEAT_GUI_X11) || defined(PROTO)
- /*
- * We have multiple signs to draw at the same location. Draw the
- * multi-sign indicator instead. This is the Motif version.
-***************
-*** 3487,3493 ****
- XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
- XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
- }
-! #endif /* FEAT_GUI_MOTIF */
-
- #if defined(FEAT_GUI_GTK) && !defined(PROTO)
- /*
---- 3487,3493 ----
- XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+3, y++);
- XDrawPoint(gui.dpy, gui.wid, gui.text_gc, x+2, y);
- }
-! #endif /* FEAT_GUI_X11 */
-
- #if defined(FEAT_GUI_GTK) && !defined(PROTO)
- /*
-*** ../vim-7.3.015/src/version.c 2010-09-29 16:55:45.000000000 +0200
---- src/version.c 2010-09-29 17:14:47.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 16,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-229. You spend so much time thinking what to add on this list.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.017 b/source/ap/vim/patches/7.3.017
deleted file mode 100644
index 4434ae1d4..000000000
--- a/source/ap/vim/patches/7.3.017
+++ /dev/null
@@ -1,124 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.017
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.017
-Problem: smatch reports errors.
-Solution: Fix the reported errors. (Dominique Pelle)
-Files: src/spell.c, src/syntax.c
-
-
-*** ../vim-7.3.016/src/spell.c 2010-09-18 13:36:41.000000000 +0200
---- src/spell.c 2010-09-29 18:25:09.000000000 +0200
-***************
-*** 4951,4957 ****
- char_u *si_info; /* info text chars or NULL */
- int si_region_count; /* number of regions supported (1 when there
- are no regions) */
-! char_u si_region_name[16]; /* region names; used only if
- * si_region_count > 1) */
-
- garray_T si_rep; /* list of fromto_T entries from REP lines */
---- 4951,4957 ----
- char_u *si_info; /* info text chars or NULL */
- int si_region_count; /* number of regions supported (1 when there
- are no regions) */
-! char_u si_region_name[17]; /* region names; used only if
- * si_region_count > 1) */
-
- garray_T si_rep; /* list of fromto_T entries from REP lines */
-***************
-*** 9530,9536 ****
- if (aspath)
- /* Use directory of an entry with path, e.g., for
- * "/dir/lg.utf-8.spl" use "/dir". */
-! vim_strncpy(buf, curbuf->b_s.b_p_spl, lstart - curbuf->b_s.b_p_spl - 1);
- else
- /* Copy the path from 'runtimepath' to buf[]. */
- copy_option_part(&rtp, buf, MAXPATHL, ",");
---- 9530,9537 ----
- if (aspath)
- /* Use directory of an entry with path, e.g., for
- * "/dir/lg.utf-8.spl" use "/dir". */
-! vim_strncpy(buf, curbuf->b_s.b_p_spl,
-! lstart - curbuf->b_s.b_p_spl - 1);
- else
- /* Copy the path from 'runtimepath' to buf[]. */
- copy_option_part(&rtp, buf, MAXPATHL, ",");
-***************
-*** 9539,9551 ****
- /* Use the first language name from 'spelllang' and the
- * encoding used in the first loaded .spl file. */
- if (aspath)
-! vim_strncpy(buf, curbuf->b_s.b_p_spl, lend - curbuf->b_s.b_p_spl);
- else
- {
- /* Create the "spell" directory if it doesn't exist yet. */
- l = (int)STRLEN(buf);
- vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
-! if (!filewritable(buf) != 2)
- vim_mkdir(buf, 0755);
-
- l = (int)STRLEN(buf);
---- 9540,9553 ----
- /* Use the first language name from 'spelllang' and the
- * encoding used in the first loaded .spl file. */
- if (aspath)
-! vim_strncpy(buf, curbuf->b_s.b_p_spl,
-! lend - curbuf->b_s.b_p_spl);
- else
- {
- /* Create the "spell" directory if it doesn't exist yet. */
- l = (int)STRLEN(buf);
- vim_snprintf((char *)buf + l, MAXPATHL - l, "/spell");
-! if (filewritable(buf) != 2)
- vim_mkdir(buf, 0755);
-
- l = (int)STRLEN(buf);
-*** ../vim-7.3.016/src/syntax.c 2010-08-15 21:57:32.000000000 +0200
---- src/syntax.c 2010-09-29 18:28:26.000000000 +0200
-***************
-*** 7600,7609 ****
- /*
- * Copy characters from arg[] to buf[], translating <> codes.
- */
-! for (p = arg, off = 0; off < 100 && *p; )
- {
- len = trans_special(&p, buf + off, FALSE);
-! if (len) /* recognized special char */
- off += len;
- else /* copy as normal char */
- buf[off++] = *p++;
---- 7600,7609 ----
- /*
- * Copy characters from arg[] to buf[], translating <> codes.
- */
-! for (p = arg, off = 0; off < 100 - 6 && *p; )
- {
- len = trans_special(&p, buf + off, FALSE);
-! if (len > 0) /* recognized special char */
- off += len;
- else /* copy as normal char */
- buf[off++] = *p++;
-*** ../vim-7.3.016/src/version.c 2010-09-29 17:26:57.000000000 +0200
---- src/version.c 2010-09-29 17:47:27.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 17,
- /**/
-
---
-A computer without Windows is like a fish without a bicycle.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.018 b/source/ap/vim/patches/7.3.018
deleted file mode 100644
index 5079e821f..000000000
--- a/source/ap/vim/patches/7.3.018
+++ /dev/null
@@ -1,74 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.018
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.018 (after 7.3.012)
-Problem: Missing argument to windres in MingW makefiles.
-Solution: Add the argument that was wrapped in the patch. (Jon Maken)
-Files: src/Make_ming.mak, src/GvimExt/Make_ming.mak
-
-
-*** ../vim-7.3.017/src/Make_ming.mak 2010-09-29 12:37:53.000000000 +0200
---- src/Make_ming.mak 2010-09-29 18:37:08.000000000 +0200
-***************
-*** 303,309 ****
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -
-
- #>>>>> end of choices
- ###########################################################################
---- 303,309 ----
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
-
- #>>>>> end of choices
- ###########################################################################
-*** ../vim-7.3.017/src/GvimExt/Make_ming.mak 2010-09-29 12:37:53.000000000 +0200
---- src/GvimExt/Make_ming.mak 2010-09-29 18:36:39.000000000 +0200
-***************
-*** 33,39 ****
- endif
- endif
- CXX := $(CROSS_COMPILE)g++
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -
- LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
---- 33,39 ----
- endif
- endif
- CXX := $(CROSS_COMPILE)g++
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
- LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
-*** ../vim-7.3.017/src/version.c 2010-09-29 18:32:47.000000000 +0200
---- src/version.c 2010-09-29 18:41:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 18,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner
- in the front doorway permanently so it always looks like you are
- actually attempting to do something about that mess that has amassed
- since you discovered the Internet.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.019 b/source/ap/vim/patches/7.3.019
deleted file mode 100644
index 6a26d6a21..000000000
--- a/source/ap/vim/patches/7.3.019
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.019
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.019
-Problem: ":nbstart" can fail silently.
-Solution: Give an error when netbeans is not supported by the GUI. (Xavier
- de Gaye)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.018/src/netbeans.c 2010-09-29 17:26:57.000000000 +0200
---- src/netbeans.c 2010-09-29 17:35:37.000000000 +0200
-***************
-*** 2773,2778 ****
---- 2773,2788 ----
- ex_nbstart(eap)
- exarg_T *eap;
- {
-+ #ifdef FEAT_GUI
-+ # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
-+ && !defined(FEAT_GUI_W32)
-+ if (gui.in_use)
-+ {
-+ EMSG(_("E838: netbeans is not supported with this GUI"));
-+ return;
-+ }
-+ # endif
-+ #endif
- netbeans_open((char *)eap->arg, FALSE);
- }
-
-*** ../vim-7.3.018/src/version.c 2010-09-29 18:42:25.000000000 +0200
---- src/version.c 2010-09-30 21:02:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 19,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-233. You start dreaming about web pages...in html.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.020 b/source/ap/vim/patches/7.3.020
deleted file mode 100644
index 7c6de549d..000000000
--- a/source/ap/vim/patches/7.3.020
+++ /dev/null
@@ -1,131 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.020
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.020
-Problem: Cursor position wrong when joining multiple lines and
- 'formatoptions' contains "a". (Moshe Kamensky)
-Solution: Adjust cursor position for skipped indent. (Carlo Teubner)
-Files: src/ops.c, src/testdir/test68.in, src/testdir/test68.ok
-
-
-*** ../vim-7.3.019/src/ops.c 2010-08-15 21:57:28.000000000 +0200
---- src/ops.c 2010-10-09 17:00:35.000000000 +0200
-***************
-*** 4153,4161 ****
- int save_undo;
- {
- char_u *curr = NULL;
- char_u *cend;
- char_u *newp;
-! char_u *spaces; /* number of spaces inserte before a line */
- int endcurr1 = NUL;
- int endcurr2 = NUL;
- int currsize = 0; /* size of the current line */
---- 4153,4162 ----
- int save_undo;
- {
- char_u *curr = NULL;
-+ char_u *curr_start = NULL;
- char_u *cend;
- char_u *newp;
-! char_u *spaces; /* number of spaces inserted before a line */
- int endcurr1 = NUL;
- int endcurr2 = NUL;
- int currsize = 0; /* size of the current line */
-***************
-*** 4181,4187 ****
- */
- for (t = 0; t < count; ++t)
- {
-! curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
- if (insert_space && t > 0)
- {
- curr = skipwhite(curr);
---- 4182,4188 ----
- */
- for (t = 0; t < count; ++t)
- {
-! curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t));
- if (insert_space && t > 0)
- {
- curr = skipwhite(curr);
-***************
-*** 4265,4274 ****
- copy_spaces(cend, (size_t)(spaces[t]));
- }
- mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
-! (long)(cend - newp + spaces[t]));
- if (t == 0)
- break;
-! curr = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
- if (insert_space && t > 1)
- curr = skipwhite(curr);
- currsize = (int)STRLEN(curr);
---- 4266,4275 ----
- copy_spaces(cend, (size_t)(spaces[t]));
- }
- mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t,
-! (long)(cend - newp + spaces[t] - (curr - curr_start)));
- if (t == 0)
- break;
-! curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
- if (insert_space && t > 1)
- curr = skipwhite(curr);
- currsize = (int)STRLEN(curr);
-*** ../vim-7.3.019/src/testdir/test68.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test68.in 2010-10-09 16:53:02.000000000 +0200
-***************
-*** 51,56 ****
---- 51,67 ----
- }
-
- STARTTEST
-+ /^{/+2
-+ :set tw& fo=a
-+ I^^
-+ ENDTEST
-+
-+ {
-+ 1aa
-+ 2bb
-+ }
-+
-+ STARTTEST
- :g/^STARTTEST/.,/^ENDTEST/d
- :1;/^Results/,$wq! test.out
- ENDTEST
-*** ../vim-7.3.019/src/testdir/test68.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test68.ok 2010-10-09 16:53:02.000000000 +0200
-***************
-*** 33,35 ****
---- 33,38 ----
- #a b
- }
-
-+
-+ { 1aa ^^2bb }
-+
-*** ../vim-7.3.019/src/version.c 2010-09-30 21:03:13.000000000 +0200
---- src/version.c 2010-10-09 17:05:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 20,
- /**/
-
---
-Did you hear about the new 3 million dollar West Virginia State Lottery?
-The winner gets 3 dollars a year for a million years.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.021 b/source/ap/vim/patches/7.3.021
deleted file mode 100644
index 479c9e68e..000000000
--- a/source/ap/vim/patches/7.3.021
+++ /dev/null
@@ -1,70 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.021
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.021
-Problem: Conflict for defining Boolean in Mac header files.
-Solution: Define NO_X11_INCLUDES. (Rainer Muller)
-Files: src/os_macosx.m, src/vim.h
-
-
-*** ../vim-7.3.020/src/os_macosx.m 2010-08-15 21:57:29.000000000 +0200
---- src/os_macosx.m 2010-10-10 17:01:55.000000000 +0200
-***************
-*** 15,20 ****
---- 15,24 ----
- Error: MACOS 9 is no longer supported in Vim 7
- #endif
-
-+ /* Avoid a conflict for the definition of Boolean between Mac header files and
-+ * X11 header files. */
-+ #define NO_X11_INCLUDES
-+
- #include "vim.h"
- #import <Cocoa/Cocoa.h>
-
-*** ../vim-7.3.020/src/vim.h 2010-08-15 21:57:29.000000000 +0200
---- src/vim.h 2010-10-10 17:02:56.000000000 +0200
-***************
-*** 192,199 ****
- #endif
-
- #ifdef NO_X11_INCLUDES
-! /* In os_mac_conv.c NO_X11_INCLUDES is defined to avoid X11 headers.
-! * Disable all X11 related things to avoid conflicts. */
- # ifdef FEAT_X11
- # undef FEAT_X11
- # endif
---- 192,199 ----
- #endif
-
- #ifdef NO_X11_INCLUDES
-! /* In os_mac_conv.c and os_macosx.m NO_X11_INCLUDES is defined to avoid
-! * X11 headers. Disable all X11 related things to avoid conflicts. */
- # ifdef FEAT_X11
- # undef FEAT_X11
- # endif
-*** ../vim-7.3.020/src/version.c 2010-10-09 17:21:42.000000000 +0200
---- src/version.c 2010-10-10 17:05:19.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 21,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-259. When you enter your name in the AltaVista search engine, the top ten
- matches do indeed refer to you.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.022 b/source/ap/vim/patches/7.3.022
deleted file mode 100644
index aefdf1c29..000000000
--- a/source/ap/vim/patches/7.3.022
+++ /dev/null
@@ -1,54 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.022
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.022
-Problem: When opening a new window the 'spellcapcheck' option is cleared.
-Solution: Copy the correct option value. (Christian Brabandt)
-Files: src/option.c
-
-
-*** ../vim-7.3.021/src/option.c 2010-08-15 21:57:28.000000000 +0200
---- src/option.c 2010-10-13 13:48:46.000000000 +0200
-***************
-*** 10011,10017 ****
- buf->b_p_smc = p_smc;
- #endif
- #ifdef FEAT_SPELL
-! buf->b_s.b_p_spc = vim_strsave(p_spf);
- (void)compile_cap_prog(&buf->b_s);
- buf->b_s.b_p_spf = vim_strsave(p_spf);
- buf->b_s.b_p_spl = vim_strsave(p_spl);
---- 10011,10017 ----
- buf->b_p_smc = p_smc;
- #endif
- #ifdef FEAT_SPELL
-! buf->b_s.b_p_spc = vim_strsave(p_spc);
- (void)compile_cap_prog(&buf->b_s);
- buf->b_s.b_p_spf = vim_strsave(p_spf);
- buf->b_s.b_p_spl = vim_strsave(p_spl);
-*** ../vim-7.3.021/src/version.c 2010-10-10 17:08:28.000000000 +0200
---- src/version.c 2010-10-13 14:02:08.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 22,
- /**/
-
---
-GALAHAD: Camelot ...
-LAUNCELOT: Camelot ...
-GAWAIN: It's only a model.
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.023 b/source/ap/vim/patches/7.3.023
deleted file mode 100644
index e26d1b8f7..000000000
--- a/source/ap/vim/patches/7.3.023
+++ /dev/null
@@ -1,69 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.023
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.023
-Problem: External program may hang when it tries to write to the tty.
-Solution: Don't close the slave tty until after the child exits. (Nikola
- Knezevic)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.022/src/os_unix.c 2010-09-21 22:09:28.000000000 +0200
---- src/os_unix.c 2010-10-13 16:17:33.000000000 +0200
-***************
-*** 4168,4174 ****
- # ifdef FEAT_GUI
- if (pty_master_fd >= 0)
- {
-- close(pty_slave_fd); /* close slave side of pty */
- fromshell_fd = pty_master_fd;
- toshell_fd = dup(pty_master_fd);
- }
---- 4168,4173 ----
-***************
-*** 4637,4642 ****
---- 4636,4649 ----
- break;
- }
-
-+ # ifdef FEAT_GUI
-+ /* Close slave side of pty. Only do this after the child has
-+ * exited, otherwise the child may hang when it tries to write on
-+ * the pty. */
-+ if (pty_master_fd >= 0)
-+ close(pty_slave_fd);
-+ # endif
-+
- /* Make sure the child that writes to the external program is
- * dead. */
- if (wpid > 0)
-*** ../vim-7.3.022/src/version.c 2010-10-13 14:05:29.000000000 +0200
---- src/version.c 2010-10-13 16:20:48.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 23,
- /**/
-
---
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.024 b/source/ap/vim/patches/7.3.024
deleted file mode 100644
index 60ae64ea3..000000000
--- a/source/ap/vim/patches/7.3.024
+++ /dev/null
@@ -1,115 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.024
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.024
-Problem: Named signs do not use a negative number as intended.
-Solution: Fix the numbering of named signs. (Xavier de Gaye)
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.023/src/ex_cmds.c 2010-09-21 16:56:29.000000000 +0200
---- src/ex_cmds.c 2010-10-13 16:37:18.000000000 +0200
-***************
-*** 6670,6680 ****
- sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
- if (sp == NULL)
- return;
-- if (sp_prev == NULL)
-- first_sign = sp;
-- else
-- sp_prev->sn_next = sp;
-- sp->sn_name = vim_strnsave(arg, (int)(p - arg));
-
- /* If the name is a number use that for the typenr,
- * otherwise use a negative number. */
---- 6670,6675 ----
-***************
-*** 6687,6699 ****
-
- for (lp = first_sign; lp != NULL; lp = lp->sn_next)
- {
-! if (lp->sn_typenr == last_sign_typenr)
- {
- --last_sign_typenr;
- if (last_sign_typenr == 0)
- last_sign_typenr = MAX_TYPENR;
- if (last_sign_typenr == start)
- {
- EMSG(_("E612: Too many signs defined"));
- return;
- }
---- 6682,6695 ----
-
- for (lp = first_sign; lp != NULL; lp = lp->sn_next)
- {
-! if (lp->sn_typenr == -last_sign_typenr)
- {
- --last_sign_typenr;
- if (last_sign_typenr == 0)
- last_sign_typenr = MAX_TYPENR;
- if (last_sign_typenr == start)
- {
-+ vim_free(sp);
- EMSG(_("E612: Too many signs defined"));
- return;
- }
-***************
-*** 6702,6711 ****
- }
- }
-
-! sp->sn_typenr = last_sign_typenr--;
-! if (last_sign_typenr == 0)
- last_sign_typenr = MAX_TYPENR; /* wrap around */
- }
- }
-
- /* set values for a defined sign. */
---- 6698,6714 ----
- }
- }
-
-! sp->sn_typenr = -last_sign_typenr;
-! if (--last_sign_typenr == 0)
- last_sign_typenr = MAX_TYPENR; /* wrap around */
- }
-+
-+ /* add the new sign to the list of signs */
-+ if (sp_prev == NULL)
-+ first_sign = sp;
-+ else
-+ sp_prev->sn_next = sp;
-+ sp->sn_name = vim_strnsave(arg, (int)(p - arg));
- }
-
- /* set values for a defined sign. */
-*** ../vim-7.3.023/src/version.c 2010-10-13 16:22:05.000000000 +0200
---- src/version.c 2010-10-13 16:42:14.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 24,
- /**/
-
---
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.025 b/source/ap/vim/patches/7.3.025
deleted file mode 100644
index 0fb3bee65..000000000
--- a/source/ap/vim/patches/7.3.025
+++ /dev/null
@@ -1,136 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.025
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.025
-Problem: ":mksession" does not square brackets escape file name properly.
-Solution: Improve escapging of file names. (partly by Peter Odding)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.024/src/ex_docmd.c 2010-09-21 16:56:29.000000000 +0200
---- src/ex_docmd.c 2010-10-13 17:39:17.000000000 +0200
-***************
-*** 10708,10714 ****
- * Write a file name to the session file.
- * Takes care of the "slash" option in 'sessionoptions' and escapes special
- * characters.
-! * Returns FAIL if writing fails.
- */
- static int
- ses_put_fname(fd, name, flagp)
---- 10708,10714 ----
- * Write a file name to the session file.
- * Takes care of the "slash" option in 'sessionoptions' and escapes special
- * characters.
-! * Returns FAIL if writing fails or out of memory.
- */
- static int
- ses_put_fname(fd, name, flagp)
-***************
-*** 10717,10765 ****
- unsigned *flagp;
- {
- char_u *sname;
- int retval = OK;
-- int c;
-
- sname = home_replace_save(NULL, name);
-! if (sname != NULL)
-! name = sname;
-! while (*name != NUL)
-! {
-! #ifdef FEAT_MBYTE
-! {
-! int l;
-
-! if (has_mbyte && (l = (*mb_ptr2len)(name)) > 1)
-! {
-! /* copy a multibyte char */
-! while (--l >= 0)
-! {
-! if (putc(*name, fd) != *name)
-! retval = FAIL;
-! ++name;
-! }
-! continue;
-! }
-! }
-! #endif
-! c = *name++;
-! if (c == '\\' && (*flagp & SSOP_SLASH))
-! /* change a backslash to a forward slash */
-! c = '/';
-! else if ((vim_strchr(escape_chars, c) != NULL
-! #ifdef BACKSLASH_IN_FILENAME
-! && c != '\\'
-! #endif
-! ) || c == '#' || c == '%')
-! {
-! /* escape a special character with a backslash */
-! if (putc('\\', fd) != '\\')
-! retval = FAIL;
-! }
-! if (putc(c, fd) != c)
-! retval = FAIL;
- }
- vim_free(sname);
- return retval;
- }
-
---- 10717,10748 ----
- unsigned *flagp;
- {
- char_u *sname;
-+ char_u *p;
- int retval = OK;
-
- sname = home_replace_save(NULL, name);
-! if (sname == NULL)
-! return FAIL;
-
-! if (*flagp & SSOP_SLASH)
-! {
-! /* change all backslashes to forward slashes */
-! for (p = sname; *p != NUL; mb_ptr_adv(p))
-! if (*p == '\\')
-! *p = '/';
- }
-+
-+ /* escapse special characters */
-+ p = vim_strsave_fnameescape(sname, FALSE);
- vim_free(sname);
-+ if (p == NULL)
-+ return FAIL;
-+
-+ /* write the result */
-+ if (fputs((char *)p, fd) < 0)
-+ retval = FAIL;
-+
-+ vim_free(p);
- return retval;
- }
-
-*** ../vim-7.3.024/src/version.c 2010-10-13 16:44:17.000000000 +0200
---- src/version.c 2010-10-13 17:49:15.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 25,
- /**/
-
---
-"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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.026 b/source/ap/vim/patches/7.3.026
deleted file mode 100644
index b47198c5d..000000000
--- a/source/ap/vim/patches/7.3.026
+++ /dev/null
@@ -1,61 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.026
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.026
-Problem: CTRL-] in a help file doesn't always work. (Tony Mechelynck)
-Solution: Don't escape special characters. (Carlo Teubner)
-Files: src/normal.c
-
-
-*** ../vim-7.3.025/src/normal.c 2010-08-15 21:57:28.000000000 +0200
---- src/normal.c 2010-10-13 18:01:03.000000000 +0200
-***************
-*** 5666,5673 ****
- else if (cmdchar == '#')
- aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
- else if (tag_cmd)
-! /* Don't escape spaces and Tabs in a tag with a backslash */
-! aux_ptr = (char_u *)"\\|\"\n[";
- else
- aux_ptr = (char_u *)"\\|\"\n*?[";
-
---- 5666,5678 ----
- else if (cmdchar == '#')
- aux_ptr = (char_u *)(p_magic ? "/?.*~[^$\\" : "/?^$\\");
- else if (tag_cmd)
-! {
-! if (curbuf->b_help)
-! /* ":help" handles unescaped argument */
-! aux_ptr = (char_u *)"";
-! else
-! aux_ptr = (char_u *)"\\|\"\n[";
-! }
- else
- aux_ptr = (char_u *)"\\|\"\n*?[";
-
-*** ../vim-7.3.025/src/version.c 2010-10-13 17:50:02.000000000 +0200
---- src/version.c 2010-10-13 18:04:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 26,
- /**/
-
---
-MAN: Fetchez la vache!
-GUARD: Quoi?
-MAN: Fetchez la vache!
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.027 b/source/ap/vim/patches/7.3.027
deleted file mode 100644
index 3d2538d27..000000000
--- a/source/ap/vim/patches/7.3.027
+++ /dev/null
@@ -1,88 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.027
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.027
-Problem: Opening a file on a network share is very slow.
-Solution: When fixing file name case append "\*" to directory, server and
- network share names. (David Anderson, John Beckett)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.026/src/os_win32.c 2010-09-21 17:29:19.000000000 +0200
---- src/os_win32.c 2010-10-13 20:31:32.000000000 +0200
-***************
-*** 2308,2319 ****
---- 2308,2321 ----
- int len)
- {
- char szTrueName[_MAX_PATH + 2];
-+ char szTrueNameTemp[_MAX_PATH + 2];
- char *ptrue, *ptruePrev;
- char *porig, *porigPrev;
- int flen;
- WIN32_FIND_DATA fb;
- HANDLE hFind;
- int c;
-+ int slen;
-
- flen = (int)STRLEN(name);
- if (flen == 0 || flen > _MAX_PATH)
-***************
-*** 2358,2369 ****
- }
- *ptrue = NUL;
-
- /* Skip "", "." and "..". */
- if (ptrue > ptruePrev
- && (ptruePrev[0] != '.'
- || (ptruePrev[1] != NUL
- && (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
-! && (hFind = FindFirstFile(szTrueName, &fb))
- != INVALID_HANDLE_VALUE)
- {
- c = *porig;
---- 2360,2378 ----
- }
- *ptrue = NUL;
-
-+ /* To avoid a slow failure append "\*" when searching a directory,
-+ * server or network share. */
-+ STRCPY(szTrueNameTemp, szTrueName);
-+ slen = strlen(szTrueNameTemp);
-+ if (*porig == psepc && slen + 2 < _MAX_PATH)
-+ STRCPY(szTrueNameTemp + slen, "\\*");
-+
- /* Skip "", "." and "..". */
- if (ptrue > ptruePrev
- && (ptruePrev[0] != '.'
- || (ptruePrev[1] != NUL
- && (ptruePrev[1] != '.' || ptruePrev[2] != NUL)))
-! && (hFind = FindFirstFile(szTrueNameTemp, &fb))
- != INVALID_HANDLE_VALUE)
- {
- c = *porig;
-*** ../vim-7.3.026/src/version.c 2010-10-13 18:06:42.000000000 +0200
---- src/version.c 2010-10-13 20:37:00.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 27,
- /**/
-
---
- A cow comes flying over the battlements, lowing aggressively. The cow
- lands on GALAHAD'S PAGE, squashing him completely.
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.028 b/source/ap/vim/patches/7.3.028
deleted file mode 100644
index a4f987c63..000000000
--- a/source/ap/vim/patches/7.3.028
+++ /dev/null
@@ -1,179 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.028
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.028 (after 7.3.024)
-Problem: Signs don't show up. (Charles Campbell)
-Solution: Don't use negative numbers. Also assign a number to signs that
- have a name of all digits to avoid using a sign number twice.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.027/src/ex_cmds.c 2010-10-13 16:44:17.000000000 +0200
---- src/ex_cmds.c 2010-10-14 20:59:04.000000000 +0200
-***************
-*** 6569,6575 ****
- };
-
- static sign_T *first_sign = NULL;
-! static int last_sign_typenr = MAX_TYPENR; /* is decremented */
-
- static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
- static void sign_list_defined __ARGS((sign_T *sp));
---- 6569,6575 ----
- };
-
- static sign_T *first_sign = NULL;
-! static int next_sign_typenr = 1;
-
- static int sign_cmd_idx __ARGS((char_u *begin_cmd, char_u *end_cmd));
- static void sign_list_defined __ARGS((sign_T *sp));
-***************
-*** 6651,6659 ****
---- 6651,6664 ----
- EMSG(_("E156: Missing sign name"));
- else
- {
-+ /* Isolate the sign name. If it's a number skip leading zeroes,
-+ * so that "099" and "99" are the same sign. But keep "0". */
- p = skiptowhite(arg);
- if (*p != NUL)
- *p++ = NUL;
-+ while (arg[0] == '0' && arg[1] != NUL)
-+ ++arg;
-+
- sp_prev = NULL;
- for (sp = first_sign; sp != NULL; sp = sp->sn_next)
- {
-***************
-*** 6666,6706 ****
- /* ":sign define {name} ...": define a sign */
- if (sp == NULL)
- {
- /* Allocate a new sign. */
- sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
- if (sp == NULL)
- return;
-
-! /* If the name is a number use that for the typenr,
-! * otherwise use a negative number. */
-! if (VIM_ISDIGIT(*arg))
-! sp->sn_typenr = atoi((char *)arg);
-! else
- {
-! sign_T *lp;
-! int start = last_sign_typenr;
-!
-! for (lp = first_sign; lp != NULL; lp = lp->sn_next)
- {
-! if (lp->sn_typenr == -last_sign_typenr)
- {
-! --last_sign_typenr;
-! if (last_sign_typenr == 0)
-! last_sign_typenr = MAX_TYPENR;
-! if (last_sign_typenr == start)
-! {
-! vim_free(sp);
-! EMSG(_("E612: Too many signs defined"));
-! return;
-! }
-! lp = first_sign;
-! continue;
- }
- }
-
-! sp->sn_typenr = -last_sign_typenr;
-! if (--last_sign_typenr == 0)
-! last_sign_typenr = MAX_TYPENR; /* wrap around */
- }
-
- /* add the new sign to the list of signs */
---- 6671,6715 ----
- /* ":sign define {name} ...": define a sign */
- if (sp == NULL)
- {
-+ sign_T *lp;
-+ int start = next_sign_typenr;
-+
- /* Allocate a new sign. */
- sp = (sign_T *)alloc_clear((unsigned)sizeof(sign_T));
- if (sp == NULL)
- return;
-
-! /* Check that next_sign_typenr is not already being used.
-! * This only happens after wrapping around. Hopefully
-! * another one got deleted and we can use its number. */
-! for (lp = first_sign; lp != NULL; )
- {
-! if (lp->sn_typenr == next_sign_typenr)
- {
-! ++next_sign_typenr;
-! if (next_sign_typenr == MAX_TYPENR)
-! next_sign_typenr = 1;
-! if (next_sign_typenr == start)
- {
-! vim_free(sp);
-! EMSG(_("E612: Too many signs defined"));
-! return;
- }
-+ lp = first_sign; /* start all over */
-+ continue;
- }
-+ lp = lp->sn_next;
-+ }
-+
-+ sp->sn_typenr = next_sign_typenr;
-+ if (++next_sign_typenr == MAX_TYPENR)
-+ next_sign_typenr = 1; /* wrap around */
-
-! sp->sn_name = vim_strsave(arg);
-! if (sp->sn_name == NULL) /* out of memory */
-! {
-! vim_free(sp);
-! return;
- }
-
- /* add the new sign to the list of signs */
-***************
-*** 6708,6714 ****
- first_sign = sp;
- else
- sp_prev->sn_next = sp;
-- sp->sn_name = vim_strnsave(arg, (int)(p - arg));
- }
-
- /* set values for a defined sign. */
---- 6717,6722 ----
-***************
-*** 6886,6891 ****
---- 6894,6901 ----
- arg = skiptowhite(arg);
- if (*arg != NUL)
- *arg++ = NUL;
-+ while (sign_name[0] == '0' && sign_name[1] != NUL)
-+ ++sign_name;
- }
- else if (STRNCMP(arg, "file=", 5) == 0)
- {
-*** ../vim-7.3.027/src/version.c 2010-10-13 20:37:37.000000000 +0200
---- src/version.c 2010-10-14 20:50:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 28,
- /**/
-
---
-This is an airconditioned room, do not open Windows.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.029 b/source/ap/vim/patches/7.3.029
deleted file mode 100644
index 702c7cce4..000000000
--- a/source/ap/vim/patches/7.3.029
+++ /dev/null
@@ -1,177 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.029
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.029
-Problem: ":sort n" sorts lines without a number as number zero. (Beeyawned)
-Solution: Make lines without a number sort before lines with a number. Also
- fix sorting negative numbers.
-Files: src/ex_cmds.c, src/testdir/test57.in, src/testdir/test57.ok
-
-
-*** ../vim-7.3.028/src/ex_cmds.c 2010-10-14 21:29:31.000000000 +0200
---- src/ex_cmds.c 2010-10-15 20:04:25.000000000 +0200
-***************
-*** 323,329 ****
- /* When sorting numbers "start_col_nr" is the number, not the column
- * number. */
- if (sort_nr)
-! result = l1.start_col_nr - l2.start_col_nr;
- else
- {
- /* We need to copy one line into "sortbuf1", because there is no
---- 323,330 ----
- /* When sorting numbers "start_col_nr" is the number, not the column
- * number. */
- if (sort_nr)
-! result = l1.start_col_nr == l2.start_col_nr ? 0
-! : l1.start_col_nr > l2.start_col_nr ? 1 : -1;
- else
- {
- /* We need to copy one line into "sortbuf1", because there is no
-***************
-*** 482,488 ****
- * of the match, by temporarily terminating the string there */
- s2 = s + end_col;
- c = *s2;
-! (*s2) = 0;
- /* Sorting on number: Store the number itself. */
- p = s + start_col;
- if (sort_hex)
---- 483,489 ----
- * of the match, by temporarily terminating the string there */
- s2 = s + end_col;
- c = *s2;
-! *s2 = NUL;
- /* Sorting on number: Store the number itself. */
- p = s + start_col;
- if (sort_hex)
-***************
-*** 491,499 ****
- s = skiptodigit(p);
- if (s > p && s[-1] == '-')
- --s; /* include preceding negative sign */
-! vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
-! &nrs[lnum - eap->line1].start_col_nr, NULL);
-! (*s2) = c;
- }
- else
- {
---- 492,504 ----
- s = skiptodigit(p);
- if (s > p && s[-1] == '-')
- --s; /* include preceding negative sign */
-! if (*s == NUL)
-! /* empty line should sort before any number */
-! nrs[lnum - eap->line1].start_col_nr = -MAXLNUM;
-! else
-! vim_str2nr(s, NULL, NULL, sort_oct, sort_hex,
-! &nrs[lnum - eap->line1].start_col_nr, NULL);
-! *s2 = c;
- }
- else
- {
-***************
-*** 6556,6563 ****
- struct sign
- {
- sign_T *sn_next; /* next sign in list */
-! int sn_typenr; /* type number of sign (negative if not equal
-! to name) */
- char_u *sn_name; /* name of sign */
- char_u *sn_icon; /* name of pixmap */
- #ifdef FEAT_SIGN_ICONS
---- 6561,6567 ----
- struct sign
- {
- sign_T *sn_next; /* next sign in list */
-! int sn_typenr; /* type number of sign */
- char_u *sn_name; /* name of sign */
- char_u *sn_icon; /* name of pixmap */
- #ifdef FEAT_SIGN_ICONS
-*** ../vim-7.3.028/src/testdir/test57.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test57.in 2010-10-15 20:12:23.000000000 +0200
-***************
-*** 53,67 ****
- t02: numeric
- abc
- ab
-- a
- a321
- a123
- a122
- b321
- b123
- c123d
- 123b
- c321d
- b322b
- b321
- b321b
---- 53,71 ----
- t02: numeric
- abc
- ab
- a321
- a123
- a122
-+ a
-+ x-22
- b321
- b123
-+
- c123d
-+ -24
- 123b
- c321d
-+ 0
- b322b
- b321
- b321b
-*** ../vim-7.3.028/src/testdir/test57.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test57.ok 2010-10-15 20:11:42.000000000 +0200
-***************
-*** 21,26 ****
---- 21,30 ----
- a
-
-
-+
-+ -24
-+ x-22
-+ 0
- a122
- a123
- b123
-*** ../vim-7.3.028/src/version.c 2010-10-14 21:29:31.000000000 +0200
---- src/version.c 2010-10-15 20:13:52.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 29,
- /**/
-
---
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.030 b/source/ap/vim/patches/7.3.030
deleted file mode 100644
index 8d6a5f1bd..000000000
--- a/source/ap/vim/patches/7.3.030
+++ /dev/null
@@ -1,366 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.030
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.030
-Problem: Cannot store Dict and List in viminfo file.
-Solution: Add support for this. (Christian Brabandt)
-Files: runtime/doc/options.txt, src/eval.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/main.aap, src/testdir/test74.in,
- src/testdir/test74.ok
-
-
-*** ../vim-7.3.029/runtime/doc/options.txt 2010-08-15 21:57:17.000000000 +0200
---- runtime/doc/options.txt 2010-10-20 17:41:18.000000000 +0200
-***************
-*** 7530,7537 ****
- ! When included, save and restore global variables that start
- with an uppercase letter, and don't contain a lowercase
- letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
-! and "_K_L_M" are not. Only String and Number types are
-! stored.
- " Maximum number of lines saved for each register. Old name of
- the '<' item, with the disadvantage that you need to put a
- backslash before the ", otherwise it will be recognized as the
---- 7530,7538 ----
- ! When included, save and restore global variables that start
- with an uppercase letter, and don't contain a lowercase
- letter. Thus "KEEPTHIS and "K_L_M" are stored, but "KeepThis"
-! and "_K_L_M" are not. Nested List and Dict items may not be
-! read back correctly, you end up with a string representation
-! instead.
- " Maximum number of lines saved for each register. Old name of
- the '<' item, with the disadvantage that you need to put a
- backslash before the ", otherwise it will be recognized as the
-*** ../vim-7.3.029/src/eval.c 2010-09-14 12:47:30.000000000 +0200
---- src/eval.c 2010-10-20 16:25:54.000000000 +0200
-***************
-*** 22520,22537 ****
- if (tab != NULL)
- {
- *tab++ = '\0'; /* isolate the variable name */
-! if (*tab == 'S') /* string var */
-! type = VAR_STRING;
- #ifdef FEAT_FLOAT
-! else if (*tab == 'F')
-! type = VAR_FLOAT;
- #endif
-
- tab = vim_strchr(tab, '\t');
- if (tab != NULL)
- {
- tv.v_type = type;
-! if (type == VAR_STRING)
- tv.vval.v_string = viminfo_readstring(virp,
- (int)(tab - virp->vir_line + 1), TRUE);
- #ifdef FEAT_FLOAT
---- 22520,22540 ----
- if (tab != NULL)
- {
- *tab++ = '\0'; /* isolate the variable name */
-! switch (*tab)
-! {
-! case 'S': type = VAR_STRING; break;
- #ifdef FEAT_FLOAT
-! case 'F': type = VAR_FLOAT; break;
- #endif
-+ case 'D': type = VAR_DICT; break;
-+ case 'L': type = VAR_LIST; break;
-+ }
-
- tab = vim_strchr(tab, '\t');
- if (tab != NULL)
- {
- tv.v_type = type;
-! if (type == VAR_STRING || type == VAR_DICT || type == VAR_LIST)
- tv.vval.v_string = viminfo_readstring(virp,
- (int)(tab - virp->vir_line + 1), TRUE);
- #ifdef FEAT_FLOAT
-***************
-*** 22540,22548 ****
- #endif
- else
- tv.vval.v_number = atol((char *)tab + 1);
- set_var(virp->vir_line + 1, &tv, FALSE);
-! if (type == VAR_STRING)
- vim_free(tv.vval.v_string);
- }
- }
- }
---- 22543,22569 ----
- #endif
- else
- tv.vval.v_number = atol((char *)tab + 1);
-+ if (type == VAR_DICT || type == VAR_LIST)
-+ {
-+ typval_T *etv = eval_expr(tv.vval.v_string, NULL);
-+
-+ if (etv == NULL)
-+ /* Failed to parse back the dict or list, use it as a
-+ * string. */
-+ tv.v_type = VAR_STRING;
-+ else
-+ {
-+ vim_free(tv.vval.v_string);
-+ tv = *etv;
-+ }
-+ }
-+
- set_var(virp->vir_line + 1, &tv, FALSE);
-!
-! if (tv.v_type == VAR_STRING)
- vim_free(tv.vval.v_string);
-+ else if (tv.v_type == VAR_DICT || tv.v_type == VAR_LIST)
-+ clear_tv(&tv);
- }
- }
- }
-***************
-*** 22584,22591 ****
- case VAR_STRING: s = "STR"; break;
- case VAR_NUMBER: s = "NUM"; break;
- #ifdef FEAT_FLOAT
-! case VAR_FLOAT: s = "FLO"; break;
- #endif
- default: continue;
- }
- fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
---- 22605,22614 ----
- case VAR_STRING: s = "STR"; break;
- case VAR_NUMBER: s = "NUM"; break;
- #ifdef FEAT_FLOAT
-! case VAR_FLOAT: s = "FLO"; break;
- #endif
-+ case VAR_DICT: s = "DIC"; break;
-+ case VAR_LIST: s = "LIS"; break;
- default: continue;
- }
- fprintf(fp, "!%s\t%s\t", this_var->di_key, s);
-*** ../vim-7.3.029/src/testdir/Make_amiga.mak 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Make_amiga.mak 2010-10-20 16:27:19.000000000 +0200
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,33 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-***************
-*** 120,122 ****
---- 120,123 ----
- test71.out: test71.in
- test72.out: test72.in
- test73.out: test73.in
-+ test74.out: test74.in
-*** ../vim-7.3.029/src/testdir/Make_dos.mak 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Make_dos.mak 2010-10-20 16:13:35.000000000 +0200
-***************
-*** 27,33 ****
- test30.out test31.out test32.out test33.out test34.out \
- 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
-
- SCRIPTS32 = test50.out test70.out
-
---- 27,34 ----
- test30.out test31.out test32.out test33.out test34.out \
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.029/src/testdir/Make_ming.mak 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Make_ming.mak 2010-10-20 16:26:54.000000000 +0200
-***************
-*** 47,53 ****
- test30.out test31.out test32.out test33.out test34.out \
- 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 test72.out
-
- SCRIPTS32 = test50.out test70.out
-
---- 47,54 ----
- test30.out test31.out test32.out test33.out test34.out \
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.029/src/testdir/Make_os2.mak 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Make_os2.mak 2010-10-20 16:13:35.000000000 +0200
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,33 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.029/src/testdir/Make_vms.mms 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/Make_vms.mms 2010-10-20 16:13:35.000000000 +0200
-***************
-*** 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
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 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
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.029/src/testdir/Makefile 2010-09-14 12:47:30.000000000 +0200
---- src/testdir/Makefile 2010-10-20 16:13:35.000000000 +0200
-***************
-*** 10,15 ****
---- 10,16 ----
- # This will make testing about 10 times as slow.
- # VALGRIND = valgrind --tool=memcheck --leak-check=yes --num-callers=15 --log-file=valgrind.$*
-
-+
- SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
- test7.out test8.out test9.out test10.out test11.out \
- test12.out test13.out test14.out test15.out test17.out \
-***************
-*** 23,29 ****
- test54.out test55.out test56.out test57.out test58.out \
- 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
-
- SCRIPTS_GUI = test16.out
-
---- 24,31 ----
- test54.out test55.out test56.out test57.out test58.out \
- 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
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.029/src/testdir/main.aap 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/main.aap 2010-10-20 16:13:35.000000000 +0200
-***************
-*** 13,19 ****
- test33.out test34.out test35.out test36.out test37.out
- test38.out test39.out test40.out test41.out test42.out
- test43.out test44.out test45.out test46.out test47.out
-! test48.out test49.out
-
- ScriptsGUI = test16.out
-
---- 13,19 ----
- test33.out test34.out test35.out test36.out test37.out
- test38.out test39.out test40.out test41.out test42.out
- test43.out test44.out test45.out test46.out test47.out
-! test48.out test49.out test74.out
-
- ScriptsGUI = test16.out
-
-*** ../vim-7.3.029/src/testdir/test74.in 2010-10-20 17:41:30.000000000 +0200
---- src/testdir/test74.in 2010-10-20 17:37:52.000000000 +0200
-***************
-*** 0 ****
---- 1,36 ----
-+ " Tests for storing global variables in the .viminfo file vim: set ft=vim:
-+
-+ STARTTEST
-+ :so small.vim
-+ :" Do all test in a separate window to avoid E211 when we recursively
-+ :" delete the Xfind directory during cleanup
-+ :"
-+ :" This will cause a few errors, do it silently.
-+ :set visualbell
-+ :set nocp viminfo+=!,nviminfo
-+ :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}
-+ :" store a really long list, so line wrapping will occur in viminfo file
-+ :let MY_GLOBAL_LIST=range(1,100)
-+ :wv! Xviminfo
-+ :unlet MY_GLOBAL_DICT
-+ :unlet MY_GLOBAL_LIST
-+ :rv! Xviminfo
-+ :call delete('Xviminfo')
-+ :if exists("MY_GLOBAL_DICT")
-+ :redir >> test.out
-+ :echo MY_GLOBAL_DICT
-+ :redir end
-+ :endif
-+ :if exists("MY_GLOBAL_LIST")
-+ :redir >> test.out
-+ :echo MY_GLOBAL_LIST
-+ :redir end
-+ :endif
-+ :redir >> test.out
-+ :echo "foobar"
-+ :redir end
-+ :endif
-+ :qa!
-+ ENDTEST
-+
-+ eof
-*** ../vim-7.3.029/src/testdir/test74.ok 2010-10-20 17:41:30.000000000 +0200
---- src/testdir/test74.ok 2010-10-20 17:36:57.000000000 +0200
-***************
-*** 0 ****
---- 1,5 ----
-+
-+ {'foo': 1, 'longvarible': 1000, 'bar': 0}
-+ [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
-+
-+ foobar
-*** ../vim-7.3.029/src/version.c 2010-10-15 20:20:00.000000000 +0200
---- src/version.c 2010-10-20 17:23:54.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 30,
- /**/
-
---
-Not too long ago, cut and paste was done with scissors and glue...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.031 b/source/ap/vim/patches/7.3.031
deleted file mode 100644
index abe994643..000000000
--- a/source/ap/vim/patches/7.3.031
+++ /dev/null
@@ -1,121 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.031
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.031
-Problem: Can't pass the X window ID to another application.
-Solution: Add v:windowid. (Christian J. Robinson, Lech Lorens)
-Files: runtime/doc/eval.txt, src/eval.c, src/gui.c, src/vim.h,
- src/os_unix.c
-
-
-*** ../vim-7.3.030/runtime/doc/eval.txt 2010-08-15 21:57:15.000000000 +0200
---- runtime/doc/eval.txt 2010-10-20 19:11:03.000000000 +0200
-***************
-*** 1657,1662 ****
---- 1657,1667 ----
- *v:warningmsg* *warningmsg-variable*
- v:warningmsg Last given warning message. It's allowed to set this variable.
-
-+ *v:windowid* *windowid-variable*
-+ v:windowid When any X11 based GUI is running or when running in a
-+ terminal and Vim connects to the X server (|-X|) this will be
-+ set to the window ID. Otherwise the value is zero.
-+
- ==============================================================================
- 4. Builtin Functions *functions*
-
-*** ../vim-7.3.030/src/eval.c 2010-10-20 17:44:01.000000000 +0200
---- src/eval.c 2010-10-20 18:48:40.000000000 +0200
-***************
-*** 362,367 ****
---- 362,368 ----
- {VV_NAME("operator", VAR_STRING), VV_RO},
- {VV_NAME("searchforward", VAR_NUMBER), 0},
- {VV_NAME("oldfiles", VAR_LIST), 0},
-+ {VV_NAME("windowid", VAR_NUMBER), VV_RO},
- };
-
- /* shorthand */
-*** ../vim-7.3.030/src/gui.c 2010-09-29 17:26:57.000000000 +0200
---- src/gui.c 2010-10-20 19:15:56.000000000 +0200
-***************
-*** 105,112 ****
---- 105,122 ----
-
- #if defined(FEAT_GUI_GTK) || defined(FEAT_GUI_X11)
- if (gui.in_use)
-+ {
-+ # ifdef FEAT_EVAL
-+ Window x11_window;
-+ Display *x11_display;
-+
-+ if (gui_get_x11_windis(&x11_window, &x11_display) == OK)
-+ set_vim_var_nr(VV_WINDOWID, (long)x11_window);
-+ # endif
-+
- /* Display error messages in a dialog now. */
- display_errors();
-+ }
- #endif
-
- #if defined(MAY_FORK) && !defined(__QNXNTO__)
-*** ../vim-7.3.030/src/vim.h 2010-10-10 17:08:28.000000000 +0200
---- src/vim.h 2010-10-20 18:48:40.000000000 +0200
-***************
-*** 1842,1848 ****
- #define VV_OP 52
- #define VV_SEARCHFORWARD 53
- #define VV_OLDFILES 54
-! #define VV_LEN 55 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
---- 1842,1849 ----
- #define VV_OP 52
- #define VV_SEARCHFORWARD 53
- #define VV_OLDFILES 54
-! #define VV_WINDOWID 55
-! #define VV_LEN 56 /* number of v: vars */
-
- #ifdef FEAT_CLIPBOARD
-
-*** ../vim-7.3.030/src/os_unix.c 2010-10-13 16:22:05.000000000 +0200
---- src/os_unix.c 2010-10-20 19:15:46.000000000 +0200
-***************
-*** 1738,1743 ****
---- 1738,1748 ----
- }
- if (x11_window == 0 || x11_display == NULL)
- return (result = FAIL);
-+
-+ # ifdef FEAT_EVAL
-+ set_vim_var_nr(VV_WINDOWID, (long)x11_window);
-+ # endif
-+
- return (result = OK);
- }
-
-*** ../vim-7.3.030/src/version.c 2010-10-20 17:44:01.000000000 +0200
---- src/version.c 2010-10-20 19:11:31.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 31,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.032 b/source/ap/vim/patches/7.3.032
deleted file mode 100644
index 74647989f..000000000
--- a/source/ap/vim/patches/7.3.032
+++ /dev/null
@@ -1,704 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.032
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.032
-Problem: maparg() doesn't return the flags, such as <buffer>, <script>,
- <silent>. These are needed to save and restore a mapping.
-Solution: Improve maparg(). (also by Christian Brabandt)
-Files: runtime/doc/eval.txt, src/eval.c, src/getchar.c, src/gui_w48.c, src/message.c, src/proto/getchar.pro, src/proto/message.pro, src/structs.h src/testdir/test75.in, src/testdir/test75.ok
-
-
-*** ../vim-7.3.031/runtime/doc/eval.txt 2010-10-20 19:17:43.000000000 +0200
---- runtime/doc/eval.txt 2010-10-20 19:44:41.000000000 +0200
-***************
-*** 1827,1833 ****
- 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}]])
- String rhs of mapping {name} in mode {mode}
- mapcheck( {name}[, {mode} [, {abbr}]])
- String check for mappings matching {name}
---- 1827,1833 ----
- 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}
-***************
-*** 3971,3993 ****
- further items in {expr} are processed.
-
-
-! maparg({name}[, {mode} [, {abbr}]]) *maparg()*
-! Return the rhs of mapping {name} in mode {mode}. When there
-! is no mapping for {name}, an empty String is returned.
- {mode} can be one of these strings:
- "n" Normal
-! "v" Visual
- "o" Operator-pending
- "i" Insert
- "c" Cmd-line
- "l" langmap |language-mapping|
- "" Normal, Visual and Operator-pending
- When {mode} is omitted, the modes for "" are used.
- When {abbr} is there and it is non-zero use abbreviations
- instead of mappings.
-! The {name} can have special key names, like in the ":map"
-! command. The returned String has special characters
-! translated like in the output of the ":map" command listing.
- The mappings local to the current buffer are checked first,
- then the global mappings.
- This function can be used to map a key even when it's already
---- 3972,4022 ----
- further items in {expr} are processed.
-
-
-! maparg({name}[, {mode} [, {abbr} [, {dict}]]]) *maparg()*
-! When {dict} is omitted or zero: Return the rhs of mapping
-! {name} in mode {mode}. The returned String has special
-! characters translated like in the output of the ":map" command
-! listing.
-!
-! When there is no mapping for {name}, an empty String is
-! returned.
-!
-! The {name} can have special key names, like in the ":map"
-! command.
-!
- {mode} can be one of these strings:
- "n" Normal
-! "v" Visual (including Select)
- "o" Operator-pending
- "i" Insert
- "c" Cmd-line
-+ "s" Select
-+ "x" Visual
- "l" langmap |language-mapping|
- "" Normal, Visual and Operator-pending
- When {mode} is omitted, the modes for "" are used.
-+
- When {abbr} is there and it is non-zero use abbreviations
- instead of mappings.
-!
-! When {dict} is there and it is non-zero return a dictionary
-! containing all the information of the mapping with the
-! following items:
-! "lhs" The {lhs} of the mapping.
-! "rhs" The {rhs} of the mapping as typed.
-! "silent" 1 for a |:map-silent| mapping, else 0.
-! "noremap" 1 if the {rhs} of the mapping is remappable.
-! "expr" 1 for an expression mapping (|:map-<expr>|).
-! "buffer" 1 for a buffer local mapping (|:map-local|).
-! "mode" Modes for which the mapping is defined. In
-! addition to the modes mentioned above, these
-! characters will be used:
-! " " Normal, Visual and Operator-pending
-! "!" Insert and Commandline mode
-! (|mapmpde-ic|)
-! "sid" the Script local ID, used for <sid> mappings
-! (|<SID>|)
-!
- The mappings local to the current buffer are checked first,
- then the global mappings.
- This function can be used to map a key even when it's already
-*** ../vim-7.3.031/src/eval.c 2010-10-20 19:17:43.000000000 +0200
---- src/eval.c 2010-10-20 21:15:55.000000000 +0200
-***************
-*** 7804,7810 ****
- {"log10", 1, 1, f_log10},
- #endif
- {"map", 2, 2, f_map},
-! {"maparg", 1, 3, f_maparg},
- {"mapcheck", 1, 3, f_mapcheck},
- {"match", 2, 4, f_match},
- {"matchadd", 2, 4, f_matchadd},
---- 7804,7810 ----
- {"log10", 1, 1, f_log10},
- #endif
- {"map", 2, 2, f_map},
-! {"maparg", 1, 4, f_maparg},
- {"mapcheck", 1, 3, f_mapcheck},
- {"match", 2, 4, f_match},
- {"matchadd", 2, 4, f_matchadd},
-***************
-*** 13292,13299 ****
- char_u *keys_buf = NULL;
- char_u *rhs;
- int mode;
-- garray_T ga;
- int abbr = FALSE;
-
- /* return empty string for failure */
- rettv->v_type = VAR_STRING;
---- 13292,13301 ----
- char_u *keys_buf = NULL;
- char_u *rhs;
- int mode;
- int abbr = FALSE;
-+ int get_dict = FALSE;
-+ mapblock_T *mp;
-+ int buffer_local;
-
- /* return empty string for failure */
- rettv->v_type = VAR_STRING;
-***************
-*** 13307,13313 ****
---- 13309,13319 ----
- {
- which = get_tv_string_buf_chk(&argvars[1], buf);
- if (argvars[2].v_type != VAR_UNKNOWN)
-+ {
- abbr = get_tv_number(&argvars[2]);
-+ if (argvars[3].v_type != VAR_UNKNOWN)
-+ get_dict = get_tv_number(&argvars[3]);
-+ }
- }
- else
- which = (char_u *)"";
-***************
-*** 13317,13335 ****
- mode = get_map_mode(&which, 0);
-
- keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
-! rhs = check_map(keys, mode, exact, FALSE, abbr);
- vim_free(keys_buf);
-- if (rhs != NULL)
-- {
-- ga_init(&ga);
-- ga.ga_itemsize = 1;
-- ga.ga_growsize = 40;
-
-! while (*rhs != NUL)
-! ga_concat(&ga, str2special(&rhs, FALSE));
-
-! ga_append(&ga, NUL);
-! rettv->vval.v_string = (char_u *)ga.ga_data;
- }
- }
-
---- 13323,13356 ----
- mode = get_map_mode(&which, 0);
-
- keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, FALSE);
-! rhs = check_map(keys, mode, exact, FALSE, abbr, &mp, &buffer_local);
- vim_free(keys_buf);
-
-! if (!get_dict)
-! {
-! /* Return a string. */
-! if (rhs != NULL)
-! rettv->vval.v_string = str2special_save(rhs, FALSE);
-!
-! }
-! else if (rettv_dict_alloc(rettv) != FAIL && rhs != NULL)
-! {
-! /* Return a dictionary. */
-! char_u *lhs = str2special_save(mp->m_keys, TRUE);
-! char_u *mapmode = map_mode_to_chars(mp->m_mode);
-! dict_T *dict = rettv->vval.v_dict;
-!
-! dict_add_nr_str(dict, "lhs", 0L, lhs);
-! dict_add_nr_str(dict, "rhs", 0L, mp->m_orig_str);
-! dict_add_nr_str(dict, "noremap", mp->m_noremap ? 1L : 0L , NULL);
-! dict_add_nr_str(dict, "expr", mp->m_expr ? 1L : 0L, NULL);
-! dict_add_nr_str(dict, "silent", mp->m_silent ? 1L : 0L, NULL);
-! dict_add_nr_str(dict, "sid", (long)mp->m_script_ID, NULL);
-! dict_add_nr_str(dict, "buffer", (long)buffer_local, NULL);
-! dict_add_nr_str(dict, "mode", 0L, mapmode);
-
-! vim_free(lhs);
-! vim_free(mapmode);
- }
- }
-
-*** ../vim-7.3.031/src/getchar.c 2010-08-15 21:57:25.000000000 +0200
---- src/getchar.c 2010-10-20 21:16:24.000000000 +0200
-***************
-*** 3168,3173 ****
---- 3168,3174 ----
- int expr = FALSE;
- #endif
- int noremap;
-+ char_u *orig_rhs;
-
- keys = arg;
- map_table = maphash;
-***************
-*** 3266,3271 ****
---- 3267,3273 ----
- }
- if (*p != NUL)
- *p++ = NUL;
-+
- p = skipwhite(p);
- rhs = p;
- hasarg = (*rhs != NUL);
-***************
-*** 3290,3295 ****
---- 3292,3298 ----
- keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
- if (hasarg)
- {
-+ orig_rhs = rhs;
- if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
- rhs = (char_u *)"";
- else
-***************
-*** 3298,3304 ****
-
- #ifdef FEAT_FKMAP
- /*
-! * when in right-to-left mode and alternate keymap option set,
- * reverse the character flow in the rhs in Farsi.
- */
- if (p_altkeymap && curwin->w_p_rl)
---- 3301,3307 ----
-
- #ifdef FEAT_FKMAP
- /*
-! * When in right-to-left mode and alternate keymap option set,
- * reverse the character flow in the rhs in Farsi.
- */
- if (p_altkeymap && curwin->w_p_rl)
-***************
-*** 3556,3561 ****
---- 3559,3566 ----
- }
- vim_free(mp->m_str);
- mp->m_str = newstr;
-+ vim_free(mp->m_orig_str);
-+ mp->m_orig_str = vim_strsave(orig_rhs);
- mp->m_noremap = noremap;
- mp->m_silent = silent;
- mp->m_mode = mode;
-***************
-*** 3633,3642 ****
---- 3638,3649 ----
-
- mp->m_keys = vim_strsave(keys);
- mp->m_str = vim_strsave(rhs);
-+ mp->m_orig_str = vim_strsave(orig_rhs);
- if (mp->m_keys == NULL || mp->m_str == NULL)
- {
- vim_free(mp->m_keys);
- vim_free(mp->m_str);
-+ vim_free(mp->m_orig_str);
- vim_free(mp);
- retval = 4; /* no mem */
- goto theend;
-***************
-*** 3682,3687 ****
---- 3689,3695 ----
- mp = *mpp;
- vim_free(mp->m_keys);
- vim_free(mp->m_str);
-+ vim_free(mp->m_orig_str);
- *mpp = mp->m_next;
- vim_free(mp);
- }
-***************
-*** 3851,3862 ****
- }
- }
-
- static void
- showmap(mp, local)
- mapblock_T *mp;
- int local; /* TRUE for buffer-local map */
- {
-! int len = 1;
-
- if (msg_didout || msg_silent != 0)
- {
---- 3859,3915 ----
- }
- }
-
-+ /*
-+ * Return characters to represent the map mode in an allocated string.
-+ * Returns NULL when out of memory.
-+ */
-+ char_u *
-+ map_mode_to_chars(mode)
-+ int mode;
-+ {
-+ garray_T mapmode;
-+
-+ ga_init2(&mapmode, 1, 7);
-+
-+ if ((mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
-+ ga_append(&mapmode, '!'); /* :map! */
-+ else if (mode & INSERT)
-+ ga_append(&mapmode, 'i'); /* :imap */
-+ else if (mode & LANGMAP)
-+ ga_append(&mapmode, 'l'); /* :lmap */
-+ else if (mode & CMDLINE)
-+ ga_append(&mapmode, 'c'); /* :cmap */
-+ else if ((mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
-+ == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
-+ ga_append(&mapmode, ' '); /* :map */
-+ else
-+ {
-+ if (mode & NORMAL)
-+ ga_append(&mapmode, 'n'); /* :nmap */
-+ if (mode & OP_PENDING)
-+ ga_append(&mapmode, 'o'); /* :omap */
-+ if ((mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
-+ ga_append(&mapmode, 'v'); /* :vmap */
-+ else
-+ {
-+ if (mode & VISUAL)
-+ ga_append(&mapmode, 'x'); /* :xmap */
-+ if (mode & SELECTMODE)
-+ ga_append(&mapmode, 's'); /* :smap */
-+ }
-+ }
-+
-+ ga_append(&mapmode, NUL);
-+ return (char_u *)mapmode.ga_data;
-+ }
-+
- static void
- showmap(mp, local)
- mapblock_T *mp;
- int local; /* TRUE for buffer-local map */
- {
-! int len = 1;
-! char_u *mapchars;
-
- if (msg_didout || msg_silent != 0)
- {
-***************
-*** 3864,3912 ****
- if (got_int) /* 'q' typed at MORE prompt */
- return;
- }
-! if ((mp->m_mode & (INSERT + CMDLINE)) == INSERT + CMDLINE)
-! msg_putchar('!'); /* :map! */
-! else if (mp->m_mode & INSERT)
-! msg_putchar('i'); /* :imap */
-! else if (mp->m_mode & LANGMAP)
-! msg_putchar('l'); /* :lmap */
-! else if (mp->m_mode & CMDLINE)
-! msg_putchar('c'); /* :cmap */
-! else if ((mp->m_mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING))
-! == NORMAL + VISUAL + SELECTMODE + OP_PENDING)
-! msg_putchar(' '); /* :map */
-! else
- {
-! len = 0;
-! if (mp->m_mode & NORMAL)
-! {
-! msg_putchar('n'); /* :nmap */
-! ++len;
-! }
-! if (mp->m_mode & OP_PENDING)
-! {
-! msg_putchar('o'); /* :omap */
-! ++len;
-! }
-! if ((mp->m_mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE)
-! {
-! msg_putchar('v'); /* :vmap */
-! ++len;
-! }
-! else
-! {
-! if (mp->m_mode & VISUAL)
-! {
-! msg_putchar('x'); /* :xmap */
-! ++len;
-! }
-! if (mp->m_mode & SELECTMODE)
-! {
-! msg_putchar('s'); /* :smap */
-! ++len;
-! }
-! }
- }
- while (++len <= 3)
- msg_putchar(' ');
-
---- 3917,3931 ----
- if (got_int) /* 'q' typed at MORE prompt */
- return;
- }
-!
-! mapchars = map_mode_to_chars(mp->m_mode);
-! if (mapchars != NULL)
- {
-! msg_puts(mapchars);
-! len = STRLEN(mapchars);
-! vim_free(mapchars);
- }
-+
- while (++len <= 3)
- msg_putchar(' ');
-
-***************
-*** 3931,3938 ****
- msg_putchar(' ');
-
- /* Use FALSE below if we only want things like <Up> to show up as such on
-! * the rhs, and not M-x etc, TRUE gets both -- webb
-! */
- if (*mp->m_str == NUL)
- msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
- else
---- 3950,3956 ----
- msg_putchar(' ');
-
- /* Use FALSE below if we only want things like <Up> to show up as such on
-! * the rhs, and not M-x etc, TRUE gets both -- webb */
- if (*mp->m_str == NUL)
- msg_puts_attr((char_u *)"<Nop>", hl_attr(HLF_8));
- else
-***************
-*** 4995,5013 ****
- sourcing_name = save_name;
- }
-
-! #ifdef FEAT_EVAL
- /*
-! * Check the string "keys" against the lhs of all mappings
-! * Return pointer to rhs of mapping (mapblock->m_str)
-! * NULL otherwise
- */
- char_u *
-! check_map(keys, mode, exact, ign_mod, abbr)
- char_u *keys;
- int mode;
- int exact; /* require exact match */
- int ign_mod; /* ignore preceding modifier */
- int abbr; /* do abbreviations */
- {
- int hash;
- int len, minlen;
---- 5013,5033 ----
- sourcing_name = save_name;
- }
-
-! #if defined(FEAT_EVAL) || defined(PROTO)
- /*
-! * Check the string "keys" against the lhs of all mappings.
-! * Return pointer to rhs of mapping (mapblock->m_str).
-! * NULL when no mapping found.
- */
- char_u *
-! check_map(keys, mode, exact, ign_mod, abbr, mp_ptr, local_ptr)
- char_u *keys;
- int mode;
- int exact; /* require exact match */
- int ign_mod; /* ignore preceding modifier */
- int abbr; /* do abbreviations */
-+ mapblock_T **mp_ptr; /* return: pointer to mapblock or NULL */
-+ int *local_ptr; /* return: buffer-local mapping or NULL */
- {
- int hash;
- int len, minlen;
-***************
-*** 5062,5068 ****
---- 5082,5094 ----
- minlen = mp->m_keylen - 3;
- }
- if (STRNCMP(s, keys, minlen) == 0)
-+ {
-+ if (mp_ptr != NULL)
-+ *mp_ptr = mp;
-+ if (local_ptr != NULL)
-+ *local_ptr = local;
- return mp->m_str;
-+ }
- }
- }
- }
-*** ../vim-7.3.031/src/gui_w48.c 2010-08-15 21:57:29.000000000 +0200
---- src/gui_w48.c 2010-10-20 20:29:20.000000000 +0200
-***************
-*** 1810,1816 ****
- * mapped we want to use the mapping instead. */
- if (vk == VK_F10
- && gui.menu_is_active
-! && check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
- break;
- #endif
- if (GetKeyState(VK_SHIFT) & 0x8000)
---- 1810,1817 ----
- * mapped we want to use the mapping instead. */
- if (vk == VK_F10
- && gui.menu_is_active
-! && check_map(k10, State, FALSE, TRUE, FALSE,
-! NULL, NULL) == NULL)
- break;
- #endif
- if (GetKeyState(VK_SHIFT) & 0x8000)
-***************
-*** 1924,1930 ****
- /* Check for <F10>: Default effect is to select the menu. When <F10> is
- * mapped we need to stop it here to avoid strange effects (e.g., for the
- * key-up event) */
-! if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE) == NULL)
- #endif
- DispatchMessage(&msg);
- }
---- 1925,1932 ----
- /* Check for <F10>: Default effect is to select the menu. When <F10> is
- * mapped we need to stop it here to avoid strange effects (e.g., for the
- * key-up event) */
-! if (vk != VK_F10 || check_map(k10, State, FALSE, TRUE, FALSE,
-! NULL, NULL) == NULL)
- #endif
- DispatchMessage(&msg);
- }
-*** ../vim-7.3.031/src/message.c 2010-08-15 21:57:29.000000000 +0200
---- src/message.c 2010-10-20 20:31:33.000000000 +0200
-***************
-*** 1477,1482 ****
---- 1477,1503 ----
- return retval;
- }
-
-+ #if defined(FEAT_EVAL) || defined(PROTO)
-+ /*
-+ * Return the lhs or rhs of a mapping, with the key codes turned into printable
-+ * strings, in an allocated string.
-+ */
-+ char_u *
-+ str2special_save(str, is_lhs)
-+ char_u *str;
-+ int is_lhs; /* TRUE for lhs, FALSE for rhs */
-+ {
-+ garray_T ga;
-+ char_u *p = str;
-+
-+ ga_init2(&ga, 1, 40);
-+ while (*p != NUL)
-+ ga_concat(&ga, str2special(&p, is_lhs));
-+ ga_append(&ga, NUL);
-+ return (char_u *)ga.ga_data;
-+ }
-+ #endif
-+
- /*
- * Return the printable string for the key codes at "*sp".
- * Used for translating the lhs or rhs of a mapping to printable chars.
-*** ../vim-7.3.031/src/proto/getchar.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/getchar.pro 2010-10-20 21:06:01.000000000 +0200
-***************
-*** 51,56 ****
---- 51,57 ----
- int get_map_mode __ARGS((char_u **cmdp, int forceit));
- void map_clear __ARGS((char_u *cmdp, char_u *arg, int forceit, int abbr));
- void map_clear_int __ARGS((buf_T *buf, int mode, int local, int abbr));
-+ char_u *map_mode_to_chars __ARGS((int mode));
- int map_to_exists __ARGS((char_u *str, char_u *modechars, int abbr));
- int map_to_exists_mode __ARGS((char_u *rhs, int mode, int abbr));
- char_u *set_context_in_map_cmd __ARGS((expand_T *xp, char_u *cmd, char_u *arg, int forceit, int isabbrev, int isunmap, cmdidx_T cmdidx));
-***************
-*** 61,67 ****
- int makemap __ARGS((FILE *fd, buf_T *buf));
- int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
- void check_map_keycodes __ARGS((void));
-! char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr));
- void init_mappings __ARGS((void));
- void add_map __ARGS((char_u *map, int mode));
- /* vim: set ft=c : */
---- 62,68 ----
- int makemap __ARGS((FILE *fd, buf_T *buf));
- int put_escstr __ARGS((FILE *fd, char_u *strstart, int what));
- void check_map_keycodes __ARGS((void));
-! char_u *check_map __ARGS((char_u *keys, int mode, int exact, int ign_mod, int abbr, mapblock_T **mp_ptr, int *local_ptr));
- void init_mappings __ARGS((void));
- void add_map __ARGS((char_u *map, int mode));
- /* vim: set ft=c : */
-*** ../vim-7.3.031/src/proto/message.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/message.pro 2010-10-20 20:31:25.000000000 +0200
-***************
-*** 33,38 ****
---- 33,39 ----
- int msg_outtrans_len_attr __ARGS((char_u *msgstr, int len, int attr));
- void msg_make __ARGS((char_u *arg));
- int msg_outtrans_special __ARGS((char_u *strstart, int from));
-+ char_u *str2special_save __ARGS((char_u *str, int is_lhs));
- char_u *str2special __ARGS((char_u **sp, int from));
- void str2specialbuf __ARGS((char_u *sp, char_u *buf, int len));
- void msg_prt_line __ARGS((char_u *s, int list));
-*** ../vim-7.3.031/src/structs.h 2010-08-15 21:57:28.000000000 +0200
---- src/structs.h 2010-10-20 20:23:38.000000000 +0200
-***************
-*** 979,987 ****
- struct mapblock
- {
- mapblock_T *m_next; /* next mapblock in list */
-! char_u *m_keys; /* mapped from */
- int m_keylen; /* strlen(m_keys) */
-! char_u *m_str; /* mapped to */
- int m_mode; /* valid mode */
- int m_noremap; /* if non-zero no re-mapping for m_str */
- char m_silent; /* <silent> used, don't echo commands */
---- 979,988 ----
- struct mapblock
- {
- mapblock_T *m_next; /* next mapblock in list */
-! char_u *m_keys; /* mapped from, lhs */
- int m_keylen; /* strlen(m_keys) */
-! char_u *m_str; /* mapped to, rhs */
-! char_u *m_orig_str; /* rhs as entered by the user */
- int m_mode; /* valid mode */
- int m_noremap; /* if non-zero no re-mapping for m_str */
- char m_silent; /* <silent> used, don't echo commands */
-*** ../vim-7.3.031/src/testdir/test75.in 2010-10-20 21:13:30.000000000 +0200
---- src/testdir/test75.in 2010-10-20 20:54:04.000000000 +0200
-***************
-*** 0 ****
---- 1,16 ----
-+ " Tests for functions.
-+
-+ STARTTEST
-+ :so small.vim
-+ :" Test maparg() with a string result
-+ :map foo<C-V> is<F4>foo
-+ :vnoremap <script> <buffer> <expr> <silent> bar isbar
-+ :call append('$', maparg('foo<C-V>'))
-+ :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
-+ :call append('$', string(maparg('bar', '', 0, 1)))
-+ :"
-+ :/^eof/+1,$w! test.out
-+ :qa!
-+ ENDTEST
-+
-+ eof
-*** ../vim-7.3.031/src/testdir/test75.ok 2010-10-20 21:13:30.000000000 +0200
---- src/testdir/test75.ok 2010-10-20 20:54:08.000000000 +0200
-***************
-*** 0 ****
---- 1,3 ----
-+ 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}
-*** ../vim-7.3.031/src/version.c 2010-10-20 19:17:43.000000000 +0200
---- src/version.c 2010-10-20 21:13:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 32,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.033 b/source/ap/vim/patches/7.3.033
deleted file mode 100644
index cffbb45d3..000000000
--- a/source/ap/vim/patches/7.3.033
+++ /dev/null
@@ -1,49 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.033
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.033 (after 7.3.032)
-Problem: Can't build without FEAT_LOCALMAP.
-Solution: Add an #ifdef. (John Marriott)
-Files: src/getchar.c
-
-
-*** ../vim-7.3.032/src/getchar.c 2010-10-20 21:22:17.000000000 +0200
---- src/getchar.c 2010-10-22 22:09:40.000000000 +0200
-***************
-*** 5086,5092 ****
---- 5086,5096 ----
- if (mp_ptr != NULL)
- *mp_ptr = mp;
- if (local_ptr != NULL)
-+ #ifdef FEAT_LOCALMAP
- *local_ptr = local;
-+ #else
-+ *local_ptr = 0;
-+ #endif
- return mp->m_str;
- }
- }
-*** ../vim-7.3.032/src/version.c 2010-10-20 21:22:17.000000000 +0200
---- src/version.c 2010-10-22 21:18:30.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 33,
- /**/
-
---
-Futility Factor: No experiment is ever a complete failure - it can always
-serve as a negative example.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.034 b/source/ap/vim/patches/7.3.034
deleted file mode 100644
index c81890e10..000000000
--- a/source/ap/vim/patches/7.3.034
+++ /dev/null
@@ -1,431 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.3.034
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.034
-Problem: Win32: may be loading .dll from the wrong directory.
-Solution: Go to the Vim executable directory when opening a library.
-Files: src/gui_w32.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
- src/if_python.c, src/if_python3.c, src/if_ruby.c, src/mbyte.c,
- src/os_mswin.c, src/os_win32.c, src/proto/os_win32.pro
-
-
-*** ../vim-7.3.033/src/gui_w32.c 2010-08-15 21:57:25.000000000 +0200
---- src/gui_w32.c 2010-10-22 21:49:27.000000000 +0200
-***************
-*** 1260,1266 ****
-
- /* try and load the user32.dll library and get the entry points for
- * multi-monitor-support. */
-! if ((user32_lib = LoadLibrary("User32.dll")) != NULL)
- {
- pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
- "MonitorFromWindow");
---- 1260,1266 ----
-
- /* try and load the user32.dll library and get the entry points for
- * multi-monitor-support. */
-! if ((user32_lib = vimLoadLib("User32.dll")) != NULL)
- {
- pMonitorFromWindow = (TMonitorFromWindow)GetProcAddress(user32_lib,
- "MonitorFromWindow");
-***************
-*** 4188,4194 ****
- static void
- dyn_imm_load(void)
- {
-! hLibImm = LoadLibrary("imm32.dll");
- if (hLibImm == NULL)
- return;
-
---- 4188,4194 ----
- static void
- dyn_imm_load(void)
- {
-! hLibImm = vimLoadLib("imm32.dll");
- if (hLibImm == NULL)
- return;
-
-*** ../vim-7.3.033/src/if_lua.c 2010-08-15 21:57:28.000000000 +0200
---- src/if_lua.c 2010-10-22 21:49:39.000000000 +0200
-***************
-*** 49,55 ****
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
-! # define load_dll LoadLibrary
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
- #endif
---- 49,55 ----
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
-! # define load_dll vimLoadLib
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
- #endif
-*** ../vim-7.3.033/src/if_mzsch.c 2010-08-15 21:57:32.000000000 +0200
---- src/if_mzsch.c 2010-10-22 21:49:53.000000000 +0200
-***************
-*** 556,563 ****
-
- if (hMzGC && hMzSch)
- return OK;
-! hMzSch = LoadLibrary(sch_dll);
-! hMzGC = LoadLibrary(gc_dll);
-
- if (!hMzSch)
- {
---- 556,563 ----
-
- if (hMzGC && hMzSch)
- return OK;
-! hMzSch = vimLoadLib(sch_dll);
-! hMzGC = vimLoadLib(gc_dll);
-
- if (!hMzSch)
- {
-*** ../vim-7.3.033/src/if_perl.xs 2010-08-15 21:57:30.000000000 +0200
---- src/if_perl.xs 2010-10-22 21:53:06.000000000 +0200
-***************
-*** 106,112 ****
- #define close_dll dlclose
- #else
- #define PERL_PROC FARPROC
-! #define load_dll LoadLibrary
- #define symbol_from_dll GetProcAddress
- #define close_dll FreeLibrary
- #endif
---- 106,112 ----
- #define close_dll dlclose
- #else
- #define PERL_PROC FARPROC
-! #define load_dll vimLoadLib
- #define symbol_from_dll GetProcAddress
- #define close_dll FreeLibrary
- #endif
-*** ../vim-7.3.033/src/if_python.c 2010-08-15 21:57:28.000000000 +0200
---- src/if_python.c 2010-10-22 21:49:57.000000000 +0200
-***************
-*** 110,116 ****
- # define close_dll dlclose
- # define symbol_from_dll dlsym
- # else
-! # define load_dll LoadLibrary
- # define close_dll FreeLibrary
- # define symbol_from_dll GetProcAddress
- # endif
---- 110,116 ----
- # define close_dll dlclose
- # define symbol_from_dll dlsym
- # else
-! # define load_dll vimLoadLib
- # define close_dll FreeLibrary
- # define symbol_from_dll GetProcAddress
- # endif
-*** ../vim-7.3.033/src/if_python3.c 2010-08-15 21:57:28.000000000 +0200
---- src/if_python3.c 2010-10-22 21:50:01.000000000 +0200
-***************
-*** 88,94 ****
- # define close_dll dlclose
- # define symbol_from_dll dlsym
- # else
-! # define load_dll LoadLibrary
- # define close_dll FreeLibrary
- # define symbol_from_dll GetProcAddress
- # endif
---- 88,94 ----
- # define close_dll dlclose
- # define symbol_from_dll dlsym
- # else
-! # define load_dll vimLoadLib
- # define close_dll FreeLibrary
- # define symbol_from_dll GetProcAddress
- # endif
-*** ../vim-7.3.033/src/if_ruby.c 2010-09-29 13:02:48.000000000 +0200
---- src/if_ruby.c 2010-10-22 21:50:04.000000000 +0200
-***************
-*** 55,61 ****
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
-! # define load_dll LoadLibrary
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
- #endif
---- 55,61 ----
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
-! # define load_dll vimLoadLib
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
- #endif
-*** ../vim-7.3.033/src/mbyte.c 2010-09-18 13:36:41.000000000 +0200
---- src/mbyte.c 2010-10-22 21:50:09.000000000 +0200
-***************
-*** 4159,4169 ****
- {
- if (hIconvDLL != 0 && hMsvcrtDLL != 0)
- return TRUE;
-! hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL);
- if (hIconvDLL == 0) /* sometimes it's called libiconv.dll */
-! hIconvDLL = LoadLibrary(DYNAMIC_ICONV_DLL_ALT);
- if (hIconvDLL != 0)
-! hMsvcrtDLL = LoadLibrary(DYNAMIC_MSVCRT_DLL);
- if (hIconvDLL == 0 || hMsvcrtDLL == 0)
- {
- /* Only give the message when 'verbose' is set, otherwise it might be
---- 4159,4169 ----
- {
- if (hIconvDLL != 0 && hMsvcrtDLL != 0)
- return TRUE;
-! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL);
- if (hIconvDLL == 0) /* sometimes it's called libiconv.dll */
-! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT);
- if (hIconvDLL != 0)
-! hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL);
- if (hIconvDLL == 0 || hMsvcrtDLL == 0)
- {
- /* Only give the message when 'verbose' is set, otherwise it might be
-*** ../vim-7.3.033/src/os_mswin.c 2010-08-15 21:57:29.000000000 +0200
---- src/os_mswin.c 2010-10-22 22:03:26.000000000 +0200
-***************
-*** 817,823 ****
---- 817,827 ----
- BOOL fRunTimeLinkSuccess = FALSE;
-
- // Get a handle to the DLL module.
-+ # ifdef WIN16
- hinstLib = LoadLibrary(libname);
-+ # else
-+ hinstLib = vimLoadLib(libname);
-+ # endif
-
- // If the handle is valid, try to get the function address.
- if (hinstLib != NULL)
-*** ../vim-7.3.033/src/os_win32.c 2010-10-13 20:37:37.000000000 +0200
---- src/os_win32.c 2010-10-23 13:16:55.000000000 +0200
-***************
-*** 206,247 ****
- static int suppress_winsize = 1; /* don't fiddle with console */
- #endif
-
- static void
- get_exe_name(void)
- {
-! char temp[256];
-! static int did_set_PATH = FALSE;
-
- if (exe_name == NULL)
- {
- /* store the name of the executable, may be used for $VIM */
-! GetModuleFileName(NULL, temp, 255);
- if (*temp != NUL)
- exe_name = FullName_save((char_u *)temp, FALSE);
- }
-
-! if (!did_set_PATH && exe_name != NULL)
- {
-! char_u *p;
-! char_u *newpath;
-!
-! /* Append our starting directory to $PATH, so that when doing "!xxd"
-! * it's found in our starting directory. Needed because SearchPath()
-! * also looks there. */
-! p = mch_getenv("PATH");
-! newpath = alloc((unsigned)(STRLEN(p) + STRLEN(exe_name) + 2));
-! if (newpath != NULL)
-! {
-! STRCPY(newpath, p);
-! STRCAT(newpath, ";");
-! vim_strncpy(newpath + STRLEN(newpath), exe_name,
-! gettail_sep(exe_name) - exe_name);
-! vim_setenv((char_u *)"PATH", newpath);
-! vim_free(newpath);
- }
-
-! did_set_PATH = TRUE;
- }
- }
-
- #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
---- 206,268 ----
- static int suppress_winsize = 1; /* don't fiddle with console */
- #endif
-
-+ static char_u *exe_path = NULL;
-+
- static void
- get_exe_name(void)
- {
-! char temp[MAXPATHL];
-! char_u *p;
-
- if (exe_name == NULL)
- {
- /* store the name of the executable, may be used for $VIM */
-! GetModuleFileName(NULL, temp, MAXPATHL - 1);
- if (*temp != NUL)
- exe_name = FullName_save((char_u *)temp, FALSE);
- }
-
-! if (exe_path == NULL && exe_name != NULL)
- {
-! exe_path = vim_strnsave(exe_name, gettail_sep(exe_name) - exe_name);
-! if (exe_path != NULL)
-! {
-! /* Append our starting directory to $PATH, so that when doing
-! * "!xxd" it's found in our starting directory. Needed because
-! * SearchPath() also looks there. */
-! p = mch_getenv("PATH");
-! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL);
-! {
-! STRCPY(temp, p);
-! STRCAT(temp, ";");
-! STRCAT(temp, exe_path);
-! vim_setenv((char_u *)"PATH", temp);
-! }
- }
-+ }
-+ }
-+
-+ /*
-+ * Load library "name".
-+ */
-+ HINSTANCE
-+ vimLoadLib(char *name)
-+ {
-+ HINSTANCE dll = NULL;
-+ char old_dir[MAXPATHL];
-
-! if (exe_path == NULL)
-! get_exe_name();
-! if (exe_path != NULL && mch_dirname(old_dir, MAXPATHL) == OK)
-! {
-! /* Change directory to where the executable is, both to make sure we
-! * find a .dll there and to avoid looking for a .dll in the current
-! * directory. */
-! mch_chdir(exe_path);
-! dll = LoadLibrary(name);
-! mch_chdir(old_dir);
- }
-+ return dll;
- }
-
- #if defined(DYNAMIC_GETTEXT) || defined(PROTO)
-***************
-*** 254,260 ****
- static char *null_libintl_bindtextdomain(const char *, const char *);
- static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
-
-! static HINSTANCE hLibintlDLL = 0;
- char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
- char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
- char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
---- 275,281 ----
- static char *null_libintl_bindtextdomain(const char *, const char *);
- static char *null_libintl_bind_textdomain_codeset(const char *, const char *);
-
-! static HINSTANCE hLibintlDLL = NULL;
- char *(*dyn_libintl_gettext)(const char *) = null_libintl_gettext;
- char *(*dyn_libintl_textdomain)(const char *) = null_libintl_textdomain;
- char *(*dyn_libintl_bindtextdomain)(const char *, const char *)
-***************
-*** 282,307 ****
- if (hLibintlDLL)
- return 1;
- /* Load gettext library (libintl.dll) */
-! hLibintlDLL = LoadLibrary(libname != NULL ? libname : GETTEXT_DLL);
- if (!hLibintlDLL)
- {
-! char_u dirname[_MAX_PATH];
-!
-! /* Try using the path from gvim.exe to find the .dll there. */
-! get_exe_name();
-! STRCPY(dirname, exe_name);
-! STRCPY(gettail(dirname), GETTEXT_DLL);
-! hLibintlDLL = LoadLibrary((char *)dirname);
-! if (!hLibintlDLL)
- {
-! if (p_verbose > 0)
-! {
-! verbose_enter();
-! EMSG2(_(e_loadlib), GETTEXT_DLL);
-! verbose_leave();
-! }
-! return 0;
- }
- }
- for (i = 0; libintl_entry[i].name != NULL
- && libintl_entry[i].ptr != NULL; ++i)
---- 303,318 ----
- if (hLibintlDLL)
- return 1;
- /* Load gettext library (libintl.dll) */
-! hLibintlDLL = vimLoadLib(libname != NULL ? libname : GETTEXT_DLL);
- if (!hLibintlDLL)
- {
-! if (p_verbose > 0)
- {
-! verbose_enter();
-! EMSG2(_(e_loadlib), GETTEXT_DLL);
-! verbose_leave();
- }
-+ return 0;
- }
- for (i = 0; libintl_entry[i].name != NULL
- && libintl_entry[i].ptr != NULL; ++i)
-***************
-*** 430,436 ****
- * Seems like a lot of overhead to load/unload ADVAPI32.DLL each
- * time we verify security...
- */
-! advapi_lib = LoadLibrary("ADVAPI32.DLL");
- if (advapi_lib != NULL)
- {
- pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
---- 441,447 ----
- * Seems like a lot of overhead to load/unload ADVAPI32.DLL each
- * time we verify security...
- */
-! advapi_lib = vimLoadLib("ADVAPI32.DLL");
- if (advapi_lib != NULL)
- {
- pSetNamedSecurityInfo = (PSNSECINFO)GetProcAddress(advapi_lib,
-*** ../vim-7.3.033/src/proto/os_win32.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/os_win32.pro 2010-10-22 22:05:35.000000000 +0200
-***************
-*** 1,4 ****
---- 1,5 ----
- /* os_win32.c */
-+ HINSTANCE vimLoadLib __ARGS((char *name));
- int dyn_libintl_init __ARGS((char *libname));
- void dyn_libintl_end __ARGS((void));
- void PlatformId __ARGS((void));
-*** ../vim-7.3.033/src/version.c 2010-10-22 22:13:47.000000000 +0200
---- src/version.c 2010-10-23 13:55:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 34,
- /**/
-
---
-This is the polymorph virus! Follow these instructions carefully:
-1. Send this message to everybody you know.
-2. Format your harddisk.
-Thank you for your cooperation in spreading the most powerful virus ever!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.035 b/source/ap/vim/patches/7.3.035
deleted file mode 100644
index 00f0cc545..000000000
--- a/source/ap/vim/patches/7.3.035
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.035
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.035 (after 7.3.034)
-Problem: Stray semicolon after if statement. (Hari G)
-Solution: Remove the semicolon.
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.034/src/os_win32.c 2010-10-23 14:02:48.000000000 +0200
---- src/os_win32.c 2010-10-24 14:31:04.000000000 +0200
-***************
-*** 231,237 ****
- * "!xxd" it's found in our starting directory. Needed because
- * SearchPath() also looks there. */
- p = mch_getenv("PATH");
-! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL);
- {
- STRCPY(temp, p);
- STRCAT(temp, ";");
---- 231,237 ----
- * "!xxd" it's found in our starting directory. Needed because
- * SearchPath() also looks there. */
- p = mch_getenv("PATH");
-! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL)
- {
- STRCPY(temp, p);
- STRCAT(temp, ";");
-*** ../vim-7.3.034/src/version.c 2010-10-23 14:02:48.000000000 +0200
---- src/version.c 2010-10-24 14:32:04.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 35,
- /**/
-
---
- [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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.036 b/source/ap/vim/patches/7.3.036
deleted file mode 100644
index 21ab47a1a..000000000
--- a/source/ap/vim/patches/7.3.036
+++ /dev/null
@@ -1,68 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.036
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.036
-Problem: Win32 GUI: When building without menus, the font for dialogs and
- tab page headers also changes.
-Solution: Define USE_SYSMENU_FONT always. (Harig G.)
-Files: src/gui_w32.c
-
-
-*** ../vim-7.3.035/src/gui_w32.c 2010-10-23 14:02:48.000000000 +0200
---- src/gui_w32.c 2010-10-25 20:29:15.000000000 +0200
-***************
-*** 289,301 ****
-
- #ifdef FEAT_MENU
- static UINT s_menu_id = 100;
-
- /*
- * Use the system font for dialogs and tear-off menus. Remove this line to
- * use DLG_FONT_NAME.
- */
-! # define USE_SYSMENU_FONT
-! #endif
-
- #define VIM_NAME "vim"
- #define VIM_CLASS "Vim"
---- 289,301 ----
-
- #ifdef FEAT_MENU
- static UINT s_menu_id = 100;
-+ #endif
-
- /*
- * Use the system font for dialogs and tear-off menus. Remove this line to
- * use DLG_FONT_NAME.
- */
-! #define USE_SYSMENU_FONT
-
- #define VIM_NAME "vim"
- #define VIM_CLASS "Vim"
-*** ../vim-7.3.035/src/version.c 2010-10-24 14:33:38.000000000 +0200
---- src/version.c 2010-10-27 12:14:39.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 36,
- /**/
-
---
-ARTHUR: Bloody peasant!
-DENNIS: Oh, what a give away. Did you hear that, did you hear that, eh?
- That's what I'm on about -- did you see him repressing me, you saw it
- didn't you?
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.037 b/source/ap/vim/patches/7.3.037
deleted file mode 100644
index 488934efd..000000000
--- a/source/ap/vim/patches/7.3.037
+++ /dev/null
@@ -1,137 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.037
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.037
-Problem: Compiler warnings for loss of data. (Mike Williams)
-Solution: Add type casts.
-Files: src/if_py_both.h, src/getchar.c, src/os_win32.c
-
-
-*** ../vim-7.3.036/src/if_py_both.h 2010-09-21 16:49:29.000000000 +0200
---- src/if_py_both.h 2010-10-25 20:37:07.000000000 +0200
-***************
-*** 154,160 ****
- {
- PyInt len = ptr - str;
-
-! if (ga_grow(&io_ga, len + 1) == FAIL)
- break;
-
- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
---- 154,160 ----
- {
- PyInt len = ptr - str;
-
-! if (ga_grow(&io_ga, (int)(len + 1)) == FAIL)
- break;
-
- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)len);
-***************
-*** 166,175 ****
- }
-
- /* Put the remaining text into io_ga for later printing. */
-! if (n > 0 && ga_grow(&io_ga, n + 1) == OK)
- {
- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
-! io_ga.ga_len += n;
- }
- }
-
---- 166,175 ----
- }
-
- /* Put the remaining text into io_ga for later printing. */
-! if (n > 0 && ga_grow(&io_ga, (int)(n + 1)) == OK)
- {
- mch_memmove(((char *)io_ga.ga_data) + io_ga.ga_len, str, (size_t)n);
-! io_ga.ga_len += (int)n;
- }
- }
-
-*** ../vim-7.3.036/src/getchar.c 2010-10-22 22:13:47.000000000 +0200
---- src/getchar.c 2010-10-25 20:39:31.000000000 +0200
-***************
-*** 3922,3928 ****
- if (mapchars != NULL)
- {
- msg_puts(mapchars);
-! len = STRLEN(mapchars);
- vim_free(mapchars);
- }
-
---- 3922,3928 ----
- if (mapchars != NULL)
- {
- msg_puts(mapchars);
-! len = (int)STRLEN(mapchars);
- vim_free(mapchars);
- }
-
-*** ../vim-7.3.036/src/os_win32.c 2010-10-24 14:33:38.000000000 +0200
---- src/os_win32.c 2010-10-25 20:38:49.000000000 +0200
-***************
-*** 224,230 ****
-
- if (exe_path == NULL && exe_name != NULL)
- {
-! exe_path = vim_strnsave(exe_name, gettail_sep(exe_name) - exe_name);
- if (exe_path != NULL)
- {
- /* Append our starting directory to $PATH, so that when doing
---- 224,231 ----
-
- if (exe_path == NULL && exe_name != NULL)
- {
-! exe_path = vim_strnsave(exe_name,
-! (int)(gettail_sep(exe_name) - exe_name));
- if (exe_path != NULL)
- {
- /* Append our starting directory to $PATH, so that when doing
-***************
-*** 2374,2380 ****
- /* To avoid a slow failure append "\*" when searching a directory,
- * server or network share. */
- STRCPY(szTrueNameTemp, szTrueName);
-! slen = strlen(szTrueNameTemp);
- if (*porig == psepc && slen + 2 < _MAX_PATH)
- STRCPY(szTrueNameTemp + slen, "\\*");
-
---- 2375,2381 ----
- /* To avoid a slow failure append "\*" when searching a directory,
- * server or network share. */
- STRCPY(szTrueNameTemp, szTrueName);
-! slen = (int)strlen(szTrueNameTemp);
- if (*porig == psepc && slen + 2 < _MAX_PATH)
- STRCPY(szTrueNameTemp + slen, "\\*");
-
-*** ../vim-7.3.036/src/version.c 2010-10-27 12:15:28.000000000 +0200
---- src/version.c 2010-10-27 12:16:53.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 37,
- /**/
-
---
-ARTHUR: You fight with the strength of many men, Sir knight.
- I am Arthur, King of the Britons. [pause]
- I seek the finest and the bravest knights in the land to join me
- in my Court of Camelot. [pause]
- You have proved yourself worthy; will you join me? [pause]
- You make me sad. So be it. Come, Patsy.
-BLACK KNIGHT: None shall pass.
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.038 b/source/ap/vim/patches/7.3.038
deleted file mode 100644
index cea2cf9ee..000000000
--- a/source/ap/vim/patches/7.3.038
+++ /dev/null
@@ -1,76 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.038
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.038
-Problem: v:windowid isn't set on MS-Windows.
-Solution: Set it to the window handle. (Chris Sutcliffe)
-Files: runtime/doc/eval.txt, src/gui_w32.c
-
-
-*** ../vim-7.3.037/runtime/doc/eval.txt 2010-10-20 21:22:17.000000000 +0200
---- runtime/doc/eval.txt 2010-10-27 12:23:37.000000000 +0200
-***************
-*** 1660,1666 ****
- *v:windowid* *windowid-variable*
- v:windowid When any X11 based GUI is running or when running in a
- terminal and Vim connects to the X server (|-X|) this will be
-! set to the window ID. Otherwise the value is zero.
-
- ==============================================================================
- 4. Builtin Functions *functions*
---- 1660,1670 ----
- *v:windowid* *windowid-variable*
- v:windowid When any X11 based GUI is running or when running in a
- terminal and Vim connects to the X server (|-X|) this will be
-! set to the window ID.
-! When an MS-Windows GUI is running this will be set to the
-! window handle.
-! Otherwise the value is zero.
-! Note: for windows inside Vim use |winnr()|.
-
- ==============================================================================
- 4. Builtin Functions *functions*
-*** ../vim-7.3.037/src/gui_w32.c 2010-10-27 12:15:28.000000000 +0200
---- src/gui_w32.c 2010-10-27 12:21:22.000000000 +0200
-***************
-*** 1573,1578 ****
---- 1573,1583 ----
- # endif
- #endif
-
-+ #ifdef FEAT_EVAL
-+ /* set the v:windowid variable */
-+ set_vim_var_nr(VV_WINDOWID, (long)s_hwnd);
-+ #endif
-+
- theend:
- /* Display any pending error messages */
- display_errors();
-*** ../vim-7.3.037/src/version.c 2010-10-27 12:17:54.000000000 +0200
---- src/version.c 2010-10-27 12:24:38.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 38,
- /**/
-
---
-ARTHUR: What?
-BLACK KNIGHT: None shall pass.
-ARTHUR: I have no quarrel with you, good Sir knight, but I must cross
- this bridge.
-BLACK KNIGHT: Then you shall die.
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.039 b/source/ap/vim/patches/7.3.039
deleted file mode 100644
index 2414fc7b6..000000000
--- a/source/ap/vim/patches/7.3.039
+++ /dev/null
@@ -1,90 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.039
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.039
-Problem: Crash when using skk.vim plugin.
-Solution: Get length of expression evaluation result only after checking for
- NULL. (Noriaki Yagi, Dominique Pelle)
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.038/src/ex_getln.c 2010-09-29 15:50:14.000000000 +0200
---- src/ex_getln.c 2010-10-27 12:42:00.000000000 +0200
-***************
-*** 688,711 ****
- p = get_expr_line();
- --textlock;
- restore_cmdline(&save_ccline);
-- len = (int)STRLEN(p);
-
-! if (p != NULL && realloc_cmdbuff(len + 1) == OK)
- {
-! ccline.cmdlen = len;
-! STRCPY(ccline.cmdbuff, p);
-! vim_free(p);
-!
-! /* Restore the cursor or use the position set with
-! * set_cmdline_pos(). */
-! if (new_cmdpos > ccline.cmdlen)
-! ccline.cmdpos = ccline.cmdlen;
-! else
-! ccline.cmdpos = new_cmdpos;
-!
-! KeyTyped = FALSE; /* Don't do p_wc completion. */
-! redrawcmd();
-! goto cmdline_changed;
- }
- }
- beep_flush();
---- 688,714 ----
- p = get_expr_line();
- --textlock;
- restore_cmdline(&save_ccline);
-
-! if (p != NULL)
- {
-! len = (int)STRLEN(p);
-! if (realloc_cmdbuff(len + 1) == OK)
-! {
-! ccline.cmdlen = len;
-! STRCPY(ccline.cmdbuff, p);
-! vim_free(p);
-!
-! /* Restore the cursor or use the position set with
-! * set_cmdline_pos(). */
-! if (new_cmdpos > ccline.cmdlen)
-! ccline.cmdpos = ccline.cmdlen;
-! else
-! ccline.cmdpos = new_cmdpos;
-!
-! KeyTyped = FALSE; /* Don't do p_wc completion. */
-! redrawcmd();
-! goto cmdline_changed;
-! }
- }
- }
- beep_flush();
-*** ../vim-7.3.038/src/version.c 2010-10-27 12:33:12.000000000 +0200
---- src/version.c 2010-10-27 12:43:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 39,
- /**/
-
---
-"Hegel was right when he said that we learn from history that man can
-never learn anything from history." (George Bernard Shaw)
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.040 b/source/ap/vim/patches/7.3.040
deleted file mode 100644
index 6174cbd90..000000000
--- a/source/ap/vim/patches/7.3.040
+++ /dev/null
@@ -1,48 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.040
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.040
-Problem: Comparing strings while ignoring case goes beyond end of the
- string when there are illegal bytes. (Dominique Pelle)
-Solution: Explicitly check for illegal bytes.
-Files: src/mbyte.c
-
-
-*** ../vim-7.3.039/src/mbyte.c 2010-10-23 14:02:48.000000000 +0200
---- src/mbyte.c 2010-10-27 13:34:16.000000000 +0200
-***************
-*** 3124,3129 ****
---- 3124,3132 ----
- /* 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)
-*** ../vim-7.3.039/src/version.c 2010-10-27 12:58:19.000000000 +0200
---- src/version.c 2010-10-27 13:25:16.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 40,
- /**/
-
---
- With sufficient thrust, pigs fly just fine.
- -- RFC 1925
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.041 b/source/ap/vim/patches/7.3.041
deleted file mode 100644
index 60a987d99..000000000
--- a/source/ap/vim/patches/7.3.041
+++ /dev/null
@@ -1,57 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.041
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.041
-Problem: Compiler warning for accessing mediumVersion. (Tony Mechelynck)
-Solution: Use the pointer instead of the array itself. (Dominique Pelle)
-Files: src/version.c
-
-
-*** ../vim-7.3.040/src/version.c 2010-10-27 13:37:39.000000000 +0200
---- src/version.c 2010-10-27 15:58:26.000000000 +0200
-***************
-*** 1342,1350 ****
- if (highest_patch())
- {
- /* Check for 9.9x or 9.9xx, alpha/beta version */
-! if (isalpha((int)mediumVersion[3]))
- {
-! if (isalpha((int)mediumVersion[4]))
- sprintf((char *)vers + 5, ".%d%s", highest_patch(),
- mediumVersion + 5);
- else
---- 1344,1352 ----
- if (highest_patch())
- {
- /* 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
-*** ../vim-7.3.040/src/version.c 2010-10-27 13:37:39.000000000 +0200
---- src/version.c 2010-10-27 15:58:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 41,
- /**/
-
---
-ARTHUR: I command you as King of the Britons to stand aside!
-BLACK KNIGHT: I move for no man.
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.042 b/source/ap/vim/patches/7.3.042
deleted file mode 100644
index 6f8ab3751..000000000
--- a/source/ap/vim/patches/7.3.042
+++ /dev/null
@@ -1,65 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.042
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.042
-Problem: No spell highlighting when re-using an empty buffer.
-Solution: Clear the spell checking info only when clearing the options for a
- buffer. (James Vega)
-Files: src/buffer.c
-
-
-*** ../vim-7.3.041/src/buffer.c 2010-09-21 16:56:29.000000000 +0200
---- src/buffer.c 2010-10-27 16:09:26.000000000 +0200
-***************
-*** 639,644 ****
---- 639,647 ----
- {
- clear_wininfo(buf); /* including window-local options */
- free_buf_options(buf, TRUE);
-+ #ifdef FEAT_SPELL
-+ ga_clear(&buf->b_s.b_langp);
-+ #endif
- }
- #ifdef FEAT_EVAL
- vars_clear(&buf->b_vars.dv_hashtab); /* free all internal variables */
-***************
-*** 661,669 ****
- vim_free(buf->b_start_fenc);
- buf->b_start_fenc = NULL;
- #endif
-- #ifdef FEAT_SPELL
-- ga_clear(&buf->b_s.b_langp);
-- #endif
- }
-
- /*
---- 664,669 ----
-*** ../vim-7.3.041/src/version.c 2010-10-27 16:01:17.000000000 +0200
---- src/version.c 2010-10-27 16:10:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 42,
- /**/
-
---
-BLACK KNIGHT: I move for no man.
-ARTHUR: So be it!
- [hah] [parry thrust]
- [ARTHUR chops the BLACK KNIGHT's left arm off]
-ARTHUR: Now stand aside, worthy adversary.
-BLACK KNIGHT: 'Tis but a scratch.
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.043 b/source/ap/vim/patches/7.3.043
deleted file mode 100644
index 0bdbec56b..000000000
--- a/source/ap/vim/patches/7.3.043
+++ /dev/null
@@ -1,460 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.043
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.043
-Problem: Can't load Ruby dynamically on Unix.
-Solution: Adjust the configure script. (James Vega)
-Files: src/Makefile, src/config.h.in, src/configure.in,
- src/auto/configure, src/if_ruby.c
-
-
-*** ../vim-7.3.042/src/Makefile 2010-08-16 21:59:00.000000000 +0200
---- src/Makefile 2010-10-27 16:46:41.000000000 +0200
-***************
-*** 414,425 ****
---- 414,429 ----
- # However, this may still cause problems, such as "import termios" failing.
- # Build two separate versions of Vim in that case.
- #CONF_OPT_PYTHON = --enable-pythoninterp
-+ #CONF_OPT_PYTHON = --enable-pythoninterp=dynamic
- #CONF_OPT_PYTHON3 = --enable-python3interp
-+ #CONF_OPT_PYTHON3 = --enable-python3interp=dynamic
-
- # RUBY
- # Uncomment this when you want to include the Ruby interface.
-+ # First one for static linking, second one for loading when used.
- # Note: you need the development package (e.g., ruby1.9.1-dev on Ubuntu).
- #CONF_OPT_RUBY = --enable-rubyinterp
-+ #CONF_OPT_RUBY = --enable-rubyinterp=dynamic
- #CONF_OPT_RUBY = --enable-rubyinterp --with-ruby-command=ruby1.9.1
-
- # TCL
-***************
-*** 1047,1054 ****
- INSTALL_DATA = cp
- INSTALL_DATA_R = cp -r
-
-! ### Program to run on installed binary
- #STRIP = strip
-
- ### Permissions for binaries {{{1
- BINMOD = 755
---- 1051,1059 ----
- INSTALL_DATA = cp
- INSTALL_DATA_R = cp -r
-
-! ### Program to run on installed binary. Use the second one to disable strip.
- #STRIP = strip
-+ #STRIP = /bin/true
-
- ### Permissions for binaries {{{1
- BINMOD = 755
-***************
-*** 1321,1327 ****
- .SUFFIXES: .c .o .pro
-
- PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
-! POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(RUBY_CFLAGS) $(EXTRA_DEFS)
-
- ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
-
---- 1326,1332 ----
- .SUFFIXES: .c .o .pro
-
- PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
-! POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
-
- ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
-
-***************
-*** 1329,1335 ****
- # with "-E".
- OSDEF_CFLAGS = $(PRE_DEFS) $(POST_DEFS)
-
-! LINT_CFLAGS = -DLINT -I. $(PRE_DEFS) $(POST_DEFS) $(LUA_CFLAGS) $(PERL_CFLAGS) $(PYTHON_CFLAGS) -Dinline= -D__extension__= -Dalloca=alloca
-
- LINT_EXTRA = -DUSE_SNIFF -DHANGUL_INPUT -D"__attribute__(x)="
-
---- 1334,1340 ----
- # 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)="
-
-***************
-*** 2532,2538 ****
- $(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
-
- objects/if_ruby.o: if_ruby.c
-! $(CCC) -o $@ if_ruby.c
-
- objects/if_sniff.o: if_sniff.c
- $(CCC) -o $@ if_sniff.c
---- 2537,2543 ----
- $(CCC) $(PYTHON3_CFLAGS) $(PYTHON3_CFLAGS_EXTRA) -o $@ if_python3.c
-
- objects/if_ruby.o: if_ruby.c
-! $(CCC) $(RUBY_CFLAGS) -o $@ if_ruby.c
-
- objects/if_sniff.o: if_sniff.c
- $(CCC) -o $@ if_sniff.c
-*** ../vim-7.3.042/src/config.h.in 2010-08-15 21:57:32.000000000 +0200
---- src/config.h.in 2010-10-27 16:21:24.000000000 +0200
-***************
-*** 349,354 ****
---- 349,357 ----
- /* Define if you want to include the Ruby interpreter. */
- #undef FEAT_RUBY
-
-+ /* Define for linking via dlopen() or LoadLibrary() */
-+ #undef DYNAMIC_RUBY
-+
- /* Define if you want to include the Tcl interpreter. */
- #undef FEAT_TCL
-
-*** ../vim-7.3.042/src/configure.in 2010-08-15 21:57:28.000000000 +0200
---- src/configure.in 2010-10-27 16:20:53.000000000 +0200
-***************
-*** 1299,1308 ****
-
- AC_MSG_CHECKING(--enable-rubyinterp argument)
- AC_ARG_ENABLE(rubyinterp,
-! [ --enable-rubyinterp Include Ruby interpreter.], ,
- [enable_rubyinterp="no"])
- AC_MSG_RESULT($enable_rubyinterp)
-! if test "$enable_rubyinterp" = "yes"; 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),
---- 1299,1308 ----
-
- AC_MSG_CHECKING(--enable-rubyinterp argument)
- AC_ARG_ENABLE(rubyinterp,
-! [ --enable-rubyinterp[=OPTS] Include Ruby interpreter. [default=no] [OPTS=no/yes/dynamic]], ,
- [enable_rubyinterp="no"])
- 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),
-***************
-*** 1360,1365 ****
---- 1360,1371 ----
- RUBY_OBJ="objects/if_ruby.o"
- RUBY_PRO="if_ruby.pro"
- AC_DEFINE(FEAT_RUBY)
-+ if test "$enable_rubyinterp" = "dynamic"; then
-+ libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG[["RUBY_SO_NAME"]], Config::CONFIG[["DLEXT"]]'`
-+ AC_DEFINE(DYNAMIC_RUBY)
-+ RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-+ RUBY_LIBS=
-+ fi
- else
- AC_MSG_RESULT(not found; disabling Ruby)
- fi
-*** ../vim-7.3.042/src/auto/configure 2010-08-15 21:57:27.000000000 +0200
---- src/auto/configure 2010-10-27 16:28:10.000000000 +0200
-***************
-*** 1427,1433 ****
- --enable-pythoninterp=OPTS Include Python interpreter. default=no OPTS=no/yes/dynamic
- --enable-python3interp=OPTS Include Python3 interpreter. default=no OPTS=no/yes/dynamic
- --enable-tclinterp Include Tcl interpreter.
-! --enable-rubyinterp Include Ruby interpreter.
- --enable-cscope Include cscope interface.
- --enable-workshop Include Sun Visual Workshop support.
- --disable-netbeans Disable NetBeans integration support.
---- 1427,1433 ----
- --enable-pythoninterp=OPTS Include Python interpreter. default=no OPTS=no/yes/dynamic
- --enable-python3interp=OPTS Include Python3 interpreter. default=no OPTS=no/yes/dynamic
- --enable-tclinterp Include Tcl interpreter.
-! --enable-rubyinterp=OPTS Include Ruby interpreter. default=no OPTS=no/yes/dynamic
- --enable-cscope Include cscope interface.
- --enable-workshop Include Sun Visual Workshop support.
- --disable-netbeans Disable NetBeans integration support.
-***************
-*** 6103,6109 ****
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
- $as_echo "$enable_rubyinterp" >&6; }
-! if test "$enable_rubyinterp" = "yes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
- $as_echo_n "checking --with-ruby-command argument... " >&6; }
-
---- 6103,6109 ----
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5
- $as_echo "$enable_rubyinterp" >&6; }
-! if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5
- $as_echo_n "checking --with-ruby-command argument... " >&6; }
-
-***************
-*** 6209,6214 ****
---- 6209,6221 ----
- RUBY_PRO="if_ruby.pro"
- $as_echo "#define FEAT_RUBY 1" >>confdefs.h
-
-+ if test "$enable_rubyinterp" = "dynamic"; then
-+ libruby=`$vi_cv_path_ruby -r rbconfig -e 'printf "lib%s.%s\n", Config::CONFIG["RUBY_SO_NAME"], Config::CONFIG["DLEXT"]'`
-+ $as_echo "#define DYNAMIC_RUBY 1" >>confdefs.h
-+
-+ RUBY_CFLAGS="-DDYNAMIC_RUBY_DLL=\\\"$libruby\\\" -DDYNAMIC_RUBY_VER=$rubyversion $RUBY_CFLAGS"
-+ RUBY_LIBS=
-+ fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found; disabling Ruby" >&5
- $as_echo "not found; disabling Ruby" >&6; }
-*** ../vim-7.3.042/src/if_ruby.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_ruby.c 2010-10-27 16:40:27.000000000 +0200
-***************
-*** 14,19 ****
---- 14,21 ----
- #include <stdio.h>
- #include <string.h>
-
-+ #include "auto/config.h"
-+
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
- # define NT
-***************
-*** 48,60 ****
- # define RUBY_EXPORT
- # endif
-
-! #if !(defined(WIN32) || defined(_WIN64))
- # include <dlfcn.h>
-! # define HANDLE void*
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
- # define load_dll vimLoadLib
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
---- 50,64 ----
- # define RUBY_EXPORT
- # endif
-
-! #ifndef WIN3264
- # include <dlfcn.h>
-! # define HINSTANCE void*
-! # define RUBY_PROC void*
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
- # define symbol_from_dll dlsym
- # define close_dll dlclose
- #else
-+ # define RUBY_PROC FARPROC
- # define load_dll vimLoadLib
- # define symbol_from_dll GetProcAddress
- # define close_dll FreeLibrary
-***************
-*** 174,180 ****
---- 178,186 ----
- #define rb_lastline_get dll_rb_lastline_get
- #define rb_lastline_set dll_rb_lastline_set
- #define rb_load_protect dll_rb_load_protect
-+ #ifndef RUBY19_OR_LATER
- #define rb_num2long dll_rb_num2long
-+ #endif
- #define rb_num2ulong dll_rb_num2ulong
- #define rb_obj_alloc dll_rb_obj_alloc
- #define rb_obj_as_string dll_rb_obj_as_string
-***************
-*** 186,191 ****
---- 192,200 ----
- #ifdef rb_str_new2
- /* Ruby may #define rb_str_new2 to use rb_str_new_cstr. */
- # define need_rb_str_new_cstr 1
-+ /* Ruby's headers #define rb_str_new_cstr to make use of GCC's
-+ * __builtin_constant_p extension. */
-+ # undef rb_str_new_cstr
- # define rb_str_new_cstr dll_rb_str_new_cstr
- #else
- # define rb_str_new2 dll_rb_str_new2
-***************
-*** 206,214 ****
- #endif
- #define ruby_init dll_ruby_init
- #define ruby_init_loadpath dll_ruby_init_loadpath
-! #define NtInitialize dll_NtInitialize
-! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-! # define rb_w32_snprintf dll_rb_w32_snprintf
- #endif
-
- #ifdef RUBY19_OR_LATER
---- 215,225 ----
- #endif
- #define ruby_init dll_ruby_init
- #define ruby_init_loadpath dll_ruby_init_loadpath
-! #ifdef WIN3264
-! # define NtInitialize dll_NtInitialize
-! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-! # define rb_w32_snprintf dll_rb_w32_snprintf
-! # endif
- #endif
-
- #ifdef RUBY19_OR_LATER
-***************
-*** 283,289 ****
---- 294,305 ----
- #endif
- static void (*dll_ruby_init) (void);
- static void (*dll_ruby_init_loadpath) (void);
-+ #ifdef WIN3264
- static void (*dll_NtInitialize) (int*, char***);
-+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-+ static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
-+ # endif
-+ #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- static char * (*dll_rb_string_value_ptr) (volatile VALUE*);
- static VALUE (*dll_rb_float_new) (double);
-***************
-*** 293,301 ****
- #ifdef RUBY19_OR_LATER
- static VALUE (*dll_rb_int2big)(SIGNED_VALUE);
- #endif
-- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
-- static int (*dll_rb_w32_snprintf)(char*, size_t, const char*, ...);
-- #endif
-
- #ifdef RUBY19_OR_LATER
- static void (*dll_ruby_script) (const char*);
---- 309,314 ----
-***************
-*** 317,328 ****
- }
- #endif
-
-! static HINSTANCE hinstRuby = 0; /* Instance of ruby.dll */
-
- /*
- * Table of name to function pointer of ruby.
- */
-- #define RUBY_PROC FARPROC
- static struct
- {
- char *name;
---- 330,340 ----
- }
- #endif
-
-! static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */
-
- /*
- * Table of name to function pointer of ruby.
- */
- static struct
- {
- char *name;
-***************
-*** 387,401 ****
- #endif
- {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
- {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
- {
-! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
- "NtInitialize",
-! #else
- "ruby_sysinit",
-! #endif
- (RUBY_PROC*)&dll_NtInitialize},
-! #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
- #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
---- 399,415 ----
- #endif
- {"ruby_init", (RUBY_PROC*)&dll_ruby_init},
- {"ruby_init_loadpath", (RUBY_PROC*)&dll_ruby_init_loadpath},
-+ #ifdef WIN3264
- {
-! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 19
- "NtInitialize",
-! # else
- "ruby_sysinit",
-! # endif
- (RUBY_PROC*)&dll_NtInitialize},
-! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- {"rb_w32_snprintf", (RUBY_PROC*)&dll_rb_w32_snprintf},
-+ # endif
- #endif
- #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 18
- {"rb_string_value_ptr", (RUBY_PROC*)&dll_rb_string_value_ptr},
-***************
-*** 424,430 ****
- if (hinstRuby)
- {
- close_dll(hinstRuby);
-! hinstRuby = 0;
- }
- }
-
---- 438,444 ----
- if (hinstRuby)
- {
- close_dll(hinstRuby);
-! hinstRuby = NULL;
- }
- }
-
-***************
-*** 454,460 ****
- ruby_funcname_table[i].name)))
- {
- close_dll(hinstRuby);
-! hinstRuby = 0;
- if (verbose)
- EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
- return FAIL;
---- 468,474 ----
- ruby_funcname_table[i].name)))
- {
- close_dll(hinstRuby);
-! hinstRuby = NULL;
- if (verbose)
- EMSG2(_(e_loadfunc), ruby_funcname_table[i].name);
- return FAIL;
-***************
-*** 936,944 ****
- return line ? vim_str2rb_enc_str(line) : Qnil;
- }
- rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
-- #ifndef __GNUC__
- return Qnil; /* For stop warning */
-- #endif
- }
-
- static VALUE buffer_aref(VALUE self, VALUE num)
---- 950,956 ----
-*** ../vim-7.3.042/src/version.c 2010-10-27 16:17:56.000000000 +0200
---- src/version.c 2010-10-27 16:45:28.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 43,
- /**/
-
---
-ARTHUR: A scratch? Your arm's off!
-BLACK KNIGHT: No, it isn't.
-ARTHUR: Well, what's that then?
-BLACK KNIGHT: I've had worse.
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.044 b/source/ap/vim/patches/7.3.044
deleted file mode 100644
index 6a66763db..000000000
--- a/source/ap/vim/patches/7.3.044
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.044
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.044
-Problem: The preview window opened by the popup menu is larger than
- specified with 'previewheight'. (Benjamin Haskell)
-Solution: Use 'previewheight' if it's set and smaller.
-Files: src/popupmnu.c
-
-
-*** ../vim-7.3.043/src/popupmnu.c 2010-08-15 21:57:25.000000000 +0200
---- src/popupmnu.c 2010-10-27 17:04:31.000000000 +0200
-***************
-*** 558,565 ****
- win_T *curwin_save = curwin;
- int res = OK;
-
-! /* Open a preview window. 3 lines by default. */
- g_do_tagpreview = 3;
- resized = prepare_tagpreview(FALSE);
- g_do_tagpreview = 0;
-
---- 558,568 ----
- win_T *curwin_save = curwin;
- int res = OK;
-
-! /* Open a preview window. 3 lines by default. Prefer
-! * 'previewheight' if set and smaller. */
- g_do_tagpreview = 3;
-+ if (p_pvh > 0 && p_pvh < g_do_tagpreview)
-+ g_do_tagpreview = p_pvh;
- resized = prepare_tagpreview(FALSE);
- g_do_tagpreview = 0;
-
-*** ../vim-7.3.043/src/version.c 2010-10-27 16:49:41.000000000 +0200
---- src/version.c 2010-10-27 17:08:37.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 44,
- /**/
-
---
-"It's so simple to be wise. Just think of something stupid to say
-and then don't say it." -- Sam Levenson
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.045 b/source/ap/vim/patches/7.3.045
deleted file mode 100644
index e8112b97b..000000000
--- a/source/ap/vim/patches/7.3.045
+++ /dev/null
@@ -1,57 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.045
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.045
-Problem: Compiler warning for uninitialized variable.
-Solution: Initialize the variable always.
-Files: src/getchar.c
-
-
-*** ../vim-7.3.044/src/getchar.c 2010-10-27 12:17:54.000000000 +0200
---- src/getchar.c 2010-10-27 17:28:45.000000000 +0200
-***************
-*** 3290,3298 ****
- */
- if (haskey)
- keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
- if (hasarg)
- {
-- orig_rhs = rhs;
- if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
- rhs = (char_u *)"";
- else
---- 3290,3298 ----
- */
- if (haskey)
- keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE, special);
-+ orig_rhs = rhs;
- if (hasarg)
- {
- if (STRICMP(rhs, "<nop>") == 0) /* "<Nop>" means nothing */
- rhs = (char_u *)"";
- else
-*** ../vim-7.3.044/src/version.c 2010-10-27 17:11:11.000000000 +0200
---- src/version.c 2010-10-27 17:30:11.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 45,
- /**/
-
---
-MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes
- for future use in casseroles and sauces.
-MY WAY: What leftover wine?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.046 b/source/ap/vim/patches/7.3.046
deleted file mode 100644
index 41d4f66e7..000000000
--- a/source/ap/vim/patches/7.3.046
+++ /dev/null
@@ -1,76 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.046
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.046 (after 7.3.043)
-Problem: Can't build Ruby on MS-Windows.
-Solution: Add #ifdef, don't use WIN3264 before including vim.h.
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.045/src/if_ruby.c 2010-10-27 16:49:41.000000000 +0200
---- src/if_ruby.c 2010-10-27 17:37:05.000000000 +0200
-***************
-*** 14,20 ****
- #include <stdio.h>
- #include <string.h>
-
-! #include "auto/config.h"
-
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
---- 14,22 ----
- #include <stdio.h>
- #include <string.h>
-
-! #ifdef HAVE_CONFIG_H
-! # include "auto/config.h"
-! #endif
-
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
-***************
-*** 50,56 ****
- # define RUBY_EXPORT
- # endif
-
-! #ifndef WIN3264
- # include <dlfcn.h>
- # define HINSTANCE void*
- # define RUBY_PROC void*
---- 52,58 ----
- # define RUBY_EXPORT
- # endif
-
-! #if !(defined(WIN32) || defined(_WIN64))
- # include <dlfcn.h>
- # define HINSTANCE void*
- # define RUBY_PROC void*
-*** ../vim-7.3.045/src/version.c 2010-10-27 17:39:00.000000000 +0200
---- src/version.c 2010-10-27 17:39:59.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 46,
- /**/
-
---
-BLACK KNIGHT: Come on you pansy!
- [hah] [parry thrust]
- [ARTHUR chops the BLACK KNIGHT's right arm off]
-ARTHUR: Victory is mine! [kneeling]
- We thank thee Lord, that in thy merc-
- [Black Knight kicks Arthur in the head while he is praying]
- 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.047 b/source/ap/vim/patches/7.3.047
deleted file mode 100644
index 6f6e32d42..000000000
--- a/source/ap/vim/patches/7.3.047
+++ /dev/null
@@ -1,172 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.047
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.047 (after 7.3.032)
-Problem: Missing makefile updates for test 75.
-Solution: Update the makefiles.
-Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
- src/testdir/Makefile, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mms
-
-
-*** ../vim-7.3.046/src/testdir/Make_amiga.mak 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Make_amiga.mak 2010-10-20 20:43:25.000000000 +0200
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,33 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-***************
-*** 121,123 ****
---- 121,124 ----
- test72.out: test72.in
- test73.out: test73.in
- test74.out: test74.in
-+ test75.out: test75.in
-*** ../vim-7.3.046/src/testdir/Make_dos.mak 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Make_dos.mak 2010-10-20 20:43:48.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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.046/src/testdir/Makefile 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Makefile 2010-10-20 20:44:10.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
-
- 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
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.046/src/testdir/Make_ming.mak 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Make_ming.mak 2010-10-20 20:43:53.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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.046/src/testdir/Make_os2.mak 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Make_os2.mak 2010-10-20 20:44:00.000000000 +0200
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,33 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.046/src/testdir/Make_vms.mms 2010-10-20 17:44:01.000000000 +0200
---- src/testdir/Make_vms.mms 2010-10-20 20:44:05.000000000 +0200
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2010 Aug 04
- #
- # 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: 2010 Oct 20
- #
- # 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
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 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
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
-*** ../vim-7.3.046/src/version.c 2010-10-27 17:40:53.000000000 +0200
---- src/version.c 2010-10-27 18:34:20.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 47,
- /**/
-
---
-5 out of 4 people have trouble with fractions.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.048 b/source/ap/vim/patches/7.3.048
deleted file mode 100644
index db84480f1..000000000
--- a/source/ap/vim/patches/7.3.048
+++ /dev/null
@@ -1,109 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.048
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.048
-Problem: ":earlier 1f" doesn't work after loading undo file.
-Solution: Set b_u_save_nr_cur when loading an undo file. (Christian
- Brabandt)
- Fix only showing time in ":undolist"
-Files: src/undo.c
-
-
-*** ../vim-7.3.047/src/undo.c 2010-08-15 21:57:28.000000000 +0200
---- src/undo.c 2010-11-03 19:26:38.000000000 +0100
-***************
-*** 1861,1866 ****
---- 1861,1867 ----
- curbuf->b_u_seq_cur = seq_cur;
- curbuf->b_u_time_cur = seq_time;
- curbuf->b_u_save_nr_last = last_save_nr;
-+ curbuf->b_u_save_nr_cur = last_save_nr;
-
- curbuf->b_u_synced = TRUE;
- vim_free(uhp_table);
-***************
-*** 2794,2800 ****
- uhp->uh_time);
- if (uhp->uh_save_nr > 0)
- {
-! while (STRLEN(IObuff) < 32)
- STRCAT(IObuff, " ");
- vim_snprintf_add((char *)IObuff, IOSIZE,
- " %3ld", uhp->uh_save_nr);
---- 2795,2801 ----
- uhp->uh_time);
- if (uhp->uh_save_nr > 0)
- {
-! while (STRLEN(IObuff) < 33)
- STRCAT(IObuff, " ");
- vim_snprintf_add((char *)IObuff, IOSIZE,
- " %3ld", uhp->uh_save_nr);
-***************
-*** 2849,2855 ****
- sort_strings((char_u **)ga.ga_data, ga.ga_len);
-
- msg_start();
-! msg_puts_attr((char_u *)_("number changes time saved"),
- hl_attr(HLF_T));
- for (i = 0; i < ga.ga_len && !got_int; ++i)
- {
---- 2850,2856 ----
- sort_strings((char_u **)ga.ga_data, ga.ga_len);
-
- msg_start();
-! msg_puts_attr((char_u *)_("number changes when saved"),
- hl_attr(HLF_T));
- for (i = 0; i < ga.ga_len && !got_int; ++i)
- {
-***************
-*** 2879,2885 ****
- if (time(NULL) - tt >= 100)
- {
- curtime = localtime(&tt);
-! (void)strftime((char *)buf, buflen, "%H:%M:%S", curtime);
- }
- else
- #endif
---- 2880,2894 ----
- if (time(NULL) - tt >= 100)
- {
- curtime = localtime(&tt);
-! 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
- #endif
-*** ../vim-7.3.047/src/version.c 2010-10-27 18:36:32.000000000 +0200
---- src/version.c 2010-11-03 19:27:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 48,
- /**/
-
---
-TIM: To the north there lies a cave, the cave of Caerbannog, wherein, carved
- in mystic runes, upon the very living rock, the last words of Olfin
- Bedwere of Rheged make plain the last resting place of the most 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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.049 b/source/ap/vim/patches/7.3.049
deleted file mode 100644
index 365aeaba4..000000000
--- a/source/ap/vim/patches/7.3.049
+++ /dev/null
@@ -1,495 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.049
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.049
-Problem: PLT has rebranded their Scheme to Racket.
-Solution: Add support for Racket 5.x. (Sergey Khorev)
-Files: src/Make_cyg.mak, src/Make_ming.mak, src/Make_mvc.mak,
- src/auto/configure, src/configure.in, src/if_mzsch.c
-
-
-*** ../vim-7.3.048/src/Make_cyg.mak 2010-08-15 21:57:27.000000000 +0200
---- src/Make_cyg.mak 2010-11-03 21:50:42.000000000 +0100
-***************
-*** 1,6 ****
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2010 Feb 24
- #
- # Also read INSTALLpc.txt!
- #
---- 1,6 ----
- #
- # Makefile for VIM on Win32, using Cygnus gcc
-! # Last updated by Dan Sharp. Last Change: 2010 Nov 03
- #
- # Also read INSTALLpc.txt!
- #
-***************
-*** 27,32 ****
---- 27,33 ----
- # MZSCHEME_VER define to version of MzScheme being used (209_000)
- # DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes)
- # MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build.
-+ # MZSCHEME_USE_RACKET define to use "racket" instead of "mzsch".
- # LUA define to path to Lua dir to get Lua support (not defined)
- # LUA_VER define to version of Lua being used (51)
- # DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes)
-***************
-*** 254,269 ****
- MZSCHEME_GENERATE_BASE=no
- endif
-
- ifeq (yes, $(DYNAMIC_MZSCHEME))
-! DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- else
- ifndef MZSCHEME_DLLS
- MZSCHEME_DLLS = $(MZSCHEME)
- endif
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
-! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
- else
-! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
- endif
---- 255,276 ----
- MZSCHEME_GENERATE_BASE=no
- endif
-
-+ ifndef MZSCHEME_USE_RACKET
-+ MZSCHEME_MAIN_LIB=mzsch
-+ else
-+ MZSCHEME_MAIN_LIB=racket
-+ endif
-+
- ifeq (yes, $(DYNAMIC_MZSCHEME))
-! DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- else
- ifndef MZSCHEME_DLLS
- MZSCHEME_DLLS = $(MZSCHEME)
- endif
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
-! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
- else
-! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB)
- endif
-*** ../vim-7.3.048/src/Make_ming.mak 2010-09-29 18:42:25.000000000 +0200
---- src/Make_ming.mak 2010-11-03 21:48:14.000000000 +0100
-***************
-*** 141,151 ****
- MZSCHEME_GENERATE_BASE=no
- endif
-
- ifeq (no,$(DYNAMIC_MZSCHEME))
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
-! MZSCHEME_LIB=-lmzsch$(MZSCHEME_VER)
- else
-! MZSCHEME_LIB = -lmzsch$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- # the modern MinGW can dynamically link to dlls directly.
- # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
---- 141,157 ----
- MZSCHEME_GENERATE_BASE=no
- endif
-
-+ ifndef MZSCHEME_USE_RACKET
-+ MZSCHEME_MAIN_LIB=mzsch
-+ else
-+ MZSCHEME_MAIN_LIB=racket
-+ endif
-+
- ifeq (no,$(DYNAMIC_MZSCHEME))
- ifeq (yes,$(MZSCHEME_PRECISE_GC))
-! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER)
- else
-! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER)
- endif
- # the modern MinGW can dynamically link to dlls directly.
- # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll
-***************
-*** 343,349 ****
- ifdef MZSCHEME
- CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
- ifeq (yes, $(DYNAMIC_MZSCHEME))
-! CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- endif
- endif
-
---- 349,355 ----
- ifdef MZSCHEME
- CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\"
- ifeq (yes, $(DYNAMIC_MZSCHEME))
-! CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- endif
- endif
-
-*** ../vim-7.3.048/src/Make_mvc.mak 2010-08-15 21:57:27.000000000 +0200
---- src/Make_mvc.mak 2010-11-03 21:48:14.000000000 +0100
-***************
-*** 705,716 ****
- MZSCHEME_VER = 205_000
- !endif
- CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
-! !if EXIST("$(MZSCHEME)\collects\scheme\base.ss")
-! # for MzScheme 4.x we need to include byte code for basic Scheme stuff
- MZSCHEME_EXTRA_DEP = mzscheme_base.c
- CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
- !endif
-! !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib") \
- && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
- !message Building with Precise GC
- MZSCHEME_PRECISE_GC = yes
---- 705,722 ----
- MZSCHEME_VER = 205_000
- !endif
- CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include
-! !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \
-! || EXIST("$(MZSCHEME)\collects\scheme\base.rkt")
-! # for MzScheme >= 4 we need to include byte code for basic Scheme stuff
- MZSCHEME_EXTRA_DEP = mzscheme_base.c
- CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE
- !endif
-! !if EXIST("$(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib")
-! MZSCHEME_MAIN_LIB=mzsch
-! !else
-! MZSCHEME_MAIN_LIB=racket
-! !endif
-! !if EXIST("$(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib") \
- && !EXIST("$(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib")
- !message Building with Precise GC
- MZSCHEME_PRECISE_GC = yes
-***************
-*** 722,728 ****
- !endif
- !message MzScheme DLLs will be loaded dynamically
- CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
-! -DDYNAMIC_MZSCH_DLL=\"libmzsch$(MZSCHEME_VER).dll\" \
- -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- !else
- !if "$(MZSCHEME_DEBUG)" == "yes"
---- 728,734 ----
- !endif
- !message MzScheme DLLs will be loaded dynamically
- CFLAGS = $(CFLAGS) -DDYNAMIC_MZSCHEME \
-! -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" \
- -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\"
- !else
- !if "$(MZSCHEME_DEBUG)" == "yes"
-***************
-*** 730,739 ****
- !endif
- !if "$(MZSCHEME_PRECISE_GC)" == "yes"
- # Precise GC does not use separate dll
-! MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
- !else
- MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
-! $(MZSCHEME)\lib\msvc\libmzsch$(MZSCHEME_VER).lib
- !endif
- !endif
- MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
---- 736,745 ----
- !endif
- !if "$(MZSCHEME_PRECISE_GC)" == "yes"
- # Precise GC does not use separate dll
-! MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
- !else
- MZSCHEME_LIB = $(MZSCHEME)\lib\msvc\libmzgc$(MZSCHEME_VER).lib \
-! $(MZSCHEME)\lib\msvc\lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).lib
- !endif
- !endif
- MZSCHEME_OBJ = $(OUTDIR)\if_mzsch.obj
-*** ../vim-7.3.048/src/auto/configure 2010-10-27 16:49:41.000000000 +0200
---- src/auto/configure 2010-11-03 21:53:09.000000000 +0100
-***************
-*** 4862,4877 ****
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
-! $as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
-! if test -f /usr/include/plt/scheme.h; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
-! SCHEME_INC=/usr/include/plt
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! vi_cv_path_mzscheme_pfx=
- fi
- fi
- fi
---- 4862,4897 ----
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket" >&5
-! $as_echo_n "checking if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket... " >&6; }
-! if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
- $as_echo "yes" >&6; }
-! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/plt/" >&5
-! $as_echo_n "checking if scheme.h can be found in /usr/include/plt/... " >&6; }
-! if test -f /usr/include/plt/scheme.h; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-! $as_echo "yes" >&6; }
-! SCHEME_INC=/usr/include/plt
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-! $as_echo "no" >&6; }
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking if scheme.h can be found in /usr/include/racket/" >&5
-! $as_echo_n "checking if scheme.h can be found in /usr/include/racket/... " >&6; }
-! if test -f /usr/include/racket/scheme.h; then
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-! $as_echo "yes" >&6; }
-! SCHEME_INC=/usr/include/racket
-! else
-! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-! $as_echo "no" >&6; }
-! vi_cv_path_mzscheme_pfx=
-! fi
-! fi
- fi
- fi
- fi
-***************
-*** 4883,4894 ****
- elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
- fi
---- 4903,4924 ----
- elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
-! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
-! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
-! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
-+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
-+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
-+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
- fi
-***************
-*** 4901,4910 ****
- fi
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
- SCHEME_COLLECTS=lib/plt/
- fi
- if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
-! MZSCHEME_EXTRA="mzscheme_base.c"
-! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
- MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
- fi
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
---- 4931,4950 ----
- fi
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
- SCHEME_COLLECTS=lib/plt/
-+ else
-+ if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-+ SCHEME_COLLECTS=lib/racket/
-+ fi
- fi
- if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
-! MZSCHEME_EXTRA="mzscheme_base.c"
-! else
-! if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
-! MZSCHEME_EXTRA="mzscheme_base.c"
-! fi
-! fi
-! if test "X$MZSCHEME_EXTRA" != "X" ; then
-! MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
- MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
- fi
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
-*** ../vim-7.3.048/src/configure.in 2010-10-27 16:49:41.000000000 +0200
---- src/configure.in 2010-11-03 21:48:14.000000000 +0100
-***************
-*** 568,580 ****
- SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
- else
- AC_MSG_RESULT(no)
-! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
-! if test -f /usr/include/plt/scheme.h; then
- AC_MSG_RESULT(yes)
-! SCHEME_INC=/usr/include/plt
- else
- AC_MSG_RESULT(no)
-! vi_cv_path_mzscheme_pfx=
- fi
- fi
- fi
---- 568,594 ----
- SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
- else
- AC_MSG_RESULT(no)
-! AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/racket)
-! if test -f $vi_cv_path_mzscheme_pfx/include/racket/scheme.h; then
- AC_MSG_RESULT(yes)
-! SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/racket
- else
- AC_MSG_RESULT(no)
-! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
-! if test -f /usr/include/plt/scheme.h; then
-! AC_MSG_RESULT(yes)
-! SCHEME_INC=/usr/include/plt
-! else
-! AC_MSG_RESULT(no)
-! AC_MSG_CHECKING(if scheme.h can be found in /usr/include/racket/)
-! if test -f /usr/include/racket/scheme.h; then
-! AC_MSG_RESULT(yes)
-! SCHEME_INC=/usr/include/racket
-! else
-! AC_MSG_RESULT(no)
-! vi_cv_path_mzscheme_pfx=
-! fi
-! fi
- fi
- fi
- fi
-***************
-*** 586,598 ****
- elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- dnl Using shared objects
- if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
- fi
---- 600,622 ----
- elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then
-! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"
-! MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.a"; then
-! MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libracket.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
-! elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"; then
- MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
- else
- dnl Using shared objects
- if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
- MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.so"; then
-+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket3m"
-+ MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
-+ elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket.so"; then
-+ MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lracket -lmzgc"
- else
- MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
- fi
-***************
-*** 607,616 ****
- fi
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
- SCHEME_COLLECTS=lib/plt/
- fi
- if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
-- dnl need to generate bytecode for MzScheme base
- MZSCHEME_EXTRA="mzscheme_base.c"
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
- MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
- fi
---- 631,650 ----
- fi
- if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
- SCHEME_COLLECTS=lib/plt/
-+ else
-+ if test -d $vi_cv_path_mzscheme_pfx/lib/racket/collects; then
-+ SCHEME_COLLECTS=lib/racket/
-+ fi
- fi
- if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
- MZSCHEME_EXTRA="mzscheme_base.c"
-+ else
-+ if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then
-+ MZSCHEME_EXTRA="mzscheme_base.c"
-+ fi
-+ fi
-+ if test "X$MZSCHEME_EXTRA" != "X" ; then
-+ dnl need to generate bytecode for MzScheme base
- MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
- MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
- fi
-*** ../vim-7.3.048/src/if_mzsch.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_mzsch.c 2010-11-03 21:48:14.000000000 +0100
-***************
-*** 794,802 ****
---- 794,809 ----
- #endif
- }
-
-+ #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL)
-+ 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);
-*** ../vim-7.3.048/src/version.c 2010-11-03 19:32:36.000000000 +0100
---- src/version.c 2010-11-03 21:57:04.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 49,
- /**/
-
---
-TIM: But follow only if you are men of valour. For the entrance to this cave
- is guarded by a monster, a creature so foul and cruel that no man yet has
- fought with it and lived. Bones of full fifty men lie strewn about its
- lair ...
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.050 b/source/ap/vim/patches/7.3.050
deleted file mode 100644
index cccb836ce..000000000
--- a/source/ap/vim/patches/7.3.050
+++ /dev/null
@@ -1,199 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.050
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.050
-Problem: The link script is clumsy.
-Solution: Use the --as-needed linker option if available. (Kirill A.
- Shutemov)
-Files: src/Makefile, src/auto/configure, src/config.mk.in,
- src/configure.in, src/link.sh
-
-
-*** ../vim-7.3.049/src/Makefile 2010-10-27 16:49:41.000000000 +0200
---- src/Makefile 2010-11-03 22:26:45.000000000 +0100
-***************
-*** 1700,1706 ****
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
- -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
-! MAKE="$(MAKE)" sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
- cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
---- 1700,1707 ----
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
- -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
-! MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
-! sh $(srcdir)/link.sh
-
- xxd/xxd$(EXEEXT): xxd/xxd.c
- cd xxd; CC="$(CC)" CFLAGS="$(CPPFLAGS) $(CFLAGS)" \
-*** ../vim-7.3.049/src/auto/configure 2010-11-03 21:59:23.000000000 +0100
---- src/auto/configure 2010-11-03 22:28:03.000000000 +0100
-***************
-*** 593,598 ****
---- 593,599 ----
-
- ac_subst_vars='LTLIBOBJS
- LIBOBJS
-+ LINK_AS_NEEDED
- DEPEND_CFLAGS_FILTER
- MAKEMO
- MSGFMT
-***************
-*** 12404,12409 ****
---- 12405,12427 ----
- fi
-
-
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker --as-needed support" >&5
-+ $as_echo_n "checking linker --as-needed support... " >&6; }
-+ LINK_AS_NEEDED=
-+ # Check if linker supports --as-needed and --no-as-needed options
-+ if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
-+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
-+ LINK_AS_NEEDED=yes
-+ fi
-+ if test "$LINK_AS_NEEDED" = yes; then
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+ $as_echo "yes" >&6; }
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+ $as_echo "no" >&6; }
-+ fi
-+
-+
- ac_config_files="$ac_config_files auto/config.mk:config.mk.in"
-
- cat >confcache <<\_ACEOF
-*** ../vim-7.3.049/src/config.mk.in 2010-08-15 21:57:28.000000000 +0200
---- src/config.mk.in 2010-11-03 22:26:24.000000000 +0100
-***************
-*** 30,35 ****
---- 30,36 ----
- CPP = @CPP@
- CPP_MM = @CPP_MM@
- DEPEND_CFLAGS_FILTER = @DEPEND_CFLAGS_FILTER@
-+ LINK_AS_NEEDED = @LINK_AS_NEEDED@
- X_CFLAGS = @X_CFLAGS@
- X_LIBS_DIR = @X_LIBS@
- X_PRE_LIBS = @X_PRE_LIBS@
-*** ../vim-7.3.049/src/configure.in 2010-11-03 21:59:23.000000000 +0100
---- src/configure.in 2010-11-03 22:26:16.000000000 +0100
-***************
-*** 3527,3532 ****
---- 3527,3549 ----
- fi
- AC_SUBST(DEPEND_CFLAGS_FILTER)
-
-+ dnl link.sh tries to avoid overlinking in a hackish way.
-+ dnl At least GNU ld supports --as-needed which provides the same functionality
-+ dnl at linker level. Let's use it.
-+ AC_MSG_CHECKING(linker --as-needed support)
-+ LINK_AS_NEEDED=
-+ # Check if linker supports --as-needed and --no-as-needed options
-+ if $CC -Wl,--help 2>/dev/null | grep as-needed > /dev/null; then
-+ LDFLAGS="$LDFLAGS -Wl,--as-needed"
-+ LINK_AS_NEEDED=yes
-+ fi
-+ if test "$LINK_AS_NEEDED" = yes; then
-+ AC_MSG_RESULT(yes)
-+ else
-+ AC_MSG_RESULT(no)
-+ fi
-+ AC_SUBST(LINK_AS_NEEDED)
-+
- dnl write output files
- AC_OUTPUT(auto/config.mk:config.mk.in)
-
-*** ../vim-7.3.049/src/link.sh 2010-08-15 21:57:25.000000000 +0200
---- src/link.sh 2010-11-03 22:26:08.000000000 +0100
-***************
-*** 5,11 ****
- # libraries when they exist, but this doesn't mean they are needed for Vim.
- #
- # Author: Bram Moolenaar
-! # Last change: 2006 Sep 26
- # License: Public domain
- #
- # Warning: This fails miserably if the linker doesn't return an error code!
---- 5,11 ----
- # libraries when they exist, but this doesn't mean they are needed for Vim.
- #
- # Author: Bram Moolenaar
-! # Last change: 2010 Nov 03
- # License: Public domain
- #
- # Warning: This fails miserably if the linker doesn't return an error code!
-***************
-*** 16,26 ****
- echo "$LINK " >link.cmd
- exit_value=0
-
- #
- # If auto/link.sed already exists, use it. We assume a previous run of
- # link.sh has found the correct set of libraries.
- #
-- if test -f auto/link.sed; then
- echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
- echo "link.sh: If linking fails, try deleting the auto/link.sed file."
- echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
---- 16,38 ----
- echo "$LINK " >link.cmd
- exit_value=0
-
-+ if test "$LINK_AS_NEEDED" = yes; then
-+ echo "link.sh: \$LINK_AS_NEEDED set to 'yes': invoking linker directly."
-+ cat link.cmd
-+ if sh link.cmd; then
-+ exit_value=0
-+ echo "link.sh: Linked fine"
-+ else
-+ exit_value=$?
-+ echo "link.sh: Linking failed"
-+ fi
-+ else
-+ if test -f auto/link.sed; then
-+
- #
- # If auto/link.sed already exists, use it. We assume a previous run of
- # link.sh has found the correct set of libraries.
- #
- echo "link.sh: The file 'auto/link.sed' exists, which is going to be used now."
- echo "link.sh: If linking fails, try deleting the auto/link.sed file."
- echo "link.sh: If this fails too, try creating an empty auto/link.sed file."
-***************
-*** 124,129 ****
---- 136,143 ----
- fi
- fi
-
-+ fi
-+
- #
- # cleanup
- #
-*** ../vim-7.3.049/src/version.c 2010-11-03 21:59:23.000000000 +0100
---- src/version.c 2010-11-03 22:30:17.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 50,
- /**/
-
---
-Save the plankton - eat a whale.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.051 b/source/ap/vim/patches/7.3.051
deleted file mode 100644
index ebf3680b0..000000000
--- a/source/ap/vim/patches/7.3.051
+++ /dev/null
@@ -1,111 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.051
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.051
-Problem: Crash when $PATH is empty.
-Solution: Check for vim_getenv() returning NULL. (Yasuhiro Matsumoto)
-Files: src/ex_getln.c, src/os_win32.c
-
-
-*** ../vim-7.3.050/src/ex_getln.c 2010-10-27 12:58:19.000000000 +0200
---- src/ex_getln.c 2010-11-10 15:31:33.000000000 +0100
-***************
-*** 4747,4753 ****
---- 4747,4757 ----
- || (pat[1] == '.' && vim_ispathsep(pat[2])))))
- path = (char_u *)".";
- else
-+ {
- path = vim_getenv((char_u *)"PATH", &mustfree);
-+ if (path == NULL)
-+ path = (char_u *)"";
-+ }
-
- /*
- * Go over all directories in $PATH. Expand matches in that directory and
-*** ../vim-7.3.050/src/os_win32.c 2010-10-27 12:17:54.000000000 +0200
---- src/os_win32.c 2010-11-10 15:30:36.000000000 +0100
-***************
-*** 211,223 ****
- static void
- get_exe_name(void)
- {
-! char temp[MAXPATHL];
- char_u *p;
-
- if (exe_name == NULL)
- {
- /* store the name of the executable, may be used for $VIM */
-! GetModuleFileName(NULL, temp, MAXPATHL - 1);
- if (*temp != NUL)
- exe_name = FullName_save((char_u *)temp, FALSE);
- }
---- 211,226 ----
- static void
- get_exe_name(void)
- {
-! /* Maximum length of $PATH is more than MAXPATHL. 8191 is often mentioned
-! * as the maximum length that works (plus a NUL byte). */
-! #define MAX_ENV_PATH_LEN 8192
-! char temp[MAX_ENV_PATH_LEN];
- char_u *p;
-
- if (exe_name == NULL)
- {
- /* store the name of the executable, may be used for $VIM */
-! GetModuleFileName(NULL, temp, MAX_ENV_PATH_LEN - 1);
- if (*temp != NUL)
- exe_name = FullName_save((char_u *)temp, FALSE);
- }
-***************
-*** 232,241 ****
- * "!xxd" it's found in our starting directory. Needed because
- * SearchPath() also looks there. */
- p = mch_getenv("PATH");
-! if (STRLEN(p) + STRLEN(exe_path) + 2 < MAXPATHL)
- {
-! STRCPY(temp, p);
-! STRCAT(temp, ";");
- STRCAT(temp, exe_path);
- vim_setenv((char_u *)"PATH", temp);
- }
---- 235,250 ----
- * "!xxd" it's found in our starting directory. Needed because
- * SearchPath() also looks there. */
- p = mch_getenv("PATH");
-! if (p == NULL
-! || STRLEN(p) + STRLEN(exe_path) + 2 < MAX_ENV_PATH_LEN)
- {
-! if (p == NULL || *p == NUL)
-! temp[0] = NUL;
-! else
-! {
-! STRCPY(temp, p);
-! STRCAT(temp, ";");
-! }
- STRCAT(temp, exe_path);
- vim_setenv((char_u *)"PATH", temp);
- }
-*** ../vim-7.3.050/src/version.c 2010-11-03 22:32:18.000000000 +0100
---- src/version.c 2010-11-10 15:34:43.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 51,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.052 b/source/ap/vim/patches/7.3.052
deleted file mode 100644
index be0691fa4..000000000
--- a/source/ap/vim/patches/7.3.052
+++ /dev/null
@@ -1,345 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.052
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.052
-Problem: When 'completefunc' opens a new window all kinds of errors follow.
- (Xavier Deguillard)
-Solution: When 'completefunc' goes to another window or buffer and when it
- deletes text abort completion. Add a test for 'completefunc'.
-Files: src/edit.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/test76.in, src/testdir/test76.ok
-
-
-*** ../vim-7.3.051/src/edit.c 2010-08-15 21:57:25.000000000 +0200
---- src/edit.c 2010-11-10 16:50:12.000000000 +0100
-***************
-*** 58,63 ****
---- 58,67 ----
- };
-
- static char e_hitend[] = N_("Hit end of paragraph");
-+ #ifdef FEAT_COMPL_FUNC
-+ static char e_complwin[] = N_("E839: Completion function changed window");
-+ static char e_compldel[] = N_("E840: Completion function deleted text");
-+ #endif
-
- /*
- * Structure used to store one match for insert completion.
-***************
-*** 3833,3838 ****
---- 3837,3844 ----
- 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)
-***************
-*** 3843,3855 ****
- args[1] = base;
-
- pos = curwin->w_cursor;
- matchlist = call_func_retlist(funcname, 2, args, FALSE);
- curwin->w_cursor = pos; /* restore the cursor position */
-! if (matchlist == NULL)
-! return;
-
-! ins_compl_add_list(matchlist);
-! list_unref(matchlist);
- }
- #endif /* FEAT_COMPL_FUNC */
-
---- 3849,3875 ----
- args[1] = base;
-
- 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));
-+ goto theend;
-+ }
- curwin->w_cursor = pos; /* restore the cursor position */
-! check_cursor();
-! if (!equalpos(curwin->w_cursor, pos))
-! {
-! EMSG(_(e_compldel));
-! goto theend;
-! }
-! if (matchlist != NULL)
-! ins_compl_add_list(matchlist);
-
-! theend:
-! if (matchlist != NULL)
-! list_unref(matchlist);
- }
- #endif /* FEAT_COMPL_FUNC */
-
-***************
-*** 4994,4999 ****
---- 5014,5021 ----
- int col;
- char_u *funcname;
- pos_T pos;
-+ win_T *curwin_save;
-+ buf_T *curbuf_save;
-
- /* Call 'completefunc' or 'omnifunc' and get pattern length as a
- * string */
-***************
-*** 5009,5016 ****
---- 5031,5051 ----
- args[0] = (char_u *)"1";
- args[1] = NULL;
- pos = curwin->w_cursor;
-+ curwin_save = curwin;
-+ curbuf_save = curbuf;
- col = call_func_retnr(funcname, 2, args, FALSE);
-+ if (curwin_save != curwin || curbuf_save != curbuf)
-+ {
-+ EMSG(_(e_complwin));
-+ return FAIL;
-+ }
- curwin->w_cursor = pos; /* restore the cursor position */
-+ check_cursor();
-+ if (!equalpos(curwin->w_cursor, pos))
-+ {
-+ EMSG(_(e_compldel));
-+ return FAIL;
-+ }
-
- if (col < 0)
- col = curs_col;
-*** ../vim-7.3.051/src/testdir/Make_amiga.mak 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Make_amiga.mak 2010-11-10 15:48:30.000000000 +0100
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,34 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-***************
-*** 122,124 ****
---- 123,126 ----
- test73.out: test73.in
- test74.out: test74.in
- test75.out: test75.in
-+ test76.out: test76.in
-*** ../vim-7.3.051/src/testdir/Make_dos.mak 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Make_dos.mak 2010-11-10 15:48:38.000000000 +0100
-***************
-*** 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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.051/src/testdir/Make_ming.mak 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Make_ming.mak 2010-11-10 15:48:53.000000000 +0100
-***************
-*** 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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.051/src/testdir/Make_os2.mak 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Make_os2.mak 2010-11-10 15:49:10.000000000 +0100
-***************
-*** 27,33 ****
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
---- 27,34 ----
- test56.out test57.out test58.out 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
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.051/src/testdir/Make_vms.mms 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Make_vms.mms 2010-11-10 15:49:32.000000000 +0100
-***************
-*** 4,10 ****
- # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
- # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
- #
-! # Last change: 2010 Oct 20
- #
- # 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: 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.
-***************
-*** 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
-
- # Known problems:
- # Test 30: a problem around mac format - unknown reason
---- 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
-*** ../vim-7.3.051/src/testdir/Makefile 2010-10-27 18:36:32.000000000 +0200
---- src/testdir/Makefile 2010-11-10 15:47:32.000000000 +0100
-***************
-*** 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
-
- 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
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.3.051/src/testdir/test76.in 2010-11-10 16:51:45.000000000 +0100
---- src/testdir/test76.in 2010-11-10 16:38:45.000000000 +0100
-***************
-*** 0 ****
---- 1,46 ----
-+ Tests for completefunc/omnifunc. vim: set ft=vim :
-+
-+ STARTTEST
-+ :"Test that nothing happens if the 'completefunc' opens
-+ :"a new window (no completion, no crash)
-+ :so small.vim
-+ :function! DummyCompleteOne(findstart, base)
-+ : if a:findstart
-+ : return 0
-+ : else
-+ : wincmd n
-+ : return ['onedef', 'oneDEF']
-+ : endif
-+ :endfunction
-+ :setlocal completefunc=DummyCompleteOne
-+ /^one
-+ A:q!
-+ :function! DummyCompleteTwo(findstart, base)
-+ : if a:findstart
-+ : wincmd n
-+ : return 0
-+ : else
-+ : return ['twodef', 'twoDEF']
-+ : endif
-+ :endfunction
-+ :setlocal completefunc=DummyCompleteTwo
-+ /^two
-+ A:q!
-+ :"Test that 'completefunc' works when it's OK.
-+ :function! DummyCompleteThree(findstart, base)
-+ : if a:findstart
-+ : return 0
-+ : else
-+ : return ['threedef', 'threeDEF']
-+ : endif
-+ :endfunction
-+ :setlocal completefunc=DummyCompleteThree
-+ /^three
-+ A:/^+++/,/^three/w! test.out
-+ :qa!
-+ ENDTEST
-+
-+ +++
-+ one
-+ two
-+ three
-*** ../vim-7.3.051/src/testdir/test76.ok 2010-11-10 16:51:45.000000000 +0100
---- src/testdir/test76.ok 2010-11-10 16:38:58.000000000 +0100
-***************
-*** 0 ****
---- 1,4 ----
-+ +++
-+
-+ two
-+ threeDEF
-*** ../vim-7.3.051/src/version.c 2010-11-10 15:37:00.000000000 +0100
---- src/version.c 2010-11-10 16:40:29.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 52,
- /**/
-
---
-BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow?
-ARTHUR: What do you mean? An African or European swallow?
-BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh!
- BRIDGEKEEPER is cast into the gorge.
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.053 b/source/ap/vim/patches/7.3.053
deleted file mode 100644
index 687b39d2b..000000000
--- a/source/ap/vim/patches/7.3.053
+++ /dev/null
@@ -1,89 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.053
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.053
-Problem: complete() function doesn't reset complete direction. Can't use
- an empty string in the list of matches.
-Solution: Set compl_direction to FORWARD. Add "empty" key to allow empty
- words. (Kikuchan)
-Files: src/edit.c
-
-
-*** ../vim-7.3.052/src/edit.c 2010-11-10 16:54:16.000000000 +0100
---- src/edit.c 2010-11-10 17:03:23.000000000 +0100
-***************
-*** 2662,2667 ****
---- 2662,2668 ----
- if (stop_arrow() == FAIL)
- return;
-
-+ compl_direction = FORWARD;
- if (startcol > curwin->w_cursor.col)
- startcol = curwin->w_cursor.col;
- compl_col = startcol;
-***************
-*** 3909,3914 ****
---- 3910,3916 ----
- char_u *word;
- int icase = FALSE;
- int adup = FALSE;
-+ int aempty = FALSE;
- char_u *(cptext[CPT_COUNT]);
-
- if (tv->v_type == VAR_DICT && tv->vval.v_dict != NULL)
-***************
-*** 3926,3938 ****
- icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
- if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
- adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
- }
- else
- {
- word = get_tv_string_chk(tv);
- vim_memset(cptext, 0, sizeof(cptext));
- }
-! if (word == NULL || *word == NUL)
- return FAIL;
- return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
- }
---- 3928,3942 ----
- icase = get_dict_number(tv->vval.v_dict, (char_u *)"icase");
- if (get_dict_string(tv->vval.v_dict, (char_u *)"dup", FALSE) != NULL)
- adup = get_dict_number(tv->vval.v_dict, (char_u *)"dup");
-+ if (get_dict_string(tv->vval.v_dict, (char_u *)"empty", FALSE) != NULL)
-+ aempty = get_dict_number(tv->vval.v_dict, (char_u *)"empty");
- }
- else
- {
- word = get_tv_string_chk(tv);
- vim_memset(cptext, 0, sizeof(cptext));
- }
-! if (word == NULL || (!aempty && *word == NUL))
- return FAIL;
- return ins_compl_add(word, -1, icase, NULL, cptext, dir, 0, adup);
- }
-*** ../vim-7.3.052/src/version.c 2010-11-10 16:54:16.000000000 +0100
---- src/version.c 2010-11-10 17:10:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 53,
- /**/
-
---
-BEDEVERE: How do you know so much about swallows?
-ARTHUR: Well you have to know these things when you're a king, you know.
- "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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.054 b/source/ap/vim/patches/7.3.054
deleted file mode 100644
index 2fd7236af..000000000
--- a/source/ap/vim/patches/7.3.054
+++ /dev/null
@@ -1,112 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.054
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.054
-Problem: Can define a user command for :Print, but it doesn't work. (Aaron
- Thoma)
-Solution: Let user command :Print overrule the builtin command (Christian
- Brabandt) Disallow :X and :Next as a user defined command.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.053/src/ex_docmd.c 2010-10-13 17:50:02.000000000 +0200
---- src/ex_docmd.c 2010-11-10 18:33:18.000000000 +0100
-***************
-*** 2871,2878 ****
- }
-
- #ifdef FEAT_USR_CMDS
-! /* Look for a user defined command as a last resort */
-! if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
- {
- /* User defined commands may contain digits. */
- while (ASCII_ISALNUM(*p))
---- 2871,2880 ----
- }
-
- #ifdef FEAT_USR_CMDS
-! /* Look for a user defined command as a last resort. Let ":Print" be
-! * overruled by a user defined command. */
-! if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print)
-! && *eap->cmd >= 'A' && *eap->cmd <= 'Z')
- {
- /* User defined commands may contain digits. */
- while (ASCII_ISALNUM(*p))
-***************
-*** 5588,5593 ****
---- 5590,5596 ----
- int compl = EXPAND_NOTHING;
- char_u *compl_arg = NULL;
- int has_attr = (eap->arg[0] == '-');
-+ int name_len;
-
- p = eap->arg;
-
-***************
-*** 5613,5618 ****
---- 5616,5622 ----
- return;
- }
- end = p;
-+ name_len = (int)(end - name);
-
- /* If there is nothing after the name, and no attributes were specified,
- * we are listing commands
-***************
-*** 5627,5632 ****
---- 5631,5643 ----
- EMSG(_("E183: User defined commands must start with an uppercase letter"));
- return;
- }
-+ else if ((name_len == 1 && *name == 'X')
-+ || (name_len <= 4
-+ && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
-+ {
-+ EMSG(_("E841: Reserved name, cannot be used for user defined command"));
-+ return;
-+ }
- else
- uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg,
- eap->forceit);
-***************
-*** 9394,9400 ****
- ex_ptag(eap)
- exarg_T *eap;
- {
-! g_do_tagpreview = p_pvh;
- ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
- }
-
---- 9405,9411 ----
- ex_ptag(eap)
- exarg_T *eap;
- {
-! g_do_tagpreview = p_pvh; /* will be reset to 0 in ex_tag_cmd() */
- ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1);
- }
-
-*** ../vim-7.3.053/src/version.c 2010-11-10 17:11:29.000000000 +0100
---- src/version.c 2010-11-10 18:58:28.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 54,
- /**/
-
---
-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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.055 b/source/ap/vim/patches/7.3.055
deleted file mode 100644
index 5e6ca16c9..000000000
--- a/source/ap/vim/patches/7.3.055
+++ /dev/null
@@ -1,359 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.055
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.055
-Problem: Recursively nested lists and dictionaries cause a near-endless
- loop when comparing them with a copy. (ZyX)
-Solution: Limit recursiveness in a way that non-recursive structures can
- still be nested very deep.
-Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
-
-
-*** ../vim-7.3.054/src/eval.c 2010-10-20 21:22:17.000000000 +0200
---- src/eval.c 2010-11-10 20:02:57.000000000 +0100
-***************
-*** 434,442 ****
- 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));
-! static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
-! static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
- 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));
---- 434,442 ----
- 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));
-***************
-*** 4350,4356 ****
- else
- {
- /* Compare two Lists for being equal or unequal. */
-! n1 = list_equal(rettv->vval.v_list, var2.vval.v_list, ic);
- if (type == TYPE_NEQUAL)
- n1 = !n1;
- }
---- 4350,4357 ----
- else
- {
- /* Compare two Lists for being equal or unequal. */
-! n1 = list_equal(rettv->vval.v_list, var2.vval.v_list,
-! ic, FALSE);
- if (type == TYPE_NEQUAL)
- n1 = !n1;
- }
-***************
-*** 4379,4385 ****
- else
- {
- /* Compare two Dictionaries for being equal or unequal. */
-! n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict, ic);
- if (type == TYPE_NEQUAL)
- n1 = !n1;
- }
---- 4380,4387 ----
- else
- {
- /* Compare two Dictionaries for being equal or unequal. */
-! n1 = dict_equal(rettv->vval.v_dict, var2.vval.v_dict,
-! ic, FALSE);
- if (type == TYPE_NEQUAL)
- n1 = !n1;
- }
-***************
-*** 5914,5923 ****
- * Return TRUE when two lists have exactly the same values.
- */
- static int
-! list_equal(l1, l2, ic)
- list_T *l1;
- list_T *l2;
- int ic; /* ignore case for strings */
- {
- listitem_T *item1, *item2;
-
---- 5916,5926 ----
- * Return TRUE when two lists have exactly the same values.
- */
- static int
-! list_equal(l1, l2, ic, recursive)
- list_T *l1;
- list_T *l2;
- int ic; /* ignore case for strings */
-+ int recursive; /* TRUE when used recursively */
- {
- listitem_T *item1, *item2;
-
-***************
-*** 5931,5937 ****
- for (item1 = l1->lv_first, item2 = l2->lv_first;
- item1 != NULL && item2 != NULL;
- item1 = item1->li_next, item2 = item2->li_next)
-! if (!tv_equal(&item1->li_tv, &item2->li_tv, ic))
- return FALSE;
- return item1 == NULL && item2 == NULL;
- }
---- 5934,5940 ----
- for (item1 = l1->lv_first, item2 = l2->lv_first;
- item1 != NULL && item2 != NULL;
- item1 = item1->li_next, item2 = item2->li_next)
-! if (!tv_equal(&item1->li_tv, &item2->li_tv, ic, recursive))
- return FALSE;
- return item1 == NULL && item2 == NULL;
- }
-***************
-*** 5953,5962 ****
- * Return TRUE when two dictionaries have exactly the same key/values.
- */
- static int
-! dict_equal(d1, d2, ic)
- dict_T *d1;
- dict_T *d2;
- int ic; /* ignore case for strings */
- {
- hashitem_T *hi;
- dictitem_T *item2;
---- 5956,5966 ----
- * Return TRUE when two dictionaries have exactly the same key/values.
- */
- static int
-! dict_equal(d1, d2, ic, recursive)
- dict_T *d1;
- dict_T *d2;
- int ic; /* ignore case for strings */
-+ int recursive; /* TRUE when used recursively */
- {
- hashitem_T *hi;
- dictitem_T *item2;
-***************
-*** 5977,5983 ****
- item2 = dict_find(d2, hi->hi_key, -1);
- if (item2 == NULL)
- return FALSE;
-! if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic))
- return FALSE;
- --todo;
- }
---- 5981,5987 ----
- item2 = dict_find(d2, hi->hi_key, -1);
- if (item2 == NULL)
- return FALSE;
-! if (!tv_equal(&HI2DI(hi)->di_tv, &item2->di_tv, ic, recursive))
- return FALSE;
- --todo;
- }
-***************
-*** 5985,6025 ****
- return TRUE;
- }
-
- /*
- * Return TRUE if "tv1" and "tv2" have the same value.
- * Compares the items just like "==" would compare them, but strings and
- * numbers are different. Floats and numbers are also different.
- */
- static int
-! tv_equal(tv1, tv2, ic)
- typval_T *tv1;
- typval_T *tv2;
-! int ic; /* ignore case */
- {
- char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
- char_u *s1, *s2;
-! static int recursive = 0; /* cach recursive loops */
- int r;
-
- if (tv1->v_type != tv2->v_type)
- return FALSE;
- /* Catch lists and dicts that have an endless loop by limiting
-! * recursiveness to 1000. We guess they are equal then. */
-! if (recursive >= 1000)
- return TRUE;
-
- switch (tv1->v_type)
- {
- case VAR_LIST:
-! ++recursive;
-! r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
-! --recursive;
- return r;
-
- case VAR_DICT:
-! ++recursive;
-! r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
-! --recursive;
- return r;
-
- case VAR_FUNC:
---- 5989,6042 ----
- return TRUE;
- }
-
-+ static int tv_equal_recurse_limit;
-+
- /*
- * Return TRUE if "tv1" and "tv2" have the same value.
- * Compares the items just like "==" would compare them, but strings and
- * numbers are different. Floats and numbers are also different.
- */
- static int
-! tv_equal(tv1, tv2, ic, recursive)
- typval_T *tv1;
- typval_T *tv2;
-! int ic; /* ignore case */
-! int recursive; /* TRUE when used recursively */
- {
- char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN];
- char_u *s1, *s2;
-! static int recursive_cnt = 0; /* catch recursive loops */
- int r;
-
- if (tv1->v_type != tv2->v_type)
- return FALSE;
-+
- /* Catch lists and dicts that have an endless loop by limiting
-! * recursiveness to a limit. We guess they are equal then.
-! * A fixed limit has the problem of still taking an awful long time.
-! * Reduce the limit every time running into it. That should work fine for
-! * deeply linked structures that are not recursively linked and catch
-! * recursiveness quickly. */
-! if (!recursive)
-! tv_equal_recurse_limit = 1000;
-! if (recursive_cnt >= tv_equal_recurse_limit)
-! {
-! --tv_equal_recurse_limit;
- return TRUE;
-+ }
-
- switch (tv1->v_type)
- {
- case VAR_LIST:
-! ++recursive_cnt;
-! r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic, TRUE);
-! --recursive_cnt;
- return r;
-
- case VAR_DICT:
-! ++recursive_cnt;
-! r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic, TRUE);
-! --recursive_cnt;
- return r;
-
- case VAR_FUNC:
-***************
-*** 9391,9397 ****
- }
-
- for ( ; li != NULL; li = li->li_next)
-! if (tv_equal(&li->li_tv, &argvars[1], ic))
- ++n;
- }
- }
---- 9408,9414 ----
- }
-
- for ( ; li != NULL; li = li->li_next)
-! if (tv_equal(&li->li_tv, &argvars[1], ic, FALSE))
- ++n;
- }
- }
-***************
-*** 9418,9424 ****
- if (!HASHITEM_EMPTY(hi))
- {
- --todo;
-! if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic))
- ++n;
- }
- }
---- 9435,9441 ----
- if (!HASHITEM_EMPTY(hi))
- {
- --todo;
-! if (tv_equal(&HI2DI(hi)->di_tv, &argvars[1], ic, FALSE))
- ++n;
- }
- }
-***************
-*** 12574,12580 ****
- }
-
- for ( ; item != NULL; item = item->li_next, ++idx)
-! if (tv_equal(&item->li_tv, &argvars[1], ic))
- {
- rettv->vval.v_number = idx;
- break;
---- 12591,12597 ----
- }
-
- for ( ; item != NULL; item = item->li_next, ++idx)
-! if (tv_equal(&item->li_tv, &argvars[1], ic, FALSE))
- {
- rettv->vval.v_number = idx;
- break;
-*** ../vim-7.3.054/src/testdir/test55.in 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test55.in 2010-11-10 20:15:27.000000000 +0100
-***************
-*** 342,348 ****
---- 342,359 ----
- :$put =(d == d)
- :$put =(l != deepcopy(l))
- :$put =(d != deepcopy(d))
-+ :"
-+ :" compare complex recursively linked list and dict
-+ :let l = []
-+ :call add(l, l)
-+ :let dict4 = {"l": l}
-+ :call add(dict4.l, dict4)
-+ :let lcopy = deepcopy(l)
-+ :let dict4copy = deepcopy(dict4)
-+ :$put =(l == lcopy)
-+ :$put =(dict4 == dict4copy)
- :endfun
-+ :"
- :call Test(1, 2, [3, 4], {5: 6}) " This may take a while
- :"
- :delfunc Test
-*** ../vim-7.3.054/src/testdir/test55.ok 2010-08-15 21:57:29.000000000 +0200
---- src/testdir/test55.ok 2010-11-10 20:16:37.000000000 +0100
-***************
-*** 109,111 ****
---- 109,113 ----
- 1
- 0
- 0
-+ 1
-+ 1
-*** ../vim-7.3.054/src/version.c 2010-11-10 18:59:50.000000000 +0100
---- src/version.c 2010-11-10 20:10:51.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 55,
- /**/
-
---
-A special law prohibits unmarried women from parachuting on Sunday or she
-shall risk arrest, fine, and/or jailing.
- [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/ \\\
-\\\ download, build and distribute -- http://www.A-A-P.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.056 b/source/ap/vim/patches/7.3.056
deleted file mode 100644
index 49c91b625..000000000
--- a/source/ap/vim/patches/7.3.056
+++ /dev/null
@@ -1,542 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.056
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.056
-Problem: "getline" argument in do_cmdline() shadows global.
-Solution: Rename the argument.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.055/src/ex_docmd.c 2010-11-10 18:59:50.000000000 +0100
---- src/ex_docmd.c 2010-11-16 11:24:40.000000000 +0100
-***************
-*** 733,739 ****
- * do_cmdline(): execute one Ex command line
- *
- * 1. Execute "cmdline" when it is not NULL.
-! * If "cmdline" is NULL, or more lines are needed, getline() is used.
- * 2. Split up in parts separated with '|'.
- *
- * This function can be called recursively!
---- 733,739 ----
- * do_cmdline(): execute one Ex command line
- *
- * 1. Execute "cmdline" when it is not NULL.
-! * If "cmdline" is NULL, or more lines are needed, fgetline() is used.
- * 2. Split up in parts separated with '|'.
- *
- * This function can be called recursively!
-***************
-*** 741,747 ****
- * flags:
- * DOCMD_VERBOSE - The command will be included in the error message.
- * DOCMD_NOWAIT - Don't call wait_return() and friends.
-! * DOCMD_REPEAT - Repeat execution until getline() returns NULL.
- * DOCMD_KEYTYPED - Don't reset KeyTyped.
- * DOCMD_EXCRESET - Reset the exception environment (used for debugging).
- * DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
---- 741,747 ----
- * flags:
- * DOCMD_VERBOSE - The command will be included in the error message.
- * DOCMD_NOWAIT - Don't call wait_return() and friends.
-! * DOCMD_REPEAT - Repeat execution until fgetline() returns NULL.
- * DOCMD_KEYTYPED - Don't reset KeyTyped.
- * DOCMD_EXCRESET - Reset the exception environment (used for debugging).
- * DOCMD_KEEPLINE - Store first typed line (for repeating with ".").
-***************
-*** 749,763 ****
- * return FAIL if cmdline could not be executed, OK otherwise
- */
- int
-! do_cmdline(cmdline, getline, cookie, flags)
- char_u *cmdline;
-! char_u *(*getline) __ARGS((int, void *, int));
-! void *cookie; /* argument for getline() */
- int flags;
- {
- char_u *next_cmdline; /* next cmd to execute */
- char_u *cmdline_copy = NULL; /* copy of cmd line */
-! int used_getline = FALSE; /* used "getline" to obtain command */
- static int recursive = 0; /* recursive depth */
- int msg_didout_before_start = 0;
- int count = 0; /* line number count */
---- 749,763 ----
- * return FAIL if cmdline could not be executed, OK otherwise
- */
- int
-! do_cmdline(cmdline, fgetline, cookie, flags)
- char_u *cmdline;
-! char_u *(*fgetline) __ARGS((int, void *, int));
-! void *cookie; /* argument for fgetline() */
- int flags;
- {
- char_u *next_cmdline; /* next cmd to execute */
- char_u *cmdline_copy = NULL; /* copy of cmd line */
-! int used_getline = FALSE; /* used "fgetline" to obtain command */
- static int recursive = 0; /* recursive depth */
- int msg_didout_before_start = 0;
- int count = 0; /* line number count */
-***************
-*** 775,788 ****
- struct msglist **saved_msg_list = NULL;
- struct msglist *private_msg_list;
-
-! /* "getline" and "cookie" passed to do_one_cmd() */
- char_u *(*cmd_getline) __ARGS((int, void *, int));
- void *cmd_cookie;
- struct loop_cookie cmd_loop_cookie;
- void *real_cookie;
- int getline_is_func;
- #else
-! # define cmd_getline getline
- # define cmd_cookie cookie
- #endif
- static int call_depth = 0; /* recursiveness */
---- 775,788 ----
- struct msglist **saved_msg_list = NULL;
- struct msglist *private_msg_list;
-
-! /* "fgetline" and "cookie" passed to do_one_cmd() */
- char_u *(*cmd_getline) __ARGS((int, void *, int));
- void *cmd_cookie;
- struct loop_cookie cmd_loop_cookie;
- void *real_cookie;
- int getline_is_func;
- #else
-! # define cmd_getline fgetline
- # define cmd_cookie cookie
- #endif
- static int call_depth = 0; /* recursiveness */
-***************
-*** 822,831 ****
- cstack.cs_lflags = 0;
- ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
-
-! real_cookie = getline_cookie(getline, cookie);
-
- /* Inside a function use a higher nesting level. */
-! getline_is_func = getline_equal(getline, cookie, get_func_line);
- if (getline_is_func && ex_nesting_level == func_level(real_cookie))
- ++ex_nesting_level;
-
---- 822,831 ----
- cstack.cs_lflags = 0;
- ga_init2(&lines_ga, (int)sizeof(wcmd_T), 10);
-
-! real_cookie = getline_cookie(fgetline, cookie);
-
- /* Inside a function use a higher nesting level. */
-! getline_is_func = getline_equal(fgetline, cookie, get_func_line);
- if (getline_is_func && ex_nesting_level == func_level(real_cookie))
- ++ex_nesting_level;
-
-***************
-*** 837,843 ****
- breakpoint = func_breakpoint(real_cookie);
- dbg_tick = func_dbg_tick(real_cookie);
- }
-! else if (getline_equal(getline, cookie, getsourceline))
- {
- fname = sourcing_name;
- breakpoint = source_breakpoint(real_cookie);
---- 837,843 ----
- breakpoint = func_breakpoint(real_cookie);
- dbg_tick = func_dbg_tick(real_cookie);
- }
-! else if (getline_equal(fgetline, cookie, getsourceline))
- {
- fname = sourcing_name;
- breakpoint = source_breakpoint(real_cookie);
-***************
-*** 881,887 ****
- * KeyTyped is only set when calling vgetc(). Reset it here when not
- * calling vgetc() (sourced command lines).
- */
-! if (!(flags & DOCMD_KEYTYPED) && !getline_equal(getline, cookie, getexline))
- KeyTyped = FALSE;
-
- /*
---- 881,888 ----
- * KeyTyped is only set when calling vgetc(). Reset it here when not
- * calling vgetc() (sourced command lines).
- */
-! if (!(flags & DOCMD_KEYTYPED)
-! && !getline_equal(fgetline, cookie, getexline))
- KeyTyped = FALSE;
-
- /*
-***************
-*** 894,900 ****
- do
- {
- #ifdef FEAT_EVAL
-! getline_is_func = getline_equal(getline, cookie, get_func_line);
- #endif
-
- /* stop skipping cmds for an error msg after all endif/while/for */
---- 895,901 ----
- do
- {
- #ifdef FEAT_EVAL
-! getline_is_func = getline_equal(fgetline, cookie, get_func_line);
- #endif
-
- /* stop skipping cmds for an error msg after all endif/while/for */
-***************
-*** 909,915 ****
-
- /*
- * 1. If repeating a line in a loop, get a line from lines_ga.
-! * 2. If no line given: Get an allocated line with getline().
- * 3. If a line is given: Make a copy, so we can mess with it.
- */
-
---- 910,916 ----
-
- /*
- * 1. If repeating a line in a loop, get a line from lines_ga.
-! * 2. If no line given: Get an allocated line with fgetline().
- * 3. If a line is given: Make a copy, so we can mess with it.
- */
-
-***************
-*** 938,949 ****
- }
- #ifdef FEAT_PROFILE
- else if (do_profiling == PROF_YES
-! && getline_equal(getline, cookie, getsourceline))
- script_line_end();
- #endif
-
- /* Check if a sourced file hit a ":finish" command. */
-! if (source_finished(getline, cookie))
- {
- retval = FAIL;
- break;
---- 939,950 ----
- }
- #ifdef FEAT_PROFILE
- else if (do_profiling == PROF_YES
-! && getline_equal(fgetline, cookie, getsourceline))
- script_line_end();
- #endif
-
- /* Check if a sourced file hit a ":finish" command. */
-! if (source_finished(fgetline, cookie))
- {
- retval = FAIL;
- break;
-***************
-*** 954,960 ****
- && *dbg_tick != debug_tick)
- {
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
---- 955,961 ----
- && *dbg_tick != debug_tick)
- {
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(fgetline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
-***************
-*** 969,975 ****
- dbg_breakpoint(fname, sourcing_lnum);
- /* Find next breakpoint. */
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
---- 970,976 ----
- dbg_breakpoint(fname, sourcing_lnum);
- /* Find next breakpoint. */
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(fgetline, cookie, getsourceline),
- fname, sourcing_lnum);
- *dbg_tick = debug_tick;
- }
-***************
-*** 978,984 ****
- {
- if (getline_is_func)
- func_line_start(real_cookie);
-! else if (getline_equal(getline, cookie, getsourceline))
- script_line_start();
- }
- # endif
---- 979,985 ----
- {
- if (getline_is_func)
- func_line_start(real_cookie);
-! else if (getline_equal(fgetline, cookie, getsourceline))
- script_line_start();
- }
- # endif
-***************
-*** 987,993 ****
- if (cstack.cs_looplevel > 0)
- {
- /* Inside a while/for loop we need to store the lines and use them
-! * again. Pass a different "getline" function to do_one_cmd()
- * below, so that it stores lines in or reads them from
- * "lines_ga". Makes it possible to define a function inside a
- * while/for loop. */
---- 988,994 ----
- if (cstack.cs_looplevel > 0)
- {
- /* Inside a while/for loop we need to store the lines and use them
-! * again. Pass a different "fgetline" function to do_one_cmd()
- * below, so that it stores lines in or reads them from
- * "lines_ga". Makes it possible to define a function inside a
- * while/for loop. */
-***************
-*** 995,1021 ****
- cmd_cookie = (void *)&cmd_loop_cookie;
- cmd_loop_cookie.lines_gap = &lines_ga;
- cmd_loop_cookie.current_line = current_line;
-! cmd_loop_cookie.getline = getline;
- cmd_loop_cookie.cookie = cookie;
- cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
- }
- else
- {
-! cmd_getline = getline;
- cmd_cookie = cookie;
- }
- #endif
-
-! /* 2. If no line given, get an allocated line with getline(). */
- if (next_cmdline == NULL)
- {
- /*
- * Need to set msg_didout for the first line after an ":if",
- * otherwise the ":if" will be overwritten.
- */
-! if (count == 1 && getline_equal(getline, cookie, getexline))
- msg_didout = TRUE;
-! if (getline == NULL || (next_cmdline = getline(':', cookie,
- #ifdef FEAT_EVAL
- cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
- #else
---- 996,1022 ----
- cmd_cookie = (void *)&cmd_loop_cookie;
- cmd_loop_cookie.lines_gap = &lines_ga;
- cmd_loop_cookie.current_line = current_line;
-! cmd_loop_cookie.getline = fgetline;
- cmd_loop_cookie.cookie = cookie;
- cmd_loop_cookie.repeating = (current_line < lines_ga.ga_len);
- }
- else
- {
-! cmd_getline = fgetline;
- cmd_cookie = cookie;
- }
- #endif
-
-! /* 2. If no line given, get an allocated line with fgetline(). */
- if (next_cmdline == NULL)
- {
- /*
- * Need to set msg_didout for the first line after an ":if",
- * otherwise the ":if" will be overwritten.
- */
-! if (count == 1 && getline_equal(fgetline, cookie, getexline))
- msg_didout = TRUE;
-! if (fgetline == NULL || (next_cmdline = fgetline(':', cookie,
- #ifdef FEAT_EVAL
- cstack.cs_idx < 0 ? 0 : (cstack.cs_idx + 1) * 2
- #else
-***************
-*** 1142,1148 ****
- * If the command was typed, remember it for the ':' register.
- * Do this AFTER executing the command to make :@: work.
- */
-! if (getline_equal(getline, cookie, getexline)
- && new_last_cmdline != NULL)
- {
- vim_free(last_cmdline);
---- 1143,1149 ----
- * If the command was typed, remember it for the ':' register.
- * Do this AFTER executing the command to make :@: work.
- */
-! if (getline_equal(fgetline, cookie, getexline)
- && new_last_cmdline != NULL)
- {
- vim_free(last_cmdline);
-***************
-*** 1163,1169 ****
- #ifdef FEAT_EVAL
- /* reset did_emsg for a function that is not aborted by an error */
- if (did_emsg && !force_abort
-! && getline_equal(getline, cookie, get_func_line)
- && !func_has_abort(real_cookie))
- did_emsg = FALSE;
-
---- 1164,1170 ----
- #ifdef FEAT_EVAL
- /* reset did_emsg for a function that is not aborted by an error */
- if (did_emsg && !force_abort
-! && getline_equal(fgetline, cookie, get_func_line)
- && !func_has_abort(real_cookie))
- did_emsg = FALSE;
-
-***************
-*** 1202,1208 ****
- if (breakpoint != NULL)
- {
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(getline, cookie, getsourceline),
- fname,
- ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
- *dbg_tick = debug_tick;
---- 1203,1209 ----
- if (breakpoint != NULL)
- {
- *breakpoint = dbg_find_breakpoint(
-! getline_equal(fgetline, cookie, getsourceline),
- fname,
- ((wcmd_T *)lines_ga.ga_data)[current_line].lnum-1);
- *dbg_tick = debug_tick;
-***************
-*** 1296,1303 ****
- #endif
- )
- && !(did_emsg && used_getline
-! && (getline_equal(getline, cookie, getexmodeline)
-! || getline_equal(getline, cookie, getexline)))
- && (next_cmdline != NULL
- #ifdef FEAT_EVAL
- || cstack.cs_idx >= 0
---- 1297,1304 ----
- #endif
- )
- && !(did_emsg && used_getline
-! && (getline_equal(fgetline, cookie, getexmodeline)
-! || getline_equal(fgetline, cookie, getexline)))
- && (next_cmdline != NULL
- #ifdef FEAT_EVAL
- || cstack.cs_idx >= 0
-***************
-*** 1316,1324 ****
- * unclosed conditional.
- */
- if (!got_int && !did_throw
-! && ((getline_equal(getline, cookie, getsourceline)
-! && !source_finished(getline, cookie))
-! || (getline_equal(getline, cookie, get_func_line)
- && !func_has_ended(real_cookie))))
- {
- if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
---- 1317,1325 ----
- * unclosed conditional.
- */
- if (!got_int && !did_throw
-! && ((getline_equal(fgetline, cookie, getsourceline)
-! && !source_finished(fgetline, cookie))
-! || (getline_equal(fgetline, cookie, get_func_line)
- && !func_has_ended(real_cookie))))
- {
- if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
-***************
-*** 1354,1360 ****
- /* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
- * lack was reported above and the error message is to be converted to an
- * exception, do this now after rewinding the cstack. */
-! do_errthrow(&cstack, getline_equal(getline, cookie, get_func_line)
- ? (char_u *)"endfunction" : (char_u *)NULL);
-
- if (trylevel == 0)
---- 1355,1361 ----
- /* If a missing ":endtry", ":endwhile", ":endfor", or ":endif" or a memory
- * lack was reported above and the error message is to be converted to an
- * exception, do this now after rewinding the cstack. */
-! do_errthrow(&cstack, getline_equal(fgetline, cookie, get_func_line)
- ? (char_u *)"endfunction" : (char_u *)NULL);
-
- if (trylevel == 0)
-***************
-*** 1449,1457 ****
- */
- if (did_throw)
- need_rethrow = TRUE;
-! if ((getline_equal(getline, cookie, getsourceline)
- && ex_nesting_level > source_level(real_cookie))
-! || (getline_equal(getline, cookie, get_func_line)
- && ex_nesting_level > func_level(real_cookie) + 1))
- {
- if (!did_throw)
---- 1450,1458 ----
- */
- if (did_throw)
- need_rethrow = TRUE;
-! if ((getline_equal(fgetline, cookie, getsourceline)
- && ex_nesting_level > source_level(real_cookie))
-! || (getline_equal(fgetline, cookie, get_func_line)
- && ex_nesting_level > func_level(real_cookie) + 1))
- {
- if (!did_throw)
-***************
-*** 1460,1475 ****
- else
- {
- /* When leaving a function, reduce nesting level. */
-! if (getline_equal(getline, cookie, get_func_line))
- --ex_nesting_level;
- /*
- * Go to debug mode when returning from a function in which we are
- * single-stepping.
- */
-! if ((getline_equal(getline, cookie, getsourceline)
-! || getline_equal(getline, cookie, get_func_line))
- && ex_nesting_level + 1 <= debug_break_level)
-! do_debug(getline_equal(getline, cookie, getsourceline)
- ? (char_u *)_("End of sourced file")
- : (char_u *)_("End of function"));
- }
---- 1461,1476 ----
- else
- {
- /* When leaving a function, reduce nesting level. */
-! if (getline_equal(fgetline, cookie, get_func_line))
- --ex_nesting_level;
- /*
- * Go to debug mode when returning from a function in which we are
- * single-stepping.
- */
-! if ((getline_equal(fgetline, cookie, getsourceline)
-! || getline_equal(fgetline, cookie, get_func_line))
- && ex_nesting_level + 1 <= debug_break_level)
-! do_debug(getline_equal(fgetline, cookie, getsourceline)
- ? (char_u *)_("End of sourced file")
- : (char_u *)_("End of function"));
- }
-*** ../vim-7.3.055/src/version.c 2010-11-16 11:28:33.000000000 +0100
---- src/version.c 2010-11-16 11:27:09.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 56,
- /**/
-
---
-Lawmakers made it obligatory for everybody to take at least one bath
-each week -- on Saturday night.
- [real standing law in Vermont, 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.057 b/source/ap/vim/patches/7.3.057
deleted file mode 100644
index d4ea2bc04..000000000
--- a/source/ap/vim/patches/7.3.057
+++ /dev/null
@@ -1,62 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.057
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.057
-Problem: Segfault with command line abbreviation. (Randy Morris)
-Solution: Don't retrigger the abbreviation when abandoning the command line.
- Continue editing the command line after the error.
-Files: src/ex_getln.c
-
-
-*** ../vim-7.3.056/src/ex_getln.c 2010-11-10 15:37:00.000000000 +0100
---- src/ex_getln.c 2010-11-16 14:03:09.000000000 +0100
-***************
-*** 712,718 ****
- }
- }
- beep_flush();
-! c = ESC;
- }
- #endif
- else
---- 712,722 ----
- }
- }
- beep_flush();
-! got_int = FALSE; /* don't abandon the command line */
-! did_emsg = FALSE;
-! emsg_on_display = FALSE;
-! redrawcmd();
-! goto cmdline_not_changed;
- }
- #endif
- else
-*** ../vim-7.3.056/src/version.c 2010-11-16 11:29:30.000000000 +0100
---- src/version.c 2010-11-16 14:04:25.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 57,
- /**/
-
---
-FROG: How you English say: I one more time, mac, I unclog my nose towards
- you, sons of a window-dresser, so, you think you could out-clever us
- French fellows with your silly knees-bent creeping about advancing
- behaviour. (blows a raspberry) I wave my private parts at your aunties,
- you brightly-coloured, mealy-templed, cranberry-smelling, electric
- donkey-bottom biters.
- "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.058 b/source/ap/vim/patches/7.3.058
deleted file mode 100644
index b1ede3317..000000000
--- a/source/ap/vim/patches/7.3.058
+++ /dev/null
@@ -1,158 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.058
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.058
-Problem: Error "code converter not found" when loading Ruby script.
-Solution: Load Gem module. (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.057/src/if_ruby.c 2010-10-27 17:40:53.000000000 +0200
---- src/if_ruby.c 2010-11-16 14:37:48.000000000 +0100
-***************
-*** 229,234 ****
---- 229,237 ----
- # define rb_enc_find_index dll_rb_enc_find_index
- # define rb_enc_find dll_rb_enc_find
- # define rb_enc_str_new dll_rb_enc_str_new
-+ # define rb_intern2 dll_rb_intern2
-+ # define rb_const_remove dll_rb_const_remove
-+ # define Init_prelude dll_Init_prelude
- # define rb_sprintf dll_rb_sprintf
- # define ruby_init_stack dll_ruby_init_stack
- #endif
-***************
-*** 317,322 ****
---- 320,328 ----
- static int (*dll_rb_enc_find_index) (const char*);
- static rb_encoding* (*dll_rb_enc_find) (const char*);
- static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
-+ static ID (*dll_rb_intern2) (const char*, long);
-+ static void (*dll_Init_prelude) (void);
-+ static VALUE (*dll_rb_const_remove) (VALUE, ID);
- static VALUE (*dll_rb_sprintf) (const char*, ...);
- static void (*ruby_init_stack)(VALUE*);
- #endif
-***************
-*** 425,430 ****
---- 431,439 ----
- {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
- {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
- {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
-+ {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
-+ {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
-+ {"Init_prelude", (RUBY_PROC*)&dll_Init_prelude},
- {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
- {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
- #endif
-***************
-*** 662,667 ****
---- 671,682 ----
- ruby_io_init();
- #ifdef RUBY19_OR_LATER
- rb_enc_find_index("encdb");
-+
-+ /* This avoids the error "Encoding::ConverterNotFoundError: code
-+ * converter not found (UTF-16LE to ASCII-8BIT)". */
-+ rb_define_module("Gem");
-+ Init_prelude();
-+ rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
- #endif
- ruby_vim_init();
- ruby_initialized = 1;
-***************
-*** 946,958 ****
-
- static VALUE get_buffer_line(buf_T *buf, linenr_T n)
- {
-! if (n > 0 && n <= buf->b_ml.ml_line_count)
-! {
-! char *line = (char *)ml_get_buf(buf, n, FALSE);
-! return line ? vim_str2rb_enc_str(line) : Qnil;
-! }
-! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
-! return Qnil; /* For stop warning */
- }
-
- static VALUE buffer_aref(VALUE self, VALUE num)
---- 961,969 ----
-
- static VALUE get_buffer_line(buf_T *buf, linenr_T n)
- {
-! if (n <= 0 || n > buf->b_ml.ml_line_count)
-! rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
-! return vim_str2rb_enc_str((char *)ml_get_buf(buf, n, FALSE));
- }
-
- static VALUE buffer_aref(VALUE self, VALUE num)
-***************
-*** 991,999 ****
- else
- {
- rb_raise(rb_eIndexError, "line number %ld out of range", (long)n);
-- #ifndef __GNUC__
-- return Qnil; /* For stop warning */
-- #endif
- }
- return str;
- }
---- 1002,1007 ----
-***************
-*** 1048,1054 ****
- long n = NUM2LONG(num);
- aco_save_T aco;
-
-! if (line == NULL) {
- rb_raise(rb_eIndexError, "NULL line");
- }
- else if (n >= 0 && n <= buf->b_ml.ml_line_count)
---- 1056,1063 ----
- long n = NUM2LONG(num);
- aco_save_T aco;
-
-! if (line == NULL)
-! {
- rb_raise(rb_eIndexError, "NULL line");
- }
- else if (n >= 0 && n <= buf->b_ml.ml_line_count)
-***************
-*** 1072,1078 ****
-
- update_curbuf(NOT_VALID);
- }
-! else {
- rb_raise(rb_eIndexError, "line number %ld out of range", n);
- }
- return str;
---- 1081,1088 ----
-
- update_curbuf(NOT_VALID);
- }
-! else
-! {
- rb_raise(rb_eIndexError, "line number %ld out of range", n);
- }
- return str;
-*** ../vim-7.3.057/src/version.c 2010-11-16 14:05:48.000000000 +0100
---- src/version.c 2010-11-16 14:44:42.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 58,
- /**/
-
---
-SIGIRO -- irony detected (iron 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.059 b/source/ap/vim/patches/7.3.059
deleted file mode 100644
index 6e99f876a..000000000
--- a/source/ap/vim/patches/7.3.059
+++ /dev/null
@@ -1,116 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.059
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.059
-Problem: Netbeans: Problem with recursively handling messages for Athena
- and Motif.
-Solution: Call netbeans_parse_messages() in the main loop, like it's done
- for GTK. (Xavier de Gaye)
-Files: src/gui_x11.c, src/netbeans.c
-
-
-*** ../vim-7.3.058/src/gui_x11.c 2010-08-15 21:57:25.000000000 +0200
---- src/gui_x11.c 2010-11-16 14:53:18.000000000 +0100
-***************
-*** 2895,2900 ****
---- 2895,2905 ----
- focus = gui.in_focus;
- }
-
-+ #if defined(FEAT_NETBEANS_INTG)
-+ /* Process any queued netbeans messages. */
-+ netbeans_parse_messages();
-+ #endif
-+
- /*
- * Don't use gui_mch_update() because then we will spin-lock until a
- * char arrives, instead we use XtAppProcessEvent() to hang until an
-*** ../vim-7.3.058/src/netbeans.c 2010-09-30 21:03:13.000000000 +0200
---- src/netbeans.c 2010-11-16 14:52:55.000000000 +0100
-***************
-*** 726,734 ****
- static char_u *buf = NULL;
- int len = 0;
- int readlen = 0;
-- #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
-- static int level = 0;
-- #endif
- #ifdef HAVE_SELECT
- struct timeval tval;
- fd_set rfds;
---- 726,731 ----
-***************
-*** 744,756 ****
- return;
- }
-
-- #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_GTK) && !defined(FEAT_GUI_W32)
-- /* recursion guard; this will be called from the X event loop at unknown
-- * moments */
-- if (NB_HAS_GUI)
-- ++level;
-- #endif
--
- /* Allocate a buffer to read into. */
- if (buf == NULL)
- {
---- 741,746 ----
-***************
-*** 803,823 ****
- return; /* don't try to parse it */
- }
-
-! #if defined(NB_HAS_GUI) && !defined(FEAT_GUI_W32)
-! /* Let the main loop handle messages. */
-! if (NB_HAS_GUI)
-! {
-! # ifdef FEAT_GUI_GTK
-! if (gtk_main_level() > 0)
-! gtk_main_quit();
-! # else
-! /* Parse the messages now, but avoid recursion. */
-! if (level == 1)
-! netbeans_parse_messages();
-!
-! --level;
-! # endif
-! }
- #endif
- }
-
---- 793,801 ----
- return; /* don't try to parse it */
- }
-
-! #if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
-! if (NB_HAS_GUI && gtk_main_level() > 0)
-! gtk_main_quit();
- #endif
- }
-
-*** ../vim-7.3.058/src/version.c 2010-11-16 14:46:14.000000000 +0100
---- src/version.c 2010-11-16 14:50:57.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 59,
- /**/
-
-
---
-ARTHUR: If you do not open these doors, we will take this castle by force ...
- [A bucket of slops land on ARTHUR. He tries to retain his dignity.]
- "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.060 b/source/ap/vim/patches/7.3.060
deleted file mode 100644
index 0edf20ce7..000000000
--- a/source/ap/vim/patches/7.3.060
+++ /dev/null
@@ -1,227 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.060
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.060
-Problem: Netbeans: crash when socket is disconnected unexpectedly.
-Solution: Don't cleanup when a read fails, put a message in the queue and
- disconnect later. (Xavier de Gaye)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.059/src/netbeans.c 2010-11-16 15:04:51.000000000 +0100
---- src/netbeans.c 2010-11-16 15:48:36.000000000 +0100
-***************
-*** 135,148 ****
- static int needupdate = 0;
- static int inAtomic = 0;
-
- static void
-! netbeans_close(void)
- {
-- if (!NETBEANS_OPEN)
-- return;
--
-- netbeans_send_disconnect();
--
- #ifdef FEAT_GUI_X11
- if (inputHandler != (XtInputId)NULL)
- {
---- 135,146 ----
- static int needupdate = 0;
- static int inAtomic = 0;
-
-+ /*
-+ * Close the socket and remove the input handlers.
-+ */
- static void
-! nb_close_socket(void)
- {
- #ifdef FEAT_GUI_X11
- if (inputHandler != (XtInputId)NULL)
- {
-***************
-*** 167,179 ****
- # endif
- #endif
-
- #ifdef FEAT_BEVAL
- bevalServers &= ~BEVAL_NETBEANS;
- #endif
-
-- sock_close(nbsock);
-- nbsock = -1;
--
- needupdate = 0;
- inAtomic = 0;
- nb_free();
---- 165,191 ----
- # endif
- #endif
-
-+ sock_close(nbsock);
-+ nbsock = -1;
-+ }
-+
-+ /*
-+ * Close the connection and cleanup.
-+ * May be called when nb_close_socket() was called earlier.
-+ */
-+ static void
-+ netbeans_close(void)
-+ {
-+ if (NETBEANS_OPEN)
-+ {
-+ netbeans_send_disconnect();
-+ nb_close_socket();
-+ }
-+
- #ifdef FEAT_BEVAL
- bevalServers &= ~BEVAL_NETBEANS;
- #endif
-
- needupdate = 0;
- inAtomic = 0;
- nb_free();
-***************
-*** 632,640 ****
- char_u *p;
- queue_T *node;
-
-- if (!NETBEANS_OPEN)
-- return;
--
- while (head.next != NULL && head.next != &head)
- {
- node = head.next;
---- 644,649 ----
-***************
-*** 720,725 ****
---- 729,736 ----
- }
- #endif
-
-+ #define DETACH_MSG "DETACH\n"
-+
- void
- netbeans_read()
- {
-***************
-*** 780,801 ****
- break; /* did read everything that's available */
- }
-
- if (readlen <= 0)
- {
-! /* read error or didn't read anything */
-! netbeans_close();
-! nbdebug(("messageFromNetbeans: Error in read() from socket\n"));
- if (len < 0)
- {
- nbdebug(("read from Netbeans socket\n"));
- PERROR(_("read from Netbeans socket"));
- }
-- return; /* don't try to parse it */
- }
-
- #if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
- if (NB_HAS_GUI && gtk_main_level() > 0)
-! gtk_main_quit();
- #endif
- }
-
---- 791,822 ----
- break; /* did read everything that's available */
- }
-
-+ /* Reading a socket disconnection (readlen == 0), or a socket error. */
- if (readlen <= 0)
- {
-! /* Queue a "DETACH" netbeans message in the command queue in order to
-! * terminate the netbeans session later. Do not end the session here
-! * directly as we may be running in the context of a call to
-! * netbeans_parse_messages():
-! * netbeans_parse_messages
-! * -> autocmd triggered while processing the netbeans cmd
-! * -> ui_breakcheck
-! * -> gui event loop or select loop
-! * -> netbeans_read()
-! */
-! save((char_u *)DETACH_MSG, strlen(DETACH_MSG));
-! nb_close_socket();
-!
- if (len < 0)
- {
- nbdebug(("read from Netbeans socket\n"));
- PERROR(_("read from Netbeans socket"));
- }
- }
-
- #if defined(NB_HAS_GUI) && defined(FEAT_GUI_GTK)
- if (NB_HAS_GUI && gtk_main_level() > 0)
-! gtk_main_quit();
- #endif
- }
-
-***************
-*** 1164,1169 ****
---- 1185,1194 ----
-
- nbdebug(("REP %d: <none>\n", cmdno));
-
-+ /* Avoid printing an annoying error message. */
-+ if (!NETBEANS_OPEN)
-+ return;
-+
- sprintf(reply, "%d\n", cmdno);
- nb_send(reply, "nb_reply_nil");
- }
-***************
-*** 2753,2763 ****
- {
- #ifdef FEAT_GUI
- # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
-! && !defined(FEAT_GUI_W32)
- if (gui.in_use)
- {
-! EMSG(_("E838: netbeans is not supported with this GUI"));
-! return;
- }
- # endif
- #endif
---- 2778,2788 ----
- {
- #ifdef FEAT_GUI
- # if !defined(FEAT_GUI_X11) && !defined(FEAT_GUI_GTK) \
-! && !defined(FEAT_GUI_W32)
- if (gui.in_use)
- {
-! EMSG(_("E838: netbeans is not supported with this GUI"));
-! return;
- }
- # endif
- #endif
-*** ../vim-7.3.059/src/version.c 2010-11-16 15:04:51.000000000 +0100
---- src/version.c 2010-11-16 15:22:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 60,
- /**/
-
---
- Another bucket of what can only be described as human ordure hits ARTHUR.
-ARTHUR: ... Right! (to the KNIGHTS) That settles it!
- "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.061 b/source/ap/vim/patches/7.3.061
deleted file mode 100644
index 2b0bdacfc..000000000
--- a/source/ap/vim/patches/7.3.061
+++ /dev/null
@@ -1,89 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.061
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.061
-Problem: Remote ":drop" does not respect 'autochdir'. (Peter Odding)
-Solution: Don't restore the directory when 'autochdir' is set. (Benjamin
- Fritz)
-Files: src/main.c
-
-
-*** ../vim-7.3.060/src/main.c 2010-09-29 17:26:57.000000000 +0200
---- src/main.c 2010-11-16 16:16:11.000000000 +0100
-***************
-*** 3817,3822 ****
---- 3817,3824 ----
- /* Check if we have at least one argument. */
- if (filec <= 0)
- 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,
-***************
-*** 3858,3870 ****
- ga_concat(&ga, p);
- vim_free(p);
- }
- /* The :drop commands goes to Insert mode when 'insertmode' is set, use
- * CTRL-\ CTRL-N again. */
-! ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
-! ga_concat(&ga, (char_u *)"<C-\\><C-N>:cd -");
- if (sendReply)
-! ga_concat(&ga, (char_u *)"<CR>:call SetupRemoteReplies()");
-! ga_concat(&ga, (char_u *)"<CR>:");
- if (inicmd != NULL)
- {
- /* Can't use <CR> after "inicmd", because an "startinsert" would cause
---- 3860,3879 ----
- ga_concat(&ga, p);
- vim_free(p);
- }
-+ ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
-+
- /* The :drop commands goes to Insert mode when 'insertmode' is set, use
- * CTRL-\ CTRL-N again. */
-! ga_concat(&ga, (char_u *)"<C-\\><C-N>");
-!
-! /* Switch back to the correct current directory (prior to temporary path
-! * switch) unless 'autochdir' is set, in which case it will already be
-! * correct after the :drop command. */
-! ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif<CR>");
-!
- if (sendReply)
-! ga_concat(&ga, (char_u *)":call SetupRemoteReplies()<CR>");
-! ga_concat(&ga, (char_u *)":");
- if (inicmd != NULL)
- {
- /* Can't use <CR> after "inicmd", because an "startinsert" would cause
-*** ../vim-7.3.060/src/version.c 2010-11-16 15:48:57.000000000 +0100
---- src/version.c 2010-11-16 16:19:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 61,
- /**/
-
---
-BEDEVERE: Stand by for attack!!
- [CUT TO enormous army forming up. Trebuchets, rows of PIKEMEN, siege
- towers, pennants flying, shouts of "Stand by for attack!" Traditional
- army build-up shots. The shouts echo across the ranks of the army.
- We see various groups reacting, and stirring themselves in readiness.]
-ARTHUR: Who are they?
-BEDEVERE: Oh, just some friends!
- "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.062 b/source/ap/vim/patches/7.3.062
deleted file mode 100644
index ee69b3ae6..000000000
--- a/source/ap/vim/patches/7.3.062
+++ /dev/null
@@ -1,609 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.062
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.062
-Problem: Python doesn't work properly when installed in another directory
- than expected.
-Solution: Figure out home directory in configure and use Py_SetPythonHome()
- at runtime. (Roland Puntaier)
-Files: src/configure.in, src/auto/configure, src/if_python.c,
- src/if_python3.c
-
-
-*** ../vim-7.3.061/src/configure.in 2010-11-03 22:32:18.000000000 +0100
---- src/configure.in 2010-11-16 17:47:36.000000000 +0100
-***************
-*** 891,899 ****
-
- PYTHON_LIBS="${vi_cv_path_python_plibs}"
- if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
-! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
- else
-! 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}"
- fi
- PYTHON_SRC="if_python.c"
- dnl For Mac OSX 10.2 config.o is included in the Python library.
---- 891,899 ----
-
- PYTHON_LIBS="${vi_cv_path_python_plibs}"
- if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
-! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- else
-! 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.
-***************
-*** 905,911 ****
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
- dnl On FreeBSD linking with "-pthread" is required to use threads.
- dnl _THREAD_SAFE must be used for compiling then.
---- 905,911 ----
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
- dnl On FreeBSD linking with "-pthread" is required to use threads.
- dnl _THREAD_SAFE must be used for compiling then.
-***************
-*** 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}"
- 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}"
- fi
- PYTHON3_SRC="if_python3.c"
- dnl For Mac OSX 10.2 config.o is included in the Python library.
---- 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.
-***************
-*** 1143,1151 ****
- if test "$python_ok" = yes && test "$python3_ok" = yes; then
- AC_DEFINE(DYNAMIC_PYTHON)
- AC_DEFINE(DYNAMIC_PYTHON3)
-! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL)
- cflags_save=$CFLAGS
-! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
- ldflags_save=$LDFLAGS
- LDFLAGS="$LDFLAGS -ldl"
- AC_RUN_IFELSE([
---- 1143,1151 ----
- if test "$python_ok" = yes && test "$python3_ok" = yes; then
- AC_DEFINE(DYNAMIC_PYTHON)
- AC_DEFINE(DYNAMIC_PYTHON3)
-! AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python)
- cflags_save=$CFLAGS
-! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
- ldflags_save=$LDFLAGS
- LDFLAGS="$LDFLAGS -ldl"
- AC_RUN_IFELSE([
-***************
-*** 1156,1170 ****
- * Only the first pyhton version used will be switched on.
- */
-
-! int no_rtl_global_needed_for(char *python_instsoname)
- {
- int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
- if (pylib != 0)
- {
- void (*init)(void) = dlsym(pylib, "Py_Initialize");
- int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
- void (*final)(void) = dlsym(pylib, "Py_Finalize");
- (*init)();
- needed = (*simple)("import termios") == -1;
- (*final)();
---- 1156,1172 ----
- * Only the first pyhton version used will be switched on.
- */
-
-! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
- {
- int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
- if (pylib != 0)
- {
-+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
- void (*init)(void) = dlsym(pylib, "Py_Initialize");
- int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
- void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+ (*pfx)(prefix);
- (*init)();
- needed = (*simple)("import termios") == -1;
- (*final)();
-***************
-*** 1176,1188 ****
- int main(int argc, char** argv)
- {
- int not_needed = 0;
-! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
- not_needed = 1;
- return !not_needed;
- }],
- [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
- CFLAGS=$cflags_save
- LDFLAGS=$ldflags_save
- PYTHON_SRC="if_python.c"
- PYTHON_OBJ="objects/if_python.o"
- PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
---- 1178,1237 ----
- int main(int argc, char** argv)
- {
- int not_needed = 0;
-! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
- not_needed = 1;
- return !not_needed;
- }],
- [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
-+
- CFLAGS=$cflags_save
- LDFLAGS=$ldflags_save
-+
-+ AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3)
-+ cflags_save=$CFLAGS
-+ CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
-+ ldflags_save=$LDFLAGS
-+ LDFLAGS="$LDFLAGS -ldl"
-+ AC_RUN_IFELSE([
-+ #include <dlfcn.h>
-+ #include <wchar.h>
-+ /* If this program fails, then RTLD_GLOBAL is needed.
-+ * RTLD_GLOBAL will be used and then it is not possible to
-+ * have both python versions enabled in the same vim instance.
-+ * Only the first pyhton version used will be switched on.
-+ */
-+
-+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
-+ {
-+ int needed = 0;
-+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-+ if (pylib != 0)
-+ {
-+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
-+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
-+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+ (*pfx)(prefix);
-+ (*init)();
-+ needed = (*simple)("import termios") == -1;
-+ (*final)();
-+ dlclose(pylib);
-+ }
-+ return !needed;
-+ }
-+
-+ int main(int argc, char** argv)
-+ {
-+ int not_needed = 0;
-+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
-+ not_needed = 1;
-+ return !not_needed;
-+ }],
-+ [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)])
-+
-+ CFLAGS=$cflags_save
-+ LDFLAGS=$ldflags_save
-+
- PYTHON_SRC="if_python.c"
- PYTHON_OBJ="objects/if_python.o"
- PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
-*** ../vim-7.3.061/src/auto/configure 2010-11-03 22:32:18.000000000 +0100
---- src/auto/configure 2010-11-16 17:47:42.000000000 +0100
-***************
-*** 5326,5334 ****
-
- PYTHON_LIBS="${vi_cv_path_python_plibs}"
- if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
-! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
- else
-! 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}"
- fi
- PYTHON_SRC="if_python.c"
- if test "x$MACOSX" = "xyes"; then
---- 5326,5334 ----
-
- PYTHON_LIBS="${vi_cv_path_python_plibs}"
- if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
-! PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -DPYTHON_HOME=\\\"${vi_cv_path_python_pfx}\\\""
- else
-! 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
-***************
-*** 5339,5345 ****
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
- $as_echo_n "checking if -pthread should be used... " >&6; }
---- 5339,5345 ----
- if test "${vi_cv_var_python_version}" = "1.4"; then
- PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
- fi
-! PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if -pthread should be used" >&5
- $as_echo_n "checking if -pthread should be used... " >&6; }
-***************
-*** 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}"
- 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}"
- fi
- PYTHON3_SRC="if_python3.c"
- if test "x$MACOSX" = "xyes"; then
---- 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
-***************
-*** 5708,5717 ****
-
- $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
-
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL" >&5
-! $as_echo_n "checking whether we can do without RTLD_GLOBAL... " >&6; }
- cflags_save=$CFLAGS
-! CFLAGS="$CFLAGS $PYTHON3_CFLAGS"
- ldflags_save=$LDFLAGS
- LDFLAGS="$LDFLAGS -ldl"
- if test "$cross_compiling" = yes; then :
---- 5708,5717 ----
-
- $as_echo "#define DYNAMIC_PYTHON3 1" >>confdefs.h
-
-! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python" >&5
-! $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; }
- cflags_save=$CFLAGS
-! CFLAGS="$CFLAGS $PYTHON_CFLAGS"
- ldflags_save=$LDFLAGS
- LDFLAGS="$LDFLAGS -ldl"
- if test "$cross_compiling" = yes; then :
-***************
-*** 5730,5744 ****
- * Only the first pyhton version used will be switched on.
- */
-
-! int no_rtl_global_needed_for(char *python_instsoname)
- {
- int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
- if (pylib != 0)
- {
- void (*init)(void) = dlsym(pylib, "Py_Initialize");
- int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
- void (*final)(void) = dlsym(pylib, "Py_Finalize");
- (*init)();
- needed = (*simple)("import termios") == -1;
- (*final)();
---- 5730,5746 ----
- * Only the first pyhton version used will be switched on.
- */
-
-! int no_rtl_global_needed_for(char *python_instsoname, char *prefix)
- {
- int needed = 0;
- void* pylib = dlopen(python_instsoname, RTLD_LAZY);
- if (pylib != 0)
- {
-+ void (*pfx)(char *home) = dlsym(pylib, "Py_SetPythonHome");
- void (*init)(void) = dlsym(pylib, "Py_Initialize");
- int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
- void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+ (*pfx)(prefix);
- (*init)();
- needed = (*simple)("import termios") == -1;
- (*final)();
-***************
-*** 5750,5756 ****
- int main(int argc, char** argv)
- {
- int not_needed = 0;
-! if (no_rtl_global_needed_for("libpython2.7.so.1.0") && no_rtl_global_needed_for("libpython3.1.so.1.0"))
- not_needed = 1;
- return !not_needed;
- }
---- 5752,5758 ----
- int main(int argc, char** argv)
- {
- int not_needed = 0;
-! if (no_rtl_global_needed_for("${python_INSTSONAME}", "${vi_cv_path_python_pfx}"))
- not_needed = 1;
- return !not_needed;
- }
-***************
-*** 5767,5774 ****
---- 5769,5844 ----
- conftest.$ac_objext conftest.beam conftest.$ac_ext
- fi
-
-+
- CFLAGS=$cflags_save
- LDFLAGS=$ldflags_save
-+
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5
-+ $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; }
-+ 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;}
-+ as_fn_error "cannot run test program while cross compiling
-+ See \`config.log' for more details." "$LINENO" 5; }
-+ else
-+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-+ /* end confdefs.h. */
-+
-+ #include <dlfcn.h>
-+ #include <wchar.h>
-+ /* If this program fails, then RTLD_GLOBAL is needed.
-+ * RTLD_GLOBAL will be used and then it is not possible to
-+ * have both python versions enabled in the same vim instance.
-+ * Only the first pyhton version used will be switched on.
-+ */
-+
-+ int no_rtl_global_needed_for(char *python_instsoname, wchar_t *prefix)
-+ {
-+ int needed = 0;
-+ void* pylib = dlopen(python_instsoname, RTLD_LAZY);
-+ if (pylib != 0)
-+ {
-+ void (*pfx)(wchar_t *home) = dlsym(pylib, "Py_SetPythonHome");
-+ void (*init)(void) = dlsym(pylib, "Py_Initialize");
-+ int (*simple)(char*) = dlsym(pylib, "PyRun_SimpleString");
-+ void (*final)(void) = dlsym(pylib, "Py_Finalize");
-+ (*pfx)(prefix);
-+ (*init)();
-+ needed = (*simple)("import termios") == -1;
-+ (*final)();
-+ dlclose(pylib);
-+ }
-+ return !needed;
-+ }
-+
-+ int main(int argc, char** argv)
-+ {
-+ int not_needed = 0;
-+ if (no_rtl_global_needed_for("${python3_INSTSONAME}", L"${vi_cv_path_python3_pfx}"))
-+ not_needed = 1;
-+ return !not_needed;
-+ }
-+ _ACEOF
-+ if ac_fn_c_try_run "$LINENO"; then :
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-+ $as_echo "yes" >&6; };$as_echo "#define PY3_NO_RTLD_GLOBAL 1" >>confdefs.h
-+
-+ else
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-+ $as_echo "no" >&6; }
-+ fi
-+ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-+ conftest.$ac_objext conftest.beam conftest.$ac_ext
-+ fi
-+
-+
-+ CFLAGS=$cflags_save
-+ LDFLAGS=$ldflags_save
-+
- PYTHON_SRC="if_python.c"
- PYTHON_OBJ="objects/if_python.o"
- PYTHON_CFLAGS="$PYTHON_CFLAGS -DDYNAMIC_PYTHON_DLL=\\\"${python_INSTSONAME}\\\""
-*** ../vim-7.3.061/src/if_python.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_python.c 2010-11-16 17:07:00.000000000 +0100
-***************
-*** 102,108 ****
- # include <dlfcn.h>
- # define FARPROC void*
- # define HINSTANCE void*
-! # ifdef PY_NO_RTLD_GLOBAL
- # define load_dll(n) dlopen((n), RTLD_LAZY)
- # else
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
---- 102,108 ----
- # include <dlfcn.h>
- # define FARPROC void*
- # define HINSTANCE void*
-! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
- # define load_dll(n) dlopen((n), RTLD_LAZY)
- # else
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-***************
-*** 168,173 ****
---- 168,174 ----
- # define Py_BuildValue dll_Py_BuildValue
- # define Py_FindMethod dll_Py_FindMethod
- # define Py_InitModule4 dll_Py_InitModule4
-+ # define Py_SetPythonHome dll_Py_SetPythonHome
- # define Py_Initialize dll_Py_Initialize
- # define Py_Finalize dll_Py_Finalize
- # define Py_IsInitialized dll_Py_IsInitialized
-***************
-*** 226,231 ****
---- 227,233 ----
- 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 void(*dll_Py_SetPythonHome)(char *home);
- static void(*dll_Py_Initialize)(void);
- static void(*dll_Py_Finalize)(void);
- static int(*dll_Py_IsInitialized)(void);
-***************
-*** 310,315 ****
---- 312,318 ----
- # else
- {"Py_InitModule4", (PYTHON_PROC*)&dll_Py_InitModule4},
- # endif
-+ {"Py_SetPythonHome", (PYTHON_PROC*)&dll_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&dll_Py_Initialize},
- {"Py_Finalize", (PYTHON_PROC*)&dll_Py_Finalize},
- {"Py_IsInitialized", (PYTHON_PROC*)&dll_Py_IsInitialized},
-***************
-*** 349,355 ****
- {
- int i;
-
-! #if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON3)
- /* Can't have Python and Python3 loaded at the same time.
- * It cause a crash, because RTLD_GLOBAL is needed for
- * standard C extension libraries of one or both python versions. */
---- 352,358 ----
- {
- int i;
-
-! #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.
- * It cause a crash, because RTLD_GLOBAL is needed for
- * standard C extension libraries of one or both python versions. */
-***************
-*** 543,548 ****
---- 546,555 ----
- }
- #endif
-
-+ #ifdef PYTHON_HOME
-+ Py_SetPythonHome(PYTHON_HOME);
-+ #endif
-+
- init_structs();
-
- #if !defined(MACOS) || defined(MACOS_X_UNIX)
-*** ../vim-7.3.061/src/if_python3.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_python3.c 2010-11-16 17:07:26.000000000 +0100
-***************
-*** 80,86 ****
- # include <dlfcn.h>
- # define FARPROC void*
- # define HINSTANCE void*
-! # ifdef PY_NO_RTLD_GLOBAL
- # define load_dll(n) dlopen((n), RTLD_LAZY)
- # else
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
---- 80,86 ----
- # include <dlfcn.h>
- # define FARPROC void*
- # define HINSTANCE void*
-! # if defined(PY_NO_RTLD_GLOBAL) && defined(PY3_NO_RTLD_GLOBAL)
- # define load_dll(n) dlopen((n), RTLD_LAZY)
- # else
- # define load_dll(n) dlopen((n), RTLD_LAZY|RTLD_GLOBAL)
-***************
-*** 132,137 ****
---- 132,138 ----
- # define PyType_Ready py3_PyType_Ready
- #undef Py_BuildValue
- # define Py_BuildValue py3_Py_BuildValue
-+ # define Py_SetPythonHome py3_Py_SetPythonHome
- # define Py_Initialize py3_Py_Initialize
- # define Py_Finalize py3_Py_Finalize
- # define Py_IsInitialized py3_Py_IsInitialized
-***************
-*** 170,175 ****
---- 171,177 ----
- * Pointers for dynamic link
- */
- static int (*py3_PySys_SetArgv)(int, wchar_t **);
-+ static void (*py3_Py_SetPythonHome)(wchar_t *home);
- static void (*py3_Py_Initialize)(void);
- static PyObject* (*py3_PyList_New)(Py_ssize_t size);
- static PyGILState_STATE (*py3_PyGILState_Ensure)(void);
-***************
-*** 254,259 ****
---- 256,262 ----
- } py3_funcname_table[] =
- {
- {"PySys_SetArgv", (PYTHON_PROC*)&py3_PySys_SetArgv},
-+ {"Py_SetPythonHome", (PYTHON_PROC*)&py3_Py_SetPythonHome},
- {"Py_Initialize", (PYTHON_PROC*)&py3_Py_Initialize},
- {"PyArg_ParseTuple", (PYTHON_PROC*)&py3_PyArg_ParseTuple},
- {"PyList_New", (PYTHON_PROC*)&py3_PyList_New},
-***************
-*** 336,342 ****
- int i;
- void *ucs_from_string, *ucs_from_string_and_size;
-
-! # if !defined(PY_NO_RTLD_GLOBAL) && defined(UNIX) && defined(FEAT_PYTHON)
- /* Can't have Python and Python3 loaded at the same time.
- * It cause a crash, because RTLD_GLOBAL is needed for
- * standard C extension libraries of one or both python versions. */
---- 339,345 ----
- 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.
- * It cause a crash, because RTLD_GLOBAL is needed for
- * standard C extension libraries of one or both python versions. */
-***************
-*** 539,544 ****
---- 542,552 ----
-
- init_structs();
-
-+
-+ #ifdef PYTHON3_HOME
-+ Py_SetPythonHome(PYTHON3_HOME);
-+ #endif
-+
- /* initialise threads */
- PyEval_InitThreads();
-
-*** ../vim-7.3.061/src/version.c 2010-11-16 16:25:46.000000000 +0100
---- src/version.c 2010-11-16 17:12:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 62,
- /**/
-
---
-ARTHUR: CHARGE!
- [The mighty ARMY charges. Thundering noise of feet. Clatter of coconuts.
- Shouts etc. Suddenly there is a wail of a siren and a couple of police
- cars roar round in front of the charging ARMY and the POLICE leap out and
- stop them. TWO POLICEMAN and the HISTORIAN'S WIFE. Black Marias skid up
- behind them.]
-HISTORIAN'S WIFE: They're the ones, I'm sure.
- "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.063 b/source/ap/vim/patches/7.3.063
deleted file mode 100644
index 27516ff22..000000000
--- a/source/ap/vim/patches/7.3.063
+++ /dev/null
@@ -1,59 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.063
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.063
-Problem: Win32: Running a filter command makes Vim lose focus.
-Solution: Use SW_SHOWMINNOACTIVE instead of SW_SHOWMINIMIZED. (Hong Xu)
-Files: src/os_win32.c
-
-
-*** ../vim-7.3.062/src/os_win32.c 2010-11-10 15:37:00.000000000 +0100
---- src/os_win32.c 2010-11-24 12:31:46.000000000 +0100
-***************
-*** 3185,3193 ****
- * It's nicer to run a filter command in a minimized window, but in
- * Windows 95 this makes the command MUCH slower. We can't do it under
- * Win32s either as it stops the synchronous spawn workaround working.
- */
- if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
-! si.wShowWindow = SW_SHOWMINIMIZED;
- else
- si.wShowWindow = SW_SHOWNORMAL;
- si.cbReserved2 = 0;
---- 3185,3194 ----
- * It's nicer to run a filter command in a minimized window, but in
- * Windows 95 this makes the command MUCH slower. We can't do it under
- * Win32s either as it stops the synchronous spawn workaround working.
-+ * Don't activate the window to keep focus on Vim.
- */
- if ((options & SHELL_DOOUT) && !mch_windows95() && !gui_is_win32s())
-! si.wShowWindow = SW_SHOWMINNOACTIVE;
- else
- si.wShowWindow = SW_SHOWNORMAL;
- si.cbReserved2 = 0;
-*** ../vim-7.3.062/src/version.c 2010-11-16 19:25:56.000000000 +0100
---- src/version.c 2010-11-24 12:32:52.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 63,
- /**/
-
---
-SOLDIER: Where did you get the coconuts?
-ARTHUR: Through ... We found them.
-SOLDIER: Found them? In Mercea. The coconut's tropical!
- "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.064 b/source/ap/vim/patches/7.3.064
deleted file mode 100644
index cbd49ad9c..000000000
--- a/source/ap/vim/patches/7.3.064
+++ /dev/null
@@ -1,72 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.064
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.064
-Problem: Win32: ":dis +" shows nothing, but "+p does insert text.
-Solution: Display the * register, since that's what will be inserted.
- (Christian Brabandt)
-Files: src/globals.h, src/ops.c
-
-
-*** ../vim-7.3.063/src/globals.h 2010-08-15 21:57:27.000000000 +0200
---- src/globals.h 2010-11-24 14:06:47.000000000 +0100
-***************
-*** 510,515 ****
---- 510,516 ----
- EXTERN VimClipboard clip_plus; /* CLIPBOARD selection in X11 */
- # else
- # define clip_plus clip_star /* there is only one clipboard */
-+ # define ONE_CLIPBOARD
- # endif
- EXTERN int clip_unnamed INIT(= FALSE);
- EXTERN int clip_autoselect INIT(= FALSE);
-*** ../vim-7.3.063/src/ops.c 2010-10-09 17:21:42.000000000 +0200
---- src/ops.c 2010-11-24 14:26:25.000000000 +0100
-***************
-*** 3979,3985 ****
- for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
- {
- name = get_register_name(i);
-! if (arg != NULL && vim_strchr(arg, name) == NULL)
- continue; /* did not ask for this register */
-
- #ifdef FEAT_CLIPBOARD
---- 3979,3990 ----
- for (i = -1; i < NUM_REGISTERS && !got_int; ++i)
- {
- name = get_register_name(i);
-! if (arg != NULL && vim_strchr(arg, name) == NULL
-! #ifdef ONE_CLIPBOARD
-! /* Star register and plus register contain the same thing. */
-! && (name != '*' || vim_strchr(arg, '+') == NULL)
-! #endif
-! )
- continue; /* did not ask for this register */
-
- #ifdef FEAT_CLIPBOARD
-*** ../vim-7.3.063/src/version.c 2010-11-24 12:35:14.000000000 +0100
---- src/version.c 2010-11-24 14:24:03.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 64,
- /**/
-
---
-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.065 b/source/ap/vim/patches/7.3.065
deleted file mode 100644
index cd9b2a754..000000000
--- a/source/ap/vim/patches/7.3.065
+++ /dev/null
@@ -1,120 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.065
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.065
-Problem: Can't get current line number in a source file.
-Solution: Add the <slnum> item, similar to <sfile>.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.064/src/ex_docmd.c 2010-11-16 11:29:30.000000000 +0100
---- src/ex_docmd.c 2010-11-24 15:41:51.000000000 +0100
-***************
-*** 9538,9554 ****
- #define SPEC_CFILE 4
- "<sfile>", /* ":so" file name */
- #define SPEC_SFILE 5
- #ifdef FEAT_AUTOCMD
- "<afile>", /* autocommand file name */
-! # define SPEC_AFILE 6
- "<abuf>", /* autocommand buffer number */
-! # define SPEC_ABUF 7
- "<amatch>", /* autocommand match name */
-! # define SPEC_AMATCH 8
- #endif
- #ifdef FEAT_CLIENTSERVER
- "<client>"
-! # define SPEC_CLIENT 9
- #endif
- };
-
---- 9538,9560 ----
- #define SPEC_CFILE 4
- "<sfile>", /* ":so" file name */
- #define SPEC_SFILE 5
-+ "<slnum>", /* ":so" file line number */
-+ #define SPEC_SLNUM 6
- #ifdef FEAT_AUTOCMD
- "<afile>", /* autocommand file name */
-! # define SPEC_AFILE 7
- "<abuf>", /* autocommand buffer number */
-! # define SPEC_ABUF 8
- "<amatch>", /* autocommand match name */
-! # define SPEC_AMATCH 9
- #endif
- #ifdef FEAT_CLIENTSERVER
- "<client>"
-! # ifdef FEAT_AUTOCMD
-! # define SPEC_CLIENT 10
-! # else
-! # define SPEC_CLIENT 7
-! # endif
- #endif
- };
-
-***************
-*** 9573,9578 ****
---- 9579,9585 ----
- * '<cWORD>' to WORD under the cursor
- * '<cfile>' to path name under the cursor
- * '<sfile>' to sourced file name
-+ * '<slnum>' to sourced file line number
- * '<afile>' to file name for autocommand
- * '<abuf>' to buffer number for autocommand
- * '<amatch>' to matching name for autocommand
-***************
-*** 9604,9613 ****
- #ifdef FEAT_MODIFY_FNAME
- int skip_mod = FALSE;
- #endif
--
-- #if defined(FEAT_AUTOCMD) || defined(FEAT_CLIENTSERVER)
- char_u strbuf[30];
-- #endif
-
- *errormsg = NULL;
- if (escaped != NULL)
---- 9611,9617 ----
-***************
-*** 9796,9801 ****
---- 9800,9814 ----
- return NULL;
- }
- break;
-+ case SPEC_SLNUM: /* line in file for ":so" command */
-+ if (sourcing_name == NULL || sourcing_lnum == 0)
-+ {
-+ *errormsg = (char_u *)_("E842: no line number to use for \"<slnum>\"");
-+ return NULL;
-+ }
-+ sprintf((char *)strbuf, "%ld", (long)sourcing_lnum);
-+ result = strbuf;
-+ break;
- #if defined(FEAT_CLIENTSERVER)
- case SPEC_CLIENT: /* Source of last submitted input */
- sprintf((char *)strbuf, PRINTF_HEX_LONG_U,
-*** ../vim-7.3.064/src/version.c 2010-11-24 14:28:53.000000000 +0100
---- src/version.c 2010-11-24 15:49:57.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 65,
- /**/
-
-
---
-If you don't get everything you want, think of
-everything you didn't get and don't want.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.066 b/source/ap/vim/patches/7.3.066
deleted file mode 100644
index f4a6fd0bb..000000000
--- a/source/ap/vim/patches/7.3.066
+++ /dev/null
@@ -1,90 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.066
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.066
-Problem: Crash when changing to another window while in a :vimgrep command.
- (Christian Brabandt)
-Solution: When wiping out the dummy before, remove it from aucmd_win.
-Files: src/quickfix.c
-
-
-*** ../vim-7.3.065/src/quickfix.c 2010-09-21 16:56:29.000000000 +0200
---- src/quickfix.c 2010-11-24 16:27:40.000000000 +0100
-***************
-*** 3432,3437 ****
---- 3432,3438 ----
- char_u *fname;
- {
- buf_T *newbuf;
-+ buf_T *newbuf_to_wipe = NULL;
- int failed = TRUE;
- aco_save_T aco;
-
-***************
-*** 3468,3482 ****
- failed = FALSE;
- if (curbuf != newbuf)
- {
-! /* Bloody autocommands changed the buffer! */
-! if (buf_valid(newbuf))
-! wipe_buffer(newbuf, FALSE);
- newbuf = curbuf;
- }
- }
-
- /* restore curwin/curbuf and a few other things */
- aucmd_restbuf(&aco);
- }
-
- if (!buf_valid(newbuf))
---- 3469,3487 ----
- failed = FALSE;
- if (curbuf != newbuf)
- {
-! /* Bloody autocommands changed the buffer! Can happen when
-! * using netrw and editing a remote file. Use the current
-! * buffer instead, delete the dummy one after restoring the
-! * window stuff. */
-! newbuf_to_wipe = newbuf;
- newbuf = curbuf;
- }
- }
-
- /* restore curwin/curbuf and a few other things */
- aucmd_restbuf(&aco);
-+ if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
-+ wipe_buffer(newbuf_to_wipe, FALSE);
- }
-
- if (!buf_valid(newbuf))
-*** ../vim-7.3.065/src/version.c 2010-11-24 15:50:54.000000000 +0100
---- src/version.c 2010-11-24 16:30:44.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 66,
- /**/
-
---
-CART DRIVER: Bring out your dead!
- We follow the cart through a wretched, impoverished plague-ridden village.
- A few starved mongrels run about in the mud scavenging. In the open
- doorway of one house perhaps we jug glimpse a pair of legs dangling from
- the ceiling. In another doorway an OLD WOMAN is beating a cat against a
- wall rather like one does with a mat. The cart passes round a dead donkey
- or cow in the mud. And a MAN tied to a cart is being hammered to death by
- four NUNS with huge mallets.
- "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.067 b/source/ap/vim/patches/7.3.067
deleted file mode 100644
index c32c645a8..000000000
--- a/source/ap/vim/patches/7.3.067
+++ /dev/null
@@ -1,68 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.067
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.067 (after 7.3.058)
-Problem: Ruby: Init_prelude is not always available.
-Solution: Remove use of Init_prelude. (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.066/src/if_ruby.c 2010-11-16 14:46:14.000000000 +0100
---- src/if_ruby.c 2010-11-24 16:53:06.000000000 +0100
-***************
-*** 231,237 ****
- # define rb_enc_str_new dll_rb_enc_str_new
- # define rb_intern2 dll_rb_intern2
- # define rb_const_remove dll_rb_const_remove
-- # define Init_prelude dll_Init_prelude
- # define rb_sprintf dll_rb_sprintf
- # define ruby_init_stack dll_ruby_init_stack
- #endif
---- 231,236 ----
-***************
-*** 433,439 ****
- {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
- {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
- {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
-- {"Init_prelude", (RUBY_PROC*)&dll_Init_prelude},
- {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
- {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
- #endif
---- 432,437 ----
-***************
-*** 675,681 ****
- /* This avoids the error "Encoding::ConverterNotFoundError: code
- * converter not found (UTF-16LE to ASCII-8BIT)". */
- rb_define_module("Gem");
-- Init_prelude();
- rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
- #endif
- ruby_vim_init();
---- 673,678 ----
-*** ../vim-7.3.066/src/version.c 2010-11-24 16:31:55.000000000 +0100
---- src/version.c 2010-11-24 16:53:35.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 67,
- /**/
-
---
-CART DRIVER: Bring out your dead!
-LARGE MAN: Here's one!
-CART DRIVER: Ninepence.
-BODY: I'm not dead!
- "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.068 b/source/ap/vim/patches/7.3.068
deleted file mode 100644
index 8acbcab9d..000000000
--- a/source/ap/vim/patches/7.3.068
+++ /dev/null
@@ -1,50 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.068
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.068
-Problem: Using freed memory when doing ":saveas" and an autocommand sets
- 'autochdir'. (Kevin Klement)
-Solution: Get the value of fname again after executing autocommands.
-Files: src/ex_cmds.c
-
-
-*** ../vim-7.3.067/src/ex_cmds.c 2010-10-15 20:20:00.000000000 +0200
---- src/ex_cmds.c 2010-11-24 17:53:07.000000000 +0100
-***************
-*** 2705,2710 ****
---- 2705,2714 ----
- TRUE);
- do_modelines(0);
- }
-+
-+ /* Autocommands may have changed buffer names, esp. when
-+ * 'autochdir' is set. */
-+ fname = curbuf->b_sfname;
- #endif
- }
-
-*** ../vim-7.3.067/src/version.c 2010-11-24 17:03:34.000000000 +0100
---- src/version.c 2010-11-24 17:55:11.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 68,
- /**/
-
---
-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.069 b/source/ap/vim/patches/7.3.069
deleted file mode 100644
index d77612906..000000000
--- a/source/ap/vim/patches/7.3.069
+++ /dev/null
@@ -1,49 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.069
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.069
-Problem: GTK: pressing Enter in inputdialog() doesn't work like clicking OK
- as documented.
-Solution: call gtk_entry_set_activates_default(). (Britton Kerin)
-Files: src/gui_gtk.c
-
-
-*** ../vim-7.3.068/src/gui_gtk.c 2010-08-15 21:57:32.000000000 +0200
---- src/gui_gtk.c 2010-11-24 18:44:21.000000000 +0100
-***************
-*** 1287,1292 ****
---- 1287,1295 ----
- entry = gtk_entry_new();
- 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);
- CONVERT_TO_UTF8_FREE(text);
-*** ../vim-7.3.068/src/version.c 2010-11-24 17:59:27.000000000 +0100
---- src/version.c 2010-11-24 18:46:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 69,
- /**/
-
---
-Why I like vim:
-> I like VIM because, when I ask a question in this newsgroup, I get a
-> one-line answer. With xemacs, I get a 1Kb lisp script with bugs in 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.070 b/source/ap/vim/patches/7.3.070
deleted file mode 100644
index 0da893f9c..000000000
--- a/source/ap/vim/patches/7.3.070
+++ /dev/null
@@ -1,53 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.070
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.070
-Problem: Can set environment variables in the sandbox, could be abused.
-Solution: Disallow it.
-Files: src/eval.c
-
-
-*** ../vim-7.3.069/src/eval.c 2010-11-10 20:31:24.000000000 +0100
---- src/eval.c 2010-12-02 14:42:31.000000000 +0100
-***************
-*** 2326,2332 ****
- else if (endchars != NULL
- && vim_strchr(endchars, *skipwhite(arg)) == NULL)
- EMSG(_(e_letunexp));
-! else
- {
- c1 = name[len];
- name[len] = NUL;
---- 2326,2332 ----
- else if (endchars != NULL
- && vim_strchr(endchars, *skipwhite(arg)) == NULL)
- EMSG(_(e_letunexp));
-! else if (!check_secure())
- {
- c1 = name[len];
- name[len] = NUL;
-*** ../vim-7.3.069/src/version.c 2010-11-24 18:48:08.000000000 +0100
---- src/version.c 2010-12-02 14:46:44.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 70,
- /**/
-
---
-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.071 b/source/ap/vim/patches/7.3.071
deleted file mode 100644
index 75b6979f3..000000000
--- a/source/ap/vim/patches/7.3.071
+++ /dev/null
@@ -1,65 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.071
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.071
-Problem: Editing a file in a window that's in diff mode resets 'diff'
- but not cursor binding.
-Solution: Reset cursor binding in two more places.
-Files: src/quickfix.c, src/option.c
-
-
-*** ../vim-7.3.070/src/quickfix.c 2010-11-24 16:31:55.000000000 +0100
---- src/quickfix.c 2010-12-02 15:02:00.000000000 +0100
-***************
-*** 2359,2364 ****
---- 2359,2365 ----
- set_option_value((char_u *)"bt", 0L, (char_u *)"quickfix",
- OPT_LOCAL);
- set_option_value((char_u *)"bh", 0L, (char_u *)"wipe", OPT_LOCAL);
-+ RESET_BINDING(curwin);
- #ifdef FEAT_DIFF
- curwin->w_p_diff = FALSE;
- #endif
-*** ../vim-7.3.070/src/option.c 2010-10-13 14:05:29.000000000 +0200
---- src/option.c 2010-12-02 15:12:02.000000000 +0100
-***************
-*** 9756,9761 ****
---- 9759,9767 ----
- #ifdef FEAT_SCROLLBIND
- to->wo_scb = from->wo_scb;
- #endif
-+ #ifdef FEAT_CURSORBIND
-+ to->wo_crb = from->wo_crb;
-+ #endif
- #ifdef FEAT_SPELL
- to->wo_spell = from->wo_spell;
- #endif
-*** ../vim-7.3.070/src/version.c 2010-12-02 14:47:56.000000000 +0100
---- src/version.c 2010-12-02 15:31:12.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 71,
- /**/
-
---
-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.072 b/source/ap/vim/patches/7.3.072
deleted file mode 100644
index 88e54f9e1..000000000
--- a/source/ap/vim/patches/7.3.072
+++ /dev/null
@@ -1,295 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.072
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.072
-Problem: Can't complete file names while ignoring case.
-Solution: Add 'wildignorecase'.
-Files: src/ex_docmd.c, src/ex_getln.c, src/misc1.c, src/option.c,
- src/option.h, src/vim.h, runtime/doc/options.txt
-
-
-*** ../vim-7.3.071/src/ex_docmd.c 2010-11-24 15:50:54.000000000 +0100
---- src/ex_docmd.c 2010-12-02 15:58:10.000000000 +0100
-***************
-*** 4524,4535 ****
- else /* n == 2 */
- {
- expand_T xpc;
-
- ExpandInit(&xpc);
- xpc.xp_context = EXPAND_FILES;
- p = ExpandOne(&xpc, eap->arg, NULL,
-! WILD_LIST_NOTFOUND|WILD_ADD_SLASH,
-! WILD_EXPAND_FREE);
- if (p == NULL)
- return FAIL;
- }
---- 4524,4537 ----
- else /* n == 2 */
- {
- expand_T xpc;
-+ int options = WILD_LIST_NOTFOUND|WILD_ADD_SLASH;
-
- ExpandInit(&xpc);
- xpc.xp_context = EXPAND_FILES;
-+ if (p_wic)
-+ options += WILD_ICASE;
- p = ExpandOne(&xpc, eap->arg, NULL,
-! options, WILD_EXPAND_FREE);
- if (p == NULL)
- return FAIL;
- }
-*** ../vim-7.3.071/src/ex_getln.c 2010-11-16 14:05:48.000000000 +0100
---- src/ex_getln.c 2010-11-28 15:07:49.000000000 +0100
-***************
-*** 3339,3348 ****
- p2 = NULL;
- else
- {
- p2 = ExpandOne(xp, p1,
- vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
-! WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE
-! |options, type);
- vim_free(p1);
- /* longest match: make sure it is not shorter, happens with :help */
- if (p2 != NULL && type == WILD_LONGEST)
---- 3339,3352 ----
- p2 = NULL;
- else
- {
-+ int use_options = options |
-+ WILD_HOME_REPLACE|WILD_ADD_SLASH|WILD_SILENT|WILD_ESCAPE;
-+
-+ if (p_wic)
-+ use_options += WILD_ICASE;
- p2 = ExpandOne(xp, p1,
- vim_strnsave(&ccline.cmdbuff[i], xp->xp_pattern_len),
-! use_options, type);
- vim_free(p1);
- /* longest match: make sure it is not shorter, happens with :help */
- if (p2 != NULL && type == WILD_LONGEST)
-***************
-*** 3428,3433 ****
---- 3432,3438 ----
- * options = WILD_KEEP_ALL: don't remove 'wildignore' entries
- * options = WILD_SILENT: don't print warning messages
- * options = WILD_ESCAPE: put backslash before special chars
-+ * options = WILD_ICASE: ignore case for files
- *
- * The variables xp->xp_context and xp->xp_backslash must have been set!
- */
-***************
-*** 4361,4366 ****
---- 4366,4372 ----
- char_u ***matches; /* return: array of pointers to matches */
- {
- char_u *file_str = NULL;
-+ int options = WILD_ADD_SLASH|WILD_SILENT;
-
- if (xp->xp_context == EXPAND_UNSUCCESSFUL)
- {
-***************
-*** 4379,4387 ****
- if (file_str == NULL)
- return EXPAND_UNSUCCESSFUL;
-
- /* find all files that match the description */
-! if (ExpandFromContext(xp, file_str, matchcount, matches,
-! WILD_ADD_SLASH|WILD_SILENT) == FAIL)
- {
- *matchcount = 0;
- *matches = NULL;
---- 4385,4395 ----
- if (file_str == NULL)
- return EXPAND_UNSUCCESSFUL;
-
-+ if (p_wic)
-+ options += WILD_ICASE;
-+
- /* find all files that match the description */
-! if (ExpandFromContext(xp, file_str, matchcount, matches, options) == FAIL)
- {
- *matchcount = 0;
- *matches = NULL;
-***************
-*** 4433,4439 ****
- char_u *pat;
- int *num_file;
- char_u ***file;
-! int options;
- {
- #ifdef FEAT_CMDL_COMPL
- regmatch_T regmatch;
---- 4441,4447 ----
- char_u *pat;
- int *num_file;
- char_u ***file;
-! int options; /* EW_ flags */
- {
- #ifdef FEAT_CMDL_COMPL
- regmatch_T regmatch;
-***************
-*** 4487,4492 ****
---- 4495,4503 ----
- flags |= (EW_FILE | EW_PATH);
- else
- flags = (flags | EW_DIR) & ~EW_FILE;
-+ if (options & WILD_ICASE)
-+ flags |= EW_ICASE;
-+
- /* Expand wildcards, supporting %:h and the like. */
- ret = expand_wildcards_eval(&pat, num_file, file, flags);
- if (free_pat)
-*** ../vim-7.3.071/src/misc1.c 2010-08-16 21:46:12.000000000 +0200
---- src/misc1.c 2010-11-28 15:02:57.000000000 +0100
-***************
-*** 9161,9167 ****
- #ifdef CASE_INSENSITIVE_FILENAME
- regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
- #else
-! regmatch.rm_ic = FALSE; /* Don't ever ignore case */
- #endif
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
- vim_free(pat);
---- 9161,9170 ----
- #ifdef CASE_INSENSITIVE_FILENAME
- regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
- #else
-! if (flags & EW_ICASE)
-! regmatch.rm_ic = TRUE; /* 'wildignorecase' set */
-! else
-! regmatch.rm_ic = FALSE; /* Don't ignore case */
- #endif
- regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
- vim_free(pat);
-***************
-*** 9643,9649 ****
- if (paths == NULL)
- return 0;
-
-! files = globpath(paths, pattern, 0);
- vim_free(paths);
- if (files == NULL)
- return 0;
---- 9646,9652 ----
- if (paths == NULL)
- return 0;
-
-! files = globpath(paths, pattern, (flags & EW_ICASE) ? WILD_ICASE : 0);
- vim_free(paths);
- if (files == NULL)
- return 0;
-*** ../vim-7.3.071/src/option.c 2010-12-02 15:33:10.000000000 +0100
---- src/option.c 2010-12-02 15:12:02.000000000 +0100
-***************
-*** 2740,2746 ****
- (char_u *)&p_wc, PV_NONE,
- {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
- SCRIPTID_INIT},
-! {"wildcharm", "wcm", P_NUM|P_VI_DEF,
- (char_u *)&p_wcm, PV_NONE,
- {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
- {"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
---- 2740,2746 ----
- (char_u *)&p_wc, PV_NONE,
- {(char_u *)(long)Ctrl_E, (char_u *)(long)TAB}
- SCRIPTID_INIT},
-! {"wildcharm", "wcm", P_NUM|P_VI_DEF,
- (char_u *)&p_wcm, PV_NONE,
- {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT},
- {"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP,
-***************
-*** 2750,2755 ****
---- 2750,2758 ----
- (char_u *)NULL, PV_NONE,
- #endif
- {(char_u *)"", (char_u *)0L} SCRIPTID_INIT},
-+ {"wildignorecase", "wic", P_BOOL|P_VI_DEF,
-+ (char_u *)&p_wic, PV_NONE,
-+ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
- {"wildmenu", "wmnu", P_BOOL|P_VI_DEF,
- #ifdef FEAT_WILDMENU
- (char_u *)&p_wmnu, PV_NONE,
-*** ../vim-7.3.071/src/option.h 2010-08-15 21:57:28.000000000 +0200
---- src/option.h 2010-11-28 14:29:18.000000000 +0100
-***************
-*** 872,877 ****
---- 872,878 ----
- EXTERN char_u *p_ww; /* 'whichwrap' */
- EXTERN long p_wc; /* 'wildchar' */
- EXTERN long p_wcm; /* 'wildcharm' */
-+ EXTERN long p_wic; /* 'wildignorecase' */
- EXTERN char_u *p_wim; /* 'wildmode' */
- #ifdef FEAT_WILDMENU
- EXTERN int p_wmnu; /* 'wildmenu' */
-*** ../vim-7.3.071/src/vim.h 2010-10-20 19:17:43.000000000 +0200
---- src/vim.h 2010-11-28 14:49:02.000000000 +0100
-***************
-*** 798,803 ****
---- 798,804 ----
- #define WILD_KEEP_ALL 32
- #define WILD_SILENT 64
- #define WILD_ESCAPE 128
-+ #define WILD_ICASE 256
-
- /* Flags for expand_wildcards() */
- #define EW_DIR 0x01 /* include directory names */
-***************
-*** 808,813 ****
---- 809,815 ----
- #define EW_SILENT 0x20 /* don't print "1 returned" from shell */
- #define EW_EXEC 0x40 /* executable files */
- #define EW_PATH 0x80 /* search in 'path' too */
-+ #define EW_ICASE 0x100 /* ignore case */
- /* 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.071/runtime/doc/options.txt 2010-10-20 17:44:01.000000000 +0200
---- runtime/doc/options.txt 2010-12-02 11:15:01.000000000 +0100
-***************
-*** 7748,7753 ****
---- 7756,7772 ----
- a pattern from the list. This avoids problems when a future version
- uses another default.
-
-+
-+ *'wildignorecase* *'wic'* *'nowildignorecase* *'nowic'*
-+ 'wildignorecase' 'wic' boolean (default off)
-+ global
-+ {not in Vi}
-+ When set case is ignored when completing file names and directories.
-+ Has no effect on systems where file name case is generally ignored.
-+ Does not apply when the shell is used to expand wildcards, which
-+ happens when there are special characters.
-+
-+
- *'wildmenu'* *'wmnu'* *'nowildmenu'* *'nowmnu'*
- 'wildmenu' 'wmnu' boolean (default off)
- global
-*** ../vim-7.3.071/src/version.c 2010-12-02 15:33:10.000000000 +0100
---- src/version.c 2010-12-02 15:57:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 72,
- /**/
-
---
-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.073 b/source/ap/vim/patches/7.3.073
deleted file mode 100644
index 4a79e20b2..000000000
--- a/source/ap/vim/patches/7.3.073
+++ /dev/null
@@ -1,92 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.073
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.073
-Problem: Double free memory when netbeans command follows DETACH.
-Solution: Only free the node when owned. (Xavier de Gaye)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.072/src/netbeans.c 2010-11-16 15:48:57.000000000 +0100
---- src/netbeans.c 2010-12-02 16:59:11.000000000 +0100
-***************
-*** 643,648 ****
---- 643,649 ----
- {
- char_u *p;
- queue_T *node;
-+ int own_node;
-
- while (head.next != NULL && head.next != &head)
- {
-***************
-*** 681,700 ****
- *p++ = NUL;
- if (*p == NUL)
- {
- head.next = node->next;
- node->next->prev = node->prev;
- }
-
- /* now, parse and execute the commands */
- nb_parse_cmd(node->buffer);
-
-! if (*p == NUL)
- {
- /* buffer finished, dispose of the node and buffer */
- vim_free(node->buffer);
- vim_free(node);
- }
-! else
- {
- /* more follows, move to the start */
- STRMOVE(node->buffer, p);
---- 682,706 ----
- *p++ = NUL;
- if (*p == NUL)
- {
-+ own_node = TRUE;
- head.next = node->next;
- node->next->prev = node->prev;
- }
-+ else
-+ own_node = FALSE;
-
- /* now, parse and execute the commands */
- nb_parse_cmd(node->buffer);
-
-! if (own_node)
- {
- /* buffer finished, dispose of the node and buffer */
- vim_free(node->buffer);
- vim_free(node);
- }
-! /* Check that "head" wasn't changed under our fingers, e.g. when a
-! * DETACH command was handled. */
-! else if (head.next == node)
- {
- /* more follows, move to the start */
- STRMOVE(node->buffer, p);
-*** ../vim-7.3.072/src/version.c 2010-12-02 16:01:23.000000000 +0100
---- src/version.c 2010-12-02 17:00:29.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 73,
- /**/
-
---
-If the Universe is constantly expanding, why can't I ever find a parking space?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.074 b/source/ap/vim/patches/7.3.074
deleted file mode 100644
index 1223d6dce..000000000
--- a/source/ap/vim/patches/7.3.074
+++ /dev/null
@@ -1,235 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.074
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.074
-Problem: Can't use the "+ register like "* for yank and put.
-Solution: Add "unnamedplus" to the 'clipboard' option. (Ivan Krasilnikov)
-Files: runtime/doc/options.txt, src/eval.c, src/globals.h, src/ops.c,
- src/option.c
-
-
-*** ../vim-7.3.073/runtime/doc/options.txt 2010-12-02 16:01:23.000000000 +0100
---- runtime/doc/options.txt 2010-12-02 21:22:48.000000000 +0100
-***************
-*** 1434,1439 ****
---- 1434,1448 ----
- 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
-*** ../vim-7.3.073/src/eval.c 2010-12-02 14:47:56.000000000 +0100
---- src/eval.c 2010-12-02 17:30:23.000000000 +0100
-***************
-*** 12135,12140 ****
---- 12139,12147 ----
- #ifdef FEAT_TOOLBAR
- "toolbar",
- #endif
-+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
-+ "unnamedplus",
-+ #endif
- #ifdef FEAT_USR_CMDS
- "user-commands", /* was accidentally included in 5.4 */
- "user_commands",
-*** ../vim-7.3.073/src/globals.h 2010-11-24 14:28:53.000000000 +0100
---- src/globals.h 2010-12-02 20:07:42.000000000 +0100
-***************
-*** 512,518 ****
- # define clip_plus clip_star /* there is only one clipboard */
- # define ONE_CLIPBOARD
- # endif
-! EXTERN int clip_unnamed INIT(= FALSE);
- EXTERN int clip_autoselect INIT(= FALSE);
- EXTERN int clip_autoselectml INIT(= FALSE);
- EXTERN int clip_html INIT(= FALSE);
---- 512,522 ----
- # define clip_plus clip_star /* there is only one clipboard */
- # 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);
- EXTERN int clip_autoselectml INIT(= FALSE);
- EXTERN int clip_html INIT(= FALSE);
-*** ../vim-7.3.073/src/ops.c 2010-11-24 14:28:53.000000000 +0100
---- src/ops.c 2010-12-02 21:33:04.000000000 +0100
-***************
-*** 1584,1592 ****
- adjust_clip_reg(rp)
- int *rp;
- {
-! /* If no reg. specified, and "unnamed" is in 'clipboard', use '*' reg. */
-! if (*rp == 0 && clip_unnamed)
-! *rp = '*';
- if (!clip_star.available && *rp == '*')
- *rp = 0;
- if (!clip_plus.available && *rp == '+')
---- 1584,1594 ----
- adjust_clip_reg(rp)
- int *rp;
- {
-! /* If no reg. specified, and "unnamed" or "unnamedplus" is in 'clipboard',
-! * use '*' or '+' reg, respectively. "unnamedplus" prevails. */
-! if (*rp == 0 && clip_unnamed != 0)
-! *rp = ((clip_unnamed & CLIP_UNNAMED_PLUS) && clip_plus.available)
-! ? '+' : '*';
- if (!clip_star.available && *rp == '*')
- *rp = 0;
- if (!clip_plus.available && *rp == '+')
-***************
-*** 2842,2847 ****
---- 2844,2850 ----
- char_u *p;
- char_u *pnew;
- struct block_def bd;
-+ int did_star = FALSE;
-
- /* check for read-only register */
- if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
-***************
-*** 3115,3121 ****
- */
- if (clip_star.available
- && (curr == &(y_regs[STAR_REGISTER])
-! || (!deleting && oap->regname == 0 && clip_unnamed)))
- {
- if (curr != &(y_regs[STAR_REGISTER]))
- /* Copy the text from register 0 to the clipboard register. */
---- 3118,3125 ----
- */
- if (clip_star.available
- && (curr == &(y_regs[STAR_REGISTER])
-! || (!deleting && oap->regname == 0
-! && (clip_unnamed & CLIP_UNNAMED))))
- {
- if (curr != &(y_regs[STAR_REGISTER]))
- /* Copy the text from register 0 to the clipboard register. */
-***************
-*** 3123,3128 ****
---- 3127,3133 ----
-
- clip_own_selection(&clip_star);
- clip_gen_set_selection(&clip_star);
-+ did_star = TRUE;
- }
-
- # ifdef FEAT_X11
-***************
-*** 3130,3141 ****
- * If we were yanking to the '+' register, send result to selection.
- * Also copy to the '*' register, in case auto-select is off.
- */
-! else if (clip_plus.available && curr == &(y_regs[PLUS_REGISTER]))
- {
- /* No need to copy to * register upon 'unnamed' now - see below */
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel())
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
---- 3135,3153 ----
- * If we were yanking to the '+' register, send result to selection.
- * Also copy to the '*' register, in case auto-select is off.
- */
-! if (clip_plus.available
-! && (curr == &(y_regs[PLUS_REGISTER])
-! || (!deleting && oap->regname == 0
-! && (clip_unnamed & CLIP_UNNAMED_PLUS))))
- {
-+ if (curr != &(y_regs[PLUS_REGISTER]))
-+ /* Copy the text from register 0 to the clipboard register. */
-+ copy_yank_reg(&(y_regs[PLUS_REGISTER]));
-+
- /* No need to copy to * register upon 'unnamed' now - see below */
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel() && !did_star)
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
-*** ../vim-7.3.073/src/option.c 2010-12-02 16:01:23.000000000 +0100
---- src/option.c 2010-12-02 21:41:32.000000000 +0100
-***************
-*** 7307,7313 ****
- static char_u *
- check_clipboard_option()
- {
-! int new_unnamed = FALSE;
- int new_autoselect = FALSE;
- int new_autoselectml = FALSE;
- int new_html = FALSE;
---- 7307,7313 ----
- static char_u *
- check_clipboard_option()
- {
-! int new_unnamed = 0;
- int new_autoselect = FALSE;
- int new_autoselectml = FALSE;
- int new_html = FALSE;
-***************
-*** 7319,7327 ****
- {
- if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
- {
-! new_unnamed = TRUE;
- p += 7;
- }
- else if (STRNCMP(p, "autoselect", 10) == 0
- && (p[10] == ',' || p[10] == NUL))
- {
---- 7319,7333 ----
- {
- if (STRNCMP(p, "unnamed", 7) == 0 && (p[7] == ',' || p[7] == NUL))
- {
-! new_unnamed |= CLIP_UNNAMED;
- p += 7;
- }
-+ else if (STRNCMP(p, "unnamedplus", 11) == 0
-+ && (p[11] == ',' || p[11] == NUL))
-+ {
-+ new_unnamed |= CLIP_UNNAMED_PLUS;
-+ p += 11;
-+ }
- else if (STRNCMP(p, "autoselect", 10) == 0
- && (p[10] == ',' || p[10] == NUL))
- {
-*** ../vim-7.3.073/src/version.c 2010-12-02 17:09:48.000000000 +0100
---- src/version.c 2010-12-02 21:34:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 74,
- /**/
-
---
-The budget process was invented by an alien race of sadistic beings who
-resemble large cats.
- (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.075 b/source/ap/vim/patches/7.3.075
deleted file mode 100644
index 91cbb5161..000000000
--- a/source/ap/vim/patches/7.3.075
+++ /dev/null
@@ -1,132 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.075
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.075 (after 7.3.072)
-Problem: Missing part of 'wildignorecase'
-Solution: Also adjust expand()
-Files: src/eval.c
-
-
-*** ../vim-7.3.074/src/eval.c 2010-12-02 21:43:10.000000000 +0100
---- src/eval.c 2010-12-02 17:30:23.000000000 +0100
-***************
-*** 9876,9882 ****
- char_u *s;
- int len;
- char_u *errormsg;
-! int flags = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
- expand_T xpc;
- int error = FALSE;
-
---- 9876,9882 ----
- char_u *s;
- int len;
- char_u *errormsg;
-! int options = WILD_SILENT|WILD_USE_NL|WILD_LIST_NOTFOUND;
- expand_T xpc;
- int error = FALSE;
-
-***************
-*** 9894,9905 ****
- * 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))
-! flags |= WILD_KEEP_ALL;
- if (!error)
- {
- ExpandInit(&xpc);
- xpc.xp_context = EXPAND_FILES;
-! rettv->vval.v_string = ExpandOne(&xpc, s, NULL, flags, WILD_ALL);
- }
- else
- rettv->vval.v_string = NULL;
---- 9894,9907 ----
- * 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;
- if (!error)
- {
- ExpandInit(&xpc);
- 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;
-***************
-*** 11672,11678 ****
- typval_T *argvars;
- typval_T *rettv;
- {
-! int flags = WILD_SILENT|WILD_USE_NL;
- expand_T xpc;
- int error = FALSE;
-
---- 11674,11680 ----
- typval_T *argvars;
- typval_T *rettv;
- {
-! int options = WILD_SILENT|WILD_USE_NL;
- expand_T xpc;
- int error = FALSE;
-
-***************
-*** 11680,11693 ****
- * 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))
-! flags |= WILD_KEEP_ALL;
- rettv->v_type = VAR_STRING;
- if (!error)
- {
- ExpandInit(&xpc);
- xpc.xp_context = EXPAND_FILES;
- rettv->vval.v_string = ExpandOne(&xpc, get_tv_string(&argvars[0]),
-! NULL, flags, WILD_ALL);
- }
- else
- rettv->vval.v_string = NULL;
---- 11682,11697 ----
- * 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;
-*** ../vim-7.3.074/src/version.c 2010-12-02 21:43:10.000000000 +0100
---- src/version.c 2010-12-02 21:43:59.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 75,
- /**/
-
---
-Engineers will go without food and hygiene for days to solve a problem.
-(Other times just because they forgot.)
- (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.076 b/source/ap/vim/patches/7.3.076
deleted file mode 100644
index 9ec7db428..000000000
--- a/source/ap/vim/patches/7.3.076
+++ /dev/null
@@ -1,203 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.076
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.076
-Problem: Clang warnings for dead code.
-Solution: Remove it. (Carlo Teubner)
-Files: src/gui_gtk.c, src/if_ruby.c, src/misc2.c, src/netbeans.c,
- src/spell.c
-
-
-*** ../vim-7.3.075/src/gui_gtk.c 2010-11-24 18:48:08.000000000 +0100
---- src/gui_gtk.c 2010-12-08 12:25:17.000000000 +0100
-***************
-*** 1798,1804 ****
- char_u *repl_text;
- gboolean direction_down;
- SharedFindReplace *sfr;
-- int rc;
-
- flags = (int)(long)data; /* avoid a lint warning here */
-
---- 1798,1803 ----
-***************
-*** 1824,1830 ****
-
- repl_text = CONVERT_FROM_UTF8(repl_text);
- find_text = CONVERT_FROM_UTF8(find_text);
-! rc = gui_do_findrepl(flags, find_text, repl_text, direction_down);
- CONVERT_FROM_UTF8_FREE(repl_text);
- CONVERT_FROM_UTF8_FREE(find_text);
- }
---- 1823,1829 ----
-
- repl_text = CONVERT_FROM_UTF8(repl_text);
- find_text = CONVERT_FROM_UTF8(find_text);
-! gui_do_findrepl(flags, find_text, repl_text, direction_down);
- CONVERT_FROM_UTF8_FREE(repl_text);
- CONVERT_FROM_UTF8_FREE(find_text);
- }
-*** ../vim-7.3.075/src/if_ruby.c 2010-11-24 17:03:34.000000000 +0100
---- src/if_ruby.c 2010-12-08 12:30:38.000000000 +0100
-***************
-*** 586,594 ****
- if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
- return;
- for (i = eap->line1; i <= eap->line2; i++) {
-! VALUE line, oldline;
-
-! line = oldline = vim_str2rb_enc_str((char *)ml_get(i));
- rb_lastline_set(line);
- eval_enc_string_protect((char *) eap->arg, &state);
- if (state) {
---- 586,594 ----
- if (u_save(eap->line1 - 1, eap->line2 + 1) != OK)
- return;
- for (i = eap->line1; i <= eap->line2; i++) {
-! VALUE line;
-
-! line = vim_str2rb_enc_str((char *)ml_get(i));
- rb_lastline_set(line);
- eval_enc_string_protect((char *) eap->arg, &state);
- if (state) {
-*** ../vim-7.3.075/src/misc2.c 2010-08-15 21:57:32.000000000 +0200
---- src/misc2.c 2010-12-08 12:42:44.000000000 +0100
-***************
-*** 200,206 ****
- }
- #endif
-
-- idx = -1;
- ptr = line;
- while (col <= wcol && *ptr != NUL)
- {
---- 200,205 ----
-***************
-*** 1223,1229 ****
- #endif
-
- /*
-! * copy a string into newly allocated memory
- */
- char_u *
- vim_strsave(string)
---- 1222,1228 ----
- #endif
-
- /*
-! * Copy "string" into newly allocated memory.
- */
- char_u *
- vim_strsave(string)
-***************
-*** 1239,1244 ****
---- 1238,1249 ----
- return p;
- }
-
-+ /*
-+ * Copy up to "len" bytes of "string" into newly allocated memory and
-+ * terminate with a NUL.
-+ * The allocated memory always has size "len + 1", also when "string" is
-+ * shorter.
-+ */
- char_u *
- vim_strnsave(string, len)
- char_u *string;
-*** ../vim-7.3.075/src/netbeans.c 2010-12-02 17:09:48.000000000 +0100
---- src/netbeans.c 2010-12-08 12:43:57.000000000 +0100
-***************
-*** 960,966 ****
- keyQ_T *key_node = keyHead.next;
- queue_T *cmd_node = head.next;
- nbbuf_T buf;
-- buf_T *bufp;
- int i;
-
- /* free the netbeans buffer list */
---- 960,965 ----
-***************
-*** 969,975 ****
- buf = buf_list[i];
- vim_free(buf.displayname);
- vim_free(buf.signmap);
-! if ((bufp=buf.bufp) != NULL)
- {
- buf.bufp->b_netbeans_file = FALSE;
- buf.bufp->b_was_netbeans_file = FALSE;
---- 968,974 ----
- buf = buf_list[i];
- vim_free(buf.displayname);
- vim_free(buf.signmap);
-! if (buf.bufp != NULL)
- {
- buf.bufp->b_netbeans_file = FALSE;
- buf.bufp->b_was_netbeans_file = FALSE;
-*** ../vim-7.3.075/src/spell.c 2010-09-29 18:32:47.000000000 +0200
---- src/spell.c 2010-12-08 12:47:13.000000000 +0100
-***************
-*** 9839,9848 ****
- {
- /* be quick for ASCII */
- if (wp->w_s->b_spell_ismw[*p])
-- {
- s = p + 1; /* skip a mid-word character */
-- l = MB_BYTE2LEN(*s);
-- }
- }
- else
- {
---- 9839,9845 ----
-***************
-*** 9850,9859 ****
- if (c < 256 ? wp->w_s->b_spell_ismw[c]
- : (wp->w_s->b_spell_ismw_mb != NULL
- && vim_strchr(wp->w_s->b_spell_ismw_mb, c) != NULL))
-- {
- s = p + l;
-- l = MB_BYTE2LEN(*s);
-- }
- }
-
- c = mb_ptr2char(s);
---- 9847,9853 ----
-***************
-*** 13813,13823 ****
- su->su_sfmaxscore = cleanup_suggestions(gap,
- su->su_sfmaxscore, SUG_CLEAN_COUNT(su));
- else
-- {
-- i = su->su_maxscore;
- su->su_maxscore = cleanup_suggestions(gap,
- su->su_maxscore, SUG_CLEAN_COUNT(su));
-- }
- }
- }
- }
---- 13807,13814 ----
-*** ../vim-7.3.075/src/version.c 2010-12-02 21:44:35.000000000 +0100
---- src/version.c 2010-12-08 13:10:00.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 76,
- /**/
-
---
-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.077 b/source/ap/vim/patches/7.3.077
deleted file mode 100644
index c0af4b960..000000000
--- a/source/ap/vim/patches/7.3.077
+++ /dev/null
@@ -1,134 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.077
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.077
-Problem: When updating crypt of swapfile fails there is no error message.
- (Carlo Teubner)
-Solution: Add the error message.
-Files: src/memline.c
-
-
-*** ../vim-7.3.076/src/memline.c 2010-08-15 21:57:31.000000000 +0200
---- src/memline.c 2010-12-08 12:39:10.000000000 +0100
-***************
-*** 582,587 ****
---- 582,590 ----
- idx = ip->ip_index + 1; /* go to next index */
- page_count = 1;
- }
-+
-+ if (error > 0)
-+ EMSG(_("E843: Error while updating swap file crypt"));
- }
-
- mfp->mf_old_key = NULL;
-***************
-*** 2384,2390 ****
- * Make a copy of the line if necessary.
- */
- /*
-! * get a pointer to a (read-only copy of a) line
- *
- * On failure an error message is given and IObuff is returned (to avoid
- * having to check for error everywhere).
---- 2387,2393 ----
- * Make a copy of the line if necessary.
- */
- /*
-! * Return a pointer to a (read-only copy of a) line.
- *
- * On failure an error message is given and IObuff is returned (to avoid
- * having to check for error everywhere).
-***************
-*** 2397,2403 ****
- }
-
- /*
-! * ml_get_pos: get pointer to position 'pos'
- */
- char_u *
- ml_get_pos(pos)
---- 2400,2406 ----
- }
-
- /*
-! * Return pointer to position "pos".
- */
- char_u *
- ml_get_pos(pos)
-***************
-*** 2407,2413 ****
- }
-
- /*
-! * ml_get_curline: get pointer to cursor line.
- */
- char_u *
- ml_get_curline()
---- 2410,2416 ----
- }
-
- /*
-! * Return pointer to cursor line.
- */
- char_u *
- ml_get_curline()
-***************
-*** 2416,2422 ****
- }
-
- /*
-! * ml_get_cursor: get pointer to cursor position
- */
- char_u *
- ml_get_cursor()
---- 2419,2425 ----
- }
-
- /*
-! * Return pointer to cursor position.
- */
- char_u *
- ml_get_cursor()
-***************
-*** 2426,2432 ****
- }
-
- /*
-! * get a pointer to a line in a specific buffer
- *
- * "will_change": if TRUE mark the buffer dirty (chars in the line will be
- * changed)
---- 2429,2435 ----
- }
-
- /*
-! * Return a pointer to a line in a specific buffer
- *
- * "will_change": if TRUE mark the buffer dirty (chars in the line will be
- * changed)
-*** ../vim-7.3.076/src/version.c 2010-12-08 13:11:15.000000000 +0100
---- src/version.c 2010-12-08 13:15:44.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 77,
- /**/
-
---
-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.078 b/source/ap/vim/patches/7.3.078
deleted file mode 100644
index ae8a9dad6..000000000
--- a/source/ap/vim/patches/7.3.078
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.078
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.078
-Problem: Warning for unused variable.
-Solution: Adjuste #ifdefs.
-Files: src/ops.c
-
-
-*** ../vim-7.3.077/src/ops.c 2010-12-02 21:43:10.000000000 +0100
---- src/ops.c 2010-12-08 14:21:48.000000000 +0100
-***************
-*** 2844,2850 ****
---- 2844,2852 ----
- char_u *p;
- char_u *pnew;
- struct block_def bd;
-+ #if defined(FEAT_CLIPBOARD) && defined(FEAT_X11)
- int did_star = FALSE;
-+ #endif
-
- /* check for read-only register */
- if (oap->regname != 0 && !valid_yank_reg(oap->regname, TRUE))
-***************
-*** 3127,3133 ****
---- 3129,3137 ----
-
- clip_own_selection(&clip_star);
- clip_gen_set_selection(&clip_star);
-+ # ifdef FEAT_X11
- did_star = TRUE;
-+ # endif
- }
-
- # ifdef FEAT_X11
-*** ../vim-7.3.077/src/version.c 2010-12-08 13:16:58.000000000 +0100
---- src/version.c 2010-12-08 14:22:42.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 78,
- /**/
-
---
-A)bort, R)etry, D)o it right this time
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.079 b/source/ap/vim/patches/7.3.079
deleted file mode 100644
index 493d52f3f..000000000
--- a/source/ap/vim/patches/7.3.079
+++ /dev/null
@@ -1,50 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.079
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.079
-Problem: Duplicate lines in makefile.
-Solution: Remove the lines. (Hong Xu)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.078/src/Make_mvc.mak 2010-11-03 21:59:23.000000000 +0100
---- src/Make_mvc.mak 2010-12-08 14:53:16.000000000 +0100
-***************
-*** 380,388 ****
- !if "$(_NMAKE_VER)" == "10.00.30319.01"
- MSVCVER = 10.0
- !endif
-- !if "$(_NMAKE_VER)" == "9.00.30729.01"
-- MSVCVER = 9.0
-- !endif
- !endif
-
- # Abort bulding VIM if version of VC is unrecognised.
---- 380,385 ----
-*** ../vim-7.3.078/src/version.c 2010-12-08 14:23:08.000000000 +0100
---- src/version.c 2010-12-08 14:54:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 79,
- /**/
-
---
-login: yes
-password: I don't know, please tell me
-password is incorrect
-login: yes
-password: incorrect
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.080 b/source/ap/vim/patches/7.3.080
deleted file mode 100644
index 6cf9f6d70..000000000
--- a/source/ap/vim/patches/7.3.080
+++ /dev/null
@@ -1,205 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.080
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.080
-Problem: Spell doesn't work on VMS.
-Solution: Use different file names. (Zoltan Bartos, Zoltan Arpadffy)
-Files: src/spell.c
-
-
-*** ../vim-7.3.079/src/spell.c 2010-12-08 13:11:15.000000000 +0100
---- src/spell.c 2010-12-08 17:01:13.000000000 +0100
-***************
-*** 327,332 ****
---- 327,342 ----
- typedef long idx_T;
- #endif
-
-+ #ifdef VMS
-+ # define SPL_FNAME_TMPL "%s_%s.spl"
-+ # define SPL_FNAME_ADD "_add."
-+ # define SPL_FNAME_ASCII "_ascii."
-+ #else
-+ # define SPL_FNAME_TMPL "%s.%s.spl"
-+ # define SPL_FNAME_ADD ".add."
-+ # define SPL_FNAME_ASCII ".ascii."
-+ #endif
-+
- /* Flags used for a word. Only the lowest byte can be used, the region byte
- * comes above it. */
- #define WF_REGION 0x01 /* region byte follows */
-***************
-*** 2471,2484 ****
- * Find the first spell file for "lang" in 'runtimepath' and load it.
- */
- vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
-! "spell/%s.%s.spl", lang, spell_enc());
- r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
-
- if (r == FAIL && *sl.sl_lang != NUL)
- {
- /* Try loading the ASCII version. */
- vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
-! "spell/%s.ascii.spl", lang);
- r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
-
- #ifdef FEAT_AUTOCMD
---- 2481,2504 ----
- * Find the first spell file for "lang" in 'runtimepath' and load it.
- */
- vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
-! #ifdef VMS
-! "spell/%s_%s.spl",
-! #else
-! "spell/%s.%s.spl",
-! #endif
-! lang, spell_enc());
- r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
-
- if (r == FAIL && *sl.sl_lang != NUL)
- {
- /* Try loading the ASCII version. */
- vim_snprintf((char *)fname_enc, sizeof(fname_enc) - 5,
-! #ifdef VMS
-! "spell/%s_ascii.spl",
-! #else
-! "spell/%s.ascii.spl",
-! #endif
-! lang);
- r = do_in_runtimepath(fname_enc, FALSE, spell_load_cb, &sl);
-
- #ifdef FEAT_AUTOCMD
-***************
-*** 2496,2502 ****
-
- if (r == FAIL)
- {
-! smsg((char_u *)_("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
- lang, spell_enc(), lang);
- }
- else if (sl.sl_slang != NULL)
---- 2516,2527 ----
-
- if (r == FAIL)
- {
-! smsg((char_u *)
-! #ifdef VMS
-! _("Warning: Cannot find word list \"%s_%s.spl\" or \"%s_ascii.spl\""),
-! #else
-! _("Warning: Cannot find word list \"%s.%s.spl\" or \"%s.ascii.spl\""),
-! #endif
- lang, spell_enc(), lang);
- }
- else if (sl.sl_slang != NULL)
-***************
-*** 2530,2536 ****
- int_wordlist_spl(fname)
- char_u *fname;
- {
-! vim_snprintf((char *)fname, MAXPATHL, "%s.%s.spl",
- int_wordlist, spell_enc());
- }
-
---- 2555,2561 ----
- int_wordlist_spl(fname)
- char_u *fname;
- {
-! vim_snprintf((char *)fname, MAXPATHL, SPL_FNAME_TMPL,
- int_wordlist, spell_enc());
- }
-
-***************
-*** 2785,2792 ****
- if (lp->sl_fname == NULL)
- goto endFAIL;
-
-! /* Check for .add.spl. */
-! lp->sl_add = strstr((char *)gettail(fname), ".add.") != NULL;
- }
- else
- lp = old_lp;
---- 2810,2817 ----
- if (lp->sl_fname == NULL)
- goto endFAIL;
-
-! /* Check for .add.spl (_add.spl for VMS). */
-! lp->sl_add = strstr((char *)gettail(fname), SPL_FNAME_ADD) != NULL;
- }
- else
- lp = old_lp;
-***************
-*** 9109,9116 ****
- /* For ":mkspell path/vim" output file is "path/vim.latin1.spl". */
- innames = &fnames[0];
- incount = 1;
-! vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
-! spin.si_ascii ? (char_u *)"ascii" : spell_enc());
- }
- else if (len > 4 && STRCMP(fnames[0] + len - 4, ".spl") == 0)
- {
---- 9134,9141 ----
- /* 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)
- {
-***************
-*** 9119,9133 ****
- }
- else
- /* Name should be language, make the file name from it. */
-! vim_snprintf((char *)wfname, sizeof(wfname), "%s.%s.spl", fnames[0],
-! spin.si_ascii ? (char_u *)"ascii" : spell_enc());
-
- /* Check for .ascii.spl. */
-! if (strstr((char *)gettail(wfname), ".ascii.") != NULL)
- spin.si_ascii = TRUE;
-
- /* Check for .add.spl. */
-! if (strstr((char *)gettail(wfname), ".add.") != NULL)
- spin.si_add = TRUE;
- }
-
---- 9144,9158 ----
- }
- 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. */
-! if (strstr((char *)gettail(wfname), SPL_FNAME_ASCII) != NULL)
- spin.si_ascii = TRUE;
-
- /* Check for .add.spl. */
-! if (strstr((char *)gettail(wfname), SPL_FNAME_ADD) != NULL)
- spin.si_add = TRUE;
- }
-
-*** ../vim-7.3.079/src/version.c 2010-12-08 14:54:58.000000000 +0100
---- src/version.c 2010-12-08 16:58:03.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 80,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-5. You find yourself brainstorming for new subjects to search.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.081 b/source/ap/vim/patches/7.3.081
deleted file mode 100644
index 635b9b505..000000000
--- a/source/ap/vim/patches/7.3.081
+++ /dev/null
@@ -1,84 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.081
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.081
-Problem: Non-printable characters in 'statusline' cause trouble. (ZyX)
-Solution: Use transstr(). (partly by Caio Ariede)
-Files: src/screen.c
-
-
-*** ../vim-7.3.080/src/screen.c 2010-08-15 21:57:32.000000000 +0200
---- src/screen.c 2010-12-08 19:27:20.000000000 +0100
-***************
-*** 3405,3413 ****
- # endif
- )
- {
-! int_u text_sign;
- # ifdef FEAT_SIGN_ICONS
-! int_u icon_sign;
- # endif
-
- /* Draw two cells with the sign value or blank. */
---- 3405,3413 ----
- # endif
- )
- {
-! int text_sign;
- # ifdef FEAT_SIGN_ICONS
-! int icon_sign;
- # endif
-
- /* Draw two cells with the sign value or blank. */
-***************
-*** 6522,6529 ****
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-- len = (int)STRLEN(buf);
-
- while (width < maxwidth && len < (int)sizeof(buf) - 1)
- {
- #ifdef FEAT_MBYTE
---- 6522,6538 ----
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-
-+ /* Make all characters printable. */
-+ p = transstr(buf);
-+ if (p != NULL)
-+ {
-+ vim_strncpy(buf, p, sizeof(buf) - 1);
-+ vim_free(p);
-+ }
-+
-+ /* fill up with "fillchar" */
-+ len = (int)STRLEN(buf);
- while (width < maxwidth && len < (int)sizeof(buf) - 1)
- {
- #ifdef FEAT_MBYTE
-*** ../vim-7.3.080/src/version.c 2010-12-08 17:09:27.000000000 +0100
---- src/version.c 2010-12-08 19:31:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 81,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-6. You refuse to go to a vacation spot with no electricity and no phone lines.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.082 b/source/ap/vim/patches/7.3.082
deleted file mode 100644
index 5753c05e8..000000000
--- a/source/ap/vim/patches/7.3.082
+++ /dev/null
@@ -1,51 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.082
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.082
-Problem: Leaking file descriptor when hostname doesn't exist.
-Solution: Remove old debugging lines.
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.081/src/netbeans.c 2010-12-08 13:11:15.000000000 +0100
---- src/netbeans.c 2010-12-17 12:13:32.000000000 +0100
-***************
-*** 323,334 ****
- server.sin_port = htons(port);
- if ((host = gethostbyname(hostname)) == NULL)
- {
-- if (mch_access(hostname, R_OK) >= 0)
-- {
-- /* DEBUG: input file */
-- sd = mch_open(hostname, O_RDONLY, 0);
-- goto theend;
-- }
- nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
- PERROR("gethostbyname() in netbeans_connect()");
- goto theend;
---- 323,328 ----
-*** ../vim-7.3.081/src/version.c 2010-12-08 19:56:52.000000000 +0100
---- src/version.c 2010-12-17 12:17:11.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 82,
- /**/
-
---
-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.083 b/source/ap/vim/patches/7.3.083
deleted file mode 100644
index f337d2109..000000000
--- a/source/ap/vim/patches/7.3.083
+++ /dev/null
@@ -1,362 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.083
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.083
-Problem: When a read() or write() is interrupted by a signal it fails.
-Solution: Add read_eintr() and write_eintr().
-Files: src/fileio.c, src/proto/fileio.pro, src/memfile.c, src/memline.c,
- src/os_unix.c, src/undo.c, src/vim.h
-
-
-*** ../vim-7.3.082/src/fileio.c 2010-08-15 21:57:26.000000000 +0200
---- src/fileio.c 2010-12-17 16:04:30.000000000 +0100
-***************
-*** 918,924 ****
- {
- /* Read the first line (and a bit more). Immediately rewind to
- * the start of the file. If the read() fails "len" is -1. */
-! len = vim_read(fd, firstline, 80);
- lseek(fd, (off_t)0L, SEEK_SET);
- for (p = firstline; p < firstline + len; ++p)
- if (*p >= 0x80)
---- 918,924 ----
- {
- /* Read the first line (and a bit more). Immediately rewind to
- * the start of the file. If the read() fails "len" is -1. */
-! len = read_eintr(fd, firstline, 80);
- lseek(fd, (off_t)0L, SEEK_SET);
- for (p = firstline; p < firstline + len; ++p)
- if (*p >= 0x80)
-***************
-*** 1373,1379 ****
- /*
- * Read bytes from the file.
- */
-! size = vim_read(fd, ptr, size);
- }
-
- if (size <= 0)
---- 1373,1379 ----
- /*
- * Read bytes from the file.
- */
-! size = read_eintr(fd, ptr, size);
- }
-
- if (size <= 0)
-***************
-*** 4000,4006 ****
- #ifdef HAS_BW_FLAGS
- write_info.bw_flags = FIO_NOCONVERT;
- #endif
-! while ((write_info.bw_len = vim_read(fd, copybuf,
- BUFSIZE)) > 0)
- {
- if (buf_write_bytes(&write_info) == FAIL)
---- 4000,4006 ----
- #ifdef HAS_BW_FLAGS
- write_info.bw_flags = FIO_NOCONVERT;
- #endif
-! while ((write_info.bw_len = read_eintr(fd, copybuf,
- BUFSIZE)) > 0)
- {
- if (buf_write_bytes(&write_info) == FAIL)
-***************
-*** 4813,4819 ****
- #ifdef HAS_BW_FLAGS
- write_info.bw_flags = FIO_NOCONVERT;
- #endif
-! while ((write_info.bw_len = vim_read(fd, smallbuf,
- SMBUFSIZE)) > 0)
- if (buf_write_bytes(&write_info) == FAIL)
- break;
---- 4813,4819 ----
- #ifdef HAS_BW_FLAGS
- write_info.bw_flags = FIO_NOCONVERT;
- #endif
-! while ((write_info.bw_len = read_eintr(fd, smallbuf,
- SMBUFSIZE)) > 0)
- if (buf_write_bytes(&write_info) == FAIL)
- break;
-***************
-*** 5330,5336 ****
-
- /*
- * Call write() to write a number of bytes to the file.
-! * Also handles encryption and 'encoding' conversion.
- *
- * Return FAIL for failure, OK otherwise.
- */
---- 5330,5336 ----
-
- /*
- * Call write() to write a number of bytes to the file.
-! * Handles encryption and 'encoding' conversion.
- *
- * Return FAIL for failure, OK otherwise.
- */
-***************
-*** 5702,5717 ****
- crypt_encode(buf, len, buf);
- #endif
-
-! /* Repeat the write(), it may be interrupted by a signal. */
-! while (len > 0)
-! {
-! wlen = vim_write(ip->bw_fd, buf, len);
-! if (wlen <= 0) /* error! */
-! return FAIL;
-! len -= wlen;
-! buf += wlen;
-! }
-! return OK;
- }
-
- #ifdef FEAT_MBYTE
---- 5702,5709 ----
- crypt_encode(buf, len, buf);
- #endif
-
-! wlen = write_eintr(ip->bw_fd, buf, len);
-! return (wlen < len) ? FAIL : OK;
- }
-
- #ifdef FEAT_MBYTE
-***************
-*** 6662,6669 ****
- return -1;
- }
-
-! while ((n = vim_read(fd_in, buffer, BUFSIZE)) > 0)
-! if (vim_write(fd_out, buffer, n) != n)
- {
- errmsg = _("E208: Error writing to \"%s\"");
- break;
---- 6654,6661 ----
- return -1;
- }
-
-! while ((n = read_eintr(fd_in, buffer, BUFSIZE)) > 0)
-! if (write_eintr(fd_out, buffer, n) != n)
- {
- errmsg = _("E208: Error writing to \"%s\"");
- break;
-***************
-*** 10304,10306 ****
---- 10296,10350 ----
- }
- return reg_pat;
- }
-+
-+ #if defined(EINTR) || defined(PROTO)
-+ /*
-+ * Version of read() that retries when interrupted by EINTR (possibly
-+ * by a SIGWINCH).
-+ */
-+ long
-+ read_eintr(fd, buf, bufsize)
-+ int fd;
-+ void *buf;
-+ size_t bufsize;
-+ {
-+ long ret;
-+
-+ for (;;)
-+ {
-+ ret = vim_read(fd, buf, bufsize);
-+ if (ret >= 0 || errno != EINTR)
-+ break;
-+ }
-+ return ret;
-+ }
-+
-+ /*
-+ * Version of write() that retries when interrupted by EINTR (possibly
-+ * by a SIGWINCH).
-+ */
-+ long
-+ write_eintr(fd, buf, bufsize)
-+ int fd;
-+ void *buf;
-+ size_t bufsize;
-+ {
-+ long ret = 0;
-+ long wlen;
-+
-+ /* Repeat the write() so long it didn't fail, other than being interrupted
-+ * by a signal. */
-+ while (ret < (long)bufsize)
-+ {
-+ wlen = vim_write(fd, buf + ret, bufsize - ret);
-+ if (wlen < 0)
-+ {
-+ if (errno != EINTR)
-+ break;
-+ }
-+ else
-+ ret += wlen;
-+ }
-+ return ret;
-+ }
-+ #endif
-*** ../vim-7.3.082/src/proto/fileio.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/fileio.pro 2010-12-17 15:01:26.000000000 +0100
-***************
-*** 54,57 ****
---- 54,59 ----
- int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
- int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
- char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
-+ long read_eintr __ARGS((int fd, void *buf, size_t bufsize));
-+ long write_eintr __ARGS((int fd, void *buf, size_t bufsize));
- /* vim: set ft=c : */
-*** ../vim-7.3.082/src/memfile.c 2010-08-15 21:57:25.000000000 +0200
---- src/memfile.c 2010-12-17 16:02:54.000000000 +0100
-***************
-*** 1049,1055 ****
- PERROR(_("E294: Seek error in swap file read"));
- return FAIL;
- }
-! if ((unsigned)vim_read(mfp->mf_fd, hp->bh_data, size) != size)
- {
- PERROR(_("E295: Read error in swap file"));
- return FAIL;
---- 1049,1055 ----
- PERROR(_("E294: Seek error in swap file read"));
- return FAIL;
- }
-! if ((unsigned)read_eintr(mfp->mf_fd, hp->bh_data, size) != size)
- {
- PERROR(_("E295: Read error in swap file"));
- return FAIL;
-***************
-*** 1168,1174 ****
- }
- #endif
-
-! if ((unsigned)vim_write(mfp->mf_fd, data, size) != size)
- result = FAIL;
-
- #ifdef FEAT_CRYPT
---- 1168,1174 ----
- }
- #endif
-
-! if ((unsigned)write_eintr(mfp->mf_fd, data, size) != size)
- result = FAIL;
-
- #ifdef FEAT_CRYPT
-*** ../vim-7.3.082/src/memline.c 2010-12-08 13:16:58.000000000 +0100
---- src/memline.c 2010-12-17 15:46:49.000000000 +0100
-***************
-*** 2062,2068 ****
- fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
- if (fd >= 0)
- {
-! if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
- {
- if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
- {
---- 2062,2068 ----
- fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
- if (fd >= 0)
- {
-! if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
- {
- if (STRNCMP(b0.b0_version, "VIM 3.0", 7) == 0)
- {
-***************
-*** 4392,4398 ****
- fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
- if (fd >= 0)
- {
-! if (read(fd, (char *)&b0, sizeof(b0)) == sizeof(b0))
- {
- /*
- * If the swapfile has the same directory as the
---- 4392,4398 ----
- fd = mch_open((char *)fname, O_RDONLY | O_EXTRA, 0);
- if (fd >= 0)
- {
-! if (read_eintr(fd, &b0, sizeof(b0)) == sizeof(b0))
- {
- /*
- * If the swapfile has the same directory as the
-*** ../vim-7.3.082/src/os_unix.c 2010-10-20 19:17:43.000000000 +0200
---- src/os_unix.c 2010-12-17 16:17:43.000000000 +0100
-***************
-*** 4454,4460 ****
- ++noread_cnt;
- while (RealWaitForChar(fromshell_fd, 10L, NULL))
- {
-! len = read(fromshell_fd, (char *)buffer
- # ifdef FEAT_MBYTE
- + buffer_off, (size_t)(BUFLEN - buffer_off)
- # else
---- 4454,4460 ----
- ++noread_cnt;
- while (RealWaitForChar(fromshell_fd, 10L, NULL))
- {
-! len = read_eintr(fromshell_fd, buffer
- # ifdef FEAT_MBYTE
- + buffer_off, (size_t)(BUFLEN - buffer_off)
- # else
-*** ../vim-7.3.082/src/undo.c 2010-11-03 19:32:36.000000000 +0100
---- src/undo.c 2010-12-17 15:39:24.000000000 +0100
-***************
-*** 1386,1392 ****
- char_u mbuf[UF_START_MAGIC_LEN];
- int len;
-
-! len = vim_read(fd, mbuf, UF_START_MAGIC_LEN);
- close(fd);
- if (len < UF_START_MAGIC_LEN
- || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
---- 1386,1392 ----
- char_u mbuf[UF_START_MAGIC_LEN];
- int len;
-
-! len = read_eintr(fd, mbuf, UF_START_MAGIC_LEN);
- close(fd);
- if (len < UF_START_MAGIC_LEN
- || memcmp(mbuf, UF_START_MAGIC, UF_START_MAGIC_LEN) != 0)
-*** ../vim-7.3.082/src/vim.h 2010-12-02 16:01:23.000000000 +0100
---- src/vim.h 2010-12-17 14:55:04.000000000 +0100
-***************
-*** 1642,1647 ****
---- 1642,1652 ----
- # define USE_INPUT_BUF
- #endif
-
-+ #ifndef EINTR
-+ # define read_eintr(fd, buf, count) vim_read((fd), (buf), (count))
-+ # define write_eintr(fd, buf, count) vim_write((fd), (buf), (count))
-+ #endif
-+
- #ifdef MSWIN
- /* On MS-Windows the third argument isn't size_t. This matters for Win64,
- * where sizeof(size_t)==8, not 4 */
-*** ../vim-7.3.082/src/version.c 2010-12-17 12:19:14.000000000 +0100
---- src/version.c 2010-12-17 16:10:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 83,
- /**/
-
---
-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.084 b/source/ap/vim/patches/7.3.084
deleted file mode 100644
index a46892e39..000000000
--- a/source/ap/vim/patches/7.3.084
+++ /dev/null
@@ -1,123 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.084
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.084
-Problem: When splitting the window, the new one scrolls with the cursor at
- the top.
-Solution: Compute w_fraction before setting the new height.
-Files: src/window.c
-
-
-*** ../vim-7.3.083/src/window.c 2010-09-21 16:56:29.000000000 +0200
---- src/window.c 2010-12-17 17:09:51.000000000 +0100
-***************
-*** 70,76 ****
- #endif /* FEAT_WINDOWS */
-
- static win_T *win_alloc __ARGS((win_T *after, int hidden));
-! static void win_new_height __ARGS((win_T *, int));
-
- #define URL_SLASH 1 /* path_is_url() has found "://" */
- #define URL_BACKSLASH 2 /* path_is_url() has found ":\\" */
---- 70,77 ----
- #endif /* FEAT_WINDOWS */
-
- 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 ":\\" */
-***************
-*** 983,992 ****
---- 984,999 ----
- else
- frame_append(curfrp, frp);
-
-+ /* Set w_fraction now so that the cursor keeps the same relative
-+ * vertical position. */
-+ set_fraction(oldwin);
-+ wp->w_fraction = oldwin->w_fraction;
-+
- #ifdef FEAT_VERTSPLIT
- if (flags & WSP_VERT)
- {
- wp->w_p_scr = curwin->w_p_scr;
-+
- if (need_status)
- {
- win_new_height(oldwin, oldwin->w_height - 1);
-***************
-*** 5453,5458 ****
---- 5460,5478 ----
-
- #endif /* FEAT_WINDOWS */
-
-+ #define FRACTION_MULT 16384L
-+
-+ /*
-+ * Set wp->w_fraction for the current w_wrow and w_height.
-+ */
-+ static void
-+ set_fraction(wp)
-+ win_T *wp;
-+ {
-+ wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
-+ + FRACTION_MULT / 2) / (long)wp->w_height;
-+ }
-+
- /*
- * Set the height of a window.
- * This takes care of the things inside the window, not what happens to the
-***************
-*** 5465,5471 ****
- {
- linenr_T lnum;
- int sline, line_size;
-- #define FRACTION_MULT 16384L
-
- /* Don't want a negative height. Happens when splitting a tiny window.
- * Will equalize heights soon to fix it. */
---- 5485,5490 ----
-***************
-*** 5475,5482 ****
- return; /* nothing to do */
-
- if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
-! wp->w_fraction = ((long)wp->w_wrow * FRACTION_MULT
-! + FRACTION_MULT / 2) / (long)wp->w_height;
-
- wp->w_height = height;
- wp->w_skipcol = 0;
---- 5494,5500 ----
- return; /* nothing to do */
-
- if (wp->w_wrow != wp->w_prev_fraction_row && wp->w_height > 0)
-! set_fraction(wp);
-
- wp->w_height = height;
- wp->w_skipcol = 0;
-*** ../vim-7.3.083/src/version.c 2010-12-17 16:27:10.000000000 +0100
---- src/version.c 2010-12-17 17:14:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 84,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-12. Sing along at the opera.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.085 b/source/ap/vim/patches/7.3.085
deleted file mode 100644
index 15fb87ff8..000000000
--- a/source/ap/vim/patches/7.3.085
+++ /dev/null
@@ -1,313 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.085
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.085 (after 7.3.083)
-Problem: Inconsistency with preproc symbols. void * computation.
-Solution: Include vimio.h from vim.h. Add type cast.
-Files: src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, src/fileio.c,
- src/if_cscope.c, src/if_sniff.c, src/main.c, src/memfile.c,
- src/memline.c, src/netbeans.c, src/os_msdos.c, src/os_mswin.c,
- src/os_win16.c, src/os_win32.c, src/spell.c, src/tag.c,
- src/undo.c, src/vim.h
-
-
-*** ../vim-7.3.084/src/eval.c 2010-12-02 21:44:35.000000000 +0100
---- src/eval.c 2010-12-17 17:45:37.000000000 +0100
-***************
-*** 10,18 ****
- /*
- * eval.c: Expression evaluation.
- */
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for mch_open(), must be before vim.h */
-- #endif
-
- #include "vim.h"
-
---- 10,15 ----
-*** ../vim-7.3.084/src/ex_cmds.c 2010-11-24 17:59:27.000000000 +0100
---- src/ex_cmds.c 2010-12-17 17:46:09.000000000 +0100
-***************
-*** 11,20 ****
- * ex_cmds.c: some functions for command line commands
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for mch_open(), must be before vim.h */
-- #endif
--
- #include "vim.h"
- #include "version.h"
-
---- 11,16 ----
-*** ../vim-7.3.084/src/ex_cmds2.c 2010-09-21 16:56:29.000000000 +0200
---- src/ex_cmds2.c 2010-12-17 17:46:26.000000000 +0100
-***************
-*** 11,20 ****
- * ex_cmds2.c: some more functions for command line commands
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for mch_open(), must be before vim.h */
-- #endif
--
- #include "vim.h"
- #include "version.h"
-
---- 11,16 ----
-*** ../vim-7.3.084/src/fileio.c 2010-12-17 16:27:09.000000000 +0100
---- src/fileio.c 2010-12-17 17:52:42.000000000 +0100
-***************
-*** 11,24 ****
- * fileio.c: read from and write to a file
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for lseek(), must be before vim.h */
-- #endif
--
-- #if defined __EMX__
-- # include "vimio.h" /* for mktemp(), CJW 1997-12-03 */
-- #endif
--
- #include "vim.h"
-
- #if defined(__TANDEM) || defined(__MINT__)
---- 11,16 ----
-***************
-*** 10336,10342 ****
- * by a signal. */
- while (ret < (long)bufsize)
- {
-! wlen = vim_write(fd, buf + ret, bufsize - ret);
- if (wlen < 0)
- {
- if (errno != EINTR)
---- 10328,10334 ----
- * by a signal. */
- while (ret < (long)bufsize)
- {
-! wlen = vim_write(fd, (char *)buf + ret, bufsize - ret);
- if (wlen < 0)
- {
- if (errno != EINTR)
-*** ../vim-7.3.084/src/if_cscope.c 2010-09-21 16:56:29.000000000 +0200
---- src/if_cscope.c 2010-12-17 17:47:02.000000000 +0100
-***************
-*** 20,28 ****
- #include <sys/stat.h>
- #if defined(UNIX)
- # include <sys/wait.h>
-- #else
-- /* not UNIX, must be WIN32 */
-- # include "vimio.h"
- #endif
- #include "if_cscope.h"
-
---- 20,25 ----
-*** ../vim-7.3.084/src/if_sniff.c 2010-08-15 21:57:25.000000000 +0200
---- src/if_sniff.c 2010-12-17 17:47:20.000000000 +0100
-***************
-*** 9,15 ****
-
- #ifdef WIN32
- # include <stdio.h>
-- # include "vimio.h"
- # include <process.h>
- # include <string.h>
- # include <assert.h>
---- 9,14 ----
-*** ../vim-7.3.084/src/main.c 2010-11-16 16:25:46.000000000 +0100
---- src/main.c 2010-12-17 17:47:41.000000000 +0100
-***************
-*** 7,16 ****
- * See README.txt for an overview of the Vim source code.
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for close() and dup() */
-- #endif
--
- #define EXTERN
- #include "vim.h"
-
---- 7,12 ----
-*** ../vim-7.3.084/src/memfile.c 2010-12-17 16:27:10.000000000 +0100
---- src/memfile.c 2010-12-17 17:47:54.000000000 +0100
-***************
-*** 32,41 ****
- * file is opened.
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for lseek(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- /*
---- 32,37 ----
-*** ../vim-7.3.084/src/memline.c 2010-12-17 16:27:10.000000000 +0100
---- src/memline.c 2010-12-17 17:48:06.000000000 +0100
-***************
-*** 42,51 ****
- * mf_get().
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for mch_open(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- #ifndef UNIX /* it's in os_unix.h for Unix */
---- 42,47 ----
-*** ../vim-7.3.084/src/netbeans.c 2010-12-17 12:19:14.000000000 +0100
---- src/netbeans.c 2010-12-17 17:48:19.000000000 +0100
-***************
-*** 16,25 ****
- * See ":help netbeans-protocol" for explanation.
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for mch_open(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- #if defined(FEAT_NETBEANS_INTG) || defined(PROTO)
---- 16,21 ----
-*** ../vim-7.3.084/src/os_msdos.c 2010-08-15 21:57:25.000000000 +0200
---- src/os_msdos.c 2010-12-17 17:48:40.000000000 +0100
-***************
-*** 21,27 ****
- * Some functions are also used for Win16 (MS-Windows 3.1).
- */
-
-- #include "vimio.h"
- #include "vim.h"
-
- #include <conio.h>
---- 21,26 ----
-*** ../vim-7.3.084/src/os_mswin.c 2010-10-23 14:02:48.000000000 +0200
---- src/os_mswin.c 2010-12-17 17:48:51.000000000 +0100
-***************
-*** 22,28 ****
- # endif
- #endif
-
-- #include "vimio.h"
- #include "vim.h"
-
- #ifdef WIN16
---- 22,27 ----
-*** ../vim-7.3.084/src/os_win16.c 2010-08-15 21:57:32.000000000 +0200
---- src/os_win16.c 2010-12-17 17:49:02.000000000 +0100
-***************
-*** 20,26 ****
- # pragma warn -obs
- #endif
-
-- #include "vimio.h"
- #include "vim.h"
-
- #include <dos.h>
---- 20,25 ----
-*** ../vim-7.3.084/src/os_win32.c 2010-11-24 12:35:14.000000000 +0100
---- src/os_win32.c 2010-12-17 17:49:11.000000000 +0100
-***************
-*** 20,26 ****
- * Roger Knobbe <rogerk@wonderware.com> did the initial port of Vim 3.0.
- */
-
-- #include "vimio.h"
- #include "vim.h"
-
- #ifdef FEAT_MZSCHEME
---- 20,25 ----
-*** ../vim-7.3.084/src/spell.c 2010-12-08 17:09:27.000000000 +0100
---- src/spell.c 2010-12-17 17:49:24.000000000 +0100
-***************
-*** 303,312 ****
- * few bytes as possible, see offset2bytes())
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for lseek(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- #if defined(FEAT_SPELL) || defined(PROTO)
---- 303,308 ----
-*** ../vim-7.3.084/src/tag.c 2010-09-21 16:56:29.000000000 +0200
---- src/tag.c 2010-12-17 17:49:35.000000000 +0100
-***************
-*** 11,20 ****
- * Code to handle tags and the tag stack
- */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for lseek(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- /*
---- 11,16 ----
-*** ../vim-7.3.084/src/undo.c 2010-12-17 16:27:10.000000000 +0100
---- src/undo.c 2010-12-17 17:49:59.000000000 +0100
-***************
-*** 81,90 ****
- #define UH_MAGIC 0x18dade /* value for uh_magic when in use */
- #define UE_MAGIC 0xabc123 /* value for ue_magic when in use */
-
-- #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64)
-- # include "vimio.h" /* for vim_read(), must be before vim.h */
-- #endif
--
- #include "vim.h"
-
- static void u_unch_branch __ARGS((u_header_T *uhp));
---- 81,86 ----
-*** ../vim-7.3.084/src/vim.h 2010-12-17 16:27:10.000000000 +0100
---- src/vim.h 2010-12-17 17:51:43.000000000 +0100
-***************
-*** 27,32 ****
---- 27,37 ----
- # endif
- #endif
-
-+ #if defined(MSDOS) || defined(WIN16) || defined(WIN32) || defined(_WIN64) \
-+ || defined(__EMX__)
-+ # include "vimio.h"
-+ #endif
-+
- /* ============ the header file puzzle (ca. 50-100 pieces) ========= */
-
- #ifdef HAVE_CONFIG_H /* GNU autoconf (or something else) was here */
-*** ../vim-7.3.084/src/version.c 2010-12-17 17:35:05.000000000 +0100
---- src/version.c 2010-12-17 17:55:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 85,
- /**/
-
---
-How To Keep A Healthy Level Of Insanity:
-14. Put mosquito netting around your work area. Play a tape of jungle
- sounds all 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.086 b/source/ap/vim/patches/7.3.086
deleted file mode 100644
index cf494e004..000000000
--- a/source/ap/vim/patches/7.3.086
+++ /dev/null
@@ -1,138 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.086
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.086
-Problem: When using a mapping with an expression and there was no count,
- v:count has the value of the previous command. (ZyX)
-Solution: Also set v:count and v:count1 before getting the character that
- could be a command or a count.
-Files: src/normal.c
-
-
-*** ../vim-7.3.085/src/normal.c 2010-10-13 18:06:42.000000000 +0200
---- src/normal.c 2010-12-17 18:46:56.000000000 +0100
-***************
-*** 25,30 ****
---- 25,33 ----
- static int restart_VIsual_select = 0;
- #endif
-
-+ #ifdef FEAT_EVAL
-+ static void set_vcount_ca __ARGS((cmdarg_T *cap, int *set_prevcount));
-+ #endif
- static int
- # ifdef __BORLANDC__
- _RTLENTRYF
-***************
-*** 648,653 ****
---- 651,664 ----
- dont_scroll = FALSE; /* allow scrolling here */
- #endif
-
-+ #ifdef FEAT_EVAL
-+ /* Set v:count here, when called from main() and not a stuffed
-+ * command, so that v:count can be used in an expression mapping
-+ * when there is no count. */
-+ if (toplevel && stuff_empty())
-+ set_vcount_ca(&ca, &set_prevcount);
-+ #endif
-+
- /*
- * Get the command character from the user.
- */
-***************
-*** 725,739 ****
- * command, so that v:count can be used in an expression mapping
- * right after the count. */
- if (toplevel && stuff_empty())
-! {
-! long count = ca.count0;
-!
-! /* multiply with ca.opcount the same way as below */
-! if (ca.opcount != 0)
-! count = ca.opcount * (count == 0 ? 1 : count);
-! set_vcount(count, count == 0 ? 1 : count, set_prevcount);
-! set_prevcount = FALSE; /* only set v:prevcount once */
-! }
- #endif
- if (ctrl_w)
- {
---- 736,742 ----
- * command, so that v:count can be used in an expression mapping
- * right after the count. */
- if (toplevel && stuff_empty())
-! set_vcount_ca(&ca, &set_prevcount);
- #endif
- if (ctrl_w)
- {
-***************
-*** 1386,1391 ****
---- 1389,1414 ----
- opcount = ca.opcount;
- }
-
-+ #ifdef FEAT_EVAL
-+ /*
-+ * Set v:count and v:count1 according to "cap".
-+ * Set v:prevcount only when "set_prevcount" is TRUE.
-+ */
-+ static void
-+ set_vcount_ca(cap, set_prevcount)
-+ cmdarg_T *cap;
-+ int *set_prevcount;
-+ {
-+ long count = cap->count0;
-+
-+ /* multiply with cap->opcount the same way as above */
-+ if (cap->opcount != 0)
-+ count = cap->opcount * (count == 0 ? 1 : count);
-+ set_vcount(count, count == 0 ? 1 : count, *set_prevcount);
-+ *set_prevcount = FALSE; /* only set v:prevcount once */
-+ }
-+ #endif
-+
- /*
- * Handle an operator after visual mode or when the movement is finished
- */
-***************
-*** 8529,8535 ****
- else
- curwin->w_curswant = 0;
- /* keep curswant at the column where we wanted to go, not where
-! we ended; differs if line is too short */
- curwin->w_set_curswant = FALSE;
- }
-
---- 8552,8558 ----
- else
- curwin->w_curswant = 0;
- /* keep curswant at the column where we wanted to go, not where
-! * we ended; differs if line is too short */
- curwin->w_set_curswant = FALSE;
- }
-
-*** ../vim-7.3.085/src/version.c 2010-12-17 18:06:00.000000000 +0100
---- src/version.c 2010-12-17 18:51:20.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 86,
- /**/
-
---
-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.087 b/source/ap/vim/patches/7.3.087
deleted file mode 100644
index e0497dbdd..000000000
--- a/source/ap/vim/patches/7.3.087
+++ /dev/null
@@ -1,152 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.087
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.087
-Problem: EINTR is not always defined.
-Solution: Include errno.h in vim.h.
-Files: src/if_cscope.c, src/if_tcl.c, src/integration.c, src/memline.c,
- src/os_mswin.c, src/os_win16.c, src/os_win32.c, src/vim.h,
- src/workshop.c
-
-
-*** ../vim-7.3.086/src/if_cscope.c 2010-12-17 18:06:00.000000000 +0100
---- src/if_cscope.c 2010-12-17 20:06:01.000000000 +0100
-***************
-*** 13,20 ****
-
- #if defined(FEAT_CSCOPE) || defined(PROTO)
-
-- #include <string.h>
-- #include <errno.h>
- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
---- 13,18 ----
-*** ../vim-7.3.086/src/if_tcl.c 2010-08-15 21:57:27.000000000 +0200
---- src/if_tcl.c 2010-12-17 20:06:56.000000000 +0100
-***************
-*** 74,80 ****
- #endif
-
- #include <tcl.h>
-- #include <errno.h>
- #include <string.h>
-
- typedef struct
---- 74,79 ----
-*** ../vim-7.3.086/src/integration.c 2010-08-15 21:57:29.000000000 +0200
---- src/integration.c 2010-12-17 20:07:12.000000000 +0100
-***************
-*** 33,39 ****
- #include <sys/un.h>
- #endif
-
-- #include <errno.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/param.h>
---- 33,38 ----
-*** ../vim-7.3.086/src/memline.c 2010-12-17 18:06:00.000000000 +0100
---- src/memline.c 2010-12-17 20:07:31.000000000 +0100
-***************
-*** 52,61 ****
- # include <proto/dos.h> /* for Open() and Close() */
- #endif
-
-- #ifdef HAVE_ERRNO_H
-- # include <errno.h>
-- #endif
--
- typedef struct block0 ZERO_BL; /* contents of the first block */
- typedef struct pointer_block PTR_BL; /* contents of a pointer block */
- typedef struct data_block DATA_BL; /* contents of a data block */
---- 52,57 ----
-*** ../vim-7.3.086/src/os_mswin.c 2010-12-17 18:06:00.000000000 +0100
---- src/os_mswin.c 2010-12-17 20:08:14.000000000 +0100
-***************
-*** 30,36 ****
- # include <string.h>
- #endif
- #include <sys/types.h>
-- #include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
---- 30,35 ----
-*** ../vim-7.3.086/src/os_win16.c 2010-12-17 18:06:00.000000000 +0100
---- src/os_win16.c 2010-12-17 20:08:53.000000000 +0100
-***************
-*** 25,31 ****
- #include <dos.h>
- #include <string.h>
- #include <sys/types.h>
-- #include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
---- 25,30 ----
-*** ../vim-7.3.086/src/os_win32.c 2010-12-17 18:06:00.000000000 +0100
---- src/os_win32.c 2010-12-17 20:09:18.000000000 +0100
-***************
-*** 27,33 ****
- #endif
-
- #include <sys/types.h>
-- #include <errno.h>
- #include <signal.h>
- #include <limits.h>
- #include <process.h>
---- 27,32 ----
-*** ../vim-7.3.086/src/vim.h 2010-12-17 18:06:00.000000000 +0100
---- src/vim.h 2010-12-17 20:09:56.000000000 +0100
-***************
-*** 480,485 ****
---- 480,490 ----
- # include <sys/stat.h>
- #endif
-
-+ #if defined(HAVE_ERRNO_H) || defined(DJGPP) || defined(WIN16) \
-+ || defined(WIN32) || defined(_WIN64) || defined(__EMX__)
-+ # include <errno.h>
-+ #endif
-+
- /*
- * Allow other (non-unix) systems to configure themselves now
- * These are also in os_unix.h, because osdef.sh needs them there.
-*** ../vim-7.3.086/src/workshop.c 2010-08-15 21:57:26.000000000 +0200
---- src/workshop.c 2010-12-17 20:09:31.000000000 +0100
-***************
-*** 16,22 ****
- #include <sys/types.h>
- #include <netdb.h>
- #include <netinet/in.h>
-- #include <errno.h>
- #include <sys/socket.h>
- #ifdef HAVE_LIBGEN_H
- # include <libgen.h>
---- 16,21 ----
-*** ../vim-7.3.086/src/version.c 2010-12-17 18:52:56.000000000 +0100
---- src/version.c 2010-12-17 20:14:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 87,
- /**/
-
---
-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.088 b/source/ap/vim/patches/7.3.088
deleted file mode 100644
index 98acc7c10..000000000
--- a/source/ap/vim/patches/7.3.088
+++ /dev/null
@@ -1,152 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.088
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.088
-Problem: Ruby can't load Gems sometimes, may cause a crash.
-Solution: Undefine off_t. Use ruby_process_options(). (Yasuhiro Matsumoto)
-Files: src/if_ruby.c
-
-
-*** ../vim-7.3.087/src/if_ruby.c 2010-12-08 13:11:15.000000000 +0100
---- src/if_ruby.c 2010-12-24 12:18:31.000000000 +0100
-***************
-*** 90,95 ****
---- 90,96 ----
- # include <ruby/encoding.h>
- #endif
-
-+ #undef off_t /* ruby defines off_t as _int64, Mingw uses long */
- #undef EXTERN
- #undef _
-
-***************
-*** 229,238 ****
- # define rb_enc_find_index dll_rb_enc_find_index
- # define rb_enc_find dll_rb_enc_find
- # define rb_enc_str_new dll_rb_enc_str_new
-- # define rb_intern2 dll_rb_intern2
-- # define rb_const_remove dll_rb_const_remove
- # define rb_sprintf dll_rb_sprintf
- # define ruby_init_stack dll_ruby_init_stack
- #endif
-
- /*
---- 230,239 ----
- # define rb_enc_find_index dll_rb_enc_find_index
- # define rb_enc_find dll_rb_enc_find
- # define rb_enc_str_new dll_rb_enc_str_new
- # define rb_sprintf dll_rb_sprintf
-+ # define rb_require dll_rb_require
- # define ruby_init_stack dll_ruby_init_stack
-+ # define ruby_process_options dll_ruby_process_options
- #endif
-
- /*
-***************
-*** 319,329 ****
- static int (*dll_rb_enc_find_index) (const char*);
- static rb_encoding* (*dll_rb_enc_find) (const char*);
- static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
-- static ID (*dll_rb_intern2) (const char*, long);
-- static void (*dll_Init_prelude) (void);
-- static VALUE (*dll_rb_const_remove) (VALUE, ID);
- static VALUE (*dll_rb_sprintf) (const char*, ...);
- static void (*ruby_init_stack)(VALUE*);
- #endif
-
- #ifdef RUBY19_OR_LATER
---- 320,329 ----
- static int (*dll_rb_enc_find_index) (const char*);
- static rb_encoding* (*dll_rb_enc_find) (const char*);
- static VALUE (*dll_rb_enc_str_new) (const char*, long, rb_encoding*);
- static VALUE (*dll_rb_sprintf) (const char*, ...);
-+ static VALUE (*dll_rb_require) (const char*);
- static void (*ruby_init_stack)(VALUE*);
-+ static void* (*ruby_process_options)(int, char**);
- #endif
-
- #ifdef RUBY19_OR_LATER
-***************
-*** 430,439 ****
- {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
- {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
- {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
-- {"rb_intern2", (RUBY_PROC*)&dll_rb_intern2},
-- {"rb_const_remove", (RUBY_PROC*)&dll_rb_const_remove},
- {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
- {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
- #endif
- {"", NULL},
- };
---- 430,439 ----
- {"rb_enc_find_index", (RUBY_PROC*)&dll_rb_enc_find_index},
- {"rb_enc_find", (RUBY_PROC*)&dll_rb_enc_find},
- {"rb_enc_str_new", (RUBY_PROC*)&dll_rb_enc_str_new},
- {"rb_sprintf", (RUBY_PROC*)&dll_rb_sprintf},
-+ {"rb_require", (RUBY_PROC*)&dll_rb_require},
- {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack},
-+ {"ruby_process_options", (RUBY_PROC*)&dll_ruby_process_options},
- #endif
- {"", NULL},
- };
-***************
-*** 663,680 ****
- ruby_init();
- }
- #ifdef RUBY19_OR_LATER
- ruby_script("vim-ruby");
-! #endif
- ruby_init_loadpath();
-- ruby_io_init();
-- #ifdef RUBY19_OR_LATER
-- rb_enc_find_index("encdb");
--
-- /* This avoids the error "Encoding::ConverterNotFoundError: code
-- * converter not found (UTF-16LE to ASCII-8BIT)". */
-- rb_define_module("Gem");
-- rb_const_remove(rb_cObject, rb_intern2("TMP_RUBY_PREFIX", 15));
- #endif
- ruby_vim_init();
- ruby_initialized = 1;
- #ifdef DYNAMIC_RUBY
---- 663,678 ----
- ruby_init();
- }
- #ifdef RUBY19_OR_LATER
-+ {
-+ int dummy_argc = 2;
-+ char *dummy_argv[] = {"vim-ruby", "-e0"};
-+ ruby_process_options(dummy_argc, dummy_argv);
-+ }
- ruby_script("vim-ruby");
-! #else
- ruby_init_loadpath();
- #endif
-+ ruby_io_init();
- ruby_vim_init();
- ruby_initialized = 1;
- #ifdef DYNAMIC_RUBY
-*** ../vim-7.3.087/src/version.c 2010-12-17 20:23:56.000000000 +0100
---- src/version.c 2010-12-24 13:38:51.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 88,
- /**/
-
---
-It is hard to understand how a cemetery raised its burial
-cost and blamed it on the cost of living.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.089 b/source/ap/vim/patches/7.3.089
deleted file mode 100644
index 47b894af9..000000000
--- a/source/ap/vim/patches/7.3.089
+++ /dev/null
@@ -1,52 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.089
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.089
-Problem: Compiler warning on 64 bit MS-Windows.
-Solution: Add type cast. (Mike Williams)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.088/src/netbeans.c 2010-12-17 18:06:00.000000000 +0100
---- src/netbeans.c 2010-12-17 20:21:05.000000000 +0100
-***************
-*** 800,806 ****
- * -> gui event loop or select loop
- * -> netbeans_read()
- */
-! save((char_u *)DETACH_MSG, strlen(DETACH_MSG));
- nb_close_socket();
-
- if (len < 0)
---- 800,806 ----
- * -> gui event loop or select loop
- * -> netbeans_read()
- */
-! save((char_u *)DETACH_MSG, (int)strlen(DETACH_MSG));
- nb_close_socket();
-
- if (len < 0)
-*** ../vim-7.3.088/src/version.c 2010-12-24 13:39:29.000000000 +0100
---- src/version.c 2010-12-24 13:59:03.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 89,
- /**/
-
---
-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.090 b/source/ap/vim/patches/7.3.090
deleted file mode 100644
index cf68d620a..000000000
--- a/source/ap/vim/patches/7.3.090
+++ /dev/null
@@ -1,68 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.090
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.090
-Problem: Wrong help text for Cscope.
-Solution: Adjust the help text for "t". (Dominique Pelle)
-Files: src/if_cscope.c
-
-
-*** ../vim-7.3.089/src/if_cscope.c 2010-12-17 20:23:56.000000000 +0100
---- src/if_cscope.c 2010-12-30 11:35:37.000000000 +0100
-***************
-*** 1346,1352 ****
- " g: Find this definition\n"
- " i: Find files #including this file\n"
- " s: Find this C symbol\n"
-! " t: Find assignments to\n"));
-
- cmdp++;
- }
---- 1346,1352 ----
- " g: Find this definition\n"
- " i: Find files #including this file\n"
- " s: Find this C symbol\n"
-! " t: Find this text string\n"));
-
- cmdp++;
- }
-***************
-*** 1657,1663 ****
- /*
- * PRIVATE: cs_make_vim_style_matches
- *
-! * convert the cscope output into into a ctags style entry (as might be found
- * in a ctags tags file). there's one catch though: cscope doesn't tell you
- * the type of the tag you are looking for. for example, in Darren Hiebert's
- * ctags (the one that comes with vim), #define's use a line number to find the
---- 1657,1663 ----
- /*
- * PRIVATE: cs_make_vim_style_matches
- *
-! * convert the cscope output into a ctags style entry (as might be found
- * in a ctags tags file). there's one catch though: cscope doesn't tell you
- * the type of the tag you are looking for. for example, in Darren Hiebert's
- * ctags (the one that comes with vim), #define's use a line number to find the
-*** ../vim-7.3.089/src/version.c 2010-12-24 14:00:09.000000000 +0100
---- src/version.c 2010-12-30 11:36:33.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 90,
- /**/
-
---
-ERROR 047: Keyboard not found. Press RETURN 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.091 b/source/ap/vim/patches/7.3.091
deleted file mode 100644
index f0aac0d9d..000000000
--- a/source/ap/vim/patches/7.3.091
+++ /dev/null
@@ -1,321 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.091
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.091
-Problem: "vim -w foo" writes special key codes for removed escape
- sequences. (Josh Triplett)
-Solution: Don't write K_IGNORE codes.
-Files: src/getchar.c, src/misc1.c, src/term.c, src/vim.h
-
-
-*** ../vim-7.3.090/src/getchar.c 2010-10-27 17:39:00.000000000 +0200
---- src/getchar.c 2010-12-30 12:16:36.000000000 +0100
-***************
-*** 1506,1514 ****
- }
- }
-
-- #define KL_PART_KEY -1 /* keylen value for incomplete key-code */
-- #define KL_PART_MAP -2 /* keylen value for incomplete mapping */
--
- /*
- * Get the next input character.
- * Can return a special key or a multi-byte character.
---- 1506,1511 ----
-***************
-*** 2171,2177 ****
- if (!timedout)
- {
- /* break at a partly match */
-! keylen = KL_PART_MAP;
- break;
- }
- }
---- 2168,2174 ----
- if (!timedout)
- {
- /* break at a partly match */
-! keylen = KEYLEN_PART_MAP;
- break;
- }
- }
-***************
-*** 2192,2198 ****
-
- /* If no partly match found, use the longest full
- * match. */
-! if (keylen != KL_PART_MAP)
- {
- mp = mp_match;
- keylen = mp_match_len;
---- 2189,2195 ----
-
- /* If no partly match found, use the longest full
- * match. */
-! if (keylen != KEYLEN_PART_MAP)
- {
- mp = mp_match;
- keylen = mp_match_len;
-***************
-*** 2230,2236 ****
- }
- /* Need more chars for partly match. */
- if (mlen == typebuf.tb_len)
-! keylen = KL_PART_KEY;
- else if (max_mlen < mlen)
- /* no match, may have to check for termcode at
- * next character */
---- 2227,2233 ----
- }
- /* Need more chars for partly match. */
- if (mlen == typebuf.tb_len)
-! keylen = KEYLEN_PART_KEY;
- else if (max_mlen < mlen)
- /* no match, may have to check for termcode at
- * next character */
-***************
-*** 2238,2244 ****
- }
-
- if ((mp == NULL || max_mlen >= mp_match_len)
-! && keylen != KL_PART_MAP)
- {
- int save_keylen = keylen;
-
---- 2235,2241 ----
- }
-
- if ((mp == NULL || max_mlen >= mp_match_len)
-! && keylen != KEYLEN_PART_MAP)
- {
- int save_keylen = keylen;
-
-***************
-*** 2264,2271 ****
- /* If no termcode matched but 'pastetoggle'
- * matched partially it's like an incomplete key
- * sequence. */
-! if (keylen == 0 && save_keylen == KL_PART_KEY)
-! keylen = KL_PART_KEY;
-
- /*
- * When getting a partial match, but the last
---- 2261,2268 ----
- /* If no termcode matched but 'pastetoggle'
- * matched partially it's like an incomplete key
- * sequence. */
-! if (keylen == 0 && save_keylen == KEYLEN_PART_KEY)
-! keylen = KEYLEN_PART_KEY;
-
- /*
- * When getting a partial match, but the last
-***************
-*** 2302,2308 ****
- continue;
- }
- if (*s == NUL) /* need more characters */
-! keylen = KL_PART_KEY;
- }
- if (keylen >= 0)
- #endif
---- 2299,2305 ----
- continue;
- }
- if (*s == NUL) /* need more characters */
-! keylen = KEYLEN_PART_KEY;
- }
- if (keylen >= 0)
- #endif
-***************
-*** 2339,2345 ****
- if (keylen > 0) /* full matching terminal code */
- {
- #if defined(FEAT_GUI) && defined(FEAT_MENU)
-! if (typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
- && typebuf.tb_buf[typebuf.tb_off + 1]
- == KS_MENU)
- {
---- 2336,2343 ----
- if (keylen > 0) /* full matching terminal code */
- {
- #if defined(FEAT_GUI) && defined(FEAT_MENU)
-! if (typebuf.tb_len >= 2
-! && typebuf.tb_buf[typebuf.tb_off] == K_SPECIAL
- && typebuf.tb_buf[typebuf.tb_off + 1]
- == KS_MENU)
- {
-***************
-*** 2381,2387 ****
- /* Partial match: get some more characters. When a
- * matching mapping was found use that one. */
- if (mp == NULL || keylen < 0)
-! keylen = KL_PART_KEY;
- else
- keylen = mp_match_len;
- }
---- 2379,2385 ----
- /* Partial match: get some more characters. When a
- * matching mapping was found use that one. */
- if (mp == NULL || keylen < 0)
-! keylen = KEYLEN_PART_KEY;
- else
- keylen = mp_match_len;
- }
-***************
-*** 2553,2559 ****
- #endif
- && typebuf.tb_maplen == 0
- && (State & INSERT)
-! && (p_timeout || (keylen == KL_PART_KEY && p_ttimeout))
- && (c = inchar(typebuf.tb_buf + typebuf.tb_off
- + typebuf.tb_len, 3, 25L,
- typebuf.tb_change_cnt)) == 0)
---- 2551,2558 ----
- #endif
- && typebuf.tb_maplen == 0
- && (State & INSERT)
-! && (p_timeout
-! || (keylen == KEYLEN_PART_KEY && p_ttimeout))
- && (c = inchar(typebuf.tb_buf + typebuf.tb_off
- + typebuf.tb_len, 3, 25L,
- typebuf.tb_change_cnt)) == 0)
-***************
-*** 2783,2791 ****
- ? 0
- : ((typebuf.tb_len == 0
- || !(p_timeout || (p_ttimeout
-! && keylen == KL_PART_KEY)))
- ? -1L
-! : ((keylen == KL_PART_KEY && p_ttm >= 0)
- ? p_ttm
- : p_tm)), typebuf.tb_change_cnt);
-
---- 2782,2790 ----
- ? 0
- : ((typebuf.tb_len == 0
- || !(p_timeout || (p_ttimeout
-! && keylen == KEYLEN_PART_KEY)))
- ? -1L
-! : ((keylen == KEYLEN_PART_KEY && p_ttm >= 0)
- ? p_ttm
- : p_tm)), typebuf.tb_change_cnt);
-
-*** ../vim-7.3.090/src/misc1.c 2010-12-02 16:01:23.000000000 +0100
---- src/misc1.c 2010-12-30 12:28:59.000000000 +0100
-***************
-*** 3114,3123 ****
- && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
- continue;
-
-! /* found a termcode: adjust length */
-! if (n > 0)
- len = n;
-! if (len == 0) /* nothing typed yet */
- continue;
-
- /* Handle modifier and/or special key code. */
---- 3114,3124 ----
- && (!p_ttimeout || waited * 100L < (p_ttm < 0 ? p_tm : p_ttm)))
- continue;
-
-! if (n == KEYLEN_REMOVED) /* key code removed */
-! continue;
-! if (n > 0) /* found a termcode: adjust length */
- len = n;
-! if (len == 0) /* nothing typed yet */
- continue;
-
- /* Handle modifier and/or special key code. */
-*** ../vim-7.3.090/src/term.c 2010-08-15 21:57:32.000000000 +0200
---- src/term.c 2010-12-30 12:14:48.000000000 +0100
-***************
-*** 3828,3833 ****
---- 3831,3837 ----
- * Check from typebuf.tb_buf[typebuf.tb_off] to typebuf.tb_buf[typebuf.tb_off
- * + max_offset].
- * Return 0 for no match, -1 for partial match, > 0 for full match.
-+ * Return KEYLEN_REMOVED when a key code was deleted.
- * 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.
-***************
-*** 3845,3850 ****
---- 3849,3855 ----
- int slen = 0; /* init for GCC */
- int modslen;
- int len;
-+ int retval = 0;
- int offset;
- char_u key_name[2];
- int modifiers;
-***************
-*** 4940,4945 ****
---- 4945,4957 ----
- #endif
- string[new_slen++] = key_name[1];
- }
-+ else if (new_slen == 0 && key_name[0] == KS_EXTRA
-+ && key_name[1] == KE_IGNORE)
-+ {
-+ /* Do not put K_IGNORE into the buffer, do return KEYLEN_REMOVED
-+ * to indicate what happened. */
-+ retval = KEYLEN_REMOVED;
-+ }
- else
- {
- string[new_slen++] = K_SPECIAL;
-***************
-*** 4976,4982 ****
- (size_t)(buflen - offset));
- mch_memmove(buf + offset, string, (size_t)new_slen);
- }
-! return (len + extra + offset);
- }
-
- return 0; /* no match found */
---- 4988,4994 ----
- (size_t)(buflen - offset));
- mch_memmove(buf + offset, string, (size_t)new_slen);
- }
-! return retval == 0 ? (len + extra + offset) : retval;
- }
-
- return 0; /* no match found */
-*** ../vim-7.3.090/src/vim.h 2010-12-17 20:23:56.000000000 +0100
---- src/vim.h 2010-12-30 12:06:45.000000000 +0100
-***************
-*** 2211,2214 ****
---- 2211,2218 ----
- #define MSCR_LEFT -1
- #define MSCR_RIGHT -2
-
-+ #define KEYLEN_PART_KEY -1 /* keylen value for incomplete key-code */
-+ #define KEYLEN_PART_MAP -2 /* keylen value for incomplete mapping */
-+ #define KEYLEN_REMOVED 9999 /* keylen value for removed sequence */
-+
- #endif /* VIM__H */
-*** ../vim-7.3.090/src/version.c 2010-12-30 11:41:05.000000000 +0100
---- src/version.c 2010-12-30 12:24:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 91,
- /**/
-
---
-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.092 b/source/ap/vim/patches/7.3.092
deleted file mode 100644
index d100b00b5..000000000
--- a/source/ap/vim/patches/7.3.092
+++ /dev/null
@@ -1,62 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.092
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.092
-Problem: Resizing the window when exiting.
-Solution: Don't resize when exiting.
-Files: src/term.c
-
-
-*** ../vim-7.3.091/src/term.c 2010-12-30 12:30:26.000000000 +0100
---- src/term.c 2010-12-30 12:14:48.000000000 +0100
-***************
-*** 3053,3062 ****
- int old_Rows = Rows;
- int old_Columns = Columns;
-
-! (void)ui_get_shellsize();
-! check_shellsize();
-! if (old_Rows != Rows || old_Columns != Columns)
-! shell_resized();
- }
-
- /*
---- 3053,3065 ----
- int old_Rows = Rows;
- int old_Columns = Columns;
-
-! if (!exiting)
-! {
-! (void)ui_get_shellsize();
-! check_shellsize();
-! if (old_Rows != Rows || old_Columns != Columns)
-! shell_resized();
-! }
- }
-
- /*
-*** ../vim-7.3.091/src/version.c 2010-12-30 12:30:26.000000000 +0100
---- src/version.c 2010-12-30 14:47:04.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 92,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-57. You begin to wonder how on earth your service provider is allowed to call
- 200 hours per month "unlimited."
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.093 b/source/ap/vim/patches/7.3.093
deleted file mode 100644
index 9bf0fe8a4..000000000
--- a/source/ap/vim/patches/7.3.093
+++ /dev/null
@@ -1,201 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.093
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.093
-Problem: New DLL dependencies in MingW with gcc 4.5.0.
-Solution: Add STATIC_STDCPLUS, LDFLAGS and split up WINDRES. (Guopeng Wen)
-Files: src/GvimExt/Make_ming.mak, src/Make_ming.mak
-
-
-*** ../vim-7.3.092/src/GvimExt/Make_ming.mak 2010-09-29 18:42:25.000000000 +0200
---- src/GvimExt/Make_ming.mak 2010-12-30 14:42:51.000000000 +0100
-***************
-*** 17,22 ****
---- 17,33 ----
- # 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)
-***************
-*** 33,39 ****
- endif
- endif
- CXX := $(CROSS_COMPILE)g++
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CXX) -E -xc" -DRC_INVOKED
- LIBS := -luuid
- RES := gvimext.res
- DEFFILE = gvimext_ming.def
---- 44,52 ----
- 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
-***************
-*** 46,52 ****
- all: all-before $(DLL) all-after
-
- $(DLL): $(OBJ) $(RES) $(DEFFILE)
-! $(CXX) -shared $(CXXFLAGS) -s -o $@ \
- -Wl,--enable-auto-image-base \
- -Wl,--enable-auto-import \
- -Wl,--whole-archive \
---- 59,65 ----
- 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 \
-***************
-*** 58,64 ****
- $(CXX) $(CXXFLAGS) -DFEAT_GETTEXT -c $? -o $@
-
- $(RES): gvimext_ming.rc
-! $(WINDRES) --input-format=rc --output-format=coff -DMING $? -o $@
-
- clean: clean-custom
- -$(DEL) $(OBJ) $(RES) $(DLL)
---- 71,77 ----
- $(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.092/src/Make_ming.mak 2010-11-03 21:59:23.000000000 +0100
---- src/Make_ming.mak 2010-12-30 14:42:51.000000000 +0100
-***************
-*** 56,61 ****
---- 56,67 ----
- NETBEANS=$(GUI)
-
-
-+ # Link against the shared version of libstdc++ by default. Set
-+ # STATIC_STDCPLUS to "yes" to link against static version instead.
-+ ifndef STATIC_STDCPLUS
-+ STATIC_STDCPLUS=no
-+ endif
-+
- # If the user doesn't want gettext, undefine it.
- ifeq (no, $(GETTEXT))
- GETTEXT=
-***************
-*** 309,320 ****
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres --preprocessor="$(CC) -E -xc" -DRC_INVOKED
-
- #>>>>> end of choices
- ###########################################################################
-
- CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
-
- ifdef GETTEXT
- DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
---- 315,328 ----
- endif
- endif
- CC := $(CROSS_COMPILE)gcc
-! WINDRES := $(CROSS_COMPILE)windres
-! WINDRES_CC = $(CC)
-
- #>>>>> end of choices
- ###########################################################################
-
- CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
-+ WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED
-
- ifdef GETTEXT
- DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
-***************
-*** 577,584 ****
- endif
-
- ifeq (yes, $(OLE))
-! LIB += -loleaut32 -lstdc++
- OBJ += $(OUTDIR)/if_ole.o
- endif
-
- ifeq (yes, $(MBYTE))
---- 585,597 ----
- endif
-
- ifeq (yes, $(OLE))
-! LIB += -loleaut32
- OBJ += $(OUTDIR)/if_ole.o
-+ ifeq (yes, $(STATIC_STDCPLUS))
-+ LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
-+ else
-+ LIB += -lstdc++
-+ endif
- endif
-
- ifeq (yes, $(MBYTE))
-***************
-*** 656,665 ****
- $(CC) -c $(CFLAGS) $< -o $@
-
- $(OUTDIR)/vimres.res: vim.rc version.h gui_w32_rc.h
-! $(WINDRES) $(DEFINES) vim.rc $(OUTDIR)/vimres.res
-
- $(OUTDIR)/vimrc.o: $(OUTDIR)/vimres.res
-! $(WINDRES) $(OUTDIR)/vimres.res $(OUTDIR)/vimrc.o
-
- $(OUTDIR):
- $(MKDIR) $(OUTDIR)
---- 669,678 ----
- $(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)
-*** ../vim-7.3.092/src/version.c 2010-12-30 14:47:32.000000000 +0100
---- src/version.c 2010-12-30 14:48:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 93,
- /**/
-
---
-Creating the world with Emacs: M-x let-there-be-light
-Creating the world with Vim: :make world
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.094 b/source/ap/vim/patches/7.3.094
deleted file mode 100644
index e95122bb4..000000000
--- a/source/ap/vim/patches/7.3.094
+++ /dev/null
@@ -1,70 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.094
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.094
-Problem: Using abs() requires type cast to int.
-Solution: Use labs() so that the value remains long. (Hong Xu)
-Files: src/screen.c
-
-
-*** ../vim-7.3.093/src/screen.c 2010-12-08 19:56:52.000000000 +0100
---- src/screen.c 2010-12-30 14:54:08.000000000 +0100
-***************
-*** 2317,2323 ****
- num = (long)lnum;
- else
- /* 'relativenumber', don't use negative numbers */
-! num = (long)abs((int)get_cursor_rel_lnum(wp, lnum));
-
- sprintf((char *)buf, "%*ld ", w, num);
- #ifdef FEAT_RIGHTLEFT
---- 2317,2323 ----
- num = (long)lnum;
- else
- /* 'relativenumber', don't use negative numbers */
-! num = labs((long)get_cursor_rel_lnum(wp, lnum));
-
- sprintf((char *)buf, "%*ld ", w, num);
- #ifdef FEAT_RIGHTLEFT
-***************
-*** 3475,3482 ****
- num = (long)lnum;
- else
- /* 'relativenumber', don't use negative numbers */
-! num = (long)abs((int)get_cursor_rel_lnum(wp,
-! lnum));
-
- sprintf((char *)extra, "%*ld ",
- number_width(wp), num);
---- 3475,3481 ----
- num = (long)lnum;
- else
- /* 'relativenumber', don't use negative numbers */
-! num = labs((long)get_cursor_rel_lnum(wp, lnum));
-
- sprintf((char *)extra, "%*ld ",
- number_width(wp), num);
-*** ../vim-7.3.093/src/version.c 2010-12-30 14:50:46.000000000 +0100
---- src/version.c 2010-12-30 14:56:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 94,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-58. You turn on your computer and turn off your wife.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.095 b/source/ap/vim/patches/7.3.095
deleted file mode 100644
index 2ea349241..000000000
--- a/source/ap/vim/patches/7.3.095
+++ /dev/null
@@ -1,70 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.095
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.095
-Problem: Win32: In Chinese tear-off menu doesn't work. (Weasley)
-Solution: Use menu_name_equal(). (Alex Jakushev)
-Files: src/menu.c
-
-
-*** ../vim-7.3.094/src/menu.c 2010-08-15 21:57:25.000000000 +0200
---- src/menu.c 2011-01-04 17:41:38.000000000 +0100
-***************
-*** 1512,1519 ****
- {
- #ifdef FEAT_MULTI_LANG
- if (menu->en_name != NULL
-! && (menu_namecmp(name,menu->en_name)
-! || menu_namecmp(name,menu->en_dname)))
- return TRUE;
- #endif
- return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
---- 1512,1519 ----
- {
- #ifdef FEAT_MULTI_LANG
- if (menu->en_name != NULL
-! && (menu_namecmp(name, menu->en_name)
-! || menu_namecmp(name, menu->en_dname)))
- return TRUE;
- #endif
- return menu_namecmp(name, menu->name) || menu_namecmp(name, menu->dname);
-***************
-*** 2342,2348 ****
-
- while (menu != NULL)
- {
-! if (STRCMP(name, menu->name) == 0 || STRCMP(name, menu->dname) == 0)
- {
- if (menu->children == NULL)
- {
---- 2342,2348 ----
-
- while (menu != NULL)
- {
-! if (menu_name_equal(name, menu))
- {
- if (menu->children == NULL)
- {
-*** ../vim-7.3.094/src/version.c 2010-12-30 14:57:03.000000000 +0100
---- src/version.c 2011-01-04 17:43:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 95,
- /**/
-
---
-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.096 b/source/ap/vim/patches/7.3.096
deleted file mode 100644
index b8b541b7e..000000000
--- a/source/ap/vim/patches/7.3.096
+++ /dev/null
@@ -1,97 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.096
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.096
-Problem: "gvim -nb" is not interruptable. Leaking file descriptor on
- netbeans connection error.
-Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye)
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.095/src/netbeans.c 2010-12-24 14:00:09.000000000 +0100
---- src/netbeans.c 2011-01-04 18:00:35.000000000 +0100
-***************
-*** 321,326 ****
---- 321,327 ----
- {
- nbdebug(("error in gethostbyname() in netbeans_connect()\n"));
- PERROR("gethostbyname() in netbeans_connect()");
-+ sock_close(sd);
- goto theend;
- }
- memcpy((char *)&server.sin_addr, host->h_addr, host->h_length);
-***************
-*** 370,384 ****
- || (errno == EINTR)))
- {
- nbdebug(("retrying...\n"));
-! sleep(5);
-! if (!doabort)
- {
-! ui_breakcheck();
-! if (got_int)
-! {
-! errno = EINTR;
-! break;
-! }
- }
- if (connect(sd, (struct sockaddr *)&server,
- sizeof(server)) == 0)
---- 371,382 ----
- || (errno == EINTR)))
- {
- nbdebug(("retrying...\n"));
-! mch_delay(3000L, TRUE);
-! ui_breakcheck();
-! if (got_int)
- {
-! errno = EINTR;
-! break;
- }
- if (connect(sd, (struct sockaddr *)&server,
- sizeof(server)) == 0)
-***************
-*** 393,398 ****
---- 391,397 ----
- /* Get here when the server can't be found. */
- nbdebug(("Cannot connect to Netbeans #2\n"));
- PERROR(_("Cannot connect to Netbeans #2"));
-+ sock_close(sd);
- if (doabort)
- getout(1);
- goto theend;
-***************
-*** 403,408 ****
---- 402,408 ----
- {
- nbdebug(("Cannot connect to Netbeans\n"));
- PERROR(_("Cannot connect to Netbeans"));
-+ sock_close(sd);
- if (doabort)
- getout(1);
- goto theend;
-*** ../vim-7.3.095/src/version.c 2011-01-04 17:49:25.000000000 +0100
---- src/version.c 2011-01-04 18:09:46.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 96,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-85. Choice between paying Compuserve bill and paying for kids education
- is a no brainer -- although a bit painful for your kids.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.097 b/source/ap/vim/patches/7.3.097
deleted file mode 100644
index 2ee20a32f..000000000
--- a/source/ap/vim/patches/7.3.097
+++ /dev/null
@@ -1,54 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.097
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.097
-Problem: Using ":call" inside "if 0" does not see that a function returns a
- Dict and gives error for "." as string concatenation.
-Solution: Use eval0() to skip over the expression. (Yasuhiro Matsumoto)
-Files: src/eval.c
-
-
-*** ../vim-7.3.096/src/eval.c 2010-12-17 18:06:00.000000000 +0100
---- src/eval.c 2011-01-04 18:54:27.000000000 +0100
-***************
-*** 3335,3340 ****
---- 3335,3349 ----
- int failed = FALSE;
- funcdict_T fudi;
-
-+ if (eap->skip)
-+ {
-+ /* 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;
-+ }
-+
- tofree = trans_function_name(&arg, eap->skip, TFN_INT, &fudi);
- if (fudi.fd_newkey != NULL)
- {
-*** ../vim-7.3.096/src/version.c 2011-01-04 18:11:39.000000000 +0100
---- src/version.c 2011-01-04 19:00:21.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 97,
- /**/
-
---
-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.098 b/source/ap/vim/patches/7.3.098
deleted file mode 100644
index 9e6435ebf..000000000
--- a/source/ap/vim/patches/7.3.098
+++ /dev/null
@@ -1,61 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.098
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.098
-Problem: Function that ignores error still causes called_emsg to be set.
- E.g. when expand() fails the status line is disabled.
-Solution: Move check for emsg_not_now() up. (James Vega)
-Files: src/message.c
-
-
-*** ../vim-7.3.097/src/message.c 2010-10-20 21:22:17.000000000 +0200
---- src/message.c 2011-01-04 19:19:04.000000000 +0100
-***************
-*** 569,574 ****
---- 569,578 ----
- int severe;
- #endif
-
-+ /* Skip this if not giving error messages at the moment. */
-+ if (emsg_not_now())
-+ return TRUE;
-+
- called_emsg = TRUE;
- ex_exitval = 1;
-
-***************
-*** 581,590 ****
- emsg_severe = FALSE;
- #endif
-
-- /* Skip this if not giving error messages at the moment. */
-- if (emsg_not_now())
-- return TRUE;
--
- if (!emsg_off || vim_strchr(p_debug, 't') != NULL)
- {
- #ifdef FEAT_EVAL
---- 585,590 ----
-*** ../vim-7.3.097/src/version.c 2011-01-04 19:03:22.000000000 +0100
---- src/version.c 2011-01-04 19:24:30.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 98,
- /**/
-
---
-Ed's Radiator Shop: The Best Place in Town to Take a Leak.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.099 b/source/ap/vim/patches/7.3.099
deleted file mode 100644
index 84aa2a3f9..000000000
--- a/source/ap/vim/patches/7.3.099
+++ /dev/null
@@ -1,54 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.099
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.099
-Problem: Crash when splitting a window with zero height. (Yukihiro
- Nakadaira)
-Solution: Don't set the fraction in a window with zero height.
-Files: src/window.c
-
-
-*** ../vim-7.3.098/src/window.c 2010-12-17 17:35:05.000000000 +0100
---- src/window.c 2011-01-08 14:41:32.000000000 +0100
-***************
-*** 986,992 ****
-
- /* Set w_fraction now so that the cursor keeps the same relative
- * vertical position. */
-! set_fraction(oldwin);
- wp->w_fraction = oldwin->w_fraction;
-
- #ifdef FEAT_VERTSPLIT
---- 986,993 ----
-
- /* Set w_fraction now so that the cursor keeps the same relative
- * vertical position. */
-! if (oldwin->w_height > 0)
-! set_fraction(oldwin);
- wp->w_fraction = oldwin->w_fraction;
-
- #ifdef FEAT_VERTSPLIT
-*** ../vim-7.3.098/src/version.c 2011-01-04 19:25:46.000000000 +0100
---- src/version.c 2011-01-08 14:44:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 99,
- /**/
-
---
-From "know your smileys":
- 8-O "Omigod!!" (done "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.100 b/source/ap/vim/patches/7.3.100
deleted file mode 100644
index 2b6e8b04e..000000000
--- a/source/ap/vim/patches/7.3.100
+++ /dev/null
@@ -1,52 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.100
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.100
-Problem: When using :normal v:count isn't set.
-Solution: Call normal_cmd() with toplevel set to TRUE.
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.099/src/ex_docmd.c 2010-12-02 16:01:23.000000000 +0100
---- src/ex_docmd.c 2011-01-06 17:23:43.000000000 +0100
-***************
-*** 9310,9316 ****
- && !got_int)
- {
- update_topline_cursor();
-! normal_cmd(&oa, FALSE); /* execute a Normal mode cmd */
- }
- }
- #endif
---- 9310,9316 ----
- && !got_int)
- {
- update_topline_cursor();
-! normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */
- }
- }
- #endif
-*** ../vim-7.3.099/src/version.c 2011-01-08 14:45:57.000000000 +0100
---- src/version.c 2011-01-17 19:49:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 100,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-109. You actually read -- and enjoy -- lists like this.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.101 b/source/ap/vim/patches/7.3.101
deleted file mode 100644
index 8869baf1a..000000000
--- a/source/ap/vim/patches/7.3.101
+++ /dev/null
@@ -1,92 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.1
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.101
-Problem: ino_t defined with wrong size.
-Solution: Move including auto/config.h before other includes. (Marius
- Geminas)
-Files: src/if_ruby.c, src/if_lua.c
-
-
-*** ../vim-7.3.100/src/if_ruby.c 2010-12-24 13:39:29.000000000 +0100
---- src/if_ruby.c 2011-01-09 14:43:14.000000000 +0100
-***************
-*** 11,23 ****
- * See README.txt for an overview of the Vim source code.
- */
-
-- #include <stdio.h>
-- #include <string.h>
--
- #ifdef HAVE_CONFIG_H
- # include "auto/config.h"
- #endif
-
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
- # define NT
---- 11,23 ----
- * See README.txt for an overview of the Vim source code.
- */
-
- #ifdef HAVE_CONFIG_H
- # include "auto/config.h"
- #endif
-
-+ #include <stdio.h>
-+ #include <string.h>
-+
- #ifdef _WIN32
- # if !defined(DYNAMIC_RUBY_VER) || (DYNAMIC_RUBY_VER < 18)
- # define NT
-*** ../vim-7.3.100/src/if_lua.c 2010-10-23 14:02:48.000000000 +0200
---- src/if_lua.c 2011-01-09 14:46:46.000000000 +0100
-***************
-*** 9,20 ****
- * See README.txt for an overview of the Vim source code.
- */
-
-! #include <stdio.h>
-! #include <string.h>
- #include <lua.h>
- #include <lualib.h>
- #include <lauxlib.h>
-- #include "vim.h"
-
- /* Only do the following when the feature is enabled. Needed for "make
- * depend". */
---- 9,19 ----
- * See README.txt for an overview of the Vim source code.
- */
-
-! #include "vim.h"
-!
- #include <lua.h>
- #include <lualib.h>
- #include <lauxlib.h>
-
- /* Only do the following when the feature is enabled. Needed for "make
- * depend". */
-*** ../vim-7.3.100/src/version.c 2011-01-17 19:50:01.000000000 +0100
---- src/version.c 2011-01-17 19:51:40.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 101,
- /**/
-
---
-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.102 b/source/ap/vim/patches/7.3.102
deleted file mode 100644
index 785e597b2..000000000
--- a/source/ap/vim/patches/7.3.102
+++ /dev/null
@@ -1,615 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.102
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.102
-Problem: When using ":make", typing the next command and then getting the
- "reload" prompt the next command is (partly) eaten by the reload
- prompt.
-Solution: Accept ':' as a special character at the reload prompt to accept
- the default choice and execute the command.
-Files: src/eval.c, src/fileio.c, src/gui.c, src/gui_xmdlg.c,
- src/memline.c, src/message.c, src/proto/message.pro,
- src/gui_athena.c, src/gui_gtk.c, src/gui_mac.c, src/gui_motif.c,
- src/gui_photon.c, src/gui_w16.c, src/gui_w32.c, src/os_mswin.c
- src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
- src/proto/gui_mac.pro, src/proto/gui_motif.pro,
- src/proto/gui_photon.pro, src/proto/gui_w16.pro,
- src/proto/gui_w32.pro
-
-
-*** ../vim-7.3.101/src/eval.c 2011-01-04 19:03:22.000000000 +0100
---- src/eval.c 2011-01-16 00:14:21.000000000 +0100
-***************
-*** 9323,9329 ****
-
- if (!error)
- rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
-! def, NULL);
- #endif
- }
-
---- 9323,9329 ----
-
- if (!error)
- rettv->vval.v_number = do_dialog(type, NULL, message, buttons,
-! def, NULL, FALSE);
- #endif
- }
-
-***************
-*** 12744,12750 ****
- IObuff[0] = NUL;
- if (message != NULL && defstr != NULL
- && do_dialog(VIM_QUESTION, NULL, message,
-! (char_u *)_("&OK\n&Cancel"), 1, IObuff) == 1)
- rettv->vval.v_string = vim_strsave(IObuff);
- else
- {
---- 12744,12750 ----
- IObuff[0] = NUL;
- if (message != NULL && defstr != NULL
- && do_dialog(VIM_QUESTION, NULL, message,
-! (char_u *)_("&OK\n&Cancel"), 1, IObuff, FALSE) == 1)
- rettv->vval.v_string = vim_strsave(IObuff);
- else
- {
-*** ../vim-7.3.101/src/fileio.c 2010-12-17 18:06:00.000000000 +0100
---- src/fileio.c 2011-01-16 00:14:37.000000000 +0100
-***************
-*** 7008,7014 ****
- STRCAT(tbuf, mesg2);
- }
- if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
-! (char_u *)_("&OK\n&Load File"), 1, NULL) == 2)
- reload = TRUE;
- }
- else
---- 7008,7014 ----
- STRCAT(tbuf, mesg2);
- }
- if (do_dialog(VIM_WARNING, (char_u *)_("Warning"), tbuf,
-! (char_u *)_("&OK\n&Load File"), 1, NULL, TRUE) == 2)
- reload = TRUE;
- }
- else
-*** ../vim-7.3.101/src/gui.c 2010-10-20 19:17:43.000000000 +0200
---- src/gui.c 2011-01-16 00:14:56.000000000 +0100
-***************
-*** 4903,4909 ****
- if (STRLEN(p) > 2000)
- STRCPY(p + 2000 - 14, "...(truncated)");
- (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL);
- break;
- }
- ga_clear(&error_ga);
---- 4903,4909 ----
- if (STRLEN(p) > 2000)
- STRCPY(p + 2000 - 14, "...(truncated)");
- (void)do_dialog(VIM_ERROR, (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL, FALSE);
- break;
- }
- ga_clear(&error_ga);
-*** ../vim-7.3.101/src/gui_xmdlg.c 2010-08-15 21:57:32.000000000 +0200
---- src/gui_xmdlg.c 2011-01-16 00:15:33.000000000 +0100
-***************
-*** 688,694 ****
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL);
-
- return True;
- }
---- 688,694 ----
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL, FALSE);
-
- return True;
- }
-***************
-*** 807,813 ****
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL);
- XFreeFontNames(name);
- }
- else
---- 807,813 ----
- do_dialog(VIM_ERROR,
- (char_u *)_("Error"),
- (char_u *)_("Invalid font specification"),
-! (char_u *)_("&Dismiss"), 1, NULL, FALSE);
- XFreeFontNames(name);
- }
- else
-*** ../vim-7.3.101/src/memline.c 2010-12-17 20:23:56.000000000 +0100
---- src/memline.c 2011-01-16 00:15:47.000000000 +0100
-***************
-*** 4516,4522 ****
- process_still_running
- ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
- # endif
-! (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL);
-
- # if defined(UNIX) || defined(__EMX__) || defined(VMS)
- if (process_still_running && choice >= 4)
---- 4516,4522 ----
- process_still_running
- ? (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Quit\n&Abort") :
- # endif
-! (char_u *)_("&Open Read-Only\n&Edit anyway\n&Recover\n&Delete it\n&Quit\n&Abort"), 1, NULL, FALSE);
-
- # if defined(UNIX) || defined(__EMX__) || defined(VMS)
- if (process_still_running && choice >= 4)
-*** ../vim-7.3.101/src/message.c 2011-01-04 19:25:46.000000000 +0100
---- src/message.c 2011-01-17 19:57:30.000000000 +0100
-***************
-*** 3315,3321 ****
- * different letter.
- */
- int
-! do_dialog(type, title, message, buttons, dfltbutton, textfield)
- int type UNUSED;
- char_u *title UNUSED;
- char_u *message;
---- 3315,3321 ----
- * different letter.
- */
- int
-! do_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title UNUSED;
- char_u *message;
-***************
-*** 3323,3328 ****
---- 3323,3330 ----
- int dfltbutton;
- char_u *textfield UNUSED; /* IObuff for inputdialog(), NULL
- otherwise */
-+ int ex_cmd; /* when TRUE pressing : accepts default and starts
-+ Ex command */
- {
- int oldState;
- int retval = 0;
-***************
-*** 3341,3347 ****
- if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
- {
- c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
-! textfield);
- /* avoid a hit-enter prompt without clearing the cmdline */
- need_wait_return = FALSE;
- emsg_on_display = FALSE;
---- 3343,3349 ----
- if (gui.in_use && vim_strchr(p_go, GO_CONDIALOG) == NULL)
- {
- c = gui_mch_dialog(type, title, message, buttons, dfltbutton,
-! textfield, ex_cmd);
- /* avoid a hit-enter prompt without clearing the cmdline */
- need_wait_return = FALSE;
- emsg_on_display = FALSE;
-***************
-*** 3388,3393 ****
---- 3390,3402 ----
- default: /* Could be a hotkey? */
- if (c < 0) /* special keys are ignored here */
- continue;
-+ if (c == ':' && ex_cmd)
-+ {
-+ retval = dfltbutton;
-+ ins_char_typebuf(':');
-+ break;
-+ }
-+
- /* Make the character lowercase, as chars in "hotkeys" are. */
- c = MB_TOLOWER(c);
- retval = 1;
-***************
-*** 3661,3667 ****
- if (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No"), dflt, NULL) == 1)
- return VIM_YES;
- return VIM_NO;
- }
---- 3670,3676 ----
- if (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No"), dflt, NULL, FALSE) == 1)
- return VIM_YES;
- return VIM_NO;
- }
-***************
-*** 3676,3682 ****
- switch (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
---- 3685,3691 ----
- switch (do_dialog(type,
- title == NULL ? (char_u *)_("Question") : title,
- message,
-! (char_u *)_("&Yes\n&No\n&Cancel"), dflt, NULL, FALSE))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
-***************
-*** 3695,3701 ****
- title == NULL ? (char_u *)"Question" : title,
- message,
- (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
-! dflt, NULL))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
---- 3704,3710 ----
- title == NULL ? (char_u *)"Question" : title,
- message,
- (char_u *)_("&Yes\n&No\nSave &All\n&Discard All\n&Cancel"),
-! dflt, NULL, FALSE))
- {
- case 1: return VIM_YES;
- case 2: return VIM_NO;
-*** ../vim-7.3.101/src/proto/message.pro 2010-10-20 21:22:17.000000000 +0200
---- src/proto/message.pro 2011-01-16 00:22:36.000000000 +0100
-***************
-*** 64,70 ****
- int verbose_open __ARGS((void));
- void give_warning __ARGS((char_u *message, int hl));
- void msg_advance __ARGS((int col));
-! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void display_confirm_msg __ARGS((void));
- int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
- int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
---- 64,70 ----
- int verbose_open __ARGS((void));
- void give_warning __ARGS((char_u *message, int hl));
- void msg_advance __ARGS((int col));
-! int do_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void display_confirm_msg __ARGS((void));
- int vim_dialog_yesno __ARGS((int type, char_u *title, char_u *message, int dflt));
- int vim_dialog_yesnocancel __ARGS((int type, char_u *title, char_u *message, int dflt));
-*** ../vim-7.3.101/src/gui_athena.c 2010-08-15 21:57:25.000000000 +0200
---- src/gui_athena.c 2011-01-16 00:18:47.000000000 +0100
-***************
-*** 2117,2129 ****
- }
-
- int
-! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *buttons;
- int dfltbutton UNUSED;
- char_u *textfield;
- {
- char_u *buts;
- char_u *p, *next;
---- 2117,2130 ----
- }
-
- int
-! gui_mch_dialog(type, title, message, buttons, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *buttons;
- int dfltbutton UNUSED;
- char_u *textfield;
-+ int ex_cmd UNUSED;
- {
- char_u *buts;
- char_u *p, *next;
-*** ../vim-7.3.101/src/gui_gtk.c 2010-12-08 13:11:15.000000000 +0100
---- src/gui_gtk.c 2011-01-16 00:24:44.000000000 +0100
-***************
-*** 1268,1274 ****
- char_u *message, /* message text */
- char_u *buttons, /* names of buttons */
- int def_but, /* default button */
-! char_u *textfield) /* text for textfield or NULL */
- {
- GtkWidget *dialog;
- GtkWidget *entry = NULL;
---- 1268,1275 ----
- char_u *message, /* message text */
- char_u *buttons, /* names of buttons */
- int def_but, /* default button */
-! char_u *textfield, /* text for textfield or NULL */
-! int ex_cmd UNUSED)
- {
- GtkWidget *dialog;
- GtkWidget *entry = NULL;
-*** ../vim-7.3.101/src/gui_mac.c 2010-09-21 17:34:26.000000000 +0200
---- src/gui_mac.c 2011-01-16 00:19:52.000000000 +0100
-***************
-*** 5583,5589 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- Handle buttonDITL;
- Handle iconDITL;
---- 5583,5590 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- Handle buttonDITL;
- Handle iconDITL;
-*** ../vim-7.3.101/src/gui_motif.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_motif.c 2011-01-16 00:20:14.000000000 +0100
-***************
-*** 2549,2561 ****
- #endif
-
- int
-! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *button_names;
- int dfltbutton;
- char_u *textfield; /* buffer of size IOSIZE */
- {
- char_u *buts;
- char_u *p, *next;
---- 2549,2562 ----
- #endif
-
- int
-! gui_mch_dialog(type, title, message, button_names, dfltbutton, textfield, ex_cmd)
- int type UNUSED;
- char_u *title;
- char_u *message;
- char_u *button_names;
- int dfltbutton;
- char_u *textfield; /* buffer of size IOSIZE */
-+ int ex_cmd UNUSED;
- {
- char_u *buts;
- char_u *p, *next;
-*** ../vim-7.3.101/src/gui_photon.c 2010-08-15 21:57:27.000000000 +0200
---- src/gui_photon.c 2011-01-16 00:20:28.000000000 +0100
-***************
-*** 1502,1508 ****
- char_u *message,
- char_u *buttons,
- int default_button,
-! char_u *textfield)
- {
- char_u *str;
- char_u **button_array;
---- 1502,1509 ----
- char_u *message,
- char_u *buttons,
- int default_button,
-! char_u *textfield,
-! int ex_cmd)
- {
- char_u *str;
- char_u **button_array;
-*** ../vim-7.3.101/src/gui_w16.c 2010-08-15 21:57:28.000000000 +0200
---- src/gui_w16.c 2011-01-16 00:20:48.000000000 +0100
-***************
-*** 1098,1104 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- FARPROC dp;
- LPWORD p, pnumitems;
---- 1098,1105 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- FARPROC dp;
- LPWORD p, pnumitems;
-*** ../vim-7.3.101/src/gui_w32.c 2010-10-27 12:33:12.000000000 +0200
---- src/gui_w32.c 2011-01-16 00:21:08.000000000 +0100
-***************
-*** 3005,3011 ****
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield)
- {
- WORD *p, *pdlgtemplate, *pnumitems;
- DWORD *dwp;
---- 3005,3012 ----
- char_u *message,
- char_u *buttons,
- int dfltbutton,
-! char_u *textfield,
-! int ex_cmd)
- {
- WORD *p, *pdlgtemplate, *pnumitems;
- DWORD *dwp;
-*** ../vim-7.3.101/src/os_mswin.c 2010-12-17 20:23:56.000000000 +0100
---- src/os_mswin.c 2011-01-16 00:21:41.000000000 +0100
-***************
-*** 593,599 ****
- gui.starting ? (char_u *)_("Message") :
- #endif
- (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL);
- break;
- }
- ga_clear(&error_ga);
---- 593,599 ----
- gui.starting ? (char_u *)_("Message") :
- #endif
- (char_u *)_("Error"),
-! p, (char_u *)_("&Ok"), 1, NULL, FALSE);
- break;
- }
- ga_clear(&error_ga);
-*** ../vim-7.3.101/src/proto/gui_athena.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_athena.pro 2011-01-16 00:23:00.000000000 +0100
-***************
-*** 27,31 ****
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- /* vim: set ft=c : */
---- 27,31 ----
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- /* vim: set ft=c : */
-*** ../vim-7.3.101/src/proto/gui_gtk.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_gtk.pro 2011-01-16 00:22:57.000000000 +0100
-***************
-*** 13,19 ****
- void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
- void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
- void gui_mch_find_dialog __ARGS((exarg_T *eap));
---- 13,19 ----
- void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- char_u *gui_mch_browsedir __ARGS((char_u *title, char_u *initdir));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int def_but, char_u *textfield, int ex_cmd));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
- void gui_make_popup __ARGS((char_u *path_name, int mouse_pos));
- void gui_mch_find_dialog __ARGS((exarg_T *eap));
-*** ../vim-7.3.101/src/proto/gui_mac.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_mac.pro 2011-01-16 00:31:46.000000000 +0100
-***************
-*** 81,87 ****
- int gui_mch_get_mouse_y __ARGS((void));
- void gui_mch_setmouse __ARGS((int x, int y));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_show_tabline __ARGS((int showit));
---- 81,87 ----
- int gui_mch_get_mouse_y __ARGS((void));
- void gui_mch_setmouse __ARGS((int x, int y));
- void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_show_tabline __ARGS((int showit));
-*** ../vim-7.3.101/src/proto/gui_motif.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_motif.pro 2011-01-16 00:22:58.000000000 +0100
-***************
-*** 29,35 ****
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
- void gui_mch_enable_footer __ARGS((int showit));
- void gui_mch_set_footer __ARGS((char_u *s));
- void gui_mch_show_toolbar __ARGS((int showit));
---- 29,35 ----
- void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
- Window gui_x11_get_wid __ARGS((void));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_enable_footer __ARGS((int showit));
- void gui_mch_set_footer __ARGS((char_u *s));
- void gui_mch_show_toolbar __ARGS((int showit));
-*** ../vim-7.3.101/src/proto/gui_photon.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_photon.pro 2011-01-16 00:32:33.000000000 +0100
-***************
-*** 8,14 ****
- void gui_mch_update __ARGS((void));
- int gui_mch_wait_for_chars __ARGS((int wtime));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield));
- 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, int direction));
---- 8,14 ----
- void gui_mch_update __ARGS((void));
- int gui_mch_wait_for_chars __ARGS((int wtime));
- char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *default_name, char_u *ext, char_u *initdir, char_u *filter));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int default_button, char_u *textfield, int ex_cmd));
- 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, int direction));
-*** ../vim-7.3.101/src/proto/gui_w16.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_w16.pro 2011-01-16 00:34:36.000000000 +0100
-***************
-*** 74,79 ****
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void gui_mch_set_foreground __ARGS((void));
- /* vim: set ft=c : */
---- 74,79 ----
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_set_foreground __ARGS((void));
- /* vim: set ft=c : */
-*** ../vim-7.3.101/src/proto/gui_w32.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/gui_w32.pro 2011-01-16 00:33:12.000000000 +0100
-***************
-*** 81,87 ****
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
- void *gui_mch_register_sign __ARGS((char_u *signfile));
---- 81,87 ----
- void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
- void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
- void gui_mch_menu_grey __ARGS((vimmenu_T *menu, int grey));
-! int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *buttons, int dfltbutton, char_u *textfield, int ex_cmd));
- void gui_mch_set_foreground __ARGS((void));
- void gui_mch_drawsign __ARGS((int row, int col, int typenr));
- void *gui_mch_register_sign __ARGS((char_u *signfile));
-*** ../vim-7.3.101/src/version.c 2011-01-17 19:53:20.000000000 +0100
---- src/version.c 2011-01-17 20:05:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 102,
- /**/
-
---
-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.103 b/source/ap/vim/patches/7.3.103
deleted file mode 100644
index f9e086fa8..000000000
--- a/source/ap/vim/patches/7.3.103
+++ /dev/null
@@ -1,145 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.103
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.103
-Problem: Changing 'fileformat' and then using ":w" in an empty file sets
- the 'modified' option.
-Solution: In unchanged() don't ignore 'ff' for an empty file.
-Files: src/misc1.c, src/option.c, src/proto/option.pro, src/undo.c
-
-
-*** ../vim-7.3.102/src/misc1.c 2010-12-30 12:30:26.000000000 +0100
---- src/misc1.c 2011-01-22 00:00:24.000000000 +0100
-***************
-*** 2919,2925 ****
- buf_T *buf;
- int ff; /* also reset 'fileformat' */
- {
-! if (buf->b_changed || (ff && file_ff_differs(buf)))
- {
- buf->b_changed = 0;
- ml_setflags(buf);
---- 2919,2925 ----
- buf_T *buf;
- int ff; /* also reset 'fileformat' */
- {
-! if (buf->b_changed || (ff && file_ff_differs(buf, FALSE)))
- {
- buf->b_changed = 0;
- ml_setflags(buf);
-*** ../vim-7.3.102/src/option.c 2010-12-02 21:43:10.000000000 +0100
---- src/option.c 2011-01-22 00:03:40.000000000 +0100
-***************
-*** 11296,11311 ****
- * from when editing started (save_file_ff() called).
- * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
- * changed and 'binary' is not set.
-! * Don't consider a new, empty buffer to be changed.
- */
- int
-! file_ff_differs(buf)
- buf_T *buf;
- {
- /* In a buffer that was never loaded the options are not valid. */
- if (buf->b_flags & BF_NEVERLOADED)
- return FALSE;
-! if ((buf->b_flags & BF_NEW)
- && buf->b_ml.ml_line_count == 1
- && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
- return FALSE;
---- 11296,11314 ----
- * from when editing started (save_file_ff() called).
- * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was
- * changed and 'binary' is not set.
-! * When "ignore_empty" is true don't consider a new, empty buffer to be
-! * changed.
- */
- int
-! file_ff_differs(buf, ignore_empty)
- buf_T *buf;
-+ int ignore_empty;
- {
- /* In a buffer that was never loaded the options are not valid. */
- if (buf->b_flags & BF_NEVERLOADED)
- return FALSE;
-! if (ignore_empty
-! && (buf->b_flags & BF_NEW)
- && buf->b_ml.ml_line_count == 1
- && *ml_get_buf(buf, (linenr_T)1, FALSE) == NUL)
- return FALSE;
-*** ../vim-7.3.102/src/proto/option.pro 2010-08-15 21:57:28.000000000 +0200
---- src/proto/option.pro 2011-01-22 00:04:35.000000000 +0100
-***************
-*** 54,59 ****
- int option_was_set __ARGS((char_u *name));
- int can_bs __ARGS((int what));
- void save_file_ff __ARGS((buf_T *buf));
-! int file_ff_differs __ARGS((buf_T *buf));
- int check_ff_value __ARGS((char_u *p));
- /* vim: set ft=c : */
---- 54,59 ----
- int option_was_set __ARGS((char_u *name));
- int can_bs __ARGS((int what));
- 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));
- /* vim: set ft=c : */
-*** ../vim-7.3.102/src/undo.c 2010-12-17 18:06:00.000000000 +0100
---- src/undo.c 2011-01-22 00:03:58.000000000 +0100
-***************
-*** 3304,3310 ****
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(buf) &&
- #endif
-! (buf->b_changed || file_ff_differs(buf));
- }
-
- int
---- 3304,3310 ----
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(buf) &&
- #endif
-! (buf->b_changed || file_ff_differs(buf, TRUE));
- }
-
- int
-***************
-*** 3314,3320 ****
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(curbuf) &&
- #endif
-! (curbuf->b_changed || file_ff_differs(curbuf));
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
---- 3314,3320 ----
- #ifdef FEAT_QUICKFIX
- !bt_dontwrite(curbuf) &&
- #endif
-! (curbuf->b_changed || file_ff_differs(curbuf, TRUE));
- }
-
- #if defined(FEAT_EVAL) || defined(PROTO)
-*** ../vim-7.3.102/src/version.c 2011-01-17 20:08:03.000000000 +0100
---- src/version.c 2011-01-22 00:07:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 103,
- /**/
-
---
-In a world without fences, who needs Gates and Windows?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.104 b/source/ap/vim/patches/7.3.104
deleted file mode 100644
index 1e719bd7b..000000000
--- a/source/ap/vim/patches/7.3.104
+++ /dev/null
@@ -1,50 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.104
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Problem: Conceal: using Tab for cchar causes problems. (ZyX)
-Solution: Do not accept a control character for cchar.
-Files: src/syntax.c
-
-
-*** ../vim-7.3.103/src/syntax.c 2010-09-29 18:32:47.000000000 +0200
---- src/syntax.c 2011-01-22 00:50:20.000000000 +0100
-***************
-*** 4537,4542 ****
---- 4537,4549 ----
- ;
- #endif
- }
-+ #ifdef FEAT_CONCEAL
-+ if (!vim_isprintc_strict(*conceal_char))
-+ {
-+ EMSG(_("E844: invalid cchar value"));
-+ return NULL;
-+ }
-+ #endif
- arg = skipwhite(arg + 7);
- }
- else
-*** ../vim-7.3.103/src/version.c 2011-01-22 00:11:42.000000000 +0100
---- src/version.c 2011-01-22 00:54:56.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 104,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-132. You come back and check this list every half-hour.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.105 b/source/ap/vim/patches/7.3.105
deleted file mode 100644
index abf69ac5f..000000000
--- a/source/ap/vim/patches/7.3.105
+++ /dev/null
@@ -1,50 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.105
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.105
-Problem: Can't get the value of "b:changedtick" with getbufvar().
-Solution: Make it work. (Christian Brabandt)
-Files: src/eval.c
-
-
-*** ../vim-7.3.104/src/eval.c 2011-01-17 20:08:03.000000000 +0100
---- src/eval.c 2011-01-22 01:10:42.000000000 +0100
-***************
-*** 10866,10871 ****
---- 10866,10876 ----
-
- if (*varname == '&') /* buffer-local-option */
- get_option_tv(&varname, rettv, TRUE);
-+ else if (STRCMP(varname, "changedtick") == 0)
-+ {
-+ rettv->v_type = VAR_NUMBER;
-+ rettv->vval.v_number = curbuf->b_changedtick;
-+ }
- else
- {
- if (*varname == NUL)
-*** ../vim-7.3.104/src/version.c 2011-01-22 00:58:15.000000000 +0100
---- src/version.c 2011-01-22 01:13:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 105,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-133. You communicate with people on other continents more than you
- do with your own neighbors.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.106 b/source/ap/vim/patches/7.3.106
deleted file mode 100644
index f98df3077..000000000
--- a/source/ap/vim/patches/7.3.106
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.106
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.106
-Problem: When 'cursorbind' is set another window may scroll unexpectedly
- when 'scrollbind' is also set. (Xavier Wang)
-Solution: Don't call update_topline() if 'scrollbind' is set.
-Files: src/move.c
-
-
-*** ../vim-7.3.105/src/move.c 2010-08-15 21:57:29.000000000 +0200
---- src/move.c 2011-01-22 20:58:50.000000000 +0100
-***************
-*** 2882,2890 ****
- if (has_mbyte)
- mb_adjust_cursor();
- # endif
--
- redraw_later(VALID);
-! update_topline();
- # ifdef FEAT_WINDOWS
- curwin->w_redr_status = TRUE;
- # endif
---- 2882,2892 ----
- if (has_mbyte)
- mb_adjust_cursor();
- # endif
- redraw_later(VALID);
-!
-! /* Only scroll when 'scrollbind' hasn't done this. */
-! if (!curwin->w_p_scb)
-! update_topline();
- # ifdef FEAT_WINDOWS
- curwin->w_redr_status = TRUE;
- # endif
-*** ../vim-7.3.105/src/version.c 2011-01-22 01:13:33.000000000 +0100
---- src/version.c 2011-01-22 21:03:21.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 106,
- /**/
-
---
-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.107 b/source/ap/vim/patches/7.3.107
deleted file mode 100644
index 1256b8179..000000000
--- a/source/ap/vim/patches/7.3.107
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.107
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.107
-Problem: Year number for :undolist can be confused with month or day.
-Solution: Change "%y" to "%Y".
-Files: src/undo.c
-
-
-*** ../vim-7.3.106/src/undo.c 2011-01-22 00:11:42.000000000 +0100
---- src/undo.c 2011-01-22 00:03:58.000000000 +0100
-***************
-*** 2884,2890 ****
- (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
- #endif
---- 2884,2890 ----
- (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
- #endif
-*** ../vim-7.3.106/src/version.c 2011-01-22 21:05:02.000000000 +0100
---- src/version.c 2011-01-22 21:24:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 107,
- /**/
-
---
-"The sun oozed over the horizon, shoved aside darkness, crept along the
-greensward, and, with sickly fingers, pushed through the castle window,
-revealing the pillaged princess, hand at throat, crown asunder, gaping
-in frenzied horror at the sated, sodden amphibian lying beside her,
-disbelieving the magnitude of the frog's deception, screaming madly,
-"You lied!"
- - Winner of the Bulwer-Lytton contest (San Jose State University),
- wherein one writes only the first line of a bad novel
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.108 b/source/ap/vim/patches/7.3.108
deleted file mode 100644
index 91f3ceb97..000000000
--- a/source/ap/vim/patches/7.3.108
+++ /dev/null
@@ -1,111 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.108
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.108
-Problem: Useless check for NULL when calling vim_free().
-Solution: Remove the check. (Dominique Pelle)
-Files: src/eval.c, src/ex_cmds.c, src/os_win32.c
-
-
-*** ../vim-7.3.107/src/eval.c 2011-01-22 01:13:33.000000000 +0100
---- src/eval.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 5106,5114 ****
- else
- ret = OK;
- }
-!
-! if (alias != NULL)
-! vim_free(alias);
- }
-
- *arg = skipwhite(*arg);
---- 5106,5112 ----
- else
- ret = OK;
- }
-! vim_free(alias);
- }
-
- *arg = skipwhite(*arg);
-***************
-*** 19807,19813 ****
- EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
- return;
- }
-! /* Don't allow hiding a function. When "v" is not NULL we migth be
- * assigning another function to the same var, the type is checked
- * below. */
- if (v == NULL && function_exists(name))
---- 19805,19811 ----
- EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
- return;
- }
-! /* Don't allow hiding a function. When "v" is not NULL we might be
- * assigning another function to the same var, the type is checked
- * below. */
- if (v == NULL && function_exists(name))
-*** ../vim-7.3.107/src/ex_cmds.c 2010-12-17 18:06:00.000000000 +0100
---- src/ex_cmds.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 5412,5418 ****
- vir_T *virp;
- int force;
- {
-! if (old_sub != NULL && force)
- vim_free(old_sub);
- if (force || old_sub == NULL)
- old_sub = viminfo_readstring(virp, 1, TRUE);
---- 5412,5418 ----
- vir_T *virp;
- int force;
- {
-! if (force)
- vim_free(old_sub);
- if (force || old_sub == NULL)
- old_sub = viminfo_readstring(virp, 1, TRUE);
-*** ../vim-7.3.107/src/os_win32.c 2010-12-17 20:23:56.000000000 +0100
---- src/os_win32.c 2011-01-30 21:37:53.000000000 +0100
-***************
-*** 1886,1893 ****
- cb->BufferSize.X = cb->Info.dwSize.X;
- cb->BufferSize.Y = cb->Info.dwSize.Y;
- NumCells = cb->BufferSize.X * cb->BufferSize.Y;
-! if (cb->Buffer != NULL)
-! vim_free(cb->Buffer);
- cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
- if (cb->Buffer == NULL)
- return FALSE;
---- 1886,1892 ----
- cb->BufferSize.X = cb->Info.dwSize.X;
- cb->BufferSize.Y = cb->Info.dwSize.Y;
- NumCells = cb->BufferSize.X * cb->BufferSize.Y;
-! vim_free(cb->Buffer);
- cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO));
- if (cb->Buffer == NULL)
- return FALSE;
-*** ../vim-7.3.107/src/version.c 2011-01-22 21:25:07.000000000 +0100
---- src/version.c 2011-02-01 13:47:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 108,
- /**/
-
---
-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.109 b/source/ap/vim/patches/7.3.109
deleted file mode 100644
index ce35fb0ad..000000000
--- a/source/ap/vim/patches/7.3.109
+++ /dev/null
@@ -1,266 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.109
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.109
-Problem: Processing new Esperanto spell file fails and crashes Vim.
- (Dominique Pelle)
-Solution: When running out of memory give an error. Handle '?' in
- COMPOUNDRULE properly.
-Files: src/spell.c
-
-
-*** ../vim-7.3.108/src/spell.c 2010-12-17 18:06:00.000000000 +0100
---- src/spell.c 2011-02-01 13:43:52.000000000 +0100
-***************
-*** 3634,3640 ****
- }
-
- /* Add all flags to "sl_compallflags". */
-! if (vim_strchr((char_u *)"+*[]/", c) == NULL
- && !byte_in_str(slang->sl_compallflags, c))
- {
- *ap++ = c;
---- 3634,3640 ----
- }
-
- /* Add all flags to "sl_compallflags". */
-! if (vim_strchr((char_u *)"?*+[]/", c) == NULL
- && !byte_in_str(slang->sl_compallflags, c))
- {
- *ap++ = c;
-***************
-*** 3664,3670 ****
- /* Copy flag to "sl_comprules", unless we run into a wildcard. */
- if (crp != NULL)
- {
-! if (c == '+' || c == '*')
- {
- vim_free(slang->sl_comprules);
- slang->sl_comprules = NULL;
---- 3664,3670 ----
- /* Copy flag to "sl_comprules", unless we run into a wildcard. */
- if (crp != NULL)
- {
-! if (c == '?' || c == '+' || c == '*')
- {
- vim_free(slang->sl_comprules);
- slang->sl_comprules = NULL;
-***************
-*** 3682,3689 ****
- }
- else /* normal char, "[abc]" and '*' are copied as-is */
- {
-! if (c == '+' || c == '~')
-! *pp++ = '\\'; /* "a+" becomes "a\+" */
- #ifdef FEAT_MBYTE
- if (enc_utf8)
- pp += mb_char2bytes(c, pp);
---- 3682,3689 ----
- }
- else /* normal char, "[abc]" and '*' are copied as-is */
- {
-! if (c == '?' || c == '+' || c == '~')
-! *pp++ = '\\'; /* "a?" becomes "a\?", "a+" becomes "a\+" */
- #ifdef FEAT_MBYTE
- if (enc_utf8)
- pp += mb_char2bytes(c, pp);
-***************
-*** 4951,4956 ****
---- 4951,4958 ----
-
- sblock_T *si_blocks; /* memory blocks used */
- long si_blocks_cnt; /* memory blocks allocated */
-+ int si_did_emsg; /* TRUE when ran out of memory */
-+
- long si_compress_cnt; /* words to add before lowering
- compression limit */
- wordnode_T *si_first_free; /* List of nodes that have been freed during
-***************
-*** 5477,5497 ****
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
- {
-! /* Concatenate this string to previously defined ones, using a
-! * slash to separate them. */
-! l = (int)STRLEN(items[1]) + 1;
-! if (compflags != NULL)
-! l += (int)STRLEN(compflags) + 1;
-! p = getroom(spin, l, FALSE);
-! if (p != NULL)
- {
- if (compflags != NULL)
- {
-! STRCPY(p, compflags);
-! STRCAT(p, "/");
- }
-- STRCAT(p, items[1]);
-- compflags = p;
- }
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
---- 5479,5503 ----
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDRULE", 2))
- {
-! /* Don't use the first rule if it is a number. */
-! if (compflags != NULL || *skipdigits(items[1]) != NUL)
- {
-+ /* Concatenate this string to previously defined ones,
-+ * using a slash to separate them. */
-+ l = (int)STRLEN(items[1]) + 1;
- if (compflags != NULL)
-+ l += (int)STRLEN(compflags) + 1;
-+ p = getroom(spin, l, FALSE);
-+ if (p != NULL)
- {
-! if (compflags != NULL)
-! {
-! STRCPY(p, compflags);
-! STRCAT(p, "/");
-! }
-! STRCAT(p, items[1]);
-! compflags = p;
- }
- }
- }
- else if (is_aff_rule(items, itemcnt, "COMPOUNDWORDMAX", 2)
-***************
-*** 6291,6297 ****
-
- for (p = compflags; *p != NUL; )
- {
-! if (vim_strchr((char_u *)"/*+[]", *p) != NULL)
- /* Copy non-flag characters directly. */
- *tp++ = *p++;
- else
---- 6297,6303 ----
-
- for (p = compflags; *p != NUL; )
- {
-! if (vim_strchr((char_u *)"/?*+[]", *p) != NULL)
- /* Copy non-flag characters directly. */
- *tp++ = *p++;
- else
-***************
-*** 6320,6326 ****
- {
- check_renumber(spin);
- id = spin->si_newcompID--;
-! } while (vim_strchr((char_u *)"/+*[]\\-^", id) != NULL);
- ci->ci_newID = id;
- hash_add(&aff->af_comp, ci->ci_key);
- }
---- 6326,6332 ----
- {
- check_renumber(spin);
- id = spin->si_newcompID--;
-! } while (vim_strchr((char_u *)"/?*+[]\\-^", id) != NULL);
- ci->ci_newID = id;
- hash_add(&aff->af_comp, ci->ci_key);
- }
-***************
-*** 7364,7373 ****
-
- if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
- {
-! /* Allocate a block of memory. This is not freed until much later. */
-! bl = (sblock_T *)alloc_clear((unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
- if (bl == NULL)
- return NULL;
- bl->sb_next = spin->si_blocks;
- spin->si_blocks = bl;
- bl->sb_used = 0;
---- 7370,7390 ----
-
- if (bl == NULL || bl->sb_used + len > SBLOCKSIZE)
- {
-! if (len >= SBLOCKSIZE)
-! bl = NULL;
-! else
-! /* Allocate a block of memory. It is not freed until much later. */
-! bl = (sblock_T *)alloc_clear(
-! (unsigned)(sizeof(sblock_T) + SBLOCKSIZE));
- if (bl == NULL)
-+ {
-+ if (!spin->si_did_emsg)
-+ {
-+ EMSG(_("E845: Insufficient memory, word list will be incomplete"));
-+ spin->si_did_emsg = TRUE;
-+ }
- return NULL;
-+ }
- bl->sb_next = spin->si_blocks;
- spin->si_blocks = bl;
- bl->sb_used = 0;
-***************
-*** 7382,7387 ****
---- 7399,7405 ----
-
- /*
- * Make a copy of a string into memory allocated with getroom().
-+ * Returns NULL when out of memory.
- */
- static char_u *
- getroom_save(spin, s)
-***************
-*** 7416,7421 ****
---- 7434,7440 ----
-
- /*
- * Allocate the root of a word tree.
-+ * Returns NULL when out of memory.
- */
- static wordnode_T *
- wordtree_alloc(spin)
-***************
-*** 7700,7705 ****
---- 7719,7725 ----
- /*
- * Get a wordnode_T, either from the list of previously freed nodes or
- * allocate a new one.
-+ * Returns NULL when out of memory.
- */
- static wordnode_T *
- get_wordnode(spin)
-***************
-*** 7717,7723 ****
- --spin->si_free_count;
- }
- #ifdef SPELL_PRINTTREE
-! n->wn_nr = ++spin->si_wordnode_nr;
- #endif
- return n;
- }
---- 7737,7744 ----
- --spin->si_free_count;
- }
- #ifdef SPELL_PRINTTREE
-! if (n != NULL)
-! n->wn_nr = ++spin->si_wordnode_nr;
- #endif
- return n;
- }
-*** ../vim-7.3.108/src/version.c 2011-02-01 13:48:47.000000000 +0100
---- src/version.c 2011-02-01 13:56:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 109,
- /**/
-
---
-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.110 b/source/ap/vim/patches/7.3.110
deleted file mode 100644
index 3ffc7f2c8..000000000
--- a/source/ap/vim/patches/7.3.110
+++ /dev/null
@@ -1,76 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.110
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.110
-Problem: The "nbsp" item in 'listchars' isn't used for ":list".
-Solution: Make it work. (Christian Brabandt)
-Files: src/message.c
-
-
-*** ../vim-7.3.109/src/message.c 2011-01-17 20:08:03.000000000 +0100
---- src/message.c 2011-02-01 17:06:21.000000000 +0100
-***************
-*** 1637,1644 ****
- else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
- {
- col += (*mb_ptr2cells)(s);
-! mch_memmove(buf, s, (size_t)l);
-! buf[l] = NUL;
- msg_puts(buf);
- s += l;
- continue;
---- 1637,1652 ----
- else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1)
- {
- col += (*mb_ptr2cells)(s);
-! if (lcs_nbsp != NUL && list && mb_ptr2char(s) == 160)
-! {
-! mb_char2bytes(lcs_nbsp, buf);
-! buf[(*mb_ptr2len)(buf)] = NUL;
-! }
-! else
-! {
-! mch_memmove(buf, s, (size_t)l);
-! buf[l] = NUL;
-! }
- msg_puts(buf);
- s += l;
- continue;
-***************
-*** 1664,1669 ****
---- 1672,1682 ----
- attr = hl_attr(HLF_8);
- }
- }
-+ else if (c == 160 && list && lcs_nbsp != NUL)
-+ {
-+ c = lcs_nbsp;
-+ attr = hl_attr(HLF_8);
-+ }
- else if (c == NUL && list && lcs_eol != NUL)
- {
- p_extra = (char_u *)"";
-*** ../vim-7.3.109/src/version.c 2011-02-01 13:59:44.000000000 +0100
---- src/version.c 2011-02-01 17:08:31.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 110,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-176. You lie, even to user-friends, about how long you were online yesterday.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.111 b/source/ap/vim/patches/7.3.111
deleted file mode 100644
index e3cf717c3..000000000
--- a/source/ap/vim/patches/7.3.111
+++ /dev/null
@@ -1,121 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.111
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.111 (after 7.3.100)
-Problem: Executing a :normal command in 'statusline' evaluation causes the
- cursor to move. (Dominique Pelle)
-Solution: When updating the cursor for 'cursorbind' allow the cursor beyond
- the end of the line. When evaluating 'statusline' temporarily
- reset 'cursorbind'.
-Files: src/move.c, src/screen.c
-
-
-*** ../vim-7.3.110/src/move.c 2011-01-22 21:05:02.000000000 +0100
---- src/move.c 2011-02-01 17:36:10.000000000 +0100
-***************
-*** 2846,2851 ****
---- 2846,2852 ----
- colnr_T col = curwin->w_cursor.col;
- win_T *old_curwin = curwin;
- buf_T *old_curbuf = curbuf;
-+ int restart_edit_save;
- # ifdef FEAT_VISUAL
- int old_VIsual_select = VIsual_select;
- int old_VIsual_active = VIsual_active;
-***************
-*** 2875,2882 ****
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-
-! /* Make sure the cursor is in a valid position. */
- check_cursor();
- # ifdef FEAT_MBYTE
- /* Correct cursor for multi-byte character. */
- if (has_mbyte)
---- 2876,2887 ----
- curwin->w_cursor.lnum = line;
- curwin->w_cursor.col = col;
-
-! /* Make sure the cursor is in a valid position. Temporarily set
-! * "restart_edit" to allow the cursor to be beyond the EOL. */
-! restart_edit_save = restart_edit;
-! restart_edit = TRUE;
- check_cursor();
-+ restart_edit = restart_edit_save;
- # ifdef FEAT_MBYTE
- /* Correct cursor for multi-byte character. */
- if (has_mbyte)
-*** ../vim-7.3.110/src/screen.c 2010-12-30 14:57:03.000000000 +0100
---- src/screen.c 2011-02-01 17:45:45.000000000 +0100
-***************
-*** 6435,6440 ****
---- 6435,6442 ----
- struct stl_hlrec hltab[STL_MAX_ITEM];
- struct stl_hlrec tabtab[STL_MAX_ITEM];
- int use_sandbox = FALSE;
-+ win_T *ewp;
-+ int p_crb_save;
-
- /* setup environment for the task at hand */
- if (wp == NULL)
-***************
-*** 6513,6526 ****
- if (maxwidth <= 0)
- return;
-
- /* Make a copy, because the statusline may include a function call that
- * might change the option value and free the memory. */
- stl = vim_strsave(stl);
-! width = build_stl_str_hl(wp == NULL ? curwin : wp,
-! buf, sizeof(buf),
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-
- /* Make all characters printable. */
- p = transstr(buf);
---- 6515,6534 ----
- if (maxwidth <= 0)
- return;
-
-+ /* Temporarily reset 'cursorbind', we don't want a side effect from moving
-+ * the cursor away and back. */
-+ ewp = wp == NULL ? curwin : wp;
-+ p_crb_save = ewp->w_p_crb;
-+ ewp->w_p_crb = FALSE;
-+
- /* Make a copy, because the statusline may include a function call that
- * might change the option value and free the memory. */
- stl = vim_strsave(stl);
-! width = build_stl_str_hl(ewp, buf, sizeof(buf),
- stl, use_sandbox,
- fillchar, maxwidth, hltab, tabtab);
- vim_free(stl);
-+ ewp->w_p_crb = p_crb_save;
-
- /* Make all characters printable. */
- p = transstr(buf);
-*** ../vim-7.3.110/src/version.c 2011-02-01 17:12:20.000000000 +0100
---- src/version.c 2011-02-01 18:00:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 111,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-177. You log off of your system because it's time to go to work.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.112 b/source/ap/vim/patches/7.3.112
deleted file mode 100644
index af9b88180..000000000
--- a/source/ap/vim/patches/7.3.112
+++ /dev/null
@@ -1,63 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.112
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.112
-Problem: Setting 'statusline' to "%!'asdf%' reads uninitialized memory.
-Solution: Check for NUL after %.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.111/src/buffer.c 2010-10-27 16:17:56.000000000 +0200
---- src/buffer.c 2011-02-01 21:40:17.000000000 +0100
-***************
-*** 3364,3370 ****
- * or truncated if too long, fillchar is used for all whitespace.
- */
- int
-! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar, maxwidth, hltab, tabtab)
- win_T *wp;
- char_u *out; /* buffer to write into != NameBuff */
- size_t outlen; /* length of out[] */
---- 3364,3371 ----
- * or truncated if too long, fillchar is used for all whitespace.
- */
- int
-! build_stl_str_hl(wp, out, outlen, fmt, use_sandbox, fillchar,
-! maxwidth, hltab, tabtab)
- win_T *wp;
- char_u *out; /* buffer to write into != NameBuff */
- size_t outlen; /* length of out[] */
-***************
-*** 3474,3479 ****
---- 3475,3482 ----
- * Handle one '%' item.
- */
- s++;
-+ if (*s == NUL) /* ignore trailing % */
-+ break;
- if (*s == '%')
- {
- if (p + 1 >= out + outlen)
-*** ../vim-7.3.111/src/version.c 2011-02-01 18:01:06.000000000 +0100
---- src/version.c 2011-02-01 21:54:01.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 112,
- /**/
-
---
-Rule #1: Don't give somebody a tool that he's going to hurt himself 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.113 b/source/ap/vim/patches/7.3.113
deleted file mode 100644
index a4383ad92..000000000
--- a/source/ap/vim/patches/7.3.113
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.113
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.113
-Problem: Windows: Fall back directory for creating temp file is wrong.
-Solution: Use "." instead of empty string. (Hong Xu)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.112/src/fileio.c 2011-01-17 20:08:03.000000000 +0100
---- src/fileio.c 2011-02-06 13:14:25.000000000 +0100
-***************
-*** 7459,7465 ****
-
- STRCPY(itmp, "");
- if (GetTempPath(_MAX_PATH, szTempFile) == 0)
-! szTempFile[0] = NUL; /* GetTempPath() failed, use current dir */
- strcpy(buf4, "VIM");
- buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
- if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
---- 7459,7468 ----
-
- STRCPY(itmp, "");
- if (GetTempPath(_MAX_PATH, szTempFile) == 0)
-! {
-! szTempFile[0] = '.'; /* GetTempPath() failed, use current dir */
-! szTempFile[1] = NUL;
-! }
- strcpy(buf4, "VIM");
- buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */
- if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0)
-*** ../vim-7.3.112/src/version.c 2011-02-01 21:54:56.000000000 +0100
---- src/version.c 2011-02-09 14:46:12.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 113,
- /**/
-
---
-'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.114 b/source/ap/vim/patches/7.3.114
deleted file mode 100644
index 34bdd364e..000000000
--- a/source/ap/vim/patches/7.3.114
+++ /dev/null
@@ -1,50 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.114
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.114
-Problem: Potential problem in initialization when giving an error message
- early.
-Solution: Initialize 'verbosefile' empty. (Ben Schmidt)
-Files: src/option.h
-
-
-*** ../vim-7.3.113/src/option.h 2010-12-02 16:01:23.000000000 +0100
---- src/option.h 2011-02-09 15:37:36.000000000 +0100
-***************
-*** 854,860 ****
---- 854,864 ----
- # define VE_ONEMORE 8
- #endif
- EXTERN long p_verbose; /* 'verbose' */
-+ #ifdef IN_OPTION_C
-+ char_u *p_vfile = (char_u *)""; /* used before options are initialized */
-+ #else
- EXTERN char_u *p_vfile; /* 'verbosefile' */
-+ #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
- EXTERN char_u *p_wop; /* 'wildoptions' */
-*** ../vim-7.3.113/src/version.c 2011-02-09 14:46:58.000000000 +0100
---- src/version.c 2011-02-09 15:46:17.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 114,
- /**/
-
---
-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.115 b/source/ap/vim/patches/7.3.115
deleted file mode 100644
index dd36df300..000000000
--- a/source/ap/vim/patches/7.3.115
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.115
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.115
-Problem: Vim can crash when tmpnam() returns NULL.
-Solution: Check for NULL. (Hong Xu)
-Files: src/fileio.c
-
-
-*** ../vim-7.3.114/src/fileio.c 2011-02-09 14:46:58.000000000 +0100
---- src/fileio.c 2011-02-09 16:14:35.000000000 +0100
-***************
-*** 7483,7490 ****
- # else /* WIN3264 */
-
- # ifdef USE_TMPNAM
- /* tmpnam() will make its own name */
-! if (*tmpnam((char *)itmp) == NUL)
- return NULL;
- # else
- char_u *p;
---- 7483,7493 ----
- # else /* WIN3264 */
-
- # ifdef USE_TMPNAM
-+ char_u *p;
-+
- /* tmpnam() will make its own name */
-! p = tmpnam((char *)itmp);
-! if (p == NULL || *p == NUL)
- return NULL;
- # else
- char_u *p;
-*** ../vim-7.3.114/src/version.c 2011-02-09 15:59:32.000000000 +0100
---- src/version.c 2011-02-09 16:44:11.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 115,
- /**/
-
---
-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.116 b/source/ap/vim/patches/7.3.116
deleted file mode 100644
index ee9543afb..000000000
--- a/source/ap/vim/patches/7.3.116
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.116
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.116
-Problem: 'cursorline' is displayed too short when there are concealed
- characters and 'list' is set. (Dennis Preiser)
-Solution: Check for 'cursorline' when 'list' is set. (Christian Brabandt)
-Files: src/screen.c
-
-
-*** ../vim-7.3.115/src/screen.c 2011-02-01 18:01:06.000000000 +0100
---- src/screen.c 2011-02-09 16:59:28.000000000 +0100
-***************
-*** 5099,5105 ****
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
---- 5099,5109 ----
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
-! #ifdef FEAT_SYN_HL
-! && !wp->w_p_cul
-! #endif
-! )
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
-*** ../vim-7.3.115/src/version.c 2011-02-09 16:44:45.000000000 +0100
---- src/version.c 2011-02-09 17:08:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 116,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-219. Your spouse has his or her lawyer deliver the divorce papers...
- via 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.117 b/source/ap/vim/patches/7.3.117
deleted file mode 100644
index 19fcf7398..000000000
--- a/source/ap/vim/patches/7.3.117
+++ /dev/null
@@ -1,89 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.117
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.117
-Problem: On some systems --as-needed does not work, because the "tinfo"
- library is included indirectly from "ncurses". (Charles Campbell)
-Solution: In configure prefer using "tinfo" instead of "ncurses".
-Files: src/configure.in, src/auto/configure
-
-
-*** ../vim-7.3.116/src/configure.in 2010-11-16 19:25:56.000000000 +0100
---- src/configure.in 2011-02-09 17:28:16.000000000 +0100
-***************
-*** 2618,2630 ****
- AC_MSG_RESULT([empty: automatic terminal library selection])
- 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.
- 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).
- case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
-! *) tlibs="ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- AC_CHECK_LIB(${libname}, tgetent,,)
---- 2618,2631 ----
- AC_MSG_RESULT([empty: automatic terminal library selection])
- 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).
- case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
-! *) tlibs="tinfo ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- AC_CHECK_LIB(${libname}, tgetent,,)
-*** ../vim-7.3.116/src/auto/configure 2010-11-16 19:25:56.000000000 +0100
---- src/auto/configure 2011-02-09 17:29:13.000000000 +0100
-***************
-*** 9886,9894 ****
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
- $as_echo "empty: automatic terminal library selection" >&6; }
-! case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
-! *) tlibs="ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
---- 9886,9894 ----
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: empty: automatic terminal library selection" >&5
- $as_echo "empty: automatic terminal library selection" >&6; }
-! case "`uname -s 2>/dev/null`" in
-! OSF1|SCO_SV) tlibs="tinfo ncurses curses termlib termcap";;
-! *) tlibs="tinfo ncurses termlib termcap curses";;
- esac
- for libname in $tlibs; do
- as_ac_Lib=`$as_echo "ac_cv_lib_${libname}''_tgetent" | $as_tr_sh`
-*** ../vim-7.3.116/src/version.c 2011-02-09 17:09:26.000000000 +0100
---- src/version.c 2011-02-09 17:41:37.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 117,
- /**/
-
---
-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.118 b/source/ap/vim/patches/7.3.118
deleted file mode 100644
index fecb948b3..000000000
--- a/source/ap/vim/patches/7.3.118
+++ /dev/null
@@ -1,69 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.118
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.118
-Problem: Ruby uses SIGVTALARM which makes Vim exit. (Alec Tica)
-Solution: Ignore SIGVTALARM. (Dominique Pelle)
-Files: src/os_unix.c
-
-
-*** ../vim-7.3.117/src/os_unix.c 2010-12-17 16:27:10.000000000 +0100
---- src/os_unix.c 2011-02-09 18:19:57.000000000 +0100
-***************
-*** 283,289 ****
- #ifdef SIGTERM
- {SIGTERM, "TERM", TRUE},
- #endif
-! #ifdef SIGVTALRM
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
- #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
---- 283,289 ----
- #ifdef SIGTERM
- {SIGTERM, "TERM", TRUE},
- #endif
-! #if defined(SIGVTALRM) && !defined(FEAT_RUBY)
- {SIGVTALRM, "VTALRM", TRUE},
- #endif
- #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
-***************
-*** 1107,1113 ****
- * On Linux, signal is not always handled immediately either.
- * See https://bugs.launchpad.net/bugs/291373
- *
-! * volatile because it is used in in signal handler sigcont_handler().
- */
- static volatile int sigcont_received;
- static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
---- 1107,1113 ----
- * On Linux, signal is not always handled immediately either.
- * See https://bugs.launchpad.net/bugs/291373
- *
-! * volatile because it is used in signal handler sigcont_handler().
- */
- static volatile int sigcont_received;
- static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
-*** ../vim-7.3.117/src/version.c 2011-02-09 17:42:53.000000000 +0100
---- src/version.c 2011-02-09 18:46:53.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 118,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-221. Your wife melts your keyboard in the oven.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.119 b/source/ap/vim/patches/7.3.119
deleted file mode 100644
index 1547625d3..000000000
--- a/source/ap/vim/patches/7.3.119
+++ /dev/null
@@ -1,52 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.1
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.119
-Problem: Build problem on Mac. (Nicholas Stallard)
-Solution: Use "extern" instead of "EXTERN" for p_vfile.
-Files: src/option.h
-
-
-*** ../vim-7.3.118/src/option.h 2011-02-09 15:59:32.000000000 +0100
---- src/option.h 2011-02-12 13:56:50.000000000 +0100
-***************
-*** 857,863 ****
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
- #else
-! EXTERN char_u *p_vfile; /* 'verbosefile' */
- #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
---- 857,863 ----
- #ifdef IN_OPTION_C
- char_u *p_vfile = (char_u *)""; /* used before options are initialized */
- #else
-! extern char_u *p_vfile; /* 'verbosefile' */
- #endif
- EXTERN int p_warn; /* 'warn' */
- #ifdef FEAT_CMDL_COMPL
-*** ../vim-7.3.118/src/version.c 2011-02-09 18:47:36.000000000 +0100
---- src/version.c 2011-02-12 13:59:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 119,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-237. You tattoo your email address on your forehead.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.120 b/source/ap/vim/patches/7.3.120
deleted file mode 100644
index 04e2f633c..000000000
--- a/source/ap/vim/patches/7.3.120
+++ /dev/null
@@ -1,59 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.120
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.120
-Problem: The message for an existing swap file is too long to fit in a 25
- line terminal.
-Solution: Make the message shorter. (Chad Miller)
-Files: src/memline.c
-
-
-*** ../vim-7.3.119/src/memline.c 2011-01-17 20:08:03.000000000 +0100
---- src/memline.c 2011-02-13 14:18:08.000000000 +0100
-***************
-*** 4071,4079 ****
- }
- /* Some of these messages are long to allow translation to
- * other languages. */
-! MSG_PUTS(_("\n(1) Another program may be editing the same file.\n If this is the case, be careful not to end up with two\n different instances of the same file when making changes.\n"));
-! MSG_PUTS(_(" Quit, or continue with caution.\n"));
-! MSG_PUTS(_("\n(2) An edit session for this file crashed.\n"));
- MSG_PUTS(_(" If this is the case, use \":recover\" or \"vim -r "));
- msg_outtrans(buf->b_fname);
- MSG_PUTS(_("\"\n to recover the changes (see \":help recovery\").\n"));
---- 4071,4079 ----
- }
- /* Some of these messages are long to allow translation to
- * other languages. */
-! MSG_PUTS(_("\n(1) Another program may be editing the same file. If this is the case,\n be careful not to end up with two different instances of the same\n file when making changes."));
-! MSG_PUTS(_(" Quit, or continue with caution.\n"));
-! MSG_PUTS(_("(2) An edit session for this file crashed.\n"));
- MSG_PUTS(_(" If this is the case, use \":recover\" or \"vim -r "));
- msg_outtrans(buf->b_fname);
- MSG_PUTS(_("\"\n to recover the changes (see \":help recovery\").\n"));
-*** ../vim-7.3.119/src/version.c 2011-02-12 13:59:55.000000000 +0100
---- src/version.c 2011-02-15 11:56:14.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 120,
- /**/
-
---
-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.121 b/source/ap/vim/patches/7.3.121
deleted file mode 100644
index f51a77470..000000000
--- a/source/ap/vim/patches/7.3.121
+++ /dev/null
@@ -1,57 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.121
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.121
-Problem: Complicated 'statusline' causes a crash. (Christian Brabandt)
-Solution: Check that the number of items is not too big.
-Files: src/buffer.c
-
-
-*** ../vim-7.3.120/src/buffer.c 2011-02-01 21:54:56.000000000 +0100
---- src/buffer.c 2011-02-15 14:00:51.000000000 +0100
-***************
-*** 3460,3465 ****
---- 3461,3478 ----
- prevchar_isitem = FALSE;
- for (s = usefmt; *s; )
- {
-+ if (curitem == STL_MAX_ITEM)
-+ {
-+ /* There are too many items. Add the error code to the statusline
-+ * to give the user a hint about what went wrong. */
-+ if (p + 6 < out + outlen)
-+ {
-+ mch_memmove(p, " E541", (size_t)5);
-+ p += 5;
-+ }
-+ break;
-+ }
-+
- if (*s != NUL && *s != '%')
- prevchar_isflag = prevchar_isitem = FALSE;
-
-*** ../vim-7.3.120/src/version.c 2011-02-15 11:56:56.000000000 +0100
---- src/version.c 2011-02-15 14:23:39.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 121,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-265. Your reason for not staying in touch with family is that
- they do not have e-mail addresses.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.122 b/source/ap/vim/patches/7.3.122
deleted file mode 100644
index 02e9759b5..000000000
--- a/source/ap/vim/patches/7.3.122
+++ /dev/null
@@ -1,100 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.122
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.122
-Problem: Having auto/config.mk in the repository causes problems.
-Solution: Remove auto/config.mk from the distribution. In the toplevel
- Makefile copy it from the "dist" file.
-Files: Makefile, src/Makefile, src/auto/config.mk
-
-
-*** ../vim-7.3.121/Makefile 2010-08-15 21:57:20.000000000 +0200
---- Makefile 2011-02-12 14:28:09.000000000 +0100
-***************
-*** 23,28 ****
---- 23,31 ----
- # has run can result in compiling with $(CC) empty.
-
- first:
-+ @if test ! -f src/auto/config.mk; then \
-+ cp src/config.mk.dist src/auto/config.mk; \
-+ fi
- @echo "Starting make in the src directory."
- @echo "If there are problems, cd to the src directory and run make there"
- cd src && $(MAKE) $@
-***************
-*** 30,35 ****
---- 33,41 ----
- # Some make programs use the last target for the $@ default; put the other
- # targets separately to always let $@ expand to "first" by default.
- all install uninstall tools config configure reconfig proto depend lint tags types test testclean clean distclean:
-+ @if test ! -f src/auto/config.mk; then \
-+ cp src/config.mk.dist src/auto/config.mk; \
-+ fi
- @echo "Starting make in the src directory."
- @echo "If there are problems, cd to the src directory and run make there"
- cd src && $(MAKE) $@
-*** ../vim-7.3.121/src/Makefile 2010-11-03 22:32:18.000000000 +0100
---- src/Makefile 2011-02-15 15:21:37.000000000 +0100
-***************
-*** 283,294 ****
-
- ######################## auto/config.mk ######################## {{{1
- # At this position auto/config.mk is included. When starting from the
-! # distribution it is almost empty. After running auto/configure it contains
-! # settings that have been discovered for your system. Settings below this
-! # include override settings in auto/config.mk!
-!
-! # Note: if auto/config.mk is lost somehow (e.g., because configure was
-! # interrupted), create an empty auto/config.mk file and do "make config".
-
- # (X) How to include auto/config.mk depends on the version of "make" you have,
- # if the current choice doesn't work, try the other one.
---- 283,295 ----
-
- ######################## auto/config.mk ######################## {{{1
- # At this position auto/config.mk is included. When starting from the
-! # toplevel Makefile it is almost empty. After running auto/configure it
-! # contains settings that have been discovered for your system. Settings below
-! # this include override settings in auto/config.mk!
-!
-! # Note: If make fails because auto/config.mk does not exist (it is not
-! # included in the repository), do:
-! # cp config.mk.dist auto/config.mk
-
- # (X) How to include auto/config.mk depends on the version of "make" you have,
- # if the current choice doesn't work, try the other one.
-*** ../vim-7.3.121/src/auto/config.mk 2010-08-16 21:59:00.000000000 +0200
---- src/auto/config.mk 1970-01-01 01:00:00.000000000 +0100
-***************
-*** 1,5 ****
-- the first targets to make vim are: scratch config myself
-- srcdir = .
-- VIMNAME = vim
-- EXNAME = ex
-- VIEWNAME = view
---- 0 ----
-*** ../vim-7.3.121/src/version.c 2011-02-15 14:24:42.000000000 +0100
---- src/version.c 2011-02-15 15:25:07.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 122,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-267. You get an extra phone line so you can get phone calls.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.123 b/source/ap/vim/patches/7.3.123
deleted file mode 100644
index 0bca41b8e..000000000
--- a/source/ap/vim/patches/7.3.123
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.123
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.123
-Problem: ml_get error when executing register being recorded into, deleting
- lines and 'conceallevel' is set. (ZyX)
-Solution: Don't redraw a line for concealing when it doesn't exist.
-Files: src/main.c
-
-
-*** ../vim-7.3.122/src/main.c 2010-12-17 18:06:00.000000000 +0100
---- src/main.c 2011-02-15 16:09:41.000000000 +0100
-***************
-*** 1198,1204 ****
- || conceal_cursor_line(curwin)
- || need_cursor_line_redraw))
- {
-! if (conceal_old_cursor_line != conceal_new_cursor_line)
- update_single_line(curwin, conceal_old_cursor_line);
- update_single_line(curwin, conceal_new_cursor_line);
- curwin->w_valid &= ~VALID_CROW;
---- 1198,1206 ----
- || conceal_cursor_line(curwin)
- || need_cursor_line_redraw))
- {
-! if (conceal_old_cursor_line != conceal_new_cursor_line
-! && conceal_old_cursor_line
-! <= curbuf->b_ml.ml_line_count)
- update_single_line(curwin, conceal_old_cursor_line);
- update_single_line(curwin, conceal_new_cursor_line);
- curwin->w_valid &= ~VALID_CROW;
-*** ../vim-7.3.122/src/version.c 2011-02-15 15:27:00.000000000 +0100
---- src/version.c 2011-02-15 16:15:28.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 123,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-268. You get up in the morning and go online before getting your coffee.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.124 b/source/ap/vim/patches/7.3.124
deleted file mode 100644
index 738c2a16c..000000000
--- a/source/ap/vim/patches/7.3.124
+++ /dev/null
@@ -1,229 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.124
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.124
-Problem: When writing a file in binary mode it may be missing the final EOL
- if a file previously read was missing the EOL. (Kevin Goodsell)
-Solution: Move the write_no_eol_lnum into the buffer struct.
-Files: src/structs.h, src/fileio.c, src/globals.h, src/os_unix.c
-
-
-*** ../vim-7.3.123/src/structs.h 2010-10-20 21:22:17.000000000 +0200
---- src/structs.h 2011-02-15 17:06:34.000000000 +0100
-***************
-*** 1564,1569 ****
---- 1564,1572 ----
-
- /* end of buffer options */
-
-+ linenr_T b_no_eol_lnum; /* non-zero lnum when last line of next binary
-+ * write should not have an end-of-line */
-+
- int b_start_eol; /* last line had eol when it was read */
- int b_start_ffc; /* first char of 'ff' when edit started */
- #ifdef FEAT_MBYTE
-*** ../vim-7.3.123/src/fileio.c 2011-02-09 16:44:45.000000000 +0100
---- src/fileio.c 2011-02-15 17:30:54.000000000 +0100
-***************
-*** 317,323 ****
- int using_b_fname;
- #endif
-
-! write_no_eol_lnum = 0; /* in case it was set by the previous read */
-
- /*
- * If there is no file name yet, use the one for the read file.
---- 317,323 ----
- int using_b_fname;
- #endif
-
-! curbuf->b_no_eol_lnum = 0; /* in case it was set by the previous read */
-
- /*
- * If there is no file name yet, use the one for the read file.
-***************
-*** 2599,2608 ****
-
- /*
- * Trick: We remember if the last line of the read didn't have
-! * an eol for when writing it again. This is required for
- * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
- */
-! write_no_eol_lnum = read_no_eol_lnum;
-
- /* When reloading a buffer put the cursor at the first line that is
- * different. */
---- 2599,2609 ----
-
- /*
- * Trick: We remember if the last line of the read didn't have
-! * an eol even when 'binary' is off, for when writing it again with
-! * 'binary' on. This is required for
- * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work.
- */
-! curbuf->b_no_eol_lnum = read_no_eol_lnum;
-
- /* When reloading a buffer put the cursor at the first line that is
- * different. */
-***************
-*** 2650,2662 ****
- FALSE, NULL, eap);
- if (msg_scrolled == n)
- msg_scroll = m;
-! #ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- return FAIL;
-! #endif
- }
- #endif
-
- if (recoverymode && error)
- return FAIL;
- return OK;
---- 2651,2667 ----
- FALSE, NULL, eap);
- if (msg_scrolled == n)
- msg_scroll = m;
-! # ifdef FEAT_EVAL
- if (aborting()) /* autocmds may abort script processing */
- return FAIL;
-! # endif
- }
- #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;
-***************
-*** 4560,4566 ****
- if (end == 0
- || (lnum == end
- && write_bin
-! && (lnum == write_no_eol_lnum
- || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
- {
- ++lnum; /* written the line, count it */
---- 4565,4571 ----
- if (end == 0
- || (lnum == end
- && write_bin
-! && (lnum == buf->b_no_eol_lnum
- || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol))))
- {
- ++lnum; /* written the line, count it */
-***************
-*** 5086,5093 ****
- {
- aco_save_T aco;
-
-- write_no_eol_lnum = 0; /* in case it was set by the previous read */
--
- /*
- * Apply POST autocommands.
- * Careful: The autocommands may call buf_write() recursively!
---- 5091,5096 ----
-***************
-*** 7256,7263 ****
- write_lnum_adjust(offset)
- linenr_T offset;
- {
-! if (write_no_eol_lnum != 0) /* only if there is a missing eol */
-! write_no_eol_lnum += offset;
- }
-
- #if defined(TEMPDIRNAMES) || defined(PROTO)
---- 7259,7266 ----
- write_lnum_adjust(offset)
- linenr_T offset;
- {
-! if (curbuf->b_no_eol_lnum != 0) /* only if there is a missing eol */
-! curbuf->b_no_eol_lnum += offset;
- }
-
- #if defined(TEMPDIRNAMES) || defined(PROTO)
-*** ../vim-7.3.123/src/globals.h 2010-12-02 21:43:10.000000000 +0100
---- src/globals.h 2011-02-15 17:06:06.000000000 +0100
-***************
-*** 1057,1066 ****
- ;
- #endif
-
-- EXTERN linenr_T write_no_eol_lnum INIT(= 0); /* non-zero lnum when last line
-- of next binary write should
-- not have an end-of-line */
--
- #ifdef FEAT_WINDOWS
- EXTERN int postponed_split INIT(= 0); /* for CTRL-W CTRL-] command */
- EXTERN int postponed_split_flags INIT(= 0); /* args for win_split() */
---- 1057,1062 ----
-*** ../vim-7.3.123/src/os_unix.c 2011-02-09 18:47:36.000000000 +0100
---- src/os_unix.c 2011-02-15 17:07:22.000000000 +0100
-***************
-*** 4245,4251 ****
- * should not have one. */
- if (lnum != curbuf->b_op_end.lnum
- || !curbuf->b_p_bin
-! || (lnum != write_no_eol_lnum
- && (lnum !=
- curbuf->b_ml.ml_line_count
- || curbuf->b_p_eol)))
---- 4245,4251 ----
- * 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)))
-***************
-*** 4588,4597 ****
- {
- append_ga_line(&ga);
- /* remember that the NL was missing */
-! write_no_eol_lnum = curwin->w_cursor.lnum;
- }
- else
-! write_no_eol_lnum = 0;
- ga_clear(&ga);
- }
-
---- 4588,4597 ----
- {
- 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);
- }
-
-*** ../vim-7.3.123/src/version.c 2011-02-15 16:29:54.000000000 +0100
---- src/version.c 2011-02-15 17:37:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 124,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-270. You are subscribed to a mailing list for every piece of software
- you use.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.125 b/source/ap/vim/patches/7.3.125
deleted file mode 100644
index 719fc95e3..000000000
--- a/source/ap/vim/patches/7.3.125
+++ /dev/null
@@ -1,66 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.125
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.125
-Problem: MSVC: Problem with quotes in link argument.
-Solution: Escape backslashes and quotes. (Weasley)
-Files: src/Make_mvc.mak
-
-
-*** ../vim-7.3.124/src/Make_mvc.mak 2010-12-08 14:54:58.000000000 +0100
---- src/Make_mvc.mak 2011-02-15 17:55:24.000000000 +0100
-***************
-*** 1159,1164 ****
---- 1159,1168 ----
- E0_CFLAGS = $(CFLAGS:\=\\)
- E_CFLAGS = $(E0_CFLAGS:"=\")
- # ") stop the string
-+ # $LINKARGS2 may contain backslashes and double quotes, escape them both.
-+ E0_LINKARGS2 = $(LINKARGS2:\=\\)
-+ E_LINKARGS2 = $(E0_LINKARGS2:"=\")
-+ # ") stop the string
-
- $(PATHDEF_SRC): auto
- @echo creating $(PATHDEF_SRC)
-***************
-*** 1167,1173 ****
- @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
-! @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(LINKARGS2:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
-
---- 1171,1177 ----
- @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR:\=\\)"; >> $(PATHDEF_SRC)
- @echo char_u *all_cflags = (char_u *)"$(CC:\=\\) $(E_CFLAGS)"; >> $(PATHDEF_SRC)
-! @echo char_u *all_lflags = (char_u *)"$(link:\=\\) $(LINKARGS1:\=\\) $(E_LINKARGS2)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> $(PATHDEF_SRC)
- @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> $(PATHDEF_SRC)
-
-*** ../vim-7.3.124/src/version.c 2011-02-15 17:39:14.000000000 +0100
---- src/version.c 2011-02-15 17:55:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 125,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-271. You collect hilarious signatures from all 250 mailing lists you
- are subscribed to.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.126 b/source/ap/vim/patches/7.3.126
deleted file mode 100644
index 89d9684f5..000000000
--- a/source/ap/vim/patches/7.3.126
+++ /dev/null
@@ -1,63 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.126
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.126
-Problem: Compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/blowfish.c
-
-
-*** ../vim-7.3.125/src/blowfish.c 2010-08-15 21:57:28.000000000 +0200
---- src/blowfish.c 2010-12-17 19:58:18.000000000 +0100
-***************
-*** 413,418 ****
---- 413,419 ----
- int salt_len;
- {
- int i, j, keypos = 0;
-+ unsigned u;
- UINT32_T val, data_l, data_r;
- char_u *key;
- int keylen;
-***************
-*** 432,439 ****
- }
- for (i = 0; i < keylen; i++)
- {
-! sscanf((char *)&key[i * 2], "%2x", &j);
-! key[i] = j;
- }
-
- mch_memmove(sbx, sbi, 4 * 4 * 256);
---- 433,440 ----
- }
- for (i = 0; i < keylen; i++)
- {
-! sscanf((char *)&key[i * 2], "%2x", &u);
-! key[i] = u;
- }
-
- mch_memmove(sbx, sbi, 4 * 4 * 256);
-*** ../vim-7.3.125/src/version.c 2011-02-15 18:06:11.000000000 +0100
---- src/version.c 2011-02-25 14:40:22.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 126,
- /**/
-
---
-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.127 b/source/ap/vim/patches/7.3.127
deleted file mode 100644
index 518d2f7cb..000000000
--- a/source/ap/vim/patches/7.3.127
+++ /dev/null
@@ -1,55 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.127
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.127
-Problem: Compiler complains about comma.
-Solution: Remove comma after last enum element.
-Files: src/ex_cmds2.c
-
-
-*** ../vim-7.3.126/src/ex_cmds2.c 2010-12-17 18:06:00.000000000 +0100
---- src/ex_cmds2.c 2010-12-17 19:58:37.000000000 +0100
-***************
-*** 1115,1121 ****
- static enum
- {
- PEXP_SUBCMD, /* expand :profile sub-commands */
-! PEXP_FUNC, /* expand :profile func {funcname} */
- } pexpand_what;
-
- static char *pexpand_cmds[] = {
---- 1115,1121 ----
- static enum
- {
- PEXP_SUBCMD, /* expand :profile sub-commands */
-! PEXP_FUNC /* expand :profile func {funcname} */
- } pexpand_what;
-
- static char *pexpand_cmds[] = {
-*** ../vim-7.3.126/src/version.c 2011-02-25 14:40:51.000000000 +0100
---- src/version.c 2011-02-25 14:45:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 127,
- /**/
-
---
- LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
- hacks him to the floor. Blood. Swashbuckling music (perhaps).
- LAUNCELOT races through into the castle screaming.
-SECOND SENTRY: Hey!
- "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.128 b/source/ap/vim/patches/7.3.128
deleted file mode 100644
index d44386882..000000000
--- a/source/ap/vim/patches/7.3.128
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.128
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.128
-Problem: Another compiler warning for signed pointer.
-Solution: Use unsigned int argument for sscanf().
-Files: src/mark.c
-
-
-*** ../vim-7.3.127/src/mark.c 2010-08-15 21:57:25.000000000 +0200
---- src/mark.c 2010-12-17 20:00:05.000000000 +0100
-***************
-*** 1750,1756 ****
- {
- if (line[1] != NUL)
- {
-! sscanf((char *)line + 2, "%ld %u", &pos.lnum, &pos.col);
- switch (line[1])
- {
- case '"': curbuf->b_last_cursor = pos; break;
---- 1750,1759 ----
- {
- if (line[1] != NUL)
- {
-! unsigned u;
-!
-! sscanf((char *)line + 2, "%ld %u", &pos.lnum, &u);
-! pos.col = u;
- switch (line[1])
- {
- case '"': curbuf->b_last_cursor = pos; break;
-*** ../vim-7.3.127/src/version.c 2011-02-25 14:46:06.000000000 +0100
---- src/version.c 2011-02-25 15:10:34.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 128,
- /**/
-
---
-FATHER: Who are you?
-PRINCE: I'm ... your son ...
-FATHER: Not you.
-LAUNCELOT: I'm ... er ... Sir Launcelot, 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.129 b/source/ap/vim/patches/7.3.129
deleted file mode 100644
index 10f11d61c..000000000
--- a/source/ap/vim/patches/7.3.129
+++ /dev/null
@@ -1,241 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.129
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.129
-Problem: Using integer like a boolean.
-Solution: Nicer check for integer being non-zero.
-Files: src/tag.c
-
-
-*** ../vim-7.3.128/src/tag.c 2010-12-17 18:06:00.000000000 +0100
---- src/tag.c 2010-12-17 17:49:35.000000000 +0100
-***************
-*** 204,210 ****
- else
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- use_tagstack = FALSE;
- else
- #endif
---- 204,210 ----
- else
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- use_tagstack = FALSE;
- else
- #endif
-***************
-*** 222,228 ****
- ))
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- if (ptag_entry.tagname != NULL
- && STRCMP(ptag_entry.tagname, tag) == 0)
---- 222,228 ----
- ))
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- if (ptag_entry.tagname != NULL
- && STRCMP(ptag_entry.tagname, tag) == 0)
-***************
-*** 278,284 ****
- {
- if (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! g_do_tagpreview ? ptag_entry.tagname == NULL :
- #endif
- tagstacklen == 0)
- {
---- 278,284 ----
- {
- if (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! g_do_tagpreview != 0 ? ptag_entry.tagname == NULL :
- #endif
- tagstacklen == 0)
- {
-***************
-*** 361,367 ****
- )
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
---- 361,367 ----
- )
- {
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
-***************
-*** 399,405 ****
- prevtagstackidx = tagstackidx;
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
---- 399,405 ----
- prevtagstackidx = tagstackidx;
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- cur_match = ptag_entry.cur_match;
- cur_fnum = ptag_entry.cur_fnum;
-***************
-*** 437,443 ****
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- if (type != DT_SELECT && type != DT_JUMP)
- {
---- 437,443 ----
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- if (type != DT_SELECT && type != DT_JUMP)
- {
-***************
-*** 492,498 ****
- if (use_tagstack)
- name = tagstack[tagstackidx].tagname;
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview)
- name = ptag_entry.tagname;
- #endif
- else
---- 492,498 ----
- if (use_tagstack)
- name = tagstack[tagstackidx].tagname;
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview != 0)
- name = ptag_entry.tagname;
- #endif
- else
-***************
-*** 620,626 ****
- parse_match(matches[i], &tagp);
- if (!new_tag && (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! (g_do_tagpreview
- && i == ptag_entry.cur_match) ||
- #endif
- (use_tagstack
---- 620,626 ----
- parse_match(matches[i], &tagp);
- if (!new_tag && (
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! (g_do_tagpreview != 0
- && i == ptag_entry.cur_match) ||
- #endif
- (use_tagstack
-***************
-*** 962,968 ****
- ++tagstackidx;
- }
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview)
- {
- ptag_entry.cur_match = cur_match;
- ptag_entry.cur_fnum = cur_fnum;
---- 962,968 ----
- ++tagstackidx;
- }
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! else if (g_do_tagpreview != 0)
- {
- ptag_entry.cur_match = cur_match;
- ptag_entry.cur_fnum = cur_fnum;
-***************
-*** 3110,3116 ****
- #endif
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- {
- postponed_split = 0; /* don't split again below */
- curwin_save = curwin; /* Save current window */
---- 3110,3116 ----
- #endif
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- {
- postponed_split = 0; /* don't split again below */
- curwin_save = curwin; /* Save current window */
-***************
-*** 3148,3154 ****
- /* A :ta from a help file will keep the b_help flag set. For ":ptag"
- * we need to use the flag from the window where we came from. */
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview)
- keep_help_flag = curwin_save->w_buffer->b_help;
- else
- #endif
---- 3148,3154 ----
- /* A :ta from a help file will keep the b_help flag set. For ":ptag"
- * we need to use the flag from the window where we came from. */
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0)
- keep_help_flag = curwin_save->w_buffer->b_help;
- else
- #endif
-***************
-*** 3322,3328 ****
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview && curwin != curwin_save && win_valid(curwin_save))
- {
- /* Return cursor to where we were */
- validate_cursor();
---- 3322,3329 ----
- }
-
- #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
-! if (g_do_tagpreview != 0
-! && curwin != curwin_save && win_valid(curwin_save))
- {
- /* Return cursor to where we were */
- validate_cursor();
-*** ../vim-7.3.128/src/version.c 2011-02-25 15:11:17.000000000 +0100
---- src/version.c 2011-02-25 15:12:25.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 129,
- /**/
-
---
-PRINCE: He's come to rescue me, father.
-LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ...
- "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.130 b/source/ap/vim/patches/7.3.130
deleted file mode 100644
index 3f7db7653..000000000
--- a/source/ap/vim/patches/7.3.130
+++ /dev/null
@@ -1,74 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.130
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.130
-Problem: Variable misplaced in #ifdef.
-Solution: Move clipboard_event_time outside of #ifdef.
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.129/src/gui_gtk_x11.c 2010-08-15 21:57:31.000000000 +0200
---- src/gui_gtk_x11.c 2010-12-04 15:26:41.000000000 +0100
-***************
-*** 86,94 ****
-
- #ifdef HAVE_X11_SUNKEYSYM_H
- # include <X11/Sunkeysym.h>
-- static guint32 clipboard_event_time = CurrentTime;
- #endif
-
- /*
- * Easy-to-use macro for multihead support.
- */
---- 86,95 ----
-
- #ifdef HAVE_X11_SUNKEYSYM_H
- # include <X11/Sunkeysym.h>
- #endif
-
-+ static guint32 clipboard_event_time = CurrentTime;
-+
- /*
- * Easy-to-use macro for multihead support.
- */
-***************
-*** 5419,5425 ****
- }
-
- #if defined(FEAT_NETBEANS_INTG)
-! /* Process the queued netbeans messages. */
- netbeans_parse_messages();
- #endif
-
---- 5420,5426 ----
- }
-
- #if defined(FEAT_NETBEANS_INTG)
-! /* Process any queued netbeans messages. */
- netbeans_parse_messages();
- #endif
-
-*** ../vim-7.3.129/src/version.c 2011-02-25 15:13:43.000000000 +0100
---- src/version.c 2011-02-25 15:15:02.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 130,
- /**/
-
---
-A vacation is a period of travel during which you find that you
-took twice as many clothes and half as much money as you needed.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.131 b/source/ap/vim/patches/7.3.131
deleted file mode 100644
index e142059f0..000000000
--- a/source/ap/vim/patches/7.3.131
+++ /dev/null
@@ -1,47 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.131
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.131
-Problem: Including errno.h too often.
-Solution: Don't include errno.h in Unix header file.
-Files: src/os_unix.h
-
-
-*** ../vim-7.3.130/src/os_unix.h 2010-08-15 21:57:28.000000000 +0200
---- src/os_unix.h 2010-12-17 20:05:34.000000000 +0100
-***************
-*** 184,193 ****
-
- #define BASENAMELEN (MAXNAMLEN - 5)
-
-- #ifdef HAVE_ERRNO_H
-- # include <errno.h>
-- #endif
--
- #ifdef HAVE_PWD_H
- # include <pwd.h>
- #endif
---- 184,189 ----
-*** ../vim-7.3.130/src/version.c 2011-02-25 15:15:43.000000000 +0100
---- src/version.c 2011-02-25 15:16:49.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 131,
- /**/
-
---
-Overflow on /dev/null, please empty the bit bucket.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.132 b/source/ap/vim/patches/7.3.132
deleted file mode 100644
index 2f0753dff..000000000
--- a/source/ap/vim/patches/7.3.132
+++ /dev/null
@@ -1,82 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.132
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.132
-Problem: C++ style comments.
-Solution: Change to C comments.
-Files: src/if_python3.c
-
-
-*** ../vim-7.3.131/src/if_python3.c 2010-11-16 19:25:56.000000000 +0100
---- src/if_python3.c 2011-01-16 01:28:35.000000000 +0100
-***************
-*** 22,29 ****
- * Adaptations to support both python3.x and python2.x
- */
-
-! // uncomment this if used with the debug version of python
-! // #define Py_DEBUG
-
- #include "vim.h"
-
---- 22,29 ----
- * Adaptations to support both python3.x and python2.x
- */
-
-! /* uncomment this if used with the debug version of python */
-! /* #define Py_DEBUG */
-
- #include "vim.h"
-
-***************
-*** 74,80 ****
- #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
-! #if defined(DYNAMIC_PYTHON3)
-
- # ifndef WIN3264
- # include <dlfcn.h>
---- 74,80 ----
- #define PyString_Size(obj) PyUnicode_GET_SIZE(obj)
- #define PyString_FromString(repr) PyUnicode_FromString(repr)
-
-! #if defined(DYNAMIC_PYTHON3) || defined(PROTO)
-
- # ifndef WIN3264
- # include <dlfcn.h>
-*** ../vim-7.3.131/src/version.c 2011-02-25 15:17:14.000000000 +0100
---- src/version.c 2011-02-25 15:18:18.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 132,
- /**/
-
---
- ** Hello and Welcome to the Psychiatric Hotline **
-If you are obsessive-compulsive, please press 1 repeatedly.
-If you are co-dependent, please ask someone to press 2.
-If you have multiple personalities, please press 3, 4, 5 and 6.
-If you are paranoid-delusional, we know who you are and what you want
- - just stay on the line so we can trace the call.
-If you are schizophrenic, listen carefully and a little voice will
- tell you which number to press next.
-If you are manic-depressive, it doesn't matter which number you press
- - no one will answer.
-If you suffer from panic attacks, push every button you can find.
-If you are sane, please hold on - we have the rest of humanity on the
- other line and they desparately want to ask you a few questions.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.133 b/source/ap/vim/patches/7.3.133
deleted file mode 100644
index d7d995181..000000000
--- a/source/ap/vim/patches/7.3.133
+++ /dev/null
@@ -1,122 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.133
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.133
-Problem: When using encryption it's not clear what method was used.
-Solution: In the file message show "blowfish" when using blowfish.
-Files: src/fileio.c
-
-
-*** ../vim-7.3.132/src/fileio.c 2011-02-15 17:39:14.000000000 +0100
---- src/fileio.c 2011-02-25 16:30:19.000000000 +0100
-***************
-*** 250,255 ****
---- 250,256 ----
- #ifdef FEAT_CRYPT
- char_u *cryptkey = NULL;
- int did_ask_for_key = FALSE;
-+ int crypt_method_used;
- #endif
- #ifdef FEAT_PERSISTENT_UNDO
- context_sha256_T sha_ctx;
-***************
-*** 2289,2294 ****
---- 2290,2296 ----
- save_file_ff(curbuf); /* remember the current file format */
-
- #ifdef FEAT_CRYPT
-+ crypt_method_used = use_crypt_method;
- if (cryptkey != NULL)
- {
- crypt_pop_state();
-***************
-*** 2483,2489 ****
- #ifdef FEAT_CRYPT
- if (cryptkey != NULL)
- {
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
---- 2485,2494 ----
- #ifdef FEAT_CRYPT
- if (cryptkey != NULL)
- {
-! if (crypt_method_used == 1)
-! STRCAT(IObuff, _("[blowfish]"));
-! else
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
-***************
-*** 3199,3204 ****
---- 3204,3212 ----
- int write_undo_file = FALSE;
- context_sha256_T sha_ctx;
- #endif
-+ #ifdef FEAT_CRYPT
-+ int crypt_method_used;
-+ #endif
-
- if (fname == NULL || *fname == NUL) /* safety check */
- return FAIL;
-***************
-*** 4728,4733 ****
---- 4736,4742 ----
- mch_set_acl(wfname, acl);
- #endif
- #ifdef FEAT_CRYPT
-+ crypt_method_used = use_crypt_method;
- if (wb_flags & FIO_ENCRYPTED)
- crypt_pop_state();
- #endif
-***************
-*** 4882,4888 ****
- #ifdef FEAT_CRYPT
- if (wb_flags & FIO_ENCRYPTED)
- {
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
---- 4891,4900 ----
- #ifdef FEAT_CRYPT
- if (wb_flags & FIO_ENCRYPTED)
- {
-! if (crypt_method_used == 1)
-! STRCAT(IObuff, _("[blowfish]"));
-! else
-! STRCAT(IObuff, _("[crypted]"));
- c = TRUE;
- }
- #endif
-*** ../vim-7.3.132/src/version.c 2011-02-25 15:18:46.000000000 +0100
---- src/version.c 2011-02-25 16:42:58.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 133,
- /**/
-
---
- [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.134 b/source/ap/vim/patches/7.3.134
deleted file mode 100644
index cb20ce43a..000000000
--- a/source/ap/vim/patches/7.3.134
+++ /dev/null
@@ -1,51 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.134
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.134
-Problem: Drag-n-drop doesn't work in KDE Dolphin.
-Solution: Add GDK_ACTION_MOVE flag. (Florian Degner)
-Files: src/gui_gtk_x11.c
-
-
-*** ../vim-7.3.133/src/gui_gtk_x11.c 2011-02-25 15:15:43.000000000 +0100
---- src/gui_gtk_x11.c 2011-02-25 17:07:36.000000000 +0100
-***************
-*** 3094,3100 ****
- gtk_drag_dest_set(gui.drawarea,
- GTK_DEST_DEFAULT_ALL,
- targets, n_targets,
-! GDK_ACTION_COPY);
- }
-
- /*
---- 3094,3100 ----
- gtk_drag_dest_set(gui.drawarea,
- GTK_DEST_DEFAULT_ALL,
- targets, n_targets,
-! GDK_ACTION_COPY | GDK_ACTION_MOVE);
- }
-
- /*
-*** ../vim-7.3.133/src/version.c 2011-02-25 16:52:13.000000000 +0100
---- src/version.c 2011-02-25 17:08:35.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 134,
- /**/
-
---
-Proverb: A nightingale that forgets the lyrics is a hummingbird.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.135 b/source/ap/vim/patches/7.3.135
deleted file mode 100644
index ca1ebd68d..000000000
--- a/source/ap/vim/patches/7.3.135
+++ /dev/null
@@ -1,90 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.135
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.135
-Problem: When there is no previous substitute pattern, the previous search
- pattern is used. The other way around doesn't work.
-Solution: When there is no previous search pattern, use the previous
- substitute pattern if possible. (Christian Brabandt)
-Files: src/search.c
-
-
-*** ../vim-7.3.134/src/search.c 2010-09-21 16:56:29.000000000 +0200
---- src/search.c 2011-02-25 18:36:56.000000000 +0100
-***************
-*** 1161,1172 ****
- {
- if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */
- {
-! EMSG(_(e_noprevre));
-! retval = 0;
-! goto end_do_search;
- }
-- /* make search_regcomp() use spats[RE_SEARCH].pat */
-- searchstr = (char_u *)"";
- }
-
- if (pat != NULL && *pat != NUL) /* look for (new) offset */
---- 1161,1180 ----
- {
- if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */
- {
-! pat = spats[RE_SUBST].pat;
-! if (pat == NULL)
-! {
-! EMSG(_(e_noprevre));
-! retval = 0;
-! goto end_do_search;
-! }
-! searchstr = pat;
-! }
-! else
-! {
-! /* make search_regcomp() use spats[RE_SEARCH].pat */
-! searchstr = (char_u *)"";
- }
- }
-
- if (pat != NULL && *pat != NUL) /* look for (new) offset */
-***************
-*** 4527,4533 ****
- #if defined(FEAT_FIND_ID) || defined(PROTO)
- /*
- * Find identifiers or defines in included files.
-! * if p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
- */
- void
- find_pattern_in_path(ptr, dir, len, whole, skip_comments,
---- 4535,4541 ----
- #if defined(FEAT_FIND_ID) || defined(PROTO)
- /*
- * Find identifiers or defines in included files.
-! * If p_ic && (compl_cont_status & CONT_SOL) then ptr must be in lowercase.
- */
- void
- find_pattern_in_path(ptr, dir, len, whole, skip_comments,
-*** ../vim-7.3.134/src/version.c 2011-02-25 17:10:22.000000000 +0100
---- src/version.c 2011-02-25 18:35:30.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 135,
- /**/
-
---
-A real patriot is the fellow who gets a parking ticket and rejoices
-that the system 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.136 b/source/ap/vim/patches/7.3.136
deleted file mode 100644
index 87acecb63..000000000
--- a/source/ap/vim/patches/7.3.136
+++ /dev/null
@@ -1,51 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.136
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.136
-Problem: Duplicate include of assert.h.
-Solution: Remove it.
-Files: src/if_cscope.c
-
-
-*** ../vim-7.3.135/src/if_cscope.c 2010-12-30 11:41:05.000000000 +0100
---- src/if_cscope.c 2011-03-03 15:01:15.000000000 +0100
-***************
-*** 13,19 ****
-
- #if defined(FEAT_CSCOPE) || defined(PROTO)
-
-- #include <assert.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #if defined(UNIX)
---- 13,18 ----
-*** ../vim-7.3.135/src/version.c 2011-02-25 18:38:29.000000000 +0100
---- src/version.c 2011-03-03 14:59:32.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 136,
- /**/
-
---
-ARTHUR: You fight with the strength of many men, Sir knight.
- I am Arthur, King of the Britons. [pause]
- I seek the finest and the bravest knights in the land to join me
- in my Court of Camelot. [pause]
- You have proved yourself worthy; will you join me? [pause]
- You make me sad. So be it. Come, Patsy.
-BLACK KNIGHT: None shall pass.
- 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.137 b/source/ap/vim/patches/7.3.137
deleted file mode 100644
index 91f68ed35..000000000
--- a/source/ap/vim/patches/7.3.137
+++ /dev/null
@@ -1,81 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.137
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.137 (after 7.3.091)
-Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan
- Krasilnikov)
-Solution: Call update_screen() before waiting for input.
-Files: src/misc1.c, src/getchar.c
-
-
-*** ../vim-7.3.136/src/misc1.c 2011-01-22 00:11:42.000000000 +0100
---- src/misc1.c 2011-03-03 14:02:02.000000000 +0100
-***************
-*** 3115,3121 ****
---- 3115,3129 ----
- continue;
-
- if (n == KEYLEN_REMOVED) /* key code removed */
-+ {
-+ if (must_redraw)
-+ {
-+ /* Redrawing was postponed, do it now. */
-+ update_screen(0);
-+ setcursor(); /* put cursor back where it belongs */
-+ }
- continue;
-+ }
- if (n > 0) /* found a termcode: adjust length */
- len = n;
- if (len == 0) /* nothing typed yet */
-*** ../vim-7.3.136/src/getchar.c 2010-12-30 12:30:26.000000000 +0100
---- src/getchar.c 2011-03-03 14:01:26.000000000 +0100
-***************
-*** 2710,2717 ****
- * are still available. But when those available characters
- * are part of a mapping, and we are going to do a blocking
- * wait here. Need to update the screen to display the
-! * changed text so far. */
-! if ((State & INSERT) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
---- 2710,2719 ----
- * are still available. But when those available characters
- * are part of a mapping, and we are going to do a blocking
- * wait here. Need to update the screen to display the
-! * changed text so far. Also for when 'lazyredraw' is set and
-! * redrawing was postponed because there was something in the
-! * input buffer (e.g., termresponse). */
-! if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
-*** ../vim-7.3.136/src/version.c 2011-03-03 15:01:25.000000000 +0100
---- src/version.c 2011-03-03 15:02:45.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 137,
- /**/
-
---
-ARTHUR: What?
-BLACK KNIGHT: None shall pass.
-ARTHUR: I have no quarrel with you, good Sir knight, but I must cross
- this bridge.
-BLACK KNIGHT: Then you shall die.
- 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.138 b/source/ap/vim/patches/7.3.138
deleted file mode 100644
index e045e7904..000000000
--- a/source/ap/vim/patches/7.3.138
+++ /dev/null
@@ -1,69 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.138
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.138
-Problem: ":com" changes the multi-byte text of :echo. (Dimitar Dimitrov)
-Solution: Search for K_SPECIAL as a byte, not a character. (Ben Schmidt)
-Files: src/ex_docmd.c
-
-
-*** ../vim-7.3.137/src/ex_docmd.c 2011-01-17 19:50:01.000000000 +0100
---- src/ex_docmd.c 2011-03-03 15:47:00.000000000 +0100
-***************
-*** 6054,6068 ****
- end = vim_strchr(start + 1, '>');
- if (buf != NULL)
- {
-! ksp = vim_strchr(p, K_SPECIAL);
-! if (ksp != NULL && (start == NULL || ksp < start || end == NULL)
- && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
- # ifdef FEAT_GUI
- || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
- # endif
- ))
- {
-! /* K_SPECIAL han been put in the buffer as K_SPECIAL
- * KS_SPECIAL KE_FILLER, like for mappings, but
- * do_cmdline() doesn't handle that, so convert it back.
- * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
---- 6054,6070 ----
- end = vim_strchr(start + 1, '>');
- if (buf != NULL)
- {
-! for (ksp = p; *ksp != NUL && *ksp != K_SPECIAL; ++ksp)
-! ;
-! if (*ksp == K_SPECIAL
-! && (start == NULL || ksp < start || end == NULL)
- && ((ksp[1] == KS_SPECIAL && ksp[2] == KE_FILLER)
- # ifdef FEAT_GUI
- || (ksp[1] == KS_EXTRA && ksp[2] == (int)KE_CSI)
- # endif
- ))
- {
-! /* K_SPECIAL has been put in the buffer as K_SPECIAL
- * KS_SPECIAL KE_FILLER, like for mappings, but
- * do_cmdline() doesn't handle that, so convert it back.
- * Also change K_SPECIAL KS_EXTRA KE_CSI into CSI. */
-*** ../vim-7.3.137/src/version.c 2011-03-03 15:04:01.000000000 +0100
---- src/version.c 2011-03-03 15:53:41.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 138,
- /**/
-
---
- f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.139 b/source/ap/vim/patches/7.3.139
deleted file mode 100644
index 057bf655e..000000000
--- a/source/ap/vim/patches/7.3.139
+++ /dev/null
@@ -1,111 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.139
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.139 (after 7.3.137)
-Problem: When 'lazyredraw' is set ":ver" output can't be read.
-Solution: Don't redraw the screen when at a prompt or command line.
-Files: src/getchar.c, src/message.c, src/misc1.c
-
-
-*** ../vim-7.3.138/src/getchar.c 2011-03-03 15:04:01.000000000 +0100
---- src/getchar.c 2011-03-22 12:16:23.000000000 +0100
-***************
-*** 2713,2719 ****
- * changed text so far. Also for when 'lazyredraw' is set and
- * redrawing was postponed because there was something in the
- * input buffer (e.g., termresponse). */
-! if (((State & INSERT) || p_lz) && advance && must_redraw != 0)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
---- 2713,2720 ----
- * changed text so far. Also for when 'lazyredraw' is set and
- * redrawing was postponed because there was something in the
- * input buffer (e.g., termresponse). */
-! if (((State & INSERT) != 0 || p_lz) && (State & CMDLINE) == 0
-! && advance && must_redraw != 0 && !need_wait_return)
- {
- update_screen(0);
- setcursor(); /* put cursor back where it belongs */
-*** ../vim-7.3.138/src/message.c 2011-02-01 17:12:20.000000000 +0100
---- src/message.c 2011-03-22 13:06:24.000000000 +0100
-***************
-*** 879,894 ****
- if (msg_silent != 0)
- return;
-
-! /*
-! * With the global command (and some others) we only need one return at the
-! * end. Adjust cmdline_row to avoid the next message overwriting the last one.
-! * When inside vgetc(), we can't wait for a typed character at all.
-! */
- if (vgetc_busy > 0)
- return;
- if (no_wait_return)
- {
-- need_wait_return = TRUE;
- if (!exmode_active)
- cmdline_row = msg_row;
- return;
---- 879,895 ----
- if (msg_silent != 0)
- return;
-
-! /*
-! * When inside vgetc(), we can't wait for a typed character at all.
-! * With the global command (and some others) we only need one return at
-! * the end. Adjust cmdline_row to avoid the next message overwriting the
-! * last one.
-! */
- if (vgetc_busy > 0)
- return;
-+ need_wait_return = TRUE;
- if (no_wait_return)
- {
- if (!exmode_active)
- cmdline_row = msg_row;
- return;
-*** ../vim-7.3.138/src/misc1.c 2011-03-03 15:04:01.000000000 +0100
---- src/misc1.c 2011-03-22 12:15:26.000000000 +0100
-***************
-*** 3116,3122 ****
-
- if (n == KEYLEN_REMOVED) /* key code removed */
- {
-! if (must_redraw)
- {
- /* Redrawing was postponed, do it now. */
- update_screen(0);
---- 3116,3122 ----
-
- if (n == KEYLEN_REMOVED) /* key code removed */
- {
-! if (must_redraw != 0 && !need_wait_return && (State & CMDLINE) == 0)
- {
- /* Redrawing was postponed, do it now. */
- update_screen(0);
-*** ../vim-7.3.138/src/version.c 2011-03-03 15:54:45.000000000 +0100
---- src/version.c 2011-03-22 13:06:33.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 139,
- /**/
-
---
-"Software is like sex... it's better when it's free."
- -- Linus Torvalds, initiator of the free Linux OS
-Makes me wonder what FSF stands for...?
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.140 b/source/ap/vim/patches/7.3.140
deleted file mode 100644
index 53c3aafb0..000000000
--- a/source/ap/vim/patches/7.3.140
+++ /dev/null
@@ -1,58 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.140
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.140
-Problem: Crash when drawing the "$" at end-of-line for list mode just after
- the window border and 'cursorline' is set.
-Solution: Don't check for 'cursorline'. (Quentin Carbonneaux)
-Files: src/screen.c
-
-
-*** ../vim-7.3.139/src/screen.c 2011-02-09 17:09:26.000000000 +0100
---- src/screen.c 2011-03-22 13:29:04.000000000 +0100
-***************
-*** 5099,5109 ****
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str
-! #ifdef FEAT_SYN_HL
-! && !wp->w_p_cul
-! #endif
-! )
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
---- 5099,5105 ----
- #ifdef FEAT_DIFF
- || filler_todo > 0
- #endif
-! || (wp->w_p_list && lcs_eol != NUL && p_extra != at_end_str)
- || (n_extra != 0 && (c_extra != NUL || *p_extra != NUL)))
- )
- {
-*** ../vim-7.3.139/src/version.c 2011-03-22 13:07:19.000000000 +0100
---- src/version.c 2011-03-22 13:27:26.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 140,
- /**/
-
---
-Lawmakers made it obligatory for everybody to take at least one bath
-each week -- on Saturday night.
- [real standing law in Vermont, 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.141 b/source/ap/vim/patches/7.3.141
deleted file mode 100644
index deb001b70..000000000
--- a/source/ap/vim/patches/7.3.141
+++ /dev/null
@@ -1,94 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.141
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.141
-Problem: When a key code is not set get a confusing error message.
-Solution: Change the error message to say the key code is not set.
-Files: src/option.c, runtime/doc/options.txt
-
-
-*** ../vim-7.3.140/src/option.c 2011-01-22 00:11:42.000000000 +0100
---- src/option.c 2011-03-22 14:25:52.000000000 +0100
-***************
-*** 4352,4358 ****
- p = find_termcode(key_name);
- if (p == NULL)
- {
-! errmsg = (char_u *)N_("E518: Unknown option");
- goto skip;
- }
- else
---- 4352,4358 ----
- p = find_termcode(key_name);
- if (p == NULL)
- {
-! errmsg = (char_u *)N_("E846: Key code not set");
- goto skip;
- }
- else
-***************
-*** 4700,4707 ****
- || s[i] == ','
- || s[i] == NUL))
- break;
-! /* Count backspaces. Only a comma with an
-! * even number of backspaces before it is
- * recognized as a separator */
- if (s > origval && s[-1] == '\\')
- ++bs;
---- 4700,4707 ----
- || s[i] == ','
- || s[i] == NUL))
- break;
-! /* Count backslashes. Only a comma with an
-! * even number of backslashes before it is
- * recognized as a separator */
- if (s > origval && s[-1] == '\\')
- ++bs;
-*** ../vim-7.3.140/runtime/doc/options.txt 2010-12-02 21:43:10.000000000 +0100
---- runtime/doc/options.txt 2011-03-22 14:32:14.000000000 +0100
-***************
-*** 150,155 ****
---- 150,167 ----
- (the ^[ is a real <Esc> here, use CTRL-V <Esc> to enter it)
- The advantage over a mapping is that it works in all situations.
-
-+ You can define any key codes, e.g.: >
-+ :set t_xy=^[foo;
-+ There is no warning for using a name that isn't recognized. You can map these
-+ codes as you like: >
-+ :map <t_xy> something
-+ < *E846*
-+ When a key code is not set, it's like it does not exist. Trying to get its
-+ value will result in an error: >
-+ :set t_kb=
-+ :set t_kb
-+ E846: Key code not set: t_kb
-+
- The t_xx options cannot be set from a |modeline| or in the |sandbox|, for
- security reasons.
-
-*** ../vim-7.3.140/src/version.c 2011-03-22 13:29:20.000000000 +0100
---- src/version.c 2011-03-22 14:32:59.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 141,
- /**/
-
---
-"I know that there are people who don't love their fellow man,
-and I hate those people!" - Tom Lehrer
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.142 b/source/ap/vim/patches/7.3.142
deleted file mode 100644
index 6574f71f1..000000000
--- a/source/ap/vim/patches/7.3.142
+++ /dev/null
@@ -1,85 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.142
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.142
-Problem: Python stdout doesn't have a flush() method, causing an import to
- fail.
-Solution: Add a dummy flush() method. (Tobias Columbus)
-Files: src/if_py_both.h
-
-
-*** ../vim-7.3.141/src/if_py_both.h 2010-10-27 12:17:54.000000000 +0200
---- src/if_py_both.h 2011-03-22 15:37:43.000000000 +0100
-***************
-*** 33,38 ****
---- 33,39 ----
-
- static PyObject *OutputWrite(PyObject *, PyObject *);
- static PyObject *OutputWritelines(PyObject *, PyObject *);
-+ static PyObject *OutputFlush(PyObject *, PyObject *);
-
- /* Function to write a line, points to either msg() or emsg(). */
- typedef void (*writefn)(char_u *);
-***************
-*** 47,55 ****
-
- static struct PyMethodDef OutputMethods[] = {
- /* name, function, calling, documentation */
-! {"write", OutputWrite, 1, "" },
-! {"writelines", OutputWritelines, 1, "" },
-! { NULL, NULL, 0, NULL }
- };
-
- #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
---- 48,57 ----
-
- static struct PyMethodDef OutputMethods[] = {
- /* name, function, calling, documentation */
-! {"write", OutputWrite, 1, ""},
-! {"writelines", OutputWritelines, 1, ""},
-! {"flush", OutputFlush, 1, ""},
-! { NULL, NULL, 0, NULL}
- };
-
- #define PyErr_SetVim(str) PyErr_SetString(VimError, str)
-***************
-*** 123,128 ****
---- 125,139 ----
- return Py_None;
- }
-
-+ static PyObject *
-+ OutputFlush(PyObject *self UNUSED, PyObject *args UNUSED)
-+ {
-+ /* do nothing */
-+ Py_INCREF(Py_None);
-+ return Py_None;
-+ }
-+
-+
- /* Buffer IO, we write one whole line at a time. */
- static garray_T io_ga = {0, 0, 1, 80, NULL};
- static writefn old_fn = NULL;
-*** ../vim-7.3.141/src/version.c 2011-03-22 14:35:01.000000000 +0100
---- src/version.c 2011-03-22 15:45:38.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 142,
- /**/
-
---
-Living on Earth includes an annual free trip around the Sun.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.143 b/source/ap/vim/patches/7.3.143
deleted file mode 100644
index 82585b0ee..000000000
--- a/source/ap/vim/patches/7.3.143
+++ /dev/null
@@ -1,1520 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.143
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.143
-Problem: Memfile is not tested sufficiently. Looking up blocks in a
- memfile is slow when there are many blocks.
-Solution: Add high level test and unittest. Adjust the number of hash
- buckets to the number of blocks. (Ivan Krasilnikov)
-Files: Filelist, src/Makefile, src/main.c, src/memfile.c,
- src/memfile_test.c src/structs.h src/testdir/Make_amiga.mak,
- src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
- src/testdir/Make_os2.mak, src/testdir/Make_vms.mak,
- src/testdir/Makefile, src/testdir/test77.in, src/testdir/test77.ok
-
-
-*** ../vim-7.3.142/Filelist 2010-08-15 21:57:20.000000000 +0200
---- Filelist 2011-03-22 17:39:22.000000000 +0100
-***************
-*** 39,44 ****
---- 39,45 ----
- src/mark.c \
- src/mbyte.c \
- src/memfile.c \
-+ src/memfile_test.c \
- src/memline.c \
- src/menu.c \
- src/message.c \
-***************
-*** 686,691 ****
---- 687,694 ----
- runtime/tutor/tutor.utf-8 \
- runtime/tutor/tutor.?? \
- runtime/tutor/tutor.??.* \
-+ runtime/tutor/tutor.bar \
-+ runtime/tutor/tutor.bar.* \
- runtime/spell/README.txt \
- runtime/spell/??/*.diff \
- runtime/spell/??/main.aap \
-*** ../vim-7.3.142/src/Makefile 2011-02-15 15:27:00.000000000 +0100
---- src/Makefile 2011-03-22 18:07:25.000000000 +0100
-***************
-*** 561,567 ****
- #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 -DU_DEBUG
- #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,567 ----
- #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
-***************
-*** 594,601 ****
-
- # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
- # Might not work with GUI or Perl.
-! # For unknown reasons adding "-lc" fixes a linking problem with GCC. That's
-! # probably a bug in the "-pg" implementation.
- # Need to recompile everything after changing this: "make clean" "make".
- #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
- #PROFILE_LIBS = -pg
---- 594,602 ----
-
- # PROFILING - Uncomment the next two lines to do profiling with gcc and gprof.
- # Might not work with GUI or Perl.
-! # For unknown reasons adding "-lc" fixes a linking problem with some versions
-! # of GCC. That's probably a bug in the "-pg" implementation.
-! # After running Vim see the profile result with: gmon vim gmon.out | vim -
- # Need to recompile everything after changing this: "make clean" "make".
- #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
- #PROFILE_LIBS = -pg
-***************
-*** 606,613 ****
- # Configuration is in the .ccmalloc or ~/.ccmalloc file.
- # Doesn't work very well, since memory linked to from global variables
- # (in libraries) is also marked as leaked memory.
-! #PROFILE_CFLAGS = -DEXITFREE
-! #PROFILE_LIBS = -lccmalloc
-
- #####################################################
- ### Specific systems, check if yours is listed! ### {{{
---- 607,614 ----
- # Configuration is in the .ccmalloc or ~/.ccmalloc file.
- # Doesn't work very well, since memory linked to from global variables
- # (in libraries) is also marked as leaked memory.
-! #LEAK_CFLAGS = -DEXITFREE
-! #LEAK_LIBS = -lccmalloc
-
- #####################################################
- ### Specific systems, check if yours is listed! ### {{{
-***************
-*** 1329,1335 ****
- PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
- POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
-
-! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(POST_DEFS)
-
- # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
- # with "-E".
---- 1330,1336 ----
- PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS)
- POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS)
-
-! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS)
-
- # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together
- # with "-E".
-***************
-*** 1358,1364 ****
- $(PYTHON3_LIBS) \
- $(TCL_LIBS) \
- $(RUBY_LIBS) \
-! $(PROFILE_LIBS)
-
- # abbreviations
- DEST_BIN = $(DESTDIR)$(BINDIR)
---- 1359,1366 ----
- $(PYTHON3_LIBS) \
- $(TCL_LIBS) \
- $(RUBY_LIBS) \
-! $(PROFILE_LIBS) \
-! $(LEAK_LIBS)
-
- # abbreviations
- DEST_BIN = $(DESTDIR)$(BINDIR)
-***************
-*** 1480,1487 ****
- if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
- gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
-
- # All sources, also the ones that are not configured
-! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(EXTRA_SRC)
-
- # Which files to check with lint. Select one of these three lines. ALL_SRC
- # checks more, but may not work well for checking a GUI that wasn't configured.
---- 1482,1496 ----
- if_python.c if_python3.c if_tcl.c if_ruby.c if_sniff.c \
- gui_beval.c workshop.c wsdebug.c integration.c netbeans.c
-
-+ # Unittest files
-+ MEMFILE_TEST_SRC = memfile_test.c
-+ MEMFILE_TEST_TARGET = memfile_test$(EXEEXT)
-+
-+ UNITTEST_SRC = $(MEMFILE_TEST_SRC)
-+ UNITTEST_TARGETS = $(MEMFILE_TEST_TARGET)
-+
- # All sources, also the ones that are not configured
-! ALL_SRC = $(BASIC_SRC) $(ALL_GUI_SRC) $(UNITTEST_SRC) $(EXTRA_SRC)
-
- # Which files to check with lint. Select one of these three lines. ALL_SRC
- # checks more, but may not work well for checking a GUI that wasn't configured.
-***************
-*** 1492,1498 ****
- #LINT_SRC = $(ALL_SRC)
- #LINT_SRC = $(BASIC_SRC)
-
-! OBJ = \
- objects/buffer.o \
- objects/blowfish.o \
- objects/charset.o \
---- 1501,1507 ----
- #LINT_SRC = $(ALL_SRC)
- #LINT_SRC = $(BASIC_SRC)
-
-! OBJ_COMMON = \
- objects/buffer.o \
- objects/blowfish.o \
- objects/charset.o \
-***************
-*** 1513,1522 ****
- $(HANGULIN_OBJ) \
- objects/if_cscope.o \
- objects/if_xcmdsrv.o \
-- objects/main.o \
- objects/mark.o \
-! objects/memfile.o \
-! objects/memline.o \
- objects/menu.o \
- objects/message.o \
- objects/misc1.o \
---- 1522,1529 ----
- $(HANGULIN_OBJ) \
- objects/if_cscope.o \
- objects/if_xcmdsrv.o \
- objects/mark.o \
-! objects/memline.o \
- objects/menu.o \
- objects/message.o \
- objects/misc1.o \
-***************
-*** 1541,1546 ****
---- 1548,1554 ----
- objects/term.o \
- objects/ui.o \
- objects/undo.o \
-+ objects/version.o \
- objects/window.o \
- $(GUI_OBJ) \
- $(LUA_OBJ) \
-***************
-*** 1555,1560 ****
---- 1563,1575 ----
- $(NETBEANS_OBJ) \
- $(WSDEBUG_OBJ)
-
-+ OBJ = $(OBJ_COMMON) \
-+ objects/main.o \
-+ objects/memfile.o \
-+
-+ MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
-+ objects/memfile_test.o
-+
- PRO_AUTO = \
- blowfish.pro \
- buffer.pro \
-***************
-*** 1700,1706 ****
- $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-! -o $(VIMTARGET) $(OBJ) objects/version.o $(ALL_LIBS)" \
- MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
- sh $(srcdir)/link.sh
-
---- 1715,1721 ----
- $(VIMTARGET): auto/config.mk objects $(OBJ) version.c version.h
- $(CCC) version.c -o objects/version.o
- @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-! -o $(VIMTARGET) $(OBJ) $(ALL_LIBS)" \
- MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
- sh $(srcdir)/link.sh
-
-***************
-*** 1825,1830 ****
---- 1840,1854 ----
- ln -s $(VIMTARGET) vim; \
- fi
- cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG)
-+ $(MAKE) -f Makefile unittest
-+
-+ unittesttargets:
-+ $(MAKE) -f Makefile $(UNITTEST_TARGETS)
-+
-+ unittest unittests: $(UNITTEST_TARGETS)
-+ @for t in $(UNITTEST_TARGETS); do \
-+ ./$$t || exit 1; echo $$t passed; \
-+ done
-
- testclean:
- cd testdir; $(MAKE) -f Makefile clean
-***************
-*** 1832,1837 ****
---- 1856,1872 ----
- cd $(PODIR); $(MAKE) checkclean; \
- fi
-
-+ # Unittests
-+ # It's build just like Vim to satisfy all dependencies.
-+ $(MEMFILE_TEST_TARGET): auto/config.mk objects $(MEMFILE_TEST_OBJ)
-+ $(CCC) version.c -o objects/version.o
-+ @LINK="$(PURIFY) $(SHRPENV) $(CClink) $(ALL_LIB_DIRS) $(LDFLAGS) \
-+ -o $(MEMFILE_TEST_TARGET) $(MEMFILE_TEST_OBJ) $(ALL_LIBS)" \
-+ MAKE="$(MAKE)" LINK_AS_NEEDED=$(LINK_AS_NEEDED) \
-+ sh $(srcdir)/link.sh
-+
-+ # install targets
-+
- install: $(GUI_INSTALL)
-
- install_normal: installvim installtools $(INSTALL_LANGS) install-icons
-***************
-*** 2265,2270 ****
---- 2300,2306 ----
- -rm -f *.o objects/* core $(VIMTARGET).core $(VIMTARGET) vim xxd/*.o
- -rm -f $(TOOLS) auto/osdef.h auto/pathdef.c auto/if_perl.c
- -rm -f conftest* *~ auto/link.sed
-+ -rm -f $(UNITTEST_TARGETS)
- -rm -f runtime pixmaps
- -rm -rf $(APPDIR)
- -rm -rf mzscheme_base.c
-***************
-*** 2559,2564 ****
---- 2595,2603 ----
- objects/memfile.o: memfile.c
- $(CCC) -o $@ memfile.c
-
-+ objects/memfile_test.o: memfile_test.c
-+ $(CCC) -o $@ memfile_test.c
-+
- objects/memline.o: memline.c
- $(CCC) -o $@ memline.c
-
-***************
-*** 2877,2883 ****
- objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
-! arabic.h if_mzsch.h os_unixx.h
- objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
---- 2916,2922 ----
- objects/os_unix.o: os_unix.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
-! arabic.h os_unixx.h
- objects/pathdef.o: auto/pathdef.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3016,3021 ****
---- 3055,3064 ----
- objects/pty.o: pty.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h ascii.h \
- keymap.h term.h macros.h option.h structs.h regexp.h gui.h gui_beval.h \
- proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h arabic.h
-+ objects/memfile_test.o: memfile_test.c main.c vim.h auto/config.h feature.h \
-+ os_unix.h auto/osdef.h ascii.h keymap.h term.h macros.h option.h \
-+ structs.h regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h \
-+ proto.h globals.h farsi.h arabic.h farsi.c arabic.c memfile.c
- objects/hangulin.o: hangulin.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3027,3033 ****
- objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-! globals.h farsi.h arabic.h if_mzsch.h mzscheme_base.c
- objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
---- 3070,3076 ----
- objects/if_mzsch.o: if_mzsch.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-! globals.h farsi.h arabic.h if_mzsch.h
- objects/if_perl.o: auto/if_perl.c vim.h auto/config.h feature.h os_unix.h \
- auto/osdef.h ascii.h keymap.h term.h macros.h option.h structs.h \
- regexp.h gui.h gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h \
-***************
-*** 3048,3054 ****
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h
-! objects/if_ruby.o: if_ruby.c vim.h auto/config.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h version.h
---- 3091,3097 ----
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h
-! objects/if_ruby.o: if_ruby.c auto/config.h vim.h feature.h os_unix.h auto/osdef.h \
- ascii.h keymap.h term.h macros.h option.h structs.h regexp.h gui.h \
- gui_beval.h proto/gui_beval.pro ex_cmds.h proto.h globals.h farsi.h \
- arabic.h version.h
-*** ../vim-7.3.142/src/main.c 2011-02-15 16:29:54.000000000 +0100
---- src/main.c 2011-03-18 13:19:48.000000000 +0100
-***************
-*** 92,128 ****
- #define EDIT_TAG 3 /* tag name argument given, use tagname */
- #define EDIT_QF 4 /* start in quickfix mode */
-
-! #if defined(UNIX) || defined(VMS)
- static int file_owned __ARGS((char *fname));
- #endif
- static void mainerr __ARGS((int, char_u *));
- static void main_msg __ARGS((char *s));
- static void usage __ARGS((void));
- static int get_number_arg __ARGS((char_u *p, int *idx, int def));
-! #if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
- static void init_locale __ARGS((void));
-! #endif
- static void parse_command_name __ARGS((mparm_T *parmp));
- static void early_arg_scan __ARGS((mparm_T *parmp));
- static void command_line_scan __ARGS((mparm_T *parmp));
- static void check_tty __ARGS((mparm_T *parmp));
- static void read_stdin __ARGS((void));
- static void create_windows __ARGS((mparm_T *parmp));
-! #ifdef FEAT_WINDOWS
- static void edit_buffers __ARGS((mparm_T *parmp));
-! #endif
- static void exe_pre_commands __ARGS((mparm_T *parmp));
- static void exe_commands __ARGS((mparm_T *parmp));
- static void source_startup_scripts __ARGS((mparm_T *parmp));
- static void main_start_gui __ARGS((void));
-! #if defined(HAS_SWAP_EXISTS_ACTION)
- static void check_swap_exists_action __ARGS((void));
-! #endif
-! #ifdef FEAT_CLIENTSERVER
- static void exec_on_server __ARGS((mparm_T *parmp));
- static void prepare_server __ARGS((mparm_T *parmp));
- static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
- static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
- #endif
-
-
---- 92,130 ----
- #define EDIT_TAG 3 /* tag name argument given, use tagname */
- #define EDIT_QF 4 /* start in quickfix mode */
-
-! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
- static int file_owned __ARGS((char *fname));
- #endif
- static void mainerr __ARGS((int, char_u *));
-+ #ifndef NO_VIM_MAIN
- static void main_msg __ARGS((char *s));
- static void usage __ARGS((void));
- static int get_number_arg __ARGS((char_u *p, int *idx, int def));
-! # if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
- static void init_locale __ARGS((void));
-! # endif
- static void parse_command_name __ARGS((mparm_T *parmp));
- static void early_arg_scan __ARGS((mparm_T *parmp));
- static void command_line_scan __ARGS((mparm_T *parmp));
- static void check_tty __ARGS((mparm_T *parmp));
- static void read_stdin __ARGS((void));
- static void create_windows __ARGS((mparm_T *parmp));
-! # ifdef FEAT_WINDOWS
- static void edit_buffers __ARGS((mparm_T *parmp));
-! # endif
- static void exe_pre_commands __ARGS((mparm_T *parmp));
- static void exe_commands __ARGS((mparm_T *parmp));
- static void source_startup_scripts __ARGS((mparm_T *parmp));
- static void main_start_gui __ARGS((void));
-! # if defined(HAS_SWAP_EXISTS_ACTION)
- static void check_swap_exists_action __ARGS((void));
-! # endif
-! # if defined(FEAT_CLIENTSERVER) || defined(PROTO)
- static void exec_on_server __ARGS((mparm_T *parmp));
- static void prepare_server __ARGS((mparm_T *parmp));
- static void cmdsrv_main __ARGS((int *argc, char **argv, char_u *serverName_arg, char_u **serverStr));
- static char_u *serverMakeName __ARGS((char_u *arg, char *cmd));
-+ # endif
- #endif
-
-
-***************
-*** 145,151 ****
- #define ME_INVALID_ARG 5
- };
-
-! #ifndef PROTO /* don't want a prototype for main() */
- int
- # ifdef VIMDLL
- _export
---- 147,154 ----
- #define ME_INVALID_ARG 5
- };
-
-! #ifndef NO_VIM_MAIN /* skip this for unittests */
-! #ifndef PROTO /* don't want a prototype for main() */
- int
- # ifdef VIMDLL
- _export
-***************
-*** 966,971 ****
---- 969,975 ----
- return 0;
- }
- #endif /* PROTO */
-+ #endif /* NO_VIM_MAIN */
-
- /*
- * Main loop: Execute Normal mode commands until exiting Vim.
-***************
-*** 1430,1435 ****
---- 1434,1440 ----
- mch_exit(exitval);
- }
-
-+ #ifndef NO_VIM_MAIN
- /*
- * Get a (optional) count for a Vim argument.
- */
-***************
-*** 2994,2999 ****
---- 2999,3006 ----
- #endif
- }
-
-+ #endif /* NO_VIM_MAIN */
-+
- /*
- * Get an environment variable, and execute it as Ex commands.
- * Returns FAIL if the environment variable was not executed, OK otherwise.
-***************
-*** 3033,3039 ****
- return FAIL;
- }
-
-! #if defined(UNIX) || defined(VMS)
- /*
- * Return TRUE if we are certain the user owns the file "fname".
- * Used for ".vimrc" and ".exrc".
---- 3040,3046 ----
- return FAIL;
- }
-
-! #if (defined(UNIX) || defined(VMS)) && !defined(NO_VIM_MAIN)
- /*
- * Return TRUE if we are certain the user owns the file "fname".
- * Used for ".vimrc" and ".exrc".
-***************
-*** 3091,3096 ****
---- 3098,3104 ----
- mainerr(ME_ARG_MISSING, str);
- }
-
-+ #ifndef NO_VIM_MAIN
- /*
- * print a message with three spaces prepended and '\n' appended.
- */
-***************
-*** 3311,3316 ****
---- 3319,3326 ----
- }
- #endif
-
-+ #endif
-+
- #if defined(STARTUPTIME) || defined(PROTO)
- static void time_diff __ARGS((struct timeval *then, struct timeval *now));
-
-***************
-*** 3420,3426 ****
-
- #endif
-
-! #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
-
- /*
- * Common code for the X command server and the Win32 command server.
---- 3430,3436 ----
-
- #endif
-
-! #if (defined(FEAT_CLIENTSERVER) && !defined(NO_VIM_MAIN)) || defined(PROTO)
-
- /*
- * Common code for the X command server and the Win32 command server.
-***************
-*** 3888,3893 ****
---- 3898,3929 ----
- }
-
- /*
-+ * Make our basic server name: use the specified "arg" if given, otherwise use
-+ * the tail of the command "cmd" we were started with.
-+ * Return the name in allocated memory. This doesn't include a serial number.
-+ */
-+ static char_u *
-+ serverMakeName(arg, cmd)
-+ char_u *arg;
-+ char *cmd;
-+ {
-+ char_u *p;
-+
-+ if (arg != NULL && *arg != NUL)
-+ p = vim_strsave_up(arg);
-+ else
-+ {
-+ p = vim_strsave_up(gettail((char_u *)cmd));
-+ /* Remove .exe or .bat from the name. */
-+ if (p != NULL && vim_strchr(p, '.') != NULL)
-+ *vim_strchr(p, '.') = NUL;
-+ }
-+ return p;
-+ }
-+ #endif /* FEAT_CLIENTSERVER */
-+
-+ #if defined(FEAT_CLIENTSERVER) || defined(PROTO)
-+ /*
- * Replace termcodes such as <CR> and insert as key presses if there is room.
- */
- void
-***************
-*** 3998,4029 ****
- # endif
- return res;
- }
-!
-!
-! /*
-! * Make our basic server name: use the specified "arg" if given, otherwise use
-! * the tail of the command "cmd" we were started with.
-! * Return the name in allocated memory. This doesn't include a serial number.
-! */
-! static char_u *
-! serverMakeName(arg, cmd)
-! char_u *arg;
-! char *cmd;
-! {
-! char_u *p;
-!
-! if (arg != NULL && *arg != NUL)
-! p = vim_strsave_up(arg);
-! else
-! {
-! p = vim_strsave_up(gettail((char_u *)cmd));
-! /* Remove .exe or .bat from the name. */
-! if (p != NULL && vim_strchr(p, '.') != NULL)
-! *vim_strchr(p, '.') = NUL;
-! }
-! return p;
-! }
-! #endif /* FEAT_CLIENTSERVER */
-
- /*
- * When FEAT_FKMAP is defined, also compile the Farsi source code.
---- 4034,4040 ----
- # endif
- return res;
- }
-! #endif
-
- /*
- * When FEAT_FKMAP is defined, also compile the Farsi source code.
-*** ../vim-7.3.142/src/memfile.c 2010-12-17 18:06:00.000000000 +0100
---- src/memfile.c 2011-03-03 18:47:39.000000000 +0100
-***************
-*** 84,89 ****
---- 84,96 ----
- static int mf_write_block __ARGS((memfile_T *mfp, bhdr_T *hp, off_t offset, unsigned size));
- static int mf_trans_add __ARGS((memfile_T *, bhdr_T *));
- static void mf_do_open __ARGS((memfile_T *, char_u *, int));
-+ static void mf_hash_init __ARGS((mf_hashtab_T *));
-+ static void mf_hash_free __ARGS((mf_hashtab_T *));
-+ static void mf_hash_free_all __ARGS((mf_hashtab_T *));
-+ static mf_hashitem_T *mf_hash_find __ARGS((mf_hashtab_T *, blocknr_T));
-+ static void mf_hash_add_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
-+ static void mf_hash_rem_item __ARGS((mf_hashtab_T *, mf_hashitem_T *));
-+ static int mf_hash_grow __ARGS((mf_hashtab_T *));
-
- /*
- * The functions for using a memfile:
-***************
-*** 119,125 ****
- int flags;
- {
- memfile_T *mfp;
-- int i;
- off_t size;
- #if defined(STATFS) && defined(UNIX) && !defined(__QNX__)
- # define USE_FSTATFS
---- 126,131 ----
-***************
-*** 152,162 ****
- mfp->mf_used_last = NULL;
- mfp->mf_dirty = FALSE;
- mfp->mf_used_count = 0;
-! for (i = 0; i < MEMHASHSIZE; ++i)
-! {
-! mfp->mf_hash[i] = NULL; /* hash lists are empty */
-! mfp->mf_trans[i] = NULL; /* trans lists are empty */
-! }
- mfp->mf_page_size = MEMFILE_PAGE_SIZE;
- #ifdef FEAT_CRYPT
- mfp->mf_old_key = NULL;
---- 158,165 ----
- mfp->mf_used_last = NULL;
- mfp->mf_dirty = FALSE;
- mfp->mf_used_count = 0;
-! mf_hash_init(&mfp->mf_hash);
-! mf_hash_init(&mfp->mf_trans);
- mfp->mf_page_size = MEMFILE_PAGE_SIZE;
- #ifdef FEAT_CRYPT
- mfp->mf_old_key = NULL;
-***************
-*** 242,249 ****
- int del_file;
- {
- bhdr_T *hp, *nextp;
-- NR_TRANS *tp, *tpnext;
-- int i;
-
- if (mfp == NULL) /* safety check */
- return;
---- 245,250 ----
-***************
-*** 263,274 ****
- }
- while (mfp->mf_free_first != NULL) /* free entries in free list */
- vim_free(mf_rem_free(mfp));
-! for (i = 0; i < MEMHASHSIZE; ++i) /* free entries in trans lists */
-! for (tp = mfp->mf_trans[i]; tp != NULL; tp = tpnext)
-! {
-! tpnext = tp->nt_next;
-! vim_free(tp);
-! }
- vim_free(mfp->mf_fname);
- vim_free(mfp->mf_ffname);
- vim_free(mfp);
---- 264,271 ----
- }
- while (mfp->mf_free_first != NULL) /* free entries in free list */
- vim_free(mf_rem_free(mfp));
-! mf_hash_free(&mfp->mf_hash);
-! mf_hash_free_all(&mfp->mf_trans); /* free hashtable and its items */
- vim_free(mfp->mf_fname);
- vim_free(mfp->mf_ffname);
- vim_free(mfp);
-***************
-*** 743,758 ****
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! bhdr_T *hhp;
-! int hash;
-!
-! hash = MEMHASH(hp->bh_bnum);
-! hhp = mfp->mf_hash[hash];
-! hp->bh_hash_next = hhp;
-! hp->bh_hash_prev = NULL;
-! if (hhp != NULL)
-! hhp->bh_hash_prev = hp;
-! mfp->mf_hash[hash] = hp;
- }
-
- /*
---- 740,746 ----
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! mf_hash_add_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
- }
-
- /*
-***************
-*** 763,775 ****
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! if (hp->bh_hash_prev == NULL)
-! mfp->mf_hash[MEMHASH(hp->bh_bnum)] = hp->bh_hash_next;
-! else
-! hp->bh_hash_prev->bh_hash_next = hp->bh_hash_next;
-!
-! if (hp->bh_hash_next)
-! hp->bh_hash_next->bh_hash_prev = hp->bh_hash_prev;
- }
-
- /*
---- 751,757 ----
- memfile_T *mfp;
- bhdr_T *hp;
- {
-! mf_hash_rem_item(&mfp->mf_hash, (mf_hashitem_T *)hp);
- }
-
- /*
-***************
-*** 780,791 ****
- memfile_T *mfp;
- blocknr_T nr;
- {
-! bhdr_T *hp;
-!
-! for (hp = mfp->mf_hash[MEMHASH(nr)]; hp != NULL; hp = hp->bh_hash_next)
-! if (hp->bh_bnum == nr)
-! break;
-! return hp;
- }
-
- /*
---- 762,768 ----
- memfile_T *mfp;
- blocknr_T nr;
- {
-! return (bhdr_T *)mf_hash_find(&mfp->mf_hash, nr);
- }
-
- /*
-***************
-*** 1187,1193 ****
- {
- bhdr_T *freep;
- blocknr_T new_bnum;
-- int hash;
- NR_TRANS *np;
- int page_count;
-
---- 1164,1169 ----
-***************
-*** 1235,1246 ****
- hp->bh_bnum = new_bnum;
- mf_ins_hash(mfp, hp); /* insert in new hash list */
-
-! hash = MEMHASH(np->nt_old_bnum); /* insert in trans list */
-! np->nt_next = mfp->mf_trans[hash];
-! mfp->mf_trans[hash] = np;
-! if (np->nt_next != NULL)
-! np->nt_next->nt_prev = np;
-! np->nt_prev = NULL;
-
- return OK;
- }
---- 1211,1218 ----
- hp->bh_bnum = new_bnum;
- mf_ins_hash(mfp, hp); /* insert in new hash list */
-
-! /* Insert "np" into "mf_trans" hashtable with key "np->nt_old_bnum" */
-! mf_hash_add_item(&mfp->mf_trans, (mf_hashitem_T *)np);
-
- return OK;
- }
-***************
-*** 1255,1279 ****
- memfile_T *mfp;
- blocknr_T old_nr;
- {
-- int hash;
- NR_TRANS *np;
- blocknr_T new_bnum;
-
-! hash = MEMHASH(old_nr);
-! for (np = mfp->mf_trans[hash]; np != NULL; np = np->nt_next)
-! if (np->nt_old_bnum == old_nr)
-! break;
- if (np == NULL) /* not found */
- return old_nr;
-
- mfp->mf_neg_count--;
- new_bnum = np->nt_new_bnum;
-! if (np->nt_prev != NULL) /* remove entry from the trans list */
-! np->nt_prev->nt_next = np->nt_next;
-! else
-! mfp->mf_trans[hash] = np->nt_next;
-! if (np->nt_next != NULL)
-! np->nt_next->nt_prev = np->nt_prev;
- vim_free(np);
-
- return new_bnum;
---- 1227,1246 ----
- memfile_T *mfp;
- blocknr_T old_nr;
- {
- NR_TRANS *np;
- blocknr_T new_bnum;
-
-! np = (NR_TRANS *)mf_hash_find(&mfp->mf_trans, old_nr);
-!
- if (np == NULL) /* not found */
- return old_nr;
-
- mfp->mf_neg_count--;
- new_bnum = np->nt_new_bnum;
-!
-! /* remove entry from the trans list */
-! mf_hash_rem_item(&mfp->mf_trans, (mf_hashitem_T *)np);
-!
- vim_free(np);
-
- return new_bnum;
-***************
-*** 1397,1399 ****
---- 1364,1570 ----
- mch_hide(mfp->mf_fname); /* try setting the 'hidden' flag */
- }
- }
-+
-+ /*
-+ * Implementation of mf_hashtab_T follows.
-+ */
-+
-+ /*
-+ * The number of buckets in the hashtable is increased by a factor of
-+ * MHT_GROWTH_FACTOR when the average number of items per bucket
-+ * exceeds 2 ^ MHT_LOG_LOAD_FACTOR.
-+ */
-+ #define MHT_LOG_LOAD_FACTOR 6
-+ #define MHT_GROWTH_FACTOR 2 /* must be a power of two */
-+
-+ /*
-+ * Initialize an empty hash table.
-+ */
-+ static void
-+ mf_hash_init(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ vim_memset(mht, 0, sizeof(mf_hashtab_T));
-+ mht->mht_buckets = mht->mht_small_buckets;
-+ mht->mht_mask = MHT_INIT_SIZE - 1;
-+ }
-+
-+ /*
-+ * Free the array of a hash table. Does not free the items it contains!
-+ * The hash table must not be used again without another mf_hash_init() call.
-+ */
-+ static void
-+ mf_hash_free(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ if (mht->mht_buckets != mht->mht_small_buckets)
-+ vim_free(mht->mht_buckets);
-+ }
-+
-+ /*
-+ * Free the array of a hash table and all the items it contains.
-+ */
-+ static void
-+ mf_hash_free_all(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ long_u idx;
-+ mf_hashitem_T *mhi;
-+ mf_hashitem_T *next;
-+
-+ for (idx = 0; idx <= mht->mht_mask; idx++)
-+ for (mhi = mht->mht_buckets[idx]; mhi != NULL; mhi = next)
-+ {
-+ next = mhi->mhi_next;
-+ vim_free(mhi);
-+ }
-+
-+ mf_hash_free(mht);
-+ }
-+
-+ /*
-+ * Find "key" in hashtable "mht".
-+ * Returns a pointer to a mf_hashitem_T or NULL if the item was not found.
-+ */
-+ static mf_hashitem_T *
-+ mf_hash_find(mht, key)
-+ mf_hashtab_T *mht;
-+ blocknr_T key;
-+ {
-+ mf_hashitem_T *mhi;
-+
-+ mhi = mht->mht_buckets[key & mht->mht_mask];
-+ while (mhi != NULL && mhi->mhi_key != key)
-+ mhi = mhi->mhi_next;
-+
-+ return mhi;
-+ }
-+
-+ /*
-+ * Add item "mhi" to hashtable "mht".
-+ * "mhi" must not be NULL.
-+ */
-+ static void
-+ mf_hash_add_item(mht, mhi)
-+ mf_hashtab_T *mht;
-+ mf_hashitem_T *mhi;
-+ {
-+ long_u idx;
-+
-+ idx = mhi->mhi_key & mht->mht_mask;
-+ mhi->mhi_next = mht->mht_buckets[idx];
-+ mhi->mhi_prev = NULL;
-+ if (mhi->mhi_next != NULL)
-+ mhi->mhi_next->mhi_prev = mhi;
-+ mht->mht_buckets[idx] = mhi;
-+
-+ mht->mht_count++;
-+
-+ /*
-+ * Grow hashtable when we have more thank 2^MHT_LOG_LOAD_FACTOR
-+ * items per bucket on average
-+ */
-+ if (mht->mht_fixed == 0
-+ && (mht->mht_count >> MHT_LOG_LOAD_FACTOR) > mht->mht_mask)
-+ {
-+ if (mf_hash_grow(mht) == FAIL)
-+ {
-+ /* stop trying to grow after first failure to allocate memory */
-+ mht->mht_fixed = 1;
-+ }
-+ }
-+ }
-+
-+ /*
-+ * Remove item "mhi" from hashtable "mht".
-+ * "mhi" must not be NULL and must have been inserted into "mht".
-+ */
-+ static void
-+ mf_hash_rem_item(mht, mhi)
-+ mf_hashtab_T *mht;
-+ mf_hashitem_T *mhi;
-+ {
-+ if (mhi->mhi_prev == NULL)
-+ mht->mht_buckets[mhi->mhi_key & mht->mht_mask] = mhi->mhi_next;
-+ else
-+ mhi->mhi_prev->mhi_next = mhi->mhi_next;
-+
-+ if (mhi->mhi_next != NULL)
-+ mhi->mhi_next->mhi_prev = mhi->mhi_prev;
-+
-+ mht->mht_count--;
-+
-+ /* We could shrink the table here, but it typically takes little memory,
-+ * so why bother? */
-+ }
-+
-+ /*
-+ * Increase number of buckets in the hashtable by MHT_GROWTH_FACTOR and
-+ * rehash items.
-+ * Returns FAIL when out of memory.
-+ */
-+ static int
-+ mf_hash_grow(mht)
-+ mf_hashtab_T *mht;
-+ {
-+ long_u i, j;
-+ int shift;
-+ mf_hashitem_T *mhi;
-+ mf_hashitem_T *tails[MHT_GROWTH_FACTOR];
-+ mf_hashitem_T **buckets;
-+ size_t size;
-+
-+ size = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR * sizeof(void *);
-+ buckets = (mf_hashitem_T **)lalloc_clear(size, FALSE);
-+ if (buckets == NULL)
-+ return FAIL;
-+
-+ shift = 0;
-+ while ((mht->mht_mask >> shift) != 0)
-+ shift++;
-+
-+ for (i = 0; i <= mht->mht_mask; i++)
-+ {
-+ /*
-+ * Traverse the items in the i-th original bucket and move them into
-+ * MHT_GROWTH_FACTOR new buckets, preserving their relative order
-+ * within each new bucket. Preserving the order is important because
-+ * mf_get() tries to keep most recently used items at the front of
-+ * each bucket.
-+ *
-+ * Here we strongly rely on the fact the hashes are computed modulo
-+ * a power of two.
-+ */
-+
-+ vim_memset(tails, 0, sizeof(tails));
-+
-+ for (mhi = mht->mht_buckets[i]; mhi != NULL; mhi = mhi->mhi_next)
-+ {
-+ j = (mhi->mhi_key >> shift) & (MHT_GROWTH_FACTOR - 1);
-+ if (tails[j] == NULL)
-+ {
-+ buckets[i + (j << shift)] = mhi;
-+ tails[j] = mhi;
-+ mhi->mhi_prev = NULL;
-+ }
-+ else
-+ {
-+ tails[j]->mhi_next = mhi;
-+ mhi->mhi_prev = tails[j];
-+ tails[j] = mhi;
-+ }
-+ }
-+
-+ for (j = 0; j < MHT_GROWTH_FACTOR; j++)
-+ if (tails[j] != NULL)
-+ tails[j]->mhi_next = NULL;
-+ }
-+
-+ if (mht->mht_buckets != mht->mht_small_buckets)
-+ vim_free(mht->mht_buckets);
-+
-+ mht->mht_buckets = buckets;
-+ mht->mht_mask = (mht->mht_mask + 1) * MHT_GROWTH_FACTOR - 1;
-+
-+ return OK;
-+ }
-*** ../vim-7.3.142/src/memfile_test.c 2011-03-03 21:58:14.000000000 +0100
---- src/memfile_test.c 2011-03-03 20:40:29.000000000 +0100
-***************
-*** 0 ****
---- 1,145 ----
-+ /* 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.
-+ */
-+
-+ /*
-+ * memfile_test.c: Unittests for memfile.c
-+ * Mostly by Ivan Krasilnikov.
-+ */
-+
-+ #undef NDEBUG
-+ #include <assert.h>
-+
-+ /* Must include main.c because it contains much more than just main() */
-+ #define NO_VIM_MAIN
-+ #include "main.c"
-+
-+ /* This file has to be included because the tested functions are static */
-+ #include "memfile.c"
-+
-+ #define index_to_key(i) ((i) ^ 15167)
-+ #define TEST_COUNT 50000
-+
-+ static void test_mf_hash __ARGS((void));
-+
-+ /*
-+ * Test mf_hash_*() functions.
-+ */
-+ static void
-+ test_mf_hash()
-+ {
-+ mf_hashtab_T ht;
-+ mf_hashitem_T *item;
-+ blocknr_T key;
-+ long_u i;
-+ long_u num_buckets;
-+
-+ mf_hash_init(&ht);
-+
-+ /* insert some items and check invariants */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ assert(ht.mht_count == i);
-+
-+ /* check that number of buckets is a power of 2 */
-+ num_buckets = ht.mht_mask + 1;
-+ assert(num_buckets > 0 && (num_buckets & (num_buckets - 1)) == 0);
-+
-+ /* check load factor */
-+ assert(ht.mht_count <= (num_buckets << MHT_LOG_LOAD_FACTOR));
-+
-+ if (i < (MHT_INIT_SIZE << MHT_LOG_LOAD_FACTOR))
-+ {
-+ /* first expansion shouldn't have occurred yet */
-+ assert(num_buckets == MHT_INIT_SIZE);
-+ assert(ht.mht_buckets == ht.mht_small_buckets);
-+ }
-+ else
-+ {
-+ assert(num_buckets > MHT_INIT_SIZE);
-+ assert(ht.mht_buckets != ht.mht_small_buckets);
-+ }
-+
-+ key = index_to_key(i);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ /* allocate and add new item */
-+ item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);
-+ assert(item != NULL);
-+ item->mhi_key = key;
-+ mf_hash_add_item(&ht, item);
-+
-+ assert(mf_hash_find(&ht, key) == item);
-+
-+ if (ht.mht_mask + 1 != num_buckets)
-+ {
-+ /* hash table was expanded */
-+ assert(ht.mht_mask + 1 == num_buckets * MHT_GROWTH_FACTOR);
-+ assert(i + 1 == (num_buckets << MHT_LOG_LOAD_FACTOR));
-+ }
-+ }
-+
-+ /* check presence of inserted items */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+ }
-+
-+ /* delete some items */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ if (i % 100 < 70)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+
-+ mf_hash_rem_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ mf_hash_add_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == item);
-+
-+ mf_hash_rem_item(&ht, item);
-+ assert(mf_hash_find(&ht, key) == NULL);
-+
-+ vim_free(item);
-+ }
-+ }
-+
-+ /* check again */
-+ for (i = 0; i < TEST_COUNT; i++)
-+ {
-+ key = index_to_key(i);
-+ item = mf_hash_find(&ht, key);
-+
-+ if (i % 100 < 70)
-+ {
-+ assert(item == NULL);
-+ }
-+ else
-+ {
-+ assert(item != NULL);
-+ assert(item->mhi_key == key);
-+ }
-+ }
-+
-+ /* free hash table and all remaining items */
-+ mf_hash_free_all(&ht);
-+ }
-+
-+ int
-+ main()
-+ {
-+ test_mf_hash();
-+ return 0;
-+ }
-*** ../vim-7.3.142/src/structs.h 2011-02-15 17:39:14.000000000 +0100
---- src/structs.h 2011-03-03 18:49:01.000000000 +0100
-***************
-*** 378,383 ****
---- 378,412 ----
- typedef long blocknr_T;
-
- /*
-+ * mf_hashtab_T is a chained hashtable with blocknr_T key and arbitrary
-+ * structures as items. This is an intrusive data structure: we require
-+ * that items begin with mf_hashitem_T which contains the key and linked
-+ * list pointers. List of items in each bucket is doubly-linked.
-+ */
-+
-+ typedef struct mf_hashitem_S mf_hashitem_T;
-+
-+ struct mf_hashitem_S
-+ {
-+ mf_hashitem_T *mhi_next;
-+ mf_hashitem_T *mhi_prev;
-+ blocknr_T mhi_key;
-+ };
-+
-+ #define MHT_INIT_SIZE 64
-+
-+ typedef struct mf_hashtab_S
-+ {
-+ long_u mht_mask; /* mask used for hash value (nr of items
-+ * in array is "mht_mask" + 1) */
-+ long_u mht_count; /* nr of items inserted into hashtable */
-+ mf_hashitem_T **mht_buckets; /* points to mht_small_buckets or
-+ *dynamically allocated array */
-+ mf_hashitem_T *mht_small_buckets[MHT_INIT_SIZE]; /* initial buckets */
-+ char mht_fixed; /* non-zero value forbids growth */
-+ } mf_hashtab_T;
-+
-+ /*
- * for each (previously) used block in the memfile there is one block header.
- *
- * The block may be linked in the used list OR in the free list.
-***************
-*** 394,404 ****
-
- struct block_hdr
- {
- bhdr_T *bh_next; /* next block_hdr in free or used list */
- bhdr_T *bh_prev; /* previous block_hdr in used list */
-- bhdr_T *bh_hash_next; /* next block_hdr in hash list */
-- bhdr_T *bh_hash_prev; /* previous block_hdr in hash list */
-- blocknr_T bh_bnum; /* block number */
- char_u *bh_data; /* pointer to memory (for used block) */
- int bh_page_count; /* number of pages in this block */
-
---- 423,433 ----
-
- struct block_hdr
- {
-+ mf_hashitem_T bh_hashitem; /* header for hash table and key */
-+ #define bh_bnum bh_hashitem.mhi_key /* block number, part of bh_hashitem */
-+
- bhdr_T *bh_next; /* next block_hdr in free or used list */
- bhdr_T *bh_prev; /* previous block_hdr in used list */
- char_u *bh_data; /* pointer to memory (for used block) */
- int bh_page_count; /* number of pages in this block */
-
-***************
-*** 417,425 ****
-
- struct nr_trans
- {
-! NR_TRANS *nt_next; /* next nr_trans in hash list */
-! NR_TRANS *nt_prev; /* previous nr_trans in hash list */
-! blocknr_T nt_old_bnum; /* old, negative, number */
- blocknr_T nt_new_bnum; /* new, positive, number */
- };
-
---- 446,454 ----
-
- struct nr_trans
- {
-! mf_hashitem_T nt_hashitem; /* header for hash table and key */
-! #define nt_old_bnum nt_hashitem.mhi_key /* old, negative, number */
-!
- blocknr_T nt_new_bnum; /* new, positive, number */
- };
-
-***************
-*** 499,510 ****
-
- typedef struct file_buffer buf_T; /* forward declaration */
-
-- /*
-- * Simplistic hashing scheme to quickly locate the blocks in the used list.
-- * 64 blocks are found directly (64 * 4K = 256K, most files are smaller).
-- */
-- #define MEMHASHSIZE 64
-- #define MEMHASH(nr) ((nr) & (MEMHASHSIZE - 1))
- #define MF_SEED_LEN 8
-
- struct memfile
---- 528,533 ----
-***************
-*** 517,524 ****
- bhdr_T *mf_used_last; /* lru block_hdr in used list */
- unsigned mf_used_count; /* number of pages in used list */
- unsigned mf_used_count_max; /* maximum number of pages in memory */
-! bhdr_T *mf_hash[MEMHASHSIZE]; /* array of hash lists */
-! NR_TRANS *mf_trans[MEMHASHSIZE]; /* array of trans lists */
- blocknr_T mf_blocknr_max; /* highest positive block number + 1*/
- blocknr_T mf_blocknr_min; /* lowest negative block number - 1 */
- blocknr_T mf_neg_count; /* number of negative blocks numbers */
---- 540,547 ----
- bhdr_T *mf_used_last; /* lru block_hdr in used list */
- unsigned mf_used_count; /* number of pages in used list */
- unsigned mf_used_count_max; /* maximum number of pages in memory */
-! mf_hashtab_T mf_hash; /* hash lists */
-! mf_hashtab_T mf_trans; /* trans lists */
- blocknr_T mf_blocknr_max; /* highest positive block number + 1*/
- blocknr_T mf_blocknr_min; /* lowest negative block number - 1 */
- blocknr_T mf_neg_count; /* number of negative blocks numbers */
-*** ../vim-7.3.142/src/testdir/Make_amiga.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_amiga.mak 2011-03-03 17:04:14.000000000 +0100
-***************
-*** 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
-
- .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
-
- .SUFFIXES: .in .out
-
-***************
-*** 124,126 ****
---- 124,127 ----
- test74.out: test74.in
- test75.out: test75.in
- test76.out: test76.in
-+ test77.out: test77.in
-*** ../vim-7.3.142/src/testdir/Make_dos.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_dos.mak 2011-03-03 17:04:20.000000000 +0100
-***************
-*** 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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.142/src/testdir/Make_ming.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_ming.mak 2011-03-03 17:04:32.000000000 +0100
-***************
-*** 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
-
- 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
-
- SCRIPTS32 = test50.out test70.out
-
-*** ../vim-7.3.142/src/testdir/Make_os2.mak 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Make_os2.mak 2011-03-03 17:04:48.000000000 +0100
-***************
-*** 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
-
- .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
-
- .SUFFIXES: .in .out
-
-*** ../vim-7.3.142/src/testdir/Makefile 2010-11-10 16:54:16.000000000 +0100
---- src/testdir/Makefile 2011-03-22 17:03:25.000000000 +0100
-***************
-*** 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
-
- 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
-
- 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
-
-*** ../vim-7.3.142/src/testdir/test77.in 2011-03-03 21:59:10.000000000 +0100
---- src/testdir/test77.in 2011-03-22 17:12:38.000000000 +0100
-***************
-*** 0 ****
---- 1,27 ----
-+ Inserts 2 million lines with consecutive integers starting from 1
-+ (essentially, the output of GNU's seq 1 2000000), writes them to Xtest
-+ and writes its cksum to test.out.
-+
-+ We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess
-+ up the lines the checksum would differ.
-+
-+ cksum is part of POSIX and so should be available on most Unixes.
-+ If it isn't available then the test will be skipped.
-+
-+ STARTTEST
-+ :so small.vim
-+ :if !executable("cksum")
-+ : e! test.ok
-+ : w! test.out
-+ : qa!
-+ :endif
-+ :set fileformat=unix undolevels=-1
-+ ggdG
-+ :let i = 1
-+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
-+ ggdd
-+ :w! Xtest
-+ :!cksum Xtest > test.out
-+ :qa!
-+ ENDTEST
-+
-*** ../vim-7.3.142/src/testdir/test77.ok 2011-03-03 21:59:10.000000000 +0100
---- src/testdir/test77.ok 2011-03-22 17:10:14.000000000 +0100
-***************
-*** 0 ****
---- 1 ----
-+ 3678979763 14888896 Xtest
-*** ../vim-7.3.142/src/version.c 2011-03-22 15:47:18.000000000 +0100
---- src/version.c 2011-03-22 18:01:48.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 143,
- /**/
-
---
-SIGIRO -- irony detected (iron 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.144 b/source/ap/vim/patches/7.3.144
deleted file mode 100644
index 3bdea8dad..000000000
--- a/source/ap/vim/patches/7.3.144
+++ /dev/null
@@ -1,80 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.144
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.144
-Problem: Crash with ":python help(dir)". (Kearn Holliday)
-Solution: Fix the way the type is set on objects. (Tobias Columbus)
-Files: src/if_python.c
-
-
-*** ../vim-7.3.143/src/if_python.c 2010-11-16 19:25:56.000000000 +0100
---- src/if_python.c 2011-03-26 13:54:22.000000000 +0100
-***************
-*** 780,786 ****
- PythonIO_Init(void)
- {
- /* Fixups... */
-! OutputType.ob_type = &PyType_Type;
-
- return PythonIO_Init_io();
- }
---- 780,786 ----
- PythonIO_Init(void)
- {
- /* Fixups... */
-! PyType_Ready(&OutputType);
-
- return PythonIO_Init_io();
- }
-***************
-*** 1402,1413 ****
- static char *(argv[2]) = {"/must>not&exist/foo", NULL};
-
- /* Fixups... */
-! BufferType.ob_type = &PyType_Type;
-! RangeType.ob_type = &PyType_Type;
-! WindowType.ob_type = &PyType_Type;
-! BufListType.ob_type = &PyType_Type;
-! WinListType.ob_type = &PyType_Type;
-! CurrentType.ob_type = &PyType_Type;
-
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
---- 1402,1413 ----
- static char *(argv[2]) = {"/must>not&exist/foo", NULL};
-
- /* Fixups... */
-! PyType_Ready(&BufferType);
-! PyType_Ready(&RangeType);
-! PyType_Ready(&WindowType);
-! PyType_Ready(&BufListType);
-! PyType_Ready(&WinListType);
-! PyType_Ready(&CurrentType);
-
- /* Set sys.argv[] to avoid a crash in warn(). */
- PySys_SetArgv(1, argv);
-*** ../vim-7.3.143/src/version.c 2011-03-22 18:10:34.000000000 +0100
---- src/version.c 2011-03-26 13:56:15.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 144,
- /**/
-
---
-The chat program is in public domain. This is not the GNU public license.
-If it breaks then you get to keep both pieces.
- -- Copyright notice for the chat program
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.145 b/source/ap/vim/patches/7.3.145
deleted file mode 100644
index a435fc287..000000000
--- a/source/ap/vim/patches/7.3.145
+++ /dev/null
@@ -1,64 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.145
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.145 (after 7.3.144)
-Problem: Can't build with Python dynamically loading.
-Solution: Add dll_PyType_Ready.
-Files: src/if_python.c
-
-
-*** ../vim-7.3.144/src/if_python.c 2011-03-26 13:56:41.000000000 +0100
---- src/if_python.c 2011-03-26 18:10:00.000000000 +0100
-***************
-*** 165,170 ****
---- 165,171 ----
- # define PySys_SetObject dll_PySys_SetObject
- # define PySys_SetArgv dll_PySys_SetArgv
- # define PyType_Type (*dll_PyType_Type)
-+ # define PyType_Ready (*dll_PyType_Ready)
- # define Py_BuildValue dll_Py_BuildValue
- # define Py_FindMethod dll_Py_FindMethod
- # define Py_InitModule4 dll_Py_InitModule4
-***************
-*** 224,229 ****
---- 225,231 ----
- static int(*dll_PySys_SetObject)(char *, PyObject *);
- static int(*dll_PySys_SetArgv)(int, char **);
- static PyTypeObject* dll_PyType_Type;
-+ static int (*dll_PyType_Ready)(PyTypeObject *type);
- 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);
-***************
-*** 305,310 ****
---- 307,313 ----
- {"PySys_SetObject", (PYTHON_PROC*)&dll_PySys_SetObject},
- {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv},
- {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type},
-+ {"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
-*** ../vim-7.3.144/src/version.c 2011-03-26 13:56:41.000000000 +0100
---- src/version.c 2011-03-26 18:11:19.000000000 +0100
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 145,
- /**/
-
---
-This message contains 78% recycled 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.146 b/source/ap/vim/patches/7.3.146
deleted file mode 100644
index 0a7390ce1..000000000
--- a/source/ap/vim/patches/7.3.146
+++ /dev/null
@@ -1,224 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.146
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.146
-Problem: It's possible to assign to a read-only member of a dict.
- It's possible to create a global variable "0". (ZyX)
- It's possible to add a v: variable with ":let v:.name = 1".
-Solution: Add check for dict item being read-only.
- Check the name of g: variables.
- Disallow adding v: variables.
-Files: src/eval.c
-
-
-*** ../vim-7.3.145/src/eval.c 2011-02-01 13:48:47.000000000 +0100
---- src/eval.c 2011-03-27 15:56:44.000000000 +0200
-***************
-*** 789,794 ****
---- 789,796 ----
- static void set_var __ARGS((char_u *name, typval_T *varp, int copy));
- static int var_check_ro __ARGS((int flags, char_u *name));
- static int var_check_fixed __ARGS((int flags, char_u *name));
-+ static int var_check_func_name __ARGS((char_u *name, int new_var));
-+ static int valid_varname __ARGS((char_u *varname));
- static int tv_check_lock __ARGS((int lock, char_u *name));
- static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID));
- static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags));
-***************
-*** 2716,2723 ****
---- 2718,2744 ----
- lp->ll_list = NULL;
- 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;
-+ }
-+
- if (lp->ll_di == NULL)
- {
-+ /* Can't add "v:" variable. */
-+ if (lp->ll_dict == &vimvardict)
-+ {
-+ EMSG2(_(e_illvar), name);
-+ return NULL;
-+ }
-+
- /* Key does not exist in dict: may need to add it. */
- if (*p == '[' || *p == '.' || unlet)
- {
-***************
-*** 2737,2742 ****
---- 2758,2767 ----
- p = NULL;
- break;
- }
-+ /* existing variable, need to check if it can be changed */
-+ else if (var_check_ro(lp->ll_di->di_flags, name))
-+ return NULL;
-+
- if (len == -1)
- clear_tv(&var1);
- lp->ll_tv = &lp->ll_di->di_tv;
-***************
-*** 19786,19792 ****
- dictitem_T *v;
- char_u *varname;
- hashtab_T *ht;
-- char_u *p;
-
- ht = find_var_ht(name, &varname);
- if (ht == NULL || *varname == NUL)
---- 19811,19816 ----
-***************
-*** 19796,19820 ****
- }
- v = find_var_in_ht(ht, varname, TRUE);
-
-! if (tv->v_type == VAR_FUNC)
-! {
-! if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
-! && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
-! ? name[2] : name[0]))
-! {
-! EMSG2(_("E704: Funcref variable name must start with a capital: %s"), name);
-! return;
-! }
-! /* Don't allow hiding a function. When "v" is not NULL we might be
-! * assigning another function to the same var, the type is checked
-! * below. */
-! if (v == NULL && function_exists(name))
-! {
-! EMSG2(_("E705: Variable name conflicts with existing function: %s"),
-! name);
-! return;
-! }
-! }
-
- if (v != NULL)
- {
---- 19820,19827 ----
- }
- v = find_var_in_ht(ht, varname, TRUE);
-
-! if (tv->v_type == VAR_FUNC && var_check_func_name(name, v == NULL))
-! return;
-
- if (v != NULL)
- {
-***************
-*** 19880,19892 ****
- }
-
- /* Make sure the variable name is valid. */
-! for (p = varname; *p != NUL; ++p)
-! if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
-! && *p != AUTOLOAD_CHAR)
-! {
-! EMSG2(_(e_illvar), varname);
-! return;
-! }
-
- v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
- + STRLEN(varname)));
---- 19887,19894 ----
- }
-
- /* Make sure the variable name is valid. */
-! if (!valid_varname(varname))
-! return;
-
- v = (dictitem_T *)alloc((unsigned)(sizeof(dictitem_T)
- + STRLEN(varname)));
-***************
-*** 19951,19956 ****
---- 19953,20007 ----
- }
-
- /*
-+ * Check if a funcref is assigned to a valid variable name.
-+ * Return TRUE and give an error if not.
-+ */
-+ static int
-+ var_check_func_name(name, new_var)
-+ char_u *name; /* points to start of variable name */
-+ int new_var; /* TRUE when creating the variable */
-+ {
-+ if (!(vim_strchr((char_u *)"wbs", name[0]) != NULL && name[1] == ':')
-+ && !ASCII_ISUPPER((name[0] != NUL && name[1] == ':')
-+ ? name[2] : name[0]))
-+ {
-+ EMSG2(_("E704: Funcref variable name must start with a capital: %s"),
-+ name);
-+ return TRUE;
-+ }
-+ /* Don't allow hiding a function. When "v" is not NULL we might be
-+ * assigning another function to the same var, the type is checked
-+ * below. */
-+ if (new_var && function_exists(name))
-+ {
-+ EMSG2(_("E705: Variable name conflicts with existing function: %s"),
-+ name);
-+ return TRUE;
-+ }
-+ return FALSE;
-+ }
-+
-+ /*
-+ * Check if a variable name is valid.
-+ * Return FALSE and give an error if not.
-+ */
-+ static int
-+ valid_varname(varname)
-+ char_u *varname;
-+ {
-+ char_u *p;
-+
-+ for (p = varname; *p != NUL; ++p)
-+ if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p))
-+ && *p != AUTOLOAD_CHAR)
-+ {
-+ EMSG2(_(e_illvar), varname);
-+ return FALSE;
-+ }
-+ return TRUE;
-+ }
-+
-+ /*
- * Return TRUE if typeval "tv" is set to be locked (immutable).
- * Also give an error message, using "name".
- */
-*** ../vim-7.3.145/src/version.c 2011-03-26 18:32:00.000000000 +0100
---- src/version.c 2011-03-27 16:01:03.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 146,
- /**/
-
---
-ARTHUR: It is I, Arthur, son of Uther Pendragon, from the castle of Camelot.
- King of all Britons, defeator of the Saxons, sovereign of all England!
- [Pause]
-SOLDIER: Get away!
- "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.147 b/source/ap/vim/patches/7.3.147
deleted file mode 100644
index b6fd756a9..000000000
--- a/source/ap/vim/patches/7.3.147
+++ /dev/null
@@ -1,53 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.147
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.147 (after 7.3.143)
-Problem: Can't build on HP-UX.
-Solution: Remove an unnecessary backslash. (John Marriott)
-Files: src/Makefile
-
-
-*** ../vim-7.3.146/src/Makefile 2011-03-22 18:10:34.000000000 +0100
---- src/Makefile 2011-04-01 13:00:58.000000000 +0200
-***************
-*** 1565,1571 ****
-
- OBJ = $(OBJ_COMMON) \
- objects/main.o \
-! objects/memfile.o \
-
- MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
- objects/memfile_test.o
---- 1565,1571 ----
-
- OBJ = $(OBJ_COMMON) \
- objects/main.o \
-! objects/memfile.o
-
- MEMFILE_TEST_OBJ = $(OBJ_COMMON) \
- objects/memfile_test.o
-*** ../vim-7.3.146/src/version.c 2011-03-27 16:03:09.000000000 +0200
---- src/version.c 2011-04-01 13:05:18.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 147,
- /**/
-
---
-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.148 b/source/ap/vim/patches/7.3.148
deleted file mode 100644
index 30492c0b5..000000000
--- a/source/ap/vim/patches/7.3.148
+++ /dev/null
@@ -1,252 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.148
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.148
-Problem: A syntax file with a huge number of items or clusters causes weird
- behavior, a hang or a crash. (Yukihiro Nakadaira)
-Solution: Check running out of IDs. (partly by Ben Schmidt)
-Files: src/syntax.c
-
-
-*** ../vim-7.3.147/src/syntax.c 2011-01-22 00:58:15.000000000 +0100
---- src/syntax.c 2011-04-01 14:25:39.000000000 +0200
-***************
-*** 219,234 ****
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 9999 normal syntax groups
-! * 10000 - 14999 ALLBUT indicator (current_syn_inc_tag added)
-! * 15000 - 19999 TOP indicator (current_syn_inc_tag added)
-! * 20000 - 24999 CONTAINED indicator (current_syn_inc_tag added)
-! * >= 25000 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 10000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 15000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 20000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 25000 /* first syntax group ID for clusters */
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
---- 219,238 ----
-
- /*
- * Syntax group IDs have different types:
-! * 0 - 19999 normal syntax groups
-! * 20000 - 20999 ALLBUT indicator (current_syn_inc_tag added)
-! * 21000 - 21999 TOP indicator (current_syn_inc_tag added)
-! * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
-! * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
-! */
-! #define SYNID_ALLBUT 20000 /* syntax group ID for contains=ALLBUT */
-! #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
-! #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
-! #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-!
-! #define MAX_SYNID SYNID_ALLBUT
-! #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
-! #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
- /*
- * Annoying Hack(TM): ":syn include" needs this pointer to pass to
-***************
-*** 3442,3447 ****
---- 3446,3454 ----
- /* free the stored states */
- syn_stack_free_all(block);
- invalidate_current_state();
-+
-+ /* Reset the counter for ":syn include" */
-+ running_syn_inc_tag = 0;
- }
-
- /*
-***************
-*** 4661,4666 ****
---- 4668,4675 ----
- return;
- }
- sgl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-+ if (sgl_id == 0)
-+ return;
- /* separate_nextcmd() and expand_filename() depend on this */
- eap->arg = rest;
- }
-***************
-*** 4689,4694 ****
---- 4698,4708 ----
- * Save and restore the existing top-level grouplist id and ":syn
- * include" tag around the actual inclusion.
- */
-+ if (running_syn_inc_tag >= MAX_SYN_INC_TAG)
-+ {
-+ EMSG((char_u *)_("E847: Too many syntax includes"));
-+ return;
-+ }
- prev_syn_inc_tag = current_syn_inc_tag;
- current_syn_inc_tag = ++running_syn_inc_tag;
- prev_toplvl_grp = curwin->w_s->b_syn_topgrp;
-***************
-*** 4712,4718 ****
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
---- 4726,4732 ----
- char_u *group_name_end;
- int syn_id;
- char_u *rest;
-! char_u *keyword_copy = NULL;
- char_u *p;
- char_u *kw;
- syn_opt_arg_T syn_opt_arg;
-***************
-*** 4724,4732 ****
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-!
-! /* allocate a buffer, for removing the backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
---- 4738,4746 ----
- if (rest != NULL)
- {
- syn_id = syn_check_group(arg, (int)(group_name_end - arg));
-! if (syn_id != 0)
-! /* allocate a buffer, for removing backslashes in the keyword */
-! keyword_copy = alloc((unsigned)STRLEN(rest) + 1);
- if (keyword_copy != NULL)
- {
- syn_opt_arg.flags = 0;
-***************
-*** 5133,5139 ****
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag = current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
---- 5147,5154 ----
- (item == ITEM_SKIP) ? SPTYPE_SKIP : SPTYPE_END;
- SYN_ITEMS(curwin->w_s)[idx].sp_flags |= syn_opt_arg.flags;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn.id = syn_id;
-! SYN_ITEMS(curwin->w_s)[idx].sp_syn.inc_tag =
-! current_syn_inc_tag;
- SYN_ITEMS(curwin->w_s)[idx].sp_syn_match_id =
- ppp->pp_matchgroup_id;
- #ifdef FEAT_CONCEAL
-***************
-*** 5426,5431 ****
---- 5441,5454 ----
- curwin->w_s->b_syn_clusters.ga_growsize = 10;
- }
-
-+ len = curwin->w_s->b_syn_clusters.ga_len;
-+ if (len >= MAX_CLUSTER_ID)
-+ {
-+ EMSG((char_u *)_("E848: Too many syntax clusters"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other cluster entry.
- */
-***************
-*** 5434,5440 ****
- vim_free(name);
- return 0;
- }
-- len = curwin->w_s->b_syn_clusters.ga_len;
-
- vim_memset(&(SYN_CLSTR(curwin->w_s)[len]), 0, sizeof(syn_cluster_T));
- SYN_CLSTR(curwin->w_s)[len].scl_name = name;
---- 5457,5462 ----
-***************
-*** 5476,5483 ****
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg))
-! - SYNID_CLUSTER;
-
- for (;;)
- {
---- 5498,5507 ----
-
- if (rest != NULL)
- {
-! scl_id = syn_check_cluster(arg, (int)(group_name_end - arg));
-! if (scl_id == 0)
-! return;
-! scl_id -= SYNID_CLUSTER;
-
- for (;;)
- {
-***************
-*** 5516,5522 ****
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */
- }
- }
-
---- 5540,5546 ----
- if (got_clstr)
- {
- redraw_curbuf_later(SOME_VALID);
-! syn_stack_free_all(curwin->w_s); /* Need to recompute all. */
- }
- }
-
-***************
-*** 8972,8977 ****
---- 8996,9008 ----
- highlight_ga.ga_growsize = 10;
- }
-
-+ if (highlight_ga.ga_len >= MAX_SYNID)
-+ {
-+ EMSG(_("E849: Too many syntax groups"));
-+ vim_free(name);
-+ return 0;
-+ }
-+
- /*
- * Make room for at least one other syntax_highlight entry.
- */
-*** ../vim-7.3.147/src/version.c 2011-04-01 13:05:37.000000000 +0200
---- src/version.c 2011-04-01 14:26:44.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 148,
- /**/
-
---
-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.149 b/source/ap/vim/patches/7.3.149
deleted file mode 100644
index 1901a74f4..000000000
--- a/source/ap/vim/patches/7.3.149
+++ /dev/null
@@ -1,78 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.149
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.149
-Problem: The cursor disappears after the processing of the 'setDot'
- netbeans command when vim runs in a terminal.
-Solution: Show the cursor after a screen update. (Xavier de Gaye, 2011
-Files: src/netbeans.c
-
-
-*** ../vim-7.3.148/src/netbeans.c 2011-01-04 18:11:39.000000000 +0100
---- src/netbeans.c 2011-04-01 15:33:49.000000000 +0200
-***************
-*** 191,196 ****
---- 191,197 ----
- changed_window_setting();
- update_screen(CLEAR);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 2248,2253 ****
---- 2249,2255 ----
- update_topline(); /* scroll to show the line */
- update_screen(VALID);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 2642,2647 ****
---- 2644,2650 ----
- {
- update_screen(NOT_VALID);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-***************
-*** 3008,3013 ****
---- 3011,3017 ----
- changed_window_setting();
- update_screen(CLEAR);
- setcursor();
-+ cursor_on();
- out_flush();
- #ifdef FEAT_GUI
- if (gui.in_use)
-*** ../vim-7.3.148/src/version.c 2011-04-01 14:44:54.000000000 +0200
---- src/version.c 2011-04-01 15:33:21.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 149,
- /**/
-
---
-ARTHUR: You are indeed brave Sir knight, but the fight is mine.
-BLACK KNIGHT: Had enough?
-ARTHUR: You stupid bastard. You havn't got any arms left.
- "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.150 b/source/ap/vim/patches/7.3.150
deleted file mode 100644
index 83a8bf282..000000000
--- a/source/ap/vim/patches/7.3.150
+++ /dev/null
@@ -1,113 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.150
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.150
-Problem: readline() does not return the last line when the NL is missing.
- (Hong Xu)
-Solution: When at the end of the file Also check for a previous line.
-Files: src/eval.c
-
-
-*** ../vim-7.3.149/src/eval.c 2011-03-27 16:03:09.000000000 +0200
---- src/eval.c 2011-04-01 16:06:04.000000000 +0200
-***************
-*** 14305,14313 ****
- {
- if (buf[filtd] == '\n' || readlen <= 0)
- {
-! /* Only when in binary mode add an empty list item when the
-! * last line ends in a '\n'. */
-! if (!binary && readlen == 0 && filtd == 0)
- break;
-
- /* Found end-of-line or end-of-file: add a text line to the
---- 14305,14313 ----
- {
- if (buf[filtd] == '\n' || readlen <= 0)
- {
-! /* 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
-***************
-*** 14372,14396 ****
-
- if (tolist == 0)
- {
-! /* "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
- {
---- 14372,14399 ----
-
- 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
- {
-*** ../vim-7.3.149/src/version.c 2011-04-01 15:33:54.000000000 +0200
---- src/version.c 2011-04-01 16:04:42.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 150,
- /**/
-
---
-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.151 b/source/ap/vim/patches/7.3.151
deleted file mode 100644
index 20f510516..000000000
--- a/source/ap/vim/patches/7.3.151
+++ /dev/null
@@ -1,59 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.151
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.151 (after 7.3.074)
-Problem: When "unnamedplus" is in 'clipboard' the selection is sometimes
- also copied to the star register.
-Solution: Avoid copy to the star register when undesired. (James Vega)
-Files: src/ops.c
-
-
-*** ../vim-7.3.150/src/ops.c 2010-12-08 14:23:08.000000000 +0100
---- src/ops.c 2011-04-01 16:23:10.000000000 +0200
-***************
-*** 3148,3157 ****
- /* Copy the text from register 0 to the clipboard register. */
- copy_yank_reg(&(y_regs[PLUS_REGISTER]));
-
-- /* No need to copy to * register upon 'unnamed' now - see below */
- clip_own_selection(&clip_plus);
- clip_gen_set_selection(&clip_plus);
-! if (!clip_isautosel() && !did_star)
- {
- copy_yank_reg(&(y_regs[STAR_REGISTER]));
- clip_own_selection(&clip_star);
---- 3148,3156 ----
- /* Copy the text from register 0 to the clipboard register. */
- copy_yank_reg(&(y_regs[PLUS_REGISTER]));
-
- 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);
-*** ../vim-7.3.150/src/version.c 2011-04-01 16:07:41.000000000 +0200
---- src/version.c 2011-04-01 16:25:40.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 151,
- /**/
-
---
-BLACK KNIGHT: I'm invincible!
-ARTHUR: You're a looney.
- "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.152 b/source/ap/vim/patches/7.3.152
deleted file mode 100644
index fdc58a089..000000000
--- a/source/ap/vim/patches/7.3.152
+++ /dev/null
@@ -1,643 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.152
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.152
-Problem: Xxd does not check for errors from library functions.
-Solution: Add error checks. (Florian Zumbiehl)
-Files: src/xxd/xxd.c
-
-
-*** ../vim-7.3.151/src/xxd/xxd.c 2010-08-15 21:57:25.000000000 +0200
---- src/xxd/xxd.c 2011-04-01 18:56:11.000000000 +0200
-***************
-*** 49,54 ****
---- 49,56 ----
- * option -b added: 01000101 binary output in normal format.
- * 16.05.00 Added VAXC changes by Stephen P. Wall
- * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy
-+ * 2011 March Better error handling by Florian Zumbiehl.
-+ * 2011 April Formatting by Bram Moolenaar
- *
- * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de)
- *
-***************
-*** 207,214 ****
-
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
-! static void exit_with_usage __P((char *));
-! static int huntype __P((FILE *, FILE *, FILE *, char *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
---- 209,216 ----
-
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
-! static void exit_with_usage __P((void));
-! static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
- #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */
-***************
-*** 223,231 ****
- #define HEX_CINCLUDE 2
- #define HEX_BITS 3 /* not hex a dump, but bits: 01111001 */
-
-! static void
-! exit_with_usage(pname)
-! char *pname;
- {
- fprintf(stderr, "Usage:\n %s [options] [infile [outfile]]\n", pname);
- fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
---- 225,234 ----
- #define HEX_CINCLUDE 2
- #define HEX_BITS 3 /* not hex a dump, but bits: 01111001 */
-
-! static char *pname;
-!
-! static void
-! exit_with_usage()
- {
- fprintf(stderr, "Usage:\n %s [options] [infile [outfile]]\n", pname);
- fprintf(stderr, " or\n %s -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\n", pname);
-***************
-*** 252,257 ****
---- 255,269 ----
- exit(1);
- }
-
-+ static void
-+ die(ret)
-+ int ret;
-+ {
-+ fprintf(stderr, "%s: ", pname);
-+ perror(NULL);
-+ exit(ret);
-+ }
-+
- /*
- * Max. cols binary characters are decoded from the input stream per line.
- * Two adjacent garbage characters after evaluated data delimit valid data.
-***************
-*** 259,270 ****
- *
- * The name is historic and came from 'undo type opt h'.
- */
-! static int
-! huntype(fpi, fpo, fperr, pname, cols, hextype, base_off)
-! FILE *fpi, *fpo, *fperr;
-! char *pname;
-! int cols, hextype;
-! long base_off;
- {
- int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
- long have_off = 0, want_off = 0;
---- 271,281 ----
- *
- * The name is historic and came from 'undo type opt h'.
- */
-! static int
-! huntype(fpi, fpo, fperr, cols, hextype, base_off)
-! FILE *fpi, *fpo, *fperr;
-! int cols, hextype;
-! long base_off;
- {
- int c, ign_garb = 1, n1 = -1, n2 = 0, n3, p = cols;
- long have_off = 0, want_off = 0;
-***************
-*** 318,324 ****
-
- if (base_off + want_off != have_off)
- {
-! fflush(fpo);
- #ifdef TRY_SEEK
- c = fseek(fpo, base_off + want_off - have_off, 1);
- if (c >= 0)
---- 329,336 ----
-
- if (base_off + want_off != have_off)
- {
-! if (fflush(fpo) != 0)
-! die(3);
- #ifdef TRY_SEEK
- c = fseek(fpo, base_off + want_off - have_off, 1);
- if (c >= 0)
-***************
-*** 330,341 ****
- return 5;
- }
- for (; have_off < base_off + want_off; have_off++)
-! putc(0, fpo);
- }
-
- if (n2 >= 0 && n1 >= 0)
- {
-! putc((n2 << 4) | n1, fpo);
- have_off++;
- want_off++;
- n1 = -1;
---- 342,355 ----
- return 5;
- }
- for (; have_off < base_off + want_off; have_off++)
-! if (putc(0, fpo) == EOF)
-! die(3);
- }
-
- if (n2 >= 0 && n1 >= 0)
- {
-! if (putc((n2 << 4) | n1, fpo) == EOF)
-! die(3);
- have_off++;
- want_off++;
- n1 = -1;
-***************
-*** 345,350 ****
---- 359,366 ----
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
-+ if (c == EOF && ferror(fpi))
-+ die(2);
- ign_garb = 1;
- }
- }
-***************
-*** 355,369 ****
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
- ign_garb = 1;
- }
- }
-! fflush(fpo);
- #ifdef TRY_SEEK
- fseek(fpo, 0L, 2);
- #endif
-! fclose(fpo);
-! fclose(fpi);
- return 0;
- }
-
---- 371,390 ----
- want_off = 0;
- while ((c = getc(fpi)) != '\n' && c != EOF)
- ;
-+ if (c == EOF && ferror(fpi))
-+ die(2);
- ign_garb = 1;
- }
- }
-! if (fflush(fpo) != 0)
-! die(3);
- #ifdef TRY_SEEK
- fseek(fpo, 0L, 2);
- #endif
-! if (fclose(fpo) != 0)
-! die(3);
-! if (fclose(fpi) != 0)
-! die(2);
- return 0;
- }
-
-***************
-*** 379,389 ****
- *
- * If nz is always positive, lines are never suppressed.
- */
-! static void
- xxdline(fp, l, nz)
-! FILE *fp;
-! char *l;
-! int nz;
- {
- static char z[LLEN+1];
- static int zero_seen = 0;
---- 400,410 ----
- *
- * If nz is always positive, lines are never suppressed.
- */
-! static void
- xxdline(fp, l, nz)
-! FILE *fp;
-! char *l;
-! int nz;
- {
- static char z[LLEN+1];
- static int zero_seen = 0;
-***************
-*** 398,409 ****
- if (nz < 0)
- zero_seen--;
- if (zero_seen == 2)
-! fputs(z, fp);
- if (zero_seen > 2)
-! fputs("*\n", fp);
- }
- if (nz >= 0 || zero_seen > 0)
-! fputs(l, fp);
- if (nz)
- zero_seen = 0;
- }
---- 419,433 ----
- if (nz < 0)
- zero_seen--;
- if (zero_seen == 2)
-! if (fputs(z, fp) == EOF)
-! die(3);
- if (zero_seen > 2)
-! if (fputs("*\n", fp) == EOF)
-! die(3);
- }
- if (nz >= 0 || zero_seen > 0)
-! if (fputs(l, fp) == EOF)
-! die(3);
- if (nz)
- zero_seen = 0;
- }
-***************
-*** 439,448 ****
- 0070,0071,0372,0373,0374,0375,0376,0377
- };
-
-! int
- main(argc, argv)
-! int argc;
-! char *argv[];
- {
- FILE *fp, *fpo;
- int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
---- 463,472 ----
- 0070,0071,0372,0373,0374,0375,0376,0377
- };
-
-! int
- main(argc, argv)
-! int argc;
-! char *argv[];
- {
- FILE *fp, *fpo;
- int c, e, p = 0, relseek = 1, negseek = 0, revert = 0;
-***************
-*** 452,458 ****
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
- char l[LLEN+1];
-! char *pname, *pp;
-
- #ifdef AMIGA
- /* This program doesn't work when started from the Workbench */
---- 476,482 ----
- int grplen; /* total chars per octet group */
- long length = -1, n = 0, seekoff = 0;
- char l[LLEN+1];
-! char *pp;
-
- #ifdef AMIGA
- /* This program doesn't work when started from the Workbench */
-***************
-*** 495,501 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- cols = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
---- 519,525 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- cols = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
-***************
-*** 508,514 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- octspergrp = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
---- 532,538 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- octspergrp = (int)strtol(argv[2], NULL, 0);
- argv++;
- argc--;
-***************
-*** 531,537 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- #ifdef TRY_SEEK
- if (argv[2][0] == '+')
- relseek++;
---- 555,561 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- #ifdef TRY_SEEK
- if (argv[2][0] == '+')
- relseek++;
-***************
-*** 550,556 ****
- else
- {
- if (!argv[2])
-! exit_with_usage(pname);
- length = strtol(argv[2], (char **)NULL, 0);
- argv++;
- argc--;
---- 574,580 ----
- else
- {
- if (!argv[2])
-! exit_with_usage();
- length = strtol(argv[2], (char **)NULL, 0);
- argv++;
- argc--;
-***************
-*** 563,569 ****
- break;
- }
- else if (pp[0] == '-' && pp[1]) /* unknown option */
-! exit_with_usage(pname);
- else
- break; /* not an option */
-
---- 587,593 ----
- break;
- }
- else if (pp[0] == '-' && pp[1]) /* unknown option */
-! exit_with_usage();
- else
- break; /* not an option */
-
-***************
-*** 602,608 ****
- octspergrp = cols;
-
- if (argc > 3)
-! exit_with_usage(pname);
-
- if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
- BIN_ASSIGN(fp = stdin, !revert);
---- 626,632 ----
- octspergrp = cols;
-
- if (argc > 3)
-! exit_with_usage();
-
- if (argc == 1 || (argv[1][0] == '-' && !argv[1][1]))
- BIN_ASSIGN(fp = stdin, !revert);
-***************
-*** 640,646 ****
- fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
- return -1;
- }
-! return huntype(fp, fpo, stderr, pname, cols, hextype,
- negseek ? -seekoff : seekoff);
- }
-
---- 664,670 ----
- fprintf(stderr, "%s: sorry, cannot revert this type of hexdump\n", pname);
- return -1;
- }
-! return huntype(fp, fpo, stderr, cols, hextype,
- negseek ? -seekoff : seekoff);
- }
-
-***************
-*** 664,670 ****
- long s = seekoff;
-
- while (s--)
-! (void)getc(fp);
- }
- }
-
---- 688,703 ----
- long s = seekoff;
-
- while (s--)
-! if (getc(fp) == EOF)
-! if (ferror(fp))
-! {
-! die(2);
-! }
-! else
-! {
-! fprintf(stderr, "%s: sorry cannot seek.\n", pname);
-! return 4;
-! }
- }
- }
-
-***************
-*** 672,725 ****
- {
- if (fp != stdin)
- {
-! fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "");
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! putc(isalnum(c) ? c : '_', fpo);
-! fputs("[] = {\n", fpo);
- }
-
- p = 0;
- while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
- {
-! fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
-! (p % cols) ? ", " : ",\n "+2*!p, c);
- p++;
- }
-
- if (p)
-! fputs("\n};\n"+3*(fp == stdin), fpo);
-
- if (fp != stdin)
- {
-! fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "");
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! putc(isalnum(c) ? c : '_', fpo);
-! fprintf(fpo, "_len = %d;\n", p);
- }
-
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
-
- if (hextype == HEX_POSTSCRIPT)
- {
- p = cols;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
-! putchar(hexx[(e >> 4) & 0xf]);
-! putchar(hexx[(e ) & 0xf]);
- n++;
- if (!--p)
- {
-! putchar('\n');
- p = cols;
- }
- }
- if (p < cols)
-! putchar('\n');
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
-
---- 705,779 ----
- {
- if (fp != stdin)
- {
-! if (fprintf(fpo, "unsigned char %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-! die(3);
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-! die(3);
-! if (fputs("[] = {\n", fpo) == EOF)
-! die(3);
- }
-
- p = 0;
-+ c = 0;
- while ((length < 0 || p < length) && (c = getc(fp)) != EOF)
- {
-! if (fprintf(fpo, (hexx == hexxa) ? "%s0x%02x" : "%s0X%02X",
-! (p % cols) ? ", " : ",\n "+2*!p, c) < 0)
-! die(3);
- p++;
- }
-+ if (c == EOF && ferror(fp))
-+ die(2);
-
- if (p)
-! if (fputs("\n};\n" + 3 * (fp == stdin), fpo) == EOF)
-! die(3);
-
- if (fp != stdin)
- {
-! if (fprintf(fpo, "unsigned int %s", isdigit((int)argv[1][0]) ? "__" : "") < 0)
-! die(3);
- for (e = 0; (c = argv[1][e]) != 0; e++)
-! if (putc(isalnum(c) ? c : '_', fpo) == EOF)
-! die(3);
-! if (fprintf(fpo, "_len = %d;\n", p) < 0)
-! die(3);
- }
-
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-
- if (hextype == HEX_POSTSCRIPT)
- {
- p = cols;
-+ e = 0;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
-! if (putc(hexx[(e >> 4) & 0xf], fpo) == EOF
-! || putc(hexx[e & 0xf], fpo) == EOF)
-! die(3);
- n++;
- if (!--p)
- {
-! if (putc('\n', fpo) == EOF)
-! die(3);
- p = cols;
- }
- }
-+ if (e == EOF && ferror(fp))
-+ die(2);
- if (p < cols)
-! if (putc('\n', fpo) == EOF)
-! die(3);
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-
-***************
-*** 730,735 ****
---- 784,790 ----
- else /* hextype == HEX_BITS */
- grplen = 8 * octspergrp + 1;
-
-+ e = 0;
- while ((length < 0 || n < length) && (e = getc(fp)) != EOF)
- {
- if (p == 0)
-***************
-*** 771,776 ****
---- 826,833 ----
- p = 0;
- }
- }
-+ if (e == EOF && ferror(fp))
-+ die(2);
- if (p)
- {
- l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0';
-***************
-*** 779,785 ****
- else if (autoskip)
- xxdline(fpo, l, -1); /* last chance to flush out suppressed lines */
-
-! fclose(fp);
-! fclose(fpo);
- return 0;
- }
---- 836,846 ----
- else if (autoskip)
- xxdline(fpo, l, -1); /* last chance to flush out suppressed lines */
-
-! if (fclose(fp))
-! die(2);
-! if (fclose(fpo))
-! die(3);
- return 0;
- }
-+
-+ /* vi:set ts=8 sw=4 sts=2 cino+={2 cino+=n-2 : */
-*** ../vim-7.3.151/src/version.c 2011-04-01 16:28:33.000000000 +0200
---- src/version.c 2011-04-01 19:00:26.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 152,
- /**/
-
---
-Eye have a spelling checker, it came with my PC;
-It plainly marks four my revue mistakes I cannot sea.
-I've run this poem threw it, I'm sure your please to no,
-It's letter perfect in it's weigh, my checker tolled me sew!
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.153 b/source/ap/vim/patches/7.3.153
deleted file mode 100644
index 9f76b5183..000000000
--- a/source/ap/vim/patches/7.3.153
+++ /dev/null
@@ -1,66 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.153
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.153 (after 7.3.152)
-Problem: Compiler warning for ambiguous else, missing prototype.
-Solution: Add braces. (Dominique Pelle) Add prototype for die().
-Files: src/xxd/xxd.c
-
-
-*** ../vim-7.3.152/src/xxd/xxd.c 2011-04-01 19:14:35.000000000 +0200
---- src/xxd/xxd.c 2011-04-02 14:42:54.000000000 +0200
-***************
-*** 210,215 ****
---- 210,216 ----
- /* Let's collect some prototypes */
- /* CodeWarrior is really picky about missing prototypes */
- static void exit_with_usage __P((void));
-+ static void die __P((int));
- static int huntype __P((FILE *, FILE *, FILE *, int, int, long));
- static void xxdline __P((FILE *, char *, int));
-
-***************
-*** 689,694 ****
---- 690,696 ----
-
- while (s--)
- if (getc(fp) == EOF)
-+ {
- if (ferror(fp))
- {
- die(2);
-***************
-*** 698,703 ****
---- 700,706 ----
- fprintf(stderr, "%s: sorry cannot seek.\n", pname);
- return 4;
- }
-+ }
- }
- }
-
-*** ../vim-7.3.152/src/version.c 2011-04-01 19:14:35.000000000 +0200
---- src/version.c 2011-04-02 14:41:12.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 153,
- /**/
-
---
- |
-
-Ceci n'est pas une pipe.
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.3.154 b/source/ap/vim/patches/7.3.154
deleted file mode 100644
index e7c886200..000000000
--- a/source/ap/vim/patches/7.3.154
+++ /dev/null
@@ -1,106 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 7.3.154
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 7.3.154 (after 7.3.148)
-Problem: Can't compile with tiny features. (Tony Mechelynck)
-Solution: Move #define outside of #ifdef.
-Files: src/syntax.c
-
-
-*** ../vim-7.3.153/src/syntax.c 2011-04-01 14:44:54.000000000 +0200
---- src/syntax.c 2011-04-02 15:11:47.000000000 +0200
-***************
-*** 68,73 ****
---- 68,75 ----
-
- #define HL_TABLE() ((struct hl_group *)((highlight_ga.ga_data)))
-
-+ #define MAX_HL_ID 20000 /* maximum value for a highlight ID. */
-+
- #ifdef FEAT_CMDL_COMPL
- /* Flags to indicate an additional string for highlight name completion. */
- static int include_none = 0; /* when 1 include "None" */
-***************
-*** 225,236 ****
- * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
- * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
- */
-! #define SYNID_ALLBUT 20000 /* syntax group ID for contains=ALLBUT */
- #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
- #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
- #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-
-- #define MAX_SYNID SYNID_ALLBUT
- #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
- #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
---- 227,237 ----
- * 22000 - 22999 CONTAINED indicator (current_syn_inc_tag added)
- * 23000 - 32767 cluster IDs (subtract SYNID_CLUSTER for the cluster ID)
- */
-! #define SYNID_ALLBUT MAX_HL_ID /* syntax group ID for contains=ALLBUT */
- #define SYNID_TOP 21000 /* syntax group ID for contains=TOP */
- #define SYNID_CONTAINED 22000 /* syntax group ID for contains=CONTAINED */
- #define SYNID_CLUSTER 23000 /* first syntax group ID for clusters */
-
- #define MAX_SYN_INC_TAG 999 /* maximum before the above overflow */
- #define MAX_CLUSTER_ID (32767 - SYNID_CLUSTER)
-
-***************
-*** 6462,6468 ****
-
- #endif /* FEAT_SYN_HL */
-
--
- /**************************************
- * Highlighting stuff *
- **************************************/
---- 6463,6468 ----
-***************
-*** 8996,9004 ****
- highlight_ga.ga_growsize = 10;
- }
-
-! if (highlight_ga.ga_len >= MAX_SYNID)
- {
-! EMSG(_("E849: Too many syntax groups"));
- vim_free(name);
- return 0;
- }
---- 8996,9004 ----
- highlight_ga.ga_growsize = 10;
- }
-
-! if (highlight_ga.ga_len >= MAX_HL_ID)
- {
-! EMSG(_("E849: Too many highlight and syntax groups"));
- vim_free(name);
- return 0;
- }
-*** ../vim-7.3.153/src/version.c 2011-04-02 14:44:50.000000000 +0200
---- src/version.c 2011-04-02 14:52:33.000000000 +0200
-***************
-*** 716,717 ****
---- 716,719 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 154,
- /**/
-
---
-BEDEVERE: Why do you think she is a witch?
-SECOND VILLAGER: She turned me into a newt.
-BEDEVERE: A newt?
-SECOND VILLAGER: (After looking at himself for some time) I got better.
- "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.155 b/source/ap/vim/patches/7.3.155
deleted file mode 100644
index 806efca2b..000000000
--- a/source/ap/vim/patches/7.3.155
+++ /dev/null
@@ -1,286 +0,0 @@
-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
deleted file mode 100644
index ec873242e..000000000
--- a/source/ap/vim/patches/7.3.156
+++ /dev/null
@@ -1,89 +0,0 @@
-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
deleted file mode 100644
index 403c94865..000000000
--- a/source/ap/vim/patches/7.3.157
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 8fba3508b..000000000
--- a/source/ap/vim/patches/7.3.158
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 7029ac86c..000000000
--- a/source/ap/vim/patches/7.3.159
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index bf3a069ff..000000000
--- a/source/ap/vim/patches/7.3.160
+++ /dev/null
@@ -1,482 +0,0 @@
-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
deleted file mode 100644
index 61223ec2b..000000000
--- a/source/ap/vim/patches/7.3.161
+++ /dev/null
@@ -1,1645 +0,0 @@
-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
deleted file mode 100644
index 3f0173afb..000000000
--- a/source/ap/vim/patches/7.3.162
+++ /dev/null
@@ -1,83 +0,0 @@
-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
deleted file mode 100644
index b5f1cb4ad..000000000
--- a/source/ap/vim/patches/7.3.163
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 9049f1b58..000000000
--- a/source/ap/vim/patches/7.3.164
+++ /dev/null
@@ -1,181 +0,0 @@
-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
deleted file mode 100644
index 2725259e3..000000000
--- a/source/ap/vim/patches/7.3.165
+++ /dev/null
@@ -1,47 +0,0 @@
-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
deleted file mode 100644
index 93c6ed353..000000000
--- a/source/ap/vim/patches/7.3.166
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 4a6de89fb..000000000
--- a/source/ap/vim/patches/7.3.167
+++ /dev/null
@@ -1,96 +0,0 @@
-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
deleted file mode 100644
index 3d6fe9472..000000000
--- a/source/ap/vim/patches/7.3.168
+++ /dev/null
@@ -1,82 +0,0 @@
-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
deleted file mode 100644
index 056ca99f6..000000000
--- a/source/ap/vim/patches/7.3.169
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 933173ea8..000000000
--- a/source/ap/vim/patches/7.3.170
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index f965e0a20..000000000
--- a/source/ap/vim/patches/7.3.171
+++ /dev/null
@@ -1,142 +0,0 @@
-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
deleted file mode 100644
index 66a785217..000000000
--- a/source/ap/vim/patches/7.3.172
+++ /dev/null
@@ -1,268 +0,0 @@
-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
deleted file mode 100644
index ac8cffb93..000000000
--- a/source/ap/vim/patches/7.3.173
+++ /dev/null
@@ -1,79 +0,0 @@
-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
deleted file mode 100644
index 33d600350..000000000
--- a/source/ap/vim/patches/7.3.174
+++ /dev/null
@@ -1,109 +0,0 @@
-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
deleted file mode 100644
index 57fbc4a79..000000000
--- a/source/ap/vim/patches/7.3.175
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index fcf4880d2..000000000
--- a/source/ap/vim/patches/7.3.176
+++ /dev/null
@@ -1,165 +0,0 @@
-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
deleted file mode 100644
index 895b3b134..000000000
--- a/source/ap/vim/patches/7.3.177
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index 9b6ca7c3a..000000000
--- a/source/ap/vim/patches/7.3.178
+++ /dev/null
@@ -1,163 +0,0 @@
-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
deleted file mode 100644
index f175b264e..000000000
--- a/source/ap/vim/patches/7.3.179
+++ /dev/null
@@ -1,95 +0,0 @@
-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
deleted file mode 100644
index 5997bfbe8..000000000
--- a/source/ap/vim/patches/7.3.180
+++ /dev/null
@@ -1,295 +0,0 @@
-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
deleted file mode 100644
index 3151d4455..000000000
--- a/source/ap/vim/patches/7.3.181
+++ /dev/null
@@ -1,171 +0,0 @@
-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
deleted file mode 100644
index 509b68b54..000000000
--- a/source/ap/vim/patches/7.3.182
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 23178c0b5..000000000
--- a/source/ap/vim/patches/7.3.183
+++ /dev/null
@@ -1,87 +0,0 @@
-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
deleted file mode 100644
index 3b0cfc692..000000000
--- a/source/ap/vim/patches/7.3.184
+++ /dev/null
@@ -1,86 +0,0 @@
-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
deleted file mode 100644
index 7b3ed1899..000000000
--- a/source/ap/vim/patches/7.3.185
+++ /dev/null
@@ -1,77 +0,0 @@
-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
deleted file mode 100644
index d834c370d..000000000
--- a/source/ap/vim/patches/7.3.186
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 7bf82ce4d..000000000
--- a/source/ap/vim/patches/7.3.187
+++ /dev/null
@@ -1,6621 +0,0 @@
-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
deleted file mode 100644
index f58454304..000000000
--- a/source/ap/vim/patches/7.3.188
+++ /dev/null
@@ -1,184 +0,0 @@
-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
deleted file mode 100644
index f7a9667c7..000000000
--- a/source/ap/vim/patches/7.3.189
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 4adef8ab0..000000000
--- a/source/ap/vim/patches/7.3.190
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 14b63cea0..000000000
--- a/source/ap/vim/patches/7.3.191
+++ /dev/null
@@ -1,526 +0,0 @@
-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
deleted file mode 100644
index 5dab19b49..000000000
--- a/source/ap/vim/patches/7.3.192
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index acee9ec0e..000000000
--- a/source/ap/vim/patches/7.3.193
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 5a73c0098..000000000
--- a/source/ap/vim/patches/7.3.194
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index ba1fc2192..000000000
--- a/source/ap/vim/patches/7.3.195
+++ /dev/null
@@ -1,199 +0,0 @@
-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
deleted file mode 100644
index 0d6be8c9f..000000000
--- a/source/ap/vim/patches/7.3.196
+++ /dev/null
@@ -1,224 +0,0 @@
-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
deleted file mode 100644
index c33a2cb29..000000000
--- a/source/ap/vim/patches/7.3.197
+++ /dev/null
@@ -1,78 +0,0 @@
-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
deleted file mode 100644
index 5ef4a8aad..000000000
--- a/source/ap/vim/patches/7.3.198
+++ /dev/null
@@ -1,403 +0,0 @@
-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
deleted file mode 100644
index 8bdd97ab1..000000000
--- a/source/ap/vim/patches/7.3.199
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index 601947119..000000000
--- a/source/ap/vim/patches/7.3.200
+++ /dev/null
@@ -1,75 +0,0 @@
-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
deleted file mode 100644
index 0481afd85..000000000
--- a/source/ap/vim/patches/7.3.201
+++ /dev/null
@@ -1,124 +0,0 @@
-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
deleted file mode 100644
index 1289e0851..000000000
--- a/source/ap/vim/patches/7.3.202
+++ /dev/null
@@ -1,868 +0,0 @@
-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
deleted file mode 100644
index 62c298972..000000000
--- a/source/ap/vim/patches/7.3.203
+++ /dev/null
@@ -1,102 +0,0 @@
-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
deleted file mode 100644
index b2b63602e..000000000
--- a/source/ap/vim/patches/7.3.204
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index b49a040e4..000000000
--- a/source/ap/vim/patches/7.3.205
+++ /dev/null
@@ -1,93 +0,0 @@
-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
deleted file mode 100644
index 8a91f0ae2..000000000
--- a/source/ap/vim/patches/7.3.206
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 95b335ecc..000000000
--- a/source/ap/vim/patches/7.3.207
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index c5a792957..000000000
--- a/source/ap/vim/patches/7.3.208
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index afd4ab825..000000000
--- a/source/ap/vim/patches/7.3.209
+++ /dev/null
@@ -1,95 +0,0 @@
-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
deleted file mode 100644
index f02fe6fe6..000000000
--- a/source/ap/vim/patches/7.3.210
+++ /dev/null
@@ -1,182 +0,0 @@
-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
deleted file mode 100644
index 4760c106c..000000000
--- a/source/ap/vim/patches/7.3.211
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index d5086db0a..000000000
--- a/source/ap/vim/patches/7.3.212
+++ /dev/null
@@ -1,243 +0,0 @@
-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
deleted file mode 100644
index d3ef325e1..000000000
--- a/source/ap/vim/patches/7.3.213
+++ /dev/null
@@ -1,142 +0,0 @@
-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
deleted file mode 100644
index a095bbc43..000000000
--- a/source/ap/vim/patches/7.3.214
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 24d37fbfe..000000000
--- a/source/ap/vim/patches/7.3.215
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index a52bc936b..000000000
--- a/source/ap/vim/patches/7.3.216
+++ /dev/null
@@ -1,263 +0,0 @@
-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
deleted file mode 100644
index be04b8634..000000000
--- a/source/ap/vim/patches/7.3.217
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index 1da18d810..000000000
--- a/source/ap/vim/patches/7.3.218
+++ /dev/null
@@ -1,91 +0,0 @@
-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
deleted file mode 100644
index 2ec111799..000000000
--- a/source/ap/vim/patches/7.3.219
+++ /dev/null
@@ -1,92 +0,0 @@
-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
deleted file mode 100644
index 0122e7fce..000000000
--- a/source/ap/vim/patches/7.3.220
+++ /dev/null
@@ -1,1230 +0,0 @@
-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
deleted file mode 100644
index 7211a4a66..000000000
--- a/source/ap/vim/patches/7.3.221
+++ /dev/null
@@ -1,287 +0,0 @@
-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
deleted file mode 100644
index 87151b5ab..000000000
--- a/source/ap/vim/patches/7.3.222
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index e151c5b74..000000000
--- a/source/ap/vim/patches/7.3.223
+++ /dev/null
@@ -1,387 +0,0 @@
-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
deleted file mode 100644
index 1673f4768..000000000
--- a/source/ap/vim/patches/7.3.224
+++ /dev/null
@@ -1,162 +0,0 @@
-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
deleted file mode 100644
index 5a32b9a62..000000000
--- a/source/ap/vim/patches/7.3.225
+++ /dev/null
Binary files differ
diff --git a/source/ap/vim/patches/7.3.226 b/source/ap/vim/patches/7.3.226
deleted file mode 100644
index 0002aa77f..000000000
--- a/source/ap/vim/patches/7.3.226
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index 55d5a9c6b..000000000
--- a/source/ap/vim/patches/7.3.227
+++ /dev/null
@@ -1,109 +0,0 @@
-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
deleted file mode 100644
index 3edede597..000000000
--- a/source/ap/vim/patches/7.3.228
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644
index b133f7a48..000000000
--- a/source/ap/vim/patches/7.3.229
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 80fcdf130..000000000
--- a/source/ap/vim/patches/7.3.230
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 266d0a2bc..000000000
--- a/source/ap/vim/patches/7.3.231
+++ /dev/null
@@ -1,128 +0,0 @@
-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
deleted file mode 100644
index 982d7478c..000000000
--- a/source/ap/vim/patches/7.3.232
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index 2dcbf89ac..000000000
--- a/source/ap/vim/patches/7.3.233
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index a60df3db1..000000000
--- a/source/ap/vim/patches/7.3.234
+++ /dev/null
@@ -1,178 +0,0 @@
-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
deleted file mode 100644
index a852c852a..000000000
--- a/source/ap/vim/patches/7.3.235
+++ /dev/null
@@ -1,360 +0,0 @@
-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
deleted file mode 100644
index 3be69e302..000000000
--- a/source/ap/vim/patches/7.3.236
+++ /dev/null
@@ -1,87 +0,0 @@
-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
deleted file mode 100644
index ead50ca6a..000000000
--- a/source/ap/vim/patches/7.3.237
+++ /dev/null
@@ -1,222 +0,0 @@
-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
deleted file mode 100644
index 289b1a432..000000000
--- a/source/ap/vim/patches/7.3.238
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 1c03da3f6..000000000
--- a/source/ap/vim/patches/7.3.239
+++ /dev/null
@@ -1,321 +0,0 @@
-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
deleted file mode 100644
index 7048ac1f3..000000000
--- a/source/ap/vim/patches/7.3.240
+++ /dev/null
@@ -1,795 +0,0 @@
-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
deleted file mode 100644
index 3b73c4de1..000000000
--- a/source/ap/vim/patches/7.3.241
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index 0cf4db920..000000000
--- a/source/ap/vim/patches/7.3.242
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index f1f913d48..000000000
--- a/source/ap/vim/patches/7.3.243
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 4cff94f2f..000000000
--- a/source/ap/vim/patches/7.3.244
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index b05fe433a..000000000
--- a/source/ap/vim/patches/7.3.245
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index d9982ea04..000000000
--- a/source/ap/vim/patches/7.3.246
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index a0cb566c7..000000000
--- a/source/ap/vim/patches/7.3.247
+++ /dev/null
@@ -1,95 +0,0 @@
-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
deleted file mode 100644
index 6fbf3f6cd..000000000
--- a/source/ap/vim/patches/7.3.248
+++ /dev/null
@@ -1,129 +0,0 @@
-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
deleted file mode 100644
index 661f97977..000000000
--- a/source/ap/vim/patches/7.3.249
+++ /dev/null
@@ -1,134 +0,0 @@
-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
deleted file mode 100644
index fc33328bd..000000000
--- a/source/ap/vim/patches/7.3.250
+++ /dev/null
@@ -1,104 +0,0 @@
-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
deleted file mode 100644
index 43aa41487..000000000
--- a/source/ap/vim/patches/7.3.251
+++ /dev/null
@@ -1,184 +0,0 @@
-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
deleted file mode 100644
index e24b73be7..000000000
--- a/source/ap/vim/patches/7.3.252
+++ /dev/null
@@ -1,43 +0,0 @@
-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
deleted file mode 100644
index 70e415b5d..000000000
--- a/source/ap/vim/patches/7.3.253
+++ /dev/null
@@ -1,539 +0,0 @@
-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
deleted file mode 100644
index 85176a7a6..000000000
--- a/source/ap/vim/patches/7.3.254
+++ /dev/null
@@ -1,47 +0,0 @@
-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
deleted file mode 100644
index c01a585ec..000000000
--- a/source/ap/vim/patches/7.3.255
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index b8c9f00d1..000000000
--- a/source/ap/vim/patches/7.3.256
+++ /dev/null
@@ -1,322 +0,0 @@
-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
deleted file mode 100644
index f6292bf8d..000000000
--- a/source/ap/vim/patches/7.3.257
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index 277cbe774..000000000
--- a/source/ap/vim/patches/7.3.258
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 91f9dfa13..000000000
--- a/source/ap/vim/patches/7.3.259
+++ /dev/null
@@ -1,503 +0,0 @@
-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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ 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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ 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
deleted file mode 100644
index ba9af57aa..000000000
--- a/source/ap/vim/patches/7.3.260
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index 4c03f6b57..000000000
--- a/source/ap/vim/patches/7.3.261
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index b3bd5cd81..000000000
--- a/source/ap/vim/patches/7.3.262
+++ /dev/null
@@ -1,1356 +0,0 @@
-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
deleted file mode 100644
index 98850988c..000000000
--- a/source/ap/vim/patches/7.3.263
+++ /dev/null
@@ -1,162 +0,0 @@
-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
deleted file mode 100644
index 71ec851f3..000000000
--- a/source/ap/vim/patches/7.3.264
+++ /dev/null
@@ -1,159 +0,0 @@
-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
deleted file mode 100644
index 98cb1b4e0..000000000
--- a/source/ap/vim/patches/7.3.265
+++ /dev/null
@@ -1,145 +0,0 @@
-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
deleted file mode 100644
index 373280ee4..000000000
--- a/source/ap/vim/patches/7.3.266
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index d986e5036..000000000
--- a/source/ap/vim/patches/7.3.267
+++ /dev/null
@@ -1,67 +0,0 @@
-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
deleted file mode 100644
index aa848770c..000000000
--- a/source/ap/vim/patches/7.3.268
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index a0bfc473c..000000000
--- a/source/ap/vim/patches/7.3.269
+++ /dev/null
@@ -1,112 +0,0 @@
-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
deleted file mode 100644
index 3eaf6bfa0..000000000
--- a/source/ap/vim/patches/7.3.270
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index c42d19a82..000000000
--- a/source/ap/vim/patches/7.3.271
+++ /dev/null
@@ -1,504 +0,0 @@
-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
deleted file mode 100644
index b512a1fd7..000000000
--- a/source/ap/vim/patches/7.3.272
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index e74eb5a2a..000000000
--- a/source/ap/vim/patches/7.3.273
+++ /dev/null
@@ -1,124 +0,0 @@
-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
deleted file mode 100644
index 48faf3cf0..000000000
--- a/source/ap/vim/patches/7.3.274
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 2bdd145b9..000000000
--- a/source/ap/vim/patches/7.3.275
+++ /dev/null
@@ -1,77 +0,0 @@
-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
deleted file mode 100644
index 3af02457d..000000000
--- a/source/ap/vim/patches/7.3.276
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 3509a1a6f..000000000
--- a/source/ap/vim/patches/7.3.277
+++ /dev/null
@@ -1,348 +0,0 @@
-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
deleted file mode 100644
index 60bc0ac87..000000000
--- a/source/ap/vim/patches/7.3.278
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index 6a8814b62..000000000
--- a/source/ap/vim/patches/7.3.279
+++ /dev/null
@@ -1,118 +0,0 @@
-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
deleted file mode 100644
index 1c1387aee..000000000
--- a/source/ap/vim/patches/7.3.280
+++ /dev/null
@@ -1,181 +0,0 @@
-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
deleted file mode 100644
index f90e95e13..000000000
--- a/source/ap/vim/patches/7.3.281
+++ /dev/null
@@ -1,134 +0,0 @@
-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
deleted file mode 100644
index dcd16806e..000000000
--- a/source/ap/vim/patches/7.3.282
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index 1a3a6358c..000000000
--- a/source/ap/vim/patches/7.3.283
+++ /dev/null
@@ -1,114 +0,0 @@
-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
deleted file mode 100644
index c621ced63..000000000
--- a/source/ap/vim/patches/7.3.284
+++ /dev/null
@@ -1,211 +0,0 @@
-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
deleted file mode 100644
index 24be28bc0..000000000
--- a/source/ap/vim/patches/7.3.285
+++ /dev/null
@@ -1,144 +0,0 @@
-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
deleted file mode 100644
index 308d5105c..000000000
--- a/source/ap/vim/patches/7.3.286
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index 5c6da035f..000000000
--- a/source/ap/vim/patches/7.3.287
+++ /dev/null
@@ -1,100 +0,0 @@
-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
deleted file mode 100644
index d1f662681..000000000
--- a/source/ap/vim/patches/7.3.288
+++ /dev/null
@@ -1,76 +0,0 @@
-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
deleted file mode 100644
index 30258e429..000000000
--- a/source/ap/vim/patches/7.3.289
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index b50cacfc4..000000000
--- a/source/ap/vim/patches/7.3.290
+++ /dev/null
@@ -1,75 +0,0 @@
-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
deleted file mode 100644
index 1d394e4c9..000000000
--- a/source/ap/vim/patches/7.3.291
+++ /dev/null
@@ -1,125 +0,0 @@
-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
deleted file mode 100644
index fc9480fee..000000000
--- a/source/ap/vim/patches/7.3.292
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 4072e32f1..000000000
--- a/source/ap/vim/patches/7.3.293
+++ /dev/null
@@ -1,74 +0,0 @@
-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
deleted file mode 100644
index 84252ba3e..000000000
--- a/source/ap/vim/patches/7.3.294
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index fad7ea3e4..000000000
--- a/source/ap/vim/patches/7.3.295
+++ /dev/null
@@ -1,109 +0,0 @@
-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
deleted file mode 100644
index 80369d1af..000000000
--- a/source/ap/vim/patches/7.3.296
+++ /dev/null
@@ -1,222 +0,0 @@
-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
deleted file mode 100644
index 09be76841..000000000
--- a/source/ap/vim/patches/7.3.297
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 65a51aa04..000000000
--- a/source/ap/vim/patches/7.3.298
+++ /dev/null
@@ -1,167 +0,0 @@
-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
deleted file mode 100644
index 4f755d909..000000000
--- a/source/ap/vim/patches/7.3.299
+++ /dev/null
@@ -1,516 +0,0 @@
-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
deleted file mode 100644
index 132b14a74..000000000
--- a/source/ap/vim/patches/7.3.300
+++ /dev/null
@@ -1,74 +0,0 @@
-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
deleted file mode 100644
index bb52974dc..000000000
--- a/source/ap/vim/patches/7.3.301
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index f8d2c2499..000000000
--- a/source/ap/vim/patches/7.3.302
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644
index f85bf68d6..000000000
--- a/source/ap/vim/patches/7.3.303
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 6abfe9cc2..000000000
--- a/source/ap/vim/patches/7.3.304
+++ /dev/null
@@ -1,103 +0,0 @@
-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
deleted file mode 100644
index e70fd5940..000000000
--- a/source/ap/vim/patches/7.3.305
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index 62bd4cfce..000000000
--- a/source/ap/vim/patches/7.3.306
+++ /dev/null
@@ -1,244 +0,0 @@
-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
deleted file mode 100644
index 3fd95e112..000000000
--- a/source/ap/vim/patches/7.3.307
+++ /dev/null
@@ -1,180 +0,0 @@
-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
deleted file mode 100644
index 36e5de516..000000000
--- a/source/ap/vim/patches/7.3.308
+++ /dev/null
@@ -1,260 +0,0 @@
-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
deleted file mode 100644
index f274284bd..000000000
--- a/source/ap/vim/patches/7.3.309
+++ /dev/null
@@ -1,105 +0,0 @@
-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
deleted file mode 100644
index e3ffa5a4c..000000000
--- a/source/ap/vim/patches/7.3.310
+++ /dev/null
@@ -1,3524 +0,0 @@
-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
deleted file mode 100644
index 13aec74a9..000000000
--- a/source/ap/vim/patches/7.3.311
+++ /dev/null
@@ -1,351 +0,0 @@
-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
deleted file mode 100644
index d2480e093..000000000
--- a/source/ap/vim/patches/7.3.312
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index ca818b8b8..000000000
--- a/source/ap/vim/patches/7.3.313
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 76415d65b..000000000
--- a/source/ap/vim/patches/7.3.314
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 2240f7b74..000000000
--- a/source/ap/vim/patches/7.3.315
+++ /dev/null
@@ -1,475 +0,0 @@
-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
deleted file mode 100644
index 96a7d42b3..000000000
--- a/source/ap/vim/patches/7.3.316
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 220cae218..000000000
--- a/source/ap/vim/patches/7.3.317
+++ /dev/null
@@ -1,116 +0,0 @@
-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
deleted file mode 100644
index 369448023..000000000
--- a/source/ap/vim/patches/7.3.318
+++ /dev/null
@@ -1,90 +0,0 @@
-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
deleted file mode 100644
index 68448ab63..000000000
--- a/source/ap/vim/patches/7.3.319
+++ /dev/null
@@ -1,154 +0,0 @@
-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
deleted file mode 100644
index 3b957c290..000000000
--- a/source/ap/vim/patches/7.3.320
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 6303b013c..000000000
--- a/source/ap/vim/patches/7.3.321
+++ /dev/null
@@ -1,304 +0,0 @@
-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
deleted file mode 100644
index d81b9ec63..000000000
--- a/source/ap/vim/patches/7.3.322
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 10f6d1939..000000000
--- a/source/ap/vim/patches/7.3.323
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 59b5c6c07..000000000
--- a/source/ap/vim/patches/7.3.324
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 80ebc6deb..000000000
--- a/source/ap/vim/patches/7.3.325
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644
index 4ad52e960..000000000
--- a/source/ap/vim/patches/7.3.326
+++ /dev/null
@@ -1,285 +0,0 @@
-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
deleted file mode 100644
index 1de5a9964..000000000
--- a/source/ap/vim/patches/7.3.327
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644
index 24dad7022..000000000
--- a/source/ap/vim/patches/7.3.328
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644
index fe48eb52d..000000000
--- a/source/ap/vim/patches/7.3.329
+++ /dev/null
@@ -1,72 +0,0 @@
-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
deleted file mode 100644
index ab828b94c..000000000
--- a/source/ap/vim/patches/7.3.330
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644
index ba63c1729..000000000
--- a/source/ap/vim/patches/7.3.331
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index ff0ab7c64..000000000
--- a/source/ap/vim/patches/7.3.332
+++ /dev/null
@@ -1,206 +0,0 @@
-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
deleted file mode 100644
index 974b0cda1..000000000
--- a/source/ap/vim/patches/7.3.333
+++ /dev/null
@@ -1,245 +0,0 @@
-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
deleted file mode 100644
index 85d5b16d2..000000000
--- a/source/ap/vim/patches/7.3.334
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index dc1cc5605..000000000
--- a/source/ap/vim/patches/7.3.335
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 902f578c3..000000000
--- a/source/ap/vim/patches/7.3.336
+++ /dev/null
@@ -1,1100 +0,0 @@
-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
deleted file mode 100644
index a2aeb04fe..000000000
--- a/source/ap/vim/patches/7.3.337
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index f273212ac..000000000
--- a/source/ap/vim/patches/7.3.338
+++ /dev/null
@@ -1,100 +0,0 @@
-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
deleted file mode 100644
index f108ad6e0..000000000
--- a/source/ap/vim/patches/7.3.339
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index fb0b8423d..000000000
--- a/source/ap/vim/patches/7.3.340
+++ /dev/null
@@ -1,62 +0,0 @@
-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
deleted file mode 100644
index 6ea386031..000000000
--- a/source/ap/vim/patches/7.3.341
+++ /dev/null
@@ -1,360 +0,0 @@
-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
deleted file mode 100644
index 2deb7e385..000000000
--- a/source/ap/vim/patches/7.3.342
+++ /dev/null
@@ -1,93 +0,0 @@
-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
deleted file mode 100644
index db62264d0..000000000
--- a/source/ap/vim/patches/7.3.343
+++ /dev/null
@@ -1,252 +0,0 @@
-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
deleted file mode 100644
index d2bb1dbe2..000000000
--- a/source/ap/vim/patches/7.3.344
+++ /dev/null
@@ -1,121 +0,0 @@
-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
deleted file mode 100644
index 99dd074a2..000000000
--- a/source/ap/vim/patches/7.3.345
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index e6b1a2b64..000000000
--- a/source/ap/vim/patches/7.3.346
+++ /dev/null
@@ -1,143 +0,0 @@
-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
deleted file mode 100644
index 85b0feb75..000000000
--- a/source/ap/vim/patches/7.3.347
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index e92febb98..000000000
--- a/source/ap/vim/patches/7.3.348
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index ac519afe8..000000000
--- a/source/ap/vim/patches/7.3.349
+++ /dev/null
@@ -1,88 +0,0 @@
-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
deleted file mode 100644
index 5a1f3327c..000000000
--- a/source/ap/vim/patches/7.3.350
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index 15b2194c1..000000000
--- a/source/ap/vim/patches/7.3.351
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index 52842cfc5..000000000
--- a/source/ap/vim/patches/7.3.352
+++ /dev/null
@@ -1,108 +0,0 @@
-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
deleted file mode 100644
index 1846243e8..000000000
--- a/source/ap/vim/patches/7.3.353
+++ /dev/null
@@ -1,155 +0,0 @@
-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
deleted file mode 100644
index 8250f9af9..000000000
--- a/source/ap/vim/patches/7.3.354
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index 51bc3b7f8..000000000
--- a/source/ap/vim/patches/7.3.355
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 8b5572bdf..000000000
--- a/source/ap/vim/patches/7.3.356
+++ /dev/null
@@ -1,79 +0,0 @@
-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
deleted file mode 100644
index 893a6bb4f..000000000
--- a/source/ap/vim/patches/7.3.357
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index b9b385f87..000000000
--- a/source/ap/vim/patches/7.3.358
+++ /dev/null
@@ -1,74 +0,0 @@
-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
deleted file mode 100644
index 7fbd3f6fa..000000000
--- a/source/ap/vim/patches/7.3.359
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644
index de153c835..000000000
--- a/source/ap/vim/patches/7.3.360
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index c128057f9..000000000
--- a/source/ap/vim/patches/7.3.361
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 005688617..000000000
--- a/source/ap/vim/patches/7.3.362
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 10ab5482f..000000000
--- a/source/ap/vim/patches/7.3.363
+++ /dev/null
@@ -1,110 +0,0 @@
-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
deleted file mode 100644
index e62ef76d9..000000000
--- a/source/ap/vim/patches/7.3.364
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index 16d5ad1b0..000000000
--- a/source/ap/vim/patches/7.3.365
+++ /dev/null
@@ -1,131 +0,0 @@
-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
deleted file mode 100644
index ddf39903f..000000000
--- a/source/ap/vim/patches/7.3.366
+++ /dev/null
@@ -1,76 +0,0 @@
-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
deleted file mode 100644
index 2452d531c..000000000
--- a/source/ap/vim/patches/7.3.367
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 958c69e71..000000000
--- a/source/ap/vim/patches/7.3.368
+++ /dev/null
@@ -1,103 +0,0 @@
-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
deleted file mode 100644
index af6e7e6e7..000000000
--- a/source/ap/vim/patches/7.3.369
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index 26bce4d10..000000000
--- a/source/ap/vim/patches/7.3.370
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index 1701c1189..000000000
--- a/source/ap/vim/patches/7.3.371
+++ /dev/null
@@ -1,75 +0,0 @@
-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
deleted file mode 100644
index c9978c31e..000000000
--- a/source/ap/vim/patches/7.3.372
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 3e8937a03..000000000
--- a/source/ap/vim/patches/7.3.373
+++ /dev/null
@@ -1,78 +0,0 @@
-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
deleted file mode 100644
index b312828ae..000000000
--- a/source/ap/vim/patches/7.3.374
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 6f15fea1b..000000000
--- a/source/ap/vim/patches/7.3.375
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644
index 1e20743e0..000000000
--- a/source/ap/vim/patches/7.3.376
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index 1a2df1d5c..000000000
--- a/source/ap/vim/patches/7.3.377
+++ /dev/null
@@ -1,406 +0,0 @@
-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
deleted file mode 100644
index 8ad3d7037..000000000
--- a/source/ap/vim/patches/7.3.378
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index fd87f9a1e..000000000
--- a/source/ap/vim/patches/7.3.379
+++ /dev/null
@@ -1,112 +0,0 @@
-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
deleted file mode 100644
index a8f4bcf65..000000000
--- a/source/ap/vim/patches/7.3.380
+++ /dev/null
@@ -1,318 +0,0 @@
-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
deleted file mode 100644
index b79573792..000000000
--- a/source/ap/vim/patches/7.3.381
+++ /dev/null
@@ -1,260 +0,0 @@
-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
deleted file mode 100644
index 7f344e7e1..000000000
--- a/source/ap/vim/patches/7.3.382
+++ /dev/null
@@ -1,173 +0,0 @@
-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
deleted file mode 100644
index c0ce6d905..000000000
--- a/source/ap/vim/patches/7.3.383
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index f75ff4082..000000000
--- a/source/ap/vim/patches/7.3.384
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 405a77f00..000000000
--- a/source/ap/vim/patches/7.3.385
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index c9035050c..000000000
--- a/source/ap/vim/patches/7.3.386
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 6b20a58a4..000000000
--- a/source/ap/vim/patches/7.3.387
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index 7a6df8952..000000000
--- a/source/ap/vim/patches/7.3.388
+++ /dev/null
@@ -1,45 +0,0 @@
-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
deleted file mode 100644
index c8a968c36..000000000
--- a/source/ap/vim/patches/7.3.389
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index 7199f8e18..000000000
--- a/source/ap/vim/patches/7.3.390
+++ /dev/null
@@ -1,155 +0,0 @@
-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
deleted file mode 100644
index 0a1bcceb5..000000000
--- a/source/ap/vim/patches/7.3.391
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index a603d90e2..000000000
--- a/source/ap/vim/patches/7.3.392
+++ /dev/null
@@ -1,115 +0,0 @@
-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
deleted file mode 100644
index ca6cbc96d..000000000
--- a/source/ap/vim/patches/7.3.393
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 20c7cffec..000000000
--- a/source/ap/vim/patches/7.3.394
+++ /dev/null
@@ -1,62 +0,0 @@
-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
deleted file mode 100644
index cb2689395..000000000
--- a/source/ap/vim/patches/7.3.395
+++ /dev/null
@@ -1,115 +0,0 @@
-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
deleted file mode 100644
index 72b55a29c..000000000
--- a/source/ap/vim/patches/7.3.396
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 866b3aaca..000000000
--- a/source/ap/vim/patches/7.3.397
+++ /dev/null
@@ -1,224 +0,0 @@
-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
deleted file mode 100644
index 8d4b21381..000000000
--- a/source/ap/vim/patches/7.3.398
+++ /dev/null
@@ -1,65 +0,0 @@
-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
deleted file mode 100644
index 33d063020..000000000
--- a/source/ap/vim/patches/7.3.399
+++ /dev/null
@@ -1,137 +0,0 @@
-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
deleted file mode 100644
index c621a8811..000000000
--- a/source/ap/vim/patches/7.3.400
+++ /dev/null
@@ -1,1762 +0,0 @@
-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
deleted file mode 100644
index 6a473c575..000000000
--- a/source/ap/vim/patches/7.3.401
+++ /dev/null
@@ -1,191 +0,0 @@
-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
deleted file mode 100644
index a5501f8c5..000000000
--- a/source/ap/vim/patches/7.3.402
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index bc3bf5498..000000000
--- a/source/ap/vim/patches/7.3.403
+++ /dev/null
@@ -1,108 +0,0 @@
-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
deleted file mode 100644
index 445d7051d..000000000
--- a/source/ap/vim/patches/7.3.404
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644
index 087aecc41..000000000
--- a/source/ap/vim/patches/7.3.405
+++ /dev/null
@@ -1,101 +0,0 @@
-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
deleted file mode 100644
index dceca0edb..000000000
--- a/source/ap/vim/patches/7.3.406
+++ /dev/null
@@ -1,103 +0,0 @@
-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
deleted file mode 100644
index d5ac1330c..000000000
--- a/source/ap/vim/patches/7.3.407
+++ /dev/null
@@ -1,270 +0,0 @@
-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
deleted file mode 100644
index 02276085c..000000000
--- a/source/ap/vim/patches/7.3.408
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index a00fdcb8d..000000000
--- a/source/ap/vim/patches/7.3.409
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index f40e06faf..000000000
--- a/source/ap/vim/patches/7.3.410
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index fe7599522..000000000
--- a/source/ap/vim/patches/7.3.411
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 3b181883a..000000000
--- a/source/ap/vim/patches/7.3.412
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index c32c9b1dd..000000000
--- a/source/ap/vim/patches/7.3.413
+++ /dev/null
@@ -1,90 +0,0 @@
-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
deleted file mode 100644
index 6f6c30753..000000000
--- a/source/ap/vim/patches/7.3.414
+++ /dev/null
@@ -1,90 +0,0 @@
-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
deleted file mode 100644
index 74e757b2d..000000000
--- a/source/ap/vim/patches/7.3.415
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index f65bb0d2f..000000000
--- a/source/ap/vim/patches/7.3.416
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 489d27eb4..000000000
--- a/source/ap/vim/patches/7.3.417
+++ /dev/null
@@ -1,47 +0,0 @@
-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
deleted file mode 100644
index 6ff486b63..000000000
--- a/source/ap/vim/patches/7.3.418
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 865a47c75..000000000
--- a/source/ap/vim/patches/7.3.419
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644
index d698d0b48..000000000
--- a/source/ap/vim/patches/7.3.420
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index eadc29df2..000000000
--- a/source/ap/vim/patches/7.3.421
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index 7be4aebde..000000000
--- a/source/ap/vim/patches/7.3.422
+++ /dev/null
@@ -1,94 +0,0 @@
-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
deleted file mode 100644
index 74bf62d2a..000000000
--- a/source/ap/vim/patches/7.3.423
+++ /dev/null
@@ -1,130 +0,0 @@
-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
deleted file mode 100644
index 61786ed8d..000000000
--- a/source/ap/vim/patches/7.3.424
+++ /dev/null
@@ -1,62 +0,0 @@
-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
deleted file mode 100644
index aeadf3a3a..000000000
--- a/source/ap/vim/patches/7.3.425
+++ /dev/null
@@ -1,78 +0,0 @@
-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
deleted file mode 100644
index 76380af1a..000000000
--- a/source/ap/vim/patches/7.3.426
+++ /dev/null
@@ -1,279 +0,0 @@
-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
deleted file mode 100644
index 61df88122..000000000
--- a/source/ap/vim/patches/7.3.427
+++ /dev/null
@@ -1,378 +0,0 @@
-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
deleted file mode 100644
index 89567ed81..000000000
--- a/source/ap/vim/patches/7.3.428
+++ /dev/null
@@ -1,113 +0,0 @@
-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
deleted file mode 100644
index 801e25f9e..000000000
--- a/source/ap/vim/patches/7.3.429
+++ /dev/null
@@ -1,192 +0,0 @@
-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
deleted file mode 100644
index c67e7fb03..000000000
--- a/source/ap/vim/patches/7.3.430
+++ /dev/null
@@ -1,80 +0,0 @@
-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
deleted file mode 100644
index 2e4e62b3f..000000000
--- a/source/ap/vim/patches/7.3.431
+++ /dev/null
@@ -1,280 +0,0 @@
-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
deleted file mode 100644
index c01dd59a0..000000000
--- a/source/ap/vim/patches/7.3.432
+++ /dev/null
@@ -1,228 +0,0 @@
-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
deleted file mode 100644
index bb83828ff..000000000
--- a/source/ap/vim/patches/7.3.433
+++ /dev/null
@@ -1,92 +0,0 @@
-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
deleted file mode 100644
index 52c14b90d..000000000
--- a/source/ap/vim/patches/7.3.434
+++ /dev/null
@@ -1,233 +0,0 @@
-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
deleted file mode 100644
index e1b13709a..000000000
--- a/source/ap/vim/patches/7.3.435
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index 777371ca9..000000000
--- a/source/ap/vim/patches/7.3.436
+++ /dev/null
@@ -1,111 +0,0 @@
-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
deleted file mode 100644
index 889efe746..000000000
--- a/source/ap/vim/patches/7.3.437
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index 94786d7cc..000000000
--- a/source/ap/vim/patches/7.3.438
+++ /dev/null
@@ -1,126 +0,0 @@
-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
deleted file mode 100644
index 63d8f693f..000000000
--- a/source/ap/vim/patches/7.3.439
+++ /dev/null
@@ -1,87 +0,0 @@
-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
deleted file mode 100644
index 39313b0f6..000000000
--- a/source/ap/vim/patches/7.3.440
+++ /dev/null
@@ -1,211 +0,0 @@
-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
deleted file mode 100644
index 9a7539b5a..000000000
--- a/source/ap/vim/patches/7.3.441
+++ /dev/null
@@ -1,341 +0,0 @@
-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
deleted file mode 100644
index 58b58b4ea..000000000
--- a/source/ap/vim/patches/7.3.442
+++ /dev/null
@@ -1,186 +0,0 @@
-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
deleted file mode 100644
index 84b45baa2..000000000
--- a/source/ap/vim/patches/7.3.443
+++ /dev/null
@@ -1,206 +0,0 @@
-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
deleted file mode 100644
index 64ed88bf1..000000000
--- a/source/ap/vim/patches/7.3.444
+++ /dev/null
@@ -1,96 +0,0 @@
-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
deleted file mode 100644
index 8d7c337be..000000000
--- a/source/ap/vim/patches/7.3.445
+++ /dev/null
@@ -1,199 +0,0 @@
-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
deleted file mode 100644
index 59a2b254c..000000000
--- a/source/ap/vim/patches/7.3.446
+++ /dev/null
@@ -1,164 +0,0 @@
-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
deleted file mode 100644
index 9c0af9f4d..000000000
--- a/source/ap/vim/patches/7.3.447
+++ /dev/null
@@ -1,377 +0,0 @@
-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
deleted file mode 100644
index 91d8f26e0..000000000
--- a/source/ap/vim/patches/7.3.448
+++ /dev/null
@@ -1,180 +0,0 @@
-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
deleted file mode 100644
index 9b5bdea85..000000000
--- a/source/ap/vim/patches/7.3.449
+++ /dev/null
@@ -1,455 +0,0 @@
-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
deleted file mode 100644
index 7112668f4..000000000
--- a/source/ap/vim/patches/7.3.450
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 25d1b0467..000000000
--- a/source/ap/vim/patches/7.3.451
+++ /dev/null
@@ -1,363 +0,0 @@
-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
deleted file mode 100644
index 295b2fe89..000000000
--- a/source/ap/vim/patches/7.3.452
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index cf0f0e716..000000000
--- a/source/ap/vim/patches/7.3.453
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index 8658926af..000000000
--- a/source/ap/vim/patches/7.3.454
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index 217b00d70..000000000
--- a/source/ap/vim/patches/7.3.455
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 26fc2a987..000000000
--- a/source/ap/vim/patches/7.3.456
+++ /dev/null
@@ -1,376 +0,0 @@
-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
deleted file mode 100644
index e60d6242d..000000000
--- a/source/ap/vim/patches/7.3.457
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 9bd440734..000000000
--- a/source/ap/vim/patches/7.3.458
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index d75a38b44..000000000
--- a/source/ap/vim/patches/7.3.459
+++ /dev/null
@@ -1,71 +0,0 @@
-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
deleted file mode 100644
index c1d7e85b3..000000000
--- a/source/ap/vim/patches/7.3.460
+++ /dev/null
@@ -1,89 +0,0 @@
-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
deleted file mode 100644
index 53c83c061..000000000
--- a/source/ap/vim/patches/7.3.461
+++ /dev/null
@@ -1,243 +0,0 @@
-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
deleted file mode 100644
index df0372421..000000000
--- a/source/ap/vim/patches/7.3.462
+++ /dev/null
@@ -1,191 +0,0 @@
-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
deleted file mode 100644
index 1e7cb238f..000000000
--- a/source/ap/vim/patches/7.3.463
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index fdfdfffc1..000000000
--- a/source/ap/vim/patches/7.3.464
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index c4a857ac9..000000000
--- a/source/ap/vim/patches/7.3.465
+++ /dev/null
@@ -1,398 +0,0 @@
-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
deleted file mode 100644
index 0dc42934d..000000000
--- a/source/ap/vim/patches/7.3.466
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 7764217c7..000000000
--- a/source/ap/vim/patches/7.3.467
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index e078f9eae..000000000
--- a/source/ap/vim/patches/7.3.468
+++ /dev/null
@@ -1,144 +0,0 @@
-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
deleted file mode 100644
index 77ca4a05e..000000000
--- a/source/ap/vim/patches/7.3.469
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 80bec1564..000000000
--- a/source/ap/vim/patches/7.3.470
+++ /dev/null
@@ -1,67 +0,0 @@
-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
deleted file mode 100644
index be814324f..000000000
--- a/source/ap/vim/patches/7.3.471
+++ /dev/null
@@ -1,92 +0,0 @@
-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
deleted file mode 100644
index 217b2fc99..000000000
--- a/source/ap/vim/patches/7.3.472
+++ /dev/null
@@ -1,88 +0,0 @@
-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
deleted file mode 100644
index 571f85dac..000000000
--- a/source/ap/vim/patches/7.3.473
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644
index dc6b1d6eb..000000000
--- a/source/ap/vim/patches/7.3.474
+++ /dev/null
@@ -1,62 +0,0 @@
-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
deleted file mode 100644
index 54c27a21f..000000000
--- a/source/ap/vim/patches/7.3.475
+++ /dev/null
@@ -1,98 +0,0 @@
-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
deleted file mode 100644
index 959b906bc..000000000
--- a/source/ap/vim/patches/7.3.476
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 8030ee65a..000000000
--- a/source/ap/vim/patches/7.3.477
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index bad69ef2f..000000000
--- a/source/ap/vim/patches/7.3.478
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index fc256c1fb..000000000
--- a/source/ap/vim/patches/7.3.479
+++ /dev/null
@@ -1,134 +0,0 @@
-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
deleted file mode 100644
index 6d1e21dee..000000000
--- a/source/ap/vim/patches/7.3.480
+++ /dev/null
@@ -1,237 +0,0 @@
-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
deleted file mode 100644
index 69f691585..000000000
--- a/source/ap/vim/patches/7.3.481
+++ /dev/null
@@ -1,65 +0,0 @@
-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
deleted file mode 100644
index 56ff30178..000000000
--- a/source/ap/vim/patches/7.3.482
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index bab488b4a..000000000
--- a/source/ap/vim/patches/7.3.483
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index 99968eb2b..000000000
--- a/source/ap/vim/patches/7.3.484
+++ /dev/null
@@ -1,62 +0,0 @@
-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
deleted file mode 100644
index 46b4cb732..000000000
--- a/source/ap/vim/patches/7.3.485
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 44e2afe84..000000000
--- a/source/ap/vim/patches/7.3.486
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index 3c00349b3..000000000
--- a/source/ap/vim/patches/7.3.487
+++ /dev/null
@@ -1,572 +0,0 @@
-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
deleted file mode 100644
index e07874040..000000000
--- a/source/ap/vim/patches/7.3.488
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index fbdf2c39f..000000000
--- a/source/ap/vim/patches/7.3.489
+++ /dev/null
@@ -1,89 +0,0 @@
-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
deleted file mode 100644
index 6c49a48d5..000000000
--- a/source/ap/vim/patches/7.3.490
+++ /dev/null
@@ -1,2517 +0,0 @@
-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
deleted file mode 100644
index b675722e1..000000000
--- a/source/ap/vim/patches/7.3.491
+++ /dev/null
@@ -1,235 +0,0 @@
-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
deleted file mode 100644
index b32b6f68e..000000000
--- a/source/ap/vim/patches/7.3.492
+++ /dev/null
@@ -1,718 +0,0 @@
-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
deleted file mode 100644
index ff662b254..000000000
--- a/source/ap/vim/patches/7.3.493
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 81bd24b7d..000000000
--- a/source/ap/vim/patches/7.3.494
+++ /dev/null
@@ -1,186 +0,0 @@
-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
deleted file mode 100644
index 54c230627..000000000
--- a/source/ap/vim/patches/7.3.495
+++ /dev/null
@@ -1,124 +0,0 @@
-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
deleted file mode 100644
index 8b110517c..000000000
--- a/source/ap/vim/patches/7.3.496
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index 5cbffc4ae..000000000
--- a/source/ap/vim/patches/7.3.497
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index aa9c621ee..000000000
--- a/source/ap/vim/patches/7.3.498
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index 4e45e4fb7..000000000
--- a/source/ap/vim/patches/7.3.499
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index b3b6a375e..000000000
--- a/source/ap/vim/patches/7.3.500
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index a74b02888..000000000
--- a/source/ap/vim/patches/7.3.501
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index c9710abfb..000000000
--- a/source/ap/vim/patches/7.3.502
+++ /dev/null
@@ -1,67 +0,0 @@
-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
deleted file mode 100644
index 5b776ae0d..000000000
--- a/source/ap/vim/patches/7.3.503
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index 752279060..000000000
--- a/source/ap/vim/patches/7.3.504
+++ /dev/null
@@ -1,87 +0,0 @@
-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
deleted file mode 100644
index 1a8a7ea37..000000000
--- a/source/ap/vim/patches/7.3.505
+++ /dev/null
@@ -1,116 +0,0 @@
-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
deleted file mode 100644
index 32be6fd10..000000000
--- a/source/ap/vim/patches/7.3.506
+++ /dev/null
@@ -1,100 +0,0 @@
-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
deleted file mode 100644
index c96561c39..000000000
--- a/source/ap/vim/patches/7.3.507
+++ /dev/null
@@ -1,149 +0,0 @@
-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
deleted file mode 100644
index 7b8e7b261..000000000
--- a/source/ap/vim/patches/7.3.508
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644
index 8dfe9c09d..000000000
--- a/source/ap/vim/patches/7.3.509
+++ /dev/null
@@ -1,304 +0,0 @@
-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
deleted file mode 100644
index afe104144..000000000
--- a/source/ap/vim/patches/7.3.510
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index a2b6dce0f..000000000
--- a/source/ap/vim/patches/7.3.511
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 838ae3e2f..000000000
--- a/source/ap/vim/patches/7.3.512
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 396969f50..000000000
--- a/source/ap/vim/patches/7.3.513
+++ /dev/null
@@ -1,129 +0,0 @@
-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
deleted file mode 100644
index 79620f0e1..000000000
--- a/source/ap/vim/patches/7.3.514
+++ /dev/null
@@ -1,232 +0,0 @@
-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
deleted file mode 100644
index dad6f617f..000000000
--- a/source/ap/vim/patches/7.3.515
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644
index d43be5a09..000000000
--- a/source/ap/vim/patches/7.3.516
+++ /dev/null
@@ -1,94 +0,0 @@
-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
deleted file mode 100644
index 343693ba3..000000000
--- a/source/ap/vim/patches/7.3.517
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index 89429f0c6..000000000
--- a/source/ap/vim/patches/7.3.518
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index 846cea6b5..000000000
--- a/source/ap/vim/patches/7.3.519
+++ /dev/null
@@ -1,64 +0,0 @@
-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
deleted file mode 100644
index 9e2da8d7b..000000000
--- a/source/ap/vim/patches/7.3.520
+++ /dev/null
@@ -1,140 +0,0 @@
-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
deleted file mode 100644
index efe7122b9..000000000
--- a/source/ap/vim/patches/7.3.521
+++ /dev/null
@@ -1,129 +0,0 @@
-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
deleted file mode 100644
index 2f4d17ce7..000000000
--- a/source/ap/vim/patches/7.3.522
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 7eec3ea2f..000000000
--- a/source/ap/vim/patches/7.3.523
+++ /dev/null
@@ -1,103 +0,0 @@
-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
deleted file mode 100644
index 80d7baf66..000000000
--- a/source/ap/vim/patches/7.3.524
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index c9741cbfc..000000000
--- a/source/ap/vim/patches/7.3.525
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 036d401fd..000000000
--- a/source/ap/vim/patches/7.3.526
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 0c6af2b0d..000000000
--- a/source/ap/vim/patches/7.3.527
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 41084ad4f..000000000
--- a/source/ap/vim/patches/7.3.528
+++ /dev/null
@@ -1,171 +0,0 @@
-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
deleted file mode 100644
index 386baf1fe..000000000
--- a/source/ap/vim/patches/7.3.529
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 216117ca2..000000000
--- a/source/ap/vim/patches/7.3.530
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index 652bdb739..000000000
--- a/source/ap/vim/patches/7.3.531
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 071cab345..000000000
--- a/source/ap/vim/patches/7.3.532
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 1d71c8d18..000000000
--- a/source/ap/vim/patches/7.3.533
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index 618d6e4e1..000000000
--- a/source/ap/vim/patches/7.3.534
+++ /dev/null
@@ -1,101 +0,0 @@
-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
deleted file mode 100644
index e7f0f8a9c..000000000
--- a/source/ap/vim/patches/7.3.535
+++ /dev/null
@@ -1,356 +0,0 @@
-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
deleted file mode 100644
index e0c3f760f..000000000
--- a/source/ap/vim/patches/7.3.536
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index 76b41c8ad..000000000
--- a/source/ap/vim/patches/7.3.537
+++ /dev/null
@@ -1,47 +0,0 @@
-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
deleted file mode 100644
index 947fa65bc..000000000
--- a/source/ap/vim/patches/7.3.538
+++ /dev/null
@@ -1,321 +0,0 @@
-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
deleted file mode 100644
index 267c076d6..000000000
--- a/source/ap/vim/patches/7.3.539
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index 6793eb43a..000000000
--- a/source/ap/vim/patches/7.3.540
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 133b82dad..000000000
--- a/source/ap/vim/patches/7.3.541
+++ /dev/null
@@ -1,1090 +0,0 @@
-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
deleted file mode 100644
index 81086126f..000000000
--- a/source/ap/vim/patches/7.3.542
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index 3fa569cc9..000000000
--- a/source/ap/vim/patches/7.3.543
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 198a6cb1f..000000000
--- a/source/ap/vim/patches/7.3.544
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 1bd76ebee..000000000
--- a/source/ap/vim/patches/7.3.545
+++ /dev/null
@@ -1,359 +0,0 @@
-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
deleted file mode 100644
index c883d2d62..000000000
--- a/source/ap/vim/patches/7.3.546
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 5533144a2..000000000
--- a/source/ap/vim/patches/7.3.547
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 3692a9a90..000000000
--- a/source/ap/vim/patches/7.3.548
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 6d27fc3fd..000000000
--- a/source/ap/vim/patches/7.3.549
+++ /dev/null
@@ -1,125 +0,0 @@
-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
deleted file mode 100644
index 6fba66cd5..000000000
--- a/source/ap/vim/patches/7.3.550
+++ /dev/null
@@ -1,160 +0,0 @@
-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
deleted file mode 100644
index db8dbac78..000000000
--- a/source/ap/vim/patches/7.3.551
+++ /dev/null
@@ -1,494 +0,0 @@
-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
deleted file mode 100644
index e9a560ec5..000000000
--- a/source/ap/vim/patches/7.3.552
+++ /dev/null
@@ -1,582 +0,0 @@
-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
deleted file mode 100644
index 82c757e10..000000000
--- a/source/ap/vim/patches/7.3.553
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644
index e8d4d37a9..000000000
--- a/source/ap/vim/patches/7.3.554
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index acb684522..000000000
--- a/source/ap/vim/patches/7.3.555
+++ /dev/null
@@ -1,232 +0,0 @@
-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
deleted file mode 100644
index 068b8d1f8..000000000
--- a/source/ap/vim/patches/7.3.556
+++ /dev/null
@@ -1,70 +0,0 @@
-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
deleted file mode 100644
index 663c0720e..000000000
--- a/source/ap/vim/patches/7.3.557
+++ /dev/null
@@ -1,99 +0,0 @@
-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
deleted file mode 100644
index 015bc37da..000000000
--- a/source/ap/vim/patches/7.3.558
+++ /dev/null
@@ -1,90 +0,0 @@
-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
deleted file mode 100644
index df7673723..000000000
--- a/source/ap/vim/patches/7.3.559
+++ /dev/null
@@ -1,131 +0,0 @@
-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
deleted file mode 100644
index 7f4641118..000000000
--- a/source/ap/vim/patches/7.3.560
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index d51030c4e..000000000
--- a/source/ap/vim/patches/7.3.561
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 626de4950..000000000
--- a/source/ap/vim/patches/7.3.562
+++ /dev/null
@@ -1,63 +0,0 @@
-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
deleted file mode 100644
index c2ebf4105..000000000
--- a/source/ap/vim/patches/7.3.563
+++ /dev/null
@@ -1,97 +0,0 @@
-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
deleted file mode 100644
index e806b8e46..000000000
--- a/source/ap/vim/patches/7.3.564
+++ /dev/null
@@ -1,53 +0,0 @@
-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
deleted file mode 100644
index 171520b36..000000000
--- a/source/ap/vim/patches/7.3.565
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index a0600e812..000000000
--- a/source/ap/vim/patches/7.3.566
+++ /dev/null
@@ -1,83 +0,0 @@
-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
deleted file mode 100644
index 62399f18a..000000000
--- a/source/ap/vim/patches/7.3.567
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index ef4fcfe51..000000000
--- a/source/ap/vim/patches/7.3.568
+++ /dev/null
@@ -1,138 +0,0 @@
-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
deleted file mode 100644
index 435733fee..000000000
--- a/source/ap/vim/patches/7.3.569
+++ /dev/null
@@ -1,4762 +0,0 @@
-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
deleted file mode 100644
index c644194d5..000000000
--- a/source/ap/vim/patches/7.3.570
+++ /dev/null
@@ -1,145 +0,0 @@
-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
deleted file mode 100644
index ad62ffc2b..000000000
--- a/source/ap/vim/patches/7.3.571
+++ /dev/null
@@ -1,117 +0,0 @@
-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
deleted file mode 100644
index 14fc127ec..000000000
--- a/source/ap/vim/patches/7.3.572
+++ /dev/null
@@ -1,59 +0,0 @@
-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
deleted file mode 100644
index 7734a76a0..000000000
--- a/source/ap/vim/patches/7.3.573
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index e23d818f1..000000000
--- a/source/ap/vim/patches/7.3.574
+++ /dev/null
@@ -1,88 +0,0 @@
-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
deleted file mode 100644
index f5d80d724..000000000
--- a/source/ap/vim/patches/7.3.575
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index bc226d90c..000000000
--- a/source/ap/vim/patches/7.3.576
+++ /dev/null
@@ -1,255 +0,0 @@
-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
deleted file mode 100644
index 2929b22d3..000000000
--- a/source/ap/vim/patches/7.3.577
+++ /dev/null
@@ -1,273 +0,0 @@
-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
deleted file mode 100644
index 9b0aedd26..000000000
--- a/source/ap/vim/patches/7.3.578
+++ /dev/null
@@ -1,80 +0,0 @@
-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
deleted file mode 100644
index ed618fe72..000000000
--- a/source/ap/vim/patches/7.3.579
+++ /dev/null
@@ -1,232 +0,0 @@
-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
deleted file mode 100644
index c2c2a5371..000000000
--- a/source/ap/vim/patches/7.3.580
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 553003039..000000000
--- a/source/ap/vim/patches/7.3.581
+++ /dev/null
@@ -1,117 +0,0 @@
-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
deleted file mode 100644
index 4e118a7df..000000000
--- a/source/ap/vim/patches/7.3.582
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index 2ea7f9d26..000000000
--- a/source/ap/vim/patches/7.3.583
+++ /dev/null
@@ -1,79 +0,0 @@
-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
deleted file mode 100644
index d7f1bdeb4..000000000
--- a/source/ap/vim/patches/7.3.584
+++ /dev/null
@@ -1,134 +0,0 @@
-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
deleted file mode 100644
index 6509780c7..000000000
--- a/source/ap/vim/patches/7.3.585
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 889ebd137..000000000
--- a/source/ap/vim/patches/7.3.586
+++ /dev/null
@@ -1,103 +0,0 @@
-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
deleted file mode 100644
index 22252318b..000000000
--- a/source/ap/vim/patches/7.3.587
+++ /dev/null
@@ -1,84 +0,0 @@
-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
deleted file mode 100644
index 6dfabd073..000000000
--- a/source/ap/vim/patches/7.3.588
+++ /dev/null
@@ -1,85 +0,0 @@
-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
deleted file mode 100644
index fdda2b95f..000000000
--- a/source/ap/vim/patches/7.3.589
+++ /dev/null
@@ -1,69 +0,0 @@
-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
deleted file mode 100644
index 4e524f79b..000000000
--- a/source/ap/vim/patches/7.3.590
+++ /dev/null
@@ -1,61 +0,0 @@
-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
deleted file mode 100644
index 180fe6080..000000000
--- a/source/ap/vim/patches/7.3.591
+++ /dev/null
@@ -1,208 +0,0 @@
-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
deleted file mode 100644
index be13ef744..000000000
--- a/source/ap/vim/patches/7.3.592
+++ /dev/null
@@ -1,126 +0,0 @@
-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
deleted file mode 100644
index b8f26748f..000000000
--- a/source/ap/vim/patches/7.3.593
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 3f7d3b261..000000000
--- a/source/ap/vim/patches/7.3.594
+++ /dev/null
@@ -1,171 +0,0 @@
-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
deleted file mode 100644
index 0fc9b522e..000000000
--- a/source/ap/vim/patches/7.3.595
+++ /dev/null
@@ -1,154 +0,0 @@
-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
deleted file mode 100644
index 59513b2b2..000000000
--- a/source/ap/vim/patches/7.3.596
+++ /dev/null
@@ -1,171 +0,0 @@
-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
deleted file mode 100644
index 2a4f0b3d7..000000000
--- a/source/ap/vim/patches/7.3.597
+++ /dev/null
@@ -1,720 +0,0 @@
-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
deleted file mode 100644
index 3a38b4a78..000000000
--- a/source/ap/vim/patches/7.3.598
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index adfe6f996..000000000
--- a/source/ap/vim/patches/7.3.599
+++ /dev/null
@@ -1,107 +0,0 @@
-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
deleted file mode 100644
index 6504da017..000000000
--- a/source/ap/vim/patches/7.3.600
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644
index b61a93316..000000000
--- a/source/ap/vim/patches/7.3.601
+++ /dev/null
@@ -1,51 +0,0 @@
-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
deleted file mode 100644
index fd5f3cf47..000000000
--- a/source/ap/vim/patches/7.3.602
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 00a024b0a..000000000
--- a/source/ap/vim/patches/7.3.603
+++ /dev/null
@@ -1,370 +0,0 @@
-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
deleted file mode 100644
index f7e63bd0d..000000000
--- a/source/ap/vim/patches/7.3.604
+++ /dev/null
@@ -1,60 +0,0 @@
-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
deleted file mode 100644
index 703382516..000000000
--- a/source/ap/vim/patches/7.3.605
+++ /dev/null
@@ -1,86 +0,0 @@
-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
deleted file mode 100644
index 2296653c4..000000000
--- a/source/ap/vim/patches/7.3.606
+++ /dev/null
@@ -1,76 +0,0 @@
-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
deleted file mode 100644
index 4dbf559dd..000000000
--- a/source/ap/vim/patches/7.3.607
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 148bc494e..000000000
--- a/source/ap/vim/patches/7.3.608
+++ /dev/null
@@ -1,119 +0,0 @@
-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
deleted file mode 100644
index ed731f509..000000000
--- a/source/ap/vim/patches/7.3.609
+++ /dev/null
@@ -1,251 +0,0 @@
-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
deleted file mode 100644
index 5e48837fa..000000000
--- a/source/ap/vim/patches/7.3.610
+++ /dev/null
@@ -1,400 +0,0 @@
-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
deleted file mode 100644
index 5e366a784..000000000
--- a/source/ap/vim/patches/7.3.611
+++ /dev/null
@@ -1,58 +0,0 @@
-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
deleted file mode 100644
index 7b2207ede..000000000
--- a/source/ap/vim/patches/7.3.612
+++ /dev/null
@@ -1,83 +0,0 @@
-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
deleted file mode 100644
index 520e87c38..000000000
--- a/source/ap/vim/patches/7.3.613
+++ /dev/null
@@ -1,149 +0,0 @@
-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
deleted file mode 100644
index 87d7a4512..000000000
--- a/source/ap/vim/patches/7.3.614
+++ /dev/null
@@ -1,176 +0,0 @@
-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
deleted file mode 100644
index 96f6885fa..000000000
--- a/source/ap/vim/patches/7.3.615
+++ /dev/null
@@ -1,107 +0,0 @@
-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
deleted file mode 100644
index 5898eafe9..000000000
--- a/source/ap/vim/patches/7.3.616
+++ /dev/null
@@ -1,46 +0,0 @@
-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
deleted file mode 100644
index 48062cd2a..000000000
--- a/source/ap/vim/patches/7.3.617
+++ /dev/null
@@ -1,65 +0,0 @@
-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
deleted file mode 100644
index d0cc9c681..000000000
--- a/source/ap/vim/patches/7.3.618
+++ /dev/null
@@ -1,367 +0,0 @@
-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
deleted file mode 100644
index 1fedcc786..000000000
--- a/source/ap/vim/patches/7.3.619
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index 5890f15f9..000000000
--- a/source/ap/vim/patches/7.3.620
+++ /dev/null
@@ -1,163 +0,0 @@
-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
deleted file mode 100644
index 7e3fe2a55..000000000
--- a/source/ap/vim/patches/7.3.621
+++ /dev/null
@@ -1,72 +0,0 @@
-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
deleted file mode 100644
index a2c260147..000000000
--- a/source/ap/vim/patches/7.3.622
+++ /dev/null
@@ -1,56 +0,0 @@
-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
deleted file mode 100644
index 72aea71f6..000000000
--- a/source/ap/vim/patches/7.3.623
+++ /dev/null
@@ -1,92 +0,0 @@
-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
deleted file mode 100644
index f1150b634..000000000
--- a/source/ap/vim/patches/7.3.624
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 5334bc8f9..000000000
--- a/source/ap/vim/patches/7.3.625
+++ /dev/null
@@ -1,140 +0,0 @@
-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
deleted file mode 100644
index 33b154565..000000000
--- a/source/ap/vim/patches/7.3.626
+++ /dev/null
@@ -1,49 +0,0 @@
-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
deleted file mode 100644
index 97a0298dc..000000000
--- a/source/ap/vim/patches/7.3.627
+++ /dev/null
@@ -1,102 +0,0 @@
-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
deleted file mode 100644
index bab314796..000000000
--- a/source/ap/vim/patches/7.3.628
+++ /dev/null
@@ -1,54 +0,0 @@
-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
deleted file mode 100644
index 8e26dd49d..000000000
--- a/source/ap/vim/patches/7.3.629
+++ /dev/null
@@ -1,437 +0,0 @@
-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
deleted file mode 100644
index d89cfbfe3..000000000
--- a/source/ap/vim/patches/7.3.630
+++ /dev/null
@@ -1,48 +0,0 @@
-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
deleted file mode 100644
index b7bff4fc4..000000000
--- a/source/ap/vim/patches/7.3.631
+++ /dev/null
@@ -1,322 +0,0 @@
-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
deleted file mode 100644
index 9e38969e6..000000000
--- a/source/ap/vim/patches/7.3.632
+++ /dev/null
@@ -1,537 +0,0 @@
-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
deleted file mode 100644
index 899ccb387..000000000
--- a/source/ap/vim/patches/7.3.633
+++ /dev/null
@@ -1,81 +0,0 @@
-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
deleted file mode 100644
index 3262bab3c..000000000
--- a/source/ap/vim/patches/7.3.634
+++ /dev/null
@@ -1,57 +0,0 @@
-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
deleted file mode 100644
index 4a677025f..000000000
--- a/source/ap/vim/patches/7.3.635
+++ /dev/null
@@ -1,50 +0,0 @@
-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
deleted file mode 100644
index 453a7fc99..000000000
--- a/source/ap/vim/patches/7.3.636
+++ /dev/null
@@ -1,148 +0,0 @@
-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
deleted file mode 100644
index f7f1d903a..000000000
--- a/source/ap/vim/patches/7.3.637
+++ /dev/null
@@ -1,94 +0,0 @@
-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
deleted file mode 100644
index f88a9399b..000000000
--- a/source/ap/vim/patches/7.3.638
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index 359dc6d88..000000000
--- a/source/ap/vim/patches/7.3.639
+++ /dev/null
@@ -1,846 +0,0 @@
-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
deleted file mode 100644
index 984df6400..000000000
--- a/source/ap/vim/patches/7.3.640
+++ /dev/null
Binary files differ
diff --git a/source/ap/vim/patches/7.3.641 b/source/ap/vim/patches/7.3.641
deleted file mode 100644
index daacdb4ff..000000000
--- a/source/ap/vim/patches/7.3.641
+++ /dev/null
@@ -1,68 +0,0 @@
-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
deleted file mode 100644
index ddc40321f..000000000
--- a/source/ap/vim/patches/7.3.642
+++ /dev/null
@@ -1,55 +0,0 @@
-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
deleted file mode 100644
index c2f700c58..000000000
--- a/source/ap/vim/patches/7.3.643
+++ /dev/null
@@ -1,73 +0,0 @@
-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
deleted file mode 100644
index 6f2630cc4..000000000
--- a/source/ap/vim/patches/7.3.644
+++ /dev/null
@@ -1,72 +0,0 @@
-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
deleted file mode 100644
index 40d8ee0b8..000000000
--- a/source/ap/vim/patches/7.3.645
+++ /dev/null
@@ -1,118 +0,0 @@
-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/vim/patches/7.4.001 b/source/ap/vim/patches/7.4.001
new file mode 100644
index 000000000..5788972a5
--- /dev/null
+++ b/source/ap/vim/patches/7.4.001
@@ -0,0 +1,489 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.001
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.001
+Problem: Character classes such as [a-z] to not react to 'ignorecase'.
+ Breaks man page highlighting. (Mario Grgic)
+Solution: Add separate items for classes that react to 'ignorecase'. Clean
+ up logic handling character classes. Add more tests.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200
+--- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200
+***************
+*** 29,34 ****
+--- 29,37 ----
+ # define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
+ #endif
+
++ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */
++ #define NFA_ADD_NL 31
++
+ enum
+ {
+ NFA_SPLIT = -1024,
+***************
+*** 183,188 ****
+--- 186,198 ----
+ NFA_NLOWER, /* Match non-lowercase char */
+ NFA_UPPER, /* Match uppercase char */
+ NFA_NUPPER, /* Match non-uppercase char */
++ NFA_LOWER_IC, /* Match [a-z] */
++ NFA_NLOWER_IC, /* Match [^a-z] */
++ NFA_UPPER_IC, /* Match [A-Z] */
++ NFA_NUPPER_IC, /* Match [^A-Z] */
++
++ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL,
++ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL,
+
+ NFA_CURSOR, /* Match cursor pos */
+ NFA_LNUM, /* Match line number */
+***************
+*** 199,207 ****
+ NFA_MARK_LT, /* Match < mark */
+ NFA_VISUAL, /* Match Visual area */
+
+- NFA_FIRST_NL = NFA_ANY + ADD_NL,
+- NFA_LAST_NL = NFA_NUPPER + ADD_NL,
+-
+ /* Character classes [:alnum:] etc */
+ NFA_CLASS_ALNUM,
+ NFA_CLASS_ALPHA,
+--- 209,214 ----
+***************
+*** 578,583 ****
+--- 585,592 ----
+ * On failure, return 0 (=FAIL)
+ * Start points to the first char of the range, while end should point
+ * to the closing brace.
++ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may
++ * need to be interpreted as [a-zA-Z].
+ */
+ static int
+ nfa_recognize_char_class(start, end, extra_newl)
+***************
+*** 681,687 ****
+ return FAIL;
+
+ if (newl == TRUE)
+! extra_newl = ADD_NL;
+
+ switch (config)
+ {
+--- 690,696 ----
+ return FAIL;
+
+ if (newl == TRUE)
+! extra_newl = NFA_ADD_NL;
+
+ switch (config)
+ {
+***************
+*** 710,722 ****
+ case CLASS_not | CLASS_az | CLASS_AZ:
+ return extra_newl + NFA_NALPHA;
+ case CLASS_az:
+! return extra_newl + NFA_LOWER;
+ case CLASS_not | CLASS_az:
+! return extra_newl + NFA_NLOWER;
+ case CLASS_AZ:
+! return extra_newl + NFA_UPPER;
+ case CLASS_not | CLASS_AZ:
+! return extra_newl + NFA_NUPPER;
+ }
+ return FAIL;
+ }
+--- 719,731 ----
+ case CLASS_not | CLASS_az | CLASS_AZ:
+ return extra_newl + NFA_NALPHA;
+ case CLASS_az:
+! return extra_newl + NFA_LOWER_IC;
+ case CLASS_not | CLASS_az:
+! return extra_newl + NFA_NLOWER_IC;
+ case CLASS_AZ:
+! return extra_newl + NFA_UPPER_IC;
+ case CLASS_not | CLASS_AZ:
+! return extra_newl + NFA_NUPPER_IC;
+ }
+ return FAIL;
+ }
+***************
+*** 914,920 ****
+ break;
+ }
+
+! extra = ADD_NL;
+
+ /* "\_[" is collection plus newline */
+ if (c == '[')
+--- 923,929 ----
+ break;
+ }
+
+! extra = NFA_ADD_NL;
+
+ /* "\_[" is collection plus newline */
+ if (c == '[')
+***************
+*** 970,976 ****
+ }
+ #endif
+ EMIT(nfa_classcodes[p - classchars]);
+! if (extra == ADD_NL)
+ {
+ EMIT(NFA_NEWL);
+ EMIT(NFA_OR);
+--- 979,985 ----
+ }
+ #endif
+ EMIT(nfa_classcodes[p - classchars]);
+! if (extra == NFA_ADD_NL)
+ {
+ EMIT(NFA_NEWL);
+ EMIT(NFA_OR);
+***************
+*** 1240,1260 ****
+ {
+ /*
+ * Try to reverse engineer character classes. For example,
+! * recognize that [0-9] stands for \d and [A-Za-z_] with \h,
+ * and perform the necessary substitutions in the NFA.
+ */
+ result = nfa_recognize_char_class(regparse, endp,
+! extra == ADD_NL);
+ if (result != FAIL)
+ {
+! if (result >= NFA_DIGIT && result <= NFA_NUPPER)
+! EMIT(result);
+! else /* must be char class + newline */
+ {
+! EMIT(result - ADD_NL);
+ EMIT(NFA_NEWL);
+ EMIT(NFA_OR);
+ }
+ regparse = endp;
+ mb_ptr_adv(regparse);
+ return OK;
+--- 1249,1269 ----
+ {
+ /*
+ * Try to reverse engineer character classes. For example,
+! * recognize that [0-9] stands for \d and [A-Za-z_] for \h,
+ * and perform the necessary substitutions in the NFA.
+ */
+ result = nfa_recognize_char_class(regparse, endp,
+! extra == NFA_ADD_NL);
+ if (result != FAIL)
+ {
+! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL)
+ {
+! EMIT(result - NFA_ADD_NL);
+ EMIT(NFA_NEWL);
+ EMIT(NFA_OR);
+ }
++ else
++ EMIT(result);
+ regparse = endp;
+ mb_ptr_adv(regparse);
+ return OK;
+***************
+*** 1504,1510 ****
+ * collection, add an OR below. But not for negated
+ * range. */
+ if (!negated)
+! extra = ADD_NL;
+ }
+ else
+ {
+--- 1513,1519 ----
+ * collection, add an OR below. But not for negated
+ * range. */
+ if (!negated)
+! extra = NFA_ADD_NL;
+ }
+ else
+ {
+***************
+*** 1537,1543 ****
+ EMIT(NFA_END_COLL);
+
+ /* \_[] also matches \n but it's not negated */
+! if (extra == ADD_NL)
+ {
+ EMIT(reg_string ? NL : NFA_NEWL);
+ EMIT(NFA_OR);
+--- 1546,1552 ----
+ EMIT(NFA_END_COLL);
+
+ /* \_[] also matches \n but it's not negated */
+! if (extra == NFA_ADD_NL)
+ {
+ EMIT(reg_string ? NL : NFA_NEWL);
+ EMIT(NFA_OR);
+***************
+*** 2011,2017 ****
+ if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
+ {
+ addnl = TRUE;
+! c -= ADD_NL;
+ }
+
+ STRCPY(code, "");
+--- 2020,2026 ----
+ if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL)
+ {
+ addnl = TRUE;
+! c -= NFA_ADD_NL;
+ }
+
+ STRCPY(code, "");
+***************
+*** 2217,2222 ****
+--- 2226,2235 ----
+ case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break;
+ case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break;
+ case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break;
++ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break;
++ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break;
++ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break;
++ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break;
+
+ default:
+ STRCPY(code, "CHAR(x)");
+***************
+*** 2687,2692 ****
+--- 2700,2709 ----
+ case NFA_NLOWER:
+ case NFA_UPPER:
+ case NFA_NUPPER:
++ case NFA_LOWER_IC:
++ case NFA_NLOWER_IC:
++ case NFA_UPPER_IC:
++ case NFA_NUPPER_IC:
+ /* possibly non-ascii */
+ #ifdef FEAT_MBYTE
+ if (has_mbyte)
+***************
+*** 3841,3846 ****
+--- 3858,3867 ----
+ case NFA_NLOWER:
+ case NFA_UPPER:
+ case NFA_NUPPER:
++ case NFA_LOWER_IC:
++ case NFA_NLOWER_IC:
++ case NFA_UPPER_IC:
++ case NFA_NUPPER_IC:
+ case NFA_START_COLL:
+ case NFA_START_NEG_COLL:
+ case NFA_NEWL:
+***************
+*** 5872,5877 ****
+--- 5893,5920 ----
+ ADD_STATE_IF_MATCH(t->state);
+ break;
+
++ case NFA_LOWER_IC: /* [a-z] */
++ result = ri_lower(curc) || (ireg_ic && ri_upper(curc));
++ ADD_STATE_IF_MATCH(t->state);
++ break;
++
++ case NFA_NLOWER_IC: /* [^a-z] */
++ result = curc != NUL
++ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc)));
++ ADD_STATE_IF_MATCH(t->state);
++ break;
++
++ case NFA_UPPER_IC: /* [A-Z] */
++ result = ri_upper(curc) || (ireg_ic && ri_lower(curc));
++ ADD_STATE_IF_MATCH(t->state);
++ break;
++
++ case NFA_NUPPER_IC: /* ^[A-Z] */
++ result = curc != NUL
++ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc)));
++ ADD_STATE_IF_MATCH(t->state);
++ break;
++
+ case NFA_BACKREF1:
+ case NFA_BACKREF2:
+ case NFA_BACKREF3:
+*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200
+--- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200
+***************
+*** 289,303 ****
+ :call add(tl, [2, '.a\%$', " a\n "])
+ :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
+ :"
+! :"""" Test recognition of some character classes
+! :call add(tl, [2, '[0-9]', '8', '8'])
+! :call add(tl, [2, '[^0-9]', '8'])
+! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])
+! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])
+! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])
+! :call add(tl, [2, '[a-z]', 'a', 'a'])
+! :call add(tl, [2, '[a-zA-Z]', 'a', 'a'])
+! :call add(tl, [2, '[A-Z]', 'a'])
+ :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
+ :"
+ :"""" Tests for \z features
+--- 289,317 ----
+ :call add(tl, [2, '.a\%$', " a\n "])
+ :call add(tl, [2, '.a\%$', " a\n_a", "_a"])
+ :"
+! :"""" Test recognition of character classes
+! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567'])
+! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89'])
+! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789'])
+! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% '])
+! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef'])
+! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% '])
+! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij'])
+! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% '])
+! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ'])
+! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% '])
+! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz'])
+! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz'])
+! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% '])
+! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%'])
+! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ'])
+! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ '])
+! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ'])
+! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%'])
+! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ'])
+! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ'])
+! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ '])
+! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ '])
+ :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])
+ :"
+ :"""" Tests for \z features
+*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200
+--- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200
+***************
+*** 650,679 ****
+ OK 0 - .a\%$
+ OK 1 - .a\%$
+ OK 2 - .a\%$
+! OK 0 - [0-9]
+! OK 1 - [0-9]
+! OK 2 - [0-9]
+! OK 0 - [^0-9]
+! OK 1 - [^0-9]
+! OK 2 - [^0-9]
+! OK 0 - [0-9a-fA-F]*
+! OK 1 - [0-9a-fA-F]*
+! OK 2 - [0-9a-fA-F]*
+ OK 0 - [^0-9A-Fa-f]\+
+ OK 1 - [^0-9A-Fa-f]\+
+ OK 2 - [^0-9A-Fa-f]\+
+ OK 0 - [a-z_A-Z0-9]\+
+ OK 1 - [a-z_A-Z0-9]\+
+ OK 2 - [a-z_A-Z0-9]\+
+! OK 0 - [a-z]
+! OK 1 - [a-z]
+! OK 2 - [a-z]
+! OK 0 - [a-zA-Z]
+! OK 1 - [a-zA-Z]
+! OK 2 - [a-zA-Z]
+! OK 0 - [A-Z]
+! OK 1 - [A-Z]
+! OK 2 - [A-Z]
+ OK 0 - \C[^A-Z]\+
+ OK 1 - \C[^A-Z]\+
+ OK 2 - \C[^A-Z]\+
+--- 650,721 ----
+ OK 0 - .a\%$
+ OK 1 - .a\%$
+ OK 2 - .a\%$
+! OK 0 - [0-7]\+
+! OK 1 - [0-7]\+
+! OK 2 - [0-7]\+
+! OK 0 - [^0-7]\+
+! OK 1 - [^0-7]\+
+! OK 2 - [^0-7]\+
+! OK 0 - [0-9]\+
+! OK 1 - [0-9]\+
+! OK 2 - [0-9]\+
+! OK 0 - [^0-9]\+
+! OK 1 - [^0-9]\+
+! OK 2 - [^0-9]\+
+! OK 0 - [0-9a-fA-F]\+
+! OK 1 - [0-9a-fA-F]\+
+! OK 2 - [0-9a-fA-F]\+
+ OK 0 - [^0-9A-Fa-f]\+
+ OK 1 - [^0-9A-Fa-f]\+
+ OK 2 - [^0-9A-Fa-f]\+
+ OK 0 - [a-z_A-Z0-9]\+
+ OK 1 - [a-z_A-Z0-9]\+
+ OK 2 - [a-z_A-Z0-9]\+
+! OK 0 - [^a-z_A-Z0-9]\+
+! OK 1 - [^a-z_A-Z0-9]\+
+! OK 2 - [^a-z_A-Z0-9]\+
+! OK 0 - [a-z_A-Z]\+
+! OK 1 - [a-z_A-Z]\+
+! OK 2 - [a-z_A-Z]\+
+! OK 0 - [^a-z_A-Z]\+
+! OK 1 - [^a-z_A-Z]\+
+! OK 2 - [^a-z_A-Z]\+
+! OK 0 - [a-z]\+
+! OK 1 - [a-z]\+
+! OK 2 - [a-z]\+
+! OK 0 - [a-z]\+
+! OK 1 - [a-z]\+
+! OK 2 - [a-z]\+
+! OK 0 - [^a-z]\+
+! OK 1 - [^a-z]\+
+! OK 2 - [^a-z]\+
+! OK 0 - [^a-z]\+
+! OK 1 - [^a-z]\+
+! OK 2 - [^a-z]\+
+! OK 0 - [a-zA-Z]\+
+! OK 1 - [a-zA-Z]\+
+! OK 2 - [a-zA-Z]\+
+! OK 0 - [^a-zA-Z]\+
+! OK 1 - [^a-zA-Z]\+
+! OK 2 - [^a-zA-Z]\+
+! OK 0 - [A-Z]\+
+! OK 1 - [A-Z]\+
+! OK 2 - [A-Z]\+
+! OK 0 - [^A-Z]\+
+! OK 1 - [^A-Z]\+
+! OK 2 - [^A-Z]\+
+! OK 0 - [a-z]\+\c
+! OK 1 - [a-z]\+\c
+! OK 2 - [a-z]\+\c
+! OK 0 - [A-Z]\+\c
+! OK 1 - [A-Z]\+\c
+! OK 2 - [A-Z]\+\c
+! OK 0 - \c[^a-z]\+
+! OK 1 - \c[^a-z]\+
+! OK 2 - \c[^a-z]\+
+! OK 0 - \c[^A-Z]\+
+! OK 1 - \c[^A-Z]\+
+! OK 2 - \c[^A-Z]\+
+ OK 0 - \C[^A-Z]\+
+ OK 1 - \C[^A-Z]\+
+ OK 2 - \C[^A-Z]\+
+*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200
+--- src/version.c 2013-08-14 11:54:57.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1,
+ /**/
+
+--
+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.4.002 b/source/ap/vim/patches/7.4.002
new file mode 100644
index 000000000..d92f4de6c
--- /dev/null
+++ b/source/ap/vim/patches/7.4.002
@@ -0,0 +1,77 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.002
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4b.002
+Problem: Pattern with two alternative look-behind matches does not match.
+ (Amadeus Demarzi)
+Solution: When comparing PIMs also compare their state ID to see if they are
+ different.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200
+--- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200
+***************
+*** 3782,3787 ****
+--- 3782,3790 ----
+ if (two_unused)
+ /* one is used and two is not: not equal */
+ return FALSE;
++ /* compare the state id */
++ if (one->state->id != two->state->id)
++ return FALSE;
+ /* compare the position */
+ if (REG_MULTI)
+ return one->end.pos.lnum == two->end.pos.lnum
+*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200
+--- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200
+***************
+*** 421,426 ****
+--- 421,429 ----
+ :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])
+ :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])
+ :"
++ :" complicated look-behind match
++ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
++ :"
+ :""""" \@>
+ :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
+ :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
+*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200
+--- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200
+***************
+*** 974,979 ****
+--- 974,982 ----
+ OK 0 - \(foo\)\@<=.*
+ OK 1 - \(foo\)\@<=.*
+ OK 2 - \(foo\)\@<=.*
++ OK 0 - \(r\@<=\|\w\@<!\)\/
++ OK 1 - \(r\@<=\|\w\@<!\)\/
++ OK 2 - \(r\@<=\|\w\@<!\)\/
+ OK 0 - \(a*\)\@>a
+ OK 1 - \(a*\)\@>a
+ OK 2 - \(a*\)\@>a
+*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200
+--- src/version.c 2013-08-14 13:13:45.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 2,
+ /**/
+
+--
+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.4.003 b/source/ap/vim/patches/7.4.003
new file mode 100644
index 000000000..9aad3c8c8
--- /dev/null
+++ b/source/ap/vim/patches/7.4.003
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.003
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.003
+Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow)
+Solution: Refresh stale pointer. (James McCoy)
+Files: src/regexp_nfa.c
+
+
+*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200
+--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200
+***************
+*** 4120,4126 ****
+ sub = &subs->norm;
+ }
+ #ifdef FEAT_SYN_HL
+! else if (state->c >= NFA_ZOPEN)
+ {
+ subidx = state->c - NFA_ZOPEN;
+ sub = &subs->synt;
+--- 4120,4126 ----
+ sub = &subs->norm;
+ }
+ #ifdef FEAT_SYN_HL
+! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
+ {
+ subidx = state->c - NFA_ZOPEN;
+ sub = &subs->synt;
+***************
+*** 4189,4194 ****
+--- 4189,4201 ----
+ }
+
+ subs = addstate(l, state->out, subs, pim, off);
++ /* "subs" may have changed, need to set "sub" again */
++ #ifdef FEAT_SYN_HL
++ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9)
++ sub = &subs->synt;
++ else
++ #endif
++ sub = &subs->norm;
+
+ if (save_in_use == -1)
+ {
+***************
+*** 4237,4243 ****
+ sub = &subs->norm;
+ }
+ #ifdef FEAT_SYN_HL
+! else if (state->c >= NFA_ZCLOSE)
+ {
+ subidx = state->c - NFA_ZCLOSE;
+ sub = &subs->synt;
+--- 4244,4250 ----
+ sub = &subs->norm;
+ }
+ #ifdef FEAT_SYN_HL
+! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
+ {
+ subidx = state->c - NFA_ZCLOSE;
+ sub = &subs->synt;
+***************
+*** 4281,4286 ****
+--- 4288,4300 ----
+ }
+
+ subs = addstate(l, state->out, subs, pim, off);
++ /* "subs" may have changed, need to set "sub" again */
++ #ifdef FEAT_SYN_HL
++ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9)
++ sub = &subs->synt;
++ else
++ #endif
++ sub = &subs->norm;
+
+ if (REG_MULTI)
+ sub->list.multi[subidx].end = save_lpos;
+*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200
+--- src/version.c 2013-08-14 14:03:51.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 3,
+ /**/
+
+--
+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.4.004 b/source/ap/vim/patches/7.4.004
new file mode 100644
index 000000000..f629d673f
--- /dev/null
+++ b/source/ap/vim/patches/7.4.004
@@ -0,0 +1,232 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.004
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.004
+Problem: When closing a window fails ":bwipe" may hang.
+Solution: Let win_close() return FAIL and break out of the loop.
+Files: src/window.c, src/proto/window.pro, src/buffer.c
+
+
+*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200
+--- src/window.c 2013-08-14 16:52:44.000000000 +0200
+***************
+*** 2172,2179 ****
+ * If "free_buf" is TRUE related buffer may be unloaded.
+ *
+ * Called by :quit, :close, :xit, :wq and findtag().
+ */
+! void
+ win_close(win, free_buf)
+ win_T *win;
+ int free_buf;
+--- 2172,2180 ----
+ * If "free_buf" is TRUE related buffer may be unloaded.
+ *
+ * Called by :quit, :close, :xit, :wq and findtag().
++ * Returns FAIL when the window was not closed.
+ */
+! int
+ win_close(win, free_buf)
+ win_T *win;
+ int free_buf;
+***************
+*** 2190,2210 ****
+ if (last_window())
+ {
+ EMSG(_("E444: Cannot close last window"));
+! return;
+ }
+
+ #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)
+ {
+ EMSG(_("E813: Cannot close autocmd window"));
+! return;
+ }
+ if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
+ {
+ EMSG(_("E814: Cannot close window, only autocmd window would remain"));
+! return;
+ }
+ #endif
+
+--- 2191,2211 ----
+ if (last_window())
+ {
+ EMSG(_("E444: Cannot close last window"));
+! return FAIL;
+ }
+
+ #ifdef FEAT_AUTOCMD
+ if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing))
+! return FAIL; /* window is already being closed */
+ if (win == aucmd_win)
+ {
+ EMSG(_("E813: Cannot close autocmd window"));
+! return FAIL;
+ }
+ if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window())
+ {
+ EMSG(_("E814: Cannot close window, only autocmd window would remain"));
+! return FAIL;
+ }
+ #endif
+
+***************
+*** 2212,2218 ****
+ * 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. */
+--- 2213,2219 ----
+ * 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 FAIL;
+
+ /* When closing the help window, try restoring a snapshot after closing
+ * the window. Otherwise clear the snapshot, it's now invalid. */
+***************
+*** 2240,2261 ****
+ 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 */
+ if (aborting())
+! return;
+ # endif
+ }
+ #endif
+--- 2241,2262 ----
+ win->w_closing = TRUE;
+ apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf);
+ if (!win_valid(win))
+! return FAIL;
+ win->w_closing = FALSE;
+ if (last_window())
+! return FAIL;
+ }
+ win->w_closing = TRUE;
+ apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf);
+ if (!win_valid(win))
+! return FAIL;
+ win->w_closing = FALSE;
+ if (last_window())
+! return FAIL;
+ # ifdef FEAT_EVAL
+ /* autocmds may abort script processing */
+ if (aborting())
+! return FAIL;
+ # endif
+ }
+ #endif
+***************
+*** 2303,2309 ****
+ * other window or moved to another tab page. */
+ else 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
+ * the screen space. */
+--- 2304,2310 ----
+ * other window or moved to another tab page. */
+ else if (!win_valid(win) || last_window() || curtab != prev_curtab
+ || close_last_window_tabpage(win, free_buf, prev_curtab))
+! return FAIL;
+
+ /* Free the memory used for the window and get the window that received
+ * the screen space. */
+***************
+*** 2383,2388 ****
+--- 2384,2390 ----
+ #endif
+
+ redraw_all_later(NOT_VALID);
++ return OK;
+ }
+
+ /*
+*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200
+--- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200
+***************
+*** 9,15 ****
+ 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));
+ win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+--- 9,15 ----
+ 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));
+! int 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));
+ win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp));
+*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200
+--- src/buffer.c 2013-08-14 16:54:34.000000000 +0200
+***************
+*** 1186,1192 ****
+ && !(curwin->w_closing || curwin->w_buffer->b_closing)
+ # endif
+ && (firstwin != lastwin || first_tabpage->tp_next != NULL))
+! win_close(curwin, FALSE);
+ #endif
+
+ /*
+--- 1186,1195 ----
+ && !(curwin->w_closing || curwin->w_buffer->b_closing)
+ # endif
+ && (firstwin != lastwin || first_tabpage->tp_next != NULL))
+! {
+! if (win_close(curwin, FALSE) == FAIL)
+! break;
+! }
+ #endif
+
+ /*
+*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200
+--- src/version.c 2013-08-14 17:10:23.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 4,
+ /**/
+
+--
+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.4.005 b/source/ap/vim/patches/7.4.005
new file mode 100644
index 000000000..f85d1f0e3
--- /dev/null
+++ b/source/ap/vim/patches/7.4.005
@@ -0,0 +1,48 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.005
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.005
+Problem: Using "vaB" while 'virtualedit' is set selects the wrong area.
+ (Dimitar Dimitrov)
+Solution: Reset coladd when finding a match.
+Files: src/search.c
+
+
+*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200
+--- src/search.c 2013-08-14 17:32:38.000000000 +0200
+***************
+*** 1760,1765 ****
+--- 1760,1768 ----
+ #endif
+
+ pos = curwin->w_cursor;
++ #ifdef FEAT_VIRTUALEDIT
++ pos.coladd = 0;
++ #endif
+ linep = ml_get(pos.lnum);
+
+ cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL);
+*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200
+--- src/version.c 2013-08-14 17:38:05.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 5,
+ /**/
+
+--
+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.4.006 b/source/ap/vim/patches/7.4.006
new file mode 100644
index 000000000..55d3802c4
--- /dev/null
+++ b/source/ap/vim/patches/7.4.006
@@ -0,0 +1,66 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.006
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.006
+Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett)
+Solution: Remove the trailing slash. (lcd)
+Files: src/eval.c
+
+
+*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200
+--- src/eval.c 2013-08-22 12:00:28.000000000 +0200
+***************
+*** 14292,14297 ****
+--- 14292,14301 ----
+ return;
+
+ dir = get_tv_string_buf(&argvars[0], buf);
++ if (*gettail(dir) == NUL)
++ /* remove trailing slashes */
++ *gettail_sep(dir) = NUL;
++
+ if (argvars[1].v_type != VAR_UNKNOWN)
+ {
+ if (argvars[2].v_type != VAR_UNKNOWN)
+***************
+*** 14299,14305 ****
+ if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
+ mkdir_recurse(dir, prot);
+ }
+! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0;
+ }
+ #endif
+
+--- 14303,14309 ----
+ if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
+ mkdir_recurse(dir, prot);
+ }
+! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
+ }
+ #endif
+
+*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200
+--- src/version.c 2013-08-22 12:02:46.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 6,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+97. Your mother tells you to remember something, and you look for
+ a File/Save command.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.007 b/source/ap/vim/patches/7.4.007
new file mode 100644
index 000000000..5495ffbf9
--- /dev/null
+++ b/source/ap/vim/patches/7.4.007
@@ -0,0 +1,95 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.007
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.007
+Problem: Creating a preview window on startup leaves the screen layout in a
+ messed up state. (Marius Gedminas)
+Solution: Don't change firstwin. (Christian Brabandt)
+Files: src/main.c
+
+
+*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200
+--- src/main.c 2013-08-22 14:02:39.000000000 +0200
+***************
+*** 2727,2732 ****
+--- 2727,2733 ----
+ int arg_idx; /* index in argument list */
+ int i;
+ int advance = TRUE;
++ win_T *win;
+
+ # ifdef FEAT_AUTOCMD
+ /*
+***************
+*** 2816,2839 ****
+ # ifdef FEAT_AUTOCMD
+ --autocmd_no_enter;
+ # endif
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+! /*
+! * Avoid making a preview window the current window.
+! */
+! if (firstwin->w_p_pvw)
+ {
+! win_T *win;
+!
+! for (win = firstwin; win != NULL; win = win->w_next)
+! if (!win->w_p_pvw)
+! {
+! firstwin = win;
+! break;
+! }
+ }
+ #endif
+! /* make the first window the current window */
+! win_enter(firstwin, FALSE);
+
+ # ifdef FEAT_AUTOCMD
+ --autocmd_no_leave;
+--- 2817,2838 ----
+ # ifdef FEAT_AUTOCMD
+ --autocmd_no_enter;
+ # endif
++
++ /* make the first window the current window */
++ win = firstwin;
+ #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX)
+! /* Avoid making a preview window the current window. */
+! while (win->w_p_pvw)
+ {
+! win = win->w_next;
+! if (win == NULL)
+! {
+! win = firstwin;
+! break;
+! }
+ }
+ #endif
+! win_enter(win, FALSE);
+
+ # ifdef FEAT_AUTOCMD
+ --autocmd_no_leave;
+*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200
+--- src/version.c 2013-08-22 14:04:11.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 7,
+ /**/
+
+--
+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.4.008 b/source/ap/vim/patches/7.4.008
new file mode 100644
index 000000000..6abd493f9
--- /dev/null
+++ b/source/ap/vim/patches/7.4.008
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.008
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.008
+Problem: New regexp engine can't be interrupted.
+Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto)
+Files: src/regexp_nfa.c, src/regexp.c
+
+
+*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200
+--- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200
+***************
+*** 5089,5094 ****
+--- 5089,5100 ----
+ return FALSE;
+ }
+ #endif
++ /* Some patterns may take a long time to match, especially when using
++ * recursive_regmatch(). Allow interrupting them with CTRL-C. */
++ fast_breakcheck();
++ if (got_int)
++ return FALSE;
++
+ nfa_match = FALSE;
+
+ /* Allocate memory for the lists of nodes. */
+*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200
+--- src/regexp.c 2013-08-25 16:57:35.000000000 +0200
+***************
+*** 4311,4318 ****
+ */
+ for (;;)
+ {
+! /* Some patterns may cause a long time to match, even though they are not
+! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */
+ fast_breakcheck();
+
+ #ifdef DEBUG
+--- 4311,4318 ----
+ */
+ for (;;)
+ {
+! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q".
+! * Allow interrupting them with CTRL-C. */
+ fast_breakcheck();
+
+ #ifdef DEBUG
+*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200
+--- src/version.c 2013-08-25 16:57:51.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 8,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+124. You begin conversations with, "Who is your internet 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.4.009 b/source/ap/vim/patches/7.4.009
new file mode 100644
index 000000000..f5e5fa609
--- /dev/null
+++ b/source/ap/vim/patches/7.4.009
@@ -0,0 +1,64 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.009
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.009
+Problem: When a file was not decrypted (yet), writing it may destroy the
+ contents.
+Solution: Mark the file as readonly until decryption was done. (Christian
+ Brabandt)
+Files: src/fileio.c
+
+
+*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200
+--- src/fileio.c 2013-08-25 17:45:27.000000000 +0200
+***************
+*** 2926,2934 ****
+--- 2926,2939 ----
+ int *did_ask; /* flag: whether already asked for key */
+ {
+ int method = crypt_method_from_magic((char *)ptr, *sizep);
++ int b_p_ro = curbuf->b_p_ro;
+
+ if (method >= 0)
+ {
++ /* Mark the buffer as read-only until the decryption has taken place.
++ * Avoids accidentally overwriting the file with garbage. */
++ curbuf->b_p_ro = TRUE;
++
+ set_crypt_method(curbuf, method);
+ if (method > 0)
+ (void)blowfish_self_test();
+***************
+*** 2977,2982 ****
+--- 2982,2989 ----
+ *sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len;
+ mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len,
+ (size_t)*sizep);
++ /* Restore the read-only flag. */
++ curbuf->b_p_ro = b_p_ro;
+ }
+ }
+ /* When starting to edit a new file which does not have encryption, clear
+*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200
+--- src/version.c 2013-08-25 17:44:30.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 9,
+ /**/
+
+--
+I have a watch cat! Just break in and she'll watch.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.010 b/source/ap/vim/patches/7.4.010
new file mode 100644
index 000000000..fee6ba5b4
--- /dev/null
+++ b/source/ap/vim/patches/7.4.010
@@ -0,0 +1,79 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.010
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.010 (after 7.4.006)
+Problem: Crash with invalid argument to mkdir().
+Solution: Check for empty string. (lcd47)
+Files: src/eval.c
+
+
+*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200
+--- src/eval.c 2013-08-30 15:47:47.000000000 +0200
+***************
+*** 14292,14309 ****
+ return;
+
+ dir = get_tv_string_buf(&argvars[0], buf);
+! if (*gettail(dir) == NUL)
+! /* remove trailing slashes */
+! *gettail_sep(dir) = NUL;
+!
+! if (argvars[1].v_type != VAR_UNKNOWN)
+ {
+! if (argvars[2].v_type != VAR_UNKNOWN)
+! prot = get_tv_number_chk(&argvars[2], NULL);
+! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
+! mkdir_recurse(dir, prot);
+ }
+- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
+ }
+ #endif
+
+--- 14292,14314 ----
+ return;
+
+ dir = get_tv_string_buf(&argvars[0], buf);
+! if (*dir == NUL)
+! rettv->vval.v_number = FAIL;
+! else
+ {
+! if (*gettail(dir) == NUL)
+! /* remove trailing slashes */
+! *gettail_sep(dir) = NUL;
+!
+! if (argvars[1].v_type != VAR_UNKNOWN)
+! {
+! if (argvars[2].v_type != VAR_UNKNOWN)
+! prot = get_tv_number_chk(&argvars[2], NULL);
+! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0)
+! mkdir_recurse(dir, prot);
+! }
+! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot);
+ }
+ }
+ #endif
+
+*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200
+--- src/version.c 2013-08-30 15:48:37.000000000 +0200
+***************
+*** 729,730 ****
+--- 729,732 ----
+ { /* Add new patch number below this line */
++ /**/
++ 10,
+ /**/
+
+--
+I wish there was a knob on the TV to turn up the intelligence.
+There's a knob called "brightness", but it doesn't seem to work.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.011 b/source/ap/vim/patches/7.4.011
new file mode 100644
index 000000000..efff82c5e
--- /dev/null
+++ b/source/ap/vim/patches/7.4.011
@@ -0,0 +1,100 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.011
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.011
+Problem: Cannot find out if "acl" and "xpm" features are supported.
+Solution: Add "acl" and "xpm" to the list of features. (Ken Takata)
+Files: src/eval.c, src/version.c
+
+
+*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200
+--- src/eval.c 2013-08-30 16:34:12.000000000 +0200
+***************
+*** 12135,12140 ****
+--- 12135,12143 ----
+ #ifndef CASE_INSENSITIVE_FILENAME
+ "fname_case",
+ #endif
++ #ifdef HAVE_ACL
++ "acl",
++ #endif
+ #ifdef FEAT_ARABIC
+ "arabic",
+ #endif
+***************
+*** 12538,12544 ****
+ "xfontset",
+ #endif
+ #ifdef FEAT_XPM_W32
+! "xpm_w32",
+ #endif
+ #ifdef USE_XSMP
+ "xsmp",
+--- 12541,12552 ----
+ "xfontset",
+ #endif
+ #ifdef FEAT_XPM_W32
+! "xpm",
+! "xpm_w32", /* for backward compatibility */
+! #else
+! # if defined(HAVE_XPM)
+! "xpm",
+! # endif
+ #endif
+ #ifdef USE_XSMP
+ "xsmp",
+*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
+--- src/version.c 2013-08-30 16:34:37.000000000 +0200
+***************
+*** 60,65 ****
+--- 60,70 ----
+
+ static char *(features[]) =
+ {
++ #ifdef HAVE_ACL
++ "+acl",
++ #else
++ "-acl",
++ #endif
+ #ifdef AMIGA /* only for Amiga systems */
+ # ifdef FEAT_ARP
+ "+ARP",
+***************
+*** 721,726 ****
+--- 726,737 ----
+ # else
+ "-xpm_w32",
+ # endif
++ #else
++ # ifdef HAVE_XPM
++ "+xpm",
++ # else
++ "-xpm",
++ # endif
+ #endif
+ NULL
+ };
+*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200
+--- src/version.c 2013-08-30 16:34:37.000000000 +0200
+***************
+*** 729,730 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 11,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+141. You'd rather go to http://www.weather.com/ than look out your window.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.012 b/source/ap/vim/patches/7.4.012
new file mode 100644
index 000000000..f831442ea
--- /dev/null
+++ b/source/ap/vim/patches/7.4.012
@@ -0,0 +1,202 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.012
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.012
+Problem: MS-Windows: resolving shortcut does not work properly with
+ multi-byte characters.
+Solution: Use wide system functions. (Ken Takata)
+Files: src/os_mswin.c
+
+
+*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200
+--- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200
+***************
+*** 1761,1769 ****
+ IPersistFile *ppf = NULL;
+ OLECHAR wsz[MAX_PATH];
+ WIN32_FIND_DATA ffd; // we get those free of charge
+! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
+ char_u *rfname = NULL;
+ int len;
+
+ /* Check if the file name ends in ".lnk". Avoid calling
+ * CoCreateInstance(), it's quite slow. */
+--- 1761,1773 ----
+ IPersistFile *ppf = NULL;
+ OLECHAR wsz[MAX_PATH];
+ WIN32_FIND_DATA ffd; // we get those free of charge
+! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'...
+ char_u *rfname = NULL;
+ int len;
++ # ifdef FEAT_MBYTE
++ IShellLinkW *pslw = NULL;
++ WIN32_FIND_DATAW ffdw; // we get those free of charge
++ # endif
+
+ /* Check if the file name ends in ".lnk". Avoid calling
+ * CoCreateInstance(), it's quite slow. */
+***************
+*** 1775,1792 ****
+
+ CoInitialize(NULL);
+
+ // create a link manager object and request its interface
+ hr = CoCreateInstance(
+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IShellLink, (void**)&psl);
+ if (hr != S_OK)
+! goto shortcut_error;
+
+ // Get a pointer to the IPersistFile interface.
+ hr = psl->lpVtbl->QueryInterface(
+ psl, &IID_IPersistFile, (void**)&ppf);
+ if (hr != S_OK)
+! goto shortcut_error;
+
+ // full path string must be in Unicode.
+ MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
+--- 1779,1840 ----
+
+ CoInitialize(NULL);
+
++ # ifdef FEAT_MBYTE
++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++ {
++ // create a link manager object and request its interface
++ hr = CoCreateInstance(
++ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
++ &IID_IShellLinkW, (void**)&pslw);
++ if (hr == S_OK)
++ {
++ WCHAR *p = enc_to_utf16(fname, NULL);
++
++ if (p != NULL)
++ {
++ // Get a pointer to the IPersistFile interface.
++ hr = pslw->lpVtbl->QueryInterface(
++ pslw, &IID_IPersistFile, (void**)&ppf);
++ if (hr != S_OK)
++ goto shortcut_errorw;
++
++ // "load" the name and resolve the link
++ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ);
++ if (hr != S_OK)
++ goto shortcut_errorw;
++ # if 0 // This makes Vim wait a long time if the target does not exist.
++ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI);
++ if (hr != S_OK)
++ goto shortcut_errorw;
++ # endif
++
++ // Get the path to the link target.
++ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR));
++ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0);
++ if (hr == S_OK && wsz[0] != NUL)
++ rfname = utf16_to_enc(wsz, NULL);
++
++ shortcut_errorw:
++ vim_free(p);
++ if (hr == S_OK)
++ goto shortcut_end;
++ }
++ }
++ /* Retry with non-wide function (for Windows 98). */
++ }
++ # endif
+ // create a link manager object and request its interface
+ hr = CoCreateInstance(
+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IShellLink, (void**)&psl);
+ if (hr != S_OK)
+! goto shortcut_end;
+
+ // Get a pointer to the IPersistFile interface.
+ hr = psl->lpVtbl->QueryInterface(
+ psl, &IID_IPersistFile, (void**)&ppf);
+ if (hr != S_OK)
+! goto shortcut_end;
+
+ // full path string must be in Unicode.
+ MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH);
+***************
+*** 1794,1805 ****
+ // "load" the name and resolve the link
+ hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
+ if (hr != S_OK)
+! goto shortcut_error;
+! #if 0 // This makes Vim wait a long time if the target doesn't exist.
+ hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
+ if (hr != S_OK)
+! goto shortcut_error;
+! #endif
+
+ // Get the path to the link target.
+ ZeroMemory(buf, MAX_PATH);
+--- 1842,1853 ----
+ // "load" the name and resolve the link
+ hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ);
+ if (hr != S_OK)
+! goto shortcut_end;
+! # if 0 // This makes Vim wait a long time if the target doesn't exist.
+ hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI);
+ if (hr != S_OK)
+! goto shortcut_end;
+! # endif
+
+ // Get the path to the link target.
+ ZeroMemory(buf, MAX_PATH);
+***************
+*** 1807,1818 ****
+ if (hr == S_OK && buf[0] != NUL)
+ rfname = vim_strsave(buf);
+
+! shortcut_error:
+ // Release all interface pointers (both belong to the same object)
+ if (ppf != NULL)
+ ppf->lpVtbl->Release(ppf);
+ if (psl != NULL)
+ psl->lpVtbl->Release(psl);
+
+ CoUninitialize();
+ return rfname;
+--- 1855,1870 ----
+ if (hr == S_OK && buf[0] != NUL)
+ rfname = vim_strsave(buf);
+
+! shortcut_end:
+ // Release all interface pointers (both belong to the same object)
+ if (ppf != NULL)
+ ppf->lpVtbl->Release(ppf);
+ if (psl != NULL)
+ psl->lpVtbl->Release(psl);
++ # ifdef FEAT_MBYTE
++ if (pslw != NULL)
++ pslw->lpVtbl->Release(pslw);
++ # endif
+
+ CoUninitialize();
+ return rfname;
+*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200
+--- src/version.c 2013-08-30 16:39:40.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 12,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+142. You dream about creating the world's greatest web site.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.013 b/source/ap/vim/patches/7.4.013
new file mode 100644
index 000000000..dcbe0fb3e
--- /dev/null
+++ b/source/ap/vim/patches/7.4.013
@@ -0,0 +1,99 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.013
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.013
+Problem: File name buffer too small for utf-8.
+Solution: Use character count instead of byte count. (Ken Takata)
+Files: src/os_mswin.c
+
+
+*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200
+--- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200
+***************
+*** 456,462 ****
+--- 456,469 ----
+ int
+ mch_isFullName(char_u *fname)
+ {
++ #ifdef FEAT_MBYTE
++ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
++ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
++ * UTF-8. */
++ char szName[_MAX_PATH * 3 + 1];
++ #else
+ char szName[_MAX_PATH + 1];
++ #endif
+
+ /* A name like "d:/foo" and "//server/share" is absolute */
+ if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\'))
+***************
+*** 464,470 ****
+ return TRUE;
+
+ /* A name that can't be made absolute probably isn't absolute. */
+! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL)
+ return FALSE;
+
+ return pathcmp(fname, szName, -1) == 0;
+--- 471,477 ----
+ return TRUE;
+
+ /* A name that can't be made absolute probably isn't absolute. */
+! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL)
+ return FALSE;
+
+ return pathcmp(fname, szName, -1) == 0;
+***************
+*** 498,507 ****
+ int
+ vim_stat(const char *name, struct stat *stp)
+ {
+ char buf[_MAX_PATH + 1];
+ char *p;
+
+! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH);
+ p = buf + strlen(buf);
+ if (p > buf)
+ mb_ptr_back(buf, p);
+--- 505,521 ----
+ int
+ vim_stat(const char *name, struct stat *stp)
+ {
++ #ifdef FEAT_MBYTE
++ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which
++ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is
++ * UTF-8. */
++ char buf[_MAX_PATH * 3 + 1];
++ #else
+ char buf[_MAX_PATH + 1];
++ #endif
+ char *p;
+
+! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1);
+ p = buf + strlen(buf);
+ if (p > buf)
+ mb_ptr_back(buf, p);
+*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200
+--- src/version.c 2013-08-30 16:47:36.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 13,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+143. You dream in pallettes of 216 websafe colors.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.014 b/source/ap/vim/patches/7.4.014
new file mode 100644
index 000000000..f6554337f
--- /dev/null
+++ b/source/ap/vim/patches/7.4.014
@@ -0,0 +1,102 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.014
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.014
+Problem: MS-Windows: check for writing to device does not work.
+Solution: Fix #ifdefs. (Ken Takata)
+Files: src/fileio.c
+
+
+*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200
+--- src/fileio.c 2013-08-30 16:56:46.000000000 +0200
+***************
+*** 428,440 ****
+ }
+ }
+
+- #ifdef UNIX
+- /*
+- * On Unix it is possible to read a directory, so we have to
+- * check for it before the mch_open().
+- */
+ if (!read_stdin && !read_buffer)
+ {
+ perm = mch_getperm(fname);
+ if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
+ # ifdef S_ISFIFO
+--- 428,440 ----
+ }
+ }
+
+ if (!read_stdin && !read_buffer)
+ {
++ #ifdef UNIX
++ /*
++ * On Unix it is possible to read a directory, so we have to
++ * check for it before the mch_open().
++ */
+ perm = mch_getperm(fname);
+ if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */
+ # ifdef S_ISFIFO
+***************
+*** 457,464 ****
+ msg_scroll = msg_save;
+ return FAIL;
+ }
+!
+! # if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+ /*
+ * MS-Windows allows opening a device, but we will probably get stuck
+ * trying to read it.
+--- 457,464 ----
+ msg_scroll = msg_save;
+ return FAIL;
+ }
+! #endif
+! #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
+ /*
+ * MS-Windows allows opening a device, but we will probably get stuck
+ * trying to read it.
+***************
+*** 470,478 ****
+ msg_scroll = msg_save;
+ return FAIL;
+ }
+- # endif
+- }
+ #endif
+
+ /* Set default or forced 'fileformat' and 'binary'. */
+ set_file_options(set_options, eap);
+--- 470,477 ----
+ msg_scroll = msg_save;
+ return FAIL;
+ }
+ #endif
++ }
+
+ /* Set default or forced 'fileformat' and 'binary'. */
+ set_file_options(set_options, eap);
+*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200
+--- src/version.c 2013-08-30 16:54:33.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 14,
+ /**/
+
+--
+Drink wet cement and get really stoned.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.015 b/source/ap/vim/patches/7.4.015
new file mode 100644
index 000000000..e8b284d12
--- /dev/null
+++ b/source/ap/vim/patches/7.4.015
@@ -0,0 +1,106 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.015
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.015
+Problem: MS-Windows: Detecting node type does not work for multi-byte
+ characters.
+Solution: Use wide character function when needed. (Ken Takata)
+Files: src/os_win32.c
+
+
+*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200
+--- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200
+***************
+*** 3107,3112 ****
+--- 3107,3115 ----
+ {
+ HANDLE hFile;
+ int type;
++ #ifdef FEAT_MBYTE
++ WCHAR *wn = NULL;
++ #endif
+
+ /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
+ * read from it later will cause Vim to hang. Thus return NODE_WRITABLE
+***************
+*** 3114,3127 ****
+ if (STRNCMP(name, "\\\\.\\", 4) == 0)
+ return NODE_WRITABLE;
+
+! hFile = CreateFile(name, /* file name */
+! GENERIC_WRITE, /* 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)
+ return NODE_NORMAL;
+
+--- 3117,3157 ----
+ if (STRNCMP(name, "\\\\.\\", 4) == 0)
+ return NODE_WRITABLE;
+
+! #ifdef FEAT_MBYTE
+! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
+! {
+! wn = enc_to_utf16(name, NULL);
+! if (wn != NULL)
+! {
+! hFile = CreateFileW(wn, /* file name */
+! GENERIC_WRITE, /* 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);
+! wn = NULL;
+! }
+! }
+! }
+! if (wn == NULL)
+! #endif
+! hFile = CreateFile(name, /* file name */
+! GENERIC_WRITE, /* access mode */
+! 0, /* share mode */
+! NULL, /* security descriptor */
+! OPEN_EXISTING, /* creation disposition */
+! 0, /* file attributes */
+! NULL); /* handle to template file */
+
++ #ifdef FEAT_MBYTE
++ vim_free(wn);
++ #endif
+ if (hFile == INVALID_HANDLE_VALUE)
+ return NODE_NORMAL;
+
+*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200
+--- src/version.c 2013-08-30 17:09:35.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 15,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+144. You eagerly await the update of the "Cool Site of the 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.4.016 b/source/ap/vim/patches/7.4.016
new file mode 100644
index 000000000..c58c605f5
--- /dev/null
+++ b/source/ap/vim/patches/7.4.016
@@ -0,0 +1,221 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.016
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.016
+Problem: MS-Windows: File name completion doesn't work properly with
+ Chinese characters. (Yue Wu)
+Solution: Add fname_casew(). (Ken Takata)
+Files: src/os_win32.c
+
+
+*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200
+--- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200
+***************
+*** 2500,2508 ****
+--- 2500,2624 ----
+ }
+
+
++ #ifdef FEAT_MBYTE
++ /*
++ * fname_casew(): Wide version of fname_case(). Set the case of the file name,
++ * if it already exists. When "len" is > 0, also expand short to long
++ * filenames.
++ * Return FAIL if wide functions are not available, OK otherwise.
++ * NOTE: much of this is identical to fname_case(), keep in sync!
++ */
++ static int
++ fname_casew(
++ WCHAR *name,
++ int len)
++ {
++ WCHAR szTrueName[_MAX_PATH + 2];
++ WCHAR szTrueNameTemp[_MAX_PATH + 2];
++ WCHAR *ptrue, *ptruePrev;
++ WCHAR *porig, *porigPrev;
++ int flen;
++ WIN32_FIND_DATAW fb;
++ HANDLE hFind;
++ int c;
++ int slen;
++
++ flen = (int)wcslen(name);
++ if (flen > _MAX_PATH)
++ return OK;
++
++ /* slash_adjust(name) not needed, already adjusted by fname_case(). */
++
++ /* Build the new name in szTrueName[] one component at a time. */
++ porig = name;
++ ptrue = szTrueName;
++
++ if (iswalpha(porig[0]) && porig[1] == L':')
++ {
++ /* copy leading drive letter */
++ *ptrue++ = *porig++;
++ *ptrue++ = *porig++;
++ *ptrue = NUL; /* in case nothing follows */
++ }
++
++ while (*porig != NUL)
++ {
++ /* copy \ characters */
++ while (*porig == psepc)
++ *ptrue++ = *porig++;
++
++ ptruePrev = ptrue;
++ porigPrev = porig;
++ while (*porig != NUL && *porig != psepc)
++ {
++ *ptrue++ = *porig++;
++ }
++ *ptrue = NUL;
++
++ /* To avoid a slow failure append "\*" when searching a directory,
++ * server or network share. */
++ wcscpy(szTrueNameTemp, szTrueName);
++ slen = (int)wcslen(szTrueNameTemp);
++ if (*porig == psepc && slen + 2 < _MAX_PATH)
++ wcscpy(szTrueNameTemp + slen, L"\\*");
++
++ /* Skip "", "." and "..". */
++ if (ptrue > ptruePrev
++ && (ptruePrev[0] != L'.'
++ || (ptruePrev[1] != NUL
++ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL)))
++ && (hFind = FindFirstFileW(szTrueNameTemp, &fb))
++ != INVALID_HANDLE_VALUE)
++ {
++ c = *porig;
++ *porig = NUL;
++
++ /* Only use the match when it's the same name (ignoring case) or
++ * expansion is allowed and there is a match with the short name
++ * and there is enough room. */
++ if (_wcsicoll(porigPrev, fb.cFileName) == 0
++ || (len > 0
++ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0
++ && (int)(ptruePrev - szTrueName)
++ + (int)wcslen(fb.cFileName) < len)))
++ {
++ wcscpy(ptruePrev, fb.cFileName);
++
++ /* Look for exact match and prefer it if found. Must be a
++ * long name, otherwise there would be only one match. */
++ while (FindNextFileW(hFind, &fb))
++ {
++ if (*fb.cAlternateFileName != NUL
++ && (wcscoll(porigPrev, fb.cFileName) == 0
++ || (len > 0
++ && (_wcsicoll(porigPrev,
++ fb.cAlternateFileName) == 0
++ && (int)(ptruePrev - szTrueName)
++ + (int)wcslen(fb.cFileName) < len))))
++ {
++ wcscpy(ptruePrev, fb.cFileName);
++ break;
++ }
++ }
++ }
++ FindClose(hFind);
++ *porig = c;
++ ptrue = ptruePrev + wcslen(ptruePrev);
++ }
++ else if (hFind == INVALID_HANDLE_VALUE
++ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
++ return FAIL;
++ }
++
++ wcscpy(name, szTrueName);
++ return OK;
++ }
++ #endif
++
+ /*
+ * fname_case(): Set the case of the file name, if it already exists.
+ * When "len" is > 0, also expand short to long filenames.
++ * NOTE: much of this is identical to fname_casew(), keep in sync!
+ */
+ void
+ fname_case(
+***************
+*** 2520,2530 ****
+ int slen;
+
+ flen = (int)STRLEN(name);
+! if (flen == 0 || flen > _MAX_PATH)
+ return;
+
+ slash_adjust(name);
+
+ /* Build the new name in szTrueName[] one component at a time. */
+ porig = name;
+ ptrue = szTrueName;
+--- 2636,2679 ----
+ int slen;
+
+ flen = (int)STRLEN(name);
+! if (flen == 0)
+ return;
+
+ slash_adjust(name);
+
++ #ifdef FEAT_MBYTE
++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
++ {
++ WCHAR *p = enc_to_utf16(name, NULL);
++
++ if (p != NULL)
++ {
++ char_u *q;
++ WCHAR buf[_MAX_PATH + 2];
++
++ wcscpy(buf, p);
++ vim_free(p);
++
++ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK)
++ {
++ q = utf16_to_enc(buf, NULL);
++ if (q != NULL)
++ {
++ vim_strncpy(name, q, (len > 0) ? len - 1 : flen);
++ vim_free(q);
++ return;
++ }
++ }
++ }
++ /* Retry with non-wide function (for Windows 98). */
++ }
++ #endif
++
++ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
++ * So we should check this after calling wide function. */
++ if (flen > _MAX_PATH)
++ return;
++
+ /* Build the new name in szTrueName[] one component at a time. */
+ porig = name;
+ ptrue = szTrueName;
+*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200
+--- src/version.c 2013-08-30 17:15:06.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 16,
+ /**/
+
+--
+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.4.017 b/source/ap/vim/patches/7.4.017
new file mode 100644
index 000000000..7d7fad83f
--- /dev/null
+++ b/source/ap/vim/patches/7.4.017
@@ -0,0 +1,78 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.017
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.017
+Problem: ":help !!" does not find the "!!" tag in the help file. (Ben
+ Fritz)
+Solution: When reading the start of the tags file do parse lines that are
+ not header lines.
+Files: src/tag.c
+
+
+*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200
+--- src/tag.c 2013-09-05 12:03:38.000000000 +0200
+***************
+*** 1797,1809 ****
+ */
+ if (state == TS_START)
+ {
+! /* The header ends when the line sorts below "!_TAG_".
+! * There may be non-header items before the header though,
+! * e.g. "!" itself. When case is folded lower case letters
+! * sort before "_". */
+ if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
+ || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
+ {
+ /*
+ * Read header line.
+ */
+--- 1797,1812 ----
+ */
+ if (state == TS_START)
+ {
+! /* The header ends when the line sorts below "!_TAG_". When
+! * case is folded lower case letters sort before "_". */
+ if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
+ || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
+ {
++ if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
++ /* Non-header item before the header, e.g. "!" itself.
++ */
++ goto parse_line;
++
+ /*
+ * Read header line.
+ */
+***************
+*** 1898,1903 ****
+--- 1901,1907 ----
+ #endif
+ }
+
++ parse_line:
+ /*
+ * Figure out where the different strings are in this line.
+ * For "normal" tags: Do a quick check if the tag matches.
+*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200
+--- src/version.c 2013-09-05 12:02:01.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 17,
+ /**/
+
+--
+An error has occurred. Hit any user 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.4.018 b/source/ap/vim/patches/7.4.018
new file mode 100644
index 000000000..2214c30b2
--- /dev/null
+++ b/source/ap/vim/patches/7.4.018
@@ -0,0 +1,45 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.018
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.018
+Problem: When completing item becomes unselected. (Shougo Matsu)
+Solution: Revert patch 7.3.1269.
+Files: src/edit.c
+
+
+*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200
+--- src/edit.c 2013-09-05 12:39:53.000000000 +0200
+***************
+*** 3467,3473 ****
+ }
+
+ compl_enter_selects = !compl_used_match;
+- compl_shown_match = compl_curr_match = compl_first_match;
+
+ /* Show the popup menu with a different set of matches. */
+ ins_compl_show_pum();
+--- 3467,3472 ----
+*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200
+--- src/version.c 2013-09-05 12:40:34.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 18,
+ /**/
+
+--
+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.4.019 b/source/ap/vim/patches/7.4.019
new file mode 100644
index 000000000..b1532c19c
--- /dev/null
+++ b/source/ap/vim/patches/7.4.019
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.019
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.019
+Problem: MS-Windows: File name completion doesn't work properly with
+ Chinese characters. (Yue Wu)
+Solution: Take care of multi-byte characters when looking for the start of
+ the file name. (Ken Takata)
+Files: src/edit.c
+
+
+*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200
+--- src/edit.c 2013-09-05 13:45:27.000000000 +0200
+***************
+*** 5183,5190 ****
+ }
+ else if (ctrl_x_mode == CTRL_X_FILES)
+ {
+! while (--startcol >= 0 && vim_isfilec(line[startcol]))
+! ;
+ compl_col += ++startcol;
+ compl_length = (int)curs_col - startcol;
+ compl_pattern = addstar(line + compl_col, compl_length,
+--- 5183,5196 ----
+ }
+ else if (ctrl_x_mode == CTRL_X_FILES)
+ {
+! char_u *p = line + startcol;
+!
+! /* Go back to just before the first filename character. */
+! mb_ptr_back(line, p);
+! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
+! mb_ptr_back(line, p);
+! startcol = p - line;
+!
+ compl_col += ++startcol;
+ compl_length = (int)curs_col - startcol;
+ compl_pattern = addstar(line + compl_col, compl_length,
+*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200
+--- src/version.c 2013-09-05 13:41:47.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 19,
+ /**/
+
+--
+ Very funny, Scotty. Now beam down my clothes.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.020 b/source/ap/vim/patches/7.4.020
new file mode 100644
index 000000000..942d82fe2
--- /dev/null
+++ b/source/ap/vim/patches/7.4.020
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.020
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.020
+Problem: NFA engine matches too much with \@>. (John McGowan)
+Solution: When a whole pattern match is found stop searching.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200
+--- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200
+***************
+*** 5322,5328 ****
+ log_subsexpr(m);
+ #endif
+ nfa_match = TRUE;
+! break;
+
+ case NFA_START_INVISIBLE:
+ case NFA_START_INVISIBLE_FIRST:
+--- 5322,5331 ----
+ log_subsexpr(m);
+ #endif
+ nfa_match = TRUE;
+! /* See comment above at "goto nextchar". */
+! if (nextlist->n == 0)
+! clen = 0;
+! goto nextchar;
+
+ case NFA_START_INVISIBLE:
+ case NFA_START_INVISIBLE_FIRST:
+*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200
+--- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200
+***************
+*** 427,432 ****
+--- 427,433 ----
+ :""""" \@>
+ :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
+ :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
++ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
+ :" TODO: BT engine does not restore submatch after failure
+ :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
+ :"
+*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200
+--- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200
+***************
+*** 983,988 ****
+--- 983,991 ----
+ OK 0 - \(a*\)\@>b
+ OK 1 - \(a*\)\@>b
+ OK 2 - \(a*\)\@>b
++ OK 0 - ^\(.\{-}b\)\@>.
++ OK 1 - ^\(.\{-}b\)\@>.
++ OK 2 - ^\(.\{-}b\)\@>.
+ OK 0 - \(a*\)\@>a\|a\+
+ OK 2 - \(a*\)\@>a\|a\+
+ OK 0 - \_[^8-9]\+
+*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200
+--- src/version.c 2013-09-05 16:04:32.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 20,
+ /**/
+
+--
+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.4.021 b/source/ap/vim/patches/7.4.021
new file mode 100644
index 000000000..0936d9a19
--- /dev/null
+++ b/source/ap/vim/patches/7.4.021
@@ -0,0 +1,86 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.021
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.021
+Problem: NFA regexp: Using \ze in one branch which doesn't match may cause
+ end of another branch to be wrong. (William Fugh)
+Solution: Set end position if it wasn't set yet.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200
+--- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200
+***************
+*** 4209,4218 ****
+ break;
+
+ case NFA_MCLOSE:
+! if (nfa_has_zend)
+ {
+! /* Do not overwrite the position set by \ze. If no \ze
+! * encountered end will be set in nfa_regtry(). */
+ subs = addstate(l, state->out, subs, pim, off);
+ break;
+ }
+--- 4209,4219 ----
+ break;
+
+ case NFA_MCLOSE:
+! if (nfa_has_zend && (REG_MULTI
+! ? subs->norm.list.multi[0].end.lnum >= 0
+! : subs->norm.list.line[0].end != NULL))
+ {
+! /* Do not overwrite the position set by \ze. */
+ subs = addstate(l, state->out, subs, pim, off);
+ break;
+ }
+*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200
+--- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200
+***************
+*** 328,333 ****
+--- 328,334 ----
+ :call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])
+ :call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])
+ :call add(tl, [2, '\>\zs.', 'aword. ', '.'])
++ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' '])
+ :"
+ :"""" Tests for \@= and \& features
+ :call add(tl, [2, 'abc\@=', 'abc', 'ab'])
+*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200
+--- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200
+***************
+*** 752,757 ****
+--- 752,760 ----
+ OK 0 - \>\zs.
+ OK 1 - \>\zs.
+ OK 2 - \>\zs.
++ OK 0 - \s\+\ze\[/\|\s\zs\s\+
++ OK 1 - \s\+\ze\[/\|\s\zs\s\+
++ OK 2 - \s\+\ze\[/\|\s\zs\s\+
+ OK 0 - abc\@=
+ OK 1 - abc\@=
+ OK 2 - abc\@=
+*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200
+--- src/version.c 2013-09-05 21:11:38.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 21,
+ /**/
+
+--
+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.4.022 b/source/ap/vim/patches/7.4.022
new file mode 100644
index 000000000..81a0901f5
--- /dev/null
+++ b/source/ap/vim/patches/7.4.022
@@ -0,0 +1,148 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.022
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.022
+Problem: Deadlock while exiting, because of allocating memory.
+Solution: Do not use gettext() in deathtrap(). (James McCoy)
+Files: src/os_unix.c, src/misc1.c
+
+
+*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200
+--- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200
+***************
+*** 957,964 ****
+
+ /*
+ * This function handles deadly signals.
+! * It tries to preserve any swap file and exit properly.
+ * (partly from Elvis).
+ */
+ static RETSIGTYPE
+ deathtrap SIGDEFARG(sigarg)
+--- 957,966 ----
+
+ /*
+ * This function handles deadly signals.
+! * It tries to preserve any swap files and exit properly.
+ * (partly from Elvis).
++ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in
++ * a deadlock.
+ */
+ static RETSIGTYPE
+ deathtrap SIGDEFARG(sigarg)
+***************
+*** 1090,1107 ****
+ }
+ if (entered == 2)
+ {
+! OUT_STR(_("Vim: Double signal, exiting\n"));
+ out_flush();
+ getout(1);
+ }
+
+ #ifdef SIGHASARG
+! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"),
+ signal_info[i].name);
+ #else
+! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n"));
+ #endif
+! preserve_exit(); /* preserve files and exit */
+
+ #ifdef NBDEBUG
+ reset_signals();
+--- 1092,1114 ----
+ }
+ if (entered == 2)
+ {
+! /* No translation, it may call malloc(). */
+! OUT_STR("Vim: Double signal, exiting\n");
+ out_flush();
+ getout(1);
+ }
+
++ /* No translation, it may call malloc(). */
+ #ifdef SIGHASARG
+! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n",
+ signal_info[i].name);
+ #else
+! sprintf((char *)IObuff, "Vim: Caught deadly signal\n");
+ #endif
+!
+! /* Preserve files and exit. This sets the really_exiting flag to prevent
+! * calling free(). */
+! preserve_exit();
+
+ #ifdef NBDEBUG
+ reset_signals();
+*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200
+--- src/misc1.c 2013-09-05 21:34:04.000000000 +0200
+***************
+*** 9174,9179 ****
+--- 9174,9181 ----
+ /*
+ * Preserve files and exit.
+ * When called IObuff must contain a message.
++ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe
++ * functions, such as allocating memory.
+ */
+ void
+ preserve_exit()
+***************
+*** 9196,9202 ****
+ {
+ if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
+ {
+! OUT_STR(_("Vim: preserving files...\n"));
+ screen_start(); /* don't know where cursor is now */
+ out_flush();
+ ml_sync_all(FALSE, FALSE); /* preserve all swap files */
+--- 9198,9204 ----
+ {
+ if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL)
+ {
+! OUT_STR("Vim: preserving files...\n");
+ screen_start(); /* don't know where cursor is now */
+ out_flush();
+ ml_sync_all(FALSE, FALSE); /* preserve all swap files */
+***************
+*** 9206,9212 ****
+
+ ml_close_all(FALSE); /* close all memfiles, without deleting */
+
+! OUT_STR(_("Vim: Finished.\n"));
+
+ getout(1);
+ }
+--- 9208,9214 ----
+
+ ml_close_all(FALSE); /* close all memfiles, without deleting */
+
+! OUT_STR("Vim: Finished.\n");
+
+ getout(1);
+ }
+*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200
+--- src/version.c 2013-09-05 21:30:18.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 22,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+175. You send yourself e-mail before you go to bed to remind you
+ what to do when you wake 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.4.023 b/source/ap/vim/patches/7.4.023
new file mode 100644
index 000000000..03005213e
--- /dev/null
+++ b/source/ap/vim/patches/7.4.023
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.023
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.023
+Problem: Compiler warning on 64 bit windows.
+Solution: Add type cast. (Mike Williams)
+Files: src/edit.c
+
+
+*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200
+--- src/edit.c 2013-09-06 17:32:55.000000000 +0200
+***************
+*** 5189,5195 ****
+ mb_ptr_back(line, p);
+ while (vim_isfilec(PTR2CHAR(p)) && p >= line)
+ mb_ptr_back(line, p);
+! startcol = p - line;
+
+ compl_col += ++startcol;
+ compl_length = (int)curs_col - startcol;
+--- 5189,5195 ----
+ mb_ptr_back(line, p);
+ while (vim_isfilec(PTR2CHAR(p)) && p >= line)
+ mb_ptr_back(line, p);
+! startcol = (int)(p - line);
+
+ compl_col += ++startcol;
+ compl_length = (int)curs_col - startcol;
+*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200
+--- src/version.c 2013-09-06 17:33:41.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 23,
+ /**/
+
+--
+Wizards had always known that the act of observation changed the thing that
+was observed, and sometimes forgot that it also changed the observer too.
+ Terry Pratchett - Interesting times
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.024 b/source/ap/vim/patches/7.4.024
new file mode 100644
index 000000000..da0df9c6f
--- /dev/null
+++ b/source/ap/vim/patches/7.4.024
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.024
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.024
+Problem: When root edits a file the undo file is owned by root while the
+ edited file may be owned by another user, which is not allowed.
+ (cac2s)
+Solution: Accept an undo file owned by the current user.
+Files: src/undo.c
+
+
+*** ../vim-7.4.023/src/undo.c 2013-06-10 20:13:37.000000000 +0200
+--- src/undo.c 2013-09-07 15:45:56.000000000 +0200
+***************
+*** 1604,1613 ****
+
+ #ifdef UNIX
+ /* For safety we only read an undo file if the owner is equal to the
+! * owner of the text file. */
+ if (mch_stat((char *)orig_name, &st_orig) >= 0
+ && mch_stat((char *)file_name, &st_undo) >= 0
+! && st_orig.st_uid != st_undo.st_uid)
+ {
+ if (p_verbose > 0)
+ {
+--- 1604,1614 ----
+
+ #ifdef UNIX
+ /* For safety we only read an undo file if the owner is equal to the
+! * owner of the text file or equal to the current user. */
+ if (mch_stat((char *)orig_name, &st_orig) >= 0
+ && mch_stat((char *)file_name, &st_undo) >= 0
+! && st_orig.st_uid != st_undo.st_uid
+! && st_undo.st_uid != getuid())
+ {
+ if (p_verbose > 0)
+ {
+*** ../vim-7.4.023/src/version.c 2013-09-07 16:35:38.000000000 +0200
+--- src/version.c 2013-09-08 15:38:52.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 24,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+186. You overstay in the office so you can have more time 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.4.025 b/source/ap/vim/patches/7.4.025
new file mode 100644
index 000000000..9ead176eb
--- /dev/null
+++ b/source/ap/vim/patches/7.4.025
@@ -0,0 +1,62 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.025
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.025 (after 7.4.019
+Problem: Reading before start of a string.
+Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle)
+Files: src/edit.c
+
+
+*** ../vim-7.4.024/src/edit.c 2013-09-07 16:35:38.000000000 +0200
+--- src/edit.c 2013-09-08 15:57:20.000000000 +0200
+***************
+*** 5187,5197 ****
+
+ /* Go back to just before the first filename character. */
+ mb_ptr_back(line, p);
+! while (vim_isfilec(PTR2CHAR(p)) && p >= line)
+ mb_ptr_back(line, p);
+! startcol = (int)(p - line);
+
+! compl_col += ++startcol;
+ compl_length = (int)curs_col - startcol;
+ compl_pattern = addstar(line + compl_col, compl_length,
+ EXPAND_FILES);
+--- 5187,5199 ----
+
+ /* Go back to just before the first filename character. */
+ mb_ptr_back(line, p);
+! while (p > line && vim_isfilec(PTR2CHAR(p)))
+ mb_ptr_back(line, p);
+! startcol = (int)(p - line) + 1;
+! if (p == line && vim_isfilec(PTR2CHAR(p)))
+! startcol = 0;
+
+! compl_col += startcol;
+ compl_length = (int)curs_col - startcol;
+ compl_pattern = addstar(line + compl_col, compl_length,
+ EXPAND_FILES);
+*** ../vim-7.4.024/src/version.c 2013-09-08 15:40:45.000000000 +0200
+--- src/version.c 2013-09-08 15:52:39.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 25,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+188. You purchase a laptop so you can surf while sitting on the can.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.026 b/source/ap/vim/patches/7.4.026
new file mode 100644
index 000000000..8add91f7a
--- /dev/null
+++ b/source/ap/vim/patches/7.4.026
@@ -0,0 +1,65 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.026
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.026
+Problem: Clang warning for int shift overflow.
+Solution: Use unsigned and cast back to int. (Dominique Pelle)
+Files: src/misc2.c
+
+
+*** ../vim-7.4.025/src/misc2.c 2013-07-07 16:03:35.000000000 +0200
+--- src/misc2.c 2013-09-08 16:04:54.000000000 +0200
+***************
+*** 6496,6508 ****
+ get4c(fd)
+ FILE *fd;
+ {
+! int n;
+
+! n = getc(fd);
+! n = (n << 8) + getc(fd);
+! n = (n << 8) + getc(fd);
+! n = (n << 8) + getc(fd);
+! return n;
+ }
+
+ /*
+--- 6496,6510 ----
+ get4c(fd)
+ FILE *fd;
+ {
+! /* Use unsigned rather than int otherwise result is undefined
+! * when left-shift sets the MSB. */
+! unsigned n;
+
+! n = (unsigned)getc(fd);
+! n = (n << 8) + (unsigned)getc(fd);
+! n = (n << 8) + (unsigned)getc(fd);
+! n = (n << 8) + (unsigned)getc(fd);
+! return (int)n;
+ }
+
+ /*
+*** ../vim-7.4.025/src/version.c 2013-09-08 16:03:40.000000000 +0200
+--- src/version.c 2013-09-08 16:05:40.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 26,
+ /**/
+
+--
+A computer program does what you tell it to do, not what you want it to do.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.027 b/source/ap/vim/patches/7.4.027
new file mode 100644
index 000000000..ab43d59ac
--- /dev/null
+++ b/source/ap/vim/patches/7.4.027
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.027
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.027 (after 7.4.025)
+Problem: Another valgrind error when using CTRL-X CTRL-F at the start of
+ the line. (Dominique Pelle)
+Solution: Don't call mb_ptr_back() at the start of the line. Add a test.
+Files: src/edit.c, src/testdir/test32.in
+
+
+*** ../vim-7.4.026/src/edit.c 2013-09-08 16:03:40.000000000 +0200
+--- src/edit.c 2013-09-08 18:18:32.000000000 +0200
+***************
+*** 5183,5197 ****
+ }
+ else if (ctrl_x_mode == CTRL_X_FILES)
+ {
+- char_u *p = line + startcol;
+-
+ /* Go back to just before the first filename character. */
+! mb_ptr_back(line, p);
+! while (p > line && vim_isfilec(PTR2CHAR(p)))
+ mb_ptr_back(line, p);
+! startcol = (int)(p - line) + 1;
+! if (p == line && vim_isfilec(PTR2CHAR(p)))
+! startcol = 0;
+
+ compl_col += startcol;
+ compl_length = (int)curs_col - startcol;
+--- 5183,5201 ----
+ }
+ else if (ctrl_x_mode == CTRL_X_FILES)
+ {
+ /* Go back to just before the first filename character. */
+! if (startcol > 0)
+! {
+! char_u *p = line + startcol;
+!
+ mb_ptr_back(line, p);
+! while (p > line && vim_isfilec(PTR2CHAR(p)))
+! mb_ptr_back(line, p);
+! if (p == line && vim_isfilec(PTR2CHAR(p)))
+! startcol = 0;
+! else
+! startcol = (int)(p - line) + 1;
+! }
+
+ compl_col += startcol;
+ compl_length = (int)curs_col - startcol;
+*** ../vim-7.4.026/src/testdir/test32.in 2010-05-15 13:04:10.000000000 +0200
+--- src/testdir/test32.in 2013-09-08 18:08:07.000000000 +0200
+***************
+*** 36,41 ****
+--- 36,44 ----
+ :w Xtest11.one
+ :w Xtest11.two
+ OIXA
++ :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use
++ :" CTRL-X CTRL-F again to verify this doesn't cause trouble.
++ OXddk
+ :se cpt=w
+ OST
+ :se cpt=u nohid
+*** ../vim-7.4.026/src/version.c 2013-09-08 16:07:03.000000000 +0200
+--- src/version.c 2013-09-08 18:14:17.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 27,
+ /**/
+
+--
+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.4.028 b/source/ap/vim/patches/7.4.028
new file mode 100644
index 000000000..4a0e3cf9d
--- /dev/null
+++ b/source/ap/vim/patches/7.4.028
@@ -0,0 +1,753 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.028
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.028
+Problem: Equivalence classes are not working for multi-byte characters.
+Solution: Copy the rules from the old to the new regexp engine. Add a test
+ to check both engines.
+Files: src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in,
+ src/testdir/test99.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.4.027/src/regexp_nfa.c 2013-09-05 21:15:38.000000000 +0200
+--- src/regexp_nfa.c 2013-09-19 16:40:08.000000000 +0200
+***************
+*** 742,748 ****
+ nfa_emit_equi_class(c)
+ int c;
+ {
+! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
+
+ #ifdef FEAT_MBYTE
+ if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
+--- 742,753 ----
+ nfa_emit_equi_class(c)
+ int c;
+ {
+! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT);
+! #ifdef FEAT_MBYTE
+! # define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT);
+! #else
+! # define EMITMBC(c)
+! #endif
+
+ #ifdef FEAT_MBYTE
+ if (enc_utf8 || STRCMP(p_enc, "latin1") == 0
+***************
+*** 753,844 ****
+ {
+ case 'A': case 0300: case 0301: case 0302:
+ case 0303: case 0304: case 0305:
+! EMIT2('A'); EMIT2(0300); EMIT2(0301);
+! EMIT2(0302); EMIT2(0303); EMIT2(0304);
+! EMIT2(0305);
+ return OK;
+
+ case 'C': case 0307:
+! EMIT2('C'); EMIT2(0307);
+ return OK;
+
+ case 'E': case 0310: case 0311: case 0312: case 0313:
+! EMIT2('E'); EMIT2(0310); EMIT2(0311);
+! EMIT2(0312); EMIT2(0313);
+ return OK;
+
+ case 'I': case 0314: case 0315: case 0316: case 0317:
+! EMIT2('I'); EMIT2(0314); EMIT2(0315);
+! EMIT2(0316); EMIT2(0317);
+ return OK;
+
+ case 'N': case 0321:
+! EMIT2('N'); EMIT2(0321);
+ return OK;
+
+ case 'O': case 0322: case 0323: case 0324: case 0325:
+! case 0326:
+! EMIT2('O'); EMIT2(0322); EMIT2(0323);
+! EMIT2(0324); EMIT2(0325); EMIT2(0326);
+ return OK;
+
+ case 'U': case 0331: case 0332: case 0333: case 0334:
+! EMIT2('U'); EMIT2(0331); EMIT2(0332);
+! EMIT2(0333); EMIT2(0334);
+ return OK;
+
+ case 'Y': case 0335:
+! EMIT2('Y'); EMIT2(0335);
+ return OK;
+
+ case 'a': case 0340: case 0341: case 0342:
+ case 0343: case 0344: case 0345:
+! EMIT2('a'); EMIT2(0340); EMIT2(0341);
+! EMIT2(0342); EMIT2(0343); EMIT2(0344);
+! EMIT2(0345);
+ return OK;
+
+ case 'c': case 0347:
+! EMIT2('c'); EMIT2(0347);
+ return OK;
+
+ case 'e': case 0350: case 0351: case 0352: case 0353:
+! EMIT2('e'); EMIT2(0350); EMIT2(0351);
+! EMIT2(0352); EMIT2(0353);
+ return OK;
+
+ case 'i': case 0354: case 0355: case 0356: case 0357:
+! EMIT2('i'); EMIT2(0354); EMIT2(0355);
+! EMIT2(0356); EMIT2(0357);
+ return OK;
+
+ case 'n': case 0361:
+! EMIT2('n'); EMIT2(0361);
+ return OK;
+
+ case 'o': case 0362: case 0363: case 0364: case 0365:
+! case 0366:
+! EMIT2('o'); EMIT2(0362); EMIT2(0363);
+! EMIT2(0364); EMIT2(0365); EMIT2(0366);
+ return OK;
+
+ case 'u': case 0371: case 0372: case 0373: case 0374:
+! EMIT2('u'); EMIT2(0371); EMIT2(0372);
+! EMIT2(0373); EMIT2(0374);
+ return OK;
+
+ case 'y': case 0375: case 0377:
+! EMIT2('y'); EMIT2(0375); EMIT2(0377);
+ return OK;
+
+! default:
+! return FAIL;
+ }
+ }
+
+! EMIT(c);
+ return OK;
+ #undef EMIT2
+ }
+
+ /*
+--- 758,1095 ----
+ {
+ case 'A': case 0300: case 0301: case 0302:
+ case 0303: case 0304: case 0305:
+! CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd)
+! CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2)
+! EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302);
+! EMIT2(0303); EMIT2(0304); EMIT2(0305);
+! EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104)
+! EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0)
+! EMITMBC(0x1ea2)
+! return OK;
+!
+! case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06)
+! EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06)
+ return OK;
+
+ case 'C': case 0307:
+! CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c)
+! EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108)
+! EMITMBC(0x10a) EMITMBC(0x10c)
+! return OK;
+!
+! case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a)
+! CASEMBC(0x1e0e) CASEMBC(0x1e10)
+! EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a)
+! EMITMBC(0x1e0e) EMITMBC(0x1e10)
+ return OK;
+
+ case 'E': case 0310: case 0311: case 0312: case 0313:
+! CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118)
+! CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc)
+! EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312);
+! EMIT2(0313);
+! EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116)
+! EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba)
+! EMITMBC(0x1ebc)
+! return OK;
+!
+! case 'F': CASEMBC(0x1e1e)
+! EMIT2('F'); EMITMBC(0x1e1e)
+! return OK;
+!
+! case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120)
+! CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4)
+! CASEMBC(0x1e20)
+! EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120)
+! EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6)
+! EMITMBC(0x1f4) EMITMBC(0x1e20)
+! return OK;
+!
+! case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22)
+! CASEMBC(0x1e26) CASEMBC(0x1e28)
+! EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22)
+! EMITMBC(0x1e26) EMITMBC(0x1e28)
+ return OK;
+
+ case 'I': case 0314: case 0315: case 0316: case 0317:
+! CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e)
+! CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8)
+! EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316);
+! EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a)
+! EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130)
+! EMITMBC(0x1cf) EMITMBC(0x1ec8)
+! return OK;
+!
+! case 'J': CASEMBC(0x134)
+! EMIT2('J'); EMITMBC(0x134)
+! return OK;
+!
+! case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30)
+! CASEMBC(0x1e34)
+! EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30)
+! EMITMBC(0x1e34)
+! return OK;
+!
+! case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d)
+! CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a)
+! EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d)
+! EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a)
+! return OK;
+!
+! case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40)
+! EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40)
+ return OK;
+
+ case 'N': case 0321:
+! CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44)
+! CASEMBC(0x1e48)
+! EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145)
+! EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48)
+ return OK;
+
+ case 'O': case 0322: case 0323: case 0324: case 0325:
+! case 0326: case 0330:
+! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0)
+! CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece)
+! EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324);
+! EMIT2(0325); EMIT2(0326); EMIT2(0330);
+! EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150)
+! EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea)
+! EMITMBC(0x1ec) EMITMBC(0x1ece)
+! return OK;
+!
+! case 'P': case 0x1e54: case 0x1e56:
+! EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56)
+! return OK;
+!
+! case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158)
+! CASEMBC(0x1e58) CASEMBC(0x1e5e)
+! EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158)
+! EMITMBC(0x1e58) EMITMBC(0x1e5e)
+! return OK;
+!
+! case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e)
+! CASEMBC(0x160) CASEMBC(0x1e60)
+! EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e)
+! EMITMBC(0x160) EMITMBC(0x1e60)
+! return OK;
+!
+! case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166)
+! CASEMBC(0x1e6a) CASEMBC(0x1e6e)
+! EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166)
+! EMITMBC(0x1e6a) EMITMBC(0x1e6e)
+ return OK;
+
+ case 'U': case 0331: case 0332: case 0333: case 0334:
+! CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e)
+! CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3)
+! CASEMBC(0x1ee6)
+! EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333);
+! EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a)
+! EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170)
+! EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3)
+! EMITMBC(0x1ee6)
+! return OK;
+!
+! case 'V': CASEMBC(0x1e7c)
+! EMIT2('V'); EMITMBC(0x1e7c)
+! return OK;
+!
+! case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82)
+! CASEMBC(0x1e84) CASEMBC(0x1e86)
+! EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82)
+! EMITMBC(0x1e84) EMITMBC(0x1e86)
+! return OK;
+!
+! case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c)
+! EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c)
+ return OK;
+
+ case 'Y': case 0335:
+! CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2)
+! CASEMBC(0x1ef6) CASEMBC(0x1ef8)
+! EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178)
+! EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6)
+! EMITMBC(0x1ef8)
+! return OK;
+!
+! case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d)
+! CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94)
+! EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d)
+! EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94)
+ return OK;
+
+ case 'a': case 0340: case 0341: case 0342:
+ case 0343: case 0344: case 0345:
+! CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce)
+! CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3)
+! EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342);
+! EMIT2(0343); EMIT2(0344); EMIT2(0345);
+! EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105)
+! EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1)
+! EMITMBC(0x1ea3)
+! return OK;
+!
+! case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07)
+! EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07)
+ return OK;
+
+ case 'c': case 0347:
+! CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d)
+! EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109)
+! EMITMBC(0x10b) EMITMBC(0x10d)
+! return OK;
+!
+! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b)
+! CASEMBC(0x1e11)
+! EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b)
+! EMITMBC(0x01e0f) EMITMBC(0x1e11)
+ return OK;
+
+ case 'e': case 0350: case 0351: case 0352: case 0353:
+! CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119)
+! CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd)
+! EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352);
+! EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115)
+! EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b)
+! EMITMBC(0x1ebb) EMITMBC(0x1ebd)
+! return OK;
+!
+! case 'f': CASEMBC(0x1e1f)
+! EMIT2('f'); EMITMBC(0x1e1f)
+! return OK;
+!
+! case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121)
+! CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5)
+! CASEMBC(0x1e21)
+! EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121)
+! EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7)
+! EMITMBC(0x1f5) EMITMBC(0x1e21)
+! return OK;
+!
+! case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23)
+! CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96)
+! EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23)
+! EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96)
+ return OK;
+
+ case 'i': case 0354: case 0355: case 0356: case 0357:
+! CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f)
+! CASEMBC(0x1d0) CASEMBC(0x1ec9)
+! EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356);
+! EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b)
+! EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0)
+! EMITMBC(0x1ec9)
+! return OK;
+!
+! case 'j': CASEMBC(0x135) CASEMBC(0x1f0)
+! EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0)
+! return OK;
+!
+! case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31)
+! CASEMBC(0x1e35)
+! EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31)
+! EMITMBC(0x1e35)
+! return OK;
+!
+! case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e)
+! CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b)
+! EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e)
+! EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b)
+! return OK;
+!
+! case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41)
+! EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41)
+ return OK;
+
+ case 'n': case 0361:
+! CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149)
+! CASEMBC(0x1e45) CASEMBC(0x1e49)
+! EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146)
+! EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45)
+! EMITMBC(0x1e49)
+ return OK;
+
+ case 'o': case 0362: case 0363: case 0364: case 0365:
+! case 0366: case 0370:
+! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1)
+! CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf)
+! EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364);
+! EMIT2(0365); EMIT2(0366); EMIT2(0370);
+! EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151)
+! EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb)
+! EMITMBC(0x1ed) EMITMBC(0x1ecf)
+! return OK;
+!
+! case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57)
+! EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57)
+! return OK;
+!
+! case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159)
+! CASEMBC(0x1e59) CASEMBC(0x1e5f)
+! EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159)
+! EMITMBC(0x1e59) EMITMBC(0x1e5f)
+! return OK;
+!
+! case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f)
+! CASEMBC(0x161) CASEMBC(0x1e61)
+! EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f)
+! EMITMBC(0x161) EMITMBC(0x1e61)
+! return OK;
+!
+! case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167)
+! CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97)
+! EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167)
+! EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97)
+ return OK;
+
+ case 'u': case 0371: case 0372: case 0373: case 0374:
+! CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f)
+! CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4)
+! CASEMBC(0x1ee7)
+! EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373);
+! EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b)
+! EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171)
+! EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4)
+! EMITMBC(0x1ee7)
+! return OK;
+!
+! case 'v': CASEMBC(0x1e7d)
+! EMIT2('v'); EMITMBC(0x1e7d)
+! return OK;
+!
+! case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83)
+! CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98)
+! EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83)
+! EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98)
+! return OK;
+!
+! case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d)
+! EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d)
+ return OK;
+
+ case 'y': case 0375: case 0377:
+! CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99)
+! CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9)
+! EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177)
+! EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3)
+! EMITMBC(0x1ef7) EMITMBC(0x1ef9)
+! return OK;
+!
+! case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e)
+! CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95)
+! EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e)
+! EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95)
+ return OK;
+
+! /* default: character itself */
+ }
+ }
+
+! EMIT2(c);
+ return OK;
+ #undef EMIT2
++ #undef EMITMBC
+ }
+
+ /*
+*** ../vim-7.4.027/src/testdir/test44.in 2013-05-26 14:16:31.000000000 +0200
+--- src/testdir/test44.in 2013-09-19 16:49:14.000000000 +0200
+***************
+*** 1,9 ****
+--- 1,11 ----
+ Tests for regexp with multi-byte encoding and various magic settings.
+ Test matchstr() with a count and multi-byte chars.
++ See test99 for exactly the same test with re=2.
+
+ STARTTEST
+ :so mbyte.vim
+ :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
++ :set re=1
+ /^1
+ /a*b\{2}c\+/e
+ x/\Md\*e\{2}f\+/e
+*** ../vim-7.4.027/src/testdir/test99.in 2013-09-19 16:59:30.000000000 +0200
+--- src/testdir/test99.in 2013-09-19 16:50:00.000000000 +0200
+***************
+*** 0 ****
+--- 1,68 ----
++ Tests for regexp with multi-byte encoding and various magic settings.
++ Test matchstr() with a count and multi-byte chars.
++ See test44 for exactly the same test with re=1.
++
++ STARTTEST
++ :so mbyte.vim
++ :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
++ :set re=2
++ /^1
++ /a*b\{2}c\+/e
++ x/\Md\*e\{2}f\+/e
++ x:set nomagic
++ /g\*h\{2}i\+/e
++ x/\mj*k\{2}l\+/e
++ x/\vm*n{2}o+/e
++ x/\V^aa$
++ x:set magic
++ /\v(a)(b)\2\1\1/e
++ x/\V[ab]\(\[xy]\)\1
++ x:" Now search for multi-byte without composing char
++ /ม
++ x:" Now search for multi-byte with composing char
++ /ม่
++ x:" find word by change of word class
++ /ă¡\<ă‚«ăƒ¨\>ă¯
++ x:" Test \%u, [\u] and friends
++ /\%u20ac
++ x/[\u4f7f\u5929]\+
++ 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:" Test backwards search from a multi-byte char
++ /x
++ x?.
++ x:let @w=':%s#comb[i]nations#Å“̀„á¹£̀m̀¥̀„ὰ„̀†̀#g'
++ :@w
++ :?^1?,$w! test.out
++ :e! test.out
++ G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב
++ :put =matchstr(\"×בגד\", \"..\", 0, 2) " בג
++ :put =matchstr(\"×בגד\", \".\", 0, 0) " ×
++ :put =matchstr(\"×בגד\", \".\", 4, -1) " ×’
++ :w!
++ :qa!
++ ENDTEST
++
++ 1 a aa abb abbccc
++ 2 d dd dee deefff
++ 3 g gg ghh ghhiii
++ 4 j jj jkk jkklll
++ 5 m mm mnn mnnooo
++ 6 x ^aa$ x
++ 7 (a)(b) abbaa
++ 8 axx [ab]xx
++ 9 หม่x อมx
++ a อมx หม่x
++ b ă¡ă‚«ăƒ¨ă¯
++ c x ¬€x
++ d 天使x
++ 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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ oĂ²Ă³Ă´ĂµĂ¶Ă¸ÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uĂ¹ĂºĂ»Ă¼Å©Å«Å­Å¯Å±Å³Æ°Ç”á»§ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyĂ½Ă¿Å·áºáº™á»³á»·á»¹ zźżžƶẑẕ
++ j 0123â¤x
++ k combinations
+*** ../vim-7.4.027/src/testdir/test99.ok 2013-09-19 16:59:30.000000000 +0200
+--- src/testdir/test99.ok 2013-09-19 16:50:16.000000000 +0200
+***************
+*** 0 ****
+--- 1,24 ----
++ 1 a aa abb abbcc
++ 2 d dd dee deeff
++ 3 g gg ghh ghhii
++ 4 j jj jkk jkkll
++ 5 m mm mnn mnnoo
++ 6 x aa$ x
++ 7 (a)(b) abba
++ 8 axx ab]xx
++ 9 หม่x อx
++ a อมx หx
++ b ă‚«ăƒ¨ă¯
++ c x ¬x
++ d 使x
++ 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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ oĂ²Ă³Ă´ĂµĂ¶Ă¸ÅÅÅ‘Æ¡Ç’Ç«Ç­á» pṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uĂ¹ĂºĂ»Ă¼Å©Å«Å­Å¯Å±Å³Æ°Ç”á»§ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyĂ½Ă¿Å·áºáº™á»³á»·á»¹ zźżžƶẑ
++ j 012â¤
++ k Å“̀„á¹£̀m̀¥̀„ὰ„̀†̀
++ ב
++ בג
++ ×
++ ×’
+*** ../vim-7.4.027/src/testdir/Make_amiga.mak 2013-07-09 13:40:02.000000000 +0200
+--- src/testdir/Make_amiga.mak 2013-09-19 16:51:48.000000000 +0200
+***************
+*** 33,39 ****
+ test76.out test77.out test78.out test79.out test80.out \
+ test81.out test82.out test83.out test84.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test97.out test98.out
+
+ .SUFFIXES: .in .out
+
+--- 33,40 ----
+ test76.out test77.out test78.out test79.out test80.out \
+ test81.out test82.out test83.out test84.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test97.out test98.out \
+! test99.out
+
+ .SUFFIXES: .in .out
+
+***************
+*** 148,150 ****
+--- 149,152 ----
+ test96.out: test96.in
+ test97.out: test97.in
+ test98.out: test98.in
++ test99.out: test99.in
+*** ../vim-7.4.027/src/testdir/Make_dos.mak 2013-07-09 13:40:30.000000000 +0200
+--- src/testdir/Make_dos.mak 2013-09-19 16:51:56.000000000 +0200
+***************
+*** 32,38 ****
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 32,38 ----
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out test99.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.4.027/src/testdir/Make_ming.mak 2013-07-09 13:40:38.000000000 +0200
+--- src/testdir/Make_ming.mak 2013-09-19 16:52:01.000000000 +0200
+***************
+*** 52,58 ****
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out
+
+ SCRIPTS32 = test50.out test70.out
+
+--- 52,58 ----
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out test99.out
+
+ SCRIPTS32 = test50.out test70.out
+
+*** ../vim-7.4.027/src/testdir/Make_os2.mak 2013-07-09 13:40:43.000000000 +0200
+--- src/testdir/Make_os2.mak 2013-09-19 16:52:07.000000000 +0200
+***************
+*** 34,40 ****
+ test76.out test77.out test78.out test79.out test80.out \
+ test81.out test82.out test83.out test84.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out
+
+ .SUFFIXES: .in .out
+
+--- 34,40 ----
+ test76.out test77.out test78.out test79.out test80.out \
+ test81.out test82.out test83.out test84.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test98.out test99.out
+
+ .SUFFIXES: .in .out
+
+*** ../vim-7.4.027/src/testdir/Make_vms.mms 2013-07-09 13:40:47.000000000 +0200
+--- src/testdir/Make_vms.mms 2013-09-19 16:52:13.000000000 +0200
+***************
+*** 4,10 ****
+ # Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
+ # Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
+ #
+! # Last change: 2013 Jul 09
+ #
+ # 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: 2013 Sep 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.
+***************
+*** 78,84 ****
+ test77.out test78.out test79.out test80.out test81.out \
+ test82.out test83.out test84.out test88.out test89.out \
+ test90.out test91.out test92.out test93.out test94.out \
+! test95.out test96.out test97.out test98.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+--- 78,84 ----
+ test77.out test78.out test79.out test80.out test81.out \
+ test82.out test83.out test84.out test88.out test89.out \
+ test90.out test91.out test92.out test93.out test94.out \
+! test95.out test96.out test97.out test98.out test99.out
+
+ # Known problems:
+ # Test 30: a problem around mac format - unknown reason
+*** ../vim-7.4.027/src/testdir/Makefile 2013-08-10 14:20:20.000000000 +0200
+--- src/testdir/Makefile 2013-09-19 16:52:22.000000000 +0200
+***************
+*** 29,35 ****
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test97.out test98.out
+
+ SCRIPTS_GUI = test16.out
+
+--- 29,36 ----
+ test79.out test80.out test81.out test82.out test83.out \
+ test84.out test85.out test86.out test87.out test88.out \
+ test89.out test90.out test91.out test92.out test93.out \
+! test94.out test95.out test96.out test97.out test98.out \
+! test99.out
+
+ SCRIPTS_GUI = test16.out
+
+*** ../vim-7.4.027/src/version.c 2013-09-08 20:00:45.000000000 +0200
+--- src/version.c 2013-09-19 13:54:35.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 28,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+232. You start conversations with, "Have you gotten an ISDN line?"
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.029 b/source/ap/vim/patches/7.4.029
new file mode 100644
index 000000000..b87e3a356
--- /dev/null
+++ b/source/ap/vim/patches/7.4.029
@@ -0,0 +1,63 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.029
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.029
+Problem: An error in a pattern is reported twice.
+Solution: Remove the retry with the backtracking engine, it won't work.
+Files: src/regexp.c
+
+
+*** ../vim-7.4.028/src/regexp.c 2013-08-25 17:01:36.000000000 +0200
+--- src/regexp.c 2013-09-19 17:03:31.000000000 +0200
+***************
+*** 8016,8027 ****
+ }
+ #endif
+ /*
+! * If NFA engine failed, then revert to the backtracking engine.
+! * Except when there was a syntax error, which was properly handled by
+! * NFA engine.
+! */
+ if (regexp_engine == AUTOMATIC_ENGINE)
+ prog = bt_regengine.regcomp(expr, re_flags);
+ }
+
+ return prog;
+--- 8016,8026 ----
+ }
+ #endif
+ /*
+! * If the NFA engine failed, the backtracking engine won't work either.
+! *
+ if (regexp_engine == AUTOMATIC_ENGINE)
+ prog = bt_regengine.regcomp(expr, re_flags);
++ */
+ }
+
+ return prog;
+*** ../vim-7.4.028/src/version.c 2013-09-19 17:00:14.000000000 +0200
+--- src/version.c 2013-09-19 17:01:13.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 29,
+ /**/
+
+--
+The term "free software" is defined by Richard M. Stallman as
+being software that isn't necessarily for free. Confusing?
+Let's call it "Stallman software" then!
+ -- 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.4.030 b/source/ap/vim/patches/7.4.030
new file mode 100644
index 000000000..d685df673
--- /dev/null
+++ b/source/ap/vim/patches/7.4.030
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.030
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.030
+Problem: The -mno-cygwin argument is no longer supported by Cygwin.
+Solution: Remove the arguments. (Steve Hall)
+Files: src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak
+
+
+*** ../vim-7.4.029/src/GvimExt/Make_cyg.mak 2011-09-30 16:45:49.000000000 +0200
+--- src/GvimExt/Make_cyg.mak 2013-09-19 20:46:46.000000000 +0200
+***************
+*** 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
+*** ../vim-7.4.029/src/Make_cyg.mak 2013-07-06 13:32:11.000000000 +0200
+--- src/Make_cyg.mak 2013-09-19 20:46:55.000000000 +0200
+***************
+*** 1,6 ****
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2013 Apr 22
+ #
+ # Also read INSTALLpc.txt!
+ #
+--- 1,6 ----
+ #
+ # Makefile for VIM on Win32, using Cygnus gcc
+! # Last updated by Dan Sharp. Last Change: 2013 Sep 19
+ #
+ # Also read INSTALLpc.txt!
+ #
+***************
+*** 439,446 ****
+ ##############################
+ ifeq (yes, $(USEDLL))
+ DEFINES += -D_MAX_PATH=256 -D__CYGWIN__
+- else
+- INCLUDES += -mno-cygwin
+ endif
+
+ ##############################
+--- 439,444 ----
+*** ../vim-7.4.029/src/xxd/Make_cyg.mak 2010-05-15 13:04:06.000000000 +0200
+--- src/xxd/Make_cyg.mak 2013-09-19 20:47:05.000000000 +0200
+***************
+*** 8,14 ****
+ DEFINES =
+ LIBS = -lc
+ else
+! DEFINES = -mno-cygwin
+ LIBS =
+ endif
+
+--- 8,14 ----
+ DEFINES =
+ LIBS = -lc
+ else
+! DEFINES =
+ LIBS =
+ endif
+
+*** ../vim-7.4.029/src/version.c 2013-09-19 17:03:57.000000000 +0200
+--- src/version.c 2013-09-19 20:46:32.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 30,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+237. You tattoo your email address on your forehead.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.031 b/source/ap/vim/patches/7.4.031
new file mode 100644
index 000000000..f4e49d86b
--- /dev/null
+++ b/source/ap/vim/patches/7.4.031
@@ -0,0 +1,54 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.031
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.031
+Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles
+ Cooper)
+Solution: Only resets related options in a window where 'diff' is set.
+Files: src/diff.c
+
+
+*** ../vim-7.4.030/src/diff.c 2013-07-17 13:43:15.000000000 +0200
+--- src/diff.c 2013-09-20 19:58:47.000000000 +0200
+***************
+*** 1203,1209 ****
+
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ {
+! if (wp == curwin || (eap->forceit && wp->w_p_diff))
+ {
+ /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
+ * were saved in diff_win_options() restore them. */
+--- 1203,1209 ----
+
+ for (wp = firstwin; wp != NULL; wp = wp->w_next)
+ {
+! if (eap->forceit ? wp->w_p_diff : wp == curwin)
+ {
+ /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values
+ * were saved in diff_win_options() restore them. */
+*** ../vim-7.4.030/src/version.c 2013-09-19 20:48:59.000000000 +0200
+--- src/version.c 2013-09-20 19:59:45.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 31,
+ /**/
+
+--
+"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.4.032 b/source/ap/vim/patches/7.4.032
new file mode 100644
index 000000000..9e25dc4ee
--- /dev/null
+++ b/source/ap/vim/patches/7.4.032
@@ -0,0 +1,82 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.032
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.032
+Problem: NFA engine does not match the NUL character. (Jonathon Merz)
+Solution: Ues 0x0a instead of NUL. (Christian Brabandt)
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.031/src/regexp_nfa.c 2013-09-19 17:00:14.000000000 +0200
+--- src/regexp_nfa.c 2013-09-22 13:53:46.000000000 +0200
+***************
+*** 1383,1390 ****
+ EMSG2_RET_FAIL(
+ _("E678: Invalid character after %s%%[dxouU]"),
+ reg_magic == MAGIC_ALL);
+ /* TODO: what if a composing character follows? */
+! EMIT(nr);
+ }
+ break;
+
+--- 1383,1391 ----
+ EMSG2_RET_FAIL(
+ _("E678: Invalid character after %s%%[dxouU]"),
+ reg_magic == MAGIC_ALL);
++ /* A NUL is stored in the text as NL */
+ /* TODO: what if a composing character follows? */
+! EMIT(nr == 0 ? 0x0a : nr);
+ }
+ break;
+
+*** ../vim-7.4.031/src/testdir/test64.in 2013-09-05 21:15:38.000000000 +0200
+--- src/testdir/test64.in 2013-09-22 13:51:53.000000000 +0200
+***************
+*** 373,378 ****
+--- 373,379 ----
+ :call add(tl, [2, '\%x20', 'yes no', ' '])
+ :call add(tl, [2, '\%u0020', 'yes no', ' '])
+ :call add(tl, [2, '\%U00000020', 'yes no', ' '])
++ :call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"])
+ :"
+ :""""" \%[abc]
+ :call add(tl, [2, 'foo\%[bar]', 'fobar'])
+*** ../vim-7.4.031/src/testdir/test64.ok 2013-09-05 21:15:38.000000000 +0200
+--- src/testdir/test64.ok 2013-09-22 13:52:41.000000000 +0200
+***************
+*** 863,868 ****
+--- 863,871 ----
+ OK 0 - \%U00000020
+ OK 1 - \%U00000020
+ OK 2 - \%U00000020
++ OK 0 - \%d0
++ OK 1 - \%d0
++ OK 2 - \%d0
+ OK 0 - foo\%[bar]
+ OK 1 - foo\%[bar]
+ OK 2 - foo\%[bar]
+*** ../vim-7.4.031/src/version.c 2013-09-20 20:13:48.000000000 +0200
+--- src/version.c 2013-09-22 13:56:45.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 32,
+ /**/
+
+--
+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.4.033 b/source/ap/vim/patches/7.4.033
new file mode 100644
index 000000000..7eba8a0af
--- /dev/null
+++ b/source/ap/vim/patches/7.4.033
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.033
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.033
+Problem: When the terminal has only 20 lines test 92 and 93 overwrite the
+ input file.
+Solution: Explicitly write test.out. Check that the terminal is large enough
+ to run the tests. (Hirohito Higashi)
+Files: src/testdir/test92.in, src/testdir/test93.in,
+ src/testdir/test1.in, src/testdir/Makefile
+
+
+*** ../vim-7.4.032/src/testdir/test92.in 2013-04-18 23:33:45.000000000 +0200
+--- src/testdir/test92.in 2013-09-22 14:45:06.000000000 +0200
+***************
+*** 33,39 ****
+ :mksession! test.out
+ :new test.out
+ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d
+! :w
+ :qa!
+ ENDTEST
+
+--- 33,39 ----
+ :mksession! test.out
+ :new test.out
+ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d
+! :w! test.out
+ :qa!
+ ENDTEST
+
+*** ../vim-7.4.032/src/testdir/test93.in 2013-02-26 17:13:01.000000000 +0100
+--- src/testdir/test93.in 2013-09-22 14:45:17.000000000 +0200
+***************
+*** 33,39 ****
+ :mksession! test.out
+ :new test.out
+ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d
+! :w
+ :qa!
+ ENDTEST
+
+--- 33,39 ----
+ :mksession! test.out
+ :new test.out
+ :v/\(^ *normal! 0\|^ *exe 'normal!\)/d
+! :w! test.out
+ :qa!
+ ENDTEST
+
+*** ../vim-7.4.032/src/testdir/test1.in 2012-04-05 16:37:37.000000000 +0200
+--- src/testdir/test1.in 2013-09-22 14:52:43.000000000 +0200
+***************
+*** 18,23 ****
+--- 18,27 ----
+ Similar logic is applied to the +lua feature, using lua.vim.
+
+ STARTTEST
++ :" If columns or lines are too small, create wrongtermsize.
++ :" (Some tests will fail. When columns and/or lines are small)
++ :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif
++ :"
+ :" Write a single line to test.out to check if testing works at all.
+ :%d
+ athis is a test:w! test.out
+*** ../vim-7.4.032/src/testdir/Makefile 2013-09-19 17:00:14.000000000 +0200
+--- src/testdir/Makefile 2013-09-22 14:54:39.000000000 +0200
+***************
+*** 58,66 ****
+ -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
+
+ test1.out: test1.in
+! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START)
+ $(RUN_VIM) $*.in
+! @/bin/sh -c "if diff test.out $*.ok; \
+ then mv -f test.out $*.out; \
+ else echo; \
+ echo test1 FAILED - Something basic is wrong; \
+--- 58,70 ----
+ -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.*
+
+ test1.out: test1.in
+! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize
+ $(RUN_VIM) $*.in
+! @/bin/sh -c "if test -e wrongtermsize; \
+! then echo; \
+! echo test1 FAILED - terminal size must be 80x24 or larger; \
+! echo; exit 1; \
+! elif diff test.out $*.ok; \
+ then mv -f test.out $*.out; \
+ else echo; \
+ echo test1 FAILED - Something basic is wrong; \
+*** ../vim-7.4.032/src/version.c 2013-09-22 13:57:19.000000000 +0200
+--- src/version.c 2013-09-22 15:02:04.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 33,
+ /**/
+
+--
+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.4.034 b/source/ap/vim/patches/7.4.034
new file mode 100644
index 000000000..f111e1161
--- /dev/null
+++ b/source/ap/vim/patches/7.4.034
@@ -0,0 +1,180 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.034
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.034
+Problem: Using "p" in Visual block mode only changes the first line.
+Solution: Repeat the put in all text in the block. (Christian Brabandt)
+Files: runtime/doc/change.txt, src/ops.c, src/normal.c,
+ src/testdir/test20.in, src/testdir/test20.ok
+
+
+*** ../vim-7.4.033/runtime/doc/change.txt 2013-08-10 13:24:52.000000000 +0200
+--- runtime/doc/change.txt 2013-09-22 15:12:20.000000000 +0200
+***************
+*** 1069,1074 ****
+--- 1069,1079 ----
+ replace and use "0p . You can repeat this as many times as you like, the
+ unnamed register will be changed each time.
+
++ When you use a blockwise Visual mode command and yank only a single line into
++ a register, a paste on a visual selected area will paste that single line on
++ each of the selected lines (thus replacing the blockwise selected region by a
++ block of the pasted line).
++
+ *blockwise-register*
+ If you use a blockwise Visual mode command to get the text into the register,
+ the block of text will be inserted before ("P") or after ("p") the cursor
+*** ../vim-7.4.033/src/ops.c 2013-08-09 19:34:32.000000000 +0200
+--- src/ops.c 2013-09-22 15:18:03.000000000 +0200
+***************
+*** 3776,3800 ****
+ */
+ if (y_type == MCHAR && y_size == 1)
+ {
+! totlen = count * yanklen;
+! if (totlen)
+! {
+! oldp = ml_get(lnum);
+! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
+! if (newp == NULL)
+! goto end; /* alloc() will give error message */
+! mch_memmove(newp, oldp, (size_t)col);
+! ptr = newp + col;
+! for (i = 0; i < count; ++i)
+ {
+! mch_memmove(ptr, y_array[0], (size_t)yanklen);
+! ptr += yanklen;
+ }
+! STRMOVE(ptr, oldp + col);
+! ml_replace(lnum, newp, FALSE);
+! /* Put cursor on last putted char. */
+! curwin->w_cursor.col += (colnr_T)(totlen - 1);
+! }
+ curbuf->b_op_end = curwin->w_cursor;
+ /* For "CTRL-O p" in Insert mode, put cursor after last char */
+ if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND)))
+--- 3776,3817 ----
+ */
+ if (y_type == MCHAR && y_size == 1)
+ {
+! do {
+! totlen = count * yanklen;
+! if (totlen > 0)
+ {
+! oldp = ml_get(lnum);
+! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1));
+! if (newp == NULL)
+! goto end; /* alloc() gave an error message */
+! mch_memmove(newp, oldp, (size_t)col);
+! ptr = newp + col;
+! for (i = 0; i < count; ++i)
+! {
+! mch_memmove(ptr, y_array[0], (size_t)yanklen);
+! ptr += yanklen;
+! }
+! STRMOVE(ptr, oldp + col);
+! ml_replace(lnum, newp, FALSE);
+! /* Place cursor on last putted char. */
+! if (lnum == curwin->w_cursor.lnum)
+! curwin->w_cursor.col += (colnr_T)(totlen - 1);
+ }
+! #ifdef FEAT_VISUAL
+! if (VIsual_active)
+! lnum++;
+! #endif
+! } while (
+! #ifdef FEAT_VISUAL
+! VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum
+! #else
+! FALSE /* stop after 1 paste */
+! #endif
+! );
+! #ifdef FEAT_VISUAL
+! VIsual_active = FALSE;
+! #endif
+!
+ curbuf->b_op_end = curwin->w_cursor;
+ /* For "CTRL-O p" in Insert mode, put cursor after last char */
+ if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND)))
+*** ../vim-7.4.033/src/normal.c 2013-07-14 13:24:37.000000000 +0200
+--- src/normal.c 2013-09-22 15:15:18.000000000 +0200
+***************
+*** 9518,9523 ****
+--- 9518,9525 ----
+ /* cursor is at the end of the line or end of file, put
+ * forward. */
+ dir = FORWARD;
++ /* May have been reset in do_put(). */
++ VIsual_active = TRUE;
+ }
+ #endif
+ do_put(cap->oap->regname, dir, cap->count1, flags);
+*** ../vim-7.4.033/src/testdir/test20.in 2010-05-15 13:04:10.000000000 +0200
+--- src/testdir/test20.in 2013-09-22 15:11:37.000000000 +0200
+***************
+*** 9,19 ****
+ @auY:quit!
+ GP
+ /start here$
+! jjlld
+! :/here$/,$-1w! test.out
+ :qa!
+ ENDTEST
+
+ test text test tex start here
+ some text
+ test text
+--- 9,25 ----
+ @auY:quit!
+ GP
+ /start here$
+! "by$jjlld
+! /456$
+! jj"bP
+! :/56$/,$-1w! test.out
+ :qa!
+ ENDTEST
+
++ 123456
++ 234567
++ 345678
++
+ test text test tex start here
+ some text
+ test text
+*** ../vim-7.4.033/src/testdir/test20.ok 2010-05-15 13:04:10.000000000 +0200
+--- src/testdir/test20.ok 2013-09-22 15:11:37.000000000 +0200
+***************
+*** 1,3 ****
+--- 1,7 ----
++ 123start here56
++ 234start here67
++ 345start here78
++
+ test text test tex rt here
+ somext
+ tesext
+*** ../vim-7.4.033/src/version.c 2013-09-22 15:03:34.000000000 +0200
+--- src/version.c 2013-09-22 15:14:04.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 34,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+249. You've forgotten what the outside 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.4.035 b/source/ap/vim/patches/7.4.035
new file mode 100644
index 000000000..9c4664a6e
--- /dev/null
+++ b/source/ap/vim/patches/7.4.035
@@ -0,0 +1,53 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.035
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.035
+Problem: MS-Windows: The mouse pointer flickers when going from command
+ line mode to Normal mode.
+Solution: Check for WM_NCMOUSEMOVE. (Ken Takata)
+Files: src/gui_w48.c
+
+
+*** ../vim-7.4.034/src/gui_w48.c 2013-08-10 13:36:45.000000000 +0200
+--- src/gui_w48.c 2013-09-22 15:41:56.000000000 +0200
+***************
+*** 1008,1014 ****
+ static LPARAM last_lParam = 0L;
+
+ /* We sometimes get a mousemove when the mouse didn't move... */
+! if (uMsg == WM_MOUSEMOVE)
+ {
+ if (lParam == last_lParam)
+ return;
+--- 1008,1014 ----
+ static LPARAM last_lParam = 0L;
+
+ /* We sometimes get a mousemove when the mouse didn't move... */
+! if (uMsg == WM_MOUSEMOVE || uMsg == WM_NCMOUSEMOVE)
+ {
+ if (lParam == last_lParam)
+ return;
+*** ../vim-7.4.034/src/version.c 2013-09-22 15:23:38.000000000 +0200
+--- src/version.c 2013-09-22 15:41:29.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 35,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+251. You've never seen your closest friends who usually live WAY too far away.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.036 b/source/ap/vim/patches/7.4.036
new file mode 100644
index 000000000..49afc269a
--- /dev/null
+++ b/source/ap/vim/patches/7.4.036
@@ -0,0 +1,273 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.036
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.036
+Problem: NFA engine does not capture group correctly when using \@>. (ZyX)
+Solution: Copy submatches before doing the recursive match.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.035/src/regexp_nfa.c 2013-09-22 13:57:19.000000000 +0200
+--- src/regexp_nfa.c 2013-09-25 16:35:54.000000000 +0200
+***************
+*** 36,42 ****
+ {
+ NFA_SPLIT = -1024,
+ NFA_MATCH,
+! NFA_SKIP_CHAR, /* matches a 0-length char */
+
+ NFA_START_COLL, /* [abc] start */
+ NFA_END_COLL, /* [abc] end */
+--- 36,42 ----
+ {
+ NFA_SPLIT = -1024,
+ NFA_MATCH,
+! NFA_EMPTY, /* matches 0-length */
+
+ NFA_START_COLL, /* [abc] start */
+ NFA_END_COLL, /* [abc] end */
+***************
+*** 2005,2012 ****
+ {
+ /* Ignore result of previous call to nfa_regatom() */
+ post_ptr = post_start + my_post_start;
+! /* NFA_SKIP_CHAR has 0-length and works everywhere */
+! EMIT(NFA_SKIP_CHAR);
+ return OK;
+ }
+
+--- 2005,2012 ----
+ {
+ /* Ignore result of previous call to nfa_regatom() */
+ post_ptr = post_start + my_post_start;
+! /* NFA_EMPTY is 0-length and works everywhere */
+! EMIT(NFA_EMPTY);
+ return OK;
+ }
+
+***************
+*** 2170,2185 ****
+ old_post_pos = (int)(post_ptr - post_start);
+ if (nfa_regconcat() == FAIL)
+ return FAIL;
+! /* if concat is empty, skip a input char. But do emit a node */
+ if (old_post_pos == (int)(post_ptr - post_start))
+! EMIT(NFA_SKIP_CHAR);
+ EMIT(NFA_CONCAT);
+ ch = peekchr();
+ }
+
+! /* Even if a branch is empty, emit one node for it */
+ if (old_post_pos == (int)(post_ptr - post_start))
+! EMIT(NFA_SKIP_CHAR);
+
+ return OK;
+ }
+--- 2170,2185 ----
+ old_post_pos = (int)(post_ptr - post_start);
+ if (nfa_regconcat() == FAIL)
+ return FAIL;
+! /* if concat is empty do emit a node */
+ if (old_post_pos == (int)(post_ptr - post_start))
+! EMIT(NFA_EMPTY);
+ EMIT(NFA_CONCAT);
+ ch = peekchr();
+ }
+
+! /* if a branch is empty, emit one node for it */
+ if (old_post_pos == (int)(post_ptr - post_start))
+! EMIT(NFA_EMPTY);
+
+ return OK;
+ }
+***************
+*** 2423,2429 ****
+ case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
+ case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
+ case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
+! case NFA_SKIP_CHAR: STRCPY(code, "NFA_SKIP_CHAR"); break;
+ case NFA_OR: STRCPY(code, "NFA_OR"); break;
+
+ case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
+--- 2423,2429 ----
+ case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break;
+ case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break;
+ case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break;
+! case NFA_EMPTY: STRCPY(code, "NFA_EMPTY"); break;
+ case NFA_OR: STRCPY(code, "NFA_OR"); break;
+
+ case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break;
+***************
+*** 3067,3073 ****
+ case NFA_ZSTART:
+ case NFA_ZEND:
+ case NFA_OPT_CHARS:
+! case NFA_SKIP_CHAR:
+ case NFA_START_PATTERN:
+ case NFA_END_PATTERN:
+ case NFA_COMPOSING:
+--- 3067,3073 ----
+ case NFA_ZSTART:
+ case NFA_ZEND:
+ case NFA_OPT_CHARS:
+! case NFA_EMPTY:
+ case NFA_START_PATTERN:
+ case NFA_END_PATTERN:
+ case NFA_COMPOSING:
+***************
+*** 3265,3279 ****
+ PUSH(frag(e1.start, e2.out));
+ break;
+
+! case NFA_SKIP_CHAR:
+! /* Symbol of 0-length, Used in a repetition
+! * with max/min count of 0 */
+ if (nfa_calc_size == TRUE)
+ {
+ nstate++;
+ break;
+ }
+! s = alloc_state(NFA_SKIP_CHAR, NULL, NULL);
+ if (s == NULL)
+ goto theend;
+ PUSH(frag(s, list1(&s->out)));
+--- 3265,3278 ----
+ PUSH(frag(e1.start, e2.out));
+ break;
+
+! case NFA_EMPTY:
+! /* 0-length, used in a repetition with max/min count of 0 */
+ if (nfa_calc_size == TRUE)
+ {
+ nstate++;
+ break;
+ }
+! s = alloc_state(NFA_EMPTY, NULL, NULL);
+ if (s == NULL)
+ goto theend;
+ PUSH(frag(s, list1(&s->out)));
+***************
+*** 4209,4215 ****
+ case NFA_MOPEN:
+ case NFA_ZEND:
+ case NFA_SPLIT:
+! case NFA_SKIP_CHAR:
+ /* These nodes are not added themselves but their "out" and/or
+ * "out1" may be added below. */
+ break;
+--- 4208,4214 ----
+ case NFA_MOPEN:
+ case NFA_ZEND:
+ case NFA_SPLIT:
+! case NFA_EMPTY:
+ /* These nodes are not added themselves but their "out" and/or
+ * "out1" may be added below. */
+ break;
+***************
+*** 4337,4343 ****
+ subs = addstate(l, state->out1, subs, pim, off);
+ break;
+
+! case NFA_SKIP_CHAR:
+ case NFA_NOPEN:
+ case NFA_NCLOSE:
+ subs = addstate(l, state->out, subs, pim, off);
+--- 4336,4342 ----
+ subs = addstate(l, state->out1, subs, pim, off);
+ break;
+
+! case NFA_EMPTY:
+ case NFA_NOPEN:
+ case NFA_NCLOSE:
+ subs = addstate(l, state->out, subs, pim, off);
+***************
+*** 5604,5612 ****
+ {
+ int in_use = m->norm.in_use;
+
+! /* Copy submatch info for the recursive call, so that
+! * \1 can be matched. */
+ copy_sub_off(&m->norm, &t->subs.norm);
+
+ /*
+ * First try matching the invisible match, then what
+--- 5603,5615 ----
+ {
+ int in_use = m->norm.in_use;
+
+! /* Copy submatch info for the recursive call, opposite
+! * of what happens on success below. */
+ copy_sub_off(&m->norm, &t->subs.norm);
++ #ifdef FEAT_SYN_HL
++ if (nfa_has_zsubexpr)
++ copy_sub_off(&m->synt, &t->subs.synt);
++ #endif
+
+ /*
+ * First try matching the invisible match, then what
+***************
+*** 5713,5718 ****
+--- 5716,5728 ----
+ #endif
+ break;
+ }
++ /* Copy submatch info to the recursive call, opposite of what
++ * happens afterwards. */
++ copy_sub_off(&m->norm, &t->subs.norm);
++ #ifdef FEAT_SYN_HL
++ if (nfa_has_zsubexpr)
++ copy_sub_off(&m->synt, &t->subs.synt);
++ #endif
+
+ /* First try matching the pattern. */
+ result = recursive_regmatch(t->state, NULL, prog,
+*** ../vim-7.4.035/src/testdir/test64.in 2013-09-22 13:57:19.000000000 +0200
+--- src/testdir/test64.in 2013-09-25 15:51:12.000000000 +0200
+***************
+*** 430,435 ****
+--- 430,436 ----
+ :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
+ :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])
+ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab'])
++ :call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', ''])
+ :" TODO: BT engine does not restore submatch after failure
+ :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])
+ :"
+*** ../vim-7.4.035/src/testdir/test64.ok 2013-09-22 13:57:19.000000000 +0200
+--- src/testdir/test64.ok 2013-09-25 16:39:31.000000000 +0200
+***************
+*** 992,997 ****
+--- 992,1000 ----
+ OK 0 - ^\(.\{-}b\)\@>.
+ OK 1 - ^\(.\{-}b\)\@>.
+ OK 2 - ^\(.\{-}b\)\@>.
++ OK 0 - \(.\{-}\)\(\)\@>$
++ OK 1 - \(.\{-}\)\(\)\@>$
++ OK 2 - \(.\{-}\)\(\)\@>$
+ OK 0 - \(a*\)\@>a\|a\+
+ OK 2 - \(a*\)\@>a\|a\+
+ OK 0 - \_[^8-9]\+
+*** ../vim-7.4.035/src/version.c 2013-09-22 15:43:34.000000000 +0200
+--- src/version.c 2013-09-25 16:40:01.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 36,
+ /**/
+
+--
+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.4.037 b/source/ap/vim/patches/7.4.037
new file mode 100644
index 000000000..3c6369b72
--- /dev/null
+++ b/source/ap/vim/patches/7.4.037
@@ -0,0 +1,130 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.037
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.037
+Problem: Using "\ze" in a sub-pattern does not result in the end of the
+ match to be set. (Axel Bender)
+Solution: Copy the end of match position when a recursive match was
+ successful.
+Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok
+
+
+*** ../vim-7.4.036/src/regexp_nfa.c 2013-09-25 16:41:50.000000000 +0200
+--- src/regexp_nfa.c 2013-09-25 18:09:59.000000000 +0200
+***************
+*** 3822,3827 ****
+--- 3822,3828 ----
+ static void clear_sub __ARGS((regsub_T *sub));
+ static void copy_sub __ARGS((regsub_T *to, regsub_T *from));
+ static void copy_sub_off __ARGS((regsub_T *to, regsub_T *from));
++ static void copy_ze_off __ARGS((regsub_T *to, regsub_T *from));
+ static int sub_equal __ARGS((regsub_T *sub1, regsub_T *sub2));
+ static int match_backref __ARGS((regsub_T *sub, int subidx, int *bytelen));
+ static int has_state_with_pos __ARGS((nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim));
+***************
+*** 3909,3914 ****
+--- 3910,3938 ----
+ }
+
+ /*
++ * Like copy_sub() but only do the end of the main match if \ze is present.
++ */
++ static void
++ copy_ze_off(to, from)
++ regsub_T *to;
++ regsub_T *from;
++ {
++ if (nfa_has_zend)
++ {
++ if (REG_MULTI)
++ {
++ if (from->list.multi[0].end.lnum >= 0)
++ to->list.multi[0].end = from->list.multi[0].end;
++ }
++ else
++ {
++ if (from->list.line[0].end != NULL)
++ to->list.line[0].end = from->list.line[0].end;
++ }
++ }
++ }
++
++ /*
+ * Return TRUE if "sub1" and "sub2" have the same start positions.
+ */
+ static int
+***************
+*** 5308,5313 ****
+--- 5332,5338 ----
+ * When "nfa_endp" is not NULL it is a required end-of-match position.
+ *
+ * Return TRUE if there is a match, FALSE otherwise.
++ * When there is a match "submatch" contains the positions.
+ * Note: Caller must ensure that: start != NULL.
+ */
+ static int
+***************
+*** 5633,5638 ****
+--- 5658,5666 ----
+ if (nfa_has_zsubexpr)
+ copy_sub_off(&t->subs.synt, &m->synt);
+ #endif
++ /* If the pattern has \ze and it matched in the
++ * sub pattern, use it. */
++ copy_ze_off(&t->subs.norm, &m->norm);
+
+ /* t->state->out1 is the corresponding
+ * END_INVISIBLE node; Add its out to the current
+*** ../vim-7.4.036/src/testdir/test64.in 2013-09-25 16:41:50.000000000 +0200
+--- src/testdir/test64.in 2013-09-25 18:09:16.000000000 +0200
+***************
+*** 425,430 ****
+--- 425,431 ----
+ :"
+ :" complicated look-behind match
+ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/'])
++ :call add(tl, [2, '^[a-z]\+\ze \&\(asdf\)\@<!', 'foo bar', 'foo'])
+ :"
+ :""""" \@>
+ :call add(tl, [2, '\(a*\)\@>a', 'aaaa'])
+*** ../vim-7.4.036/src/testdir/test64.ok 2013-09-25 16:41:50.000000000 +0200
+--- src/testdir/test64.ok 2013-09-25 18:10:05.000000000 +0200
+***************
+*** 983,988 ****
+--- 983,991 ----
+ OK 0 - \(r\@<=\|\w\@<!\)\/
+ OK 1 - \(r\@<=\|\w\@<!\)\/
+ OK 2 - \(r\@<=\|\w\@<!\)\/
++ OK 0 - ^[a-z]\+\ze \&\(asdf\)\@<!
++ OK 1 - ^[a-z]\+\ze \&\(asdf\)\@<!
++ OK 2 - ^[a-z]\+\ze \&\(asdf\)\@<!
+ OK 0 - \(a*\)\@>a
+ OK 1 - \(a*\)\@>a
+ OK 2 - \(a*\)\@>a
+*** ../vim-7.4.036/src/version.c 2013-09-25 16:41:50.000000000 +0200
+--- src/version.c 2013-09-25 18:14:36.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 37,
+ /**/
+
+--
+MAN: You don't frighten us, English pig-dog! Go and boil your bottoms,
+ son of a silly person. I blow my nose on you, so-called Arthur-king,
+ you and your silly English K...kaniggets.
+ He puts hands to his ears and blows a raspberry.
+ "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.4.038 b/source/ap/vim/patches/7.4.038
new file mode 100644
index 000000000..0aae370e3
--- /dev/null
+++ b/source/ap/vim/patches/7.4.038
@@ -0,0 +1,116 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.038
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.038
+Problem: Using "zw" and "zg" when 'spell' is off give a confusing error
+ message. (Gary Johnson)
+Solution: Ignore the error when locating the word. Explicitly mention what
+ word was added. (Christian Brabandt)
+Files: src/normal.c, src/spell.c
+
+
+*** ../vim-7.4.037/src/normal.c 2013-09-22 15:23:38.000000000 +0200
+--- src/normal.c 2013-09-25 18:54:08.000000000 +0200
+***************
+*** 5246,5253 ****
+ {
+ pos_T pos = curwin->w_cursor;
+
+! /* Find bad word under the cursor. */
+ len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL);
+ if (len != 0 && curwin->w_cursor.col <= pos.col)
+ ptr = ml_get_pos(&curwin->w_cursor);
+ curwin->w_cursor = pos;
+--- 5246,5257 ----
+ {
+ pos_T pos = curwin->w_cursor;
+
+! /* Find bad word under the cursor. When 'spell' is
+! * off this fails and find_ident_under_cursor() is
+! * used below. */
+! emsg_off++;
+ len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL);
++ emsg_off--;
+ if (len != 0 && curwin->w_cursor.col <= pos.col)
+ ptr = ml_get_pos(&curwin->w_cursor);
+ curwin->w_cursor = pos;
+*** ../vim-7.4.037/src/spell.c 2013-07-17 17:28:28.000000000 +0200
+--- src/spell.c 2013-09-25 18:48:55.000000000 +0200
+***************
+*** 9479,9485 ****
+ if (undo)
+ {
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word removed from %s"), NameBuff);
+ }
+ }
+ fseek(fd, fpos_next, SEEK_SET);
+--- 9479,9486 ----
+ if (undo)
+ {
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word '%.*s' removed from %s"),
+! len, word, NameBuff);
+ }
+ }
+ fseek(fd, fpos_next, SEEK_SET);
+***************
+*** 9525,9531 ****
+ fclose(fd);
+
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word added to %s"), NameBuff);
+ }
+ }
+
+--- 9526,9532 ----
+ fclose(fd);
+
+ home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE);
+! smsg((char_u *)_("Word '%.*s' added to %s"), len, word, NameBuff);
+ }
+ }
+
+***************
+*** 10135,10141 ****
+ }
+
+ /*
+! * "z?": Find badly spelled word under or after the cursor.
+ * Give suggestions for the properly spelled word.
+ * In Visual mode use the highlighted word as the bad word.
+ * When "count" is non-zero use that suggestion.
+--- 10136,10142 ----
+ }
+
+ /*
+! * "z=": Find badly spelled word under or after the cursor.
+ * Give suggestions for the properly spelled word.
+ * In Visual mode use the highlighted word as the bad word.
+ * When "count" is non-zero use that suggestion.
+*** ../vim-7.4.037/src/version.c 2013-09-25 18:16:34.000000000 +0200
+--- src/version.c 2013-09-25 18:52:47.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 38,
+ /**/
+
+--
+MAN: Fetchez la vache!
+GUARD: Quoi?
+MAN: Fetchez la vache!
+ "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.4.039 b/source/ap/vim/patches/7.4.039
new file mode 100644
index 000000000..5d653e353
--- /dev/null
+++ b/source/ap/vim/patches/7.4.039
@@ -0,0 +1,217 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.039
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.039
+Problem: MS-Windows: MSCV10 and earlier can't handle symlinks to a
+ directory properly.
+Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata)
+Files: src/os_mswin.c, src/os_win32.c, src/os_win32.h
+
+
+*** ../vim-7.4.038/src/os_mswin.c 2013-08-30 16:51:15.000000000 +0200
+--- src/os_mswin.c 2013-09-25 19:09:53.000000000 +0200
+***************
+*** 498,503 ****
+--- 498,595 ----
+ }
+ }
+
++ static int
++ stat_symlink_aware(const char *name, struct stat *stp)
++ {
++ #if defined(_MSC_VER) && _MSC_VER < 1700
++ /* Work around for VC10 or earlier. stat() can't handle symlinks properly.
++ * VC9 or earlier: stat() doesn't support a symlink at all. It retrieves
++ * status of a symlink itself.
++ * VC10: stat() supports a symlink to a normal file, but it doesn't support
++ * a symlink to a directory (always returns an error). */
++ WIN32_FIND_DATA findData;
++ HANDLE hFind, h;
++ DWORD attr = 0;
++ BOOL is_symlink = FALSE;
++
++ hFind = FindFirstFile(name, &findData);
++ if (hFind != INVALID_HANDLE_VALUE)
++ {
++ attr = findData.dwFileAttributes;
++ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
++ && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
++ is_symlink = TRUE;
++ FindClose(hFind);
++ }
++ if (is_symlink)
++ {
++ h = CreateFile(name, FILE_READ_ATTRIBUTES,
++ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
++ OPEN_EXISTING,
++ (attr & FILE_ATTRIBUTE_DIRECTORY)
++ ? FILE_FLAG_BACKUP_SEMANTICS : 0,
++ NULL);
++ if (h != INVALID_HANDLE_VALUE)
++ {
++ int fd, n;
++
++ fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
++ n = _fstat(fd, (struct _stat*)stp);
++ _close(fd);
++ return n;
++ }
++ }
++ #endif
++ return stat(name, stp);
++ }
++
++ #ifdef FEAT_MBYTE
++ static int
++ wstat_symlink_aware(const WCHAR *name, struct _stat *stp)
++ {
++ # if defined(_MSC_VER) && _MSC_VER < 1700
++ /* Work around for VC10 or earlier. _wstat() can't handle symlinks properly.
++ * VC9 or earlier: _wstat() doesn't support a symlink at all. It retrieves
++ * status of a symlink itself.
++ * VC10: _wstat() supports a symlink to a normal file, but it doesn't
++ * support a symlink to a directory (always returns an error). */
++ int n;
++ BOOL is_symlink = FALSE;
++ HANDLE hFind, h;
++ DWORD attr = 0;
++ WIN32_FIND_DATAW findDataW;
++
++ hFind = FindFirstFileW(name, &findDataW);
++ if (hFind != INVALID_HANDLE_VALUE)
++ {
++ attr = findDataW.dwFileAttributes;
++ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT)
++ && (findDataW.dwReserved0 == IO_REPARSE_TAG_SYMLINK))
++ is_symlink = TRUE;
++ FindClose(hFind);
++ }
++ if (is_symlink)
++ {
++ h = CreateFileW(name, FILE_READ_ATTRIBUTES,
++ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
++ OPEN_EXISTING,
++ (attr & FILE_ATTRIBUTE_DIRECTORY)
++ ? FILE_FLAG_BACKUP_SEMANTICS : 0,
++ NULL);
++ if (h != INVALID_HANDLE_VALUE)
++ {
++ int fd;
++
++ fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
++ n = _fstat(fd, stp);
++ _close(fd);
++ return n;
++ }
++ }
++ # endif
++ return _wstat(name, stp);
++ }
++ #endif
+
+ /*
+ * stat() can't handle a trailing '/' or '\', remove it first.
+***************
+*** 534,540 ****
+
+ if (wp != NULL)
+ {
+! n = _wstat(wp, (struct _stat *)stp);
+ vim_free(wp);
+ if (n >= 0)
+ return n;
+--- 626,632 ----
+
+ if (wp != NULL)
+ {
+! n = wstat_symlink_aware(wp, (struct _stat *)stp);
+ vim_free(wp);
+ if (n >= 0)
+ return n;
+***************
+*** 544,550 ****
+ }
+ }
+ #endif
+! return stat(buf, stp);
+ }
+
+ #if defined(FEAT_GUI_MSWIN) || defined(PROTO)
+--- 636,642 ----
+ }
+ }
+ #endif
+! return stat_symlink_aware(buf, stp);
+ }
+
+ #if defined(FEAT_GUI_MSWIN) || defined(PROTO)
+*** ../vim-7.4.038/src/os_win32.c 2013-08-30 17:29:10.000000000 +0200
+--- src/os_win32.c 2013-09-25 19:09:53.000000000 +0200
+***************
+*** 78,93 ****
+ # endif
+ #endif
+
+- /*
+- * Reparse Point
+- */
+- #ifndef FILE_ATTRIBUTE_REPARSE_POINT
+- # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
+- #endif
+- #ifndef IO_REPARSE_TAG_SYMLINK
+- # define IO_REPARSE_TAG_SYMLINK 0xA000000C
+- #endif
+-
+ /* Record all output and all keyboard & mouse input */
+ /* #define MCH_WRITE_DUMP */
+
+--- 78,83 ----
+*** ../vim-7.4.038/src/os_win32.h 2013-07-21 17:53:13.000000000 +0200
+--- src/os_win32.h 2013-09-25 19:09:53.000000000 +0200
+***************
+*** 130,135 ****
+--- 130,148 ----
+ # define DFLT_MAXMEMTOT (5*1024) /* use up to 5 Mbyte for Vim */
+ #endif
+
++ /*
++ * Reparse Point
++ */
++ #ifndef FILE_ATTRIBUTE_REPARSE_POINT
++ # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400
++ #endif
++ #ifndef IO_REPARSE_TAG_MOUNT_POINT
++ # define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003
++ #endif
++ #ifndef IO_REPARSE_TAG_SYMLINK
++ # define IO_REPARSE_TAG_SYMLINK 0xA000000C
++ #endif
++
+ #if defined(_MSC_VER) || defined(__BORLANDC__)
+ /* Support for __try / __except. All versions of MSVC and Borland C are
+ * expected to have this. Any other compilers that support it? */
+*** ../vim-7.4.038/src/version.c 2013-09-25 18:54:20.000000000 +0200
+--- src/version.c 2013-09-25 19:08:55.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 39,
+ /**/
+
+--
+ A cow comes flying over the battlements, lowing aggressively. The cow
+ lands on GALAHAD'S PAGE, squashing him completely.
+ "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.4.040 b/source/ap/vim/patches/7.4.040
new file mode 100644
index 000000000..a60022366
--- /dev/null
+++ b/source/ap/vim/patches/7.4.040
@@ -0,0 +1,68 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.040
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.040
+Problem: Valgrind error on exit when a script-local variable holds a
+ reference to the scope of another script.
+Solution: First clear all variables, then free the scopes. (ZyX)
+Files: src/eval.c
+
+
+*** ../vim-7.4.039/src/eval.c 2013-08-30 16:35:41.000000000 +0200
+--- src/eval.c 2013-09-25 20:28:15.000000000 +0200
+***************
+*** 915,926 ****
+ /* autoloaded script names */
+ ga_clear_strings(&ga_loaded);
+
+! /* script-local variables */
+ for (i = 1; i <= ga_scripts.ga_len; ++i)
+- {
+ vars_clear(&SCRIPT_VARS(i));
+ vim_free(SCRIPT_SV(i));
+- }
+ ga_clear(&ga_scripts);
+
+ /* unreferenced lists and dicts */
+--- 915,927 ----
+ /* autoloaded script names */
+ ga_clear_strings(&ga_loaded);
+
+! /* Script-local variables. First clear all the variables and in a second
+! * loop free the scriptvar_T, because a variable in one script might hold
+! * a reference to the whole scope of another script. */
+ for (i = 1; i <= ga_scripts.ga_len; ++i)
+ vars_clear(&SCRIPT_VARS(i));
++ for (i = 1; i <= ga_scripts.ga_len; ++i)
+ vim_free(SCRIPT_SV(i));
+ ga_clear(&ga_scripts);
+
+ /* unreferenced lists and dicts */
+*** ../vim-7.4.039/src/version.c 2013-09-25 19:13:32.000000000 +0200
+--- src/version.c 2013-09-25 20:30:06.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 40,
+ /**/
+
+--
+ A KNIGHT rides into shot and hacks him to the ground. He rides off.
+ We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A.
+ twin-set emerges from the trees and looks in horror at the body of her
+ HUSBAND.
+MRS HISTORIAN: FRANK!
+ "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.4.041 b/source/ap/vim/patches/7.4.041
new file mode 100644
index 000000000..190604e93
--- /dev/null
+++ b/source/ap/vim/patches/7.4.041
@@ -0,0 +1,61 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.041
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.041 (after 7.4.034)
+Problem: Visual selection does not remain after being copied over. (Axel
+ Bender)
+Solution: Move when VIsual_active is reset. (Christian Brabandt)
+Files: src/ops.c
+
+
+*** ../vim-7.4.040/src/ops.c 2013-09-22 15:23:38.000000000 +0200
+--- src/ops.c 2013-09-25 23:20:37.000000000 +0200
+***************
+*** 3808,3816 ****
+ FALSE /* stop after 1 paste */
+ #endif
+ );
+- #ifdef FEAT_VISUAL
+- VIsual_active = FALSE;
+- #endif
+
+ curbuf->b_op_end = curwin->w_cursor;
+ /* For "CTRL-O p" in Insert mode, put cursor after last char */
+--- 3808,3813 ----
+***************
+*** 3972,3977 ****
+--- 3969,3978 ----
+ if (regname == '=')
+ vim_free(y_array);
+
++ #ifdef FEAT_VISUAL
++ VIsual_active = FALSE;
++ #endif
++
+ /* If the cursor is past the end of the line put it at the end. */
+ adjust_cursor_eol();
+ }
+*** ../vim-7.4.040/src/version.c 2013-09-25 21:00:24.000000000 +0200
+--- src/version.c 2013-09-25 23:20:46.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 41,
+ /**/
+
+
+--
+press CTRL-ALT-DEL for more information
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.042 b/source/ap/vim/patches/7.4.042
new file mode 100644
index 000000000..648a1bfef
--- /dev/null
+++ b/source/ap/vim/patches/7.4.042
@@ -0,0 +1,71 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.042
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.042
+Problem: When using ":setlocal" for 'spell' and 'spellang' then :spelldump
+ doesn't work. (Dimitar Dimitrov)
+Solution: Copy the option variables to the new window used to show the dump.
+ (Christian Brabandt)
+Files: src/spell.c
+
+
+*** ../vim-7.4.041/src/spell.c 2013-09-25 18:54:20.000000000 +0200
+--- src/spell.c 2013-09-29 13:15:51.000000000 +0200
+***************
+*** 15569,15579 ****
+ ex_spelldump(eap)
+ exarg_T *eap;
+ {
+ if (no_spell_checking(curwin))
+ return;
+
+! /* Create a new empty buffer by splitting the window. */
+ do_cmdline_cmd((char_u *)"new");
+ if (!bufempty() || !buf_valid(curbuf))
+ return;
+
+--- 15569,15589 ----
+ ex_spelldump(eap)
+ exarg_T *eap;
+ {
++ char_u *spl;
++ long dummy;
++
+ if (no_spell_checking(curwin))
+ return;
++ get_option_value((char_u*)"spl", &dummy, &spl, OPT_LOCAL);
+
+! /* Create a new empty buffer in a new window. */
+ do_cmdline_cmd((char_u *)"new");
++
++ /* enable spelling locally in the new window */
++ set_option_value((char_u*)"spell", TRUE, (char_u*)"", OPT_LOCAL);
++ set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL);
++ vim_free(spl);
++
+ if (!bufempty() || !buf_valid(curbuf))
+ return;
+
+*** ../vim-7.4.041/src/version.c 2013-09-25 23:24:54.000000000 +0200
+--- src/version.c 2013-09-29 13:15:17.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 42,
+ /**/
+
+--
+Experience is what you get when you don't get what you want.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.043 b/source/ap/vim/patches/7.4.043
new file mode 100644
index 000000000..0c3d852ca
--- /dev/null
+++ b/source/ap/vim/patches/7.4.043
@@ -0,0 +1,89 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.043
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.043
+Problem: VMS can't handle long function names.
+Solution: Shorten may_req_ambiguous_character_width. (Samuel Ferencik)
+Files: src/main.c, src/term.c, src/proto/term.pro
+
+
+*** ../vim-7.4.042/src/main.c 2013-08-22 14:14:23.000000000 +0200
+--- src/main.c 2013-09-29 16:23:49.000000000 +0200
+***************
+*** 812,818 ****
+ starttermcap(); /* start termcap if not done by wait_return() */
+ TIME_MSG("start termcap");
+ #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
+! may_req_ambiguous_character_width();
+ #endif
+
+ #ifdef FEAT_MOUSE
+--- 812,818 ----
+ starttermcap(); /* start termcap if not done by wait_return() */
+ TIME_MSG("start termcap");
+ #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE)
+! may_req_ambiguous_char_width();
+ #endif
+
+ #ifdef FEAT_MOUSE
+*** ../vim-7.4.042/src/term.c 2013-07-04 22:29:28.000000000 +0200
+--- src/term.c 2013-09-29 16:27:12.000000000 +0200
+***************
+*** 3356,3362 ****
+ * it must be called immediately after entering termcap mode.
+ */
+ void
+! may_req_ambiguous_character_width()
+ {
+ if (u7_status == U7_GET
+ && cur_tmode == TMODE_RAW
+--- 3356,3362 ----
+ * it must be called immediately after entering termcap mode.
+ */
+ void
+! may_req_ambiguous_char_width()
+ {
+ if (u7_status == U7_GET
+ && cur_tmode == TMODE_RAW
+*** ../vim-7.4.042/src/proto/term.pro 2013-08-10 13:37:28.000000000 +0200
+--- src/proto/term.pro 2013-09-29 16:25:02.000000000 +0200
+***************
+*** 35,41 ****
+ void starttermcap __ARGS((void));
+ void stoptermcap __ARGS((void));
+ void may_req_termresponse __ARGS((void));
+! void may_req_ambiguous_character_width __ARGS((void));
+ int swapping_screen __ARGS((void));
+ void setmouse __ARGS((void));
+ int mouse_has __ARGS((int c));
+--- 35,41 ----
+ void starttermcap __ARGS((void));
+ void stoptermcap __ARGS((void));
+ void may_req_termresponse __ARGS((void));
+! void may_req_ambiguous_char_width __ARGS((void));
+ int swapping_screen __ARGS((void));
+ void setmouse __ARGS((void));
+ int mouse_has __ARGS((int c));
+*** ../vim-7.4.042/src/version.c 2013-09-29 13:38:25.000000000 +0200
+--- src/version.c 2013-09-29 16:25:16.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 43,
+ /**/
+
+--
+Back up my hard drive? I can't find the reverse switch!
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
diff --git a/source/ap/vim/patches/7.4.044 b/source/ap/vim/patches/7.4.044
new file mode 100644
index 000000000..3d8832dfa
--- /dev/null
+++ b/source/ap/vim/patches/7.4.044
@@ -0,0 +1,83 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.044
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.044 (after 7.4.039)
+Problem: Can't build with old MSVC. (Wang Shoulin)
+Solution: Define OPEN_OH_ARGTYPE instead of using intptr_t directly.
+Files: src/os_mswin.c
+
+
+*** ../vim-7.4.043/src/os_mswin.c 2013-09-25 19:13:32.000000000 +0200
+--- src/os_mswin.c 2013-09-26 20:37:38.000000000 +0200
+***************
+*** 498,503 ****
+--- 498,509 ----
+ }
+ }
+
++ #if (_MSC_VER >= 1300)
++ # define OPEN_OH_ARGTYPE intptr_t
++ #else
++ # define OPEN_OH_ARGTYPE long
++ #endif
++
+ static int
+ stat_symlink_aware(const char *name, struct stat *stp)
+ {
+***************
+*** 533,539 ****
+ {
+ int fd, n;
+
+! fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
+ n = _fstat(fd, (struct _stat*)stp);
+ _close(fd);
+ return n;
+--- 539,545 ----
+ {
+ int fd, n;
+
+! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
+ n = _fstat(fd, (struct _stat*)stp);
+ _close(fd);
+ return n;
+***************
+*** 580,586 ****
+ {
+ int fd;
+
+! fd = _open_osfhandle((intptr_t)h, _O_RDONLY);
+ n = _fstat(fd, stp);
+ _close(fd);
+ return n;
+--- 586,592 ----
+ {
+ int fd;
+
+! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY);
+ n = _fstat(fd, stp);
+ _close(fd);
+ return n;
+*** ../vim-7.4.043/src/version.c 2013-09-29 16:27:42.000000000 +0200
+--- src/version.c 2013-09-29 18:27:58.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 44,
+ /**/
+
+--
+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.4.045 b/source/ap/vim/patches/7.4.045
new file mode 100644
index 000000000..0e82735ac
--- /dev/null
+++ b/source/ap/vim/patches/7.4.045
@@ -0,0 +1,111 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.045
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.045
+Problem: substitute() does not work properly when the pattern starts with
+ "\ze".
+Solution: Detect an empty match. (Christian Brabandt)
+Files: src/eval.c, src/testdir/test80.in, src/testdir/test80.ok
+
+
+*** ../vim-7.4.044/src/eval.c 2013-09-25 21:00:24.000000000 +0200
+--- src/eval.c 2013-09-29 21:03:22.000000000 +0200
+***************
+*** 24301,24306 ****
+--- 24301,24307 ----
+ garray_T ga;
+ char_u *ret;
+ char_u *save_cpo;
++ int zero_width;
+
+ /* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */
+ save_cpo = p_cpo;
+***************
+*** 24339,24358 ****
+ (void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ + ga.ga_len + i, TRUE, TRUE, FALSE);
+ ga.ga_len += i + sublen - 1;
+! /* avoid getting stuck on a match with an empty string */
+! if (tail == regmatch.endp[0])
+ {
+! if (*tail == NUL)
+! break;
+ *((char_u *)ga.ga_data + ga.ga_len) = *tail++;
+ ++ga.ga_len;
+ }
+- else
+- {
+- tail = regmatch.endp[0];
+- if (*tail == NUL)
+- break;
+- }
+ if (!do_all)
+ break;
+ }
+--- 24340,24356 ----
+ (void)vim_regsub(&regmatch, sub, (char_u *)ga.ga_data
+ + ga.ga_len + i, TRUE, TRUE, FALSE);
+ ga.ga_len += i + sublen - 1;
+! zero_width = (tail == regmatch.endp[0]
+! || regmatch.startp[0] == regmatch.endp[0]);
+! tail = regmatch.endp[0];
+! if (*tail == NUL)
+! break;
+! if (zero_width)
+ {
+! /* avoid getting stuck on a match with an empty string */
+ *((char_u *)ga.ga_data + ga.ga_len) = *tail++;
+ ++ga.ga_len;
+ }
+ if (!do_all)
+ break;
+ }
+*** ../vim-7.4.044/src/testdir/test80.in 2013-03-19 17:30:51.000000000 +0100
+--- src/testdir/test80.in 2013-09-29 20:59:00.000000000 +0200
+***************
+*** 142,147 ****
+--- 142,149 ----
+ :$put =\"\n\nTEST_7:\"
+ :$put =substitute('A A', 'A.', '\=submatch(0)', '')
+ :$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
++ :$put =substitute('-bb', '\zeb', 'a', 'g')
++ :$put =substitute('-bb', '\ze', 'c', 'g')
+ /^TEST_8
+ ENDTEST
+
+*** ../vim-7.4.044/src/testdir/test80.ok 2013-03-19 17:31:45.000000000 +0100
+--- src/testdir/test80.ok 2013-09-29 20:59:35.000000000 +0200
+***************
+*** 103,108 ****
+--- 103,110 ----
+ A A
+ B
+ B
++ -abab
++ c-cbcbc
+
+
+ TEST_8:
+*** ../vim-7.4.044/src/version.c 2013-09-29 19:05:17.000000000 +0200
+--- src/version.c 2013-09-29 21:04:50.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 45,
+ /**/
+
+--
+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.4.046 b/source/ap/vim/patches/7.4.046
new file mode 100644
index 000000000..5bb426582
--- /dev/null
+++ b/source/ap/vim/patches/7.4.046
@@ -0,0 +1,80 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.046
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.046
+Problem: Can't use Tcl 8.6.
+Solution: Change how Tcl_FindExecutable is called. (Jan Nijtmans)
+Files: src/if_tcl.c
+
+
+*** ../vim-7.4.045/src/if_tcl.c 2013-08-02 19:31:15.000000000 +0200
+--- src/if_tcl.c 2013-10-02 13:44:48.000000000 +0200
+***************
+*** 165,170 ****
+--- 165,171 ----
+ */
+ static HANDLE hTclLib = NULL;
+ Tcl_Interp* (*dll_Tcl_CreateInterp)();
++ void (*dll_Tcl_FindExecutable)(const void *);
+
+ /*
+ * Table of name to function pointer of tcl.
+***************
+*** 175,180 ****
+--- 176,182 ----
+ TCL_PROC* ptr;
+ } tcl_funcname_table[] = {
+ {"Tcl_CreateInterp", (TCL_PROC*)&dll_Tcl_CreateInterp},
++ {"Tcl_FindExecutable", (TCL_PROC*)&dll_Tcl_FindExecutable},
+ {NULL, NULL},
+ };
+
+***************
+*** 248,258 ****
+ {
+ Tcl_Interp *interp;
+
+ if (interp = dll_Tcl_CreateInterp())
+ {
+ if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
+ {
+- Tcl_FindExecutable(find_executable_arg);
+ Tcl_DeleteInterp(interp);
+ stubs_initialized = TRUE;
+ }
+--- 250,261 ----
+ {
+ Tcl_Interp *interp;
+
++ dll_Tcl_FindExecutable(find_executable_arg);
++
+ if (interp = dll_Tcl_CreateInterp())
+ {
+ if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0))
+ {
+ Tcl_DeleteInterp(interp);
+ stubs_initialized = TRUE;
+ }
+*** ../vim-7.4.045/src/version.c 2013-09-29 21:11:00.000000000 +0200
+--- src/version.c 2013-10-02 13:46:47.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 46,
+ /**/
+
+--
+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.4.047 b/source/ap/vim/patches/7.4.047
new file mode 100644
index 000000000..2871340b7
--- /dev/null
+++ b/source/ap/vim/patches/7.4.047
@@ -0,0 +1,56 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.047
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.047
+Problem: When using input() in a function invoked by a mapping it doesn't
+ work.
+Solution: Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto)
+Files: src/eval.c
+
+
+*** ../vim-7.4.046/src/eval.c 2013-09-29 21:11:00.000000000 +0200
+--- src/eval.c 2013-10-02 16:40:52.000000000 +0200
+***************
+*** 13054,13062 ****
+--- 13054,13071 ----
+ }
+
+ if (defstr != NULL)
++ {
++ # ifdef FEAT_EX_EXTRA
++ int save_ex_normal_busy = ex_normal_busy;
++ ex_normal_busy = 0;
++ # endif
+ rettv->vval.v_string =
+ getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr,
+ xp_type, xp_arg);
++ # ifdef FEAT_EX_EXTRA
++ ex_normal_busy = save_ex_normal_busy;
++ # endif
++ }
+ if (inputdialog && rettv->vval.v_string == NULL
+ && argvars[1].v_type != VAR_UNKNOWN
+ && argvars[2].v_type != VAR_UNKNOWN)
+*** ../vim-7.4.046/src/version.c 2013-10-02 14:25:39.000000000 +0200
+--- src/version.c 2013-10-02 16:45:45.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 47,
+ /**/
+
+--
+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.4.048 b/source/ap/vim/patches/7.4.048
new file mode 100644
index 000000000..6e911a0bf
--- /dev/null
+++ b/source/ap/vim/patches/7.4.048
@@ -0,0 +1,96 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.048
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.048
+Problem: Recent clang version complains about -fno-strength-reduce.
+Solution: Add a configure check for the clang version. (Kazunobu Kuriyama)
+Files: src/configure.in, src/auto/configure
+
+
+*** ../vim-7.4.047/src/configure.in 2013-08-04 20:00:50.000000000 +0200
+--- src/configure.in 2013-10-02 17:56:25.000000000 +0200
+***************
+*** 62,67 ****
+--- 62,90 ----
+ fi
+ fi
+
++ dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a
++ dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on
++ dnl the version number of the clang in use.
++ dnl Note that this does not work to get the version of clang 3.1 or 3.2.
++ AC_MSG_CHECKING(for recent clang version)
++ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'`
++ if test x"$CLANG_VERSION_STRING" != x"" ; then
++ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'`
++ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'`
++ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'`
++ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
++ AC_MSG_RESULT($CLANG_VERSION)
++ dnl If you find the same issue with versions earlier than 500.2.75,
++ dnl change the constant 500002075 below appropriately. To get the
++ dnl integer corresponding to a version number, refer to the
++ dnl definition of CLANG_VERSION above.
++ if test "$CLANG_VERSION" -ge 500002075 ; then
++ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
++ fi
++ else
++ AC_MSG_RESULT(no)
++ fi
++
+ dnl If configure thinks we are cross compiling, there might be something
+ dnl wrong with the CC or CFLAGS settings, give a useful warning message
+ if test "$cross_compiling" = yes; then
+*** ../vim-7.4.047/src/auto/configure 2013-08-04 20:01:06.000000000 +0200
+--- src/auto/configure 2013-10-02 17:56:52.000000000 +0200
+***************
+*** 3989,3994 ****
+--- 3989,4012 ----
+ fi
+ fi
+
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent clang version" >&5
++ $as_echo_n "checking for recent clang version... " >&6; }
++ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'`
++ if test x"$CLANG_VERSION_STRING" != x"" ; then
++ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*/\1/p'`
++ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/p'`
++ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)/\1/p'`
++ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION`
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG_VERSION" >&5
++ $as_echo "$CLANG_VERSION" >&6; }
++ if test "$CLANG_VERSION" -ge 500002075 ; then
++ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'`
++ fi
++ else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++ $as_echo "no" >&6; }
++ fi
++
+ if test "$cross_compiling" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&5
+ $as_echo "cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&6; }
+*** ../vim-7.4.047/src/version.c 2013-10-02 16:46:23.000000000 +0200
+--- src/version.c 2013-10-02 17:19:31.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 48,
+ /**/
+
+--
+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.4.049 b/source/ap/vim/patches/7.4.049
new file mode 100644
index 000000000..c1a23b989
--- /dev/null
+++ b/source/ap/vim/patches/7.4.049
@@ -0,0 +1,67 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.049
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.049
+Problem: In Ex mode, when line numbers are enabled the substitute prompt is
+ wrong.
+Solution: Adjust for the line number size. (Benoit Pierre)
+Files: src/ex_cmds.c
+
+
+*** ../vim-7.4.048/src/ex_cmds.c 2013-08-07 15:15:51.000000000 +0200
+--- src/ex_cmds.c 2013-10-02 18:31:24.000000000 +0200
+***************
+*** 4740,4750 ****
+ char_u *resp;
+ colnr_T sc, ec;
+
+! print_line_no_prefix(lnum, FALSE, FALSE);
+
+ getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
+ curwin->w_cursor.col = regmatch.endpos[0].col - 1;
+ getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
+ msg_start();
+ for (i = 0; i < (long)sc; ++i)
+ msg_putchar(' ');
+--- 4740,4756 ----
+ char_u *resp;
+ colnr_T sc, ec;
+
+! print_line_no_prefix(lnum, do_number, do_list);
+
+ getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL);
+ curwin->w_cursor.col = regmatch.endpos[0].col - 1;
+ getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec);
++ if (do_number || curwin->w_p_nu)
++ {
++ int numw = number_width(curwin) + 1;
++ sc += numw;
++ ec += numw;
++ }
+ msg_start();
+ for (i = 0; i < (long)sc; ++i)
+ msg_putchar(' ');
+*** ../vim-7.4.048/src/version.c 2013-10-02 18:22:58.000000000 +0200
+--- src/version.c 2013-10-02 18:33:22.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 49,
+ /**/
+
+--
+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.4.050 b/source/ap/vim/patches/7.4.050
new file mode 100644
index 000000000..afe2b044f
--- /dev/null
+++ b/source/ap/vim/patches/7.4.050
@@ -0,0 +1,90 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.4.050
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.4.050
+Problem: "gn" selects too much for the pattern "\d" when there are two
+ lines with a single digit. (Ryan Carney)
+Solution: Adjust the logic of is_one_char(). (Christian Brabandt)
+Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok
+
+
+*** ../vim-7.4.049/src/search.c 2013-08-14 17:45:25.000000000 +0200
+--- src/search.c 2013-10-02 21:49:40.000000000 +0200
+***************
+*** 4680,4687 ****
+ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
+ && regmatch.startpos[0].col == regmatch.endpos[0].col);
+
+! if (!result && incl(&pos) == 0 && pos.col == regmatch.endpos[0].col)
+! result = TRUE;
+ }
+
+ called_emsg |= save_called_emsg;
+--- 4680,4687 ----
+ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
+ && regmatch.startpos[0].col == regmatch.endpos[0].col);
+
+! if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col)
+! result = TRUE;
+ }
+
+ called_emsg |= save_called_emsg;
+*** ../vim-7.4.049/src/testdir/test53.in 2013-06-30 14:31:56.000000000 +0200
+--- src/testdir/test53.in 2013-10-02 21:47:10.000000000 +0200
+***************
+*** 46,51 ****
+--- 46,54 ----
+ :set selection=exclusive
+ $cgNmongoose/i
+ cgnj
++ :" Make sure there is no other match y uppercase.
++ /x59
++ gggnd
+ :/^start:/,/^end:/wq! test.out
+ ENDTEST
+
+***************
+*** 75,78 ****
+--- 78,84 ----
+ uniquepattern uniquepattern
+ my very excellent mother just served us nachos
+ for (i=0; i<=10; i++)
++ Y
++ text
++ Y
+ end:
+*** ../vim-7.4.049/src/testdir/test53.ok 2013-06-30 14:31:56.000000000 +0200
+--- src/testdir/test53.ok 2013-10-02 21:47:34.000000000 +0200
+***************
+*** 27,30 ****
+--- 27,33 ----
+ uniquepattern
+ my very excellent mongoose just served us nachos
+ for (j=0; i<=10; i++)
++
++ text
++ Y
+ end:
+*** ../vim-7.4.049/src/version.c 2013-10-02 18:43:00.000000000 +0200
+--- src/version.c 2013-10-02 21:51:34.000000000 +0200
+***************
+*** 740,741 ****
+--- 740,743 ----
+ { /* Add new patch number below this line */
++ /**/
++ 50,
+ /**/
+
+--
+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/vim-gvim.SlackBuild b/source/ap/vim/vim-gvim.SlackBuild
index f5a5185ad..6183d4e68 100755
--- a/source/ap/vim/vim-gvim.SlackBuild
+++ b/source/ap/vim/vim-gvim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, 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.
-VIMVER=7.3
+VIMVER=7.4
# This is the directory in the VIM source archive to cd into.
-DIRVER=73
+DIRVER=74
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -59,10 +59,13 @@ mkdir -p $TMP $PKG
# Determine VIM patchlevel:
if [ -d $CWD/patches ] ; then
cd $CWD/patches
- PATCHLEVEL=$(/bin/ls 2> /dev/null | tail -1 | cut -f 3 -d . )
+ PATCHLEVEL=$(/bin/ls ?.?.????.gz 2> /dev/null | tail -1 | cut -f 3 -d . )
+ if [ "$PATCHLEVEL" = "" ]; then
+ PATCHLEVEL=$(/bin/ls ?.?.???.gz 2> /dev/null | tail -1 | cut -f 3 -d . )
if [ "$PATCHLEVEL" = "" ]; then
PATCHLEVEL=000
fi
+ fi
cd $CWD
fi
@@ -112,8 +115,10 @@ 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 {} \;
-for file in $CWD/patches/* ; do
- ( zcat $file 2> /dev/null | patch -p0 --verbose --batch )
+for file in $CWD/patches/?.?.???.gz $CWD/patches/?.?.????.gz ; do
+ if [ -f $file ]; then
+ zcat $file | patch -p0 --verbose || exit 1
+ fi
done
config_vim --with-x --enable-gui=gtk2
diff --git a/source/ap/vim/vim-runtime-syntax-20110328.diff b/source/ap/vim/vim-runtime-syntax-20110328.diff
deleted file mode 100644
index fa196e314..000000000
--- a/source/ap/vim/vim-runtime-syntax-20110328.diff
+++ /dev/null
@@ -1,2487 +0,0 @@
-diff -u -r --new-file runtime/syntax.orig/2html.vim runtime/syntax/2html.vim
---- runtime/syntax.orig/2html.vim 2010-08-12 14:57:26.000000000 -0500
-+++ runtime/syntax/2html.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,6 +1,6 @@
- " Vim syntax support file
- " Maintainer: Ben Fritz <fritzophrenic@gmail.com>
--" Last Change: 2010 Aug 12
-+" Last Change: 2011 Jan 06
- "
- " Additional contributors:
- "
-@@ -124,7 +124,18 @@
- let l:style_name = a:style_name . (a:diff_style_name == '' ? '' : ' ') . a:diff_style_name
-
- " Replace the reserved html characters
-- let formatted = substitute(substitute(substitute(substitute(substitute(formatted, '&', '\&amp;', 'g'), '<', '\&lt;', 'g'), '>', '\&gt;', 'g'), '"', '\&quot;', 'g'), "\x0c", '<hr class="PAGE-BREAK">', 'g')
-+ let formatted = substitute(formatted, '&', '\&amp;', 'g')
-+ let formatted = substitute(formatted, '<', '\&lt;', 'g')
-+ let formatted = substitute(formatted, '>', '\&gt;', 'g')
-+ let formatted = substitute(formatted, '"', '\&quot;', 'g')
-+ " TODO: Use &apos; for "'"?
-+
-+ " Replace a "form feed" character with HTML to do a page break
-+ let formatted = substitute(formatted, "\x0c", '<hr class="PAGE-BREAK">', 'g')
-+
-+ " Mangle modelines so Vim doesn't try to use HTML text as a modeline if
-+ " editing this file in the future
-+ let formatted = substitute(formatted, '\v(\s+%(vim?|ex)):', '\1\&#0058;', 'g')
-
- " Replace double spaces, leading spaces, and trailing spaces if needed
- if ' ' != s:HtmlSpace
-@@ -265,6 +276,19 @@
- let s:old_magic = &magic
- set magic
-
-+" set the fileencoding to match the charset we'll be using
-+let &l:fileencoding=s:settings.vim_encoding
-+
-+" According to http://www.w3.org/TR/html4/charset.html#doc-char-set, the byte
-+" order mark is highly recommend on the web when using multibyte encodings. But,
-+" it is not a good idea to include it on UTF-8 files. Otherwise, let Vim
-+" determine when it is actually inserted.
-+if s:settings.vim_encoding == 'utf-8'
-+ setlocal nobomb
-+else
-+ setlocal bomb
-+endif
-+
- let s:lines = []
-
- if s:settings.use_xhtml
-@@ -545,9 +569,6 @@
- " level, so subtract 2 from index of first non-dash after the dashes
- " in order to get the fold level of the current fold
- let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
-- if s:level+1 > s:foldcolumn
-- let s:foldcolumn = s:level+1
-- endif
- " store fold info for later use
- let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
- call add(s:allfolds, s:newfold)
-@@ -577,9 +598,6 @@
- " level, so subtract 2 from index of first non-dash after the dashes
- " in order to get the fold level of the current fold
- let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
-- if s:level+1 > s:foldcolumn
-- let s:foldcolumn = s:level+1
-- endif
- let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
- " only add the fold if we don't already have it
- if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
-@@ -609,6 +627,48 @@
-
- " close all folds again so we can get the fold text as we go
- silent! %foldclose!
-+
-+ for afold in s:allfolds
-+ let removed = 0
-+ if exists("g:html_start_line") && exists("g:html_end_line")
-+ if afold.firstline < g:html_start_line
-+ if afold.lastline < g:html_end_line && afold.lastline > g:html_start_line
-+ " if a fold starts before the range to convert but stops within the
-+ " range, we need to include it. Make it start on the first converted
-+ " line.
-+ let afold.firstline = g:html_start_line
-+ else
-+ " if the fold lies outside the range or the start and stop enclose
-+ " the entire range, don't bother parsing it
-+ call remove(s:allfolds, index(s:allfolds, afold))
-+ let removed = 1
-+ endif
-+ elseif afold.firstline > g:html_end_line
-+ " If the entire fold lies outside the range we need to remove it.
-+ call remove(s:allfolds, index(s:allfolds, afold))
-+ let removed = 1
-+ endif
-+ elseif exists("g:html_start_line")
-+ if afold.firstline < g:html_start_line
-+ " if there is no last line, but there is a first line, the end of the
-+ " fold will always lie within the region of interest, so keep it
-+ let afold.firstline = g:html_start_line
-+ endif
-+ elseif exists("g:html_end_line")
-+ " if there is no first line we default to the first line in the buffer so
-+ " the fold start will always be included if the fold itself is included.
-+ " If however the entire fold lies outside the range we need to remove it.
-+ if afold.firstline > g:html_end_line
-+ call remove(s:allfolds, index(s:allfolds, afold))
-+ let removed = 1
-+ endif
-+ endif
-+ if !removed
-+ if afold.level+1 > s:foldcolumn
-+ let s:foldcolumn = afold.level+1
-+ endif
-+ endif
-+ endfor
- endif
-
- " Now loop over all lines in the original text to convert to html.
-@@ -656,6 +716,13 @@
-
- let s:foldId = 0
-
-+if !s:settings.expand_tabs
-+ " If keeping tabs, add them to printable characters so we keep them when
-+ " formatting text (strtrans() doesn't replace printable chars)
-+ let s:old_isprint = &isprint
-+ setlocal isprint+=9
-+endif
-+
- while s:lnum <= s:end
-
- " If there are filler lines for diff mode, show these above the line.
-@@ -734,7 +801,7 @@
- call remove(s:foldstack, 0)
- endwhile
-
-- " Now insert an opening any new folds that start on this line
-+ " Now insert an opening for any new folds that start on this line
- let s:firstfold = 1
- while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
- let s:foldId = s:foldId + 1
-@@ -871,30 +938,32 @@
- endif
-
- if s:settings.ignore_conceal || !s:concealinfo[0]
-- " Expand tabs
-+ " Expand tabs if needed
- let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
-- let s:offset = 0
-- let s:idx = stridx(s:expandedtab, "\t")
-- while s:idx >= 0
-- if has("multi_byte_encoding")
-- if s:startcol + s:idx == 1
-- let s:i = &ts
-- else
-- if s:idx == 0
-- let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
-+ if s:settings.expand_tabs
-+ let s:offset = 0
-+ let s:idx = stridx(s:expandedtab, "\t")
-+ while s:idx >= 0
-+ if has("multi_byte_encoding")
-+ if s:startcol + s:idx == 1
-+ let s:i = &ts
- else
-- let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
-+ if s:idx == 0
-+ let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
-+ else
-+ let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
-+ endif
-+ let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
-+ let s:i = &ts - (s:vcol % &ts)
- endif
-- let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
-- let s:i = &ts - (s:vcol % &ts)
-+ let s:offset -= s:i - 1
-+ else
-+ let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
- endif
-- let s:offset -= s:i - 1
-- else
-- let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
-- endif
-- let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
-- let s:idx = stridx(s:expandedtab, "\t")
-- endwhile
-+ let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
-+ let s:idx = stridx(s:expandedtab, "\t")
-+ endwhile
-+ end
-
- " get the highlight group name to use
- let s:id = synIDtrans(s:id)
-@@ -1060,7 +1129,7 @@
- " Cleanup
- %s:\s\+$::e
-
--" Restore old settings
-+" Restore old settings (new window first)
- let &l:foldenable = s:old_fen
- let &l:foldmethod = s:old_fdm
- let &report = s:old_report
-@@ -1070,21 +1139,31 @@
- let &magic = s:old_magic
- let @/ = s:old_search
- let &more = s:old_more
-+
-+" switch to original window to restore those settings
- exe s:orgwin . "wincmd w"
-+
-+if !s:settings.expand_tabs
-+ let &l:isprint = s:old_isprint
-+endif
-+let &l:stl = s:origwin_stl
- let &l:et = s:old_et
- let &l:scrollbind = s:old_bind
-+
-+" and back to the new window again to end there
- exe s:newwin . "wincmd w"
-+
-+let &l:stl = s:newwin_stl
- exec 'resize' s:old_winheight
- let &l:winfixheight = s:old_winfixheight
-
--call setwinvar(s:orgwin,'&stl', s:origwin_stl)
--call setwinvar(s:newwin,'&stl', s:newwin_stl)
- let &ls=s:ls
-
- " Save a little bit of memory (worth doing?)
- unlet s:htmlfont
- unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
- unlet s:old_magic s:old_more s:old_fdm s:old_fen s:old_winheight
-+unlet! s:old_isprint
- unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_winfixheight
- unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:concealinfo
- unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset s:ls s:origwin_stl
-diff -u -r --new-file runtime/syntax.orig/d.vim runtime/syntax/d.vim
---- runtime/syntax.orig/d.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/d.vim 2010-09-22 15:54:05.000000000 -0500
-@@ -1,16 +1,19 @@
--" Vim syntax file for the D programming language (version 1.053 and 2.039).
-+" Vim syntax file for the D programming language (version 1.053 and 2.047).
- "
--" Language: D
--" Maintainer: Jason Mills<jasonmills@nf.sympatico.ca>
--" Last Change: 2010 Jan 07
--" Version: 0.18
-+" Language: D
-+" Maintainer: Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
-+" Last Change: 2010 Sep 21
-+" Version: 0.22
- "
- " Contributors:
-+" - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
- " - Kirk McDonald: version 0.17 updates, with minor modifications
- " (http://paste.dprogramming.com/dplmb7qx?view=hidelines)
--" - Jesse K. Phillips: patch for some keywords and attributes (annotations), with modifications
- " - Tim Keating: patch to fix a bug in highlighting the `\` literal
- " - Frank Benoit: Fixed a bug that caused some identifiers and numbers to highlight as octal number errors.
-+" - Shougo Matsushita <Shougo.Matsu@gmail.com>: updates for latest 2.047 highlighting
-+" - Ellery Newcomer: Fixed some highlighting bugs.
-+" - Steven N. Oliver: #! highlighting
- "
- " Please email me with bugs, comments, and suggestions.
- "
-@@ -47,52 +50,89 @@
-
- " Keyword definitions
- "
--syn keyword dExternal import package module extern
--syn keyword dConditional if else switch
--syn keyword dBranch goto break continue
--syn keyword dRepeat while for do foreach foreach_reverse
--syn keyword dBoolean true false
--syn keyword dConstant null
--syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
--syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
--
--syn keyword dTypedef alias typedef
--syn keyword dStructure template interface class struct union
--syn keyword dEnum enum
--syn keyword dOperator new delete typeof typeid cast align is
--syn keyword dOperator this super
-+syn keyword dExternal import package module extern
-+syn keyword dConditional if else switch
-+syn keyword dBranch goto break continue
-+syn keyword dRepeat while for do foreach foreach_reverse
-+syn keyword dBoolean true false
-+syn keyword dConstant null
-+syn keyword dConstant __FILE__ __LINE__ __EOF__ __VERSION__
-+syn keyword dConstant __DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
-+syn keyword dTypedef alias typedef
-+syn keyword dStructure template interface class struct union
-+syn keyword dEnum enum
-+syn keyword dOperator new delete typeof typeid cast align is
-+syn keyword dOperator this super
- if exists("d_hl_operator_overload")
-- syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd opSub opSub_r
-- syn keyword dOpOverload opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor
-- syn keyword dOpOverload opShl opShl_r opShr opShr_r opUShr opUShr_r opCat
-- syn keyword dOpOverload opCat_r opEquals opEquals opCmp
-- syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign opDivAssign
-- syn keyword dOpOverload opModAssign opAndAssign opOrAssign opXorAssign
-- syn keyword dOpOverload opShlAssign opShrAssign opUShrAssign opCatAssign
-- syn keyword dOpOverload opIndex opIndexAssign opCall opSlice opSliceAssign opPos
-- syn keyword dOpOverload opAdd_r opMul_r opAnd_r opOr_r opXor_r opIn opIn_r
-- syn keyword dOpOverload opPow opDispatch opStar opDot opApply opApplyReverse
-+ syn keyword dOpOverload opNeg opCom opPostInc opPostDec opCast opAdd
-+ syn keyword dOpOverload opSub opSub_r opMul opDiv opDiv_r opMod
-+ syn keyword dOpOverload opMod_r opAnd opOr opXor opShl opShl_r opShr
-+ syn keyword dOpOverload opShr_r opUShr opUShr_r opCat
-+ syn keyword dOpOverload opCat_r opEquals opEquals opCmp
-+ syn keyword dOpOverload opAssign opAddAssign opSubAssign opMulAssign
-+ syn keyword dOpOverload opDivAssign opModAssign opAndAssign
-+ syn keyword dOpOverload opOrAssign opXorAssign opShlAssign
-+ syn keyword dOpOverload opShrAssign opUShrAssign opCatAssign
-+ syn keyword dOpOverload opIndex opIndexAssign opIndexOpAssign
-+ syn keyword dOpOverload opCall opSlice opSliceAssign opSliceOpAssign
-+ syn keyword dOpOverload opPos opAdd_r opMul_r opAnd_r opOr_r opXor_r
-+ syn keyword dOpOverload opIn opIn_r opPow opDispatch opStar opDot
-+ syn keyword dOpOverload opApply opApplyReverse
-+ syn keyword dOpOverload opUnary opIndexUnary opSliceUnary
-+ syn keyword dOpOverload opBinary opBinaryRight
- endif
--syn keyword dType ushort int uint long ulong float
--syn keyword dType void byte ubyte double bit char wchar ucent cent
--syn keyword dType short bool dchar string wstring dstring
--syn keyword dType real ireal ifloat idouble creal cfloat cdouble
--syn keyword dDebug deprecated unittest
--syn keyword dExceptions throw try catch finally
--syn keyword dScopeDecl public protected private export
--syn keyword dStatement version debug return with
--syn keyword dStatement function delegate __traits asm mixin macro
--syn keyword dStorageClass in out inout ref lazy scope body
--syn keyword dStorageClass pure nothrow
--syn keyword dStorageClass auto static override final abstract volatile __gshared __thread
--syn keyword dStorageClass synchronized immutable shared const invariant lazy
--syn keyword dPragma pragma
-+
-+syn keyword dType void ushort int uint long ulong float
-+syn keyword dType byte ubyte double bit char wchar ucent cent
-+syn keyword dType short bool dchar wstring dstring
-+syn keyword dType real ireal ifloat idouble
-+syn keyword dType creal cfloat cdouble
-+syn keyword dDebug deprecated unittest invariant
-+syn keyword dExceptions throw try catch finally
-+syn keyword dScopeDecl public protected private export
-+syn keyword dStatement debug return with
-+syn keyword dStatement function delegate __traits mixin macro
-+syn keyword dStorageClass in out inout ref lazy body
-+syn keyword dStorageClass pure nothrow
-+syn keyword dStorageClass auto static override final abstract volatile
-+syn keyword dStorageClass __gshared __thread
-+syn keyword dStorageClass synchronized shared immutable const lazy
-+syn keyword dPragma pragma
-+syn keyword dIdentifier _arguments _argptr __vptr __monitor _ctor _dtor
-+syn keyword dScopeIdentifier contained exit success failure
-+syn keyword dAttribute contained safe trusted system
-+syn keyword dAttribute contained property disable
-+syn keyword dVersionIdentifier contained DigitalMars GNU LDC LLVM
-+syn keyword dVersionIdentifier contained X86 X86_64 Windows Win32 Win64
-+syn keyword dVersionIdentifier contained linux Posix OSX FreeBSD
-+syn keyword dVersionIdentifier contained LittleEndian BigEndian D_Coverage
-+syn keyword dVersionIdentifier contained D_Ddoc D_InlineAsm_X86
-+syn keyword dVersionIdentifier contained D_InlineAsm_X86_64 D_LP64 D_PIC
-+syn keyword dVersionIdentifier contained unittest D_Version2 none all
-+
-+" Highlight the sharpbang
-+syn match dSharpBang "\%^#!.*" display
-
- " Attributes/annotations
--syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
-+syn match dAnnotation "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
-+
-+" Version Identifiers
-+syn match dVersion "[^.]version" nextgroup=dVersionInside
-+syn match dVersion "^version" nextgroup=dVersionInside
-+syn match dVersionInside "([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
-+
-+" Scope StorageClass
-+syn match dStorageClass "scope"
-+
-+" Scope Identifiers
-+syn match dScope "scope\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+5 contains=dScopeIdentifier
-+
-+" String is a statement and a module name.
-+syn match dType "^string"
-+syn match dType "[^.]\s*\<string\>"ms=s+1
-
- " Assert is a statement and a module name.
--syn match dAssert "^assert\>"
-+syn match dAssert "^assert"
- syn match dAssert "[^.]\s*\<assert\>"ms=s+1
-
- " dTokens is used by the token string highlighting
-@@ -101,26 +141,18 @@
- syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
- syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation
-
--" Marks contents of the asm statment body as special
--"
--" TODO
--"syn match dAsmStatement "\<asm\>"
--"syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement
--"
--"hi def link dAsmBody dUnicode
--"hi def link dAsmStatement dStatement
-
- " Labels
- "
- " We contain dScopeDecl so public: private: etc. are not highlighted like labels
- syn match dUserLabel "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
--syn keyword dLabel case default
-+syn keyword dLabel case default
-
- syn cluster dTokens add=dUserLabel,dLabel
-
- " Comments
- "
--syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
-+syn keyword dTodo contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
- syn match dCommentStar contained "^\s*\*[^/]"me=e-1
- syn match dCommentStar contained "^\s*\*$"
- syn match dCommentPlus contained "^\s*+[^/]"me=e-1
-@@ -251,51 +283,184 @@
-
- " The default highlighting.
- "
--hi def link dBinary Number
--hi def link dDec Number
--hi def link dHex Number
--hi def link dOctal Number
--hi def link dFloat Float
--hi def link dHexFloat Float
--hi def link dDebug Debug
--hi def link dBranch Conditional
--hi def link dConditional Conditional
--hi def link dLabel Label
--hi def link dUserLabel Label
--hi def link dRepeat Repeat
--hi def link dExceptions Exception
--hi def link dAssert Statement
--hi def link dStatement Statement
--hi def link dScopeDecl dStorageClass
--hi def link dStorageClass StorageClass
--hi def link dBoolean Boolean
--hi def link dUnicode Special
--hi def link dTokenStringBrack String
--hi def link dHereString String
--hi def link dNestString String
--hi def link dDelimString String
--hi def link dRawString String
--hi def link dString String
--hi def link dHexString String
--hi def link dCharacter Character
--hi def link dEscSequence SpecialChar
--hi def link dSpecialCharError Error
--hi def link dOctalError Error
--hi def link dOperator Operator
--hi def link dOpOverload Identifier
--hi def link dConstant Constant
--hi def link dTypedef Typedef
--hi def link dEnum Structure
--hi def link dStructure Structure
--hi def link dTodo Todo
--hi def link dType Type
--hi def link dLineComment Comment
--hi def link dBlockComment Comment
--hi def link dNestedComment Comment
--hi def link dExternal Include
--hi def link dPragma PreProc
--hi def link dAnnotation PreProc
-+hi def link dBinary Number
-+hi def link dDec Number
-+hi def link dHex Number
-+hi def link dOctal Number
-+hi def link dFloat Float
-+hi def link dHexFloat Float
-+hi def link dDebug Debug
-+hi def link dBranch Conditional
-+hi def link dConditional Conditional
-+hi def link dLabel Label
-+hi def link dUserLabel Label
-+hi def link dRepeat Repeat
-+hi def link dExceptions Exception
-+hi def link dAssert Statement
-+hi def link dStatement Statement
-+hi def link dScopeDecl dStorageClass
-+hi def link dStorageClass StorageClass
-+hi def link dBoolean Boolean
-+hi def link dUnicode Special
-+hi def link dTokenStringBrack String
-+hi def link dHereString String
-+hi def link dNestString String
-+hi def link dDelimString String
-+hi def link dRawString String
-+hi def link dString String
-+hi def link dHexString String
-+hi def link dCharacter Character
-+hi def link dEscSequence SpecialChar
-+hi def link dSpecialCharError Error
-+hi def link dOctalError Error
-+hi def link dOperator Operator
-+hi def link dOpOverload Identifier
-+hi def link dConstant Constant
-+hi def link dTypedef Typedef
-+hi def link dEnum Structure
-+hi def link dStructure Structure
-+hi def link dTodo Todo
-+hi def link dType Type
-+hi def link dLineComment Comment
-+hi def link dBlockComment Comment
-+hi def link dNestedComment Comment
-+hi def link dExternal Include
-+hi def link dPragma PreProc
-+hi def link dAnnotation PreProc
-+hi def link dSharpBang PreProc
-+hi def link dAttribute StorageClass
-+hi def link dIdentifier Identifier
-+hi def link dVersionIdentifier Identifier
-+hi def link dVersion dStatement
-+hi def link dScopeIdentifier dStatement
-+hi def link dScope dStorageClass
-
- let b:current_syntax = "d"
-
--" vim: ts=8 noet
-+" Marks contents of the asm statment body as special
-+
-+syn match dAsmStatement "\<asm\>"
-+syn region dAsmBody start="asm[\n]*\s*{"hs=e+1 end="}"he=e-1 contains=dAsmStatement,dAsmOpCode
-+
-+hi def link dAsmBody dUnicode
-+hi def link dAsmStatement dStatement
-+hi def link dAsmOpCode Identifier
-+
-+syn keyword dAsmOpCode contained aaa aad aam aas adc
-+syn keyword dAsmOpCode contained add addpd addps addsd addss
-+syn keyword dAsmOpCode contained and andnpd andnps andpd andps
-+syn keyword dAsmOpCode contained arpl bound bsf bsr bswap
-+syn keyword dAsmOpCode contained bt btc btr bts call
-+syn keyword dAsmOpCode contained cbw cdq clc cld clflush
-+syn keyword dAsmOpCode contained cli clts cmc cmova cmovae
-+syn keyword dAsmOpCode contained cmovb cmovbe cmovc cmove cmovg
-+syn keyword dAsmOpCode contained cmovge cmovl cmovle cmovna cmovnae
-+syn keyword dAsmOpCode contained cmovnb cmovnbe cmovnc cmovne cmovng
-+syn keyword dAsmOpCode contained cmovnge cmovnl cmovnle cmovno cmovnp
-+syn keyword dAsmOpCode contained cmovns cmovnz cmovo cmovp cmovpe
-+syn keyword dAsmOpCode contained cmovpo cmovs cmovz cmp cmppd
-+syn keyword dAsmOpCode contained cmpps cmps cmpsb cmpsd cmpss
-+syn keyword dAsmOpCode contained cmpsw cmpxch8b cmpxchg comisd comiss
-+syn keyword dAsmOpCode contained cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi
-+syn keyword dAsmOpCode contained cvtpd2ps cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd
-+syn keyword dAsmOpCode contained cvtps2pi cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss
-+syn keyword dAsmOpCode contained cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq
-+syn keyword dAsmOpCode contained cvttps2pi cvttsd2si cvttss2si cwd cwde
-+syn keyword dAsmOpCode contained da daa das db dd
-+syn keyword dAsmOpCode contained de dec df di div
-+syn keyword dAsmOpCode contained divpd divps divsd divss dl
-+syn keyword dAsmOpCode contained dq ds dt dw emms
-+syn keyword dAsmOpCode contained enter f2xm1 fabs fadd faddp
-+syn keyword dAsmOpCode contained fbld fbstp fchs fclex fcmovb
-+syn keyword dAsmOpCode contained fcmovbe fcmove fcmovnb fcmovnbe fcmovne
-+syn keyword dAsmOpCode contained fcmovnu fcmovu fcom fcomi fcomip
-+syn keyword dAsmOpCode contained fcomp fcompp fcos fdecstp fdisi
-+syn keyword dAsmOpCode contained fdiv fdivp fdivr fdivrp feni
-+syn keyword dAsmOpCode contained ffree fiadd ficom ficomp fidiv
-+syn keyword dAsmOpCode contained fidivr fild fimul fincstp finit
-+syn keyword dAsmOpCode contained fist fistp fisub fisubr fld
-+syn keyword dAsmOpCode contained fld1 fldcw fldenv fldl2e fldl2t
-+syn keyword dAsmOpCode contained fldlg2 fldln2 fldpi fldz fmul
-+syn keyword dAsmOpCode contained fmulp fnclex fndisi fneni fninit
-+syn keyword dAsmOpCode contained fnop fnsave fnstcw fnstenv fnstsw
-+syn keyword dAsmOpCode contained fpatan fprem fprem1 fptan frndint
-+syn keyword dAsmOpCode contained frstor fsave fscale fsetpm fsin
-+syn keyword dAsmOpCode contained fsincos fsqrt fst fstcw fstenv
-+syn keyword dAsmOpCode contained fstp fstsw fsub fsubp fsubr
-+syn keyword dAsmOpCode contained fsubrp ftst fucom fucomi fucomip
-+syn keyword dAsmOpCode contained fucomp fucompp fwait fxam fxch
-+syn keyword dAsmOpCode contained fxrstor fxsave fxtract fyl2x fyl2xp1
-+syn keyword dAsmOpCode contained hlt idiv imul in inc
-+syn keyword dAsmOpCode contained ins insb insd insw int
-+syn keyword dAsmOpCode contained into invd invlpg iret iretd
-+syn keyword dAsmOpCode contained ja jae jb jbe jc
-+syn keyword dAsmOpCode contained jcxz je jecxz jg jge
-+syn keyword dAsmOpCode contained jl jle jmp jna jnae
-+syn keyword dAsmOpCode contained jnb jnbe jnc jne jng
-+syn keyword dAsmOpCode contained jnge jnl jnle jno jnp
-+syn keyword dAsmOpCode contained jns jnz jo jp jpe
-+syn keyword dAsmOpCode contained jpo js jz lahf lar
-+syn keyword dAsmOpCode contained ldmxcsr lds lea leave les
-+syn keyword dAsmOpCode contained lfence lfs lgdt lgs lidt
-+syn keyword dAsmOpCode contained lldt lmsw lock lods lodsb
-+syn keyword dAsmOpCode contained lodsd lodsw loop loope loopne
-+syn keyword dAsmOpCode contained loopnz loopz lsl lss ltr
-+syn keyword dAsmOpCode contained maskmovdqu maskmovq maxpd maxps maxsd
-+syn keyword dAsmOpCode contained maxss mfence minpd minps minsd
-+syn keyword dAsmOpCode contained minss mov movapd movaps movd
-+syn keyword dAsmOpCode contained movdq2q movdqa movdqu movhlps movhpd
-+syn keyword dAsmOpCode contained movhps movlhps movlpd movlps movmskpd
-+syn keyword dAsmOpCode contained movmskps movntdq movnti movntpd movntps
-+syn keyword dAsmOpCode contained movntq movq movq2dq movs movsb
-+syn keyword dAsmOpCode contained movsd movss movsw movsx movupd
-+syn keyword dAsmOpCode contained movups movzx mul mulpd mulps
-+syn keyword dAsmOpCode contained mulsd mulss neg nop not
-+syn keyword dAsmOpCode contained or orpd orps out outs
-+syn keyword dAsmOpCode contained outsb outsd outsw packssdw packsswb
-+syn keyword dAsmOpCode contained packuswb paddb paddd paddq paddsb
-+syn keyword dAsmOpCode contained paddsw paddusb paddusw paddw pand
-+syn keyword dAsmOpCode contained pandn pavgb pavgw pcmpeqb pcmpeqd
-+syn keyword dAsmOpCode contained pcmpeqw pcmpgtb pcmpgtd pcmpgtw pextrw
-+syn keyword dAsmOpCode contained pinsrw pmaddwd pmaxsw pmaxub pminsw
-+syn keyword dAsmOpCode contained pminub pmovmskb pmulhuw pmulhw pmullw
-+syn keyword dAsmOpCode contained pmuludq pop popa popad popf
-+syn keyword dAsmOpCode contained popfd por prefetchnta prefetcht0 prefetcht1
-+syn keyword dAsmOpCode contained prefetcht2 psadbw pshufd pshufhw pshuflw
-+syn keyword dAsmOpCode contained pshufw pslld pslldq psllq psllw
-+syn keyword dAsmOpCode contained psrad psraw psrld psrldq psrlq
-+syn keyword dAsmOpCode contained psrlw psubb psubd psubq psubsb
-+syn keyword dAsmOpCode contained psubsw psubusb psubusw psubw punpckhbw
-+syn keyword dAsmOpCode contained punpckhdq punpckhqdq punpckhwd punpcklbw punpckldq
-+syn keyword dAsmOpCode contained punpcklqdq punpcklwd push pusha pushad
-+syn keyword dAsmOpCode contained pushf pushfd pxor rcl rcpps
-+syn keyword dAsmOpCode contained rcpss rcr rdmsr rdpmc rdtsc
-+syn keyword dAsmOpCode contained rep repe repne repnz repz
-+syn keyword dAsmOpCode contained ret retf rol ror rsm
-+syn keyword dAsmOpCode contained rsqrtps rsqrtss sahf sal sar
-+syn keyword dAsmOpCode contained sbb scas scasb scasd scasw
-+syn keyword dAsmOpCode contained seta setae setb setbe setc
-+syn keyword dAsmOpCode contained sete setg setge setl setle
-+syn keyword dAsmOpCode contained setna setnae setnb setnbe setnc
-+syn keyword dAsmOpCode contained setne setng setnge setnl setnle
-+syn keyword dAsmOpCode contained setno setnp setns setnz seto
-+syn keyword dAsmOpCode contained setp setpe setpo sets setz
-+syn keyword dAsmOpCode contained sfence sgdt shl shld shr
-+syn keyword dAsmOpCode contained shrd shufpd shufps sidt sldt
-+syn keyword dAsmOpCode contained smsw sqrtpd sqrtps sqrtsd sqrtss
-+syn keyword dAsmOpCode contained stc std sti stmxcsr stos
-+syn keyword dAsmOpCode contained stosb stosd stosw str sub
-+syn keyword dAsmOpCode contained subpd subps subsd subss sysenter
-+syn keyword dAsmOpCode contained sysexit test ucomisd ucomiss ud2
-+syn keyword dAsmOpCode contained unpckhpd unpckhps unpcklpd unpcklps verr
-+syn keyword dAsmOpCode contained verw wait wbinvd wrmsr xadd
-+syn keyword dAsmOpCode contained xchg xlat xlatb xor xorpd
-+syn keyword dAsmOpCode contained xorps
-+syn keyword dAsmOpCode contained addsubpd addsubps fisttp haddpd haddps
-+syn keyword dAsmOpCode contained hsubpd hsubps lddqu monitor movddup
-+syn keyword dAsmOpCode contained movshdup movsldup mwait
-+syn keyword dAsmOpCode contained pavgusb pf2id pfacc pfadd pfcmpeq
-+syn keyword dAsmOpCode contained pfcmpge pfcmpgt pfmax pfmin pfmul
-+syn keyword dAsmOpCode contained pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2
-+syn keyword dAsmOpCode contained pfrsqit1 pfrsqrt pfsub pfsubr pi2fd
-+syn keyword dAsmOpCode contained pmulhrw pswapd
-+
-diff -u -r --new-file runtime/syntax.orig/debchangelog.vim runtime/syntax/debchangelog.vim
---- runtime/syntax.orig/debchangelog.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/debchangelog.vim 2011-01-08 08:32:57.000000000 -0600
-@@ -3,8 +3,8 @@
- " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
- " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
- " Wichert Akkerman <wakkerma@debian.org>
--" Last Change: 2010 May 06
--" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debchangelog.vim
-+" Last Change: 2010 Oct 21
-+" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debchangelog.vim
-
- " Standard syntax initialization
- if version < 600
-@@ -19,7 +19,7 @@
- " Define some common expressions we can use later on
- syn match debchangelogName contained "^[[:alnum:]][[:alnum:].+-]\+ "
- syn match debchangelogUrgency contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
--syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|jaunty|karmic|lucid|maverick)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
-+syn match debchangelogTarget contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(lenny|squeeze)-%(backports%(-sloppy)=|volatile)|%(dapper|hardy|jaunty|karmic|lucid|maverick|natty)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
- syn match debchangelogVersion contained "(.\{-})"
- syn match debchangelogCloses contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
- syn match debchangelogLP contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
-diff -u -r --new-file runtime/syntax.orig/debcontrol.vim runtime/syntax/debcontrol.vim
---- runtime/syntax.orig/debcontrol.vim 2010-05-15 06:03:57.000000000 -0500
-+++ runtime/syntax/debcontrol.vim 2011-01-08 08:40:13.000000000 -0600
-@@ -3,8 +3,8 @@
- " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
- " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
- " Wichert Akkerman <wakkerma@debian.org>
--" Last Change: 2009 Aug 17
--" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debcontrol.vim
-+" Last Change: 2010 Oct 21
-+" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debcontrol.vim
-
- " Standard syntax initialization
- if version < 600
-@@ -27,7 +27,7 @@
- syn match debcontrolArchitecture contained "\%(all\|any\|alpha\|amd64\|arm\%(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|lpia\|m32r\|m68k\|mips\%(el\)\=\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc\%(64\)\=\|hurd-i386\|kfreebsd-\%(i386\|amd64\|gnu\)\|knetbsd-i386\|kopensolaris-i386\|netbsd-\%(alpha\|i386\)\)"
- syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
- syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
--syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
-+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|metapackages|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
- syn match debcontrolPackageType contained "u\?deb"
- syn match debcontrolVariable contained "\${.\{-}}"
- syn match debcontrolDmUpload contained "\cyes"
-diff -u -r --new-file runtime/syntax.orig/debsources.vim runtime/syntax/debsources.vim
---- runtime/syntax.orig/debsources.vim 2010-05-15 06:03:57.000000000 -0500
-+++ runtime/syntax/debsources.vim 2011-01-08 08:35:02.000000000 -0600
-@@ -2,8 +2,8 @@
- " Language: Debian sources.list
- " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
- " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
--" Last Change: 2010 May 06
--" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/tip/runtime/syntax/debsources.vim
-+" Last Change: 2010 Oct 21
-+" URL: http://hg.debian.org/hg/pkg-vim/vim/raw-file/unstable/runtime/syntax/debsources.vim
-
- " Standard syntax initialization
- if version < 600
-@@ -23,7 +23,7 @@
-
- " Match uri's
- syn match debsourcesUri +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' <>"]\++
--syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(etch\|lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|dapper\|hardy\|jaunty\|karmic\|lucid\|maverick\)\([-[:alnum:]_./]*\)+
-+syn match debsourcesDistrKeyword +\([[:alnum:]_./]*\)\(lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|rc-buggy\|experimental\|dapper\|hardy\|jaunty\|karmic\|lucid\|maverick\|natty\)\([-[:alnum:]_./]*\)+
-
- " Associate our matches and regions with pretty colours
- hi def link debsourcesLine Error
-diff -u -r --new-file runtime/syntax.orig/falcon.vim runtime/syntax/falcon.vim
---- runtime/syntax.orig/falcon.vim 1969-12-31 18:00:00.000000000 -0600
-+++ runtime/syntax/falcon.vim 2011-01-08 08:23:05.000000000 -0600
-@@ -0,0 +1,155 @@
-+" Vim syntax file
-+" Language: Falcon
-+" Maintainer: Steven Oliver <oliver.steven@gmail.com>
-+" Website: http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
-+" Credits: Thanks the ruby.vim authors, I borrowed a lot!
-+" -------------------------------------------------------------------------------
-+" GetLatestVimScripts: 2745 1 :AutoInstall: falcon.vim
-+
-+" When wanted, highlight the trailing whitespace.
-+if exists("c_space_errors")
-+ if !exists("c_no_trail_space_error")
-+ syn match falconSpaceError "\s\+$"
-+ endif
-+
-+ if !exists("c_no_tab_space_error")
-+ syn match falconSpaceError " \+\t"me=e-1
-+ endif
-+endif
-+
-+" Symbols
-+syn match falconSymbol "\(;\|,\|\.\)"
-+syn match falconSymbolOther "\(#\|@\)" display
-+
-+" Operators
-+syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"
-+syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"
-+
-+" Clusters
-+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold
-+syn case match
-+
-+" Keywords
-+syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const
-+syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function
-+syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list
-+syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to
-+syn keyword falconKeyword try xamp
-+
-+" Error Type Keywords
-+syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError
-+syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError
-+
-+" Todo
-+syn keyword falconTodo DEBUG FIXME NOTE TODO XXX
-+
-+" Conditionals
-+syn keyword falconConditional and case default else end if iff
-+syn keyword falconConditional elif or not switch select
-+syn match falconConditional "end\s\if"
-+
-+" Loops
-+syn keyword falconRepeat break for loop forfirst forlast formiddle while
-+
-+" Booleans
-+syn keyword falconBool true false
-+
-+" Constants
-+syn keyword falconConst PI E nil
-+
-+" Comments
-+syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
-+syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo
-+syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo
-+syn match falconSharpBang "\%^#!.*" display
-+syn sync ccomment falconComment
-+
-+" Numbers
-+syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
-+syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
-+syn match falconHexadecimal contained "\<0x\x\+\>"
-+syn match falconOctal contained "\<0\o\+\>"
-+syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"
-+syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"
-+syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"
-+
-+" Includes
-+syn keyword falconInclude load import
-+
-+" Expression Substitution and Backslash Notation
-+syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
-+syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
-+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
-+
-+" Normal String and Shell Command Output
-+syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold
-+syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold
-+
-+" Generalized Single Quoted String, Symbol and Array of Strings
-+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
-+syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
-+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
-+syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
-+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
-+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
-+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
-+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
-+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
-+
-+" Generalized Double Quoted String and Array of Strings and Shell Command Output
-+syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold
-+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold
-+
-+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
-+
-+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
-+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
-+
-+" Syntax Synchronizing
-+syn sync minlines=10 maxlines=100
-+
-+" Define the default highlighting
-+if !exists("did_falcon_syn_inits")
-+ command -nargs=+ HiLink hi def link <args>
-+
-+ HiLink falconKeyword Keyword
-+ HiLink falconCommentString String
-+ HiLink falconTodo Todo
-+ HiLink falconConditional Keyword
-+ HiLink falconRepeat Repeat
-+ HiLink falconcommentSkip Comment
-+ HiLink falconComment Comment
-+ HiLink falconCommentL Comment
-+ HiLink falconConst Constant
-+ HiLink falconOperator Operator
-+ HiLink falconSymbol Normal
-+ HiLink falconSpaceError Error
-+ HiLink falconHexadecimal Number
-+ HiLink falconOctal Number
-+ HiLink falconIntLiteral Number
-+ HiLink falconFloatLiteral Float
-+ HiLink falconStringEscape Special
-+ HiLink falconStringDelimiter Delimiter
-+ HiLink falconString String
-+ HiLink falconBool Constant
-+ HiLink falconSharpBang PreProc
-+ HiLink falconInclude Include
-+ HiLink falconSymbol Constant
-+ HiLink falconSymbolOther Delimiter
-+ delcommand HiLink
-+endif
-+
-+let b:current_syntax = "falcon"
-+
-+" vim: set sw=4 sts=4 et tw=80 :
-diff -u -r --new-file runtime/syntax.orig/gpg.vim runtime/syntax/gpg.vim
---- runtime/syntax.orig/gpg.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/gpg.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,7 +1,7 @@
- " Vim syntax file
- " Language: gpg(1) configuration file
- " Maintainer: Nikolai Weibull <now@bitwi.se>
--" Latest Revision: 2007-06-17
-+" Latest Revision: 2010-10-14
-
- if exists("b:current_syntax")
- finish
-@@ -54,7 +54,7 @@
- \ personal-digest-preferences photo-viewer
- \ recipient s2k-cipher-algo s2k-digest-algo s2k-mode
- \ secret-keyring set-filename set-policy-url status-fd
-- \ trusted-key verify-options
-+ \ trusted-key verify-options keyid-format list-options
- syn keyword gpgOption contained skipwhite nextgroup=gpgArgError
- \ allow-freeform-uid allow-non-selfsigned-uid
- \ allow-secret-key-import always-trust
-diff -u -r --new-file runtime/syntax.orig/groovy.vim runtime/syntax/groovy.vim
---- runtime/syntax.orig/groovy.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/groovy.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,10 +1,13 @@
- " Vim syntax file
- " Language: Groovy
--" Maintainer: Alessio Pace <billy.corgan@tiscali.it>
--" Version: 0.1.9b
-+" Original Author: Alessio Pace <billy.corgan@tiscali.it>
-+" Maintainer: Tobias Rapp <yahuxo@gmx.de>
-+" Version: 0.1.10
- " URL: http://www.vim.org/scripts/script.php?script_id=945
--" Last Change: 6/4/2004
-+" Last Change: 2010 Nov 29
-
-+" THE ORIGINAL AUTHOR'S NOTES:
-+"
- " This is my very first vim script, I hope to have
- " done it the right way.
- "
-@@ -16,8 +19,7 @@
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- "
--" HOWTO USE IT (INSTALL):
--" [groovy is still not recognized by vim! :-( ]
-+" HOWTO USE IT (INSTALL) when not part of the distribution:
- "
- " 1) copy the file in the (global or user's $HOME/.vim/syntax/) syntax folder
- "
-@@ -247,7 +249,9 @@
- syn match groovySpecialCharError contained "[^']"
- syn match groovySpecialChar contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
- syn region groovyString start=+"+ end=+"+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
--syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
-+syn region groovyString start=+'+ end=+'+ end=+$+ contains=groovySpecialChar,groovySpecialError,@Spell
-+syn region groovyString start=+"""+ end=+"""+ contains=groovySpecialChar,groovySpecialError,@Spell,groovyELExpr
-+syn region groovyString start=+'''+ end=+'''+ contains=groovySpecialChar,groovySpecialError,@Spell
- " syn region groovyELExpr start=+${+ end=+}+ keepend contained
- syn match groovyELExpr /\${.\{-}}/ contained
- GroovyHiLink groovyELExpr Identifier
-diff -u -r --new-file runtime/syntax.orig/help.vim runtime/syntax/help.vim
---- runtime/syntax.orig/help.vim 2010-07-18 16:18:04.000000000 -0500
-+++ runtime/syntax/help.vim 2011-01-08 08:40:13.000000000 -0600
-@@ -1,7 +1,7 @@
- " Vim syntax file
- " Language: Vim help file
- " Maintainer: Bram Moolenaar (Bram@vim.org)
--" Last Change: 2009 May 18
-+" Last Change: 2010 Nov 03
-
- " Quit when a (custom) syntax file was already loaded
- if exists("b:current_syntax")
-@@ -30,6 +30,7 @@
- syn match helpOption "'[a-z]\{2,\}'"
- syn match helpOption "'t_..'"
- syn match helpHeader "\s*\zs.\{-}\ze\s\=\~$" nextgroup=helpIgnore
-+syn match helpGraphic ".* \ze`$" nextgroup=helpIgnore
- syn match helpIgnore "." contained conceal
- syn keyword helpNote note Note NOTE note: Note: NOTE: Notes Notes:
- syn match helpSpecial "\<N\>"
-diff -u -r --new-file runtime/syntax.orig/lex.vim runtime/syntax/lex.vim
---- runtime/syntax.orig/lex.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/lex.vim 2011-01-08 08:40:13.000000000 -0600
-@@ -1,8 +1,8 @@
- " Vim syntax file
- " Language: Lex
- " Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
--" Last Change: Sep 11, 2009
--" Version: 10
-+" Last Change: Nov 01, 2010
-+" Version: 12
- " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
- "
- " Option:
-@@ -36,6 +36,9 @@
- " --- Lex stuff ---
- " --- ========= ---
-
-+" Options Section
-+syn match lexOptions '^%\s*option\>.*$' contains=lexPatString
-+
- "I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
- syn cluster lexListGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
- syn cluster lexListPatCodeGroup contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
-@@ -61,13 +64,15 @@
-
- "%% : Patterns {Actions}
- if has("folding")
-- syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
-+ syn region lexPatBlock fold matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
- syn region lexPat fold start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
-+ syn region lexPatInclude fold matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
- syn region lexBrace fold start="\[" skip=+\\\\\|\\+ end="]" contained
- syn region lexPatString fold matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
- else
-- syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
-+ syn region lexPatBlock matchgroup=Todo start="^%%$" matchgroup=Todo end="^%%$" skipnl skipwhite contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat,lexPatInclude
- syn region lexPat start=+\S+ skip="\\\\\|\\." end="\s"me=e-1 contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
-+ syn region lexPatInclude matchgroup=lexSep start="^%{" end="%}" contained contains=lexPatCode
- syn region lexBrace start="\[" skip=+\\\\\|\\+ end="]" contained
- syn region lexPatString matchgroup=String start=+"+ skip=+\\\\\|\\"+ matchgroup=String end=+"+ contained
- endif
-@@ -117,6 +122,7 @@
- hi def link lexAbbrv SpecialChar
- hi def link lexCFunctions Function
- hi def link lexMorePat SpecialChar
-+hi def link lexOptions PreProc
- hi def link lexPatComment Comment
- hi def link lexPat Function
- hi def link lexPatString Function
-diff -u -r --new-file runtime/syntax.orig/lisp.vim runtime/syntax/lisp.vim
---- runtime/syntax.orig/lisp.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/lisp.vim 2011-01-08 08:32:58.000000000 -0600
-@@ -1,8 +1,8 @@
- " Vim syntax file
- " Language: Lisp
- " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
--" Last Change: Mar 05, 2009
--" Version: 21
-+" Last Change: Nov 16, 2010
-+" Version: 22
- " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
- "
- " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
-@@ -32,7 +32,7 @@
- " ---------------------------------------------------------------------
- " Clusters: {{{1
- syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
--syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
-+syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispEscapeSpecial,lispSymbol,lispVar,lispLeadWhite
- if exists("g:lisp_instring")
- syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
- else
-@@ -68,7 +68,7 @@
- syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
- syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
- syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
--syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispSpecial
-+syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString,lispEscapeSpecial
- syn match lispAtomNmbr contained "\<\d\+"
- syn match lispLeadWhite contained "^\s\+"
-
-@@ -537,16 +537,16 @@
- syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
- syn match lispNumber "-\=\(\d\+/\d\+\)"
-
--syn match lispSpecial "\*\w[a-z_0-9-]*\*"
--syn match lispSpecial !#|[^()'`,"; \t]\+|#!
--syn match lispSpecial !#x\x\+!
--syn match lispSpecial !#o\o\+!
--syn match lispSpecial !#b[01]\+!
--syn match lispSpecial !#\\[ -}\~]!
--syn match lispSpecial !#[':][^()'`,"; \t]\+!
--syn match lispSpecial !#([^()'`,"; \t]\+)!
--syn match lispSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
--syn match lispSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
-+syn match lispEscapeSpecial "\*\w[a-z_0-9-]*\*"
-+syn match lispEscapeSpecial !#|[^()'`,"; \t]\+|#!
-+syn match lispEscapeSpecial !#x\x\+!
-+syn match lispEscapeSpecial !#o\o\+!
-+syn match lispEscapeSpecial !#b[01]\+!
-+syn match lispEscapeSpecial !#\\[ -}\~]!
-+syn match lispEscapeSpecial !#[':][^()'`,"; \t]\+!
-+syn match lispEscapeSpecial !#([^()'`,"; \t]\+)!
-+syn match lispEscapeSpecial !#\\\%(Space\|Newline\|Tab\|Page\|Rubout\|Linefeed\|Return\|Backspace\)!
-+syn match lispEscapeSpecial "\<+[a-zA-Z_][a-zA-Z_0-9-]*+\>"
-
- syn match lispConcat "\s\.\s"
- syn match lispParenError ")"
-@@ -585,7 +585,7 @@
- HiLink lispMark Delimiter
- HiLink lispNumber Number
- HiLink lispParenError Error
-- HiLink lispSpecial Type
-+ HiLink lispEscapeSpecial Type
- HiLink lispString String
- HiLink lispTodo Todo
- HiLink lispVar Statement
-diff -u -r --new-file runtime/syntax.orig/logindefs.vim runtime/syntax/logindefs.vim
---- runtime/syntax.orig/logindefs.vim 2010-05-15 06:03:57.000000000 -0500
-+++ runtime/syntax/logindefs.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,7 +1,7 @@
- " Vim syntax file
- " Language: login.defs(5) configuration file
- " Maintainer: Nikolai Weibull <now@bitwi.se>
--" Latest Revision: 2006-04-19
-+" Latest Revision: 2010-11-29
-
- if exists("b:current_syntax")
- finish
-@@ -10,83 +10,163 @@
- let s:cpo_save = &cpo
- set cpo&vim
-
--syn keyword logindefsTodo contained TODO FIXME XXX NOTE
--
--syn region logindefsComment display oneline start='^\s*#' end='$'
-- \ contains=logindefsTodo,@Spell
--
--syn match logindefsString contained '[[:graph:]]\+'
--
--syn match logindefsPath contained '[[:graph:]]\+'
--
--syn match logindefsPaths contained '[[:graph:]]\+'
-- \ nextgroup=logindefsPathDelim
--
--syn match logindefsPathDelim contained ':' nextgroup=logindefsPaths
--
--syn keyword logindefsBoolean contained yes no
--
--syn match logindefsDecimal contained '\<\d\+\>'
--
--syn match logindefsOctal contained display '\<0\o\+\>'
-- \ contains=logindefsOctalZero
--syn match logindefsOctalZero contained display '\<0'
--syn match logindefsOctalError contained display '\<0\o*[89]\d*\>'
--
--syn match logindefsHex contained display '\<0x\x\+\>'
--
--syn cluster logindefsNumber contains=logindefsDecimal,logindefsOctal,
-- \ logindefsOctalError,logindefsHex
--
--syn match logindefsBegin display '^'
-- \ nextgroup=logindefsKeyword,logindefsComment
-- \ skipwhite
--
--syn keyword logindefsKeyword contained CHFN_AUTH CLOSE_SESSIONS CREATE_HOME
-- \ DEFAULT_HOME FAILLOG_ENAB LASTLOG_ENAB
-- \ LOG_OK_LOGINS LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB
-- \ MD5_CRYPT_ENAB OBSCURE_CHECKS_ENAB
-- \ PASS_ALWAYS_WARN PORTTIME_CHECKS_ENAB
-- \ QUOTAS_ENAB SU_WHEEL_ONLY SYSLOG_SG_ENAB
-- \ SYSLOG_SU_ENAB USERGROUPS_ENAB
-- \ nextgroup=logindefsBoolean skipwhite
--
--syn keyword logindefsKeyword contained CHFN_RESTRICT CONSOLE CONSOLE_GROUPS
-- \ ENV_TZ ENV_HZ FAKE_SHELL SU_NAME LOGIN_STRING
-- \ NOLOGIN_STR TTYGROUP USERDEL_CMD
-- \ nextgroup=logindefsString skipwhite
--
--syn keyword logindefsKeyword contained ENVIRON_FILE FTMP_FILE HUSHLOGIN_FILE
-- \ ISSUE_FILE MAIL_DIR MAIL_FILE NOLOGINS_FILE
-- \ NOLOGINS_FILE TTYTYPE_FILE QMAIL_DIR
-- \ SULOG_FILE
-- \ nextgroup=logindefsPath skipwhite
--
--syn keyword logindefsKeyword contained CRACKLIB_DICTPATH ENV_PATH
-- \ ENV_ROOTPATH ENV_SUPATH MOTD_FILE
-- \ nextgroup=logindefsPaths skipwhite
--
--syn keyword logindefsKeyword contained ERASECHAR FAIL_DELAY GETPASS_ASTERISKS
-- \ GID_MAX GID_MIN KILLCHAR LOGIN_RETRIES
-- \ LOGIN_TIMEOUT PASS_CHANGE_TRIES PASS_MAX_DAYS
-- \ PASS_MAX_LEN PASS_MIN_DAYS PASS_MIN_LEN
-- \ PASS_WARN_AGE TTYPERM UID_MAX UID_MIN ULIMIT
-- \ UMASK
-- \ nextgroup=@logindefsNumber skipwhite
--
--hi def link logindefsTodo Todo
--hi def link logindefsComment Comment
--hi def link logindefsString String
--hi def link logindefsPath String
--hi def link logindefsPaths logindefsPath
--hi def link logindefsPathDelim Delimiter
--hi def link logindefsBoolean Boolean
--hi def link logindefsDecimal Number
--hi def link logindefsOctal Number
--hi def link logindefsOctalZero PreProc
--hi def link logindefsOctalError Error
--hi def link logindefsHex Number
--hi def link logindefsKeyword Keyword
-+syn match logindefsBegin display '^'
-+ \ nextgroup=
-+ \ logindefsComment,
-+ \ @logindefsKeyword
-+ \ skipwhite
-+
-+syn region logindefsComment display oneline start='^\s*#' end='$'
-+ \ contains=logindefsTodo,@Spell
-+
-+syn keyword logindefsTodo contained TODO FIXME XXX NOTE
-+
-+syn cluster logindefsKeyword contains=
-+ \ logindefsBooleanKeyword,
-+ \ logindefsEncryptKeyword,
-+ \ logindefsNumberKeyword,
-+ \ logindefsPathKeyword,
-+ \ logindefsPathsKeyword,
-+ \ logindefsStringKeyword
-+
-+syn keyword logindefsBooleanKeyword contained
-+ \ CHFN_AUTH
-+ \ CHSH_AUTH
-+ \ CREATE_HOME
-+ \ DEFAULT_HOME
-+ \ FAILLOG_ENAB
-+ \ LASTLOG_ENAB
-+ \ LOG_OK_LOGINS
-+ \ LOG_UNKFAIL_ENAB
-+ \ MAIL_CHECK_ENAB
-+ \ MD5_CRYPT_ENAB
-+ \ OBSCURE_CHECKS_ENAB
-+ \ PASS_ALWAYS_WARN
-+ \ PORTTIME_CHECKS_ENAB
-+ \ QUOTAS_ENAB
-+ \ SU_WHEEL_ONLY
-+ \ SYSLOG_SG_ENAB
-+ \ SYSLOG_SU_ENAB
-+ \ USERGROUPS_ENAB
-+ \ nextgroup=logindefsBoolean skipwhite
-+
-+syn keyword logindefsBoolean contained yes no
-+
-+syn keyword logindefsEncryptKeyword contained
-+ \ ENCRYPT_METHOD
-+ \ nextgroup=logindefsEncryptMethod skipwhite
-+
-+syn keyword logindefsEncryptMethod contained
-+ \ DES
-+ \ MD5
-+ \ SHA256
-+ \ SHA512
-+
-+syn keyword logindefsNumberKeyword contained
-+ \ ERASECHAR
-+ \ FAIL_DELAY
-+ \ GID_MAX
-+ \ GID_MIN
-+ \ KILLCHAR
-+ \ LOGIN_RETRIES
-+ \ LOGIN_TIMEOUT
-+ \ MAX_MEMBERS_PER_GROUP
-+ \ PASS_CHANGE_TRIES
-+ \ PASS_MAX_DAYS
-+ \ PASS_MIN_DAYS
-+ \ PASS_WARN_AGE
-+ \ PASS_MAX_LEN
-+ \ PASS_MIN_LEN
-+ \ SHA_CRYPT_MAX_ROUNDS
-+ \ SHA_CRYPT_MIN_ROUNDS
-+ \ SYS_GID_MAX
-+ \ SYS_GID_MIN
-+ \ SYS_UID_MAX
-+ \ SYS_UID_MIN
-+ \ UID_MAX
-+ \ UID_MIN
-+ \ ULIMIT
-+ \ UMASK
-+ \ nextgroup=@logindefsNumber skipwhite
-+
-+syn cluster logindefsNumber contains=
-+ \ logindefsDecimal,
-+ \ logindefsHex,
-+ \ logindefsOctal,
-+ \ logindefsOctalError
-+
-+syn match logindefsDecimal contained '\<\d\+\>'
-+
-+syn match logindefsHex contained display '\<0x\x\+\>'
-+
-+syn match logindefsOctal contained display '\<0\o\+\>'
-+ \ contains=logindefsOctalZero
-+syn match logindefsOctalZero contained display '\<0'
-+
-+syn match logindefsOctalError contained display '\<0\o*[89]\d*\>'
-+
-+syn keyword logindefsPathKeyword contained
-+ \ ENVIRON_FILE
-+ \ FAKE_SHELL
-+ \ FTMP_FILE
-+ \ HUSHLOGIN_FILE
-+ \ ISSUE_FILE
-+ \ MAIL_DIR
-+ \ MAIL_FILE
-+ \ NOLOGINS_FILE
-+ \ SULOG_FILE
-+ \ TTYTYPE_FILE
-+ \ nextgroup=logindefsPath skipwhite
-+
-+syn match logindefsPath contained '[[:graph:]]\+'
-+
-+syn keyword logindefsPathsKeyword contained
-+ \ CONSOLE
-+ \ ENV_PATH
-+ \ ENV_SUPATH
-+ \ MOTD_FILE
-+ \ nextgroup=logindefsPaths skipwhite
-+
-+syn match logindefsPaths contained '[^:]\+'
-+ \ nextgroup=logindefsPathDelim
-+
-+syn match logindefsPathDelim contained ':' nextgroup=logindefsPaths
-+
-+syn keyword logindefsStringKeyword contained
-+ \ CHFN_RESTRICT
-+ \ CONSOLE_GROUPS
-+ \ ENV_HZ
-+ \ ENV_TZ
-+ \ LOGIN_STRING
-+ \ SU_NAME
-+ \ TTYGROUP
-+ \ TTYPERM
-+ \ USERDEL_CMD
-+ \ nextgroup=logindefsString skipwhite
-+
-+syn match logindefsString contained '[[:graph:]]\+'
-+
-+hi def link logindefsComment Comment
-+hi def link logindefsTodo Todo
-+hi def link logindefsKeyword Keyword
-+hi def link logindefsBooleanKeyword logindefsKeyword
-+hi def link logindefsEncryptKeyword logindefsKeyword
-+hi def link logindefsNumberKeyword logindefsKeyword
-+hi def link logindefsPathKeyword logindefsKeyword
-+hi def link logindefsPathsKeyword logindefsKeyword
-+hi def link logindefsStringKeyword logindefsKeyword
-+hi def link logindefsBoolean Boolean
-+hi def link logindefsEncryptMethod Type
-+hi def link logindefsNumber Number
-+hi def link logindefsDecimal logindefsNumber
-+hi def link logindefsHex logindefsNumber
-+hi def link logindefsOctal logindefsNumber
-+hi def link logindefsOctalZero PreProc
-+hi def link logindefsOctalError Error
-+hi def link logindefsPath String
-+hi def link logindefsPaths logindefsPath
-+hi def link logindefsPathDelim Delimiter
-+hi def link logindefsString String
-
- let b:current_syntax = "logindefs"
-
-diff -u -r --new-file runtime/syntax.orig/nasm.vim runtime/syntax/nasm.vim
---- runtime/syntax.orig/nasm.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/nasm.vim 2011-01-08 08:27:46.000000000 -0600
-@@ -1,9 +1,10 @@
- " Vim syntax file
- " Language: NASM - The Netwide Assembler (v0.98)
--" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>
--" Last Change: 2003 May 11
--" Vim URL: http://www.vim.org/lang.html
--" NASM Home: http://www.cryogen.com/Nasm/
-+" Maintainer: Andriy Sokolov <andriy145@gmail.com>
-+" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
-+" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
-+" Last Change: 2010 Sep 24
-+" NASM Home: http://www.nasm.us/
-
-
-
-@@ -160,6 +161,7 @@
- "syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
- "syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
- syn region nasmInMacPreConDef contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
-+" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
- syn match nasmInMacPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
- syn match nasmInMacPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
- syn match nasmInMacPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
-@@ -210,15 +212,17 @@
- syn cluster nasmGrpPreCondits contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel
-
- " Other pre-processor statements
--syn match nasmPreProc "^\s*%rep\>"hs=e-3
-+syn match nasmPreProc "^\s*%\(rep\|use\)\>"hs=e-3
- syn match nasmPreProc "^\s*%line\>"hs=e-4
--syn match nasmPreProc "^\s*%\(clear\|error\)\>"hs=e-5
--syn match nasmPreProc "^\s*%endrep\>"hs=e-6
--syn match nasmPreProc "^\s*%exitrep\>"hs=e-7
-+syn match nasmPreProc "^\s*%\(clear\|error\|fatal\)\>"hs=e-5
-+syn match nasmPreProc "^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
-+syn match nasmPreProc "^\s*%\(exitrep\|warning\)\>"hs=e-7
- syn match nasmDefine "^\s*%undef\>"hs=e-5
- syn match nasmDefine "^\s*%\(assign\|define\)\>"hs=e-6
- syn match nasmDefine "^\s*%i\(assign\|define\)\>"hs=e-7
-+syn match nasmDefine "^\s*%unmacro\>"hs=e-7
- syn match nasmInclude "^\s*%include\>"hs=e-7
-+" Todo: Treat the line tail after %fatal, %error, %warning as text
-
- " Multiple pre-processor instructions on single line detection (obsolete)
- "syn match nasmPreProcError +^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
-@@ -231,6 +235,7 @@
- syn match nasmGen08Register "\<[A-D][HL]\>"
- syn match nasmGen16Register "\<\([A-D]X\|[DS]I\|[BS]P\)\>"
- syn match nasmGen32Register "\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
-+syn match nasmGen64Register "\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
- syn match nasmSegRegister "\<[C-GS]S\>"
- syn match nasmSpcRegister "\<E\=IP\>"
- syn match nasmFpuRegister "\<ST\o\>"
-@@ -298,20 +303,21 @@
- syn match nasmStdInstruction "\<POP\>"
- syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND
- syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS
--syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW
--syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E]
-+syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
-+syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
- syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER
--syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW
-+syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
- syn keyword nasmStdInstruction JCXZ JECXZ JMP
--syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD
-+syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
- syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
--syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT
--syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW
--syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW
-+syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
-+syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ
-+syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
- syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR
- syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW
--syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW SUB
-+syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
- syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR
-+syn keyword nasmStdInstruction LFENCE MFENCE SFENCE
-
-
- " System Instructions: (usually privileged)
-diff -u -r --new-file runtime/syntax.orig/po.vim runtime/syntax/po.vim
---- runtime/syntax.orig/po.vim 2010-05-15 06:03:57.000000000 -0500
-+++ runtime/syntax/po.vim 2010-09-22 15:54:05.000000000 -0500
-@@ -1,10 +1,10 @@
- " Vim syntax file
- " Language: po (gettext)
- " Maintainer: Dwayne Bailey <dwayne@translate.org.za>
--" Last Change: 2008 Sep 17
-+" Last Change: 2010 Sep 21
- " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
- " Leonardo Fontenelle (Spell checking)
--" SungHyun Nam <goweol@gmail.com> (Original maintainer)
-+" Nam SungHyun <namsh@kldp.org> (Original maintainer)
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
-@@ -39,7 +39,7 @@
- \ contains=@Spell,poSpecial,poFormat,poHeaderItem,poCommentKDEError,poHeaderUndefined,poPluralKDEError,poMsguniqError,poKDEdesktopFile,poHtml,poAcceleratorStr,poHtmlNot,poVariable
-
- " Header and Copyright
--syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
-+syn match poHeaderItem "\(Project-Id-Version\|Report-Msgid-Bugs-To\|POT-Creation-Date\|PO-Revision-Date\|Last-Translator\|Language-Team\|Language\|MIME-Version\|Content-Type\|Content-Transfer-Encoding\|Plural-Forms\|X-Generator\): " contained
- syn match poHeaderUndefined "\(PACKAGE VERSION\|YEAR-MO-DA HO:MI+ZONE\|FULL NAME <EMAIL@ADDRESS>\|LANGUAGE <LL@li.org>\|CHARSET\|ENCODING\|INTEGER\|EXPRESSION\)" contained
- syn match poCopyrightUnset "SOME DESCRIPTIVE TITLE\|FIRST AUTHOR <EMAIL@ADDRESS>, YEAR\|Copyright (C) YEAR Free Software Foundation, Inc\|YEAR THE PACKAGE\'S COPYRIGHT HOLDER\|PACKAGE" contained
-
-diff -u -r --new-file runtime/syntax.orig/python.vim runtime/syntax/python.vim
---- runtime/syntax.orig/python.vim 2010-05-15 06:03:57.000000000 -0500
-+++ runtime/syntax/python.vim 2010-09-22 15:49:19.000000000 -0500
-@@ -1,7 +1,7 @@
- " Vim syntax file
- " Language: Python
- " Maintainer: Neil Schemenauer <nas@python.ca>
--" Last Change: 2009-10-13
-+" Last Change: 2010 Sep 21
- " Credits: Zvezdan Petkovic <zpetkovic@acm.org>
- " Neil Schemenauer <nas@python.ca>
- " Dmitry Vasiliev
-@@ -45,6 +45,11 @@
- finish
- endif
-
-+" We need nocompatible mode in order to continue lines with backslashes.
-+" Original setting will be restored.
-+let s:cpo_save = &cpo
-+set cpo&vim
-+
- " Keep Python keywords in alphabetical order inside groups for easy
- " comparison with the table in the 'Python Language Reference'
- " http://docs.python.org/reference/lexical_analysis.html#keywords.
-@@ -292,4 +297,7 @@
-
- let b:current_syntax = "python"
-
-+let &cpo = s:cpo_save
-+unlet s:cpo_save
-+
- " vim:set sw=2 sts=2 ts=8 noet:
-diff -u -r --new-file runtime/syntax.orig/r.vim runtime/syntax/r.vim
---- runtime/syntax.orig/r.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/r.vim 2011-01-08 08:45:55.000000000 -0600
-@@ -1,111 +1,137 @@
- " Vim syntax file
--" Language: R (GNU S)
--" Maintainer: Vaidotas Zemlys <zemlys@gmail.com>
--" Last Change: 2006 Apr 30
--" Filenames: *.R *.Rout *.r *.Rhistory *.Rt *.Rout.save *.Rout.fail
--" URL: http://uosis.mif.vu.lt/~zemlys/vim-syntax/r.vim
--
--" First maintainer Tom Payne <tom@tompayne.org>
--" Modified to make syntax less colourful and added the highlighting of
--" R assignment arrow
--
--" For version 5.x: Clear all syntax items
--" For version 6.x: Quit when a syntax file was already loaded
--if version < 600
-- syntax clear
--elseif exists("b:current_syntax")
-+" Language: R (GNU S)
-+" Maintainer: Jakson Aquino <jalvesaq@gmail.com>
-+" Former Maintainers: Vaidotas Zemlys <zemlys@gmail.com>
-+" Tom Payne <tom@tompayne.org>
-+" Last Change: Wed Sep 29, 2010 09:31AM
-+" Filenames: *.R *.r *.Rhistory *.Rt
-+"
-+" NOTE: The highlighting of R functions is defined in the
-+" r-plugin/functions.vim, which is part of vim-r-plugin2:
-+" http://www.vim.org/scripts/script.php?script_id=2628
-+"
-+" Some lines of code were borrowed from Zhuojun Chen.
-+
-+if exists("b:current_syntax")
- finish
- endif
-
--if version >= 600
-- setlocal iskeyword=@,48-57,_,.
--else
-- set iskeyword=@,48-57,_,.
--endif
-+setlocal iskeyword=@,48-57,_,.
-
- syn case match
-
- " Comment
--syn match rComment /\#.*/
-+syn match rComment contains=@Spell "\#.*"
-
--" Constant
- " string enclosed in double quotes
--syn region rString start=/"/ skip=/\\\\\|\\"/ end=/"/
-+syn region rString contains=rSpecial,rStrError,@Spell start=/"/ skip=/\\\\\|\\"/ end=/"/
- " string enclosed in single quotes
--syn region rString start=/'/ skip=/\\\\\|\\'/ end=/'/
--" number with no fractional part or exponent
--syn match rNumber /\d\+/
--" floating point number with integer and fractional parts and optional exponent
--syn match rFloat /\d\+\.\d*\([Ee][-+]\=\d\+\)\=/
--" floating point number with no integer part and optional exponent
--syn match rFloat /\.\d\+\([Ee][-+]\=\d\+\)\=/
--" floating point number with no fractional part and optional exponent
--syn match rFloat /\d\+[Ee][-+]\=\d\+/
-+syn region rString contains=rSpecial,rStrError,@Spell start=/'/ skip=/\\\\\|\\'/ end=/'/
-
--" Identifier
--" identifier with leading letter and optional following keyword characters
--syn match rIdentifier /\a\k*/
--" identifier with leading period, one or more digits, and at least one non-digit keyword character
--syn match rIdentifier /\.\d*\K\k*/
-+syn match rStrError display contained "\\."
-+
-+" New line, carriage return, tab, backspace, bell, feed, vertical tab, backslash
-+syn match rSpecial display contained "\\\(n\|r\|t\|b\|a\|f\|v\|'\|\"\)\|\\\\"
-+
-+" Hexadecimal and Octal digits
-+syn match rSpecial display contained "\\\(x\x\{1,2}\|[0-8]\{1,3}\)"
-+
-+" Unicode characters
-+syn match rSpecial display contained "\\u\x\{1,4}"
-+syn match rSpecial display contained "\\U\x\{1,8}"
-+syn match rSpecial display contained "\\u{\x\{1,4}}"
-+syn match rSpecial display contained "\\U{\x\{1,8}}"
-+
-+
-+syn match rDollar "\$"
-
- " Statement
- syn keyword rStatement break next return
- syn keyword rConditional if else
- syn keyword rRepeat for in repeat while
-
-+" Constant (not really)
-+syn keyword rConstant T F LETTERS letters month.ab month.name pi
-+syn keyword rConstant R.version.string
-+
- " Constant
--syn keyword rConstant LETTERS letters month.ab month.name pi
- syn keyword rConstant NULL
- syn keyword rBoolean FALSE TRUE
--syn keyword rNumber NA
--syn match rArrow /<\{1,2}-/
-+syn keyword rNumber NA NA_integer_ NA_real_ NA_complex_ NA_character_
-+syn keyword rNumber Inf NaN
-
--" Type
--syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
-+" integer
-+syn match rInteger "\<\d\+L"
-+syn match rInteger "\<0x\([0-9]\|[a-f]\|[A-F]\)\+L"
-+syn match rInteger "\<\d\+[Ee]+\=\d\+L"
-+
-+syn match rOperator "[\*\!\&\+\-\<\>\=\^\|\~\`/:@]"
-+syn match rOperator "%\{2}\|%\*%\|%\/%\|%in%\|%o%\|%x%"
-+
-+syn match rComplex "\<\d\+i"
-+syn match rComplex "\<0x\([0-9]\|[a-f]\|[A-F]\)\+i"
-+syn match rComplex "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\=i"
-+syn match rComplex "\<\.\d\+\([Ee][-+]\=\d\+\)\=i"
-+syn match rComplex "\<\d\+[Ee][-+]\=\d\+i"
-+
-+" number with no fractional part or exponent
-+syn match rNumber "\<\d\+\>"
-+" hexadecimal number
-+syn match rNumber "\<0x\([0-9]\|[a-f]\|[A-F]\)\+"
-+
-+" floating point number with integer and fractional parts and optional exponent
-+syn match rFloat "\<\d\+\.\d*\([Ee][-+]\=\d\+\)\="
-+" floating point number with no integer part and optional exponent
-+syn match rFloat "\<\.\d\+\([Ee][-+]\=\d\+\)\="
-+" floating point number with no fractional part and optional exponent
-+syn match rFloat "\<\d\+[Ee][-+]\=\d\+"
-+
-+syn match rArrow "<\{1,2}-"
-+syn match rArrow "->\{1,2}"
-
- " Special
--syn match rDelimiter /[,;:]/
-+syn match rDelimiter "[,;:]"
-
- " Error
- syn region rRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rError,rBraceError,rCurlyError
- syn region rRegion matchgroup=Delimiter start=/{/ matchgroup=Delimiter end=/}/ transparent contains=ALLBUT,rError,rBraceError,rParenError
- syn region rRegion matchgroup=Delimiter start=/\[/ matchgroup=Delimiter end=/]/ transparent contains=ALLBUT,rError,rCurlyError,rParenError
--syn match rError /[)\]}]/
--syn match rBraceError /[)}]/ contained
--syn match rCurlyError /[)\]]/ contained
--syn match rParenError /[\]}]/ contained
-+syn match rError "[)\]}]"
-+syn match rBraceError "[)}]" contained
-+syn match rCurlyError "[)\]]" contained
-+syn match rParenError "[\]}]" contained
-+
-+" Functions that may add new objects
-+syn keyword rPreProc library require attach detach source
-+
-+" Type
-+syn keyword rType array category character complex double function integer list logical matrix numeric vector data.frame
-
- " Define the default highlighting.
--" For version 5.7 and earlier: only when not done already
--" For version 5.8 and later: only when an item doesn't have highlighting yet
--if version >= 508 || !exists("did_r_syn_inits")
-- if version < 508
-- let did_r_syn_inits = 1
-- command -nargs=+ HiLink hi link <args>
-- else
-- command -nargs=+ HiLink hi def link <args>
-- endif
-- HiLink rComment Comment
-- HiLink rConstant Constant
-- HiLink rString String
-- HiLink rNumber Number
-- HiLink rBoolean Boolean
-- HiLink rFloat Float
-- HiLink rStatement Statement
-- HiLink rConditional Conditional
-- HiLink rRepeat Repeat
-- HiLink rIdentifier Normal
-- HiLink rArrow Statement
-- HiLink rType Type
-- HiLink rDelimiter Delimiter
-- HiLink rError Error
-- HiLink rBraceError Error
-- HiLink rCurlyError Error
-- HiLink rParenError Error
-- delcommand HiLink
--endif
-+hi def link rArrow Statement
-+hi def link rBoolean Boolean
-+hi def link rBraceError Error
-+hi def link rComment Comment
-+hi def link rComplex Number
-+hi def link rConditional Conditional
-+hi def link rConstant Constant
-+hi def link rCurlyError Error
-+hi def link rDelimiter Delimiter
-+hi def link rDollar SpecialChar
-+hi def link rError Error
-+hi def link rFloat Float
-+hi def link rInteger Number
-+hi def link rNumber Number
-+hi def link rOperator Operator
-+hi def link rParenError Error
-+hi def link rPreProc PreProc
-+hi def link rRepeat Repeat
-+hi def link rSpecial SpecialChar
-+hi def link rStatement Statement
-+hi def link rString String
-+hi def link rStrError Error
-+hi def link rType Type
-
- let b:current_syntax="r"
-
- " vim: ts=8 sw=2
--
-diff -u -r --new-file runtime/syntax.orig/rhelp.vim runtime/syntax/rhelp.vim
---- runtime/syntax.orig/rhelp.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/rhelp.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,10 +1,10 @@
- " Vim syntax file
- " Language: R Help File
- " Maintainer: Johannes Ranke <jranke@uni-bremen.de>
--" Last Change: 2010 Apr 22
--" Version: 0.7.3
--" SVN: $Id: rhelp.vim 88 2010-04-22 19:37:09Z ranke $
--" Remarks: - Now includes R syntax highlighting in the appropriate
-+" Last Change: 2010 Nov 22
-+" Version: 0.7.4
-+" SVN: $Id: rhelp.vim 90 2010-11-22 10:58:11Z ranke $
-+" Remarks: - Includes R syntax highlighting in the appropriate
- " sections if an r.vim file is in the same directory or in the
- " default debian location.
- " - There is no Latex markup in equations
-@@ -28,19 +28,19 @@
- syn region rhelpIdentifier matchgroup=rhelpSection start="\\name{" end="}"
- syn region rhelpIdentifier matchgroup=rhelpSection start="\\alias{" end="}"
- syn region rhelpIdentifier matchgroup=rhelpSection start="\\pkg{" end="}"
--syn region rhelpIdentifier matchgroup=rhelpSection start="\\item{" end="}" contained contains=rhelpDots
--syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end=/}/ contained
-+syn region rhelpIdentifier matchgroup=rhelpSection start="\\method{" end="}" contained
-+syn region rhelpIdentifier matchgroup=rhelpSection start="\\Rdversion{" end="}"
-
- " Highlighting of R code using an existing r.vim syntax file if available {{{1
- syn include @R syntax/r.vim
- syn match rhelpDots "\\dots" containedin=@R
--syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpSection
--syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpIdentifier,rhelpS4method
--syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end=/}/ contains=@R
--syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end=/}/ contains=@R contained
--syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end=/}/ contains=@R,rhelpLink contained
--syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=/)/ contains=@R,rhelpDots contained
--syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end=/}/ contains=@R
-+syn region rhelpRcode matchgroup=Delimiter start="\\examples{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpSection
-+syn region rhelpRcode matchgroup=Delimiter start="\\usage{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpIdentifier,rhelpS4method
-+syn region rhelpRcode matchgroup=Delimiter start="\\synopsis{" matchgroup=Delimiter transparent end="}" contains=@R
-+syn region rhelpRcode matchgroup=Delimiter start="\\special{" matchgroup=Delimiter transparent end="}" contains=@R contained
-+syn region rhelpRcode matchgroup=Delimiter start="\\code{" matchgroup=Delimiter transparent end="}" contains=@R,rhelpLink contained
-+syn region rhelpS4method matchgroup=Delimiter start="\\S4method{.*}(" matchgroup=Delimiter transparent end=")" contains=@R,rhelpDots contained
-+syn region rhelpSexpr matchgroup=Delimiter start="\\Sexpr{" matchgroup=Delimiter transparent end="}" contains=@R
-
- " Strings {{{1
- syn region rhelpString start=/"/ end=/"/
-@@ -53,7 +53,7 @@
- syn match rhelpDelimiter "\\tab "
-
- " Keywords {{{1
--syn match rhelpKeyword "\\R"
-+syn match rhelpKeyword "\\R" contained
- syn match rhelpKeyword "\\ldots"
- syn match rhelpKeyword "--"
- syn match rhelpKeyword "---"
-@@ -129,10 +129,13 @@
- syn match rhelpType "\\file\>"
- syn match rhelpType "\\email\>"
- syn match rhelpType "\\url\>"
-+syn match rhelpType "\\href\>"
- syn match rhelpType "\\var\>"
- syn match rhelpType "\\env\>"
- syn match rhelpType "\\option\>"
- syn match rhelpType "\\command\>"
-+syn match rhelpType "\\newcommand\>"
-+syn match rhelpType "\\renewcommand\>"
- syn match rhelpType "\\dfn\>"
- syn match rhelpType "\\cite\>"
- syn match rhelpType "\\acronym\>"
-@@ -140,6 +143,7 @@
- " rhelp sections {{{1
- syn match rhelpSection "\\encoding\>"
- syn match rhelpSection "\\title\>"
-+syn match rhelpSection "\\item\>"
- syn match rhelpSection "\\description\>"
- syn match rhelpSection "\\concept\>"
- syn match rhelpSection "\\arguments\>"
-@@ -153,11 +157,11 @@
- syn match rhelpSection "\\docType\>"
- syn match rhelpSection "\\format\>"
- syn match rhelpSection "\\source\>"
--syn match rhelpSection "\\itemize\>"
--syn match rhelpSection "\\describe\>"
--syn match rhelpSection "\\enumerate\>"
--syn match rhelpSection "\\item "
--syn match rhelpSection "\\item$"
-+syn match rhelpSection "\\itemize\>"
-+syn match rhelpSection "\\describe\>"
-+syn match rhelpSection "\\enumerate\>"
-+syn match rhelpSection "\\item "
-+syn match rhelpSection "\\item$"
- syn match rhelpSection "\\tabular{[lcr]*}"
- syn match rhelpSection "\\dontrun\>"
- syn match rhelpSection "\\dontshow\>"
-@@ -165,11 +169,11 @@
- syn match rhelpSection "\\donttest\>"
-
- " Freely named Sections {{{1
--syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end=/}/
--syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end=/}/
-+syn region rhelpFreesec matchgroup=Delimiter start="\\section{" matchgroup=Delimiter transparent end="}"
-+syn region rhelpFreesubsec matchgroup=Delimiter start="\\subsection{" matchgroup=Delimiter transparent end="}"
-
- " R help file comments {{{1
--syn match rhelpComment /%.*$/ contained
-+syn match rhelpComment /%.*$/
-
- " Error {{{1
- syn region rhelpRegion matchgroup=Delimiter start=/(/ matchgroup=Delimiter end=/)/ transparent contains=ALLBUT,rhelpError,rhelpBraceError,rhelpCurlyError
-diff -u -r --new-file runtime/syntax.orig/tex.vim runtime/syntax/tex.vim
---- runtime/syntax.orig/tex.vim 2010-08-13 06:58:36.000000000 -0500
-+++ runtime/syntax/tex.vim 2011-01-08 08:36:35.000000000 -0600
-@@ -1,8 +1,8 @@
- " Vim syntax file
- " Language: TeX
- " Maintainer: Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
--" Last Change: Aug 12, 2010
--" Version: 57
-+" Last Change: Sep 17, 2010
-+" Version: 60
- " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
- "
- " Notes: {{{1
-@@ -67,11 +67,11 @@
- " g:tex_stylish to 1 (for "*.sty" mode)
- " or to 0 else (normal "*.tex" mode)
- " or on a buffer-by-buffer basis with b:tex_stylish
--let b:extfname=expand("%:e")
-+let s:extfname=expand("%:e")
- if exists("g:tex_stylish")
- let b:tex_stylish= g:tex_stylish
- elseif !exists("b:tex_stylish")
-- if b:extfname == "sty" || b:extfname == "cls" || b:extfname == "clo" || b:extfname == "dtx" || b:extfname == "ltx"
-+ if s:extfname == "sty" || s:extfname == "cls" || s:extfname == "clo" || s:extfname == "dtx" || s:extfname == "ltx"
- let b:tex_stylish= 1
- else
- let b:tex_stylish= 0
-@@ -92,12 +92,12 @@
- " (La)TeX keywords: only use the letters a-zA-Z {{{1
- " but _ is the only one that causes problems.
- if version < 600
-- set isk-=_
-+ set isk=a-z,A-Z
- if b:tex_stylish
- set isk+=@
- endif
- else
-- setlocal isk-=_
-+ setlocal isk=a-z,A-Z
- if b:tex_stylish
- setlocal isk+=@
- endif
-@@ -300,7 +300,7 @@
-
- " Bad Math (mismatched): {{{1
- if !exists("tex_no_math")
-- syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
-+ syn match texBadMath "\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|smallmatrix\|xxalignat\)\s*}"
- syn match texBadMath "\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
- syn match texBadMath "\\[\])]"
- endif
-@@ -345,7 +345,6 @@
- call TexNewMathZone("G","gather",1)
- call TexNewMathZone("H","math",1)
- call TexNewMathZone("I","multline",1)
-- call TexNewMathZone("J","subequations",0)
- call TexNewMathZone("K","xalignat",1)
- call TexNewMathZone("L","xxalignat",0)
-
-@@ -412,7 +411,7 @@
- syn case ignore
- syn keyword texTodo contained combak fixme todo xxx
- syn case match
--if b:extfname == "dtx"
-+if s:extfname == "dtx"
- syn match texComment "\^\^A.*$" contains=@texCommentGroup
- syn match texComment "^%\+" contains=@texCommentGroup
- else
-@@ -468,15 +467,16 @@
- endif
-
- " Tex Reference Zones: {{{1
--syn region texZone matchgroup=texStatement start="@samp{" end="}\|%stopzone\>" contains=@texRefGroup
--syn region texRefZone matchgroup=texStatement start="\\nocite{" end="}\|%stopzone\>" contains=@texRefGroup
--syn region texRefZone matchgroup=texStatement start="\\bibliography{" end="}\|%stopzone\>" contains=@texRefGroup
--syn region texRefZone matchgroup=texStatement start="\\label{" end="}\|%stopzone\>" contains=@texRefGroup
--syn region texRefZone matchgroup=texStatement start="\\\(page\|eq\)ref{" end="}\|%stopzone\>" contains=@texRefGroup
--syn region texRefZone matchgroup=texStatement start="\\v\=ref{" end="}\|%stopzone\>" contains=@texRefGroup
--syn match texRefZone '\\cite\%([tp]\*\=\)\=' nextgroup=texRefOption,texCite
--syn region texRefOption contained matchgroup=Delimiter start='\[' end=']' contains=@texRefGroup,texRefZone nextgroup=texRefOption,texCite
--syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texRefZone,texCite
-+syn match texRefZone '\\@samp\>' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\nocite\>' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\bibliography\>' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\label\>' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\\(page\|eq\)ref\>' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\v\=ref' skipwhite nextgroup=texRefLabel
-+syn match texRefZone '\\cite\%([tp]\*\=\)\=' skipwhite nextgroup=texCiteOption,texCite
-+syn region texRefLabel contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup
-+syn region texCiteOption contained matchgroup=Delimiter start='\[' end=']' contains=@Spell,@texRefGroup,@texMathZones,texRefZone nextgroup=texCiteOption,texCite
-+syn region texCite contained matchgroup=Delimiter start='{' end='}' contains=@texRefGroup,texCite
-
- " Handle newcommand, newenvironment : {{{1
- syn match texNewCmd "\\newcommand\>" nextgroup=texCmdName skipwhite skipnl
-@@ -753,7 +753,11 @@
- \ ['wedge' , '∧'],
- \ ['wr' , '≀']]
- for texmath in s:texMathList
-- exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
-+ if texmath[0] =~ '\w$'
-+ exe "syn match texMathSymbol '\\\\".texmath[0]."\\>' contained conceal cchar=".texmath[1]
-+ else
-+ exe "syn match texMathSymbol '\\\\".texmath[0]."' contained conceal cchar=".texmath[1]
-+ endif
- endfor
-
- if &ambw == "double"
-@@ -1027,7 +1031,6 @@
- HiLink texError Error
- endif
-
-- HiLink texCite texRefZone
- HiLink texDefCmd texDef
- HiLink texDefName texDef
- HiLink texDocType texCmdName
-@@ -1052,6 +1055,7 @@
- HiLink texMathZoneV texMath
- HiLink texMathZoneZ texMath
- endif
-+ HiLink texRefZone Identifier
- HiLink texSectionMarker texCmdName
- HiLink texSectionName texSection
- HiLink texSpaceCode texStatement
-@@ -1060,6 +1064,7 @@
- HiLink texTypeStyle texType
-
- " Basic TeX highlighting groups
-+ HiLink texCite Special
- HiLink texCmdArgs Number
- HiLink texCmdName Statement
- HiLink texComment Comment
-@@ -1075,7 +1080,7 @@
- HiLink texNewCmd Statement
- HiLink texNewEnv Statement
- HiLink texOption Number
-- HiLink texRefZone Special
-+ HiLink texRefLabel Special
- HiLink texSection PreCondit
- HiLink texSpaceCodeChar Special
- HiLink texSpecialChar SpecialChar
-@@ -1089,6 +1094,6 @@
- endif
-
- " Current Syntax: {{{1
--unlet b:extfname
-+unlet s:extfname
- let b:current_syntax = "tex"
- " vim: ts=8 fdm=marker
-diff -u -r --new-file runtime/syntax.orig/vim.vim runtime/syntax/vim.vim
---- runtime/syntax.orig/vim.vim 2010-08-04 15:21:21.000000000 -0500
-+++ runtime/syntax/vim.vim 2011-01-08 08:32:58.000000000 -0600
-@@ -1,8 +1,8 @@
- " Vim syntax file
- " Language: Vim 7.3 script
- " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
--" Last Change: August 04, 2010
--" Version: 7.3-04
-+" Last Change: August 20, 2010
-+" Version: 7.3-05
- " Automatically generated keyword lists: {{{1
-
- " Quit when a syntax file was already loaded {{{2
-@@ -16,12 +16,14 @@
- syn cluster vimCommentGroup contains=vimTodo,@Spell
-
- " regular vim commands {{{2
--syn keyword vimCommand contained abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exi[t] fina[lly] fix[del] foldd[oopen] go[to] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] rundo san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] uns[ilent] vert[ical] vi[sual] wa[ll] winp[os] wp[revious] ws[verb] xa[ll] xmenu xnoremenu
--syn keyword vimCommand contained abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lua lvimgrepa[dd] marks mks[ession] mod[e] nbc[lose] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] up[date] vie[w] vmapc[lear] wh[ile] win[size] wq wundo x[it] XMLent xunme
--syn keyword vimCommand contained al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fini[sh] foldc[lose] for grepa[dd] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] luado lw[indow] mat[ch] mksp[ell] m[ove] nb[key] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] verb[ose] vim[grep] vne[w] winc[md] wn[ext] wqa[ll] wv[iminfo] xmapc[lear] XMLns xunmenu
--syn keyword vimCommand contained arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lli[st] lne[xt] lo[adview] lop[en] ls luafile mak[e] menut[ranslate] mkvie[w] mzf[ile] nbs[tart] nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] ve[rsion] vimgrepa[dd] vs[plit] windo wN[ext] w[rite] X xme xnoreme y[ank]
--syn keyword vimCommand contained argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif]
--syn match vimCommand contained "\<z[-+^.=]"
-+syn keyword vimCommand contained a arga[dd] argu[ment] bd[elete] bN[ext] breakd[el] buf c cal[l] ce[nter] cg[etfile] cl cn cNf comc[lear] cope[n] cr[ewind] d d[elete] diffo diffsplit di[splay] ds[earch] ec e:e:e en endt[ry] exu[sage] filetype fix[del] for go[to] h hi if intro k la lan[guage] lch[dir] let@ lg[etfile] lla[st] lnew[er] lNf[ile] loc[kmarks] lr[ewind] lv[imgrep] ma[rk] messages mkv mv n new noautocmd on[ly] p:~ perld[o] popu[p] p[rint] promptr[epl] ptl[ast] ptr[ewind] py3file q[uit] r[ead] redraws[tatus] ret[ab] r:r:r ru[ntime] sba[ll] sbp[revious] scs sf[ind] sil[ent] sm[ap] sno[magic] so[urce] spellr[epall] st startr[eplace] sunme sw[apname] t tabf[ind] tabn[ext] ta[g] tf[irst] tn tp[revious] tu undoj[oin] up[date] vi vmapc[lear] win wN[ext] wundo xmapc[lear] xnoremenu
-+syn keyword vimCommand contained ab argd[elete] as[cii] bel[owright] bo[tright] breakl[ist] bufdo cabc[lear] cat[ch] cex[pr] c[hange] cla[st] cN cnf[ile] comment co[py] cs de delf diffoff difft dj[ump] dsp[lit] echoe[rr] e:e:r endf endw[hile] f fin fo[ld] fu gr[ep] ha[rdcopy] hid[e] ij[ump] is[earch] keepa lad la[st] lcl[ose] lex[pr] lgr[ep] lli[st] lne[xt] lo lockv[ar] ls lvimgrepa[dd] marks mk mkvie[w] Mycmd N n[ext] noh[lsearch] o[pen] P p:gs? pp[op] P[rint] ps[earch] ptn pts[elect] pyf[ile] quita[ll] rec[over] reg[isters] retu[rn] ru rv[iminfo] sbf[irst] sbr[ewind] scscope sfir[st] sim[alt] sme snoreme s?pat?sub? spellu[ndo] sta[g] stj[ump] sunmenu sy ta tabfir[st] tabN[ext] tags th[row] tN tr tu[nmenu] undol[ist] v vie[w] vne[w] winc[md] wp[revious] wv[iminfo] xme xterm
-+syn keyword vimCommand contained abc[lear] argdo au bf[irst] bp[revious] br[ewind] b[uffer] cad cb[uffer] cf[ile] changes cl[ist] cnew[er] cNf[ile] comp[iler] count cscope debug delf[unction] DiffOrig diffthis dl[ist] dwim echom[sg] el[se] endfo[r] ene[w] f[ile] fina[lly] foldc[lose] fun grepa[dd] h[elp] his[tory] il[ist] isp[lit] keepalt laddb[uffer] lat lcs lf[ile] lgrepa[dd] lmak[e] lN[ext] loadk lol[der] lt[ag] lw[indow] mat[ch] mkdir mkv[imrc] MyCommand nbc[lose] N[ext] nu[mber] opt[ions] pc[lose] p:h pr pro p:t ptN pu[t] py[thon] quote red Ren rew[ind] rub[y] sal[l] sbl[ast] sb[uffer] se[t] sh[ell] sl smenu snoremenu spe spellw[rong] star st[op] sus[pend] syn tab tabl[ast] tabo[nly] tc[l] tj[ump] tn[ext] t:r u unh[ide] ve vim[grep] vs[plit] windo wq x xmenu xunme
-+syn keyword vimCommand contained abo[veleft] arge[dit] bad[d] bl[ast] br bro[wse] buffers caddb[uffer] cc cfir[st] chd[ir] clo[se] cn[ext] col[der] con cpf[ile] cstag debugg[reedy] delm[arks] diffp diffu[pdate] do e echon elsei[f] endfun Error filename fin[d] folddoc[losed] fu[nction] gs?pat?sub? helpf[ind] i imapc[lear] iuna[bbrev] keepj[umps] lad[dexpr] later lcscope lfir[st] lh[elpgrep] lmapc[lear] lnf loadkeymap lop[en] lua ma menut mk[exrc] mo mz nb[key] nkf o ownsyntax pe p:h:h p:r profd[el] pta[g] ptn[ext] pw[d] python3 r redi[r] Rena ri[ght] rubyd[o] san[dbox] sbm[odified] scrip setf[iletype] si sla[st] sn[ext] s@\n@\=\r" spelld[ump] sp[lit] start stopi[nsert] s?version?main? sync tabc[lose] tabm[ove] tabp[revious] tcld[o] tl[ast] tN[ext] tr[ewind] un unl verb[ose] vimgrepa[dd] w winp[os] wqa[ll] X XMLent xunmenu
-+syn keyword vimCommand contained al[l] argg[lobal] ba[ll] bm[odified] brea[k] browseset bun[load] cad[dexpr] ccl[ose] cgetb[uffer] che[ckpath] cmapc[lear] cN[ext] colo[rscheme] conf[irm] cp[revious] cuna[bbrev] del di diffpatch dig doau ea e[dit] em[enu] endf[unction] ex files fini[sh] foldd[oopen] g gui helpg[rep] ia in j[oin] kee[pmarks] laddf[ile] lb[uffer] le[ft] lgetb[uffer] l[ist] lN lNf lo[adview] lpf[ile] luado mak[e] menut[ranslate] mks[ession] mod[e] mzf[ile] nbs[tart] nmapc[lear] ol[dfiles] p ped[it] po[p] pre[serve] prof[ile] ptf[irst] ptN[ext] py q re red[o] Renu rightb[elow] rubyf[ile] sa[rgument] sbn[ext] scripte[ncoding] setg[lobal] sig sl[eep] sN[ext] so spe[llgood] spr[evious] startg[replace] sts[elect] s?version?main?:p syncbind tabd[o] tabN tabr[ewind] tclf[ile] tm TOhtml try una[bbreviate] unlo[ckvar] ve[rsion] vi[sual] wa[ll] win[size] w[rite] xa[ll] XMLns xwininfo
-+syn keyword vimCommand contained Allargs argl[ocal] bar bn[ext] breaka[dd] bu bw[ipeout] caddf[ile] cd cgete[xpr] checkt[ime] cmdname cnf com con[tinue] cq[uit] cw[indow] delc[ommand] diffg[et] diffpu[t] dig[raphs] dr[op] earlier e:e emenu* en[dif] exi[t] filet fir[st] foldo[pen] get gvim helpt[ags] iabc[lear] index ju[mps] l lan lc[d] lefta[bove] lgete[xpr] ll lne lnf[ile] locale lp[revious] luafile Man mes mksp[ell] m[ove] mz[scheme] ne noa omapc[lear] p: pe[rl] popu prev[ious] promptf[ind] ptj[ump] ptp[revious] py3 qa[ll] r:e redr[aw] res[ize] r:r rundo sav[eas] sbN[ext] scrip[tnames] setl[ocal] sign sm[agic] sni[ff] sor[t] spelli[nfo] sre[wind] star[tinsert] sun[hide] sv[iew] synlist tabe[dit] tabnew tabs te[aroff] tm[enu] to[pleft] ts[elect] u[ndo] uns[ilent] vert[ical] viu[sage] wh[ile] wn[ext] ws[verb] x[it] xnoreme y[ank]
-+syn keyword vimCommand contained ar ar[gs]
-+syn match vimCommand contained "\<z[-+^.=]\="
-
- " vimOptions are caught only when contained in a vimSet {{{2
- syn keyword vimOption contained acd ambiwidth arabicshape autowriteall backupdir bdlay binary breakat bufhidden cd ci cinw co commentstring confirm cpoptions cscopetag csto cwh dg dip eadirection ek equalprg ex fdi fen fileencodings flp foldexpr foldnestmax fp gfm grepformat guifontwide helpheight highlight hlg im imi incsearch infercase isk keymap langmenu linespace loadplugins macatsui maxcombine mef mls modelines mousehide mp nu omnifunc paragraphs penc pm printdevice printoptions quoteescape restorescreen rnu rulerformat scr sect sft shellredir shm showmode sj smd spell splitbelow ssl stl sw sxq tabpagemax tags tbis terse thesaurus titleold toolbariconsize tsr ttyfast tx undofile ut verbosefile virtualedit wb wfw wildcharm winaltkeys winminwidth wmnu write
-@@ -318,7 +320,7 @@
- " ====
- syn match vimMap "\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
- syn keyword vimMap cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
--syn keyword vimMap mapc[lear]
-+syn keyword vimMap mapc[lear] smapc[lear]
- syn keyword vimUnmap cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
- syn match vimMapLhs contained "\S\+" contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
- syn match vimMapBang contained "!" skipwhite nextgroup=vimMapMod,vimMapLhs
-@@ -552,7 +554,7 @@
- if !filereadable(s:luapath)
- let s:luapath= globpath(&rtp,"syntax/lua.vim")
- endif
--if (g:vimsyn_embed =~ 'p' && has("lua")) && filereadable(s:luapath)
-+if (g:vimsyn_embed =~ 'l' && has("lua")) && filereadable(s:luapath)
- unlet! b:current_syntax
- exe "syn include @vimLuaScript ".s:luapath
- if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'l'
-diff -u -r --new-file runtime/syntax.orig/xf86conf.vim runtime/syntax/xf86conf.vim
---- runtime/syntax.orig/xf86conf.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/xf86conf.vim 2011-01-08 08:35:02.000000000 -0600
-@@ -1,8 +1,8 @@
- " Vim syntax file
- " This is a GENERATED FILE. Please always refer to source file at the URI below.
- " Language: XF86Config (XFree86 configuration file)
--" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
--" Last Change: 2005 Jul 12
-+" Former Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-+" Last Change: 2010 Nov 01
- " URL: http://trific.ath.cx/Ftp/vim/syntax/xf86conf.vim
- " Required Vim Version: 6.0
- "
-@@ -63,7 +63,7 @@
-
- " Sections and subsections
- if b:xf86conf_xfree86_version >= 4
-- syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
-+ syn region xf86confSection matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confComment,xf86confOption,xf86confKeyword,xf86confSectionError
- syn region xf86confSectionModule matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Module\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionAny,xf86confComment,xf86confOption,xf86confKeyword
- syn region xf86confSectionMonitor matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Monitor\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment,xf86confOption,xf86confKeyword
- syn region xf86confSectionModes matchgroup=xf86confSectionDelim start="^\s*Section\s\+\"Modes\"" end="^\s*EndSection\>" skip="#.*$\|\"[^\"]*\"" contains=xf86confSubsectionMode,xf86confModeLine,xf86confComment
-@@ -165,7 +165,7 @@
-
- " Synchronization
- if b:xf86conf_xfree86_version >= 4
-- syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\)\""
-+ syn sync match xf86confSyncSection grouphere xf86confSection "^\s*Section\s\+\"\(Files\|Server[_ ]*Flags\|Input[_ ]*Device\|Device\|Video[_ ]*Adaptor\|Server[_ ]*Layout\|DRI\|Extensions\|Vendor\|Keyboard\|Pointer\|InputClass\)\""
- syn sync match xf86confSyncSectionModule grouphere xf86confSectionModule "^\s*Section\s\+\"Module\""
- syn sync match xf86confSyncSectionModes groupthere xf86confSectionModes "^\s*Section\s\+\"Modes\""
- else
-diff -u -r --new-file runtime/syntax.orig/xquery.vim runtime/syntax/xquery.vim
---- runtime/syntax.orig/xquery.vim 2010-05-15 06:03:56.000000000 -0500
-+++ runtime/syntax/xquery.vim 2011-01-08 08:23:05.000000000 -0600
-@@ -1,10 +1,11 @@
- " Vim syntax file
- " Language: XQuery
--" Author: Jean-Marc Vanel <http://jmvanel.free.fr/>
--" Last Change: mar jui 12 18:04:05 CEST 2005
-+" Author: René Neumann <necoro@necoro.eu>
-+" Author: Steve Spigarelli <http://spig.net/>
-+" Original Author: Jean-Marc Vanel <http://jmvanel.free.fr/>
-+" Last Change: December 11, 2010
- " Filenames: *.xq
- " URL: http://jmvanel.free.fr/vim/xquery.vim
--" $Id: xquery.vim,v 1.1 2005/07/18 21:44:56 vimboss Exp $
-
- " REFERENCES:
- " [1] http://www.w3.org/TR/xquery/
-@@ -14,22 +15,26 @@
- finish
- endif
-
-+" - is allowed in keywords
-+setlocal iskeyword+=-
-+
- runtime syntax/xml.vim
-
- syn case match
-
- " From XQuery grammar:
--syn keyword xqueryStatement ancestor ancestor-or-self and as ascending at attribute base-uri by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes
-+syn keyword xqStatement ancestor ancestor-or-self and as ascending at attribute base-uri boundary-space by case cast castable child collation construction declare default descendant descendant-or-self descending div document element else empty encoding eq every except external following following-sibling for function ge greatest gt idiv if import in inherit-namespaces instance intersect is le least let lt mod module namespace ne no of or order ordered ordering parent preceding preceding-sibling preserve return satisfies schema self some stable strip then to treat typeswitch union unordered validate variable version where xmlspace xquery yes
-
- " TODO contains clashes with vim keyword
--syn keyword xqueryFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one
-+syn keyword xqFunction abs adjust-date-to-timezone adjust-date-to-timezone adjust-dateTime-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone adjust-time-to-timezone avg base-uri base-uri boolean ceiling codepoint-equal codepoints-to-string collection collection compare concat count current-date current-dateTime current-time data dateTime day-from-date day-from-dateTime days-from-duration deep-equal deep-equal default-collation distinct-values distinct-values doc doc-available document-uri empty ends-with ends-with error error error error escape-uri exactly-one exists false floor hours-from-dateTime hours-from-duration hours-from-time id id idref idref implicit-timezone in-scope-prefixes index-of index-of insert-before lang lang last local-name local-name local-name-from-QName lower-case matches matches max max min min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration name name namespace-uri namespace-uri namespace-uri-for-prefix namespace-uri-from-QName nilled node-name normalize-space normalize-space normalize-unicode normalize-unicode not number number one-or-more position prefix-from-QName QName remove replace replace resolve-QName resolve-uri resolve-uri reverse root root round round-half-to-even round-half-to-even seconds-from-dateTime seconds-from-duration seconds-from-time starts-with starts-with static-base-uri string string string-join string-length string-length string-to-codepoints subsequence subsequence substring substring substring-after substring-after substring-before substring-before sum sum timezone-from-date timezone-from-dateTime timezone-from-time tokenize tokenize trace translate true unordered upper-case year-from-date year-from-dateTime years-from-duration zero-or-one
-+
-+syn keyword xqOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than
-
--syn keyword xqueryOperator add-dayTimeDuration-to-date add-dayTimeDuration-to-dateTime add-dayTimeDuration-to-time add-dayTimeDurations add-yearMonthDuration-to-date add-yearMonthDuration-to-dateTime add-yearMonthDurations base64Binary-equal boolean-equal boolean-greater-than boolean-less-than concatenate date-equal date-greater-than date-less-than dateTime-equal dateTime-greater-than dateTime-less-than dayTimeDuration-equal dayTimeDuration-greater-than dayTimeDuration-less-than divide-dayTimeDuration divide-dayTimeDuration-by-dayTimeDuration divide-yearMonthDuration divide-yearMonthDuration-by-yearMonthDuration except gDay-equal gMonth-equal gMonthDay-equal gYear-equal gYearMonth-equal hexBinary-equal intersect is-same-node multiply-dayTimeDuration multiply-yearMonthDuration node-after node-before NOTATION-equal numeric-add numeric-divide numeric-equal numeric-greater-than numeric-integer-divide numeric-less-than numeric-mod numeric-multiply numeric-subtract numeric-unary-minus numeric-unary-plus QName-equal subtract-dates-yielding-dayTimeDuration subtract-dateTimes-yielding-dayTimeDuration subtract-dayTimeDuration-from-date subtract-dayTimeDuration-from-dateTime subtract-dayTimeDuration-from-time subtract-dayTimeDurations subtract-times subtract-yearMonthDuration-from-date subtract-yearMonthDuration-from-dateTime subtract-yearMonthDurations time-equal time-greater-than time-less-than to union yearMonthDuration-equal yearMonthDuration-greater-than yearMonthDuration-less-than
-+syn match xqType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"
-
--syn match xqueryType "xs:\(\|Datatype\|primitive\|string\|boolean\|float\|double\|decimal\|duration\|dateTime\|time\|date\|gYearMonth\|gYear\|gMonthDay\|gDay\|gMonth\|hexBinary\|base64Binary\|anyURI\|QName\|NOTATION\|\|normalizedString\|token\|language\|IDREFS\|ENTITIES\|NMTOKEN\|NMTOKENS\|Name\|NCName\|ID\|IDREF\|ENTITY\|integer\|nonPositiveInteger\|negativeInteger\|long\|int\|short\|byte\|nonNegativeInteger\|unsignedLong\|unsignedInt\|unsignedShort\|unsignedByte\|positiveInteger\)"
-
- " From XPath grammar:
--syn keyword xqueryXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element
-+syn keyword xqXPath some every in in satisfies if then else to div idiv mod union intersect except instance of treat castable cast eq ne lt le gt ge is child descendant attribute self descendant-or-self following-sibling following namespace parent ancestor preceding-sibling preceding ancestor-or-self void item node document-node text comment processing-instruction attribute schema-attribute schema-element
-
- " eXist extensions
- syn match xqExist "&="
-@@ -37,44 +42,41 @@
- " XQdoc
- syn match XQdoc contained "@\(param\|return\|author\)\>"
-
--highlight def link xqueryStatement Statement
--highlight def link xqueryFunction Function
--highlight def link xqueryOperator Operator
--highlight def link xqueryType Type
--highlight def link xqueryXPath Operator
--highlight def link XQdoc Special
--highlight def link xqExist Operator
--
--
--"floating point number, with dot, optional exponent
--syn match cFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
--"floating point number, starting with a dot, optional exponent
--syn match cFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
--"floating point number, without dot, with exponent
--syn match cFloat "\d\+e[-+]\=\d\+[fl]\=\>"
--syn match cNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
--syn match cNumber "\<\d\+\>"
--highlight def link cNumber Number
--highlight def link cFloat Number
--
--syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
--highlight def link xqComment Comment
--" syntax match xqVariable "$\w\+"
--syntax match xqVariable +$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>+
--highlight def link xqVariable Identifier
--
--" Redefine the default XML highlighting:
--highlight def link xmlTag Structure
--highlight def link xmlTagName Structure
--highlight def link xmlEndTag Structure
--
--syntax match xqSeparator ",\|;"
--highlight link xqSeparator Operator
--
--syn region xqCode transparent contained start='{' excludenl end='}' contains=xmlRegionBis,xqComment,xqueryStatement,xmlString,xqSeparator,cNumber,xqVariable keepend extend
-+" floating point number, with dot, optional exponent
-+syn match xqFloat "\d\+\.\d*\(e[-+]\=\d\+\)\=[fl]\="
-+" floating point number, starting with a dot, optional exponent
-+syn match xqFloat "\.\d\+\(e[-+]\=\d\+\)\=[fl]\=\>"
-+" floating point number, without dot, with exponent
-+syn match xqFloat "\d\+e[-+]\=\d\+[fl]\=\>"
-+syn match xqNumber "0x\x\+\(u\=l\{0,2}\|ll\=u\)\>"
-+syn match xqNumber "\<\d\+\>"
-+
-+syn region xqString start=+"+ end=+"+
-+syn region xqComment start='(:' excludenl end=':)' contains=XQdoc
-+
-+syn match xqVariable "$\<[a-zA-Z:_][-.0-9a-zA-Z0-9:_]*\>"
-+syn match xqSeparator ",\|;"
-+syn region xqCode transparent contained start='{' excludenl end='}' contains=xqFunction,xqCode,xmlRegionBis,xqComment,xqStatement,xmlString,xqSeparator,xqNumber,xqVariable,xqString keepend extend
-
- syn region xmlRegionBis start=+<\z([^ /!?<>"']\+\)+ skip=+<!--\_.\{-}-->+ end=+</\z1\_\s\{-}>+ end=+/>+ fold contains=xmlTag,xmlEndTag,xmlCdata,xmlRegionBis,xmlComment,xmlEntity,xmlProcessing,xqCode keepend extend
-
--syn region List transparent start='(' excludenl end=')' contains=xqCode,xmlRegion,xqComment,xqSeparator,xqueryStatement,xqVariable,xqueryType keepend extend
--
-+hi def link xqNumber Number
-+hi def link xqFloat Number
-+hi def link xqString String
-+hi def link xqVariable Identifier
-+hi def link xqComment Comment
-+hi def link xqSeparator Operator
-+hi def link xqStatement Statement
-+hi def link xqFunction Function
-+hi def link xqOperator Operator
-+hi def link xqType Type
-+hi def link xqXPath Operator
-+hi def link XQdoc Special
-+hi def link xqExist Operator
-+
-+" override the xml highlighting
-+"hi link xmlTag Structure
-+"hi link xmlTagName Structure
-+"hi link xmlEndTag Structure
-
-+let b:current_syntax = "xquery"
-diff -u -r --new-file runtime/syntax.orig/yacc.vim runtime/syntax/yacc.vim
---- runtime/syntax.orig/yacc.vim 2010-08-02 10:40:18.000000000 -0500
-+++ runtime/syntax/yacc.vim 2011-01-08 08:23:05.000000000 -0600
-@@ -1,12 +1,22 @@
- " Vim syntax file
- " Language: Yacc
- " Maintainer: Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
--" Last Change: Aug 2, 2010
--" Version: 8
-+" Last Change: Aug 12, 2010
-+" Version: 9
- " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
- "
- " Options: {{{1
- " g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
-+"
-+" Overall layout of a bison/yacc grammer:
-+" %{
-+" Prolog
-+" %}
-+" Bison/Yacc Declarations
-+" %%
-+" Grammar Rules
-+" %%
-+" Epilogue
-
- " ---------------------------------------------------------------------
- " this version of syntax/yacc.vim requires 6.0 or later
-@@ -35,7 +45,7 @@
-
- " ---------------------------------------------------------------------
- " Yacc Clusters: {{{1
--syn cluster yaccInitCluster contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam
-+syn cluster yaccInitCluster contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment,yaccDefines,yaccParseParam,yaccParseOption
- syn cluster yaccRulesCluster contains=yaccNonterminal,yaccString
-
- " ---------------------------------------------------------------------
-@@ -50,7 +60,8 @@
- " ---------------------------------------------------------------------
- " Yacc Commands: {{{1
- syn match yaccDefines '^%define\s\+.*$'
--syn match yaccParseParam '%parse-param\>' skipwhite nextgroup=yaccParseParamStr
-+syn match yaccParseParam '%\(parse\|lex\)-param\>' skipwhite nextgroup=yaccParseParamStr
-+syn match yaccParseOption '%\%(api\.pure\|pure-parser\|locations\|error-verbose\)\>'
- syn region yaccParseParamStr contained matchgroup=Delimiter start='{' end='}' contains=cStructure
-
- syn match yaccDelim "[:|]" contained
-@@ -96,7 +107,8 @@
- HiLink yaccCurly Delimiter
- HiLink yaccCurlyError Error
- HiLink yaccDefines cDefine
-- HiLink yaccParseParam cDefine
-+ HiLink yaccParseParam yaccParseOption
-+ HiLink yaccParseOption cDefine
- HiLink yaccNonterminal Function
- HiLink yaccDelim Delimiter
- HiLink yaccKeyActn Special
-diff -u -r --new-file runtime/syntax.orig/yaml.vim runtime/syntax/yaml.vim
---- runtime/syntax.orig/yaml.vim 2010-08-13 07:54:35.000000000 -0500
-+++ runtime/syntax/yaml.vim 2011-01-08 08:40:13.000000000 -0600
-@@ -1,86 +1,186 @@
- " Vim syntax file
--" Language: YAML (YAML Ain't Markup Language)
--" Maintainer: Nikolai Weibull <now@bitwi.se>
--" Latest Revision: 2010-08-12
-+" Language: YAML (YAML Ain't Markup Language) 1.2
-+" Maintainer: Nikolai Pavlov <zyx.vim@gmail.com>
-+" First author: Nikolai Weibull <now@bitwi.se>
-+" Latest Revision: 2010-10-08
-
--if exists("b:current_syntax")
-- finish
-+if exists('b:current_syntax')
-+ finish
- endif
-
- let s:cpo_save = &cpo
- set cpo&vim
-
--syn keyword yamlTodo contained TODO FIXME XXX NOTE
-+let s:ns_char = '\%(\%([\n\r\uFEFF \t]\)\@!\p\)'
-+let s:ns_word_char = '\%(\w\|-\)'
-+let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$,.!~*''()\[\]]\)'
-+let s:ns_tag_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@&=+$.~*''()]\)'
-+let s:c_ns_anchor_char = '\%(\%([\n\r\uFEFF \t,\[\]{}]\)\@!\p\)'
-+let s:c_indicator = '[\-?:,\[\]{}#&*!|>''"%@`]'
-+let s:c_flow_indicator = '[,\[\]{}]'
-+
-+let s:c_verbatim_tag = '!<'.s:ns_uri_char.'\+>'
-+let s:c_named_tag_handle = '!'.s:ns_word_char.'\+!'
-+let s:c_secondary_tag_handle = '!!'
-+let s:c_primary_tag_handle = '!'
-+let s:c_tag_handle = '\%('.s:c_named_tag_handle.
-+ \ '\|'.s:c_secondary_tag_handle.
-+ \ '\|'.s:c_primary_tag_handle.'\)'
-+let s:c_ns_shorthand_tag = s:c_tag_handle . s:ns_tag_char.'\+'
-+let s:c_non_specific_tag = '!'
-+let s:c_ns_tag_property = s:c_verbatim_tag.
-+ \ '\|'.s:c_ns_shorthand_tag.
-+ \ '\|'.s:c_non_specific_tag
-+
-+let s:c_ns_anchor_name = s:c_ns_anchor_char.'\+'
-+let s:c_ns_anchor_property = '&'.s:c_ns_anchor_name
-+let s:c_ns_alias_node = '\*'.s:c_ns_anchor_name
-+
-+let s:ns_directive_name = s:ns_char.'\+'
-+
-+let s:ns_local_tag_prefix = '!'.s:ns_uri_char.'*'
-+let s:ns_global_tag_prefix = s:ns_tag_char.s:ns_uri_char.'*'
-+let s:ns_tag_prefix = s:ns_local_tag_prefix.
-+ \ '\|'.s:ns_global_tag_prefix
-+
-+let s:ns_plain_safe_out = s:ns_char
-+let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)'
-+
-+let s:ns_plain_first_in = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)'
-+let s:ns_plain_first_out = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)'
-+
-+let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|[:#]\@!'.s:ns_plain_safe_in.'\)'
-+let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|[:#]\@!'.s:ns_plain_safe_out.'\)'
-
--syn region yamlComment display oneline start='\%(^\|\s\)#' end='$'
-- \ contains=yamlTodo,@Spell
-+let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*'
-+let s:ns_plain_in = s:ns_plain_first_in . s:ns_plain_char_in.'*'
-
--syn match yamlNodeProperty '!\%(![^\\^% ]\+\|[^!][^:/ ]*\)'
-
--syn match yamlAnchor '&.\+'
-+syn keyword yamlTodo contained TODO FIXME XXX NOTE
-
--syn match yamlAlias '\*.\+'
-+syn region yamlComment display oneline start='\%\(^\|\s\)#' end='$'
-+ \ contains=yamlTodo
-
--syn match yamlDelimiter '[-,:]'
--syn match yamlBlock '[\[\]{}>|]'
--syn match yamlOperator '[?+-]'
--syn match yamlKey '\w\+\(\s\+\w\+\)*\ze\s*:'
--
--syn region yamlString matchgroup=yamlStringDelimiter
-- \ start=+"+ skip=+\\"+ end=+"+
-- \ contains=yamlEscape
--syn region yamlString matchgroup=yamlStringDelimiter
-- \ start=+'+ skip=+''+ end=+'+
-- \ contains=yamlSingleEscape
--syn match yamlEscape contained display +\\[\\"abefnrtv^0_ NLP]+
--syn match yamlEscape contained display '\\x\x\{2}'
--syn match yamlEscape contained display '\\u\x\{4}'
--syn match yamlEscape contained display '\\U\x\{8}'
--" TODO: how do we get 0x85, 0x2028, and 0x2029 into this?
--syn match yamlEscape display '\\\%(\r\n\|[\r\n]\)'
--syn match yamlSingleEscape contained +''+
--
--" TODO: sexagecimal and fixed (20:30.15 and 1,230.15)
--syn match yamlNumber display
-- \ '\<[+-]\=\d\+\%(\.\d\+\%([eE][+-]\=\d\+\)\=\)\='
--syn match yamlNumber display '0\o\+'
--syn match yamlNumber display '0x\x\+'
--syn match yamlNumber display '([+-]\=[iI]nf)'
--syn match yamlNumber display '(NaN)'
--
--syn match yamlConstant '\<[~yn]\>'
--syn keyword yamlConstant true True TRUE false False FALSE
--syn keyword yamlConstant yes Yes on ON no No off OFF
--syn keyword yamlConstant null Null NULL nil Nil NIL
--
--syn match yamlTimestamp '\d\d\d\d-\%(1[0-2]\|\d\)-\%(3[0-2]\|2\d\|1\d\|\d\)\%( \%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d [+-]\%([01]\d\|2[0-3]\):[0-5]\d\|t\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\d\d[+-]\%([01]\d\|2[0-3]\):[0-5]\d\|T\%([01]\d\|2[0-3]\):[0-5]\d:[0-5]\d.\dZ\)\='
--
--syn region yamlDocumentHeader start='---' end='$' contains=yamlDirective
--syn match yamlDocumentEnd '\.\.\.'
--
--syn match yamlDirective contained '%[^:]\+:.\+'
--
--hi def link yamlTodo Todo
--hi def link yamlComment Comment
--hi def link yamlDocumentHeader PreProc
--hi def link yamlDocumentEnd PreProc
--hi def link yamlDirective Keyword
--hi def link yamlNodeProperty Type
--hi def link yamlAnchor Type
--hi def link yamlAlias Type
--hi def link yamlDelimiter Delimiter
--hi def link yamlBlock Operator
--hi def link yamlOperator Operator
--hi def link yamlKey Identifier
--hi def link yamlString String
--hi def link yamlStringDelimiter yamlString
--hi def link yamlEscape SpecialChar
--hi def link yamlSingleEscape SpecialChar
--hi def link yamlNumber Number
--hi def link yamlConstant Constant
--hi def link yamlTimestamp Number
-+execute 'syn region yamlDirective oneline start='.string('^\ze%'.s:ns_directive_name.'\s\+').' '.
-+ \ 'end="$" '.
-+ \ 'contains=yamlTAGDirective,'.
-+ \ 'yamlYAMLDirective,'.
-+ \ 'yamlReservedDirective '.
-+ \ 'keepend'
-+
-+syn match yamlTAGDirective '%TAG\s\+' contained nextgroup=yamlTagHandle
-+execute 'syn match yamlTagHandle contained nextgroup=yamlTagPrefix '.string(s:c_tag_handle.'\s\+')
-+execute 'syn match yamlTagPrefix contained nextgroup=yamlComment ' . string(s:ns_tag_prefix)
-+
-+syn match yamlYAMLDirective '%YAML\s\+' contained nextgroup=yamlYAMLVersion
-+syn match yamlYAMLVersion '\d\+\.\d\+' contained nextgroup=yamlComment
-+
-+execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '.
-+ \string('%\%(\%(TAG\|YAML\)\s\)\@!'.s:ns_directive_name)
-+
-+syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start='"' skip='\\"' end='"'
-+ \ contains=yamlEscape
-+ \ nextgroup=yamlKeyValueDelimiter
-+syn region yamlFlowString matchgroup=yamlFlowStringDelimiter start="'" skip="''" end="'"
-+ \ contains=yamlSingleEscape
-+ \ nextgroup=yamlKeyValueDelimiter
-+syn match yamlEscape contained '\\\%([\\"abefnrtv\^0_ NLP\n]\|x\x\x\|u\x\{4}\|U\x\{8}\)'
-+syn match yamlSingleEscape contained "''"
-+
-+syn match yamlBlockScalarHeader contained '\s\+\zs[|>]\%([+-]\=[1-9]\|[1-9]\=[+-]\)\='
-+
-+syn cluster yamlFlow contains=yamlFlowString,yamlFlowMapping,yamlFlowCollection
-+syn cluster yamlFlow add=yamlFlowMappingKey,yamlFlowMappingMerge
-+syn cluster yamlFlow add=yamlConstant,yamlPlainScalar,yamlFloat
-+syn cluster yamlFlow add=yamlTimestamp,yamlInteger,yamlMappingKeyStart
-+syn cluster yamlFlow add=yamlComment
-+syn region yamlFlowMapping matchgroup=yamlFlowIndicator start='{' end='}' contains=@yamlFlow
-+syn region yamlFlowCollection matchgroup=yamlFlowIndicator start='\[' end='\]' contains=@yamlFlow
-+
-+execute 'syn match yamlPlainScalar /'.s:ns_plain_out.'/'
-+execute 'syn match yamlPlainScalar contained /'.s:ns_plain_in.'/'
-+
-+syn match yamlMappingKeyStart '?\ze\s'
-+syn match yamlMappingKeyStart '?' contained
-+
-+execute 'syn match yamlFlowMappingKey /'.s:ns_plain_in.'\ze\s*:/ contained '.
-+ \'nextgroup=yamlKeyValueDelimiter'
-+syn match yamlFlowMappingMerge /<<\ze\s*:/ contained nextgroup=yamlKeyValueDelimiter
-+
-+syn match yamlBlockCollectionItemStart '^\s*\zs-\%(\s\+-\)*\s' nextgroup=yamlBlockMappingKey,yamlBlockMappingMerge
-+execute 'syn match yamlBlockMappingKey /^\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ '.
-+ \'nextgroup=yamlKeyValueDelimiter'
-+execute 'syn match yamlBlockMappingKey /\s*\zs'.s:ns_plain_out.'\ze\s*:\%(\s\|$\)/ contained '.
-+ \'nextgroup=yamlKeyValueDelimiter'
-+syn match yamlBlockMappingMerge /^\s*\zs<<\ze:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter
-+syn match yamlBlockMappingMerge /<<\ze\s*:\%(\s\|$\)/ nextgroup=yamlKeyValueDelimiter contained
-+
-+syn match yamlKeyValueDelimiter /\s*:/ contained
-+syn match yamlKeyValueDelimiter /\s*:/ contained
-+
-+syn keyword yamlConstant true True TRUE false False FALSE
-+syn keyword yamlConstant null Null NULL
-+syn match yamlConstant '\<\~\>'
-+
-+syn match yamlTimestamp /\%([\[\]{}, \t]\@!\p\)\@<!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%(\d*\)\)\=\%(\s*\%(Z\|[+-]\d\d\=\%(:\d\d\)\=\)\)\=\)\=\)\%([\[\]{}, \t]\@!\p\)\@!/
-+
-+syn match yamlInteger /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0-5]\=\d\)\+\)\)\|[1-9][0-9_]*\)\%([\[\]{}, \t]\@!\p\)\@!/
-+syn match yamlFloat /\%([\[\]{}, \t]\@!\p\)\@<!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\d\+\)\=\|\.[0-9_]\+\%([eE][-+][0-9]\+\)\=\|\d[0-9_]*\%(:[0-5]\=\d\)\+\.[0-9_]*\|\.\%(inf\|Inf\|INF\)\)\|\%(\.\%(nan\|NaN\|NAN\)\)\)\%([\[\]{}, \t]\@!\p\)\@!/
-+
-+execute 'syn match yamlNodeTag '.string(s:c_ns_tag_property)
-+execute 'syn match yamlAnchor '.string(s:c_ns_anchor_property)
-+execute 'syn match yamlAlias '.string(s:c_ns_alias_node)
-+
-+syn match yamlDocumentStart '^---\ze\%(\s\|$\)'
-+syn match yamlDocumentEnd '^\.\.\.\ze\%(\s\|$\)'
-+
-+hi def link yamlTodo Todo
-+hi def link yamlComment Comment
-+
-+hi def link yamlDocumentStart PreProc
-+hi def link yamlDocumentEnd PreProc
-+
-+hi def link yamlDirectiveName Keyword
-+
-+hi def link yamlTAGDirective yamlDirectiveName
-+hi def link yamlTagHandle String
-+hi def link yamlTagPrefix String
-+
-+hi def link yamlYAMLDirective yamlDirectiveName
-+hi def link yamlReservedDirective Error
-+hi def link yamlYAMLVersion Number
-+
-+hi def link yamlString String
-+hi def link yamlFlowString yamlString
-+hi def link yamlFlowStringDelimiter yamlString
-+hi def link yamlEscape SpecialChar
-+hi def link yamlSingleEscape SpecialChar
-+
-+hi def link yamlBlockCollectionItemStart Label
-+hi def link yamlBlockMappingKey Identifier
-+hi def link yamlBlockMappingMerge Special
-+
-+hi def link yamlFlowMappingKey Identifier
-+hi def link yamlFlowMappingMerge Special
-+
-+hi def link yamlMappingKeyStart Special
-+hi def link yamlFlowIndicator Special
-+hi def link yamlKeyValueDelimiter Special
-+
-+hi def link yamlConstant Constant
-+
-+hi def link yamlAnchor Type
-+hi def link yamlAlias Type
-+hi def link yamlNodeTag Type
-+
-+hi def link yamlInteger Number
-+hi def link yamlFloat Float
-+hi def link yamlTimestamp Number
-
- let b:current_syntax = "yaml"
-
-+unlet s:ns_word_char s:ns_uri_char s:c_verbatim_tag s:c_named_tag_handle s:c_secondary_tag_handle s:c_primary_tag_handle s:c_tag_handle s:ns_tag_char s:c_ns_shorthand_tag s:c_non_specific_tag s:c_ns_tag_property s:c_ns_anchor_char s:c_ns_anchor_name s:c_ns_anchor_property s:c_ns_alias_node s:ns_char s:ns_directive_name s:ns_local_tag_prefix s:ns_global_tag_prefix s:ns_tag_prefix s:c_indicator s:ns_plain_safe_out s:c_flow_indicator s:ns_plain_safe_in s:ns_plain_first_in s:ns_plain_first_out s:ns_plain_char_in s:ns_plain_char_out s:ns_plain_out s:ns_plain_in
-+
- let &cpo = s:cpo_save
- unlet s:cpo_save
-+
diff --git a/source/ap/vim/vim-runtime-syntax-20131002.diff b/source/ap/vim/vim-runtime-syntax-20131002.diff
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/source/ap/vim/vim-runtime-syntax-20131002.diff
diff --git a/source/ap/vim/vim.SlackBuild b/source/ap/vim/vim.SlackBuild
index bf2e54225..bdfd0a38c 100755
--- a/source/ap/vim/vim.SlackBuild
+++ b/source/ap/vim/vim.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -20,10 +20,10 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-VIMVER=7.3
+VIMVER=7.4
CTAGSVER=5.8
# This is the directory in the VIM source archive to cd into.
-DIRVER=73
+DIRVER=74
BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
@@ -59,10 +59,13 @@ mkdir -p $TMP $PKG
# Determine VIM patchlevel:
if [ -d $CWD/patches ] ; then
cd $CWD/patches
- PATCHLEVEL=$(/bin/ls 2> /dev/null | tail -1 | cut -f 3 -d . )
+ PATCHLEVEL=$(/bin/ls ?.?.????.gz 2> /dev/null | tail -1 | cut -f 3 -d . )
+ if [ "$PATCHLEVEL" = "" ]; then
+ PATCHLEVEL=$(/bin/ls ?.?.???.gz 2> /dev/null | tail -1 | cut -f 3 -d . )
if [ "$PATCHLEVEL" = "" ]; then
PATCHLEVEL=000
fi
+ fi
cd $CWD
fi
@@ -139,8 +142,10 @@ 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 {} \;
-for file in $CWD/patches/* ; do
- ( zcat $file 2> /dev/null | patch -p0 --verbose --batch )
+for file in $CWD/patches/?.?.???.gz $CWD/patches/?.?.????.gz ; do
+ if [ -f $file ]; then
+ zcat $file | patch -p0 --verbose || exit 1
+ fi
done
config_vim --without-x --disable-gui
diff --git a/source/ap/xfsdump/xfsdump.SlackBuild b/source/ap/xfsdump/xfsdump.SlackBuild
index f293b6a38..a5cd0d85a 100755
--- a/source/ap/xfsdump/xfsdump.SlackBuild
+++ b/source/ap/xfsdump/xfsdump.SlackBuild
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2008, 2009, 2010 Patrick J. Volkerding, Sebeka, MN, USA
+# Copyright 2008, 2009, 2010, 2013 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -48,8 +48,6 @@ rm -rf xfsdump-$(echo $VERSION | cut -f 1 -d '-')
tar xvf $CWD/xfsdump-$VERSION.tar.?z* || exit 1
cd xfsdump-$(echo $VERSION | cut -f 1 -d '-') || exit 1
-zcat $CWD/xfsdump.destdir.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 \) \
diff --git a/source/ap/xfsdump/xfsdump.destdir.diff b/source/ap/xfsdump/xfsdump.destdir.diff
deleted file mode 100644
index a42bb3a20..000000000
--- a/source/ap/xfsdump/xfsdump.destdir.diff
+++ /dev/null
@@ -1,34 +0,0 @@
---- ./include/builddefs.in.orig 2010-01-12 19:53:18.000000000 -0600
-+++ ./include/builddefs.in 2010-02-09 15:17:24.000000000 -0600
-@@ -32,13 +32,13 @@
- datarootdir = @datarootdir@
- top_builddir = @top_builddir@
-
--PKG_SBIN_DIR = @sbindir@
--PKG_ROOT_SBIN_DIR = @root_sbindir@
--PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@
--PKG_INC_DIR = @includedir@
--PKG_MAN_DIR = @mandir@
--PKG_DOC_DIR = @datadir@/doc/@pkg_name@
--PKG_LOCALE_DIR = @datadir@/locale
-+PKG_SBIN_DIR = $(DESTDIR)@sbindir@
-+PKG_ROOT_SBIN_DIR = $(DESTDIR)@root_sbindir@
-+PKG_ROOT_LIB_DIR= $(DESTDIR)@root_libdir@@libdirsuffix@
-+PKG_INC_DIR = $(DESTDIR)@includedir@
-+PKG_MAN_DIR = $(DESTDIR)@mandir@
-+PKG_DOC_DIR = $(DESTDIR)@datadir@/doc/@pkg_name@
-+PKG_LOCALE_DIR = $(DESTDIR)@datadir@/locale
-
- CC = @cc@
- AWK = @awk@
---- ./include/buildmacros.orig 2010-01-12 19:53:18.000000000 -0600
-+++ ./include/buildmacros 2010-02-09 15:15:47.000000000 -0600
-@@ -30,7 +30,7 @@
- $(LFILES:.l=.o) \
- $(YFILES:%.y=%.tab.o)
-
--INSTALL = $(TOPDIR)/install-sh -o $(PKG_USER) -g $(PKG_GROUP)
-+INSTALL = $(TOPDIR)/install-sh
-
- SHELL = /bin/sh
- IMAGES_DIR = $(TOPDIR)/all-images