- Timestamp:
- Oct 21, 2006, 9:10:09 PM (18 years ago)
- Branches:
- clfs-1.2, clfs-2.1, clfs-3.0.0-systemd, clfs-3.0.0-sysvinit, master, systemd, sysvinit
- Children:
- 18e9f9f
- Parents:
- 054bf2ad
- Location:
- patches
- Files:
-
- 4 deleted
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
patches/coreutils-6.3-suppress_uptime_kill_su-1.patch
r054bf2ad r862e2c0 10 10 coreutils-5.0-dupes-2.patch 11 11 12 diff -Naur coreutils- 5.94.orig/AUTHORS coreutils-5.94/AUTHORS13 --- coreutils- 5.94.orig/AUTHORS 2004-11-03 23:10:50.000000000 +000014 +++ coreutils- 5.94/AUTHORS 2006-03-15 22:20:49.000000000 +000015 @@ -3 4,7 +34,6 @@12 diff -Naur coreutils-6.3.orig/AUTHORS coreutils-6.3/AUTHORS 13 --- coreutils-6.3.orig/AUTHORS 2006-08-09 00:42:31.000000000 -0700 14 +++ coreutils-6.3/AUTHORS 2006-09-30 11:53:24.000000000 -0700 15 @@ -35,7 +35,6 @@ 16 16 hostname: Jim Meyering 17 17 id: Arnold Robbins, David MacKenzie … … 21 21 ln: Mike Parker, David MacKenzie 22 22 logname: FIXME: unknown 23 @@ -8 3,7 +82,6 @@23 @@ -89,7 +88,6 @@ 24 24 unexpand: David MacKenzie 25 25 uniq: Richard Stallman, David MacKenzie … … 29 29 vdir: Richard Stallman, David MacKenzie 30 30 wc: Paul Rubin, David MacKenzie 31 diff -Naur coreutils-5.94.orig/Makefile.in coreutils-5.94/Makefile.in 32 --- coreutils-5.94.orig/Makefile.in 2006-02-13 12:52:03.000000000 +0000 33 +++ coreutils-5.94/Makefile.in 2006-03-15 22:20:49.000000000 +0000 34 @@ -148,7 +148,7 @@ 35 $(top_srcdir)/m4/ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \ 36 $(top_srcdir)/m4/unicodeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \ 37 $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \ 38 - $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \ 39 + $(top_srcdir)/m4/unlocked-io.m4 \ 40 $(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \ 41 $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \ 42 $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ 43 diff -Naur coreutils-5.94.orig/README coreutils-5.94/README 44 --- coreutils-5.94.orig/README 2005-09-28 18:34:26.000000000 +0000 45 +++ coreutils-5.94/README 2006-03-15 22:20:49.000000000 +0000 46 @@ -9,11 +9,11 @@ 47 48 [ basename cat chgrp chmod chown chroot cksum comm cp csplit cut date dd 49 df dir dircolors dirname du echo env expand expr factor false fmt fold 50 - ginstall groups head hostid hostname id join kill link ln logname ls 51 + ginstall groups head hostid hostname id join link ln logname ls 52 md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr 53 printenv printf ptx pwd readlink rm rmdir seq sha1sum shred sleep sort 54 split stat stty su sum sync tac tail tee test touch tr true tsort tty 55 - uname unexpand uniq unlink uptime users vdir wc who whoami yes 56 + uname unexpand uniq unlink users vdir wc who whoami yes 57 58 See the file NEWS for a list of major changes in the current release. 59 60 diff -Naur coreutils-5.94.orig/configure coreutils-5.94/configure 61 --- coreutils-5.94.orig/configure 2006-02-13 12:52:04.000000000 +0000 62 +++ coreutils-5.94/configure 2006-03-15 22:20:49.000000000 +0000 63 @@ -50418,8 +50418,7 @@ 31 diff -Naur coreutils-6.3.orig/configure coreutils-6.3/configure 32 --- coreutils-6.3.orig/configure 2006-09-30 02:09:13.000000000 -0700 33 +++ coreutils-6.3/configure 2006-09-30 11:53:24.000000000 -0700 34 @@ -58175,8 +58175,7 @@ 64 35 { echo "$as_me:$LINENO: result: $gnulib_cv_have_boot_time" >&5 65 36 echo "${ECHO_T}$gnulib_cv_have_boot_time" >&6; } … … 71 42 72 43 73 diff -Naur coreutils- 5.94.orig/man/Makefile.in coreutils-5.94/man/Makefile.in74 --- coreutils- 5.94.orig/man/Makefile.in 2006-02-13 12:51:58.000000000 +000075 +++ coreutils- 5.94/man/Makefile.in 2006-03-15 22:20:50.000000000 +000076 @@ -1 42,7 +142,7 @@77 $(top_srcdir)/m4/ ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \78 $(top_srcdir)/m4/uni codeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \44 diff -Naur coreutils-6.3.orig/Makefile.in coreutils-6.3/Makefile.in 45 --- coreutils-6.3.orig/Makefile.in 2006-09-30 02:09:28.000000000 -0700 46 +++ coreutils-6.3/Makefile.in 2006-09-30 11:53:24.000000000 -0700 47 @@ -179,7 +179,7 @@ 48 $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unicodeio.m4 \ 49 $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ 79 50 $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \ 80 51 - $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \ … … 83 54 $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \ 84 55 $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ 85 @@ -303,13 +303,13 @@ 86 basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 comm.1 \ 56 diff -Naur coreutils-6.3.orig/man/Makefile.in coreutils-6.3/man/Makefile.in 57 --- coreutils-6.3.orig/man/Makefile.in 2006-09-30 02:09:23.000000000 -0700 58 +++ coreutils-6.3/man/Makefile.in 2006-09-30 11:56:34.000000000 -0700 59 @@ -174,7 +174,7 @@ 60 $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unicodeio.m4 \ 61 $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ 62 $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \ 63 - $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \ 64 + $(top_srcdir)/m4/unlocked-io.m4 \ 65 $(top_srcdir)/m4/userspec.m4 $(top_srcdir)/m4/utimbuf.m4 \ 66 $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \ 67 $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ 68 @@ -377,14 +377,14 @@ 69 base64.1 basename.1 cat.1 chgrp.1 chmod.1 chown.1 chroot.1 cksum.1 comm.1 \ 87 70 cp.1 csplit.1 cut.1 date.1 dd.1 df.1 dir.1 dircolors.1 dirname.1 du.1 \ 88 71 echo.1 env.1 expand.1 expr.1 factor.1 false.1 fmt.1 fold.1 groups.1 \ … … 92 75 ls.1 md5sum.1 mkdir.1 mkfifo.1 mknod.1 mv.1 nice.1 nl.1 nohup.1 od.1 \ 93 76 paste.1 pathchk.1 pinky.1 pr.1 printenv.1 printf.1 ptx.1 pwd.1 readlink.1 \ 94 rm.1 rmdir.1 seq.1 sha1sum.1 shred.1 sleep.1 sort.1 split.1 stat.1 stty.1 \ 77 rm.1 rmdir.1 seq.1 sha1sum.1 sha224sum.1 sha256sum.1 sha384sum.1 sha512sum.1 \ 78 shred.1 shuf.1 sleep.1 sort.1 split.1 stat.1 stty.1 \ 95 79 - su.1 sum.1 sync.1 tac.1 tail.1 tee.1 test.1 touch.1 tr.1 true.1 tsort.1 \ 96 80 - tty.1 uname.1 unexpand.1 uniq.1 unlink.1 uptime.1 users.1 vdir.1 wc.1 \ … … 100 84 101 85 man_aux = $(dist_man_MANS:.1=.x) 102 @@ - 575,7 +575,6 @@86 @@ -651,7 +651,6 @@ 103 87 id.1: $(common_dep) $(srcdir)/id.x ../src/id.c 104 88 install.1: $(common_dep) $(srcdir)/install.x ../src/install.c … … 108 92 ln.1: $(common_dep) $(srcdir)/ln.x ../src/ln.c 109 93 logname.1: $(common_dep) $(srcdir)/logname.x ../src/logname.c 110 @@ -6 08,7 +607,6 @@94 @@ -689,7 +688,6 @@ 111 95 split.1: $(common_dep) $(srcdir)/split.x ../src/split.c 112 96 stat.1: $(common_dep) $(srcdir)/stat.x ../src/stat.c … … 116 100 sync.1: $(common_dep) $(srcdir)/sync.x ../src/sync.c 117 101 tac.1: $(common_dep) $(srcdir)/tac.x ../src/tac.c 118 @@ - 624,7 +622,6 @@102 @@ -705,7 +703,6 @@ 119 103 unexpand.1: $(common_dep) $(srcdir)/unexpand.x ../src/unexpand.c 120 104 uniq.1: $(common_dep) $(srcdir)/uniq.x ../src/uniq.c … … 124 108 vdir.1: $(common_dep) $(srcdir)/vdir.x ../src/ls.c 125 109 wc.1: $(common_dep) $(srcdir)/wc.x ../src/wc.c 126 @@ - 656,7 +653,7 @@110 @@ -737,7 +734,7 @@ 127 111 check-x-vs-1: 128 112 PATH=../src$(PATH_SEPARATOR)$$PATH; export PATH; \ … … 133 117 | $(ASSORT) | diff - $$t || { rm $$t; exit 1; }; \ 134 118 rm $$t 135 diff -Naur coreutils-5.94.orig/src/Makefile.in coreutils-5.94/src/Makefile.in 136 --- coreutils-5.94.orig/src/Makefile.in 2006-02-13 13:08:11.000000000 +0000 137 +++ coreutils-5.94/src/Makefile.in 2006-03-15 22:20:50.000000000 +0000 119 diff -Naur coreutils-6.3.orig/README coreutils-6.3/README 120 --- coreutils-6.3.orig/README 2006-09-26 06:02:57.000000000 -0700 121 +++ coreutils-6.3/README 2006-09-30 11:54:45.000000000 -0700 122 @@ -9,11 +9,11 @@ 123 124 [ base64 basename cat chgrp chmod chown chroot cksum comm cp csplit cut date 125 dd df dir dircolors dirname du echo env expand expr factor false fmt fold 126 - ginstall groups head hostid hostname id join kill link ln logname ls 127 + ginstall groups head hostid hostname id join link ln logname ls 128 md5sum mkdir mkfifo mknod mv nice nl nohup od paste pathchk pinky pr 129 printenv printf ptx pwd readlink rm rmdir seq sha1sum sha224sum sha256sum 130 sha384sum sha512sum shred shuf sleep sort split stat stty su sum sync tac 131 - tail tee test touch tr true tsort tty uname unexpand uniq unlink uptime 132 + tail tee test touch tr true tsort tty uname unexpand uniq unlink 133 users vdir wc who whoami yes 134 135 See the file NEWS for a list of major changes in the current release. 136 diff -Naur coreutils-6.3.orig/src/Makefile.in coreutils-6.3/src/Makefile.in 137 --- coreutils-6.3.orig/src/Makefile.in 2006-09-30 02:11:14.000000000 -0700 138 +++ coreutils-6.3/src/Makefile.in 2006-09-30 11:58:34.000000000 -0700 138 139 @@ -39,7 +39,7 @@ 139 140 host_triplet = @host@ … … 145 146 cp$(EXEEXT) dd$(EXEEXT) dircolors$(EXEEXT) du$(EXEEXT) \ 146 147 ginstall$(EXEEXT) link$(EXEEXT) ln$(EXEEXT) dir$(EXEEXT) \ 147 @@ -5 6,7 +56,7 @@148 uniq$(EXEEXT) wc$(EXEEXT) basename$(EXEEXT) date$(EXEEXT) \149 dirname$(EXEEXT) echo$(EXEEXT) env$(EXEEXT) expr$(EXEEXT) \150 factor$(EXEEXT) false$(EXEEXT) hostname$(EXEEXT) id$(EXEEXT) \151 - kill$(EXEEXT) logname$(EXEEXT) pathchk$(EXEEXT) \152 + logname$(EXEEXT) pathchk$(EXEEXT) \153 p rintenv$(EXEEXT) printf$(EXEEXT) pwd$(EXEEXT) seq$(EXEEXT) \154 sleep$(EXEEXT) tee$(EXEEXT) test$(EXEEXT) true$(EXEEXT) \155 t ty$(EXEEXT) whoami$(EXEEXT) yes$(EXEEXT) $(am__EXEEXT_1) \156 @@ -1 69,7 +169,7 @@157 $(top_srcdir)/m4/ ullong_max.m4 $(top_srcdir)/m4/ulonglong.m4 \158 $(top_srcdir)/m4/uni codeio.m4 $(top_srcdir)/m4/unistd-safer.m4 \148 @@ -57,7 +57,7 @@ 149 tsort$(EXEEXT) unexpand$(EXEEXT) uniq$(EXEEXT) wc$(EXEEXT) \ 150 basename$(EXEEXT) date$(EXEEXT) dirname$(EXEEXT) echo$(EXEEXT) \ 151 env$(EXEEXT) expr$(EXEEXT) factor$(EXEEXT) false$(EXEEXT) \ 152 - hostname$(EXEEXT) id$(EXEEXT) kill$(EXEEXT) logname$(EXEEXT) \ 153 + hostname$(EXEEXT) id$(EXEEXT) logname$(EXEEXT) \ 154 pathchk$(EXEEXT) printenv$(EXEEXT) printf$(EXEEXT) \ 155 pwd$(EXEEXT) seq$(EXEEXT) sleep$(EXEEXT) tee$(EXEEXT) \ 156 test$(EXEEXT) true$(EXEEXT) tty$(EXEEXT) whoami$(EXEEXT) \ 157 @@ -182,7 +182,7 @@ 158 $(top_srcdir)/m4/tzset.m4 $(top_srcdir)/m4/unicodeio.m4 \ 159 $(top_srcdir)/m4/unistd-safer.m4 $(top_srcdir)/m4/unistd_h.m4 \ 159 160 $(top_srcdir)/m4/unlink-busy.m4 $(top_srcdir)/m4/unlinkdir.m4 \ 160 161 - $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/uptime.m4 \ … … 163 164 $(top_srcdir)/m4/utime.m4 $(top_srcdir)/m4/utimecmp.m4 \ 164 165 $(top_srcdir)/m4/utimens.m4 $(top_srcdir)/m4/utimes-null.m4 \ 165 @@ -3 50,11 +350,6 @@166 @@ -370,11 +370,6 @@ 166 167 join_LDADD = $(LDADD) 167 168 join_DEPENDENCIES = ../lib/libcoreutils.a $(am__DEPENDENCIES_1) \ … … 175 176 link_OBJECTS = link.$(OBJEXT) 176 177 link_LDADD = $(LDADD) 177 @@ - 577,9 +572,6 @@178 @@ -623,10 +618,6 @@ 178 179 unlink_LDADD = $(LDADD) 179 180 unlink_DEPENDENCIES = ../lib/libcoreutils.a $(am__DEPENDENCIES_1) \ … … 181 182 -uptime_SOURCES = uptime.c 182 183 -uptime_OBJECTS = uptime.$(OBJEXT) 183 -uptime_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) 184 -uptime_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \ 185 - $(am__DEPENDENCIES_1) 184 186 users_SOURCES = users.c 185 187 users_OBJECTS = users.$(OBJEXT) 186 188 users_LDADD = $(LDADD) 187 @@ -6 22,28 +614,28@@189 @@ -670,7 +661,7 @@ 188 190 csplit.c cut.c date.c dd.c df.c $(dir_SOURCES) dircolors.c \ 189 191 dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c \ … … 194 196 nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c \ 195 197 printenv.c printf.c ptx.c pwd.c readlink.c $(rm_SOURCES) \ 196 rmdir.c seq.c setuidgid.c $(sha1sum_SOURCES) shred.c sleep.c \ 197 sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c \ 198 tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c \ 199 - unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \ 200 + unexpand.c uniq.c unlink.c users.c $(vdir_SOURCES) \ 201 wc.c who.c whoami.c yes.c 202 DIST_SOURCES = $(__SOURCES) basename.c cat.c $(chgrp_SOURCES) chmod.c \ 203 $(chown_SOURCES) chroot.c cksum.c comm.c $(cp_SOURCES) \ 198 @@ -679,14 +670,14 @@ 199 $(sha512sum_SOURCES) shred.c shuf.c sleep.c sort.c split.c \ 200 stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c \ 201 touch.c tr.c true.c tsort.c tty.c uname.c unexpand.c uniq.c \ 202 - unlink.c uptime.c users.c $(vdir_SOURCES) wc.c who.c whoami.c \ 203 + unlink.c users.c $(vdir_SOURCES) wc.c who.c whoami.c \ 204 yes.c 205 DIST_SOURCES = $(__SOURCES) base64.c basename.c cat.c $(chgrp_SOURCES) \ 206 chmod.c $(chown_SOURCES) chroot.c cksum.c comm.c $(cp_SOURCES) \ 204 207 csplit.c cut.c date.c dd.c df.c $(dir_SOURCES) dircolors.c \ 205 208 dirname.c du.c echo.c env.c expand.c expr.c factor.c false.c \ … … 210 213 nice.c nl.c nohup.c od.c paste.c pathchk.c pinky.c pr.c \ 211 214 printenv.c printf.c ptx.c pwd.c readlink.c $(rm_SOURCES) \ 212 rmdir.c seq.c setuidgid.c $(sha1sum_SOURCES) shred.c sleep.c \ 213 sort.c split.c stat.c stty.c su.c sum.c sync.c tac.c tail.c \ 214 tee.c test.c touch.c tr.c true.c tsort.c tty.c uname.c \ 215 - unexpand.c uniq.c unlink.c uptime.c users.c $(vdir_SOURCES) \ 216 + unexpand.c uniq.c unlink.c users.c $(vdir_SOURCES) \ 217 wc.c who.c whoami.c yes.c 215 @@ -695,7 +686,7 @@ 216 $(sha512sum_SOURCES) shred.c shuf.c sleep.c sort.c split.c \ 217 stat.c stty.c su.c sum.c sync.c tac.c tail.c tee.c test.c \ 218 touch.c tr.c true.c tsort.c tty.c uname.c unexpand.c uniq.c \ 219 - unlink.c uptime.c users.c $(vdir_SOURCES) wc.c who.c whoami.c \ 220 + unlink.c users.c $(vdir_SOURCES) wc.c who.c whoami.c \ 221 yes.c 218 222 HEADERS = $(noinst_HEADERS) 219 223 ETAGS = etags 220 @@ -840,7 +832,6 @@ 221 nanosec_libs = $(LDADD) $(POW_LIB) $(LIB_NANOSLEEP) 222 sleep_LDADD = $(nanosec_libs) 224 @@ -946,7 +937,6 @@ 223 225 tail_LDADD = $(nanosec_libs) 224 -uptime_LDADD = $(LDADD) $(GETLOADAVG_LIBS) 226 227 # If necessary, add -lm to resolve use of pow in lib/strtod.c. 228 -uptime_LDADD = $(LDADD) $(POW_LIB) $(GETLOADAVG_LIBS) 225 229 su_LDADD = $(LDADD) $(LIB_CRYPT) 226 230 SUFFIXES = .sh 227 231 installed_su = $(DESTDIR)$(bindir)/`echo su|sed '$(transform)'` 228 @@ -1 076,9 +1067,6 @@232 @@ -1193,9 +1183,6 @@ 229 233 join$(EXEEXT): $(join_OBJECTS) $(join_DEPENDENCIES) 230 234 @rm -f join$(EXEEXT) … … 236 240 @rm -f link$(EXEEXT) 237 241 $(LINK) $(link_LDFLAGS) $(link_OBJECTS) $(link_LDADD) $(LIBS) 238 @@ -1 226,9 +1214,6 @@242 @@ -1358,9 +1345,6 @@ 239 243 unlink$(EXEEXT): $(unlink_OBJECTS) $(unlink_DEPENDENCIES) 240 244 @rm -f unlink$(EXEEXT) … … 246 250 @rm -f users$(EXEEXT) 247 251 $(LINK) $(users_LDFLAGS) $(users_OBJECTS) $(users_LDADD) $(LIBS) 248 @@ -1 322,7 +1307,6 @@252 @@ -1455,7 +1439,6 @@ 249 253 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/id.Po@am__quote@ 250 254 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/install.Po@am__quote@ … … 254 258 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ 255 259 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ln.Po@am__quote@ 256 @@ -1 378,7 +1362,6 @@260 @@ -1515,7 +1498,6 @@ 257 261 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unexpand.Po@am__quote@ 258 262 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uniq.Po@am__quote@ … … 262 266 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wc.Po@am__quote@ 263 267 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/who.Po@am__quote@ 264 @@ -1 606,7 +1589,7 @@268 @@ -1826,7 +1808,7 @@ 265 269 && can_create_suid_root_executable=yes; \ 266 270 rm -f $$TMPFILE; \ -
patches/vim-7.0-fixes-15.patch
r054bf2ad r862e2c0 1 1 Submitted By: Jim Gifford (jim at linuxfromscratch dot org) 2 Date: 2006-10- 132 Date: 2006-10-21 3 3 Initial Package Version: 7.0 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 Description: Contains all upstream patches up to 7.0.132 7 The following patches were skipped 8 005 027 028 032 045 057 065 074 108 130 131 132 9 6 Description: Contains all upstream patches up to 7.0.146 7 The following patches were skipped 8 005 027 028 032 045 057 065 074 108 130 131 132 138 10 9 diff -Naur vim70.orig/configure vim70/configure 11 10 --- vim70.orig/configure 2004-07-05 02:02:24.000000000 -0700 12 +++ vim70/configure 2006-10- 13 01:02:48.000000000 -070011 +++ vim70/configure 2006-10-21 21:08:54.000000000 -0700 13 12 @@ -3,4 +3,4 @@ 14 13 # This is just a stub for the Unix configure script, to provide support for … … 19 18 diff -Naur vim70.orig/runtime/autoload/ccomplete.vim vim70/runtime/autoload/ccomplete.vim 20 19 --- vim70.orig/runtime/autoload/ccomplete.vim 2006-05-03 07:35:56.000000000 -0700 21 +++ vim70/runtime/autoload/ccomplete.vim 2006-10- 13 01:02:42.000000000 -070020 +++ vim70/runtime/autoload/ccomplete.vim 2006-10-21 21:08:49.000000000 -0700 22 21 @@ -1,7 +1,7 @@ 23 22 " Vim completion script … … 40 39 diff -Naur vim70.orig/runtime/autoload/gzip.vim vim70/runtime/autoload/gzip.vim 41 40 --- vim70.orig/runtime/autoload/gzip.vim 2006-03-31 07:12:15.000000000 -0800 42 +++ vim70/runtime/autoload/gzip.vim 2006-10- 13 01:03:07.000000000 -070041 +++ vim70/runtime/autoload/gzip.vim 2006-10-21 21:09:06.000000000 -0700 43 42 @@ -1,6 +1,6 @@ 44 43 " Vim autoload file for editing compressed files. … … 101 100 diff -Naur vim70.orig/runtime/autoload/paste.vim vim70/runtime/autoload/paste.vim 102 101 --- vim70.orig/runtime/autoload/paste.vim 2006-04-21 11:31:01.000000000 -0700 103 +++ vim70/runtime/autoload/paste.vim 2006-10- 13 01:02:46.000000000 -0700102 +++ vim70/runtime/autoload/paste.vim 2006-10-21 21:08:52.000000000 -0700 104 103 @@ -1,6 +1,6 @@ 105 104 " Vim support file to help with paste mappings and menus … … 121 120 diff -Naur vim70.orig/runtime/autoload/spellfile.vim vim70/runtime/autoload/spellfile.vim 122 121 --- vim70.orig/runtime/autoload/spellfile.vim 2006-02-01 04:12:24.000000000 -0800 123 +++ vim70/runtime/autoload/spellfile.vim 2006-10- 13 01:02:54.000000000 -0700122 +++ vim70/runtime/autoload/spellfile.vim 2006-10-21 21:09:00.000000000 -0700 124 123 @@ -1,9 +1,9 @@ 125 124 " Vim script to download a missing spell file … … 177 176 diff -Naur vim70.orig/runtime/doc/eval.txt vim70/runtime/doc/eval.txt 178 177 --- vim70.orig/runtime/doc/eval.txt 2006-05-07 05:16:44.000000000 -0700 179 +++ vim70/runtime/doc/eval.txt 2006-10- 13 01:03:07.000000000 -0700178 +++ vim70/runtime/doc/eval.txt 2006-10-21 21:09:06.000000000 -0700 180 179 @@ -1,4 +1,4 @@ 181 180 -*eval.txt* For Vim version 7.0. Last change: 2006 May 06 … … 217 216 diff -Naur vim70.orig/runtime/menu.vim vim70/runtime/menu.vim 218 217 --- vim70.orig/runtime/menu.vim 2006-04-17 06:47:28.000000000 -0700 219 +++ vim70/runtime/menu.vim 2006-10- 13 01:03:05.000000000 -0700218 +++ vim70/runtime/menu.vim 2006-10-21 21:09:05.000000000 -0700 220 219 @@ -2,7 +2,7 @@ 221 220 " You can also use this as a start for your own set of menus. … … 284 283 diff -Naur vim70.orig/runtime/plugin/matchparen.vim vim70/runtime/plugin/matchparen.vim 285 284 --- vim70.orig/runtime/plugin/matchparen.vim 2006-04-27 06:31:26.000000000 -0700 286 +++ vim70/runtime/plugin/matchparen.vim 2006-10- 13 01:02:59.000000000 -0700285 +++ vim70/runtime/plugin/matchparen.vim 2006-10-21 21:09:04.000000000 -0700 287 286 @@ -1,6 +1,6 @@ 288 287 " Vim plugin for showing matching parens … … 327 326 diff -Naur vim70.orig/runtime/scripts.vim vim70/runtime/scripts.vim 328 327 --- vim70.orig/runtime/scripts.vim 2006-03-28 11:30:49.000000000 -0800 329 +++ vim70/runtime/scripts.vim 2006-10- 13 01:02:48.000000000 -0700328 +++ vim70/runtime/scripts.vim 2006-10-21 21:08:54.000000000 -0700 330 329 @@ -1,7 +1,7 @@ 331 330 " Vim support file to detect file types in scripts … … 352 351 diff -Naur vim70.orig/runtime/tutor/Makefile vim70/runtime/tutor/Makefile 353 352 --- vim70.orig/runtime/tutor/Makefile 2004-06-07 07:32:39.000000000 -0700 354 +++ vim70/runtime/tutor/Makefile 2006-10- 13 01:02:59.000000000 -0700353 +++ vim70/runtime/tutor/Makefile 2006-10-21 21:09:04.000000000 -0700 355 354 @@ -2,8 +2,13 @@ 356 355 # … … 386 385 diff -Naur vim70.orig/runtime/tutor/tutor.gr.utf-8 vim70/runtime/tutor/tutor.gr.utf-8 387 386 --- vim70.orig/runtime/tutor/tutor.gr.utf-8 1969-12-31 16:00:00.000000000 -0800 388 +++ vim70/runtime/tutor/tutor.gr.utf-8 2006-10- 13 01:02:59.000000000 -0700387 +++ vim70/runtime/tutor/tutor.gr.utf-8 2006-10-21 21:09:04.000000000 -0700 389 388 @@ -0,0 +1,815 @@ 390 389 +=============================================================================== … … 1419 1418 diff -Naur vim70.orig/runtime/tutor/tutor.ru.utf-8 vim70/runtime/tutor/tutor.ru.utf-8 1420 1419 --- vim70.orig/runtime/tutor/tutor.ru.utf-8 1969-12-31 16:00:00.000000000 -0800 1421 +++ vim70/runtime/tutor/tutor.ru.utf-8 2006-10- 13 01:02:54.000000000 -07001420 +++ vim70/runtime/tutor/tutor.ru.utf-8 2006-10-21 21:09:00.000000000 -0700 1422 1421 @@ -0,0 +1,834 @@ 1423 1422 +=============================================================================== … … 2340 2339 diff -Naur vim70.orig/runtime/tutor/tutor.vim vim70/runtime/tutor/tutor.vim 2341 2340 --- vim70.orig/runtime/tutor/tutor.vim 2006-03-18 12:20:36.000000000 -0800 2342 +++ vim70/runtime/tutor/tutor.vim 2006-10- 13 01:02:59.000000000 -07002341 +++ vim70/runtime/tutor/tutor.vim 2006-10-21 21:09:04.000000000 -0700 2343 2342 @@ -1,6 +1,6 @@ 2344 2343 " Vim tutor support file … … 2392 2391 diff -Naur vim70.orig/src/auto/configure vim70/src/auto/configure 2393 2392 --- vim70.orig/src/auto/configure 2006-05-04 03:46:19.000000000 -0700 2394 +++ vim70/src/auto/configure 2006-10- 13 01:03:10.000000000 -07002393 +++ vim70/src/auto/configure 2006-10-21 21:09:10.000000000 -0700 2395 2394 @@ -4014,7 +4014,7 @@ 2396 2395 LDFLAGS=$ldflags_save … … 2422 2421 esac 2423 2422 for libname in $tlibs; do 2423 @@ -15302,7 +15302,7 @@ 2424 && test "x$GUITYPE" != "xCARBONGUI"; then 2425 echo "$as_me:$LINENO: checking whether we need -framework Carbon" >&5 2426 echo $ECHO_N "checking whether we need -framework Carbon... $ECHO_C" >&6 2427 - if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \ 2428 + if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \ 2429 || test "x$features" = "xhuge"; then 2430 LIBS="$LIBS -framework Carbon" 2431 echo "$as_me:$LINENO: result: yes" >&5 2424 2432 diff -Naur vim70.orig/src/buffer.c vim70/src/buffer.c 2425 2433 --- vim70.orig/src/buffer.c 2006-04-26 14:37:23.000000000 -0700 2426 +++ vim70/src/buffer.c 2006-10- 13 01:02:59.000000000 -07002434 +++ vim70/src/buffer.c 2006-10-21 21:09:11.000000000 -0700 2427 2435 @@ -434,12 +434,8 @@ 2428 2436 if (usingNetbeans) … … 2440 2448 /* 2441 2449 * Remove the buffer from the list. 2450 @@ -1212,11 +1208,11 @@ 2451 { 2452 # ifdef FEAT_WINDOWS 2453 /* jump to first window containing buf if one exists ("useopen") */ 2454 - if (vim_strchr(p_swb, 'o') && buf_jump_open_win(buf)) 2455 + if (vim_strchr(p_swb, 'o') != NULL && buf_jump_open_win(buf)) 2456 return OK; 2457 /* jump to first window in any tab page containing buf if one exists 2458 * ("usetab") */ 2459 - if (vim_strchr(p_swb, 'a') && buf_jump_open_tab(buf)) 2460 + if (vim_strchr(p_swb, 'a') != NULL && buf_jump_open_tab(buf)) 2461 return OK; 2462 if (win_split(0, 0) == FAIL) 2463 # endif 2442 2464 @@ -1390,7 +1386,8 @@ 2443 2465 } … … 2484 2506 * functions for dealing with the buffer list 2485 2507 */ 2508 @@ -1837,13 +1842,13 @@ 2509 if (options & GETF_SWITCH) 2510 { 2511 /* use existing open window for buffer if wanted */ 2512 - if (vim_strchr(p_swb, 'o')) /* useopen */ 2513 + if (vim_strchr(p_swb, 'o') != NULL) /* useopen */ 2514 wp = buf_jump_open_win(buf); 2515 /* use existing open window in any tab page for buffer if wanted */ 2516 - if (vim_strchr(p_swb, 'a')) /* usetab */ 2517 + if (vim_strchr(p_swb, 'a') != NULL) /* usetab */ 2518 wp = buf_jump_open_tab(buf); 2519 /* split window if wanted ("split") */ 2520 - if (wp == NULL && vim_strchr(p_swb, 't') && !bufempty()) 2521 + if (wp == NULL && vim_strchr(p_swb, 'l') != NULL && !bufempty()) 2522 { 2523 if (win_split(0, 0) == FAIL) 2524 return FAIL; 2486 2525 @@ -3324,7 +3329,7 @@ 2487 2526 { … … 2535 2574 diff -Naur vim70.orig/src/configure vim70/src/configure 2536 2575 --- vim70.orig/src/configure 2006-05-07 07:17:49.000000000 -0700 2537 +++ vim70/src/configure 2006-10- 13 01:02:48.000000000 -07002576 +++ vim70/src/configure 2006-10-21 21:08:54.000000000 -0700 2538 2577 @@ -2,5 +2,9 @@ 2539 2578 # run the automatically generated configure script … … 2548 2587 diff -Naur vim70.orig/src/configure.in vim70/src/configure.in 2549 2588 --- vim70.orig/src/configure.in 2006-05-04 03:46:11.000000000 -0700 2550 +++ vim70/src/configure.in 2006-10- 13 01:03:09.000000000 -07002589 +++ vim70/src/configure.in 2006-10-21 21:09:10.000000000 -0700 2551 2590 @@ -508,7 +508,8 @@ 2552 2591 LDFLAGS=$ldflags_save … … 2580 2619 esac 2581 2620 for libname in $tlibs; do 2621 @@ -2835,7 +2838,7 @@ 2622 && test "x$GUITYPE" != "xCARBONGUI"; then 2623 AC_MSG_CHECKING(whether we need -framework Carbon) 2624 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE 2625 - if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \ 2626 + if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \ 2627 || test "x$features" = "xhuge"; then 2628 LIBS="$LIBS -framework Carbon" 2629 AC_MSG_RESULT(yes) 2582 2630 diff -Naur vim70.orig/src/edit.c vim70/src/edit.c 2583 2631 --- vim70.orig/src/edit.c 2006-05-07 04:48:51.000000000 -0700 2584 +++ vim70/src/edit.c 2006-10- 13 01:03:10.000000000 -07002632 +++ vim70/src/edit.c 2006-10-21 21:09:10.000000000 -0700 2585 2633 @@ -129,7 +129,7 @@ 2586 2634 … … 2915 2963 break; 2916 2964 2917 @@ -3971,7 +4018,7 @@ 2965 @@ -3862,6 +3909,8 @@ 2966 { 2967 int flags = 0; 2968 2969 + ++msg_silent; /* Don't want messages for wrapscan. */ 2970 + 2971 /* ctrl_x_mode == CTRL_X_WHOLE_LINE || word-wise search that 2972 * has added a word that was at the beginning of the line */ 2973 if ( ctrl_x_mode == CTRL_X_WHOLE_LINE 2974 @@ -3873,6 +3922,7 @@ 2975 compl_direction, 2976 compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, 2977 RE_LAST, (linenr_T)0); 2978 + --msg_silent; 2979 if (!compl_started) 2980 { 2981 /* set "compl_started" even on fail */ 2982 @@ -3971,7 +4021,7 @@ 2918 2983 continue; 2919 2984 } … … 2924 2989 0, flags) != NOTDONE) 2925 2990 { 2926 @@ -3996,7 +404 3,7 @@2991 @@ -3996,7 +4046,7 @@ 2927 2992 if (got_int) 2928 2993 break; … … 2933 2998 2934 2999 if ((ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE) 2935 @@ -4100,6 +41 47,21 @@3000 @@ -4100,6 +4150,21 @@ 2936 3001 && compl_shown_match->cp_next != NULL 2937 3002 && compl_shown_match->cp_next != compl_first_match) … … 2955 3020 2956 3021 if (allow_get_expansion && insert_match 2957 @@ -4124,8 +418 6,6 @@3022 @@ -4124,8 +4189,6 @@ 2958 3023 { 2959 3024 if (compl_shows_dir == FORWARD && compl_shown_match->cp_next != NULL) … … 2964 3029 found_end = (compl_first_match != NULL 2965 3030 && (compl_shown_match->cp_next == compl_first_match 2966 @@ -4134,14 +419 4,24 @@3031 @@ -4134,14 +4197,24 @@ 2967 3032 else if (compl_shows_dir == BACKWARD 2968 3033 && compl_shown_match->cp_prev != NULL) … … 2991 3056 { 2992 3057 if (compl_shows_dir == BACKWARD) 2993 @@ -4149,14 +42 19,27 @@3058 @@ -4149,14 +4222,27 @@ 2994 3059 else 2995 3060 ++compl_pending; … … 3023 3088 } 3024 3089 if ((compl_shown_match->cp_flags & ORIGINAL_TEXT) == 0 3025 @@ -4265,9 +43 48,9 @@3090 @@ -4265,9 +4351,9 @@ 3026 3091 return; 3027 3092 count = 0; … … 3035 3100 { 3036 3101 if (vim_is_ctrl_x_key(c) && c != Ctrl_X && c != Ctrl_R) 3037 @@ -4277,12 +436 0,27 @@3102 @@ -4277,12 +4363,27 @@ 3038 3103 (void)ins_compl_next(FALSE, ins_compl_key2count(c), 3039 3104 c != K_UP && c != K_DOWN); … … 3067 3132 3068 3133 /* 3069 @@ -4611,10 +47 09,12 @@3134 @@ -4611,10 +4712,12 @@ 3070 3135 (int)STRLEN(compl_pattern), curs_col); 3071 3136 if (compl_xp.xp_context == EXPAND_UNSUCCESSFUL … … 3084 3149 else if (ctrl_x_mode == CTRL_X_FUNCTION || ctrl_x_mode == CTRL_X_OMNI) 3085 3150 { 3086 @@ -4668,11 +47 68,17 @@3151 @@ -4668,11 +4771,17 @@ 3087 3152 else 3088 3153 compl_col = spell_word_start(startcol); … … 3105 3170 if (compl_pattern == NULL) 3106 3171 #endif 3107 @@ -4720,7 +482 6,7 @@3172 @@ -4720,7 +4829,7 @@ 3108 3173 vim_free(compl_orig_text); 3109 3174 compl_orig_text = vim_strnsave(line + compl_col, compl_length); … … 3114 3179 vim_free(compl_pattern); 3115 3180 compl_pattern = NULL; 3116 @@ -5227,8 +533 3,16 @@3181 @@ -5227,8 +5336,16 @@ 3117 3182 /* Format with 'formatexpr' when it's set. Use internal formatting 3118 3183 * when 'formatexpr' isn't set or it returns non-zero. */ … … 3133 3198 internal_format(textwidth, second_indent, flags, c == NUL); 3134 3199 } 3135 @@ -8508,7 +862 2,12 @@3200 @@ -8508,7 +8625,12 @@ 3136 3201 tpos = curwin->w_cursor; 3137 3202 if (oneleft() == OK) … … 3147 3212 /* If exit reversed string, position is fixed */ 3148 3213 if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) 3214 @@ -8700,7 +8822,11 @@ 3215 if (mod_mask & MOD_MASK_CTRL) 3216 { 3217 /* <C-PageUp>: tab page back */ 3218 - goto_tabpage(-1); 3219 + if (first_tabpage->tp_next != NULL) 3220 + { 3221 + start_arrow(&curwin->w_cursor); 3222 + goto_tabpage(-1); 3223 + } 3224 return; 3225 } 3226 #endif 3227 @@ -8759,7 +8885,11 @@ 3228 if (mod_mask & MOD_MASK_CTRL) 3229 { 3230 /* <C-PageDown>: tab page forward */ 3231 - goto_tabpage(0); 3232 + if (first_tabpage->tp_next != NULL) 3233 + { 3234 + start_arrow(&curwin->w_cursor); 3235 + goto_tabpage(0); 3236 + } 3237 return; 3238 } 3239 #endif 3149 3240 diff -Naur vim70.orig/src/eval.c vim70/src/eval.c 3150 3241 --- vim70.orig/src/eval.c 2006-05-05 10:15:26.000000000 -0700 3151 +++ vim70/src/eval.c 2006-10-13 01:03:10.000000000 -0700 3152 @@ -454,7 +454,7 @@ 3242 +++ vim70/src/eval.c 2006-10-21 21:09:11.000000000 -0700 3243 @@ -191,8 +191,6 @@ 3244 #define FC_RANGE 2 /* function accepts range */ 3245 #define FC_DICT 4 /* Dict function, uses "self" */ 3246 3247 -#define DEL_REFCOUNT 999999 /* list/dict is being deleted */ 3248 - 3249 /* 3250 * All user-defined functions are found in this hashtable. 3251 */ 3252 @@ -435,7 +433,7 @@ 3253 static void set_ref_in_list __ARGS((list_T *l, int copyID)); 3254 static void set_ref_in_item __ARGS((typval_T *tv, int copyID)); 3255 static void dict_unref __ARGS((dict_T *d)); 3256 -static void dict_free __ARGS((dict_T *d)); 3257 +static void dict_free __ARGS((dict_T *d, int recurse)); 3258 static dictitem_T *dictitem_alloc __ARGS((char_u *key)); 3259 static dictitem_T *dictitem_copy __ARGS((dictitem_T *org)); 3260 static void dictitem_remove __ARGS((dict_T *dict, dictitem_T *item)); 3261 @@ -454,7 +452,7 @@ 3153 3262 static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); 3154 3263 static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); … … 3159 3268 static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); 3160 3269 static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); 3161 @@ -622,6 +62 2,7 @@3270 @@ -622,6 +620,7 @@ 3162 3271 static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv)); 3163 3272 static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); … … 3167 3276 static void f_sort __ARGS((typval_T *argvars, typval_T *rettv)); 3168 3277 static void f_soundfold __ARGS((typval_T *argvars, typval_T *rettv)); 3169 @@ -701,6 +70 2,7 @@3278 @@ -701,6 +700,7 @@ 3170 3279 static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string)); 3171 3280 static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); … … 3175 3284 static void copy_tv __ARGS((typval_T *from, typval_T *to)); 3176 3285 static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID)); 3177 @@ -2260,7 +226 2,7 @@3286 @@ -2260,7 +2260,7 @@ 3178 3287 EMSG(_(e_letunexp)); 3179 3288 else … … 3184 3293 3185 3294 p = get_tv_string_chk(tv); 3186 @@ -2269,7 +22 71,7 @@3295 @@ -2269,7 +2269,7 @@ 3187 3296 s = get_reg_contents(*arg == '@' ? '"' : *arg, TRUE, TRUE); 3188 3297 if (s != NULL) … … 3193 3302 } 3194 3303 } 3195 @@ -2278,7 +22 80,7 @@3304 @@ -2278,7 +2278,7 @@ 3196 3305 write_reg_contents(*arg == '@' ? '"' : *arg, p, -1, FALSE); 3197 3306 arg_end = arg + 1; … … 3202 3311 } 3203 3312 3204 @@ -3364,6 +336 6,8 @@3313 @@ -3364,6 +3364,8 @@ 3205 3314 hi = hash_find(ht, varname); 3206 3315 if (!HASHITEM_EMPTY(hi)) … … 3211 3320 return FAIL; 3212 3321 delete_var(ht, hi); 3213 @@ -6059,6 +6063,10 @@ 3322 @@ -4895,7 +4897,7 @@ 3323 { 3324 if (list_append_tv(l, &item->li_tv) == FAIL) 3325 { 3326 - list_free(l); 3327 + list_free(l, TRUE); 3328 return FAIL; 3329 } 3330 item = item->li_next; 3331 @@ -5295,7 +5297,7 @@ 3332 EMSG2(_("E697: Missing end of List ']': %s"), *arg); 3333 failret: 3334 if (evaluate) 3335 - list_free(l); 3336 + list_free(l, TRUE); 3337 return FAIL; 3338 } 3339 3340 @@ -5359,8 +5361,8 @@ 3341 list_unref(l) 3342 list_T *l; 3343 { 3344 - if (l != NULL && l->lv_refcount != DEL_REFCOUNT && --l->lv_refcount <= 0) 3345 - list_free(l); 3346 + if (l != NULL && --l->lv_refcount <= 0) 3347 + list_free(l, TRUE); 3348 } 3349 3350 /* 3351 @@ -5368,14 +5370,12 @@ 3352 * Ignores the reference count. 3353 */ 3354 void 3355 -list_free(l) 3356 - list_T *l; 3357 +list_free(l, recurse) 3358 + list_T *l; 3359 + int recurse; /* Free Lists and Dictionaries recursively. */ 3360 { 3361 listitem_T *item; 3362 3363 - /* Avoid that recursive reference to the list frees us again. */ 3364 - l->lv_refcount = DEL_REFCOUNT; 3365 - 3366 /* Remove the list from the list of lists for garbage collection. */ 3367 if (l->lv_used_prev == NULL) 3368 first_list = l->lv_used_next; 3369 @@ -5388,7 +5388,10 @@ 3370 { 3371 /* Remove the item before deleting it. */ 3372 l->lv_first = item->li_next; 3373 - listitem_free(item); 3374 + if (recurse || (item->li_tv.v_type != VAR_LIST 3375 + && item->li_tv.v_type != VAR_DICT)) 3376 + clear_tv(&item->li_tv); 3377 + vim_free(item); 3378 } 3379 vim_free(l); 3380 } 3381 @@ -5448,6 +5451,8 @@ 3382 { 3383 listitem_T *item1, *item2; 3384 3385 + if (l1 == l2) 3386 + return TRUE; 3387 if (list_len(l1) != list_len(l2)) 3388 return FALSE; 3389 3390 @@ -5484,6 +5489,8 @@ 3391 dictitem_T *item2; 3392 int todo; 3393 3394 + if (d1 == d2) 3395 + return TRUE; 3396 if (dict_len(d1) != dict_len(d2)) 3397 return FALSE; 3398 3399 @@ -5516,19 +5523,29 @@ 3400 { 3401 char_u buf1[NUMBUFLEN], buf2[NUMBUFLEN]; 3402 char_u *s1, *s2; 3403 + static int recursive = 0; /* cach recursive loops */ 3404 + int r; 3405 3406 if (tv1->v_type != tv2->v_type) 3407 return FALSE; 3408 + /* Catch lists and dicts that have an endless loop by limiting 3409 + * recursiveness to 1000. We guess they are equal then. */ 3410 + if (recursive >= 1000) 3411 + return TRUE; 3412 3413 switch (tv1->v_type) 3414 { 3415 case VAR_LIST: 3416 - /* recursive! */ 3417 - return list_equal(tv1->vval.v_list, tv2->vval.v_list, ic); 3418 + ++recursive; 3419 + r = list_equal(tv1->vval.v_list, tv2->vval.v_list, ic); 3420 + --recursive; 3421 + return r; 3422 3423 case VAR_DICT: 3424 - /* recursive! */ 3425 - return dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic); 3426 + ++recursive; 3427 + r = dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic); 3428 + --recursive; 3429 + return r; 3430 3431 case VAR_FUNC: 3432 return (tv1->vval.v_string != NULL 3433 @@ -6059,6 +6076,10 @@ 3214 3434 tabpage_T *tp; 3215 3435 #endif … … 3222 3442 * 1. Go through all accessible variables and mark all lists and dicts 3223 3443 * with copyID. 3224 @@ -7139,6 +7147,7 @@ 3444 @@ -6097,7 +6118,10 @@ 3445 for (dd = first_dict; dd != NULL; ) 3446 if (dd->dv_copyID != copyID) 3447 { 3448 - dict_free(dd); 3449 + /* Free the Dictionary and ordinary items it contains, but don't 3450 + * recurse into Lists and Dictionaries, they will be in the list 3451 + * of dicts or list of lists. */ 3452 + dict_free(dd, FALSE); 3453 did_free = TRUE; 3454 3455 /* restart, next dict may also have been freed */ 3456 @@ -6114,7 +6138,10 @@ 3457 for (ll = first_list; ll != NULL; ) 3458 if (ll->lv_copyID != copyID && ll->lv_watch == NULL) 3459 { 3460 - list_free(ll); 3461 + /* Free the List and ordinary items it contains, but don't recurse 3462 + * into Lists and Dictionaries, they will be in the list of dicts 3463 + * or list of lists. */ 3464 + list_free(ll, FALSE); 3465 did_free = TRUE; 3466 3467 /* restart, next list may also have been freed */ 3468 @@ -6207,11 +6234,12 @@ 3469 d = (dict_T *)alloc(sizeof(dict_T)); 3470 if (d != NULL) 3471 { 3472 - /* Add the list to the hashtable for garbage collection. */ 3473 + /* Add the list to the list of dicts for garbage collection. */ 3474 if (first_dict != NULL) 3475 first_dict->dv_used_prev = d; 3476 d->dv_used_next = first_dict; 3477 d->dv_used_prev = NULL; 3478 + first_dict = d; 3479 3480 hash_init(&d->dv_hashtab); 3481 d->dv_lock = 0; 3482 @@ -6229,8 +6257,8 @@ 3483 dict_unref(d) 3484 dict_T *d; 3485 { 3486 - if (d != NULL && d->dv_refcount != DEL_REFCOUNT && --d->dv_refcount <= 0) 3487 - dict_free(d); 3488 + if (d != NULL && --d->dv_refcount <= 0) 3489 + dict_free(d, TRUE); 3490 } 3491 3492 /* 3493 @@ -6238,16 +6266,14 @@ 3494 * Ignores the reference count. 3495 */ 3496 static void 3497 -dict_free(d) 3498 - dict_T *d; 3499 +dict_free(d, recurse) 3500 + dict_T *d; 3501 + int recurse; /* Free Lists and Dictionaries recursively. */ 3502 { 3503 int todo; 3504 hashitem_T *hi; 3505 dictitem_T *di; 3506 3507 - /* Avoid that recursive reference to the dict frees us again. */ 3508 - d->dv_refcount = DEL_REFCOUNT; 3509 - 3510 /* Remove the dict from the list of dicts for garbage collection. */ 3511 if (d->dv_used_prev == NULL) 3512 first_dict = d->dv_used_next; 3513 @@ -6267,7 +6293,10 @@ 3514 * something recursive causing trouble. */ 3515 di = HI2DI(hi); 3516 hash_remove(&d->dv_hashtab, hi); 3517 - dictitem_free(di); 3518 + if (recurse || (di->di_tv.v_type != VAR_LIST 3519 + && di->di_tv.v_type != VAR_DICT)) 3520 + clear_tv(&di->di_tv); 3521 + vim_free(di); 3522 --todo; 3523 } 3524 } 3525 @@ -6718,7 +6747,7 @@ 3526 EMSG2(_("E723: Missing end of Dictionary '}': %s"), *arg); 3527 failret: 3528 if (evaluate) 3529 - dict_free(d); 3530 + dict_free(d, TRUE); 3531 return FAIL; 3532 } 3533 3534 @@ -7139,6 +7168,7 @@ 3225 3535 {"setreg", 2, 3, f_setreg}, 3226 3536 {"settabwinvar", 4, 4, f_settabwinvar}, … … 3230 3540 {"sort", 1, 2, f_sort}, 3231 3541 {"soundfold", 1, 1, f_soundfold}, 3232 @@ -7595,8 +76 04,8 @@3542 @@ -7595,8 +7625,8 @@ 3233 3543 * Give an error message with a function name. Handle <SNR> things. 3234 3544 */ … … 3241 3551 { 3242 3552 char_u *p; 3243 @@ -7605,7 +76 14,7 @@3553 @@ -7605,7 +7635,7 @@ 3244 3554 p = concat_str((char_u *)"<SNR>", name + 3); 3245 3555 else … … 3250 3560 vim_free(p); 3251 3561 } 3252 @@ -8252,6 +82 61,12 @@3562 @@ -8252,6 +8282,12 @@ 3253 3563 EMSG(_("E785: complete() can only be used in Insert mode")); 3254 3564 return; … … 3263 3573 { 3264 3574 EMSG(_(e_invarg)); 3265 @@ -9173,25 +9 188,25 @@3575 @@ -9173,25 +9209,25 @@ 3266 3576 typval_T save_key; 3267 3577 int rem; … … 3293 3603 } 3294 3604 3295 @@ -9223,7 +92 38,7 @@3605 @@ -9223,7 +9259,7 @@ 3296 3606 { 3297 3607 --todo; … … 3302 3612 vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); 3303 3613 if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL 3304 @@ -9242,7 +92 57,7 @@3614 @@ -9242,7 +9278,7 @@ 3305 3615 { 3306 3616 for (li = l->lv_first; li != NULL; li = nli) … … 3311 3621 nli = li->li_next; 3312 3622 if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL 3313 @@ -9598,7 +96 13,9 @@3623 @@ -9598,7 +9634,9 @@ 3314 3624 typval_T *argvars; 3315 3625 typval_T *rettv; … … 3322 3632 3323 3633 /* 3324 @@ -9792,6 +98 09,9 @@3634 @@ -9792,6 +9830,9 @@ 3325 3635 varnumber_T n; 3326 3636 int error = FALSE; … … 3332 3642 ++allow_keys; 3333 3643 if (argvars[0].v_type == VAR_UNKNOWN) 3334 @@ -10412,20 +104 32,14 @@3644 @@ -10412,20 +10453,14 @@ 3335 3645 3336 3646 if (win != NULL && varname != NULL) … … 3359 3669 { 3360 3670 if (*varname == NUL) 3361 @@ -10438,6 +104 52,10 @@3671 @@ -10438,6 +10473,10 @@ 3362 3672 if (v != NULL) 3363 3673 copy_tv(&v->di_tv, rettv); … … 3370 3680 3371 3681 --emsg_off; 3372 @@ -11312,14 +113 30,19 @@3682 @@ -11312,14 +11351,19 @@ 3373 3683 3374 3684 static int inputsecret_flag = 0; … … 3393 3703 char_u *prompt = get_tv_string_chk(&argvars[0]); 3394 3704 char_u *p = NULL; 3395 @@ -11369,10 +11 392,10 @@3705 @@ -11369,10 +11413,10 @@ 3396 3706 if (defstr != NULL) 3397 3707 stuffReadbuffSpec(defstr); … … 3406 3716 3407 3717 rettv->vval.v_string = NULL; 3408 @@ -11404,6 +114 27,18 @@3718 @@ -11404,6 +11448,18 @@ 3409 3719 } 3410 3720 … … 3425 3735 */ 3426 3736 static void 3427 @@ -11443,7 +114 78,7 @@3737 @@ -11443,7 +11499,7 @@ 3428 3738 } 3429 3739 else … … 3434 3744 3435 3745 /* 3436 @@ -11471,6 +115 06,7 @@3746 @@ -11471,6 +11527,7 @@ 3437 3747 } 3438 3748 … … 3442 3752 msg_scroll = TRUE; 3443 3753 msg_clr_eos(); 3444 @@ -13250,7 +13 286,7 @@3754 @@ -13250,7 +13307,7 @@ 3445 3755 if (argvars[2].v_type != VAR_UNKNOWN) 3446 3756 EMSG2(_(e_toomanyarg), "remove()"); … … 3451 3761 key = get_tv_string_chk(&argvars[1]); 3452 3762 if (key != NULL) 3453 @@ -13270,7 +133 06,7 @@3763 @@ -13270,7 +13327,7 @@ 3454 3764 else if (argvars[0].v_type != VAR_LIST) 3455 3765 EMSG2(_(e_listdictarg), "remove()"); … … 3460 3770 int error = FALSE; 3461 3771 3462 @@ -14157,11 +14 193,7 @@3772 @@ -14157,11 +14214,7 @@ 3463 3773 typval_T *rettv; 3464 3774 { … … 3472 3782 typval_T *varp; 3473 3783 char_u nbuf[NUMBUFLEN]; 3474 @@ -14178,12 +142 10,7 @@3784 @@ -14178,12 +14231,7 @@ 3475 3785 if (buf != NULL && varname != NULL && varp != NULL) 3476 3786 { … … 3485 3795 if (*varname == '&') 3486 3796 { 3487 @@ -14210,11 +142 37,7 @@3797 @@ -14210,11 +14258,7 @@ 3488 3798 } 3489 3799 … … 3497 3807 } 3498 3808 3499 @@ -14582,6 +146 05,18 @@3809 @@ -14582,6 +14626,18 @@ 3500 3810 } 3501 3811 … … 3516 3826 */ 3517 3827 static void 3518 @@ -16173,7 +162 08,7 @@3828 @@ -16173,7 +16229,7 @@ 3519 3829 curwin->w_curswant = get_dict_number(dict, (char_u *)"curswant"); 3520 3830 curwin->w_set_curswant = FALSE; … … 3525 3835 curwin->w_topfill = get_dict_number(dict, (char_u *)"topfill"); 3526 3836 #endif 3527 @@ -16218,6 +162 53,7 @@3837 @@ -16218,6 +16274,7 @@ 3528 3838 #ifdef FEAT_VIRTUALEDIT 3529 3839 dict_add_nr_str(dict, "coladd", (long)curwin->w_cursor.coladd, NULL); … … 3533 3843 3534 3844 dict_add_nr_str(dict, "topline", (long)curwin->w_topline, NULL); 3535 @@ -16438,9 +164 74,12 @@3845 @@ -16438,9 +16495,12 @@ 3536 3846 long i = 0; 3537 3847 long n; … … 3549 3859 3550 3860 if (fnump != NULL) 3551 @@ -16466,8 +165 05,9 @@3861 @@ -16466,8 +16526,9 @@ 3552 3862 #ifdef FEAT_VIRTUALEDIT 3553 3863 n = list_find_nr(l, i, NULL); … … 3561 3871 3562 3872 return OK; 3563 @@ -17759,6 +17 799,13 @@3873 @@ -17759,6 +17820,13 @@ 3564 3874 } 3565 3875 else /* add a new variable */ … … 3575 3885 for (p = varname; *p != NUL; ++p) 3576 3886 if (!eval_isnamec1(*p) && (p == varname || !VIM_ISDIGIT(*p)) 3577 @@ -17792,7 +178 39,7 @@3887 @@ -17792,7 +17860,7 @@ 3578 3888 } 3579 3889 … … 3584 3894 */ 3585 3895 static int 3586 @@ -17814,6 +178 61,23 @@3896 @@ -17814,6 +17882,23 @@ 3587 3897 } 3588 3898 … … 3608 3918 * Also give an error message, using "name". 3609 3919 */ 3610 @@ -18786,6 +188 50,7 @@3920 @@ -18786,6 +18871,7 @@ 3611 3921 if (dict_add(fudi.fd_dict, fudi.fd_di) == FAIL) 3612 3922 { … … 3616 3926 } 3617 3927 } 3618 @@ -18963,7 +190 28,8 @@3928 @@ -18963,7 +19049,8 @@ 3619 3929 else if (lead > 0) 3620 3930 { … … 3626 3936 /* It's "s:" or "<SID>" */ 3627 3937 if (current_SID <= 0) 3628 @@ -19685,6 +197 51,7 @@3938 @@ -19685,6 +19772,7 @@ 3629 3939 v->di_tv.vval.v_list = &fc.l_varlist; 3630 3940 vim_memset(&fc.l_varlist, 0, sizeof(list_T)); … … 3634 3944 /* 3635 3945 * Set a:firstline to "firstline" and a:lastline to "lastline". 3636 @@ -19761,7 +198 28,7 @@3946 @@ -19761,7 +19849,7 @@ 3637 3947 if (p_verbose >= 14) 3638 3948 { … … 3643 3953 3644 3954 msg_puts((char_u *)"("); 3645 @@ -19773,8 +198 40,8 @@3955 @@ -19773,8 +19861,8 @@ 3646 3956 msg_outnum((long)argvars[i].vval.v_number); 3647 3957 else … … 3654 3964 vim_free(tofree); 3655 3965 } 3656 @@ -19852,13 +199 19,13 @@3966 @@ -19852,13 +19940,13 @@ 3657 3967 else 3658 3968 { … … 3672 3982 diff -Naur vim70.orig/src/ex_cmds2.c vim70/src/ex_cmds2.c 3673 3983 --- vim70.orig/src/ex_cmds2.c 2006-04-17 03:19:07.000000000 -0700 3674 +++ vim70/src/ex_cmds2.c 2006-10- 13 01:02:52.000000000 -07003984 +++ vim70/src/ex_cmds2.c 2006-10-21 21:08:58.000000000 -0700 3675 3985 @@ -3648,13 +3648,13 @@ 3676 3986 * Return FALSE when not sourcing a file. … … 3693 4003 diff -Naur vim70.orig/src/ex_cmds.c vim70/src/ex_cmds.c 3694 4004 --- vim70.orig/src/ex_cmds.c 2006-04-22 11:56:56.000000000 -0700 3695 +++ vim70/src/ex_cmds.c 2006-10- 13 01:02:58.000000000 -07004005 +++ vim70/src/ex_cmds.c 2006-10-21 21:09:02.000000000 -0700 3696 4006 @@ -95,7 +95,10 @@ 3697 4007 _("<%s>%s%s %d, Hex %02x, Octal %03o"), … … 3804 4114 diff -Naur vim70.orig/src/ex_cmds.h vim70/src/ex_cmds.h 3805 4115 --- vim70.orig/src/ex_cmds.h 2006-04-07 02:44:46.000000000 -0700 3806 +++ vim70/src/ex_cmds.h 2006-10- 13 01:02:46.000000000 -07004116 +++ vim70/src/ex_cmds.h 2006-10-21 21:08:52.000000000 -0700 3807 4117 @@ -262,7 +262,7 @@ 3808 4118 EX(CMD_comclear, "comclear", ex_comclear, … … 3816 4126 diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c 3817 4127 --- vim70.orig/src/ex_docmd.c 2006-05-05 09:33:19.000000000 -0700 3818 +++ vim70/src/ex_docmd.c 2006-10- 13 01:03:00.000000000 -07004128 +++ vim70/src/ex_docmd.c 2006-10-21 21:09:04.000000000 -0700 3819 4129 @@ -58,9 +58,9 @@ 3820 4130 #endif … … 4088 4398 diff -Naur vim70.orig/src/ex_getln.c vim70/src/ex_getln.c 4089 4399 --- vim70.orig/src/ex_getln.c 2006-04-30 08:32:01.000000000 -0700 4090 +++ vim70/src/ex_getln.c 2006-10-13 01:03:05.000000000 -0700 4400 +++ vim70/src/ex_getln.c 2006-10-21 21:09:11.000000000 -0700 4401 @@ -86,7 +86,7 @@ 4402 static void draw_cmdline __ARGS((int start, int len)); 4403 static void save_cmdline __ARGS((struct cmdline_info *ccp)); 4404 static void restore_cmdline __ARGS((struct cmdline_info *ccp)); 4405 -static int cmdline_paste __ARGS((int regname, int literally)); 4406 +static int cmdline_paste __ARGS((int regname, int literally, int remcr)); 4407 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) 4408 static void redrawcmd_preedit __ARGS((void)); 4409 #endif 4091 4410 @@ -324,6 +324,9 @@ 4092 4411 */ … … 4099 4418 dont_scroll = FALSE; /* allow scrolling here */ 4100 4419 #endif 4420 @@ -1113,7 +1116,7 @@ 4421 #endif 4422 if (c != ESC) /* use ESC to cancel inserting register */ 4423 { 4424 - cmdline_paste(c, i == Ctrl_R); 4425 + cmdline_paste(c, i == Ctrl_R, FALSE); 4426 4427 #ifdef FEAT_EVAL 4428 /* When there was a serious error abort getting the 4429 @@ -1228,16 +1231,16 @@ 4430 goto cmdline_not_changed; /* Ignore mouse */ 4431 # ifdef FEAT_CLIPBOARD 4432 if (clip_star.available) 4433 - cmdline_paste('*', TRUE); 4434 + cmdline_paste('*', TRUE, TRUE); 4435 else 4436 # endif 4437 - cmdline_paste(0, TRUE); 4438 + cmdline_paste(0, TRUE, TRUE); 4439 redrawcmd(); 4440 goto cmdline_changed; 4441 4442 # ifdef FEAT_DND 4443 case K_DROP: 4444 - cmdline_paste('~', TRUE); 4445 + cmdline_paste('~', TRUE, FALSE); 4446 redrawcmd(); 4447 goto cmdline_changed; 4448 # endif 4101 4449 @@ -1753,6 +1756,11 @@ 4102 4450 end_pos = curwin->w_cursor; /* shutup gcc 4 */ … … 4120 4468 && im_is_preediting()) 4121 4469 { 4122 @@ -4521,7 +4529,9 @@ 4470 @@ -2882,9 +2890,10 @@ 4471 * return FAIL for failure, OK otherwise 4472 */ 4473 static int 4474 -cmdline_paste(regname, literally) 4475 +cmdline_paste(regname, literally, remcr) 4476 int regname; 4477 int literally; /* Insert text literally instead of "as typed" */ 4478 + int remcr; /* remove trailing CR */ 4479 { 4480 long i; 4481 char_u *arg; 4482 @@ -2960,7 +2969,7 @@ 4483 return OK; 4484 } 4485 4486 - return cmdline_paste_reg(regname, literally); 4487 + return cmdline_paste_reg(regname, literally, remcr); 4488 } 4489 4490 /* 4491 @@ -4521,7 +4530,9 @@ 4123 4492 flags |= EW_FILE | EW_EXEC; 4124 4493 … … 4131 4500 path = (char_u *)"."; 4132 4501 else 4133 @@ -4534,6 +454 4,9 @@4502 @@ -4534,6 +4545,9 @@ 4134 4503 ga_init2(&ga, (int)sizeof(char *), 10); 4135 4504 for (s = path; *s != NUL; s = e) … … 4141 4510 e = vim_strchr(s, ';'); 4142 4511 #else 4143 @@ -5982,6 +599 5,8 @@4512 @@ -5982,6 +5996,8 @@ 4144 4513 typestr[0] = cmdwin_type; 4145 4514 typestr[1] = NUL; … … 4152 4521 diff -Naur vim70.orig/src/fileio.c vim70/src/fileio.c 4153 4522 --- vim70.orig/src/fileio.c 2006-04-30 08:28:57.000000000 -0700 4154 +++ vim70/src/fileio.c 2006-10- 13 01:03:05.000000000 -07004523 +++ vim70/src/fileio.c 2006-10-21 21:09:05.000000000 -0700 4155 4524 @@ -316,6 +316,9 @@ 4156 4525 * display the line. */ … … 4274 4643 diff -Naur vim70.orig/src/getchar.c vim70/src/getchar.c 4275 4644 --- vim70.orig/src/getchar.c 2006-05-03 10:29:21.000000000 -0700 4276 +++ vim70/src/getchar.c 2006-10- 13 01:03:08.000000000 -07004645 +++ vim70/src/getchar.c 2006-10-21 21:09:07.000000000 -0700 4277 4646 @@ -1451,7 +1451,8 @@ 4278 4647 { … … 4360 4729 diff -Naur vim70.orig/src/globals.h vim70/src/globals.h 4361 4730 --- vim70.orig/src/globals.h 2006-04-30 06:16:23.000000000 -0700 4362 +++ vim70/src/globals.h 2006-10-13 01:02:55.000000000 -0700 4363 @@ -300,9 +300,16 @@ 4731 +++ vim70/src/globals.h 2006-10-21 21:09:09.000000000 -0700 4732 @@ -166,6 +166,7 @@ 4733 EXTERN int emsg_off INIT(= 0); /* don't display errors for now, 4734 unless 'debug' is set. */ 4735 EXTERN int info_message INIT(= FALSE); /* printing informative message */ 4736 +EXTERN int msg_hist_off INIT(= FALSE); /* don't add messages to history */ 4737 #ifdef FEAT_EVAL 4738 EXTERN int emsg_skip INIT(= 0); /* don't display errors for 4739 expression that is skipped */ 4740 @@ -300,9 +301,16 @@ 4364 4741 #endif 4365 4742 … … 4381 4758 4382 4759 #if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) 4383 @@ -1441,7 +144 8,7 @@4760 @@ -1441,7 +1449,7 @@ 4384 4761 EXTERN char_u e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)")); 4385 4762 #ifdef FEAT_EVAL … … 4392 4769 diff -Naur vim70.orig/src/gui_at_fs.c vim70/src/gui_at_fs.c 4393 4770 --- vim70.orig/src/gui_at_fs.c 2005-07-09 04:30:17.000000000 -0700 4394 +++ vim70/src/gui_at_fs.c 2006-10- 13 01:02:44.000000000 -07004771 +++ vim70/src/gui_at_fs.c 2006-10-21 21:08:51.000000000 -0700 4395 4772 @@ -1861,27 +1861,27 @@ 4396 4773 XtPointer pnew; … … 4508 4885 diff -Naur vim70.orig/src/gui_beval.c vim70/src/gui_beval.c 4509 4886 --- vim70.orig/src/gui_beval.c 2006-05-04 12:29:51.000000000 -0700 4510 +++ vim70/src/gui_beval.c 2006-10- 13 01:02:52.000000000 -07004887 +++ vim70/src/gui_beval.c 2006-10-21 21:08:58.000000000 -0700 4511 4888 @@ -926,7 +926,7 @@ 4512 4889 # define IS_NONPRINTABLE(c) (((c) < 0x20 && (c) != TAB && (c) != NL) \ … … 4547 4924 diff -Naur vim70.orig/src/gui.c vim70/src/gui.c 4548 4925 --- vim70.orig/src/gui.c 2006-05-03 04:00:59.000000000 -0700 4549 +++ vim70/src/gui.c 2006-10- 13 01:03:11.000000000 -07004926 +++ vim70/src/gui.c 2006-10-21 21:09:09.000000000 -0700 4550 4927 @@ -187,9 +187,10 @@ 4551 4928 #endif … … 4650 5027 diff -Naur vim70.orig/src/gui_gtk.c vim70/src/gui_gtk.c 4651 5028 --- vim70.orig/src/gui_gtk.c 2006-05-05 04:52:52.000000000 -0700 4652 +++ vim70/src/gui_gtk.c 2006-10- 13 01:03:11.000000000 -07005029 +++ vim70/src/gui_gtk.c 2006-10-21 21:09:09.000000000 -0700 4653 5030 @@ -957,15 +957,15 @@ 4654 5031 get_menu_position(vimmenu_T *menu) … … 4738 5115 diff -Naur vim70.orig/src/gui_gtk_x11.c vim70/src/gui_gtk_x11.c 4739 5116 --- vim70.orig/src/gui_gtk_x11.c 2006-05-04 23:58:59.000000000 -0700 4740 +++ vim70/src/gui_gtk_x11.c 2006-10- 13 01:02:52.000000000 -07005117 +++ vim70/src/gui_gtk_x11.c 2006-10-21 21:08:58.000000000 -0700 4741 5118 @@ -3233,12 +3233,12 @@ 4742 5119 on_select_tab( … … 4803 5180 diff -Naur vim70.orig/src/gui_xmebw.c vim70/src/gui_xmebw.c 4804 5181 --- vim70.orig/src/gui_xmebw.c 2006-04-30 08:32:32.000000000 -0700 4805 +++ vim70/src/gui_xmebw.c 2006-10- 13 01:02:44.000000000 -07005182 +++ vim70/src/gui_xmebw.c 2006-10-21 21:08:51.000000000 -0700 4806 5183 @@ -47,13 +47,13 @@ 4807 5184 #include "gui_xmebwp.h" … … 4903 5280 diff -Naur vim70.orig/src/hardcopy.c vim70/src/hardcopy.c 4904 5281 --- vim70.orig/src/hardcopy.c 2006-05-04 03:09:58.000000000 -0700 4905 +++ vim70/src/hardcopy.c 2006-10- 13 01:02:52.000000000 -07005282 +++ vim70/src/hardcopy.c 2006-10-21 21:08:58.000000000 -0700 4906 5283 @@ -1794,29 +1794,27 @@ 4907 5284 static int … … 5006 5383 diff -Naur vim70.orig/src/if_cscope.c vim70/src/if_cscope.c 5007 5384 --- vim70.orig/src/if_cscope.c 2006-04-18 01:54:15.000000000 -0700 5008 +++ vim70/src/if_cscope.c 2006-10- 13 01:02:52.000000000 -07005385 +++ vim70/src/if_cscope.c 2006-10-21 21:08:58.000000000 -0700 5009 5386 @@ -989,8 +989,7 @@ 5010 5387 { … … 5029 5406 diff -Naur vim70.orig/src/if_perl.xs vim70/src/if_perl.xs 5030 5407 --- vim70.orig/src/if_perl.xs 2006-03-06 10:57:16.000000000 -0800 5031 +++ vim70/src/if_perl.xs 2006-10- 13 01:02:49.000000000 -07005408 +++ vim70/src/if_perl.xs 2006-10-21 21:08:55.000000000 -0700 5032 5409 @@ -155,8 +155,8 @@ 5033 5410 static int (*perl_run)(PerlInterpreter*); … … 5144 5521 diff -Naur vim70.orig/src/if_python.c vim70/src/if_python.c 5145 5522 --- vim70.orig/src/if_python.c 2006-04-30 08:31:36.000000000 -0700 5146 +++ vim70/src/if_python.c 2006-10- 13 01:03:07.000000000 -07005523 +++ vim70/src/if_python.c 2006-10-21 21:09:06.000000000 -0700 5147 5524 @@ -1463,7 +1463,7 @@ 5148 5525 if (this->buf && this->buf != INVALID_BUFFER_VALUE) … … 5183 5560 diff -Naur vim70.orig/src/if_ruby.c vim70/src/if_ruby.c 5184 5561 --- vim70.orig/src/if_ruby.c 2006-04-30 08:37:52.000000000 -0700 5185 +++ vim70/src/if_ruby.c 2006-10- 13 01:02:49.000000000 -07005562 +++ vim70/src/if_ruby.c 2006-10-21 21:08:55.000000000 -0700 5186 5563 @@ -643,11 +643,14 @@ 5187 5564 … … 5298 5675 diff -Naur vim70.orig/src/macros.h vim70/src/macros.h 5299 5676 --- vim70.orig/src/macros.h 2006-03-01 04:01:10.000000000 -0800 5300 +++ vim70/src/macros.h 2006-10- 13 01:02:56.000000000 -07005677 +++ vim70/src/macros.h 2006-10-21 21:09:01.000000000 -0700 5301 5678 @@ -276,3 +276,9 @@ 5302 5679 # define MB_CHARLEN(p) STRLEN(p) … … 5311 5688 diff -Naur vim70.orig/src/main.c vim70/src/main.c 5312 5689 --- vim70.orig/src/main.c 2006-05-03 10:36:44.000000000 -0700 5313 +++ vim70/src/main.c 2006-10- 13 01:02:55.000000000 -07005690 +++ vim70/src/main.c 2006-10-21 21:09:01.000000000 -0700 5314 5691 @@ -564,7 +564,11 @@ 5315 5692 */ … … 5400 5777 diff -Naur vim70.orig/src/Makefile vim70/src/Makefile 5401 5778 --- vim70.orig/src/Makefile 2006-05-07 06:25:27.000000000 -0700 5402 +++ vim70/src/Makefile 2006-10- 13 01:02:54.000000000 -07005779 +++ vim70/src/Makefile 2006-10-21 21:09:00.000000000 -0700 5403 5780 @@ -2177,6 +2177,7 @@ 5404 5781 cd $(SHADOWDIR)/xxd; ln -s ../../xxd/*.[ch] ../../xxd/Make* . … … 5420 5797 diff -Naur vim70.orig/src/mbyte.c vim70/src/mbyte.c 5421 5798 --- vim70.orig/src/mbyte.c 2006-04-30 04:51:01.000000000 -0700 5422 +++ vim70/src/mbyte.c 2006-10- 13 01:02:52.000000000 -07005799 +++ vim70/src/mbyte.c 2006-10-21 21:08:58.000000000 -0700 5423 5800 @@ -311,7 +311,11 @@ 5424 5801 … … 5502 5879 diff -Naur vim70.orig/src/memfile.c vim70/src/memfile.c 5503 5880 --- vim70.orig/src/memfile.c 2006-03-06 00:59:15.000000000 -0800 5504 +++ vim70/src/memfile.c 2006-10- 13 01:03:06.000000000 -07005881 +++ vim70/src/memfile.c 2006-10-21 21:09:06.000000000 -0700 5505 5882 @@ -517,7 +517,7 @@ 5506 5883 mf_ins_free(mfp, hp); /* put *hp in the free list */ … … 5535 5912 diff -Naur vim70.orig/src/memline.c vim70/src/memline.c 5536 5913 --- vim70.orig/src/memline.c 2006-04-20 14:00:21.000000000 -0700 5537 +++ vim70/src/memline.c 2006-10- 13 01:03:11.000000000 -07005914 +++ vim70/src/memline.c 2006-10-21 21:09:09.000000000 -0700 5538 5915 @@ -215,7 +215,7 @@ 5539 5916 #define ML_FLUSH 0x02 /* flush locked block */ … … 5611 5988 diff -Naur vim70.orig/src/menu.c vim70/src/menu.c 5612 5989 --- vim70.orig/src/menu.c 2006-05-03 10:30:48.000000000 -0700 5613 +++ vim70/src/menu.c 2006-10- 13 01:02:50.000000000 -07005990 +++ vim70/src/menu.c 2006-10-21 21:08:56.000000000 -0700 5614 5991 @@ -511,6 +511,14 @@ 5615 5992 * name (without mnemonic and accelerator text). */ … … 5688 6065 diff -Naur vim70.orig/src/message.c vim70/src/message.c 5689 6066 --- vim70.orig/src/message.c 2006-05-06 13:07:37.000000000 -0700 5690 +++ vim70/src/message.c 2006-10-13 01:03:09.000000000 -0700 5691 @@ -1925,7 +1925,8 @@ 6067 +++ vim70/src/message.c 2006-10-21 21:09:09.000000000 -0700 6068 @@ -53,7 +53,6 @@ 6069 static struct msg_hist *first_msg_hist = NULL; 6070 static struct msg_hist *last_msg_hist = NULL; 6071 static int msg_hist_len = 0; 6072 -static int msg_hist_off = FALSE; /* don't add messages to history */ 6073 6074 /* 6075 * When writing messages to the screen, there are many different situations. 6076 @@ -1925,7 +1924,8 @@ 5692 6077 * If screen is completely filled and 'more' is set then wait 5693 6078 * for a character. … … 5699 6084 { 5700 6085 #ifdef FEAT_CON_DIALOG 5701 @@ -4123,8 +412 4,6 @@6086 @@ -4123,8 +4123,6 @@ 5702 6087 case 'c': 5703 6088 case 's': … … 5708 6093 switch (fmt_spec) 5709 6094 { 5710 @@ -4175,15 +417 4,16 @@6095 @@ -4175,15 +4173,16 @@ 5711 6096 str_arg_l = 0; 5712 6097 else … … 5733 6118 diff -Naur vim70.orig/src/misc1.c vim70/src/misc1.c 5734 6119 --- vim70.orig/src/misc1.c 2006-04-30 08:30:02.000000000 -0700 5735 +++ vim70/src/misc1.c 2006-10-13 01:03:06.000000000 -0700 5736 @@ -3016,6 +3016,7 @@ 6120 +++ vim70/src/misc1.c 2006-10-21 21:09:10.000000000 -0700 6121 @@ -2842,7 +2842,8 @@ 6122 6123 #ifdef FEAT_AUTOCMD 6124 /* when the cursor line is changed always trigger CursorMoved */ 6125 - if (lnum <= curwin->w_cursor.lnum && lnume > curwin->w_cursor.lnum) 6126 + if (lnum <= curwin->w_cursor.lnum 6127 + && lnume + (xtra < 0 ? -xtra : xtra) > curwin->w_cursor.lnum) 6128 last_cursormoved.lnum = 0; 6129 #endif 6130 } 6131 @@ -3016,6 +3017,7 @@ 5737 6132 int len = 0; 5738 6133 int n; … … 5742 6137 mapped_ctrl_c = FALSE; /* mappings are not used here */ 5743 6138 for (;;) 5744 @@ -3034,11 +303 5,16 @@6139 @@ -3034,11 +3036,16 @@ 5745 6140 /* Replace zero and CSI by a special key code. */ 5746 6141 n = fix_input_buffer(buf + len, n, FALSE); … … 5761 6156 if (n > 0) 5762 6157 len = n; 5763 @@ -3196,14 +320 2,12 @@6158 @@ -3196,14 +3203,12 @@ 5764 6159 else 5765 6160 MSG_PUTS(_("Choice number (<Enter> cancels): ")); … … 5780 6175 i = get_number(TRUE, mouse_used); 5781 6176 if (KeyTyped) 5782 @@ -4492,7 +449 6,7 @@6177 @@ -4492,7 +4497,7 @@ 5783 6178 int l = mb_ptr2len(s); 5784 6179 … … 5789 6184 # endif 5790 6185 } 5791 @@ -8070,9 +807 4,20 @@6186 @@ -8070,9 +8075,20 @@ 5792 6187 } 5793 6188 if (*that == '"' && *(that + 1) != NUL) … … 5815 6210 diff -Naur vim70.orig/src/misc2.c vim70/src/misc2.c 5816 6211 --- vim70.orig/src/misc2.c 2006-05-04 05:12:38.000000000 -0700 5817 +++ vim70/src/misc2.c 2006-10- 13 01:03:07.000000000 -07006212 +++ vim70/src/misc2.c 2006-10-21 21:09:06.000000000 -0700 5818 6213 @@ -1229,6 +1229,94 @@ 5819 6214 return escaped_string; … … 5913 6308 diff -Naur vim70.orig/src/netbeans.c vim70/src/netbeans.c 5914 6309 --- vim70.orig/src/netbeans.c 2006-04-22 11:00:05.000000000 -0700 5915 +++ vim70/src/netbeans.c 2006-10- 13 01:02:52.000000000 -07006310 +++ vim70/src/netbeans.c 2006-10-21 21:08:58.000000000 -0700 5916 6311 @@ -103,7 +103,7 @@ 5917 6312 static int inputHandler = -1; /* simply ret.value of WSAAsyncSelect() */ … … 6083 6478 diff -Naur vim70.orig/src/normal.c vim70/src/normal.c 6084 6479 --- vim70.orig/src/normal.c 2006-04-29 06:11:18.000000000 -0700 6085 +++ vim70/src/normal.c 2006-10- 13 01:03:10.000000000 -07006480 +++ vim70/src/normal.c 2006-10-21 21:09:11.000000000 -0700 6086 6481 @@ -1477,14 +1477,17 @@ 6087 6482 } … … 6108 6503 /* In Select mode, a linewise selection is operated upon like a 6109 6504 * characterwise selection. */ 6110 @@ -2504,7 +2507,8 @@ 6505 @@ -2377,11 +2380,20 @@ 6506 /* 6507 * If visual was active, yank the highlighted text and put it 6508 * before the mouse pointer position. 6509 + * In Select mode replace the highlighted text with the clipboard. 6510 */ 6511 if (VIsual_active) 6512 { 6513 - stuffcharReadbuff('y'); 6514 - stuffcharReadbuff(K_MIDDLEMOUSE); 6515 + if (VIsual_select) 6516 + { 6517 + stuffcharReadbuff(Ctrl_G); 6518 + stuffReadbuff((char_u *)"\"+p"); 6519 + } 6520 + else 6521 + { 6522 + stuffcharReadbuff('y'); 6523 + stuffcharReadbuff(K_MIDDLEMOUSE); 6524 + } 6525 do_always = TRUE; /* ignore 'mouse' setting next time */ 6526 return FALSE; 6527 } 6528 @@ -2504,7 +2516,8 @@ 6111 6529 * NOTE: Ignore right button down and drag mouse events. 6112 6530 * Windows only shows the popup menu on the button up event. … … 6118 6536 return FALSE; 6119 6537 #endif 6120 @@ -4126,7 +413 0,7 @@6538 @@ -4126,7 +4139,7 @@ 6121 6539 int save_p_ws; 6122 6540 int save_p_scs; … … 6127 6545 if ((pat = alloc(len + 7)) == NULL) 6128 6546 return FAIL; 6129 @@ -4146,7 +415 0,7 @@6547 @@ -4146,7 +4159,7 @@ 6130 6548 * With "gd" Search back for the start of the current function, then go 6131 6549 * back until a blank line. If this fails go to line 1. … … 6138 6556 diff -Naur vim70.orig/src/ops.c vim70/src/ops.c 6139 6557 --- vim70.orig/src/ops.c 2006-04-30 08:13:44.000000000 -0700 6140 +++ vim70/src/ops.c 2006-10- 13 01:03:09.000000000 -07006558 +++ vim70/src/ops.c 2006-10-21 21:09:11.000000000 -0700 6141 6559 @@ -770,6 +770,7 @@ 6142 6560 { … … 6162 6580 return rv; 6163 6581 } 6164 @@ -2413,6 +2421,7 @@ 6582 @@ -1472,9 +1480,10 @@ 6583 * return FAIL for failure, OK otherwise 6584 */ 6585 int 6586 -cmdline_paste_reg(regname, literally) 6587 +cmdline_paste_reg(regname, literally, remcr) 6588 int regname; 6589 int literally; /* Insert text literally instead of "as typed" */ 6590 + int remcr; /* don't add trailing CR */ 6591 { 6592 long i; 6593 6594 @@ -1486,8 +1495,13 @@ 6595 { 6596 cmdline_paste_str(y_current->y_array[i], literally); 6597 6598 - /* insert ^M between lines and after last line if type is MLINE */ 6599 - if (y_current->y_type == MLINE || i < y_current->y_size - 1) 6600 + /* Insert ^M between lines and after last line if type is MLINE. 6601 + * Don't do this when "remcr" is TRUE and the next line is empty. */ 6602 + if (y_current->y_type == MLINE 6603 + || (i < y_current->y_size - 1 6604 + && !(remcr 6605 + && i == y_current->y_size - 2 6606 + && *y_current->y_array[i + 1] == NUL))) 6607 cmdline_paste_str((char_u *)"\r", literally); 6608 6609 /* Check for CTRL-C, in case someone tries to paste a few thousand 6610 @@ -2413,6 +2427,7 @@ 6165 6611 else 6166 6612 { … … 6170 6616 /* Works just like an 'i'nsert on the next character. */ 6171 6617 if (!lineempty(curwin->w_cursor.lnum) 6172 @@ -3492,8 +350 1,15 @@6618 @@ -3492,8 +3507,15 @@ 6173 6619 # endif 6174 6620 if (flags & PUT_CURSEND) … … 6188 6634 diff -Naur vim70.orig/src/option.c vim70/src/option.c 6189 6635 --- vim70.orig/src/option.c 2006-05-03 10:32:28.000000000 -0700 6190 +++ vim70/src/option.c 2006-10- 13 01:02:56.000000000 -07006636 +++ vim70/src/option.c 2006-10-21 21:09:11.000000000 -0700 6191 6637 @@ -2294,7 +2294,7 @@ 6192 6638 {(char_u *)0L, (char_u *)0L} … … 6198 6644 (char_u *)&p_sps, PV_NONE, 6199 6645 {(char_u *)"best", (char_u *)0L} 6646 @@ -3397,7 +3397,7 @@ 6647 } 6648 else if (flags & P_NUM) 6649 { 6650 - if (varp == (char_u *)PV_SCROLL) 6651 + if (options[opt_idx].indir == PV_SCROLL) 6652 win_comp_scroll(curwin); 6653 else 6654 { 6200 6655 @@ -5227,13 +5227,13 @@ 6201 6656 case PV_STL: return &curwin->w_p_stl_flags; … … 6295 6750 diff -Naur vim70.orig/src/os_unix.c vim70/src/os_unix.c 6296 6751 --- vim70.orig/src/os_unix.c 2006-05-01 01:13:15.000000000 -0700 6297 +++ vim70/src/os_unix.c 2006-10- 13 01:02:52.000000000 -07006752 +++ vim70/src/os_unix.c 2006-10-21 21:08:58.000000000 -0700 6298 6753 @@ -3934,7 +3934,7 @@ 6299 6754 { … … 6354 6809 diff -Naur vim70.orig/src/popupmnu.c vim70/src/popupmnu.c 6355 6810 --- vim70.orig/src/popupmnu.c 2006-04-20 13:18:37.000000000 -0700 6356 +++ vim70/src/popupmnu.c 2006-10- 13 01:02:50.000000000 -07006811 +++ vim70/src/popupmnu.c 2006-10-21 21:08:56.000000000 -0700 6357 6812 @@ -552,6 +552,9 @@ 6358 6813 { … … 6367 6822 diff -Naur vim70.orig/src/proto/buffer.pro vim70/src/proto/buffer.pro 6368 6823 --- vim70.orig/src/proto/buffer.pro 2006-05-07 06:08:29.000000000 -0700 6369 +++ vim70/src/proto/buffer.pro 2006-10- 13 01:02:56.000000000 -07006824 +++ vim70/src/proto/buffer.pro 2006-10-21 21:09:01.000000000 -0700 6370 6825 @@ -10,6 +10,7 @@ 6371 6826 extern int do_buffer __ARGS((int action, int start, int dir, int count, int forceit)); … … 6376 6831 extern void free_buf_options __ARGS((buf_T *buf, int free_p_ff)); 6377 6832 extern int buflist_getfile __ARGS((int n, linenr_T lnum, int options, int forceit)); 6833 diff -Naur vim70.orig/src/proto/eval.pro vim70/src/proto/eval.pro 6834 --- vim70.orig/src/proto/eval.pro 2006-05-07 06:08:33.000000000 -0700 6835 +++ vim70/src/proto/eval.pro 2006-10-21 21:09:10.000000000 -0700 6836 @@ -44,7 +44,7 @@ 6837 extern char_u *get_user_var_name __ARGS((expand_T *xp, int idx)); 6838 extern list_T *list_alloc __ARGS((void)); 6839 extern void list_unref __ARGS((list_T *l)); 6840 -extern void list_free __ARGS((list_T *l)); 6841 +extern void list_free __ARGS((list_T *l, int recurse)); 6842 extern dictitem_T *dict_lookup __ARGS((hashitem_T *hi)); 6843 extern int list_append_dict __ARGS((list_T *list, dict_T *dict)); 6844 extern int garbage_collect __ARGS((void)); 6378 6845 diff -Naur vim70.orig/src/proto/menu.pro vim70/src/proto/menu.pro 6379 6846 --- vim70.orig/src/proto/menu.pro 2006-05-07 06:08:51.000000000 -0700 6380 +++ vim70/src/proto/menu.pro 2006-10- 13 01:02:50.000000000 -07006847 +++ vim70/src/proto/menu.pro 2006-10-21 21:08:56.000000000 -0700 6381 6848 @@ -10,6 +10,7 @@ 6382 6849 extern int menu_is_child_of_popup __ARGS((vimmenu_T *menu)); … … 6389 6856 diff -Naur vim70.orig/src/proto/misc2.pro vim70/src/proto/misc2.pro 6390 6857 --- vim70.orig/src/proto/misc2.pro 2006-05-07 06:08:54.000000000 -0700 6391 +++ vim70/src/proto/misc2.pro 2006-10- 13 01:03:07.000000000 -07006858 +++ vim70/src/proto/misc2.pro 2006-10-21 21:09:06.000000000 -0700 6392 6859 @@ -29,6 +29,7 @@ 6393 6860 extern char_u *vim_strnsave __ARGS((char_u *string, int len)); … … 6398 6865 extern char_u *vim_strnsave_up __ARGS((char_u *string, int len)); 6399 6866 extern void vim_strup __ARGS((char_u *p)); 6867 diff -Naur vim70.orig/src/proto/ops.pro vim70/src/proto/ops.pro 6868 --- vim70.orig/src/proto/ops.pro 2006-05-07 06:08:58.000000000 -0700 6869 +++ vim70/src/proto/ops.pro 2006-10-21 21:09:11.000000000 -0700 6870 @@ -20,7 +20,7 @@ 6871 extern int do_execreg __ARGS((int regname, int colon, int addcr)); 6872 extern int insert_reg __ARGS((int regname, int literally)); 6873 extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); 6874 -extern int cmdline_paste_reg __ARGS((int regname, int literally)); 6875 +extern int cmdline_paste_reg __ARGS((int regname, int literally, int remcr)); 6876 extern void adjust_clip_reg __ARGS((int *rp)); 6877 extern int op_delete __ARGS((oparg_T *oap)); 6878 extern int op_replace __ARGS((oparg_T *oap, int c)); 6400 6879 diff -Naur vim70.orig/src/proto/undo.pro vim70/src/proto/undo.pro 6401 6880 --- vim70.orig/src/proto/undo.pro 2006-05-07 06:09:11.000000000 -0700 6402 +++ vim70/src/proto/undo.pro 2006-10- 13 01:02:47.000000000 -07006881 +++ vim70/src/proto/undo.pro 2006-10-21 21:08:53.000000000 -0700 6403 6882 @@ -4,6 +4,7 @@ 6404 6883 extern int u_savesub __ARGS((linenr_T lnum)); … … 6411 6890 diff -Naur vim70.orig/src/quickfix.c vim70/src/quickfix.c 6412 6891 --- vim70.orig/src/quickfix.c 2006-05-03 00:47:42.000000000 -0700 6413 +++ vim70/src/quickfix.c 2006-10- 13 01:02:56.000000000 -07006892 +++ vim70/src/quickfix.c 2006-10-21 21:09:11.000000000 -0700 6414 6893 @@ -500,8 +500,6 @@ 6415 6894 { … … 6507 6986 if (len > CMDBUFFSIZE - 5) 6508 6987 len = CMDBUFFSIZE - 5; 6509 @@ -2429,32 +2461,19 @@ 6988 @@ -1554,10 +1586,30 @@ 6989 } 6990 6991 /* 6992 - * If there is only one window, create a new one above the quickfix 6993 - * window. 6994 + * If no usable window is found and 'switchbuf' is set to 'usetab' 6995 + * then search in other tabs. 6996 */ 6997 - if (firstwin == lastwin || !usable_win) 6998 + if (!usable_win && vim_strchr(p_swb, 'a') != NULL) 6999 + { 7000 + tabpage_T *tp; 7001 + win_T *wp; 7002 + 7003 + FOR_ALL_TAB_WINDOWS(tp, wp) 7004 + { 7005 + if (wp->w_buffer->b_fnum == qf_ptr->qf_fnum) 7006 + { 7007 + goto_tabpage_win(tp, wp); 7008 + usable_win = 1; 7009 + break; 7010 + } 7011 + } 7012 + } 7013 + 7014 + /* 7015 + * If there is only one window and is the quickfix window, create a new 7016 + * one above the quickfix window. 7017 + */ 7018 + if (((firstwin == lastwin) && bt_quickfix(curbuf)) || !usable_win) 7019 { 7020 ll_ref = curwin->w_llist_ref; 7021 7022 @@ -2429,32 +2481,19 @@ 6510 7023 qf_info_T *qi; 6511 7024 { … … 6540 7053 (void)qf_win_pos_update(qi, 0); 6541 7054 } 6542 @@ -2943,10 +29 62,8 @@7055 @@ -2943,10 +2982,8 @@ 6543 7056 #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) 6544 7057 char_u *save_ei = NULL; … … 6552 7065 int flags = 0; 6553 7066 colnr_T col; 6554 @@ -3167,24 +3 184,13 @@7067 @@ -3167,24 +3204,13 @@ 6555 7068 * need to be done now, in that buffer. And the modelines 6556 7069 * need to be done (again). But not the window-local … … 6577 7090 } 6578 7091 } 6579 @@ -3285,11 +3 291,7 @@7092 @@ -3285,11 +3311,7 @@ 6580 7093 { 6581 7094 buf_T *newbuf; … … 6589 7102 /* Allocate a buffer without putting it in the buffer list. */ 6590 7103 newbuf = buflist_new(NULL, NULL, (linenr_T)1, BLN_DUMMY); 6591 @@ -3299,13 +33 01,8 @@7104 @@ -3299,13 +3321,8 @@ 6592 7105 /* Init the options. */ 6593 7106 buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP); … … 6603 7116 /* Need to set the filename for autocommands. */ 6604 7117 (void)setfname(curbuf, fname, NULL, FALSE); 6605 @@ -3336,13 +33 33,8 @@7118 @@ -3336,13 +3353,8 @@ 6606 7119 } 6607 7120 } … … 6617 7130 if (!buf_valid(newbuf)) 6618 7131 return NULL; 6619 @@ -3434,8 +34 26,10 @@7132 @@ -3434,8 +3446,10 @@ 6620 7133 || dict_add_nr_str(dict, "col", (long)qfp->qf_col, NULL) == FAIL 6621 7134 || dict_add_nr_str(dict, "vcol", (long)qfp->qf_viscol, NULL) == FAIL … … 6632 7145 diff -Naur vim70.orig/src/regexp.c vim70/src/regexp.c 6633 7146 --- vim70.orig/src/regexp.c 2006-04-30 08:31:50.000000000 -0700 6634 +++ vim70/src/regexp.c 2006-10-13 01:02:53.000000000 -0700 7147 +++ vim70/src/regexp.c 2006-10-21 21:09:11.000000000 -0700 7148 @@ -3777,8 +3777,8 @@ 7149 7150 op = OP(scan); 7151 /* Check for character class with NL added. */ 7152 - if (!reg_line_lbr && WITH_NL(op) && *reginput == NUL 7153 - && reglnum <= reg_maxline) 7154 + if (!reg_line_lbr && WITH_NL(op) && REG_MULTI 7155 + && *reginput == NUL && reglnum <= reg_maxline) 7156 { 7157 reg_nextline(); 7158 } 6635 7159 @@ -3912,7 +3912,7 @@ 6636 7160 { … … 6663 7187 opnd = OPERAND(scan); 6664 7188 /* Safety check (just in case 'encoding' was changed since 7189 @@ -4855,8 +4855,8 @@ 7190 break; 7191 7192 case NEWL: 7193 - if ((c != NUL || reglnum > reg_maxline || reg_line_lbr) 7194 - && (c != '\n' || !reg_line_lbr)) 7195 + if ((c != NUL || !REG_MULTI || reglnum > reg_maxline 7196 + || reg_line_lbr) && (c != '\n' || !reg_line_lbr)) 7197 status = RA_NOMATCH; 7198 else if (reg_line_lbr) 7199 ADVANCE_REGINPUT(); 7200 @@ -5316,8 +5316,8 @@ 7201 ++count; 7202 mb_ptr_adv(scan); 7203 } 7204 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr 7205 - || count == maxcount) 7206 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7207 + || reg_line_lbr || count == maxcount) 7208 break; 7209 ++count; /* count the line-break */ 7210 reg_nextline(); 7211 @@ -5341,7 +5341,8 @@ 7212 } 7213 else if (*scan == NUL) 7214 { 7215 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7216 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7217 + || reg_line_lbr) 7218 break; 7219 reg_nextline(); 7220 scan = reginput; 7221 @@ -5370,7 +5371,8 @@ 7222 } 7223 else if (*scan == NUL) 7224 { 7225 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7226 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7227 + || reg_line_lbr) 7228 break; 7229 reg_nextline(); 7230 scan = reginput; 7231 @@ -5399,7 +5401,8 @@ 7232 } 7233 else if (*scan == NUL) 7234 { 7235 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7236 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7237 + || reg_line_lbr) 7238 break; 7239 reg_nextline(); 7240 scan = reginput; 7241 @@ -5424,7 +5427,8 @@ 7242 { 7243 if (*scan == NUL) 7244 { 7245 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7246 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7247 + || reg_line_lbr) 7248 break; 7249 reg_nextline(); 7250 scan = reginput; 7251 @@ -5454,7 +5458,8 @@ 7252 #endif 7253 if (*scan == NUL) 7254 { 7255 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7256 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7257 + || reg_line_lbr) 7258 break; 7259 reg_nextline(); 7260 scan = reginput; 7261 @@ -5617,7 +5622,8 @@ 7262 #endif 7263 if (*scan == NUL) 7264 { 7265 - if (!WITH_NL(OP(p)) || reglnum > reg_maxline || reg_line_lbr) 7266 + if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > reg_maxline 7267 + || reg_line_lbr) 7268 break; 7269 reg_nextline(); 7270 scan = reginput; 7271 @@ -5646,8 +5652,8 @@ 7272 7273 case NEWL: 7274 while (count < maxcount 7275 - && ((*scan == NUL && reglnum <= reg_maxline && !reg_line_lbr) 7276 - || (*scan == '\n' && reg_line_lbr))) 7277 + && ((*scan == NUL && reglnum <= reg_maxline && !reg_line_lbr 7278 + && REG_MULTI) || (*scan == '\n' && reg_line_lbr))) 7279 { 7280 count++; 7281 if (reg_line_lbr) 6665 7282 diff -Naur vim70.orig/src/screen.c vim70/src/screen.c 6666 7283 --- vim70.orig/src/screen.c 2006-05-05 03:13:55.000000000 -0700 6667 +++ vim70/src/screen.c 2006-10- 13 01:03:09.000000000 -07007284 +++ vim70/src/screen.c 2006-10-21 21:09:08.000000000 -0700 6668 7285 @@ -1228,7 +1228,14 @@ 6669 7286 { … … 6841 7458 diff -Naur vim70.orig/src/search.c vim70/src/search.c 6842 7459 --- vim70.orig/src/search.c 2006-05-05 05:12:13.000000000 -0700 6843 +++ vim70/src/search.c 2006-10- 13 01:02:53.000000000 -07007460 +++ vim70/src/search.c 2006-10-21 21:09:09.000000000 -0700 6844 7461 @@ -1259,7 +1259,7 @@ 6845 7462 /* … … 6851 7468 if (spats[0].off.line) /* Add the offset to the line number. */ 6852 7469 { 6853 @@ -4826,15 +4826,20 @@ 7470 @@ -4688,6 +4688,7 @@ 7471 #ifdef FEAT_INS_EXPAND 7472 if (action == ACTION_EXPAND) 7473 { 7474 + msg_hist_off = TRUE; /* reset in msg_trunc_attr() */ 7475 vim_snprintf((char*)IObuff, IOSIZE, 7476 _("Scanning included file: %s"), 7477 (char *)new_fname); 7478 @@ -4826,15 +4827,20 @@ 6854 7479 6855 7480 if ((compl_cont_status & CONT_ADDING) && i == compl_length) … … 6879 7504 6880 7505 /* we read a line, set "already" to check this "line" later 6881 @@ -4871,7 +487 6,7 @@7506 @@ -4871,7 +4877,7 @@ 6882 7507 goto exit_matched; 6883 7508 } … … 6890 7515 diff -Naur vim70.orig/src/spell.c vim70/src/spell.c 6891 7516 --- vim70.orig/src/spell.c 2006-05-05 00:49:58.000000000 -0700 6892 +++ vim70/src/spell.c 2006-10- 13 01:03:05.000000000 -07007517 +++ vim70/src/spell.c 2006-10-21 21:09:05.000000000 -0700 6893 7518 @@ -1483,7 +1483,7 @@ 6894 7519 else if ((mode == FIND_COMPOUND || mode == FIND_KEEPCOMPOUND … … 7221 7846 diff -Naur vim70.orig/src/structs.h vim70/src/structs.h 7222 7847 --- vim70.orig/src/structs.h 2006-04-09 10:57:46.000000000 -0700 7223 +++ vim70/src/structs.h 2006-10- 13 01:02:50.000000000 -07007848 +++ vim70/src/structs.h 2006-10-21 21:08:55.000000000 -0700 7224 7849 @@ -2213,18 +2213,20 @@ 7225 7850 … … 7247 7872 diff -Naur vim70.orig/src/syntax.c vim70/src/syntax.c 7248 7873 --- vim70.orig/src/syntax.c 2006-04-26 05:49:45.000000000 -0700 7249 +++ vim70/src/syntax.c 2006-10- 13 01:03:08.000000000 -07007874 +++ vim70/src/syntax.c 2006-10-21 21:09:07.000000000 -0700 7250 7875 @@ -977,6 +977,7 @@ 7251 7876 { … … 7339 7964 diff -Naur vim70.orig/src/tag.c vim70/src/tag.c 7340 7965 --- vim70.orig/src/tag.c 2006-04-27 06:11:21.000000000 -0700 7341 +++ vim70/src/tag.c 2006-10-13 01:02:59.000000000 -0700 7966 +++ vim70/src/tag.c 2006-10-21 21:09:10.000000000 -0700 7967 @@ -911,7 +911,7 @@ 7968 7969 set_errorlist(curwin, list, ' '); 7970 7971 - list_free(list); 7972 + list_free(list, TRUE); 7973 7974 cur_match = 0; /* Jump to the first tag */ 7975 } 7342 7976 @@ -3787,6 +3787,7 @@ 7343 7977 { … … 7372 8006 diff -Naur vim70.orig/src/term.c vim70/src/term.c 7373 8007 --- vim70.orig/src/term.c 2006-05-03 10:34:57.000000000 -0700 7374 +++ vim70/src/term.c 2006-10- 13 01:02:50.000000000 -07008008 +++ vim70/src/term.c 2006-10-21 21:08:56.000000000 -0700 7375 8009 @@ -4783,6 +4783,14 @@ 7376 8010 return -1; … … 7390 8024 diff -Naur vim70.orig/src/testdir/test56.in vim70/src/testdir/test56.in 7391 8025 --- vim70.orig/src/testdir/test56.in 2005-05-18 08:37:37.000000000 -0700 7392 +++ vim70/src/testdir/test56.in 2006-10- 13 01:02:56.000000000 -07008026 +++ vim70/src/testdir/test56.in 2006-10-21 21:09:01.000000000 -0700 7393 8027 @@ -3,7 +3,7 @@ 7394 8028 STARTTEST … … 7402 8036 diff -Naur vim70.orig/src/ui.c vim70/src/ui.c 7403 8037 --- vim70.orig/src/ui.c 2006-03-27 11:15:09.000000000 -0800 7404 +++ vim70/src/ui.c 2006-10- 13 01:02:53.000000000 -07008038 +++ vim70/src/ui.c 2006-10-21 21:08:58.000000000 -0700 7405 8039 @@ -1137,7 +1137,6 @@ 7406 8040 int len; … … 7422 8056 diff -Naur vim70.orig/src/undo.c vim70/src/undo.c 7423 8057 --- vim70.orig/src/undo.c 2006-04-21 02:30:59.000000000 -0700 7424 +++ vim70/src/undo.c 2006-10- 13 01:02:53.000000000 -07008058 +++ vim70/src/undo.c 2006-10-21 21:08:58.000000000 -0700 7425 8059 @@ -84,7 +84,6 @@ 7426 8060 static void u_unch_branch __ARGS((u_header_T *uhp)); … … 7487 8121 diff -Naur vim70.orig/src/version.c vim70/src/version.c 7488 8122 --- vim70.orig/src/version.c 2006-05-03 00:50:42.000000000 -0700 7489 +++ vim70/src/version.c 2006-10- 13 01:03:11.000000000 -07007490 @@ -667,6 +667,2 46@@8123 +++ vim70/src/version.c 2006-10-21 21:09:11.000000000 -0700 8124 @@ -667,6 +667,272 @@ 7491 8125 static int included_patches[] = 7492 8126 { /* Add new patch number below this line */ 7493 8127 /**/ 8128 + 146, 8129 +/**/ 8130 + 145, 8131 +/**/ 8132 + 144, 8133 +/**/ 8134 + 143, 8135 +/**/ 8136 + 142, 8137 +/**/ 8138 + 141, 8139 +/**/ 8140 + 140, 8141 +/**/ 8142 + 139, 8143 +/**/ 8144 + 137, 8145 +/**/ 8146 + 136, 8147 +/**/ 8148 + 135, 8149 +/**/ 8150 + 134, 8151 +/**/ 8152 + 133, 8153 +/**/ 7494 8154 + 129, 7495 8155 +/**/ … … 7735 8395 }; 7736 8396 7737 @@ -731,7 +9 71,11 @@8397 @@ -731,7 +997,11 @@ 7738 8398 /* Only MS VC 4.1 and earlier can do Win32s */ 7739 8399 MSG_PUTS(_("\nMS-Windows 16/32 bit GUI version")); … … 7747 8407 if (gui_is_win32s()) 7748 8408 MSG_PUTS(_(" in Win32s mode")); 7749 diff -Naur vim70.orig/src/version.c~ vim70/src/version.c~7750 --- vim70.orig/src/version.c~ 1969-12-31 16:00:00.000000000 -08007751 +++ vim70/src/version.c~ 2006-10-13 01:03:08.000000000 -07007752 @@ -0,0 +1,1450 @@7753 +/* vi:set ts=8 sts=4 sw=4:7754 + *7755 + * VIM - Vi IMproved by Bram Moolenaar7756 + *7757 + * Do ":help uganda" in Vim to read copying and usage conditions.7758 + * Do ":help credits" in Vim to see a list of people who contributed.7759 + * See README.txt for an overview of the Vim source code.7760 + */7761 +7762 +#include "vim.h"7763 +7764 +#ifdef AMIGA7765 +# include <time.h> /* for time() */7766 +#endif7767 +7768 +/*7769 + * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred)7770 + * It has been changed beyond recognition since then.7771 + *7772 + * Differences between version 6.x and 7.x can be found with ":help version7".7773 + * Differences between version 5.x and 6.x can be found with ":help version6".7774 + * Differences between version 4.x and 5.x can be found with ":help version5".7775 + * Differences between version 3.0 and 4.x can be found with ":help version4".7776 + * All the remarks about older versions have been removed, they are not very7777 + * interesting.7778 + */7779 +7780 +#include "version.h"7781 +7782 +char *Version = VIM_VERSION_SHORT;7783 +static char *mediumVersion = VIM_VERSION_MEDIUM;7784 +7785 +#if defined(HAVE_DATE_TIME) || defined(PROTO)7786 +# if (defined(VMS) && defined(VAXC)) || defined(PROTO)7787 +char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__)7788 + + sizeof(__TIME__) + 3];7789 + void7790 +make_version()7791 +{7792 + /*7793 + * Construct the long version string. Necessary because7794 + * VAX C can't catenate strings in the preprocessor.7795 + */7796 + strcpy(longVersion, VIM_VERSION_LONG_DATE);7797 + strcat(longVersion, __DATE__);7798 + strcat(longVersion, " ");7799 + strcat(longVersion, __TIME__);7800 + strcat(longVersion, ")");7801 +}7802 +# else7803 +char *longVersion = VIM_VERSION_LONG_DATE __DATE__ " " __TIME__ ")";7804 +# endif7805 +#else7806 +char *longVersion = VIM_VERSION_LONG;7807 +#endif7808 +7809 +static void version_msg __ARGS((char *s));7810 +7811 +static char *(features[]) =7812 +{7813 +#ifdef AMIGA /* only for Amiga systems */7814 +# ifdef FEAT_ARP7815 + "+ARP",7816 +# else7817 + "-ARP",7818 +# endif7819 +#endif7820 +#ifdef FEAT_ARABIC7821 + "+arabic",7822 +#else7823 + "-arabic",7824 +#endif7825 +#ifdef FEAT_AUTOCMD7826 + "+autocmd",7827 +#else7828 + "-autocmd",7829 +#endif7830 +#ifdef FEAT_BEVAL7831 + "+balloon_eval",7832 +#else7833 + "-balloon_eval",7834 +#endif7835 +#ifdef FEAT_BROWSE7836 + "+browse",7837 +#else7838 + "-browse",7839 +#endif7840 +#ifdef NO_BUILTIN_TCAPS7841 + "-builtin_terms",7842 +#endif7843 +#ifdef SOME_BUILTIN_TCAPS7844 + "+builtin_terms",7845 +#endif7846 +#ifdef ALL_BUILTIN_TCAPS7847 + "++builtin_terms",7848 +#endif7849 +#ifdef FEAT_BYTEOFF7850 + "+byte_offset",7851 +#else7852 + "-byte_offset",7853 +#endif7854 +#ifdef FEAT_CINDENT7855 + "+cindent",7856 +#else7857 + "-cindent",7858 +#endif7859 +#ifdef FEAT_CLIENTSERVER7860 + "+clientserver",7861 +#else7862 + "-clientserver",7863 +#endif7864 +#ifdef FEAT_CLIPBOARD7865 + "+clipboard",7866 +#else7867 + "-clipboard",7868 +#endif7869 +#ifdef FEAT_CMDL_COMPL7870 + "+cmdline_compl",7871 +#else7872 + "-cmdline_compl",7873 +#endif7874 +#ifdef FEAT_CMDHIST7875 + "+cmdline_hist",7876 +#else7877 + "-cmdline_hist",7878 +#endif7879 +#ifdef FEAT_CMDL_INFO7880 + "+cmdline_info",7881 +#else7882 + "-cmdline_info",7883 +#endif7884 +#ifdef FEAT_COMMENTS7885 + "+comments",7886 +#else7887 + "-comments",7888 +#endif7889 +#ifdef FEAT_CRYPT7890 + "+cryptv",7891 +#else7892 + "-cryptv",7893 +#endif7894 +#ifdef FEAT_CSCOPE7895 + "+cscope",7896 +#else7897 + "-cscope",7898 +#endif7899 +#ifdef CURSOR_SHAPE7900 + "+cursorshape",7901 +#else7902 + "-cursorshape",7903 +#endif7904 +#if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG)7905 + "+dialog_con_gui",7906 +#else7907 +# if defined(FEAT_CON_DIALOG)7908 + "+dialog_con",7909 +# else7910 +# if defined(FEAT_GUI_DIALOG)7911 + "+dialog_gui",7912 +# else7913 + "-dialog",7914 +# endif7915 +# endif7916 +#endif7917 +#ifdef FEAT_DIFF7918 + "+diff",7919 +#else7920 + "-diff",7921 +#endif7922 +#ifdef FEAT_DIGRAPHS7923 + "+digraphs",7924 +#else7925 + "-digraphs",7926 +#endif7927 +#ifdef FEAT_DND7928 + "+dnd",7929 +#else7930 + "-dnd",7931 +#endif7932 +#ifdef EBCDIC7933 + "+ebcdic",7934 +#else7935 + "-ebcdic",7936 +#endif7937 +#ifdef FEAT_EMACS_TAGS7938 + "+emacs_tags",7939 +#else7940 + "-emacs_tags",7941 +#endif7942 +#ifdef FEAT_EVAL7943 + "+eval",7944 +#else7945 + "-eval",7946 +#endif7947 +#ifdef FEAT_EX_EXTRA7948 + "+ex_extra",7949 +#else7950 + "-ex_extra",7951 +#endif7952 +#ifdef FEAT_SEARCH_EXTRA7953 + "+extra_search",7954 +#else7955 + "-extra_search",7956 +#endif7957 +#ifdef FEAT_FKMAP7958 + "+farsi",7959 +#else7960 + "-farsi",7961 +#endif7962 +#ifdef FEAT_SEARCHPATH7963 + "+file_in_path",7964 +#else7965 + "-file_in_path",7966 +#endif7967 +#ifdef FEAT_FIND_ID7968 + "+find_in_path",7969 +#else7970 + "-find_in_path",7971 +#endif7972 +#ifdef FEAT_FOLDING7973 + "+folding",7974 +#else7975 + "-folding",7976 +#endif7977 +#ifdef FEAT_FOOTER7978 + "+footer",7979 +#else7980 + "-footer",7981 +#endif7982 + /* only interesting on Unix systems */7983 +#if !defined(USE_SYSTEM) && defined(UNIX)7984 + "+fork()",7985 +#endif7986 +#ifdef FEAT_GETTEXT7987 +# ifdef DYNAMIC_GETTEXT7988 + "+gettext/dyn",7989 +# else7990 + "+gettext",7991 +# endif7992 +#else7993 + "-gettext",7994 +#endif7995 +#ifdef FEAT_HANGULIN7996 + "+hangul_input",7997 +#else7998 + "-hangul_input",7999 +#endif8000 +#if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV)8001 +# ifdef DYNAMIC_ICONV8002 + "+iconv/dyn",8003 +# else8004 + "+iconv",8005 +# endif8006 +#else8007 + "-iconv",8008 +#endif8009 +#ifdef FEAT_INS_EXPAND8010 + "+insert_expand",8011 +#else8012 + "-insert_expand",8013 +#endif8014 +#ifdef FEAT_JUMPLIST8015 + "+jumplist",8016 +#else8017 + "-jumplist",8018 +#endif8019 +#ifdef FEAT_KEYMAP8020 + "+keymap",8021 +#else8022 + "-keymap",8023 +#endif8024 +#ifdef FEAT_LANGMAP8025 + "+langmap",8026 +#else8027 + "-langmap",8028 +#endif8029 +#ifdef FEAT_LIBCALL8030 + "+libcall",8031 +#else8032 + "-libcall",8033 +#endif8034 +#ifdef FEAT_LINEBREAK8035 + "+linebreak",8036 +#else8037 + "-linebreak",8038 +#endif8039 +#ifdef FEAT_LISP8040 + "+lispindent",8041 +#else8042 + "-lispindent",8043 +#endif8044 +#ifdef FEAT_LISTCMDS8045 + "+listcmds",8046 +#else8047 + "-listcmds",8048 +#endif8049 +#ifdef FEAT_LOCALMAP8050 + "+localmap",8051 +#else8052 + "-localmap",8053 +#endif8054 +#ifdef FEAT_MENU8055 + "+menu",8056 +#else8057 + "-menu",8058 +#endif8059 +#ifdef FEAT_SESSION8060 + "+mksession",8061 +#else8062 + "-mksession",8063 +#endif8064 +#ifdef FEAT_MODIFY_FNAME8065 + "+modify_fname",8066 +#else8067 + "-modify_fname",8068 +#endif8069 +#ifdef FEAT_MOUSE8070 + "+mouse",8071 +# ifdef FEAT_MOUSESHAPE8072 + "+mouseshape",8073 +# else8074 + "-mouseshape",8075 +# endif8076 +# else8077 + "-mouse",8078 +#endif8079 +#if defined(UNIX) || defined(VMS)8080 +# ifdef FEAT_MOUSE_DEC8081 + "+mouse_dec",8082 +# else8083 + "-mouse_dec",8084 +# endif8085 +# ifdef FEAT_MOUSE_GPM8086 + "+mouse_gpm",8087 +# else8088 + "-mouse_gpm",8089 +# endif8090 +# ifdef FEAT_MOUSE_JSB8091 + "+mouse_jsbterm",8092 +# else8093 + "-mouse_jsbterm",8094 +# endif8095 +# ifdef FEAT_MOUSE_NET8096 + "+mouse_netterm",8097 +# else8098 + "-mouse_netterm",8099 +# endif8100 +# ifdef FEAT_MOUSE_XTERM8101 + "+mouse_xterm",8102 +# else8103 + "-mouse_xterm",8104 +# endif8105 +#endif8106 +#ifdef __QNX__8107 +# ifdef FEAT_MOUSE_PTERM8108 + "+mouse_pterm",8109 +# else8110 + "-mouse_pterm",8111 +# endif8112 +#endif8113 +#ifdef FEAT_MBYTE_IME8114 +# ifdef DYNAMIC_IME8115 + "+multi_byte_ime/dyn",8116 +# else8117 + "+multi_byte_ime",8118 +# endif8119 +#else8120 +# ifdef FEAT_MBYTE8121 + "+multi_byte",8122 +# else8123 + "-multi_byte",8124 +# endif8125 +#endif8126 +#ifdef FEAT_MULTI_LANG8127 + "+multi_lang",8128 +#else8129 + "-multi_lang",8130 +#endif8131 +#ifdef FEAT_MZSCHEME8132 +# ifdef DYNAMIC_MZSCHEME8133 + "+mzscheme/dyn",8134 +# else8135 + "+mzscheme",8136 +# endif8137 +#else8138 + "-mzscheme",8139 +#endif8140 +#ifdef FEAT_NETBEANS_INTG8141 + "+netbeans_intg",8142 +#else8143 + "-netbeans_intg",8144 +#endif8145 +#ifdef FEAT_GUI_W328146 +# ifdef FEAT_OLE8147 + "+ole",8148 +# else8149 + "-ole",8150 +# endif8151 +#endif8152 +#ifdef FEAT_OSFILETYPE8153 + "+osfiletype",8154 +#else8155 + "-osfiletype",8156 +#endif8157 +#ifdef FEAT_PATH_EXTRA8158 + "+path_extra",8159 +#else8160 + "-path_extra",8161 +#endif8162 +#ifdef FEAT_PERL8163 +# ifdef DYNAMIC_PERL8164 + "+perl/dyn",8165 +# else8166 + "+perl",8167 +# endif8168 +#else8169 + "-perl",8170 +#endif8171 +#ifdef FEAT_PRINTER8172 +# ifdef FEAT_POSTSCRIPT8173 + "+postscript",8174 +# else8175 + "-postscript",8176 +# endif8177 + "+printer",8178 +#else8179 + "-printer",8180 +#endif8181 +#ifdef FEAT_PROFILE8182 + "+profile",8183 +#else8184 + "-profile",8185 +#endif8186 +#ifdef FEAT_PYTHON8187 +# ifdef DYNAMIC_PYTHON8188 + "+python/dyn",8189 +# else8190 + "+python",8191 +# endif8192 +#else8193 + "-python",8194 +#endif8195 +#ifdef FEAT_QUICKFIX8196 + "+quickfix",8197 +#else8198 + "-quickfix",8199 +#endif8200 +#ifdef FEAT_RELTIME8201 + "+reltime",8202 +#else8203 + "-reltime",8204 +#endif8205 +#ifdef FEAT_RIGHTLEFT8206 + "+rightleft",8207 +#else8208 + "-rightleft",8209 +#endif8210 +#ifdef FEAT_RUBY8211 +# ifdef DYNAMIC_RUBY8212 + "+ruby/dyn",8213 +# else8214 + "+ruby",8215 +# endif8216 +#else8217 + "-ruby",8218 +#endif8219 +#ifdef FEAT_SCROLLBIND8220 + "+scrollbind",8221 +#else8222 + "-scrollbind",8223 +#endif8224 +#ifdef FEAT_SIGNS8225 + "+signs",8226 +#else8227 + "-signs",8228 +#endif8229 +#ifdef FEAT_SMARTINDENT8230 + "+smartindent",8231 +#else8232 + "-smartindent",8233 +#endif8234 +#ifdef FEAT_SNIFF8235 + "+sniff",8236 +#else8237 + "-sniff",8238 +#endif8239 +#ifdef FEAT_STL_OPT8240 + "+statusline",8241 +#else8242 + "-statusline",8243 +#endif8244 +#ifdef FEAT_SUN_WORKSHOP8245 + "+sun_workshop",8246 +#else8247 + "-sun_workshop",8248 +#endif8249 +#ifdef FEAT_SYN_HL8250 + "+syntax",8251 +#else8252 + "-syntax",8253 +#endif8254 + /* only interesting on Unix systems */8255 +#if defined(USE_SYSTEM) && (defined(UNIX) || defined(__EMX__))8256 + "+system()",8257 +#endif8258 +#ifdef FEAT_TAG_BINS8259 + "+tag_binary",8260 +#else8261 + "-tag_binary",8262 +#endif8263 +#ifdef FEAT_TAG_OLDSTATIC8264 + "+tag_old_static",8265 +#else8266 + "-tag_old_static",8267 +#endif8268 +#ifdef FEAT_TAG_ANYWHITE8269 + "+tag_any_white",8270 +#else8271 + "-tag_any_white",8272 +#endif8273 +#ifdef FEAT_TCL8274 +# ifdef DYNAMIC_TCL8275 + "+tcl/dyn",8276 +# else8277 + "+tcl",8278 +# endif8279 +#else8280 + "-tcl",8281 +#endif8282 +#if defined(UNIX) || defined(__EMX__)8283 +/* only Unix (or OS/2 with EMX!) can have terminfo instead of termcap */8284 +# ifdef TERMINFO8285 + "+terminfo",8286 +# else8287 + "-terminfo",8288 +# endif8289 +#else /* unix always includes termcap support */8290 +# ifdef HAVE_TGETENT8291 + "+tgetent",8292 +# else8293 + "-tgetent",8294 +# endif8295 +#endif8296 +#ifdef FEAT_TERMRESPONSE8297 + "+termresponse",8298 +#else8299 + "-termresponse",8300 +#endif8301 +#ifdef FEAT_TEXTOBJ8302 + "+textobjects",8303 +#else8304 + "-textobjects",8305 +#endif8306 +#ifdef FEAT_TITLE8307 + "+title",8308 +#else8309 + "-title",8310 +#endif8311 +#ifdef FEAT_TOOLBAR8312 + "+toolbar",8313 +#else8314 + "-toolbar",8315 +#endif8316 +#ifdef FEAT_USR_CMDS8317 + "+user_commands",8318 +#else8319 + "-user_commands",8320 +#endif8321 +#ifdef FEAT_VERTSPLIT8322 + "+vertsplit",8323 +#else8324 + "-vertsplit",8325 +#endif8326 +#ifdef FEAT_VIRTUALEDIT8327 + "+virtualedit",8328 +#else8329 + "-virtualedit",8330 +#endif8331 +#ifdef FEAT_VISUAL8332 + "+visual",8333 +# ifdef FEAT_VISUALEXTRA8334 + "+visualextra",8335 +# else8336 + "-visualextra",8337 +# endif8338 +#else8339 + "-visual",8340 +#endif8341 +#ifdef FEAT_VIMINFO8342 + "+viminfo",8343 +#else8344 + "-viminfo",8345 +#endif8346 +#ifdef FEAT_VREPLACE8347 + "+vreplace",8348 +#else8349 + "-vreplace",8350 +#endif8351 +#ifdef FEAT_WILDIGN8352 + "+wildignore",8353 +#else8354 + "-wildignore",8355 +#endif8356 +#ifdef FEAT_WILDMENU8357 + "+wildmenu",8358 +#else8359 + "-wildmenu",8360 +#endif8361 +#ifdef FEAT_WINDOWS8362 + "+windows",8363 +#else8364 + "-windows",8365 +#endif8366 +#ifdef FEAT_WRITEBACKUP8367 + "+writebackup",8368 +#else8369 + "-writebackup",8370 +#endif8371 +#if defined(UNIX) || defined(VMS)8372 +# ifdef FEAT_X118373 + "+X11",8374 +# else8375 + "-X11",8376 +# endif8377 +#endif8378 +#ifdef FEAT_XFONTSET8379 + "+xfontset",8380 +#else8381 + "-xfontset",8382 +#endif8383 +#ifdef FEAT_XIM8384 + "+xim",8385 +#else8386 + "-xim",8387 +#endif8388 +#if defined(UNIX) || defined(VMS)8389 +# ifdef USE_XSMP_INTERACT8390 + "+xsmp_interact",8391 +# else8392 +# ifdef USE_XSMP8393 + "+xsmp",8394 +# else8395 + "-xsmp",8396 +# endif8397 +# endif8398 +# ifdef FEAT_XCLIPBOARD8399 + "+xterm_clipboard",8400 +# else8401 + "-xterm_clipboard",8402 +# endif8403 +#endif8404 +#ifdef FEAT_XTERM_SAVE8405 + "+xterm_save",8406 +#else8407 + "-xterm_save",8408 +#endif8409 +#ifdef WIN32648410 +# ifdef FEAT_XPM_W328411 + "+xpm_w32",8412 +# else8413 + "-xpm_w32",8414 +# endif8415 +#endif8416 + NULL8417 +};8418 +8419 +static int included_patches[] =8420 +{ /* Add new patch number below this line */8421 +/**/8422 + 115,8423 +/**/8424 + 114,8425 +/**/8426 + 113,8427 +/**/8428 + 112,8429 +/**/8430 + 111,8431 +/**/8432 + 110,8433 +/**/8434 + 109,8435 +/**/8436 + 107,8437 +/**/8438 + 106,8439 +/**/8440 + 105,8441 +/**/8442 + 104,8443 +/**/8444 + 103,8445 +/**/8446 + 102,8447 +/**/8448 + 101,8449 +/**/8450 + 100,8451 +/**/8452 + 99,8453 +/**/8454 + 98,8455 +/**/8456 + 97,8457 +/**/8458 + 96,8459 +/**/8460 + 95,8461 +/**/8462 + 94,8463 +/**/8464 + 93,8465 +/**/8466 + 92,8467 +/**/8468 + 91,8469 +/**/8470 + 90,8471 +/**/8472 + 89,8473 +/**/8474 + 88,8475 +/**/8476 + 87,8477 +/**/8478 + 86,8479 +/**/8480 + 85,8481 +/**/8482 + 84,8483 +/**/8484 + 83,8485 +/**/8486 + 82,8487 +/**/8488 + 81,8489 +/**/8490 + 80,8491 +/**/8492 + 79,8493 +/**/8494 + 78,8495 +/**/8496 + 77,8497 +/**/8498 + 76,8499 +/**/8500 + 75,8501 +/**/8502 + 73,8503 +/**/8504 + 72,8505 +/**/8506 + 71,8507 +/**/8508 + 70,8509 +/**/8510 + 69,8511 +/**/8512 + 68,8513 +/**/8514 + 67,8515 +/**/8516 + 66,8517 +/**/8518 + 64,8519 +/**/8520 + 63,8521 +/**/8522 + 62,8523 +/**/8524 + 61,8525 +/**/8526 + 60,8527 +/**/8528 + 59,8529 +/**/8530 + 58,8531 +/**/8532 + 56,8533 +/**/8534 + 55,8535 +/**/8536 + 54,8537 +/**/8538 + 53,8539 +/**/8540 + 52,8541 +/**/8542 + 51,8543 +/**/8544 + 50,8545 +/**/8546 + 49,8547 +/**/8548 + 48,8549 +/**/8550 + 47,8551 +/**/8552 + 46,8553 +/**/8554 + 44,8555 +/**/8556 + 43,8557 +/**/8558 + 42,8559 +/**/8560 + 41,8561 +/**/8562 + 40,8563 +/**/8564 + 39,8565 +/**/8566 + 38,8567 +/**/8568 + 37,8569 +/**/8570 + 36,8571 +/**/8572 + 35,8573 +/**/8574 + 34,8575 +/**/8576 + 33,8577 +/**/8578 + 31,8579 +/**/8580 + 30,8581 +/**/8582 + 29,8583 +/**/8584 + 26,8585 +/**/8586 + 25,8587 +/**/8588 + 24,8589 +/**/8590 + 23,8591 +/**/8592 + 22,8593 +/**/8594 + 21,8595 +/**/8596 + 20,8597 +/**/8598 + 19,8599 +/**/8600 + 18,8601 +/**/8602 + 17,8603 +/**/8604 + 16,8605 +/**/8606 + 15,8607 +/**/8608 + 14,8609 +/**/8610 + 13,8611 +/**/8612 + 12,8613 +/**/8614 + 11,8615 +/**/8616 + 10,8617 +/**/8618 + 9,8619 +/**/8620 + 8,8621 +/**/8622 + 7,8623 +/**/8624 + 6,8625 +/**/8626 + 4,8627 +/**/8628 + 3,8629 +/**/8630 + 2,8631 +/**/8632 + 1,8633 +/**/8634 + 08635 +};8636 +8637 + int8638 +highest_patch()8639 +{8640 + int i;8641 + int h = 0;8642 +8643 + for (i = 0; included_patches[i] != 0; ++i)8644 + if (included_patches[i] > h)8645 + h = included_patches[i];8646 + return h;8647 +}8648 +8649 +#if defined(FEAT_EVAL) || defined(PROTO)8650 +/*8651 + * Return TRUE if patch "n" has been included.8652 + */8653 + int8654 +has_patch(n)8655 + int n;8656 +{8657 + int i;8658 +8659 + for (i = 0; included_patches[i] != 0; ++i)8660 + if (included_patches[i] == n)8661 + return TRUE;8662 + return FALSE;8663 +}8664 +#endif8665 +8666 + void8667 +ex_version(eap)8668 + exarg_T *eap;8669 +{8670 + /*8671 + * Ignore a ":version 9.99" command.8672 + */8673 + if (*eap->arg == NUL)8674 + {8675 + msg_putchar('\n');8676 + list_version();8677 + }8678 +}8679 +8680 + void8681 +list_version()8682 +{8683 + int i;8684 + int first;8685 + char *s = "";8686 +8687 + /*8688 + * When adding features here, don't forget to update the list of8689 + * internal variables in eval.c!8690 + */8691 + MSG(longVersion);8692 +#ifdef WIN32648693 +# ifdef FEAT_GUI_W328694 +# if defined(_MSC_VER) && (_MSC_VER <= 1010)8695 + /* Only MS VC 4.1 and earlier can do Win32s */8696 + MSG_PUTS(_("\nMS-Windows 16/32 bit GUI version"));8697 +# else8698 + MSG_PUTS(_("\nMS-Windows 32 bit GUI version"));8699 +# endif8700 + if (gui_is_win32s())8701 + MSG_PUTS(_(" in Win32s mode"));8702 +# ifdef FEAT_OLE8703 + MSG_PUTS(_(" with OLE support"));8704 +# endif8705 +# else8706 + MSG_PUTS(_("\nMS-Windows 32 bit console version"));8707 +# endif8708 +#endif8709 +#ifdef WIN168710 + MSG_PUTS(_("\nMS-Windows 16 bit version"));8711 +#endif8712 +#ifdef MSDOS8713 +# ifdef DJGPP8714 + MSG_PUTS(_("\n32 bit MS-DOS version"));8715 +# else8716 + MSG_PUTS(_("\n16 bit MS-DOS version"));8717 +# endif8718 +#endif8719 +#ifdef MACOS8720 +# ifdef MACOS_X8721 +# ifdef MACOS_X_UNIX8722 + MSG_PUTS(_("\nMacOS X (unix) version"));8723 +# else8724 + MSG_PUTS(_("\nMacOS X version"));8725 +# endif8726 +#else8727 + MSG_PUTS(_("\nMacOS version"));8728 +# endif8729 +#endif8730 +8731 +#ifdef RISCOS8732 + MSG_PUTS(_("\nRISC OS version"));8733 +#endif8734 +#ifdef VMS8735 + MSG_PUTS("\nOpenVMS version");8736 +#endif8737 +8738 + /* Print the list of patch numbers if there is at least one. */8739 + /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */8740 + if (included_patches[0] != 0)8741 + {8742 + MSG_PUTS(_("\nIncluded patches: "));8743 + first = -1;8744 + /* find last one */8745 + for (i = 0; included_patches[i] != 0; ++i)8746 + ;8747 + while (--i >= 0)8748 + {8749 + if (first < 0)8750 + first = included_patches[i];8751 + if (i == 0 || included_patches[i - 1] != included_patches[i] + 1)8752 + {8753 + MSG_PUTS(s);8754 + s = ", ";8755 + msg_outnum((long)first);8756 + if (first != included_patches[i])8757 + {8758 + MSG_PUTS("-");8759 + msg_outnum((long)included_patches[i]);8760 + }8761 + first = -1;8762 + }8763 + }8764 + }8765 +8766 +#ifdef MODIFIED_BY8767 + MSG_PUTS("\n");8768 + MSG_PUTS(_("Modified by "));8769 + MSG_PUTS(MODIFIED_BY);8770 +#endif8771 +8772 +#ifdef HAVE_PATHDEF8773 + if (*compiled_user != NUL || *compiled_sys != NUL)8774 + {8775 + MSG_PUTS(_("\nCompiled "));8776 + if (*compiled_user != NUL)8777 + {8778 + MSG_PUTS(_("by "));8779 + MSG_PUTS(compiled_user);8780 + }8781 + if (*compiled_sys != NUL)8782 + {8783 + MSG_PUTS("@");8784 + MSG_PUTS(compiled_sys);8785 + }8786 + }8787 +#endif8788 +8789 +#ifdef FEAT_HUGE8790 + MSG_PUTS(_("\nHuge version "));8791 +#else8792 +# ifdef FEAT_BIG8793 + MSG_PUTS(_("\nBig version "));8794 +# else8795 +# ifdef FEAT_NORMAL8796 + MSG_PUTS(_("\nNormal version "));8797 +# else8798 +# ifdef FEAT_SMALL8799 + MSG_PUTS(_("\nSmall version "));8800 +# else8801 + MSG_PUTS(_("\nTiny version "));8802 +# endif8803 +# endif8804 +# endif8805 +#endif8806 +#ifndef FEAT_GUI8807 + MSG_PUTS(_("without GUI."));8808 +#else8809 +# ifdef FEAT_GUI_GTK8810 +# ifdef FEAT_GUI_GNOME8811 +# ifdef HAVE_GTK28812 + MSG_PUTS(_("with GTK2-GNOME GUI."));8813 +# else8814 + MSG_PUTS(_("with GTK-GNOME GUI."));8815 +# endif8816 +# else8817 +# ifdef HAVE_GTK28818 + MSG_PUTS(_("with GTK2 GUI."));8819 +# else8820 + MSG_PUTS(_("with GTK GUI."));8821 +# endif8822 +# endif8823 +# else8824 +# ifdef FEAT_GUI_MOTIF8825 + MSG_PUTS(_("with X11-Motif GUI."));8826 +# else8827 +# ifdef FEAT_GUI_ATHENA8828 +# ifdef FEAT_GUI_NEXTAW8829 + MSG_PUTS(_("with X11-neXtaw GUI."));8830 +# else8831 + MSG_PUTS(_("with X11-Athena GUI."));8832 +# endif8833 +# else8834 +# ifdef FEAT_GUI_PHOTON8835 + MSG_PUTS(_("with Photon GUI."));8836 +# else8837 +# if defined(MSWIN)8838 + MSG_PUTS(_("with GUI."));8839 +# else8840 +# if defined (TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON8841 + MSG_PUTS(_("with Carbon GUI."));8842 +# else8843 +# if defined (TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX8844 + MSG_PUTS(_("with Cocoa GUI."));8845 +# else8846 +# if defined (MACOS)8847 + MSG_PUTS(_("with (classic) GUI."));8848 +# endif8849 +# endif8850 +# endif8851 +# endif8852 +# endif8853 +# endif8854 +# endif8855 +# endif8856 +#endif8857 + version_msg(_(" Features included (+) or not (-):\n"));8858 +8859 + /* print all the features */8860 + for (i = 0; features[i] != NULL; ++i)8861 + {8862 + version_msg(features[i]);8863 + if (msg_col > 0)8864 + version_msg(" ");8865 + }8866 +8867 + version_msg("\n");8868 +#ifdef SYS_VIMRC_FILE8869 + version_msg(_(" system vimrc file: \""));8870 + version_msg(SYS_VIMRC_FILE);8871 + version_msg("\"\n");8872 +#endif8873 +#ifdef USR_VIMRC_FILE8874 + version_msg(_(" user vimrc file: \""));8875 + version_msg(USR_VIMRC_FILE);8876 + version_msg("\"\n");8877 +#endif8878 +#ifdef USR_VIMRC_FILE28879 + version_msg(_(" 2nd user vimrc file: \""));8880 + version_msg(USR_VIMRC_FILE2);8881 + version_msg("\"\n");8882 +#endif8883 +#ifdef USR_VIMRC_FILE38884 + version_msg(_(" 3rd user vimrc file: \""));8885 + version_msg(USR_VIMRC_FILE3);8886 + version_msg("\"\n");8887 +#endif8888 +#ifdef USR_EXRC_FILE8889 + version_msg(_(" user exrc file: \""));8890 + version_msg(USR_EXRC_FILE);8891 + version_msg("\"\n");8892 +#endif8893 +#ifdef USR_EXRC_FILE28894 + version_msg(_(" 2nd user exrc file: \""));8895 + version_msg(USR_EXRC_FILE2);8896 + version_msg("\"\n");8897 +#endif8898 +#ifdef FEAT_GUI8899 +# ifdef SYS_GVIMRC_FILE8900 + version_msg(_(" system gvimrc file: \""));8901 + version_msg(SYS_GVIMRC_FILE);8902 + version_msg("\"\n");8903 +# endif8904 + version_msg(_(" user gvimrc file: \""));8905 + version_msg(USR_GVIMRC_FILE);8906 + version_msg("\"\n");8907 +# ifdef USR_GVIMRC_FILE28908 + version_msg(_("2nd user gvimrc file: \""));8909 + version_msg(USR_GVIMRC_FILE2);8910 + version_msg("\"\n");8911 +# endif8912 +# ifdef USR_GVIMRC_FILE38913 + version_msg(_("3rd user gvimrc file: \""));8914 + version_msg(USR_GVIMRC_FILE3);8915 + version_msg("\"\n");8916 +# endif8917 +#endif8918 +#ifdef FEAT_GUI8919 +# ifdef SYS_MENU_FILE8920 + version_msg(_(" system menu file: \""));8921 + version_msg(SYS_MENU_FILE);8922 + version_msg("\"\n");8923 +# endif8924 +#endif8925 +#ifdef HAVE_PATHDEF8926 + if (*default_vim_dir != NUL)8927 + {8928 + version_msg(_(" fall-back for $VIM: \""));8929 + version_msg((char *)default_vim_dir);8930 + version_msg("\"\n");8931 + }8932 + if (*default_vimruntime_dir != NUL)8933 + {8934 + version_msg(_(" f-b for $VIMRUNTIME: \""));8935 + version_msg((char *)default_vimruntime_dir);8936 + version_msg("\"\n");8937 + }8938 + version_msg(_("Compilation: "));8939 + version_msg((char *)all_cflags);8940 + version_msg("\n");8941 +#ifdef VMS8942 + if (*compiler_version != NUL)8943 + {8944 + version_msg(_("Compiler: "));8945 + version_msg((char *)compiler_version);8946 + version_msg("\n");8947 + }8948 +#endif8949 + version_msg(_("Linking: "));8950 + version_msg((char *)all_lflags);8951 +#endif8952 +#ifdef DEBUG8953 + version_msg("\n");8954 + version_msg(_(" DEBUG BUILD"));8955 +#endif8956 +}8957 +8958 +/*8959 + * Output a string for the version message. If it's going to wrap, output a8960 + * newline, unless the message is too long to fit on the screen anyway.8961 + */8962 + static void8963 +version_msg(s)8964 + char *s;8965 +{8966 + int len = (int)STRLEN(s);8967 +8968 + if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns8969 + && *s != '\n')8970 + msg_putchar('\n');8971 + if (!got_int)8972 + MSG_PUTS(s);8973 +}8974 +8975 +static void do_intro_line __ARGS((int row, char_u *mesg, int add_version, int attr));8976 +8977 +/*8978 + * Give an introductory message about Vim.8979 + * Only used when starting Vim on an empty file, without a file name.8980 + * Or with the ":intro" command (for Sven :-).8981 + */8982 + void8983 +intro_message(colon)8984 + int colon; /* TRUE for ":intro" */8985 +{8986 + int i;8987 + int row;8988 + int blanklines;8989 + int sponsor;8990 + char *p;8991 + static char *(lines[]) =8992 + {8993 + N_("VIM - Vi IMproved"),8994 + "",8995 + N_("version "),8996 + N_("by Bram Moolenaar et al."),8997 +#ifdef MODIFIED_BY8998 + " ",8999 +#endif9000 + N_("Vim is open source and freely distributable"),9001 + "",9002 + N_("Help poor children in Uganda!"),9003 + N_("type :help iccf<Enter> for information "),9004 + "",9005 + N_("type :q<Enter> to exit "),9006 + N_("type :help<Enter> or <F1> for on-line help"),9007 + N_("type :help version7<Enter> for version info"),9008 + NULL,9009 + "",9010 + N_("Running in Vi compatible mode"),9011 + N_("type :set nocp<Enter> for Vim defaults"),9012 + N_("type :help cp-default<Enter> for info on this"),9013 + };9014 +#ifdef FEAT_GUI9015 + static char *(gui_lines[]) =9016 + {9017 + NULL,9018 + NULL,9019 + NULL,9020 + NULL,9021 +#ifdef MODIFIED_BY9022 + NULL,9023 +#endif9024 + NULL,9025 + NULL,9026 + NULL,9027 + N_("menu Help->Orphans for information "),9028 + NULL,9029 + N_("Running modeless, typed text is inserted"),9030 + N_("menu Edit->Global Settings->Toggle Insert Mode "),9031 + N_(" for two modes "),9032 + NULL,9033 + NULL,9034 + NULL,9035 + N_("menu Edit->Global Settings->Toggle Vi Compatible"),9036 + N_(" for Vim defaults "),9037 + };9038 +#endif9039 +9040 + /* blanklines = screen height - # message lines */9041 + blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1);9042 + if (!p_cp)9043 + blanklines += 4; /* add 4 for not showing "Vi compatible" message */9044 +#if defined(WIN3264) && !defined(FEAT_GUI_W32)9045 + if (mch_windows95())9046 + blanklines -= 3; /* subtract 3 for showing "Windows 95" message */9047 +#endif9048 +9049 +#ifdef FEAT_WINDOWS9050 + /* Don't overwrite a statusline. Depends on 'cmdheight'. */9051 + if (p_ls > 1)9052 + blanklines -= Rows - topframe->fr_height;9053 +#endif9054 + if (blanklines < 0)9055 + blanklines = 0;9056 +9057 + /* Show the sponsor and register message one out of four times, the Uganda9058 + * message two out of four times. */9059 + sponsor = (int)time(NULL);9060 + sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);9061 +9062 + /* start displaying the message lines after half of the blank lines */9063 + row = blanklines / 2;9064 + if ((row >= 2 && Columns >= 50) || colon)9065 + {9066 + for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i)9067 + {9068 + p = lines[i];9069 +#ifdef FEAT_GUI9070 + if (p_im && gui.in_use && gui_lines[i] != NULL)9071 + p = gui_lines[i];9072 +#endif9073 + if (p == NULL)9074 + {9075 + if (!p_cp)9076 + break;9077 + continue;9078 + }9079 + if (sponsor != 0)9080 + {9081 + if (strstr(p, "children") != NULL)9082 + p = sponsor < 09083 + ? N_("Sponsor Vim development!")9084 + : N_("Become a registered Vim user!");9085 + else if (strstr(p, "iccf") != NULL)9086 + p = sponsor < 09087 + ? N_("type :help sponsor<Enter> for information ")9088 + : N_("type :help register<Enter> for information ");9089 + else if (strstr(p, "Orphans") != NULL)9090 + p = N_("menu Help->Sponsor/Register for information ");9091 + }9092 + if (*p != NUL)9093 + do_intro_line(row, (char_u *)_(p), i == 2, 0);9094 + ++row;9095 + }9096 +#if defined(WIN3264) && !defined(FEAT_GUI_W32)9097 + if (mch_windows95())9098 + {9099 + do_intro_line(++row,9100 + (char_u *)_("WARNING: Windows 95/98/ME detected"),9101 + FALSE, hl_attr(HLF_E));9102 + do_intro_line(++row,9103 + (char_u *)_("type :help windows95<Enter> for info on this"),9104 + FALSE, 0);9105 + }9106 +#endif9107 + }9108 +9109 + /* Make the wait-return message appear just below the text. */9110 + if (colon)9111 + msg_row = row;9112 +}9113 +9114 + static void9115 +do_intro_line(row, mesg, add_version, attr)9116 + int row;9117 + char_u *mesg;9118 + int add_version;9119 + int attr;9120 +{9121 + char_u vers[20];9122 + int col;9123 + char_u *p;9124 + int l;9125 + int clen;9126 +#ifdef MODIFIED_BY9127 +# define MODBY_LEN 1509128 + char_u modby[MODBY_LEN];9129 +9130 + if (*mesg == ' ')9131 + {9132 + vim_strncpy(modby, _("Modified by "), MODBY_LEN - 1);9133 + l = STRLEN(modby);9134 + vim_strncpy(modby + l, MODIFIED_BY, MODBY_LEN - l - 1);9135 + mesg = modby;9136 + }9137 +#endif9138 +9139 + /* Center the message horizontally. */9140 + col = vim_strsize(mesg);9141 + if (add_version)9142 + {9143 + STRCPY(vers, mediumVersion);9144 + if (highest_patch())9145 + {9146 + /* Check for 9.9x or 9.9xx, alpha/beta version */9147 + if (isalpha((int)mediumVersion[3]))9148 + {9149 + if (isalpha((int)mediumVersion[4]))9150 + sprintf((char *)vers + 5, ".%d%s", highest_patch(),9151 + mediumVersion + 5);9152 + else9153 + sprintf((char *)vers + 4, ".%d%s", highest_patch(),9154 + mediumVersion + 4);9155 + }9156 + else9157 + sprintf((char *)vers + 3, ".%d", highest_patch());9158 + }9159 + col += (int)STRLEN(vers);9160 + }9161 + col = (Columns - col) / 2;9162 + if (col < 0)9163 + col = 0;9164 +9165 + /* Split up in parts to highlight <> items differently. */9166 + for (p = mesg; *p != NUL; p += l)9167 + {9168 + clen = 0;9169 + for (l = 0; p[l] != NUL9170 + && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l)9171 + {9172 +#ifdef FEAT_MBYTE9173 + if (has_mbyte)9174 + {9175 + clen += ptr2cells(p + l);9176 + l += (*mb_ptr2len)(p + l) - 1;9177 + }9178 + else9179 +#endif9180 + clen += byte2cells(p[l]);9181 + }9182 + screen_puts_len(p, l, row, col, *p == '<' ? hl_attr(HLF_8) : attr);9183 + col += clen;9184 + }9185 +9186 + /* Add the version number to the version line. */9187 + if (add_version)9188 + screen_puts(vers, row, col, 0);9189 +}9190 +9191 +/*9192 + * ":intro": clear screen, display intro screen and wait for return.9193 + */9194 +/*ARGSUSED*/9195 + void9196 +ex_intro(eap)9197 + exarg_T *eap;9198 +{9199 + screenclear();9200 + intro_message(TRUE);9201 + wait_return(TRUE);9202 +}9203 8409 diff -Naur vim70.orig/src/vim.h vim70/src/vim.h 9204 8410 --- vim70.orig/src/vim.h 2006-04-30 08:32:38.000000000 -0700 9205 +++ vim70/src/vim.h 2006-10- 13 01:02:53.000000000 -07008411 +++ vim70/src/vim.h 2006-10-21 21:08:59.000000000 -0700 9206 8412 @@ -585,7 +585,6 @@ 9207 8413 #define INSERT 0x10 /* Insert mode */ … … 9232 8438 diff -Naur vim70.orig/src/window.c vim70/src/window.c 9233 8439 --- vim70.orig/src/window.c 2006-05-06 03:54:51.000000000 -0700 9234 +++ vim70/src/window.c 2006-10- 13 01:02:56.000000000 -07008440 +++ vim70/src/window.c 2006-10-21 21:09:02.000000000 -0700 9235 8441 @@ -340,10 +340,10 @@ 9236 8442 { … … 9262 8468 #endif /* FEAT_WINDOWS */ 9263 8469 9264 9265
Note:
See TracChangeset
for help on using the changeset viewer.